Essentials of Being A Geek

In addition to an academic, I also consider myself a “geek“. But am I really one? It seems according to BuzzFeed, I don’t make the cut. However I cite the following:

  • I have a love of learning in depth information on a variety of subjects.
  • I independently seek out new items to geek over, since I know if I took everyone’s suggestion, I’d probably be very unproductive (for example, I’ve been avoiding Doctor Who for a few years now since I have a feeling I’d probably fall hard for it)
  • I own more gadgets than everyone in my family combined.
  • I consider building VoIP phone systems, creating new software products, and configuring network services on my home network “leisure” activities.

Yet when I took the BuzzFeed quiz a few weeks go, it told me that I was barely geeky. Surely, the BuzzFeed article must be wrong! Upon closer inspection…

  • The first 40 items relate reading comic books
  • The second 40 refer to playing traditional ‘geek’ games, like D&D, Magic, etc…
  • Then a giant chunk on gaming, tabletop and video
  • Around question 140 we get to books (Oddly Star Wars books are mentioned, but not Star Trek)
  • For about 100 questions we cover Science Fiction franchises.
  • Around question 237 we hit computers, and cover them for only 30 questions.
  • The remainder hits academia (Because us academics are geeks now, thanks probably to The Big Bang Theory),  and science.

It’s interesting to me that the BuzzFeed staff seems to have a bit of a skewed idea of what a “geek” does. Most the list (80%) focuses on consumption of content, versus creation of content. I suspect though that the ‘geekiest’ among us probably are more than passive absorbers of material. How do you fix the list? In my opinion, weigh the “create” items heavier than the “consume” items, but that is just my geeky opinion! What’s yours?

Diagram By: Duncan Hull

Magical Tech Support

Once every few weeks I get a personal request for computer help or troubleshooting. And about 50% of the time, the person starts to show me the issue only to have it not appear. They then exclaim “but it wasn’t working a few minutes ago!” or “Oh wait… that’s the problem!”. I literally don’t say a word, and the problem is fixed.

yuno

Afterward I usually make some comment about computers being scared of me, fearing my wrath and thus ‘shaping up’ when I’m called in. I also reassure the person that I don’t think they are crazy – I believe they had a problem. Some of the most vexing problems are the transient ones that pop up, annoy the user, and go away just as mysteriously as they came. And the magical force of Jon is not always permanent – sometimes problems do come back since they never really went away in the first place.

But in that golden time where the solution is immediately clear or the problem vanishes, I’ll gladly appear supremely awesome.

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!

Oh, I was on a Podcast Before Christmas

Since we recorded it the day before I left Shreveport, I sorta forgot to mention (widely) that I teamed up with my friend Todd Ogasawara on an episode of his Mobile Views podcast entitled “Life after Windows Phone, Project Sienna, & Credit Card Security“. It was a great conversation, and perhaps the start of a few more. So if you’re bored, and want to hear me ramble on about things (along with Todd speaking much more eloquently), take a listen.

What Happens on The Internet Stays On The Internet

Earlier today I received the following email:

My name is XXXX.  There was an article you posted on your website.


http://jonwestfall.com/XXXX/XXXX

Anyway, it is not very flattering.  I have been out of the job for a couple of years and have had job interviews, but when this article comes up, it is usually fatal to any job prospect.

If not too much trouble, could you please remove the article.  You don’t have to do it, and i understand if you don’t,  but it would help me and my family so much if you could.

Several years ago I used to post “Stupid People Alerts”, links to news articles that were examples of people acting in less-than-responsible less-than-intelligent ways. Apparently one of those articles has followed someone around, bombing their job prospects. I decided that after so many years I was fine removing the article, but as he points out, I didn’t have to (And there are still copies of the original article that I posted to out there, so his work is not done). I wish him the best of luck in finding a job, as soon as Google takes my articles out of its cache!

Geek Squad Badges: Symbols Worth Faking!

One of the items I collect are badges. And while I like Law Enforcement Officer (LEO) badges*, I tend to steer toward badges that are meant to give a psychological sense of authority, rather than authority granted by law. It’s the psychologist part of me that finds these ‘symbols’ intriguing. And it’s the geek part of me that was drawn to Geek Squad Badges. Recently I was able to acquire a few on eBay for reasonable prices (after stalking them for some time), and found one that didn’t look like the rest. It was a Fake!

Continue reading “Geek Squad Badges: Symbols Worth Faking!”

This is Why You Save Everything Locally!

So earlier this week I was googling something related to SQLite databases, and came across a rather interesting topic on reading them locally using Javascript. At the bottom of the ‘answer’, I found a link to a blog with more information: http://blog.developeronhire.com/create-sqlite-table-insert-into-sqlite-table/

And what did I find when I went there? This:

An unhappy message saying that the owner of the blog had exceeded their bandwidth. A google Cache of the page seemed to be a good alternative, until you realize it doesn’t contain anything useful. So in other words, I have no idea if the content on that page would be useful or not in my quest!

This is why these days, when I do find content that’s useful, I immediately fire up Evernote. I’ve written before about how I use Evernote for scanning, and other neat things, and if you weren’t convinced then, just wait till you hit a 509 error in the future – then you might want to either start using Evernote or, at the least, the “Save page” feature of your browser to grab an HTML copy!

The Bookmarklet Combiner is Awesome – and So Are These Bookmarklets

A bookmarklet is a small piece of javascript code that is run by clicking on a bookmark on your browser’s toolbar. Lots of sites have them, and I use a bunch in my daily life. One thing that’s annoying is the requirement that each has it’s own bookmark on your toolbar – so after 3-4 bookmarks, you’re out of space! Thankfully there is a really cool tool named Bookmarklet Combiner which allows you to copy the javascript code from each of your bookmarklets into one “super” bookmarklet.

Here’s how it works. Load up the Bookmarklet Combiner and put in the Title and URL of each Bookmarklet you want to combine. You can get the Bookmarklet’s URL 1 of 2 ways.

  1. Open up your browser’s bookmark manager, locate the bookmarklet, and copy the code. It probably starts with ‘javascript:’
  2. I was able to drag the bookmarklet directly from the toolbar to the URL field in my browser (Chrome). It kept the “URL” text in the box, so you’ll want to remove that so that ‘javascript:’ is the first thing in the URL box.

Now add in all of your Bookmarklets and use the rest of the page to customize the combiner to your liking. Finally you’ll drag your new bookmarklet to the toolbar. Clicking on it should produce a full menu of bookmarklets you can then choose to run! Better yet, the Bookmarklet Combiner will give you a special link you can use to come back and edit your bookmark in the future!

So you say you’d love to combine some Bookmarklets but you don’t have many of them? Well here are the ones I use, they’re pretty awesome

There you go – a great collection to get you started!

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!