6 things to try in Rails this year
6 things to try in Rails this year
It seems that blog posts in the first couple of weeks of the new year (happy new year by the way) follow the “x things to do this year” meme as a virtual homage to new years resolutions. Never one to buck a trend, I have prepared this short list of things you should try […]
It seems that blog posts in the first couple of weeks of the new year (happy new year by the way) follow the “x things to do this year” meme as a virtual homage to new years resolutions. Never one to buck a trend, I have prepared this short list of things you should try in Ruby and in Rails - I hope to cover each topic in more detail over the next couple of weeks.
- Install Rails: This is aimed at those of you out there that haven’t tried Ruby on Rails yet. Jump in - have a go, there are plenty of resources out there, and it is fairly easy to install regardless of your platform
- Upgrade to Rails 2.0: I have covered what’s new in Rails 2.0 in a number of my previous posts, and upgrading isn’t really THAT difficult if you follow the steps and fix any deprecation notices.
- Write a plugin: Plugins allow you to re-use common patterns without having to resort to the dreaded cut-and-paste keys. Rails has a built in plugin generator that gives you the skeleton code, all you need to do is to mix-in the right modules - oh, and write the code…
- Try out RESTful routes: RESTful Rails have been around for a while now, but many of the tutorials around the net are still CRUD based, so if you are a Rails beginner, you might not have tried them out yet.
- Use Ruby as your scripting language: Because Rails does such an excellent job of doing the hard work, it is very likely that you have never had to manually connect to a database or read the contents of a directory or performed other mundane tasks in Ruby. If you have to do any scripting, instead of PERL or Python, use Ruby - it will help you better understand the nuances of the language.
- Refactor your code the Ruby way: If you have come from other C-like languages (such as PHP or Java) you would
be used to the idioms from that style of coding. Try refactoring your code to use blocks instead of for loops, or using inline if statements - you can squeeze a lot into one line in Ruby, see how far you can push it. Again, this is a great exercise to learn the language.
Go on, try them out - the new year is a great time to try something new!
This article provided by sitepoint.com.
Web Directions North: Discount For SitePoint Readers
We’re pleased to announce that SitePoint readers who are thinking of attending the Web Directions North conference in Vancouver, BC in a couple of weeks are eligible for a discount of $50 off the standard ticket price. All you have to do is enter the code WDN-SP when purchasing your ticket, and you’ll receive it at […]
We’re pleased to announce that SitePoint readers who are thinking of attending the Web Directions North conference in Vancouver, BC in a couple of weeks are eligible for a discount of $50 off the standard ticket price.
All you have to do is enter the code WDN-SP when purchasing your ticket, and you’ll receive it at a discounted price of CDN $845.
Featuring a massive line-up including an opening keynote by Jeffrey Zeldman and LifeHacker founding editor Gina Trapani, as well as presentations by SitePoint authors Cameron Adams and Jonathan Snook, Web Directions North really is shaping up to be one of the most impressive conferences ever.
View the schedule for the two days, or register to attend.
This article provided by sitepoint.com.
Rakish resolution - more flame
Happy 2008! At the risk of being a cad (or just plain annoying and silly)… Zed Shaw, (ex-?)author of Mongrel, makes this remark in his end of year epiphany Rails is a Ghetto; (15:11:12) DHH: before fastthread we had ~400 restarts/day (15:11:22) DHH: now we have perhaps 10 (15:11:29) Zed S.: oh nice (15:11:33) Zed S.: and that’s still fastcgi […]
Happy 2008! At the risk of being a cad (or just plain annoying and silly)…
Zed Shaw, (ex-?)author of Mongrel, makes this remark in his end of year epiphany Rails is a Ghetto;
(15:11:12) DHH: before fastthread we had ~400 restarts/day
(15:11:22) DHH: now we have perhaps 10
(15:11:29) Zed S.: oh nice
(15:11:33) Zed S.: and that’s still fastcgi right?This one single statement [from 2007-01-20] basically means that we all got duped. The main Rails application that DHH created required restarting ~400 times/day. That’s a production application that can’t stay up for more than 4 minutes on average.
Let me put this into perspective for you: I’ve ran servers that needed to be restarted once in a year. They were written in PHP, Python, Java, C, C++, you name it. Hell, I’ve got this blog on a server I’ve restarted maybe 10-20 times the whole year.
Now, DHH tells me that he’s got 400 restarts a mother f***ing day. That’s 1 restart about ever 4 minutes b****es. These restarts went away after I exposed bugs in the GC and Threads which Mentalguy fixed with fastthread.
If anyone had known Rails was that unstable they would have laughed in his face. Think about it further, this means that the creator of Rails in his flagship products could not keep them running for longer than 4 minutes on average.
Repeat that to yourself. “He couldn’t keep his own servers running for longer than 4 minutes on average.”
Rewinding back to February 2006 and another rant…
Meanwhile, in these days of long tail enthusiasm, other than PHP, you don’t get to hear much about when stuff sucks. Put specifically, don’t bring me your FastCGI unless you’re providing free SMS to go with it, so I can alert myself when it goes down. There are smallish sites I own / run, built on PHP, which I don’t look at for months but are still, magically, running next time I go there - be it impression or not, PHP just keeps on running - restart Apache or reboot and it’s back without sysadmin effort.
Nah nah! Told you so! You were warned
So this years resolution is to be a little bit more active, blog-or-otherwise. Here’s looking at Terry.
This article provided by sitepoint.com.
Frameworks Round-Up: When To Use, How To Choose?
by Chris Poteet
Software frameworks provide developers with powerful tools to develop more flexible and less error-prone applications in a more effective way. Software frameworks often help expedite the development process by providing necessary functionality “out of the box”. Such things include user/role management, data access, caching, and much more. These frameworks aid in helping you focus on the more important details of design and even project management by alleviating the need to reinvent the wheel for common development needs.
There are frameworks that cover specific areas of application development such as JavaScript/CSS frameworks that target the presentation (view) layer of the application, and there are others that handle more of the dynamic aspects of the application. Some include both!
In the following we present an overview of most popular web application frameworks; we cover both server-side (PHP, Java, C#, Ruby) and client-side approaches (JavaScript, CSS).
You can also take a look at
- an extensive comparison of web application frameworks on Wikipedia. The article provides a growing list of various frameworks and features they have to offer;
- the review of existing CSS Frameworks we’ve presented few months ago.
by Chris Poteet
Software frameworks provide developers with powerful tools to develop more flexible and less error-prone applications in a more effective way. Software frameworks often help expedite the development process by providing necessary functionality “out of the box”. Such things include user/role management, data access, caching, and much more. These frameworks aid in helping you focus on the more important details of design and even project management by alleviating the need to reinvent the wheel for common development needs.
There are frameworks that cover specific areas of application development such as JavaScript/CSS frameworks that target the presentation (view) layer of the application, and there are others that handle more of the dynamic aspects of the application. Some include both!
In the following we present an overview of most popular web application frameworks; we cover both server-side (PHP, Java, C#, Ruby) and client-side approaches (JavaScript, CSS).
You can also take a look at
- an extensive comparison of web application frameworks on Wikipedia. The article provides a growing list of various frameworks and features they have to offer;
- the review of existing CSS Frameworks we’ve presented few months ago.
Before diving in, it’s necessary to first grasp the idea behind one of the fundamental concepts for web-applications. In the context of frameworks the model-view-controller architecture is particularly important, as this model is typical for most web-applications and is the definitive approach to choose once developing a new web-project.
Model-View-Controller (MVC) Architecture
CodeIgniter has probably the best definition of each the model, view, and controller.
MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.
- The Model represents your data structures. Typically your model classes will contain functions that help you retrieve, insert, and update information in your your database.
- The View is the information that is being presented to a user.
- The Controller serves as an intermediary between the Model, the View, and any other resources needed to process the HTTP request and generate a web page.

The Model-View-Controller Architecture.
There is also the Model-View-Presenter (MVP) model, and also the N-Tier Architecture approach amongst others. The difference between MVC and MVP in particular revolve around how data is passed from the model back to the view. In MVC it goes from the model to the view while MVP goes back through the presenter when handing data back to the view.
PHP
- CakePHP is a PHP framework that works on the MVC architecture and offers caching, application scaffolding, validation of model data and even a presentation API. One of the most popular PHP frameworks.
- CodeIgniter is a PHP framework that also uses the MVC platform, has classes for data access, e-mail, FTP, and XML-RPC. Also, CodeIgniter has an exciting community and thorough documentation to get you started.
- The Zend Framework is the self-proclaimed “leading open-source PHP framework.” Services included in the API include Ajax (JSON), search, syndication, web services, and a fully object oriented PHP class library.
Further PHP Frameworks
- Symfony - A feature packed framework, but has a reputation for being server-intensive.
- Prado - A component framework for PHP5 that has similar event based web apps similar to ASP.NET.
- BareBones - a one-file, no-configuration, MVC framework for PHP5.
Java
- Spring Framework is a MVC Java framework that can run on any J2EE server. The framework has a multi-layered architecture with an extensive API and supporting documentation.
- The Google Web Toolkit comes from the granddaddy of all Java development shops-Google. They have released their framework as open-source software. Functionality includes extensive interaction with Ajax, and you can simply write your front end in Java and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML. Also includes interaction with the newly released Google Gears for creating applications available offline.
- Apache Cocoon framework is a Java framework built around the concepts of separation of concerns and component-based development. There is a strong emphasis on working with XML and serializing into other portable formats.
Further Java Frameworks
- Aranea - a MVC framework that includes a web integration layer.
- AppFuse - a framework that is a self-described “project skeleton” similar to new projects created in an IDE.
C#
- The .NET Framework is an application framework taking application development by storm with its impressive collection of functionality. The great thing about the .NET framework is that you can build it around the MVC framework if you wish (there is an official Microsoft implementation coming out), or you can create your own architecture.
The .NET framework is available out of the box for C# and Visual Basic, but there are extensions available to allow languages like PHP to access and utilize the framework. Look out for some new features including the Windows Workflow Foundation for building powerful business solutions and Silverlight which is set up to be a direct competitor to Flash.
- MonoRail is a MVC framework where the controllers handle solely application flow, the models represent the data, and the view is just about presentation logic. If your project depends too much on third party Web controls or if your IT team skill set is totally centered around WebForms, MonoRail would not be a good choice.
Ruby
- Ruby on Rails has taken the programming world by storm by popularizing the MVC approach to application development. The framework came out the work of 37Signals on their popular Basecamp application. There is also a great emphasis on agile development to “release early and release often.
Further Ruby Frameworks
- Nitro - a Ruby framework, but at the current time it lacks substantial documentation for their API.
- Camping is a micro-framework weighing 4Kb.
- Ramaze has principles on keeping things simple, modular design, and minimal dependencies with an impressive source browser for documentation.
Python
- Gluon comes from the billows of DePaul University designed for agile development and secure database-driven web-based applications.
- Django is the ever popular Python framework that has an impressive template system, caching, dynamic database access API, and more. Many high-profile sites use it including The Washington Post and Pownce.
- TurboGears is a framework that includes a templating system, access the database with obscuring the database, and it uses MochiKit to provide a JavaScript API.
Client-Side Frameworks
Client-side frameworks are frameworks that specifically target the user interface/view/presentation layer. Recently both JavaScript and CSS frameworks have started to enter the mainstream.
While these frameworks might provide the Ajax-functionality, they are not meant to actually complete the data transaction and manipulation. A client-side framework is usually a smaller subset in a larger application framework.
JavaScript
- Prototype is a JavaScript framework that serves as a foundation for other JavaScript frameworks. Don’t be fooled however, as Prototype can stand on its own.
- script.aculo.us is built on the Prototype framework and has found its way into many high-profile sites including Digg, Apple, and Basecamp. The documentation is clear, and has an easy learning curve. However, compared to other JavaScript frameworks it is larger in size.
- Mootools is a compact, modular, object-oriented JavaScript framework with impressive effects and Ajax handling. The framework is for advanced users as the learning curve is rather steep.
- jQuery continues to rise in popularity due to its extensive API and active development. jQuery is a great balance of complexity and functionality.
- For ASP.NET developers you can’t beat the ASP.NET AJAX framework which is built into the .NET Framework as of 3.5, but you can also download it for previous versions. The amount of documentation, examples, and community continues to increase. There are controls that you can simply drag-and-drop an update panel on an ASPX page and process Ajax!
Further JavaScript Frameworks
- The Yahoo! User Interface Library - Yahoo! released its impressed JavaScript library with incredible amounts of documentation.
- Ext JS - Originally built as an add-on to the YUI it can now extend Prototype and jQuery. Includes an impress interface.
- Dojo is a small library focused on interpreter independence and small core size.
- MochiKit - A framework that has focus on scripting language standards including ECMAScript and the W3C DOM.
CSS
CSS frameworks have grown in popularity recently, but there are many developers [ 1, 2 ] who do not think it is an ideal solution for presentation design but not without a rebuttal.
- Yet Another Multicolumn Layout (YAML) is a XHTML/CSS framework for created modern and flexible floated layouts. It even includes a generator!
- Blueprint is one of the more mature CSS frameworks with a focus on layout, typography, and even including a print stylesheet.
- Content with Style - a CSS framework to aid in layouts and basic CSS design elements, but its development has slowed down.
- Yahoo! UI Library: Grids CSS - Yahoo!’s CSS library for layouts.
Considerations When Choosing
There are a couple of things to keep in mind when choosing a framework.
- Pick a framework that has extensive and accurate documentation. It is invaluable as you attempt to implement the technology.
- The framework should provide just that — a framework — that can fit your particular design methodology.
- Be sure to ask other developers about their experiences with frameworks in your chosen programming language.
- The larger the community the larger the odds that you will be able to find help when you need it, and it will continue to be improved and developed.
Chris Poteet is a WordPress/Web Designer consultant specializing in user interface, accessibility, usability, web standards, and content management. His main site is Siolon.com.
100 Excellent Free WordPress Themes
High-quality WordPress themes always come in handy. Whether you are looking for some design inspiration or professional coding solutions — in both cases you can learn a lot, you can apply them and you can build customized designs upon them without reinventing the wheel all the time.
In this article we present 100 free high-quality WordPress themes. Together with hundreds of other designs, these themes have been manually selected, installed and tested over the last weeks. They all can be downloaded, customized and used for free in both personal and commercial projects. Links to demo-versions provide a direct preview of a theme.
Please notice that the listed WordPress themes are presented in 8 sections: vibrant themes, simple & minimalistic themes, magazine style, grid-based, clean and legible, advanced, experimental, photoblog & videoblog.
You might also want to take a look at our previous selections:
- 83 Beautiful WordPress Themes
An overview of beautiful, but rather unknown themes you might have missed. - 21 Fresh, Usable and Elegant Themes
A quite pretty selection of elegant yet well thought-out themes. - 10 Fresh and Clean Themes
The beauty of these themes lies in their clean look supported by a legible content presentation.
You want them — you get them. This page may take a while to load; therefore please be patient and don’t hit “Reload” too often.
High-quality WordPress themes always come in handy. Whether you are looking for some design inspiration or professional coding solutions — in both cases you can learn a lot, you can apply them and you can build customized designs upon them without reinventing the wheel all the time.
In this article we present 100 free high-quality WordPress themes. Together with hundreds of other designs, these themes have been manually selected, installed and tested over the last weeks. They all can be downloaded, customized and used for free in both personal and commercial projects. Links to demo-versions provide a direct preview of a theme.
Please notice that the listed WordPress themes are presented in 8 sections: vibrant themes, simple & minimalistic themes, magazine style, grid-based, clean and legible, advanced, experimental, photoblog & videoblog.
You might also want to take a look at our previous selections:
- 83 Beautiful WordPress Themes
An overview of beautiful, but rather unknown themes you might have missed. - 21 Fresh, Usable and Elegant Themes
A quite pretty selection of elegant yet well thought-out themes. - 10 Fresh and Clean Themes
The beauty of these themes lies in their clean look supported by a legible content presentation.
You want them — you get them. This page may take a while to load; therefore please be patient and don’t hit “Reload” too often.
1. Vibrant WordPress Themes
PFO Stripes [ Demo ]
PFO Business [ Demo ]
FFF Lemon Twist (Demo and Download)
DM-Bloodless [ Demo]
jsTheme
Comes with a number of themes.
Smashing Theme [ Demo ]
Gossip City [ Demo ]
Midsight Red & Brown[ Demo ]
The original page was virus-infected, the link is replaced with its text-version until the site will be cleaned.
Curved WordPress Theme [ Demo ]
Accord WordPress Theme [ Demo ]
2. Simple, Minimalistic Themes
Documentation [ Demo ]
Dayvan Theme [ Demo ]
Tree Theme [Demo ]
DePo Clean WordPress Theme [ Demo ]
Brilliance [ Demo ]
3. Magazine Style WordPress Themes
WP Premium [ Demo ]
Structure Wordpress Theme [ Demo ]
Visionary Wordpress Theme [ Demo ]
WP Polaroid [ Demo ]
Jello Wala Mello Wordpress Theme
4. Grid-Based WordPress Themes
Gridline Lite [ Demo ]
5. Calm, Clean and Legible Themes
Abstractia [ Demo ]
HemingwayEx [ Demo ]
6. Advanced WordPress Themes
Neoclassical
A 3-column template system with rotating header images.
7. Experimental Themes
Bonsai, Red Growth Live
Big typography dominates.
Trevilian Way [ Demo ]
BrainTied 1.0 [ Demo ]
The front page displays only the list of recent posts.
Tropical Grunge [ Demo ]
Isolated Theme [ Demo ]
Fontella
The front page features only the main/recent post of the weblog.
Retro Mac OS X [ Demo ]
8. Photoblog & Videoblog Themes
Tumblelog For WordPress [ Demo ]
9. Sources and Further Resources
- WordPress Themes That Don’t Suck
- BlogPerfume WordPress Themes
- 48 SEO WordPress Themes
- Skinpress.com
- WPDesigner.com
- Clazh.com
- Best WordPress Magazine Themes
- ScribbleScratch.com
- Photoblog Themes
Monday Inspiration: Data Visualization and Infographics
The main goal of data visualization is its ability to visualize data, communicating information clearly and effectivelty. It doesn’t mean that data visualization needs to look boring to be functional or extremely sophisticated to look beautiful. To convey ideas effectively, both aesthetic form and functionality need to go hand in hand, providing insights into a rather sparse and complex data set by communicating its key-aspects in a more intuitive way. Yet, designers often tend to discard the balance between design and function, creating gorgeous data visualizations which fails to serve its main purpose — communicate information.
In both print and web design infographics — visual representations of information, data or knowledge — are often used to support information, strengthen it and present it within a provoking and sensitive context, depending on designer’s creativity.
This article presents some spectacular data visualizations and infographics which manage to combine a strong visual appeal with the effective presentation of information.
- You might want to take a look at the article Data Visualization: Modern Approaches we’ve written few months ago.
The main goal of data visualization is its ability to visualize data, communicating information clearly and effectivelty. It doesn’t mean that data visualization needs to look boring to be functional or extremely sophisticated to look beautiful. To convey ideas effectively, both aesthetic form and functionality need to go hand in hand, providing insights into a rather sparse and complex data set by communicating its key-aspects in a more intuitive way. Yet, designers often tend to discard the balance between design and function, creating gorgeous data visualizations which fails to serve its main purpose — communicate information.
In both print and web design infographics — visual representations of information, data or knowledge — are often used to support information, strengthen it and present it within a provoking and sensitive context, depending on designer’s creativity.
This article presents some spectacular data visualizations and infographics which manage to combine a strong visual appeal with the effective presentation of information.
- You might want to take a look at the article Data Visualization: Modern Approaches we’ve written few months ago.
Data Visualization and Infographics
Country Codes of the World
Country Codes of the World maps 245 top-level domain country codes encompassing all United Nations countries as well as numerous islands and territories. Each two-digit code is aligned over the country it represents and is color coded with the legend below for quick and easy reference.
Flags as Infographics
These posters have been designed for the political magazine Grande “Reportagem”. The main idea behind visualization is to turn flags of various countries into infographics by adding a legend to them. For instance: United States. Red: In favor of the war in Iraq. White: Against the war in Iraq. Blue: Don’t know where Iraq is.
Independent: Infographic
Middle-East: who backs immediate cease-fire? The infographic below was published on the front page of the “Independent” magazine during the Middle-East crisis in July 2007.
Virtual countries
This stand present the largest virtual countries according to the gross domestic product of the countries and world’s largest companies.
Net Neutrality
This infographic is supposed to emphasize the importance of net neutrality; it isn’t really a data visualization, but it instantly delivers the message: this is how our future might look like.
Corporate connections:
An extremely compact and useful source of information.
DIZZIA, Gregory M.
This is the documentation of every intimate relationship Gregory Dizzia has ever had. The data spans 23 years.
Amadana Infographics
Amadana is a Japanese company, which explains why they might not have realized that a scapegoat isn’t the same as an “acuarium.” The first row is for that toaster oven, the second and third rows are for an air purifier, while the last is for a hot plate.
The Japanese Wii Safety Manual
This Japanese Wii safety manual is pretty much indicative of Japanese people’s general insanity. [via Gizmodo]
Virtual Water
Simple, clean, elegant and effective. A double-sided poster visualizing the water footprint of products and nations.
Apple’s Tipping Point: Macs For The Masses
Very calm, soft and appealing colors within a clearly presented context. Design by Paul Nixon.
AT&T/Bell System Pre- & Post-Divestiture Chart
Peter Ross. 1985.
Flickr User Model
A slightly more complex data infographics, however still clear and well-presented.
Journey into the Universe (1985)
Information design, 1985.
Megan Jaegerman
A review of Megan Jaegerman’s work by Edward Tufte. Notice how clean and legible the infographics are.
Good Magazine Infographics
In each of its issues Good magazine offers good, even excellent, infographics related to aspects of our life. Some excellent examples below.
Who Participates and what people are doing online
A slightly different presentation of usual charts gives it some uniqueness and appeal. [via Kottke.org]
The Cost of Living on the Bleeding Edge of Gadgetry
Price and market penetration of consumer electronics over the past 50 years. By Arno Ghelfi. Infographics from a quite different perspective.
A year in Iraq
An unusual data visualization which gives information on the type and location of each attack responsible for the 2,592 recorded deaths.
Cubism and Abstract Art
Clean, informative and elegant. Alfred Barr’s work, found in Edward Tufte’s book.
MyMap
A data visualization application capable of rendering the relationships between the user and individuals in the address book by examining the TO:, FROM:, and CC: fields of every email in the 60,000-large email archive.the intensity of the relationship is determined by the color intensity of the line. “My Map” allows to explore different relational groupings and periods of time, revealing the temporal ebbs and flows in various relationships. My Map thus becomes a veritable self-portrait, a visual reflection of personal associations and relationships.
When Bots Attack
Using rented botnets, you can launch hundreds of thousands — even millions — of infobombs at a target, all while maintaining total deniability. In this hypothetical scenario, a single attack launched by China against the US lasts only a few hours, but a full-scale assault lasting days or weeks could bring an entire modern information economy to its knees. This infographic is supposed to illustrate it.
Mapping the Blogosphere
This is what the blogosphere looks like…
Globalization
…what about globalization?
George W. Bush Speech Infographics
An interactive infographic, compares the number of times certain words appear in the address. Both are a nice example of how information design can give readers more ways to evaluate and contextualize a given text or set of data. So simple, but extremely intuitive and clear.
yHaus: BookScape, Query Bursts. Experimental projects by Yahoo! Design Innovation Team. These query bursts depict individual IP numbers that start very popular bursts of search queries. each particle shows a query from a unique location worldwide. bookscape represents about 250,000 illustrations taken from children books, originally collected by the Open Library Project. The experimental interface uses dynamic resampling of image data to place all the images in a single zoomable space, arranged alphabetically by title.
Sources and Resources
- Good Magazine Infographics
- grandcontent
- Sugar Batteries Infographic Movie
- Iccarus: 3D Data Visualization
- 6 Less-Than-Helpful Infographics
2008 CES Should Be a Wireless Affair
The drum beat has already started for next week’s Consumer Electronics Show in Las Vegas, where you won’t be able to swing a dead rotary dial phone without hitting a slick sales type breathing the word “wireless” into your ear. Elena Malykhina, writing in Information Week this morning, advises show goers to “look for mobile TVs, wearable computing devices, portable media players, wireless in-vehicle technology, next-generation networking equipment, and much more.” CES is historically a big coming out party for new technologies and this year should be no different. Information Week reports…






















































































































































