How to Install Adobe Reader X Safely on Windows

This is a followup to my previous posting How to Install Adobe Reader X Safely on Mac OS X. The step for disabling JavaScript is virtually identical for Windows. The frustration for me when trying to install Reader X for Windows was finding a download link for just Reader without any additional baggage. When I visited the download link using Internet Explorer the installer wanted to install the Google Toolbar and Adobe Air. There was an option to skip Google Toolbar but not Adobe Air. The installation also wanted me to install a Adobe DLM Active X control — exit from there. I then tried to download via FireFox. The experience was similar except that this time the bundle program was McAfee Security Scan Plus. Instead of an Active X control it wanted to install Adobe DLM plug-in. Once again, it was not something I wanted. I just want to install Adobe Reader — exit from there. So it appeared that if I wanted to install Adobe Reader, I would also have to install Adobe Air (don’t need it) and Adobe DLM (don’t know what that is). Adobe DLM is “Adobe Download Manager“. It is a way for them to control the download and install process from inside the web browser.

The solution is to use a different operating system and choose the “Different Language or Operating System” option to grab the direct download link. The file is 36.8 MB. Presumably this process would work for Flash download as well.

Once you download the installer, you can install it like normal software. The default installation location is fine. You can delete the installer file after the installation is complete and you have rebooted your computer. Yes — you have to reboot your computer to install a simple PDF view. I guess it is not so simple anymore.

How to Install Adobe Reader X Safely on Mac OS X

The new version of Adobe Acrobat Reader is out. Unlike its Windows counterpart it does not have the Sandboxing option. They are calling this version “Reader X”. I assume the ‘X’ is to be pronounced “ten” since it follows Reader 9. Sometimes it is necessary to use Acrobat Reader for documents that have not been designed well and tested on other PDF readers. If you open a PDF and it is missing characters or items are just not lining up properly, it may be time to pull out Acrobat. Most people don’t even realize there are other methods available for reading PDFs.

Until now the process of installing Reader has put the user in a position where Reader takes over all PDF viewing operations without asking. The new version of Reader now respects the user’s option to not make it the default application nor install the browser plug-in. This has been a point of particular frustration for me as the previous version of Acrobat Reader would install the plug-in without asking. I prefer Apple’s built-in PDF reader called “Preview” in most situations. It is extremely fast and flexible.

In order to install Acrobat Reader X, I first recommend getting rid of Acrobat Reader 9. Unless you have moved it, it should be a folder in your Applications (Finder > Go menu > Applications). Drag the entire “Adobe Reader 9” folder to the trash. You will also need to look in your “/Library/Internet Plug-Ins” for a file called “AdobePDFViewer.plugin”. Delete this file as well. Download Adobe Acrobat Reader from Adobe’s web site. Do not download or install it from any other site.

Open the DMG (disk image) if it did not open automatically for you. Inside you will see the install package. Double click on that to start the installation. It may complain that you still have your web browser open. Close it if you must. The installer will confirm that you want to install the program all users. It also warns you that it will need 450 MB of your hard drive. That does seem excessive for a program for viewing PDF files. When you move on the the Installation Type step, click on “Custom Install”. There you have the option to not install the Browser Plug-in. Choosing this option will let you continue to use your Browser’s built-in method for handling PDF files. For Safari, they are rendered internally. For other browsers, the file may be downloaded and opened in Preview. You have the option to install it or not and Adobe seems to be respecting your choice unlike with previous versions of the installer.

After the installation is complete, launch Adobe Acrobat Reader. It will ask you if you want to make it your default PDF reader. You can change this election later if you change your mind. There’s also an option not to ask you again.

Once in Acrobat Reader, proceed immediately to the “Preferences…” menu item under the applications menu. Go to the section marked “JavaScript”. If you do not know what JavaScript is then there’s a very good chance that you do not need it. Uncheck the “Enable Acrobat JavaScript” option and click OK. If it turns out you come across a PDF that you want to run JavaScript, you can always come back and turn it back on. The prospect of a PDF file executing code without me know makes me nervous so I recommend turning this option off.

Acrobat can now be used in those situations where Preview or your other favorite PDF viewer is not quite up to the task.

Michael C. Morphew

Drupal web site based on static design created by Lesa Snider that already used CSS well. The challenge for this project was to optimise the site for SEO consumption. This site features dynamic meta tags, a smart 404 page, sitemap, and redirection from the previous static .html links. The end result will be increased search visibility and flexibility.

Skyline is a Jumbled Mess of Eye Candy

Take parts of the Matrix, Cloverfield, Independence Day, War of the Worlds, Transformers, Predators, and some zombie movie, throw them in a blender until the best part float to the top. Scape that top layer off and throw it away so you are left with just the slag. That will give you some idea of the mess that is Skyline. They obviously spend a lot of money on special effects. The must have run outnof money when it came tomworking on the script. The movie has an interesting look and the media campaign did a good job of showcasing the best parts of the movie.

The movie focuses around an alien invasion. The aliens descend simultaneously around the world and begin to use bright lights to suck people up into the spacescraft. The aliens all take the form of flying squids and giant quadrapeds. The aliens spend an inordinate amount of time chasing our heroes. The end of the movie is unsatisfying and mercifully only 100 minutes away. Don’t waste your time or money on this movie.

iOS Apps for the Bird Enthusiast

The Apple Computer centric web site MacNews has a new posting about software for birding and bird watching.

In addition to these titles there are a number of apps in the iTunes App Store for your iPhone. Some are silly and others are addictive games (Angry Birds). Enjoy.

Space Mountain G-Forces Graph Over Time Duration of Ride

Just as the coaster was about to pull away to begin the ride, I fired up V-Cockpit GPS by Alexander Gross on my iPhone and held it firmly for the duration of the road. Space Mountain peaked at 2 G’s and bottomed out at -1 G. The chart is pretty interesting. I’ve attached the raw data for fun. I need to try this on a more vigorous ride in the future. V-Cockpit GPS tracks acceleration and speed. It allows you to export your data to CSV format via email.

How to add the Submission Number to the Confirmation Message of a Drupal Webform Submission

When a user is submitting a form it would be nice to give them a tracking number. In order to do this it might be necessary to load the submission tree in code and locate the submission id. It is not otherwise available as a substitution token. There is an alternative. Since the submission URL contains the submission ID you can use a little PHP code to extract the submission ID ($sid) from the URL and display it in your text. This does require ‘PHP code’ Input format access and you have to select PHP code as the input format on the confirmation message. Here’s a sample snippet of code to display the submission number.

Your submission number is <?= $_GET['sid']; ?>.

You can format the message using the drupal_set_message function to set it above and apart from the rest of your submission page text. It will be rendered according to your current theme.

<?php drupal_set_message(t('Your submission number is '. $_GET['sid'])); ?>

Here’s another example that is compatible with i18n internationalization module if you need to localize your submission for other languages.

<?php print t('Your submission number is: '. $_GET['sid']) ; ?>

Java and the Mac Platform – an Ironic History

If you haven’t heard already the latest Macs being sold by Apple no longer are shipping with Java pre installed. This is a good thing and a bad thing. There’s also a lot of irony in this move when you think about the history of Java on the Mac. For the uninitiated Java is a virtual software environment that lets a software developer write their software once and run it anywhere (that has Java installed). The promise was to make the operating system less relevant and focus just on the application. Software developers could write the same code and deploy it on Mac, Windows, HP Servers, and cell phones. The reality was more of write once, debug everywhere since the Java Virtual Machines (JVM) might vary by platform and version. In the beginning the hardware and software manufacturers like Microsoft and Apple built their own JVM and bundled it with their OS. This gave the end user choice of which JVM they wanted to install and increased the complexity of supporting Java. Microsoft quickly realized the folly of this model and abandoned it. Until recently Apple still packaged the JVM with the OS.

Java applications can be packaged on the Mac to look just like any other application. One such application that I use every day is called Oracle SQLDeveloper. I download and run this app without having to think about Java or virtual machines. The only reason that I know that it is a Java app is that it is so ugly. It does not follow the Mac’s human interface guidelines and looks just as bad as it does when it runs on Windows.

It is a good thing that Java will no longer come bundled with the OS. The main reason is security. The JVMs have grown in power and complexity. With complexity comes the risk of a security vulnerability. Today Java can be called within a web browser. The user is given a warning message that they scrutinize with all the forethought of Pavlov’s dog before clicking OK. This leave the end user open to drive-by attacks just by visiting the wrong web site. Left unpatched this could leave your computer open to a remote attack. Apple regularly puts out software security updates specifically to patch the version of Java installed on its computers. These updates come at a considerable expense to Apple and to their customers who must vet these updates whenever they come out. This is a lot of work for a part of the OS that is not typically used by the end user. So you have a lot of risk and work with not much benefit.

When Apple does update the version of Java in the OS they run the risk of breaking some arcane piece of software that has not been updated in years. When that happens Apple has an unhappy customer. This puts Apple in a no-win solution. They did not create the bug or the old software but they get the bad press when it breaks.

In a situation where the user knows what Java is and has chosen to manage it themselves the bundling in the OS posed a different problem. Because it is bundled with the OS, Apple takes a conservative approach to which version they install. For a long time Apple shipped with Java 1.1 active while the world had moved on to Java 2. Java 2 was actually installed on the computer but it just was not enabled as the default version on the machine. This was because the Java 2 version would break some older programs. By taking the conservative approach Apple was able to dodge one complaint in favor of another.

To see what version of Java you have on your computer open up Terminal and type “java -version”.

$ java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-307, mixed mode)

Nearly two years ago I ran into the version issue while taking a Java class. I wanted to use Xcode as my development environment but it kept giving me syntax errors because my machine was using an old version of the JVM. Through some tweaking of configuration files I was able to configure Xcode to use the current version of Java already installed on my machine. I did have to repeat this process whenever my system was updated for a newer version of the OS as Apple would revert the setting back to their delivered settings.

How to Set the Default Java Compiler Version in Xcode

This all became moot when Apple deprecated Java development in Xcode later in 2009. This is ironic because only five years earlier Java was positioned as an enticement to lure developers to the Mac platform. The packaging of Java apps made it very easy for developers to bring their existing software applications to the Mac. This is not the first time that Apple has so radically changed directions on its users. The predecessor of Xcode was a program called Project Builder which was used to build Objective-C applications on Open Step, the predecessor of Mac OS X. Around 1998 the primary use for Project Builder was to make WebObjects applications. Apple adopted Java and deprecated Objective-C. Developers had to rewrite their applications in Java to continue on the platform. Years later Apple would shutdown WebObjects as a product although it lives on today using the Eclipse development environment. As Project Builder became Xcode it supported multiple languages but over time it returned to its Objective-C roots.

It is a bad thing that Java will no longer be bundled on the machine if you are a Java developer because the absence of a JVM will present a barrier to new customers. Given the choice between a native application from the Mac App Store and one that requires me to install and maintain Java, the native app wins. Apple has already stated that apps that rely on Java will not be permitted in the new App Store. They are going to force the native app model.

People who need Java will still be able to get it and install it so long as Oracle decides to continue to support the Mac platform. Apple is extricating them from their dependency on this third party developer and in the end improving the security and user experience for their customers.

Looking Forward to Apple’s Mac App Store

The recently announced app store for Mac is the biggest news for the Mac OS X platform in the last couple of years. It is going to revolutionize the software buying experience and be come the standard way that people get and update software for their computer. The app store model has several advantages over the current software buying model that will make it an instant hit.

When compared to shrink-wrapped software there is no comparison. Starting with the software developer shrink-wrapped software represents a huge financial investment and risk. Bringing a product to market requires skills outside the typical developer’s field in disciplines of desktop publishing, tech writing, marketing, and advertising. Once the software has been boxed a distribution channel is needed. They will evaluate and help determine the retail price if you can get them to carry your product. It may take weeks for the product to go from GM to the hands of your customers. By then the software on the disk is out of date because of the eventual bug releases. This model will still survive in the near term or the likes of the really big software houses and for the impulse look-alike publishers that you find at the checkout counter of your local office supply store. For the big software packages a physical distribution may still be necessary. I cannot imagine someone downloading 500MB Photoshop or Final Cut from the store today but we shall see.

When compared to the shareware model the app store model is an improvement because the developer no longer needs to maintain an e-commerce system, a file download server, and a software mechanism for registering purchases. Apple provides these services for a 30% fee. That is probably a good value for those services by themselves but that is not enough to push the app store over the top. There are already app stores available today such as Digital River which take care of the e-commerce, distribution, and licensing. The user experience is generally pretty good. Digital River is a backend service and not a retail experience.

One key advantage that the new app store will have if software developers take advantage of it is to break up bundles. Bundles are a way for software developers to get people to buy more of their software are once. The developer only has to box, ship and sell one SKU. The customer gets a couple of programs that hopefully work well together. MS Office is an example of a bundle that is doomed. Today the bundle is sold in such a way that if you want any two of the products you might as well buy the full package. Then the customer is stuck with extra junk like MSN Messenger and PowerPoint that they would never use. Microsoft, Adobe, and Apple are all guilty of bundling their software. The app store promises to let you buy individual Apple products like Pages and Keynote outside of the bundles without having to bring the kid brother Numbers too. This will be the death of lesser used products like iDVD.

For the consumer the single condoned shopping experience for software will become the favorite way to buy software. Users will be able to browse for software and read reviews. They will be able to buy software without whipping out the credit card because the number is already on file. Users will have some feeling of security that the software packages have been vetted by Apple and buy other Mac users. Click, download and run will be the new standard.

The real advantage of the app store will be post-purchase. Ten minutes after a software package is shipped the software developer is going to find a small bug that they wished they had fixed. With the app store model the developer will be able to put the update in the channel and users will be notified that they have update. This is not the first time this has been done. I’ve subscribed in the past to software update services like Mac Update and Version Tracker with mixed results. These services would scan the hard drive and catalog the software found to tell the customer which ones were out of date. Then it was up to the customer to click to download and install each update. This could take some time. Nowadays most software applications have their own software update function that will pop up when you launch the application. This can be really annoying when you just wanted to launch the application for something quick and now you have to wait. Some software vendors have installed their own software update daemon that is constantly running and checking to see of your software needs updating. When it does they act like a manic Jack Russel terrier trying to get your attention to update. These updaters have their own problems. I’ve written about the Adobe updater before that during the update process installs new software that had been previously uninstalled. Having these daemons running from the likes of Microsoft, Google, and Adobe contribute to the loss of performance of your computer. By contrast the app store model promises one click updates like we have now on the iPhone and iPad.

Licensing of software is a tricking thing. When you buy a piece of software today, how many computers are you allowed to install it on? The answer depends on the vendor and in some cases the SKU purchased. In some cases the software is for one “machine” and for others it is for one “user”. Most users probably do not really understand software licenses. If my company buys MS Office then I am allowed to take a copy home to install on my home computer if that is covered under my company’s license. If I buy a copy of MS Office from the store it comes with three licenses that I can install of three different computers. The app store promises to work like the iOS app store to allow me to install my software on any computer that is managed by my Apple ID. It remains to be seen if this really is how it will work. If it does work like that it will make managing the computers in the family home much easier. Today when I buy an application for iOS the rest of my family can also run that app on their iOS device without having to buy it again.

I look forward to testing the Mac App Store. I expect there to be a gold rush when the store first opens up and we will see stories of fart app developers making millions of dollars. It should be fun.

Airline Upsell Oversell

I recently purchased a plane ticket for a quick personal trip. During the online purchase process I was confronted with a new option that I had not seen. I was given the chance to pay more for my $230 ticket. For only another $28 I would get Group 1 boarding, the option to fly standby and a $75 savings on the $150 change fee should I want to change my flight. So for a 25% premium I could pay to get on the play a couple minutes earlier and get back some flexibility in my travel plans that I had as recently as last year. Stand by was free. The change fee used to be only $75. I declined this offer and bought my ticket.

When I arrived at the airport I had already planned to decline the $25 offer to let the airline take my luggage. I had packed light and my bag would easily fit in the overhead bin. In addition to the luggage offer I was presented with a couple more new options. Would I like to upgrade to first class for only $79 more? A first class upgrade used to be something they did for free if they were overbooked in coach or you asked the gate attendant nicely. I declined this offer.

I was give yet another opportunity to buy Group 1 boarding for only $9 more. There must be some mathematical relationship between the $28 at the time of ticketing and the $9 now that I no longer could get standby or the change fee option. Standby would have been offered for a separate fee had I gotten to the airport sooner and this wasn’t the first flight of the day. I used to book the last flight of the day and intentionally arrive at the airport early to jump on the next flight stand by. This usually worked especially when I had already checked the earlier flights to confirm there were seats available. But now Standby is not an option. I declined the Group 1 boarding option.

Then the screen asked me if I wanted to buy additional frequent flyer miles. For just a few bucks I could double or triple the number of mines that I would receive. Once again there is a mathematical formula that can be used to calculate how much a frequent flyer mile is worth. For me 25,000 miles is worth an airline ticket that I would otherwise pay $250. Therefore one mile equals one penny. I could stretch that to two cents. It does not make sense for me to pay an extra $30 for and extra two thousand miles. There seems to me to be something wrong with that. Frequent flyer miles are a reward for flying frequently. Buying miles is like cheating. I declined that option too.

There may have been another screen of offeres but by this point I was declining all the offers as fast as they popped up. I was determined to get to my seat on the plane with out opening my wallet except for the over priced drink I will be compelled to buy because I cannot carry more than 3 ounces of liquid through security and I am expected to get there an hour before the flight. This combination assures that the restaurants on the other side of the security barrier will be able to recoup revenue from the travelers that was historically earned from all their family members waiting at the gate. The think that most irks me about my airport is the monopoly the Pepsi has. Come on folks, this is Dr. Pepper country and all you have is Pepsi — please.

I’ve made it through security and I have my Diet Pepsi and a bag of peanuts. Those used to be free too. I wait at the gate. I have the option to pay for WiFi internet access. At least the electricity is free. The airport finally wised up to that. It used to be that the power-starved road warriors would scan the walls and pillars for an open electrical outlet to plug their laptop in to get another 30 minutes of life out of the battery before or during the flight. You would see these road warriors sprawled on the floor mainlining the electricity. To make these visitors feel more at home the airport has installed some of their native habitat: cubicles. Now these road warriors can sit in a chair, plug in their laptops, and get some work done in the hour before the flight.

Soon the flight attendant started the pre-pre-boarding process. They helped a couple of people who were in wheel chairs on board along with their attendants. Then the announcement came to invite people traveling with small children to board. This was followed by First Class. Had I paid the premium, I could be boarding now. The next honored boarding slot went to military personnel travelling in uniform. This was then followed by people with high frequent flyer status who apparently had decided not to fly first class. Only then did the fight attendant call for Group 1. I thought group 1 was just code for first class. This was confirmed with they clarified group 1 as rows 2 through 11. What happened to row 1? So had I paid for group 1 boarding I still would have board behind the frequent flyer guy.

After all these people who have boarded we still have not gotten to the normal coach part of the boarding process however I was basically alone in the terminal. Everyone else had scurried down the access ramp. The overhead announcement called for Group 2 which was everyone seated in rows 2 through 20. That still did not include me. Neither did it include anyone else. I felt like I was at the DMV waiting for my number to be called.

After an appropriate delay my group was called. I do not know if there was a group 4 on this flight because I took the hint when she said that all rows could board. I waived my iPhone and the gate and waited for it to beep before proceeding down the ramp. I turned the corner and found the human traffic jam spilling out of the fuselage. I eventually crossed the threshold onto the plane where you feel you are safe from the gantry. I’m not sure why the plan feels safer than the gantry. The flight attendance smiled but gave a slightly apologetic look just before I turned to see the mayhem formally known as first class. Every seat was taken. People were still jockeying for positions and stowing their oversized luggage.

I eventually made it past first class into the coach part of the plane. That’s when it really struct me that all this barrage of upselling have pushed everyone up into first class and had left coach sparely populated. In an ironic twist I ended up with plenty of space to store my bag and stretch my legs. My last thought before take off was to wonder if the pilot had adjusted his trim setting on the wing now that all the weight on the plane had moved to the front.