|
|
 |
April 4, 2007
If you don’t like seeing the F word in images, then scroll quickly past this post.
Coding Horror is right, there are too many licenses. Of course Jeff is more visceral about it:
I hate software licenses. When I read a software license, what I see is a bunch of officious, mind-numbing lawyerly doublespeak. Blah, blah, blah.. kill me now.
One possible solution? Just use the WTFPL:

Hmm the WTFPL is strikingly similar to just putting code in the public domain. But not nearly as fun.
March 24, 2007
Disclaimer: I’m being paid to write this review.
Some people believe that local search is a space that Google hasn’t yet conquered. I haven’t found that to be the case in our local area as Google occupies like 98% of my daily searches, including local businesses. There is, however, something to the notion that nobody knows local businesses better than the people in the area.
This is where iBegin Source steps in offering yellow pages for businesses around the United States that anybody can update using a wiki-style concept. iBegin source offers a free download license for non-commercial use. Businesses can license a state for $1,000 or the entire US for $40,000. As of this writing iBegin claims to have 10,820,479 total business listings.
iBegin downloadable data
The data is pipe (|) delimited and includes the following fields for non-commercial (free): ID, Name, Street Address, City, Zip, Fax, Category, Website URL, Hours, Time Added (timestamp), Time Last Updated (timestamp)
Those who purchase the commercial license get the following additional fields: Phone, Geocoding (latitude and longitude) and Major Intersection.
Having the fax but not the business phone number for personal use isn’t very useful but fortunately you can search from the iBegin Source website and find the phone numbers of local businesses.
Don’t see a business you know is there? Registered users can suggest updates to the system either through the website or using the automated trackback system. The only fields required to become a registered user are username, password and email address.
Design and interaction
Some of the pages use inline windows that appear and the background fades like the definition for geocoding shown below:

I’m sure this was done for stylistic reasons as the site design otherwise is bland. I happen to like bland though when it comes to getting to raw data. The site is primarily text-based and I encountered no third party advertising. There is a button to click for online support but nobody was available (it’s a Saturday, not surprised) to talk to about the site/service.
Accuracy of data
Our offline business established in town since 1996 was listed under the corporate name but the fax number was about three years outdated. It showed being added on January 23, 2007, so whatever source used was wrong. The street address number was completely wrong — off by one number — we moved from there a year ago to our present location. I decided to attempt to fix/update the data.
Through the web form I edited the wrong information and corrected and then his submit and was treated to a PHP header error:
Warning: Cannot modify header information - headers already sent [server/file details redacted]
By revisiting the page all my changes took, but a keyword search still would not reveal the business either before the change or after. Compare this to Google and I put in our business name which also had our address a year ago with all other information correct. Both iBegin and Google had the right phone number (which has never changed), so that’s positive. Still, I don’t know why our business wasn’t turning up in the search using the zip code.
I tried a couple other searches for local businesses. Data accuracy overall was on par with other business data services I’ve seen, including the phone book, which isn’t that good. I didn’t fix any other data.
Other features
Some attractive iBegin feature for developers: every listing in hCard microformat and has location saved in KML, the aforementioned geocode data which would be handy for mapping mashups and everything is section 508 accessbility friendly using HiSoftware’s Cynthia Says.
Summary and grade
The problem I see with community updated data sources is what’s to stop competitors, vandals and spammers from altering data? It was easy to change our business information, too easy. And I didn’t even get into using the automated system. How do they know the address I put in was accurate? It’s relying on Wiki style monitoring and updates and my experience with public wikis is they only work if you have enough people monitoring the changes and locking out abuse.
Like any directory service, it’s only as good as the accuracy and reliability of the data. I’m not convinced iBegin Source will do any worse — or any better — than competing services that poll businesses to gather the data (like the phone company and local yellow pages).
Pricing? As a small business owner $1,000 for the entire state seems reasonably priced if you market to the entire state, however our primary marketing area is the greater Puget Sound area, so we’d need a much smaller subset than the entire state.
Unlike the Wikipedia iBegin Source is not a non-profit venture and they may find it difficult to get enough people involved to help maintain the integrity of the database. On the plus side the forms and scripts don’t have the annoying Wiki markup. Overall, not something I’d use for personal or business use, but others might find this useful in their local areas. Grade: C-
March 22, 2007

In the UNIX world cron is used to schedule events like updating a web page, retrieving RSS feeds, changing a file and countless other activities. Among other updates, cron is used here to update the daily stock graphs at the top of the finance category page.
Yesterday, I noticed these graphs weren’t updating and logged into the shell and entered crontab -l to see if there were any errors in the crontab syntax. None. A sudo ps aux command showed cron was running (pictured above) … and yet it wasn’t firing any of the jobs.
The UNIX forum offers suggestions for making sure cron is running like checking the cron log files, using touch to a file and watching the timestamps in a cron job like this:
* * * * * touch /tmp/.cron_is_working
To see if it’s running it’s as easy as watching the timestamp on the files and seeing the time changes. If you aren’t familiar with the format, those asterisks from left to right and separated by spaces indicate:
minutes, hours (0 = 12am, 23 = 11pm), days, months, weekdays (0 = Sunday, 6 = Saturday)
EXAMPLE. let’s say you only wanted to touch a file called ‘thursawday.txt’ in the /tmp directory at 12:01 am on Thursawday (4 = Thursawday), the cron code would look like this:
1 0 * * 4 touch /tmp/thursawday.txt
What if you want to touch ‘thursawday.txt’ every five minutes of every hour on Thursawday?
0,5,10,15,20,25,30,35,40,45,50,55 * * 4 touch /tmp/thursawday.txt
If you’d like some help generating cron jobs, a couple years ago I created and shared a cron generator you’re welcome to use. It also includes keyboard hotkeys (edit, save, exit) for using common UNIX shell text editors AE and VI.
March 20, 2007

John Musser who runs the excellent site Programmable Web maintains a handy list for developers of Application Programming Interfaces (API) grouped by name, date, mashup count and categories like: advertising, answers, blog search, blogging, bookmarks, calendar, chat, community, email, events, fax, financial, internet, mapping, music, widgets and more.
I met John at Search Champs v4 and have been visiting his site since. He’s from the Seattle area too. Keep up the good work, John.
March 14, 2007
If you can get in on this lab offer, happen to be in the software industry and live in the US then you can get a copy of Visual Studio Standard 2005 for shipping and handling fees only.

Here’s the fine print:
Nominal fee and shipping and handling charges apply. Offer good in the United States only through June 30, 2007, while supplies last. This offer is available only to professionals employed in the area of software development who attend any two Visual Basic 2005 Labcasts and submit the evaluation form for each session. Limit one per customer. This offer is non-transferable.
Since some developers read this blog, I figured I’d pass along.
February 28, 2007
This morning I had to go through the somewhat painful process of retiring some older, inactive projects and programs.
Our mainstream online busines operates with one primary employee: me. I have one part time employee and do some work with other programmers here and there so I sometimes it is correct to use “we” instead of “I/me/my” when describing our mainstream online projects. This got me thinking about how to retire some old projects/programs. You see lots of how to start articles, but not as many of the converse situation which became the genesis of this piece.
Looking over my home site tdscripts.com, there were a few older programs (5+ years old) that hadn’t been updated in awhile. One of them the company that the program specifically worked with is now out of business, so the usefulness of the script was negated the date that third party company went under. I’ve continued to carry the script with a link to it on the homepage and a message saying it was no longer available, knowing that the day would come that I needed to officially retire the program.
As my script site enters its eight year anniversary, this morning I went through the list meticulously and pondered our small business strategy:
- scripts retired that were previously for sale would just be put under a ‘retired’ section. They would not be given away. While I won’t say never, I don’t really like the idea of giving something away that was previously for sale. Seems like a slap in the face of those who bought the program. I wouldn’t like it as a customer and I like it even less as the owner.
- we will continue to offer support to customers on retired programs with no given expiration date. I suspect there will be some date in the future that the scripts will be obsoleted before the need to cut off future support inquiries. I don’t believe in cutting off support options to customers and would recommend against a policy that eliminates or greatly diminishes support for retired products.
I realize big companies like Microsoft have product lifecycles but this is one place where a smaller shop like ours can be more nimble and less corporate. Our offline business has operated in a small town for over 13 years now and we know a lot of people in town. Similarly I have a small town mentality with running our online business even though I don’t know as much about most our customers online as I do offline and despite it extending to the world. By that I mean I’d like to keep any policies customer customized friendly as possible. It still fascinates me in our small business offline when I see people at the grocery store and ask them how somebody in their family is doing and they seem surprised that I remember their name and family.
Being a number sucks and we try and run our business so that customers don’t become numbers. I like doing business at the local small town bank. They know my name and a little bit about my family and never make me go through the whole show me your ID routine. They also will watch out for us if something weird happens on one of our accounts and call us personally about it. Big bank chains don’t do that. We have accounts at big banks, but mostly because we travel and need to be able to access money in other states too.
It gets harder and harder every year keeping that direct connection with customers. It’s something that big corporations don’t do very well. They have much higher turnover rates and customers rarely identify with customers directly. In all too many cases, the customer can’t even access the higher level officers in a corporation. Advantage for small businesses.
- for projects, I added a current status update and then went through where things were at with each major/flagship mainstream site.
Retiring projects/programs a negative? Not always
Some might see retirement of projects/programs as a negative and I’ll admit feeling that way somewhat. The more I think about the process, however, it reminds me that I’ve worked on some projects/programs that have lived very good lives. One of the programs retired today earned more than $50,000 USD. There are many, many programs out there which never make that kind of money and some which make a lot more and still someday face an inevitable retirement. Big or small, eventually every project/program ends.
Inching closer to the 10 year mark at tdscripts.com (still 2+ years from this writing) it’s important to analyze and utilyze the most important resource I have: time. I enjoy working on new projects and programs, especially where/when I’m able to learn something new and part of staying young mentally is to continue working on new projects and programs. I also enjoy updating older programs/projects with fresh ideas. It’s a refreshing, rejuvenating process.
Retiring a project/program feels a little bit like reaching the end of a fiction novel. I remember being somewhat sad to see the characters I created end their journey. That might sounds strange, but those who have spent time creating people to live in a world, the end means you probably won’t get to see them again. Unless of course you do a sequel, but I’ve never been a huge fan of sequels.
Just in case anybody is curious about the project you are reading now — makeyougohmm.com — awhile back I admitted that it is a five year project that probably (but not guaranteed) will be renewed in July 2008. It continues to grow in traffic, scope and my own interest level but it’s not my flagship site, as was suggested to me recently by a few folks. Some people see this site and think it’s my biggest site when actually it’s not. It is the biggest blog our company owns that I contribute to, but it’s not the biggest site in either traffic or income.
My flagship site is tdscripts.com and will probably be the last site I retire from on the web. Then again, I’d like to get back more into fiction writing someday so it’s entirely possible that a writing site, perhaps one not yet even officially launched, will be the last site. One of my goals remains launching at least one new website every year. This means at some point unless we add more online employees retiring some older site(s) will become necessary someday. Haven’t had to retire any mainstream websites yet but someday I probably will. I’ve killed off a few domains I registered where I had ideas but never actually launched sites, but then I don’t call that ‘retirement’ because something has to actually live and breathe before it can be retired.
For those who think: why retire a site? I’m not saying retirement as in taking completely off the web, but there does come a point when the dust is pretty thick on some site(s) and one has to look at things objectively and realize work on X site is no longer continuing and admit that the project is retired. That’s what I did today with a few programs and projects but not actually with any websites we own. Someday that will happen too.
There remains a major difference between retirement and death worth noting: a project/program/site can always come out of retirement.
Your turn.
Have you retired any previously active projects/programs in your business or personal life online? Started a blog and realized: bummer, I don’t have time for this any more? How did you handle the retirement process and move forward? Any tips/tricks to share?
February 14, 2007

With WebWait you can check the load time speed of your site/page. There are a zillion tools out there to do this, including add-ons for the browser, but this a nice feature:
WebWait pulls down the entire website into your browser, so it takes into account Ajax/Javascript processing and image loading, which many other benchmarking tools ignore.
As for non website owners, you can get involved too. Has your favorite site’s sidebar become like an unkempt garage? Did they add some new wizbang Javascript copy/paste that has brought the site loading speed to a crawl? A not-so-subtle hint might be to send them the results of a WebWait test.
Heart site visitors by keeping these times down.
January 25, 2007

Learned something new about Wordpress.
For quite some time I’ve wanted to use Pacific Standard Time on this blog instead of Eastern Standard Time. Nothing against you east coasters, but I don’t live on the east coast and I’ve been making manual timezone changes in my head instead of doing the simpler thing: just change the timezone. Admittedly, this is a selfish change, but there is probably nobody else in the world that spends as much time at this site as me, so I might as well have the clock set to my home zone, right?
A more logical change would allow every reader and author to set their preferred timezone and perhaps a WP plugin or core operation adjusts the timestamp displayed to match the clock. Maybe a Wordpress plugin exists out there to handle that already (or maybe it’s already a part of being a registered/logged in user)? A long time ago I created some Javascript code that worked in tandem with PHP to figure out the time set on the computer and display that. Suppose I could conjure that code and bring it into a plugin or something. Only problem there is that if the person’s computer clock is wrong or they aren’t running javascript (or blocking javascript) then the times have to revert to a default setting. For my uses elsewhere years ago, this was a fine solution. That would probably work here too.
How to change the timezone
If you go into the Wordpress Admin->Options and change the timezone, it doesn’t actually alter the timestamps of the posts and comments, which means that by switching from right coast (EST) to left coast (PST) all existing posts and comments would now display off by three hours when PST is added to the end of the timestamp.
Every archived post before this one as of this writing, in fact, are now indeed off by three hours. The times displayed are actually EST and yet the PST I added to the templates is wrong. Aren’t timezones fun?
A few solutions came to mind
Being a programmer, this got me thinking about the best way to deal with the situation.
1) adjust the timestamp on the fly. Pros: no need to change the database, a one or two liner piece of code. Cons: forces dynamic script to run when the time isn’t going to change. Not the most efficient solution.
2) find or create myself a script to cycle through the WP database and change all the timestamps for every archived post and comment. Pros: permanent change in the database, no additional run time scripting needed. Cons: unless there is a plugin or mod script already written, I’ll need to create the code myself
A core Wordpress change would be to use GMT for everything and then offset the displayed time based on user settings dynamically. This way nobody would ever have to go into the database and make manual time data changes when a timezone has been changed. That is how I’ve dealt with timezone concerns in programs like these. In fact, last month I shared how to write a program using PHP that showed how to calculate days in the future and incorporates timezones changes.
This seems like buggy architecture that you can easily change the time in the WP admin area but if you do this to an already established blog it doesn’t fix the past, it only changes the future, and it doesn’t tell the user this is happening. The only way I noticed this was happening was by making a comment and seeing the comments out of order. On further investigation I saw every post was out of order too. I was able to fix them easily by manually editing the timestamps, but no way would anybody do this with thousands of posts and comments manually. That’s what scripting is for.
Sure, I realize it’s only three hours, big deal, right? Maybe option #3 is not to bother with this at all but this is the kind of nitpicky thing that us programmer types get wrapped up in sometimes. Ok, won’t speak for others, just myself, it’s the kind of detail I get wrapped up in sometimes.
v2.1.0 has same issue
Hoping maybe with the new Wordpress 2.1.0 maybe this was one of the 500+ bugs that was fixed, I decided to investigate that option on another blog.
I checked out the situation on our group blog VTOR and switched from EST to PST and the same problem there. PST makes good sense there because Second Life time or SL time as it’s sometimes called is PST. New posts and comments have the correct timestamp but the archived ones are still off by three hours just like here. So upgrading to the newest version and changing the time doesn’t fix this issue.
BTW, some might not consider this a bug at all. To me it’s a bug because the user behavior assumes that by changing the timezone all their posts, not just new posts, will be displayed correctly. Giving the user no message or warning that old posts won’t be changed is problematic.
Answers at Wordpress support?
I did a little poking around in the Wordpress support area to see if anybody had whipped up some code that would cycle through all the old posts and comments and fix the timestamp and didn’t see any fixes. A few people suggested appending “T” to the date code, but that shows the server timezone and isn’t altered by the routine that kicks out the time in Wordpress. Also the newer ‘e’ date code is only available in PHP 5.1.5+. I also did a few Google queries. Didn’t find anything promising right away. Maybe I’m just using the wrong queries to find what I’m looking for.
Before I sit down and write what is probably less than 10-15 lines of code, and if I do that I’ll gladly share the code with others, I thought I’d make a post here first and see if any other Wordpress users have run into this situation and already created this code or used a plugin to fix this quickly and easily.
I’m not the first person using Wordpress who wanted to change the timezone midstream that had this happen, at least Sterling is in the club too. Did everybody else not care if the times on their posts and comments were off by hours? Maybe I shouldn’t care either. The future posts and comments will show correctly now so it’s only the past that’s off — by three hours. But according to current stats that is nearly 9,000 comments and over 4,000 posts that are off.
I could just blame it on the Twilight Zone.
What do you think?
January 23, 2007

Dealing with imposters on the web is a big problem, whether it be through phishing to try and sucker us into giving up our passwords to financial websites or running out comments under other people’s names. It’s encouraging that some creative minds are trying to come up with solutions.
I wonder if we’ll ever have a global digital ID system that is immune to cracking? Perhaps something with DNA in it? Add a drop of blood or strand of hair to formulate a unique key? Identity theft in the future will become even more problematic as we continue to rely more and more on machines. We’re already seeing these problems manifesting.
While the following doesn’t really solve the problems mentioned above, it’s a small step in the right direction, and allows you to see what kind of snowflake-like identicon your IP address block represents. Don Park whipped up some 9-block IP identification code in Java that he is demoing in his blog comments area and explains:
The derivative is currently first four bytes of SHA1(IP + salt). Since dynamic IPs change, you’ll see 9-blocks change over time for a particular user. But it doesn’t seem to change often enough to affect IP identification within typical comment activity clusters. I could reduce this problem by changing the derivative to SHA1(CIDR(IP) + salt) but CIDR blocks could get pretty big. I am looking into ways (i.e. identify router-level blocks) to solve this problem
In Don’s comments he adds that a 9-block can be generated with the following code:
http://www.docuverse.com/blog/9block?code={32-bit integer}&size={16…64}
The Java source code for this project is available and Don encourages others to port to other languages with his “go nuts with it” licensing. Somebody will crank out a PHP port using GD or Imagemagick and not far behind will be an MT or Wordpress plugin meaning that this could be an additional way bloggers could offer their commenters some element of additional unique identification beyond the name typed in a form and signature URL.
A commenter, David, mentions favatars which use the domain favicon as an avatar, another neat way to add some personalization to a comment.
January 22, 2007
Probably the biggest non-developer feature of Wordpress v2.1 now available for download is autosaving drafts. With all the over ecstatic and pointless uses of AJAX, this is one place where it actually makes good sense.
Just downloaded and upgraded to WP 2.1 from older 2.0.x versions on a few blogs. For those using my TD Word Count plugin, it is fully compatible with WP v2.1 (Update 5:10pm PST: Wordpress 2.1 plugin compatibility list) Good time to mention that I’m working on a different version that supports multiple authors, since that’s the scenario we have on our VTOReality.com group blog. Still not decided if that version will be a fork from the single author version or be supported in the same plugin (keep reading, this is relevant to my comments that follow).
“Major releases coming several times a year”
Put me in the group that views the following announcement skeptically.
Matt indicates a plan to become even more active with Wordpress updates over the next few years:
Based on everything we’ve learned in the past 3 years of doing WordPress, we’ve decided to shift to a more frequent release schedule like Ubuntu, with major releases coming several times a year. So, for the first time in WordPress’ history, I have an answer to when the next version is coming out: April 23rd.
Soon Wordpress will be able to get groceries, take your kids to school, do homework, etc.
All joking aside, I hope they use future major versions to add features that most publishers and readers actually want and need and not shoehorn features that the hardcore 5% are requesting. Bug fixes are a necessary part of software growth, but planned major new versions make me go hmm. Are these feature(s) really necessary? Is the new software adding something that the old version lacked?
Competition for Wordpress
Wordpress biggest competition isn’t Six Apart, it’s themselves. If they add too many features and make the software clumsy and inefficient — and some could argue that it’s that way already with too many database queries (yes, caching helps) — they need to be extremely careful going forward that every major feature has a purpose and place. That the core machine remains lean and mean.
To all publishers and readers of blogs using Wordpress, may the upgrade experience be as uneventful as possible. If something breaks, just blame on it on Ella, the name chosen to symbolize this version (another cheesy software practice).
Congratulations to the Wordpress team on the v2.1 launch.
Pages (12): « 1 2 [3] 4 5 6 » ... Last »
|
|
|
 |
|