Monday, August 11, 2008

Speck M72 Restoration

I used to record a lot more than I do now... I could say that I used to record. I've been trying to get back into it, but as a hobby, engineering isn't quite as portable as say guitar playing. That's really my problem. The part I enjoy is making all the bits work together and optimize for a particular workflow and sound. In the process of that work, I've pretty much stuck to the same scheme that I discovered while in school: ProTools and analog consoles with a decent set of outboard dynamics, eq, and digital efx. Back then that meant a Session 8 into a Mackie 4 bus with a Pentium computer and a 1.2GB external drive. Now that means Protools HD1 and a Speck S72 board running on a Dual CPU PowerMac. That is, if I could get the Speck running. I was considering a Speck LiLo, but ran across a locally available 90's era S72 which is similar but unbalanced, many more inputs, and includes EQ. This particular model had been modified to include balanced IO, a mix bus insert, and improced caps in the EQ. All this for 1/4 the price of the LiLo.

The channel mods were very professionally done, and each individual channel sounds great. The master section is less than wonderful. I'm busy tracking down some noise that sounds like radio static, cracking and popping. Now that I have room to work, I figured out that I could alter the sound by poking around some of the power/ground wires - including those tapped to power the master sections balanced line drivers. Esh. The picure actually shows what I found after poking around enough to follow the wires to the point in which the power supply enters the chassis. I think I have something to work on now at least.
#    Comments [0] |
 Saturday, July 12, 2008

Cortlandt/Mt. Airy 10 mile loop

Here's a nice 10 mile loop around Cortland and then over to Mt Airy for a little hill climbing. One of the hills is really tough, but coming back on the other side is nice. Some great curvy hills. Edit: Here's another 10 miler that avoids the horrible hill and runs past Croton Reservoir instead. Turns out the name of that hill (I am not lying) is Torment Hill.

#    Comments [0] |
 Thursday, July 10, 2008

Developing for Surface


We got a surface in the office! I can't really talk about the project I'm working on, but I will say that I'm determined to get some version of the satellite tracker on it - It offers a very interesting interaction model that could be a fun way to visualize and interact with orbits. 

One problem is that the SDK is under wraps so when you run into problems there's really not much of a community to turn to. The MS Surface developer's blog offers little in the way of hard examples, offering more of a list of cool stuff they're working on and why this thing is going to be cool when the masses get a hold of them.

I'd love to offer up some more info, but am under an NDA! Here's a little peek at our developer station until I can talk more.

#    Comments [0] |
 Saturday, May 24, 2008

Honey Ginger Lemon Frozen Yogurt

What to do with the endless supply of kefir once you get your grains cranking away? No choice but to make frozen yogurt. It'll also work with any other yogurt, but if you're going to buy it, best to buy some of the strained greek yogurt to save you the trouble... Unless of course, you want to strain your own and save the whey for my bread recipe.
  • 4 c strained yogurt
  • 0.5 c Really Raw Honey
  • 180g granulated sugar
  • 2 tsp lemon zest
  • 3 tbs lemon juice
  • 1 tbs grated ginger
You want to strain about 8 cups of yogurt, or enough to get about 4 cups of the thick stuff. Add the sugar, honey, zest, juice, and ginger and mix well. You can add more ginger if you want a little more bite. I think the next time, I would also add a tad more lemon. Put it all in the fridge to cool nicely. Then follow the directions for whatever ice cream maker you're using.


#    Comments [0] |
 Tuesday, May 20, 2008

Hacking the Nike SportBand

The Nike SportBand came out. Really, it's no more than a glorified pedometer, but it stores a lot more data about your running. Now it's finally no bigger than you would expect. Previously you had to carry around an Ipod Nano.

With both versions, the only real way to get to the data is to upload it to the Nike website. With the Ipod, you could pull the files directly off. I don't really like the idea of Nike's website being the only way to really use the data, and would have come up with a way to use the Ipod data if I had one.

I was hoping that the SportBand worked similarly, but unfortunately, that's not the case. It is a USB device, but the computer sees it as a USB Human Interface Device (a keyboard or mouse, really) instead of a flash drive.

I've done a little research into accessing HIDs with the .NET framework, and though it appears possible - with thanks to Jan Axelson, I haven't yet figured out how to actually read the data off the device. If anyone knows more about this, I'd love to hear about it. Once I have the data, it should be easy enough to build a nice WPF app to display your run data.

Anyway, as a start, the initial critical data for the Nike+ USB device is:

Vendor ID: 11AC
Product ID: 4269

When I use the HID tester though I get the following message:

Device Detected: 
- Vendor ID: 11AC
- Product ID: 4269
The attempt to write an Output report has failed.
The attempt to read an Input report has failed.
The attempt to write a Feature report has failed.
The attempt to read a Feature report has failed.

Well, maybe more later if I can figure some more out.
#    Comments [0] |
 Friday, May 09, 2008

Whey Bread

I've been making yogurt using the simplest methods out there. We like it thick, so I usually drain off some of the whey. (There is only one better use for a chemex coffee pot!) I usually use milk in my bread recipe, but I thought this might be a good opportunity to make use of the whey. I actually like yeasty bread better than sour dough, but Barb likes sourdough better. This was also a good compromise - having both the tartness of the whey and the flavor of the yeast. The recipe makes two loaves. It's based on an earlier recipe but uses a stand mixer instead of the food processor.
  • 1 1/3 cup whole milk
  • 1 1/3 cup acid whey (filtered from yogurt)
  • 4 tbs unsalted butter
  • 6 tbs Really Raw Honey (that shit's good)
  • 2 pkts active dry yeast
  • 2 lb 5 oz unbleached all-purpose flour
  • 4 tsp salt

Heat the liquids in a small saucepan until the temp is 110 or 115 using an instant read thermometer. You will need 2 2/3 cups of liquid in all. Feel free to vary the ratio of whey to milk to taste. Also, I like the tase of the honey and am usually a little heavy handed with it. With bread, since there's so few ingredients, the taste of the individual pieces really comes through. The raw honey has a great strong taste - try it! Once the butter's melted and it's all still 110 degrees, whisk in the yeast to dissolve. Most recipes call for you to "proof" the yeast, but just getting it dissolved is good enough.

Add the flour and salt to a mixer and mix to combine. On a low speed, add the yeast/liquid mixture only as fast as the flour will absorb it. The dough should form a ball and pull away from the sides. Continue to knead for 5 minutes. It should remain sticky.

Place the kneaded dough in an oiled bowl and allow to rise for one hour in a warm spot until it's doubled in size. If the dough is too sticky, oil your hands and the worksurface instead of using flour.

Remove the dough, divide it in two (i use a scale to try to get the two halves as close as possible) and puch it down into a size that will fit into a 5x9 bread pan. Place it into a buttered bread pan and allow to rise for another 30-45 minutes.

Put a sheet pan or pie pan with 2-3 cups of warm water in the bottom rack of a 350 degree oven. Brush the top of the bread with olive oil and place on the second rack. Cook until the internal temperature of the bread reaches 195 degrees using an instant read thermometer. Remove from the pan and place on a wire rack to cool. Don't forget to pull out the water pan before it boils dry. Wait for the bread to cool completely before slicing.


#    Comments [2] |
 Saturday, April 26, 2008

Took some quick photos of the plants

Took some quick photos of the plants. It looks like the basil may have reseeded itself - someting that looks like basil is just starting to come back. We'll see. Anyway, here's the measly offering for the summer since we'll be moving halfway through.

There was also a great article this week in the Times about balconies in the city. I was always very surpised at the lack of activity on the balconies along 7th Ave in Park Slope. One other apartment plants some flowers, but that's it. We're leaving the city for greener pastures, but I can only hope that whoever takes over will take advantage of the wooden deck that we built and puts it to good use with some greenery. Michael Pollan makes a good point about why that could be the singularly most important thing that we can do these days.
#    Comments [0] |

Silverlight Fun

Primarily for the experience, I've been migrating my GDI/command-line based satellite tracking software to a web service and Silverlight application. Ultimately, it's nowhere near as useful since it's not going to be able to control your tracking hardware, but it's a fun excercise. Ultimately, the GDI version would go away and be replaced with a WPF version.

You'd think that building a WPF application and Silverlight application might produce a lot of code that is reusable. Ultimately, there is very little that's reusable primarily due to the constraints that MS put on Silverlight's library and what is available. They removed seemingly random features from Silverlight that, if you were writing a rich application in WPF, you would no doubt use. This means that, at this point, Silverlight is sufficiently handicapped to make code migration between WPF and Silverlight almost pointless. Below are some particular problems I've run across...

Viewport: There is no viewport in Silverlight. The viewport manages auto-sizing, zooming, and scrolling a canvas. This would be ideal for a map application such as the satellite tracker where you sometimes would like to display only a portion of the world view. Unfortunately it doesn't exist and all such presentation magic needs to be handled manually using Transforms on the canvas in question.

Mouse and Keyboard Events: Wouldn't it be nice to be able to tell if the shift key were pressed when a left-click even is caught? Wouldn't it be nice to tell if a right click event happened? The simple things in life are the most important! Really, I'm having to watch shift-key up and down events, toggling a state variable, and checking that variable when a left mousedown even occurs. This is even more complicated by the fact that there's no right-click! so I'm watching various combinations of ctrl-alt-shift keypresses during the mouse events. WHY?

Image Sizes: For some reason, I can't download an image larger than 3000 pixels wide. I'm sure the exact width isn't the true issue, but my world map needs to be 6000 pixels at 5x zoom factor, and it just isn't happening. I'm not sure why, but it's really irritating. [UPDATE 4/26] It looks like this was a problem with Firefox. The images wouldn't load directly in the browser either. Seems that restarting it worked. Makes sense since Silverlight, like flash, is running within the context of the browser and obtains all of its external funtionality through the browser.

Font Hinting: I'm all for this new vector-based rendering engine. I don't understand why that removes any requirements for font hinting. We still have to render fonts at sub 10px heights, and with hinting, the FONTS decide how they look best, not some random coder from Redmond. Sure, one day, we'll be dealing with magical 1200dpi screens, but now I'm still working at not much greater than the good ol' 72dpi resolution.

There are a lot of similar complaints on various blogs from various developers. It's very hard to decode which version of the runtime and development environment people are talking about when they make these complaints. Some features were around in 1.1 which have dissapeared in 2.0, and visa versa. Some people are complaining that some feature is broken or not implemented which should have been. I've noticed that in some cases it seems that folks are mistaken  - generally looking for features as they were in WinForms or GDI whereas they've simply been moved (or obfuscated) in WPF/Silverlight.

One such feature in particular is marshalling calls across threads primarily for GUI updates. I've determined that it is possible, but is implemented using each control's Dispatcher property instead of a Control.Invoke() call as was the case in WinForms. Silverlight fully supports spooling up a thread, doing some work, and invoking method calls back on the GUI thread. I was really worried when I read more than one post from folks who hadn't figured that out and were saying it wasn't supported.

You can see the progress of the app here.
#    Comments [0] |
 Monday, April 21, 2008

Carrot Cookies

This is a recipe from my great grandmonther - Gonnie is what she went by in the family, not that that was her name, just I think what her grandkids called her. I remember having these a lot when I was growing up, but oddly enough, I've never met anyone else who's ever had them. I'm thinking they must be an old-timey southern thing. This is a doubled recipe - feel free to cut it in half if two dozen cookies is enough for you.

Cookies:
  • 3 sticks unsalted butter
  • 300g white sugar
  • 300g grated carrots
  • 2 eggs
  • 1 tsp vanilla extract
  • zest of one orange
  • 620g unbleached all purpose flour
  • 1 tsp salt
  • 4 tsp baking powder
Whisk together the flour, salt, and baking powder and set aside. Cream the butter and sugar. Combine the eggs, vanilla, and orange zest. Mix in a little at a time until incorporated. Mix in the grated carrots. I use the smaller size of the grater that otherwise never gets used. With the mixer on low, add flour a little at a time, allowing to incorporate before adding more. Once this is mostly combined, stop the mixer and continue by hand.

Spoon the cookies onto a cookie sheet lined with a silicone mat (or parchment paper). The dough is really sticky, so keep a the tips of your fingers wet to avoid sticking. If you're going to ice them, flatten them a little before putting in the oven. Bake in a 375 degree oven for about 11 minutes. Allow to cool completely before icing.

Icing:

If you have a recipe for a good cream cheese frosting, use it. The stuff I made this time was way too runny, so I'm going to have to try something else. Put it into a ziplock bag, snip a corner off, and pipe onto the cookies.

They're really hard to store after they've been iced, but they won't last long anyway.

#    Comments [1] |

First gardening

I always enjoy the first real gardening of the season. At least here in the city, the late winter and early spring is very wet. It seems all of the plants are waterlogged for a couple of months, and I'm surpised anything survives. Things are coming back, so I took the time to clean up and repot what I can keep and to compost the things I can't. Since we're moving to a house in a month or so, we won't have any tomatoes this year. That'll be a lot less work, but I will miss not having to buy a single tomato at the store for a significant portion of the year.

Here's a list of what made it:

  • Bird's Foot Violet (viola pedata) - It still hasn't flowered. I covered it with mulch before the winter thinking that would be the last I saw of it, but it's there! I really like this plant and would like to try growing more of it sometime.
  • English Ivy - This was inherited from a friend who moved overseas. It's never been extremely productive, so I decided to let it overwinter outside. It's still there.
  • Peppermint - This is a great plant, and although it's died back to nothing two winters in a row, it's still coming back.
  • Lime Thyme and some regular Thyme- Another couple of plants that are good about coming back just enough. Hopefully when grown in the ground, these guys will be a little more productive.
  • Salem Rosemary - I started trimming this guy. Rosemary can get out of hand and turn completely shapeless, so I'm treating it a little like a bonsai.
  • Christmas Fern - I'll definitely be growing more ferns soon. These are only in their second year, starting out as rhizomes from Home Depot, so they haven't yet taken off.
  • Lillies - I picked up some lillies on a whim. I have to say that alone, they don't do much for me. I'm impressed though, that this year where I had one stalk per bulb, there are three to five stalks starting to poke up through the soil.
  • Blue Star Juniper - Another evergreen that was threatening to turn into a shapeless mass that I made some dramatic cuts to.
  • White Pine (pinus strobus 'soft touch') - This guy is still doing well, and is a good slow grower.
  • Japanese Maple (acer palmatum) - Still doing great. It's starting to spread a little. I'll definitely have to cut back next season.
  • Cliff Stonecrop Sedum (glaucophyllum) - This is one of the native area plants, and it's doing really well. Somehow, I noticed there was a little growing in one of my spare pots that was just soil, so I planted it. It seems this stuff might try to take over if left to its own devices.

#    Comments [0] |

-