Posted by Ben Jackson
Sun, 25 Sep 2005 22:05:00 GMT
An interesting take on tracking your productivity from David Seah:
When I get to fill in a bubble, I feel a little surge of pleasure…I’ve been conditioned by standardized testing, apparently. I also get visual confirmation that I’ve done something to move my business forward. This is an interesting example of feedback in a game design sense; over the course of a week, it’s easy to evaluate your progress at any given time.
I like the comparison with game design, and even though I'm not filling out the scan-tron just yet, it still helps to bring some focus to my daily activities.
Posted in Design, Business | no comments | no trackbacks
Posted by Ben Jackson
Fri, 23 Sep 2005 18:44:00 GMT
After spending more than a few hours trying to find a decent YAML2XML converter, struggling with CPAN to install the required perl modules for the hack that I found and finding that the output was buggy and incomplete, I decided to have a shot at doing it myself and learn about ruby's XML libraries in the process.
Two and a half hours and 33 lines of code later and I've got a basic converter that will work with sephiroth's XML2Object library for Actionscript. The secret (courtesy of Jim Weirich) is the use of builder.method_missing() to pass an arbitrary tag name instead of the usual syntax:
# normal usage
builder.div {
builder.p("hello world!")
}
# equivalent
builder.method_missing("div") {
builder.method_missing("p", "hello world!")
}
Here's the final script:
# yaml2xml.rb
# converts a yaml document to a corresponding xml
# format for use with XML2Object class from sephiroth.it
# for more details on the class visit
# http://www.sephiroth.it/file_detail.php?pageNum_comments=10&id=129
# usage: ruby yaml2xml.rb input.yml > output.xml
require 'yaml'
require 'rubygems'
require_gem 'builder'
@builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
def yaml2xml src, tagname="root"
unless src.is_a?(Array)
@builder.method_missing(tagname) {
process_source src, tagname
}
else
process_source src, tagname
end
end
def process_source src, tagname
if src.is_a?(Hash)
src.each do |name, value|
unless value.kind_of?(Hash) or value.kind_of?(Array)
@builder.method_missing(name, value)
else
yaml2xml value, name
end
end
elsif src.is_a?(Array)
src.each do |value|
yaml2xml value, tagname
end
end
end
yaml2xml YAML::load(File.open(ARGV[0]))
Posted in Development | 1 comment | no trackbacks
Posted by Ben Jackson
Mon, 19 Sep 2005 19:32:00 GMT
If you have a mac and haven't heard of Textpander, take a look. It's an autocorrection program, wch mns tht y cn wrt n abbrvs lk ths. Writing has never been so much fun.
I don't like Word. But one thing that Microsoft got at least somewhat right was a decent autocompletion list for common misspellings. Problem is, you have to use Word to take advantage of this. Until now.
With a clever macro that I found, you can spit out your Word autocompletion list into a tab-delimited document. Cut and paste the result into your favorite regexp-enabled text editor and run the following:
Find: (.+?)\t(.+?)\n
Replace: \t\t<dict>\n\t\t\t<key>Abbreviation</key>\n\t\t\t<string><![CDATA[$1]]></string>\n\t\t\t<key>Mode</key>\n\t\t\t<integer>2</integer>\n\t\t\t<key>Plain Text</key>\n\t\t\t<string><![CDATA[$2]]></string>\n\t\t</dict>\n
Cut and paste this into a new document, sandwiching it between
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Auditory Feedback</key>
<true/>
<key>Client Mode</key>
<integer>0</integer>
<key>Last Version</key>
<string>1.1</string>
<key>Remote Snippets</key>
<array/>
<key>Restore Pasteboard</key>
<true/>
<key>Snippet Menu Item Width</key>
<integer>370</integer>
<key>Snippets</key>
and
</array>
<key>Status Item</key>
<true/>
</dict>
</plist>
Save it in ~/Library/Application Support/Textpander/Settings.textpander and you're good to go.
Enjy yr new-fnd frdm t mspl.
2 comments | no trackbacks
Posted by Ben Jackson
Sun, 18 Sep 2005 17:25:00 GMT
Anyone who's worked with branding will tell you that naming, besides being the most controversial and mind-numbingly difficult part of any identity project, is also the most crucial element in making a lasting connection with your audience. I can almost guarantee you that Nike would not be the powerhouse it is today if it were named "The Phil Knight Running Co."
While wracking my brain for a name with which to christen the blog you're now reading, I came up against quite a few hurdles, not the least of which was the scarcity of available domain names. Having foolishly let benjaminjackson.com go back in the 90's, I was stuck with the task of coming up with an original name that had not already been sucked up by the hordes of rabid domain addicts that populate the seamy underbelly of the internet.
In my search for a name, I came up with many wonderful candidates only to find that, upon typing myawesomeblogname.com in the location bar of my browser, they had been registered by one of the myriad companies whose business model includes randomly registering combinations of words in the hopes that some poor schmuck will someday decide that pyrotechnical.com would be the perfect name for his new software startup. The biggest perpetrator in the field, or at least the one whose colorful and busy homepage graced my screen most often, is an Arizona-based company by the name of GoDaddy, a company which facilitates the bulk registration and subsequent auction of domain names (currently 97,453 as of the writing of this post).
According to an article from bizhelp.com (the first result in google for "domain squatting laws"):
Before a change in legislation was enforced, Internet rogues (often referred to as "cyber squatters") would tactically register domain names that would be trademarks to existing or forthcoming businesses.
Furthermore, they would have no intention to add content to the domain - it was simply for the ownership.
Can someone please tell me why these f*ckers have not yet been hauled into court? Who on earth would be registering more than 50 domain names at a time with the intent to use each and every one of them for a legitimate business?
To his credit, Bob Parsons, the founder of GoDaddy, has a pretty decent (if long-winded and often self-indulgent) blog about business and marketing.
Ironically, a cursory google search for anti-GoDaddy material turned up godaddysux.com, which appears to have been let go and purchased by a competing company, Pool.com (what this name has to do with domain name registration is beyond me, but that's another post). And who came up first on their sponsored links? You guessed it, GoDaddy.com.
(Note: the sponsored links apparently rotate, and the link just mentioned was nowhere to be found the second time I accessed the page).
Posted in Development, Business | no comments | no trackbacks