Insert the url of the feed you want to read here (e.g.

Front Page – Ajaxian

Cleaning up the web with Ajax

Scaling up CSS 6 Sep 2014, 4:05 am

CSS has a habit of creeping up on you. If you’re not careful, your humble stylesheet can go from a few flourishes to a giant maintenance tangle. Before you can say “12-deep nested div”, your in a world of duplication and complexity that prevents you from making timely user-interface updates.

[Medium’s]( one organisation that’s been through the growing pains of CSS and Jacob Thornton (“Fat”) has an in-depth case study we can all learn from.

Medium’s CSS is actually pretty f***ing good is the claim and it’s hard to argue with the wisdom herein. Among the improvements Medium has made since the early days:

  • Data-URI image optimisatinos
  • Isolating z-indexes into a single file (thankyou, Less variables)
  • A style style guide, incorporating not only coding conventions but patterns for naming classes and properties

It’s nice to see real-world coverage like this, and presented as the series of transformations that took it to where it is now, along with code samples. This kind of high-scale CSS refactoring is something many organisations need to be doing and a guide like this should help.

Mobile Proxies: A New Era Dawns 8 Mar 2013, 2:35 am

This week, Chrome For Android M26 was announced. It has the literally-awesome ability to record video via `getUserMedia()`, but enough about making Skype irrelevant. What’s even more interesting is the new data compression feature. Which, to be clear, is experimental, has to be switched on, doesn’t apply to secure (SSL) sites, and it’s only running in the beta app.

With this feature, Google will be delivering streamlined responses, leading to substantial performance improvements and bandwidth savings. In the latest Mobile Web Thursday’s, Google’s Pete Le Page demonstrated The Verge weighs in at 1.2MB when proxied, down from the hefty 1.9MB it otherwise would have been, and also reports having seen a 65$ reduction elsewhere.

The speed benefit comes in a couple of ways. First, the proxy and the browser communicate via SPDY. Most websites still haven’t enabled SPDY, but Chrome has it built in and Google’s proxy will now act as a SPDY adaptor for any (non-SSL) website. Second, images are returned as WebP format. WebP claims to shave off around 30% and Google claims 60% of bandwidth is images…so that’s about an 18% reduction right there.

Mobile proxying is nothing new for Google. I don’t know the full history, but I recall seeing it as early as 2003 (anyone know?). It would be enabled after a search, and the proxy is still runnning. But this is a proxy for the new era of smartphone browsers, and comes just over a year after Amazon introduced its Silk browser with a similar proxying solution. Unlike the older Opera Mini solution, which provided comfort for resource-challenged feature phones, this new breed of browser is still able to work as a regular browser, but can route through a proxy as needed. What Amazon refers to as a “hybrid browser”.

I have also seen similar capabilities made available as reverse-proxies for site owners. CloudFlare, for example, can compress scripts and optimize images.

Overall, these proxying services will make it easier for developers to deliver a better experience for users. But as they become more popular and better-understood, they will also come with the privacy and security concerns that were ignited soon after Silk browser came out. It will be up to the ecosystem to find the right balance, and Google has so far done well to release this experimentally, and ensuring secure sites go direct to the browser.

Here comes Traversty traversing the DOM 2 Nov 2012, 1:59 am

The Traversty DOM utility has as its purpose to allow you to traverse the DOM and manage collections of DOM elements. Proponents admit core Traversty traversal methods are inspired by Prototype’s DOM Traversal toolkit, but now in a multi-element environment that is more like jQuery and less like Prototype’s single element implementation.

Fat Fractal enters the BaaS fray 27 Sep 2012, 2:24 am

What has sometimes been described as mobile middleware has taken a new tack. Now, the idea of Backend as a Service (BaaS) has begun to take off in the mobile application development space. Proponents of BaaS say it helps developers easily build mobile apps, or any other applications connected to a cloud backend. Some of their views suggest a wholly new computer architecture is in the works. Fact Fractal is among the horses running in the BaaS stakes.

Windows 8 HTML5 WinRT RSS reader app 24 Aug 2012, 2:33 am

WinJS is a JavaScript framework for Windows 8, and David Rousset uses it here to create a quick RSS reader. He shows how in a tutorial series. This first article shows the way to build a welcome screen that employs WinJS ListView control. Blend and CSS3 are employed. The second tutorial shows work on the detail view displayed after a click-on-item. This uses a transition animation. Time to go through the two tutorials is estimated at 30 minutes. Check out the Windows 8 HTML5 WinRT RSS reader app.

Hello, BinaryJS 28 Jul 2012, 1:27 am

The BinaryJS framework employs websockets to handle binary data bidirectionally between browser-side javascript and server-side Node.js. Ikt supports a BinaryPack serialization format that is JSON-type compatible. It is said to automatically chunk large binary data buffers for streaming performance. BinaryJS currently supports Chrome 15+ and Firefox 11+, IE10. View the Hello World example.

Upcoming: Google IO 22 Jun 2012, 2:57 am

At Google IO June 27-29 the Android platform will be on display. Direct from a recent slamdown legal court grudge win against Java steward Oracle, the Android crew will be able to tell you  about what is new and what is upcoming in Android, how you can monetize Google apps, multiversioning and more. Much will be available in webcast streaming format. Be square or be there or be there virtually.

Vert.x ramblings: Asynchronous network, your time has come 19 May 2012, 2:00 am

With the debut of Vert.x, the asynchronous framework is reaching an inflection point, suggests Andrew Cholakian. With Vert.x, the software is packaged together in such a way as to be extremely practical, he states. For some JVM zealots, Vert.x may meet needs recently and apparently addressed by node.js.

Vert.x is an asynchronous application server – which may prove useful as architects rethink the server’s role in a world of powerful clients. Does the JVM have a role going forward? Some might say ‘no’ to the JVM. Many say ‘Yes’. Some of these might say: “Vert. x could be described as Node.js+ for the JVM.”

But let us view some from the Cholakian post:

One might say that if all Vert.x consists of is Netty+Hazelcast, that it’s nothing revolutionary. The reality is that Vert.x gets the API right, which most of the existing JVM tools get very…. very… wrong. Even simple services in Netty takes large amounts of code, an inordinate of factories, providers, and threadpools must be created just to do simple things. Mixing all this up with languages like jruby is just prohibitively painful. APIs can be as hard to design as implementations are to write!

On top of the API, the other half of the secret sauce is in Vert.x’s leveraging of high performance implementations of Ruby, Javascript, and Groovy. By integrating them into a single Vert.x executable, they’ve given developers the ability to write high-performance code on the JVM without knowing much about the JVM or its ecosystem at all. Vert.x can run any of those languages directly. Furthermore, since Vert.x is just a library, any JVM language can leverage it. On top of that, the entire universe of JVM libraries, concurrency APIs, and tooling is available to developers.

Like all things, your mileage may differ. The blogger notes : This model is great for large numbers of sockets and file descriptors, where it makes the best use of resources. However, it’s very confusing and complicated when it comes to day to day business logic, where simple, blocking, threaded code is a welcome comfort.  Read all about it as Andrew VC goes through the Vert.X/Node.js ropes.

Rails cache sweeper redux 28 Apr 2012, 3:03 am

Michael Mahemoff writes: To be effective, Rails cache sweepers need to be more fully understood.  They know no standard, so you must employ art. He goes on: Sweepers observe both your models and your controllers, but most workarounds focus on their controller nature.  Importantly: the sweeper must be explicitly added as an observer. Even more important is redux. Read all about [Rails cache sweeper redux] it.

Node.js – The objective is absolutely fast I/O 31 Mar 2012, 3:03 am

Node.js employs an event-driven architecture and a non-blocking I/O model, and it provides some blindingly fast performance to some types of data-intensive Web apps. It is about JavaScript on the server side. LinkedIn, Yahoo and eBay are among ardent Node.js users, and none other than Microsoft has discussed end-to-end JavaScript coverage on its Azure cloud. The objective is absolutely fast I/O.

This article features Joyent CTO and co-founder Jason Hoffman, who discusses the roots and reason of node.js. He said:

“Why we did it is, at Joyent we have a lot of servers, more than most companies in the Fortune500 and we write in C, in a compiled language. We needed to write servers in a dynamic language for talking to certain protocols. Basically, we had to write service endpoints. The Node part of Node.js is separate. It is designed so that it can handle a lot endpoints – on the order of a million. Most things written for the [Java Virtual Machine] can only handle 20,000 [endpoints]. Node is meant to handle a lot of I/O. So we took the node part and married that with V8 [the JavaScript virtual machine from Google].”

Winding road of open-source webOS 2 Feb 2012, 10:21 pm

HP continues to divulge bits and pieces of a road map for the ill-starred and nearly-orphaned webOS. The company has followed up its December plan to release webOS mobile platform and development tools with a proposed timeline, with a full release set before year’s end.  Some people see a life for the associated Enyo JavaScript framework aside from any success or failure webOS ultimately achieves.

Shim uses node.js to test sites on multiple browsers 15 Jan 2012, 4:01 am

Shim was developed within the Boston Globe’s media lab as a way to study how Web sites look on various devices and browsers. A laptop intercepts all wifi traffic – this is redirected to a custom node.js server – which inserts a javascript, or “shim,” at the head of each web page that is visited.

The shim, once loaded in a device’s browser, opens and maintains a socket connection to the server, according to to Shim’s developers. Shim was written in 2011 by Chris Marstall, Creative Technologist at the Boston Globe. The software has been open sourced. Write the Shim originators on git.hub:

Whenever a new page is requested, the page’s URL is broadcast to all connected browsers, which then redirect themselves to that URL, keeping all devices in sync. Shim info is available on git.hub.

HipHop Virtual Machine for PHP 11 Dec 2011, 2:15 am

Facebook Software Engineer and HipHop for PHP team member Jason Evans provides details on Facebook’s move to a new high-performance PHP virtual machine. Described by Evans is ”a new PHP execution engine based on the HipHop language runtime that we call the HipHop Virtual Machine (hhvm).” He sees it as replacement for the HipHop PHP interpreter (hphpi). He continues:

We have long been keenly aware of the limitations to static analysis imposed by such a dynamic language as PHP, not to mention the risks inherent in developing software with hphpi and deploying with hphpc. Our experiences with hphpc led us to start experimenting with dynamic translation to native machine code, also known as just-in-time (JIT) compilation … we developed a high-level stack-based virtual machine specifically tailored to PHP that executes HipHop bytecode (HHBC). hhvm uses hphpc’s PHP>AST implementation and extends the pipeline to PHP>AST>HHBC.

He estimates the hhvm bytecode interpreter is approximately 1.6X faster for certain Facebook-specific benchmarks, with still better performance in the offing. But, as described in his blog post on the PHP compilation innovations, there is still work ahead. You can view HipHop-related information at GitHub.

Adobe to forgo Flash plug-in for mobile devices 13 Nov 2011, 12:04 am

Earlier this week, Adobe VP and General Manager Danny Winokur disclosed that the company has concluded that HTML5 is ”the best solution for creating and deploying content in the browser across mobile platforms.” The company said it would stop building Flash to run on mobile browsers. In a blog post on the new focus of Flash strategy, Winokur wrote:

Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores.  We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations (chipset, browser, OS version, etc.) following the upcoming release of Flash Player 11.1 for Android and BlackBerry PlayBook.

While Flash 12 work is said to be underway, many observers have wondered if this potentially marks the beginning of the end for Flash, which has been reeling since Apple refused to support it on iPhone and similar of its mobile devices.

Adobe’s Michael Chambers, principal product manager for developer relations, has responded to the general concern with a clarifying blog post, that includes a discussions of reasons for the move to quit the Flash-on-mobile-browser tact. In a post yesterday Chambers writes:

… given the fragmentation of the mobile market, and the fact that one of the leading mobile platforms (Apple’s iOS) was not going to allow the Flash Player in the browser, the Flash Player was not on track to reach anywhere near the ubiquity of the Flash Player on desktops.

Also, it seems, the task of porting the plug in to innumerable mobile OSes and device types put a lot of pressure on Adobe development t efforts. ”For each new device, browser and operating system released, the resources required to develop, test and maintain the Flash Player also increases. This is something that we realized is simply not scalable or sustainable,” wrote Chambers.

Intel’s Parallel Extensions for JavaScript 8 Oct 2011, 5:38 pm

Intel’s Parallel Extensions for JavaScript, code named River Trail, hooks into on-chip vector extensions to improve performance of Web applications. Details of Intel’s attempt to get on the JavaScript juggernaut emerged last month at its developer event.

The prototype JavaScript extension offered by Intel is intended to allow JavaScript apps to take advantage of modern parallel chip capabilities. Sequential gives way to parallel, at least in theory.

In-browser games and image editing are pitched as examples of application elements that would take advantage of new eight-core processors, blogs Intel’s Stephan Herhut.The software is said to ”play nicely” with the WebGL JavaScript API to OpenGL for 3D visualization in the browser. Intel has a beta Firefox extension for interested developers. Says Herhut:

You can download a prebuilt version for Windows and 64 Bit MacOS [from github] or build it yourself. For the latter, we have written a README that explains the process. Once you have the extension installed, take a look at our demos to see what is possible.

Why should the browser be a second fiddle to the operating system? As browsers, JavaScript, and HTML5 gain more influence, top-tier chip makers will start to adapt their libraries to Web application demands. More, including material on API design or the beginnings of  API documentation, is on a RiverTrail wiki.

Adobe buys Nitobi 5 Oct 2011, 1:52 am

As it kicked off its yearly developer event, Adobe announced that it had acquired Nitobi Software, maker of PhoneGap open source software for cross-platform mobile application building with HTML5 and JavaScript. In a blog, Nitobi CEO Andre Charland pledged to pursue donation of the PhoneGap code to the Apache Software Foundation ”to ensure open stewardship of the project over the long term.” In a statement, he said Nitobi and Adobe shared the same philosophy about enabling mobile and Web applications. Dave Johnson, Nitobi CTO said: Adobe was fully supportive of the decision to take PhoneGap to the Apache Software Foundation.

A simple random bit on var selector 10 Aug 2011, 12:26 am

Isobar’s Rob Larsen suggests that there is often a need to build CSS selectors dynamically when building applications. ”This is typically some existing pattern paired with a loop counter or something pulled from a data attribute,” he writes on his blog. His choice is to create a variable called ”selector” and ”to craft the selector on its own line.” This is then passed into jQuery. He shows a simple example.

The power of intent tag discussed 11 Jul 2011, 12:09 am

Google developer advocate Paul Kinlan has detailed his recent work on a lightweight sharing facility using a very simple intent share protocol. Web Intents began life in 2010. Now, Kinlan and company are looking for feedback. Basically, his intent tag is intended to allow users to more easily mix and match favorite plug-in capabilities, freeing up developer effort in the meantime.

Resembling in some ways intent attributes in the Android framework, the Intent tag works by signaling to a browser the intent to handle a number of URIs. The tag is meant for spidering.

A user chooses a favored service – say, a ”red-eye remover” for photo editing. The service loads; Intent data gets passed. The system takes care of service resources.

While somewhat reserved in promoting the power of the intent tag, Kinlan still readily suggests that the Google project could ”fundamentally change and improve the way we build applications on the Web today…”

Behind the effort has been a determined push to keep the API very simple. Kinlan describes the effort in a recent blog entitled ”Web Intents: A Fresh Look” and points you to a prototype API on Github. Further details are on

Code injection, error throwing 11 Jun 2011, 3:01 am

In a blog, Opera Software Developer Relations team member Tiffany B. Brown looks at code injection, error throwing and handling and mobile debugging. She notes Opera Dragonfly and its remote debug features provide a way to debug mobile sites from their desktop. Brown mentions WebKit’s recently added remote debugging capabilities, folded into Google Chrome developer tools. Pointed to as well are Bugaboo, an iOS app for Safari-based debugging; JS Console which is available on the Web or as an iOS app; and Weinre for WebKit-based browsers. In this entry, Brown looks more closely at Dragonfly remote debug and JSConsole.



The State – Sort of – of HTML5 Audio 10 Jun 2011, 2:17 am

The State – Sort of – of HTML5 Audio

Scott Schiller discusses the high level of hype around HTML5 and CSS3. The two specs render ”many years of feature hacks redundant by replacing them with native features,” he writes in an insightful blog.

Blogging, he says:

CSS3’s border-radius, box-shadow, text-shadow and gradients, and HTML5’s <canvas>, <audio> and <video> are some of the most anticipated features we’ll see put to creative (ab)use as adoption of the ‘new shiny’ grows. Developers jumping on the cutting edge are using subsets of these features to little detriment, in most cases. The more popular CSS features are design flourishes that can degrade nicely, but the current audio and video implementations in particular suffer from a number of annoyances.

He begs the question: Are we going to see a common format across the major browsers for both audio and video?

Check it out!

Page processed in 0.243 seconds.

Powered by Super Surge in cooperation with Fresh Content.