Visual Studio 2008, Beta 2...Installed!

31 July 2007

I'm not generally averse to trying out beta, or even alpha software. On something as big as VS I am. With beta 1 I went the virtual machine route, which worked great. But for beta 2 I decided to actually install the thing on my dev machine at home. I was a little worried, but here in the next few months I'm due for a rebuild anyway.

I did a full install minus Crystal Reports (because I firmly believe that Satan invented and continues to develop it) and Sql Server 2005 Express (already have that). The install took about 40 minutes, with no issues.

I upgraded a WPF project with no negative ramifications. Did the same with one web project. All seems to be working well. I also made your my VS 2005 projects still worked, and they do.

So, in my experience, everything is peachy.

Comments:0

Photoshop Elements 5 and Memory Issues - Photoshop Elements Is Stupid

26 May 2007

Sometimes I love Photoshop Elements. Sometimes it annoys me (like when it decides it wants to undo with Ctrl-z, and then changes its mind and wants to use another key combination). Sometimes it destroys my work. Tonight is such a night.

I am working on a logo design. I try to save the file and I get a "Could not complete your request because there is not enough memory (RAM)." error. Okay, well, I have a total of two gigs of memory, and about 1.2 gigs of that are free. I REALLY don't think that is the problem. The image only had three layers, one with a text block on them each. Save As... got me the same error. My work was lost. Nothing I could do to save it. Switching to Expression Design for the evening. Maybe I can get something done.

Frankly, I was a little more impressed with the quality of Photoshop Elements 2 than I am of 5. 

Comments:2

Books, Thrius, Art and Quizlet

24 April 2007

So what else have I been doing? Well, I've been reading some books, one on Greek constituent structure, and one on web design. Reviews coming soon.

Also, I just released alpha 3 of Thrius, but only to a few people. There is still quite a bit to do still. Will have some screenshots up when it is a little more fully baked.

So in junior high I had a horrible art teacher. I remember one day where she lambasted a drawing I had done. It hurt. I haven't really done a lot of art related stuff since. Well, a couple weeks back I picked up drawing again. At some point I'm going to move on to painting, but for now, drawing is enough. So far I'm pretty happy with a reproduction of a bust of Plato and a few drawings of the Tick :). Maybe I'll post some photos at some point. I need more ways of driving traffic away ;)

Have you used Quizlet? I just started using it yesterday. It's a nice replacement for flash cards. I've been a big user of flash cards in the past for vocabulary especially (who knows how many flashcards I made for Greek, Hebrew, and Aramaic). Now I'm trying an online solution. It has the expected flashcard functionality as well as some nice quizzing features. The user interface is pretty responsive as well. You can definitely see where he got all ajaxy. If you're a flash card user, this seems like a pretty good site. And it's free.

Comments:0

New Blend...Snappier? A First Impression

27 March 2007

Recently Expression Blend went into RC mode (Blend, if you don't already know, is MS's next WPF designer). Since I've been out of touch for the last few weeks, I am not sure how long it has been out.

The new Blend is now installed on my machine. First impression? It is considerably more responsive. Now last weekend I added an extra gig of ram to my machine (from 1 to 2 gigs), so that may have something to do with it, but I don't think so. I often used it when I had extra RAM left over, so I don't think the increase in RAM did it. But I could be wrong. But if I'm not, they have at least made some improvements in the performance. Bravo.

Comments:0

Taking the WPF Dive

13 February 2007

So I finally started looking into WPF. I finally had a project that could use it. I've spent the last week and three days spending just about all my spare time reading and coding this stuff.

First impression...wow. Over the last few months I have been spending time in ASP.NET Ajax and have been very impressed, and I still am. But this...this just blows me out of the water. Seriously, as I do things, I keep saying "wow" to myself. I also found myself frequently bugging my personal winforms gui guru David just to say "wow" to him.

It is going to have quite the learning curve with most who have experience in winform development. That has been the case for me. It's not that it is very hard; it is just very different.

More thoughts later, for sure. The project that involves WPF will go on for quite some time. I will be able to tell you more about the specific project sometime in March, I expect. Stay tuned.

Until then, if you do any windows development, check it out. It rocks. And while you are at it, check out Expression Blend. Very useful.

Comments:2

New iPod

20 January 2007

I bought a new iPod yesterday. It is a 30 gig model, black and sleek. I have been using an iPod mini now for at least two years. It has served me well, but the battery stopped charging completely. That obviously makes it much less useful. I would have had to start bringing an extension cord with me to the gym. I wonder how long it would have taken the staff to notice and say something...

I like it mucho. It is thinner than my old mini, but probably close to an inch wider. This makes the screen much more readable, so that's fine. It is also color and plays video, two more things that the mini did not do. It only cost me $25 more than the mini did when I bought it way back, so that's not to shabby either.

But I have two not quite so positive comments. First, I don't like the feel of the wheel as much as I did with the mini. You have to press harder to get it to respond. That's going to take a lot of unlearning. Also, it didn't come with a electric socket charger like my mini did. Apparently they don't come standard anymore. Seems a little cheap. The only way to charge it is through USB...unless you happen to have a wall charger left over from when you had a mini :)

Overall, a big improvement. I'm glad I got it. I briefly considered moving to the Zune, but since I didn't actually know anybody who had one, I didn't want to try it. Maybe one day. 

Comments:0

Comments on the Blog and Tinymce

06 January 2007

The commenting capabilities of the site have been functional, but not very nice. Html comments were not allowed, as one of you noticed, and the text entry was obviously basic.

I have now spiffied it up. You will notice that you now have the write comments that are very html-ish. Feel free to do so. The text entry control is called tinymce, and it is distributed under the GPL. It is very easy to setup for use on your blog/website. So far I am happy with it. Check it out.

Comments:0

Some New Book Reviews

08 December 2006
I just posted reviews for two books. If you are perhaps interested in a book called The Genius of Language, check it out. I have spoken of Lean Software Development: An Agile Toolkit before, but my official review is up now and can be read here.
Comments:0

Decompiling the ASP.NET Ajax Library

07 December 2006
So in an attempt to look deep into the bowels of the UpdatePanel of ASP.NET Ajax, I decided to employ one of my favorite geek tools, Reflector. Reflector has a nice interface, but Visual Studio's is a little better, so I tried out one of the addins that actually dumps the decompiled dll into text files. I ended up using this one. It actually creates the class library and pulled the javascript files out of the Microsoft.Web.Extensions library. Pretty cool.

But it didn't work perfectly. If you want to do the same, be prepared to deal with some issues.

  1. Private classes aren't handled well. This is actually a problem with Reflector, not with the plugin. Only two classes (that I could find) used them, so those had to be manually fixed.
  2. Enums were decompiled as their integer values. C# will not implicitly cast an int to an enum, so all of those ints had to be cast.
  3. Properties where not properly decompiled, but that's not a surprise. As you .NET geeks surely know, properties are syntactic sugar, and are compiled in IL to get_ and set_ methods. These showed up in the decompiled C# code, and had to be changed to properties manually.
  4. Ref and out were often switched.
After fixing a little over four hundred syntax errors, everything was fine :). It actually went pretty quickly, since most things fell into the above four categories, and those are easy to fix.

Now I have the MS ASP.NET Ajax library in code files.

So the plugin works pretty well, though things could be improved.


Comments:0

ASP.NET Time Tracker Starter Kit

06 December 2006
It can be found here. I am not as impressed as I would have liked to have been. I would like a nice time tracking/project management tool. I figured this would not have worked as a project management tool, but even for a time tracker I just found it unsatisfying.

I created a sample project, some users, etc. I started entering time. What struck me as odd is that I can't see where you can ever say a task is complete. That just seems like it would obviously belong in something like this.

Anyway, it is a starter kit, so it's not supposed to be too fancy. But I would have expected more.
Comments:0

A Few Notes on the Logging Application Block

05 December 2006
We are switching a project I'm working on from a custom logging solution to the one built into the Enterprise Library, the "Logging Application Block". This is nice, because it means we can get rid of quite a bit of custom code (that's code we no longer have to debug or maintain). The logging application block is very well done as far as I can tell thus far. It makes it very easy to configure logging without having to change code.

Because we do have a particular way of logging that doesn't fit exactly into what the app block does, I did have to create a custom trace listener. But even with that I was able to remove several hundred lines of unnecessary code.

I think there are really three main advantages for going this route. First, the logging is completely configuration file based, and in the app.config. This is excellent, because QA and our deployment team to change the logging for debugging's sake without having to have development mess with it.

Second, when you use a solution like this you have a much better chance of pulling off consistency across groups. If everyone is using the same logging solution, then everyone knows what to expect and what to do when they need to deal with any aspect of logging.

Third, as it was said above, it requires less code. Granted, it is probable that the enterprise library team did not write the application blocks without defects. There may be some bugs in the logging application block. But I can guarantee that their code was more extensively tested than our internal code. I trust it quite a bit more.

A temptation that we programmers can easily fall into is the desire to over-architect and write code we don't really need to write. I have that same temptation. I like programming. I like flexing my programming muscles. And sure, we all program extraneous things to learn more about our craft. That's very important. But as professionals, we need to think about what needs to be created, not necessarily what we want to create. We're lucky when those are the same. But when they are not, we shouldn't pretend that they are.

Now, a little nitty-gritty. There are a few important sections in the configuration of the logging application block. <listeners /> is the section where you define what listeners you want to use, whether that is a built in listener like the file or event log listener, or a custom listener. These are the things that "listen" for logging requests, and log appropriately.

The <formatters /> section is a little more boring, but can be useful for formatting the log messages.

The use of the <specialSources /> section is not immediately obvious, and took a little digging, and this posting was helpful. Essentially, the listeners listed here are used when the typical logging fails, and something needs to be logged about that.

The most important section is the <categorySources /> section. That is where you route different categories of log messages to different sources. For example, you can log "information" log requests to the event log, and "errors" to a database log. You can route things to email, a message queue, a text file, or a custom trace listener. If you want to go the custom route, you can maybe send an instant message or an sms message.

It is the last bit that I find most useful. Because it is configuration file based, anybody can change what goes to where anytime they want to, and no code needs to be touched. What a good idea that was...

If you want more information, I recommend reading the documentation and checking out this series of posts. That link is to part 4 in a 4-part series since it is only the last part that has links to all the other parts in the series.
Comments:0

TestRunner by Mailframe

30 September 2006
I have no idea why a company called "Mailframe" would be making something like Testrunner. Testrunner is a Visual Studio Addin for aiding in automated unit testing.

Features/Pros:
  • Nice gui - the colors are bright (though maybe a bit strong) and the whole thing looks good. Follow the link and check out the screenshots.
  • Nice integration - works right within visual studio and gives you some nice visuals in the text editor for code coverage...
  • Code coverage - it does that...
  • Uses the NUnit framework - so if you are already using NUnit, this will be an easy move.
  • Performance measuring - it does that too (just in terms of how many ms it took to execute something)
  • It is cheap - there is a trial version and the full version is just $49. A LOT cheaper than Team System. Of course, Team System does a lot more.

Cons:
  • A little choppy - Of course this may be more the fault of VS than Testrunner since VS is often a little slow anyway.
  • No way to ignore individual files in coverage. None that I can find, anyway. "But you don't want to ignore those." Yeah I do. My web controls are in the same library as the other code that I'm testing, and I don't want to move them to a separate library to keep them from skewing the coverage results. And I think those controls are better tested through other means.
I haven't decided if I'm going to buy. We'll see. I'll use it for the next 15 days and see how much I like it.


Comments:1

Online Code Formatter Versus CopySourceAsHTML Addin

10 April 2006
So I found out that the copy source as html visual studio addin has been ported to 2005. You can get it here. So which one is better? How about some code samples...

Using the VS addin:

   18         public void ShowSomething()

   19         {

   20             MessageBox.Show("I am a code sample. Hear me roar!");

   21         }


Using the online code formatter:


   1:          public void ShowSomething()
   2:          {
   3:              MessageBox.Show("I am a code sample. Hear me roar!");
   4:          }


So, the result? I do like the colored lines affect you can get with the online code formatter. It can also do t-sql. Don't know if the other one can. However, the addin has some features that the other doesn't, like removing indentation and line breaks (not that I see myself using them, but whatever...). It also mimics the coloring you see in Visual Studio, which is nice. So, decide for yourself which one you like most.
Comments:0

Online Code Formatter

10 April 2006
Want to show code in your blog? Here is an online utility for doing that. There was a visual studio add-in for 2003 that did this. I wonder if it works in 2005...

Anyway, this one works.

Comments:0