Sunday, August 10, 2008

Weekend Ramblings (some rants too...)

Non-technical ramblings:
  • I thought Pineapple Express was a mediocre movie (literally just got back from seeing it)
  • Got my scale I ordered from Amazon... I am trying to lose weight and am recording the daily results on a dry erase board in my nerd cave. Hopefully the cat won't erase it... stupid cat. If I can create a trend where I sustain a loss of a pound a week then that is perfect.
  • The book 'When You Are Engulfed in Flames' isn't very good. I guess that is why I should maybe check out this thing called the library... because now I am stuck with a crappy book from which I've only read the first few chapters.
  • I am almost caught up on watching the show Weeds. (What is it with all these pot-themed movies and shows that I have seen recently???) I was streaming them online through my Netflix account and then realized they didn't have season 3 available to stream... so I rented season 3, disc one from the video store down the road and watched it late Friday night only to want to see more episodes on Saturday afternoon. I went back to the video store and they did not have the 2nd disc in stock (crap!). I go to another video store  (I was not a member there and would have had to sign up...) and it is out there as well (double crap!). Then I remember this wonderful thing called the Internet. It is where I was watching the first 2 seasons after all... so I Google Weeds streaming episodes and sure enough I find all of them all the way up to the current episode (like season 4, episode 8). Needless to say, I watched way too much TV this weekend.
  • The new Ours cd (an indie rock band from Chicago) is not very good. Unfortunately, it seems they tried real hard to make most of the songs radio-friendly and they just end up sounding forced. A couple songs are good, but they are no Sigur Ros :-) (Sept 23rd can't come soon enough!)
  • The Olympics have started and have been fun to watch. It was good to see the USA beat China in basketball this morning.

Technical ramblings:

  • Learned some good things about how to implement a LINQ data access layer on the program at work. It is just a start, but patterns are beginning to take shape... especially the fact that timestamp columns are a great was to handle concurrency and that we need to get on board with it. Timestamp columns also give you a way of moving entities over the fence to attach to a separate LINQ DataContext. Having a way to create real foreign-keys in the system now is also extremely useful for generating automatic relationships within the dbml file and across the entities.
  • I am also finally beginning to understand domain-driven design concepts. I am still only through the first couple chapters in the book I mentioned before, but I revisited those chapters and compared the patterns to the ones used on the LINQ data access layer above and was pleasantly surprised to see that many of the practices tried this week were also in the book. (Google 'LINQ Repository Pattern') Unfortunately, the book does not deal with LINQ at all despite saying it is a .NET 3.5 book, which sucks honestly because as I am viewing the code the author wrote I can already see better ways to do the job with much less code. For instance, he still uses dynamic SQL strings built up in code to perform updates and inserts. Also there are several cases where auto-implemented properties and lambda expressions would have yielded much less code. Most of the concepts are still good, but it is hard to ignore the LINQ DataContext and generated entities when reading through the book.
  • Here is a good rant... why the heck can't I alter a column in SQL server that is numeric to set it as an Identity column. I swear I had to jump through way too many hoops at work last week to switch all of my Id fields over within my data model. At least give some way to do an update against an Identity column as well. It sucks that I had to temporarily move the data around in order to drop the table and re-create is as I wanted. I first went through creating this huge dynamic SQL script that handled updating all of my tables in one shot, which ended up working. But it was annoying because it placed all of the Id columns at the end of the table because I was forced to drop the original Id column. I know column order should never matter, but querying those tables in management studio (with select * syntax) and scrolling over to see the primary key would have drove me insane pretty quickly.
  • The 'vote of no confidence' against the still unreleased entity framework is now big news. Listen to the podcast about it from the ALT.NET guys below (really, really interesting concepts come from this website by the way). I found it funny how one of the guys wants to invent a time machine to go back and force Anders (the lead developer of C#) to create all methods as virtual by default. http://altnetpodcast.com/episodes/8-vote-of-no-confidence
  • I emailed John-Paul Boodhoo last week to see if he plans on instructing one of his 'Nothing But .NET' bootcamps sometime soon in Chicago or Detroit. He is one of the developers that quickly gained notoriety a year or two ago for pressing the subjects of TDD, IoC, DDD, and all that good stuff on .NET rocks and DNR TV. He does these bootcamps where he has a very small class, like less than 20 people, and does a hands on project with you for 5 days straight, with most days lasting up to 14 hours. The material is very, very good... and he is really good at presenting the concepts. He replied back to me today and says he has on his schedule to present in Chicago during the 2nd quarter of next year. I really want to go, but this stuff is not cheap because of the very small class sizes ($3,000 total, which includes the 5 days, food for the week, a ReSharper license, $70 amazon gift card, and a 'I survived .NET bootcamp' shirt)  Check out his webpage at http://jpboodhoo.com/Home.oo

No comments: