Main

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 ?

Teppefall Media Player (91).png

Teppefall Media Player (93).png

The volume component gives it away. But Silverlight 4 may change that.

December 10, 2009

Sun is missing out on a huge opportunity

Teppefall Media Player (85).png

By being hell bent on "finishing" JavaFX instead of augmenting Swing Sun has more or less destroyed their credibility as a desktop platform company. The reality is that Swing plus a scene graph, accelerated layers and a new media framework is more valuable than the entire JavaFX ecosystem. Adobe, Microsoft, Apple, Opera, Mozilla and Google all believe that XML is the future of layout and yet Sun believes a non-standard syntax based on Lisp and JSON is the way to go. And the fact that C#, Actionscript, Dalvik and Javascript are all Java clones seems to indicate that Java is just fine as a user interface language. Adobe even exports twine animation code as XML and vectors as SVG. I sit here working in Adobe Creative Suite and wonder what Sun is thinking.

Continue reading "Sun is missing out on a huge opportunity" »

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.

Teppefall Media Player (63).png

Teppefall Media Player (66).png

Teppefall Media Player (67).png

Teppefall Media Player (68).png

October 19, 2009

Teppefall Hybrid released

Hybrid is a component API for developing Swing applications. Instead of writing Java code from the start, you simply write a layout file and an application manifest file. Both are XML files. You then export the user interface assembly in Teppefall Layout and start adding Java or Javascript code. The application manifest format is almost identical to Adobe AIR application.xml files.

You only need Java skills if you want to deploy in a web browser. Compiling Javascript is possible, but dependency problems might bite you in the ass later on. Rhino changed their threading model once and that really confused the heck out of me.

Teppefall SDK 20091019 (Windows, Mac OS X, Linux, Solaris)

Continue reading "Teppefall Hybrid released" »

May 28, 2008

Cached layout explorer

This is the cached version of the static layout explorer . It uses the default LAF to minimize the effects of the applet class loader.

One major problem with applets is that the applet class loader starts looking for images and class files on the web server if it can not find them in the JAR files. Multiply that with a couple hundred people and understand why applets are slow.

My applets are even trying to read /META-INF/services/javax.xml.parsers.SAXParserFactory on my web server. So I get thousands of 403 errors simply by hosting an applet that uses the XML/XSLT framework. Library owners should be more aware of this.

Bilde 41.png

http://app.teppefall.com/cached?url=shortshorts.xml (Java Applet, Java 1.6 API)

http://app.teppefall.com/cached?url=meta_image.xml (Java Applet, Java 1.5 API)

http://app.teppefall.com/cached?url=meta_location.xml (Java Applet, Java 1.5 API)

http://app.teppefall.com/cached?url=pownce.xml (Java Applet, Java 1.5 API)

May 20, 2008

Static layout explorer

This applet showcases the power of Teppefall Layout + MigLayout. Just click on the layout files below. There is no logic attached to these examples and you need Java 6u10 Beta b23 to run them correctly.

I would like to point out that the applet is around six trillion times slower than the application. So if this takes forever then download the application instead.

Teppefall - Explore - Mozilla Firefox.png

http://app.teppefall.com/explore?url=shortshorts.jfc (Java Applet, Java 1.6 API)

http://app.teppefall.com/explore?url=meta_image.jfc (Java Applet, Java 1.5 API)

http://app.teppefall.com/explore?url=meta_location.jfc (Java Applet, Java 1.5 API)

http://app.teppefall.com/explore?url=pownce.jfc (Java Applet, Java 1.5 API)

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.

scheme.jfc - Teppefall Layout (14).png

scheme.jfc - Teppefall Layout (15).png

Also, here is Colorspace in Titanium White LAF.

Colorspace.png

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

network.js
network_plugins.js

Teppefall Network Teppefall Network

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 (“.”).

Teppefall Layout - Capture

Continue reading "Teppefall Capture – From prototype to application" »

November 06, 2007

Colorspace 1.7, FX/Layout 3.4, SDK 20071105

Colorspace updates:
- Support for two monitors !! (thanks to Quaqua/Werner Randelshofer)
- CMD and SH files have the correct Darkstar parameters.
- Added a button that displays the pop-up menu.

Teppefall SDK (Darkstar) updates:
- EXE parameter -Xgraphite. The Graphite look and feel is faster than Titanium LAF.
- Linux executables.
- Linux shell script updates.
- Windows command script cleanup.
- Executables now treat all applications the same way.
- Substance 4 - Non-active menu color corrected.
- Substance 4 - Disabled menu item color corrected.
- Substance 4 - Color field no longer have dots in it under a dark LAF theme.
- DSR supports the new EXE files. You can now use -Xgraphite and -Xchrome on the DSR executable.

Continue reading "Colorspace 1.7, FX/Layout 3.4, SDK 20071105" »

October 01, 2007

Colorspace 1.6, Layout 3.3, FX 3.3 and Darkstar 20070930

New features:

This is a library update with some compatibility fixes.

  • Substance 4.0
  • Rhino Javascript 1.6
  • BSF 2.4

Continue reading "Colorspace 1.6, Layout 3.3, FX 3.3 and Darkstar 20070930" »

September 08, 2007

MiGLayout forms

miglayout.jfc
<layout class="net.miginfocom.swing.MigLayout">
	<component class="javax.swing.JLabel" text="First Name"/>
	<component class="javax.swing.JTextField" id="firstname">
		<property name="columns" value="15" type="int"/>
	</component>
	<component class="javax.swing.JLabel" text="Surname" constraint="gap unrelated"/>
	<component class="javax.swing.JTextField" id="surname" constraint="wrap">
		<property name="columns" value="15" type="int"/>
	</component>
	<component class="javax.swing.JLabel" text="Address"/>
	<component class="javax.swing.JTextField" id="address" constraint="span, growx"/>
	<component class="javax.swing.JButton" id="submit" text="Submit"/>
</layout>

Continue reading "MiGLayout forms" »

This website is all about alpha and beta software

Download non-beta software here