Scott Hanselman

The CodingHorror Ultimate Developer Rig Throwdown: Part 3

July 11, '07 Comments [32] Posted in Musings
Sponsored By

765359714_f1acd91935_oThe building has begun - Jeff's got pics over at CodingHorror as he gets my new system to boot. If you build a lot of systems it might be old hat to you, but we figured it'd be nice to go through the whole process from building, to software, to benchmarks, in detail - step by step. You can read about Part 1 and Part 2 if you like.

Seriously, you could literally fight off a mugger with that heat sink.

I'm still going back and forth about Vista 32-bit versus Vista-64. Sure, everyone's complained about Vista 64-bit having driver problems, but do most apps work?

Apple handled their PowerPC->Intel transition fairly smoothly, and it's nice that there's only one two version(s) of the OS. I believe that Vista is the LAST 32-bit OS from Microsoft, so it seems like 64-bit might be the way to go.

How much trouble am I going to get myself into? There are those that swear by 64-bit XP...

UPDATE: Jeff's got Building a PC, Part II up where he installs the hard drive and figures out the wattage, and Building a PC, Part III, where he overclocks my Quad Core2Duo. It's getting exciting!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

SVN RELOCATE: SourceForge moves Subversion URLS - Will the fun ever start?

July 11, '07 Comments [9] Posted in DasBlog
Sponsored By

I really don't like to "blog bile" but seriously, SourceForge may have jumped the shark for me. The website does have a certain Vegas billboard charm, circa 1997, but what is going on over there? The Site News is updated (barely) every few months,  while important news is hidden on the Site Status Page.

UPDATED: Apparently I'm the only guy who didn't get the message on this.

Basically, a few days ago they upped and change the URLs for Subversion. Suddenly I started getting this uninformative error (Subversion's fault really, more than SF.NET):

Error: PROPFIND of '/svnroot/dasblogce/trunk': Could not resolve hostname `svn.sourceforge.net': The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for.   (https://svn.sourceforge.net

John Forsythe figured out that they'd moved the URLs, adding the project name as a sub-sub-domain, providing what value I do not know.

The announcement of this change was buried here. Of course, why didn't I see that? Seems like it would have been better to email all the project owners, or put an announcement on each project page with the new URL.

clip_image002

Either way, you can fix it WITHOUT re-checking out your code by using the rarely used SVN Relocate command, as seen in the screenshot above. You'll get a very frightening warning from Subversion indicating that this is ever so rarely used and you may ruin everything. Say Yes. Crisis averted.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Sez You Architecture and the Architecture Ninja

July 10, '07 Comments [5] Posted in Musings | Programming
Sponsored By
image

I don't like getting into architecture arguments with people who are fundamentally interested in the argument being constructive. There's discussions and there's arguments. Having an argument doesn't mean that it has to turn into a shouting match or a "measuring contest."

I try to remind whoever I'm arguing with that we're both on the same side, with the same goals.

Sometimes, though, these Architectural Arguments devolve into what I call "Sez You Architecture."

These kinds of meetings usually go something like this:

"I'm concerned about the lack of Unit Testing on Project A. I'd like to see a little less coupling and some better code coverage numbers, otherwise I won't feel comfortable signing off on a Go-Live."

"Sez you. My team has done a great job and I don't see a problem."

Sometimes I feel like Harvey Keitel as "The Wolf" in the movie Pulp Fiction.

"Pretty please, with sugar on it, fix the ****ing build server." - Scott 'The Wolf' Hanselman

Discussions that devolve into "Well, sez you" are never healthy for anyone. Nobody wants to be the bad guy, and it's rarely a good idea for management to go get "The Smart Guy" and have him come crashing down through a stained glass on a zipline ready to save the day. However, doesn't that so often seem to be the case?

Bringing in external assistance or even oversight/governance can be a good thing, but only if the tone of the engagement is set properly. Everyone should agree what the goals are and what success looks like. The person coming in should understand they are there to help, not to dictate rules or order people around. It is very likely that the Architecture Ninja has little context and has only been told that things are messed up and that a few specific people should be killed to get the project on track.

Instead, in my experience, folks should consider two primary issues:

  • The folks ON the project may not be able to see the holistic view, as they're just too close.
  • The Architecture Ninja can't possibly understand the complete history of why certain decisions were made.

If everyone remembers these two basic facts, things might turn out better. The project team remembers that the ninja is here to help, while the ninja should focus on highly leveraged actions and avoid going over things line by line.

A crappy project can't be fixed by a line by line code inspection, no matter how good a ninja one is. Sez me.

Technorati Tags: ,

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Home Page, Category, and Item Paging in DasBlog

July 9, '07 Comments [0] Posted in DasBlog
Sponsored By

We on the DasBlog still struggle with documentation (and we're always looking for folks who want to help). Any skinnable/themeable blog engine with templates and macros like DasBlog has literally hundreds of options that you can opt-in or out of.

DasBlog uses a macro engine with macros in the form of <% macro(param, param) %>. These macros go into two main template files (although there are others), called hometemplate.blogtemplate and itemtemplate.blogtemplate.

The first is not just the home page, but the whole basic layout of the blog. The second is the template for any one single blog post.

We recently added a couple of options for paging to DasBlog, but we haven't added them to all of our 16+ default themes, and if you have a custom theme - and most of you do - then you'll note get these new features unless you add a few things to your templates.

There's a couple different kinds of pagination, in an attempt to answer Jeff Sandquist's good question.

Home Page Paging

imageThere's "Older Posts" that you'd use to get to older ports from the home page. This takes the form of an "Older Posts" link usually at the bottom of your blog's main page, and a "Newer Posts" link if they are already off the main page. The URL will change to include a page parameter like: http://www.hanselman.com/blog/default.aspx?page=1

All this assumes that after someone has read the first page they'll want to continue reading backward in time. You can get that by adding these macros to your hometemplate.blogtemplate:

<div class="post-paging">
 <div class="previous-posts">
  <% DrawPostPagingPrevious() %>
 </div>
 <div class="next-posts">
  <% DrawPostPagingNext() %>
 </div>
 <div class="clear"></div>
</div>

The divs are, of course, totally optional. These are just what I use.

Category Paging

imageA lot of features are added after someone uses your product for years. I've got five years of blog posts now and I didn't have a problem with too many posts in one category in 2002, but now it's a problem. So, there's category paging, that appears only when you're on a category page and you've turned on category paging in your EditConfig.aspx.  To turn on category paging do two things, one, uncheck "Display All Entries in Category View and second, ensure there is a value in the "Entries per page" textbox.

image

The macro you'll need to add to your hometemplate.blogtemplate is:

<% DrawCategoryPaging() %> 

and I usually put in in the template TWICE, once above the "bodytext" macro and once below so folks can get to the next page regardless of if they're at the top or bottom of your page.

Single Item Paging (Navigation)

Finally, there's item paging. Not really paging, as it's navigation. It means being able to go from single post to single post. That's done by adding this to your itemtemplate.blogtemplate, usually at the top:

<%PreviousLink("&laquo;&nbsp;",40)%>
<%MainPageentryLink("Main", "|")%>
<%NextLink("&nbsp;&raquo;",40)%>

For the first and last macro, the HTML entities that are passed in are the characters that you want prepended or appended to the name of the previous and next title, and the number is the number of characters to show before truncating the title.  for the "Main" macro, the word passed in is the text to display to indicate the home page. I use the word "Main," myself. The second parameter is the separator.

image

Again, there's LOTS of cool stuff you can do with DasBlog that we are doing a lousy job of Documenting. If you want to get involved, join the DasBlog Developers Mailing List (Archives) and jump in. We're harmless.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Lenovo T61 - The Battery is too hot, run!

July 6, '07 Comments [12] Posted in Musings
Sponsored By

I swear I can break any computer just by being in the room. You do realize, Dear Reader, that these crazy message boxes and errors that I bring to you week after week are real, screenshoted from my own machines, unmodified. Some of these things are just unreal. Like, I have to look around sometimes for the hidden camera because I MUST be on TV.

Today, the IBM Craplet Message Center had these choice tidbits for me.

The next messages let me know a battery error is detected? What kind of error could that be? Did it suddenly STOP being a battery? Then, seconds later, "irreparable damage" was detected. Who or what service detected this? Not just regular damage, mind you, but irreparable damage.

Then, I'm told it's too hot. Hm. Feels find. No fever or anything. Either way, I removed it because I don't want my ThinkPad to explode like Alan Cox's did.

Best part: Notice the "Advertising" message from 14-Mar telling me to pick up some of these great ThinkPad batteries.

Message Center (3)

Welcome to my life. I hate computers some days.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.