February 3, 2010

Sneak peek at Twitter's browserless OAuth credentials exchange method

Over the past couple of months the Twitter API Google Group has been overflowing with more and more disgruntled developers complaining about lack of bug fixes, slow rollout of promised features, no mobile interface for OAuth, etc. (The list goes on and on) Well I'm happy to say Twitter appears to be almost done with one much requested feature: browserless OAuth credentials exchange. It was hinted that Seesmic Look was using said exchange so today I took a peek at how Look worked behind the scenes.

To start off Look is using the standard oauth/access_token endpoint on the new https://api.twitter.com subdomain.

In addition to the standard POST headers, Look adds several values that include a username and password for the specific user.


The return value is an access_token as expected plus x_auth_expires whose meaning I can only guess at.


I didn't bother to try the exchange with my own consumer key but I would assume access is limited to specific partners for now.

As excited as I am for using browserless OAuth I'm afraid developers with be lazy and implement the credential exchange instead of the full OAuth flow even in environments well suited to jumping from application to browser.

What do you think of the credentials exchange method?

January 31, 2010

Three Months of TextMate

After more then Three Months of Vim I've decided to try three months of TextMate. I had fun working with Vim and learned some nice tricks and it is time to try something new. Vim does have some deficiencies and I'm excited to compare the workflows. The biggest change will be going from a hosted style development process of SSHing into my dev box to developing everything localhost. Not only will I get rid of some lag but I'll be perfecting my deploy processes.

What are your most invaluable TextMate features or tricks?

January 25, 2010

Graphic.ly UI Icons

Graphic.ly UI Icons
Graphic.ly UI Icons, originally uploaded by jakemix.
A nice looking set of icons.

January 22, 2010

Amazon Kindle support oddness

Amazon sent me an odd email regarding the cover for my Kindle.
Dear Kindle User,

We’re sending this note to remind you about proper attachment and use of your Kindle cover and about Amazon’s Kindle warranty. You can view instructions and illustrations here:
http://www.amazon.com/gp/help/customer/display.html?nodeId=200390460

ATTACHING THE COVER
To install the Kindle, open the cover and lay it on a flat surface. Then insert the bottom attachment hook on the cover into the bottom slot on the left edge of the Kindle. Rotate the Kindle to insert the top attachment hook. Then slide the switch down slightly to lock the cover attachment hooks in place.

Be sure to place the Kindle flat on the cover during installation. Do not tip the Kindle at an angle during installation, as that may cause the cover attachment hooks to bend.

USING THE KINDLE COVER
When using your Kindle with the cover, be careful to open the front cover only. If you open the back cover and pull the cover away from the Kindle, that may cause the attachment hooks to bend and could result in cracking or other damage to the Kindle.

THE AMAZON KINDLE WARRANTY
Your Kindle is covered by a One-Year Limited Warranty you can view here: http://www.amazon.com/kindlewarranty

If the attachment hooks on your cover have become bent, or your Kindle has developed cracking or other damage near the location where the hooks connect to the Kindle, please contact Kindle Support by phone or email regarding warranty replacement.

You can reach us via phone or e-mail through our website by clicking the Contact Us button on our help pages at http://www.amazon.com/kindlesupport or directly by calling one of these numbers:
Inside the United States: 1-866-321-8851, Outside the United States: 1-206-266-0927.

For more information, please see the Warranty Service section of the Kindle Return Policies Help page:
http://www.amazon.com/kindlereturnpolicy


Sincerely,
The Kindle Team

January 18, 2010

Installing Storytlr the lifestreaming platform

"Storytlr is an open source lifestreaming and micro blogging platform. You can use it for a single user or it can act as a host for many people all from the same installation."

I've been looking for something like Storytlr for a few months now or at least trying to do it with Drupal. While I love Drupal and FeedAPI I did not want to spend all that time building a lifestream website. So I've been playing around with Storytlr instead and found it very easy. Here is how I got it up and running on a Ubuntu EC2 server. You can also check out the official Storytlr install instructions.

Assumptions:
  • LAMP stack installed and running.
  • Domain setup for a directory.
  • MySQL database and user ready to go.
Lets get started!

Get the code:
wget http://storytlr.googlecode.com/files/storytlr-0.9.2.tgz
tar -xvzf storytlr-0.9.2.tgz
You can find out the latest stable release on Storytlr's downloads page.

Import the database:
Within protected/install is database.sql. Import this into your empty database.
mysql -u username -p -D databasename < database.sql
Make sure you replace username, and databasename with your specific choices, and enter the password when prompted.

Configure Storytlr:
in protected/config copy config.ini.sample to config.ini.

A few settings I've modified:

  • db.username
  • db.password
  • db.dbname
  • security.cookie
  • web.host
  • web.timezone - list of timezones.
  • app.from_email
  • app.admin_email
  • flickr.api_key - Only if you intend on importing Flickr photos. Get one here.
Folder permissions:
You have to make protected/logs, and protected/upload writeable.

chmod a+w protected/logs protected/upload



PHP Tidy:
I had to install the PHP Tidy package for several of the imports to work including RSS feeds.
sudo apt-get install php5-tidy


Login:
You can now login to your site using the default username:password of admin:storytlr. Make sure you change these.


Finishing:
Now you can pick your theme and start importing your social identity.

Update - Cron:
To get Cron running you have to execute the protected/tools/update.php script directly while specifying a username. This is what mine looks like to update every five minutes.
*/5 * * * * /usr/bin/php -q -f /path/to/install/protected/tools/update.php -- admin


Since I'm a coder I also installed the GitHub plugin.

You can check out my lifestream here: http://stream.abrah.am. Link to your lifestream site in the comments.