Month: March 2012

New Image Replacement Technique

There has been some buzz in the CSS communities about a new workaround technique for image replacement. This technique has been dubbed The Kellum Method and provides some benefits that include: Really long strings of text will never flow into the container because they always flow away from the container. Performance is dramatically improved because a 9999px box is not drawn. Noticeably so in animations on the iPad 1. In Phark Method, a large (9999px + size of your image) box is drawn by the browser. Instead in the Kellum Method the text is indented only to the size required (width of the text + size of your image). In theory, this cuts down on processing as the browser is working with a smaller zone. This method seems to have a full array of browser support. Kellum Method Example .hide-text { text-indent: 100%; white-space: nowrap; overflow: hidden; } 12345 .hide-text {     text-indent: 100%;     white-space: nowrap;     overflow: hidden;} I see some value in replacing the old Phark’s method for image replacement (-9999px indent hack). However, I’m not sure I buy in to the “dramatically improved” performance that it provides, but any improvement is better than nothing. At the end of the day, I am all about good workarounds and will likely incorporate this one into my work. What I am really waiting for is to take advantage of the CSS3...

Read More

Using the Enter Key to Submit Forms in Opera Mobile

This week I was presented with an interesting problem relating to the usability of forms in Opera Mobile. Pressing the enter key while focussed on a form field is generally expected to submit the form. Instead, the enter key in Opera Mobile 10 on Windows Mobile 6.5 toggles focus of the field. This behavior can also be replicated in the Opera Mobile 11.5 emulator. My initial reaction was that there had to be a JavaScript bug or a problem with the markup. The code was not pretty, littered with thousands of lines of embedded JavaScript and styles between mixed variations of HTML. Trying to clean up the form and the code around it had no effect on the issue. I did some research around the web and found very little information and no answers to solve the issue. Some mobile browsers, like Opera Mobile, use server-side rendering technologies which speed up data transfers and reduces processing load on the client device. The rendered data is sent back to the browser in smaller, more manageable static chunks. For input, there is a layer that sits on top of the actual browser and allows for data to be passed into a field. It appears Opera Mobile doesn’t properly pass back all events or all key strokes to the HTML control. In this case, the enter key press did not fire any expected DOM events. My...

Read More

Experiences with Node.js: Final Thoughts

This is the final post in a series of 3 about my first experiences with Node.js. In this post I will discuss my final thoughts from these experiences. If you haven’t read the first two articles in this series, you can view them here: Experiences with Node.js: Researching Node and Experiences with Node.js: Porting a RESTful Service Written in Java. New Twist on Old Mature Tech Like most technologists, I find great joy in learning new technologies… or mature technologies with a new twist. [Note that I am using mature in place of old here. I don’t want anyone running away with the idea that JavaScript is old and washed up. That most certainly is not true.] Writing JavaScript applications in a context other than a browser is very interesting and proves yet again that the language is capable of so much more than showing and hiding sub-navigation menus. If you haven’t had an opportunity to pull down Node.js, I highly recommend any developer trying this out. It may drastically change the way you look at and think about JavaScript. Overall Performance In my experiences, the Node.js server versions I used were very solid. Honestly, I was very surprised by this. My early assumption was that server stability would be an issue. Not once through my testing did it randomly fail for reasons other than issues in my own code. Although my team jokes...

Read More

Experiences with Node.js: Porting a RESTful Service Written in Java

This is the second post in a series of 3 about my experiences with Node.js. In this post I will discuss my experiences porting a RESTful service from Java and some basic benchmarks, comparing the Node.js service and the Java service. If you haven’t read the first article in this series, you can view it here: Experiences with Node.js: Researching Node. My final post in this series Experiences with Node.js: Final Thoughts is now available, where I summarize my experiences, provide some feedback, and discuss my next steps with Node.js. Since the writing of the first article in this series, there have been a few new releases to the Node.js project. You can read about these updates on the Node Blog. Porting a Java Project The ultimate goal in this Node.js research is to successfully port an existing RESTful service written in Java using Jersey (JAX-RS) running on Tomcat to JavaScript running on Node.js. Not only could the experience be gained of building a useful service with Node, but some basic performance testing could gain some insights to its power and the results compared. If things go well here, more time and energy could be invested into Node. The port will use the ExpressJS library as the base framework. ExpressJS is a great web application framework for Node.js. It is very powerful and offers some great plugin to extend its functionality. In this example, the Express...

Read More

About Me

Josh Zeigler

My name is Josh Zeigler and live in Powell, Ohio. I am a family guy, tech geek, sports nut, Disney addict, and amateur triathlete. This is my personal blog site and digital playground. Here, I write about my life and anything that is on my mind...

More about Josh Zeigler


Recent Tweets


Pin It on Pinterest