Text Input Heaven: Swype on the G1

Update: This version of Swype is for a trial. My trial just expired about 20 days after I installed Swype.

Text input on the G1 and most Android devices has been severely lagging the iPhone for a while now, but that's all changing. Tonight I stayed up much later than I should have playing with Swype after I found out how to install it on my G1.
As the name implies, to input text, all you have to do is swipe your finger around, lifting it for spaces (demo here). Swype seems pretty mature from what I've seen so far, and it has nice gestures built in for dealing with edge cases you encounter while typing: capitalizing, adding words to the dictionary, punctuation, contractions, going back and fixing mistakes, etc. 

I'll cut to the chase. Here's how to install Swype on your G1. It's currently not in the app market, so you're going to have to download an APK (Android Package) and install it.
  1. Download Swype to your G1 (pardon the popups)
  2. After the APK downloads, select the file to open it. You will probably receive a warning about an "unknown source" because you downloaded the app outside of the market. Go to "Settings" => "Applications" => and put a check mark on "Unknown sources". Then go back to your downloads, and select the file again.
  3. Be patient as the installer launches, it takes a few seconds. Install the application.
  4. Time to enable Swype. Go to "Settings" => "Locale & text" => and put a check mark on "Swype".
  5. Try to Swype tutorial. Still in settings, select the "Swype" option just below the one you just checked, and scroll to the bottom for the tutorial. It will walk you through using Swype and all the edge cases.
  6. Disable unknown sources. Go to "Settings" => "Applications" => and uncheck "Unknown sources".
  7. Try it out. Go to a place where you can enter text. Make sure your keyboard is not slid out. Select and hold the text field (first-time use only) and switch your input method to Swype. Now you'll be able to Swype away!
If you have any extra questions, see the original forum post.

Email server recipe for avoiding spam filters

Setting up an email server and making it work with anti-spam protocols is one of those things that's 100x easier to do the 2nd time around. I follow these steps whenever I need to do it.

Prerequisites

  • Apache
  • Ubuntu 9.04 (these instructions should work for other versions, but that's what my target currently is)

Ingredients

  • postfix
  • dkim-filter - DKIM (DomainKeys Identified Mail - new standard)
  • dk-filter - DomainKeys (legacy protocol - needed for Yahoo, etc)
  • SPF records

Postfix Setup

First, we need to install an email server, postfix. I'm going to skimp a little on configuration here because with most EC2 AMIs I use, postfix is already installed. For more information see: Postfix setup and configuration for Ubuntu.

The most important parts are installation:

sudo aptitude install postfix

and configuration of myhostname, mydomain, and mynetworks (which determines which hosts may send mail through the server). Here's the section from a sample configuration:

myhostname = yourdomain.comalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = yourdomain.com, localhostrelayhost =mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_size_limit = 0recipient_delimiter = + inet_interfaces = allmydomain = yourdomain.com

DKIM setup and configuration for Postfix and your DNS

Next we need to install and configure DKIM. This will make the server sign email headers so that users can assert, through DNS, that an email's origin has not been forged. It's safe to directly follow the instructions here: DKIM setup and configuration for Postfix and your DNS. The only catch may be with your DNS; as some DNS's (particularly GoDaddy) will not display the fully qualified TXT record name. If you enter "mail._domainkey.mydomain.com" your DNS may show the record name as "mail._domainkey". If it does, don't worry about it. It's just following an internal convention. When the DNS server receives queries for "mail._domainkey.mydomain.com", it will respond correctly.

DomainKeys setup and configuration for Postfix and your DNS

DKIM (described above) is the newer, standard protocol for signing emails; however, some mail providers are still using the older DomainKeys protocol (namely Yahoo). It's safe to directly follow the instructions here: DomainKeys setup and configuration for Postfix and your DNS, but watch out for a few repeats. You will have already completed the second part of the "Configurating DNS" section, and should use the second form of the Apache configuration in the "Startup and testing" section because you will have already placed a DKIM configuration in Apache:

milter_default_action = acceptmilter_protocol = 2smtpd_milters = inet:localhost:8891,inet:localhost:8892non_smtpd_milters = inet:localhost:8891,inet:localhost:8892

SPF setup and configuration for Postfix and your DNS

SPF (Sender Policy Framework) allows mail recipients to reject mail received by senders who DNS does not recognize as authorized senders for a domain. It's safe to directly follow the instructions here: SPF record setup and configuration for Postfix and your DNS, though you may need to create the "smtpd_recipient_restrictions" section in your postfix configuration.

Validating your installation

Throughout this process, you can emailing check-auth2@verifier.port25.com to Validating your email server configuration. You will receive an email reply to the address you sent the check request from. Also, make sure that the email address is from the domain you are targeting (it could be different based on the hostname or other postfix configuration, particularly on EC2). Here's an example command to send the email from your server:

echo "test message" | mail -a "From: you@yourdomain.com" -s test check-auth2@verifier.port25.com

Other limitations

From time to time, you may run across an email sending limit imposed by EC2 and you may need to request that the limit be removed.

Additionally, it's good to check that you are not listed on Spamhaus.