Houston TechFest Coming 1/24/09

The Houston .NET User Group is putting on the second Houston TechFest on January 24 at the University of Houston.  The conference was originally scheduled for the Saturday that Hurricane Ike hit the Houston and Galveston area so this is rescheduled date.

Here are several tracks to choose from concentrating on both java and .NET.

I was out of town for the first TechFest but everyone who attended said it was well worth it.

Virtual ALT.NET Meeting and Houston Geek Dinner Tonight (1/7/09)

Chad Myers announced that there is VAN (Virtual ALT.NET Meeting) tonight.  It is hosted on Live Meeting.

I’ve been wanting to attend one of the Houston Geek Dinners for the Houston ALT.NET group but I keep missing them.  The next geek dinner is tonight and, unfortunately, I am going to miss this one as well.  However the VAN is later in the evening so I’ll be checking that out.

IconLover – my icon tool of choice

I am absolutely terrible at editing graphics.  There are things in life that I am good at and the task of creating graphics for my applications is simply not one of them.  I’ve been in a continual search for an image editing program that makes the task easy for me.  Most of the time, I either contract with a graphics designer or buy image packs, but often the images are still not the exact size or format I need.

If you’ve done any work with Visual Studio add-ins or VSPackages, you know that just getting the background color correct can be a chore.  The Visual Studio graphics editor doesn’t make the task any easier either.

This search has led me to a tool that I plan on sticking with for quite a while:  IconLover.  The tool is easy to use, even for a no talent designer like myself.  My favorite feature is the ability to create image lists in a quick, easy, fashion. 

VSX developers will appreciate this feature a great deal.

By the way, the creator of IconLover, Aha-Soft, didn’t give me a free license or pay me anything for posting this.  I just like the tool and thought I would pass it along.

D2Sig in Houston

This past Thursday, I attended the first meeting of the D2Sig in Houston.  The D2 stands for "Developer 2 Designer" and the group will be focused on the XAML technologies of WPF and Silverlight as well as any area where developers and designers might need to work more closely than they have in the past.

Markus Egger from EPS was the presenter and, as always, he gave a great presentation which included a general overview of WPF, Silverlight, and some demo video of a Surface table in action.

I would recommend this new group to designers or developers in the Houston area that are interested in the these new up and coming technologies.

I’m guessing around 30 or so people showed up to the first meeting so I think that is a pretty good start. 

J Sawyer has an official announcement here for the first meeting with a little more detail.  The upcoming meetings will be the first Tuesday of each month at the Microsoft offices in Houston.

ToolStripComboBox Drop Down Sizing

This last night I worked on a bug where I had a ToolStripComboBox in a Visual Studio custom tool window that holds a list of files but would cut off the filenames in the dropdown list if the paths became too long.

Easy enough to fix, or so I thought.  After trying out about all of the property setting combinations I could think of, I never could get the control to automatically size the dropdown list width to accommodate the widest item currently in the list.  This is sort of ridiculous, in my opinion, but I could not find a way to do this without writing some code to do it.

Here is the code that I wrote so hopefully someone will save some time by seeing this and not spend their Friday night on search engines and MSDN attempting to find a way to accomplish the goal:

[sourcecode language=’csharp’]
int i = cboFile.Items.Add(file);
//make sure dropdownlist width is sized correctly
Graphics g = cboFile.ComboBox.CreateGraphics();
SizeF size = g.MeasureString(file, new Font(cboFile.Font.FontFamily.Name, cboFile.Font.Size));
// Set the DropDownWidth if the item has a greater width
int itemWidth = (int)size.Width + 10; //add a little empty space
if (itemWidth > cboFile.DropDownWidth)
cboFile.DropDownWidth = itemWidth;

You can ignore the definition of "i", I was using that later in the code to do some processing specific to my extension.  It is possible that there is an easier way to do this, but I couldn’t find one.

Tags: ,

I have a confession: I sort of like Vista

Apparently Microsoft has revived the marketing tactics of Folders Instant Coffee from back in the 80’s.  According to this article on cnet news, folks from the MS marketing team have been rounding up Vista skeptics under the guise that they will be shown a new OS code named Mojave.  All of the subjects seem to love the new OS and afterwards are told that they have been shown Vista.

This is sort of like dining in a fine restaurant only to find out that you have been drinking Folders Instant instead of the fine coffee normally sold there.

Until the last few months or so, I was one of those skeptics as well.  I had only used Vista a small amount and all of my primary machines were still XP Pro.  In fact, I had really only significantly used Vista in a Virtual PC image which gives a very poor impression.

My latest laptop runs Vista x64 SP1, shipped that way from HP, with a modest AMD 2.1 ghz dual core processor and 4gb ram which is becoming more common on laptops even at a general retailer like Best Buy.  The laptop was reasonable priced, I thought, ringing up at just under $1100 tax included.

I sort of like it.  Your mileage may vary but there are a few key areas that really make a difference for me.  The first is it just plain looks nicer and is more pleasant to use.  I know mac folks are saying that OSX looks better and has for many years.  I agree with that (I have a few macs myself) but my business is based on windows development so macs are not an option right now.

The other noticeable difference is how much better the networking performs under Vista.  I have to often copy a lot of files between desktops and laptops and XP is terrible at this.  I haven’t done any timings but Vista is dramatically faster.

It isn’t all roses, however.  Vista does require significant hardware over XP.  I purchased an even cheaper laptop (~$700 tax included) this last November to run XP Pro.  The machine actually came with Vista Home Basic but the combination of the underpowered machine and the crapware fiesta installed on it was unbearable.  That machine is a 1.8 ghz dual core machine with 2gb ram and seems to run XP SP2 at about the same speed as my new AMD 2.1 ghz with 4gb ram runs Vista SP1.  Also, the Vista machine does take a little longer to boot up but not significantly longer.

Of coarse, there is also that little problem of every setting being moved to a new dialog or a different path to get to the same dialog.  Honestly though, I haven’t been quite as annoyed by that as I thought I would be based on all of the complaining I have heard from other folks.  It takes a minute to find something and I then I know where it is and go on with my work.  I had the same problem when I tried OSX for the first time.

As far as the 64-bit goes, I haven’t had any significant problem yet.  Since the machine is a laptop, it obviously came with drivers for the hardware on it and my external device needs are modest.  The crash I have had was trying to see if I could run the memory analysis tool on Crucial.com, which didn’t say it would work on 64-bit machines.  That was ugly but, so far, has been the only hiccup.

FYI – On XP, I use TortoiseSVN with the VisualSVN package for Visual Studio integration.  This also works on Vista x64.  You will need to install the 64-bit version of TortoiseSVN (I installed version which was the latest) and then the normal and only install for VisualSVN (1.5.1).  I wasn’t sure if I was supposed to install the 32-bit or 64-bit TortoiseSVN client since Visual Studio itself is 32-bit but I finally found a discussion related to this on google groups.  My actual repo is still svn 1.4.x and I haven’t had any problems yet.

Server Room Craziness

A funny post over at The Daily WTF reminded me of a situation I witnessed many years ago at a small client I was working for.

Like the situation described in the post, the client needed to move the door to the server room.  I can’t even remember why but they were moving the door from one wall to another wall.

On the morning that the work was supposed to begin, the crew that was working on removing the door and walling in the opening (there were separate work crews for creating the new opening and closing the old) showed up early and removed the door and closed the opening before anyone arrived to work.  As luck would have it, one of the production servers locked up and needed to be hard rebooted.  The problem was there was no longer a door to the server room.  After considerable debate about the matter, the admin ended up having to actually chop a hole in the wall to the server room with a crowbar that he retrieved from the trunk of his car.

I Need to Try Firefox

I was looking over the traffic profile for the last week on this site and was surprised at the share of traffic that Firefox had.

  1. Firefox – 55.4%
  2. Mozilla Compatible Agent – 10.99%
  3. IE (what I have been using) – 8.7%
  4. Safari – 7.18%
  5. Opera – 3.18%
  6. Mozilla – 3.16%
  7. Everything else was bots and various rss readers

I had tried Firefox a few years ago and I didn’t really see any benefit but it clearly has the dominant market share of people who went to the effort of at least visiting my blog so it must be worth looking at again.  Within the Firefox category:  3.0 had about 30% share, 1.5.x had ~1%, and 2.0.0.x had the rest of the share.

Do you really need to know C? I think so.

I’ve been following the podcasts that Jeff Atwood and Joel Spolsky have been doing for StackOverflow.  The podcasts are not really technical in nature, in fact they really do not have anything to do with what will ultimately be the purpose of the site they are building.  They are more documenting the discussions and decisions they are making while creating the site.

I’ve only been through the first few so far, but an interesting discussion has come up in both podcasts about whether or not programmers should know the C programming language.  Jeff does not know C and seems to come down on the side of the argument that this knowledge is not necessary.  Jeff hasn’t specifically said this out loud, that I’ve heard, but I gather this is his opinion based on how the conversation seems to flow.  Joel, on the other hand, is of the opinion that programmers should have knowledge of the lower levels of programming even though it is not part of their daily job.  His thinking on this is that the lower level knowledge gives programmers an edge even when programming with the higher level popular programming languages of today.

I have to agree with Joel on this.  In my experience working with programmers in both categories, those who have a background of knowledge of the lower level programming languages always seem to be quicker at solving more complicated problems.  Of course, there are exceptions to this rule but I would say 98% of the time this is true.

It is interesting also that when this topic comes up with colleagues, it is almost split right down the line in opinion with those who do not know C believing it is not necessary and those who do have experience with C believing this sort of experience and knowledge makes them a much better developer.

One good example supporting my argument (actually Joel’s argument) is garbage collection related issues.  I’ve seen programmers spend a huge amount of time attempting to understand why the runtime memory size of their program is continuing to grow when, in their minds, the garbage collector should be coming to the rescue.  Of course, the problem is usually that they somehow have a reachable reference to a huge collection of objects or something of this nature (usually several in fact).  Programmers with the lower level knowledge seem to pick up on these sorts of problems much quicker.

Another area I have seen many issues with is threading.  Languages like C# and Java make threading a reachable concept for the programming masses.  This is a good thing unless you do not understand the underlying concepts of threading.  I cannot begin to calculate how many conversations I have had with programmers concerning the thread safety of their methods.  I also cannot count the number of blank stares I have received when I ask about the concept of thread safety in interviews.

I know that most will say that I am bringing up edge case problems that are not normal in business programming.  I am willing to concede that.  However, I also agree with Joel’s approach in that I tend not to hire programmers that do not have this knowledge because it happens often enough to be a problem.  There are exceptions, but those programmers are “exceptional”.

Tags: ,

Updated ASP.NET Dynamic Data Preview Released

Scott Guthrie announced the availability of a new preview of the ASP.NET Dynamic Data functionality.

The idea behind this functionality is that you can generate a fully functional application based upon a LINQ to SQL or LINQ to Entities model.  This reminds me a lot of the Naked Objects Framework from a few years back in the java world.  Naked Objects generated a rich client Swing application but the concept is identical.  It does appear, however, that ASP.NET Dynamic Data allows a little more customization of the UI than I remember from Naked Objects.

I bet if most users of smallish data entry applications knew in advance how much the development of their small application was going to cost them, they would gladly accept an application with limited UI goodness for something quickly available and just works.

I know that I will consider this tool in the future when I need to create small data administration type applications.  Saving time and money on those small applications can make more budget available for the applications that can really impact business capability.

Tags: , ,

« Previous PageNext Page »