
Wolf Paulus
Wolf Paulus is an internationally experienced software developer and innovator, dedicated to excellence, and motivated by enthusiasm to trying new things.
He is currently focusing on Android, Java, embedded-systems / mobile devices, and Open Source technologies. In his daytime job as Sr. Architect Mobile Software Development at Hewlett-Packard, he is developing strategies and solutions, to deliver a compelling mobile print experience. Before joining HP, Wolf was a Distinguished Engineer at Motorola, where he worked on the Google Android platform, and an Embedded System Software Architect at PatientSafe Solutions, a leading provider of wireless, barcode point-of-care solutions.
In his spare time, Wolf developed TiffanyScreens, an innovative presentation sharing tool for peer groups. He is the founder and principal developer of the open source XUL Engine SwixML, which Sun Microsystems’ CTO called “the strongest straightforward design of declarative GUI implementations”. SwixML represents ideas that are now heavily re-used in Google’s Android SDK. (Graphical User Interfaces are described declaratively in XML documents that are parsed and rendered into UI widgets hierarchies at runtime). He is committer at the HessDroid open source project, a binary web service protocol for Android, and frequently presents at conferences and user groups on topics ranging from Embedded Technology to Declarative Programming, emphasizing UI Generation at Runtime.
As an early adopter of Java, Wolf worked as a Software Architect and project lead at Autonomy Cardiff (AU.L) on the LiquidOffice platform, an intelligent Web-based eForm automation and workflow solution for creating, deploying and automatically managing the routing, tracking and approval for electronic forms and processes. He worked in St.Peterburg, Russia, leading a team of Russian engineers creating smart bots, in Frankfurt Germany, leading Deutsche Bank‘s development of an electronic banking and security trading application, and led software component development contracted from Aten Development, Lyon, France.
He received a Master’s Degree in Computer Science from the University of Paderborn, which has one of the highest ranking computer science programs among universities in Germany, a Specialized Certificate in Embedded Computer Software from the University of California, San Diego, and is a Sun Certified Java Programmer SCJP and Web Component Developer SCWCD. Wolf and his family currently reside in San Diego, California and can be found on the Net at http://wolfpaulus.com.
Conference Presentations
- Android UI for Phones and Tablets [PDF Slides, 5.3MB ] [ZIP Code, 200KB ]
- University of Southern California (USC) Oct. 2011 Some categories of the Android Market seem to provide an almost endless choice of applications and standing out there requires more than just having the right mix of features. This talk will provide ideas, tips, and code samples for making Android User interfaces more intuitive, attractive, and fun to use, featuring Android Fragments.
- Android Application Fundamentals: Intents (e.g. adding printing to your Android app) [PDF Slides, 2.7 MB ] [ZIP Code, 45KB ]
- San Diego CC UCSD 2011, San Diego SDJUG 2010 Some printer vendors make photo printing application freely available in Google’s Android Marketplace. Those applications allow printing of photos from an Android phone to a nearby printer and currently, only photos stored in the Android Gallery (a folder on the SDCard) can be printed. However, there are many great Android applications available that work with photos that are not kept in the Android Gallery, e.g. Flickr or Picasa Photo viewing application, gathering content from the cloud.
Android’s open architectures allows applications to temporarily transfer control to other installed applications, to perform certain tasks. I’m going to show how to enable printing in your Android applications, by re-using intents, implemented in other apps. If such intents can be found on a device, we will programmatically walk the user through its installation process, which would happen through the Android Marketplace.
- San Diego CC UCSD 2011, San Diego SDJUG 2010 Some printer vendors make photo printing application freely available in Google’s Android Marketplace. Those applications allow printing of photos from an Android phone to a nearby printer and currently, only photos stored in the Android Gallery (a folder on the SDCard) can be printed. However, there are many great Android applications available that work with photos that are not kept in the Android Gallery, e.g. Flickr or Picasa Photo viewing application, gathering content from the cloud.
- Embellishing Android Applications [PDF Slides, 2.6 MB ]
- University of Southern California, Los Angeles (USC) 2010 Some categories of the Android Market seem to provide an almost endless choice of applications and standing out there requires more than just having the right mix of features. This talk will provide ideas, tips, and code samples for making Android User interfaces more intuitive, attractive, and fun to use.
- Writing a Web Service Client App for Android [PDF Slides, 3.4MB]
- University of Southern California (USC) 2009 / CSUF 2010: While most Android Phones are relatively powerful devices, writing a Web Service client for a small memory constrained device requires some careful consideration when it comes to selecting the right framework and tools. We will use one of the fasted binary web service protocols to exchange objects between client and server, without requiring a large framework.
This is not your typical Android 101 talk but even if you haven’t done a lot of Android or Embedded Programming yet, this should still be a lot fun.
- University of Southern California (USC) 2009 / CSUF 2010: While most Android Phones are relatively powerful devices, writing a Web Service client for a small memory constrained device requires some careful consideration when it comes to selecting the right framework and tools. We will use one of the fasted binary web service protocols to exchange objects between client and server, without requiring a large framework.
- Turning a WiFi Router into a general-purpose Network Device [PDF Slides, 6.8MB]
- Cal State Fullerton 2009: Embedded systems are increasingly present in our life and quite a few of them can be repurposed (a.k.a. hacked), to make them even more useful. The purpose of this session is to have fun and give you some inside of what’s involved in turning a $30 wireless router into a general purpose embedded network device, running the LINUX OS and a full featured Java Runtime environment.
We will take a closer look at some popular Router OS distributions, like OpenWrt, DD-WRT, FreeWRT, Tomato, or X-Wrt and show how to flash the Fonera (FON) WiFi router with a vanilla OpenWrt distribution. The FON is a very small, relatively simple, and inexpensive router, built on the AR531x/231x Atheros WiSoC (Wireless System-on-a-Chip) with an integrated 32-bit MIPS R4000-class processor running at 183.5 MHz, comes with 8 Mbytes Flash Memory and 16 MByte RAM. In short, it has all the attributes required to be added our digital playground.
-Embedded OS Development / Kernel Architecture, Implementation and port for Embedded Systems-
OpenWRT is a Linux distribution optimized especially for embedded devices and surprisingly, the OpenWrt kernel configuration is done with the help of a character based UI. OpenWrt also comes with a lightweight package management system (IPKG or more recently OPKG), meaning that features that have not already been built into the kernel, can be added later, at runtime. As an example, we will take a look at how a JavaVM could be built, packaged, and deployed, or built directly into the kernel.
- Cal State Fullerton 2009: Embedded systems are increasingly present in our life and quite a few of them can be repurposed (a.k.a. hacked), to make them even more useful. The purpose of this session is to have fun and give you some inside of what’s involved in turning a $30 wireless router into a general purpose embedded network device, running the LINUX OS and a full featured Java Runtime environment.
- Turning the Web on its head – let’s have the Server call the Client [PDF Slides, 1.9MB]
- Cal State Fullerton 2008: We will take the accepted view that a Web-Client calls (via HTTP GET or POST) a server and turn it on its head. Let’s have the server call the client. It is really not that far fetched, imaging a scenario where the server when it has determined that something exciting just happened (e.g. the Dow Jones Industrial Avg. Index jumped 100 points) calls the Web Client, instead of clients constantly polling the server (even when the DOW barely moves).
Sounds interesting and a couple of implementation ideas may come to mind. After looking briefly into some xml and binary web service protocols, we will take a closer look at the notification mechanism provided by Java’s management extensions and eventually take a really close look at a full featured implementation of the above mentioned problem. Interestingly, even when looking at both, the client and the server part of this solution, there isn’t really all that much code to write, which means that even in the little time we have, all the concept and patterns used can be looked at and discussed. The talk also covers a Comet-style protocol and how it can be used with a Tomcat Server and an AJAX client application.
All the code, (client and server) that makes this Stock Quote Client an event consumer, will be shown.
- Cal State Fullerton 2008: We will take the accepted view that a Web-Client calls (via HTTP GET or POST) a server and turn it on its head. Let’s have the server call the client. It is really not that far fetched, imaging a scenario where the server when it has determined that something exciting just happened (e.g. the Dow Jones Industrial Avg. Index jumped 100 points) calls the Web Client, instead of clients constantly polling the server (even when the DOW barely moves).
- Swixml, XML-based domain-specific language for declaring Java Swing GUIs [PDF Slides, 875KB]
- Desktop Matters Conference: SwiXml is a small GUI generating engine for Java applications and applets. Graphical User Interfaces are described in XML documents that are parsed at runtime and rendered into javax.swing objects.
Theoretically, you can look at SwiXml as an XML based domain-specific language, allowing to declare Java Swing GUIs. The Swixml engine will then later at runtime, take a GUI declaration and create that User-Interface on the fly, just like a Web Browser would do with an HTML document.
SwiXml doesn’t introduce any new layout managers or component classes. Instead, it operates directly on the Swing component classes using introspection.
- Desktop Matters Conference: SwiXml is a small GUI generating engine for Java applications and applets. Graphical User Interfaces are described in XML documents that are parsed at runtime and rendered into javax.swing objects.
- Arduino Fever – PHYSICAL COMPUTING [PDF Slides, 2.8MB]
- The Arduino project was created to provide access to the essence of digital technologies and has contributed a remarkable set of open-source tools, ideal to conduct courses in electronics prototyping. Today, more than 20 universities are using Arduino in their programs and engineering classes, several open source communities have welcomed Arduino as their platform for interfacing the physical world, and the Arduino project has expanded into secondary education in schools allover Europe.
This talk provides a hands-on introduction to the Arduino platform. We focus on sensors and actuators and take a look at how a computer converts inputs (in the form of sound, light, motion, and other forms) into changing electronic signals that it can interpret. No previous knowledge in electronics is required. However, participants should bring an open mind for a challenging time with a hand full of bytes.
- The Arduino project was created to provide access to the essence of digital technologies and has contributed a remarkable set of open-source tools, ideal to conduct courses in electronics prototyping. Today, more than 20 universities are using Arduino in their programs and engineering classes, several open source communities have welcomed Arduino as their platform for interfacing the physical world, and the Arduino project has expanded into secondary education in schools allover Europe.
- Declarative Programming, emphasizing UI Generation at Runtime [PDF Slides, 2.0MB]
- Graphical User Interfaces are described in XML documents that are parsed at runtime and rendered into UI-Widgets. While open-source projects like Thinlet and Swixml focus mainly on the GUI, they are also good examples for how declarative programming can be done in Java.
The talk ends with a live demonstration of Tiffany Screens, a presentation tool I have written, allowing to share presentations (or any screen content) with peer groups, without requiring a projector. This is not only a very cool and quite unique application, it also applies a lot of the technologies and theories that were covered during the talk.
- Graphical User Interfaces are described in XML documents that are parsed at runtime and rendered into UI-Widgets. While open-source projects like Thinlet and Swixml focus mainly on the GUI, they are also good examples for how declarative programming can be done in Java.
- How the Internet works [PDF Slides, 1.5MB]
- This is talk is a little shady, a little underground, and attendees have been seen wearing diggnation shirts and even brought beer – brown bag style of course.
However, it’s all about “How the Internet works” and while I talk a lot about MAC and IP addresses, TCP, packets, ports, TTL, NAT, and all that, it has always been a lot fun for everyone.
I talk about how applications like iTunes announce shared playlists and why sharing them only works on LANs but not over the Internet – and of course you will see how you can “work around” this .. limitation.
- This is talk is a little shady, a little underground, and attendees have been seen wearing diggnation shirts and even brought beer – brown bag style of course.
- Innovate – Tweak, Hack, and Bend Technology [PDF Slides, 2.9MB]
- We will take a small device (available for $100 at Dallas Semiconductor), about the size of an iPod Shuffle, but capable of executing Java-Byte-Code, and connect it to a digital toy camera, (available for about $10 on eBay).
Then we are going to write some Java code that we load on to the device and execute and even run some JUnit tests remotely. But be warned, we are targeting an 8-bit processor running at only 40 MHz and its 1MB SRAM serves as file-system, program memory, and runtime heap.
Along the way we may add some more hardware and learn a few things about how CMOS sensors capture image data and how a Bayer-pattern can be used to decode the sensor data.
- We will take a small device (available for $100 at Dallas Semiconductor), about the size of an iPod Shuffle, but capable of executing Java-Byte-Code, and connect it to a digital toy camera, (available for about $10 on eBay).

