We geo-cached today. We broke a personal record and found a series of 30 caches over 4 hours. It was a blast! Isaac came up with his own joke: What do you get when you cross a rock with geo-caching? Geode-caching (hence the title). Pretty funny!
We also went to the carnival that was in town. Sandi, Isaac and Anabelle drove, I decided to walk Cookie (one of our dogs) to the carnival. We got there and at first she was just a little anxious. Over time she grew more and more anxious until a booth where you threw darts at balloons just pushed her over the edge and the poor thing was terrified. I took her away from the carnival and waited for Sandi and the kids to finish up.
Other than that the only thing left to announce is that I am legal now with Windows 7. My official copy of Win 7 Ultimate arrived today and I've installed it. It was a bit of a pain since there was no upgrade path from beta to final, but that's alright, sort of starting with a clean system and I saved off a lot of my data ahead of time - using the transfer took and some manual backups. I kind of miss the little beta message at the bottom, right-hand corner of the screen.
Sunday, October 25, 2009
Tuesday, October 20, 2009
Crowning achievements as a programmer
I guess "crowning achievements" is a bit extreme, but there are several applications or bugs I've worked on that I was pleased with. I'll just list some of them out and provide a brief explanation as to what the were and why I was pleased with them.
1) My first program used on-the-job ever. I was working as a material handler and going to school for CS at night. I wrote a program to create receipt documents for items that were not expected or properly shipped to our site (at DEC).
2) ARS (Action Reporting System). This was probably my first MAJOR application. It was basically a "call desk" application that allowed users from several facilities to log requests to various operations groups. It could be for IT or Facilities and others. It was flexible, and well laid out, but it took me several months longer than I had estimated it would take.
3) Automated backups. Not really a programming task, altho' it did involved making changes to some of our software that helped manage our tape library. Not only did I automate backups for 3 sites, but also met with the operations managers of several other sites and we created a rotating schedule with one another to store our tapes off-site; this saved DEC about $250,000 per year (Or was that per quarter? I cannot remember now) in off-site storage fees and also in personnel.
4) My first "money making" application. It was a silly application that ran on Windows or Mac OS (7 or 8). It's purpose was for tracking software on company-owned computers and adding the lists to our asset tracking software that the companies also used to manage their physical inventory.
5) Another application used in conjunction with our inventory software. It tracked (and kept an ongoing history of) a company's parts inventory in a manufacturing site. It was also smart enough to predict (based on past usage) when you would need to reorder. The fun part was devising a file layout that acted as not only a file of current inventory, but mapped the actual history of the transactions.
6) Mortgage application. It was huge. It was powerful. And we had a chance to make good money on it by selling it to a competitor but we did not and they squashed us anyway (since they dominated the market). A LOT of dynamic data mapping and interesting structures and logic managing it all.
7) Data mapper. Heh. What? Mapping data? Big deal! Well this one was. It had to map LOC and BA data from one bank to another (back in the day of large bank takeovers). Both banks used completely different tracking and management systems. It was a challenge but it was great fun! It had to be dynamic, determining how it should map raw data on the fly, not in any specific format.
7a) DES. I had to implement a DES encryption library in DEC BASIC, and some basic methods to do stuff like encrypt/decrypt/generate PINs, MACs, etc.
8) Bug #1. I was working in OpenVMS for DEC and THE Andrew Goldstein logged a bug report and it was assigned to me. I looked at it and pretty much figured out the issue within a week but I spent over a month looking at it simply because it was logged by Mr. VMS and I did not want to blow it. Turned out it was NOT a bug, but a POTENTIAL bug if we ever completed an unused section of our backup code (a framework was in place but never activated, the bug was in that code). I documented the heck out of it and closed the bug.
9) Bug #2. I worked in the security section of the VMS group. I got to see some cool bugs. This problem was in memory management. A few lines of assembly language were out of place and an object was being cleared when it should not have (under very special circumstances). It was my first big kernel issue.
10) Bug #3. This one was daunting. But, like the bug before it, it simply came down to code being executed in a certain order that caused an issue. I can't actually go into detail with this one. I can say it was obscure.
11) Finally, in my current job, I wrote a little servlet that conformed to certain library specifications that would indicate to the caller whether or not items were available for use based on certain criteria. It was designed to be simple and very quick because it was called on the fly from someone else's website that interlinked their library services with our permission services. It was a lot of fun to write and my first solo project after moving.
And that's the short list of the things I had the most fun with. I have written many other applications (including disk scanners that were used by other people in their own products) and graphical queue management software, graphical system management software, data gathering software (for QA), data generators, data sifters, etc., but those stand out in my memory.
1) My first program used on-the-job ever. I was working as a material handler and going to school for CS at night. I wrote a program to create receipt documents for items that were not expected or properly shipped to our site (at DEC).
2) ARS (Action Reporting System). This was probably my first MAJOR application. It was basically a "call desk" application that allowed users from several facilities to log requests to various operations groups. It could be for IT or Facilities and others. It was flexible, and well laid out, but it took me several months longer than I had estimated it would take.
3) Automated backups. Not really a programming task, altho' it did involved making changes to some of our software that helped manage our tape library. Not only did I automate backups for 3 sites, but also met with the operations managers of several other sites and we created a rotating schedule with one another to store our tapes off-site; this saved DEC about $250,000 per year (Or was that per quarter? I cannot remember now) in off-site storage fees and also in personnel.
4) My first "money making" application. It was a silly application that ran on Windows or Mac OS (7 or 8). It's purpose was for tracking software on company-owned computers and adding the lists to our asset tracking software that the companies also used to manage their physical inventory.
5) Another application used in conjunction with our inventory software. It tracked (and kept an ongoing history of) a company's parts inventory in a manufacturing site. It was also smart enough to predict (based on past usage) when you would need to reorder. The fun part was devising a file layout that acted as not only a file of current inventory, but mapped the actual history of the transactions.
6) Mortgage application. It was huge. It was powerful. And we had a chance to make good money on it by selling it to a competitor but we did not and they squashed us anyway (since they dominated the market). A LOT of dynamic data mapping and interesting structures and logic managing it all.
7) Data mapper. Heh. What? Mapping data? Big deal! Well this one was. It had to map LOC and BA data from one bank to another (back in the day of large bank takeovers). Both banks used completely different tracking and management systems. It was a challenge but it was great fun! It had to be dynamic, determining how it should map raw data on the fly, not in any specific format.
7a) DES. I had to implement a DES encryption library in DEC BASIC, and some basic methods to do stuff like encrypt/decrypt/generate PINs, MACs, etc.
8) Bug #1. I was working in OpenVMS for DEC and THE Andrew Goldstein logged a bug report and it was assigned to me. I looked at it and pretty much figured out the issue within a week but I spent over a month looking at it simply because it was logged by Mr. VMS and I did not want to blow it. Turned out it was NOT a bug, but a POTENTIAL bug if we ever completed an unused section of our backup code (a framework was in place but never activated, the bug was in that code). I documented the heck out of it and closed the bug.
9) Bug #2. I worked in the security section of the VMS group. I got to see some cool bugs. This problem was in memory management. A few lines of assembly language were out of place and an object was being cleared when it should not have (under very special circumstances). It was my first big kernel issue.
10) Bug #3. This one was daunting. But, like the bug before it, it simply came down to code being executed in a certain order that caused an issue. I can't actually go into detail with this one. I can say it was obscure.
11) Finally, in my current job, I wrote a little servlet that conformed to certain library specifications that would indicate to the caller whether or not items were available for use based on certain criteria. It was designed to be simple and very quick because it was called on the fly from someone else's website that interlinked their library services with our permission services. It was a lot of fun to write and my first solo project after moving.
And that's the short list of the things I had the most fun with. I have written many other applications (including disk scanners that were used by other people in their own products) and graphical queue management software, graphical system management software, data gathering software (for QA), data generators, data sifters, etc., but those stand out in my memory.
Saturday, October 17, 2009
Another Mac OS X and Windows 7 comparison of sorts.
There are a number of reasons why I still prefer OS X over Windows, specifically, 10.6 vs. 7.
First let me list why I like Windows 7:
1. MUCH improved Task Bar.
2. Less of a resource hog than Vista (more like XP).
3. Polish (it is very pretty).
4. I can play my favorite games, natively.
5. Improved preferences and UAC controls.
6. Some really useful development tools are Windows-only.
7. Explorer favorites can be renamed. **
8. Improved searching.
Now what I do NOT like about Mac OS X:
1. The dock is hacked from NEXTSTEP.
2. Cannot rename items in the places section without renaming the original. **
Now onto a comparison of the features I prefer in Mac OS X over Windows and some explanations of what I do not like in Mac OS X.
I am a fan of older and alternative operating systems. There have been many that SHOULD still be alive today but are not because of competition with Microsoft and Apple. One of those is the grandparent of Mac OS X: NEXTSTEP. Mac OS X is an amalgam of Mac OS and NEXTSTEP - mostly NEXTSTEP under the hood, but with the UI of Mac OS fused into the front end.
Whenever two separate paradigms are fused into one there are going to be problems. One of the problems is the Dock. The Dock in NEXTSTEP made complete sense in the context of the NEXTSTEP UI. It was almost genius. But fusing the Dock into the Mac OS UI makes little sense, they come from different parents, they have differing pedigrees and really are not meant to be together. That being said, the Dock is STILL useful and I appreciate having it as an application switcher.
Another problem is that it took many releases to make the NEXTSTEP equivalent of Finder work [spatially] like the Mac OS Finder. It still does not behave 100% like the old Finder, but Apple has improved it over the years.
The other thing that bothers me about the Finder is that if you rename an item in the "Places" section, it renames the original. OUCH. This should be a "soft link" and you should be able to call it whatever you want. If you have an application or folder with a LONG name and want to abbreviate it, you should be able to do that in Places.
But what I DO like like about Finder is that it incorporates 2 features of the NEXTSTEP equivalent [the WorkSpace Manager] that I cannot live without: Column Mode and breadcrumbs. Column mode is simply (for me) the BEST way to browse files if you no longer have the true Finder spatial mode. Open a windows and zip back and forth through level after level of folders... it is great. And with that, you can have a breadcrumb trail telling you where you are and enabling you to jump back along the path at any position. In fairness, the breadcrumb of Finder is also crippled. It was a MAJOR part of the NEXTSTEP interface and had prominence, you could not miss it. Now it is relegated to a small strip of real estate at the bottom of the window.
Another inherited aspect of NEXTSTEP is the command line interface. Yes, OS X is more or less POSIX compliant and has a SH or BASH interface. This is far different from Mac OS. Mac OS was 100% UI. NEXTSTEP and Mac OS X are UIs layered on top of an entire, functional operating system that has a command line interface. And I love it. I love getting down into the nitty gritty, modifying things at the Terminal level. Brings me back to the "good old days" of VMS and other mainframe operating systems (time shares to some).
Finally, for whatever reason, OS X just feels like everything works well together. Windows can have a disjointed feel to it, flipping from application to application... in OS X (while not perfect) applications feel like they are implemented from a parent class of objects and they all bear familial resemblances.
Oops! One last nitpick. Games STILL stink on OS X. The latest trend for game producers is to create Mac OS X versions as well as PC versions... but this is a lie. In reality the developers are simply wrapping their games in CIDER... a WINE derivative that enables Windows applications to run on Mac OS X (or Linux). This is really not cool in my book, on the other hand you take what you can get, right? But performance is always worse on OS X than playing the game in Windows because of this layer that tricks the games into thinking they are running on Windows and the libraries that must map Windows functionality to Mac OS X functionality, etc.
Oh wait, still not done...
When my copy of Windows Ultimate arrives, it is possible I will shift back to Windows 7 at some point, but I might have to wait for improved calendar and email functionality, which is crippled in Windows and "just works GREAT" in OS X.
We shall see. There is always Linux!
First let me list why I like Windows 7:
1. MUCH improved Task Bar.
2. Less of a resource hog than Vista (more like XP).
3. Polish (it is very pretty).
4. I can play my favorite games, natively.
5. Improved preferences and UAC controls.
6. Some really useful development tools are Windows-only.
7. Explorer favorites can be renamed. **
8. Improved searching.
Now what I do NOT like about Mac OS X:
1. The dock is hacked from NEXTSTEP.
2. Cannot rename items in the places section without renaming the original. **
Now onto a comparison of the features I prefer in Mac OS X over Windows and some explanations of what I do not like in Mac OS X.
I am a fan of older and alternative operating systems. There have been many that SHOULD still be alive today but are not because of competition with Microsoft and Apple. One of those is the grandparent of Mac OS X: NEXTSTEP. Mac OS X is an amalgam of Mac OS and NEXTSTEP - mostly NEXTSTEP under the hood, but with the UI of Mac OS fused into the front end.
Whenever two separate paradigms are fused into one there are going to be problems. One of the problems is the Dock. The Dock in NEXTSTEP made complete sense in the context of the NEXTSTEP UI. It was almost genius. But fusing the Dock into the Mac OS UI makes little sense, they come from different parents, they have differing pedigrees and really are not meant to be together. That being said, the Dock is STILL useful and I appreciate having it as an application switcher.
Another problem is that it took many releases to make the NEXTSTEP equivalent of Finder work [spatially] like the Mac OS Finder. It still does not behave 100% like the old Finder, but Apple has improved it over the years.
The other thing that bothers me about the Finder is that if you rename an item in the "Places" section, it renames the original. OUCH. This should be a "soft link" and you should be able to call it whatever you want. If you have an application or folder with a LONG name and want to abbreviate it, you should be able to do that in Places.
But what I DO like like about Finder is that it incorporates 2 features of the NEXTSTEP equivalent [the WorkSpace Manager] that I cannot live without: Column Mode and breadcrumbs. Column mode is simply (for me) the BEST way to browse files if you no longer have the true Finder spatial mode. Open a windows and zip back and forth through level after level of folders... it is great. And with that, you can have a breadcrumb trail telling you where you are and enabling you to jump back along the path at any position. In fairness, the breadcrumb of Finder is also crippled. It was a MAJOR part of the NEXTSTEP interface and had prominence, you could not miss it. Now it is relegated to a small strip of real estate at the bottom of the window.
Another inherited aspect of NEXTSTEP is the command line interface. Yes, OS X is more or less POSIX compliant and has a SH or BASH interface. This is far different from Mac OS. Mac OS was 100% UI. NEXTSTEP and Mac OS X are UIs layered on top of an entire, functional operating system that has a command line interface. And I love it. I love getting down into the nitty gritty, modifying things at the Terminal level. Brings me back to the "good old days" of VMS and other mainframe operating systems (time shares to some).
Finally, for whatever reason, OS X just feels like everything works well together. Windows can have a disjointed feel to it, flipping from application to application... in OS X (while not perfect) applications feel like they are implemented from a parent class of objects and they all bear familial resemblances.
Oops! One last nitpick. Games STILL stink on OS X. The latest trend for game producers is to create Mac OS X versions as well as PC versions... but this is a lie. In reality the developers are simply wrapping their games in CIDER... a WINE derivative that enables Windows applications to run on Mac OS X (or Linux). This is really not cool in my book, on the other hand you take what you can get, right? But performance is always worse on OS X than playing the game in Windows because of this layer that tricks the games into thinking they are running on Windows and the libraries that must map Windows functionality to Mac OS X functionality, etc.
Oh wait, still not done...
When my copy of Windows Ultimate arrives, it is possible I will shift back to Windows 7 at some point, but I might have to wait for improved calendar and email functionality, which is crippled in Windows and "just works GREAT" in OS X.
We shall see. There is always Linux!
Thursday, October 8, 2009
The world is passing me by...
I feel old. I've been away for a little over a week and it seems as though my kids have grown up and the world has moved on without me.
Not true, of course. But I swear Anabelle literally grew older by a year just on her birthday. Isaac has always enjoyed gobbling information, but now he is taking it a step farther by taking French and Japanese (culture and language) after school. Voluntarily. He also still loves the Boy Scouts.
My wife has become an information junkie of sorts herself. She totes her iPhone around and seems to be "plugged into" the universe around her now. Strange.
Work has been fine for me. More or less completed the tasks allocated to me for a project at work and am now waiting for more to do.
Per my last blog: I am back to Windows 7 full time. It just makes more sense for work, but I miss the more posix-like environment provided by Mac OS X. I guess I am always searching for that OS that will replace BeOS.
It was nice to visit my mother in Malden, and to see my co-workers once again, but it is also nice to be home with my family.
Not true, of course. But I swear Anabelle literally grew older by a year just on her birthday. Isaac has always enjoyed gobbling information, but now he is taking it a step farther by taking French and Japanese (culture and language) after school. Voluntarily. He also still loves the Boy Scouts.
My wife has become an information junkie of sorts herself. She totes her iPhone around and seems to be "plugged into" the universe around her now. Strange.
Work has been fine for me. More or less completed the tasks allocated to me for a project at work and am now waiting for more to do.
Per my last blog: I am back to Windows 7 full time. It just makes more sense for work, but I miss the more posix-like environment provided by Mac OS X. I guess I am always searching for that OS that will replace BeOS.
It was nice to visit my mother in Malden, and to see my co-workers once again, but it is also nice to be home with my family.
Wednesday, September 23, 2009
Ubuntu To Windows 7 to Mac OS X and back again.
For about a year now, I've gone on an excursion of operating systems. For awhile I ran Ubuntu (which I really like - and it keeps getting better) until the first public beta of Windows 7 was released. Windows 7 was so nice I ran it for 6 months on two different systems before I installed Mac OS X on my "Hackintosh."
I ran OS X for about two months before the network issues drove me insane, and I switched back to Windows 7 (our LAN at work is all Microsoft driven).
When Snow Leopard arrived, I instantly purchased a family pack and installed it on our Macs but continued to run Win 7 until it seemed like there was an easy way of getting Snow Leopard to run on my PC like I had Leopard running.
Enter LifeHacker. http://lifehacker.com/5360150/install-snow-leopard-on-your-hackintosh-pc-no-hacking-required
Preparing and installing Snow Leopard on my PC was INSANELY EASY! Not only was it easy, but now without a dongle or boot device of any kind my PC boots right into Mac OS X 10.6.1 without so much as a hiccup, from a cold start. It's an awesome sight. You might wonder whether or not the network issues remain: they might. Not sure yet. I've installed a new Cisco client which has so far performed well. Now if only SMB could somehow be replaced.
I do have Windows 7 Ultimate on order. If Snow Leopard suffers from the same malaise as Leopard did, I'll simply install Windows 7 (well, actually I will anyway) on my spare Terabyte drive and have the option of dual booting. I might even simply wipe Mac OS X and go with Ubuntu 9.10. Who knows what the future holds!
Go Cards!
I ran OS X for about two months before the network issues drove me insane, and I switched back to Windows 7 (our LAN at work is all Microsoft driven).
When Snow Leopard arrived, I instantly purchased a family pack and installed it on our Macs but continued to run Win 7 until it seemed like there was an easy way of getting Snow Leopard to run on my PC like I had Leopard running.
Enter LifeHacker. http://lifehacker.com/5360150/install-snow-leopard-on-your-hackintosh-pc-no-hacking-required
Preparing and installing Snow Leopard on my PC was INSANELY EASY! Not only was it easy, but now without a dongle or boot device of any kind my PC boots right into Mac OS X 10.6.1 without so much as a hiccup, from a cold start. It's an awesome sight. You might wonder whether or not the network issues remain: they might. Not sure yet. I've installed a new Cisco client which has so far performed well. Now if only SMB could somehow be replaced.
I do have Windows 7 Ultimate on order. If Snow Leopard suffers from the same malaise as Leopard did, I'll simply install Windows 7 (well, actually I will anyway) on my spare Terabyte drive and have the option of dual booting. I might even simply wipe Mac OS X and go with Ubuntu 9.10. Who knows what the future holds!
Go Cards!
Monday, August 31, 2009
Back to the Future
Sometimes I just want to go back to the "good old days" when I coded in languages like assembly language, cobol, pascal and fortran. Things seemed simpler then. Everyone lived by the Software Development Life-cycle and analysts were real people who did real analysis before a project began. People wrote libraries of reusable code that were PLANNED to be reused - and were, for years on end.
Now every year some new and improved technology comes out and we HAVE to incorporate it into our code, at the cost of rewriting that library we wrote last year that was meant to be stable and reusable for ages... More importantly, I didn't have to listen to people constantly championing things like agile programming and exhorting everyone to work on their story boards.
It amazes me that someone took the process of development that occurs when one is under pressure to get something done in far less time than was proposed, formalized it (with phrases like "less documentation, more code that works") and presented it as the latest way to get things done. Even better, it is being widely adopted.
Don't mind me.
Now every year some new and improved technology comes out and we HAVE to incorporate it into our code, at the cost of rewriting that library we wrote last year that was meant to be stable and reusable for ages... More importantly, I didn't have to listen to people constantly championing things like agile programming and exhorting everyone to work on their story boards.
It amazes me that someone took the process of development that occurs when one is under pressure to get something done in far less time than was proposed, formalized it (with phrases like "less documentation, more code that works") and presented it as the latest way to get things done. Even better, it is being widely adopted.
Don't mind me.
Friday, August 21, 2009
Flopped
I keep flip-flopping regarding the Operating System I run on my PC.
I have OS preferences, but I am not necessarily loyal to any one. I am a bit of an OS enthusiast having used and worked on a variety of operating systems ranging from VMS on a mainframe to the BeOS, OS/2, Mac OS X and of course Windows. I can generally find something to like about any operating system. I do actually have a favorite, but my favorite is obsolete and does not work well with modern hardware (altho' there is an effort underway to faithfully reproduce this operating system as an open source clone. It will enter an alpha state in 2 weeks or so if all goes well).
For the past six years my primary operating system has been OS X, on a mac. I like the hardware Apple creates. It is a form of art. The operating system is gorgeous as well and while Microsoft stood still with XP and then rushed Vista out the door before it was ready, OS X improved in many ways. There is, however, one way that Windows out performs OS X.
The company I work for loads MS products onto every desktop. They are still actually running XP, but even the networking components (VPN, domains, etc.) are all Microsoft Windows-related. The problem this poses is that for some reason there is NO RELIABLE way to tunnel into our network from OS X. Oh there are ways, OS X has built-in VPN capability, and there are products one can purchase as well. I find that no matter how I connect to our company's network from OS X, it falters, sputters, and disconnects at random. Not surprisingly, Windows, in particular Windows 7 which I am now using, does not suffer this problem.
I can happily tunnel into our company's network from Windows 7 and leave the connection active for days at a time. I also get better download times, and file shares are more responsive in general. I've asked our network people to look into it but they just say "OS X is not supported. You are on your own." Ah well.
I refuse to call this a failure on the part of OS X, more a prejudice toward to how Windows manages its network connections when tunneling into a Microsoft Windows network.
One other benefit to running Windows 7 again: games. :)
I have OS preferences, but I am not necessarily loyal to any one. I am a bit of an OS enthusiast having used and worked on a variety of operating systems ranging from VMS on a mainframe to the BeOS, OS/2, Mac OS X and of course Windows. I can generally find something to like about any operating system. I do actually have a favorite, but my favorite is obsolete and does not work well with modern hardware (altho' there is an effort underway to faithfully reproduce this operating system as an open source clone. It will enter an alpha state in 2 weeks or so if all goes well).
For the past six years my primary operating system has been OS X, on a mac. I like the hardware Apple creates. It is a form of art. The operating system is gorgeous as well and while Microsoft stood still with XP and then rushed Vista out the door before it was ready, OS X improved in many ways. There is, however, one way that Windows out performs OS X.
The company I work for loads MS products onto every desktop. They are still actually running XP, but even the networking components (VPN, domains, etc.) are all Microsoft Windows-related. The problem this poses is that for some reason there is NO RELIABLE way to tunnel into our network from OS X. Oh there are ways, OS X has built-in VPN capability, and there are products one can purchase as well. I find that no matter how I connect to our company's network from OS X, it falters, sputters, and disconnects at random. Not surprisingly, Windows, in particular Windows 7 which I am now using, does not suffer this problem.
I can happily tunnel into our company's network from Windows 7 and leave the connection active for days at a time. I also get better download times, and file shares are more responsive in general. I've asked our network people to look into it but they just say "OS X is not supported. You are on your own." Ah well.
I refuse to call this a failure on the part of OS X, more a prejudice toward to how Windows manages its network connections when tunneling into a Microsoft Windows network.
One other benefit to running Windows 7 again: games. :)
Subscribe to:
Posts (Atom)