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.

Hacking

Manga on the B&N nook

The main reason I chose the B&N nook over the Kindle when I bought an ebook reader was the fact that the nook supports PDF and Epub. While the nook’s PDF support is really only suited for text, it doesn’t do a very good job with graphs and images, I find that I can convert most anything a nook-friendly format using Calibre.

One thing the nook handles surprisingly well is manga, Japanese comic books. The nook doesn’t do so well with full sized American comics due to resizing (thus rendering text illegible), but the smaller form factor of manga is perfect for the nook’s screen size:

A lot of manga is only commercially available in Japanese, and the English translation are largely done by fans. The translated files are available in .CBR or .CBZ format, which is really just a renamed zip file full of images. Calibre does a great job of converting the CBR files in to an Epub suitable for the nook. The pages are very readable, and the artwork looks good.

There was also some new nook firmware released today. While most of the attention is going to the new browser (in beta) and games, the page turns are noticibly faster in 1.3. They’re now fast enough that I don’t really notice them, and consider it on par with the amount of time it takes to physically turn a page:

The nook got off to a shaky start, but it’s turning out to be a really nice ebook reader. The games are cute, but not something I see myself using much. Hopefully when the browser is out of beta it will allow for downloading books through it (right now you have to cable sync or use B&Ns app). Or better yet, I hope they let folks develop their own apps for them. A Calibre client for the nook would be great.

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.

Etsy

Rainy Day Crafts

Paper Terrarium
Today is gross and rainy. I’ve spent most of it working, which as you can imagine is tons of fun. While packing up some tiny glass jars for Tinysaurs I decided to take a break and make a tiny display of my own.

I had some tiny 1cm paper cranes left over from when I used to make crane earrings.  I covered the basswood stand in origami paper, and glued two of the cranes to straight pins. The whole thing is about an inch and a half tall.

Now I’m trying to decide what I should do with it. Should I just be happy with my crafty Saturday, or try to make it into a new product for Everything Tiny?