Wednesday, October 03, 2007
I'm just catching up on my feeds and saw Nick Hodge's post with his slides from the Australian Blogging Conference

Without the benefit of the associated naration they are still worth a look on the topic of business blogging.

Wednesday, October 03, 2007 8:54:39 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, October 02, 2007

I have been looking at company blogs to satisfy a mixture of professional and after-5 curiosities. The example I keep coming back to is 37signals.

The reasons they top my list are:

The product blog is a great read for hearing how to get the most out of their products. In their own words, Signal vs. Noise, a weblog by 37signals about design, business, experience, simplicity, the web, culture, and more.

For a tech R&D shop, this is about as good as I have seen.  I'd also welcome comments on other good examples that people like!

An honourable mention goes to Art. Levedev Studio’s Life and Incredible Adventures of Optimus Keyboard blog where you can keep up with the hardware development in what may turn out to be the last word in keyboards!

Tuesday, October 02, 2007 5:24:55 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [1]  | 
 Friday, September 21, 2007

I came across the following example in Inside T-SQL Programming, which I am digesting at the moment.  Actually it is credited to Steve Kass (technical editor):

SELECT OrderId, OrderDate
FROM dbo.Orders
WHERE DATEDIFF(day, '19000102', OrderDate) % 7 = 0

This query is to answer the question "Which orders were placed on a Tuesday?".  The query isn't particularly magic, but the idea behind it is as close to the zen of T-SQL as I can remember seeing:

There are 7 days between any two Tuesdays.  If we know one Tuesday (like the 2nd Jan 1900) we have all the Tuesdays since.

What a great mindset to take with querying.

Listening To:   Places like this, Architecture In Helsinki

Friday, September 21, 2007 11:44:04 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, September 13, 2007

Problem:

Sorry Adobe, parentheses are valid characters in a path.

Solution:

Luckily the work around is quite easy...

Check the 8.3 name of the x86 Program Files path in this listing:

c:\>dir /N /X
 Volume in drive C has no label.
 Volume Serial Number is BA64-04DE

 Directory of c:\

28/08/2007  01:04 PM            30,469 DXCORE~1.LOG DxCoreInsaller.log
27/08/2007  07:24 PM    <DIR>                       inetpub
28/08/2007  01:26 PM    <DIR>                       NVIDIA
28/08/2007  01:44 PM    <DIR>          PROGRA~1     Program Files
28/08/2007  01:42 PM    <DIR>          PROGRA~2     Program Files (x86)
27/08/2007  09:41 PM    <DIR>                       Users
28/08/2007  01:45 PM    <DIR>                       Windows

Creative Suite 2 will install and work if you actually type in the 8.3 name for the x86 Program Files path, like:

C:\Progra~2\Adobe

I wonder who is next...

Listening to: Northern Substructures compilation

Thursday, September 13, 2007 11:44:33 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 

First, some breif background:  My motherboard went belly up, electronic burning smell and all.  Power supply was suspect too.

So time to go shopping!

The new motherboard is the ASUS P5K Premium.

For the CPU I went with the Intel Core 2 Quad Q6600.

An important goal for me was this build was Virutal PC performance, and I am pleased to report it is doing just fine.

The WEI score is up to 5.3, broken down as follows:

Processor Intel(R) Core(TM)2 Quad CPU @ 2.40GHz 5.9
Memory (RAM) 4.00 GB 5.5
Graphics NVIDIA GeForce 6800 GS 5.9
Gaming graphics 2303 MB Total available graphics memory 5.3
Primary hard disk 107GB Free (149GB Total) 5.6

The most important change for me was installing the 64 bit edition of Windows Vista Ultimate.  So far I've not had any dramas with drivers and only the odd run-in with apps.  For this I have started a new category on my blog:  Who sucks at 64 bit.

It would be remis of me to not mention the great help that Kernel at KNK Professionals was.  He went to great lengths to make sure I had the hardware that I needed.  All while his wife was giving birth to their first baby!  Highly recommended.

Thursday, September 13, 2007 11:33:49 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, August 28, 2007
Why?  They are taking up space and not the latest editions.

How?  Just leave a comment on this blog post.  Include your email address if I don't know you :-)

The books on offer are:

Microsoft
Professional SQL Server DTS, Chaffin, Knight & Robinson
[link]
Introducing Microsoft.NET, by David Platt (famed author of Why Software Sucks)
[link] Taken!
Programming Microsoft SQL Server 2000 with XML
[link] Taken!
Microsoft SQL Server 7.0 Administrator's pocket consultant [link]
Microsft SQL Server 2000 Administration Readiness Review for MCSE Exam 70-228
[link]
Microsoft Visual Basic Design Patterns
[link]
Java
Java Servlet Programming. Hunter, Crawford.
[link]
XML, XSLT, Java, and JSP. A case study in developing a web application.
[link]
Java Enterprise in a nutshell, a desktop quick reference
[link]
Linux
Linux Routers, a primer for network administrators, Tony Mancill
[link]

Caveats: Some of these are a bit marked on the cover from normal wear and tear.  Original CDs are still in the book where applicable.  Email me if postage is required.
Tuesday, August 28, 2007 11:51:24 AM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [4]  | 
 Monday, August 27, 2007
Don’t underestimate the sly and insidious lengths Personal Firewall products in general, and Norton Internet Security 2007 in particular, will go to in fulfilling its goal of disrupting SQL Sever Management Studio.

That will be all.
:-)

Monday, August 27, 2007 4:56:39 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, August 15, 2007

For a limited time, members of CSharpZealot.com have access to some free Silverlight training content!  Here's how:
Easy!

Also, I'm impressed at how well the InnerWorkings bits integrate with Visual Studio during the training experience.  You should really check it out.

Now please keep in mind that Web 2.0 (and it's previous incarnation, Web 0.9) supports bi-directional time travel
  • Forward, at a pace of 1 second per second, same as daily life, really; and
  • Backwards at a rate of 20 yrs in, say, about 150 miliseconds.
That means that if you are reading this blog post some time in the future, this offer may be closed.  It's only open for a limited time, so get to it!  Don't be the last guy on the block to not know how to use the MediaElement and VideoBrush in Silverlight!

Mad props (that's what the kids say these days, don't ya know?) to Brian Madsen, btw, for keeping CSharpZealot the place to get your .NET love.

Wednesday, August 15, 2007 6:01:21 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, August 14, 2007
This is Part 2 of a series answering the question:  Where do I start as a programmer:

16/08/2007 update - Fixed links

Historically, programming languages are often introduced with their Hello World example. It is completely trivial but also quite an informative place to start.

A Hello World may look like this, for a .NET Console application:

...in C#

class Program
{
   static void Main(string[] args)
   {
      Console.WriteLine("Hello World");
      Console.ReadLine(); // press Enter to close
   }
}

...in VB.NET

Sub Main()
   Console.WriteLine("Hello world!")
   Console.ReadLine() 'press Enter to close
End Sub

I won’t go into the exact details of this sample, but I will mention that the purpose of this trivial example is to illustrate that you are scripting a conversation between the computer and a program.  Magic does not live here.  Computers are just following instructions.

The value of starting a project on a rich framework like the Microsoft.NET framework is that plenty of the elemental pieces required to construct these scripts are supplied for you and arranged in a discoverable fashion. 

An exhaustive list of the pieces that are supplied in the framework is documented in the MSDN Library that you can install with the Express Editions and also online.

Follow the white rabbit, neo…

Start with some good quality learning guidance focused on Visual Studio:
…and don’t forget the web is littered with good and not so good programming tutorials.

Read other people's source code

The problem with tutorials is that they often leave off some important details in order to keep the example simple, thus you can only go so far reading tutorials.

Reading other people's source code can be very helpful in understaning how a technology is used in practice.  Some sources:
Start a project

Lots of people (ok, me – but probably plenty of others too) need a project to really get the programming juices flowing.  I need a problem to solve; otherwise I’ll just stare at the File -> New dialogue for hours.

What does this mean for beginner programmers?  Don’t think you have to look for problems that are new to science and have never been solved before.  Download.com  probably has hundreds of “note taking” applications, and “home movie database” applications.  The benefit of  starting a project at this stage of your career is not to solve a new problem – it’s what you pick up along the way.

Be generous with the constraints of your project.  Learning works best when it’s fun.  The last thing you need when starting programming is the stress of project constraints!

Start a blog

Grab an account at Blogger or one of the other blogging platforms and record your experiences.

Even if it is just “this is what I learned today” and “this is what I don’t understand today” posts there is still value in blogging:
  1. Blogging forces you to stream your thoughts down into words.  The cathartic effect this can have on your thoughts while learning a technology can hardly be understated. 
  2. Blogging is a great way to open a conversation with other people who are doing the same thing

For blogging on the train?  Try Windows Live Writer, but I often just use Word then copy-and-paste when I get connected again.

Be aware of support:

Of course, the blogosphere has a wealth of information ;-)

Some others:
...and there are literally hunderds more sites on the web of various quality and reputation...

What Else?  I'd love to hear from anyone via comments here on this topic.  What other bits should people go and get for programming on day one.

Listening To:  DAT323 Inside T-SQL (with Itzik Ben-Gan) from Tech.Ed '07.
Tuesday, August 14, 2007 2:14:01 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [3]  | 
A friend of mine dropped me an email that asked the following:

So, I’ve been thinking more and more lately that I should make some better use of my spare brain cycles and train time by learning some coding. Do you have any recommendations for where a total coding newbie with no money and no copy of VS should start?

So I thought I would answer in a series of blog posts.  This is part 1.

The first thing is no money does not mean that you can’t have a copy of Visual Studio

The first thing to do is grab a copy of Visual Studio Express Edition.  These are supprisingly capable cut down versions of the real Visual Studio 2005.

Go for Visual Basic or C# - don’t think C++ or J# are particularly good places to start learning code.  Either is fine.  Really. 

Also, Visual Studio 2008 Express Edition is available in Beta 2 at the time of writing.  Visual Studio 2008 is awesome, but again not the best place to start imho.

Then grab Visual Web Developer Express and SQL Server Express

Also, if you think MCP Certification is on the cards, each MS Press training kit comes with a 90-day copy of Visual Studio Professional.

UPDATE:  There are some additional downloads to consider:

The second thing is no Visual Studio does not mean no .NET programming

#develop, or SharpDevelop is a free, open source development tool for C#, VB.NET and Boo.

It has a couple of limitations, but can be had for a tiny 8.2Mb download and dosen't carry some of the weight of Visual Studio while still keeping some of the look and feel.

Still have some spare bandwidth?

Grab the Windows SDK.  It's probabbly a bit above the beginner level but it represents an execllent reference to what is happening under the hood when you come to need to know.

Grab FxCop (NB: you may have grabbed this as part of the Windows SDK).  FxCop is a tool that looks at your programs and compares them to a set of rules for programming on the .NET framework.  This is a little bit of an advanced topic, but also is a really valuable learning tool for avoiding bad coding habits.

FxCop 101:  The default is to check your code against all the rules.  As a beginner you probabbly don't want this.

Source code control is an important practice.  Even for a single guy on a train.

For source code control I would recommend going with SourceGear Vault which is free for a single named concurrent user.  It's really easy to install and get going.

Unlike SourceSafe, Vault is backed with a SQL Server database for better performance and backup support, and also runs over SSL and can run over the internet.  Additionally it supports an Edit-Merge-Commit usage pattern in addition to SourceSafe’s Checkout-Change-Commit usage pattern – but that is a bit of an advanced topic so don’t get too distracted.  Just know that it’s there for later.

What Else?  I'd love to hear from anyone via comments here on this topic.  What other bits should people go and get for programming on day one.

Listening To:  DAT318 Applied ADO.NET Entities from Tech.Ed '07.

Tuesday, August 14, 2007 1:26:16 PM (AUS Eastern Standard Time, UTC+10:00)  #    Disclaimer  |  Comments [2]  |