Or try one of the following: 詹姆斯.com, adult swim, Afterdawn, Ajaxian, Andy Budd, Ask a Ninja, AtomEnabled.org, BBC News, BBC Arabic, BBC China, BBC Russia, Brent Simmons, Channel Frederator, CNN, Digg, Diggnation, Flickr, Google News, Google Video, Harvard Law, Hebrew Language, InfoWorld, iTunes, Japanese Language, Korean Language, mir.aculo.us, Movie Trailers, Newspond, Nick Bradbury, OK/Cancel, OS News, Phil Ringnalda, Photoshop Videocast, reddit, Romanian Language, Russian Language, Ryan Parman, Traditional Chinese Language, Technorati, Tim Bray, TUAW, TVgasm, UNEASYsilence, Web 2.0 Show, Windows Vista Blog, XKCD, Yahoo! News, You Tube, Zeldman
Scaling up CSS 6 Sep 2014, 12: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](https://medium.com) 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 7 Mar 2013, 9:35 pm
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 1 Nov 2012, 9:59 pm
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 26 Sep 2012, 10:24 pm
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 23 Aug 2012, 10:33 pm
Hello, BinaryJS 27 Jul 2012, 9:27 pm
Upcoming: Google IO 21 Jun 2012, 10:57 pm
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 18 May 2012, 10:00 pm
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!
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 27 Apr 2012, 11:03 pm
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 30 Mar 2012, 11:03 pm
This article features Joyent CTO and co-founder Jason Hoffman, who discusses the roots and reason of node.js. He said:
Winding road of open-source webOS 2 Feb 2012, 5:21 pm
Shim uses node.js to test sites on multiple browsers 14 Jan 2012, 11:01 pm
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 10 Dec 2011, 9:15 pm
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 12 Nov 2011, 7:04 pm
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.
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.
Adobe buys Nitobi 4 Oct 2011, 9:52 pm
A simple random bit on var selector 9 Aug 2011, 8:26 pm
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 10 Jul 2011, 8:09 pm
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 http://webintents.org/share.
Code injection, error throwing 10 Jun 2011, 11:01 pm
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 9 Jun 2011, 10:17 pm
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?