December 13, 2005

VB and loathing: in search of an SID

Seems that once every six months or so I have to brush off my VB6 knowlegde to get some work done. Have I mentioned I hate VB6. Did I mention I REALLY hate VB6 when I have to make calls to the Win32 API.

So the reason for my displeasure at this point was I need to get any domain users SID (Security ID). BTW: you can't seem to get this in .NET either, without going back to into the Win32 API -- no nice OO wrapper goodness for this one. How fun.

The particular API I am using actually requires one to be able to add a user. It is part of their security process. Lovely. So after a day of searching through the bowels of Google, I found my answer -- not all in one place. No, that would be too easy.

So, if any of you are needing a user's SID and are playing with the LookupAccountName and ConvertSidToStringSid APIs from VB6, here is some help.



Private Declare Function ConvertSidToStringSid Lib "ADVAPI32.dll" Alias "ConvertSidToStringSidA" (ByVal Sid As String, ByRef lpStringSid As Long) As Long
Private Declare Function IsValidSid Lib "ADVAPI32.dll" (ByRef pSid As Any) As Long
Private Declare Function LookupAccountName Lib "ADVAPI32.dll" Alias "LookupAccountNameA" (ByVal lpSystemName As String, ByVal lpAccountName As String, ByVal Sid As String, ByRef cbSid As Long, ByVal ReferencedDomainName As String, ByRef cbReferencedDomainName As Long, ByRef peUse As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Function GlobalFree Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function LocalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal wBytes As Long) As Long
Private Declare Function LocalFree Lib "kernel32.dll" (ByVal hMem As Long) As Long

Private Sub Command1_Click()
MsgBox GetSid("DOMAIN\USER")
End Sub


Private Function GetSid(accountName As String) As String

Dim userName As String
Dim UserNameSize As Long
Dim Sid As String
Dim SidSize As Long
Dim Domain As String
Dim DomainSize As Long
Dim snu As Long
Dim sReturn As String

userName = String$(255, 0&)
Sid = String$(255, 0&)
Domain = String$(255, 0&)
sReturn = String$(255, 0&)

UserNameSize = 255
SidSize = 255
DomainSize = 255

Call LookupAccountName(vbNullString, accountName, Sid, SidSize, Domain, DomainSize, snu)
If IsValidSid(ByVal Sid) = 0& Then Exit Function

Call ConvertSidToStringSid(Sid, snu)
Call CopyMemory(ByVal sReturn, ByVal snu, 255)

sReturn = Left$(sReturn, InStr(vbNull, sReturn, vbNullChar, vbBinaryCompare) - vbNull)
Call GlobalFree(snu)

GetSid = sReturn
End Function

December 08, 2005

Delphi News: Thorpe gone to Google

OK, this can't be good for the Delphi community.

According to CNET (see article here), Danny Thorpe has left Borland for Google.

I dont see this as a death nel for Delphi, but it is another set of shoes that now have to be filled.

November 18, 2005

My Visual Studio.Net Launch event

So, my Visual Studio.Net 2005 launch event was last night. it was on "Creating cutting edge web applications with ASP.NET 2.0"

When I say "My launch event", I mean I was giving the presentation to a tent full of developers, next to a hospital, and within earshot of a freeway.

And when I say "tent", I mean a massive industrial tent with 1 foot thick walls, air-conditioned with aluminum duct work, anchored to the ground with steel beams bolted in concrete, sound system, overhead projector, and fluorescent lighting. Everything we needed but a bathroom. But it was still a tent.

Anyway, the presentation went ok. Not great, but not terible either, just a nice solid "it could have been better" ranking.

Being a canned presentation I recieved from Microsoft less than month before I was supposed to give it...I'm almost happy with how I did. And of course, I recieved a few questions that I didn't know the answer to. Luckely, there was usually someone in the audience who did know the answer.

In the end, it was a lot of work to prepare for this -- a lot of time my wife wants back now. It seems even worse when you consider that I was not paid it. But...I like doing this sort of thing. I actually think it is kind of fun.

Just out: NUnit 2.2.3

A new version of NUnit is out that is compatible with Visual Studio.Net 2005 and the 2.0 framework.

Read about it here:
http://nunit.com/testweb/index.php?p=releaseNotes&r=2.2.3

Download it from here:
http://nunit.com/testweb/index.php?p=download

November 17, 2005

Dilbert gets it

For some reason I think this Dilbert is briliant, hilarious, and so true it makes me want to cry.

http://www.dilbert.com/comics/dilbert/archive/dilbert-20051116.html

Microsoft going 64 bit only

This is all over Slashdot and dig this morning.

Aparently Microsoft is only going to release server software in 64 bit version from now on.
Starting with Exchange 12.

Anyway, here is a link to the story: http://news.com.com/Microsoft+makes+its+way+to+64-bit+chips/2100-1012_3-5953714.html?tag=cd.top

November 11, 2005

Bad days

Ever have a week bad enough to make you wish for alcohole?

Yes. Me too.



Note: this is still better than milking cows for a living -- but the gap has narrowed a bit this week.

November 07, 2005

Good lord it is hereditary

This is not good. I just found out a teenage niece of mine has a blog, and her grammar is worse than mine.

Here is a typical sentence:
"we almost one are last volleyball game"

At first I though this was some sort of teenage code that I've here-to missed because I'm 30. I re-read it. No, that isn't it. Then I thought, maybe this is just some sort of new blooger shorthand used by the younger generation. After all, blogging is pretty new, and I'm sure my niece is heavily addicted to IM. No, not enough acronyms in that thing that was almost a sentence.

I'm sure I'm having a slow brain day, because this took me almost 2 minutes to figure out the cause. She has inherited my bad English skills. This is really odd because, generally, only the males in my family are affected. Really, you think my grammar is bad, you should see some of my cousin's writing potential. It aint there. Never had it, never will. And trust me, there are many a burnt out English teacher in my wake as I was trying to get though high school and college. Not to mention badly used pieces of paper and now ill tempered ink pens.

But that said, after reading some of the comments left in her blog (note: I'm not actually mean enough to leave a link to her blog here), I see that most of her friends are not doing much better in their comments. Between lack of capitalization, spontaneous punctuation, misplaced acronyms (example: “LOLOLOLOLOLO”), spelling worse than I can muster (I do know how to use spell check and a dictionary), and excessive adjectives; I see my niece keeps herself in good company.

Actually, on the punctuation, I’m not sure if that wasn’t intentional. Considering how many times I’ve seen her speak a run-on sentence or three -- seeing her write one should not be that surprising. I'm sure many people have seen a teenage girl literally talk themselves blue in the face, sometimes having to breath in the middle of their fourth run-on sentance, or pass out entirely. I mean, really, do they train for that?

Note to self: Never try to win a breath holding contest against a teenage girl.
Note to self 2: That could be a really good way of shutting up a teenage girl. Cheating should be considered legal and praise worthy in this case. Bonus credits if said teenage girl passes out.

Anyway, I wont waist too much time looking for her in the honor role this year.

Get Visual Studio.NET Express

OK, today Visual Studio.NET 2005 was officially released.

Along with that, the express products were also set free.
Free as in: free to download.

http://msdn.microsoft.com/vstudio/express/

This includes versions for C#, VB.NET, C++, Web Development, and SQL Server.

They are not in the same class as the professional version, but the price is hard to pass up.

Digg.com: the new Slashdot?

A friend of mine recently turned me to this site.
www.Digg.com
Think: "Do you digg it?"

It was created by some guys who were fed up with Slashdot.
What these guys did not like was that the editors of Slashdot have ultimate control over what gets posted.
On Digg, the users over what gets posted. Once a new article is posted, the users can then rate the post (you just say you digg the article, there is no "I don't digg it" button to confuse things). From there you can see the top rates stories of the day/week/month/year. Also, each post is categorized, so you can pick the posts by that as well.

It very much reminds me of the Google simplicity in design (think gmail). Not that Slashdot is overly cluttered, but Digg is very stream lined and easy to navigate.

So far, I like it.

November 02, 2005

Microsoft's Installer: WIX

Ever wonder what Microsoft uses to create it's installs?

Rumor is that it is WIX (Windows Installer XML) .
http://wix.sourceforge.net/

And, Microsoft has been good enough to release it on Source Forge.

Here are some more links:

FAQ: http://gauss.dynalias.net/wix/wixfaq.htm
Tutorial: http://www.tramontana.co.hu/wix/
MSDN Article: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwingen/html/wixsetup.asp

November 01, 2005

.NET Generic surprise

So I was looking into Generics a little bit ago. I wasn't interested in writing one, I wanted to see what .NET 2.0 came with. What Generics are the built in to .NET.

After all, this is one of the main selling points of .NET, Microsoft must have a bunch of them in the framework to show how usefull they are. Load 'em up!

Not really. I counted 6. Well, there are a few more, but you have to use other generic classes to use those. Like LinkedList<t>.Enumerator. I didn't count that one.

So here they are. All found in the System.Collections.Generic namespace.
  • LinkedList
  • LinkListNode
  • Queue
  • SortedDictionary
  • SortedList
  • Stack
That is it. Not that I'm complaining about those. I consider those to be the basic classes that have to be there. But Standard Template Library it is not.

Of course, I have no idea what is included with Java 1.5 so I have a hard time comparing with that language. C++ seems to have a template for everything including one for shooting yourself in your foot and every toe.

I guess is comes down to: what was I expecting? What were you expecting? A WinForm or WebForm Generic? Maybe. That is what WTL is all about. But I'm not sure that would be useful in .NET. In WTL, you have to use Templates to do anything. I dont want that here.

So why would I complain. Microsoft made generics for what was really needed. Namely with lists, queues, and collections. Everything else is up to interpretation really.

I guess I was just expecting more. As usual.

October 25, 2005

PDC 05 sessions on line

All the PDC 05 sessions are now online (I think it is all of them, but I can't confirm it).

Dificulty: IE only.

http://microsoft.sitestream.com/PDC05/

October 04, 2005

New books

I finally got my newest book order.

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries by Krzysztof Cwalina and Brad Abrams

Effective C#: 50 Specific Ways to Improve Your C# by Bill Wagner.

If you buy them at Amazon you will spend about $70. I got them from BookPool for $50.

Unfortunatly, this reminds me that I still need to publish my review of my last book: Coder to Developer. (very cheep used on Amazon's web site)

Man, not enough hours in a day.

October 03, 2005

PDF in Office 12

This comes in the category of "about FREEKING TIME!"

Word, Excel, PowerPoint, Access, Publisher, OneNote, Visio, and InfoPath will all have PDF support.

Hopefully that means Word can create/edit PDF docs.

Anyway, what in the world took them so long to add this feature?

Also, Word and Excel will also have a new shiny XML format to boot. Just what are we going to do with ourselves now?

Read about it here: http://blogs.msdn.com/brian_jones/archive/2005/10/01/476067.aspx

September 30, 2005

1,048,576 rows in excel: Oh No!

Houston we have a problem. As if Excel wasn't bad enough, Microsoft is expanding what it can do. I liked the fact that Excel can't have more than 64k rows thank-you-very-much.

http://blogs.msdn.com/excel/archive/2005/09/26/474258.aspx

Anyway, for the IT developer: nothing good will come from this.

See this for referance:
http://neopoleon.com/blog/posts/434.aspx

September 28, 2005

I hate Fall

...and Spring for that matter. Is hate strong enough of a word? Loath. Despise.
I guess if you multiply all of them together you come close. Though I will say that Spring is a bit higher on my seasonal hit list than Fall. At least in Fall you get the NFL.

I know this comes as a shock to many people. I see it on their faces whenever I say it -- including my wife's. Other people see Fall as the glorious end to Summer. The colors of the leaves, the cooler days, and occasional rain (it really doesn't rain at all during Summer here in southern Idaho). And Spring is the great season of renewal and freshness. New leaves, the first flowers, spring showers, and warmer days….

I see two unfortunate similarities between the two seasonal changes that have, and will continue, to make my life very unpleasant. Which means, both seasons are bearable, but I have the general attitude of a starved bear in the meantime.

First is rain. More importantly, what the rain brings with it: barometer changes. Even here in the relatively placid weather of Boise, come Spring and Fall the barometer start to jump faster a 6 year old on trampoline. Some friends of mine have one of those old fashioned barometers that is a glass jar with a spout. You measure the barometer changes by watching the water go up and down the spout. The darn thing about explodes, turning into a spigot, this time of year.

So does my right knee. Do to an over-zealous youth of work, sports, a genetic defect, and an ugly surgery, walking this time of year can be really painful. Heck, sitting and laying in bed is uncomfortable. Every time the barometric pressure starts moving I start popping enough ibuprofen to make a horse dizzy. Realistically, when I start getting a lot of nose bleeds, I know it is time to cut back.

So now I'm scouting out elevators and trying to avoid well meaning gockers -- e.g. "Oh, your limping, did you hurt yourself?". Me: "Ya, about 11 years ago, but you should see the other guy!"

Truth: the other guy is fine, it happened in a high school wrestling tournament my senior year, the other guy nearly ripped my knee out of its socket (everything was legal). That wasn't the only thing that happened to that knee, but that was the biggest. I don't really mind the concern I get from people I pass by, I just hate being made a spectacle and having to explain my history to people I don’t know very well.

Second is temperature change. This one does not affect me like it used too, but the psychological remnants are still there. I used to work on a dairy, for 15 years, feeding the newborns. I fed every heifer produced on that dairy until it was about 3 months old. I got pretty good at it too, during Summer and Winter. But every Spring and Fall there was one thing that always happened: they got sick. Sometimes all of them at once. Colds, flue, diarrhea, you name it. Did you know diarrhea kills? Not real pleasant either. The temperature fluctuation is what usually set it off. Cows are just fine in stable temperatures, but when it is 80 degrees and sunny one day and 50 and windy the next...bad things happen.

Luckily, I don't work on a dairy anymore, but I am forced to visit (it is a family thing). And because of the first point, I'm very glad I don't work on a diary anymore, I don't think I could physically take it anymore. Diary life doesn't have a lot of real physical labor anymore, large tractors and trucks have taken care of that. But there is enough to close that occupation out for me.

That’s all right. I didn't like cows anyway. As for the knee: ibuprofen and beer make a nice combo.

September 22, 2005

Delphi components for download

It would not be too much to say that I still dabble in Delphi. It is a nice platform, not quite as object oriented as I would like, but very mature. The great thing was that Delphi could do all of the things that VB could not. Like build a fully featured UI, and create COM DLLs and OCXs.

--ok point taken, technically you could create that stuff with VB, but you had to spend a LOT more time to do it, and VB had a number of limitations that could not be overcome without going down into C++. Like accessing OLEDB interfaces, you couldn't, you had to use ADO.

Anyway, over the years Delphi has collected a large number of freely downloadable component libraries that were quite usable. These were created by hobiest and professionals alike to accomplish any number of tasks. But a great number of them are specialized UI controls. A large group of them used to be commercial controls, but the parent company didn't think they were making enough money on them so the open sourced them. Here is a list of them that I keep track of on Source Forge:

  • Abreva Link A compression library featuring zip, cab, tar, and others
  • Essencials Link A lot of UI controls
  • Flash Filer Link A SQL engine, complete with server and client controls.
  • Lock Box Link An encryption library
  • OnGuard Link A library for creating Demo versions of you apps
  • Orpheus Link A monster library of visual controls
  • Shell Shock Link A library for extending Windows Explorer
  • SysTools Link Lots of specialized functions and procedures.
  • Visual Planit Link Outlook style calendar controls
  • Jedi Code Library Link From the good folks at Delphi-Jedi. Lots of visual controls, functions, procedures, classes, etc.
  • SysEdit Link The BEST open source, syntax highlighting text editor out there. (Sharp Develop take note)
  • DUnit Link Just like NUnit, JUnit and the like.


This is by no means a comprehensive list of component libraries, but it is a good start.

What this also is, is a list of things that .NET still needs out there. I love the .NET Framework and C#, but there are still a lot of things that I can do in Delphi that are not quite available yet in .NET.

Of course, maybe this is just me telling myself to get off of the sidelines and get to coding.... My wife would kill me! OK, back to hoping.

September 21, 2005

Thats it, I've converted to Avalon

Automatic spell checking.

If you have a TextBox or a RichTextBox, set IsSpellCheckEnabled to true and VIOA: spell checking.

So that seals it. I'm converting to WinFX as soon as it comes out.

http://blogs.msdn.com/marcelolr/archive/2005/09/21/472407.aspx

September 15, 2005

PDC and information overload

This is getting bad. I'm not even attending PDC this year and I'm already suffering from information overload! Near burnout at this point. I mean, how am I supposed to get any work done with all of this new stuff being thrown out there.

Though, I really like what Microsoft is doing this year. More of the content is being delivered online for all the world to see. Not that it is a good substitute for actually being at PDC, but for those of us not so blessed to be there: it is better than nothing.

Where to get information about what is going on at PDC? Well, MSDN is the best place to start. There is a page there dedicated to the PDC and all of the technologies being unvieled.
http://msdn.microsoft.com/events/pdc/

And there are quite a few. Plus some old standards, like Office. You need to watch Bill Gates's Key Note address. Really, you do. Office got a major UI redesign (think no menus, and an expanded toolbar that looks like a tab list).

The next best place to look for new stuff: Channel 9. They have videos on Sparkle (shows what Microsoft has in mind for next generation UI), SharePoint, IE7, and a lot of other stuff. Actually, Channel 9 videos has an RSS that I subscribe to and check on a regular basis anyway.

After that: Microsoft Blogs -- http://blogs.msdn.com/
This is the best place to find new information about LINQ right now...but it is still kind of ambiguous to me right now. I understand what they are trying to do, but it is some pretty technical stuff (integrating SQL into your normal programming language -- C#/VB.NET), and I'm missing a boatload of details on this one. Oh well, this one isn't coming out until C# 3. So I've got some time.

That is the real confusing part. Microsoft is introducing a lot of new technologies, but I have seen any timelines for them. I expect some of them are coming soon (this year) but others are going to be a while (1 to 2 years). But I can't always tell which is which. And, as always, Microsoft isn't saying how much we can expect to pay for some of this new wizardry. We are just supposed to be happy it is out there (Sparkle is a prime example of this).

Oh well, time will tell.

September 13, 2005

Code Camp coming to Boise

So this is sort of official now: Code Camp is coming to Boise. Probably in the late February 2006 time frame. You know, well after the Christmas and New Year hang over, but before Spring Break (might be close to Mardi Gras, but I don't think that will be quite the same this time around).

Other than that, there isn't much to report yet. We need to nail down a date and a location. We know it will be over a weekend, and the admission will be free. But as to how many speakers....

So now comes the great quest for topics and speakers. More than likely I will giving a talk. I am currently leaning towards a developing with ADOMD.NET and Microsoft Analysis Services 2005 topic. I also want to get started with the Data Mining features in SQL Server 2005, so that could also be a good topic. But then again, I still want to play around with Phidgets -- this might be just the excuse I'm looking for. Sigh, so many toys, so little time.

August 19, 2005

EverNote: my new note taking software

I'm seriously considering moving over to EverNote from OneNote. Reason: EverNote has a free version, OneNote costs me $100 (note: currently $50 with a $50 rebate at CompUSA).

Plus, it work pretty slick and looks cool. I still have to test out the search capabilities, but I'm definatly happy so far.

Man, this thing and a laptop would have been so cool to have when I was in college.

100 years of E=mc2

Einstein had his miracle year 100 years ago, 1905. This is the year that he pubished his most famous (and generally non-understood) equation. E=mc2

Anyway, to mark the occation, some are calling this The year of physics. Even PBS is getting into the action now, via NOVA of course. The have a program that is supposed to air in October.

August 08, 2005

CoPilot/Aardvark released

If any of you have read Joel on Software, you already know this.

For those of you who do not: CoPilot has been released!
See: https://www.copilot.com/

What is cool about this: it is a VCN easy enough for your mother to use, it works through a firewall, and it removes itself once you are done.

It's intended audience: you the IT professional who gets requests for support from family and friends, and those family and friends who need help with their computer (this, of course, assumes that your friends have internet access and it is working).

How it works: The person needing your expertise goes to the web site (www.copilot.com), enter in some information, pay a $10 fee (that pays for one day of use), and an email is sent back to you. You click the link in the email, a program is launched giving you access to the other person's computer.

Beautiful. The key of course, it to get the person needing the support to pay the $10 fee.
I fully expect to be using this in the future.

August 05, 2005

Business plan for Super Hero's

Something to think about: super hero's always seem to have the coolest toys. Expensive toys. Some don't need them, Superman I'm looking at you, but you have to figure they cost money.

So what the heck do super heros do to earn the much needed cash they need to get the new toys, costumes, pay rent, fix the office building they destroyed, etc. There must be a business plan for average super hero!

We think we have found it: The icecream shop!

Find some guy who can talk to animals with super endurance hands to milk the cows. Note, not super strong, super endurance -- trust me, I tried to milk a cow by hand once. I couldn't finish, and then I could move my hands for the rest of the day.

Next, get Fire Girl to homoginize the milk. Next you use a combination of Ice Man and Storm to freeze and mix the milk into icecream. Next, grab Gambit to throw some static electricity to give the icecream some zing (for no good reason, but heck, you buy Evian).

Now grab Flash to mix the specialty ingredients together and hand it off to a teenager to give the customer. Viola, a business plan!

August 04, 2005

101 Visual Studio 2005 Samples

I usually find a good way to learn a new system is to see see some examples of what it can do.

So to that end, Microsoft has published 101 code samples for Visual Studio.NET 2005 (coming in November, the beta is easily downloadable).

Samples are separated into sections: Base Classes, Data Access, Web development, and WinForms.

This reminds me, I have been playing around with VS2005 a bit lately. Couple of things I really like:
1. The new docking mechanism in the IDE. I love this one. No more moving a docking window 1 pixel to the left to try to get the window where you want it.

2. static main is, by default, in its own class file called program.cs! Thank you, thank you. This will seem small and piddly, but it ended up being the first change I had to make to any C# program I ever worked on.

3. The new intelligence is really improved.

4. I haven't used it much, but Edit & continue ultimately will be the best new addition to the language.

Things I still have to look into at this point:
1. The new databinding.
2. Generics
3. Refactoring.
4. ClickOnce -- this could be huge for me.

Why haven't I had a chance to look into them yet: I'm still running around the new SQL Server 2005 and Analysis Services! The changes to Analysis Services are HUGE! -- in a good way. There are so many things that are fixed in this version. That is the good part. The bad part is that what ever you know about cubes in Analysis Services 2000, doesn't really apply to 2005. There are that many changes, but the changes are worth it.

Biggest changes in Analysis Services 2005
(that I know of, right now)
1. Single cubes with multiple fact tables, and mixed granularity.
2. No more virtual cubes
3. Dimension design completely redesigned.
4. UDM. Enough cannot be said about this.
5. Many-to-Many problem solved!

Of course there is a down side: there is an upgrade path -- but it only works in the simplest of cases. If you use Virtual cubes, you are dealing with a redesign.

Anyway, that is enough for now.

July 26, 2005

FireFox Home Page feature

This is something I've been looking for, and just found.

We all know FireFox has multiple tabs, and I wanted FireFox to start up with multiple pages at startup (i.e. Gmail, Hotmail, and Slashdot).

Here is how it is done: In FireFox, go to Tools->Options, General settings, Choose Home Page.
Enter in all of the pages you want to start, separated by a | (pipe).

So mine looks like this: http://www.google.com/ig|http://www.hotmail.com|http://www.slashdot.org

Honestly, I'm sure this feature has been there for ages (like 0.9x), I just never saw the blasted thing.

July 21, 2005

What I'm reading now

Coder To Developer by Mike Gunderloy.
Amazon

So far so good. Right now it is mostly a rehash of the things that I know I should be doing -- but dont.

Nice thing is I was able to pick it up used for $8 from Amazon.

July 20, 2005

High tech gone wrong: Terminal Services + VirtualPC

OK, I'm living the life of high tech.

I can use Remote Terminal Services (rts) to connect to a server.
I can use Virtual PC to run Win2k with SQL Server 2005 Beta on that server.

I cannot get the mouse to behave inside of that virtual os. That slippery sucker is jumping all over the place right now! I move the mouse an inch to the left, the mouse jumps kamikaze style to the far edge of the screen and goes straight down! Why? I guess the little mouse felt like it.

I think what I will have to do is run rts to the machine, start Virtual PC, and then rts into the virtual OS. Then, maybe-hopefully, the mouse wont act like a Jack Russell Terrier on acid.

Sheeze, the stupid things we try to do with technology these days...

July 15, 2005

Great quote

2 posts in one day!...but I couldn't resist this one.

This is from The Code Project in an article by Chad Z. Hower titled Developers are from Mars, Managers are from Venus.



If it will take you 4 weeks, 4 of you can do it in a week, right?

What a manager means:
4 weeks = 4 developers x 1 week = 4 weeks x 1 developer. Why not? It computes! Algebra does not lie.

What a developer hears:
I guess he thinks 9 women can make one baby in 1 month.

Google Earth tryout

I finally got the chance to check out Google Earth for the first time last night. Of course all of my comparison will be against NASA World Wind, but that is to be expected.

On the whole, Google Earth is a nice competitor to World Wind. I can't really say one is better than the other though. They are just different.

World Wind seems to be more responsive, better looking, has more satellite feeds, and has a better documented plug-in model. Also, you can pan or tilt in any direction.

Google Earth, while sluggish, has more features. It seems to integrate with Google Maps so you can find your house, find the nearest restaurant, golf course, super market, and directions. But, many of those features only work in America (I also tried them in The Netherlands -- didn't work as well). Also, you can only tilt in one direction. One cool thing that Google Earth does let you do is set bookmarks on locations. You can then "fly" between those marked points. It is a really cool feature.

But, Google Earth did seem to have better close up pictures of places like Boise. I could see my house, and my trailer parked in the driveway. Or was it my car? I don't know, it was still kind of fuzzy -- but that is Boise for you. I had a slightly harder time with World Wind.

The part that I'm not sure about yet is the sluggishness. I know World Wind is written in C# using DirectX, while Google Earth can use either DirectX or OpenGL (default). The Google Earth UI has a smell of Java to it, but I'm not certain yet.

Lastly, when mapping from real world locations to virtual ones, things will be slightly off at times. Google Earth was defiantly off, by over a mile at times. World Wind seems a bit more synced up correctly.

July 14, 2005

Free eBook on OLAP

Just found this, a free book on Business Intelegence called A Jump Start to SQL Server BI.
130 pages, lots of authors, including Russ Whitney and Tim Ramey (discloser: I used to work with them)

More books can be found here.

July 12, 2005

Open CD turns 3.0

http://theopencd.org/

Interesting project, nice collection of tools.

The business of software

One topic that I am finding more and more interesting is the business side of software development. Outside of reading business books, Eric Sink is one of the best writers on the topic there is.

His latest is a beauty: The Game is afoot.

Background: software developers, however smart they might be, are not always the best business people. Eric is trying to help them (me) out. How? By explaining some of the basics of business by using games for analogies.

July 07, 2005

You WANT to be flamed?

OK, so how desperate to you have to be to beg people to start flaming you?

That is where Carl Franklin or DotNetRocks is at. Is this desperate cry for help, or just attention?

I think attention. Why else would you what Carl does if not starved for attention?

My opinion: if he wants it, let him have it. Email him at dotnetrocks@franklins.net

BTW: if you haven't listened to DotNetRock and you are a .NET developer. You should. It is really good show, fairly wide topic coverage, and entertaining.

Well, there are worse ways of wasting an hour.

June 27, 2005

Life, Philosophy, and Everything

Alt Title: Life, philosophy, and Everything else that happens to pop up in my head at any given time.

I had a nice weekend. Got to play BattleField 2 on Saturday, took the kids out to a cherry orchard (note to Cherry orchard operators: weigh the kids, not the baskets), and I basically slept all Sunday.

But on Saturday, between BF2 maps, one of my friends and I had the beginnings of an interesting conversation. Unfortunate, BF2 called before we could finish. My friend is an ex-philosophy major who has since reformed and asked for forgiveness (not to say he isn't still minorly warped my the experience). Me, I'm a college grad with a BSCS and two philosophy courses under my belt. Therefore: I am now an expert. :)

The discussion was about the use of philosophy (or lack of use). Most people agree, philosophy in its current form is useless. I have not heard of any philosophers striving to answer any important questions in a really long time, and it seems they are just trying to be proven wrong (the ultimate failing for a philosopher).

My counter to this: philosophy has one redeeming factor, it is useful to help determine how our culture thinks and sees itself. The actual philosopher countered with an inescapable answer: the current culture doesn't think. I would mostly agree with that. Our culture doesn't think -- for itself. Instead, it is force-fed by others who deem themselves worthy to speak for others.

So hear is what happens: someone with a high opinion of him/herself come up with a high ideal. They spread that ideal around to other less qualified, but still with high opinions of themselves. They dumb the ideal down and pass it on. That last step repeats itself many times over. Finally you have that high ideal in the general populace, albeit, extremely watered down.

The same thing happens in the fashion industry. My wife loves going through fashion magazines, especially the ones that show scenes from the latest runway event in Europe (usually France). The clothes are very interesting, but very unapproachable -- much like the models themselves. But in attendance are other designers. These designers take those clothes, and dumb them down to where an actual person might wear them.

Not that the original designer clothing wasn't beautiful, but it was designed for a idealized world market. Tall, skinny women with slender hips and no breasts. Most women do not look like that, and would look like a hippo in a tutu trying to fit into them.

The same goes for philosophy. Generally, your mechanic is not going to start spurting Kant or Hume, much less know who they are. Most men (half the world population you know), could name a high fashion designer if their life depended on it (Levi and Osh-kosh are not high fashion). But just as there are pieces of that high fashion in those Levis you wear, so there is some modern philosophy in the rubbish your taxi driver is saying.

Unfortunate, high fashion still has the same problem that modern philosophy has: it is still useless in the day to day world.

June 08, 2005

Battle Field 2

OK, I have been pretty non-committal about most games recently (out-side of Half Life 2 anyway).
But I've been looking at the screen shots of BattleField 2...they look really darn cool!

Not that I'm a graphics buff (ooh, look at the pretty pictures), but I do appreciate what some of the graphics could buy you. Combine that with the BattleField 1942 game play -- this is could be cool.

http://media.pc.gamespy.com/media/677/677882/imgs_1.html

What I'm actually hoping for: this could be the game the re-unites my game guild! Finally have a group game good enough for all of us to buy. Old games in that category: Battle Field 1942, Raven Shield, and Call of Duty.

But really, I miss my tanks.

Flash Filer? Is that you?

Saw a post on the Flash Filer news group today. It is about a guy supposedly carying the torch as it were.

The results can be found here: http://www.datainfosoft.com/fsql/

From the information on the site, I'm still not really convinced. I'll have to look deeper later.

June 07, 2005

Efficient Export To Excel

A little problem I've had over the past while, all of the web sites that show how to do export to Excel from ASP.NET are horribly inefficient.

So I wrote my own. You can find details here.

SQL Server 2005 release date: Nov 7, 2005

We, I saw the first rumors of the release date this morning...now I'm seeing more.

But according to reports, SQL Server 2005 will be released Nov 7, 2005.

http://spaces.msn.com/members/cwebbbi/Blog/cns!1pi7ETChsJ1un_2s41jm9Iyg!243.entry
http://blogs.msdn.com/mrys/archive/2005/06/07/426394.aspx
I had others, but I can't find them now.

That in conjunction with other announcements (Apple going Intel, Office opening up file formats -- xml and zip), this has been a busy week.

June 06, 2005

My 15 seconds of fame

That is it. I had my moment of fame now. Carl Franklin read my little flame on DotNetRocks. And only one spelling mistake! Man, if my English teachers could see me now.

Holy mackerel do I hate to hear my own bad writing read out loud! Thank the Lord Michele lark's Bostonian's was there to move things along.

That said, knowing my own abject humiliation is immanent I will say this: at no point will Carl Franklin .NET language persuasion sway me from wasting a perfectly good hour listening to .NET Rocks. I do realize that Carl Franklin makes his living off of VB.NET -- as do others. He has every right to promote it...and I have every right to gripe about it.

May 31, 2005

VB.NET vs. C#: Religious Fanatisizm 101

I was listening to the lastest episode of .NET Rocks when I was subjected to Carl Franklin go into one of his "episodes." It typically goes like this:
1. VB developers get no respect.
2. VB can do everything C# can do.
3. VB is so cool now.
4. Granted VB6 sucked, and everyone should be moving to VB.NET anyway
5. Except for those developers who only know VB6 and never wanted to be developers in the first place.
6. VB is so cool now.

The main problem is that as soon as you talk about VB developer culture, people start jumping out of the wood work screeming "Thats not me--that isn't who I am--I dont do that--I write VB and I rock!!!" Did COBAL and FORTRAN programmers go through these growing pains?

Good Lord people, please stop blathering the blaintantly obvious and mayby we can have a real debate. So far we have made it to: "VB can do everything C# can do!" Sorry, call me a heritic, but that is not a compelling reason for me to switch from C# to VB.NET. Heck, that isn't even a compelling argument for me to switch from ANY other language. I remember my father stopping the car for the sole purpose of beating the living tar out of me and my sister for the same intillectually stimulating arugments. You know the ones, they sounded like this: "Are too! ", "Am not!", "Are too!".

Give me some stats, give me multiple arguments, give me something to sink my teeth into. Otherwise, please shut up! Frankly, I don't care what .NET language you use, and right now you are waisting oxigen and my time.

In the grand scheme if things, what language you use the THE most piddly thing you can talk about to a fellow .NET developer. Wake up and smell the framework (remember kids, that is why we are here in the first place). Work on you ego with your therapist.

May 30, 2005

G. W. Bush at Calvin College





So George W. Bush gave the commencemnt speach at my college this year.

Rest assured, it was not without protest from at least some of the faculty and students.

But, in case you are interested in seeing what he had to say, you can see it here.

May 26, 2005

Trinity Joy Eliana

Some of you have been wondering where I have been. At home, welcoming our newest addition to the family: Trinity Joy Eliana.

Born: May 25, 2005, 9:11 am



More found here.

May 24, 2005

CodeSmith 3.0 Released

CodeSmith 3.0 has been released. Check now for the $50 intoductory offer.

This tool has been demoed at BSDG (version 2.6), and I've used it enough to consider it a must have tool. Until C# 2.0 hits the streets, this is how I do generics.

I know it can do a lot more than I use it for (I haven't even scratched the surface yet), but there are only so many hours in the day.

May 12, 2005

.NET stuff: ahhh and GASP!!!

Couple of .NET related items....

ComputerZen is recompiling his ULTIMATE TOOL LIST!!! (should be spoken with loud deep voice, using a reverb affect, and a good sound system -- thunder is optional).

One nice like off of the site is this link to Jeff Key. He has a really nice page of .NET utilities, code samples, and some documented words of wisdom. A couple of nice ones of his are a MessageDlg with custom buttons, and a .NET snipit compiler.


Now, for the GASP!!!! CodeSmith is going COMMERCIAL!!!! There is a new web site: http://www.codesmithtools.com/ announcing version 3.0, which will be strictly for pay! Standard addition will be $99, Professional will be $399. (if you buy now, you can get it for $49 or $299).
Of course, version 2.6 will remain freeware.

My opinion: it is a great tool, he has obviously put a LOT of work into it, it is obviously professional quality (I use it regularly), it probably should be a commercial tool. It is just sad to see these projects grow up so quickly (sniff)! I just wish the price would stay of $49 instead of jumping to $99. I will probably buy the thing anyway.

May 11, 2005

Hungarian Notation and Exceptions

Joel on Software has an excellent article for discussion.

The name of it is Making Wrong Code Look Wrong

The basic premise is that some forms of Hungarian notation are VERY good, and that the current Exception based programming we do in .NET is harmful.

The really excellent part about this article is: I can agree with him completely! And I have for years. You can read one of my old blogs on Hungarian notation. Though, Joel says it much more convincingly than I do.

The part on exceptions has been running through my head for a while now, but I hadn't spent any quality time with it. But it definitely deserves some more thought.

May 10, 2005

Calvinism vs Arminianism

I just found a nice article on the differences between Calvinism and Arminianism.
(I'm talking about Christian doctrine movements here -- not computers)

http://www.the-highway.com/compare

Background:
Calvinism is named after John Calvin, a Protestant, and is used by Reformed, Presbyterian, and some Baptist churches.

Armenian is named after Jacobus Arminius, and is used by Nazarene and Methodists.

Full discloser: I consider myself to be a Calvinist.

May 04, 2005

Fun with the WorkingSet and int32

I finally found an honest to goodness bug in the .NET framework.

I've been playing around with the Process class lately to log the WorkingSet (memory usage). The problem I've found is that the WorkingSet returns the amount of memory being used by the process as an integer (32 bit signed integer). OK, so the maximum value of an integer is 2,147,483,647 -- which is remarkably close to the total amount of memory that a process can have in its working set.

So, no problems right? Wrong.

There is actually a switch in Windows that will allow a process to use 3 gig of memory instead of 2 gig. This switch is often turned on when dealing with Analysis Services -- this thing can be a memory hog. So now what happens is that when I poll the WorkingSet I get a negative number, a really big negative number. Usually, in the realm of -2,147,482,342.

That looks kind of funny -- I'm pretty sure you cannot be using a negative amount of memory.
Worse is that I didn't realize what the problem was for a couple of weeks. The overflow bit.

Working set is returned to the .NET framework as a binary value. The first bit of an integer is the sign bit. 0 is positive, 1 is negative. So, when the value turned from (binary) 1111111111111111111111111111111 to (binary) 10000000000000000000000000000000 the value goes from 2147483647 to -2147483647.

OK, so I still have to fix this. Here is what I came up with (in C#):


long lWorkingSet = 0;
if (process.WorkingSet >= 0)
lWorkingSet = processWorkingSet;
else
lWorkingSet = ((long)int.MaxValue*2)+process.WorkingSet;


Hopefully that fixes the problem for now.

The real question will come in down the road. Microsoft knows about this problem. I still have find out how they are going to fix this for Win64...where this trick will no longer work.

May 02, 2005

Life after relational databases

It is late, but I actually found an article on Slashdot that looks worth reading. But I'm saving this little gem for tomorow.

A Call to Arms (on the ACM Queue site)

Apparently it it trying to detail life after DBMS. Written by Turning award winner Jim Gray.

Hitchhiker's Guide to the Galaxy Review

I saw this movie Friday night. I will say this: walking into the theater I was a little concerned. We got there right at the time the movie started, and there was 1 person there already. 2 others showed up after I got there. So, unfortunately I got no crowd vibe from the movie...and it needs it. Or else a lot of beer -- but one or the other anyway.

My over all grade: C.

My thought is that the director and everyone else working on the movie, were NOT on the same page when composing this. One group wanted one thing, another group wanted something else. For some it was a love story, for others an adventure file, but they just couldn't get the 2 to sync together.

I also got the feeling while watching the movie that the director was a perpetual C student in dialog classes. All the dialog was done such that it was good enough. Not great, just OK. You especially get this while watching Mos Def as Ford Perfect. But I also don't think it was his fault. I've seen him be funny. But in this movie, most of his lines were flat.

Where was the problem: the editing. Whoever oversaw the cutting of the movie needs some help. This was probably the worst cut film I've ever seen...or they spent too much time watching Napoleon Dynamite. The camera switched back and forth between people at odd times, and lulled on others for too long. It totally broke the flow of the movie. That was the major reason this film isn't great.

Other than that, the movie has some very funny parts, and some of the parts that could have been funny weren't. The parts that were added worked well with the rest of the movie (I'm not comparing the movie to the book). The Volgons were great. The special effects were great. But things were still very choppy.

New project: USB Drive Archiver

So I finished a simple little project for myself, a small program that can sit on a USB drive (no dependencies for Win32) and ZIP a directory onto the USB Drive (and unzip back to the computer).

I did this as my starter project for Delphi 2005. The biggest problem I had was finding the right ZIP library for the project. The best I found was ZipForge from ComponentArt. All Delphi, you can buy source, it doesn't cost much, and it even has a free version for personal use. Best of all, no dependency libraries!

One note: Delphi 2005 does come with a zip compression library...but it is totally stream based, and doesn't have a lot of documentation (like, how would you zip more than one file). I could have accomplished the same thing with the Delphi library, but it would have taken MUCH longer.

There are also a project call TZipMaster that I have used in the past, it is small, and open source -- but it requires that 2 static DLLs and a resource file exist on the machine. If you can live with that requirement, this project is fine. But again, I wanted no dependencies.

Now, why else did I do this? Well, my father needs a better backup solution, most of the time, when he does a backup, he just backs up the entire directory and calls it good -- to a 3.5" floppy! I tried just setting up some batch files to copy files to the USB drive for a zip solution, but that was really slow. So now, with the program to zip the directory onto the USB Drive, it takes a few seconds to do what used to take minutes!

Not bad.

Anyway, if I get enough people who are interested in this little program, I'll go ahead and purchase a license to the zip library and distribute the program. Right now I'm calling it the "USB Drive Archiver".

April 20, 2005

Slacker Astronomy Podcast

Slacker Astronomy is a Podcast about astronomy that is actually a lot of fun.

http://www.slackerastronomy.org

One note: they can only go into so much depth on a podcast show. But considering the format, they do an excellent show.

April 19, 2005

It is rough being 4

My daughter turned 4 yesterday. YAY!

So for her forth birthday she got: a cold, a feaver, a nasty cough, an ear infection, no party, and none of her friends could come over. Also, grandma and papa are off on a cruise so they couldn't even call.

To boot, I'm sure she is still remembering her little brothers birthday (he just turned two in March) who had everyone come over and we had a big party -- his birthday was on Easter.

It is going to take a while to fix this one.

Half-Life 2: Check

So, as of Friday, April 15, 2005, Half Life 2 is complete! I finally finished it.

Might I add: that is one of the odder endings I have encountered.

April 18, 2005

Few new things from Microsoft

Couple of new items from Microsoft

1. ILMerge: Takes a set of .NET assemblies and merges them into a single assembly.

2. Coding for Fun: a new web site on MSDN. This site covers things like .NET Game development, web development, and all sorts of development tasks that dont involve writing another enterprise database application.

April 11, 2005

I hate Oracle: Redux

What is the easiest way to piss off a developer? Have a know-nothing-annoying sales shrill call him up during a coding streak.

You know the thing, you are in the zone, code is poring out of you like sweat from an NFL lineman. You bleed logic. Then the phone rings -- rips you out of phase.

"Hello, is this Mr. Chris Brandsma" says a female voice in broken English, obviously from some peninsular shaped country in south Asia. "Yes it is." I reply, ungratefully at best.

The dread doesn't set in until she says "I'm from Oracle" and you know this conversation isn't going to go anywhere. She starts off by asking if this is a bad time. "Yes it is", "Can I call back sometime later, say tomorrow?" "More like next month." "Next MONTH!! But, this will only take 5 minutes, is that OK?"

"OK, 5 minutes"

That was mistake number two. Mistake number one was to answer the phone when caller ID just said "Outside caller", not a good sign. She starts off by saying that I had downloaded something last week...uhm, no, actually I haven't. She insisted. I retorted and got more annoyed. This went on for a couple more go rounds, the she said she miss-read the info and that it was last month. Nope, still wrong. Neither of us are taking this very well now.

So I understand that somewhere in the bowels of the Oracle marketing training camp, that comes with complementary cool-aid and Borg implants, there is some marketing guru that explains to all the nice young inductees that all of their customer are blathering idiots not worthy to like their shoes. I'm sure he is extolling the virtues of Oracle and how it can solve ALL of their customer’s problems. All that these masses of faceless, degenerate customers have to do is hire their consultants and nirvana will commence on the spot.

This is apparent in the next part of the conversation that took place. "Are you starting any initiatives that we at Oracle could help you with?", "No, not really." For some reason, I felt like being honest instead of saying: "Yes, you could leave me alone." But that would have been too honest. "Is there any way we could help you with any current initiatives you are currently working on?" Great, next we can start talking about allocating "resources", heaven forbid you start calling things by what they are: Projects and People. I guess that is not politically correct. But the truth is, this lady was absolutely certain that I had some initiative going on somewhere in some where that Oracle could help me with it -- all she had to do was drag this mythical initiative out of me. Apparently they train these people that their customers are liers too.

It also seems that the training does not come with a stop watch to let the poor cool-aid drinking marketing training inductee know when 5 minutes has passed. She went well over the allotted 5 minutes, and when I told her this she pleaded for another two.

Then I got terse. Something about having a sales shrill (from any company) talking in pointy-haired management/marketing speech trying to get me to discuss what I'm doing as a way to extort more cash does not get me in a good mood. I think my attitude could be best described by some of my more God fearing friends as: Pissy.

My response: "I don’t like Oracle, OK. My current initiatives involve removing Oracle from the planet. Your product ghastly large, the install is astronomical and requires a PHD with the patience of a saint to install." I also said something about reducing the size of the .NET provider (currently 80 MB, while the entire .NET Framework is 24 MB).

Once that tirade had complete I simply said that the 5 minutes was up and hung up on her -- she was still talking. Apparently she still thought I was a potential customer waiting for advice on the latest Oracle initiative.

Unfortunately, I’m still sitting here in a pissy mood, coding mojo gone, and now I’m just waiting for the clock to hit 5:00 pm. I hate sales reps, I hate Oracle, and I hate phone calls while coding.

Here is hoping for tomorrow.

April 08, 2005

For those of you who think you work with the biggest idiot

Found this site recently, very funny, and unfortunatly all true.

So, compare and contrast the biggest idiot programmer you know with this fine sample.
http://workingwithclueless.blogspot.com/

April 05, 2005

OK, now I'm old

I admit it, I've gotten old on myself.

As of a few days ago I started thinking about the latest number to be attached to my psyche: thirty. Not one of those numbers that people look forward to, but also not a harbinger of woe either. It just seems that I’m in those average blah years of mediocre disgust.

I’m not really disgusted at life, I have a good family, my oldest child is now 4 and child number three will be arriving shortly. So my kids aren’t old enough to be telling me off or listening to music I disapprove of…yet. My hair isn’t turning grey or thinning, and the lines in my face are only slightly deeper now than before. So like I said, nothing to get really disgusted about, just a little disgusted. You know -- a mediocre disgust. Just prep work for the real disgust that is to come later on in life.

See, this is a way of happily looking forward, and at the same time knowing that it is all down hill from here. I see the signs already. I have already started to vocalize about music that I do not approve of. Clothing styles are popping up, and I can already mentally hear myself staying: “Not on my daughter!” In other words, I’m done for.

We can all now breathe a collective sigh of coming disgust.

Unfortunately, the number thirty also causes large pangs of reflection to occur. Reminiscing about what I’ve accomplished – or not. Professionally I’ve written a lot of code, and I’ve even written about some of it. Some of the code has been really good. Some of it gives more of those mediocre disgust feelings. But the question really lies in one area: are my good years really behind me?

Why do I worry about this? Most of the time, if you are going to do something really cool, you do it in your twenties. Newton devised calculus at 24. Einstein realized the Theory of Relativity at 26. Blasé Pascal created his digital calculator at the ripe age of 22, then two years later, proved that vacuums existed. Granted, in comparison with these people, I’m a moron happily whiling about my day in gratitude that I am not choking on my own spit. But such is life.

I guess I shouldn’t worry too much. Jesus didn’t manage to get himself killed off until he was 31. Many other inventors don’t perfect their ideas until very late in life. John Harrison didn’t figure out the Longitude problem until very late in life (he almost didn’t live long enough to prove he was right). Tomas Edison was 50 when he invented the light bulb. So I guess there is still time.

And that is really point now isn’t it. There is still time, God willing, to do something great. Some people live to long, others don't get enough, and all of that is beyond me. But in the mean time…I still have to raise my kids.

March 31, 2005

What good is a BS:CS

So in a group that I am part of a standard gripe came up: "These college grads don't know squat."
This sort of thing has been covered many times before (even by me), but here was my response:

One thing that having a BS often does prove is that you are good at things other than CS. Like writing documentation, interacting with people, and understanding instructions.

One item that I feel is granted (probably by everyone here): college CS training stinks. It isn't for lack of trying, just more because of the scope of the subject. CS hasn't been around enough to really subdivide like Engineering has (Civil, Mechanical, Electrical, etc) beyond the generic Programmer and Administrator tracks.

But for the programmer tracks there is just a lot there to learn. How many languages do you use now? I use Delphi, C#, VB, SQL, VBScript, JavaScript, and MDX. But I also know how to read C++, Java, and many others. Then there is the .NET Framework, VCL, and Win32 -- and web development is entirely another animal. Any one of those is beyond the scope of a college course.

I remember reading one luminary on CS talking about how top notch schools are really just vocational schools for Java programming. Because coming out of college, Java is the only thing any of them really know. Actually, he was annoyed because none of them were coming out of college as top notch C++ developers (can that even be done in 4 years?).

Now look at what else has to be done to earn a degree. You have to take Math, English, Econ, Business, Philosophy, Psychology, Religion (at least at my college), Biology, Art, Chemistry, Music, etc. That is what you have to take OUTSIDE of CS. And the first year of college you will only take 2 CS classes -- TOLAL. That is just a "How to Program" course.

So, if you went straight into programming, without a degree: good for you. You got a 4 year head start on me, because I definitely did not come out of college at the same level you would have been at after 4 years. You would have spent 4 years doing nothing but programming. I spent 4 years meeting the requirements for a degree.

The degree isn't about coming out of college being an expert programmer. I dont think it is possible to go to college, become an expert programmer, and get a degree in 4 years. It is about being versatile and rounded. After that, becoming an expert programmer "should" be easy. But that has to do with aptitude...and that is a whole other topic.

March 28, 2005

Delphi to C#: oh my!

EEeeekkk!!! Someone actaully thought it would be a good idea to develop a tool to convert Delphi (.NET or Win32) to C#!

May the force be with you.

Netcoole Migration Services

March 27, 2005

Joy and fun with old software

So this weekend I spent some time working on my dad's brand new computer...again. His main dos based business application will not work on his new Dell computer.

Now, my father can neither be classified as a computer expert or newbie. At this point, novice works well. He has been working on computers since 1985, but only enough to run his business on the thing. What type of business: a dairy. 1000+ cows, all with their names and life histories tied up in this thing. And at this point, with out the computer, the dairy will run (cows will still get milked, fed, and watered), but most other activities stop. Like parole, bills, and medical treatments get a little more interesting.

That said, the last time my father upgraded his computer was 1996. Maybe 1997, but probably not. And, just to make life more fun, his dairy program (what he spends a considerable amount of time in) was last updated in 1995, and is still dos based. I'm almost positive the program was written in Turbo Pascal 5,6, or 7.

Amazingly, it runs like a champ on any x86 computer running at least Dos 5 or newer (including WinXP)...so long as the CPU isn't faster than, say, 266 MHz. After that, you get a rather famous "Run Time error 200". Which, near as the oracle of Google will tell me, affects Turbo Pascal 5,6, and 7 programs the world over.

Great. No now we are left with either buying a new or competing product to run, or hack the sucker and try to convince the existing app that the sky is not falling and 2 GHz is not a bad thing. Easier said than done. There are applications out there that will modify the existing binary to make it work -- but they don’t work for this app (I tried). There is a TSR that you can install that catches the error and tells the application to ignore it -- doesn't work (do TSR even work with Windows anyway?). I found all sorts of code patches for this. But I don’t have the code. I'm stuck!

As I said earlier, my father is a computer novice. He knows how his programs work, and he knows them very well. And this program is essentially a data entry program. If there is one thing I am certain of: DOS programs can excel at data entry, and most windows programs stink at it. And now I think my father is going to have to find out how badly windows data entry programs can stink -- and he will blame me for it.

As his only son actively involved in software development, and the one who convinced him to get a new computer in the first place, I will get blamed. Not always directly though. It usually starts as "Why does this work this way?", followed by "Well that isn't very good." And the frustration grows. Luckily I have a good relationship with my father and the frustration doesn't last very long. I'll switch the topic to fishing or grandkids and then everything is fine.

Now I'm left with a couple of thoughts from all of this.
1. why does data entry on a windows app have to be so much worse than DOS? Have we regressed? Who thought that using a TAB instead of ENTER would be a good idea? Mainly because now I have to hard-code ENTER to do what TAB does every time.

2. Why don’t we ship more code with products? Or script them more? I've been toying around with making a new application framework using .NET (because I don’t have one right now and I'm too cheep to buy one). It is completely possible to script large chunks of the application. Like a scriptable add-in architecture. Right now I'm thinking of a cross between Microsoft Office VBA and ASP.NET without code behind.

3. Next time, if a family member asks me what computer to buy: I'm suggesting a MAC.

March 25, 2005

T-Rex soft tissue found

Boy I hope this isn't a hoax. But apparently, palientologist in Montana have found soft tissue (still flexable) from a T-Rex thighbone. If this is true, it could be the biggest find of this century.

2 links below:

http://www.wired.com/news/technology/0,1282,67014,00.html?tw=rss.TOP

http://news.yahoo.com/news?tmpl=story&amp;ncid=753&e=1&u=/ap/20050324/ap_on_sc/t_rex_tissues

March 21, 2005

Delphi 2005 update

OK, here is my first update on Delphi 2005....

The Good:
1. There is nearly a component for everything. This thing ships with a lot of the pieces that are missing from Visual Studio.Net.

2. So far all my old Delphi code still works! So far... :)

3. The amount of things that you can do with this thing is unreal. Between Delphi Win32, Delphi.NET, and C# I rule the windows world!

The Bad
1. Startup time is slow(er than Visual Studio 2003). Almost obnixious slow. I mean come on: do you have to load EVERYTHING into memory to load the app?

2. It has crashed on me once so far. For a new product (I consider it new anyway) that isn't bad. But when it crashed, it just disapleared. I lost my changes and it went away.

3. Adding files to the project is non-standard and/or non-intuitive. Or else I am idiot and missed the option. To add a unit to the project: First you select the project, then go to the Toolbox, then find the unit tab.
Why isn't there a File->Add File option...could be, but I can't find it.

Note: wonderful part about blogs, if it turns out that I am an idiot and I'm wrong -- I can update the blog and look smarter.

March 15, 2005

Source for a C# compiler written in pure C#.

So a guy at Microsoft wrote his own C# compiler in C# and is now giving it away.
You can read the details in the link below.

Source for a C# compiler written in pure C#.

Not that I would use such a thing in production...you can already get the real C# compiler for free from Microsoft in the .NET Framework SDK. But it would be interesting to read through the code and see how he did things.

March 07, 2005

Finally: Delphi 2005

OK, I finally got Delphi 2005 installed last night. First impressions: I have a lot of catching up to do.

The last version of Delphi that I actively developped with was Delphi 5. That means I missed versions 6,7, 8 and Delphi.NET, not to mention Kylix.

I have a LOT of catching up to do.

Delphi 2005 has built-in refactoring, you can develop in native Win32 or .NET, write web pages (ASP.NET or IntraWeb), it has 2 built in reporting engines, comes with the ComponentOne controls, and you can write C# code with it.

I have a lot of catching up to do.

One of the minor things I'm going to have to get used to is the new IDE. It now looks like Visual Studio.NET (with a few minor tweaks). It now has NUnit and DUnit integration (I will look into that), HTML, and CSS formatting support.

Good grief, this could take a while. Oh well, I'm up for it.

February 28, 2005

Community Server is 1.0

See here: http://weblogs.asp.net/rhoward/archive/2005/02/25/380444.aspx



Or here: http://www.communityserver.org


So what is Community Server and why should anyone be interested? It is trying to link up 3 of the more popular open source .NET web project on the web: NGallery (an image gallery), .Text (blog), and ASP.NET Forus.


I can't say I got any scoop on this tho...it is already 10 days old.

February 25, 2005

Article on Microsoft and Oracle OLAP offerings

This is an article by mark Rittman (an Oracle DBA) detailing the differences between Microsoft's and Oracle's OLAP offerings. Even going into Microsoft's forthcomine 2005 version.

http://www.dbazine.com/rittman4.shtml

Mark Rittman's blog

February 09, 2005

Richard Grimes disses, misses .NET

First off, I generally found Richard Grimes to be an interesting read. His farewell statement is included in that assessment.

Please read the article first, but here is my reaction to it. (Note: registration required)

Link

First thing Grimes talks about is the marketing snafu's that occurred in naming their system .NET and the language C#. Both are excellent examples of marketers on drugs. I think their conversations must have gone something like this: "Hey, nice weed man. How about we create names for the products so that no one can find information on them, including on our own developer sites. Then we can blame Google and we will come out like heroes, because, we're like Microsoft man."

Second: Mr. Grimes basically says that the .NET Framework is geared to VB developers looking for something better and more powerful (that is the same reason I moved to Delphi years ago). But that in all reality, C# is the most natural language for .NET and VB.NET never should have been written. Mostly because it has broken every single VB program ever written and pissed off a lot of developers who never wanted to be developers in the first place.

Also he argues that the framework is too big (25 meg) and to complex. And really, if you are coming from the simplistic world of VB, it probably is. From a Delphi stand point: it is still missing stuff. But he does have some good observations on how he thinks the .NET Framework was built and some of its shortcomings.

Third: He says that Microsoft isn't really committed to .NET because they really haven't written anything in it, or ported any of their old applications to -- specifically, money generating ones.

I disagree on this point. SharePoint and Reporting Services are both .NET applications, and SQL Server 2005 is going to have .NET built into it (though, that is not the same as saying that SQL Server 2005 will be built with .NET), and you will be able to execute .NET code in Stored Procedures and use .NET types as columns. IIS has some tie ins as well. And if you want the latest version of IIS, you have to get the latest version of the OS. I'd say that is a money generator myself.

The question comes back to: what has Microsoft done with .NET? They have built server applications. It might be a little disconcerting that they have not built much in the way of Windows applications, but truthfully the jump from Delphi or VB to WinForms wasn’t that great. The jump from ASP to ASP.NET was huge!

For myself, I know I have cost myself jobs because I refused to do traditional ASP development. I hate it. Loath it. I prefer assembly to traditional ASP. At least you get debugging with assembly and you are only dealing with one language! For traditional ASP you had to know the ASP object model, HTML, css, JavaScript, and VBScript.

With ASP.NET, that story is mostly changed. I can write an entire web application without writing a single line of HTML, JavaScript, or css. Now add that XML support is built in, better component support, the framework itself, and the list goes on. With ASP.NET, web programming is almost fun! It is almost like Windows development! Who knew?

But do you really want a Word or (gasp) Excel written in .NET? Is that the best place for the tool? Probably not. And I think it is important to remember that the .NET Framework is just a tool. Not THE tool. It is one way to get things done, and depending on the job, their might be better ways. I still use VB for some jobs, I still use Delphi for other, but for most I use C#. Just as Richard Grimes will continue to use his beloved C++.

January 27, 2005

January 19, 2005

In the land of the geek, the nerd is king

But I'm not sure I should be proud of this score...


I am nerdier than 95% of all people. Are you nerdier? Click here to find out!

PostgreSQL hits 8.0

As seen on Slashdot! PostgreSQL hits 8.0.

Official site here:
http://www.postgresql.org

Here is what is new:

http://www.postgresql.org/docs/whatsnew

ADO.NET native driver:

http://gborg.postgresql.org/project/npgsql/projdisplay.php

Delphi Driver:

http://www.zeoslib.net


Really, I have to get some time to really look into this thing sometime. In the world of Open Source databases, this one has a VERY good reputation (it has had features that MySQL is just getting for years now).

January 18, 2005

New Oracle stuff for .NET

http://www.bsdg.org/2005/01/oracles-net-developer-center.shtml

Check it out.

January 10, 2005

SQL Server 2005 Enhancements

Nice big document on MSDN that lists a lot of the changes that have happened to SQL Server 2005.

See it at http://msdn.microsoft.com/sql/default.aspx?pull=/library/en-us/dnsql90/html/sql_05TSQLEnhance.asp

Also, I'm still working on a post going over some of what we learned from Rich Hundhausen last Thursday. I'm hoping to have that one done tonight. (some, but not all. I have to leave some incentive to go see the presentation -- very good)

January 07, 2005

Mosha has a blog!!!

Mosha Pasumansky finally has a blog! Mosha is a lead engineer on the Microsoft Analysis Team, and (as I understanding) one of the lead architects of MDX and the Analysis Services security implementation.

http://sqljunkies.com/WebLog/mosha/

He also has a book: Fast track to MDX