February 13, 2011
January 11, 2011
Introducing Teppefall DevGrid
This is the first "cloud based" product from Teppefall. More information will come over the next couple of months. It runs on Google AppEngine and is standard J2EE plus a few Google extensions. JavaMail, Twitter4J and XMPP works great.
January 05, 2011
Sneak peak - HybridKit
Alpha product. Even the website is alpha. Teppefall HybridKit coming soon to a device near you.
July 14, 2010
Java 6u21 DownloadServiceListener example
Testing out the 1.6.0_21 new progress-class attribute in JNLP.
What is funny about this new release is that all JavaFX developers must PAY MONEY to run their code. Or they get this message. Or maybe I am wrong and screwing up cross domain issues. Who the heck knows. This is the second or third time they pull a move like this without writing any advisories on it.
It is also funny how clicking YES and NO both hang my software. Is someone making assumptions about threads ? Silly me ?

You can see the new DownloadServiceListener loader function here . Media player and 3D is now broken because Sun changed the rules... again. If nothing happens you might have to clean the Web Start cache. You must run Java 6u21.
March 23, 2010
Porting WPF to Windows Phone 7 Silverlight
One year ago or so I released a media player developed in Java Swing. And for over one freaking year I've been sitting on my ass waiting for Sun to put the media component JMC into the JRE. And this has never happened. So what to do ? Do I use JavaFX instead ? No, because those people are busy ignoring real problems like library dependencies, CPU/memory usage and overall user experience.
So I test out Nokia Qt and Microsoft WPF and create media players using both frameworks. And then I do some testing and realize that Qt has problems with Phonon plug-in compatibility on 64bit Windows 7 and that WPF is slower to start up than a Java Swing application. And then Windows Phone 7 comes along and I start porting my WPF and Silverlight code to that.

Continue reading "Porting WPF to Windows Phone 7 Silverlight" »
January 16, 2010
64bit support is coming
Supporting 64bit is not very important when most of your code is in Java. But Teppefall does have around 300kb of C++ that needs to be ported. And the process is something like this.
- Install crazy big Windows SDK and Visual Studio on Windows 7.
- Realize that the Windows documentation is wrong when it comes to "vcvarsall.bat amd64".
- Dig around for a while.
- Find the correct BAT based configuration files and drag them into the application menu.
- Create custom makefiles.
- Scratch your head as Microsoft uses the suffix "32" in paths and library names everywhere.
- More mind numbingly boring rewriting of makefiles.
- Everything compiles, but Winsock related code is broken. Might be configuration. Might be worse.
- Realize that 64bit JRE writes a registry JVM value that points to a non-existent file. My fault ?
- But the code supports that, so just use TEPPEFALL_JVM variable.
- Success!
Itanium support is probably not happening. The compiler can't find "Windows.h" under the IPF configuration and that's kind of a problem unless I want to dynamically load every method. 64bit Windows 7 also seems to crash some plug-in based systems. They keep changing the security model and developers are behind all the time for some reason. Although, the same problem exists on 64bit Linux. Which is stranger since 64bit compiler support is just a GCC parameter away.
December 11, 2009
Which one is Swing and which one is WPF ?


The volume component gives it away. But Silverlight 4 may change that.
November 14, 2009
WPF MediaElement and Qt Phonon demos released
You can now compare the Swing JMC system with the WPF and Qt equivalents. These Windows programs are beta quality and not feature complete. The big problem here is of course that the latest version of JmediaPane is not available to anyone outside the big castle surrounded by fire breathing dragons. And therefore bug reports and general feedback is just a colossal waste of time.
Continue reading "WPF MediaElement and Qt Phonon demos released" »
November 06, 2009
A new look
Testing out the new Substance 5.3 Gemini theme (SubstanceGeminiLookAndFeel). Looks pretty good. Now supported through executable parameter -Xgemini.




November 05, 2009
This is why I still use Java Swing
This is the latest MP prototype. Since JmediaPane is nowhere, I'm experimenting with forms and other boring things. Everything is scalable and the application can be broken down into small visual parts without compromising usability.
I'm using MigLayout for forms, CardLayout BorderLayout FlowLayout GridLayout BoxLayout AssemblyBoxLayout for center panels and Teppefall Layout assemblies make up each individual panel. I then just update one panel at a time in TL. Most of the layout code was written almost two years ago, but TL makes reuse very simple.
The clue behind this application is that almost all the UI layout code is in XML. I just use TL for visual and i18n updates. The idea that JavaFX syntax will make layout easier sounds completely delusional to me. The reason people use XML is because XML is a data format. My TL assemblies are just like Apple's NIB/XIB. And Teppefall Hybrid is sort of my version of Cocoa NSApplication.
The text should probably be a little bigger though. Swing application text looks tiny compared to WPF.




September 21, 2009
Comparing Swing with WPF one more time
Here are two similar screenshots. Sun uses a pretty brutal video scaling algorithm and this is a better screenshot than the one below this post.
Sun seems to be in a coma, so I'm only working on the WPF version.


August 05, 2009
Java Swing versus WPF running on Windows Vista Chuck Norris Edition.
Do you know what a guy like me does when Sun Microsystems refuses to release JMediaPane, a Swing API that was announced almost three years ago ? Do I create a lot of JavaFX code and then go into a corner and cry ? No... I create the same media player in Microsoft WPF and C#. That's what people like me do. Yeah, Chuck Norris approves this message !


Continue reading "Java Swing versus WPF running on Windows Vista Chuck Norris Edition." »
Java Swing versus Adobe Flash/Flex
This is really a stupid test, but I'm showcasing this just to give Adobe a little hint. This my JMC based video player playing four FLV encoded videos versus playing one FLV video in the Adobe Media Player. A lot of memory is being used by the AMP streaming logic, syndication system, image cache, theme system, animation engine and such but the memory usage is still pretty spectacular. But that's not the most shocking issue. The CPU usage is for some absurd reason in the same ballpark. Give or take a few ballparks in scientific accuracy.


April 27, 2009
Teppefall Preview
Created this installer for really lazy people - Teppefall Preview. I built this system for testing, so expect error messages and missing functionality.
I will not be releasing signed versions.
April 20, 2009
Provocation, hype and screenshots
Ignoring people. Empty talk does not pay my bills.
Better than Adobe MP ? OMG ! Meh, no numbers to back it up yet. 40+ threads might be positive. Lean.
Status
You can now select which screen is the primary fullscreen. Entering fullscreen mode and running fullscreen is fast, but exiting fullscreen mode under a non-native LAF might result in a very slow Windows Explorer on Vista for a short time (10 seconds max).





April 02, 2009
Picture of a Java Swing developer

I was playing with my bone (JMediaPane) and then I checked out the rope thingy (JWebPane) and now.. well.. I am just drinking beer because I am waiting for the lawyers.
Woff. Woff.
Image credit: http://revision3.com/diggnation/.
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.



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 ?







March 03, 2009
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).

High quality FLV (Flash video).

August 25, 2008
Kvitre redux

If anyone can tell me how to do a variable height Jlist cell renderer that supports in-line HTML links and correct text flow, than I'm all ears. I'm just completely stumped. Hans Muller and Scott Violet have both failed to create such a renderer.
I was thinking HyperlinkListener and JEditorPane, but that doesn't seem to work at all. You can do something like this, but that doesn't solve the problem. The links are not active and the text is obscured. (Kvitre's frame resize grabber is in the top left, rather than right bottom)

The border color blending is also a challenge.

Only the top graphic is hardcoded. Everything else is Java 2D and icons.

August 14, 2008
So much work
Here are some prototypes that didn't make it. I'm not saying that they will never be made. I just don't see a marked for them at this time.
Image scaler

Twitter client

Application lancher (think AIR)

Internet login (think Valve Steam)

Color palettes

July 30, 2008
Cute girls are now more tech savvy than me
Watch Burt Rutan (Scaled Composites) on iJustine's QIK stream showing off "Eve".
And.. just in case.. cute can be replaced by "intelligent", "smart", "clever", "well read", "organized", "impressive", "normal", "standard", "some", "random", "one", "a" and many other words and articles in the English dictionary. But I'm tired right now and "cute" sounds better as a title. So there ! Man Power ! Bææææ !
June 10, 2008
Teppefall Kvitre prototype
Just playing around with Java 1.6.0_10-beta-b23. The shaped window is a bit ugly in the edges, but this is the best I can do for now. The resizing is a bit wonky as well. I have to redesign parts of the LAF if I want something better. Might be too much work, who knows. The transparent window feature is working well, but might be too annoying. Also, the top black area lets you drag the entire application. This guy got some huge skills.
Kvitre is just a byproduct of Capture. My plan was to check out the JavaFX media stack before I release something, but that is taking forever so who knows. Feels extremely stupid to release code that depends on Java Media code from the stone age. And the Jmyron video decoder that I use is great for crashing virtual machines. Sun needed all this time just to implement something that was cool seven years ago (Windows XP from 2001) ? Does not bode well for JavaFX.
I would say that 1.6.0_10-beta-b23 is really Swing 1.0. Now we actually match native code for the first time.
A lot of noise about Sun developers leaving for Adobe. Who cares ? Adobe Flex needs all the help it can get. The bullshit factor is through the roof. Flex and GWT are fighting over the prestigious “most horrible user experience” award. I thought we Swing developers had that shit down.. but now we got competition !
Background images by Taylor.
April 24, 2008
Mixing FX and Layout
I am not sure if people are aware of this, but you can run Teppefall FX scripts within Teppefall Layout.


Also, here is Colorspace in Titanium White LAF.

March 19, 2008
Writing Teppefall applications in Javascript
It was never my intention to write Teppefall applications in Javascript, but here is a simple example on how to do it. The update system, the DSR (Teppefall Runtime) launcher and some Application logic is not available at this time because of dependency problems. It is hard to use Javascript when the concept of a Class is replaced with something else. And working with all kinds of adapter logic is also pretty confusing.
If you want to run this example, just move the /network_app folder into the Teppefall SDK root folder and run Network.cmd or NetworkOSX.sh. This demo showcases plugins, the taskbar icon, layout and basic setup.
You have to download Teppefall Layout to get the original layout file used in this example.
Teppefall SDK Javascript example: network_app.zip

Continue reading "Writing Teppefall applications in Javascript" »
February 27, 2008
Teppefall Capture – From prototype to application
There is a lot of tricky logic in this application that is not so obvious just by looking at some screen shots. There are the delicious differences between Windows XP and Vista on how they deal with shared native libraries. There are minimum two gotchas. One, if you link against stuff like Visual C++ or MingW32 G++ you must add the C++ library to your application base path on Vista. It will not work the way it does on XP, where the DLL can just be on the system path. Second, any custom JNI library must be added to the system path before a VM is created. Just setting java.library.path will not work on Vista -if- the path is not the base path (“.”).

Continue reading "Teppefall Capture – From prototype to application" »
February 24, 2008
Introducing Teppefall Capture
This application is still a work in progress, but I am tired of keeping it a secret so here is the dirt. Teppefall Capture is a simple Photo Booth clone. By simple I mean it is built on the FX/Layout stack, has an OpenGL powered live preview (JOGL + TextureRenderer) and gets its video feed from a custom video capture library.
.png)
November 22, 2007
Photoshop Express in Java and Titanium White LAF
Experimenting with a new white version of Titanium LAF. It is pretty difficult to create something that is not completely bland. Car white is a complex creature indeed. Especially when trying to turn it into a usable user interface.
Also been playing around with a Photoshop Express clone. Testing out transparent components, live image resizing, huge bitmaps and custom renderer's. Performance is not where I want it to be, even when using the latest early access builds from Sun. But I think it is more about CPU performance than GPU, so some tweaking might make it better.
Continue reading "Photoshop Express in Java and Titanium White LAF" »
October 31, 2007
Screenshots of Project Amanda (prototype)
Here are the first screenshots of Project Amanda. These are UI mockups done in Darkstar Layout and all the code is in XML and Javascript. Please understand that this is not a real application. This is a super-duper alpha and it might not get built at all.
Darkstar Layout does not support includes, but it does support Java components. So I am simply creating multiple Layout objects (com.teppefall.ds.layout.Layout) within one Layout object and replacing the layout at runtime through drag and drop. So these four UI states are actually made up of eight XML files. Each a component on its own and reusable in other applications.
Project Amanda might become a small rich Internet application developer environment. It is simply a remix of my current code base. Colorspace is the most downloaded application so far, so there might be some interest in fast, to the point, creative tools. I might use some of Adobe's RIA standards to keep things simple.
But again.. this is just me thinking out loud.

Continue reading "Screenshots of Project Amanda (prototype)" »
October 15, 2007
Project Amanda
Something I am working on. Might be the next application. Who knows.


October 09, 2007
SVG and Darkstar FX
I have been playing a little with Kirill's SVG to Java transcoder and then manually converting the Java code into Javascript based Darkstar FX renderer's. Very tedious, but good fun nevertheless. I had less success with the SVG to JavaFX converter, but that might just be a case of me using old software.
There are at least four SVG importer pipelines available for Java, so there seems to be some interest in this.
- Batik
- Kirill Grouchnikov - SVG to Java transcoder (based on Batik)
- Chris Oliver - SVG to JavaFX transcoder
- Jasper Potts - SVGShapeExtractor



May 27, 2007
Writing Darkstar applications in Python
You don't have to use Java in order to create Darkstar applications. Here is a simple project I wrote in Python - py_dsi.zip.

Continue reading "Writing Darkstar applications in Python" »
May 22, 2007
Edit this page
May 21, 2007
Another Photoshop mock-up
Has anyone implemented a multibutton like this ? Mac OS X use them in tabs and they are common in tools like Dreamweaver.

May 16, 2007
Photoshop mock-up
Intelligent forms should make the JFC experience more inviting. Subtle hints are more user friendly than "ERROR ERROR" after move, click, move, click, move, click, click, etc. The inspiration comes from the Web 2.0 movement, but the concept is very old. Very 1999 I guess.
This is just a Photoshop mock-up by myself, but according to some trusted sources we might see this functionality very soon.

May 11, 2007
Darkstar Apollo/MXML compiler
I wrote a Apollo/Flex compiler this week that compiles into 100% Java. Just a toy.. it implements like 1,5 percent of Flex and has no Actionscript or SWF support.

You can transcode SWF to Java FX, Actionscript can be mapped to Java.. but that still means no video, no mp4 and no video capture support. There is no point.. People use Flash BECAUSE it supports these things.. not because it is in XML.



