Recent Blog Posts
Blogs ยป Archive for October, 2006
The State of Web Development: PHP developers most likely to switch to Rails
Of all the graphs in The State of Web Development 2006/2007 report that SitePoint and Ektron published recently, the one that stood out the most to me was the one showing the platform currently being used by developers planning to start using Ruby on Rails:

It wasn’t the fact that the graph shows PHP developers to be likely to start using Rails — this makes sense, as someone is more likely to experiment with another open source platform if they’re already using another open source platform — it was the fact that PHP developers are more than three times as likely to start using Rails, even more so than Java developers!
This surprised me, because it’s the Java developers that the Rails movement is targeting (note: purely my own observation, based on the Rails tagline of being able to write “real-world applications with joy and less code than most frameworks spend doing XML sit-ups”). To a Java programmer, Rails might well look like a much simpler way to achieve the same result. But …
Oct 8, 2006 News Wire
-
Understanding HTML, XML and XHTML
From the Safari crew, this is one of the most well-reasoned and pragmatic takes on the whole HTML vs XHTML debate I have yet seen. In short, Safari recommends you stick with HTML 4 for now, and the article notes that Mozilla recommends the same.
(tags: safari html xml) -
YUI Ajax phpBB
Yahoo! User Interface (YUI) Library blogger Jack Slocum has put together an impressive interface for phpBB that looks like a desktop email app. It needs a fallback mode of operation for users with JavaScript disabled, but otherwise it’s way cool!
(tags: javascript ajax yahoo!) -
No more IE6 background flicker
IE6 causes CSS background-image rollovers to flicker in an unflattering fashion, and a number of hacky solutions have been known for some time. Now, at last, there is an easy-to-apply fix! Why haven’t we heard about this from Microsoft before now?
(tags: css ie) -
TIBCO GI 3.2: Open sourced, and Firefoxed
TIBCO GI is an AJAX component framework for building desktop-like web applications. Until this latest release, it was IE-only, but it now supports Firefox 1.5, and is free for all uses. It still lacks support for other browsers, but impressive anyway!
(tags: ajax firefox) -
TIBCO GI 3.2: Thoughts from Kevin Hakman
An informative interview on …
Puzzling Forecasts
In the same vein as this, here’s a real world puzzle that might serve as a nice (or annoying) interview question - relates to something I had to deal with at work today.
There are a number of types of aviation weather bulletins, used worldwide and often critical to the operations of airlines etc. Many were designed prior to the dawn of XML and tend to have “interesting” formats - fun to understand, even more fun to parse. I imagine the designs were driven by system limitations - the days where a few bytes here or there really mattered - as well as the unique way the airline industry sees the world - something like RFC 3339 dates would be pure wasteful luxury.
For example METAR reports describe the current weather conditions at an airport while TAF is weather forecast for an airport.
Now a given TAF forecast will be valid for a maximum of 24 hours and a minimum of at least one hour (in practice, not normally less than six hours I believe). By “valid” in this context, I mean the time period for which the information contained in the forecast can be regarded as accurate.
You can look at TAFs online …
PHP MapReduce
So after my initial concern over the impact of this, figured it out at last - what Google is trying to tell us - we’ve got a huge cluster right there at our disposal!
So spent the night hacking together PHP MapReduce - the master node, which you run on your server, uses this search to locate victims… errr … workers to participate in the cluster. You then write some code like;
<?php
require_once ‘mapreduce.php’;
$veryLargeFile = ‘/tmp/bigfile’;
$map = ‘http://masternode.com/mapreduce/wordcounter.phps’;
$reduce = ‘http://masternode.com/mapreduce/adder.phps’;
# Massively distributed computing, here we come…
$result = MapReduce($veryLargeFile, $map, $reduce);
At the moment it’s limited PHP-only execution on the workers, so that’s a fairly limited size cluster. But working on extending it so that your map and reduce functions are automatically translated into MySQL stored procedures, allowing this search to significantly expand the cluster (thanks Ilia). And with help from adodb I think it should be possible to make this DB independent.
But where this get’s really interesting is considering this search. Now this is a lot harder to implement but it should be possible to invite browsers to join the cluster as well, dramatically increasing your processing power. The workflow would be something like master => worker server => worker browser => (via …
September Links from DotNetLand
While I have been silent for a bit*, the DotNet blogo/podo/webosphere has been anything but in the last month or so. Some gems in no particular order:
- Scott Mitchell (of 4guysfromrolla.com fame) has written, and continue to write a very throurough tutorial on creating a 3-tier ASP.NET application. While I am not the biggest fan of using Typed DataSets for the data layer, it is still a very good overview of how to structure a .NET web application and is definitely a must-read for anyone just moving into .NET. Anyhow, you can get it from the following links: VB.NET (parts 1 2 3 4 5 6 7 8 9 10) or C# (parts 1 2 3 4 5 6 7 8 9 10).
- CodeBetter.com is a must read under all circiumstances. But one of their bloggers, Brendan Tompkins, has started a new …
Oh dear
Google Code Search for Security Vulnerabilities
Here’s my attempt - hunting for $_GET / $_POST / $_COOKIE placed at the start of on and include / require / include_once / require_once - potentially a path to include remote files. (Un)?fortunately seems to break the search interface right now - although more results are reported, you can’t seem to get beyond page 2 right now.
lang:php (include|require)(_once)?\s*['"(]?\s*\$_(GET|POST|COOKIE)
So what’s the opposite of “security by obscurity” - because this seems to be it - Koders at least kept their search syntax weak.
JSON-P output with Rails
At the recent Web Directions 06 conference Cameron Adams and Sitepoint’s own Kevin Yank gave a talk on Mashups and APIs, with a mention of JSON-P.
JSON-P is a method of wrapping the JSON output of your API calls to allow other developers to call your API from within their page, bypassing the browser security mechanism.
If you peek at the HTML source of Web Connections you’ll notice we’re using JSON-P internally to provide the JS data to do the mapping. In the URL of the JSON-P call we can specify the parameter variable, callback or both, and this will allow others to use our JSON in their own mashups.
It also integrates nicely with the new Rails REST functionality. For example, Jeremy Keith’s profile page can also be output in JSON format by plugging ‘.js’ on the end. This is nice, but not very useful if you wanted to call it from another page.
Say Jeremy wanted to mashup this data on his own website to show who he’s friends with. He’d need some kind of JSON-P output so he can access the data from a script tag.
To add the JSON-P “padding” it’s just a matter of specifying a the “variable” parameter …
mod_wxJS
So there I was, getting ready for the PHP vs. Javascript showdown and I happened to take another glance at wxJS after being tipped off a while back here.
After more than four years work (Sourceforge registration date) the project is now at 0.8.4. And it’s not only doing the GUI part wxWidgets (C++); it’s also doing DBs and Files and ZIPs. wxWidgets means more than just GUI APIs - there’s other stuff available such networking, config file managers and logging - all to help you to write cross platform GUIs in C++.
wxJS also provides XML support (OK Expat not libxml2 but anyway) and Spidermonkey’s E4X support is apparently enabled.
But theres more: mod_wxJS is an Apache module in the same vein as mod_php (seems more like mod_perl in fact - looks like apps startup with Apache). Sure there are a few choices for server side Javascript but I’ll dare to say the only real alternative contender is haXe, which strikes me as more like Actionscript than Javascript. Meanwhile, judging from the responses to this, there’s a demand for server side Javascript, especially if it’s the same one available in your favorite browser.
Not that I’ve tried wxJS yet but fascinating stuff …
So is third-party web design a dead business?
Many of your comments to the last blog were quite depressing. Most of you made one of two points:
1. Web design for clients doesn’t pay well. The only way to make money in this business is by designing your own sites and making money that way.
2. Most clients want a lot but won’t pay.
If that’s true, then there is no reason for web designers to do anything other than design for themselves.
But I don’t think it is true at all. I have always thought that most people think way too small.
I think one can design great web sites for their own purposes, and also get out there and market your knowledge and wisdom at a high price to firms and clients that will pay big bucks for the results you can get. If you don’t have all of the knowledge, you can partner up with others who do and provide a complete solution.
If I am wrong, and you are trying to market to clients who want a lot and won’t pay, get the heck out of this business! There are plenty of other ways to make an excellent living, and web design can be a hobby for you.
Otherwise, some …
A client tells me about why he has rejected a bunch of web designers/developers
An enterpreneur contacted me by phone today. He has a terrific, proprietary and exclusive product with lots of market potential that he wants to sell via the Internet.
He explained that he had talked to a bunch of web designers — at all price ranges — and refused to work with any of them. None of them could provide a cogent point of view about how to design sites that converted visitors to customers — besides the usual talk about professional-looking designs.
Listen closely, as I’ve repeated this message too many times: You have a wonderful opportunity to dominate your market by providing a full, complete online ecommerce solution to your clients. This includes having a solution, and being able to describe it, in plain English that includes:
- How to attract people to the site in honest, proven ways (SEO that isn’t the usual rip off service at over $900 per month)
- Tested navigation flows that convert visitors to customers
- Proven marketing copy and materials that are compelling
- Tracking tools to test, refine, and expand what works
- Partnerships with top ecommerce companies
- Documented methodology for generating sales on the web — backed up with actual case studies and results.
Not all of you …
Sponsored Links
SitePoint Marketplace
Buy and sell Websites, templates, domain names, hosting, graphics and more.
Logo Design, Web page Design and more!
- Custom logo designs created ‘just for you’.
- Pick the design you like best.
- Only pay if you’re satisfied with the result.
SitePoint Kits
Download sample chapters of any of our popular kits.
The Web Site Revenue Maximizer
The Search Engine Marketing Kit, 2.0
The Web Design Business Kit 2.0
The Email Marketing Kit
The Usability Kit
SitePoint Books
Download sample chapters of any of our popular books.
Simply Rails 2
The Principles Of Project Management
The Ultimate CSS Reference
The Art & Science of JavaScript
The PHP Anthology: 101 Essential Tips, Tricks & Hacks, 2nd Edition
The ASP.NET 2.0 Anthology: 101 Essential Tips, Tricks & Hacks
The CSS Anthology: 101 Essential Tips, Tricks & Hacks, 2nd Edition
Simply JavaScript
The Art & Science Of CSS
The Principles of Beautiful Web Design