Wolfgang Paulus - Bio Information
Bio
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 Embedded System Software Architect with PatientSafe Solutions,
a leading provider of wireless, barcode point-of-care solutions, he works on the CAREt
, enabling nurses to perform safety checks and safely
administer medications at the bedside. Before joining PatientSafe, Wolf was a Software Architect and project lead at Autonomy Cardiff (AU.L), where he worked 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.
Theodore Roosevelt:
"It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better.
The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds; who knows great enthusiasms, the great devotions; who spends himself in a worthy cause; who at the best knows in the end the triumph of high achievement, and who at the worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat."
He developed TiffanyScreens
, an innovative presentation sharing tool for peer groups, created the Thinlet rapid application development (RAD) Tool Theodore
.
More importantly however, Wolf is the founder and principal developer of the open source XUL Engine SwixML, which Sun Microsystems' CTO calls "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.
Wolf 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
- Writing a Web Service Client App for Android [PDF Slides, 3.4MB]
- University of Southern California (USC) 2009 / CSUF 2010 Slides:
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 Slides:
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 Slides:
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 Slides:
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 Slides:
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 Slides:
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 Slides: 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 Slides: 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).
Work Samples and Projects
- Tiffany Screens, 2006 - now
- Cardiff LiquidOffice, 2000 - now
- Swixml, 2003 - now
- Embedded Systems Projects, 2001 - now
- TELEform eForm Solution, 1998
- Deutsche Bank Online Banking, 1996
- Embedded Systems / Medical Devices, 1992
- Embedded Systems Publication, 1991
|
|
|