Pathfinder Development

Pathfinder Blog

HTML5, Ajax history management, and The Ajax Experience 2008 Boston

Brian, a.k.a. Brain, Dillard

The Ajax Experience last week in Boston yielded lots of exciting developments on the Ajax history management front:

My talk itself drew a crowd of 110 people or so despite its 8.10 a.m. start time. I received good questions from the audience and didn't notice too many people heading for the doors when they realized how deep into the nitty-gritty technical details I was getting. Instead of using Keynote or Powerpoint for my slides, I built a basic DHTML application. That way, one artifact could serve as both my content and a demo of Really Simply History, the Ajax history and back-button library I maintain. You can view the application - and the slides - at Pathfinder Labs.

I did not meet my goal of releasing an alpha of Really Simple History 0.8 in conjunction with the conference. But I did accomplish a ton of work on the library during the build-up to my talk. I'm now hard at work finalizing the alpha and preparing updates to the project's Google Code-hosted homepage.

The most exciting Ajax history development was the face time I enjoyed with Nathan Hammond, creator of JavaScript State Manager (JSSM), and Brad Neuberg, original creator of Really Simple History. After my talk we enjoyed an impromptu Ajax back-button summit and hammered out a shared agenda for the future of both my library and the topic in general. I'm pleased to announce that Nathan will be coming on as an RSH co-maintainer with the goal of merging RSH 0.8 and JSSM into a single, stable 1.0 library. I'm also excited that Brad, Nathan and I - plus other authors of Ajax history libraries who wish to participate - will be issuing a position paper on the current history implementation in the HTML 5 spec. Ajax history experts, please contact me via Pathfinder if you want to weigh in.

As for the conference itself, it was my first time attending The Ajax Experience and I really enjoyed it. The topics were many, varied and well-presented. My favorites included Douglas Crockford's discussion of JavaScript's good parts, which could have been a simple book promo but turned out to be far more; the panel discussion between the leaders of YUI, Dojo, jQuery and Prototype moderated by the inimitable PPK; and my colleage Dietrich's un-sexy but vital look at how to resurface J2EE apps for Ajax using the Google Web Toolkit.

I have to say, the crowd here felt like my tribe. The guys running around with the word "JavaScript" shaved into their hair put a smile on my face. Ajax developers are often third-class citizens at other conferences. They're either jammed together with designers and user experience folks, or thrown into the midst of Java and Ruby developers. That wasn't the case here, and I dug it highly.

My least favorite aspect of the conference had nothing to do with the crowd or the content; it was the depressing lack of vegan food. One meal was 90% vegan, but most were 0%. Given the conference center's distance from civilization, it would have been nice if attendees' diverse dietary needs had been taken into consideration. On the plus side, I think I lost five pounds.

Many thanks to the folks from Tech Target for the awesome speaker support. My name, so amusingly misspelled on the monitor outside the ballroom where I spoke, had been corrected by the time I took the podium.

And special thanks to Ben, Dion and everyone at Ajaxian for throwing such a jam-packed event, letting me speak at it, and doing so much for the Ajax community over the years.

A Look Back At Past Posts

B785E46E-926A-478F-8F21-3B566D8AF521.jpgUpdates to past posts:

TankEngine

Thanks to Gregg and Jason at RailsEnvy for mentioning TankEngine on their podcast. The git repository now has 54 watchers and 3 forks. Thanks, everybody who is watching. I'm hoping for some updates soon.

Plugin testing

This is always what I'm afraid of, I write a big post on something, then a commenter points out a plugin that already does it reasonably well. In this case, the commenter mentioned the plugin_test_helper library, which allows you to pretty easily include a Rails environment inside your plugin for testing. The only problem I had with it is that if you have an actual application has this plugin installed, it seems to do odd things to the environment load -- I wound up limiting the init.rb of the plugin to only do something if the RAILS_ENV was specifically set to test plugins.

Continue reading »

Topics: Ruby on Rails

Flash Player on iPhone gossip

First thing that came to my mind when I initially heard about the iPhone was the multi-touch possibilities that would start changing the way we create Flash/Flex interfaces (hopefully through SDK extension supporting multi-touch on Adobe's side triggered by iPhone release).

It looked very promising and natural to me in the beginning that this will be the route. Flash is a great part of the Internet experience and iPhone is a great mobile device for, among other things, Internet access.

Continue reading »

Microsoft to Jump on Board EC2

Hold on to your hats; Microsoft has just made a radical change in business model. A couple of months ago I wrote about the competitive advantage that firms using Linux and Amazon's EC2 cloud computing had over their competitors.

Server-on-demand providers like Amazon's EC2, Joyent,
and others have reduced the capital necessary to launch scalable,
server intensive businesses. Google has just launched a similar
on-demand service, and companies like RightScale and CohesiveFT are building mature businesses around managing EC2 configurations.

...

Facebook applications are just the most extreme example of business initiatives that can be scaled on demand from $70/month on one EC2 server to $10,000/month on many dozens of servers running web, application and database server clusters and farms. Compare that with the old school of investing in a large data center with a significant fraction of the hardware and bandwidth that you might need if your business is a success. What used to cost $100k in capital can now be done with just a few hundreds of dollars.

...

And it's all possible as long as you are using a unix variant - Linux for the most part - to power your apps. So there is a whole class of companies out there using Linux that can out compete their Windows-using rivals - again, the capital they need to launch is much smaller because of cloud computing. That means Linux will win among the class of young entrepreneurial businesses that are so vital to the US economy.

Continue reading »

TAE Boston 2008: The Unsexy Presentations

Lets face it, most people come to Ajax conference for the eye candy. TAE Boston 2008 is no different, and the jQuery, Dojo and other sessions are packed. That's great. I love good eyecandy. But the shame is that many folks skip the less sexy presentations, such as today's presentation by Ted Husted entitle Ajax Testing Tool Review. Talks like these and the tools and methods they discuss is what is leading to the "professionalisation" of front end development, as my colleague Brian Dillard likes to say.

Some of the highlights from Ted's talk:

If you like CruiseControl, but it's too fiddly for you, you'll love Hudson, a much more user friendly continuous integration engine. The Selenium IDE is great for getting started or smoke testing, but use the API's (in Java, C#, Ruby, etc.) to get real, supportable unit tests done. YUI Test is intrusive, but it overcomes some of the shortcomings for testing asynchronous events that are present in JsUnit and Selenium. See Ted's post on YUI Test.

OK, not sexy, but if you want to develop quality software, you have to keep an eye on the non-sexy bits.

The Ajax Experience 2008: Hope to see you in Beantown

The Ajax Experience 2008 Boston

I'm posting today from Boston, where my colleague Dietrich Kappe and I are proud to be presenting at The Ajax Experience 2008.

At 5.10 p.m. tomorrow (Tuesday 30 September), Dietrich will present "Saving Your Investment: Transforming J2EE Applications into Web 2.0 Using GWT." This 90-minute session will introduce noobs to the Google Web Toolkit; school experienced GWT developers in the security implications of leaky client-side business logic; and delight business folks and bean-counters alike with the money-savings possibilities of retrofitting a legacy webapp instead of building a new one from scratch.

At 8.10 a.m. the following day (Wednesday 1 October), I will present "Making Friends with the Browser: Ajax, Back Buttons and Bookmarks." In it, I'll look at the state of Ajax history management, from new libraries such as the JavaScript State Manager and dsHistory to my own project, Really Simple History. I'll discuss the problems and tradeoffs inherent in any browser history manager. I'll also examine the impact of new browsers such as Google Chrome and Microsoft Internet Explorer 8 on this small, rapidly evolving corner of the Ajax world.

We look forward to seeing some of you there and reporting back about the rest of the conference.

TankEngine: New plugin for Rails iPhone Development

Last Saturday at Windy City Rails, I had the pleasure of announcing TankEngine, a new Rails plugin for targeting iPhone and Mobile Safari. ("git" it here)

Now, I know, I've done this already, so why a brand-new version of the plugin with a new name?

Good question. The original plugin was basically a wrapper around the iUI JavaScript and CSS classes. After working with iUI for a while, it turned out that I had a few differences of opinion with iUI (which I still think is a very nice piece of work).
Continue reading »

Symphony of Ruby on Rails and Flex through RubyAMF

In a project that I am currently a part of, we inherited Ruby on Rails from our client's system and project front-end was designated to be developed in Flex. RubyAMF came naturally.

I have been working with two other AMF frameworks prior to this: AMFPHP and WebOrb. My experience with both was that they are fairly hard to set up and once you go through that minefield, everything works excellent. No need to say that I am a great advocate of AMF in general. RubyAMF brings the same good old AMF but with a stunning ease and speed of development!

My colleague working on the Ruby side, Justin Ficke, introduced me to code and architecture of Ruby on Rails and I was impressed to see with what ease, precision and speed can one develop it.

Justin and I put a little test together of this architecture and here is a screen cast of it.

All the lovely custom typed objects and speed of data transfer are there. Beauty of it, appart from obvious benefits from AMF, is that the development process couldn't have been better and faster.

“Build half a product, not a half-assed product” - tips on clarity and focus from Jason Fried of 37Signals

Jason Fried from 37Signals spoke yesterday at the ITA "Speaking of Success" event, about the history of 37Signals, their philosophy and culture, and the critical business decisions they've made to get them where they are today.

The software biz is fundamentally broken. Too many products fail because of the obsession of adding more and more, and trying to do too much.

Jason went on to say that the approach of adding more and more only works for companies that have lots of money and lots of time, but that for the average company the main goal should be to build something that is "good enough," get it out to the users, and improve the design based on their feedback. The challenge of which features to include, and which to say "No" to, is covered well in the "The Innovator's Dilemma," which he said "everyone in this room should have read." The book resonates the core philosophy of 37Signals, which is evident from their blogs, their book "Getting Real," and the design of the Rails framework. As an example of the "Good Enough" philosophy, Jason used his laptop and its basic webcam to stream the Q&A session out over justin.tv and send out a text to the 37signals Twitter group. "The quality probably isn't that great, but its good enough," and with that quick setup he had now broadened the audience by 1,000 users or so. (I searched for the video archive at justin.tv, but didn't find it yet.)

Continue reading »

Topics: 37signals, agile, rails

Rails Performance, Code Metrics, and Locking Down your Application: Tips & Tricks from Windy City Rails 2008

Windy City Rails was the best Rails conference I've ever been to, which is easy for me to say since it was my first actual Rails conference. But even speaking from a fairly uninformed point of view I found it very full of quality. In case you didn't know, it was created by ChicagoRuby, sponsored by Pathfinder (us) among others, and you can find tons more details if you're interested at http://windycityrails.org/. Anyway, it was this last Saturday the 20th, and after four days of digestion I am prepared to deliver some of the highlights:

Continue reading »

Betting Your Business on the iPhone

Monopsony - the market condition that exists when there is only one buyer.

iPhone in DockWe all have heard the term "monopoly" and even know a little bit of what it means - a market where there is only one seller. But the related term "monopsony," a market where there is only one buyer, is not as well known and it's dangers not as well understood.

Certainly both monopolies and monopsonies will reduce competition, innovation and consumer choice, but they further constitute a big risk for the sellers. For businesses on the seller side a monopsony can be the kiss of death. Just ask Walmart's suppliers how good it's been for them.

Not all monopsonies are as obvious or as overtly damaging to suppliers as that of Walmart, but Apple's iPhone and iTunes appstore looks like a benign monopsony. A monopsony in that although the iphone consumer is the ultimate buyer, Apple determines what is permitted in it's appstore, and benign in the fact that Apple hasn't flexed that restrictive muscle more than a few times.

Continue reading »

Topics: Business, iPhone

GWT Tutorial - Building A Model

Shalk Neethling has written up a nice, streamlined tutorial on how to build a model in GWT using the GWTx project's support for java.beans.PropertyChangeSupport.

The basic idea here is that while the browser is the View and the server side is the Model and Controller in MVC, you really should structure your browser side code as an MVC itself where only the Model interacts with the server.

Well worth a read.

Topics: GWT, Tutorials

What does your CSS Swiss Army knife look like?

Swiss Army knife

CSS 2.1 is more like a Swiss Army knife than a fully stocked toolbox. We can accomplish a lot, but we have to get creative with the standard attachments. Floats, relative positioning, the box model - each tool must performs double or triple duty because they're the only ones we've got.

When we do discover a clever way to accomplish a common task using these limited tools, we're likely to employ that technique over and over. I'm not talking about CSS frameworks here; those help out more at the macro level. I'm talking about repeatable techniques that can be applied at the micro level. When done right, these simple techniques can feel like entirely new Swiss Army attachments rather than intelligent application of existing blades.

Whenever I start out on a new client project, I start off with the following plug-and-play components:

Continue reading »

Windy City Rails

A quick plug for the WindyCityRails conference being held tomorrow here in Chicagoland. I guess it's technically not a "plug" since the conference is all sold out, but it does promise to be a fun day. So think of this post as a promise against a longer post on Monday with a round up.

The headline session is a Q&A with David Heinemeier Hansson. David Chelimsky, lead developer of RSpec is also speaking. And we have three talks from Pathfinder as well.

John McCaffery will be doing a presentation on JavaScript practices including testing and debugging.

I'll be doing a talk on iPhone web development, and a talk on testing that I hope will also be fun.

Expect some round ups early next week. If you can't wait that long, I'll probably be updating my twitter feed all day with any interesting info.

Topics: Ruby on Rails

ZK 3.5 Released with Comet Support

ZK 3.5, the latest version of the server-side Ajax framework, is out with a raft of new features. Three of those features really stand out for me:

Comet server push Customization of look and feel Performance monitoring

Server push via polling has been available in ZK for a while, and Comet in the ZK "Enterprise Edition," but now it is available to everyone. And it is pretty easy to use: "The implementation of server push is transparent to developers. ZK chooses which implementation to use according to the edition of ZK automatically, but it is configurable."

Customization of look and feel has gotten much easier. ZK has followed the example of a number of other frameworks in styling its widgets with predictably named CSS styles. Changing the look and feel of an application is now as easy as changing the ZK widget style sheet. Styles can further be overridden on a widget instance-by-instance basis.

Performance monitoring is perhaps the most exciting new feature. Client-side tools such as YSlow can guide optimization efforts and give you point in time performance snapshots. But critical applications need to be monitored and tracked end to end over their lifespan. With ZK 3.5, you now have the plumbing to instrument your application to capture five data points for each request:

T1, the time browser sends a request to server T2, the time server receives a request T3, the time server sends a request to browser T4, the time browser receives a request from server T5, the time the browser finishes processing a request

ZKStudio 0.8.2

There's also a new version of ZKStudio for Eclipse out. The major change is that it now supports auto update via http://studioupdate.zkoss.org/studio/update

About Pathfinder

We design and build extraordinary applications for companies looking to make the next great idea a reality. learn more

Topics

.NET 2d physics 3d 3D GPS 3D physics 37signals Accessibility actionscript activerecord Add new tag Adium ADO.NET Entity Framework Adobe Adobe AIR Advertising agile Agile Development AIR Ajax Ajax Applications Ajax Bookmarking Ajax Components Ajax Development Ajax Examples Ajax Experience Ajax Frameworks Ajax history management Ajax Intervention Ajax libraries AJAX Obfuscation Ajax Performance Ajax Products Ajax Tools Ajax Widgets Amazon amf Analysis Android Announcement Announcements antennae Apollo Application Architecture Application Development AS3 ASP.NET Asynchronous Processing awards Back Button Benchmarking Best Practices BitmapData.draw BJAX Blaze Advisor blog blogging Books Browsers Business Business Reasons for Ajax Business Rules C# Canvas Case Studies chess Chicago Cloud Computing CMS COBOL code art Code Generation Color COMET Conference Consistency Content Management CRM CruiseControl CSS Custom Flex Component data visualization Degrafa Design Design Patterns Desktop Desktop RIA Developer's Notebook Diagnose Dojo Domain Knowledge Drools EC2 Echo2 Echo3 Editorial ERP Ethnographic Research events externalinterface Ext JS Facebook ferret FileReference Firefox Firefox Extensions Flash flash awards flash player flash player 10 Flex flexunit Flock Flow Frameworks front end front end development Games Gauge Component getting things done Git Google Google calendar Google Gears Grails Graphics Greasemonkey Groovy GStreamer GTD Gwittir GWT Healthcare Hibernate Hudson IDE Ideation IE IE6 IE7 IE8 ILOG JRules Information Architecture Innovation Instructional Design Interaction Design Interview iPhone iTunes Java Javascript JavaScript frameworks Javascript Libraries JBoss Rules Jess Jetty JIT Jobs jQuery JSF JSON JSR-94 JsUnit Lazlo Legacy Systems lightweight LinkedIn LINQ Logical Model and Conceptual Model Low Pro Mac Mash Note Mashups Meebo MetaWidget Methodology Microformats Microsoft Mobile Mootools mouse scroll mouse wheel Mozilla Music MVC MySql NetNewsWire Object-Oriented Object Relation Mapping (ORM) Office OOP Open Screen Open Source Opera Oracle ORM osx pagination Pair Programming papervision3d Patterns Peer Creation Performance Personas PHP physics physics engines plugin preloader process Web/Tech Product Definition productivity Progressive Enhancement Project Website Prototype Prototyping PV3D QA qooxdoo Radiant CMS rails Really Simple History References Requirements Requirements Alice Toth Requirements Visualization Restlet RETE Review Rich Interactions ruby rubyamf Ruby on Rails SaaS Safari San Francisco Scalability Scenarios Scriptaculous SDLC Search Security Selenium Semantic web SEO Server Side Silverlight SOA Social Networking Software Processes Songbird SpiderMonkey Sprajax Spreadsheets Standards Startups STI Story Telling Struts Tamarin Task Flows Test Driven Development Testing The Ajax Experience Tilt Component Tools TraceMonkey Training Trends Tumblr Tutorial Tutorials Unit Tests Usability Usability Testing User Experience user experience design user interface User Interface Standards User Research UXD Venture Capital Video Vision Visualization VLC Volta Web/Tech Web 2.0 Web Design Web Development Webkit Weblogs Web Services Web Standards Widgets will_paginate Windows Wireframes WordPress workflow work life balance XML XML Metadata XUL Yahoo Map AS3 API YUI Zeigarnik Zeigarnik Effect ZK

WordPress

Comments about this site: info@pathf.com


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser