Saturday, July 18, 2009

I Like Windows 7

I have been playing around with the Release Client 1 of Windows 7 for a while and I think Microsoft has done a pretty good job. Almost everything about it seems very well polished and usable. I believe that 7:Vista::XP:ME. While everything thought ME was the biggest piece of crap ever, when XP came out people quickly jumped on the bandwagon. I believe the same will happen with 7.
Some of the things I will highlight are also in Vista, but I'm going to show some of the things I think Microsoft has done right.

  1. The "Start" menu.
    This is very much like KDE's menu. I don't need to spend time finding where stuff is. I simply type in the name of the application I want to use and it pulls it up in the menu for me. If I want to play my new game, "Call of Duty: World at War", I simply type in any of those words and it shows up in the menu. I no longer have to click Start->Programs->Call of Duty->Game, or whatever. I just type War and I have it. The layout of the item on the right is very helpful as well.
    I was never a fan of XP's default menu with the Control Panel, My Computer and all the other items in there because it just made for a lot of clutter. Visually, the default Start Menu in XP was very confusing. The new menu is well organized and easy on the eyes for locating what I want.
    As I hover over the items on the right, the picture of me changes to a relevant picture of the item I am hovering over. It has a nice fade effect that works out very well.
    If you notice to the right of Sticky Notes there is an arrow. If I click on that arrow I get a list of recently opened documents with that application. So if I had Word installed, it would show Word, and I could click on that arrow to get a list of recently opened Word documents. If I click on the word document then it opens it up.
    Unfortunately, if you delete a file, it still shows it as a recently opened file, which I think will be a spot of user confusion.
  2. The Control Panel.

  3. I have always like how OSX is so easy to configure. Everything is laid out in a very logical fashion that makes finding the setting you want to modify easy to find. Windows and Ubuntu have always made simple tasks very confusing to find. I think that this new Control Panel simplifies everything. I have found that anything I want to change was easy to do by drilling down through each logical item in the control panel. Again, Microsoft has hit the nail on the head with this one.
  4. Boot time and time to go from login to desktop.
  5. I haven't timed it yet, but to go from BIOS to login takes about thirty seconds. To go from login to usable desktop is about five seconds. I know once computer manufacturers start loading up all their crap on people's machines before they buy them, this time will go up considerably, but Windows has done their job at making a very clean bootup.
  6. Explorer.

  7. There are two improvement here. In the location bar at the top, you can simply go back down the folder tree by clicking on any of the previous folders listed. Ubuntu has this, but I always turn it off. But Windows is doing domething different here. If I click in the location bar I can still type a location manually. This probably doesn't help the majority of people out there. However, I am constantly typing full locations in the location bar, because for me I can do that faster than I can click on a bunch of folders. In Ubuntu your option is the click view or the type view. I like the trade-off between the two views that are present in 7.
    The next improvement is the search functionality. In the top-right I can start typing a search, and it will give me the results for the folder, and subfolders that I am currently in. This makes finding the exact file I am looking for very easy.
  8. Taskbar pins.

  9. By default IE, Explorer and Media Player are pinned down in the bottom-left, though they can be removed and other programs added. If I have multiple folders opened, I can click on the pin and it gives me a preview of each open folder. If I hover over one of those previews, the desktop goes black and the full image of the folder is shown to me. If I hover over another folder then that folder is shown to me. If I click on one, then it becomes the active window. This makes finding the right folder very easy. The same is true with IE and having multiple web-pages open.
  10. Default user.
  11. For a default install of Windows XP, the user setup at install time is the administrator. When the computer boots up the default behavior is that anyone can log in as that administrator without a password. This is horrible security, and I think it is what causes so many people to get infected so very easily. That was Microsoft trying to be user-friendly at the cost of security, which caused more user experience issues than it solved. Now the default account has a password setup at install time, and nobody can log in as that user without the password. I hope this results in more people setting up multiple users on the machine.
    When creating a new user it defaults to setting those users as "user" and not "administrator" which should help things.
  12. Updates.

  13. I know this was added in Vista, but I'm still thrilled about it. Updating Windows is no longer tied to Internet Explorer. Updates are done through the control panel. I still have problems with how updates are handled beyond that, which I list below.
The following are my gripes.
  1. UAC.
  2. UAC is still dumb. It is bad security practice. All it will do is teach people to click Yes or Accept more because they will be so tired of trying to read every dialog box. This is Microsoft again refusing to adept sane security because they don't want to compromise usability, even though it is going to get users infected and cause more problems than it solves. One example of how stupid this is, I was trying to install a program and it kept giving me errors all over the place during the install. Once I cancelled I got a box that reading something to the effect of, "It appears you tried to install a program that needs Administrative right. Would you like to rerun this program with Administrative right?" Getting errors all over the place, and then given the option to do it right is not good. Windows should have recognized the need for administrative rights the first time it tried to access a restricted area and prompted me then. And it should have asked for an admin password to ensure that the user had legitimate rights to do that.
  3. FTP.
  4. FTP access from within Explorer is still broken. I have been using 7 while working on some class projects and I couldn't get to me FTP site in Explorer. I could from the command line version of FTP, which is what I ended up doing.
  5. SSH.
    The inability to SSH across computers is another security issue. SSH is kind of like FTP (but certainly not exactly) but it is encrypted, so security is maintained. In the Unix world (which includes OSX) SSH is very powerful, and makes many tasks over the network very easy and secure.
  6. Updates.
  7. Updates still make you reboot constantly. It has taken me as many as four reboots to get all of the updates I needed installed. Why can't it install all the updates the first time, and only make me reboot for very low-level system updates like kernel updates? When I update Ubuntu I do it one time, and I very rarely need to reboot. In fact, I almost never need to reboot.
    If you don't reboot in Windows after an update then it will keep nagging you. I griped about there here. I don't understand why Microsoft has such a hard time getting it right. People have been complaining about this since Windows 95, and back then Apple had already made this a non-issue for their OS.
    Microsoft should also find a way that users can point to 3rd party update sites, so that users can keep their other software up-to-date using the built-in updating system. So if I have product A, I can point the OS to their updating site and I can get updates to product A with my regular Windows updates.

So there you have it. I still find Ubuntu to be a vastly superior operating system in so many aspects. There are still many questions about Windows 7, such as how well it will run on MIDs, Netbooks, and other lower-end hardware, which we will see pan out after it releases this October.

Wednesday, July 15, 2009

We've Always Done it That Way Vs. Everyone Else is Doing it That Way

At work we have scratched SCCS and are moving to subversion. For those not in the know, this is basically a way to keep our source code somewhere safe. They basically revision control software that allow you to go back in time and view previous versions of your software.

SCCS was the very first source code revision control system ever built, back in 1972 and is considered obsolete within the industry. Subversion and GIT are the two leading source code revision control systems today, and for a variety of reasons we decided to go with subversion.

As just about everything else in technology, thing have changed rather significantly over the last 37 years. Today's systems allow you to keep track of different version of your software as well as create all sorts of different branches of your software.

With subversion I can come in to work, grab the latest copy out of "trunk" and start working on it. When I am done I put my code back into trunk and go home. If someone comes in after me and starts working on the project then they'll have the work I did, and after they leave and I come back in I get all the work they did. If someone broke something along the way it is easy to go back and pull out an earlier version. It will even tell you the different between the two files so you can see what changes caused the problems.

It is also common, during a project, to try a new direction for accomplishing a task, only to realize that it won't work. Without a good revision control system you have to make a copy somewhere on your computer and then play with that. With subversion you can stay in trunk, and if you decide against where you where headed, simply roll back. If the changes are really big you can create a new branch and have the entire history of your new direction and then decided if later you want to merge those changes back into your trunk or not. The other great part is that it will look at the difference between trunk and your branched version and automatically put only your changes in trunk.

At some point in your development you will be ready for your users to start testing and your product will go in beta. At this point you branch your code off into a beta branch. Once testing is complete you create another branch. This will usually be given a version number, such as 1.0.

As your released product goes out, it is inevitable that your users will find problems. So at that point you fix them in trunk, push them out to beta and ask your users to test those changes, and finally make a new release, probably called 1.1.

In SCCS, at least how my coworkers have been using it, you have one version, and that is your release version. When you want to make changes you get the code out of SCCS and put it on your desktop. When you are ready for testing you give the program to your customers, and once they have accepted that your changes fix their problem, you then put your modified version back into SCCS. So SCCS keeps your production version and nothing else.

So in SCCS you take the release version and work from there. In subversion you take the trunk (i.e. dev) version and work from there.

SCCS was a big advancement when it came out. Today subversion gives us a lot more power and a sane path between development, testing, and release, and a way to track it all.

We have already had problems where we where developing applications outside of our source control and unforeseen problems wiped hours, or even days and weeks of work, which we couldn't recover because the development code only existed on a hard drive somewhere.

We have also ran into issues where we had a need to dip back into old code we weren't using anymore to see how we did things in days of yonder.

So you would think that with our move to subversion our team would be excited about the ability to merge and branch and keep track of our whole development cycle, given the issues we've seen in the past.

Our complete codebase is in the process of being rewritten, and heading off this new direction is someone who, until recently, had been working outside our group. His name is Nelson. He came in to our group once he had the base of the system mostly built and ready for our input. He is just a little older than myself and is more technologically in line with my way of thinking than that my other coworkers.

When it came down to have a meeting about how we are going to use subversion Nelson started to lay out how to use it and everyone else just about flipped. They had never seen anything like it before and it was way outside of what they know and love. They immediately rejected it and started drawing up plans for how we can use subversion like SCCS. Their solution is basically to put the released code into trunk and we work out of there.

Nelson and I argued until we where both blue in the face. Mike kept calling out, "This is the way we've always done it." Eventually I called him out on it, pointing out that that is usually a key indicator that it is time to change.

Despite my explanation above, I don't fully understand how to use subversion. Because I am a junkie for open source development, I read blogs from lots of developers that use subversion for their products, and I occasionally pull code from their trunk and compile it. So I've used it a little and am only vaguely familiar with the details on using. This is one of the reasons I was so excited about using it, until I found out that just wasn't what everyone else had in mind.

As I listened to Nelson explain it in our first meeting I started understanding what people where talking about in their software development blogs. So I was doing a very poor job articulating its power while trying to get everyone else to see the light. I started pointing out that everyone else uses subversion this way. Nobody called me out on it, but I realised that "everyone else does it that way" is just about as poor an excuse as "we've always done it that way."

Eventually Nelson decided that he would no longer discuss the issue as it "makes my blood boil." However, occasionally he can't help but to get going and pour his heart out.

Talking to my brother, and a few other people who work in the software industry, my fight is not new. It appears that the older generation of programmers just don't get it. Here I am, with hardly a year under my belt telling a group of people with 10+ years of experience that they are all wrong and need to listen to me. Not just telling them, but having very heated debates about why I think they are wrong.

So as of yesterday our code is loaded up into a subversion repository with our "release" code sitting in "trunk." I don't know how to articulate in a non-condescending way how absolutely asinine this is. I even made a plea to, if nothing else, don't call it trunk. Just call it release or production. I know it is just an issue of semantics, but I don't report to type with my toes, so we shouldn't report our production code to be trunk.

Another part that bothers about this is my career growth. If I go to interview for a job, and I am asked about revision control I want to sound competent. I'd like to be able to explain in great detail how it all works. I don't want to sound like I either came from cave man days of programming, or that I think I should be wearing my cap on my captains quarters.

Fortunately there is a light off in the distance. As I mentioned earlier Nelson has been building the basis for our new system. It will be a fazed complete rewrite. He has already started putting his code in a completely different subversion repository using the proper method of trunk, beta, releases and branches. As our old system is slowly merged into the new system, it will all have to go in the proper way using the proper methods, and eventually this nonsense my coworkers have concocted will go away, and I will ultimately be the victor.

I am also positioning myself so that my primary work will be doing the interface designs in the new system, so hopefully the majority of my work will not reside in the old system anyhow.

Tuesday, July 14, 2009

How Not To Do Software Updates

Tell your users to exit the program and then browse to your website. At your website provide a list of links to others company's websites that won't allow you to download the update until you register with their site. When the customer goes to install the update inform them that they actually can't install this update and they must go back through the same process to download all the earlier updates, starting with the first one, before they can install the latest update. This is what Call of Duty, World at War wants you to do.

Thursday, July 9, 2009

The Google OS

So for a couple weeks I've been brewing in my head a blog post about how what Linux really needs is for Google to come in and work it's magic, but that will never happen because it doesn't fit into Google's business model. So I've been thinking about this for a while and was hoping to post something real soon when just yesterday Google announced they are gearing up to do what I've been working on posting they will never do, which is build their own Linux-based operating system.

From http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html

So today, we're announcing a new project that's a natural extension of Google Chrome — the Google Chrome Operating System. It's our attempt to re-think what operating systems should be.

That's right, Google is going to have it's own OS. For now it is just aimed at netbooks, and maybe that is as far as it will go. However, the increased influx of Linux development Google will be putting behind Linux should increase as it works to ensure that the new OS works as great as every other Google product.

I am curious to see how this all plays out. I have read some say that this is just another Linux distribution, but that comes from a short-sighted view of what Linux is. It is not an operating system, it is a kernel which an operating system can be built on top of. Nobody pays any attention when they use their TIVO, gPhone, router, or other Linux powered device that they are using Linux. They are simply paying attention to the fact that they are using their device, which is exactly how a device should be.

Google is probably the only company that has the money, power, clout, commitment, and proper understanding of how to utilize open source effectively to make this work. Canonical has made a really good stab at it, but they simply are no Google.

Thursday, July 2, 2009

The Bus/Free Riding Culture

As a child I spent a lot of time at my grandparents house in Pensacola. They liked to travel, and when they traveled camping was more-or-less their only means of resting. My grandfather owned a 70s model Volkswagen Bus with all the camping accessories and we all loved it.

I had always wanted one, but they have that dirty hippie history behind them, and people already seem to project that idea on me as it is.

So while looking around on the Internet at a vehicle to replace my Oldsmobile Silhouette I came across a 1980 VW Vanagon and I ended up purchasing it.

While I get plenty of weird stares and occasional hoops from other motorists and pedestrian, I have found that by owning a bus I am also now part of a larger community. This community includes previous bus owners, bus admirers, and what I have termed member of the "free riding culture" which includes bikers and others who ride the open road as sport.

I find people approaching me while I pump gas, as I enter and leave stores, and at red lights. They usually want to ask my what year and then give me a brief synopsis of their days as a bus owner. Bikers and other bus owners either wave or point in my direction at the sky as I pass them on the road.

I had been looking for a good riding hat for the bus and found one last week at Sports Authority while looking for a bike helmet. It was in the golf clothes section and it is perfect. It is similar to a panama. At the Saint Marks river Athena found a white feather so I stuck it in and now I ride around with a feathered cap with maximum style.

Monday, June 29, 2009

Gnome 3 Mockup


The above video demonstrates some new ideas for the Gnome 3 desktop. I am quite excited to see such goodness hit Linux

Tuesday, June 23, 2009

chromium extensions

Once I'm done with this semester, aside from some work-related learning, my personal learning will revolve around making Chromium extensions. There is a preliminary guide at http://dev.chromium.org/developers/design-documents/extensions.

For those who don't know Chromium is a new open-source browser developed heavily by Google. Chrome is Google's rebranded version of Chromium that Google actively promotes and distributes.

I now use Chrome about 50/50 with Firefox. It is much faster and stable than Firefox. One of my favorite features is that one tab can crash, and it doesn't bring down the whole browser. That one tab closes, and the rest of the browser keeps going. Also, if I close a tab all of the resources it was using are gone, unlike in Firefox where you can close all of your tabs and still have a large memory footprint from the tabs that you closed.

At work we have an application that crashes quite frequently. It is especially bad about crashing when you have it open twice in the same browser. Now that I run it in Chrome it crashes less, and when it does crash it doesn't disrupt every tab I have open.

The largest setback to Chromium/Chrome is the lack of extensions. Extension support is in development, but has not made it to the release version of Chromium yet. I am very spoiled with Firefox's AdBlock+ and Customize Google extensions. I used to not see any ads. Now that I'm using Chrome a lot I see them again.

Another setback is that their Linux version is still in heavy development. In Linux it is just Chromium.

It actually runs very well in Linux for browsing, but it doesn't yet support addons (no Flash, Java, etc.) It also doesn't have any preferences yet. Aside from that viewing pages is fast and reliable. With my hopes to learn extension development comes another problem. Even though extension support is in the development builds for Windows, it is not in the development builds for Linux. This means I will need to use my Windows virtual machine to learn development. Hopefully in four weeks when school is over this will have changed.

One of my favorite things about extensions in Chromium is that they are written in HTML, Javascript and CSS. The work learning that I mentioned above is the need to become much more familiar with using these three technologies as I plan on using them full time for my job. I am hoping to become an interface developer for our web applications. So this ties in real nice with Chromium extension development.

One great thing about Chromium on Linux is that the nightly trunk builds have been setup in a repository on Launchpad. So I simply put added the following to my software sources:
http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main
And then run the following from a console:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xfbef0d696de1c72ba5a835fe5a9bf3bb4e5e17b5
sudo aptitude update
sudo aptitude install chromium-browser chromium-browser-dbg


Now every day I get the latest version of Chromium for Linux. I have slowly watched it grow over time. It is exciting to slowly watch the features get implemented.

Tuesday, June 9, 2009

Biking to work


As I had mentioned previously, for our anniversary Kim and I purchased brand new road bikes. The timing was awesome because summer had just started. This meant that I no longer had to take Aurora to school or pick anyone up after work. I had been wanting to ride my bike to work for a very long time. The first six miles to work there is a bike trail that separates me from traffic. The next three miles is a road with a very narrow bike line that shares a road with vehicle going around 55mph, and at the time I leave for work there is a good amount of traffic.

The city had been extending that stretch of road with a completely new lane that, when done, will allow for three lanes of traffic going each direction. This new lane has been completed enough that for those three miles I can now ride on that currently unused road. Another bonus is that this new constructions includes a bike lane that is separated from traffic.

So I now have a new bike, no obligations to pick anyone up or drop them off, and two lanes of road just for me.

The Sunday after our anniversary I took my new bike and road it all the way to my job and back. That is a full twenty mile ride. The ride was good and the next day I rode my bike to work and bike.

Riding to work has proven to be a great way to start my day. I feel great when I get there. I wear shorts and a shirt and have a small bag with clothes and a hair brush for when I get there.

The first week was really great. The morning where nice and cool and the afternoons weren't so bad. It also helps that the first six miles on the bike trail is a North-South ride with trees so I am always in the shade for that stretch. The next week the heat cranked up. I lucked out with some overcast, but the ride home is still pretty hot. It is not unbearable, and I still quite enjoy it, but when temperatures are pushing towards a hundred, it is just plain hot no matter how you slice it.

I have already put in almost 200 miles on my bike, and I plan on keeping this up all summer. I don't get to ride every day because Kim goes to the YMCA in the morning and I cut into her available time, so we switch days I ride in a way that gives us both roughly the same amount of workout each week.

Between these rides, and our new commitment to not consuming empty-calorie beverages, I should be in pretty good shape by the time the sumer is over.

Above is a static image of my ride, and below is a Google Map of my ride. Google maps calculates my trip to be 9.9 miles.


View Larger Map

Our sixth anniversary

After missing our last two anniversaries, Kim and I dedicated ourselves to doing something this year. We where married on June 6, 2003.

I had originally planned a camping trip on that date, and we where all set to do it when Kim realized that this was our anniversary weekend. I'm not the kind of person to forget our wedding date, so I was a little embarrassed at this, but it took her about a week to notice it too, so not all is lost.

So I pushed the camping trip back a week, and planned for Kim and I to take the VW camper down to the state park St. George Island and camp there. By the time I had a sitter for the kids all of the beach parking in NW Florida was reserved for many weeks to come.

Our backup plan was to visit Saint Augustine. We have been talking about just the two of us making a trip that way for years, and this would be a great opportunity to do it. That wasn't possible because my mom wasn't going to make it to our house to watch the girls until noon on Saturday and she needed us back a little after noon on Sunday. Driving out there and back would have been hectic and left very little time for us to do anything. So then we where stuck.

Friday night I took the three girls down to the Saint Marks River to play and on the way back noticed a bed and breakfast I had never noticed before. Kim has always wanted to stay at a bed and breakfast, and even though it was only ten miles from our house, it still had the promise of being a good time.

I pitched the idea to Kim and she was all for it. The next morning Kim wanted to get a lot of cleaning done. I was supposed to get the kids out of the house so Kim could focus on cleaning, but after replacing the V-belt on the VW there really wasn't much time left. My plan was to take them up to the Great Bicycle Shop and get Kim and I new bikes. I have a mountain bike that needs a major tune up, and Kim has no bicycle. This was going to be a surprise gift.

So instead we all pitched in to help, and to our surprise the two big girls where great helps. Usually they are pretty good compared to many kids, but this time there was absolutely no fussing or complaining, only lots of good hard work.

After my mom showed up we laid Arianna down for a nap and headed south. At the bed and breakfast we ran the bell at the front, which calls the manager's phone, but nobody picked up. We left a message with our cell phone number and then Kim came up with this great idea. She wanted to go buy bicycles. Perfect! We headed up to the Great Bicycle Shop and picked out two road bikes and gave up all of our spending money for about two months.

As soon as we pulled out Sweet Magnolia's called us up. They had plenty of room and the manager said she would meet us up there.

There was only one other guest, two girls, who seemed to be a couple. They where on the second floor, so we picked a room on the bottom floor.

We talked to the manager for a long time. She was about our age, and Kim and her both knew a girl named Mandy. She is also in the Roller Girl crowd, of which we know by proxy a few of the people.

Armed with our new bikes we rode up to a nice seafood restaurant up the road and had a nice dinner. We where the only people there until another couple showed up towards the end.

The restaurant was in this awkward sub division. It had been built on a swamp, and each developed plot of land had been raised up from the swamp with brought in sand. Probably less than 10% of it had been developed and almost everything was for sale. I think it had been started during the housing boom, and now it was just a hole for real estate investors who where now probably having a hard time paying two mortgages. Each plot of land with a for sale sign was from a different real estate group, or read "For Sale By Owner." We rode up and down each of the roads and then down to the river side next to the San Marcos de Apalache State Park and finally back to then Inn.

From the Inn we could hear the live band playing at the Riverside Cafe. That got me jonesin' for some oysters so we headed up there and got two dozen oysters.

The next morning we ate our breakfast, had a nice chat with the couple from upstairs, and then took our bikes back to San Marcos de Apalache state park and walked around. We talked to the ranger on duty and watched the short video showcasing the history of the park. It dates back to the first settlers in Florida and was torn down and built back up for different purposes through history.

Back home we took our kids back over. I rode my new bike up to my job and back, which I will write about in my next post. Afterwards I tried to get some homework done but fell asleep in the middle of it.

Aurora and Kim's blog

Last summer I had Aurora start a blog so that she would keep writing through the summer. Just last week Kim started hers and Aurora started blogging again now that school is out.


Aurora's blog is at http://aurorabaucum.blogspot.com/ and Kim's is at http://k1newman.blogspot.com/. Aurora's latest entry includes a really nice poem.


I hope that this time next year Athena is writing good enough to start one as well.