KillerSites Blog

Stefan Mischook

Web 2.0 Explained

June 8, 2006

Web 2.0 Explained

The Internet is buzzing these days about the emergence of what people call ‘Web 2.0’. It’s important for web designers to understand what this is, because it affects all web design.

IN A NUTSHELL: Web 2.0 is a combination of factors/elements that leads to a much more social, interactive Web. Here is a short list of some of the key elements that make Web 2.0 possible:

  • AJAX allows for the rise of the truly ‘rich’ Web user experience: web pages that act like desktop programs … no need to refresh entire pages to see new content on the page.
  • Auto-syndication (sharing of content) via RSS/XML feeds – and software that allows you to easily create and access these XML feeds.
  • New ways to mass-communicate over the Web – podcast (mp3) and video.

BLOGS GOT THE WHOLE THING GOING

Blogging tools like WordPress and TextPattern got the whole thing going: most blogs automatically create RSS feeds.

Blogs also make it easier than ever before, for people to write content for the Web. No need for Web design software like FrontPage or Dreamweaver and no need to know HTML.

As such, there has been an explosion of content creation of the Web: people are writing like crazy! The three points to take away from this is:

  1. Blogs make it simple to (essentially) create web pages.
  2. Blogs automatically syndicate/share content via RSS.
  3. Blogs make it easy for readers to interact with blogger’s (the authors,) via a built-in system that allows people to make comments … the social aspect enabled.

WEB 2.0 IS MORE THAN JUST BLOGGING

Another major characteristic of Web 2.0 is the remixing and combining of information from many different sources.

For example:

A Web 2.0 web site may grab many RSS feeds and massage them into a new filtered presentation. The advantage is that users can now access this information from one spot, instead of having to visit many different sites.

CONCLUSION

This (automated) sharing and mixing of content/information (between people and websites,) along with ‘rich’ Web user experience is Web 2.0.

… and you thought it was something more!

🙂

read more

Server-side vs. Client-side Programming Languages

May 31, 2006

More and more web designers are interested in taking the jump into learning how to build database driven websites.

These days, the language of choice is PHP (with some adventurous nerds jumping into Ruby,) because it is easy to use, easy to learn and is very popular.

Regardless of what technology/programming language (PHP, ASP, JSP, Cold Fusion) you use to build database driven websites, there are some (common) basic concepts that have to be understood before you can move forward.

In the following video tutorial, I explain to the difference between server-side programming (PHP, ASP etc ..) vs. client-side programming – JavaScript, VB Script etc …

Video: Server-side programming vs. Client-side programming

PS: after you watch this video, you may want to take it to the next level and actually learn PHP.

Stefan Mischook

read more

Book Review: Sustainable Software Development – An Agile Perspective

May 30, 2006

by: Kevin Tate

Review by Richard Mischook

This book will of some interest to anyone who has ever worked on a team developing any sort of sophisticated software. By sophisticated I mean relatively feature-rich and developed with the expectation of a reasonably long shelf life. By the latter though, I don’t mean a static shelf life; rather a dynamic one where it is expected that the software will need to grow and change in response to the evolving needs of the customer.

Getting to the Point

Sustainable Software Development starts with a strong argument as to why building software cannot and should not be viewed as analogous to building buildings, despite the propensity of many to see things that way. For one thing buildings are not expected to change over time in response to changing requirements (not drastically anyway).

Software on the other hand in an increasingly dynamic business climate must be adaptable to change. In fact change must be relatively easy to accomplish with a low risk of breaking existing functionality. Thus sustainable software development is somewhat different from purely agile development, even if the former borrows heavily from the principles of the latter. Sustainable software must develop the software that the customer needs, and be capable of changing as the needs of the customer change.

The Core of the Book

This book is a great read. It uses numerous small examples to illustrate its point, examples that certainly were quite familiar to me. The causes of unsustainable development were covered in some detail. The meat of the book went into a series of practical and unambiguous practices and principles designed to foster long term sustainable development. In addition to discussing software methodology, the author recognizes the cultural issues (as in corporate culture) that need to be addressed to foster a sustainable software development environment.

Synopsis

This book is a great read even for those who may already be familiar with one of more schools of agile development. It left me charged up and wanting to rush into the office and put these ideas into practice. Highly recommended.

read more

SEO and the 3 critical factors in a domain name.

May 16, 2006

NOTE: SEO is the acronym for: ’search engine optimization’. This is the process of making your web pages more search engine ‘friendly’ by tweaking code and content.

Choosing a proper domain name can have a huge impact in terms of how it affects your positions in the search engines and your overall traffic.

THE 3 CRITICAL FACTORS

  1. The domain name should contain key words.
  2. The domain name should be as short as possible – easy to remember and easy to type in.
  3. The domain name is slightly better off as a .com over say a .net, org etc …

1. KEY WORDS IN YOUR DOMAIN NAME

No one knows the exact algorithms that the search engines use to determine who ranks higher. But you can learn a lot when you have several websites that get a lot of traffic …

One thing I have discovered over the years, is that keywords in a domain name do have a serious impact as far as the search engines are concerned. That said, MSN seems to hold it as being more important than the other 2 major search engines: Google and Yahoo!

The point is that you should start your SEO (search engine optimization) work BEFORE you even register your domain name. Try to choose a domain that contains a good keyword.

2. SHORT DOMAIN NAMES ARE EASY TO REMEMBER

I think this one is obvious … if your domain name is:

www.fantabulousefluffyregistereddogs.com

… chances are people will have a hard time remembering it! Instead something like ‘www.fandogs.com’ would be much better.

3. WHY ARE .COM DOMAINS BETTER?

Less to do with search engines and everything to do with the fact that most people will type in ‘.com’ before .net or anything else.

For that reason alone, try to register a .com before anything else.

Stefan Mischook

read more

Book Review: Head Rush AJAX

May 16, 2006

Head Rush AJAX targets web designers who have a basic understanding of JavaScript.

A couple of points:

  • A great book for beginners.
  • This book is not well suited for experienced Web programmers because the pace is probably too slow.

Using clever layouts and graphics, along with an easy to understand writing style, Head Rush AJAX makes AJAX very approachable for web designers.

WHAT IS AJAX

AJAX is essentially the combination of technologies (JavaScript, DOM, CSS) built into all modern browsers that allows you to create web apps that act like (from the users perspective,) desktop applications – the so-called ‘rich user experience’. AJAX is used to send data to and from the server, and then display it in a web page, in a seamless way.

AJAX is typically coupled with a server-side technology like:

  • PHP
  • ASP.net
  • Java/J2EE

The server-side languages/environments are used to grab data (say from a database like MySQL) and then hand it off the to AJAX scripts. Wisely, Head Rush AJAX uses PHP as the server-side language to play this role*.

*PHP was the best choice because most web designers are going to jump into PHP over any other language because PHP is easy to learn and is ubiquitous.

HOW THE BOOK TACKLES AJAX

By starting with simple concepts and examples, the book gently takes the reader from humble beginnings to (by the end of the book) where the reader should be comfortable creating AJAX based websites.

Some highlights:

  • Great examination of basic concepts.
  • Good tutorial on DOM scripting – a key component of AJAX
  • Nice comparison between AJAX with XML vs. AJAX with JSON – a lightweight JavaScript data format

Probably the best web designer centric book on AJAX.

Stefan Mischook (Web Design Heretic)

read more

PHP vs. Ruby

May 9, 2006

With all the buzz about Ruby these days (because of the web application framework ‘Ruby on Rails’) Zend (the people who manage PHP) are feeling the pressure.

Nerd Note: a ‘web application framework’ makes creating databased driven websites much easier because the framework takes care of a lot of the ‘dirty’ work that you would normally have to build yourself.

As far as Zend is concerned, PHP is not getting its’ fair share of attention even though PHP is:

  • Much more available than Ruby – in terms of hosting.
  • PHP is a widely used and a proven language with big sites like Yahoo, Digg and Flickr using it.
  • PHP is easy to use and easy to learn.

As I mentioned above, Ruby’s recent rise has been largely due to the web application framework ‘Ruby on Rails’. So in response to this, Zend has developed their own framework called: Zend Framework.

Along with the Zend Framework, comes a nifty new web site. From the press release:

Future of Web Application Design Is Here and Looking Good

Varien, a web design and development firm, has redesigned the Web site for Zend Technologies’ PHP framework. Varien completed the redesign as part of an effort to reposition PHP as the cleanest and most simple programming language.

Los Angeles, CA—April 20, 2006—Varien has completed redesigning the Zend Technologies’ new PHP Framework Web site in an effort to make the Framework more accessible. The Framework is a powerful new tool for Web developers, providing a simple, standardized way to create powerful web applications using PHP.

The redesign was part of a broader effort to reposition PHP, which included designing a new logo for the Framework. By repositioning PHP Zend hopes to make the Framework and PHP more appealing to current Web developers and less intimidating to those looking to get into Web development.

“Here you have PHP, a programming language that runs Flickr, Wikipedia, Digg, and even Yahoo, and yet Ruby has become synonymous with the new Web,” said Ben Blumenfeld, the Design Director at Varien. “Hopefully this redesign makes Web designers and entrepreneurs take another look at PHP. With Zend’s Framework, PHP is now simpler, faster and more powerful than it has ever been.”

PHP usage has grown tremendously since PHP4 was released in 2000. However, PHP has recently lost some of its mindshare to the heavily touted Ruby on Rails, despite a huge gap in actual usage. (TIOBE programming community index)

The Zend Framework aims to provide a high-quality, commercial-friendly and open-source based solution for programming in PHP. Zend is excited about the Framework’s usability and knows the site redesign will help developers get the most out of the new technology.

“The coolness fact is also important in initially attracting Web developers and is complementary to the technology. The new look of our Web site enables us to build a more appealing perception of the Zend Framework,” said Andi Gutmans, the vice president of technology at Zend.

The Framework can be found at framework.zend.com. The redesign allows users to download the framework from the front page and highlights projects created using PHP in a section on the front page.

WILL RUBY CONTINUE TO EAT AWAY AT PHP’S MIND SHARE?

This is the $64 000 question. But we have to consider one point: Ruby has capability that is widely used in Rails that PHP simply does not have; so can a PHP framework be as effective as Rails?

Nerd-minds want to know!

Stefan Mischook

read more

Book review: Professional Ajax

May 6, 2006

A very good book for experienced web application developers who want to jump into this new way of creating a rich user experience with the web browser.

The writing is clear and straight forward. Each chapter begins with a concise (but informative) theoritical introduction, which is then followed with a practical example that is substantive enough to learn the programming behind the theory, yet not too long that you’ll get bored.

Clearly targetting the enterprise developer, this book covers how AJAX works with:

  • XML, XPath and XSLT
  • Web Services
  • JSON: a Javascript data format that is a lighweight alternative to XML

You can read rest of the topics covered in the book’s TOC.

A HIGHLIGHT OF THE BOOK

I especially liked a section in chapter two (AJAX Basics) that covers the 3 methods used to create AJAX-like experience:

  • The hidden frame technique – what we used to do, to fake it in the late 90’s
  • The hidden iframe technique.
  • Using the XMLHttpRequest object – true AJAX (IMHO)

It was interesting to see working side-by-side comparisons of the methods available to web developers … and it makes you realize how useful the XMLHttpRequest object is!

What’s even more interesting is how the authors have actually combined these three methods in certain applications to create a more flexible AJAX implementation.

CONCLUSION

If you are an experienced web developer who wants to learn AJAX, get this book.

read more

Book Review: Ajax In Action

May 3, 2006

Introduction:

AJAX In Action targets experienced programmers who may not be familiar with client side Web application development. As such, the book provides a ‘crash-course’ into the basic building blocks of AJAX scripting:

  • CSS for styling markup/HTML
  • CSS for page layout
  • How the DOM (document object model) is used to restructure the page dynamically.

A good book for experienced programmers but not a title for web designers wanting to jump into AJAX. For people with less programming experience (those who know a only little JavaScript,) you are better off with the excellent book for beginners: Head Rush AJAX published by O’reilly.

Then perhaps (with some programming experience behind you,) you can come back to AJAX in Action.

Stefan Mischook

WARNING: This review has a 5 star nerd-level … not for beginners.

In a word; a comprehensive book that covers as much ground as could be expected, given the pace of change in the Ajax sphere. Lots of detail here although perhaps a little too much at times – I had to fight to finish it and ended up skimming at times.

About Ajax

Chances are you’ve heard of Ajax – it’s getting a lot of press as the best thing since some other acronym (take your pick). Ajax essentially is a suite of web technologies that allow you to develop web sites that seem more like traditional desktop applications. The web metaphor of click-reload-from-server-click-again is replaced by a user interface that can selectively update itself as the user interacts with it.

There are a number of working Ajax applications in the wild, one prominent example being Google Maps (http://maps.google.com/). The promise of Ajax is of a new generation of distributed applications with better usability and hopefully lots of budgets for those who know how to make them happen.

Rethinking the Web

Part 1 of the book does an overview of Ajax with emphasis on how Ajax applications differ from traditional web sites. In addition the section covers some prominent examples, as well as looking at some alternative technologies such as Flash and Java.

The section then dives into some simple examples of using Ajax technologies like the HttpRequest object and DOM scripting. This provides a nice gentle introduction to the main ideas behind Ajax.

The final section of part 1 looks at some patterns that could/should be used in developing Ajax apps with emphasis on a Model-View-Controller (MVC) framework for client-side Ajax code.

Core Techniques

Having dipped our toe (if not our whole leg) in the water, the authors move on and cover the various patterns that one might expect to use in developing an Ajax application. Quite a lot is covered and there is a lot of code. The authors use some concrete examples that are mostly reasonable, although less experienced web developers may not see the relevance of some of the examples.

Professional Ajax

Part 3 is covers core issues involved in taking an application from the prototype stage to a production application. Issues such as responsiveness and scalability are treated, as are usability issues like providing user feedback (with some example re-usable frameworks provided as examples). In addition security and performance are covered with some good tips on third party tools that can be used to debug hard-to-find problems as you are developing your application.

Ajax by Example

The final part covers the lion’s share of the book and provides some examples of varying complexity. These include code for a double combo box, type ahead suggest (see Google Suggests), a web portal, and others. I did not actually spend a lot of time here as by this point I felt I understood enough of the technologies to use them as I needed. Which is not to say that the code examples are not worth looking at.

Round Up

The book also features some appendices that covers tools like IDEs, third party frameworks and libraries, and a section on JavaScript for object oriented developers. Note that the libraries section necessarily can only be a starting point as there are new contributions coming along fairly often.

All in all a lot of the information in the book can be found on the web, but the book does make it easy to kick back in bed and absorb.

The writing style is very clear although not as entertaining as some technical books I have read lately. I think you’ll find that once you understand the core technologies, stuff starts to get repetitive.

Still the book does a nice job of covering the ground extensively and I recommend it to anyone who wants to learn about writing Ajax applications.

Richard Mischook

read more

GoDaddy.com Supports Ruby

May 1, 2006

I have had two major problems with Ruby and Ruby on Rails:

  1. Hard to find Ruby/Rails hosting.
  2. Not too many clients looking for Ruby programmers.

One thing has changed:

A major hosting company (GoDaddy.com,) has stepped up and now supports Ruby on Rails hosting – there goes my first argument against learning Ruby!

Quote from GoDaddy:

Our customers are finding Ruby on Rails to be incredibly valuable in shaping their online presence,” said Bob Parsons, GoDaddy.com CEO and Founder. “We are pleased to be able to offer support for a framework that increases the utility of the sites we host.

With GoDaddy.com jumping in, this will force/influence other hosting companies to adopt Ruby and as such, I believe over the next year, Ruby hosting will become more and more common.

BUT EVERYTHING IS NOT PERFECT WITH RUBY… YET.

Even though it looks as though the hosting thing is resolving itself, we still have the issue of the number of Ruby gigs/jobs floating around … not that many yet.

There is still so much PHP out there (hosting, frameworks, products) that I think for next few years, PHP will continue to dominate with regards to small to medium size projects.

That said, I think that Ruby will be a player for a few reasons … most important, is the strong acceptance of Ruby (and Rails) by the Java community.

Another problem with Ruby and Rails, is the stability of the fastcgi plug-in that works with Apache 2.x.

Basically, there are still some lingering issues with how Ruby ‘talks’ to Apache. This is major, but there are many high profile, high traffic websites that seem to be running fine anyway … ?

CONCLUSION

Despite the aforementioned issues with Ruby and Rails, I am actually involved with putting together a major project with Rails … I know, I know, I’m a bit of a hypocrite!

My reasons?

  1. Ruby and Rails are compelling – there’s some good stuff in there that should make the project much easier to build.
  2. I wanted to explore Ruby and Rails with a real project – I’m just a ‘Curious George’ I suppose …

I plan to come back to you and give you my impressions as to how easy (and useful) it would be for web designers (not programmers) to learn at Ruby vs. say PHP.

Stefan

read more

Book Review: Agile Web Development With Rails

April 28, 2006

Review by: Richard Mischook

First, a little about this nerd reviewer:

I’ve been writing web applications for over ten years. I’ve used a variety of technologies over that time including CGI with various shell script dialects, Netscape Livewire, and Active Server Pages.

But mainly I’ve used Java because it generally has been the best choice for many of the projects I’ve worked on. (ed: and it paid the bills!)

Now saying ‘Java’ doesn’t say a whole lot because when it comes to web application development, Java can mean a lot of things. It can be as simple (and messy) as just using Java Server Pages or can include servlets, EJBs and/or the various frameworks that are available such as Struts and Spring.

Many of us have been happy to pick and choose from the rich menu of available technologies, confident that these were solid and reasonable choices.

Things change …

But there is a disturbance in the force. It’s a small thing right now but some important people have been grumbling. They’ve been saying things like ‘Do I need to write so much code to do this’ and ‘How many XML configuration files do I need to get Hello World to show up in a browser?

And while many have embraced PHP there is a growing movement centred on a framework called Rails.

Rails is built on the Ruby scripting language. Ruby is an object-oriented scripting language that is concise and “…makes it easy to create methods that act almost like entensions to the syntax…It makes our programs shorter and more readable.” (page 1).

RAILS USES MVC

Rails provides a Model View Controller based framework with some important extras thrown in, most particularly a built in Object Relational Mapping tool that makes saving and loading data to and from Ruby objects almost trivial.

In fact Rails seems to provide a lot of the stuff you’ll find in Struts without the headaches associated with maintaining the Struts config file(s).

Ok, ok … what about the book!

The book wastes no time and starts with an overview of a simple Rails application. It then steps back and covers installation on a number of platforms.

It then dives in deeper and builds a fictitious shopping cart application using an agile and iterative development approach (the book is after all called Agile Web Development with Rails). After spending 125 pages building an application, the authors look at the guts of the framework and illustrate how it can be tweaked.

One important theme running throughout Rails is that of intelligent defaults – if you follow a relatively small number of conventions you can have an application up and running with little or no configuration file tweaks.

But if you do need to change things, you can, and the book does a great job of showing you how in simple and clear language.

EMAIL AND AJAX

The book also looks at support for sending and receiving email, as well AJAX and web services support in Rails. There is also a chapter on deployment that is upfront about some of the issues here as well as an interesting appendix covering the Ruby language for those who may be new to it (like me).

CONCLUSION

Overall the book is a great read if you want to get to grips fast with Rails. The examples and scenarios are fairly realistic and the writing is clear and to the point. Clearly the authors are very passionate about Rails and their enthusiasm is contagious. Highly recommended!

read more