Actually Keep a Diary / Journal with Day One and Workflow

For years I’ve tried to keep a daily diary / journal and have struggled with two problems: Remembering to write, and finding something to write. Lately I’ve tackled the second, and the first is easily solved when you think about it…

In this exercise, I’m using 2 apps on iOS: Day One, an excellent diary app, and Workflow, an excellent automation app. I’ve created a little Workflow module that does the following:

  • Downloads a daily motivational quote (although you could replace this with any RSS feed item)
  • Looks up my calendar for the day
  • Asks me 2 questions (In my example: What do I plan on doing, and how will I do good that day)
  • Rolls it all together and creates a new entry in Day One.

So with 1 tap of the Workflow shortcut, I have my phone prompting me to create my diary entry (and I can customize the workflow whenever I like). You can get my Morning Journal Workflow here if you’ve already got Workflow installed.

So get Workflow, Get Day One, and get journaling. Having problems with the first issue (i.e. remembering?). Well, just ask Siri to remind you or set a reminder to recur daily. Problems solved!

Get True Push Gmail on Your iPhone or iOS Device

A few years ago, Google announced it was ending support for the Exchange ActiveSync Protocol (EAS) for most users. Now those of us who were grandfathered in have changed devices, and likely lost that grandfathered status. So how do you get Gmail pushed to your iOS device without having to download the Gmail app – or giving up the built-in mail client? It’s pretty simple – you resort to the only free email option that Apple provides push to – a secondary iCloud account. But what about that pesky “iCloud won’t let you send as another address” problem? Simple fix – use GMail’s SMTP server.

By: rovlls

Goal:

Receiving mail sent to your Gmail address in iOS’s built-in mail client with push speed (no Fetching!) & Sending mail with your Gmail address (or custom alias).

Caveats:

  • This method will likely be somewhat annoying if you’re a heavy Gmail in the browser user, since most of your inbox will live in iCloud. This method works best if you use mail clients on your mobile devices and desktop, and rarely use webmail.
  • This method isn’t as nice if you have a Gmail account that you use to send out as another user (i.e. whatever@gmail.com but you usually send as whatever@customdomain.com). I explain this in more detail below, but it boils down to this: Your device won’t be able to tell Gmail what to send out as, so Gmail will assume you want to send as your primary address. If you’re a Google Apps Free user, then this method will work fine.  I was actually wrong about this one – this works fine as long as you have your preferred FROM header selected as the default account in Gmail’s settings. So if you don’t already, log in and click the Make Default link next to your desired FROM account in the “Accounts & Import” tab in settings.

Here’s what you need…

  • A Gmail account that has IMAP enabled (Check your Gmail settings). You’ll need the username (your complete @gmail.com or @customdomain address) and the password (or an Application Password if you use Google’s 2-factor authentication.
  • A secondary iCloud account (See the steps below to create one)

On the iPhone / iPad / iOS Device

I’m using iOS 7 on an iPhone 5 for these screenshots. The steps should be more or less the same

  1. If you don’t have one, set up a secondary iCloud account. I suppose you could use your primary one, but I prefer to keep the mail / inboxes separate

To do this,  go to Settings on your iOS device and tap on Mail, Contacts, & Calendars. Then tap “Add Account”, then “iCloud”, then “Get a Free Apple ID”

2014-07-04_23_27_362014-07-04_23_27_412014-07-04_23_27_44

Go through the enrollment process and note your new iCloud username and password. You’ll need the username later when you set up your Gmail address to forward to it.

  1. Set up this secondary iCloud account to send through Gmail’s SMTP server (smtp.gmail.com, port 587, Use SSL set to On)

To do this, go back into Mail, Contacts, & Calendars, and tap on your secondary iCloud account. Then tap on the account name once more to go to the Account page. From there tap on “Mail” under the advanced settings. Then tap on SMTP.

2014-07-04_23_27_362014-07-04_23_27_502014-07-04_23_27_532014-07-04_23_27_56

Now that you’re in the SMTP screen, tap Add Server, and fill in your hostname (smtp.gmail.com) and your full Google Gmail username (whatever@gmail.com or whatever@domain.com) and password. If you’re using 2-factor authentication, you’ll need a dedicated application password. Once all the info is verified, you should see an entry under “Other SMTP Servers” for smtp.gmail.com.

You will need to go into both the iCloud & Gmail SMTP servers, setting iCloud to Off, and Gmail to On. In the end, your screen should look like the third picture below:

2014-07-04_23_28_022014-07-04_23_28_072014-07-04_23_27_59

OK, now you’re done.

Basically we’ve told that iCloud account to send out through Gmail. Google’s servers force all outgoing mail on an account to be through either the default FROM address (your account’s address OR the address you selected as default on the Accounts & Import tab in Gmail’s settings)) or an alias, so in this case, while iCloud will want it to go out as whatever@icloud.com, it will be changed by Gmail to whatever@gmail.com. If you have an alias that isn’t your primary Gmail address, you’ll likely not be able to use this setup since iCloud won’t let you change the “from” address. However you can set up a regular IMAP account on your device with your Google credentials and change the “FROM” address.

The only issue is that replying to messages won’t be seamless – you’d have to manually select to send your reply through your IMAP Gmail account, not your secondary iCloud email account, which is messy. Therefore if you have a gmail account with a custom alias you want to use, these steps might not be any easier for you than just resorting to non-push email. As I said above, I was wrong on this one – just make sure you have the address you want your email to come from set as your default address on the Account & Import tab in Gmail’s Settings.

On Gmail’s Website

Now you need to get your Gmail pushed to your new secondary iCloud email. You can do this in Gmail’s settings by forwarding all of your mail to your new iCloud address. I then set Gmail to archive my mail, using a filter, so it’s out of my Gmail inbox (my iCloud inbox becomes my “working” inbox).

In the end, as a bonus, you also can get backups of your mail. Basically you’ll have a copy on both Google’s Gmail servers and Apple’s iCloud servers, so if one is down for any length of time, you can use the other (Although sending through iCloud.com will use your iCloud email address, not your Gmail address). In my setup, I have a similar configuration on my desktop using Apple Mail – but if you’re a heavy webmail user, it could be distracting to manage two inboxes.

In a few years if you max out your storage on iCloud, then simply create a new iCloud secondary account, and keep your first secondary account’s information if you need to use those older emails.

Hope this helps you – in the end I now have the solution I want: I send out as my custom email address, and receive at the same address in real-time. Sure I’m leveraging two clouds to do it, but who said life was easy 🙂

Automate a Telnet Session with One Command

The Telnet protocol might not be the newest thing on the block, however there is still some legacy network hardware that will only accept Telnet connections and not newer more secure SSH connections. Recently I bought an APC MasterSwitch unit, that allows me to remotely power on and power off my hardware, and I ran into a problem of automation. I wanted to be able to remotely reboot the server every night a little after 3 AM, but there was no schedule capability inside the software that shipped with the decade old unit. The MasterSwitch, however did come with a built-in telnet server that one can remotely access and power on and off each individual outlet.

The problem with automating Telnet, is that the prompts are not always uniform between different Telnet servers as they are with SSH servers. So one needs to know the exact keystrokes used in order to accomplish the task they need to do. However if you know all of the keystrokes you can create a command that will type them directly to the telnet client on an *nix computer. Here is my crontab command that navigates through the menus of the MasterSwitch unit and reboots the selected outlet at 3:16 in the morning:


16 3 * * * { echo "USERNAME"; echo "PASSWORD"; echo "1"; echo "2"; echo "1"; echo "6"; echo "YES"; sleep 1; } | telnet SERVERNAME

You’ll see that this command reads sequential to the actual keys that I put in when accessing the unit, first my username, then my password, then the menu commands which use numbers to drill down to the actual outlet, and then confirm that you would like to reboot it. The sleep 1 command at the end spaces them out so that they don’t overload the client.

There you have it, a quick and dirty way to automate a telnet session!

How Long Should a Fitbit One Sleep Wristband Last?

I’ve been a fan of the Fitbit since the first tracker was introduced two years ago. I upgraded to the Ultra when it came out, and upgraded to the One when it was released last year (My fat wrist means I probably won’t be going to the Flex anytime soon though!). Recently the sleep wristband that I’ve used every night since I got the One started to look a little shabby, and after multiple repairs, I finally just broke down and ordered a new one. This got me thinking: How long should a Fitbit One Sleep Wristband last?

Here’s the comparison between the original One Wristband, that I got around November 15, 2012, and the brand new one that I received today (Replacement cost: 9.99 + s/h):

Wristband after 200 days compared to new, with repairs noted.
Wristband after 200 days compared to new, with repairs noted.

As I noted in the picture, the original wristband started to show wear and tear at about day 120. About 20 days later the end was so frayed that the material wasn’t staying together, instead I could see all layers of the wristband. While this was cool, it wasn’t very easy to work with when putting the wristband on at night, so I asked Karey to sew it. When she did it became impossible to re-align the material perfectly, since the thin material needed to also accommodate thread, so the wrinkle in the lower part of the picture (on the back of the wristband) formed.

About day 175 a new fray became pretty serious on the other side, which Karey sewed again. Today on Day 200 I also noted that the opening where the Fitbit is placed has become warped and the edging is starting to unravel. Finally over time you’ll notice that the wristband stretches, which is not a bad thing (I have large wrists), but it does mean that the opening becomes less secure. I’ve had my Fitbit fall out in bed 3-4 times in the 200 days.

According to Fitbit, the wristband is made of neoprene, and beyond that there isn’t much in the way of a ‘lifespan’ mentioned on their website. This makes sense, since everything but the wristband is made of more durable materials. Obviously they anticipated that the wristband might get worn, and allowed for the purchase of just a wristband for a small fee. So the question becomes: How long should the wristband last given the price paid for the Fitbit One? Is 200 days acceptable before requiring another $13.90 (band + s/h) after the initial investment of $100? I’m personally on the fence. I understand products like this won’t last forever, but would have been pleasantly surprised if Fitbit offered a “trade-in” service, or cut the price of the wristband to $5 or so (I should note that in the past, with the Ultra, I’ve lost a wristband and Fitbit support replaced it for free – so this isn’t a knock on their customer care or support in anyway – they’ve been top notch in my (and others, that I’ve read) experience). As of now I’m of the non-surprised “that’s what I was expecting” sentiment. What I’m curious about, though, is if others find this acceptable?

Using Mail Merge With Custom FROM: Addresses in Word/Outlook 2007 or Word/Entourage 2008

The following was written for my lab group at work, however it strikes me as something everyone may benefit from. Mail Merge is an awesome tool, and this makes it much more useful when a group shares an incoming e-mail address that replies should be directed to (e.g., sales@ or info@ etc.. instead of the individual who sent the mail). I’ve had to sanitize some of the screenshots to remove private information, however it shouldn’t detract from the overall message!

You’ll need:

  • A copy of a mailing list, in either excel format or CSV.
  • Microsoft Word
  • Microsoft Outlook or Entourage
  • An SMTP username & Password to send out through SMTP Servers that require encryption.

First-Time Setup

You’ll do these steps once per computer you use this on. I’ve broken them down by Outlook 2007 or Entourage 2008, with screen shots. The basic process is…
Outlook 2007:

  1. In Outlook, click on “Tools” then “Account Settings”
  2. Click New to set up a new e-mail account
    Screenshot%20-%2010_26_2009%20%208_35_53%20AM
  3. Choose “Microsoft Exchange, POP3, IMAP, or HTTP”, and click “Next”
  4. Click “Manually configure server settings or additional server types”, and click “Next”
  5. Choose “Internet E-mail” and click “Next”
  6. Fill out the information in the box as is appropriate using your group e-mail and a valid username and password that can authenticate to the SMTP server. Then click “More Settings”Screenshot%20-%2010_26_2009%20%208_40_29%20AM
  7. After hitting “More Settings”, choose the “Outgoing Server” tab and configure as follows (Assuming you need SMTP Auth):Screenshot%20-%2010_26_2009%20%208_41_45%20AM
  8. Then click the “Advanced” tab and configure as follows if you need to specify SSL or TLS:Screenshot%20-%2010_26_2009%20%208_46_06%20AM
  9. Click “OK”, click “Next”, then click “Finish”. On the accounts box, select the new POP3 account you just created and click “Set as Default” so that the box looks like this:Screenshot%20-%2010_26_2009%20%208_43_02%20AM
  10. Hit “close”. You should now be set to use Mail Merge. Be sure to change your default back when done (See below for this step under “cleanup”)

Entourage 2008

  1. In Entourage, click on Tools, then Accounts.
  2. Click on New, then MailScreen%20shot%202009-10-26%20at%208
  3. Click on “Configure Account Manually”
  4. Choose “POP” then click “OK”
  5. Configure your account like the setup below, putting in your SMTP username and password:Screen%2520shot%25202009-10-26%2520at%25209_004
  6. Click on the button under SMTP Server that reads “Click here for advanced sending options”
  7. Configure as follows depending on your server, the following is for one that requires TLS encryption:Screen%2520shot%25202009-10-26%2520at%25208_002
  8. Click OK, and return to the Accounts window. Select your new account and choose “Make Default”. You’ll want to change this back later:Screen%2520shot%25202009-10-26%2520at%25208_003
  9. Close the Accounts window, you should now be ready to mail merge!

Running the Mail Merge (After Setup)

Word 2007/Outlook 2007

  1. Open Word, Choose “Mailings” tab from the Ribbon, and click “Start Mail Merge”, Then choose “Email Messages”Screenshot%20-%2010_26_2009%20%209_04_32%20AM
  2. Next choose “Select Recipients” and then “Use Existing List”. In the dialog that pops up, select the CSV file containing the mailing list:Screenshot%20-%2010_26_2009%20%209_05_12%20AMScreenshot%20-%2010_26_2009%20%209_06_40%20AM
  3. Clicking on “Edit Recipient List” should show you something like this:Screenshot%20-%2010_26_2009%20%209_07_41%20AM
  4. Click OK. Now you need to use “Match Fields” to make sure that title, firstname, lastname, and e-mail address are all matched up properly (The file in my example doesn’t have headings on the rows, so the first row values (my information) is what Word feels is the best identifier of each field):Screenshot%20-%2010_26_2009%20%209_09_54%20AMScreenshot%20-%2010_26_2009%20%209_09_31%20AM

    Screenshot%20-%2010_26_2009%20%209_09_43%20AM

  5. With everything all matched up, you can now type your letter including Merge fields as you’d like. Here’s my example:Screenshot%20-%2010_26_2009%20%209_12_51%20AM
  6. After you have everything written, click on “Preview Results” and you can see the “live version” that your readers will receive:Screenshot%20-%2010_26_2009%20%209_31_37%20AM
  7. Once you’re satisfied, hit “Finish and Merge”, then “Send e-mail messages”Screenshot%20-%2010_26_2009%20%209_32_18%20AM
  8. In the box that pops up, find the e-mail column in the the “to:” drop down. Enter a subject as well, and hit OKScreenshot%20-%2010_26_2009%20%209_33_17%20AM
  9. Mail Merge will rev up and spit a bunch of files into your Outbox in Outlook, and these will eventually go out to the masses
  10. Cleanup: Remember to go to tools -> Account Settings and change the default back to your usual email account instead of the account you created in the “First Time Setup” above!!

Word 2008 / Entourage 2008

  1. Open Word 2008 and choose “Tools” then “Mail Merge Manager”
  2. In the window that opens, choose “Form Letter” under “Select Document Type”, then under “Select Recipient List” choose “Open Data File”Screen%20shot%202009-10-26%20at%209
  3. Chose the CSV file that contains your mailing list.
  4. Drag and drop placeholders where you’d like them in your mailing. Here’s my example:Screen%2520shot%25202009-10-26%2520at%25209_005
  5. Under “Preview Results” click “View Merged Data” to see the resulting e-mailsScreen%2520shot%25202009-10-26%2520at%25209_003
  6. Click “Generate e-mail messages” on the “Compete Merge” tab. NOTE: If Entourage is not your default mail client, this button will be grayed out. To make Entourage your default mail client, go into Entourage preferences and click the button that says “Make Entourage my default mail client”.Screen%2520shot%25202009-10-26%2520at%25209_002
  7. Fill in the appropriate values in the Mail Recipient dialog, and click “Mail Merge to Outbox”:Screen%2520shot%25202009-10-26%2520at%252010_002
  8. Because the world is a scary place, Entourage pops up a warning message like this below. Go ahead and let it send your mail since you know what script sent it!Screen%20shot%202009-10-26%20at%2010
  9. Cleanup: After the mail merge is done, you’ll want to go to Tools -> Accounts and set your e-mail default back to your original account so that you send as yourself and not as the group e-mail address you used for mail merge.

So there you have it, mail merge to any particular list you have, with a custom FROM header.

Backup & Restore Android Apps Using ADB

Android is an interesting platform for a number of reasons, one of which is it’s openness to developer and debugging tools, and the fact that it runs a modified form of Linux as an operating system. If you’re like me and quite fond of jumping around from ROM to ROM on your Android devices, a quick and easy way to backup your program files (and even settings) is quite desirable. Here’s my solution, hopefully it will help you. I know there are easier ways, but for a diehard geek who has the setup ready, this is the fastest way.

First step: Install Android Debug Bridge (adb)

adb is a tool found in the Android SDK, which you can download here. Once you unzip the SDK, add the directory to your path so you can call adb.exe from the command line (or just always run it from it’s tools directory). Once the SDK is installed, you can connect your device to your computer and make sure you SKIP the driver detection Windows automatically starts. If you don’t, Windows will install a generic USB device driver and adb won’t work. If you accidentally do this, follow the steps outlined here to fix the problem. You may want to use pstools to run Registry Editor as System to fully delete out the entries that the fix tells you to delete, otherwise it’s a long process of taking ownership of directories, giving yourself permission, and finally deleting the directory. Repeat 15 times. Sounds like fun right?

So how do you know you have adb installed and working? Well if you plug in your device and run the following command:

adb devices

and you get back something that looks like this:

List of devices attached

HT845GZ67642 device

then it’s working. If you get a message saying that no devices were found, then it isn’t!

Second step: Backup the applications (and settings)

Now that you have adb working, open a command line and make a new directory. To backup the apk files (The package files that store the program’s executables and libraries), run the following command:

adb pull /data/app ./

and you should see a long list of apk files being downloaded to your computer. UPDATE: if you’re using a ROM that places your applications on the SD card for speed and backup purposes, the above command won’t work. Instead use the following command:

adb pull /system/sd/app ./

Settings are a slightly different beast. They’re stored under /data/data on the device, and you may have to hunt around a bit to find what you’re looking for. running the following command will let you access your phone in the same way you’d SSH into a unix/linux machine, or work at the Mac command prompt:

adb shell

Some examples are below of often-backed-up files you may want to grab off your device:

MMS/SMS data: /data/data/com.android.providers.telephony/databases/mmssms.db

Browser settings: /data/data/com.android/browser

System WiFi Settings: /data/misc/wifi

Once you have everything you want backed up, it’s time to restore!

Third step: Restoring data

Assuming you want to restore APK files, and you have all of those in 1 directory, you can run the following command on a mac to install all those apk files:

find ./ –exec adb install {} \;

If you’re on a Windows machine, your command is a bit longer, and this assuems your apk files are in c:\backupapps

for %%f in (“C:\BackupApps\*.apk”) do adb install “%%f”

Alternatively, from a command line window in the directory you have your backed up apps, you can run the following on a Windows machine:

adb install *.apk

After the applications, you can restore whatever data files and settings you backed up. Oh, and for you apps2SD users that may have a really bloated extended partition and want to wipe clean, try the following to clear the EXT partition on your SD card so you can move new apps over (useful for those who are doing completely clean installs on SD cards that were previously used with apps2SD). You should do this from the Recovery image, not the actual live running version (e.g. reboot and hold Home to get to recovery image.)

mount /system/sd
rm -rf /system/sd/*

Hopefully this little walk-through was somewhat helpful for you! If so, leave a comment!