Archive for November, 2011

Use a VPN to selectively cloak your IP address to access Pandora, Netflix, and the like

There are certain situations on the internet when you need to pretend to be someone you’re not. For instance, if you want to listen to Pandora. If Pandora detects that your IP address is not originating from the U.S., you will politely be told that licensing agreements prevent them from making their internet radio station available to you. Same with Netflix, Google voice, Hulu, parts of Youtube, just to name a few. To access these services from outside the U.S. all you need is a U.S. based VPN. The easiest way to get a U.S. based IP address is to subscribe to a U.S. based VPN service (like HideMyAss‘ Pro VPN) and route all your computer’s network traffic through a VPN tunnel as long as you need it. This wasn’t flexible enough for me. I wanted to go the extra mile and build my own VPN service, and set up a centralized network routing on my DSL router (a Fritz!Box 7390). That way, all traffic from my internal home network (be it from an Apple TV, iPhone, iPad, a Mac, or even a Windows PC) that I want to originate from an foreign IP address will automatically use the VPN, and all other traffic will use my usual WAN IP address from my DSL service provider. Read more »

Show routing table in Mac OS X

Here’s a quick one. The route command won’t show you the full routing table in Mac OS X. You have to use the netstat command:

netstat -rn

This will print the numeric view. If you prefer host names, omit the n parameter:

netstat -r

How to read WebLogic 10.3 transaction logs (TLOG)

When analyzing distributed XA transaction problems it can prove useful to have a look at Oracle WebLogic’s internal transaction backup log file (TLOG). Since that file is all binary, it needs to be converted into a more human readable format first. In WebLogic 10.3, the TLOG file can be converted to text using this class:

weblogic.transaction.internal.StoreTransactionLoggerImpl

The class needs the transaction library from the modules directory and weblogic.jar in the classpath. Read more »

No Genius in iTunes Match on iPhone/iPad

I’ve been a paying subscriber of iTunes Match since it was first available in an iTunes developer beta in late August. As you’d expect it was pretty buggy in the early stages but improved somewhat over time. The official release of iTunes Match this month still seems premature to me. While it achieves the task of storing my music library in the Cloud for playback on iOS devices just fine, things look a bit different when it comes to other features that come with iTunes.

No Genius in iOS 5

The Genius feature, introduced in iTunes 8, automatically generates a playlist of songs from the user’s library which are similar to the selected song. I’m using this feature a lot because my library is quite extensive and Genius surprises me every now and then with a song that I didn’t know I even had. However, if you enable iTunes Match on iPhone or iPad, the Genius feature will not be available anymore. Yep, Genius has left the building. Also missing are the dynamically created, genre-based Genius Mixes playlists.

Smart playlists not working

On my iOS devices, the names of the smart playlists are being synced. However, they contain either no or all songs in my entire library. They’re completely useless on my iPhone/iPad at the moment.

No higher quality conversion

I own a lot of lower bitrate (lower than 256 kpbs) 1980′s/1990′s stuff where iTunes Match was able to match the song in iCloud’s iTunes music database. Unfortunately, iTunes doesn’t offer me to to download the higher quality version from the iTunes Store to replace the local version for any of them. The only songs available for download in a higher quality are a handful of CD-ripped Neil Zaza instrumental guitar tracks for which iTunes Match was unable to detect the exact bitrate (most likely because Neil just shreds too hard). In fact, the version iTunes offers in these cases are of lower quality than the tracks existing in my local library. Obviously, I’m not gonna replace those.

With the absence of Genius and my carefully crafted smart playlists, listening to my music library is a lot less fun on my iPhone/iPad. I’d expect Apple to extend the subscription period for free until these bugs have been fixed but I know that might be wishful thinking.

Adobe Digital Enterprise Platform (ADEP 10) installation woes

If you’re trying to setup Adobe’s Digital Enterprise Platform (ADEP 10) and the ADEP configuration manager reports any of the following errors while bootstrapping, then I might have the solution for you.

com.adobe.pof.schema.ObjectTypeNotFoundException: Object Type: dsc.sc_property_editor not found

com.adobe.pof.schema.ObjectTypeNotFoundException: Object Type: dsc.sc_service_configuration not found

It took me days of experimenting until I figured this out by sheer luck. If you select UDP based cluster caching in the configuration manager, the document service component will use the specified UDP port while bootstrapping the core configuration. If another cluster is communicating over the same multicast port, bootstrapping the core component will fail with obscure error messages.

The official documentation says:

Note: The value for <port number> can be any available port between 1025 and 65535. The multicast port must be unique to the Document Services cluster (that is, the port must not be used by any other cluster on the same network, any attempt to use the same port by any other cluster on the same network would result in bootstrap failure). It is recommended that you configure the same <port number>
on all nodes in the Document Services cluster, as in this example: -Dadobe.cache.multicast-port=33456

I missed this section (as real programmers don’t read manuals :) and assumed that it is okay to use the same UDP cluster cache port number for different clusters in the same network. Obviously that’s not the case. I’m now using different port numbers for every ADEP cluster and haven’t seen a bootstrapping problem ever since.

If the configuration manager reports this error (Oracle WebLogic only):

weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=[], on Resource AdobeService
Operation: set , Target: EnableSSL

Try to hit the initialize button again. I was able to get rid of the error this way. A more proper way would be to adjust the JMX security policies in WebLogic’s security realm configuration in the JMX Policy Editor. The affected properties are “Attributes: Permission to Write” and “Unregister instances of this
MBean using MBean server”, both need to have its role set to Anonymous. The exact steps are detailed in the ADEP installation instructions using WebLogic (see “Creating JMX policies for database initialization”). Make sure you remove those properties after the installation went through. Looks like a security hole to me if you leave them in.