RSS ? Recent Blog Posts

Blogs » Archive for May, 2008

The Week in ColdFusion: 7-13 May: Community and Open Source are where it’s at

by Kay Smoljak

From the Adobe camp

This week saw the beginning of the Adobe Community Summit, a briefing event for Adobe Community Experts and user group managers. According to Aaron West’s Day 1 summary post, there are over 150 attendees this year, catching up on the latest in Adobe tech and giving feedback on the various community programs they are involved in. Aaron also revealed that Rachel Luxemburg was introduced as the new user group manager, replacing Ed Sullivan who many people involved in their local user groups would have had contact with over the past few years.

Adam Lehman, Platform Evangelist at Adobe, released his set of demo ColdFusion applications, covering the Ajax, Flex, PDF and presentation features of ColdFusion 8 (amongst others). The quick and dirty demos are designed to work with the standard cfartgallery sample database, an Apache Derby embedded database that gets installed with CF if you choose to include the samples, so if you’ve got a development server handy and you haven’t had a chance to try all the new features, check Adam’s demos out.

Also from the Adobe camp, briefly:

  • Russell Brown has a controversial request for ColdFusion 9: drop the built-in Ajax and JavaScript libraries. Although it’s unlikely that …
 

Rails 2.1 release candidate 1 is on its way

by Myles Eftos

Word out on the wire is that Rails 2.1 RC1 has been tagged in the repository, so the gems should be available shortly. Being a point release, the changes aren’t major - mainly bug fixes and some performance improvements, but there are still some new features that will make it worth a look.

Updated timezone support

Timezones will finally become a first class citizen in Rails. You will be able to set the timezone, and all subsequent time calls will be with in that zone.

Time.zone = “Australia/Perth”
Time.zone.now # will return something like Wed, 24 May 2008 22:56:00 WST +08:00

Better Gem dependencies

If you rely on gems in any of your projects (and why wouldn’t you? Code re-use and all that), you may have come across the pain of gem versioning. Rails 2.1 will allow you to stipulate what versions of each gem you need.

config.gem “chronic”, :version => ‘0.2.3′

It also adds a rake task that will automatically install the right gems for you.

rake gems:unpack

Improved caching

Previously, the only caching options Rails developers had was based around file fragments, which is fine for single server setups - but scaling that up to multiple servers could cause synchronisation issues, causing your cache to go stale. …

 

FREE PDF Download: The Photoshop Anthology

by Matthew Magain

With thanks to 99designs, we’re very pleased to announce that for the next 30 days our book, The Photoshop Anthology: 101 Web Design Tips, Tricks & Techniques, is free to download (normally worth $29.95).

That’s right, the entire 278 page book, yours to keep, forever!


The Photoshop Anthology: 101 Web Design Tips, Tricks & Techniques is the ultimate Photoshop compendium for web designers.

It’s brimming with tried and tested real-world Photoshop solutions that will add impact to your next web design project. If you’ve ever been stuck for inspiration, have puzzled over just how to create a shiny aqua-style button, or wanted to create that seamlessly tiling background image you saw on a site recently, you need to download this book.

Download it now!

This book is free to download thanks to the generous support of 99designs. If you’re looking for a place to give your new-found Photoshop skills a run, why not earn some extra cash along the way?

The team at 99designs are giving away a shiny new MacBook for the best logo design or web design, so be sure to check them out.

 

Building The Matrix - Notes from The Architect

by James Edwards

Matt Magain’s recent blog post about constructing the new SitePoint Book Matrix raised a couple of interesting questions, which I’m going to try to answer, since it was me who built it.

When is a table not a table?

When its data isn’t really tabular; in other words, when the data it represents isn’t really two-dimensional. What we have here is visually two-dimensional, hence at first glance it might seem reasonable to represent it as tabular data; but the data itself isn’t really two-dimensional at all, it’s linear.

A two-dimensional data set has two axes, each representing a different range or set of values, so we should be able to plot axes against the data and be able to make meaningful cross-references. But as the illustration below shows, we can’t:

Axes and reference lines overlaid on the Books Matrix to show that the data is not two-dimensional

Sure we can plot those lines and create that reference point, but they don’t mean anything, because the x and y axes both represent the same scale (skill level).

Before we can implement the design we need to decide how the data should be marked up, and that’s why it’s so crucial to determine the …

 

JavaScript MIME Type: Damned if You Do, Damned if You Don’t!

by Andrew Tetlaw

In an article he posted a little while back, Alex Walker mentioned some trouble he had with <script> tags when trying to add the type attribute. The Google script Alex was embedding had no type attribute but wouldn’t work when he added one. Douglas Crockford has suggested in his Advanced JavaScript videos that we drop the type attribute altogether since browsers default to JavaScript anyway. The problem is under HTML 4.01 and XHTML 1.0 the type attribute is required. So if you care about validation, like Alex does, then you’ll want to add it.

But, what is the correct type value for JavaScript? The other reason Mr Crockford provides for dropping the attribute is that that the value most people use, text/javascript, is wrong! It’s obsolete, according to rfc4329. This is also confirmed by Anne van Kesteren who has covered this issue already (way back in May of 2006 - yes Anne is one of the gurus and I am not), as well as the SitePoint HTML Reference.

The correct type value for JavaScript is actually application/javascript. But wouldn’t you know it, Internet Explorer will not execute the code if you use that type value. So here’s a hell of a situation, …

 

Freelancing: Handling the Midnight Client Call

by Toby Somerville

One point that came up from my last post (3 Golden Rules For Working From Home) was; how to handle phone calls during and after normal business hours, whilst working from home. There are three basic scenarios:

1. Client call during work hours
Pick up the phone. Using voice mail has its place after hours, but during work hours: pick up the phone. An answering machine says to a client – I’m not here and that (in a client’s mind) can translated to, you being unreliable and you don’t care about their business. Think of it this way: a client takes an extra (perceived) risk using you — a freelancer — as you are not as ‘safe’ to use as a company. Therefore, it is vital that the client ‘feels the love’ and can speak to you during business hours. This helps to reassure them that their business is safe in your hands and you are not some ‘fly by night’ amateur.

2. Personal calls during Work hours
It is pretty standard for your mates or family to call you during work hours at home, and it is an issue you will need to deal with sooner, rather than later. Friends and family …

 

cf.Objective Conference Wrap-up

by Kay Smoljak

cf.Objective() 2008, the third instalment of the “enterprise engineering conference for ColdFusion MX Programmers” run by Jared Rypka-Hauer, is now over for another year. cf.Objective() is unique in the conference circuit in that it concentrates almost solely on advanced topics. It also seems to generate a huge buzz in the community, and attracts attendees from around the world to Minneapolis.

It seems most delegates have arrived back home and updated their blogs, so I figure it’s time to see what they all learnt over the three days…

Brian Rinaldi wrote a comprehensive wrap-up for Fusion Authority. He noted that as the CF community continues to mature, developers are looking to the more advanced tools available to them to solve problems, namely Java, and this was evident in a number of session topics. He also noted that Flex was a hot topic, with so many sessions that a developer could spend the entire conference focused solely on Flex. Brian also reviewed several sessions in detail: Selling Professional Development in a Hostile Shop by Terrence Ryan; Leveraging Code Generation by Brian Kotek; Mate Flex Framework by Laura Arguello; Transfer Caching Mechanisms by Mark Mandel; and Flex: No Frameworks Required by Maxim Porges.

Mark Mandel …

 

Useful in-browser development tools for PHP

by Troels Knak-Nielsen

While debuggers exists, there isn’t much of a tradition for using them in PHP. People have largely come to rely on injecting debugging code directly into the program, for inspecting program scope. The infamous var_dump have served for this purpose and version 4.3.0 of PHP brought us another equally useful function — debug_backtrace.

Tracers and error handlers
Both of these functions produce a rather crude output though, so naturally people have written wrappers around them to remedy this. I think Harry’s pretty bluescreen was one of the first dedicated libraries I’ve seen. Xdebug spouts a similar output on error, although arguably not as pretty. Or blue.

What bluescreen is for debug_backtrace, krumo is for var_dump. Recently, FirePHP — building on Firebug — does a similar thing. FirePHP uses HTTP-headers to send data from server to client, which turns out to be very handy when dealing with non-HTML output (Eg. Ajax stuff). Because it builds on Firebug, it only works on Firefox, and in particular only on Firefox 2 (Another reason for Ubuntu-users to downgrade from Firefox 3).

Frameworks
Apart for these general general tracing tools, a couple of frameworks have their own, more or less specific, tools. Symfony’s Debug Toolbar is probably the most impressive …

 

The Ultimate Money-making Blog Smackdown

by Matthew Magain

In the MMO world (that’s an acronym for Making Money Online, for the rest of us), JohnCow.com and GarryConn.com are both notable blogs.

As is the case with many markets, online and off, there exists a healthy competition between the owners of these two competing sites. And as is often the case with individuals who enjoy talking about the money they make, this translates into a bunch of trash talk, teasing and a fair amount of back-and-forthing. For the readers of the blogs, this is no doubt highly entertaining, and probably drives traffic to both sites in question.

This latest stunt caught my attention — a competition to build a blog from scratch in a designated niche in 30 days, and see who can sell it for the highest price on the SitePoint Marketplace:

Instead of seeing who can make the most money with the blogs, lets invest 30 days into developing, marketing and building the blog and then list them for sale in SitePoint and see who can get the highest successful winning bid on selling it? The person who can sell their niche blog for the highest amount in a NO RESERVE Sitepoint auction wins the game. Both …

 

Is Your JavaScript Library Standards Compliant?

by Kevin Yank

One of the things JavaScript libraries like jQuery, Dojo, and YUI can do for you is add support for features in the latest Web standards long before they are built into browsers. But are some libraries going too far?

For the developers of JavaScript libraries, there is a temptation to extend the features of the standard, and build something even better! A good example of this is the CSS selector queries that first made jQuery famous, but which are now available in most JavaScript libraries.

CSS queries provide an extremely convenient way of getting a list of elements from an HTML document that match certain criteria. As an example, you might write a script that opens all hyperlinks with the attribute rel=”external” in a new window. Using just the DOM API supported by all major browsers, the JavaScript code to retrieve that list of links is pretty cumbersome:

var anchors = document.getElementsByTagName(’a');
for (var i = 0; i < anchors.length; i++)
{
var href = anchors[i].getAttribute(’href’);
var rel = anchors[i].getAttribute(’rel’);
if (href != null && href.length > 0 &&
rel != null && /(^| )external( |$)/.test(rel))
{
// anchors[i] is a link with …

 

Sponsored Links

SitePoint Marketplace

Buy and sell Websites, templates, domain names, hosting, graphics and more.

Logo Design, Web page Design and more!

99designs

  • Custom logo designs created ‘just for you’.
  • Pick the design you like best.
  • Only pay if you’re satisfied with the result.