Wolf Paulus

Journal

Navigation Menu

A Daunting Task – Tiffany goes to Cupertino

Posted by on Jan 20, 2013 in Java

TiffanyScreens in the Mac App Store

I never really liked going to “PowerPoint Meetings”, sharing the screen content with others during a meeting, usually requires to connect a projector to the presenter’s laptop. In a lengthy process, the laptop’s screen resolution and refresh-rate needed to be manually adjusted to synchronize with the projector. What follows is a lecture style presentation, featuring slides being projected, hugely magnified onto one of the meeting room’s walls; often, lights need to be dimmed, and listeners either doze off or start checking email.

A couple years back, I wrote TiffanyScreens, which allows you to share presentations (or any screen content), without requiring a projector.
Imagine a scenario, where every participant brought a laptop computer to a meeting and watched the presentation on that laptop’s display – participants sit on a table facing each other, instead of the wall. No adjustments are necessary; images are scaled automatically on arrival, to best match the receiver’s display-capability. To support lively meetings, everyone participating, can with a single button click, turn his computer into the presenting device.

tsp5

During the development, I had small engineering groups in mind, but it became more and more obvious that instructors, educators, and educational institutions would appreciate TiffanyScreens the most. Listening to users’ feedback, TiffanyScreens has been iteratively improved, refined, and optimized.

Read More

TiffanyScreens – Astoundingly Faster

Posted by on Oct 20, 2011 in Java

I never really liked those meetings, sitting in a room with slightly dimmed lights, participants facing a wall, watching power-point slides, and trying to follow a mostly boring presentation. A discussion – if at all – would most likely happen after the presentation. Changing laptops is too cumbersome with all the disconnecting and re-connecting of cables involved – not to talk about syncing the laptop to the projector’s max resolution.

Since most participants seem to bring a laptop, to those meetings to check Email, IM, etc. I had the idea to instead of the wall, use the laptops’ screens as a presentation canvas, i.e. we could all sit on a round table again, facing each other, instead of the wall.

I wrote a small self-contained (doesn’t use a server) multi-platform application a.k.a TiffanyScreens, to capture the presenter’s screen content and send it to the other participants. Best of all, with a simple push of a button, an observing meeting participant becomes a presenter, showing her screen’s content to the other team members.

Up to now, TiffanyScreens was implemented in pure Java. While the installer was implemented and compiled on the native platform, the application itself did not take advantage of OS native capabilities.

Read More

Theodore, set free at last

Posted by on Nov 26, 2009 in Java

Theodore Editor

Theodore Editor

Way back in fall 2002, I had discovered Thinlets, which I liked for its lean approach. However, because it lacked tools and extensibility, I couldn’t really use it for more serious projects. Still, the concept was intriguing, and while reimplementing it in a more object-oriented and extensible fashing wasn’t an option, the least I could do, was to write an editor .. meet Theodore.

After I had written Theodore 1.0, I was even more convinced that Graphical User Interfaces should be described in XML documents that are parsed and rendered into widgets at runtime, a concept which should become known as the declarative UI paradigm. So in January 2003 I founded the Swixmlopen source project (www.swixml.org) to combine the benefits of Swing (availability of models, extensibility of widgets etc.) with the lean XUL-approach, demonstrated by the Thinlet project.

While my focus was clearly on Swixml, I still kept the Thinled Editor up to date, and eventually released the significantly updated Theodore 3.0 – IDE for Thinlet Developers, which was built with (and shiped with) the classic Thinlet.jar.

Today, Theodore is set free, turns freeware, i.e. there is no freeware editon anymore. The full-featured Theodore 3.0 AP Edition is available for download at http://wolfpaulus.com/software/theodore/ (the webstart version as been updated as well).

Read More

Turning the Web on its head – let’s have the server call the client

Posted by on Nov 15, 2009 in Java

Code Camp is not just for geeks, hackers, and code monkeys; and while you may find some of them at the University of Southern California on November 21 and 22, Code Camp is first and foremost a place for software developers to come together, share ideas and experiences, and learn from their peers.
This will be my 2nd LA Code Camp, which compared to the Code Camp up North at Cal State Fullerton, seems more focused on Microsoft and .net related technologies. However, I’m pretty sure this topic will fill a room: Turning the Web on its head – let’s have the server call the client.

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. Honestly, all the code, (client and server) that makes this ‘Stock Quote Client’ an event-consumer, instead of a stupid poller, will be shown.

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, to 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).

Read More

JavaOne 2007 Wrap-up

Posted by on May 13, 2007 in Java

Final Thoughts, and Open Questions

After four exhausting but inspiring days at JavaOne 2007 it’s good to be back in San Diego. I flew out of SFO Friday evening, still thinking about the final general session, hosted by James Gosling early Friday morning. Gosling had the pleasure to show all kinds of cool projects, gadgets, and devices, like small and also not so small robots, all featuring Java of course.

However, I couldn’t shake the feeling that he either hadn’t seen some of the projects before, or had already forgotten about them; you be the judge what would be worse.
Thor Norbye, Sr. Engineer at Sun and member of the Java Posse, once again was part of the show. This time he demonstrated the Ruby on Rails support in the upcoming NetBeans 6.0. Looking at the topics Thor covered in previous years (2005, Thor demonstrated Java Studio Creator 2, in 2006, he showed the Visual Basic language support in Java Studio Creator) however, it remains at least questionable how relevant NetBeans will become in the Rails community.

The conference seemed to have been put together in a hurry. Speakers had to submit their slides for approval and correction, which is common. Still, some speakers were quite surprised, obviously seeing their corrected slides for the first time. Some slides were completely deleted from the deck, other contained references like ‘.. also covered in session XXXX’, literally. Most of the demos that where prepared and presented by speakers from Sun broke down, especially during the first two days of the conference.
Now, all this is not a big deal at all. In fact, one can assume that they were really showing stuff they were currently working on and therefore it’s not surprising to see it blow up during a demo.

However, considering that JavaFX Script was hyped as the biggest innovation all-over the show but was mainly a marketing stunt (JavaFX Script a.k.a. F3 ‘Form Follows Function’, was acquired by Sun from Chris Oliver in September of 2005 with the acquisition of SeeBeyond), really makes you wonder what’s going with Java at Sun. Strangely enough, most conference schedules still had listed JavaFX related content under its old name, F3.

What about the Java on the Desktop?

Innovations, useful to Java on the Desktop, seem to come either from outside of Sun (e.g. Romain Guy (now at Google), Kirill Grouchnikov, Ben Galbraith’s Swing productivity framework, or not even from not desktop related groups and technologies at all, like Java-DB (a.k.aApache Derby and formerly known as Cloudscape) or Java Persistence API (JPA), which fortunately can be used without a container (see Using the Java Persistence API on the desktop).
Java-Desktop related innovations that are pushed by Sun like Beans-Binding for instance (which in my opinion was prematurely implemented and pushed into NetBeans) are totally off, overly complicated, and not completely thought through; using totally String based EL (Expression Language) to define bindings in compiled code, come-on, you cannot be serious.

Binding binding = new Binding( caricature, "${eyeStyle}", eyeSlider, "value");

Having a complete HTML renderer in Java on then other hand, like available in Adobe-Apollo for instance, is still not even on the radar.

Does Java still need Sun?

After open-sourcing Java and seeing projects like Apache Harmony, or BEA’s JRockit Liquid VM, which can serve as an operating system image in VMWare, rather than requiring a supporting host OS (see JRockit’s Liquid VM could be the first real Java OS), the answer seems obvious. It’s probably nice to have Sun around but Java has grown-up and found new friends; Java has simply left the nest, not needing it’s parents (Mr Gosling and Mrs Sun) anymore. Sadly though, grown-up on the other hand may also stand for not growing anymore.

Read More

Desktop Matters

Posted by on Mar 13, 2007 in Java

Is enthusiasm, energy, and creativity enough to catch up to competitors who may not have the same level of compassion but instead have a strong commercial interest?

Spending two days at the Desktop Matters conference, sharing ideas and experiencing a newly re-energized group of hardcore Java Desktop developers first hand was truly outstanding. Java luminary Ben Galbraith had organized this small but very intense 2-day conference under the umbrella of Jay Zimmerman’s No-Fluff-Just-Stuff Symposium Tour.

Personally, I felt much honored to be given the opportunity to give a talk about Swixml, the DSL (domain specific language) and GUI generating engine for Swing applications. And just looking at the agenda gives a pretty good idea about what I mean with intense; all talks were short and speakers didn’t waste any time with the usual partially introductionary stuff and instead focused on their core message.

The whole event seemed like a strong, colorful firework of concepts and ideas, all pointing to the same direction: despite the entire buzz around AJAX, desktop applications still matter, especially when it comes to high quality, visually oriented applications. The visual impression a user gets from an application, projects directly on to the company making or providing the app. Reason enough for Apple for instance, to spend time, money, and effort, to create iTunes as a native desktop application for Windows and OS X.

It was encouraging to see that the group of top quality people that Sun has assembled around Hans Muller and Chet Haase seems the strongest (in quantity and quality) it has ever been. Also Apple’s continued commitment to porting Java Swing to the Mac OS X platform was appreciated much; no surprise, considering that at least 70% of the participants brought an Apple Laptop to the conference.
A good summary of most of the topics discussed at the conference can be found at InfoWorld.

The newly found confidence in the Java Desktop manifests itself in the announced Nimbus look-and-feel, a cross platform look-and-feel that Swing developers could be proud of. Applications deployed with this look-and-feel will look distinctively different from native applications but will look the same on Windows, Linux, and OS X.

Read More