The Smashrun Fusion Mashup: Part 2

So, I finished the first version of my FusionRunner script mentioned in the previous post. Currently, it takes all the runs from Google Fusion Tables and imports them into Smashrun after massaging the data. You can see a list of my “runs” (they’re really walks so far) Click a run to see more details. The following features are currently supported:

  • Caching of Google OAuth tokens/secrets on the filesystem
  • Ability to convert terribly formatted Fusion Table rows from My Tracks into something usable
  • Importing of all runs into Smashrun with tags based on activities

The following features are the next steps:

  • Tracking which runs have already been imported to Smashrun (probably using another Fusion Table!)
  • Contacting Smashrun and asking about including elevation data and maybe map data

I’ve emailed Smashrun, so let’s hope they get back to me. Here’s a current version of the program for your perusal:


FusionRunner: A Google Fusion Tables prototype

The other day, I kinda sorta got excited about running, mainly prompted by a friend telling me about a half-marathon in May. I’ve been needing to find an exercise outlet for a while, and this may be it. Throughout this experiment, I’d like to track my progress with some level of detail, and mapping/distance measurement seems to be a component of this. There are various services for this, like Nike+, and there’s a really neat one called Smashrun that I’d like to use. The only problem is getting data into it, which is either manual entry or through Nike+, which basically requires you to buy their stuff.

A couple days ago, I found out about My Tracks from Google, an Android app that’s free. I installed it, and successfully tracked my walk back to our house. It was amazing. Once you’re done tracking, you can click a couple buttons and export to a couple different Google services, including something I’d never heard of: Google Fusion Tables.

You can access Fusion Tables here. So far, I’ve got it authenticating with OAuth (which is awesome), and doing a select on the first table, which is the export of my walk data. Here’s what the current output looks like:

As you can see, there’s a LOT of data here. The meat for this application is the last line, which when formatted a little nicer, looks like this:

Ruby walk around school

Created by My Tracks on Android.

Total distance: 1.83 km (1.1 mi)
Total time: 30:06
Moving time: 18:41
Average speed: 3.65 km/h (2.3 mi/h)
Average moving speed: 5.88 km/h (3.7 mi/h)
Max speed: 9.00 km/h (5.6 mi/h)
Min elevation: 29 m (96 ft)
Max elevation: 65 m (214 ft)
Elevation gain: 81 m (264 ft)
Max grade: 0 %
Min grade: 0 %
Recorded: 1/16/12 7:08 PM
Activity type: walking

Holy crap! That’s a lot of data in one row! And I have all of the geometry data too!? Sweet! Anyway, here’s a little program that dumps this to the screen. Soon, I’ll make it do the required stuff to log into Smashrun and input a new run with the stats filled in (of course, only if the activity is running).

Toggling Hidden File Visibility with Applescript

I wrote a quick little applescript today that allows one to show or hide hidden files on demand, since this doesn’t seem to be an option in Finder.  Applescript is a terribly designed language, but it does allow you to easily get crap done in OSX.  I have it in github here, and it’s so concise, I figured I’d just paste the current version here:

set Status to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if Status = "OFF" then
	do shell script "defaults write com.apple.finder AppleShowAllFiles ON"
else
	do shell script "defaults write com.apple.finder AppleShowAllFiles OFF"
end if
do shell script "killall Finder"

Just download it, open it in the Script Editor (I can double click it), and do Save As. Then, select Application as the type, and do Run Only and save it. Then, hide it away and make an alias to it, and drop that on the desktop. Here’s what mine looks like:

And after I double click that Alias:

I like this – it makes basing things on system configuration really easy.

wget mirroring with external references

I was having trouble mirroring a website that had all its images hosted on a different domain, which happened to be random subdomains of cloudfront.net.  I tried adding *.cloudfront.net to the -D parameter, but that didn’t work.  It turns out it’s smart enough to figure out that all subdomains in the domain list should be included as well:

wget -mkpEK -D www.allshepherdrescue.org,cloudfront.net -H -t 3 \
     --restrict-file-names=windows http://www.allshepherdrescue.org/

This goes into mirror mode, changes relative links to the proper form, fixes the query string urls to static ones, and downloads all files from the domains in the -D parameter.  The manpage details all of this.

Removing advertising from Ubuntu Server motd

Ubuntu is a good product, mainly because it’s free.  They recently started some service called Landscape that lets you graph your server activity or something – I don’t really care as I don’t have hundreds of machines running Ubuntu Server (nor do about 99% of their users).  I got tired of seeing this when logging in over ssh:

Linux joint 2.6.32-309-ec2 #18-Ubuntu SMP Mon Oct 18 21:00:50 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.04.3 LTS

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

  System information as of Fri Nov 25 06:08:51 UTC 2011

  System load:  0.0                Processes:           79
  Usage of /:   16.1% of 14.76GB   Users logged in:     0
  Memory usage: 11%                IP address for eth0: 10.0.0.1
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/
---------------------------------------------------------------------
At the moment, only the core of the system is installed. To tune the
system to your needs, you can choose to install one or more
predefined collections of software by running the following
command:                                                             

   sudo tasksel --section server
---------------------------------------------------------------------

No mail.

I mean, jeez, that’s some text to print on login!  I found out it’s all controlled with this script and directory in /etc/update-motd.d.  There’s a bunch of scripts in there that run in order using normal SYSV startup script logic.  If you do the following, it produces a much nicer message:

sudo rm 51_update-motd 
sudo vi 50-landscape-sysinfoz
  # Change this line:
      /usr/bin/landscape-sysinfo 
  # to this line
      /usr/bin/landscape-sysinfo | head -n -2
sudo rm 10-help-text

Now, it should look more like this when you log in:

Linux joint 2.6.32-309-ec2 #18-Ubuntu SMP Mon Oct 18 21:00:50 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.04.3 LTS

  System information as of Fri Nov 25 06:26:45 UTC 2011

  System load:  0.01               Processes:           85
  Usage of /:   16.1% of 14.76GB   Users logged in:     0
  Memory usage: 15%                IP address for eth0: 10.0.0.1
  Swap usage:   0%

No mail.

Much more manageable!

An adventure with Debian Wheezy

I installed the new Debian testing release on my NAS, and was so impressed with it I decided to convert my main desktop from Ubuntu 11.10.  I was really unhappy with the new Ubuntu – it kept kicking me into Unity instead of GNOME, sound wouldn’t work, it felt really sluggish, it was packed with stuff I’d never use, etc.  Debian is clean, runs faster, and boots faster (possibly thanks to Linux kernel 3.0).  It automatically recognized and assembled my software RAID, so all I had to do was make a mountpoint and an entry in fstab and exports, run mount -a, then do a quick exportfs -a and everything was mounted and exported.  Brilliant!  To get samba working, all I had to do was add this to /etc/samba/smb.conf:

[vector]
   comment = Vector
   browseable = yes
   path = /vector/vector
   guest ok = yes
   read only = yes

And do a quick /etc/init.d/samba restart.  Shared!

Sound wouldn’t work at first (a common problem with Linux and the Nvidia GT210/220 HDMI audio), but after I built and installed the latest Nvidia driver, everything kinda started working like magic (I also had to unmute all the S/PDIF channels in alsamixer).  Now I only have a few problems.  The first is default window dimensions.  Here’s what it looks like when I open gnome-terminal:

Yeah, a little bit too narrow, right?  So, every single time I open one, I have to drag it out to be a usable size.  I have 80×24 set in the settings, but those are apparently being overridden by something else in GNOME 3.  Any help on this would be much appreciated.  It happens with other apps to, like KeepassX, so it seems to be something at the GNOME 3 level and not within the terminal app.

Another thing that was annoying at first was the inclusion of Music, Documents, Downloads, etc. in my nautilus favorites area (even though I never use these folders in my home directory).  The solution was simple and can be done with vim, so I was sold.  Just look in ~/.config/user-dirs.dirs and edit/delete whatever you want.  I ended up linking the folders I actually use to where they should be (on my NFS mounted RAID) and deleting things like Documents (those belong on Google Docs, obviously).

Installing wine is a bit weird.  To do it easily, go here, then download all the packages for your architecture one-by-one into /tmp, then do this:

  sudo apt-get install lib32nss-mdns
  sudo dpkg -i *wine*
  sudo apt-get install -f
  sudo dpkg -i *wine*
  sudo apt-get install -f
  winecfg

Yes, I know it’s all there twice, but that’s what I had to do.  Dependencies are weird.  Winecfg will prompt you to install some stuff.  Do it.

Update 2011-11-13

I figured out the problem with the window sizes.  If you set up TwinView with Nvidia driver version 285.05.09 x86_64 in the following way:

  • 1920×1080 monitor at absolute position 0,0
  • 1680×1050 primary monitor at absolute position 1080,0

You can’t move windows on most of the TV screen – it only lets you use about 1/4 of it.  Also, the alt-tab menu stretches out the previews horribly vertically so you can’t actually preview them.  Also, the default window size is stretched as shown above.  I have no idea why all this geometry is dependent on overall desktop size, but it should really be fixed.  After changing it so the 1920×1080 monitor is logically Right of the 1680 monitor in nvidia-settings (which is annoying since it’s hanging on the wall above the other monitor in real life), all the problems I mentioned go away.   It seems like this is a problem with GNOME3, but it could be nvidia’s problem too.  It’s hard to know which bug tracker to report it to, but this setup worked with LXDE and old GNOME, so maybe I’ll try the GNOME people first.

Another thing I did today was adjust my MTU to 9000 on both network cards.  You need a switch that supports jumbo frames for this, and I happen to have one.  If you don’t know if yours does, it probably doesn’t.  Also, I changed my fstab line for mounting the NFS share and the exports line on the NAS to the following, respectively:

/vector/vector 192.168.0.0/16(rw,async,no_subtree_check)
192.168.1.5:/vector/vector	/vector	nfs	async,noatime,rsize=32768,wsize=32768	0	1

This should improve performance.

Save As… a dying breed

OK – I’ve been thinking about this for a while, and something in Google+ prompted me to make this post.  It goes like this:

Please don’t change the following:

See that?  See how there’s things like Save As… (I’m looking at you, OSX).  See how there’s actually a menu with entries in it that drops down and allows you to quickly scan text rather than randomly shoot your eyes around a “ribbon” (I’m looking at you, Microsoft Office 2007).  Stop changing this.  We’ve had this design for more than 20 years, so it’s likely quite a few of us are more than a little used to it now.  Also, make all the keyboard shortcuts work right.  For instance, Ctrl-Shift-s should always be Save As… and Ctrl-s should always be Save.  This applies to any and all applications that have some sort of document editing capability.

There.  Just had to get that off my chest.  I couldn’t find Bullets and Numbering in the stupid MS Office 2007 ribbon at work, since they got rid of the entire Format menu and replaced it with the impossible-to-navigate ribbon.  And today I heard there’s no Save As… in OSX Lion – I feel for you, dudes and dudettes.

The Quest for the Best Beef

I’m a pretty big fan of NY Strip Steaks. I usually just buy them from Costco (USDA Prime for about $15/lb). But, recently I’ve been curious about trying some other sources. I already put in an order to Baldwin’s, and I also plan on trying Lobel’s. I’ll also probably get a grill sampler from La Cense Beef. There’s quite a few local places that sell grass-fed as well, so I’ll be trying some of those.  Clark’s Never Sell The Land Farm is on the list.  Should be fun.

This all stemmed from reading these articles:
Ordering Up Beef That Roamed the Range
The first answer here

Update 2011-11-5

I’ve been eating Costco Prime NY Strip all week. The quality is very consistent, and the flavor is buttery and rich. These are cut 1.5″ thick, so you have to let them warm up at room temperature for quite a while before cooking, and you have to adjust Alton Brown’s recipe to about 3-4 minutes in the oven instead of the normal 2 to get it medium-rare. But, when done right, these things are killer. As a starting point, I’m going to give these an 8/10. I think this is fair, and I could always adjust it later if I find something REALLY good that deserves an 11 (or I could just give it an 11/10, maybe that’s the right way).

Costco Prime NY Strip from Store #1000: 8/10

I tried one of the burgers from Baldwin’s today. It was outstanding – I cooked it so it was warm in the center, but still rare enough to get massive beef flavor. I had it with some American cheese and lettuce for a bun, and just a touch of ketchup. This was one of the best burgers I’ve had for quite a while, and I’ll be trying the other three soon with different levels of done-ness. The beef has a bold flavor – it’s rather rich, and very clean. It tastes a lot like Ray’s Hellburger in Arlington if you order it rare. They supposedly grind up high-end roast and steak to make those burgers. These are a little spendy, but so far are definitely worth the premium price.

Update 2011-11-11

I’ve been eating the Baldwin’s beef I ordered, and it’s pretty darn good. The hamburger and burger patties we received are excellent – some of the best ground beef my wife and I have ever had. It’s rare that she even asks for a hamburger, let alone enjoys eating one, and she enjoyed the one I made for her today. There seems to be a perfect mixture of fat in the burger meat – it is just greasy enough to fry without sticking, but not enough to make a puddle in the pan or have to pour off fat – well done! I’ve been eating these burgers anywhere between medium-rare and well-done, and they’re good across the board.  I have to give these a 9/10.

Baldwin’s Beef Burger and Burger Patties: 9/10

I also ordered 2 NY Strip Steaks from Baldwin’s, and I have to say I’m not as impressed as I thought I’d be. The meat is extremely tender, and if you’ve ever dealt with game meat before, it feels a lot like that when raw. It cooks really quickly, and it’s cut about 3/4″ thick. Alton Brown’s steak recipe got it nearly to medium before I knew it (30 seconds on each side to sear, 2 minutes in the oven at 500F). Because of this, one has to let them come to room temperature even longer than regular steaks to avoid the cold-in-the-middle problem. The flavor is really beefy and even a little gamey, which is how I like my burgers, but not how I like my steaks. I’ve read this is a common problem with grass-fed beef – it doesn’t taste buttery and rich like I expect Prime NY Strip to taste. It’s good, but I still prefer the Costco NY Strip at this point. The Costco stuff also costs about $3 less per pound, so there’s that. I’ll give this a 7/10.

Baldwin’s NY Strip: 7/10

KeePassX: The Perfect Password App

Recently, I’ve been having some trouble with passwords. Either the login name is a string I never use, and therefore never commit to memory (like my real phone number that I mask with Google Voice), or the password policy forces me to use a password that I’ll never remember (like sites that keep track of your past passwords, or require 11 characters of alternating symbols, letters and numbers, etc.). Since I use spamgourmet, any site that requires an email address as a username is another puzzle – sometimes I even have to login there to find the right one. Also, I have a concern that if I die, my wife will have real trouble getting into all my accounts, so it would be nice if I could just leave her one password to give her access to all that information. So, I broke down and started using a password organizer app. Now, I have always been averse to using these applications for a variety of reasons (online companies having all your passwords, plaintext in swap space / memory, keyloggers, insecure encryption, etc.), but I managed to find one that’s open source, never caches my master password, widely used, and has extreme cross-platform capabilities. KeePassX is the name, and it’s available in Ubuntu. Installing it is left as an exercise to the reader. Once you get in there and add a few passwords, it starts to look something like this:

It allows you to mask both your usernames and passwords (both optionally) from the top-level view. It has clipboard capabilities, so you can just copy your password to the clipboard by clicking a button, and never see it on the screen in plain-text. Their security is really well-done. But the big realization today was that they have an Android App! This app only need the kdb file from any instance of the application, and of course the password to decrypt it. It’s available in the market too! But, how do you sync changes between your main desktop and your phone? Dropbox! Using the dropbox mobile app, I simply synced the kdb file onto the phone, and then opened it. KeePassDroid popped up and asked if I wanted to make it the default database, and I checked the box. Done.

Now, whenever I make a change, it syncs over Dropbox like magic.

English Instructions for Tomato SIM Cards found in Croatia


tomato signs

With Tomato cheap talk and send SMS messages to all networks in Croatia at the lowest prices simply, without complications and without signing of the contract. What you see, it will be.

practically New Tomato and the number of vouchers can be purchased at retail outlets across the country – in kiosks, shops, supermarkets, post offices, petrol stations.

Tomato SIM Card and Activation

Tomato SIM card is PIN and PUK. During activation, as well as each time you switch your mobile phone, enter PIN number. If you enter the wrong PIN code three times in a row, Tomato SIM card will be blocked. Unblock it by entering the PUK number. If the PUK blocked.

Change PIN

To change your PIN number, enter the following combination: ** 04 * old PIN * new PIN * new PIN #

Note: The PIN number can contain up to eight digits.

Keep your SIM card and PIN / PUK numbers.

After having spent more initial amount of Tomato on your account, you can restore it bonovimaa and e-vouchers in the amount of 20 kn, 50 kn, 100 kn and 200 kn.

Shelf Tomato coupon is 7 days for the vouchers of 20 kuna, 75 days for the vouchers of 50 kuna, 150 days for the vouchers of 100 kn, 225 days for the vouchers of 200 kn.

On each voucher Tomato is 14-digit number needed to activate coupon. Via mobile phone, enter it as follows:

* 103 * 14-digit number 3 (CALL)

Tomato bill can be additional cost and the toll free number 092 99 88 to access the Tomato menu. When you enter a 14-znamekasti number, you can check the new state of their account and Tomato isetka date of its validity.

What I have in my account Tomato?

If you want to check how much money you have Tomato on your account, enter a combination:

* 101 # (CALL)

On-screen mobile appears telegona amount that image in your account.

How I have free minutes and text messages on your account Tomato?

The remaining number belatnih SMS you can find out if you enter the combination * 100 # (CALL)

If you want to know how much you free minutes left, enter the combination * 102 # (CALL)

Where to buy Tomato products? * The Mercator shopping centers, Konzum, Metro Cash & Carry, Emmezete, berries, Interspar Ipercoop