Saturday, November 27, 2010

Android: Hacking the lock screen with LiveWallpapers

Toying with making a LiveWallpaper that can display your Google Calendar info (and other goodies) on the lock screen when the phone is locked, and only displaying your wallpaper when the phone is unlocked.

Screen shot 2010-11-27 at 11.27.08 AM

Wednesday, October 20, 2010

DoublePost for Android 1.1


  • Removed Ads!

  • Fixed lots of bugs: Restoring text when hiding app, receiving phone calls, rotating phone

  • New UI colors. Still looks like crap, but I am working to improve it

Tuesday, October 19, 2010

Smart Phones Anonymous

Starting today, I am going to see how long I can go without a smart phone.  My goal is to last till next Monday.. in the mean time I will only be using my work provided cell phone (an LG Vx550).

Wish me luck...

Sunday, October 03, 2010

Android: Introducing DoublePost for Android

I frequently find myself posting an update to Twitter, realizing my genius and creativity, and then posting the same exact message to Facebook.  (After fumbling around in various Android applications to copy and paste).
screenshot2
Twitter for Facebook lets anyone with a public account sync their twitter status to their Facebook status.  That works great, except it only works for public accounts!  Folks (like me) with private accounts need not apply...

Of course various Twitter applications, and web services offer to simultaneously post to Twitter and Facebook, but I dont feel like changing Twitter clients or giving my Twitter and Facebook credentials to a 3rd party website.

DoublePost for Android lets me control which messages I post to both services, and keeps my account credentials safe in my possession.

Available on the Android market for FREE today (ad supported).

qrcode
Quick application to simultaneously post status updates to Twitter and Facebook.

Do you repeatedly post something to twitter, only to use the same status to update Facebook later?

Why give your account information to a third party? DoublePost uses the built-in account verification of both Twitter and Facebook.

Thursday, September 02, 2010

Android: BatteryLastUnplugged 1.3 (renamed to BatteryUptime)

First, a little bit of an Android Developer PSA: Do not lose the private key used to sign your app during your first publication! This key is needed to continuously sign your application before uploading to Google. Keep it backed up..

I am rather embarrassed that I did indeed lose my private key, and there is no way to recover from this.  You have to rename your application, resign with a new key, and reupload to google =(qrcode

Changelog:

  • New slightlier less ugly widget design

  • Code improvements necessary to introduce stats in the next update.

  • Achievement messages! Will show a toaster dialog when you bet your average and best times.



Tuesday, August 24, 2010

Android: Shush 1.4

Version 1.4

- Start on boot

- Fixed notification sticky

- Turned off debug logging

Version 1.4

- Start on boot

- Fixed notification sticky

- Turned off debug logging

- Additional code cleanup

Sunday, August 15, 2010

Android: Introducing Shush

Shush will reduce your ringer and notification volume when your screen is on (who needs to have the volume be super loud when you are right in front of your phone anyway?) and then return the volume to normal when your screen is off.

screenshot2
screenshot1

Available in the Android Market for free.


qrcode

Friday, August 06, 2010

Android: Introducing Baseball Season Standings 2010

Polished widgets for each of the major league teams that show current standings in their conference. - Standing - Score - Games back


Future updates will include wild card standings, overall conference standing widget, and playoff standings.




qrcode
screenshot

Also available in "Mini" for only $0.99!



qrcode
screenshot1



Monday, August 02, 2010

Android: MLB Standings (Preview)

So folks have been commenting on how blatantly ugly my first Android widget is.  I agree.  Its horrible.

But only because I have been focusing every little ounce of creative energy into this widget (Coming Soon!):

mlbstandings_1.0_preview

Pretty cool for all the baseball fans out there :)

Saturday, July 31, 2010

Android: BatteryLastUnplugged V1.2 Released

There was a really nice bug in the first release that would prevent your best unplug time from being saved and displayed.  Unfortunately I went on a whirlwind vacation to the east coast for a week and was unable to publish V1.2 (that hopefully fixes this bug).

Additionally, if the widget crashes (or stops responding) when you install the update, try the following:

- Uninstall widget, and reinstall widget

- Uninstall widget, restart device, reinstall widget.

BatteryLastUnplugged 1.2 is available in the Android Market today.

Monday, July 19, 2010

Introducing: Battery Last Unplugged (Android)

My first public Android application, so be gentle...

I am always very paranoid about my battery usage on my smart phones.  I am constantly checking the Battery settings screen on my Android phone that shows battery usage, and the time since it was last unplugged.

Screen shot 2010-07-19 at 10.37.24 PMSo over the course of a few days here and there, I threw together a simple Homescreen Widget:

Screen shot 2010-07-19 at 5.15.58 PMThe first line is the current AC status of the device (Discharging/Charging).  The second line is the current time since being unplugged, and the last line is your best run time since being unplugged.

I would like to implement more features, such as recording all of your unplugged times and plotting them.

Available in the market for free:

Thursday, March 25, 2010

What does your Droid look like?

Discovered Helix Launcher recently, it seems to be an excellent free replacement to the stock launcher.  Just as speedy, but lets you add dock-like shortcuts to the bottom of the screen.

CAP201003231322



Now if only RemeberTheMilk didn't have a super ugly widget...

Thursday, March 11, 2010

My Top 5 Android Applications

Here are my top 5 android applications and widgets (two separate lists).  In an effort to spread the word about some lesser-known power-user apps, I will try to exclude everyone's favorites, such as RememberTheMilk and WeatherBug.

Applications


1 Handcent


Handcent is a replacement for the stock "Messaging" application on Android.  It literally has too many feature to list, but some of my favorites:

  • Can customize notification options on a per contact basis, and even set custom vibrate settings

  • Can skin to your hearts content

  • Can reply inline to incoming text messages

  • Can quick-compose a text message from within ANY android application


2 SayMyName


SayMyName is a nice little random utility that will speak the name of the incoming caller when receiving a new phone call.  It is overlaid with the ringtone that is being played, but in my experience that is not much of a problem.  You can have it just say the persons name, or configure what it says, such as "Incoming Call from %first% %last%".

3 Gentle Alarm


GentleAlarm is a sort-of a replacement for the Clock application.  In my opinion the stock Clock application is severely lacking in the alarm feature, coming from using an iPhone as a dedicated alarm clock for almost two years.

Once you get past GentleAlarm's rather HORRIBLE user experience, it is easily the best alarm application I have ever used.

  • dock support

  • sleep-cycle optimized to you wake up during light sleep (optional)

  • music, playlists, ringtones

  • silent alarm for school/work

  • very smooth onset of alarm

  • night display

  • flip to snooze

  • optional flightmode at night


4 KeePassDroid


I use KeePassX on my Macbook Pro to track all of my important account information.  KeePassDroid allows me to carry that information with me everywhere on my phone.  Definably a must for me and my smart phone.

5 twicca


I really don't spend much time using Twitter anymore, but twicca seems to be the best currently available twitter app for Android.  It looks great, and covers all of the basic features perfectly.

Widgets


1 Agenda Widget


The stock "Calendar" widget that comes with Android sucks.  What I needed was an agenda style widget that doesn't look like crap.  "Agenda Widget" fits the bill rather perfectly.


2 Power Control Widget (root required)


A widget that gives you quick access to toggling bluetooth/wifi/3g, comes with a rooted ROM.


3 Battery Time Lite Widget


This widget gives you a little battery icon showing remaining juice, but it also places the battery percentage into your notification bar.

Tuesday, March 02, 2010

Migrating from the iPhone to the Moto Droid: Week 1

droid-vs-iphone

I have been using an iPhone 3G for a little over two years, and a year before that I was using a first generation iPod Touch. For those 3 years the iPhone (and its operating system) has been my handy companion, helping to keep me entertained, and on track with every aspect of my life. It _was_ the ultimate smart phone.

I have spent many years using various Palm PDAs and they always left me felt wanting - I didn't know what I wanted, but the iPhone filled that spot perfectly.

I have been completely satisfied until recently, and this week signed up for a new 2 year verizon wireless contract, and bought a Motorola Droid.

What led me to do this?
- iPhone 3G was becoming increasingly slow. (Jailbroken or not). In an effort to speed it up, I restored it to stock firmware and lost 90% of the functionality that is important to me in a smart phone. iPhone 3G stock is useless to me.
- AT&T reception. Where I work, and spend most of my weekends, AT&T reception is poor at best. In most cases it would be faster to go to an Apple Store, buy an iMac, then hand carry that iMac to a starbucks to check my email then wait for the iPhone to find service and launch the email application.
- Boring, and nothing new in sight. 2 years is a long time to have a phone. Last year's update to the iPhone (iPhone 3GS) wasn't enough for me to extend my AT&T contract another 2 years, or plop down $500 for an unsubsidized phone. This last apple event apple announced the iPad. There was no discussion of the iPhone, or even the operating system they share in common. This disturbed me. Concentrate on the product everyone loves, dont split your focus to another product that doesn't solve a problem for me...

What do I want in a smart phone?


The Droid so far does _almost_ everything my jailbroken iPhone could do (and with speed and service). There of course are some gaps.

First, what do I do with my iPhone exactly? What is important to me in a smart phone that I keep with me 24/7?

- Calendar Notifications. I NEED my phone to sync with whatever calendaring system I am using (Google Calendar currently), and even more important I NEED it to notify me of events that are on that calendar. (iPhone: Stock calendar application)
- Calendar Agenda. Again, I am all about calendar support. I NEED to see what the days ahead have in store for me. (iPhone: Jailbroken LockCalendar)
- To Do List. I try to be a very organized person. I like lists. I keep extensive to do lists to organize my life. My phone needs to be able to sync with whatever solution I am using for To Do lists, even if I have to hand write it myself.(iPhone: Things)
- Note Syncing. I write notes about a lot of things that I need to remember. Same as above. (iPhone: simpleNote)
- Easy access to all of my email accounts. I get a lot of email (who doesnt) (iPhone: stock email)
- Real web browsing. I can stand stupid phone web browsers. The iPhone MobileSafari has spoiled me. I need that in a phone.(iPhone: stock browser)
- Reliable phone service. I work on an air force facility. I frequently need to make important phone calls. I need reliable phone service.(iPhone: I wish)
- Music playing. My phone is my iPod. I do not wish to carry multiple devices around.(iPhone: stock mp3 application)
- Terminal/SSH ability. I like to be able to access remote servers that I own at free will.(iPhone: Jailbroken MobileTerminal)
- Customization. I hate it when my phone looks exactly like everyone else's. My phone is mine, it needs to feel like home. (iPhone: jailbroken WinterBoard)

So why didn't I just get an iPhone 3GS and jailbreak it? It's faster than the iPhone 3G, and it meshes with my current environment, BUT the current model of the iPhone 3GS can't be jailbroken reliably. It currently requires to be tethered to a computer EVERYTIME you reboot it. Phones suck, they aren't stable, their batteries die, they get rebooted occasionally. This is a deal breaker for me.

Week 1


Android does everything Google under the box (makes sense). To even activate your phone you have to give it a gmail address.

It automatically sucked down my Google Voice contacts, and it was a chinch to setup Google Voice on it. The market place isn't as plentiful as the AppStore, but it does seem to have a lot of the quality applications covered.

So far I use the following to replace features of my iPhone:

- Handcent. Text messaging application at its finest. This is almost equivalent to biteSMS on a jailbroken iPhone.
- Astrid. Pretty solid to do list software supporting tags and due dates. Doesn't quite replace Things for me, as I rely fairly heavily on the syncing capability. Astrid does seem to sync with RememberTheMilk, so I will give that a whirl.
- KeePassDroid. There's too many passwords for me to remember. On my desktop I use KeePassX (http://keepass.info/ is free and open source for all platforms). iKeePass on the iPhone kind of sucked. KeePassDroid is pretty sweet.
- Haven't found a note syncing solution yet.
- BetterTerminal. Pretty great terminal.

Android lets me configure every notification sound to my content. Everything can have its own noise, no hacking required.

Best part of the new phone so far? The speaker is incredibly louder than my iPhone 3G so I can actually here phone calls and text messages.

I think I will keep it for now....

UPDATE: Three weeks later, I have decided to keep the droid, and even ported my AT&T number to VZW!  Goodbye iPhone!

Monday, November 23, 2009

Scheduled iPhone Sync (OSX)

One of the more annoying things with having a "smart phone" is when its not uptodate with all your stuff.  A few weeks ago I wrote an AppleScript to sync my iPhone nightly at 3:00am every day.

Copy this script into the AppleScript editor, and save to a location on your harddrive.

tell application "iTunes"
repeat with s in sources
if (kind of s is iPod) then update s
end repeat
end tell


appleScript_iphonesyncNext step is to download and install Lingon and setup a launchd configuration to schedule your nightly iPhone sync.  Here are the settings I used:

lingon_iphonesync
Save your launchd configuration, logout and log back in - and enjoy!

Sunday, August 16, 2009

Part 2 of Jeep Build Complete!

There has always been 3ish stages to my jeep build:

  1. Lift it

  2. Get a halftop (makes it look like a truck)

  3. Get huge tires


Well, now step 2 is done!

This weekend Rob helped me install a new Bestop Halftop, which includes:

  1. Bikini Top

  2. Deck Cover (Duster)

  3. WindJammer




Took a few hours to install, but I think it looks awesome.  Took the Jeep for a test drive around Santa Monica to check for flapping, and it sounds like everything is nice and tight.

Now for those tires...

Wednesday, July 29, 2009

Enabling URL Autocomplete in Firefox 3.5.*

Chrome and Safari has this nifty feature enabled by default... as you start typing in the Location bar entries from your history and bookmarks are autocompleted into the field.

Apparently you can also do this in Firefox 3.5, but it is disabled and hidden away in about:config.


To enable this, pop over to "about:config" in Firefox, and toggle the key "browser.urlbar.autoFill" to true.

Monday, June 29, 2009

Interface Builder: Tab Bar Application and children views

This is something that always bothered me while designing an iPhone UI in Interface Builder: When making a "Tab Bar Application", my child/tab views were always messed up, and not rendered the same as what I would make in Interface Builder.


Of course the whole thing was a big neophyte mistake on my part, but I figured I would share my findings for others that have such a problem.


For the sake of this post, I am building an application called "DemoApp", from the "Tab Bar Application" template in XCode.  My UI design in Interface Builder looks like this:




For the sake of this demo, I have also thrown away the default "SecondView" that comes with the template, in favor of using my own custom one as an example.


So how does this render on the iPhone?  Not at all how it looks in Interface Builder...



It took me FOREVER to figure out why my Views were getting clipped, and generally rendered incorrectly whenever I made a custom view to go inside of a TabBarController.  The secret?  On your custom view, enable the bottom bar!



So now your interface should look like this in InterfaceBuilder:




Which makes it MUCH easier to arrange your UI to render correctly inside of a TabBarController.  This little checkbox and my own carelessness caused me much stress and anger towards Interface Builder - hopefully this post will help someone resolve the problem more quickly than it took me!


Thursday, April 02, 2009

I am moving to California!

I have accepted a position with Northrop Grumman Corporation as an Aerospace System Test Engineer and will be moving to LA next week.

Goodbye Rochester.  We've had some good times, and a lot of bad times (that I am looking forward to forgetting)  I won't miss you.



Wednesday, March 11, 2009

Tired of waiting for KeePass to be ported to the iPhone

I use KeePass for all of my password/account management - and it really has made life incredibly simple (and secure).

For just about every online service I use, I now have a unique strong password.  Having so many strong passwords makes it incredibly difficult (impossible) to remember even a handful of them.

There are a few downsides to relying on software to manage your digital account security - and I won't list out the safety implications.

During my brief trip to California the last week I realized that I no longer know the strong password to my professional email account (npike@npike.net) - and thats BAD!  This password is of course stored in my KeePass Database (which is synced to all my computers via an AES-256 encrypted db file) - but I was on the West Coast with no computer, only my iPhone.

Due to KeePass being opensource, it exists for most flavors of operating systems out there - theres even a project to port it to the iPhone (that seems dead :( ).

My life would have been so much easier if I was able to look at my KeePass database from my phone while away from my computers.

I spent the evening today trying to port some of the KeePass C++ to Objective-C without much luck.  For now I cobbled together a crappy solution that should work in a pinch in the future.

  1. Export KeePass Database as an XML file

  2. Encrypt resulting XML file with openssl (AES 256bit)
    openssl enc -aes-256-ecb -in kp.xml -out kp


  3. (Make sure to have a strong but memorable passphrase for the encrypted file).

  4. Delete original unencrypted XML file.

  5. Write stupid script to decrypt encrypted file (pain in the ass to type out the whole command on iPhone)

  6. Add my iPhone's unique SSH key to the authorized key list for my linux box. (See Send your SSH Public Key to each host you use)

  7. Write a lazymans script on the iPhone to SSH to linux box by typing a single letter (Saved as "S" on my path)
    #!/bin/bash
    ssh staging.npike.net -l npike

  8. Profit!


Being the lazy, but creative geek that I am - I now only have to launch the terminal application on my iphone, type "s" - navigate to where my encrypted keepass export is saved, and run the decrypt script above.

Granted, this file will be stale all the time unless I manually re-export it everytime I make a change in KeePass... but should hold me in a pinch until KeePass is ported to the iPhone.

Moral of the story? Make your email account have a strong, but memorable password thats different from all of your other passwords.