SBala

JavaScript Interpretations

Internet Explorer is finished. End of story. If there was any hope for the buggy browser from Redmond waiting to surprise thousands of developers, it has now been put to rest by the onslaught of JavaScript performance increases. While Internet Explorer is still catching up on trying to render CSS correctly, its primary competition - Webkit and Gecko - are speeding ahead. The Browser Wars are alive again, and this time IE is not invited to party.

It started ten months ago when I noticed Minefield (Firefox's Nightly Build) renderring pages faster than anything I had used before. I read into it - Mozilla had developed a new JavaScript interpretation engine called SpiderMonkey, which improved performance on top of the improved memory consumption and an "Awesome Bar" interface. I thought Firefox had just won. I was wrong.

It was after Firefox 3's glory was made public to the world on a record-setting launch date that WebKit announced some very interesting news. They unveiled Squirrelfish.

SquirrelFish is a register-based, direct-threaded, high-level bytecode engine, with a sliding register window calling convention. It lazily generates bytecodes from a syntax tree, using a simple one-pass compiler with built-in copy propagation[...]

SquirrelFish’s bytecode engine elegantly eliminates almost all of the overhead of a tree-walking interpreter. First, a bytecode stream exactly describes the operations needed to execute a program. Compiling to bytecode implicitly strips away irrelevant grammatical structure. Second, a bytecode dispatch is a single direct memory read, followed by a single indirect branch. Therefore, executing a bytecode instruction is much faster than visiting a syntax tree node. Third, with the syntax tree gone, the interpreter no longer needs to propagate execution state between syntax tree nodes.


After the introduction of Squirrelfish, WebKit and Safari seemed much more appealing; until Google unveiled their Chrome Browser. Google Chrome uses the WebKit rendering engine for HTML and CSS, but opted to create a separate JavaScript implementation for performance. Google's V8 JavaScript Engine increases performance by compiling JavaScript to native machine code before running it, rather than to a bytecode or interpreting it. Thus, JavaScript applications will run at the speed of a compiled binary.

As if Chrome's V8 engine were not an advancement enough, Firefox's TraceMonkey JavaScript engine took shape in their beta version of Firefox 3.1. TraceMonkey utilizes a technique called tracing to speed up JavaScript performance. Tracing involves watching for commonly-repeated actions (such as loops, function calls, or type checking) and tries to optimize their resulting native code into the lowest number of actions. The performance war didn't end here either, however.

SquirrelFish, not to be outdone, was reincarnated into SquirrelFish extreme.

SquirrelFish Extreme uses four different technologies to deliver much better performance than the original SquirrelFish: bytecode optimizations, polymorphic inline caching, a lightweight “context threaded” JIT compiler, and a new regular expression engine that uses our JIT infrastructure.


Opera is left out from the JavaScript optimizations, but Internet Explorer improvement is nonexistent in the realm of standards-compliant browsers. With very little known as to what exactly the future will hold, it is still certain that web development will entail newer, faster, and more exciting enhancements.

| January 1, 2009 at 11:34am | 0 Comments

5 Ways to Ditch HTML

When making any sort of web application, a backend interface is a must-have, and nothing makes this more user-friendly than a non-HTML implementation for the text areas in the interface. Below is a list of 5 different, solid content editing methods - each with their own style and featureset; and best of all, they are all free. Without further ado, here is the list (in no particular order).

1. Nice Edit


niceedit
NiceEdit is a standalone JavaScript WYSIWYG implementation that uses some of the beautiful FamFamFam Silk Icons for its interface. It takes simple textareas and converts them to a fully functional and familiar interface with a fair bit of functionality. The full panel includes text decorations, paragraph alignments, WYSIWYG lists, font sizes, font families, indenting, support for images, links, subscripts and superscripts, horizontal rules, a format remover, and a view for HTML source editing.

2. FCK Editor


fckeditor
The FCK Editor is very similar to NiceEdit minus the "lightweight". FCK is a solid (and large) editor with a ton of customization options and buttons. FCK, unlike NiceEdit, is not meant to simply create content for the web; rather, the FCK editor aims at bringing the feature-rich environment of desktop word-processing to the web through JavaScript. When fully configured, it has buttons for editing the source, saving, adding pages, previewing the page, selection of templates, copy, cut, paste (supports pasting from MS Word), undo, redo, find, replace, select all, remove format, forms, checkboxes, radio buttons, text fields, text areas, selection fields, buttons, image buttons, hidden fields, text styling, subscripts and superscripts, blockquotes, lists, indentations, links, pictures, Flash-based content, tables, smileys, printing, and spell-check.

3. TinyMCE


tinymce
TinyMCE is probably the most popular and the most widely recognized JavaScript-based WYSIWYG editor around. It is used extensively in many Content Management Systems and has a very robust feature-set that rivals the FCK Editor. It has all of FCK's features, but has a plugin library and a wide userbase. A few extra buttons that TinyMCE has on top of FCK's offering is a button for non-breaking spaces, special characters, page breaks and a full-screen mode.

4. MarkDown


markdown
While Mark It Up adds HTML tags, MarkDown uses its own unique markup system that is easily understandable and requires much less work to both read and edit. It is a natural flow that is entirely text-based and does not use any sort of interface for publishing. This is a similar approach to Wiki Syntax, but (in my opinion) easier to learn and understand. It is hard to explain before you see it in action, so pay the Daring Fireball a visit.

5. Mark It Up


markitup
Where TinyMCE, FCK, and NiceEdit are WYSIWYG, Mark It Up is more of WYPISWYG (what you press is what you get). Mark It Up doesn't entirely ditch HTML, but makes using HTML as an editing format much easier. Instead of actually rendering changes made to the text inside of the text area, Mark It Up simply shows the tags, which is very useful if you like fine-tuning the HTML content of the content. It also works very well as a complement to blog comment forms due to its small set of buttons. It is based on jQuery, which is a put-off for some, but a major benefit for others (all dependent on whether or not you already use jQuery - chances are, you do). But wait! There's more! Mark It Up even works as a BBCode, Wiki Syntax, Textile, Dotclear, and Markdown Syntax editor.

| December 9, 2008 at 4:10pm | 0 Comments

10 Reasons You Should Use 960

Although CSS frameworks and grid systems are relatively new, Blueprint tends to receive most of the attention when speaking of building a grid-based layout. Blueprint is great, but sometimes the extra features in it are unnecessary for most people who just want a fundamental and easy to implement grid. The 960 Grid System is just that.

1. It's LightweightLet's face it, adding too much extra bloat just for a CSS framework is the last thing a web developer wants. Adding only 3kb with a fully functional grid is a good compromise of functionality and efficiency.2. The Magic NumberThe 960 Grid System uses the backbone width of 960 pixels, which is the magic number for all modern monitors. 960 is divisible by 2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40, 48, 60, 64, 80, 96, 120, 160, 192, 240, 320 and 480. The large number of divisors that it has makes it an ideal candidate for website widths. It isn't a good choice for fluid layouts, but does a great job of grid layouts.3. Reset Your ValuesThe 960 Grid System includes a small file that includes a statement that automatically resets all of the default browser styles that commonly plague a good grid layout. This ensures that your grid looks the same - regardless of which engine is rendering it.4. 12/16You can make a grid composed of twelve or sixteen columns. This allows you to tweak the widths of the various elements on a page, but still maintain a unified alignment with the columns.5. Auto Margins960 automatically adds margins to its grid-based elements, so they never overlap. 'Nuff said.6. Typography960 automatically sizes text for you, which makes things look pretty good with sans-serif fonts. If you don't like any of the settings, you can easily edit and change them without harming your grid.7. Sketchy960 provides printable sketch paper that allows you to draw and plan using the column-grid system before you begin coding.8. Openness960 is 100% open source. It is licensed under the GNU GPL and the MIT license. This basically allows you to do anything you want with the code. The MIt license permits any use, reproduction, sale, and modification of the 960 Grid System as long as the code remains under the very same license.9. It's Float-TasticIt is very easy to arrange block-level elements by adding float attributes to them. Since 960 takes care of all the sizes and margins, your block-level elements arrange themselves without any width-related hassles. Also, remember to take advantage of using multiple CSS classes by separating class names with a space.

10. It's Easy

Simply add the class "grid_[number]" to your block-level elements to specify the amount of columns that composes their widths, and and the class "container_12" or "container_16" to specify how many columns are going to be in your main container/block-level element. See the demo and view its source for an idea of how it works.

| November 16, 2008 at 1:49pm | 0 Comments

15 Sources of Minimalist Inspiration

Anyone making websites has to start from somewhere and most of the time that "somewhere" is another website. By taking inspiration, your keystrokes should never come close to Ctrl+C; however, use what you see to create something that you like. Minimalist designs are a new trend - following the Web 2.0 craze - that emphasizes a separation from the cluttered and visually gaudy cliches associated with the typical idea of modern design. The following are 15 great sources of inspiration for creating a cleaner appearance for your site. Each of these websites serves a different purpose to its creator, and the designs you may derive from them will probably express a similar purpose as well.

1. Sitening

What it does well:The Sitening website does a good job of utilizing large text and JavaScript tweaks to emphasize certain points of the site to the user, while the smaller text is the detail. The CSS also seperates the various chunks of content into a grid-based layout with two columns and multiple rows in each column. Borders are used to distinguish the various pieces of the grid, and a user can flow straight through the page similar to a comic boook.

2. Swissmiss

What it does well:Swissmiss does a good job of being content-centric. Although the design itself isn't visually spectacular, the emphasis on the content with plenty of deviations on the sidebar is a technique that more websites need to utilize.

3. National Gazette

What it does well:The page is very small. In fact, there is practically no scrolling required on the front page of this website. Unlike Swissmiss, instead of focusing all on the content in standard reverse-chronological order, the content is segregated into sections that allow the user to chose on the top navigation.

4. Emil Milanov

What it does well:Less text. The use of images to show in a portfolio is nothing new, but the grid layout is used exclusively for those images instead of the normal usage of a grid layout - text.

5. Finch

What it does well:Who said minimalism was a lack of color? Finch fuses the ideas of image-heavy design with the concepts of simplicity to create a website that is both content-centric and visually pleasing. What more is there to ask?

6. AIGA New York

What it does well:It emulates a physical newspaper both typographically and in its grid-layout. Unlike the National Gazette, the content is sorted through the use of the layout instead of individual pages.

7. Rikcat Industries

What it does well:This is the standard blog layout with less bloat. The sidebar isn't cluttered and the body is compact. This style works well for such a site.

8. Mark Boulton

What it does well:This site presents the user with a short summary and four long columns as they scroll down. This technique segregates information as a segue to other pages.

9. Rainfall Daffinson

What it does well:It keeps is simple. Nothing in excess.

10. Braintied Wordpress Theme

What it does well:A Wordpress theme that employs similar tactics to Rainfall Daffinson.

11. Work By Hanna

What it does well:This isn't necessarily a brilliant design (it has no visually pleasing elements), but it is a really gutsy move by the creator of this website.

12. Coptix

What it does well:Minimalist doesn't mean boring, and Coptix proves just that. It fuses some interactive elements with color and imagery to create a great compact design.

13. Shaun Inman

What it does well:This shares a page with Rainfall Daffinson in the fundamental sense, but it adds a sidebar with text and a bottom row of links.

14. Peter Pixel

What it does well:Peter Pixel has multiple columns and a simple navigation that could use some revamping.

15. Mini Blog Wordpress Theme

What it does well:

In its small width, this Wordpress theme emphasizes content and sidebar on an even scale. Also, making the width smaller makes a sentence look more like a paragraph.

| September 15, 2008 at 7:25pm | 3 Comments

A Smaller Firebug and Dragonfly

I wrote a post not too long ago about Firebug, Dragonfly, and the developer tools the web development community has grown to love and appreciate. Firebug, Dragonfly, Internet Explorer Developer Toolbar, and that thing on Safari all share one thing in common: they are  extension of their corresponding browsers and when testing on a different browser it is often times hard to find the plugin needed, or tedious to get accustomed to a new interface. When things get dry in cross-browser bug fixing and DOM/CSS inspection, the new smaller kid in town is planning on saving the day - Firebug Lite. Unlike it's older brother, Firebug Lite is a chunk of JavaScript intended to be added to a web page that is being developed and provides an interface for debugging without the need of any extensions.

It's rather simple to use Firebug Lite. All you need to do is add in the script at http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js.

There is also an offline method to use Firebug Lite as well as a bookmarklet for use during web development.

There are tons of other little features built into the tool, so go ahead and enjoy another method of debugging.

| July 29, 2008 at 7:58pm | 0 Comments

 1 2 Next →