Gotcha’s when Dual-Booting Linux on Windows

WiFi won’t work unless you:

  1. Disable Secure Boot in BIOS
  2. Disable Fast Boot in Windows

Best options for SSHFS on Mac OSX

Thank heavens for SSHFS! SSHFS allows me to locally mount remote linux/unix filesystems. This allows me to create and edit remote files using all of my native software! Sadly, the documentation for SSHFS options are weak, and the default options never work well for me. I’ve used SSHFS nearly every day for the past 3 months, and here is my recommendation for options for OSX:

nohup sshfs -ofollow_symlinks,allow_other,no_readahead,noappledouble,nolocalcaches <user>@<server>:<remote folder> <local folder>
  • nohup – makes the connection more reliable
  • follow_symlinks – optional, but is necessary if you want symlink folders to work
  • allow_other – let’s you assume file priviledges of the remote user
  • no_readahead, noappledouble, nolocalcaches – reduces overhead and makes Finder work MUCH faster

BONUS Want to make SSHFS work beautifully with SSHFS?  Check out this teaser:

If you want this, follow these instructions:

  1. Create a mount folder
  2. In the folder, create a script with the extension “.command”
  3. Add this to the script:
SCRIPTDIR="`dirname $0`"
cd $SCRIPTDIR/../
nohup sshfs -ofollow_symlinks,allow_other,no_readahead,noappledouble,nolocalcaches <user>@<server>:<remote folder> <local folder>
  1. Allow the script to be executable.  I usually do this from the terminal by typing:
chmod +x <path to script>
  1. Now when you double click the script, the folder will turn into your remote folder.  To go back, simple click the eject icon next to the folder.
  2. Profit.

Automating Browsers with Selenium

Automating browser actions from an external script is easier than you think.

The answer:  Selenium.

Selenium is a browser automation tool suite which is compatible with several popular browsers, such as Firefox, Chrome, Internet Explorer and Opera. It is primarily written in Java, but it also has extensions for Python and Ruby.

Building on my Python and Javascript experience,  my experience was mostly painless for Firefox and Internet Explorer.  Getting the extensions is fairly easy, and source code was straight forward.  I really like how I can grab html objects by id OR class or xml.  Here is a very simple example of using the Selenium python extension to 1) open Firefox, 2) navigate to google.com, 3) enter text into the search box, then 4) hit enter.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()
browser.get('http://google.com')
assert 'Google' in browser.title
searchBoxes = browser.find_elements_by_id('gbqfq')
searchBoxes[0].send_keys('hello' + Keys.RETURN)