Posts

Open Letter to Microsoft

Image
As a professional software developer for over 15 years now, I have had a  love-hate relationship with Microsoft. On one hand, I've always loved the Windows OS platform.  Windows has always been the most consistent and best overall user experience of the OSes I've used - even if at times I had to work around nasty bugs and wait on well overdue service packs(the hating part)! I've used a lot of different OSes in my lifetime, going back to a Coleco Adam SmartOS, C64, AmigaOS, different Linux distributions, Mac OSX, DOS, OS/2 Warp and every flavor of Windows except ME -I never used ME, so I can't speak about that potential heartbreaking affair - but Vista 64-bit had a lot of issues too! When I used a MacBook with OSX for work- it came with some nice features, but I just can't get over the premium cost of hardware and lack of really great gaming experience I get on Windows.  Also, Xcode is not Visual Studio and unfortunately never will be. Linux has some awesome ...

It is on like Donkey Kong!

Well, I did it - I signed up for the assault on Mt. Marion bike ride for next May! You can read more about this bike challenge here . I have a LOT of training to do, but that is the whole point isn't? Well, in a few hours I am doing a training ride in Chesterfield - riding an old route that I use to hammer through in my youth. It is going to be a lot of fun!

Virtualzation

Well, I finally got all the parts in for my new server. I am building the follow: MSI Mobo AMD LLano 2.7 GHZ Quad Core Processor 32GB of DDR3 RAM 64GB SSD - for the host OS 1 TB 7200RPM SATA drive for Virtual HDs 2 U Server Case 350 Watt PSU Well, I realize the BEST virtualization host software out there is VMWare's ESXi - unfortunately the 64-bit version is not free - so I have to pass. Microsoft's HyperV is free - but it doesn't like my hardware - couldn't find the network card. Citrix Xen wouldn't even load. So now I am about to install Fedora 16 XFCE and just use Virtual Box. I use Virtual Box on windows and runs great, so I am not concerned as long as I can Virtual Box to install. My Linux skills have really deteriorated since Windows 7 came out. I'll give an update once I get the server up and running!
Well, the project from hell is finally winding down. We've done a tremendous amount of code in just a few short(but felt very long!) weeks. I know more C++ now than ever - and actually gotten use to coding in C++. The only thing I come to realize is Microsoft's Visual C++ compiler leaves a lot to be desired. Anyone who has done a large project (well over 20K lines of code) in C++ is probably well to familiar with the requirement to clean before every compile and after a few hours, you have to delete the obj folder because it just won't clean anymore. Of course a daily reboot is required too. With .NET I'd have to reboot about once a month!!! Of course, we just heard the vendor is changing the product platform from Windows CE to Linux in the next firmware version, so I am looking forward to getting to use GNU gcc compiler! Oh well, hopefully things will get back to normal this week and I can actually spend sometime at home doing all the things I've been negle...

Crazy Time

Well, with the project from hell going on at work (working 7 days a week is getting old!), I at least came across something to help my eyes after hours and hours of coding. Studio Styles to the rescue! Check them out! It is a great place to get a Visual Studio Editor Templates. They support 2005, 2008 and 2010. I am sure 2011 support is just around the corner! I've personally gone with Son of Obsidian here. Its easy on the eyes and really helps keep the fatigue down.

Writing a Video Game

Well, I've always wanted to create a video game. The first time I ever wrote the famous Hello World, I was in the fourth grade. My parents had Santa deliver a Coleco Adam computer. Originally for my sister Nikki, but in few short weeks she tired of me wanting to be in her room to play on it - it was moved to my room. I don't think my parents realized just how much I would naturally take to computers. Yeah, we had an Atari 2600 that I had about worn out playing, but to their surprise I was printing and writing programs that printed things almost immediatly. I discovered magazines like Family Computing and Compute that would publish programs in pring and I'd tirelessly type them in and run them! I taught myself how to store data sequentially and create a program to catalog my 8 or 9 records. I create a program to print me a checklist for my baseball cards. I even wrote a little drawing program that I took to school and showed off to one of my teachers. Computers bec...

MS Outlook Tip of the Day

Image
Well, if you are like my wife's employer - then you are using Outlook as an email client to Google's gmail system. Google offers wonderful email hosting solutions - Google Mail Hosting Also, Microsoft's Outlook works great with it(isn't that ironic!). However, my wife noticed she wouldn't get new email notifications for a while in outlook - but instantly via her web browser at gmail.com. After a little pokeing around, I found the setting she needed to change so she could get new email notifications within 1 minute. While in Outlook - press CTRL+ALT+S and this windows pops up. Change your "Schedule an automatic send/receive every" option to 1 minute and now Outlook will poll Gmail every minute - not every 30 minutes by default!

Never stop learning!

Well, I signed up for a night/weekend course the other day. If enough people sign up, I be taking a A+ Test Prep course. It has been a while since I was in the classroom on that side of the podium - but you can never stop learning and I am looking forward to getting hands on with hardware again! Even though I build my personal computers from parts (and the best place to get them is NewEgg ), I really haven't done much with hardware in a few years. Besides the occasional GPU upgrade, there really hasn't been a reason to upgrade anymore. I remember back in my college days upgrading almost every summer! Guess when your priority isn't to play the latest/greatest video game at max settings, you don't really push hardware! Well, hopefully class will be fun!

Times are a changing...

Earlier I was speaking with a friend about the new Microsoft 8 OS - HTML 5 / Javascript GUI mess that is coming. He made a good point that Microsoft has never been good when it comes to something new and original. They always need someone else to open the door, then they rush in and take over with great success! Here is just some of the projects Microsoft has started with other vendors that lead to great products... Sega Dreamcast running Windows CE = XBOX STEAM = Games for Windows Sybase Database = SQL Server Products Citrix = Windows Terminal Services Netscape = Internet Explorer Firefox = IE upgrades IBM OS/2 = Window iPod = Zune (okay - this one no so great!) Java = .NET (hiring they guy who made Delphi - a true VB Killer!) So now they are trying to get Windows OS on tablets (Windows 7 Mobile is going nowhere fast). The tablet market is a market that has bascially ignored them and is either iPad or everyone else (Android on generic hardware like HP and Samsung, etc). Well, ther...

Blast from the past!

When I first started writing programs in C/C++ way back in the mid-90s, I immediately took interest in computer graphics. Well, after school and working as a software developer on database applications, I just never kept up with learning more about graphics and game programming in general. Well, a friend of mine who also went to college with me sent me a link the other day. The Allegro game programming library found here is still alive and well! We used this library on our trusty 486 DX2 PC's running Window 3.11 and Windows 95. This really brought me back to the past! If I can find the time, I plan to do more with this and see how things have changed since those good ole days!

Two-factor Security

Well, I was introduced to a new way of doing Security for web hosted applications. It seems, with current state of IT security (or lack of - just ask Sony) and hacking attacks across the web, simple username/password isn't enough anymore. This is were two factor security comes into play. Basically, two-factor means there is more than one (at least two) to validate the user. The most common is username/password and then a challenge question(s). That is how my bank does it... but there is even cooler way. That is were Phone Factor comes in to play. With Phone Factor you can easily setup your application to actually call and request a pin number from a user before allowing them entry. I've worked with their SDK and it takes about 5 minutes to get working! Check them out!

Faster...

Well, I have been swamped on projects and life in general lately... but I wanted to take a moment to comment on a tool I have come to love. I have to admit I was skeptical and fearful of a tool that claims to generate an entire web app in minutes. But I have to say Ironspeed - http://www.ironspeed.com - has delivered as promised. If you are an ASP.NET programmer and not planning to move to MVC any time soon - then Ironspeed may just be the tool you need to help you know out projects! Later!

Back from the Roller Coaster....

Well, September has been a really busy month for me! I got married in the Blue Ridge Mountains, was the best man at my brother's wedding, and spent a week in Florida for the Honeymoon! Well, I am back and will in short order continue adding more code and solutions! Cheers, Mike

A blast from the past!

It was Christmas of 1990 – my junior year of high school. This was a great Christmas for me. Being an avid computer user – my trusty Commodore 64 was used every day back then. If I wasn’t trying to save Skara Brae from Mangar the Dark, I was trying to make money supporting my NASA space station. Well, that Christmas I received what is now my all-time favorite computer. The Commodore Amiga 500 – a true revolutionary leap in home computing at it times. While IBM PC’s where green screen DOS terminals along with Apple Mac’s grey scale graphic user interface, the Amiga boasted true 16-bit, 4096 color palette along with a whole whopping 1 megabyte of ram (who could ever use more?) and a 1.44 MB 3.5in floppy drive. The Amiga 500 was actually a second generation Amiga – the low end price conscience model compared to the much more expensive and expandable Amiga 2000. Commodore had something special and only with their classic inability to market and manage what they had – basically be...

Something cool

I am always being asked about ways to do certain things. The most common are how to do things on the web. Well, last night a student asked me about how to make an “Accordion” Menu. She had seen a menu on a website and wanted to do the same thing on hers. Well, I Googled “jQuery Menu” and came across this blog site. http://www.designyourway.net/blog/resources/25-jquery-menus-ready-for-download/ Seems there is a lot of cool menus and source code on this site. Also, you can check out other blog entries for how to do many different things with web technologies. I am going to make sure this site makes it to my bookmarks!

Oracle External Table

I am always being asked to get some data into a database. Most of the time it is just a matter of writing an import or using a bulk import tool to load the data. However, sometimes it’s a little more complicated than that. Well, I have been working with Oracle 10g database lately and love the external table feature. Oracle external tables is a wonderful mechanism that allows you to take an CSV or fixed-length file and logically map it as a database table. The advantage of this over import is a lot of times you have external data that you want to “load” for reporting and scrubbing against, but once the data has been scrubbed, it is useless. This is especially useful where business demands require you to take external data and check against your system. I could have really used this feature when I wrote a process to verify telephone number porting reports. Local Number Portability (LNP) and Wireless Number Portability (WNP) required us to verify “owner” of a number and make sure we turn ...

Don't be a spammer!

If you are like me, you are always required to make your applications allow the user to complete task and processes. Of course, as humans we always want confirmation when we do something. If we buy something, we want a receipt. Same is true for processes in software. I submit an order at Amazon.com, I want an E-Mail confirming my order, then an E-mail when my order ships with the shipping tracking number. This is no different than for any software I have had to write. One problem I have during development is that I don’t want to start sending out emails all over the dang place nor really want to access the only mail server available to me – my work Exchange server. The guys in IT hate it when you are testing something, accidently make an infinite loop and send out 10,000 test E-Mails before you realize “oops!” Well, I came across a way to use configuration setting in a ASP.NET web app (I don’t see why this wouldn’t work in a winform app either). In your web.config add the following in ...

Making a resource file programatically

My latest task was to make a set of image files into a single resource file to be used with a project. When the application loaded, it would pull the images into an ImageList for a Treeview. Well, this works fine except you now have 50 small files being distributed in a small folder with your application. The original design goal is to keep images separate while allowing them to be customizable for clients. So while trying to maintain customization, but making things simple and cleaner, I came upon the conclusion that I create a resource file for my icons. First, I decided to make a tool to do all of this. I broke out trusty old VS 2008 and started a Windows Forms Application. To be honest, any chance I get to work on a Windows Form Application, I do. I miss the good ole days of desktop only applications – web apps suck to write and maintain – unless it is an email, blog, or social site type application. Data entry and business processing should have never been moved to the web – but c...
I am so glad that after all these years of software development; I still find the amount I don’t know is so much more vastly great in magnitude than what I know. Nothing saddens (and scares) me more to think I would ever get to a point where there is nothing else to do and it will remain the same from here on out. Working with .Net the last few years has been great, but there was a feature in .Net version 3.0 I missed while doing maintenance work with a ASP.NET 2.0 app. .Net Extension Methods is awesome! Jason, a new coworker ( I changed jobs a few weeks back) point me to this http://www.codinghorror.com/blog/2008/07/monkeypatching-for-humans.html Well, after checking this out, I decided to write a few extensions for myself and put them here. public static string Right(this string s, int len) { if (len == 0 s.Length == 0) return ""; if (s.Length return s; return s.Substring(s.Length -len, len); } public static int WordCount(this string s) { string[] rtn = s.Split(' ')...

.Net DataTable Exercise

Every now and then I need to retrieve some data and show it in a grid... uh who am I kidding, I have to do this ALL the time. Well, here is a simple way to filter your data quick and easy. /* CODE */ GridFieldDAO dao = new GridFieldDAO(); DataTable dt = dao.getDT(); DataRow[] drs = dt.Select("(detailID = 1) AND (detailTypeID = 2)"); DataTable dt2 = dt.Clone(); foreach (DataRow d in drs) { dt2.ImportRow(d); } myGrid.DataSource = dt2; myGrid.DataBind(); /* CODE */ The real magic here is how the DataTable Select() method allows you to get subsets of data for display. Most people filter based off changing paramaters and reloading values from the database. If you want to just display filtering for a whole set, this is easier and more efficent. Enjoy!