8 November 2009 - 8:33pmMotorola Droid

, , , , ,

At 8 AM on Friday morning, Joelle and I were at the Verizon store in Camillus checking out Verizon’s two new Android-based phones: the Motorola Droid and the HTC Droid Eris. Joelle got me the Droid as an early Christmas gift and, at the request of Ryan, I’m taking some time to post here about my initial experiences with the phone.

The Home Screens

home_screen_2 home_screen_1 home_screen_3 locked_chargin

These are the home screens on the Droid. There are three available and you switch between them by dragging your finger across the screen. You can put shortcuts to any applications you like anywhere on these screens as well as widgets that serve various purposes. You can see that I have a few shortcuts on my middle home screen (which is the main one) and on the top of each screen is a widget.From left to right: the Facebook widget which shows status updates from your friends, the Power Control widget which allows you to switch wi-fi, bluetooth, GPS and syncing on and off, as well as adjust the screen brightness (this is one of the best widgets I’ve found since these are otherwise buried in the settings menu, this is included by default as part of the OS), and finally the Weather Channel widget (which I have recently replaced with the Weather Bug widget). I’ve read elsewhere on the internet that having a lot of widgets can slow the phone down considerably and can also be a battery drain so I’m going to try to stay away from using them too much. The last picture on the right is a shot of the phone while locked. Touching and sliding the unlock symbol to the right will, obviously, unlock the phone. This screen looks slightly different if you have a security code set. In that case you would see a 3×3 grid of dots which you have to connect in the special way you picked in order to unlock your phone. You can also put the phone on silent by touching and dragging the speaker to the left.

The Phone

phone phone_call phone_answered call_ended

Next is the phone application itself. The dialer is easy to use and the tabs across the top of the screen make it easy to view your call log, choose from your contacts and access your favorites. The second picture is what the screen looks like when you’re receiving a call. To answer, touch and drag the green button to the right (to ignore, do the opposite). While you’re in a call, the screen shows who you are talking to and gives you options related to the phone call. You can easily add a person to the conversation using the “add call” button (a feature I have not tested), end the call, go to the dialpad (to enter DTMF tones at an automated menu, I assume), mute, and go to speakerphone.  One thing that’s really sweet is that the phone automatically turns the screen off while it’s touching your face (meaning you’re talking on it) and turns the screen back on when you pull it away from your ear (so you can end the call or whatever else you need to do). This prevents accidental button presses and works very well in my experience.  That last shot is just what the screen looks like after you end the call.

Miscellaneous Menus

settings storage apps market

These are just a few screen captures of random menus and such on the Droid. The settings menu obviously contains any setting you could ever hope for, including the SD card and phone storage settings. That shot shows how the Droid is limited to storing applications on its internal memory rather than utilizing the included 16GB SD card. This is an odd restriction but doesn’t seem to be a big deal so far since I have 10-15 apps installed and have barely used any of the internal memory. The apps menu lists out every app you have installed. Shortcuts can be dragged off of this menu and onto the home screen for easy access. That last shot is of the Android Market where you can search for applications to fill your every need.

The browser and other stuff

browser battery_usage text

Here’s a shot of the browser in landscape mode. As you can see the entire width of the website is visible and you can zoom in by double tapping on the screen. The next shot is of the battery use menu which shows what applications/services are using your battery. As you can see the screen is the biggest culprit (I’ve since been trying to keep the screen brightness way down) with wi-fi being a close second. The last one here is the text messaging interface which is pretty simple but displays your texts in a conversation format, which is a big step up from my Windows Mobile phone.

Bonus Material

Those are most of the key things I’ve discovered so far. Below you’ll find a gallery of pictures with all the ones I’ve showed you so far with a few more I didn’t. One thing I didn’t take time to mention was the Barcode Scanner application which is capable of scanning normal barcodes found on items in the store (as seen in my picture where I scan the barcode on my propane canister and then have the app look it up on Google) as well as special 2D QR codes which can contain other data such as a URL. Below is the QR code that links to the Barcode Scanner on the Android Market. Scanning this code with the app will give you the option to open that application’s page in the Market. Edit: to download this application, search for “barcode scanner” in the Market; the application is named exactly that and will show up in the search results.

You’ll also find a couple bonus pictures in the gallery of my favorite novelty application so far. If you’ve watched any Star Trek you’ll recognize it as a Tricorder. It uses realtime data from the phone’s various sensors to fill the screen with all sorts of graphs and numbers, which is pretty awesome. Another application I really like is Gmote. Installing this application on your phone, coupled with a server component running on your computer, gives you full control of your desktop from the comfort of your living room couch. It has built-in compatibility with VLC (unfortunately, not Media Player Classic) and has the ability to control the mouse and keyboard of your computer using the screen as a touchpad and either the phone’s physical keyboard or the onscreen keyboard.

I am very impressed with this phone so far. It’s fast, easy to use and a lot of fun to play with. The only thing I haven’t liked so far is the battery life, but I have a feeling that will get better once I’m not playing with the phone every minute. If you have any questions please post them in the comments and I’ll do my best to answer them. Now, the gallery.

1 Comment | Categories: COSI, Technology

22 April 2009 - 7:13pmVersion 0.3

, , , , ,

I’ve just released version 0.3 of the Google Calendar Feed Parser.  This update was a quick one but definitely deserved a new version number.  Since I wrote the plugin I’ve received feedback from many users indicating that PHP’s file_get_contents() would not work on their hosting provider.  A few of these users posted alternative code that used cURL instead and that fixed the problem for everyone.  Today, the author of onigoetz.ch left this comment on my blog about some work he did to the plugin.  Specifically, he mentioned a function called wp_remote_get().  I wasn’t able to find that function in the documentation for WordPress, but searching for it led me to what I think he may have meant: a function called wp_remote_fopen().  This is essentially a wrapper function for retrieving the contents of a file from a URL and will first try using fopen() and, if that fails, fall back on using cURL.

I’ve updated the code to use that function which should come as a relief to many who were forced to hack at the plugin’s code to get it to work on their hosting provider.  A big thanks to onigoetz.ch for making me aware of that function!

6 Comments | Categories: COSI, Programming

19 April 2009 - 2:58amVersion 0.2

, , , , , ,

I just released version 0.2 of my Google Calendar Feed Parser plugin for WordPress. The new version confirms compatibility up to version 2.7.1 of WordPress and also adds one new pseudo-feature.

When I originally wrote the plugin, I had some trouble with the start and end times for events displaying in the correct timezone.  To solve the issue (just for EST), I added a hard-coded number of seconds to each time.  This presented a problem when daylight savings time changed since now all the times were displaying one hour off.

To temporarily fix this problem, I’ve added an option to the administrative interface for the plugin that allows the user to directly set the offset (in seconds) that gets added to the start and end times for each event.  This way, a user can test different values to see which one produces the desired result for their timezone.  I call this a pseudo-feature because I hope to replace it with a more comprehensive timezone configuration section at some point in the future.

Version 0.2 can be downloaded from the WordPress Plugin Directory.  Users with version 0.1 installed should be prompted to upgrade from the plugin section of the WordPress admin interface (I’m excited to see if that just works without any effort on my part).

1 Comment | Categories: COSI, Programming

7 April 2009 - 10:44amUpdate: Google Calendar Feed Parser

, , , , , ,

I was just looking through some old posts and came across this one that was a follow up to my release of the Google Calendar Feed Parser plugin for WordPress.  At that point (about 2 weeks after the release), I’d had my plugin downloaded 50 times.  I thought that was amazing and it felt pretty neat to know that people were actually using something I made.

Inspired by reading that just now, I decided to check and see the status of my plugin as of today… about 10 months since the release.  I’m really excited to report that it has been downloaded 1,315 times.  Maybe this summer I’ll have some free time to do some more work on the plugin (add a few missing features and fix some bugs).

5 Comments | Categories: COSI, General

23 July 2008 - 3:34pmSweet!

, , ,

I was looking at my site’s stats on my Google Analytics account today and I noticed three referrals from a URL I’d never heard of before. Drilling deeper into the report revealed that the referring URL was the “plugins.php” page of this person’s blog. Still not understanding what was going on, I went to this person’s blog and poked around a little and then it hit me… the author of http://burkeism.com/blog is using my Google Calendar Feed Parser plugin! Woo!

What a good feeling it was to see someone actually employing my code on their own website. If you are a Google Calendar Feed Parser user, please leave a comment and let me know. And, if you’re the author of burkeism.com, leave me a comment and let me know how it’s worked for you. And, if you’re a user and you really like my plugin, link to it on your blog so others can find it too!

Edit: Further perusal of my Analytics reports revealed more users of my plugin! I’m psyched. In addition to these referrals from other blog’s “plugins.php” (which are a result of someone clicking on my name in their WP admin panel), I’ve also had 150 referrals from the WordPress Plugins site and my plugin has been downloaded 93 times. Also, a simple search for my plugin (or any derivative thereof, including “google calendar feed”) on Google gets you to my plugin from the first page of results (a search for the exact title “Google Calendar Feed Parser” yields the number one result!).

1 Comment | Categories: COSI, General

21 July 2008 - 11:14amValidation

, , ,

Today I decided to run my homepage through the W3C’s Validator. I found a couple errors (ampersands in URLs that needed to be converted to entity references and also some bugs in the way WordPress formats a post with misplaced <p> tags). I fixed them quick and then added the provided badge thing to my sidebar.

Then I was reading this article by Jeff Atwood on his blog, “Coding Horror,” in which he mentions that Google’s homepage has 63 validation errors. I think I did it once before, but just for kicks I decided to run Google through the validator to see how it’s doing these days. Check it out for yourself.

Now, considering the fact that Google employs some of the smartest people in the world, why on earth can they not manage to include a DOCTYPE at the beginning of their page?

Moving past that issue and manually selecting a DOCTYPE from the dropdown yields far less than satisfying results. What could you possibly be doing on such a simple page that you end up with 180 errors? Get one of your geniuses to fix them real quick. By the looks of the errors it would only take about an hour or so. I’ll even do it for you.

Does anyone else think that’s ridiculous?

2 Comments | Categories: COSI, General

21 June 2008 - 9:49pmMy First WordPress Plugin

, , , ,

I just wrote my first WordPress Plugin! You probably just saw my post about it… I decided to do a formal post to document the plugin (which I can use for the plugin’s URL on the WP Plugin site) and then post afterwards to announce it to the masses.

Anyway, it’s called Google Calendar Feed Parser and it does basically what the title implies. You give it the URL for a Google Calendar feed and it parses and displays the feed for use in a sidebar to show upcoming events on your calendar. There are still a lot of improvements that I’d like to work into it, but version 0.1 has some pretty solid core functionality and should work well in any WordPress theme.

Try it out on your blog and let me know what you think. I’m excited about it and I plan to continue working on adding functionality so suggestions are very welcome.

Leave a Comment | Categories: COSI, General, Technology

21 June 2008 - 9:40pmGoogle Calendar Feed Parser

, , , , ,

Update: Version 0.2 was released today (4/19/2009) which allows configuration of a timezone offset that can be customized to force start and end times from the XML feed to be displayed in the desired timezone (see documentation of the option below).

Update: I’ve added a screenshot of the plugin in action on a blog I administer.  You can view it here.

Google Calendar Feed Parser is a WordPress Plugin designed to facilitate incorporating a Google Calendar XML feed into your WordPress blog.  I wrote this plugin after being unable to find an existing plugin to provide similar functionality.  I intend to keep this plugin up to date, compatible with the most recent releases of WordPress, as they occur.  If you have suggestions, comments, advice, etc. or you would like to help me develop the plugin, feel free to leave a comment and I’ll get back to you.  Any help is appreciated (especially since this is my first WordPress Plugin).  Please let me know if you have any timezone related issues, I had some odd problems getting the times to appear properly.

To install Google Calendar Feed Parser:

  1. Download the zip archive and extract it to the wp-content/plugins directory.
  2. Go to the “Plugins” page in the WordPress Admin interface and click the “Activate” link for the Google Calendar Feed Parser.

To configure Google Calendar Feed Parser:

  1. Go to the “Settings” page in the WordPress Admin interface and click the link for the “Google Calendar” page.
  2. Set the URL for the calendar feed and other settings as desired (see below for full explanation of all options).

Options:

  1. Feed URL: This is the URL of the feed you wish to incorporate in your blog.  It should be of the form:

    http://www.google.com/calendar/feeds/userID/public/full?param=value&param=value…

    • For a listing of available parameters, see the Google Calendar API documentation. I found the following query string to provide desirable results:

      ?orderby=starttime&sortorder=ascending&futureevents=true&singleevents=true

    • Note that the max-results parameter should not be specified here as it will be handled by the setting below.
  2. Static URL: Use this option if you want to have each event link to a single URL (e.g. have each event link to a page where you’ve embedded your Google Calendar).  If you leave this set to “No”, the plugin will use the link provided by the feed for each individual event.
  3. Max Results: Use this to set the maximum number of events to retrieve and display from the calendar.  If left blank, the plugin’s default is 4.
  4. Timezone Offset: Change this value only if you are having issues with times from the feed displaying correctly. The value supplied in this field is a number of seconds added directly to both the start time and the end time for each event. The default for this value, if left blank, is 7200 seconds. Note: In a future release of the plugin, this option will be replaced with a more comprehensive timezone customization feature.

To Use Google Calendar Feed Parser:

  1. Include a call to the function gcal_parse_feed() at the spot where you want the feed to appear.  I use the feed in my sidebar but you could use the feed wherever you want.
  2. Include style rules in your template’s stylesheet to customize the look of the feed.  A single event outputted from the plugin would be of the form:

    <div id=”events”> <div class=”event”> <h3><a href=”http://some-link-here”>Event Title</a></h3> <p id=”event_time”>July 12, 2009 from 9:00pm to 10:00pm</p> </div> …more events here… </div>

Donations:

If you like this plugin, please consider donating.


Changelog:

Version 0.1 (first):

  • Ability to set feed URL.
  • Choice of whether to use event URL from feed or static URL for each event.
  • Ability to set max-results parameter.

Future Functionality:

  • Ability to customize query string from the Admin interface in WordPress.

90 Comments | Categories: COSI, General, Technology

14 May 2008 - 10:34amAndroid Winners

, ,

A list of the 50 winners of the first portion of the Android Challenge has been posted on the Android blog.  After reading through the titles, I found a link at the bottom to the Phandriod site where links to many of the winner’s websites or videos have been aggregated.  Take a look at them.  These people developed some pretty outstanding applications.  I looked at several of the 50 that sounded interesting based on the description and I’ve picked a few favorites.

  1. Commandro – A new take on social networking, Commandro utilizes the Android platform’s location-based services to show you where your friends are and what they’re doing at all times.  It makes good use of the Google Maps functionality available on the device and the interface looks very intuitive.
  2. AndroidScan – This application is really cool.  Using the phone’s camera, AndroidScan allows you to take a picture of a barcode that it will then process, giving you a list of places where you can buy it and the price it’s being sold for there.  In addition to websites carrying that item (which you can view by clicking a link), the application also searches for nearby stores with that product and, in the case of a book, nearby libraries.  One thing I thought was particularly cool is that if the barcode you scanned belongs to a CD, the phone will access the Amazon MP3 store and give you the option to listen to the 30 second previews for each track on the album.  The AndroidScan website has a 3 minute video that shows it off pretty well.
  3. ShapeWriter WritingPad – This application is truly phenomenal.  Developed by ShapeWriter Inc., this application facilitates entering text into your touchscreen phone in a way I’ve never even imagined.  The best way for you to see what I mean is to just watch the video.  This application is really cool.

Now I can see more clearly why our application was not among the top 50.  The applications that won had truly innovative ideas that were almost flawlessly implemented.  Though I thought (and still think) that our idea was innovative, taking the whole social networking thing from a different angle, we didn’t have the skills or the time to implement it in such a complete way.

Edit (3/9/09): Thought I’d add in some information about our entry to the Contest.  Our team consisted of 6 students from Clarkson University (all undergraduates of various class levels) and one professor.  We developed an application we call “Digital Lifelines.”  Basically, it allows the user to custom create timelines of any type by choosing what fields to include for each entry.  These are created by following a simple XML format and then pulling that XML file from the internet for loading into the program.  Users add entries at will and then have the ability to browse through all their entries in a timeline-like fashion.  Our goal was to develop a web component where users could log on and see their timelines presented in a more visually appealling format, but that feature has yet to come.  We do, however, have a website you can visit where the source code will hopefully be posted sometime in the near future (we’ve been neglectful in attending to that).

1 Comment | Categories: COSI

12 May 2008 - 4:04pmGoogle sucks

, , ,

As may be evident by the title of this post, our team of 7 was not one of the 50 winners of the Android Developer Challenge. We were informed by email Friday afternoon that, regrettably, we would not be receiving one of the $25,000 prizes.

In all reality I knew we didn’t have much of a chance. I saw a few of the other entries that people had posted on the internet and our application just doesn’t even compare. I’m proud of what we did and I had a lot of fun doing it… I wish we’d had more time and energy to come up with a submission that could have competed better with the top entries.

There’s another Android Challenge starting later this year, perhaps we’ll continue work on our application in preparation for another submission then. At some point in the future the write-up we submitted (and possibly the source code) will be posted on our website.

Leave a Comment | Categories: COSI, Life