Designing Around Place

Charlie Rose Schedule for Android

Tuesday, January 13th, 2009

Sometimes you might be out trying to decide whether or not you should head home early for Charlie Rose. That’s difficult when you don’t know who’s on. When you look at the channel guide on the TV, it doesn’t tell you who’s on that night. So here is the Charlie Rose app for Android. When you launch it, it tells you who’s on tonight and tomorrow night.

The app hits this php script and displays the text on the device. I figure if I let the app hit the script for the data, I can manipulate the script later on without asking people to update their version of the application. I spent most of my time scraping together this app and not enough time understanding why it doesn’t work all the time, so by the time I got the script all tidy and in a presentable state, my app wasn’t connecting to the Internet. I’ve read that the Android emulator itself is buggy. Regardless of whether it’s my fault or Android’s, debugging has been basically impossible due to connection issues on the emulator. Here’s a screenshot of one of the early occasions that it worked. When the app is totally finished and ready to go, it’ll be posted on Summer Mittens.

charlie_rose_android

Hello, Android

Monday, January 12th, 2009

Here’s what Hello World, built using Eclipse, looks like for Android. I followed this great tutorial from Perk Mobile, a company from which a few guys visited us in Designing Around Place last fall.  It details the process of setting up the Android SDK for Eclispe and the Hello World example. Now onto bigger and better apps. Hoefully there will be one sitting under above this post at this time tomorrow.

Google Earth API Example

Thursday, January 8th, 2009

Google Earth is sweet! Check out this example that places you in Cerro Hoy, on Panama’s Azuero Peninsula.

ChattyTime featured on AdAge!!

Tuesday, December 23rd, 2008

Wow! Thanks AdAge!

Some Notes about Working with XMPP, SamePlace and Firefox Extensions

Thursday, December 11th, 2008

This may serve as a rough guide for working with Jabber and Firefox. Right now I believe the only option for doing so – unless you want to build your own Jabber client – is to build upon SamePlace. SamePlace is a great extension, and even though it’s relatively new, I wish I discovered it sooner. Since installing it my browser has basically been my desktop. The interface is really nice and you can use it with a bunch of instant messaging services.

Firstly, if you have never built a Firefox extension, use the wizard. I went through hell doing my Hello World extension using Mozilla’s instructions. Also, the Hello World example is a far cry from making an extension that has even the most limited functionality. Ted’s extension wizard gives you the framework and outlines the components perfectly.

Secondly, this may be common knowledge to JavaScript pros, but as someone who is relatively new to JavaScript, I discovered quite quickly that event listeners are my friends. Mozilla’s documentation was the best I found for a high level description of their purpose and parameters, and adding browser event listeners will add robustness to your extension.

With Jabber you trigger events on channels. You need one channel per event type and direction. Channels exist for incoming and outgoing messages, presence, and listening for iq packets, among others. According to SamePlace creator Massimiliano Mirra, “<iq>’s are used when you have to carry out a ‘conversation’ with a server or other entity following a predefined sequence, such as updating your profile or requesting a roster (contact list).  With iq events you listen to those packets, although you’d usually not set a listener for them and instead use the one-time listener given as third argument to send(), as in:

XMPP.send(account, <iq to=”some-entity”>…</iq>, function(reply) {
alert(reply.stanza) })

Remember that since your Jabber Firefox extension lives only on the client, events that affect both clients (chat partners) should be handled by both directions – ‘in’ and ‘out’ – of an event type. This means that if you are processing the text of a message in the same way for the sender and receiver, you must have two channels and two events – message ‘in’ and message ‘out.’

Play around with these ideas to get a feel for developing for Jabber. Also, don’t forget to download ChattyTime, a very exciting and brand new extension by Andrea Dulko and I. Thanks!

ChattyTime 1.0 is Here at Last!

Thursday, December 11th, 2008

A labor of love for many weeks, ChattyTime is here. You should try it, it’s a lot of fun and it’s practical. Something of a technical write up will follow, but for now here’s some more info about ChattyTime. You can download the class presentation too.

***

ChattyTime adds some exciting new features to SamePlace, the award-winning, extensible instant messaging client and Firefox extension based on the XMPP (Jabber) protocol. It is compatible with AIM/ICQ, GMail, MSN, Jabber, and Twitter, and it has a Jabber service of its own.

ChattyTime allows you to open “gift” pages right in your friend’s browser. Search news, Google, the dictionary, YouTube, and translate English/Spanish for your friend. Now there’s no excuse to say, “Just Google it,” because this feature is quicker to type! You might also like the location-based search feature, which will give your chat buddy search results in his or her zip code.

The other major feature that we here at ChattyTime are pretty excited about is the ability to browse the web with your friends. It’s ubiquitous browsing. By turning the feature on, no matter who clicks on what, you and your buddy will browse the same web pages. Use this feature for conferencing, YouTube, holiday shopping, or whatever you want.

Special characters determine the type of gift page to be sent. For example:

~economy opens the Spanish translation for “economy”
=pterodactyl opens Google results for “pterodactyl”
@pizza opens results for pizza in your friend’s zip code*

Here’s the current list of special characters (also available in the ChattyTime option under Firefox “Tools”):

= for Google search
; for YouTube
@ for location-based Google search
# for dictionary
~ for Spanish/English translations
! for New York Times
- plus any URL to send any web page you want

To browse the web with friends:

  1. Each user sends :1 to begin session.
  2. One user sends :0 to end session.

Some notes on group browsing with this version of ChattyTime:

  1. You will send links to any opened chat window, so close the windows of the buddies that are not participating.
  2. You will share all your browser activity with your buddy. Of course your buddy will not have access to your password protected sites, but you will still direct him or her to those pages.

*To use location-based search function, friends much have Loki installed.

www.chattytime.com

Craigslist Event Ticket Finder

Thursday, December 11th, 2008

Here’s a recent project: the user enters his or her name, an event for which the user would like tickets, a maximum price, and a phone number. In return this site will send up-to-the-minute results in a SMS to your cell phone. You can remove an event from your list at any time by simply entering your phone number, which returns a list of your events. Select the event to remove and you’re done. SMS commands to achieve the same goal are on the way along with email and instant message updates. This concept is also easily extended to all of Craigslist to cover jobs, furniture, free stuff, etc, so look for site-wide updates very shortly! This service works quite nicely. I haven’t received a bad result and it doesn’t miss any. Try it out here!

Live Web/DAP/DWD Final Project Proposal

Thursday, November 20th, 2008

Andrea and I have been experimenting with updating online chat. Using AJAX among other things, we were able to allow users on one web page send search results to each other by opening a new window on each client’s side containing the results. Users will be able to open links for one another and browse and navigate the web as a group. For the prototype we added the use of Loki to produce location-based search results. If you and your chat partner both have Loki installed on your browser, you should try our prototype.

For the final project, we are going to create a Firefox extension with these principles on top of, to my knowledge, the only existing Jabber Firefox extension SamePlace. It is quite good. Here is a screenshot of how it looks in the browser:

If you are having trouble understanding how this works, imagine that this screenshot is your desktop. When you navigate to a different page, your chat partner automatically goes to that page as well. If you are planning your evening, you can both be on the same page without having to send links back and forth. The location-based search feature is activated right in the chat window by use of a special character. For example, @restaurants would produce search results for restaurants in my area, and #restaurants would produce search results in your area.

When our extension-upon-extension is complete, you and your chat partner will be able to pull up links for each other for group research, entertainment, or basically whatever you want. Of course we’ll keep the Loki feature, so even if you don’t know where your chat partner is, you can still give them search results based on their current location.

The project will be coded pretty much entirely in Javascript. There needs to be a database that will most likely need to contain a chat id or some other identifier that will be used to access the location info.

Examples of Google Maps and Loki

Wednesday, October 1st, 2008

I’ve been working with the Google Maps API and the Loki API to practice mapping applications. Here are a few examples of what I’ve accomplished:

  • This example is specific to New York City, and you can type in as little as just a cross street to get your address: Intersection Map
  • If you have the Loki plugin installed, you’ll be able to see where you are, and your approximate address, upon hitting this link: Loki example
  • This example simply plots multiple markers on a map, pulling address or latitude and longitude info from a database: mySQL Example
  • This is my favorite, but for now it only works if you have a Mac and the Loki plugin installed. This example shows you where you are on a map, and depending where you are, it plays a song about the area or by an area artist! Only NYC is included at the moment, so if you do not live in NYC and click the link you won’t hear a song yet, but more areas are coming soon: Loki with Quicktime

These were done mainly with PHP and Javascript, neither of which I knew very much about more than 3 weeks ago. I’m really starting to enjoy working on web related projects.