Tuesday, July 05, 2005
  • Adblock
  • Image Zoom
  • All-in-One Gestures
  • Disable Targets for Downloads
  • IE View
  • Web Developer
  • miniT
  • NoScript

All should be availabe at:
https://addons.mozilla.org/extensions/?application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Tuesday, July 05, 2005 9:44:54 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Saturday, July 02, 2005

I'm writing this looking back from a potential future where microsoft becomes a consulting services company and its Windows OS is is the OS/2 of its day.  Microsoft failed to embrace the Open Source software movement.  Well not exactly.  Microsoft failed to research the make up of this group.  Not only the creators of OSS but the users of OSS.  The users are almost more importannt then the developers in this case.  Why?  MS decided that OSS was foolish and that the developers engaged in OSS where giving away their services and their time.  MS argued that software should be paid for and that developers should be making money.  I can't argue with any of this and on this point they are very correct.  However you have to look at the motivations of the OSS community. 
    The first perspective is the users.  They get free software without the worry of the licensing nightmare that accompanies most commercial software.  There is no good way to keep track of the software installed on most systems.  Don't get me wrong there are several improving ways of monitoring installed software but this is usually not free.  There is SMS and related products but this is still difficult, with many small to medium companies struggling to 1) understand their licensing agreements and 2) comply with their licensing agreements.  How do I know this?  I was employed by a small division of a VERY large corporation.  We had incredible resources but it was still a great challenge to manage all of the various MS and related software and all the third party software.  When you are told to install software on that laptop today because the boss is going out of town and needs it right now, you do it. 

            However as we move forward in time and major shift in development away from desktop and towards web applications began.  The two reasons for this were 1) DLL Hell, which is its own article/book/series of books on its own and the licensing debacle referenced above.  So we have a paradigm shift from desktop software to web software to alleviate the installation and maintenance nightmare of desktop software.  Note that we have had several paradigm shifts from the original main frames and UNIX boxes to the all powerful desktop to the client server heydays of the mid nineties and eventually to the web centric model that is emerging today. 

            Microsoft of course saw this and countered with .NET.  Make you think that .Net is all about the network and every server and desktop with .NET would be instantly connected and on the web.  Well here is reality: .NET did not ship with Windows XP.  Nor was it on the 2000 servers most people were using at the time.  But the worst was yet to come.  All of my client server apps written with VB6 and MSSQL would have to re written because VB.NET was not backward compatible with VB6.  Goodbye desktop hello web.  So VB6/COM training/talent/know-how goes to ASP and ASP.NET and then in ASP.NET vbscript is abandoned (rightfully or wrongfully) in favor of javascript.  So know I have wasted 5-6 years with VB and COM and must upgrade my skills.  So lets go looking for training for our staff. 

Wait a second.  What’s this java stuff.  That will really take off and that’s what all the big guys use on their servers and even better this language was written for the web and even better developers can fell like they are writing in C and feel smart while having the memory management of VB.  Yeah Java!  Then along comes .Net with C# the Java killer. 

All the while many free lance developer, student, academics, government and pretty much any software developer who has limited resources has been searching for ways to reduce software costs while remaining inside the boundaries of the law.  Well a few of them get together and figure some stuff out and write some programs to share.  Why not create this and why not create that and pretty soon you have an OS and a web server which is all your really need in this new world.  Why not have a few web languages?  Keep building on the foundations of what is currently available, get smart and hungry people to work on it and wait a while.  Pretty soon you have some pretty good tools written for smart people by smart people to do the things you need to do.  Bugs are fixed quickly, people are friendly this whole thing isn’t too bad. 

So all of a sudden OSS becomes to pretty decent software with a price that you can’t beat.  So the question is why pay for all that software especially when all you need is a web browser (available on Windows 98) to access all of the company network and software which is now web based.
...End of Part 1...Part 2 soon to come...

Saturday, July 02, 2005 11:28:43 PM (Central Standard Time, UTC-06:00)  #    Comments [2]
 Tuesday, June 21, 2005
Here's a rather lengthy article on how Microsoft is losing the API war to the Web.  He goes on to explain why M$ has stopped working on DHTML and Internet Explorer.  Worth the read but set aside a few minutes to you can get through the whole thing:

It validates all of us former desktop dudes who have fled to the web. 

http://www.joelonsoftware.com/articles/APIWar.html
Tuesday, June 21, 2005 10:41:55 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Friday, June 17, 2005
I've decided on the following format:

Tabs for indenting, spaces for alignment.

In gvim I have set tabstop=2 and in Crimson I have set View > Tab Size = 2 also.

This way I have tabs in the files but I can set the actual tab display to be anything I want.

This should provide a consistant look to the source code.  2 spaces is about right, 8 is way too much as your code quickly gets too far to the right.
Friday, June 17, 2005 5:11:07 PM (Central Standard Time, UTC-06:00)  #    Comments [3]
UNIX has a nice command named alias that lets you create a new command from either one or more existing commands and parameters.  For instance you could alias "lpstat -t | pg" as "stat" and then you could just type stat at the command line instead of the long ugly string each time.

Windows (at least up to XP) does not have a mechanism for this.  Instead I use batch files to replicate the alias functionality.  I create a directory containing all my alias batch files and then add this directory to the path like this:

    from the command prompt type: 
   
        path = %PATH%;newdir

   %PATH% is the environment variable that represents the current path so this command allows you to append to the current         path.

So in my case I created a directory c:\work\cmd and then added it to the path path = %PATH%;c:\work\cmd.  Then I create the batch files for each command I want to alias.  For instance I use gvim so i created a bat file with this text:

    Start "GVIM" "C:\Program Files\vim\vim63\gvim.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9

and saved it as vi.bat.

    Start tells windows to open the program in a new window.  Otherwise your command line window will hang and wait for the     program you launched to exit, which is not the behavior I want.

    "GVIM" tells windows what the display name of the window is.  Not necessary but I like it.

    "C:\Program Files\vim\vim63\gvim.exe" is the full path the exe to run.

    %1 through %9 is simply a way to pass through any parameters on the command line (like file names) to the program you         are starting.
   
So now I can "vi" a file by typing "vi filename.txt" from the command line.

I like this technique because it is very portable between machines.  Just copy over one folder and then add one entry to the path and you are set.  Very handy for me since I regularly use 3 PC's and I'm always tinkering with new programs etc.  It's not as nice as alias but it works.


Friday, June 17, 2005 2:01:34 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Thursday, June 16, 2005
Here is something I need to do tonight or this weekend.  My reception in the bedroom is fair to middlin' at the best.  I need to create one of these suckers to increase my surfing satifaction.

I might even create a matching tin foil helmt to keep the satelite signals out ;>.

How to:
http://www.popsci.com/popsci/how2/article/0,20967,1057201,00.html

A little better site with more pictures and explanations:
http://www.freeantennas.com/projects/template/

A nice picture of the setup
Thursday, June 16, 2005 12:37:04 PM (Central Standard Time, UTC-06:00)  #    Comments [3]
 Wednesday, June 15, 2005
I was looking for a way to delete a Window's service and I came accross the sc command.

Just open a command prompt and type sc and then the action you would like to perform.

Examples:
    Delete a service: 
        sc delete service_name
    Start a service:
        sc start service_name
    Stop a service: 
        sc stop service_name
    List all services: 
        sc query
 
The actuall service information is stored in the registry at this location:  
  HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
If you're curious I was re-installing MySql on a machine and the mysql service already existed so I needed a way to get rid of it.  I knew there was a command to control services but I had to do some research and came up with this.

Enjoy.
Wednesday, June 15, 2005 12:59:21 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Monday, June 06, 2005
This is a site I've used more then once:

http://www.lookuptables.com

A good site for ASCII, COBOL, HTML and UNICODE character codes and translations.  It's almost faster then looking at the sheet I have hanging on my cube wall.


Monday, June 06, 2005 3:19:22 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Friday, June 03, 2005

Do you call yourself a Java developer or a .NET programmer?  Do you think a carpenter calls himself a handsaw carpenter or a table saw carpenter or a belt sander carpenter?  The point, if it is not obvious, is that you should not pigeon hole yourself into claiming that you’re only a one trick pony.  Could you imagine a carpenter getting a job if they walked into contractor’s office and said “I use a hand saw really well but I’ve never really messed with this hammer stuff?”  That carpenter would be laughed out of the office. 

One thing some of the language evangelists forget is that a language, IDE, framework, OS and the hardware it all runs on are just tools.  Humans advance by making tools and then making better tools.  Imagine if we had stopped at the flint axe because the flint axe evangelists said that the flint axe was the best axe ever made.  At that point it probably was but eventually we moved from the Stone Age to the Iron Age and the Steel Age and now you can buy nice steel axes at Home Depot for reasonable prices.  Of course you can also buy a chain saw and save yourself a lot of hassle. 

So what does this mean for you, the sophisticated computer programmer of today?  It means that you should think of yourself as a programmer.  It may be acceptable to think of yourself as web developer or enterprise software developer who is fluent in many of the tools of your trade.   Don’t get stuck in the rut of your current tool of choice.  VB6 programmers learned this lesson all too (or should have) well when Microsoft decided that VB as they knew it was no good and needed to be replaced.  Goodbye VB6, COM+, COM, etc, hello .NET, good bye knowledge, hello training classes. 

A good craftsman uses the best tools for the job.  If a new tool comes along that can make a job faster, easier or results in better end products, you can bet that it would be adopted.  However there are always the Luddites that believe nothing new can be better.  So the advice is to stay agile and keep learning.  If you catch yourself bashing another technology without having used it, maybe you should reconsider after all right now you could be out hunting bison with a stone axe, instead of sitting in a nice climate controlled office sipping lattes and reading this excellent article.

Friday, June 03, 2005 11:32:55 AM (Central Standard Time, UTC-06:00)  #    Comments [2]