Saturday, March 1, 2008

Blogger Relocated

Hello world,

I'll no longer be posting on this blog. I am now blogging at http://unboundimagination.com. See ya there.

Tuesday, December 11, 2007

Adobe Photoshop CS3 on Mac OS X Case Sensitive Partitions

With the release of Mac OS X Leopard, Apple made it easier for people to use a case-sensitive file system. People who chose to go with the case-sensitive file system found that they couldn't install Adobe CS3 products at all. When you pop in the disc and start the installation, it immediately says that you can't install it yet after a quick Google Search, you'll find John Nack's blog post that originally claims CS3 is good to for Leopard. The comments on that post go into great detail about why case-sensitive file systems are important and desired by users and why John Nack thinks otherwise. After several hours, I got it working. Scroll down to skip to the instructions.

Anyway, fortunately for me, I had a disk image of my Tiger installation with Photoshop CS3 installed and was able to copy over the files without having to go through the installation. But when you try to launch Photoshop, it immediately crashes. I decided to go on the mission of fixing this problem so that I can avoid studying for my finals, because well, school sucks.

So I checked out the system log in Console and Photoshop logs the full path of the files it's trying to access but can't find. In the end, there were a 65 files/folders that needed to have their case changed (most were "resources" to "Resources", "a" to "A", etc.) To my surprise, it worked! Photoshop launches and runs!

After I got it to work, it was complaining about a missing file in Application Support, and after running a DTrace and looking at the all the syscalls, I found that it was actually looking for "/Library/ScriptingAdditions/Adobe Unit Types.osax" and all I had to do to fix that was copy that over from my Tiger disk image.

Fortunately for you guys, you don't have to go through the same process as me. I've generated a bash script to automate all the case changes. So for those of you who have a backed up copy of Photoshop and the /Library folder, just follow these steps and you'll be set.
  1. From your backed up data, copy over "old_disk_image/Library/Application Support/Adobe" to "/Library/Application Support/Adobe"
  2. Copy over "old_disk_image/Library/Application Support/FLEXnet Publisher" to "/Library/Application Support/FLEXnet Publisher" (this was mentioned in John Nack's blog comments and I'm not sure if it's actually apart of Adobe's software or not but I copied it over)
  3. Copy over "old_disk_image/Library/ScriptingAdditions/Adobe Unit Types.osax" to "/Library/ScriptingAdditions/Adobe Unit Types.osax" (you may or may not already have the ScriptingAdditions folder, if not, just create it)
  4. Copy over "old_disk_image/Applications/Adobe Photoshop CS3" to "/Applications/Adobe Photoshop CS3"
  5. Download this script (it renames the 65 files/folders that need to be changed)
  6. Open the Terminal Application
  7. Type "sh ~/Downloads/PhotoshopCS3CaseFixer.sh" and push enter (download path may vary if you changed the default)
  8. Now go ahead and launch Photoshop and you should be set to go
This should get Photoshop up and running, but since I haven't used every feature of Photoshop, I'm not sure if there are any other files that have the case-sensitivity issue. So if it breaks for me, I'll update this post.

Hopefully Adobe will use this as the first steps to fixing their software so that it works on case-sensitive file systems.

Wednesday, November 21, 2007

The Magnitude of Googol

For those of you who don't know, a googol is a 1 followed by 100 zeros, or 10 ^ 100. So how long would it take for a computer to count that high? Assuming you had a 2.5 GHz processor that could efficiently (1 clock cycle per addition) add up to 1 googol (which requires 333 bits, or about 42 bytes to store), it would take 4 x 10^90 clock cycles, or 1.26 x 10^83 years to calculate.

Now for a second, let's assume we could distribute this task of adding onto several processors. It would take more 2.5 GHz cores than there are atoms in the known universe to count that high in 1 year.

Luckily, because our computing power doubles approximately every 2 years (see Moore's Law), it isn't worth writing a program or designing a chip to do this quite yet. If you start running the program today, a new processor that starts in 2 years will finish in half the time.

Interesting, huh?

Saturday, October 20, 2007

Compromise vs. Solution

We encounter a lot of problems and there are two ways to get rid of that problem, we can either come up with a solution or make a compromise. Let me clarify using a real world example: global warming. Is driving less a solution? Is using hybrid cars with high MPG a solution? What about all the containers of consumer products? Should everything I buy be without a container since the container will eventually become trash that adds to the planet's trash problem? Should I have to bring my own reusable containers to the supermarket to pick up some deli meat? The answers to these questions vary and they should make the distinction between compromise and solution. Driving less is a compromise, no one should have to make sacrifices of convenience in a solution. No one should have to worry about buying a bottle of water because that plastic bottle will be waste some day.

Anyway, to get to the point, compromises don't get us anywhere, they just replace one problem with one or even more other problems.

If there is a problem, seeking a compromise is the easy way out but the solution is often well worth the extra effort.

Thursday, October 18, 2007

Future of The Web

For the past few weeks, I've been thinking about what makes a web site good which led me to think about what web sites in the future will be like. To be clear, when I say web sites, I really mean web applications and services (such as GMail, Digg, Amazon, etc.) Anyway, I've convinced myself that web sites in the future will be intelligent, they'll be aware of the user's desires and make it easier for him/her to access it. For example, I want Digg to eventually realize that when I visit Digg, I usually read the Technology category, the Science category, and two of my friends' recent diggs. If it knows that I do this, which isn't that complicated of a statistic, it can provide me with a little toolbar for me to quickly access those pages. This can be accomplished by having 3-4 bookmarks to each of these pages in my browser, but what happens when I have several quick links for several web sites?

There are a few things that have been around for a while that I think are great ideas and that can be expanded and used elsewhere. Amazon's product suggestions for example, they take what you've looked at and what you've bought and figure out what they think you might like to buy. Great idea, but can it be improved? Can we make the suggestion engine a standard to be used for other sites? Although I have had plenty of suggestions from Amazon that have been way off and were just a waste of bandwidth, I think that an improved suggestion engine has a lot of potential for a lot of sites. I'm not sure how Amazon calculates suggestions, but there are a lot of potential criterion that they could base it on. They could see that if your browsing session seems to be focused on one type of product or if it's just random browsing. They could see if you are spending lots of time on product pages for TVs and determine that you're seriously interested in buying a TV. Maybe even take the number of reviews that your browser stayed focused on and use that as a metric of interest. Imagine if Amazon was able to figure out that you were only interested in buying a LCD TV instead of a Plasma TV because you were looking at only LCDs and several of them, they could stop suggesting Plasmas. Or if you were only looking at Sony, they would know not to suggest a Mitsibushi TV.

Another site that I think could use a great suggestion engine is Digg. I would really love it if Digg stopped showing me Microsoft and KDE articles, because I genuinely don't care. I'm logged in and I never digg or click on those, why show 'em? Also, what if Digg expanded their digg/bury paradigm to include clicks and mouse overs? What if it used my diggs, clicks and mouse overs to match me with other users with similar interests and then it could even be more powerful with its suggestions. Of course, I'd still want to be able to see all the articles as I can now.

The last thing that I hope to see in the future of the web is more relevant usage of user information and popularity. I think that web sites should by all means have a way of rating users, either on their original contributions, helpfulness or comments, but don't use that rating to simply promote or reward that user and give them popularity because that will become their goal. The eventual goal behind rating a user should be to help yourself and other users get better results or suggestions in the future, not to see who has the most posts or is the most popular. I think sites that allow users to compete for a "most active" or "most popular" or "best rated" position just end up encouraging users to spam to get that title.

What do you think? What will become of web applications? What will they do differently than they do now?