How Collective Wisdom Shapes a Talk

Overview Exactly one year ago, I started working on a WebSocket prototype that would give audiences the power to control my talks. I used it for the first time at DevNexus 2012 in Atlanta, GA and it produced great engagement results. At that time, the only analytics I had built into the server were through logging, and the results were motivating enough to continue using the prototype. Over the span of 2012, I spent many late nights in hotel rooms preparing my slides for talks and working out bugs of this tool which I named “onslyde”.

Comments    websockets, speaking, audience engagement

Adventures with the Skia Debugger

Debugging jank, reflows, etc… The Skia debugger was mentioned a few weeks ago at EdgeConf as a way to examine how the DOM is loaded and processed in the Chromium web browser. Skia is the open source C++ graphics library backing Chromium/Chrome. It comes with a graphical tool used to step through and analyze the contents of the skia picture format. If you haven’t watched this video, I recommend you take a few minutes and watch the first part to understand the context of why the Skia debugger was mentioned and where it might be useful.

Comments    frontend, html, css, graphics, debug

I'll Sleep When I Die - All for HTML5

The following post is a long-winded summary of my experiences over the past year. I started a user group, wrote a book, gave up a secure job, and changed jobs 4 times. All to push myself, get uncomfortable, and better understand the challenges that front-end developers are facing in 2012 and beyond. I gained more than I ever thought possible. Sometimes you have to give up everything to find something.

Web Performance Testing With PhantomJS

HTTP requests, heavy/unminified resources, and UI thread blocking should be on the mind of every front-end developer. These are just a few issues that can cause serious bottlenecks in page load times. Having a faster load time equals better search engine rankings, higher conversion rates, and an overall reduction in bandwidth costs. I recently took on the task of coming up with an accurate way to measure all the aforementioned things, in an effort to understand which performance tweaks improved page load times and which ones didn’t.

Comments    phantomjs, web performance, testing

HTML5 is Booming in Atlanta

So, all I can say is that the Atlanta HTML5 community is awesome. Today the @atlhtml5 user group has reached it’s 1000th member! From startups to companies in the Alexa top 20 rankings, Atlanta is heading towards a bright future in innovation and the open web. Front-end developers are in serious demand as Atlanta based companies strive to build web applications that are more offline accessible, responsive, and performant. Companies are moving more JavaScript to the browser, and this demands more structured code following MVC style patterns.

Sharing Content with Web Intents

The Intent of Sharing If you employ share buttons on your site, then you might already be aware of the increased load that comes with trying to make your content social. Allowing users to take action on your specific content and “share” it is a common task. Much like linking HTML documents together, we are now linking apps together that are capable of pushing content to a receiving service via the user.

Comments    web intents, html5, share, stats

Sniffing IE9 features while in compatibility mode

Getting the browser version from the User Agent string is one thing. But, when you force compatibility mode in IE, you get whatever version you’re forcing to. e.g… <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/> in IE9 will cause jQuery’s ($.browser.version, 10) to return “8” :( I started digging through some msdn docs to find various ways of sniffing the actual browser we’re using, even when compatibility mode is forced. This led me to this doc Which talks about how IE9’s Chakra JavaScript engine processes math precision differently (and faster) than the old IE8 JScript engine.

Choppy scrolling on iOS with iscroll and PhoneGap

I ran into a situation this weekend where certain pages of a PhoneGap application were incredibly choppy on iOS versions pre 4.3.x. Apparently, there is a problem with older browsers using CSS3 selectors like div[style*=‘foo’] in combination with other DOM elements. The test case was a little tricky to create, seeing that pinpointing this problem required mucho testing. However, I minimized the markup and CSS to only a few classes and DOM elements.

AeroGear - Mobile, HTML5, and Auwesome

The AeroGear project had it's official launch last week and I want to review what we're doing and where we're headed. For starters, AeroGear is focused on: Education - Screencasts, Tutorials, and Quickstarts for running any (HTML5, Hybrid, Native) mobile solution with JBoss projects and app servers. Innovation - Many of AeroGear's primary goals are to provide HTML5 extensions for web applications, both mobile and desktop based. Community - We already have several community members contributing examples, demos, and other useful resources.

Comments    html5e, jboss, aerogear, mobile

Pushing CDI Events to the Browser with WebSockets

Disclaimer: Minimal load testing was performed with 10000 concurrent WebSocket connections. You can see some true performance numbers here. Here is the demo in action. As you can see on the right, I have 2 chat windows open and on the left we have a member registration. Users are chatting across a raw WebSocket connection and when another user registers, the CDI event is fired all the way through to the browser as a JavaScript alert via the connected WebSocket clients.

Comments    html5, websocket, jboss, jetty, cdi