Latest Posts

Disclamer: This blog-post is adapted from my talk about "Building Rich Internet Applications using SproutCore and Cappuccino", which I held at The Roots Conference in Bergen the 24th of May 2011. The slides from the talk are available on iWork.com. --- We have had a number of very good server-side frameworks for building Web 2.0 Internet applications for a number of years, and they all helped spike the AJAX "revolution" for the Web. AJAX finally gave us a genuine dynamic feel to the Web, which was a very welcomed change for the users. However, everything still felt a lot like Web 1.0 on the server side, which there are two main reasons for. h3. Server-side state management and markup generation...

- Read full post

h2. Moving your profiling to the Cloud For the last couple of years I have been working on an application (EurekaJ - Currently in beta. Final release expected in August 2011) that makes it possible to visualize and alert upon metrics generated by a profiling agent for the JVM. During the process I have looked into a number of technologies and have tried to choose the tools that are most suitable for each part of the design. I started out writing my own Java agent before I discovered BTrace in 2009. BTrace promises to be "a safe, dynamic tracing tool for the Java platform", and I decided to make the switch from my custom developed agent towards BTrace. To make...

- Read full post

In the SproutCore client I wanted to display a customized icon for the leaf nodes, depending on the type of node. Each node has a "nodeType" parameter that can either be "chart", "alert" og "groupedStatistic", and I wanted to display a custom icon for each of the different nodes like this: As you can see from the image above, the chart nodes have a image of a chart, the alert node of a warning triangle while the Grouped Statistics node has an icon with a "G" in it. Calculated property on the model The first thing I needed to do was to add a calculated property on the model object for the treenode, which I called "itemIcon". This property would...

- Read full post

Why implement Statecharts ? Have you ever been frustrated about the number of code lines that you have in you Model-View-Controller application (MVC) for managing the current state of the application ? Is determining the overall state of the application hard to figure out, and generally a mess to debug ? Does your GUI tend to show the wrong panels, have overlapping panels and in general have recurring bugs with its state ? Then Statecharts are the way to go to achieve a cleaner, testable and less error-prone GUI. The main advantage, for me, using statecharts is the clean seperation of concerns between the GUI View layer and the Controller-layer in an MVC-Application. Instead of mixing controller-logic with code that...

- Read full post

Introduction EurekaJ Profiler (http://eurekaj.haagen.name) has a frontent Sproutcore (SC) client application that talks to a backend Java application. The Java backend is deployed as a .WAR file and in this particular setting, I wanted to be able to package the Sproutcore application inside the .WAR file. For this approach to be possible I needed the following from the Sproutcore Buildtools: Relative paths. By default the sc-build tool will use a absolute paths. starting with "/static". This wont work when deploying with a .WAR file because the context path of the deployed application depends very much on how the application is deployed. Relative paths is something that is being worked on for the 1.5 release of the Sproutcore build tools. Communication...

- Read full post

Featured Projects

SproutCore

SproutCore is a framework for building blazing-fast, desktop-like applications in the web browser using only native HTML5 features.

EurekaJ Profiler

EurekaJ is an Open Source, Standards based profiler tool for Java applications.

BTrace

BTrace is a safe, dynamic tracing tool for the Java platform.

JWireReplay

JWireReplay will be a tool that is able to replay HTTP traffic that is captured with the tool tcpdump.

Garcon

SproutCore build tools using node.js.