« February 2009 | Main | April 2009 »

March 30, 2009

Swing looks and feels pretty good

Performance is better than ever. A window shadow API would be nice though. Poor Vista LAF.

Teppefall Media Player 0.91 BETA (2).png

Teppefall Media Player 0.91 BETA (3).png

Teppefall Media Player 0.91 BETA (4).png

March 18, 2009

Teppefall Media Player 0.9 beta released

The Teppefall Media Player is now available as a beta for Windows and Mac OS X. Java 1.5 or higher required.

Try running four or more Flash videos at the same time and then compare with the other players. The Adobe Media Player and VLC seems to be less scalable.

March 17, 2009

Latest screenshots - Mediaplayer, etc

Using Substance 5.1 Graphite now. Titanium delayed. Code separation and threading eating my time. Sun developer world feels fragmented and hype oriented. Maybe I am too young ?

Teppefall Media Player 0.9 BETA (6).png

Teppefall Media Player 0.9 BETA (5).png

Colorspace (21).png

Teppefall Capture (54).png

Colorspace (20).png

EmbeddedApplication.png

mediaplayer.jxml - Teppefall - Google Chrome.png

March 05, 2009

Sun is pulling a “Netscape rewrite” with JavaFX

Based on public statements from Sun developers, I have decided to postpone my minimal JavaFX research and focus on other things. I think that JavaFX has the potential to become something cool and useful, but if this comes at the expense of Swing, then forget it. There is no way I am building my business on something as immature as Sun's new FX platform. I waited years for Sun to fix Swing bugs and I am not doing that again with JavaFX. I will rather write Objective C, C# or C++. Sun tells us that graphic designers are going to use those JavaFX tools. Are they serious ? A senior designer costs €1000 a day. He is going to sit there and export JavaFX assets one PSD or AI file at a time ? Really ? And then use Netbeans as a "creative tool" ? Has Sun talked to a single design shop that is not on the Sun payroll ? I use the Adobe CS suite all the time and to me the Sun work flow is way too slow.

Sun JavaFX will need two or three years of development to even match the most basic Adobe and Microsoft desktop offerings unless they got something huge under wraps. In a down economy with no money and no people. They are not pulling a rabbit out of a hat, they need to pull a two ton bison out of a hat. If they think JavaFX can replace Swing for user interfaces they are on drugs. The only logical assumption is that Tim Bray went all AJAX AJAX AJAX on a management meeting and HTML was seen as the status quo. JavaFX looks like a Flash/Flex/Android/iPhone competitor who wants to be "on all your devices". This is simply Macromedia propaganda from 2001 and IT DOES NOT WORK. It is 2009 and there is no Flash on my TV or on my cellphone. Why ? Because distribution companies do not want to redistribute your wares anywhere without "adequate compensation". Just the code signing itself is a huge hurdle. Just look at all the Sun developers who use self signed code and look at the whole centralized App Store phenomenon.

This is like bizarro world. Java 1.6 release 10, plus JOGL and JMC, was amazing and now all of a sudden JavaFX, the ultimate alpha product, is "Swing 2.0". Instead of cars, we need hoverboards. JavaFX is a hoverboard-pony. A hoverpony designed for marketing droids and khaki-shirt management developers who are "serious and stuff" about programming. Though, JavaFX is very logical if you look at the aging JavaME platform and all the strange Xlet stuff that Sun has been working on. Sun has talked about Bluray for eons, but those few people who actually have access to the correct software and hardware are not talking about it; so nobody cares. JavaFX might be a Jini in a bottle, so to speak. Just ask yourself, would Sun put Servlets on the back burner because JXTA was OMG zo l33t shizzle ? I do not actually know.

Like, Sun has done a fantastic job on Java 1.6 and then they stink everything up with politics ? Is this a technical decision or a pissing match between internal management ? Maybe someone got tired of fixing Netbeans bugs and wanted something fresh ? Heck, I am so bored with JavaFX that I built a competing Java Swing based application platform with no animation support whatsoever. Just because I think multi-core might give Swing an edge in the next couple of years. Google Gears now support threads and this is pretty far out when you consider the type of programmers who do Javascript development. Although I have no illusions about hundreds of developers suddenly writing high level multi-threaded code. Most of us are just faking it and pretending to know what we are talking about when words like interrupt, volatile and join are uttered in general conversation. Most of the heavy lifting will be done on the inside of the Teppefall application framework for sure.

From an emotional point of view though, calling JavaFX "Swing 2.0" is sort of insulting to anyone who has written large Swing libraries. Maybe I should call Gateway a "Sun 2.0 hardware platform" ? It is ok to be proud of your own work, but claiming that JavaFX does not need Swing is pure comedy from a technical point of view. JavaFX is not a Windows Vista type project, but rather a Windows XP plugin with a Windows Vista branding campaign. And Windows Vista was the "Wow" in "Wow, everything is broken".

JavaFX can make itself useful by integrating with Swing and those "Swing 2.0 rewrite" people can go play with Play-Doh and crayons. Or alternatively, rewrite one of the most complex pieces of code in the open source world. Some guy showed me 12 lines of Groovy code and told me this is the hot new shit that is replacing my 2Mb in-house Java/C++ library. Based on my experience, those SwingGroovy 2.0 people will be working on their «hot new shit» for quite some time. Start a family, build a house, try to become an astronaut on your free time and then one day when you are done doing all that, SwingGroovy 2.0 will be ready. I do not care if an API is as ugly as a monkeys behind. If it works correctly, happy days. Pretty API's are for people who never release products. Just look at PHP. Uglies API known to man kind, but people make millions of dollars using it. Although the desktop is not the same thing as the server.

JavaFX can replace JavaME and Xlets, but comparing it to Swing is mind blowing. Swing suffers from many Sun developer shortcuts, but the bottom line is that Swing freaking works and JavaFX is "OMG, we must rewrite Netscape in Java from scratch now" and "quick, everyone forget that a solid foundation is important". Sun is pulling a Netscape rewrite. Swing is too valuable to be ignored. And if it gets ignored, then JavaFX is done for. Because there is no JavaFX, only Swing. You still have the "people who wrote/writes Swing code" just an article or two away. The JavaFX developers are all 100% noob-tastic. And making Twitter clients for a company that is world famous for not making any money is surely the future.

GWT, Gears and Flex label themselves as open and open source. But make no mistake, these three frameworks are the pinnacle of vendor lock-in. There are no competing and compatible runtimes. And ask yourself what is cheapest. Forking an open source project or starting from scratch ? Sure if you got megabytes of code, then it pays off. Maybe. And just ask yourself, would you use those API's if the companies behind the technologies where not Google and Adobe ? Open source today is often just a lazy attempt to create a public standard. Throw some code at a wall and see what sticks.

There is so much ignorance in this industry. Just because something is old does not mean that the new stuff will beat the old stuff. You need to move beyond the toddler stage before picking on the 10 year olds.

March 03, 2009

Tweaking application.xml files for Hybrid

Then Teppefall branding in the primary JFrame can be removed by adding an application.xml @grabber attribute and setting it to false. You can also remove the tray icon by setting @traymenu to false.

The script attribute is relative to the application.xml, just like the content element.

Hybrid specific application.xml attributes(may change in the future)
@script
@traymenu
@grabber

Teppefall Media Player screenshots

Still working on the Teppefall Media Player. Not sure if there is any point in creating this software. Hybrid is ignored by pretty much everybody. It is so comical to read 6000 articles about how Flex/GWT/Gears is not private static final volatile boolean TOTAL_VENDOR_LOCK_IN = true; Or about how 12 lines of Groovy will solve all your problems. I could support all the features of the Adobe Media Player, but why spend that much time and money on something that might only be used by a 1000 people.

Anyway, JMC 1.1 was a huge improvement. But I still do not understand the threading model or the seek/timing logic. There is no documentation and I am simply coding in the blind using only public API's. Performance is great and memory use rivals that of the Adobe Media Player. The Adobe player is a bit of a memory hog, but this is simply because of pictures, extra layout, RSS importers, advertising and branding rather than a bad design.

I have some prototype Rome RSS/ATOM based code that solves the channel import problem, but using a custom DOM parser is easier from an API perspective. Unfortunately, the web is filled with "creative" XML and then you go back to Rome again.

Also, fullscreen mode works perfectly and the OSX/PPC libraries have decent performance.

Medium quality FLV (Flash video).
Teppefall Media Player 1.0 BETA.png

High quality FLV (Flash video).
Teppefall Media Player 1.0 BETA (4).png

Next generation Teppefall software

Coming soon to Teppefall Link.