Monday, November 27, 2006

The other day Catherine received an MSN message from a friend with a website link. After clicking on the link (which looked perfectly valid) the website she went to ran a zero-day exploit on her machine and installed a nasty trojan.

The trojan proceeded to message everyone in her contact list with the link. I probably would have clicked it but when it messaged me no one was sitting at her computer, it seemed a little strange to me.

I went over to her computer to take a look and it was going wild! It was opening up windows by itself and messaging people and killing applications I was trying to run. After running her Anti-Virus I was able to successfully find the trojan but the anti-virus could not delete it.

I went straight to download TCPView, Process Explorer and AutoRuns from Sysinternals (now hosted at Microsoft) and used Scott Hanselman's post as a guide.

The first thing I checked was TCPView to see if the trojan was calling home, luckily it was not, so the next step was to check out what was being run at startup. The first thing I noticed in Autoruns was a weird entry called explorer:

explorer

 I also noticed a weird guid being loaded at startup:

weirdguid

If you check out the IE Toolbars and the Browser Helper Objects you can see that an entry for the 888Bar has also been created:

888Bar2

888Bar

 

I located all the offending assemblies and registry entries, deleted them and now her computer seems to be fine. I find it very interesting that all of this crazyness happened from clicking a link to a website.

Monday, November 27, 2006 4:15:14 AM (GMT Standard Time, UTC+00:00)  #    Comments [1]  | 
Monday, November 20, 2006

Although I was on vacation for a week, I found the time to read Applying Domain Driven Design and Patterns by Jimmy Nilsson. I would highly recommend this book, but I would recommend that before you buy it, you go out and purchase and then read Patterns of Enterprise Application Architecture by Martin Fowler and Domain-Driven Design by Eric Evans (they are worth your hard earned money). There are a lot of concepts presented in Applying Domain Driven Design that are talked about in these books.

Having said that, the first section of the book Jimmy introduces you to topics such as Test Driven Development, Refactoring and Design patterns and how they aid the Domain Driven Design process. Personally, no matter how many times I read these topics, they are some of my favorites in software development and I will always re-read them when I see them in a book to get a different perspective on them.

I particularly enjoyed the sections on techniques for Querying, and different approaches to object relational mapping. Jimmy talks about the Identity Map, Unit of Work and Lazy/Eager Load patterns and the pros and cons of each patterns (Jimmy does a good job throughout the book distinguishing pros and cons of the different patterns).

After Jimmy has talked about ORM in an abstract way. He shows you how to practically use NHibernate. This chapter was a good introduction to NHibernate for me. Although being in the middle of the ocean and not having a computer to try it out was kind of painful.

Chapter 10 is almost entirely written by guest authors and introduces some design techniques. There are some good articles on Inversion of Control/Dependency Injection, Service Orientation and Aspect Orientation. After reading this chapter I would like to try and experiment a bit with Spring.net and some of the other IoC containers.

Conclusion

Jimmy does a good job in teaching about how to focus on the domain model while developing an application without worrying about the infrastructure of your app until the right time while teaching numerous domain driven concepts. I can see myself constantly coming back to this book in the future.

As Jimmy puts it in the epilogue the book is structured in a Domain Driven Designish way:

  1. First we try and collect the requirements and understand the problem.
  2. Next think about the approach to use when structuring the main logic (this may not even require a domain model).
  3. We need a certain style for the domain model, not only to avoid common traps, but also to create something really powerful. Try and settle the Ubiquitous Language.
  4. Think about the required infrastructure.
  5. Think about how to deal with presentation.
Monday, November 20, 2006 11:18:15 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  | 

Thanks to everyone who offered their congrats on the recent engagement. We made it back safe to Edmonton, although I seem to be suffering from vertigo and I feel like i'm still in the eastern time zone (at least i'll be early for work tomorrow).

Here is a mini tour of my vacation, for the rest go check out the Flickr photo set and the Flickr map.

 

The first thing I did on the vacation was get engaged to Catherine:

DSCF0892

PB110050

The first stop of the cruise was Nassau, Bahamas.

DSCF0896

The picture below may be the Coding Hillbilly's house or it may be Chuck Norris' house. I'll leave it up to you to decide:

DSCF0902

We only had one day in Nassau so we went snorkeling off of Pearl Island.

DSCF0907

 

The next stop was St. Thomas. We decided to go to a small island off of St. Thomas called St. John which is a national park and my favorite part of the whole cruise. We went with my sister who works on the cruise ship.

PB140027

PB140036

 

The last stop of the cruise was Orient Beach in St. Maarten, Catherine's favorite stop on the cruise.

DSCF1098

DSCF1099

 

We then had a couple of days in Orlando, Florida so we went to Universal Studios where I had to save Catherine from getting eaten by Jaws and I got to see a Flux Capacitor.

DSCF1208

DSCF1211

Monday, November 20, 2006 11:14:25 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  | 
Wednesday, November 15, 2006

I am halfway through my vacation in the Caribbean and right now I am sitting on a beach in St. Maarten having some kind of Guava alcoholic beverage.

Last Saturday, I asked my girlfriend to marry me and she said yes! Pictures to come later.

Wednesday, November 15, 2006 4:42:47 PM (GMT Standard Time, UTC+00:00)  #    Comments [7]  | 
Sunday, November 05, 2006

There will be no spoilers in this post. I'm not that kind of guy.

Today Catherine and I went to see the movie Borat (Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan). This movie was one of the funniest movies I have seen in a long time.

The way that Sacha Baron Cohen portays another culture coming into a new country, really shows how oblivious the western world is to other cultures. Kazakhstan is taking the movie in stride (they get it), but the brilliance of this movie is how it portrays some of the radical extremes in the United States using a character who is oblivious to absolutely everything.

So if you are like me and only see one movie a year (because you are playing too much buzkashi), go see Borat.

Fun
Sunday, November 05, 2006 6:00:44 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  | 
Wednesday, November 01, 2006

Navigating in the Solution Explorer

Ctrl + Alt + L: Open the Solution Explorer (the most important one).

Esc: Return focus to the coding window (hides the solution explorer).

Up Arrow: Move up between nodes.

Down Arrow: Move down between nodes.

Right Arrow: Expand current node.

Left Arrow: Collapse current node.

Solution Explorer Project Actions

Ctrl + Shift + A: Add a new item (project must be highlighted).

Shift + Alt + A: Add an existing item (project must be highlighted).

Alt + P + R: Add Reference to the current project.

Alt + P + E: Add Web Reference.

Alt + P + A: Set the current project as the starup project.

Alt + P + P: View the current project's properties.

 

If you have any others related to the solution explorer windows please post them in the comments.

Wednesday, November 01, 2006 12:01:29 AM (GMT Standard Time, UTC+00:00)  #    Comments [1]  | 

Esc: Closes any of the windows below and returns focus to the code.

Ctrl + Alt + S: Open the Server Explorer.

Ctrl + Alt + L: Open the Solution Explorer.

Ctrl + Shift + C: Open the Class View.

Ctrl + Alt + J: Open the Object Browser

F4: Open the Properties window.

Ctrl + Alt + X: Open the Toolbox.

Shift + Alt + Enter: Go fullscreen.

If you have any others related to viewing and opening windows please post them in the comments.

Wednesday, November 01, 2006 12:00:45 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  | 

Theme design by Jelle Druyts

Pick a theme: