Apple, Computers, Hardware, Software, Thoughts, Windows

What Ever Happened to Multi-tasking?

fix-computerToday we take multi-tasking for granted. Right now, as you read this you probably have a browser window open, perhaps email, instant messenger, your music player, perhaps anti-virus software running. If you had to run one, and only one application at a time I think we can agree that it would significantly affect your productivity. I have a difficult time even imagining computing without the ability to multi-task. However, the importance of this core computing concept seems to be called into question with new appliances.

When you look at a computer, it is very different from an appliance, such as your game console, your DVR, or your smartphone. One could argue that each type of electronic device has a purpose, and constraints that interfere with achieving this purpose. In the case of a video game console, the purpose is entertainment. A console’s constraints are the need to be consistent, and offer high performance with limited hardware. With a DVR, its purpose is to manage scheduled shows. A DVR’s constraints are optimal playback quality, and near real-time schedulers. With a smartphone, its purpose is to keep people connected while on the go. A phone’s constraints are probably the most severe with extremely limited hardware, coupled with short battery life.

In devices where performance is a key factor, such as video game consoles, and DVRs, I believe you are likely to see less control given to a user. This is to keep the running environment “pristine” and prevent non-core applications from adversely robbing the limited hardware of CPU cycles, and resources. This is the dreaded scenario of any computing device – some process (that the user may not even be aware of) is affecting the performance of the entire device.

To my knowledge, the iPhone was the first smartphone that really encouraged the installation of applications onto the device by the user. This would mean that since users have choice to modify the software running on the phone, the performance of these applications running  could affect the performance of the entire device. In order to work with the extreme constraints of the device, Apple made the decision to remove multi-tasking from their OS. This has been a controversial decision, however one that has not affected the success of this device.

Now other appliances are following the paradigm of no multi-tasking. Microsoft recently announced the Windows Phone 7 OS, and it is rumored to not have multi-tasking support. While this rumor may be unfounded, the Apple iPad device also offers no multi-tasking. The success of this device, and the market that this device will fill is yet to be determined, but the inroads to daily computing without multi-tasking can be seen. A tablet device has a purpose, and constraints parallel to that of a smartphone.

Video game consoles have never offered multitasking until recently, and even now it is very limited. Coupled with smartphones, and tablet devices, the perspective of multi-tasking on the computer seems to be the exception, and not the norm. It can almost be argued that no multi-tasking is a feature that boosts the performance of a device.

Is this how the world will fix the “slow device” problem? Hardware and batteries are constantly improving, but we never seem to get ahead of the curve, since applications become more complex at roughly the same rate. “What Intel giveth, Microsoft taketh away.” Eliminating multi-tasking sure gives devices an unconventional speed boost, but is it seems like a step backwards? Can the human mind truly multi-task anyways?

One final note: it would seem to me that perhaps a solution lies in the UNIX solution of prioritizing process by “nicing” them.

What are your thoughts?

Advertisements
Hardware, Software, Thoughts, Windows

Windows 7 Upgrade Isn’t All Gravy

Windows 7 logoI decided to give the gift of Windows 7 for the holidays this year. My in-laws had the unfortunate luck of replacing their old desktop with Windows ME to a new computer from Dell with Windows Vista 32-bit Home Premium. It seems they have leapfrogged to the worst OS ever released from the previous worst OS ever released. The fact they kept Windows ME running for almost five years should deserve some kind of medal.

I am running the license-unencumbered Windows 7 beta on my wife’s machine, and I have been fairly pleased with the results. On this positive experience, I took the plunge, and bought the Windows 7 Professional 64-bit upgrade. Lets break this down for a moment. There are (at least) four editions of Windows 7:

.
  • Home Basic
  • Home Premium
  • Professional
  • Enterprise (formerly Business?)
  • Ultimate

The good old comparison page over at Microsoft indicates that each “step up” in version encompasses all the functionalities of the lesser versions, plus some more stuff. This is a lie.

While this may be true for features, the upgrade paths seem to have been determined with a dart board (or more likely greed). Looking at upgrade paths for Windows Vista only, we can see the following:

From Windows Vista (SP1, SP2) Upgrade to Windows 7
Business Professional, Enterprise, Ultimate
Enterprise Enterprise
Home Basic Home Basic, Home Premium, Ultimate
Home Premium Home Premium, Ultimate
Ultimate Ultimate

If you were like me, you may have sprung for the extras in the “Professional” edition, but stopped short of “Ultimate” since the features it offers over Professional are pretty lame. My in-laws machine is currently running Windows Vista Home Premium 32-bit edition, and you can see that by spending more on Professional then Home Premium, I have lost my ability to upgrade. Thats right, you pay more and get less.

This has led to some extravagant solutions. The easiest is to go buy the Windows 7 Ultimate Upgrade, but refunds on opened software are non-existent. Plus, I do not want to give any more money to a company that I feel has already cheated me. Another option is to use a utility to change which edition you have an upgrade disc for. Windows 7 ships with all editions on each disc, and this tool will let you change which one you have. Alternately, you can download a digital copy of a different edition for free.

This doesn’t affect the product key though. A Windows 7 Professional key will only activate the same edition.

To upgrade from Home Professional, I would have to acquire a Windows 7 Home Professional Upgrade disc using one of the methods above. I would then have to install Windows 7 Home Professional, and then use the the Windows Anytime Upgrade to do an in place upgrade from Windows 7 Home Professional to Windows 7 Professional. Then, I can use my Windows 7 Professional product key to activate my copy.

Navigate all that, and keep in mind to watch out for 32-bit and 64-bit since they are not cross-upgradeable, or interchangeable whatsoever. The RAM requirements are even different.

So much for Windows 7 being easy.

Computers, Linux, Open-source, Software, Windows

VirtualBox NAT Tunneling

At work, we have database that you cannot connect to without using 802.1x authentication, or VPN. That sucks for my Virtual Machines, where I can’t used Bridged networking because of the requirements. Instead, I setup my host machine to use 802.1x, and pass this into the Virtual Machine using NAT networking.

You can issue commands to do tunneling from host to guest, as outlined by various websites. I am just old fashioned I suppose, and don’t like to blindly fire commands. I want to see what is being changed. I dug around a discovered the following (Windows host):

C:Documents and Settings.VirtualBoxMachines.xml

Substitute in your username, and Virtual Machine name. If the VM name has a space, or special character, you can quote the name in double-quotes.

This is where commands from “VBoxManage” are saved. In the following example, I am substituting in VM for the name of the VM, and Name is an arbitrary name that you label for your mapping. You can do this as many times as needed, provided that the name is unique. For example, if you wanted to share SSH from your host, you may choose “ssh” as the name of the configuration. Additionally, the ports don’t have to match up in the guest and host. You can see the result of the following VBoxManage commands:

cd "c:Program FilesSunxVM VirtualBox" (Windows only)
VBoxManage setextradata <VM> "VBoxInternal/Devices/e1000/0/LUN#0/Config/<Name>/Protocol" TCP
VBoxManage setextradata <VM> "VBoxInternal/Devices/e1000/0/LUN#0/Config/<Name>/GuestPort" 22
VBoxManage setextradata <VM> "VBoxInternal/Devices/e1000/0/LUN#0/Config/<Name>/HostPort" 2222

Here:


  
    
      
      
      
    
  

Now you can go in and change these commands and see the results in the file. Note that changing the file directly doesn’t affect the machine until a restart of the guest VM. Note also, that the network adapter referenced here as “e1000” refers to the Intel network driver. Check and make sure these match.

If you make a mistake creating the command, you can delete the command by issuing “VBoxManage” “VM” “Setting” without issuing a value for the setting. This blank value removes the XML line from the configuration file.

Computers, Linux, Software, Thoughts, Windows

The Great Compromise

Its been a while since my last post. I got the crazy idea in my head the using Putty / WinSCP has become frustratingly inadequate for my day to day work. Putty has weird copy / paste, ugly formatting, no tabs, dumb keypair management, etc. The list goes on. And using WinSCP to bridge the great divide between Windows and Linux is really getting on my nerves. Not to mention IRB on Windows totally blows. Simply put, a great deal of my day to day tasks would be easier if I were working on Linux. Considering that 90% of my time is working with Debian, and Red Hat it seems simple.

But simple is far from the truth. The truth is that Microsoft has all but snubbed out Linux development. Windows is ubiquitous, and hols 95% plus of the OS market. Most of the talent write for Windows. People test software on Windows.  Support resolves issues that affect Windows user’s first, while other OS bugs become understandable second class citizens. So the question is:

How can I satiate my need for Linux, and remain “professional” in the workplace. If my boss, or my co-workers come in and say there is an issue with a website on IE6 that I should look into, it doesn’t cut the mustard to say “Oh, I run Linux now, so I don’t have IE6.”. There are several answers – each with its own pros and cons. I can dual boot, I can virtualize, I can use two different computers, I *could* just stick with Putty.

I am mulling the options around in my head, and in light of some new technologies, the scales seem to be constantly tipping. Now I am going to try Innotek -> Sun -> Oracle’s VirtualBox, with the “seamless” mode (think VMWare Fusion’s “Unity”), and guest 3D acceleration.

Ideas?

Computers, Events, Linux, Open-source, Personal, Software, Thoughts, Windows

Windows 7 RC Initial Impressions

Windows 7 logoFor those of you who hate Windows Vista, don’t stop reading just yet. I hated Windows Vista too, but for objective reasons that were derived from my experiences, instead of being a sheep. I think its important to try new things, if nothing else but as a base of comparison.

Installation:

Windows 7 won’t win any speed contests here. The installation took so long that I left and made breakfast (bacon…yum) , ate it, and came back and we were still “Uncompressing files”. What is most interesting is that this install seemed to take LONGER than Windows Vista. Compare that to the 15-20 minute installations offered by Ubuntu Linux.

Out of the Box Experience:

Windows has historically been a weak OS out of the box, and Windows 7 makes improvements, but is still arguably in last place. The tools are bare metal, with the usual roundup – notepad, paint, calculator, and a few games. Interestingly paint has undergone a significant upgrade. Too bad no one uses or cares about paint. The most significant changes in the OOTB experience is the revamped Windows Media Player, Internet Explorer browser, and Windows Explorer file manager.

I have never cared much for Windows Media Player because it has historically done WAY TOO MUCH. The result is mediocrity across the board, and a difficult to user application. I did feel like this version has separated quality from quantity resulting in a nicer experience. It still relies too much on contextual menus, and hunting-and-clicking to perform the action you want. There is no Windows Explorer context option for “Play in Windows Media Player” or anything when you want to play a whole folder on your computer. Also, dragging music folders onto the WMP icon doesn’t play them.

Internet Explorer is now at version 8. Microsoft has supposedly spent a lot of time and effort in revamping the browser experience. All I can say is that it rendered the download page for Mozilla Firefox without any noticeable problems. It may be a good browser now – I will never know first hand, because I will not use it out of principle.

Windows Explorer has been revamped. It does start the browsing location at the root of the drive – something that earlier versions didn’t do, in favor of landing you “My Documents”. I would have like to have seen a consolidated file transfer dialog window that gets appended to instead of having a separate pop-up for each operation. Another annoyance is that the tree on the left no longer follows your navigation on the right – making it basically useless.

The Operating System:

The operating system layer itself is responsive and stable. Windows updates have been moved into a new Action Center component that resides in your system tray. If you care what it says it will nag you about needing to apply updates, and scanning your computer with Windows Defender. Updates still require a full reboot, and the “reminder” to do so is still very annoying and intrusive. God forbid I need to do work – my computer is too busy bothering me about installing the latest security patch for Internet Explorer 8.

The UAC is still alive and ticking – of course you can turn it off anytime you want. It does hinder the download and install software experience, as you have to acknowledge that you do actually really truthfully DO want to install application ‘x’ about four different times.

Appearance and Task Management:

The appearance of the operating system is largly a carry over from Windows Vista, but somehow less masculine. Animations have a purpose, and everything seems to be more fluid, and organic. I would sum it up as being like Windows Vista, but with more creativity and design. That being said, it is dissappointly uncustomizable. You have themes, and gadgets, and your wallpaper can cycle backgrounds – but if you love to tinker you will be dissappointed.

The task bar now has the icons of applications open instead of having labels of what they are. It is any easy setting to change, but a poor default setting choice. Another task management feature is that the task switcher application previews are too small to even pick out details of the window you want to focus on. If the point is to show the application, then SHOW it – don’t make me squint.

Compatability:

The core of the operating systems seems to share a LARGE code base with Windows Vista, and I think that it is advantageous to Windows 7. Vista gets to be the bad guy that broke everything, and Windows 7 is seen as the version that works with everything. In reality, it was just a matter of time for the device drivers to become compliant with the next-gen Windows base. I doub’t Windows 7 is any more compatible with software / drivers. I even tried the emulator on a Dell printer driver – after the hype it was a just a let down.

I installed Adobe Reader, Corel WordPerfect, Google Picasa, Microsoft Office, and Mozilla Firefox without any problems. The Dell printer driver was another story entirely. After fighting with installer files that reported missing post script drivers, and OS incompatability, I finally did a “Windows Update” for printer models. Luckily for me I am on the list, and the process finished successfully.

Initial Conclusion:

It is a rare day indeed when I review a new distribution of Windows. Extremely long development cycles mean the operating system appears to always be just behind the technology curve. Vendors rush in and make software to address the inadequacies of the Windows platform, and make a killing. Vendors get rich, and Microsoft sells more copies of Windows.

I view Microsoft with an overly critical eye, because while they are inovating now, and trying to change, they are a very seedy company. They want to control a lot of aspects of computing, and have the money to try. They drive out competition that offer superior products, and stifle innovation. They are also a monopoly that is so big the world seems to be its hostage.

I am glad to see a breath of fresh air come into the Windows 7 development now that the dust of the disaster codenamed Vista has settled. I truly believe that Microsoft realized their market share is not to be taken for granted anymore, and they will have to fight to hold it.

The real test will be to see what my wife thinks. If she doesn’t ask me to reload her desktop, then I know that the product is “there”.

Computers, Events, Family, Hardware, Personal, Software, Windows

Ch…Ch…Ch…Changes

Life has been busy lately. I have stopped teaching in our Continuing Education program, and focused my time on completing my degree starting this summer.

I am currently taking two classes that are 100% online. It has been an adjustment for me for a few reasons. First, being a student again is hard. There is a lot of shit to shovel. Second, I am seeing our new systems operate like the Portal, WebCT, etc from the outside. I have to resist the temptation of “troubleshooting” mode, where I explore ways to make the process better and just focus on the classes. Third, I never got real familiar with WebCT, and pacing myself and doing everything electronically is surprising harder than it sounds. I am having fun though, and that is what counts.

We are almost done setting up our new office. The desks are in place (including the cabinet doors, which we had to hunt down). Kristin’s new desktop is here and being loaded as I write this post. We are still picking out some more lighting, storage, etc to make the room a perfect office. I am even eyeballing one of those portable AC units to keep the temperature a little more comfortable. Pictures soon!

Update:http://picasaweb.google.com/s/c/bin/slideshow.swf

At work, we are on the edge of having resolved a lot of our Portal issues. In addition to performance and reliability improvements, there will be other subtle enhancements that I am anxious to look into further. These include a Facebook channel, mobile Targeted Announcements, a rich text editor, a better Email SSO experience, and resolution to some terrible technical problems that are unfixable right now. Who knows if these updates are of substance, or are just marketing bullets on a sales pitch. We are fully operational in our testing environment, so the switch should be happening within the next week, assuming testing goes well.

In other news, our garage sale has made us almost $300 so far, and the space we got back in our quaint house is quite impressive.

Windows 7 RC here I come…

Apple, Computers, Linux, Open-source, Software, Web, Windows

Stunnel – Just goes to show, anything can be encrypted

Image by Will JacksonToday I got the opportunity to play around with an open-source application named STunnel. Its purpose is simple – some applications are dumb and don’t understand SSL. This program makes it.

Bullying aside, it had a perfect application today when I wanted to move two websites over to use a secure login page. Why didn’t I just Apache, or IIS you might ask? This particular website happens to be a from a 3rd party vendor who made their own web server to… get this… serve websites written in their own custom language. I don’t understand why anyone would do that in this day and age, what with the 10,000+ languages already available, and the 1,000+ web server platforms available. (On top of all that, they use a proprietary database!)

Long story short, the third party had a module ($695) to enable SSL in their webserver, which I will refer to as Peggle from here-out. The recommendation to use STunnel came from this vendor’s website, so it seems to contradict their money making plans. My guess is someone chewed their asses out about not having SSL out of the box. Whatever the reason, I will consider them less cruel by at least dropping the recommendation on their website as a free alternative to their solution. For all I know, their solution is installing STunnel for you for $695.

Back to Peggle . It does one thing – it serves requested pages out on a specific port. Incorporating SSL is really beyond its scope. This is similar to Mongrel. Whereas Mongrel can sit behind Apache (or some other webserver) to redirect to SSL, STunnel just “takes care of it”.

After finding a lack of documentation (and even worse documentation for Windows), I decided to write my own, much briefer, much more straight forward version. Hopefully, some poor soul will wander across this article searching for enlightenment.

STunnel installation:

Make sure that you have OpenSSL available to you in some form or fashion. Watching Certificate Requests getting generated on Windows makes babies cry, so your best bet is to take someone with a Unix machine out to lunch to get some terminal time.

Certificate Request

  1. Locate a machine with OpenSSL (Windows, Mac, Linux – it doesn’t matter)
  2. Run the command: openssl req -new -nodes -keyout server.key -out server.csr
  3. Answer the certificate questions, keeping in mind that the common name is the FQDN for your website
  4. Locate the generated server.csr file and submit this to your Certificate Authority for signing.
  5. Transfer the server.key file to the machine you are installing STunnel to, if it is not the same.

Installing STunnel

  1. Download Stunnel from here – note that Windows binaries are generously provided
  2. Run the STunnel installation – the default path will install to “C:Program Filesstunnel”

Configuring STunnel

  1. Get the signed certificate returned from your Certificate Authority (above), and drop this somewhere safe. You will need to refer to this location in a moment
  2. Locate the path for the server.key file generated earlier
  3. You now need to combine your key file, and your signed certificate into one single file. I named my file “stunnel.pem”
  4. Open up the file stunnel.conf and replace with the following configurations:
#Stunnel server configuration file

#This is the path to your combined key / signed certificate file
key=C:Program Filesstunnelstunnel.pem

#up this number to 7 to get full log details
#leave it at 3 to just get critical error messages
debug=3
output=C:Program Filesstunneloutput.log

#These are definitions for services.
[system1]
accept=443
connect=80

[system2]
accept=8001
connect=8000

Once you have created your configuration file, you can start STunnel by running: stunnel.exe stunnel.conf. Remember that if anything goes wrong, you will probably have to kill it with Task Manager, or by clicking on the system tray icon (in Windows). Additionally, check your server log file – it contains valuable information.

Once you have the STunnel server running, you should be able to go to a URL in your browser such as “https://example.com:8001&#8221; and see that SSL is working. Even if there is nothing serving content at this port, and the page times out, you should still see the secure webpage icon in your browser. This SSL indicator should reflect your CA.

Once you have the port encrypted, it is up to the individual application to respond to requests coming in to that port. Data being sent to and from this port will be encrypted using SSL – totally transparent to the web server.

So there we have it – Peggle is now SSL enabled without ever knowing the difference. People’s data (especially login credentials) are secure once again! The crowd goes wild…