X marks the spot

random commentary on life, the universe, and anything

October 6, 2015
by puhfu

CPR for an old MacBook Air

Once upon a time, I picked up a 2nd generation (2,1) MacBook Air (Late 2008), 1.6 GHz Intel Core 2 Duo, 2GB RAM, 120GB HD, NVIDIA GeForce 9400M 256MB, and was thrilled with how small it was. 3 lbs woo!

MacBook Air

It ran 10.5 briskly. Then I made the mistake of upgrading to 10.6 and that’s when I pretty much stopped using it. It was dog slow and I was too lazy to downgrade back to 10.5. But recently, while cleaning out my old technology boneyard, I thought I’d give it another go at being useful. Always good to have a laptop around the house when you need to do something like remote desktop spy on your kids to make sure that they’re not on tumblr or playing CS:GO http://blog.counter-strike.net/. If CPR can be made as easy as 2 steps …

I picked up an OWC SSD replacement (Mercury Aura Pro MBA) and whew! It’s snappy. Upgraded to 10.7 and still snappy. 10.8? Snappy. 10.9? Less snappy, but definitely usable. So I’m pretty annoyed at myself for waiting so long to get on the SSD bandwagon, although I’ll be the first to admit that it was because I didn’t want to pay for something that wasn’t really working cost related. This is a 7 year old machine after all. I wonder how well it’ll do with Yosemite or El Capitan?

October 4, 2015
by puhfu

Finding the right collaboration tools (part 2) or can you declare task management bankruptcy?

It seems like every couple of years, without fail, I go through a time management/project management/collaboration tools reboot. In the dark days, it was merely shifting from one paper layout and project tracking system to another: Dayrunner to Day-Timer to Franklin Planner to Levenger Circa. My favorite was a Julie Morgenstern 2-page-per-day layout sold by Franklin Planner.
Julie Morgenstern planner format
There was a two-year period of sheer planner nirvana when Franklin dumped this planner format and Levenger picked it up for their Circa line. I really like the Circa line. I like the tactile feel of paper, especially when you get a good pen and good thick paper. Writing helps me to remember better than typing (I’m old that way). I really liked the layout. But I was always forgetting the planner in my office or car or at home and inevitably either I spent time copying from paper scraps and post-its into the planner, or had a planner-based collection of paper scraps and post-its. In any case, my hand was forced when Levenger dropped the Morgenstern planner format. (It’s still available at http://www.juliemorgenstern.com/books/balancedlifeplanner/oct-dec2015).

It was only a couple years ago where I felt that technology has emerged/converged to the point that I could get rid of the planner (with regret). I switched the family over to iCloud for calendar sharing, began using Omnifocus for task management on both laptop and iOS devices (iPhone, iPad), and added Evernote for knowledge and high-level project management and Dropbox for data and document hoarding. These worked fine for me, but really were inadequate for collaborative projects and there was always the issue of syncing between Omnifocus, which is an outstanding task manager, but is NOT a project management solution, and Evernote. It was better than before, where I had to mine paper in order to sync up everything, but I still had multiple repositories of data to reconcile (calendar/email/Omnifocus/Evernote/Dropbox).

The need that was met at that time was focused on me – my work, solo projects, and academic collaborations (papers, book) that I could muscle through with the tools at hand. But I wanted more. I wanted to find a solid collaboration tool that would allow my colleagues to sync with me across the different types of work that I do. And I wanted to pay as little as possible. From a technology perspective, it had to be multi-platform – web and mobile app for sure, but also a desktop/laptop client for those off-line periods.

A couple years ago, I went looking for a web-based collaboration tool based upon the following ideal requirements:

  1. Dashboard/Overview – an effective presentation of all projects
  2. Project Workspaces – well-designed spaces to organize data, tasks, etc for a single project
  3. Email integration – for reminders, status reports
  4. Document management, w/ integration to Google Docs, Dropbox, Box
  5. Task management, w/ integration with Omnifocus
  6. Calendar/event notification, w/ integration with Google Calendar, iCal
  7. Knowledge management – such as a wiki

For collaboration tools, I looked at:

  • Basecamp – which is still widely used, and pricing is still $20/month for 10 active projects, unlimited users, but as I’m the only user for the majority of the time, it seemed like overkill.
  • TeamLab Office which is now ONLYOFFICE – (why the ALL CAPS, bruh?) It has morphed into more of a productivity suite solution which is not what I wanted.
  • Teambox which is now Redbooth – which has also held firm on pricing, for $5/user/month, unlimited projects, Google Drive, Dropbox, and Evernote integration, and the workflow best matches what I want.
  • Feng Office – which amazingly enough has kept its name AND the same crappy UI
  • OpenAtrium – which is built on Drupal 7 (which I like), but is buggy to install, too much work to manage, and as it runs on Drupal, turns out to be even more of a resource hog than normal Drupal on the leetle server that I use for personal stuff (rackspace hosted, 512M RAM virtual server). I’m already using WordPress, so running 2 CMS seems rather silly and excessive. In any case, I have tried iterations of this from 0.7 through the current 2.4 code release because I do love me my Drupal. Same same. So sad.

I wound up running the at-the-time available, but unsupported Teambox 3 code, using Ruby on Rails. It was easy to bring up, but while the fun+tinkering:sysadmin work ratio was very high, so was the time required:sysadmin work ratio. I had better (higher reward:time expended ratio) things to do with my time. I abandoned it.

For a couple years, I have muddled through using a combination of:

  1. Whiteboards for dashboards and overviews
  2. Evernote notebooks for knowledge management and rudimentary project workspaces
  3. Dropbox for file sharing
  4. Omnifocus for task management
  5. email email email

Not terribly integrated, but survivable as I had to significantly trim the breadth of my work in order to focus on our Cerner EHR implementation and roll-out. However, we are (finally) coming to the end of the go-live cycle and many of those long dormant (i.e. ignored) projects and papers are starting to emerge out of cryo. My work teams have also expanded in number and breadth and I need a way to track and manage that as well.

I had to declare email bankruptcy to start the year fresh. It seemed like a good time to look at collaboration tools again.

Next post: I find Trello (think pinterest for projects) and bitrix24 which is a collaboration package which is free for fewer than 12 users, with unlimited projects. Do we have a winner?

July 23, 2015
by puhfu

WordPress, permalinks, and 404 errors

One of the things that has been on my WordPress to-do list has been changing from Default (http://localhost/?/p=123) permalinks to more SEO-friendly ones (http://localhost/sexy-permalink) for a couple of academic websites that I support.

WordPress is normally so ridiculously simple to use, even self-hosted, but getting this change to work took a fair amount of Google spelunking.

The Rackspace CentOS 6 virtual server that I am running this particular site on uses apache VirtualHosts to map each WordPress site to a separate directory.

# site1.org
     DocumentRoot /var/www/html/site1
     ServerName site1.org

# site2.org
     DocumentRoot /var/www/html/site2
     ServerName site2.org

Things that didn’t work for me but should be tried:

  1. Deactivating plugins (to avoid WP conflicts)
  2. Verifying that apache has loaded mod_rewrite (it was)
  3. Verifying that the root directory for the WordPress instance had a .htaccess file (it did)
  4. Verifying that .htaccess has something like this: (it did)
    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /
     RewriteRule ^index\.php$ - [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . /index.php [L]

Note: I also ran into the problem of this code disappearing (apparently) randomly from .htaccess. Turns out that when changing Permalinks from Default to posts (or any other permalink setting actually), WordPress tries to modify the .htaccess file. Because my permissions were set 644 (rw-r–r–) and WordPress runs as the owner, when toggling modes back and forth (on/off), WordPress was editing/re-editing the file. Setting permissions to 444 (r–r–r–) fixed that.

What worked:

The sub-directory in which WP was installed had the right .htaccess, but httpd.conf was not allowing apache to use that file. Specifically AllowOverride was not set to All.

Since I’m using CentOS, my httpd.conf file is in /etc/httpd/conf/. Using vi, I searched for anywhere AllowOverride was set:

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
    Options FollowSymLinks
    AllowOverride None

This is good. I want my root directory to be locked down. It’s the next section that is the one I want.

# This should be changed to whatever you set DocumentRoot to.
<Directory "/var/www/html">

# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
    Options Indexes FollowSymLinks

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
    AllowOverride None

# Controls who can get stuff from this server.
    Order allow,deny
    Allow from all


Again, this is fine. Now I need to add exceptions for the specific directories.

# allow .htaccess files for wordpress directories
<Directory "/var/www/html/site1">
    AllowOverride All


Reference that helped:
Setting Up Pretty Permalinks in WordPress Using htaccess and mod_rewrite on Linux (CentOS 6)

July 7, 2014
by puhfu

Nothing like a birthday to remind you ….

… of how many websites that have your birthday.

June 30, 2014:

  • VeggieGrill (free entree)
  • Ruby’s Diner (free sundae)
  • IHOP (free Rooty Tooty Fresh ‘N Fruity Pancakes)
  • Farrell’s (free sundae)

July 1, 2014:

  • Office Depot (5% extra reward points in July)
  • Sport Chalet (3x points in July)
  • Cinnamon Productions via SpotOn (free cupcake)
  • Footsmart (15% off)
  • It’s a Grind Coffee House via SpotOn (free small drink)
  • Kimpton Hotels (20% off daily rate, thurs-sun, 2 glasses champagne + dessert, surprise gift, at participating hotels, blackout may apply, booked using code “BUBBLY”)
  • StubHub (free electronic delivery)
  • Starbucks (free drink, 15% off at starbucksstore.com)

July 6, 2014:

  • UCLA Fund

July 7, 2014:

  • AAP
  • FlyerTalk
  • Princess Cruises (animated card)
  • Everton Football Club (okay, a generic birthday message from Roberto Martinez? I’LL TAKE IT.)
  • Everton Direct (£5 off next order of £40)
  • JetBlue TrueBlue (500 points for flight in July)
  • LA Dodgers (15% off next purchase)
  • Tuttle-Click Capistrano Ford ($10 towards next service)
  • Clear (identical email to last year’s email)
  • Facebook (ugh. stalkers.)
  • Kellogg’s (100 Family Rewards points)
  • CafePress ($15 off next order of $50 or more)