Free Stock Photos (now)!

Stock.xchng bills itself as “the leading free stock photo site.” Hey, who am I to argue with a well-organized and easy-to-navigate web site containing over 19.000 FREE photos by more than 1.500 users?

Free Stock Photos (now) at the Stock.xchngYes, some (as in just a few) of the photos have restrictions and/or string attached, but many don’t. Those that do usually require permission or acknowledgement if the work is to appear in a commercial presentation.

The quality of images ranges from well-intended amateur to full-blown professional. Somewhere in between, you might be able to find some smiling faces and some neat places to give your church or charity website that warm ‘human touch’ that helps convey your organization’s purpose and personality.

Just do me a favor, if you do use the photos, remember two things. Give the author some attribution, and please, please, please, don’t make the mistake of thinking that by resizing the image using the <img> tag that you’re physically reducing the download size of the photo (because you’re not !-). For more details, see my article on color reduction.

Posted in Uncategorized

Wi-Fi for Dummies

Would someone mind telling me where the summer has gone? Here in the U.S., it’s Labor Day already. Well, at least the Labor Day weekend. Which I usually celebrate with some back-breaking weekend long project that makes me glad to return my office the following Tuesday.

This weekend, I get to cut the lawn, trim the hedges (big nasty 40 year old monsters), wack weeds, clean out the shed, clear the storm gutters, take some stuff to the dump and after all that, I have the joy of getting around to that 24’x12″x12″ ‘Freedom’ drain I ‘ditched’ last weekend in favor of chasing my 3.5 year old around the park.

For those of you who’d rather not feel the burn of sore shoulders and the satisfaction of complaining to your spouse about your aching back, why not Wi-Fi? For those of you not familiar with acronym for Wireless Fidelity, Wi-Fi is according to The WikiPediaa set of Wireless LAN standards developed by working group 11 of IEEE 802.

Yeah, okay, that was total geek-speak. Wi-Fi is a way you can provide network access to a home, your church, your charitable organization, or your nosey neighbor without having to snake wire through the walls and ceilings of your domicile. The problem is walking into your local computer store and trying to figure out where the network begins and the hype ends. For that, may I suggest a nice little article by Paul Boutin of the Slate aptly entitled “Wi-Fi for Dummies? In this article Mr. Boutin takes some of the fear factor out installing a simple wireless network.

Not convinced? If you are unable to inspire your congregation that this is a good way to get their offices, their classrooms and their sanctuary online, then perhaps this article from my April archives entitled Wireless Missions will help.

Going for it? Then please, do me 3 big favors:

  1. Make sure your firewall (preferably dual-homed) is correctly placed to protect your internal systems from outside attack — or from those inside abusing things on the outside.
  2. For those of you with web servers on site, see what you can do about making sure they’re not on the same ‘leg’ as your office or school systems.
  3. Please enable message encryption or suffer “The Attack of the Eavesdropping Neighbors

Okay, you have your assignment, get busy.

Posted in Uncategorized

Glenn Reynolds on Working with the System

Last week, I reminded you that those who fail to plan inadvertently plan to fail. A thought corroborated by that towering genius of the blogosphere, Glenn Harlan Reynolds, a.k.a. the Instapundit. In this week’s TechCentral column, he writes:

… [press] coverage or not, these sorts of things happen all the time. The complex systems that we depend on for all sorts of goods and services, from electricity to food to natural gas, are vulnerable to breakdowns. You can exaggerate this vulnerability — as people did in the run up to Y2K hysteria — but that doesn’t mean it isn’t real.

In other words, ‘schtuff‘ happens, you can plan on it.

So I’m here to nag you again. In the past week, have you:

  • done anything to automate your backups?
  • do you know how to restore your backups?
  • are your backups verified and restorable?
  • are your backups offsite?
  • do you have a contigency plan?
  • have you practiced your contingency plan?
  • do you have a backup for yourself?

If you can answer yes to all the above, you’re doing one better than me. Meaning, the biggest disruption to my church’s website would be me becoming unavailable for reasons I’d rather not think about. I mean, I love Chuck Holton like a brother, but aside from his best-selling books making him a busy bee, I doubt he’s going to know how to restore a MySQLDump backup that has been tar’d and gzip’d. Nor is he going to know how I install MovableType unless I teach him. And while our host provider also provides copious backups, nothing beats a bird in the hand when it comes to your own data.

In other words, ol’Deano needs to document the process and train a person or three in the fine art of restoring our system back to good working order. How about you?

Like I said, ‘schtuff‘ happens, or as Dr. Reynolds aptly put it:

Between natural disasters and terrorism, the systems that keep our society running face real threats. It’s especially important that the people who organize and operate them keep these threats in mind, and pay sufficient attention to contingencies. Lives depend on it.

Okay, lives may not depend on it, but souls might. So as I engage to yank the plank outta my own eye, I again leave you with my (self) admonishment based upon (and with apologies to) the inspirational text of Romans 10:

  • How can they restore the data without knowing how?
  • And how can they know how without having practiced?
  • And how can they practice without someone teaching them?
  • And how can someone teach without documentation?
  • As it is written, “How beautiful are the webmasters who have planned ahead!”
Posted in Uncategorized

Montrose Baptist Church Rockville Maryland

Montrose Baptist Church is going through a rather rough time. As reported in the Washington Post, in September of last year, their pastor resigned after “senior staff members rais[ed] concerns about his involvement in the[ir] recruiting organization.” Read the article if you’re into gory details. Recycling old trash is not my objective here. Instead, my purpose is to discuss the problems facing church and charity web sites during periods of radical transition.

Case in point, their ‘new’ frontpage which I suspect (hope) will change in a day or three; so I captured a screen shot just in case:
Click here to see the 'placeholder' page as it appeared on 25-Aug-2003

If you’re confused, don’t panic, so is most anyone else visiting the site at this time. It would appear that the folks at MBC have transferred/moved the site to a new web host and as a result, what appears is the default placeholder offered by their host provider. The question is, how does one handle this particular situation?

Personally, I’ve never been a fan of the ubiquitous “Under Construction Page.” As Gordon Kindlmann so vividly demonstrates, such imagery usually says less flattering things about the webmaster and the organization, than it does about the site representing him/her/it. In part because it has been my experience that such pages tend to remain that way for quite some time. In equal portion because it says you don’t care enough to at least provide an explanation of what’s going on. As a result, visitors tend not to come back.

What I might suggest is creating some very simple content with the name of the organization, the essential contact information, driving directions and a schedule of any regular events. Then I think I would offer a site map or an outline of features and pages to come along with some form of a reasonable timeline of when this miracle is going to happen. This shows the user that your organization is serious about serving their informational needs, and has a realistic plan in the works to do so.

One way of doing this is to take advantage of any content management, weblog or web page generation tools provided to you by your web host. For those of you on Unix/Apache platforms, it is not uncommon to have “addon scripts” available as part of a control panel that comes as part of the monthly price. Such tools allow you to easily and automatically install content generating programs such as PHPWebSite, b2 and or pMachine.

By sticking to the default installs, templates and configurations, you can at offer a smattering of compelling content in under an hour — and look like a pro doing it. Better yet, by using such tools, it allows you to concentrate on what you want to say and how you want to organize it. In other words, it allows you to insert reusable content in a database that you can port or paste to whatever mechanism becomes your final site solution.

During this process you might also want to consider preventing search engines from viewing or attempting to view old links, links-to-be and/or expose half-baked documents that are otherwise not ready for prime time. This can be done by placing the following meta tag on your “pardon our dust” page.

<meta name=”robots” content=”noindex,nofollow”>

Remember, first impressions are important. If at all possible, don’t show the user content until it’s complete.

Posted in Uncategorized

ReUseIt Makeover or Design Eye for the Usability Guy

It’s a beautiful Sunday here in Maryland, so no sense sitting inside the house when I can spend time digging a 24’x12″x12″ drainage ditch along the left side of my back patio (and yes, I’m still sore from doing the right side yesterday). That said, I know some of you are either fighting blazing heat, or for those of you in the Southern Hemisphere – are snuggled-up next to the fireplace. So for those of you who aren’t able or willing to go frolicking about the woods with nothing but a butterfly net, I have a fun assignment for an otherwise lazy Sunday – win valuable prizes by redesigning Jakob Nielsen’s Useit.Com.

Yes, we all complain about how boring and dull Dr. Neilsen’s site appears, but finally, someone has gone a bit further than ‘kvetching’ and is putting their time and money towards a contest to give the big-guy’s site a facelift. That someone would be the folks over at

Here are some fun quotes from the contest frontpage that might inspire you to fire up DreamWeaver and TopStyle together a site that if used, would probably lead to a book deal, or at least copious hits to your website or blog:

Here’s the idea: create a redesign of Jakob Nielsen’s Design a usable, intuitive layout and navigation, organize the content with usability in mind, and create a work of art which still reflects the importance and influence of Nielsen’s work.

This is NOT a Jakob Nielsen slam-fest. It is a legitimate design contest that Mr. Nielsen himself has given his blessing to. So don’t even think about it!

If you’ve been thinking about incorporating tableless XHTML into your design/development toolbox, this is the perfect opportunity. It will cost you nothing but the time you put into it, and if your design is chosen by our team of experts, you’ll be rewarded with fame and fabulous prizes.

Overall, entries must be usable, accessible, and pleasing to the eye according to the basic premise that Built for the Future was founded on.

What browsers do I need to support?
All of them, and none of them. The content must be functionally accessible through just about any web browser, but the backwards compatibility of your design is your choice.

So what are you waiting for? After all, it HAS to be alot more fun than digging a ditch … trust me … I know.

Posted in Uncategorized

The One Page Linux Manual Home Page

As the parade of pretty little posts continues today, we take a turn down Linux lane with a link to the the One Page Linux Manual. This 94KB Adobe Acrobat beauty (or if you prefer, a 542KB Postscript beast) contains all the essential command line instructions you love to forget reduced onto two sides of a single page (proving that some PDF documents are fit for human consumption).

Which you can then fold in quarters to fit inside your handy-dandy Linux Pocket Protector.

And just to show you what an ecumenical guy I am, here’s a link to a tutorial on “How to set double-sided printing by default [for] Windows computers.

Posted in Uncategorized

For you BNF fans – CodeWorker

Friday fun, or evil conspiracy to ruin your weekend? You decide! This next little FreshMeat gem is for those of you who’ve had to take a class or two in programming languages. And I’m not talking about the obligatory C++ or Java classes required of all computer science majors. No-sir-ee-bob, I’m talking about those deep ventures into the internals of how programming languages work that usually end the semester with an assignment to write your own small computer language.

I took three of them … hey it was either that or take ‘dysfunctional case mods‘ or some other ‘elective’ within the program that had no real-world application. So imagine my joy when I came across CodeWorker: a parsing tool and a source code generator. You didn’t need to Flex this description to realize that it’s Bison-free. Check it out:

CodeWorker is a parsing tool and a source code generator, available in Open Source (distributed under the GNU Lesser General Public License) devoted to cover many aspects of the generative programming. Generative programming is a software engineering approach for producing reusable, tailor-made, evolvable and reliable IT systems with a high level of automation.

The tool interprets a scripting language that drives the processing of parsing and source code generation in a quite familiar syntax for developers. It insists on adapting the syntax of the language to the particularities of tasks to resolve (parse, code generation, procedural) and on offering powerful functionalities to do intensive source code generation.

Okay, for the three of you who speak fluent geek who are now inspired to spend the rest of the weekend writing a high-level blogging language, have your significant others send their complaints “hey-dont-blame-me [at] healyourchurchwebsite [dot] org.”

Posted in Uncategorized

The SpamDam E-Mail Forwarding System

It’s Friday and I’ve got a full plate, so expect some hit-n-run blogging today as I post a couple of draft articles I created while exploring FreshMeat and HotScripts late at night.

Let’s start off with something we all need, an E-Mail Forwarding System.

And that’s just what you get with SpamDam. This little PHP program allows you generate and then manage disposable e-mail addresses. Manage meaning you can disable ‘compromised addresses,’ or auto-reply with a web form allowing actual humans to get through.

According to the documentation, “SpamDam rewrites all emails to include the actual “To” address, so you know who gave out your address. You can then use your favorite E-Mail clients filter to sort the email as it comes in.

I installed it, no sweat. Though I haven’t really determined if I want to use it as I get the same effect by routing my email through my webserver, with all ‘unlisted’ email addresses forwarded to the ‘default’ address. And in those cases where nospammy-22aug03@… gets hammered, I just block it.

Then again, I’m fluent in pure geek … and such steps are not an option for my youth minister. Similarly, if you’re running a church or charity website, this may be a good way to protect your pastor or teachers by creating for them easy-to-manage throwaway email addresses via SpamDam.

Posted in Uncategorized

Failure to Plan == Plan for Failure

I wanted to wait until now to talk about the “big blackout of ’03” so that anyone was left offline wouldn’t also be left in the dark when it comes to talk about having an effective contingency plan.

Cool black light, or dim bulb? You decide with your plan of attack
From my logs, I know issues such as using crontab to schedule ‘automagic’ backups of your database are popular. And that’s good, but that’s only a first step to making sure you don’t find yourself on your hands and knees feeling about for your archive CD when disaster strikes.

So, with the recent power outage still looming like a dark spot on our memory, I think it is a good time to offer the following axiom “a Failure to Plan is a Plan to Fail …”

As I said, we’ve discussed backups more than once. We even recently went into gory detail on using Linux to get your crashed/infected Windows system back online. But at the end of each of these posts is always a sermonette to plan ahead, to map out contingencies, and to practice, practice, practice.

First, a fun analogy. I used to sing opera … professionally. More than once, something would go wrong. A seam on a costume would give out. Someone onstage would feint because of the heat of the lights, or perhaps trip and break their nose exiting stage left. Or worse, some smarmy brass player in the orchestra pit would spike the water in a prop bottle from which your character was to drink.

The point is, in those productions where we practiced, practiced and then practiced some more, such incidents were mere annoyances we now wax nostalgically about with our friends at parties. In those few productions I involved myself where rehearsal was a dirty word, such occurrences were literal showstoppers we’ve blotted out from our memory as far as the east is from the west.

Put another way, you can CRONTAB all the MYSQL backups you want, but without knowing how to restore the data, the backup is useless. Similarly, if the backup is still sitting there on the same hard disk and/or computer system of your failed website, then you’re only remaining option is going to be feeling you way about a dark room as you seek a place to pray.

That said, I know first hand that disaster recovery is a comprehensive discipline unto itself. One need not go any further than FEMA’s “Emergency Management Guide For Business & Industry.” A document you might want to share with the office manager for your church or charity.

And the since object here is to get you to actually do something about not losing all the data on your church web site … and with copious apologies to real disaster recovery plans and the specialists who produce them … here is a short, very short, not-even-close-to-definitive list of bullet points you need to consider to protect your charity’s website from going black:

  • List people involved in the plan (include phone numbers and addresses)
  • Identify the potential risks (software, data, hardware, people)
  • Amor-plate the endangered data/systems as much as possible
  • Keep Up-to-date backups of your data on a readily accessible medium (e.g. CD)
  • Validate backups (check logs of process AND check the data)
  • Keep archive of backups off-site (but accessible in an emergency)
  • Make arrangements on alternate systems (alternate web hosts and servers or any other hardware/systems required to restore your data)
  • Take a weekend or three to practice the plan … then practice some more
  • Make sure you’re not the only one who knows the plan or has the data
  • Secure and document all isp and webhost and domain name and any other pertinent contract information (your account, passwords, billing, etc)
  • Secure and document all internal access information (accounts, passwords, mailing lists)
  • Document all of the the points above (especially restoration)
  • Keep several copies of the documentation handy in several locations (e.g. distribute to all members of your recovery team)

As I said, this is a mere pittance in light of true disaster recovery. That said, it is up to make sure you have at least taken the above precautions … and from there add more points and detail … for as it is written (with apologies to the inspirational text of Romans 10):

How can they restore the data without knowing how?
And how can they know how without having practiced?
And how can they practice without someone teaching them?
And how can someone teach without documentation?
As it is written, “How beautiful are the webmasters who have planned ahead!”

Posted in Uncategorized

The ASP.NET Web Matrix Project (Reloaded!)

I recently received an email asking which server platform was better, Linux/Apache or Microsoft/IIS? Without hesitation, my reply is a definitive “it depends …” To explain my unflinching response, you need to understand that by day, I am a mild-mannered systems engineer assigned to work exclusively with IIS servers and .NET; it is only at night that I take on my tux-clad alter-ego to perform my many mad experiments under Linux.

Personally, I prefer the “add-only-what-you-need” approach of the Apache server along with the raw, brutal efficiency that comes with any *nix variant (which doesn’t hurt when you’re married to a woman who’s title at work is ‘the Solaris queen’). One good example of this is mod_rewrite. As you’ve seen in prior posts, once you’ve mastered the wizardry of the syntax, you then have a formidable tool for handling, mangling and redirecting incoming requests.

That said, no matter what you’re feelings about Bill Gates are, the IDE that comes with Microsoft Visual Studio .NET has very few rivals (note to my cool Linux friends, I said a few!-). Add to this seamless multi-language support under via very Java-like framework, and superior state and session management, and you can see why some huge e-commerce systems such as employ an IIS-based solution. A good example of this are ASP .NET’s server controls such as list boxes that can be bound to a database table, enforce event-driven validation and maintain state from request to response with little or no code.

And let’s face it, their debugger is to die for (then again, so is a good Linux-based DNS server).

Of course, all comes with a VERY hefty price tag. To steal an anology from Vincent Flanders, there are systems you date, then there is ASP .NET and IIS, a system you marry. Nor can we quickly overlook embarrassing security breaches such as last week’s MSBlaster worm. In other words, there is a cost-benefit trade-off with taking the ASP .NET IIS route. This means you are going to need to weigh these options against your organization’s desires, your customer’s needs, your budget and your available technicians, paid or otherwise.

Still, since I’ve already shown you consumate ‘examplage’ of solutions in Perl and PHP, I think it only fair to give ASP .NET some coverage so you can make a more informed decision. And to further help you along with that choice without compelling you mortgage the parsonage and rent out the baptismal to pool parties, I’d like to bring your attention to the ASP.NET Web Matrix Project.

According its home site, “ASP.NET Web Matrix is a community-supported, easy-to-use WYSIWYG application development tool for ASP.NET. It can be installed via a quick 1.3 MB download (about 5 minutes using a 56Kb modem). New features include: Access database support, J# support, design time enhancements including improved table editing and user-control rendering, many bug fixes, and much more! Best of all, it’s absolutely free!”

Okay, it’s not the robust VisualStudio .NET programming environment, but it is at least a free and easy way you can dabble around ASP .NET and compare it to other languages, environments and server platforms.

Just do me a favor, once you’re done for the night experimenting with an IIS server on your home computer, why not pull the plug on your DSL modem before retiring to bed?

Posted in Uncategorized