Friday, December 30, 2011

Nighty Night, Tasker!

If there's a time where I want something else to do all my work for me, it's right before going to bed and just after I get up. When it comes to my phone, I'm fortunate to have that thing in the form of Tasker. Now, this set of profiles might seem a bit lazy, but why do extra steps I don't need to?

The first part of this has to do with the app I use for an alarm clock, Gentle Alarm. It was the App of the Day on the Amazon store a long, long time ago and I'm glad I took advantage of that offer. I highly recommend it as your alarm clock app for a couple of reasons. First, the gentle alarm function. As I've mentioned before, I have trouble getting up in the morning. Here's the blurb about how Gentle Alarm helps with this:

Alarm clocks can't know if you are in light sleep or deep sleep (those movement based alarm clock don't work) but they can play a very quiet pre-alarm which you will only hear if you are in light sleep. If you are in deep sleep, you will simply sleep through the pre-alarm.

The pre-alarm plays 30min before you really want to get up (you can change that). If the pre-alarm wakes you up, you will be more refreshed than if you had slept until the main alarm because at that time you would have fallen back into deep sleep. Give it a try and I am sure you won't want to miss it anymore.


Now, since shifting to nights, I haven't had much need for an alarm clock. But, I do have to get up early from time to time and can say that it does seem to go a lot easier when I use Gentle Alarm to get me up. Take my anecdote for the datum it isn't. :)

Secondly, Gentle Alarm integrates with Tasker. That will come into play later, though as I want to go over the "Nighty Night" task first. This profile came about due to some weirdness that was going on with my phone. Some nights, not every night, Gentle Alarm would switch from it's darkened Night Mode to regular mode. As the screen was generally at full brightness before I put it into Night Mode, it would come on and flood the room....waking my wife. Not good. As it would occur in the middle of the night when I was asleep, and didn't happen consistently, troubleshooting it was out of the question. I needed a workaround.

I already had a profile set that would silence my phone starting at 11pm, I thought maybe I could integrate the workaround into that. But, in thinking about the various permutations, I wasn't happy with a simple timed launch of the event. For example, I could be up late one night, or go to bed earlier another. An entry that was tied to a specific time just wasn't going to cut it. I wanted more manual control of the automated process (I know, right?) and that's where Tasker's ability to create notifications comes in.



At 9:30pm each night, Tasker puts an icon in my notification area entitled "Nighty Night" (Alert task -> Notify). When I click that notification (State event -> Notification click), it runs the Nighty Night task which sets up my phone for going to bed:


* Turns all of the volumes off
* Sets screen orientation back to "on" (I don't like having my screen rotate most of the time, so I leave it off, but Gentle Alarm works better rotated)
* Reduces screen brightness to 35
* Creates a new notification called "Wakey Wakey"
* Launches Gentle Alarm.
* Enable my Daily alarm that is set to go off at 9am (in case I get to sleep in, more on this later).



So, just prior to going to sleep, I hit my notification, hit the Night Mode button on Gentle Alarm and I'm good to go! Two taps to get everything just how I like it before heading to sleep.

Then, comes the morning. Again, permutations of when I'll get up demanded I have some level of manual intervention here and that's where the Wakey Wakey notification mentioned above, as well as the Tasker integration of Gentle Alarm, comes in. If it's a morning where my daughter gets up well before my daily 9am alarm goes off, I can hit the Wakey Wakey icon and it'll reset everything that Nighty Night sets (orientation, screen brightness, etc). It'll also disable the Daily alarm since I don't need it now that I'm awake. On the other hand, if this is one of those mornings my wife lets me sleep in, when I dismiss the Daily alarm it signals Tasker to run Wakey Wakey instead. This way, no matter what time I wake up, whatever I do first will set my phone up for regular use.



The last thing Wakey Wakey does is put up another notification that allows me to reboot the phone with one click. My ROM of choice on my Evo is MIUI. It's a great and gorgeous ROM, but some of the builds have been a little flaky, so I've taken to rebooting it in the morning each day. With the notification, I hit reboot and by the time I've gotten downstairs and had a swig of water, my phone is again ready for use. Done!



As I said, these are all tiny tasks, but these are the minutiae that our days are made up of. These minor tasks never seem a burden until you figure out how to get rid of them...and then you wonder why you put up with them so long! Tasker..it does a body good!

Thursday, December 15, 2011

The Great Evernote RSS Reader

For years, I've had an on-again off-again relationship with Evernote. As someone who is terminally unorganized (my doctor says I only have 40-50 years left to live because of it), my biggest problem was finding a way to make all of that data ubiquitous so I can manage it easily and everywhere. I'm back on again with Evernote, primarily due to the introduction of their Chrome extension, Clearly.

For some time, I'd used Readability as a way to get the data I wanted into whatever I was using as a note-storage vault. Using the Readability bookmarkelt, I could easily trim pages from ad-flashing, comment-choked nightmares into slim documents containing only the information I cared about. Someone had even combined the Evernote Clipper bookmarklet with the Readability one making for a one-click solution. But, it never really worked perfectly and, as stated before, Evernote never had enough love from me to make it long term.

But, Clearly DOES work extremely well! And because of it, I've taken another hard look at Evernote and have fallen in love with it. I'm inside this tool every day now, sometimes 5-6x each day...either updating my journal or trying to get the hundreds of notes I already have squirreled away into a neatly organized mess.

As with most tools, once you start power-using it, you start to see the potential to use it to solve other, apparently unrelated issues. Such is what lead to this idea I'm about to outline...

As with most geeks living in the 21st century, I suffer from information overload. I'm subscribed to about 50 different sites via their RSS feeds and use Google Reader to keep up with it all. But, I've found the way I do things to be too slow and cumbersome. My primary issue is with Gawker sites like Lifehacker and IO9, the two sites I feel compelled to visit every day. I have no idea what the issue is with these two sites, but I can have Chrome open all day long, with dozens of tabs generally in view at any time. The instant I open more than two pages from Gawker, my whole machine crawls to a halt.

Now, it's very likely it's some combination of my extensions and the proxy at work as I don't experience this issue too often elsewhere. But, seeing as most of the visiting of these sites occurs when I'm in between tasks at work, it's a pain in the ass I had to find a solution for. I also had the problem that it might not be something appropriate for me to read at work, so I'd fill up my inbox with things to read later...and then never get to them.

Additionally, if I find an article I like, I'm likely to want to save it. Since coming back to Evernote full time, I've been using Clearly to snip them up. If what I want is going to end up in Evernote anyway, it seemed to make some kind of sense to just figure out a way to eliminate the middle man.

And that's where If This Then That comes in. IFTTT is a site that will automate your social media for you. For example, I've got a task setup that will fire every time I post a status message on Facebook and send it to me as an e-mail. Since Facebook's search leaves a lot to be desired, plus I wanted to have an archive of things I posted there, this process makes my social network history much more manageable. (Recently, I've started switching these tasks over to put the items in Evernote instead of sending an e-mail.)

The secret sauce in this task is IFTTT's ability to react to an item being starred in Reader. When I do that, IFTTT posts that article into an Evernote notebook named RIL (for Read It Later, see what I did there?). I can then go in at my convenience and just read the articles in Evernote. As an added plus, they're already in Evernote, I just have to drag articles I want to keep into the appropriate notebook when I'm done reading. Or, if I don't want to keep it, I just delete.

One last tidbit: most sites will only post a summary of an article in RSS. Some, like Lifehacker, will offer the full articles on a separate feed. If they don't, you can try WizardRSS. It's a site that will pull full articles instead of summaries from the site and give them as their own RSS feed. It doesn't work on every site, but it gets enough of them that I watch each day.

I've been using this method for about a week and a half now, and I have to tell you it's made my RSS surfing so much more efficient. For example, when I'm done looking through a particular site's articles, I always mark the whole site as read so I easily know what's got new stories when I come back. The problem is, if I found an article that I had the slightest interest in but didn't want to read it at that time, I'd just leave it unread in Reader. Messy, messy! No more, I've moved all of those waiting to be read articles into Evernote and I'll get to them when I get to them.

Now, Reader is generally empty except for the few new items. I can scan through all of my feeds in a matter of minutes and star just the items I MIGHT want to read. I can then read them on my phone or computer at my convenience. I gotta tell you...it's made me so efficient at getting through my news I run out everyday and that's something that's NEVER happened before!

Friday, May 27, 2011

More Tasker tricks

Continuing the theme of automation with Tasker, I've come up with a couple of new things to share...

Damn you, autorotate!

For the most part, I use my phone in portrait mode. It's just the most comfortable way to hold such a device. I think that might have something to do with why they made it that way. :) But, there are a lot of times landscape's a better fit for what you're doing...like Angry Birds. And, maybe some web sites.

Now, if you're a portrait kind of guy like me, you might find the phone's auto-rotation feature to be a bit of a hassle at times. Like, when I'm using Navigation and it switches because I put the phone down on the seat next to me and now I can't tell where I'm supposed to turn because the damn thing's too narrow to display the road far enough ahead. I could turn off auto-rotate, sure. But, then I lose the functionality in those few apps where I actually want it. Oh, the quandary!

Then, the other day, I came across an app called Smart Rotator which provides a solution: it toggles auto-rotate on an app-by-app basis. Nice! And, it works pretty well. Unfortunately, it's yet another thing I need to have running, so I decided to do some poking to see if I could mimic the features using Tasker. Fortunately, it couldn't be easier.

First, I created a new Tasker profile in the App Launch context (the little rocket ship icon). I chose Dolphin Browser HD and Calculator as the apps to watch for. Then, create a new task called "Turn On Rotate" and select Display - > Display Rotation -> Set to On. Save it. Create an Exit Task called "Turn Off Rotate" and repeat except change it to Set to Off. Then, tap the Menu button, then Settings -> Display and uncheck Auto-rotate screen.

Now, auto-rotate is off by default, but when I launch my browser or calculator it's available. When they close, it goes back to off. I chose Calculator just to show you could configure multiple apps with just one profile. If I find another app that I want to be able to auto-rotate, I just go in and edit the profile.

Don't Track On Me!

Recently, I switched over to CyanogenMOD 7 on my Evo (love it!). There is, however, a bigish bug on the Evo in the version I'm using: GPS can't keep a lock properly. There are workarounds and a solution that worked when I put CM7 on my wife's phone, but not on mine. For the time being, I've found my own workaround:

Create a new profile in the Event context (the orange triangle) and call it Display Unlocked. Then, Display -> Display Unlocked. I set the priority to Normal and haven't had any issue. Create a new task called Display Unlocked (I like originality). Misc -> GPS -> Set to On. Create a second profile in the same context, but call it Display Off. Then, Display -> Display Off. I'll leave it as an exercise to figure out what to do for a task. :)

So, now, when I unlock my phone, it turns GPS on automatically and turns it off when I've turned the screen off. This has actually worked quite nicely and I haven't had any complaints about GPS since. The one drawback is Google Latitude doesn't work as well. However, as I'm constantly checking my phone anyway, it seems to keep me mostly up to date. Plus, no tracking by the feds! Double-win!

My Dynamic DNS Hack

After the GoDaddy CEO mercilessly and needlessly slaughtered an elephant for his sick amusement, I decided to take advantage of the offer in that article and switch my domains over to Namecheap.com. Aside from no longer supporting a company whose CEO should have his stepped on by that elephant's mate, I've gained some nifty benefits by switching to NameCheap (Not the least of which is better service at a lower price! Seriously, switch. You won't regret it.) One of them is dynamic DNS.

A little background: dynamic DNS is a service that allows you to assign a host name to an IP address that's constantly changing. A lot of folks use dynamic DNS so they can get to their home machines without having to worry about their ip address changing regularly.

The service I've used for years is No-IP.com, and frankly I have nothing bad to say about them at all. I've always had reliable service from them and have never had to contact them for support. It's a service that just works. That being said, if my registrar is giving me free dynamic DNS service along side my basic registration, well it just makes sense to try and migrate to that!

There are a couple of apps in the Market that will perform as client for your dynamic DNS provider, but none worked directly with Namecheap.com. But, as I thought about it, I realized here was another chance to find my own solution. Unfortunately, it wasn't as elegant as I'd like, but it works more or less the way I want. Perhaps if it becomes irritating enough, I'll fix it up further...

First, a caveat: I'm not sure how much of this would require you to have root access on your phone. I've gone through it again in my head, and I don't think there's anything below that needs special permissions. But, if it doesn't work on your first try, that might just be the reason.

The first piece you'll need is the Scripting Layer 4 Android. The SL4A is a great little project to bring a number of scripting languages to the Android platform to make it easier to develop things like...well, this! At current count, it supports Python, PHP, Ruby, JavaBeans and shell scripting, which we'll be using. Follow the instructions at the link to get it installed. Since my solution just uses a shell script, you don't have to install any other interpreters just yet. Fire up a text editor on your machine and copy in the following:


#!/system/xbin/bash

source /data/local/tmp/ipaddress

test=`netcfg | grep UP | grep -v 127.0.0.1 | awk '{ print $3 }'`

if [ "$test" != "$ipadd" ]; then

domain="domain.com"
username="canbeanything"
apikey="namecheapkey"
hostname="mobile"
hosturl="http://dynamicdns.park-your-domain.com/"
command="update?domain=$domain&username=$username&password=$apikey&host=$hostname&ip=$test"

url="$hosturl$command"

wget -q -O- $url
echo ipadd=$test > /data/local/tmp/ipaddress
fi


If you've been following along with other articles, you know that I've got Tasker profiles which disables the mobile radio when wifi is on and vice versa. As a result, the above script is a bit quick-n-dirty as it assumes there's only one radio on at any given time, and thus "UP". You'll have to do some tweaking if you don't have your phone setup like mine.

So, what does it do? It reads a text file I've created that simply contains the line "ipadd=192.168.1.1" (or whatever the IP was the last time it ran). It runs the netcfg command which is similar to Linux' ifconfig command. It finds the line for the interface that's up and not the loopback connector and snips out the IP address it finds. It then compares it with the one that's in the text file. If they match (which means the current IP at Namecheap.com is most likely what's currently on the phone), it does nothing. If they don't, it builds a url and uses wget to ping it. Namecheap.com will then update their records.

Note: I am specifically pushing the IP to Namecheap because if you don't they use whatever IP the request comes from. As a result, when I'm at home on my NATted network, it'll use the IP of the external interface of my router and not the internal IP I'm using on Wifi. Part of the reason I'm setting this up is to automate some tasks at home to push stuff to the phone, so I need the right address there.

So, what about Tasker? Remember the GPS hack you read about 2 minutes ago? We're going to leverage that. Edit the task for the Display Unlocked profile and add a new item. Plugin -> SL4A. Yes, SL4A has been kind enough to give us a Tasker plugin! Hit the Edit button and select the script above. Done! Now, when you unlock your phone, it'll update your IP if need be. A rockin'ly simple solution that seems to work just spiffy!

Hopefully, these will inspire you to try some new stuff with Tasker you hadn't considered before. If you do, drop me a line below and tell me about 'em!

Thursday, May 5, 2011

Sprint/Google Voice - A match made in hell

Last week, Google & Sprint announced the release of their much anticipated integration of services. Google Voice is a fairly cool service that's been around for a few years. It got its start from another company under the name Grand Central and was eventually snatched up by the Googlemonster for inclusion in their line up. With the service, your phone number becomes a lot more flexible. Some features I was looking forward to:


  1. Multiple receiving phones can be setup to ring when someone calls your Google Voice-based number and can pick up any one to answer. This was a feature I was looking forward to using most. I could setup my desk phone to ring along side my cell when called. So, if I was sitting at my desk and someone called my cell I could pickup the headset for the desk phone and talk to them. It's even possible to setup Gtalk on your desktop as a receiving phone


  2. You can specify which times you would like calls to make it through to your phone. So, you could setup a "quiet" time after 11pm where your physical phone doesn't ring and all calls are shunted through straight to voice mail. You can also specify certain numbers always get through and others never do. Useful for telemarketers or your boss having your number and trying to reach you on the weekend.


  3. Voice mail is transcribed to text (albeit very poorly) and sent right to your e-mail inbox to read.


  4. You can make international calls through GV very inexpensively



Some cool stuff, right? The drawback was you had to get a new phone number from Google that you'd have to give out. Now, if you were in the process of getting a new phone and for some reason needed a new number, no biggie. Just get the GV number, point it at your cell and never give out the actual cell number. This was also useful pre-number porting days as you could always have the same number. But, if you're like me and have had your number for 15 or so years, that wasn't a great option.

The Sprint/Google Voice integration allowed you to simply use the number you already have from Sprint as your Google Number. With a few clicks, everything you already have in place just gets a ton of new features and flexibility. At least, that's the theory...

The first issue I ran into was I simply couldn't do it at all. Apparently, there's a feature called "Google Voice Lite" where you simply forward your voicemail to Google Voice, but don't have any additional features beyond that. I had been using Google Voice Lite when I had my iPhone, but didn't know it was considered a different service. When I went in to activate the integration, I didn't have any of the options the announcement said I should. It showed I was using a Sprint phone, but wouldn't give me the option to integrate it.

So, I figured I'd just delete the phone and re-add it and see what happened. No go. I was told I needed to have at least one physical phone listed. Okay, I'm at my desk, I'll add my desk phone, delete the cell phone and re-add. No go. When I tried to add the desk phone, it showed up, but I couldn't do anything with it. Even the Edit and Delete buttons underneath were non-clickable text. I couldn't even get rid of any phone I added!

After a day or so, the answer finally popped up on the Google forums regarding Google Voice Lite. Apparently, I needed to click the link that said "Get a Google Voice number" (which was right next to what was listed as my Google Voice Number) and I would be asked to upgrade my account to full Google Voice and get it integrated. Google's #1 problem: they really don't seem to have a full grasp of the English language. There were NUMEROUS posts on the forums about this problem, and it was almost a week before someone bravely clicked that link and figured it out.

Great, this seemed to work. I got the options to integrate, followed the process, Google Voice called me to authenticate, I gave the code and seemed to be good to go...until I clicked the Continue button. At that point, I was told there was an error and to try again. Which gave the same error, again and again. You can't even get rid of the error message, you have to close your browser (or the tab) to get back to Google Voice.

In order to be complete and verify what my status was for this article, I decided to call my number and leave a voice mail...nope! I can't even leave myself one. Apparently, now my fiddling with Google Voice has disabled even the Google Voice Lite capabilities. Update: I decided to play around a bit further and requested a new Google Voice number. I was then able to add my cell phone back into the mix as a receiving phone which reenabled using Google Voice on it. Phew!!

This is a huge fiasco. The forums, both at Sprint and Google are rife with complaints from people having these same issues. The biggest problem being faced by folks, it appears, is they're getting some kind of discount on their Sprint plan. That would be consistent with my problem as I get a discount through my employer. What bothers me is *I* pay for my plan, not my employer, so why should it matter?

According to one Sprint employee who's trying to help out, the decision was made to block discounted employees because some employers might not want third parties having access to "their" info. Even if this is true, it's an absurdly stupid reason to unilaterally block all discounted customers. It's an indication of pure laziness on the part of Sprint.

So, if you've tried to setup integration of Google Voice and Sprint, and didn't have any luck, I recommend you stop now before you make things worse. It's one thing to experience issues as an early adopter, but complete showstoppers are the last thing I should expect. At the very least, the error messages should clearly state the reason for the failure and not some generic "oops, broke!" message.

It also points to a significant flaw to using Google as a provider for any critical services: they don't have ANY customer support at all. If it's broke, there's no one you can call to get it fixed. You can call Sprint, of course, but they're just going to blame Google (as they did the first few days of this debacle).

It's sad to see two companies who really seemed to have "gotten it" get it so completely wrong.

Tuesday, April 26, 2011

Resizing Firefox

In my last post, I talked a bit about my migration to Firefox 4 and some of the extensions that generally follow along with me. Today, I want to discuss some of the tweaks I do to the interface to make it more usable.

On of the changes to the technology field over the last couple of years has been the migration of computer monitors to widescreen format. While not ideally suited to use in this manner, there's a very simple reason we're forced to have them: HDTV. As the television and film industries move to widescreen, manufacturing of monitors has had to follow as a matter of course. Or, cost, really. The same companies that make TV screens also make computer monitors and it costs money to build LCD/LED/Plasma screens in a variety of formats. The fewer formats manufacturers have to deal with, the lower costs end up being.

The fact that they're not really what consumers want really doesn't come into play. If they're the only option available, then you'll buy them. And, so, we're stuck trying to scroll around the screen to read the entirety of a webpage or Word document that's formatted for a taller screen. Such is life, this is where we are, so let's make the most of it.

A lot of sites have been sizing up the latest offerings from the browser producers and judging their screen real estate usage and evaluating them primarily on their vertical usage of space. If I recall correctly, in the latest offerings, Firefox 4 is the current winner. It apparently undercuts Google Chrome, the former champ, by some 3 or 4 pixels! Whew! I can almost read the top half of one extra sentence with that!

While it's nice to see that Google, Mozilla and Microsoft are all taking into account screen ratios now, it's always been kind of a moot point for me. After all, I've been taking it into account since I got my first widescreen a few years ago and came up with my own solutions by tweaking Firefox. The solutions below are not possible with Chrome or IE because their layout is pre-determined. Firefox is the only browser that gives me the flexibility I need to size things properly.

This is what my browser looks like:



The Basics

For some reason, there are folks out there who love Firefox, but don't want to add extensions to it. I can grok wanting the absolute fastest browsing experience you can try to muster, but I just think you're missing out on so much! Oh, well, this section can be for them.

The first thing you'll notice in my screenshot above is I've reduced the number of toolbars on screen to just one. This is easy enough to do, simply right-click on one of the buttons on your toolbar (such as the big Back one) and choose Customize. You can drag bits of the interface around, as well as remove some. The first thing I do is get rid of the Search box and Back/Forward buttons.

Losing the Search box isn't a big deal if you use Smart Keywords to search from the address bar. I've got a few of these setup so, for example, if I want to do a Google search, I type "g" in the address bar and follow it with my query. Similarly, I have one setup for Google Image search, Bing, Dictionary.com, Wikipedia and a few others. I also have one for Google Maps to get directions easier. With these, I really have no reason at all to have a Search box taking up space.

Not having Back/Forward buttons might seem a chore...unless you read about FF Rocker in my last post. :) The goal is to get rid of items on screen that can be actioned using some other method..

Once I've subtracted, simply move the Address Bar up into the menu Toolbar followed by the widget named Bookmarks Toolbar Items. Things might be a bit cramped at this point, so you might need to make some additional changes. By default, the Address Bar is a bit wide for this setup. So, we need to find your Firefox profile. This is the directory that contains all of your personal settings for Firefox. This article describes nicely how to locate it. Once you've found it, you're going to want to go into the chrome directory (create it if it doesn't exist) and modify userChrome.css (again, create it if it doesn't exist. userChrome.css is a configuration file for aspects of the interface. I haven't done much twiddling, but two changes I do make:

#urlbar, #urlbar-container {min-width: 500px !important; max-width: 500px !important;}
#star-button {display:none !important;}

The first one sets the minimum and maximum widths for the Address Bar to 500 pixels. For the most part, the only bit of a URL I generally care about is the domain, and that generally fits within those 500 pixels. There is an issue with the new "encrypted page" indicator in later versions of Firefox. This takes up a wide part of the Address Bar to show you the domain the certificate is for. Sometimes, if the domain name is long enough, it'll take up most of the Address Bar, but I've never encountered a time where I thought "damn, my Address Bar just isn't wide enough" at 500 pixels.

The second entry removes the star button from the Address Bar. This button is used to bookmark a page, but I keep my bookmarks in Google Bookmarks, so hardly ever use it. Better to use Ctrl-D to bring up the bookmark tool than waste some space.

Speaking of bookmarks, you'll notice my Bookmarks Toolbar is fairly sparse with just favicons
representing most sites. To get a slim and trim Bookmarks Toolbar, simply go to the properties for each of the bookmarks and remove the Name. Very few sites these days don't use favicons, so you can always identify them without their name next to them.

You might also notice the folders on the Bookmarks Toolbar. I do have a number of sites I hit on a daily basis that don't have RSS feeds. My morning routine consists of hitting the "M" folder (for morning), going to the bottom and hitting the "Open all in tabs" link. This does as it says and all of my morning news is available for me to peruse in just a few moments. In the afternoon, there are some sites I hit that are specific to that timeslot. Hit the "A" folder (guess what that stands for) and do the same. The remainder are either work related or something I like to keep handy, but don't want to waste an icon on the toolbar.

Extending It Further

While the above can go a long way to trimming Firefox down vertically, there are still some cool things you can do with extensions to really bring it down to size. The one item that's taking up the most space at this point is the Tab Bar. Really, why do we need it along the top? Because that's the way we've always done it? This is where Vertical Tabs comes into play. There are a few options in the add-ons mart, but this is the only one that works with FF4. That's okay, though, because I've tried a few of the others and they add a lot more features than I really needed. I wanted my tabs on the side, that's it. With the tabs off to the side, it actually feels a bit more natural. After all, look at Windows Explorer (not Internet Explorer). Are the panes divided up top and bottom? No, they're next to each other. When you go to a site, navigation menus are typically on the side, and so on. It really doesn't take much getting used to once you install it.

Since you've squinched as much as possible into your menu bar, it's probably looking a bit crowded, right? Well, why not trim out some of the things you don't use as often? When's the last time you hit the Help menu? The Edit menu? Okay, some folks might still like that one, but I know how to hit Ctrl-C and Ctrl-V, so very rarely use it. :) Since the only bookmarks I store locally are on the toolbar and I'm using Ctrl-D to bookmark new ones, do I really need the Bookmarks menu item? Nope, so off they go thanks to Menu Editor. Trim your menus down how you like, but I've gotten rid of everything except File, View and Tools. It may seem a radical surgery, but the patient and I have been doing fine for ages now. :)

About the only change left at this point has already been done for you in Firefox 4: getting rid of the Status Bar at the bottom. Most folks seemed to like that change, some didn't. There's an extension called Status-4-Evar to get it back if you really like it. I haven't had much complaint working without it so far.

So, that's it, my slim, trim Firefox 4 setup. On a widescreen monitor, I get as much space devoted to browsing as I possibly can, and didn't lose any functionality. In fact, usage is generally improved some. Got any tweaks you know I might've missed?

Friday, March 25, 2011

A new day, a new Firefox

Firefox 4 was released to much fanfare the other day, and I decided to give it a shot. Since I only use the Portable versions of Firefox (more on that later), it's an easy enough thing to give new versions a try and if I don't like them I can wait until they get better. So, I hit the Portable Apps site and sure enough there was the release version of FF4.

On first launch, performance seemed to be noticeably faster than 3.6.13, the previous version I was using. Opening Gmail was near-instantaneous and other sites just popped into view as soon as I finished typing the URL. It only took a few minutes before I decided this was worth checking out further, so on to the next most important step: are my extensions available?

One of the main reasons I use Firefox is the customization through extensions. If the extension author hasn't updated it, that usually restricts if I'm going to move to a new version of the browser or not. This isn't true of all of them, but I do have a suite of "core" extensions I require at all times:

The "Musts"


Adblock Plus

I'm an American. I want everything, and I want it for free, dammit! :) I get it, sites use ads to generate revenue. Some generate a lot of revenue from them, but those sites typically have so many ads on them their content is almost unusable. Adblock Plus does a great job of preventing any ads getting through to my eyeballs. I believe it also helps a bit with security, as it blocks those popups that people click on that install malware...

CommentBlocker

A recent addition. The Internet has often been described as a morass of lies and misinformation. Personally, I think that's a bit overboard. It's not the whole Internet, it's just the comments on most sites. The comments sections of science sites are overrun by anti-science right-wingers hell bent on setting fire to the planet. Those on IT sites are full of ignoramuses who delight in their ignorance of "off" and "on". I always TRIED to not get pulled in to the comment madness that exists at the bottom of every article. But like looking through some kind of Lovecraftian portal, just glimpsing them sucks any sanity right out of my head.

CommentBlocker is your defense against the babbling of the Old One's minions. It literally eliminates the comments section from practically every site I've been on since I started using it. The Internet is a quieter, saner place because of this fantastic extension. If there's a site where you want to see comments, though, it allows you to whitelist them (you can also temporarily whitelist a site while you're looking at it by hitting a button in the address bar). Interestingly, if you run a Wordpress site, it'll actually block the comments administration pages on the back end, something that left me scratching my head for a few minutes when I first encountered it.

FF Rocker

A lifetime ago, I was a fierce Internet Explorer user. In fact, it wasn't until deep into the Firefox 2.x life cycle that I finally switched away (because of the extensions). I didn't use IE by default, though. I used a "skin" called AvantBrowser that added many useful features to my then-beloved browser. Most notably was tabs. Opera Browser was the first to fully implement them, but I found their initial offering clunky and annoying. Avant's implementation seemed to work a lot smoother and wasn't a huge deviation from my current browsing habits.

But, one of the features Avant had that still influences my choice of browser to this day: rocker gestures. In fact, I would say that if I couldn't add this feature to a browser, it would be a showstopper above all others. Once you use it, and get used to it, you just can't live without it. This feature allow you to do away with the Forward and Back buttons. Normally, if you want to go back, you have to move the mouse up to the top of the screen and hit the back button. A minor gesture, yes, but they add up. With rocker gestures, if you want to go back, hold down the right-button on your mouse and hit the left one. If you want to move forward, hold down the left button and hit the right. The mouse is the primary browsing interface and being able to navigate without extra effort just makes things easier.

Trust me, I know how silly it sounds, but if you've got FF, install FF Rocker and try it. After a month, see if you can use a browser without it. :)

The "Shoulds"

Those are the big three. Without them, there's no point in my moving to a new version or browser. They're so ingrained into my browsing habits that without them the web is an annoying, slow to navigate, flashy place with no purpose. This next set represents those that I COULD live without, but would prefer not to. They make browsing more pleasant and safer.

Greasemonkey

The techie's favorite extension. Greasemonkey exists on the premise that regardless of how a web jockey wants to present information to you, how it's ultimately viewed should be up to you. Using small scripts, a trove of which can be found at Userscripts, Greasemonkey will modify how a particular page will act or display in your browser. For example, a lot of people hate the new layout used by Gawker sites like Lifehacker and io9. There exist Greasemonkey scripts that will modify how those sites look to conform more to what is the norm on the web. Nothing changes at Gawker's end, they still think you're seeing their site as they intended. Everything happens at your end.

Beyond visual tweaks, Greasemonkey scripts can add new features or make some sites more usable. For example, there are scripts that can automate the playing of games on Facebook or allow you to download videos from Youtube. One of my faves blocks Flash animations on sites from auto-starting until I tell them to. Another converts any URLs found on a page that haven't been made links by the site's author into clickable links. No cutting and pasting these anomalies. If you like everything "just so", Greasemonkey might be one for you.

IE Tab 2

My workplace pretty much supports IE only. Our internal intranet is fairly biased toward that browser, and no amount of fiddling will get some of them to work at all in Firefox. I could launch IE every time I need to go into one, but I usually have a browser open, so why bother? IE Tab embeds an IE instance in a Firefox tab when you need it. You can setup rules so that any time you go to a particular site or domain, it'll automatically load that page in an IE tab rather than a Firefox one. It's a great little hack to work around those who don't grok the web is supposed to be cross-platform.

Note: there are a number of variations of IE Tab in the extension database. I've found IE Tab 2 to be the only one that consistently works well. Others I've found will lock up the browser on certain sites, others just won't load at all.

HTTPS-Everywhere

A recent addition, and one that will probably move up to the "Musts" category eventually, this extension is from the Electronic Freedom Foundation. There are a number of sites, such as Google, Facebook, Twitter, Yahoo, etc, that contain a large portion of our personal information, yet all of that information is sent back and forth from site to browser over the Internet in clear text. Anyone can intercept your communications and snoop on what you're doing. Some sites have started forcing encrypted communications in recent years (like Gmail), but others have not. A recent exploit, Firesheep, would allow a hacker to sit in his local Starbucks and capture the logins of the other patrons quickly and easily.

Ironically, most of these sites already have the ability to encrypt all communications, but it's not turned on by default. What HTTPS-Everywhere does is force the browser to only use encrypted communications with the sites it knows supports it. The hope is that all sites will someday encrypt every bit of communication. Until that time, this extension will protect you on quite a number of sites.

LastPass

Another recent addtion. I have to confess, that even as an IT pro I'm terrible when it comes to password management. I have a suite of 5 or 6 different passwords I use for different things, and then end up using them everywhere. I've tried this tool and that software, but nothing was ubiquitous, cross-platform and seamless enough for me.

LastPass is a univeral password manager. It integrates into your browser, and on Firefox even replaces the built-in password management system. There are apps for every portable and desktop platform, or you can simply go to the website if you need to get a password when away from your own equipment.

After reading so many articles about LastPass on Lifehacker, I finally decided to weigh the odds...after all, in order to use LastPass, you have to hand over all of your usernames and passwords to someone else to secure for you. That's a huge risk! But, I weighed that against the infinitely less secure method of failing to maintain good password management myself and decided it's the lesser of two evils.

So far, I've been very happy with the service and how it works. It even has a password generator, so when I sign up for a new service I generate a completely new password for it. LastPass stores it and I never know what it is. Easy-peasy!

The next category I'm going to cover are some minor additions I like to have, but also the significant tweaks I make to the appearance and configuration of Firefox itself to meet my needs. But, I'm sure you're as tired reading this as I am writing it. :) Hopefully I'll be better about the follow-up than I have been with others!

Tuesday, February 22, 2011

It's time to build a word: I-R-O-N-Y

I'm a parent, and as such I have a genetic obligation to my daughter to be as biased in her favor I can possibly be. That being said, when I tell you that she's the smartest kid that's ever walked the planet you can take that as fact and not just opinion. Everyone says so, you can ask them!

My wife and I can claim some credit for that. We both spend a lot of time with her, exposing her to as many new things as possible and reading to her every night before bed (and afternoon before naps!) We don't push her like some parents do, we strive to make learning fun and to capitalize on her innate curiosity.

We also made the decision before she was born to eliminate cable from our household. Partially it was a financial thing. My wife & I each watch about 3-4 hours/week of TV regularly, but then had it on babbling in the background as we did other things. We certainly weren't getting $100+/month worth of value out of it! With Hulu, Netflix and other online services streaming programming into our house via the Internet, we decided to just cut the cable cold turkey and have not regretted it one bit.

Okay, I'll be honest. I desperately miss the Science & History Channels, but that's about it. The rest of it...meh.

Without cable, it's been really easy for us to manage what our daughter watches on TV and to eliminate all of the "adver-programming" that's normally directed at young pre-consumers...sorry, I meant kids. Sure, she got mass market stuff for a while. "Yo Gabba Gabba" remains a staple on our list, and we have actually spoiled her by booking a 5-day weekend trip to Toronto where she got to attend a YGG concert AND get to go back stage to meet them all. (Which was followed up by a second concert here in Rochester where she got to do the same. We're suckers, what can I say?)

But, while there might be a lot of mass marketing associated with YGG, we're convinced it's still a reasonably good educational show. They do teach a lot of value lessons and basic skills, but they really get the kids excited about music, not to mention getting them up and dancing.

She's also a huge fan of "Kipper" and "Charlie & Lola" which is why she often speaks with a British accent ("But, Dahddy...I cahn't!"). These two don't provide much in the way of edutainment, sure, but they also don't typically go out of their way to insult her intelligence either. Probably has to do with not being from Hollywood or something...

As she (quickly) approaches three, her tastes have expanded some and so we've also expanded what she gets to watch. We found "Sid the Science Kid" first. How many two and a half year old do you know that can talk to you about "reversible change"? It's a great little show that covers the basics of scientific inquiry in a way that's really accessible even to someone as young as her.

But, her new favorite: "Word World". A great little show in which all of the characters and most physical objects are made up of the words that represent them. So, Duck is actually made up of the words D-U-C-K. Meant for kids 3-5, it introduces the concepts of letter-sound connections in a fun way that she's hooked on.



Which brings us, finally, to the point of the article as it was this Saturday, February 19th, 2011 that we realized she was starting to "get it". When I asked her "What sound does an 'A' make?" she responded appropriately. As I quizzed her on 8-10 other letters, she got all of them correct! She's not even three yet! Yes, I know, being able to read at a young age isn't a guarantee of future success, but it don't hurt none, either!

And the irony? That was the same day the "fiscal conservatives" decided to slash funding for PBS. Did I mention "Sid the Science Kid" and "Word World" are products of PBS? Did I really need to?

Sigh...I get it, I really do; spending is out of control. I'd love to ignore the fact it's these same "fiscal conservatives" that do most of the spending. I'd love to ignore they're the ones behind all of the debt they seem to be so angry about. I'd also really love to ignore that they've reduced the tax revenue by making sure the very rich and corporations no longer have to pay their fair share of taxes.

I'd love to ignore all of these things, but that's the right's job: downplaying their failures and shenanigans or blaming them on others. Because, that's what this is all about. It's not about reducing spending, it's about eliminating those broadcasters that really DO provide a "fair and balanced" view of the news. The problem with reporting news in that way, though; it makes the right look bad.

Actually, I should clarify...the right does a great job on their own of looking bad, the "liberal media" just reports it.

My daughter will suffer if this budget is allowed to pass. Not just because of PBS, but due to the cuts in science, research and education that have gone along with it. It's all part of the right's 30-year plan to "starve the beast" of socialism. The socialism, that is, that benefits only those filthy, stinking poor people. They not only left the military's budget alone, the increased it by a billion dollars! (The cuts to PBS were about $420 million.) It now amounts to over 50% of the Federal budget, but not one member of the right will even discuss the possibility of slashing that bit o' socialism at all.

It's not just my daughter, though. For some of the more remote and rural areas, PBS is the closest thing to an early education a lot of kids will get. My heart aches that there are parents who won't get to experience the joy of their three year old reciting her phonics. It sickens me that the one media outlet that doesn't exist solely to generate revenue for shareholders is the one that's slashed. Where are kids supposed to get programming that isn't designed as, well...programming? Because that's all kids programs on the commercial networks are: advertising vehicles for merchandising.

It needs to stop. And, if you think the solution is the spineless cowards in the Democrat party, you're out of your mind. There is no easy solution, but to quote Einstein "you cannot solve a problem using the same thinking that created it in the first place." We cannot get this sinking ship we call a country afloat by voting in the same yahoos over and over again. It's time for a real change, and quickly.

For now, there's not much we can do. The budget moves on to the Senate where the Dems do hold the majority, so it should stop there. But, we can't just assume it will. The Dems had control of the House and Senate for two years and failed to deliver on a single thing they promised. We can no longer assume those on either side are on OUR side.

You can head to 170MillionAmericans.org and get info on contacting your Senators and reminding them of their duty to the American people, not the American corporations. I recommend printing out the suggested letter to your Senator and mailing it in (dropping it off in person would go a long way to making sure they know you mean business, too!) At the very least, get an e-mail to their office. The more responses they get, in theory, the more likely they are to lean in favor of what the people want.

Yeah, I know...but we have to try. Right?

Tuesday, February 1, 2011

Too much automation? Ain't no such thing!

As I blogged previously, I have fallen in love with the app Tasker on my Android phone. One day I'll get around to cleaning up my profiles, exporting them and posting them here for the benefit of others, but for now I want to talk about an interesting comment a coworker said to me the other day.

I've been playing around with Tasker's Orientation context. Basically, it's Tasker's interface to the accelerometer. You can trigger events to occur based on what position the phone finds itself in. When I told him about some of the things I'd been playing around with, he responded, "Just so we're clear, there IS such a thing as TOO MUCH automation, you know!"

Sorry, Kevin, I've never seen it.

The experiment started, ironically, as a way to minimize the annoyance of those I work with. Last week I got a text while sitting at my desk. My phone was on the desk next to me, and the volume was set to max. I'm getting old, I keep the volume up most of the time so I can hear it. My coworkers would always comment because the notification tone for SMS on my phone sounds like it should be followed by some ancient wisdom from Mr. Miyagi (for my Android brethren and sistren, it's "Chiff"). I took it onto myself to try to always turn down the volume when at my desk so I didn't disturb the others, but then I thought "why am I doing this all myself!?"

So, I started looking at how I use my Evo and how I could further tailor it to my immediate needs. Solving the problem at the office was easy...I setup a task that says "If the phone is face down, turn all of the volumes (Ringer, Notification and Media) down to '3'." Since getting my first smart phone, I've gotten into the habit of always putting it down face down to protect the screen. The habit's already in place, and now the phone responds to it!

This wasn't a perfect solution off the bat, and did need a little bit of tweaking. For example, if I put my phone down at home, it's usually in the living room. I don't want the volume all the way down in that case so I can actually hear the thing! So, I put in the condition "If you're connected to the home wifi, ignore this task". Done! Now, when I'm at the office and put the phone down, it's quiet, but audible. At home, it's fully up.

Great, but now when I pick up my phone and put it into my pocket, it's quiet again...easily solved. Similar to my habit of putting the phone face down, I always put it into my pocket upside down with the screen against my leg. Again, this protects the screen, but makes it easy for me to hit the power button if I need to (I've found that when the phone's right side up, the power button's a little difficult for me to maneuver my fat fingers into place properly.) Since I have this other habit, I just needed to tap into that. Again, a simple task: "If the phone's upside down, set all volumes to max".

Now, I'm also a dork, so I couldn't leave them to be THAT simple, could I? Tasker also has the ability to use the speech synthesis capabilities built into Android. So, when I put my phone down, it lowers the volumes and then says "Face Down Mode" to confirm that action's happened. Similarly, dropping into the pocket prompts it to say "Walking Mode".

Sorry, ladies, I'm married.

Yes, I consider myself to be VERY lucky my wife married me before she found out what she was in for.

There is one little gotcha, though: Tasker will only check the orientation of the phone if the screen is on. I can't just take my phone out of my pocket and plop it on the table, I do need to hit the power button. But, I used to have to hit the power button, slide, unlock and reset volumes every time I got back to my desk. Fair trade off, I'll take it.

I know, it sounds silly. I also know it sounds "lazy", but if you haven't used something like this you really have no idea how annoying little things like this can be. You deal with them now, but once they're gone and the phone's doing the work, you really start to appreciate how much easier these kinds of little things make your day.

Tuesday, January 18, 2011

Tasker: bye-bye iPhone, hello Android!

It's a bit rude, but I have a saying: "show me a person consistently working more than than 40 hours a week in IT, and I'll show you a person who's probably chosen the wrong career field".

While I understand that there are occurrences where people are working for companies that are understaffed, and there might be other reasons behind the hours, that doesn't change the fact that in the last 20ish years in the IT field the majority of people I've known who worked like that were just not very good at their jobs. Even more consistently I've found that they didn't understand automation, which is odd considering that's their job!

I'll give you an example: in my old position the environment I managed was made up of a group of Citrix Xenapp servers. Critical as this environment was to our bottom line, every server had a backup so we could fail over quickly. Here's the thing: previously, "quickly" was about 3-4 hours. Now, it's bad enough that in a critical situation it took 3-4 hours to cut over to the backup server. But, upgrades required a cutover and cutback! Upgrading 30 servers and their backups would take WEEKS. I got in there, tweaked the process a bit, wrote some scripts to do some of the work and got the whole thing down to 15 minutes.

Actually, in all honesty, I could've scripted the whole thing to run in 15 SECONDS, but I needed to justify my pay somewhat.

The whole point of IT is to make a company more efficient, to allow it to do more with less staff. In some cases, a single server could replace thousands of employees. Sure, there are downsides to that, but those aren't part of this discussion. If you can't automate some of the repetitive tasks you do on a daily basis, or even an infrequent basis, how do you justify working in a field whose purpose is to automate out repetitive tasks for others?

Two plus years ago, I got myself an iPhone. I've talked about my leaving that platform, and I'd like to share one of the reasons why. I'd been hearing about this interesting little hack available for Android called Tasker on Lifehacker for some time and was enthralled. I'll be honest, Tasker was about 90% of the reason I moved to Android. And, why? It automates your phone!

The iPhone gets a lot of static for being just a fanboi platform, but Apple deserves a lot of credit for putting out a paradigm changer. It's not a PDA, it's not a phone...it's a portable computer that allows you to make calls and have ubiquitous Internet access.

But, you're locked in with it. I'm not just talking about the Apple Store or iTunes, but simple day-to-day tasks. Take something as simple as your browser. You can get plenty of replacement browser apps in the Store, but none can be made your default. If you click a link in your e-mail, it launches Safari. If you click a link in another app, it opens Safari. No matter what you do, you're stuck with Safari. The only time your browser of choice opens is when you tap the icon for it.

The kind of limited thinking that produces such a half-assed solution just isn't what went into Android and as a result we get something like Tasker. It's a tool that allows you to automate your phone to do things you never thought possible. I play around with it a little every day and I still manage to find some new use for it.

Using it couldn't be easier. You start with a context under which you'd like Tasker to respond. This could be location (using GPS), phone state (plugged in, headset plugged in) or date/time, etc. Once you've defined the conditions you'd like it to respond to, you can then define the task it will then take. So much of the basic phone is available to automate, and authors of other software can produce plugins or links to allow you to automate their stuff, too. This all might sound confusing at first, and that's because despite its simplicity, Tasker brings a LOT of power to the table. Examples work best, I think. Let's start with a typical 24 hour period. I'll start with my getting home from work at around 10:30pm (I work the late shift):

- As I get within 1km of my house, Tasker turns on my phone's wifi. As soon as I connect to wifi, either at my house or any place else, it turns off the mobile network radio to conserve battery. I've got wifi, why leave them on? I also have it setup to turn on wifi when close to other folk's houses where I use their wifi, and the same happens there.

- At 11:00pm, Tasker automatically silences my phone. It mutes all of the volumes, however it's setup so that if my wife calls or texts, I will get an audible notification.

- Typically I go to bed a little after 11 and plug the phone into the charger before doing so. Tasker responds by first seeing I'm plugged in. It also checks to see if I'm connected to my home wifi. With these two conditions being met, it starts backing up my phone. It launches SMS Backup+ which backs up all of my SMS conversations and call logs to my gMail account. Each entry shows up as an e-mail within a label with can then be accessed however I would normally access gMail. Mount Manager is a utility that allows my to mount CIFS shares to my phone. I haven't purchased the full version yet, but that comes with a Tasker plugin so I could have it then mount my desktop PC's drive and backup my entire phone in one shot while I sleep.

- At 8:00am, Tasker reenables the audible notifications.

- When I leave the house, and disconnect from my wifi, Tasker turns the mobile networks back on. When I've gone more than 1km away, it turns off the wifi to conserve battery and prevent me being annoyed by the constant "I found a wifi network! I found a wifi network!" notifications.

- Now, I like anime. As a result, I might have some kind of an anime-themed wallpaper on my phone. As those who are familiar with the genre can tell you, oftentimes in anime, women are a bit...scantily clad and their body features are absurdly pronounced. Let's just say the wallpapers, while not porn, would definitely be considered NSFW. So, as soon as I get within 1km of my work place, Tasker will load a random wallpaper from a folder entitled "SFW". Phew! That was close! As I finish the work day and leave that radius, it'll put up a random wallpaper from my entire collection.

And, the process repeats. Now, I might come off as lazy by telling you about the above. But, again, isn't automation what computing's all about? Why should I manually do all of those things? I can have a phone that, depending on where I am and what I'm doing, morphs itself into whatever I need at that moment. When I plug in my headphones, it pops up a menu of all of the applications I might want to use them with. Others have setup "where's my phone" type tasks that allow them to send a text to the phone and it responds with regular GPS coordinates of its location.

Did I mention that I have it setup to tie into my Homeseer-based X-10 so that when I connect to my wifi, if it's late and past the time when my outside lights are on, the lights will come on as I hit the driveway. How cool is that?

All of this and I still have only scratched the surface of what it can do. Seriously, if you've got an Android phone, it's the best $6 you'll spend on an app (buy it from the author's site listed above, though. He gets a bigger cut if you do it that way). If you're still on an iPhone...sorry, you'll never be able to do anything this cool. ;-)

Monday, January 17, 2011

Has it really been that long?

Geez, December 1st is the last time I posted something to this? Tsk, tsk...

There are many drawbacks to doing TEDxRochester in November. First and foremost is right afterward you run face first into the holiday season with all of the fun and excitement that brings. You spend an entire year building up for that one, single day and then it happens and you let out a deep sigh that doesn't stop for two weeks. Then next thing you know, you're cooking a turkey, rushing out for those last minute gifts, rushing out of town for the holidays...oh, my!

"But", you say, "the holidays have been over for weeks?" Sure, but I work for a payroll company and it's year end. We've got W-2s that need to go out by the end of this month, which means we're pushing our already stressed systems passed their limits and stuff's in need of the kind of situational leadership my group brings to the table. Top all of that with a heavy dose of snow causing 14 of our branch locations to close and...well, I've been a busy puppy!

I've got quite a few articles started, but just haven't had time to finish them up. This article's primary purpose is to get those writing juices flowing again as I have some serious catching up to do on other projects as well. Coming up: more Ubuntu Linux stuff and a whole lot of stuff on my new love: Android!