Home > BrewzNET, Rant > Lemons to Lemonade

Lemons to Lemonade

I had a brutal business trip this week – Wednesday thru Friday in Houston. I got in this morning at 2am after fighting flight delays, thunderstorms, broken terminal gates, and several other travel fiascos. The experience did little to change my attitude towards business travel (that being I strongly dislike it), and I am completely exhausted today with little under 5 hours of sleep and a huge commitment to deal with – the Cure For What Ales You Homebrew Festival at Iron Hill in Newark. I am hoping that once I get some liquid carbs in me and a little good camraderie from my fellow homebrewing peers I’ll find a second wind. If not, the alternative is complete implosion sometime tonight. It is my fondness for a couple like-minded individuals that has me motivated to keep this particular commitment – otherwise I would walk away from it in a heartbeat.

Addendum: This turned out to be a really good event. Lots of folks showed up, and lots of good showings. I did not win anything, but my friend Brian took best of show for his dubbel – Congrats, man!

The travel experience and airport delays did leave me with lots of time to get some work done on BrewzNET. Obviously everything I’ll enumerate below wasn’t done during this trip – some of it I have been working on for the past few weeks during the early mornings and evenings.

SidebarFirst, the renderer list and property grid has been replaced with a compartmentalized user control and a TreeView control in place of the list control. This allows me to represent the hierarchy of renderers that go into a CompositeRenderer and PipeRenderer class, and allows the user to select and modify these child component properties. I have not decided / implemented the functionality for the combobox yet, mostly because I am not certain what I want in there. I am not a big fan of UserControls, but in this case I went with the easy way out. At least the TreeView control is OwnerDraw.

Subrenderers etc.There is alot going on in this screenshot that is new. It demonstrates the “rotate” feature of the Label renderers, which is also implemented for tanks, coils, and pipes. Most of these objects can be flipped horizontally or vertically, or rotated 90 degrees clockwise / counterclockwise. It also shows the renderer-specific submenus (complete with menu icons), in this case a renderer menu unique to the selected union section of the displayed pipe. If you pay close attention to the elbow that is selected, you will also noticed that the bounding box only has specific drag points on it – these can be individually set by the renderer’s designer class and may behave differently, depending on how the designer is coded. In this case, dragging the lower left corner will increase or decrease the curvature of that elbow. Other unions, like flanges or valves, may change their height and width dynamically based on the new renderer bounds. You kind of have to see it in action to truly appreciate it.

Tank renderer menu itemsThis screenshot also shows some renderer-specific menu items. In this case, the tank orientation / type is dynamically displayed as a dotted outline as the user hovers over a particular menu item. You can also see the “gradient” and tank option menu items, which will change the property values of the renderer without having to use the property grid. These same “gradient’ menu items are also shared by the coil and pipe rendering classes.

So as you can see, I’m adding in functionality as I go along. I’ve also got Copy / Cut / Paste / Delete working once more, as well as saving and restoring screen layout files. Little by little, the “Designing” platform for this interface software is coming together.

I must admit I still look at what I am doing relatively frequently and ask why the hell I am writing software that is so robust and flexible when chances are very good I will be the only person who ever uses it. I don’t know too many people interested in downloading a development platform and coding an interface for their homebrewing sculpture… and yet I still spend countless hours doing it. I must be a little unhinged… But this is how I’ve always learned a new technology (in this case VB.NET)… I find a project and push it beyond practicality to really understand how it works.

Categories: BrewzNET, Rant
  1. April 7, 2008 at 1:09 am


    From my brother’s website, “A nice addition, that Catherine enjoyed very much, was Garrett’s Belgian single. Not a style you see often, with it’s low alc% and lighter body, but the aroma of a Belgian brew. Nice.”

    Good times at the CFWAY fest. Hope you got some rest – B

  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: