Archive for August, 2004

I’ve Gone Hi Res.

Check out my new monitor…

Viewsonic p95f+

…And I also got me a nice new 120 GB Seagate hard drive. Ahhh, nerd bliss…

Advertisements

Code Updates

I’ve just updated the zip files containing the code for this website, as well as the TestostelesWeb project. Numerous cleanups, as well as TestostelesWeb now being able to fully support unlimited nesting of WebsiteSections. The code is most likely in need of numerous performance tweaks, but since most sites shouldn’t nest sections too deeply I don’t see this being a problem.

The next task on the list is to re-write the xml-serialization stuff to use XmlWriter, and make serialization more standard, instead of just writing it out to a large string (yuck).

Now that the incessant barrage of weddings is nearing a close (only one more to go until October 30th!), perhaps I can get TestostelesWeb up to snuff and properly hosted.

Code Gen vs. O/R Mapping… Why all the fuss?

In response to a large flame-fest/discussion on the merits of code generation and object/relational mapping, I posted the following in the ASP.NET architecture forums:

First of all, what are the problems that these techniques attempt to solve (feel free to add to this if I’ve missed anything)?

  • Code generation is a solution to the drudgery of writing repetitive code. At it’s most basic level, code gen takes the form of default class templates in VS (so you don’t have to write class and namespace declarations for every class, or hook up Page_Load methods for every aspx code-behind file). Using a templating tool like codesmith allows you to take this a *lot* further, by generating strongly typed collections (this particular template will be invalidated in 2.0), and even generating entire DALs and webforms based on a database structure. We all use code generation in some way, unless we’re writing our applications entirely in Notepad.
  • O/R Mapping is an attempt to solve the problem that comes about when we have a nice object-oriented system that needs to be persisted to an efficient relational data store. The goal is to be able to write object-oriented persistence code for our system. Nothing more, nothing less.

So why do we end up having conversations about “O/R mapping vs. Code Generation”, when they’re not even really attempting to solve the same problem. These techniques are not mutually exclusive, indeed O/R Mapping is a type of code generator almost by definition; It takes an object and generates SQL code based on the mappings. Most commercial O/R mappers integrate code generation into the whole mapping process, generating objects and mapping files for you based on the database schema. They’re totally complementary techniques, people.

That said, let it be known that I have used an O/R mapper in almost *all* the projects I’ve worked on in the last year and a half (since I un-wittingly wrote my own simple O/R mapper before I even knew what they were). The one exception was a job application system I built almost a year ago. We had an extremely tight deadline, and so I looked to Frans’ original free version of llblgen (which was not an O/R mapper at all). It seemed like a great solution at the time, since I could point the application at my database, and have llblgen generate the *entire* DAL of my application, including stored procedures, objects, and persistence code. However, while I may have gained initially, I still had a large number of stored procedures and c-sharp code files that had to be actively maintained. And once I’d customized the generated code according to the needs of the client I had a huge maintenance problem on my hands. This is something that an O/R mapper greatly reduces (not entirely, though).

Based on my own personal experiences (and yours may differ), I think that code generation is something that we all would be stupid *not* to use. However, if you think you can simply go ahead and generate an entire layer or two of your application, be prepared to maintain all that code as if you’d written it by hand in the first place. Once you initially generate your code, it becomes difficult to add in your own custom stuff without running the risk of overwriting it when you have to change your database structure due to conditions un-foreseen at the start of your project. That said, it’ll be interesting to see what happens on the code gen front once Whidbey goes final and partial classes come into play.

I Got It!

Thanks to Eric, I now have GMail. It’s got a pretty sweet interface for a web application, but I have absolutely no clue how I’m going to use the address (jeffperrin@gmail.com). It just ups my geek cred.

Talking on the “Phone” is New Again

I’ve officially been Skyped. Y’all should go out and get it. My user name is ‘testosteles’.

“Meme”ing Your Own Business

There are by some estimates more than a million weblogs. But most of them get no visibility in search engines. Only a few “A-List” blogs get into the top search engine results for a given topic, while the majority of blogs just don’t get noticed. The reason is that the smaller blogs don’t have enough links pointing to them. But this posting could solve that. Let’s help the smaller blogs get more visibility!

This posting is GoMeme 4.0. It is part of an experiment to see if we can create a blog posting that helps 1000’s of blogs get higher rankings in Google. So far we have tried 3 earlier variations. Our first test, GoMeme 1.0, spread to nearly 740 blogs in 2.5 days. This new version 4.0 is shorter, simpler, and fits more easily into your blog.

Why are we doing this? We want to help thousands of blogs get more visibility in Google and other search engines. How does it work? Just follow the instructions below to re-post this meme in your blog and add your URL to the end of the Path List below. As the meme spreads onwards from your blog, so will your URL. Later, when your blog is indexed by search engines, they will see the links pointing to your blog from all the downstream blogs that got this via you, which will cause them to rank your blog higher in search results. Everyone in the Path List below benefits in a similar way as this meme spreads. Try it!

Instructions: Just copy this entire post and paste it into your blog. Then add your URL to the end of the path list below, and pass it on! (Make sure you add your URLs as live links or HTML code to the Path List below.)

Path List
1. Minding the Planet
2. Luke Hutteman’s public virtual MemoryStream
3. JayBaz_MS blog
4. MSCorEE : IScalable
5. Jeff Perrin’s Blog

Polish Weddings are Fun

I know y’all are probably sick of hearing me go on and on about weddings this summer, but since I really have nothing else to talk about I guess you’re shit out of luck

As the title of this article states, Polish weddings are pretty cool. They really know how to throw a party. The highlight of the reception for me was probably the games (which took place well after midnight). It’s hard to describe, but the best game involved tying an apple to a string from the contestants’ belts, and having them gyrate their hips in order to knock a paper plate/bowl across a finish line about 10 feet away. I haven’t cracked up that bad in a long time.

Jackie whipped up a pretty good speech, as well as a powerpoint slideshow that left the entire bridal party in tears. She’s getting good a that. Anyways, congratulations to Anna and Martin… Who are two of the nicest people I’ve ever had the pleasure of knowing. One word of advice, though… If no-one will tell you what’s in the stew, it’s probably not worth finding out.