Archive for the ‘General’ Category

Worthwhile Links

Tuesday, March 3rd, 2009

I promised myself that I would pick up blogging again. I miss it and I think (hope) that my workload will allow me the time again. To kick things off, here are two articles that are definitely worth reading.

My Tools of the Trade

Thursday, August 7th, 2008

Whenever I learn a new set of skills—such as photography or cooking—I want to learn as much as I can about the tools that the pros use.

Sure, to learn photography you need to understand exposure and depth of field, but that’s only part of what it takes to be a real photographer, to be a good photographer. What camera and lenses should you buy? What brand of film? I even pay attention to borderline ridiculous details like what kind of camera bag the pros use. Learning first-rate cooking skills won’t do you much good if you don’t have a good set of pans. Any chef will tell you that having quality, sharp knives make a world of difference in the experience of cooking, even though it may not change the flavor. And, as I love to watch Gordon Ramsay scold, keeping a clean kitchen is an essential (and too often overlooked) step in producing quality food.

The point is that there is more to learn than just the fundamentals. It makes sense to learn from the trial-and-error experience of people who are already working with these tools everyday. I may decide I disagree with their preferences, but knowledgeably making a different choice is much better than stumbling around on my own. Plus in the process, I know I will discover some of the intricacies and pitfalls that come with working in the field.

In that spirit, here are the tools that help me as a web developer.

(more…)

Are There Steps to Writing Code?

Tuesday, June 17th, 2008

A student sent me email to ask: “In a general sense, when writing code, is there a sequence of steps or a pattern to the logic when writing the code?”

It’s a good question. Experienced computer programmers have learned these steps—either through intuition or experience—but beginning programmers are often mystified. Once you learn the language syntax, how exactly do you use it to approach a programming problem? Especially if you want to try to use good programming techniques and to solve the problem in a smart and efficient way.

The answer to the question “Are there steps to writing code?” is “Yes”. After the jump, I’ll give three ways to develop the logic necessary to write good code.

(more…)

Baby.new

Friday, June 13th, 2008
1
2
3
4
5
6
7
8
9
10
11
12
13
14
piper = Baby.new(:name => 'Piper',
                 :born => '2008-06-09 18:22:00 EDT',
                 :weight => {:lbs => 6, :oz => 8},
                 :length => {:inches => 21.25})

skoglunds.children << piper

piper.daily do |p|
  8.times do
    p.eat
    p.poop
    p.sleep
  end
end

Piper

A List Apart: Web Design Survey Results

Wednesday, October 17th, 2007

A List Apart Web Survey

A List Apart has released their 2007 Web Design Survey results.

They received 33,000 reponses to their 37 question survey and massaged all that data into 80 pages of interesting findings. Not only do they share the summary of age, ethnicity, salary, and job field, but they also dive deeper to examine questions such as how many women felt their was a gender bias and is that bias reflected in their salaries. It is an impressive undertaking and worth a read.

Even though “Developers” seem to be well represented in the survey, keep in mind that the ALA audience skews toward designers, designer/developers and those interested in CSS, accessibility and usability, instead of hard-core code heads. If you surveyed enterprise Java developers or Oracle database administrators you might get different results.

Six Scaling Server Set-Ups

Tuesday, October 16th, 2007

Stuart Herbert has posted six ways to group and organise your web servers. He starts small with simple shared hosting and scales upward to web farms, clusters and n-Tier architectures. (Stuart is a PHP-guy but his server advice is platform and language agnostic.)

It’s a good overview for anyone who’s thinking that they are outgrowing their current server set up and wondering what options they should consider. If nothing else it should give you the language you need to go off and do more research on your own.

It’s also a good read if you aren’t outgrowing your server, but want to design applications smartly, so that they could scale if necessary.

Two Interesting Books

Thursday, August 16th, 2007

Two recent books caught my attention. I’d love to hear thoughts from anyone who’s read either of them. Both of them are “big picture” programming books and both are from O’Reilly.

The first book is “Beautiful Code” edited by Andy Oram and Greg Wilson. Each chapter is a case study on code design with 33 chapters total. The chapters span many programming languages (Perl, Python, Ruby, Java, Haskell, Scheme and more) and many are by heavy-hitters in the programming world like Tim Bray (XML, Atom), Douglas Crockford (JSON), Simon Peyton Jones (Haskell), Brian Kernighan (Unix, C, AWK), and Yukihiro Matsumoto (Ruby). It just came out in June but has been getting great reviews.

O’Reilly describes it like this:

“How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts as they work through their project’s architecture, the tradeoffs made in its construction, and when it was important to break rules.”

Safari Books Online has posted an interview with Oram and Wilson about the book. O’Reilly has also launched a related web site which is for further discussing the projects in Beautiful Code and other similar projects.

The second book is “Programming Collective Intelligence” by Toby Segaran. It was just released this month.

O’Reilly describes it like this:

“Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the enormous amount of data created by people on the Internet. With the sophisticated algorithms in this book, you can write smart programs to access interesting datasets from other web sites, collect data from users of your own applications, and analyze and understand the data once you’ve found it.”

Tim O’Reilly wrote a thought-provoking blog post in support of the book where he asserts that the power of the “Web 2.0 revolution” doesn’t lie in user-submitted content or Ajax-powered interfaces but in the ability to “harness collective intelligence”. (I’d argue that it’s all three, but his point is well-taken.) He defines “Web 2.0″ as: “the design of systems that harness network effects to get better the more people use them.” To do that programmers have to extract meaning from mountains of data. They have to shape it using their own intelligence—take the noise and make it signal. “Programming Collective Intelligence” attempts to teach the techniques and algorithms to get started.

I just ordered them both. I’m not sure if they will make for good vacation reading, but I’m sure they will be good airplane-on-the-way-to-vacation reading. (If they arrive in time, both of them aren’t shipping immediately.) If you order them direct from O’Reilly, they are offering a “Buy 2 Get 1 Free” special (I picked “Mastering Regular Expressions”) and orders over $30 get free shipping. (And don’t forget that it might be considered a business expense…)

Regex Essentials

Wednesday, July 18th, 2007

Regular Expressions (”regex” for short) are extremely useful regardless of which programming language you are using. They work in Unix Ruby, PHP, JavaScript, and Perl. I even use them just for simple text processing with editors like BBEdit and TextMate. (Have a list of names which are formatted “Last name, first name” and want to invert it? Regex is the answer.) They can help validate user form input. They can help you clean up and alter data. They can help you search your code when developing. They can help you mine your weblogs for trends and stats. But a reliable regular expression can be tricky to write—especially for beginners who have a hard time understanding what the elements in the syntax signify.

Mike Malone has written a couple of nice blog posts that summarize some essentials for both beginners and for more experienced regex users.

Radio Silence

Tuesday, June 26th, 2007

Save Net Radio

Today, June 26, the SaveNetRadio coalition will be holding a National Day of Silence to draw attention to the impending royalty rate increase that could lead to the shutdown of most internet radio sites in the United States. Royalty rates for webcasters have been drastically increased by a recent ruling and are due to go into effect on July 15, 2007. That’s the bad news and it only gets worse. The rate increase will be retroactive to January 1, 2006!

Most large online radio providers are participating including Yahoo, Pandora, Live365, Rhapsody, Accuradio, MTV, KCRW, and Radio Paradise. A full list is here.

The goal of the National Day of Silence is to raise awareness and to encourage listeners to take action and contact their Congressional representatives.

Top 10 Open Source Projects

Friday, June 22nd, 2007

iTWire has a two-part article (part 1, part 2) that profiles the top ten hottest open source projects today, as judged by their level of activity on SourceForge.

The top ten are:

  1. Azureus (Java-based BitTorrent client)
  2. Openbravo (enterprise resource planning system)
  3. Zenoss Core (monitors servers and equipment across a network)
  4. Stellarium (renders 3D photo-realistic night skies with OpenGL)
  5. ZK (Ajax framework)
  6. vMukti (multi-party web conferencing application built on .NET)
  7. phpMyAdmin (PHP app for working with MySQL databases)
  8. OrangeHRM (web-based PHP/MySQL human resource system)
  9. FileZilla (Windows FTP client)
  10. FCKeditor (online text editor)

You can read the iTWire article to find out more about these applications and find links to download them from SourceForge.

(Hat tip to Slashdot for the link.)