“No Evil”: My NET10 Wireless Experiences
Last summer I began using a prepaid cell phone (an LG 300G, the cheapest, most basic model available at my purchase location) from NET10 Wireless, supposedly the "high-usage division" of TracFone. NET10's rates are flat: 10¢ per minute (even if it's actually one second, like any other per-minute charge) and 5¢ per text message in or out.The phone's been very handy for some important calls and the 5¢ text messaging rate sure beats major carriers' rates of 10¢ – 25¢ or more per message (on plans without a texting bundle), but I wonder how true the "No Evil" part of the company's motto really is.
Airtime Treadmill
All of NET10's airtime packages come with a fixed number of days after which users are required to reload, or face losing their accumulated minutes (and their number, though that's not a concern for me because of Google Voice). I don't use the phone that much, so I buy the relatively economical 300-minute package for $30+tax every time I need to re-up, making my effective "monthly bill" $15-and-change. The package gives me 60 days to use my 300 minutes, but — and here's the kicker — whether I use them or not, I am forced to renew every sixty days. My low usage means I've accumulated over 1,000 extra minutes since last June — minutes that I would lose if I fail to renew. In order to not waste the money I've spent before, I must continue to renew my service. I suppose I should be thankful they let me keep all my minutes as long as I continue to renew, eh? :-/
The issue here is, the $30 package is the most economical one I could find. Analysis of the other available packages shows that paying every two months is probably the cheapest maintenance option available. There's a $20 package of 200 minutes, but it only lasts for 30 days. Deal breaker. Similarly, there are packages that last much longer (4,000 minutes for $400, two years' service) but with low usage, paying in two-month increments is actually cheaper in the long run:
- 1 yr. = $200
- 60 days × 6 ≈ 1 yr. & $30 × 6 = $180
- $200 − $180 = $20; 5 days can't possibly equal $20
- Similarly: 2 yrs. = $400
- 60 days × 12 ≈ 2 yrs. & $30 × 12 = $360
- $400 − $360 = $40; 10 days can't possibly equal $40
So it is truly cheaper to pay every two months, or use one of the other packages not exceeding 600 minutes. (At the 1,000-minute level, the number of service days earned for each dollar spent goes down due to the extra $10 price increase: $30 = 60 days, $45 = 90 days, $60 = 120 days, $100 = 180 days.)
I wonder about NET10's stated motto: "No bills, no contracts, no evil". Perhaps there are no bills or monthly contracts, but if you're a low-usage customer you must continue to pay into the system even if you never use most of the airtime you're buying. It's a self-perpetuating cycle that draws people along and keeps them paying so they don't lose their previous airtime investments.
As annoying as the practice of placing an expiration date on minutes that users have paid for is, it's a practice that seems to be matched by most prepaid carriers. I spent about two hours researching all the different options at a Wal-Mart store in Colorado Springs and came to the conclusion that NET10's service was the least evil. Other carriers have no expiration but charge a daily access fee on days the phone is used. Others have ridiculous per-minute rates. So NET10 is not "no evil", but I think "less evil" would be pretty accurate.
SMS Attempt Charges
On New Year's Eve, just after the ball dropped on a rebroadcast segment from Times Square, I attempted to send out a New Year text message to Ping.fm for posting to Facebook, Twitter, and so on. Of course, because it was seconds after midnight (Central), the network was so congested that the message didn't go through. My phone displayed "Sending failed" after spending about thirty seconds trying to send out the text. I tried three more times, to no avail. (I gave up and borrowed a few minutes' access to a computer.)
It wasn't a big deal that the message failed. I knew that the network would be busy. But it was a very big deal that my account balance was still debited for the 5¢ texting charge each time. Failed messages apparently counted. (It should be noted that friends using Verizon were texting with no problems. NET10 uses AT&T's network, which often has coverage and service issues.)
I emailed NET10's customer support. After a few days' back-and-forth, they asked me to call their support center so something could be "verified" on my account. I posed my question to the operator. She informed me (through her thick foreign accent) that the software on NET10's phones takes care of managing charges, and that it is the attempt to send a message that results in a charge; the outcome is irrelevant.
The Post Office charges for returned letters, I suppose, so that's not really a violation of communications business practice. But for a company that claims "no evil", I find that policy disturbing. Blowing 20¢ on failed text messages isn't going to break the bank, but it is annoying in principle. I'll just consider whether or not the network is likely to be busy before sending a message, and refrain from doing so if failure is probable.
The real question is, do other "normal" carriers like Verizon do this? With their much higher rates, I would think conventional monthly-contract providers would have significant user backlash if they attempted such a thing. Does that make NET10 more evil than "less evil"?
Hardware Lock-in
NET10 freely admits that their SIM cards and phones are specific to them. I received the following after emailing support to inquire about the possibility of using an unlocked GSM phone (such as the Nexus One) with their service:
If your phone is not manufactured as a NET10, we will not be
able to activate it using NET10 Wireless Prepaid Services. Hence, the
NET10 Wireless service will not be compatible with an unlocked phone.Furthermore, NET10 SIM cards only work in the phones they were activated
with. Therefore, the SIM cards should not be switched between phones as
this may result in permanently disabling them.
The above was followed by a paragraph encouraging me to check out the selection of available phones at NET10's website. I did so just on a whim, and my expectation of disappointment did not go unwarranted.
NET10's website catalog lists only 16 phones at present, most of which fall into the "basic" category. Two devices have slide-out keyboards and a special text-messaging rate of 3¢ per message, but at $79.99 they are also the most expensive phones on the list. And of course, a lower text messaging rate would just mean I'd use even less of my balance than I do now. (I don't care about a camera, so I won't analyze that, but many of NET10's phones do have cameras.)
I have seen forum threads about using devices like the iPhone with NET10, and I assume the company has also seen them and works to keep users from doing so. Why prevent use of smarter phones on NET10's service? It comes back to software. Phones not manufactured as NET10 devices do not have the software to deduct minutes from a user's account. People using non-NET10 devices with NET10 service get effectively unlimited usage of voice and text communication because the phone is not configured to manage the account balance.
My question then is, why not commission an Android application to enable smartphone compatibility with NET10 and capitalize on the market of users like myself who would want a smartphone without a data plan? I would certainly be happy to restrict my Internet usage to Wi-Fi – enabled areas; having the phone+SMS+Internet functionality on the same device would be awesome if I could do it without paying for an expensive monthly contract from Verizon, AT&T, or T-Mobile.
This doesn't make NET10 evil or not, but it does show that they have lower regard for customer choice than one might think. By operating a no-contract cellular service, they are promoting consumer choice, but they limit consumer choice when they restrict the devices that can be used on their network to a tiny subset of the handsets available on the market. Of course, they're not the only carrier to do this; most U.S. carriers have handsets that only work on their network, and have handsets that will not work on their network no matter how much you plead. But still, it's a limiting factor.
Call & Text Spam
While it's not specifically a NET10 problem, I question the company's willingness — or lack thereof — to help me solve the problems. I received frequent and disruptive nuisance calls to my NET10 number from an underhanded collection agency for four months after activating my NET10 phone, and I continue to receive occasional calls from a second. I've never given out my NET10 number to anyone except my mother, and I made her promise never to call or share it; all communications to me come through Google Voice, and direct calls to my cell phone are by definition not for me. The calls also began the morning after I activated my phone.
Aside from the fact that there was no way a collection agency could have gotten my number that quickly, I also have no creditors that could possibly be seeking collection of old debts. I'm not old enough for that. So I was being woken up at 06:00 MDT by calls from Pennsylvania (placed at 08:00 EDT) intended for someone who had thrown away their prepaid phone number long ago. That sucked.
It did occur to me that I could just answer one of the calls and say the person the agency was looking for no longer owned the number, but even that would have cost ten or twenty cents that didn't need to be used on scumbag sub-legal debt collection agencies. (I looked into the firm that called me all summer. My research indicated that they dredge up debts that have long passed any relevant statutes of limitations and attempt to collect on them for profit. Hence my usage of "sub-legal".)
More recently, I've begun to receive spam SMS from various numbers, some of which are so much longer than 10 digits (or 11; senders are usually presented with the digit '1' prepended for some reason) that I don't think they even exist. Only opened messages are charged for, but NET10 is so focused on making money from text messaging (a trait they unfortunately share with all other U.S. cellular carriers) that the software on my phone displays only the first five characters of incoming messages. That limitation makes determining spam extremely difficult. If I could see more of the message — maybe display "Do you have more than $" instead of just "Do yo", scrolled horizontally like the phone's software does for contents of Notes — I could effectively avoid being charged for spam, but in my cynicism I have come to believe that NET10 doesn't care about spam because it potentially makes them more money.
On multiple occasions I have investigated the possibilities for blocking calls from specific numbers (the collections calls are consistent), or filtering spam from my incoming text messages, to no avail. NET10 cannot block calls, but they would have changed my number for "convenience". No guarantees that the new number wouldn't have more nuisance calls than the old one, of course. And there are no provisions for blocking text messages. The kicker is that a "normal", non-NET10 LG 300G would have the ability to block calls by itself, but that feature was removed from the NET10-compatible software. Grr...
My experience is admittedly limited (as I've only ever gotten one number from NET10) but I've heard from friends and classmates that it's not uncommon for a number from any provider to have problems with calls and texts intended for previous owners. It's not specifically part of NET10's "bad" — rather a con universal to the telecommunications industry — but it was still annoying.
Final Thoughts
Despite the issues, I've been pretty happy with NET10 itself. Even if they charge for failed text messages, require renewals every few months, and refuse to help me block spam, they're still a pretty good deal. At some point, once I establish a steady income, I plan to use up the minutes on my current phone and end its service to switch to something a little better. For now it serves the purpose of keeping me connected on the go when I need to be, and $15 a month isn't bad for a U.S. carrier. I'd move to drop them much sooner if they were more expensive.
Of course, these are my experiences with one phone, a NET10-programmed LG 300G purchased in June 2009. Any of the problems I mentioned, especially those related to features of the software features, might not exist on other models or a later release of the 300G.
Minor edit at 15:20 to correct erroneous usage of ≅ to ≈
reMAP: IMAP reConceptualized
Gabor Cselle, the founder of reMail, recently posted an idea for replacing the IMAP email protocol with something with which working would be easier. The proposed name? reMAP, short for reimagined Mail Access Protocol.
He calls for a RESTful design that among other things would globalize message identifiers (rather than changing them the instant a message is moved to a new folder), replace folders with labels (a la Gmail), require the server to handle email search indexes, and make conversations the basic unit of email (instead of individual messages). reMAP would also make handling MIME messages unnecessary; the client could simply call the server with a request for text or HTML message representations without having to deal with parsing the MIME format itself.
I personally am in agreement with his entire proposal. The experiences I've had with IMAP in the past have highlighted shortcomings in a standard that was drafted over 15 years ago. Email has changed a great deal since then, but IMAP has not been revised to accommodate the enhancements made by newer clients and services like Gmail.
If IMAP is to be improved, it's probably appropriate to just completely replace it with something new. If the new system can translate IMAP commands into the equivalent operations in its own protocol, that's even better, because then servers can be upgraded without worries of breaking compatibility with older clients or the need to run server applications for IMAP and reMAP side by side.
There's plenty of discussion going on at the original post and on Hacker News. If, however, you would like to say something here, please don't hesitate.
As a side note, I see that Gabor is using Blogger's FTP publishing option, which will be going away soon. I hope the link will still work when he has to move.
Why I’m Always Promoting Dropbox

- Image via CrunchBase
If you've had much interaction with me regarding computers, no matter what the medium — Twitter, Facebook, email, dinner conversation, small talk during a gathering — I've probably mentioned a service called Dropbox. A few of you have already succumbed to my uncharacteristic marketing tone and signed up, but I thought I'd blog about it and perhaps get more people on board.
I'll start with the reasons I like the service, and then explain why, exactly, I'm doing this a little later.
The site bills itself as an online synchronization and backup solution. I use it mostly for the backup, but that will probably change in the future. After all, it was created by a couple guys who were tired of forgetting their flash drives. It's ironic to note that my current use of Dropbox is to back up my 8GB (soon to be 32GB) SanDisk Cruzer Micro, using a modification contributed by another user.
Dropbox is just plain fun to use, and it has a lot of cross-platform compatibility. It synchronizes files between computers running Windows, Mac OS, or Linux; keeps backup copies online (using Amazon's S³ service — not that I should get too technical); stores revisions when files are changed; and keeps deleted files in case of the inevitable "damn, I shouldn't have deleted that" moment.
The backups, revisions, and deleted files are accessible from any computer with an Internet connection. Files can be added, updated, deleted, and otherwise managed via the website, too, which is great for travel or forgotten files (presentations, school projects, whatever). There is also a mobile website for PDAs and a higher-end version optimized for Android- and iPhone OS – based devices, as well as an iPhone App (there's an app for that™) which of course also works on the iPod Touch.
When naughty Vista workstations have tried to corrupt irreplaceable recordings and other files, Dropbox has restored them (with a little direction from me). Last summer, I bent the connector on my flash drive pretty severely while working on a design project at a poorly arranged Emerson computer desk. It still works, and retracts; but after asking around a bit and hearing that the drive was now likely unreliable, I was motivated to upgrade from the old Dropbox U3 mod — which had trouble on all sorts of non-personal computers — to DropboxPortable — which has worked everywhere so far. (It still won't work at the local public libraries, though. But neither will anything else; they blanket – block EXEs.) If and when my drive decides to give up the ghost, I know Dropbox will be there to give me my drive back just as I had it, as soon as I replace the failed hardware.
I also back up my music collection in Dropbox, which is a great, perfectly legal way to make sure I don't lose any downloaded or ripped MP3s. As it turns out, it's also useful because the device I use as my MP3 player — a Roland Edirol R-09HR — happens to be very picky about file structure. If there's one bit out of place, I get an "Improper Song!" error and can't listen to that file. When this happens to a song that used to play, I've often been able to go back into the previous file versions for that MP3 and load a playable version onto my R-09HR. It's much easier than using a so-called "repair tool" on the file.
There's also the matter of deleted file recovery. I've used the deleted file recovery to reinstate everything from seldom-played music (deleted to free up space) and design research (I just messed up) to irreplaceable recordings from my R-09HR (corrupted by Vista).
The list of times Dropbox has come in handy and/or saved my bacon is endless. If it's saved me so many times in the space of one year, it can surely do you some good.
So do yourself and the great people at Dropbox ("the Dropboxers") a favor and give it a try. I'll bet you won't be disappointed.
Note: Signing up through the links in this post will net you an extra 250MB* of storage in addition to Dropbox's free 2GB plan. That extra storage will stay with you if you decide to upgrade your account. (Disclaimer: You'll also earn me an extra 250MB.*) I tried to work out something special with the Dropbox team via their now-defunct affiliate program, but they stopped the program just before I inquired, so I'm unfortunately rather limited in the benefits I can pass on. Too bad, really; I had in mind something rather spectacular.
* – Please note that you must install the Dropbox application on at least one computer before you or I will receive any additional storage.
My First WordPress Plugin Patch: Wibiya Toolbar
The beauty of using WordPress instead of Blogger is, in a nutshell, the freedom that comes with using an open system instead of a closed one. Under Blogger, I had very little freedom to extend the platform. Everything I could do had to be added by someone from Google, with the exception of a few JavaScript- and Flash-based sidebar widgets. Under WordPress, I have access to literally thousands of open-source plugins to modify, extend, and replace the functionality of the site.
The beauty of using this open system is that if something doesn't work the way I want it to, I am free to simply change it; every plugin is editable from within WordPress' administrative back-end, and the core code is also hackable (though I don't like messing with it because upgrades will break changes). When I discovered that the Wibiya Toolbar (or Wibar) was showing on the mobile version of the website (which is generated by MobilePress, another good plugin), I simply looked in the source of Wibiya's plugin to see how the JavaScript for the toolbar was being inserted.
I found that instead of using the wp_enqueue_script() function as WordPress plugin developers are supposed to do, the Wibiya developers simply used echo to output a <script> tag. That explained why only the JavaScript for the Wibar was loading on the mobile site. Rewriting the plugin to use the official WordPress script-injection method solved the problem.
The original relevant code was:
add_action('get_footer', 'filter_footer');
add_action('admin_menu', 'wibiya_config_page');
function filter_footer() {
$wibiya_toolbarid = get_option('WibiyaToolbarID');
$wibiya_enabled = get_option('WibiyaToolbarEN');
if ($wibiya_toolbarid != '' and $wibiya_enabled) {
echo '<script src="http://cdn.wibiya.com/Loaders/Loader_'.$wibiya_toolbarid.'.js" type="text/javascript"></script>';
}
}
I rewrote it just a little bit. My changes were pretty trivial, really. I changed the function name to be namespaced (including the plugin name) just so it'd be less likely to conflict with another plugin. I also switched actions to enable wp_enqueue_script() to work (get_footer is called too late) and added a check—if( !is_admin() )—to keep the toolbar off of admin pages, preserving the original behavior of the function (and the sanity of anyone using the modifications).
In short, wp_enqueue_script() takes five parameters, three of which are optional. The first two are the $handle and the $src, which specify a name for the script and its source address. Then come $deps (dependencies; Wibiya has none, so set to false), $ver (version; also false because it's irrelevant), and $in_footer (set to true because the toolbar should be inserted above the </body> tag).
So with my changes, the code block above becomes:
if( !is_admin() ) {
add_action('wp_print_scripts', 'wibiya_filter_footer');
}
add_action('admin_menu', 'wibiya_config_page');
function wibiya_filter_footer() {
$wibiya_toolbarid = get_option('WibiyaToolbarID');
$wibiya_enabled = get_option('WibiyaToolbarEN');
if ($wibiya_toolbarid != '' and $wibiya_enabled) {
wp_enqueue_script( 'wibiyabar', 'http://cdn.wibiya.com/Loaders/Loader_'.$wibiya_toolbarid.'.js', false, false, true );
}
}
Following some light testing, I submitted an idea to the Wibiya feedback forum, where my update is currently being reviewed by the company. Hopefully, the change will be included in a future version of the Wibiya WordPress plugin. After all, it changes nothing for Wibiya but works wonders for compatibility with other plugins.
I'll just bet that this won't be the last time I'll send a patch to a plugin developer. I enjoy reporting bugs and coming up with fixes too much to not do it.
How I Beat Blogger and Redirected to WordPress
Yes, I really and truly have migrated to WordPress from Blogger. I know there are a lot of guides out there, but I think the method I used was different enough to warrant a new post. (I won't duplicate the steps of setting up the new WordPress site and importing the content from Blogger; that's pretty obvious, and it's well covered elsewhere. Redirecting is the art form that's been changing every few months.)
Obligatory Rant
Getting away from Blogger is really much harder than it should be. There should be a process to verify with Google that one is not a spammer trying to get free link juice etc. and have the 301 redirects with the Custom Domain feature specifically enabled for the blog one wishes to move. Hackery like what I came across, and what I used, shouldn't be necessary. Blogger should natively support moving away from its platform, even if it might require a little human intervention on Google's end.
It's really too bad that Google is so horrible with customer support. Their products are, generally, really great, but if you run into a problem it had better be something common that others have run into. Your only option, in most cases, is to post in a public support forum and cross your fingers. Fortunately the problems I've encountered have been few, though I am getting increasingly irritated with every issue.
The Premise
Way back in the day, Blogger used to offer 301 Moved Permanently redirects via its Custom Domain feature, even for domains not set to CNAME to ghs.google.com, but I guess spammers were abusing the feature because that ability went away. For a while now, it's been showing an interstitial page to visitors instead of redirecting, warning visitors and crawlers that the site is now redirecting to an untrusted domain. This passes no link juice, and is incredibly inconvenient and unsightly for everyone.
I did a lot of research beginning when I returned from my long summer. In between college applications, family trips, and so on, I performed search after search for methods of migrating away from Blogger to a self-hosted WordPress site. I found a plugin to restore the old Blogger post slugs (to make redirection easier), but every redirect method I came across was in some way outdated and/or broken — until I happened to find Digital Inspiration's method: A Classic Blogger template specially configured to issue canonical links tags, JavaScript redirects, and a big <h1> anchor link to the new site.
Digital Inspiration redirected all traffic to the old site to a special page on the new server, built to handle redirections. A PHP script was offered, but I didn't take that bit. I found a nifty WordPress plugin instead: Redirection by urbangiraffe.com. With two plugins (Redirection and Maintain Blogger Permalinks, mentioned below) and the Digital Inspiration template generator, I was ready to develop my method.
Introduction
Before you do this kind of thing, make sure you run a plugin like the one mentioned here to convert the slugs for posts imported from Blogger to the Blogger format, so they'll match up with the redirects. If you don't, any posts with "small words" ("and", "the", etc.) in the title and posts with lengthy titles will have issues once you switch to the new site.
Also note that you may need to set the number of posts to display on the home page to 1 on Blogger's end. I had a last-minute bug when I implemented this for real that I didn't catch on the test site because I only created one nonsense post. Imagine how frustrating it was to suddenly have seven copies of each <Blogger> section on the page. (Now that I think about it, that's probably why the DI generator kept the homepage stuff out of those sections. But you should change the setting anyway just to be safe.)
Finally, note that, contrary to what a lot of migration guides say, you don't have to set your permalink structure in WordPress to match Blogger's. If you don't want your post URLs to end in .html, they don't have to. Apache .htaccess rewrites and/or the Redirection plugin will be your friend(s). I chose to simply convert the .html into a / but you can pretty much do whatever you want. I've also found that WordPress is capable of redirecting links of the format http://domain.tld/post-slug-here/ to the fully-qualified permalink all by itself, so use that as the target if you want to use a permalink format that doesn't match up with Blogger's. Note: I haven't personally tested this, but given what I know of how WordPress handles things, it should work fine. Use at your own risk, etc. etc., don't blame me if it won't work, etc. etc. But you're welcome to ask for help, of course.
Development
I started with a redirect template generated using Digital Inspiration's generator and set up a Blogger handler in Redirection on the new WordPress site, modifying the newly generated Blogger template accordingly. (DI's generator defaults to /blogger/ which I didn't want; it might eventually conflict with something. I used a more action-oriented /handle-blogger, removing the trailing slash.) The redirect I used was: /handle-blogger\?q\=http\:\/\/voyagerfan5761\.blogspot\.com(\/.+) -> $1
I began developing this solution well before discovering the magic bullet at Digital Inspiration. One of my first steps after installing WordPress was to add mod_rewrite redirects in my .htaccess file so I'd be prepared for redirections from Blogger. Once the handler was in place, I transferred my Apache redirection rules to the Redirection plugin in WordPress:
- Posts: /([0-9]{4})/([0-9]{1,2})/([^/]+)\.html(\?.+)?$ -> /$1/$2/$3/$4
- Categories (labels): /search/label/(.+)(\?.+)?$ -> /category/$1/$2+
- Monthly archives: /(\d{4})_(\d{2})_\d{2}_archive\.html(\?.+)?$ -> /$1/$2/$3
+ – Still need to figure out how to transform this to lowercase and change %20s to hyphens.
Update (02/14): I discovered that query strings killed the redirects and led to 404s. I changed $ to (\?.+)?$ at the end of each regex as well as added extra corresponding backreferences ($4 for posts, $2 for categories/labels, and $3 for monthly archives) to fix it. All query strings are kept, even if they're meaningless on the new site, but otherwise it would be a pain to whitelist only the useful ones. I'll update again with blacklisted query parameters if I discover a Blogger query parameter that breaks something in WordPress.
Once I had all the handling pieces in place on the new site, I tested the Blogger template on a test blog. During my testing, I found room for improvement. For instance, I read in my research that a meta refresh tag, used with a delay of 0, is often treated as a 301 redirect by search engines. I added refresh tags to the template.
I also found that Blogger tries to thwart JavaScript calls to window.location.href by placing script tags on the line following the call and invalidating the entire block. I defeated that by placing a multi-line comment starter after the semicolon, wrapping the block in <![CDATA[...]]>, and creatively faking out Blogger. It still inserts the extra tags, but they don't harm anything because I used trickery to force Blogger to place them inside a comment block (where they're just ignored).
In case future changes to Blogger break the template — and I'm sure that Google will do something to break my setup eventually — I added a link to my new contact page for users to tell me if it's not redirecting.
The template does everything I need it to do. With the Redirection plugin, I didn't need to use the PHP script provided in the Digital Inspiration post. I should also get better results from the migration because of the extra work I put into my template; feel free to get a copy for yourself. If you use it, please leave the existing comment block at the top intact. Both the original authors at Digital Inspiration and myself will appreciate it. I also plan to share my improvements back to DI.
Conclusion
Satisfied with my testing and confident of the results, I implemented the template on my real old Blogger site a couple days ago, where it seems to have been chugging along nicely ever since. If it breaks, and I don't notice, I'm sure someone will take the time to use the contact link I added and let me know. The link might cause a few issues with search crawlers, but I think I'm OK with it. Misdirected link juice is better than broken functionality.
Of course, this is the technique that worked for me. Like all the others I found, I'm sure this one too will become oudated and/or broken with time. But for now, it seems to be the best method for escaping the clutches of Blogger.
Update (01/23): A reader pointed out in the comments that IE6 might not follow the redirect. If your site has a significant fraction of readers using IE6, keep that in mind. I won't worry about it for my site just because most of you use something more recent.
Migrated to WordPress!
I did it. I finally did it. I ditched Blogger!
You know, there's a certain satisfaction to this. I've been wanting to ditch Blogger for years, ever since I discovered WordPress. And I finally did. I'll consider the completion of this migration to be the fulfillment of my unstated New Year's resolution.
Thanks to the generosity of one of my Twitter contacts, @Navarr, I now have a self-hosted (er, friend-hosted) WordPress blog. He offered to host my blog after seeing me complain a lot about things I couldn't do under Blogger. Eventually I bit the bullet and bought a domain name near the end of October. The full story is available (once I finish revising it — oh, hell, that'll never happen, so just read it now and keep checking back
) on the about page. Now there's something I couldn't do with Blogger: A static page!
(Update (01/20): Blogger just launched Pages on Blogger In Draft. Little late, guys.)
As an advance warning to my feed subscribers who've become used to visiting this site at voyagerfan5761.blogspot.com, I'm announcing that all pages on that domain will begin redirecting to a new WordPress site I set up at technobabbl.es soon. In fact, I'll probably have that set up by the time this post is published. Feed and email subscriptions, which are run through FeedBurner, should be unaffected by all this reconfiguration; the most you might experience are some issues with duplicate items being fed or mailed to you when the switch is made. Since I switched the feed a few weeks ago, all of those humps should be done with.
The search for a redirection solution was pretty tedious. Because I want to leave Blogger's hosting behind, the Custom Domain feature wasn't an option. Since I need the DNS records for technobabbl.es to point to DreamHost instead of Google, Blogger wouldn't issue 301 Moved Permanently headers; instead, it would show interstitial "untrusted domain" warning pages (returning 200 OK, creating a horrible search engine situation) that don't redirect users and don't pass link juice on to the new site.
I'd just 301-redirect the whole site if I had any way of doing so. Since Blogger doesn't let me do that, I either have to start from scratch search engine– and backlink – wise or find a more creative solution. Thanks to Digital Inspiration for a great post on migrating and Blogger redirection template generator, and thanks to John Godley of UrbanGiraffe.com for the Redirection WordPress plugin.
It took me a while to find this combination, but my pre-implementation testing indicates that it should be pretty perfect. I've also extended the Digital Inspiration template to issue meta refresh redirects in addition to JavaScript, anchor link, and canonical link tags, which should make it even more search-engine friendly. I could have just used redirects in my Apache .htaccess file, but Redirection will log the redirects for me, so I can keep track of the traffic coming in from the old site. For a more complete explanation of what tools I used for the migration, watch for a new how-to post.
Even with the redirection, I would like to ask all of you to update your bookmarks, and anyone who's linked to me should please edit those links. Redirects are fine, but it's better to not make crawlers (and users) jump through those kinds of hoops. I'd like to try and keep the experience as clean as possible.
Speaking of cleanliness, there were other side-effects of importing everything from Blogger. First, my feed footer was included in every post. So that's something for which I should keep an eye out. I'll get rid of all those pesky footers eventually. I only have to get them out of 500 posts. Second, Blogger uses stupid formatting tags (lots of <span style="font-weight: bold;">...</span> and <span style="font-style: italic;">...</span>) instead of the semantically correct, shorter <strong> and <em>, and it uses more <span> tags to size the text up for headers instead of creating <h_> tags. More slow cleanup work for me to do. Just have to fix a few posts at a time. I also need to do something with my Picasa-hosted images; rumor has it that they'll disappear if I stay away from Blogger too long.
Now I'm going to stop rambling about all the work I have to do on the site.
Thanks for reading, everyone. I hope you'll weather any transition turbulence and follow me to my new site, where I've been working on a few hefty new posts to make up for the distinct lack of blogging in the last year.
Google Voice App Rejections: Catalyst for Cellular Openness?
If you haven't heard, Apple rejected Google's official Google Voice application several weeks ago (article from this week). However, I (at least) didn't hear the news until recently, when it became known that Apple also began pulling other Google Voice apps from its iPhone/iPod Touch App Store. TechCrunch's sources say that AT&T was behind the bans, and I'll believe it.
Now, I'm not an Apple fanboy, but I've been considering getting an iPod Touch lately. One of my roommates here at Emerson's summer program (yes I know I need to blog about that too; soon, I promise) has one, and he's graciously let me use it occasionally. It's been the perfect opportunity to figure out if I really want one, and try it out with some of my normal online activities. I do want one, though I'll wait until the new version comes out, supposedly in September, with (I hear) a microphone and maybe even a camera.
But back to Google Voice.
One good reason to get an iPod Touch would be a mobile interface to Google Voice that uses Wi-Fi instead of cell phone minutes (for checking voicemail) or text messages. Cost-saving: Check. But the mobile interface for Voice is pretty sparse, so an app would be awesome.
My plans were put in jeopardy when I got wind of the news that Apple had begun pulling apps that worked with the service from the App Store. I checked with my roommate's Touch and confirmed that they no longer appeared. For a while, I considered just skipping it. I was angered by Apple's ridiculous actions, and annoyed that my target device — the iPod Touch — could have its functionality limited by a company that didn't have anything to do with it. The iPhone and Touch might use the same operating system and App Store, but just because AT&T doesn't want an app on the iPhone doesn't mean I shouldn't be able to run it on my iPod.
Today comes news that the FCC sent letters to Apple, AT&T, and Google, beginning an investigation into this high-profile rejection. See, the FCC has a policy agenda here, one that was probably catalyzed by Google's letter to them two years ago. And in June, the FCC confirmed that it would be starting a review of exclusive contracts between handset manufacturers and cellular carriers.
The letters sent today are probably intended to use this heavily reported situation as an example, and to set a precedent. I hope that this investigation will find fault with the way Apple and AT&T conduct their business together, and will result in the FCC's restricting the kinds of apps that can be rejected, barring AT&T's involvement in the application approval process, and possibly even result in a completely open App Store (in the long term) or an unlocked iPhone (also in the long term, though the exclusive contract between AT&T and Apple ends soon enough).
Google went to bat for all of us consumers two years ago with that letter. Maybe it will turn out that they've inadvertently done so again, just by letting Apple do what it wants with the App Store. My fingers and toes are totally crossed on this one; I want an App Store that's more along the lines of the Android Marketplace or a Linux package manager.
Who's with me?
How To: Safely Use Twitter Notification Enhancement Services
As you all have probably heard, Twitter is gaining popularity in leaps and bounds. All the new users mean more follower notifications arriving in my inbox, and Twitter's default messages aren't very useful. (The direct message notifications are pretty bare-bones, too, but I don't get many of those so it wasn't a priority.)
Update (05/06): Twitter prettified their emails, but I still think Topify's are better. Unfortunately, Twitter also went back to using the same address (noreply@twitter.com) for all users' notifications, putting the email-address – specific addresses in the reply-to header. So the filter setup in this post doesn't work any more. I had to come up with a new, more complicated filter... Stupid Twitter...
The Beginning
The first enhanced-notification service I discovered was Twimailer, created by a British developer named Jon Wheatley (and apparently later sold—shortly after I signed up — to a Romanian named Toni).
Despite the admonitions in the article above (on ReadWriteWeb) about changing passwords and all kinds of security precautions, I'm not worried about my own account. There's one simple reason for that: I never actually switched my email address in Twitter's settings. Instead, I created a Gmail filter to auto-archive follow notifications from Twitter and forward them to Twimailer. That way, I:
- had all my follow notifications even if the service went down (it did for several days) or glitched (sometimes I get messages with no information)
- only forwarded the messages Twimailer needed to be useful, rather than everything
- made sure to keep password resets (which I haven't used for my main account in the last few months anyway) completely out of Twimailer's hands
I was very comfortable with this system. I can only guess that Jon's original intent was to simplify the setup process. After all, most people don't bother with email filters, and wouldn't necessarily know how to set one up. Changing settings on Twitter's website is a lot easier.
A New Age
Thanks to a TechCrunch post about fighting Twitter spam I read tonight, I discovered Topify, an invitation-only (for now) service based in Israel that offers all of what Twimailer did — and more.
I found an invite on the Topify blog (sorry, no link; you gotta dig through their site too so it's fair for everyone) and quickly signed up. The Twitter password field distressed me a little, but it's obviously necessary for all the extra features (like follow-back, reply to direct message, and block), all of which can be done via email with Topify. (In the future, I hope Topify will implement support for Twitter's OAuth authentication and delete users' passwords from their system. Consider this a request, Arik.
Anyway, switching was pretty painless. All I had to do was change the address to which my Gmail filter forwards and add my direct-message notification From address to the filter. I'm currently waiting for something to happen on my Twitter account so I can try out the new service. (I considered running Twimailer and Topify side-by-side for a bit, but decided against it; redundant emails would increase my processing time, the opposite of the intended effect.)
Filter Details
For those who want to copy my setup (I'm telling you, it's a lot more resilient than the default instructions from either service), here are the filter settings to enter. Update (05/06): These settings are left here for posterity; they won't work anymore thanks to Twitter's changes from today. See the first update near the top for more detail. Update (05/07): These should now work again, since Twitter appears to have gone back to the old email headers.
In the filter's From box, enter:
- Topify: twitter-follow-you=yourdomain.tld OR twitter-dm-you=yourdomain.tld
- Twimailer: twitter-follow-you=yourdomain.tld
Replace you=yourdomain.tld with your email address, using = in place of @.
That's all you need to do for filter criteria. (If you have only one Twitter account coming into your inbox, it's even easier; you can omit the -you=yourdomain.tld part(s) of the filter criteria. It doesn't hurt to include them, though.)
For actions, I selected "Skip Inbox" and "Mark as read", and told Gmail to forward these messages to my secret Twimailer/Topify address.
Click the Create filter button, scroll down your filter list, and you should see something like the following (image is linked to full-size version):
(There's also an XML file available to import, for those with the Filter Import/Export feature enabled in Gmail Labs, but creating the filter from scratch is pretty easy. The file link might go dead in a month or two when my Google Page Creator site is moved to Google Sites, but I'll know because things like the site logo will stop working. If that happens, I'll definitely fix it.)
Note: As I was writing this, I discovered Chris Messina's post about this, published almost two months ago. My little hack is nothing new, I guess; but I'll publish anyway because his instructions are focused on Twimailer and Twimailer only.
Wrap
Let me know if you find this little hack useful. I haven't time to make a bunch of pretty screenshots (unlike Chris
, so if you have questions, post in the comments.
Incidentally, this is my 500th blog post. If that means anything.
GrandCentral Becomes Google Voice!
It's taken 21 months — almost two years — but GrandCentral ("One number for all your phones, for life") has finally gotten an upgrade (and a new name). I'm totally excited, and happy that the long-awaited upgrade (previously known as GrandCentral 2.0) is finally here. Meet Google Voice: "One number for all your calls and SMS".
New Features
Yes, Google Voice added several new features. One of the things that always, always bugged me about GrandCentral was the fact that my number couldn't receive or send text messages. Well, now it can. According to TechCrunch's expansive overview, the same technology that powers the SMS in Gmail Chat Labs experiment (known as Gateway) is used in Google Voice.
Other new features include voicemail transcription (sounds promising), very specific per-contact settings (definitely a trap for us OCD types), a completely overhauled interface (w00t! Less Flash!), conference calling (cool factor = 100), and easy dialing out via the phone interface.
I have to stop and talk about the dial-out feature. First of all, it was nearly impossible to dial out from GrandCentral unless you either had a new voicemail from the person you wanted to call (so you could press '2' after it to call them back) or had access to a Web-enabled device. Simply dialing out wasn't considered. Now, in Google Voice, there's a "press '2'" option right in the main menu! Finally!
Also, under GrandCentral's auspices, calling out was free during beta, with the shadow of paying per minute after testing was over looming in the future. Google changed that in Voice, which allows free calls anywhere in the United States. International calls are at greatly reduced rates (compared to conventional long-distance). Each new user gets a free $1.00 credit toward international calls, though I don't know if they'll keep that up once sign-ups are opened completely — it could be something just for migrating GC users.
Migration, Stranded Data, and Missing Features
Existing GrandCentral users get (or will get this weekend) a migration link at the top of their grandcentral.com inboxes, which will begin the automated migration of a GrandCentral number to Google Voice. The process was pretty painless, even smoother than the transition to the new FeedBurner system last month.
However, much data is not migrated. Most of the settings are reset, custom greetings and names must be re-recorded, old voicemails/calls/recorded calls are left behind on grandcentral.com, and contacts must be transferred manually by exporting GrandCentral's Address Book to CSV and importing it into Google Contacts. The automatic merging of imported contacts only merged about half of the duplicates in my set, and I had very few contacts to deal with. That was fortunate, because the rest of the merges had to be found and made manually.
In the future, I hope Google will provide a utility to migrate old voicemails from GrandCentral, especially if grandcentral.com is eventually shut down or redirected. Currently, the top of my GrandCentral inbox says:
Since you have migrated to the Google Voice Preview, you can now access your new messages and update your settings by logging in at google.com/voice. Feel free to continue to access grandcentral.com for your older voicemail messages. We're glad you dropped by.
That's inconvenient. But really, how often do I visit old voicemails? Not much. Besides, a lot of them were inexplicably lost... Their listings are present, but they can't be played; I'm guessing the files somehow went missing. I'm not happy about that, but... at least it hasn't happened again.
A minor annoyance is the loss of custom ringback tones, the sounds played to a caller while the phone is ringing on your end. (Google does have a suggestion to bring this back on the Google Voice Feature Suggestion page.)
Future Ideas
Of course, Google Voice is not without holes. It can't forward to numbers that require extensions (I don't need it now, but might in the future). It can't take an existing number and turn it into a Google number (which would be eminently useful, I think, for my mother).
Image via CrunchBaseThere are also no apps for iPhone or Android yet (and I don't care about Blackberry, kthx). But the feature suggest page I mentioned above has all these and more. I've suggested about 75% of the features currently on the list, including integration with Gmail and Google Talk. I'm hopeful that these and more ideas (like the two I posted on Twitter) will be implemented, and sooner rather than later.
Speaking of future ideas, Lifehacker ran a short post yesterday speculating that the reserved "Voicemail" label in Gmail is for integration with Voice. It's actually for Google Talk voicemails (GTalk has a calling feature that I almost never use because of various technological or locational constraints), but it could certainly be useful for Voice messages as well, if Gmail and Voice are ever integrated.
Reaction
Despite the inconveniences, I think I'm going to like the service. It's a vast improvement upon GrandCentral; in fact, TechCrunch's Leena Rao says (in the overview mentioned above), "Google is finally bringing us the voice service that was promised back in 2006." I agree; the old GrandCentral was convenient, but Google Voice promises to be many times as useful.
Gmail Chat FAILs with Ping.fm GTalk Enabled
Image via CrunchBaseLast night, I found a chat in my Gmail account that I'd never seen. It was sent an hour after I left the public library on February 26, while I was offline, but never showed up in my Inbox. It wasn't even labeled as sent while I was offline. I was baffled completely until I realized this afternoon what I'd been doing that night at the library.
February 26 (a Thursday, the day of #snowmageddon here in Minneapolis/St. Paul) was the day I discovered that Ping.fm—my very favorite social networking tool, second only to Twitter—had added support for Google Talk statuses. Of course I had to try it out; I'm an early adopter.
So I went into my network settings on Ping.fm and added my Google Talk and AIM accounts. Next thing I know, Gmail Chat is complaining that I'm no longer invisible (I like to be invisible because it minimizes interruptions). It says I'm signed in somewhere else. That somewhere else could only be Ping.fm.
By that, I gather Ping.fm actually signs in to Google Talk and receives all chats sent to one's account, 24/7. Not only is that inconvenient (I'll continue with that in a moment), but it's a bit of a privacy hole, especially if you don't fully trust Ping.fm. And honestly, I trust a lot of websites with a lot of things, but I like my chats to stay inside Google's ecosystem, thank you.
Anyway, the fact that Ping.fm is always signed in to one's Google Talk account means that one always appears to be online, and offline chats won't work. Invisibility in Gmail Chat is also disabled. Both of these, combined with an apparent dysfunctionality (I couldn't get my GTalk status to update from Ping.fm), led me to deactivate the integration.
What I'm trying to say is, Ping.fm has a lot of work to do before I'll even consider re-adding my GTalk account to my Ping.fm networks. It doesn't work, and causes a lot of problems.














