Exercise, Hacking

Exercise + Gadget Lust

I have to give Adidas credit where credit is due. They’ve managed to tie a $140 upsell to a pair of shoes I bought for $55.

It’s no secret that I, like many nerds, suffer from gadget lust. When I see a new gadget, my thought process goes something like: “Oh that’s so neat… but it’s kind of expensive, and I could build something way better for less money… but I’m never going to actually get around to doing that so I’ll just buy it.”

So when I noticed a sticker that said “miCoach compatible” on the new pair of running shoes I got from the clearance rack at DSW, I was intrigued. “Compatible” is almost certainly a hardware term. Was miCoach some sort of Adidas version of the Nike+? Did this mean that my shoe had a secret cavity for storing circuit boards? And would that cavity also fit the Nike+ so I could log my workout data automatically?

The answers to all of the above was yes. Hooray!

I did some research on the miCoach. It’s similar to the Nike+ (widget you put in your shoe to track your workout) but is more of a comprehensive package (includes a heart rate monitor and pacing tool which tells you to slow down / speed up according to your HR). It’s also about $100 more expensive than the Nike+. The shoe sensor has a user replaceable battery, but still.

Then I did some research on the data export. Because what fun is collecting data if you can only get it via someone else’s bad UI? Nike+ hacking is well traversed ground, with easy access to the XML workout data. miCoach doesn’t seem to have much going on, and uses a proprietary binary format to store the workout data (which is then presumably decoded by their servers). Gross.

I was all set to buy a Nike+ when I found out that my 5th generation iPod was not compatible with it. In order to use the Nike+ I’d have to pick up a new Nano. The price of the Nike+ just got a lot more expensive.

After talking to some of the Resistor folks I decided tinkering with the miCoach could be fun. Between the raw data from the device and whatever software is used to transmit it to the the miCoach servers we should be able to get *something* interesting. It’s admittedly pretty far out of the realm of things I’ve done before, so it’ll either be a good learning experience or a huge road block / dead end.

We’ll see when it gets here next week!

Exercise

Couch to 5k Week 3

I’m actually just starting week 4, but I realize I forgot to post last week’s track list. If anyone wants a copy of the mix drop me a line and I can post it you can download it here.

Of Montreal – Sink the Seine
Duran Duran – Notorious
YTMND – Tubesdance
Elf Power – Under the Northern Sky
No Doubt – Excuse Me Mr
Elliot Smith – Son of Sam
White Stripes – Fell in Love with a Girl
Soul Couging – Adolpha Zantziger
Weezer – Hash Pipe
Ani DiFranco – Virtue

LEGO

And another note on LEGO

Another thing that bugged me about the LEGO store…

One of the employees was enthusiastically telling us all about LEGO (as employees ought to), and showed us a magazine dedicated to “Adult fans of LEGO” or AFOL.”

He then went on to explain that within AFOL is a subgroup, AFFOL or “Adult Female Fans of LEGO,” a rare and mystical breed of AFOL. He proceeded to flip through the magazine to show us a photo of a REAL LIVE LADY who ACTUALLY BUILDS WITH LEGOS!

I wasn’t in the mood to pick a fight over nomenclature, but really? When are people going to realize that singling out women in a male-dominated field, be it work or play, is counterproductive? I’m not an AFFOL any more than I am a “girl gamer.” Drop the extra adjective, people.

LEGO

Hundreds of LEGO bricks

I’m in need of many, many LEGO bricks for what is currently a SECRET project.

This week I went to the LEGO store in Paramus, NJ. It was a bit of a let down, and not really worth the hour of fighting traffic it took to get there. They didn’t have any big tubs o’ bricks, just kits, and their pick-a-brick selection was pretty limited (I was looking for 1×2 bricks).

What I DID find was an amazing resource, Brick Link. Bricklink is like eBay for LEGO bricks. You can find pretty much any size/shape/color. Their interface is a little clunky, without integrated shipping or payment, but it gets the job done.

I ordered roughly 700 red LEGO bricks for $40, most of which was the cost of shipping. It’s marginally cheaper than the cost per brick of a big tub, but I was able to hand select the colors and shapes that I wanted.

More details when I get the LEGO bricks in…

Exercise

Couch to 5k Week 2

This week I mixed my own Couch to 5k track. Rather than just slap the vocal cues onto a mix, I picked songs that fit the tempo and length of each run/walk segment. The result is interesting, although it sacrifices musical flow in a few places. It’s difficult to find songs that are exactly 1.5 and 2 minutes long, so some of them are cut short in places.

The track list:
Me First and the Gimme Gimmies – Tomorrow
K’s Choice – Paradise in Me
Screeching Weasel – Totally
Men Without Hats – Safety Dance
The 5,6,7,8’s – Woo Hoo
The Smiths – Girlfriend in a Coma
Supernova – Vitamins
The Beatles – Elanor Rigby
Freezepop – Brain Power
Amelie Soundtrack – La Noyee
Q and Not U – Little Sparkee
REM – Stand
Katamari – Overture II

You can download it here (Warning: the file is about 35 meg).

Personal

Best ever use of a cardboard box

I took a cardboard Uline box downstairs for recycling, and while it was patiently waiting to be taken out the kittens discovered it. And they love it. They loved the box so much that rather than take it out, I decided to convert it into a kitten gym.

I taped the top shut and then cut a circular hole for them to climb in and out of. I placed a smaller box, about 1/3 the height of the big one, under the hole so they could more easily get out. There’s also two door flaps cut in the side and two long, narrow rectangular flaps (one on the top and one of the side). The long flaps let light in, let paws out (yaknow, to attack whoever is outside the box), and the bit of cardboard flapping around gives them something to attack.

It took them all of 5 minutes to make and two minutes for the kittens to realize that this new box was the most exciting thing in the world. I consider it time well spent.

Programming, Software

Importing Data from Magento to PrestaShop

Today I gave up on Magento. It’s a powerful piece of software but it’s still pretty rough around the edges, and the UI and architecture makes it a pain to dive in and debug if something goes wrong. It’s built on Zend, so someone who has spent more time with Zend than I have would probably have an easier go of it.

Anyway, I’m moving over to PrestaShop, and don’t want to lose all my customer and order information. Since I managed to trash my Magento installation, I’m migrating the data over manually via an exciting series of MySQL queries. I’m posting them here in case anyone else needs them.

This data is then imported into PrestaShop using the built in import tool. They have a fairly easy to use interface for assigning columns in the CSV to various PrestaShop information (name, address, etc).

Getting the customer’s ID, name, and email address:

SELECT DISTINCT ce.entity_id AS b, email, 'default_password', (

SELECT value
FROM customer_entity_varchar
WHERE attribute_id =7
AND customer_entity_varchar.entity_id = b
) AS l_name, (

SELECT value
FROM customer_entity_varchar
WHERE attribute_id =5
AND customer_entity_varchar.entity_id = b
) AS f_name, 1
FROM `customer_entity` AS ce
JOIN customer_entity_varchar AS cev ON ce.entity_id = cev.entity_id
WHERE 1

You’ll notice I select the string ‘default_password’. This is just to generate a column of dummy password data. I haven’t thought of any creative ways to migrate the password data, and instead am just resetting it. The downside is that users will have to request a new password in order to log in. You should not use default_password as the actual string, for reasons I hope are obvious.

Get the address books:

SELECT DISTINCT 'Home', cae.entity_id AS b, 

(select email from customer_entity where entity_id = parent_id) as email,

 (
SELECT code
FROM customer_address_entity_int as mm1 join directory_country_region as mm2 on mm1.value = mm2.region_id
WHERE mm1.attribute_id =27
AND mm1.entity_id = b
) AS state,
(
SELECT value
FROM customer_address_entity_varchar
WHERE attribute_id =25
AND entity_id = b
) AS country,
(
SELECT value
FROM customer_address_entity_varchar
WHERE attribute_id =24
AND entity_id = b
) AS city,
(
SELECT value
FROM customer_address_entity_varchar
WHERE attribute_id =18
AND entity_id = b
) AS f_name,
(
SELECT value
FROM customer_address_entity_varchar
WHERE attribute_id =20
AND entity_id = b
) AS l_name,
(SELECT value
FROM customer_address_entity_text
WHERE attribute_id =23
AND entity_id = b
) AS addre1,
(SELECT value
FROM customer_address_entity_varchar
WHERE attribute_id =28
AND entity_id = b
) AS postcode

FROM `customer_address_entity` AS cae
JOIN customer_address_entity_varchar AS caev ON cae.entity_id = caev.entity_id
WHERE 1 

Getting the order data over is another beast, one which I’ll tackle another day. There’s a convenient importer for products, but unfortunately the individual order data will have to be migrated painfully via SQL.

Exercise

Couch to 5k

I’ve been following the Couch to 5k running program, which I downloaded via iTunes podcast a few weeks ago. My friend Claire put together a playlist for it. Since each workout is run three times, it’s nice to have a different track to work out to. Usually by the third time through I’m really sick of the generic techno music in the iTunes podcast.

Here’s week 1:

  • Timbaland w/ Miley Cyrus – We Belong to the Music
  • Black Eyed Peas – I Gotta Feeling
  • Empire of the Sun – Walking on a Dream
  • Iggy Pop – The Passenger
  • The Temper Trap – Sweet Disposition
  • DJ Tiesto w/ Tegan and Sara – Feel It In My Bones
  • Phoenix – 1901
  • Little Boots – New In Town

You can download the full 30 minute running routine (complete with computer generated voice to tell you when to run) here.

Etsy

Lased: Miniature Embroidery Hoops

I spent a decent portion of yesterday on the laser, prototyping a tiny embroidery hoop for (duh) tiny embroidery. I’m pretty happy with the results. So much in fact that I’ve decided to start offering tiny embroidery kits along side my tiny dinosaur kits.

The embroidery hoop is made from laser cut acrylic, and the rubber band provides tension to keep everything in place. The whole thing measures 1.5″ across, a standard sewing machine bobbin is show for scale in the picture above. I actually neglected to save the cut file (oops) but it’s pretty simple: two concentric rings (0.2″ wide), with the outside diameter of the smaller ring being 0.05″ smaller than the inside diameter of the larger ring. The large ring has a “nub” on the side for the rubber band, and is split down the middle on that side.

There’s about a 1″ diameter working area. I used 28 count aida fabric, which gave me approximately 28 “pixels” across to work with. Chris helped me design a cupcake chart for counted cross stitch. It uses 7 colors: white, red, light pink, dark pink, pink, grey, and light grey. It’s a nice portable project because it fits in your pocket. I’ve listed a kit for sale on Etsy and may bring a few down to Spring BadaBing in Richmond, VA this weekend.

Here’s the chart for your cross-stitch pleasure:

Personal

On Foster Kittens

New Foster Litter

As of last week, we have a new batch of foster kittens. We foster from Liberty Humane Society, and keep the kittens until they’re big enough to be fixed and adopted out (2 lbs).

Anyone who follows me on Twitter/Facebook knows that our fostered kittens tend to have a stream of health problems. A few people have commented on our “bad luck” and I thought I’d take the time to explain that fostering feral kittens is unlike raising kittens born to a housecat.

Like most animals born in litters, kittens don’t have the best mortality rate to begin with. The feral kittens are at a distinct disadvantage over the average housecat. For starters, the mother hasn’t been vaccinated against a whole host of diseases.  Kittens get antibodies from the mother’s milk, so from day 1 feral kittens are already more susceptible to disease. And unlike your house cat who gives birth on your favorite sweater and eats cat food, feral cats give birth in an alley and eat whatever New Jersey rats they can find running around. Many things which are trivial to an adult cat are fatal to a small kitten.

From there the mom and kittens head to the shelter. The good news is the shelter is able to give them healthy food and treat them for parasites such as worms. The bad news is the shelter is a great place to pick up a URI (head cold) and fleas. The staff do their best to keep sick cats away from healthy ones, but anyone who works in an office knows how hard it is to keep a cold from going around.

Getting the cats out of the shelter and into a foster home is good for a number of reasons. First, it gets their fragile kitten immune systems out of the hot zone of germs. Second, it helps keep anything they may be harboring from spreading around the shelter. Third, they get more attention (both in terms of health care and affection)  in a home than they would as one of the dozens of cats at the shelter. And perhaps most importantly, fostering reduces the load on the shelter giving them more resources to care for the animals there.

Our current batch is battling the usual URI, which means a room full of sniffles. The cold isn’t a big deal by itself, but when their noses are clogged they can’t smell, and when they can’t smell they can’t eat. I’m armed with a humidifier, pedialyte, saline nose drops, and subcutaneous fluids to help them fight it off. Subcutaneous fluids are injected under the skin. It sounds scary, but is actually much less of an ordeal than trying to force feed a cat water.

It’s a lot of work, but totally worth it to watch the little bugs chase each other and slide around on our hardwood floors.