Tumblr Mangles Developer Relations
Last week I logged on to Tumblr and was confronted with this abomination:

Missing e notice from tumblr. Way to encourage API development, guys.
Needless to say, this is pretty disturbing, and I wonder what Tumblr is thinking by posting this.
Continue reading: Tumblr Mangles Developer Relations »
New England GiveCamp 2011: What A Weekend!
Last weekend was New England GiveCamp 2011, in which 100+ developers, designers and other volunteers gathered to donate time and skills to some 30 charities who needed IT help.
This year, I was project lead for Alex’s Team Foundation, based in Andover, Mass. Our team was Saurabh Moondhra and William Wade, both experienced ASP.NET developers.
Alex’s Team Foundation, named after 16-year-old Alex Miliotis, who passed away from leukemia in 2002, raises money to support nurses and other oncology professionals, and supports youth sports. The foundation is largely the labors of Patti Rae Miliotis, Alex’s mother, and a handful of reliable volunteers. Like every small nonprofit, Alex’s Team doesn’t have a lot of money.

From the right to left: William Wade, Doug Vanderweide, Saurabh Moondhra and Patti Rae Miliotis of Alex's Team Foundation. The lady with her feet up is Deanna Lohnes, who worked on another project; the woman in green, whose name I do not know, was her charity's contact person.
Like every other leader of a small nonprofit, Patti is pulled in a lot of different directions and has all she can do to keep track of the people with whom she comes in contact, nonetheless all the donations she gets. Patti also hosts a few events every year. She basically needs a way to keep track of who attends those events or otherwise supports her organization, and to mail merge thank-you notes.
So that was the project I led this weekend: Converting a bunch of data stored in (of course!) Excel spreadsheets into a more relational database, with the ability to export that data in order to mail merge thank-you and fundraising letters.
Continue reading: New England GiveCamp 2011: What A Weekend! »
Automatically Hash Tagging Text With ASP.NET Web Forms (VB.NET)
I had previously blogged a solution in PHP to automatically hash tag an input string with various terms stored in a database. Here’s an ASP.NET Web Forms version of the same solution (this one should work for ASP.NET 2, 3.5 and 4).
To review, a hash tag is a bit of text, led with a hash mark (#), that serves to indicate to some Web sites / services — notably, Twitter — that the word thus marked should be treated as a tag. This code will take some piece of input text, search it for terms we generally want to tag, and mark the instances in that input string with hash tags.
As in the previous solution, we’ll define a “word” for the purposes of this demo to be any alphanumeric character sequence that is followed by a space or a newline. Also, this demo will only tag text; it won’t automatically add new terms to the database. That will be the subject of an upcoming post.
I’m going to use three ArrayLists as the workhorses for this solution. One will hold the terms from the database; the second will contain all the distinct words in the input string; and the third, the words from the input string that are hashtag terms.
Continue reading: Automatically Hash Tagging Text With ASP.NET Web Forms (VB.NET) »
Automatically Hash Tagging Text With PHP And MySQL
My recent work on the Google Reader to Twitter interface led me to recognize a serious shortcoming of such a basic system: A lack of support for hash tags.
For those unfamiliar with Twitter, hashtags are basically words proceeded by a hash mark (#). When a word is “tagged”, it becomes a hyperlink to content also containing that term.
Tagging isn’t unique to Twitter. It’s integral to WordPress, Tumblr and many other blogging platforms; Google uses tags (which they call “labels”) in most of their major applications, including GMail and Google Documents.
The reason is simple: People tend to organize information in terms of categories, so interrelating content by linking items that belong to the same categories to one another makes it easier on us to find and process that information.
So here’s a quick and easy script that lets you take keywords / tags / labels / categories / what have you from a MySQL table, run those terms over a string / subject text, and automatically tag that string with those terms.
(In a later tutorial, I will describe how to add new terms to the database.)
Continue reading: Automatically Hash Tagging Text With PHP And MySQL »
The Danger Of API Development: Making Something Too Good
On CNET, via slashdot: Lendle, a Web site that had helped facilitate the loaning of ebooks among Kindle users, was effectively destroyed when Amazon shut down Lendle’s access to its Kindle API.
Lendle first reported the news via Twitter: “Amazon has revoked Lendle’s API access. This is why the site is down. It’s sad and unfortunate that Amazon is shutting down lending sites…According to Amazon, Lendle does not ‘serve the principal purpose of driving sales of products and services on the Amazon site.’”
According to Lendle co-founder Jeff Croft, “at least two other Kindle lending services” have been terminated from the API.
The problem with Lendle and its cousins is simple: It was too good at what it did.
Amazon does allow one-time loans of an ebook for up to 14 days, but they expect such trading to be among intimates. Lendle greatly expanded the ability for one person to trade with a complete stranger, and as a result posed a serious threat to potential Kindle edition sales.
After all, if I can’t find someone to lend me an ebook, I probably have to buy it. Put me in big enough a room of Kindle owners, however, and I’m likely to find what I am after for free.
I don’t care to get into copyright, the nature of modern publishing, or the like. I’m far more interested in pointing out the problem with using third-party APIs that this illustrates: If you make something too good, there’s usually nothing stopping the API service from cutting you off and stealing your work.
Continue reading: The Danger Of API Development: Making Something Too Good »

