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] |
 Thursday, April 17, 2008

Buying a house!!!

Now that we're officially in contract, I feel more comfortable about sharing! Barb and I are buying a house. It's a crazy 1951 modern design. I'm afraid we won't be able to fix it up all fancy like the current owners, but we'll try. The garden certainly is nice. I took most of these pictures while walking around with the inspector. For anyone wanting to visit from the city, it's only about $15 round trip to the Cortlandt station, and I promise I won't make you do any yard work while you visit. Here are the pictures.
#    Comments [0] |
 Tuesday, April 15, 2008

Tres Leches Cake

I've been on a cake binge lately. Partly driven by the fact that I am trying to cut back on junk food and told myself that I had to make my own. Here's this weekend's recipe:

Tres Leches Cake

Cake:
  • 6.75 oz cake flour
  • 1 tsp baking powder
  • 0.5 tsp salt
  • 4 oz (1 stick) unsalted butter
  • 8 oz white sugar
  • 5 eggs
  • 1.5 tsp vanilla
Grease and flour a 9x13 cake pan. Whisk together the flour, baking powder, and salt. Set aside. In a mixer, cream the butter and sugar. With the mixer on low, add the eggs allowing each one to incorporate before adding the next. Add the vanilla. Pour into the pan and bake at 350 until the internal temperature is 200F - about 20 minutes.

3 milks:
  • 1 12 oz can evaporated milk
  • 1 14 oz can sweetened condensed milk
  • 1 c half and half
When the cake comes out of the oven, set aside and allow to cool completely. While waiting, whisk the three milks together. Prodigiously poke the cake full of holes with a chopstick or something to that effect. Pour the milks over the cake and allow to sit overnight in the fridge to ensure everything is soaked up.

Topping:
  • 2 c heavy cream
  • 6 oz white sugar
  • 1 tsp vanilla extract
  • 1 tsp unflavored gelatin

Place the whisk and mixing bowl in the freezer and allow to cool. Pour about half a cup of the cream into a metal measuring cup or small metal bowl. Sprinkle in the gelatin and allow to sit for a few minutes. Gently heat over a low flame until dissolved, being careful not to bring to a full boil. Pour the cream and gelatin into the mixer and begin to whisk while adding the sugar and vanilla. Whisk on medium-high until thick. You can 'ice' the cake with the whipped topping, but I prefer to allow the topping to set in the fridge for a few hours (or overnight with the rest of the cake) and serve the cake slices with a hefty dollop of cream on top.

#    Comments [0] |
 Saturday, January 26, 2008

Satellite Tracking Software

I wasn't extremely happy with the PC satellite control software out there, so I decided to do something about it. The process was quite a learning experience - it's my first true multi-threaded GUI app (as opposed to the web apps I'm usually building) and I learned a lot about basic satellite prediction.

It's based on bits and pieces of other open-source software out there, but architected using a more modular approach with decoupling done through a series of event handlers set up as a bi-directional message bus. I release the code on Google Code and wrote an article for the AMSAT Journal (122.55 KB).

#    Comments [0] |
 Wednesday, September 26, 2007

My coffee grinder died today...


My coffee grinder died today. In fact, it had begun to slowly deteriorate the past couple of weeks. It served me well... I had used it every single day for the past two years. It's a beautiful KitchenAid A-9 - one of the new models. I have to say that I expected a good 5 years out of it.

When these grinders act up, they are very irritating. The motor is a direct drive 200W model that spins a tad too fast. There's no auger, so there is nothing really to help break up the whole beans before they reach the burrs. When the beans have trouble getting down into the burrs (maybe they're afraid?) the motor just spins faster and faster and spews the last of the ground coffee all over the counter.

I opened it up to try to figure out what might be causing this, and to be honest I can't really tell. I guessed that something might have loosened up (bearings perhaps?) causing the burrs to vibrate and not allowing the beans to flow in. Turns out there's not even any bearings! The rotating burrs rest on a plate with a fair amount of play, so while the burrs can be replaced, that's not any guarantee they will remain lined up.

Reluctantly, I started to seal the think back up... The motor is held to the cast alloy body with two tapered screws. Disaster! I stripped the soft alloy and now the motor won't mount up at all.

It's unfortunate, really, that something as over-engineered as this has such weak points. Little things like this are what make the difference between professional gear and pseudo-industrial-looking home gear. My favorite grinder to date is the Zassenhaus Grain Mill, but it's a little labor intensive for morning brew.

I found a larger KitchenAid Pro Line on clearance for $150. It's got gear reduction and an auger, so opefully won't grind itself into oblivion. If it does, my next choice would be a Rancilio Rancho (at a whopping $300)
Well, wish me luck. I guess I could just go back to the $20 blade grinders!
#    Comments [0] |
 Monday, August 13, 2007

Satellite communications

I can finally report a sucessful satellite QSO! It took a lot of trial and error, but I finally found the right combination of a low traffic pass with a lot of tweaks that have been suggessted after much useful feedback from the ASMSAT mail list.

I know that lots of people have made successful QSOs using an array of HT's, mobile units, and any number of home made antennas. I started similarly small, but had a couple of different design goals for satellite communications.

First, I am somewhat limited by my pool of equipment - I don't have old radios around or an HT that can be brought into service. I want to get as much use of what I have, but I also will need to make investments as they make sense.

Second, I want to be able to work satellites from my current base which includes a 75' feedline to the antennas on my roof. While mobile/portable operation is a goal, I'd like to start with more and pare down for portable work rather than the other direction.

Lastly, and perhaps most importantly, I want to engineer a solution that will produce reliable, repeatable results. As exciting as the first few contacts are, if I am to use satellites as a reliable means of DX work, I'd like to remove as much of the luck from the equation as possible.

Don't take my example as any sort of assertion that I think this is the best way, or even how anyone else should follow my lead! I just wanted to share what I got to work and the results.

The antenna is a Cushcraft 2m/440cm 3 element yagi mounted about 50' above ground and 15' above the roof of my apartment. It is mounted to a simple light-duty TV rotator. The bands have different feed points and elements but share a boom.

Each antenna is connected to an SSB preamp through 3 feet of 9913. The 2m is using 75' of RG-8X and the 70cm feedline is 75' of RG-213. The 2m antenna is driven by an IC-V8000 and the 70cm with the IC-7000.

I am currently limited by the antenna in a couple of ways. First is that I have no elevation control and the antenna to mast mount is fixed at 90 degrees. This means that I can work satellites as low as 7 degrees, but seem to lose them around 20 degrees elevation. Unfortunately, this also means that I am unable to take advantage of higher elevation passes which would have a lower path loss. I had also intended to run full-duplex mode and used the two different transceivers. Unfortunately, since the two bands share a boom, they interact heavily and the 2m transmission completely overloads the front-end of the IC-7000.

In keeping with my goals of making reliable communications, I'm going to make a few more attempts making only a couple of tweaks to the setup above. Ultimately, though, I will move to some antennas like the Gulf Alpha 70CM-8ELSat and 2M-5ELSat at about a 20 degree elevation on an 8' cross boom. I will replace the 6m beam for now since it will most likely be a while before that band sees any propagation more than the hour or so a month that I catch.

Many thanks to the AMSAT-BB list, Gary WA2AQH, and the SatComm Net hosted by the MBARC . If you're in the area and want to join in, it's every other Thursday at 20h00 on the KC2DAA repeater (144.225 pl 100.0)

#    Comments [0] |
 Friday, August 10, 2007

Radio work as a new amateur

I've been having a lot of fun working HF and a few local repeaters, so I wanted to share my experiences as a newcomer to the hobby who is one of the dreaded new No-code Extras.

Starting off, I had a lot of luck just tuning around the New York City area 2m repeaters. There were a lot of friendly folks on the air, and it got me in the habit of good QSO procedure. When I moved from the mobile antenna mounted to the balcony railing to a rotated yagi on the roof, my goal was to reach repeaters as far away as possible. I was particularly interested in reaching repeaters closer to the catskills...

The most consistent repeater I was able to reach is the KC2DAA repeater on Mount Beacon. This repeater hosts the Hudson Valley net as well as some activities of the MBARC such as a semi-weekly Satcom net for discussion of area satellite work.

It took about a month to get word of my General/Extra upgrade. At that point I was diliberating a solution for multiband HF access. Quite a few people extolled the virtues of the G5RV and the price was right. It turned out that I didn't have as much room for a wire antenna as I thought. I did manage to use the G5RV for a few 6m and 20m contacts at a friend's house in the Catskills.

After ruling out any sort of wire antenna, I turned to the vertical. At the time, the only real benefit that I realized is that a vertical is self supporting. I planned to mount the antenna on the roof of the apartment which is about 40 feet above ground and contains very little metal mass.

I ruled out the radial-less half-wave designs primarily because of their comprimised design, and mixed results in the review pages of eham.net. Of the multiband 1/4 wave designs I settled on the Butternut HF9V with the tuned radial kit. Installation and tuning whent great, and I am constantly surprised about how well it performs.

In the end, another huge benefit of the 1/4 wave vertical design is the low radiation angle which makes it great for DX work. In fact, it's so good, my country list is longer than my state list!

States Worked
  • Alabama
  • Massachusetts
  • Mississippi
  • Ohio
  • South Carolina
Countries Worked
  • Europe
    • Spain
    • France
    • Hungary
    • Italy
    • Norway
    • Czech Republic
    • Slovak Republic
    • Belgium
    • Russia
  • North America
    • Cuba
    • Honduras
    • Canada
    • USA
    • Mexico
    • Trinidad & Tobago
  • South America
    • Columbia
    • Argentina
    • Venezuela
Since I'm only running 100 watts, I'm limited to conditions which haven't been great. That being the case, I've been able to make at least one 5x9 contact with any given attempt.
#    Comments [0] |

-