Monday, June 29, 2009

Upgrades within Snow Leopard



Mac OS X has shown a lot of innovative features from the very first version through Leopard. Older versions of Mac OS X gave us such great abilities such as Spaces, Expose, Dashboard and a lot more. Leopard gave us great features such as TimeMachine, Quicklook, stacks and so much more. The new Snow Leopard isn’t bring a lot of UI niceties. They are modifying how stacks work, which is a welcome change. Most of the Snow Leopard changes are under the hood and these aren’t small changes. Snow Leopard will be almost completely 64-bit, be written exclusively for the Intel architecture (Sorry PowerPC Mac owners. Leopard will be the last OS you can use on those machines). I don’t blame Apple for doing this. Apple cut over to Intel several years ago and there are cheaper Macs today then ever in history. Several other major upgrades in the next Mac OS will be Grand Central Dispatch, OpenCL, and Exchange integration within the OS.


Let’s break each one of these down. A completely 64-bit OS means that the operating system can have more than 4 GB of RAM and be able to handle it easily. Leopard had this feature, but a lot of leopard wasn’t processing 64-bits of data at a time. This is a big deal since we will now have a decent upgrade in speed just from this feature. Most people who have looked at this move by Apple agree that we should gain about 20% in performance on average. This isn’t a small upgrade.


Next, let’s look at Grand Central Dispatch (GCD). The main processors of computer from the invention of the transistor has gained speed primarily from an increase in how fast the chip is clocked. It was all about megahertz. The fastest commercial chips by Intel reached just under 4 gigahertz before the industry realized that heat and power requirements were becoming a big problem as they gained speed. The solution to this is to put multiple chips on one die. Today it is almost unheard of to have a single core processor. Most people have 2, 3, or 4 processors in their desktops and laptops. Some people run more than 4. Servers have been using this method for a long time. The difference is that servers typically can use multiple processors much easier than desktops can. Servers run multi-threaded or heavily threaded applications like web server, application services, and databases. There can be thousands of threads running on one server. Until recently desktops and laptops rarely ran more than 50 to 100 threads at any one time. One processor can handle this easily. As applications require more and more power however these programs threads can suck up a tremendous amount of a single processors time. This creates a situation where your computer becomes unresponsive or sluggish when you run multiple programs at once. A good way to look at this is if you have a highway that is one lane and has a speed limit of 100 mph. Now put a hundred cars on that one lane highway. Ultimately those 100 cars will only get to their destination as fast as the lead car can go or possibly a car in the middle is slow backing up half the cars. This is the problem with single processor systems. Now a multiprocessor (multi-core) system is similar to a highway with 4 lanes and the speed limit is 75 mph. Now take 100 cars on that 4 lane highway, even if several cars travel much slower than 75 mph the other cars will make their way around and still get to their destination much quicker than a single lane highway with a faster speed limit. This solution to speeding up processors doesn’t look like it is stopping anytime soon. A couple years ago Intel showed off a concept chip that had 80 cores on one chip. This is the way we are going. There is one very large problem with multi-core, multi-processor systems. It used to be easy for a programmer of software to write for a one thread processor. You just put your threads back to back and as the chips got faster your program got faster. Now if you run that same program without any modification it will not take advantage of the multiple cores. It will wait for a single core to be freed up so they can run back to back. Say this program is a 3D Rendering program that makes movies similar in quality to Pixar films. This program unchanged will run faster on a single core chip running 3.8GHz than a 4 core chip running at 2.8GHz. So for programmers to take advantage of this trend of multi-cores they have to rewrite they programs, sometimes from scratch. Let’s take that 3D Rendering program, optimize it for 4 core systems. Now that same program will probably run around 3.5 times faster on that 4 core system than that single core one. It is hard, very hard to rewrite a program to take advantage of multiple core systems. Also, if you optimize for a specific number of cores you will not gain the maximum speed from other cored systems. This is where Grand Central Dispatch comes into play. This is a new mechanism at the ground level of OS X that handles the threads and cores for you intelligently. The programmers still need to rewrite they programs, but it is far simpler. All a developer has to do is mark work units as threads with a simple addition to the objective-c language. The programmer can also put threads in order of execution if needed. Other than that Grand Central Dispatch takes those work units and attaches them to already created generic threads waiting for the programming data. The advantage of this is that GCD knows how many threads the system can support at one time. When systems that have 30, 40, 50, or 100 cores how does a programmer write they program to take advantage of this? If the programmer uses GCD and defines all the work that needs to be done into work units (threads) then GCD can take those work units and scale from one core to hundreds of cores and this is for just one application. Most people have somewhere between 10 to 100 apps running at all times, even if you don’t know it. Now imagine that each one is written specifically to take advantage of a specific number of cores from each developer. All of these programs end up stepping on each others toes and attempting to take over the system whenever they can. Grand Central Dispatch on the other hand knows about the status of the hardware and all the software running on the system. Now can you imagine how much more efficient this would be, especially when we gain more and more cores in newer machines. GCD is the future for both developers and end-users. Developers will gain longevity and performance of their apps and end-users will be able to squeeze every drop of performance out of their machines and gain a ton of speed from all their GCD programs as they upgrade to more and more cores.


OpenCL is an extension of OpenGL and is an open standard. OpenCL has been supported by a ton of the major hardware and software companies on the market including AMD, Nvidia, and Intel. OpenGL is a graphics language often used in Unix systems and is also available on Mac OS X and Windows. OpenGL can be used to display 2D and 3D graphics for games and other programs that need to display a specific type of data. For Windows users it is similar to Directx, but Directx is only available in Windows and is a closed system. OpenGL is open for anyone to use free of charge in any game, program. or operating system. The power of video cards within the last several years has eclipsed main processors for specific types of data. CPU’s are great at running a hugely different set of complex applications. GPU’s in video cards can run fairly simple pieces of code on a large dataset really quickly. One of the perfect jobs for a GPU is video encoding. Taking a compression program (the simple piece of code) and allowing the hundreds of programmable units within GPU’s to run this compression on gigabytes of video data in a 1080p stream is what video cards do best. The problem is that each manufacturer of these cards has released a custom programming environment for their respective systems. As a programmer if you decide to write a program that compresses 1080p video and you write it for Nvidia Cuda, it won’t run on Intel or AMD video cards. in comes OpenCL where OpenGL left off. OpenGL will run on any video card on the market allow game developers to write their game not caring which video card the end-user has. OpenCL is for regular programs to run on video cards just like our compression program. Now a developer can write their compression program in OpenCL and it will run on every video card and those released in the future as well. Quite a gain for the developer and the end-user.


The last major addition to Snow Leopard that I am going to go over is Exchange Support. This is huge for Apple for the business market. Apple is adding the ability for Mail, iCal, and Address Book to integrate directly out of the box with corporate Exchange systems. Apple is making it so that the integration of Mail, iCal, and Address Book still applies as exchange systems push mail out, have requests for appointments and looking for room availability for meetings, as well as integrating a Global Address List within Address Book. The funny thing about this addition by Apple is that even Windows itself doesn’t provide Exchange Support out of the box. A Windows user has to buy Outlook or gain it within Microsoft Office in order to gain Outlook. Often this can cost hundreds of dollars to get these apps. Apple is providing it free with the Snow Leopard and Mail, iCal, and Address Book come with the operating system.

There are other major additions in Snow Leopard that I’m not covering here such as Quicktime X, but I feel that the 4 that I have covered here are the biggest additions Apple is putting in Snow Leopard. Apple is using these technologies to gain short term and long term users. Exchange support allows Apple to gain market share in a segment they haven’t done well in, the business market. 64-bit computing gives end-users a speed boost now and future proofs the OS. GCD and OpenCL make it so that future programs written for those technologies would gain massive speed improvements and allow developers to build programs faster. These also future proof the OS. It is a hot time for Apple and Snow Leopard is paving the way for the Mac OS to gain major market share.

Oh and I almost forgot the biggest feature of Snow Leopard by far. The upgrade to Snow Leopard is $29. Yes, I said $29.

Friday, June 19, 2009

Review of the iPod Nano 4th Gen Armor Case from Otter Box


Today I am review my daughters iPod Nano 4th Gen Armor Case from Otter Box. I received input from my daughter on this review because she has been using the case everyday for more than 6 months now. We do have slight differences of opinion on the case, but overall we agree on our findings.

First, I have to tell you a little bit of the back story on why my 14-year old has an Otter Box in the first place. Several years ago when the second generation iPod Shuffle came out in silver only I bought one for Christmas. She loved that little thing. The problem was that it was so small that she left it in her jeans all the time and sure enough it was washed. I dried it out the best I could and after about 3 weeks it came back alive. Several months after that she accidentally washed it again, but also dried it. This time it took over 2 months to get a response out of it. Now the shuffle works fine except it won't sync up with a Windows machine.

The next Christmas we upgraded her to the red iPod Nano (Fatty). She loves that iPod and again she washed it. This time it didn't recover at all. I told her that I wasn't going to buy her a new iPod if she kept destroying them. This past Christmas I bought her the latest slim iPod Nano with video capabilities and I got her the waterproof Otter Box that I am reviewing today.

The iPod Nano 4th Gen Armor Case is a marvel of engineering. Yes, it is waterproof and yes it adds about 40-50% to the size of the iPod it encases. Is it worth it? Let's see.

Otter Box offers several different types of cases and in a future review I will cover the Defender for iPod Touch, but the whole Armor series is waterproof. It is made out of some kind of polycarbonate plastic and is clear all around except for the white rubber gaskets and the rubber base that protects the one available port on the outside of the case, the headphone jack. This brings me to a couple of the problems with the Armor case. You don't have access to the iPods hold button on the top and the dock connector on the bottom. The hold button isn't that big of a problem because the case itself really prevents accidental clicks, but the restriction of the dock connector is a problem. This means you have to take the iPod out of the case to sync or to charge it. I guess it is just one of the sacrifices you have to make for waterproofing.

There is a membrane over the touch wheel that feels slightly rubbery and overall I feel is about 90% responsive. This is where my daughter and I differ in opinion. She doesn't like the feel of it and thinks that it should be more like the Defender cases membrane. Although she says that she has gotten used to it. My daughter also says that the case is bulky, but that this is a blessing for her. It means that she doesn't put it in her jeans. She says that she just clips it onto the top of her jeans and when she can't be listening to the iPod she just disconnects the earbuds. The upside down design also helps with this. When you clip the case onto your belt or jeans the iPod is upside down with the headphone jack facing upwards. Great design choice by Otter Box.

The way you insert and remove your iPod Nano could be a little better, but I see why Otter Box did it the way they did. They needed the waterproof membranes to stay intact and be able to seal, so when you open it with the latch on the top the case only opens about 3 inches. This is enough to slide the iPod in and out of the case, but feels a little clumsy sometimes. The missing dock connector forces a person to open and close the case at least twice a day. I think there could be better ways to do this.

Overall my daughter loves the case and the iPod and she believes that if it weren't for the case this iPod might have gone the way of the others.

I believe that the iPod Nano 4th Gen Armor Case has been one of the best purchases I have made for my daughter. The money I spent on the case is keeping the $200 investment in the iPod safe and I am more than willing to overlook some of the problems if it just keeps doing its job. Is it worth it? My daughter and I say absolutely yes.



Score Breakdown

Interface: 7/10
Design: 7/10
Features: 8/10
Performance: 10/10
Overall: 32/40

Thursday, June 18, 2009

iPhone 3.0 software takes down Apple

For iPhone and iPod Touch users wanting to upgrade their units to software revision 3.0 were in for a surprise when the Apple activation servers for the update went down for several hours.

Apparently, Apple didn't forcast the demand for this extensive update. The new OS 3.0 included no fewer than 46 security patches and some major feature enhancements. These include cut and paste, landscape keyboard in mail, messages, notes, and safari, MMS support (but not for ATT customers, yet), spotlight search throughout the entire phone, voice memos, tethering (again not for ATT customers), and a TON more. You can see most of the upgrades at Apple's Software Update Website.


It is no wonder that iPhone and iPod Touch customers were clamoring to get their hands on the biggest and best update to the iPhone in history. The only problem I see is why does Apple still charge $10 for the software update to iPod Touch users, but iPhone users get it for free? Doesn't make sense to me.

Tuesday, June 16, 2009

Bringing you a review of Ventrilo 3.0.1 for Mac

Ventrilo (Vent) is a voice over IP client/server program that is used primarily as a voice communications program of choice for online gaming. Ventrilo requires that a server be setup on the Internet that allows the Ventrilo client to connect to the server from any Internet connection in the world. Often guilds or clans within online games will buy access to a private Ventrilo server and allow their clan mates to join.

Today I am going to review version 3.0.1 of the Mac Ventrilo client. There are other programs out there that do the same thing, such as the open source program Mumble and Ventrilo's primary competitor TeamSpeak. There are others on the market, but those three dominate, especially in the Macintosh space.

The main window is identical to the Windows version and is not very straight forward. The design is barely Mac-like, but ultimately gets the job done. As a user of Ventrilo you first have to specify a "User Name". This will be the name that other users see within the Ventrilo client. Every username specified has unique Servers linked to it. You can also setup several "Bindings". More on that later.



The setup information for a Ventrilo server should be given to you by the company you bought it from or the guild/clan that set it up. The biggest problem is setting up your microphone/speakers. It is slightly easier on the Macintosh client, but can be complicated on Windows.


There are a TON of features within the Ventrilo client. You can setup any event within the server to play a specified wave file or to use text to speech (TTS). An event could be someone joining the server, leaving the server, muting, almost anything. Ventrilo also has a chat system that allows for private chats and global chats on the server. Ventrilo also allows any chat text to be spoken by the computer using TTS.

One of the most advanced features of Vent is the bindings. This allows a user to bind almost any function to a key sequence. This is very helpful for making changes to the Vent client while in game. You can also setup multiple key bindings for different situations or different servers. You can even use a key bind to switch key bindings.


Most of the features of the Ventrilo server are accessed by a special admin feature within the Vent client. This allows the owner of the server to setup public and private channels within the server. This provides an organization the means to separate different teams, goals, or ranks. An example would be an officer channel that allows the selected few officers of the guild or clan to be able to join that channel privately and talk amongst each other without interference. It also often allows the owner to set the codec that the server uses. This codec is the audio compression/decompression scheme used to save bandwidth going in and out of the server. This is where one of the biggest problems exist for Ventrilo and most of the voice over IP systems. Most of the codecs available on the Windows client aren't available on the Mac client. There are times when I would connect to a Vent server and wasn't able to talk or hear anyone because the codec wasn't compatible.

The Ventrilo system is very valuable to a lot of people on the Internet. I have used most of the available VoIP systems and found that Ventrilo gives the most power and consistent voice quality while providing a massive amount of features. I just wish they would fix the codec problem as well as the interface needs to be updated. Honestly, the interface needs to be updated on the Windows side as well, but it really shows when a Mac user is used to slick interface designs.

Lets see how this software scores.

Score Breakdown

Interface: 5/10
Performance: 8/10
Features: 9/10
Bugs: 9/10
Overall: 31/40