Archive for the 'Tech' Category Page 2 of 4



Twitter and Facebook Status

Twitter allows you to broadcast ’status messages’ about yourself to a group of friends and followers. It’s an ancient idea (technically speaking, think AIM away messages), but it’s recently taken off in a big way.

I personally don’t find it all that useful. My phone pings me enough times throughout the day from all the emails I get. I don’t need to add SMS to the mix, especially when most of the messages are trite and meaningless.

On a side note, I think Twitter would be a killer app if it could generate ad-hoc social groups based on contextual and/or geographical awareness. I would love to send or receive “serendipitous” messages to/from buddies (or strangers) if we were looking to partake in a social event (hit a bar, catch a movie, hang out, etc.), or if we were unknowingly in close proximity to each other. I worked on a project like this a few years ago at UCSD, and unfortunately it never amounted to much given it was primarily a proof-of-concept research project. However, it seems that no one else has really tackled this issue, so maybe it’s worth resurrecting?

That being said, I feel Twitter is at best a self-serving vehicle for people to leave egocentric status messages, and nothing more. It basically reminds me of Facebook’s status feature. They both accomplish the same thing, just through different mediums. Twitter publishes externally to SMS and blog widgets, and Facebook publishes internally to user profiles and mini-feeds.

Self-serving? Egocentric? That sounds fun!

When I’m on the road and want to publish a message about myself, I’d like to use both services. Why deprive one community of my personal where-abouts and such (even when nobody gives a shit anyway)?

There are a few ways to do accomplish this:

  1. Update status on Twitter and propagate message to Facebook
  2. Update status on Facebook and propagate message to Twitter
  3. Have a “wrapper” application send messages to both Twitter and Facebook in parallel

Options 1 and 3 are ruled out because you can only update your Facebook status through their website. However, option 2 is possible by using Facebook Mobile and Twitterbook.

Facebook Mobile allows you to browse Facebook on your phone, providing pretty much the same functionality as a conventional web browser. Most importantly, you can update your status from anywhere, as long as you have a data connection.

With Twitterbook, you need access to a web-facing server to host the twitterbook.php script. (Mine is at srhaber.com/twitterbook.php).

On your mobile phone, create a bookmark for both Facebook Mobile and your Twitterboook install. Anytime you update your Facebook status, browse your phone to the twitterbook script to propagate the message to Twitter.

Browsing to two webpages sucks, I know, but… it saves you from otherwise sending an SMS message (Twitter only).

Note: This trick obviously works on computers as well, but it’s more fun when your mobile. :-)

Thoughts on Etech

I had the chance to attend O’Reilly’s Emerging Technology Conference this year in my hometown San Diego. I went in Ethan Kaplan’s stead as he was unable to go. I’d like to thank Cory Doctorow for helping in registering me on such short notice.

This was the largest conference I’ve been to. OSCMSS last week was small and relaxed, despite being in the corporate realm of Yahoo!. While it focused heavily on the geeky technical stuff (code!), Etech seemed more focused on the business end of things (e.g. lots of suits).

It was a bit intimidating at first to mingle with the crowd, but I slowly got over it. I ended up meeting some interesting people and running into familiar faces.

Some notes:

  • Using the word “magic” seemed to be a running theme for describing a non-technical person’s viewpoint of ubiquitous computing. This was apparent in many sessions, including Adam Greenfield’s talk in which he dissected common folklore tales and re-staged them with technical implementations (e.g. reciting “open sesame” to open a secret door relies on auditory sensors, voice detection, magnets, etc.). I regret missing Danah Boyd’s talk entitled “Incantations for Muggles”.
  • Cory is an amazing public speaker, and his co-talk with Peter Biddle on the plusses and minuses of trusted computing was probably the most captivating session of the conference.
  • I missed Pasha’s talk on Yahoo! Pipes last week at OSCMSS (it coincided with Dries’ talk). Luckily I got to see it this week. Pipes may be a useful tool for our Drupal project.
  • I’m glad I caught Michael Buffington’s (of stikkit fame) talk today called “Your Web App as a Text Adventure”. He showed how you can develop more meaningful API’s for your web app if it were implemented as a classic text-based adventure game. He gave his talk as if he were playing in a text adventure himself, ending each slide with the options to “go north, south, etc.” and of course following through. This one was fun!
  • I ran into an old acquaintance who managed to hack is way into the conference. I won’t divulge who he is (hint: lock-picking master) or how he got in (some luck and determination), but I personally think it’s awesome. I additionally ran into some cool peeps from UCSD, including a visual art teacher Ethan had worked with.
  • I joined some people from Flickr for lunch today (Cheese Shop in Gaslamp), including Kellan, who gave a talk at OSCMSS last week on Flickr’s API (which I had unfortunately passed on in favor of the Drupal XML-Mashup talk instead). Kellan and I had a serendipitous moment earlier in the week. We had been sitting next to each other on the flight down from San Francisco Monday night, not realizing it until about halfway through. Additionally, he is the author of MagpieRSS, which we just used in our latest site launch: http://static-x.com/. It’s a small (tech) world, it is.

Overall, the conference was fun, but at times intimidating. I’m more comfortable and interested in talking about technology on the lower-level. That is, the actual code itself. Etech didn’t do that for me. OSCMSS did. Needless to say, Etech was a worthwhile time investment. I met some great people and kept my horizons broadened to appreciate some of the more abstract aspects of emerging technology (e.g. privacy concerns, inherent social issues vs. technology issues)

On a side note: I had a hard time coming up with suggestions for lunch today. Luckily I remembered the Cheese Shop. I don’t know much about restaurants in Gaslamp since I hardly eat downtown (I’ve always equated it with the Nightlife scene). Too bad we weren’t closer to Hillcrest since I know many good restaurants there.

OSCMS/DrupalCon at Yahoo

I was at Yahoo’s campus in Sunnyvale last week for the OSCMS Summit. It was pretty much hijacked by the Drupal crowd, but that’s why I went there.

It was nice to see some familiar faces again, like Boris and Steven from Bryght, and also some new people we’re working with (Jonathan and Aaron from Firebright). Additionally, it’s also fun to get swag.

yahoo! swag

I didn’t take many photos, since Ethan pretty much had that covered.

A few notes:

  • Good abundance of Drupal developers. Lots of turned heads when Ethan mentioned that we’re always looking for more.
  • Got to meet Dries, the Drupal God so-to-speak. :-)
  • Lots of interesting sessions, though many involved module development. Steven’s JQuery talk was great, as was Ken Rickard’s talk on mashups in Drupal.
  • I think it’s hilarious that Yahoo! brands any object within site (including the dumpsters as pointed out by James).

On a side note, Ethan and I visited Facebook in Palo Alto on Thursday. Very cool to meet with them!

Logitech Control Center Blows

I recently purchased a new mouse: Logitech VX Revolution

The mouse rocks. The software that drives it does not.

Here’s a short list of issues I’ve had since using Logitech Control Center (v2.1.3) on my MacBook Pro (2.33GHz, 2GB):

  • Turning on/off the mouse, or removing/attaching the USB receiver triggers kernel panics at random.
  • It takes 10-15secs to register mouse clicks after awakening the computer from sleep.
  • Safari stops changing cursor states after a while. e.g. Hovering over links doesn’t show the hand pointer. (This is NOT a CSS issue).
  • The software quietly installs APE, which may have contributed to a downgrade in performance and crashing applications. E.g. iTunes had been crashing a lot recently.

That’s enough right there. In fact, the first bullet point is enough. I’ve been too afraid to turn off my mouse at night because I didn’t want any more panics. I’d rather let the batteries drain.

Fortunately, I’m not the only one with these problems. Since reading other users’ comments, here’s what I did:

  • Uninstalled LCC with the Uninstaller program that comes bundled in the dmg.
  • The uninstaller does NOT remove APE, however, so I had to do that manually by removing the following:
    • /Library/Application Enhancers
    • /Library/Frameworks/ApplicationEnhancer.framework
    • /System/Library/SystemConfiguration/ApplicationEnhancer.bundle
  • Restarted the computer.
  • Downloaded SteerMouse, which seems to be a much more stable driver and provides the same button-mapping functionality (hint: use keyboard mappings for Dashboard & Expose settings).

SteerMouse is a $20 shareware program, but has a 30-day trial period. I am testing it out now, and so far it’s been fine. No strange happenings.

I’ll follow with an update in a few days after seeing how this goes.

Bottom line: Logitech makes great peripheral products with lousy software.

UPDATE (3/31):
SteerMouse has been working flawlessly. Digg!

Flickr Collections

Finally! Flickr has introduced a way to organize sets. They’re calling their new feature “collections”. You can read more on the Flickr blog:

What are collections, you ask? A collection is a container into which you can place either sets or other collections, allowing you to create a hierarchy as deep as 5 collections. You can place as many of your sets into a collection as you like, and a set can be in as many different collections as you like.

This feature has been long overdue. It is a big help for pro account members who have many sets and until now had no way to organize them.

I am using collections to do the following:

  • Create a collection for each year: 2007, 2006, etc. to provide chronological ordering of sets.
  • Create a misc collection: a place to store random sets with no chronological meaning.

My usage of this is pretty basic, but the payoff in usability is huge. Compare my “sets” page with my “collections” page:

  • Sets - Unflattened and cluttered, hard to visually scan.
  • Collections - Logical ordering, much easier on the eye and brain.

This is definitely an exciting addition and something I’ve been hoping they would implement for a long time. I remember requesting this feature on a survey they provided last year in addition to the multitudes of people requesting this on their forums.

Thanks, Flickr, for listening and following through!

drupal multisite setup with sub directories on single domain

I am testing out different installation profiles for Drupal 5.0 and wanted to create multiple “sites” on the same domain. Each site shares the same code base, but they are differentiated by sub-directories.

To set this up, creating a new sites folder is not enough. You also need to create a symbolic link in the physical directory structure (or perhaps add a mod_rewrite rule).

For example, if your main drupal site is setup at example.com, and you want to create a new site at example.com/new:

First, create the new sites folder and settings.php:
./sites/example.com.new/settings.php

Then create a symbolic link at the root folder of your drupal installation:

ln -s . new

so that new -> DRUPAL ROOT

This last step wasn’t not documented clearly in the Drupal Handbooks.

Now example.com loads main drupal site, but example.com/new loads the drupal installation page, prompting me for that site’s specific settings.

Since I plan to develop a handful of installation profiles, it will be really useful to dedicate each site to a specific profile.

Thus, I’ll end up with a handful of drupal sites:
example.com
example.com/profile1
example.com/profile2

and so on…

TextMate Blog » Subversion support and ssh key pairs

TextMate Blog » Subversion support and ssh key pairs

This article was a life-saver for getting painless svn_ssh:// connections to work.

Caution of Giving WordPress Its Own Directory

http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

This site provides great step-by-step instructions for sweeping the WordPress files out of the root and into a sub-directory. However, this may cause some vendor clients to choke when looking for the xmlrpc.php. This happened to me when trying to set up my “external blog” at bimactive.com

Assuming that the new folder you created is called wp, then the uri for the xmlrpc.php file is: http://yourserver.com/wp/xmlrpc.php. However, the html header generated by WordPress shows a link to http://yourserver.com/xmlrpc.php. Any app following this link will be sent a 404 error.

View the source of this page to see for yourself. At the bottom of the head tag is the following line:


<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.srhaber.com/xmlrpc.php?rsd" />

To work-around this problem, I created symbolic links at the root folder to point to the xmlrpc.php and wp-config.php files (wp-config.php is a dependency for xmlrpc.php)


ln -s wp/xmlrpc.php xmlrpc.php
ln -s wp/wp-config.php wp-config.php

This fix is simple, and prevents any unnecessary hacking of the WordPress core code.

iTerm

iTerm

I made the switch and started using iTerm today. I felt limited somehow with Terminal, and iTerm delivers more features with the added bonus of having a comforting cocoa-app look and feel.

The main productivity boost in iTerm comes from using the Bookmarks window. Essentially, I can create a bookmark for each server I ssh into on a regular basis. Then with a simple double-click, a new tab is created (another shortfall with Terminal) and the ssh command is issued with a prompt for my password. It’s pretty nice.

Bookmarks could also be used for issuing other common commands, such as starting a WEBrick server for rails development.

macosxhints.com - 10.4: Avoid dropped connections due to idle timeouts


macosxhints.com - 10.4: Avoid dropped connections due to idle timeouts

A useful thread for me since I’ve been having this problem. According to some comments, it could be related to my ISP, DNS, or even my router. I’ll take my chances though and test out this solution.

UPDATE
It works, but I had to edit the /etc/ssh_config file as sudo. The first option of creating a .ssh/config gave me permission errors upon ssh connection attempts.