-
November 28, 2010
♥s Threadless: iPhone App Launch!
Today my newest app was approved for the App Store (and should be propagating quickly)! ♥s Threadless is what I’ve been working on mostly for the past few weeks or so. Hurry up and download and review it, then come back here for more info about the app.
It’s no secret that I’ve been a huge fan of Threadless since I discovered it back in 2005 (see these blog posts for proof). I really love the fact that the community provides designs and decides which ones will be printed. The company is really only there to provide the machinery to make shirts and fulfill orders! I wanted to contribute to the community by making an unofficial Threadless app (and maybe get a little store credit to feed my t-shirt needs).
My main reasoning for writing a native Threadless app is that I found it pretty hard to browse shirts, even in a fully fledged web browser let alone an iPhone browser. The Threadless site is by no means bad, but it’s hard to see what designs look like when the images are small and on models. I prefer viewing the actual design. So I built an app that makes it easy to 1) browse and find cool shirts and 2) share them with your friends.
In order to do this, I needed to get a database of shirts on Threadless. It’s kind of unfortunate that Threadless doesn’t have an API. At all. Threadless does, however, has a few feeds of shirts: one for shirts that are in stock and another for the weekly additions. I parsed this list of shirts and saved them in an App Engine database along with some other metadata like image urls, category info, etc. I also figured out a way to get the list of all Threadless shirts, including the ones that aren’t currently in stock. What this means is that the ♥s Threadless app will help you find more shirts than even the official website can. You can filter by category, color and run fulltext searches on the entire shirt database.
As far as the front end work went, I had to build a custom table view cell to scroll through shirts and a nested scrollview to view shirt images. The shirt view looks a lot like the native photo browser app for the iPhone. I also added features for sharing, including saving the image to your photo album, posting the design on Twitter and Facebook and emailing the shirt design as an attachment. I figure that covers most bases as far as sharing goes.
So far I’ve only designed and built the iPhone version. I think an iPad version would be neat, too, but I want to gauge the interest in the iPhone/iPod app before putting more time into this. If you like the app, let me know and write up a review for it!
-
November 20, 2010
ObjTweet: Helper Class for Twitter on iOS
I’ve been working on a new app (I’ll write more about it in a week or so), part of which required opening a user’s Twitter client with a pre-populated tweet or opening Twitter on a particular user’s profile for easy following. There are a lot of Twitter clients out there, so it’s hard to predict what a particular user will have installed on their device. They might not even have any Twitter client installed.
Many (but not all) Twitter clients have url schemes that allow you to open them with a particular message filled out, etc. There’s a few here, but it’s not a definitive list by any means. I gathered a bunch of the more popular ones and wrapped them in a helper class called ObjTweet.
Since I want to give back (and I wouldn’t mind the recognition), I’ve licensed this class under the
GNU GPL licenseMIT License (thanks, Marcello for pointing out that the GPL license is pretty restrictive) and uploaded it to Github. Hopefully someone else finds it useful. My hope is also that people will help find some of the missing url schemes for other apps and build on ObjTweet. If you found this class and are using it, let me know! Hopefully it works as described. -
November 12, 2010
Letterpress Business Cards!
I’ve been busy printing random stuff on my letterpress. I got some color ink and an old wood ‘H’ block. Oh, and I also ordered some blank business cards, so I decided to print myself a few.
I printed each card twice. First I printed the green ‘H’ and after that I set the type for the name, phone, email etc. I ran into a few issues with the width of the card at first. Since I wanted to have a vertical card, I only had so much space for the info. The type that I have doesn’t have the ‘@’ symbol, and “Hung AT Hung-Truong.com” wouldn’t fit on one line. So I just ended up putting it on two lines, which is nice because then the other line is just my website address.
I like the grainy look of the block ‘H’. Each one looks a little different, and at one point I mixed in some more blue to make it a darker green. It’s nice that the card itself is a slightly unique print.
If I could redo this card, I’d probably try to pick a smaller font for the info. And I’d also choose different sizes for my name versus the other stuff. I’m sort of limited in the type that I currently own (4 trays). If I end up making more cards, I might just buy a base so that I can make my own photopolymer plates. That’d be cool because I could also make my own designs for cards/coasters etc too.
-
October 20, 2010
Letterpress in Apple iLife ’11
Today I decided to have the Apple “Back to Mac” keynote stream while working on other stuff. I was literally setting up a print job in my composing stick when I heard Steve Jobs mention that iLife will have a letterpress printing option. I never imagined that Apple would move in on my turf when I decided to get an old style printing press!
It looks like you’ll be able to order prints from a number of templates, some of which can also include photos:
I think it’s neat that letterpress is becoming mainstream (again) enough that it warrants a feature in iLife. As far as my concerns about taking away business (which I haven’t quite decided to get into), I think it’s good that Apple’s pushing this kind of typing further into the mainstream. There’ll probably be a lot more people interested in letterpress, and not just for the personalized photo cards, etc.
On a technical note, I’m interested how Apple is going to farm out the print jobs. Do they have their own print shop with all the Heidelberg machines, or are they partnering with a shop? Depending on the volume of orders, I wonder what their turnaround time would be.
-
October 17, 2010
Facebook Information Download: Report Card
Ever since I signed up for Facebook, I’ve wanted a clean and easy way to export the content that my friends and I create on it. See this post for background. Facebook has never really made it easy to do so for end users, though they have an API that could theoretically be used for data export. Just recently, they announced a new feature that allows you to download your information. I gave the feature a test drive and took a look at what you actually get.
The process for grabbing your information is pretty simple. You go to Account Settings -> Download Your Information and then request your data. Facebook sends you an email when the zip file containing your stuff is ready.
The zip file contains a few files and directories: html, photos and videos. Photos contains the photos you’ve uploaded, videos contains the videos, and html contains things like a list of your friends, messages, notes, wall posts and events. These are all stored in html files, which makes it easy for normal users to view them.
From a data portability standpoint, it’s great that you can get all of your photos, videos and messages, etc. I like the fact that they’re in html that’s easy for anyone to browse. Since it works in its own self-contained directory structure, you could theoretically upload the contents to your own web server and host your albums yourself! For most users, the data download feature is really great.
From a programmer/hardcore archivist’s point of view, the data download is still lacking. For example, the friend’s list gives you a list of your friends’ names. It does not, however, provide you with the unique identifier for your friends (e.g. their Facebook profile name or id number). This might be useful if you have a friend named “John Smith” and you’d like to know exactly which John it is. Generally, the files just don’t contain enough metadata to keep good records.
Let’s say that in the distant future, Facebook has been abandoned. What we have left are the .zip files that people used to download their information. How would we go about reconstructing network ties? With the files as they are today, we can only make assumptions using names, which aren’t unique identifiers. While some people would say that including those would be overkill, they could be pretty easily added via meta tags within the html (or in a separate xml file for hardcore nerds like me).
In addition to this lack of metadata, my other complaint is that Facebook only gives you half of your information. You can download a pretty ego-centric payload of data; stuff that friends wrote on your wall and photos you uploaded. You cannot, however, download things that you posted on your friends’ walls. This is especially important because Facebook’s early messaging model was based on wall-to-wall posts. My oldest wall posts come without any sort of context at all.
Finally, it seems that Facebook did the unthinkable in deleting user data until around early 2006. I signed up for Facebook in January of 2005, yet my first wall post that shows up in my downloaded info is from February 2006. So there’s a whole year’s worth of wall messages that are missing. I suppose there’s no way for Facebook to retrieve this info anymore (unless they’re just witholding it because it’s hard to get to).
If you found this tl;dr, here’s a summary:
The Good:
Facebook information download makes it easy for anyone to download their data in a nicely organized and self-contained package. Everyone should go to their account settings right now and download their data, even if they don’t plan on using for anything in the near future. The download provides a lot of information and is a good faith attempt at letting users “own” their data. There’s still work to be done, howerver.
The Bad:
The data that’s downloaded lacks enough meaningful metadata. Specifically, the data regarding connections between you and your friends is too general. Unique identifiers for friend connections would be a good first step. Facebook also omits an important side of your data: the stuff you’ve posted to others’ walls. Finally, Facebook’s data download only goes back to early 2006 (for me).
What Facebook Should Do Next:
I think Facebook’s done a really great job so far for this first iteration of data download. Now they should add more metadata and provide data in a cleaner xml or json format. After that, they should enable download of photos and video in their original format (I have a feeling Facebook keeps the original size photos before they resize them). I think that providing users with an easy way to download all of their data will lead to a better relationship and more trust, which is something Facebook could really use.