MIME Types for hosting J2ME .jar and .jad files

If you want a mobile phone to be able to download and install a java application (.jad/.jar file) from your website, you need to set up the correct MIME types for .jar and .jad files if they have not been set up by your webhost.

With apache, you can usually do this on a per-directory basis by adding the following lines to your .htaccess file:

addtype text/vnd.sun.j2me.app-descriptor jad
addtype application/java-archive jar

How to import all windows fonts to Ubuntu (Gutsy)

I do NOT recommend importing all of your windows fonts to Linux. Sure, you paid for windows, and should be able to use all the windows fonts on any OS you want, but Microsoft (and their lawyers) may not feel the same way. Read your license agreement carefully. Instead, you should install the freely released and  licensed to all for any use Microsoft "core" fonts. (Also, Arial-9 killed my firefox install)

But, if after that warning you still want to import all of your Microsoft Windows truetype fonts from your windows partition to your linux partition and install them system wide, here is what to do:

Gain root privileges: sudo bash

Make a directory to store the fonts: mkdir  /usr/share/fonts/truetype/msfonts

Find the fonts on your windows partition, for me this was /media/sda1/Windows/Fonts

copy the fonts over: cp /media/sda1/Windows/Fonts/*.ttf  /usr/share/fonts/truetype/msfonts 

Re-create the font cache:   fc-cache -f -v

Turning off Video Overlay on Linux (Ubuntu 7.10)

The old version of the X.org ati x-server would do a true "clone" of my Thinkpad X31's LCD display out the VGA port on the back of the laptop. The new version shipped with Ubuntu 7.10 (gutsy) however doesn't do a true clone, so video overlays (called Xv in linux) will display movies on the LCD but not on the external VGA monitor.

So when you give a presentation with a movie, you can see the movie, but your audience can not! My X31 is able to play most movies without Xv so I decided not to use it. In windows, you can fix this problem by turning off Video Overlay in the display driver control panel. However, under Linux, you have to tell each of your movie players to use something besides Xv.  Standard X11 works, but won't allow you to scale videos. I prefer to use OpenGL, which works very nicely with the open source ati driver.

To make mplayer use OpenGL, edit the ~/.mplayer/config file and add the line "vo=gl2".

To make totem use OpenGL, edit the ~/.gnome2/Totem/xine_config file to include a line  as follows: "video.driver:OpenGL"

BTW- If you are unable to get video showing on your external VGA output, you can run the following command to set up a "clone" or "mirror" display:

 xrandr –output LVDS –mode 1024×768 –output VGA-0 –mode 1024×768 –same-as LVDS

Fixing IPW2200 system hang with WEP 802.11

After installing an IPW2200 mini-pci 802.11g wireless card, my wife complained that her system would freeze for a minute while attempting to connect to an 802.11 (WEP) network for the first time. After the initial time-out and failure, wireless network connections would work fine until the computer was rebooted. 

As it turns out, I was experiencing the same problems with my laptop, but I hadn't noticed it because I use suspend/resume a lot more than my wife, and I would go a week or so before doing a full reboot. (One failure to connect to a wireless network per week is a lot less noticeable than one every morning.)

After doing a lot of rebooting and troubleshooting, I isolated a few lines in my /var/log/syslog that appeared to be associated with the freezeup:

eth2: could not initialize WEP: load module ieee80211_crypt_wep
ieee80211_crypt_wep: could not allocate crypto API arc4

Even though my system (Ubuntu 7.04) had the arc4 crypto module, it didn't appear to be loading correctly. I added "arc4" to my /etc/modules file to force it to be loaded, and that appears to have fixed the problem.

3Com Bluetooth PCMCIA card (3CRWB6096) with Ubuntu

3Com Bluetooth PCMCIA cardTo get a Motorola Bluetooth wireless PC card (PCMCIA)  (version 2) working with Ubuntu linux, all I had to do was download the windows driver from Motorola and extract (using unzip) the Drivers.W2k/BT3CPCC.bin file to /lib/firmware/BT3CPCC.bin.

This card works correctly, but I am able to get faster transfer times using a USB bluetooth adapter (from ellink). For example, transfering a 1.1MB file from my phone via the USB Ellink adaptor takes 27 seconds, while the same transfer takes 47 seconds using the 3com PCMCIA adapter. It is possible that this adapter is a Bluetooth 1.0 or 1.1 device as opposed to a 2.0 device.

Freeing my V3xx phone from Cingular

After getting ATT/Cingular to take the subsidy lock off my phone, I decided to flash it with the generic International Motorola firmware. The advantages:

  • The Motorola firmware is not “branded” and gets rid of all of the “Shop Cingular” links, menu items, etc.
  • The quadband firmware claims to support all 4 GSM bands (instead of the 3 that the Cingular firmware supports).

The downsides:

  • The Motorola firmware is not “branded”, and I had to re-configure any Cingular specific settings that I like, such as the MediaNet connectivity settings and Cingular Video bookmarks.
  • The Cingular version of the phone has a slightly different button layout than the Motorola generic version (the Clear key is swapped with the Cingular Video key) and I had to remap those keys back to match the custom key layout.
  • Because I flashed the phone, all of my previous SEEM edits and java fixes were lost, so I had to repeat them.

As daunting as the downside list is, I have to say that getting rid of all of the Cingular branding was like a breath of fresh air. You really don’t notice how bad the branding was until it’s gone. Then you just notice all of the extra room in the menus, bookmark lists, etc.

Continue reading

3G is better than EDGE for me!

Some idiot makes the claim that EDGE is just fine and you don't need 3G for web-browsing. The author claims that pure bandwidth doesn't matter, and that latency is more important to the user experience (which I totally agree with) but then goes on to state that 3G has worse latency than EDGE, which is completely bogus.

I can't imagine the author had ever used a (working) 3G network, because in my experiance (using a Motorola Razr V3xx on AT&T/Cingular), the 3G network has ping times of 200ms, while the EDGE network has 800ms ping times. This means that when you click on a link using EDGE it takes about a second for the page to start loading, but if you are using 3G the web pages respond much faster! 

Using my phone's WAP/HTML browser is MUCH more responsive on the 3G network than on the EDGE network. (I switch to edge in some subway stations). The same thing applies to Google Maps (J2ME on the phone) which is much more usable on 3G, so this applies for apps that do intelligent caching as well as web browsing.

Bottom line, if you can get 3G instead of EDGE, do so!

Unlocking my Cingular / AT&T phone

AT&T Death Star

AT&T allows some customers to "unlock" their phones. This allows the use of a SIM card from a different provider (for example, VodaFone) while traveling. (It also allows you to use the phone with another GSM provider in the US after your AT&T contract is finished, which is one reason AT&T and other carriers lock the phones they subsidize.) 

I don't know exactly what makes a customer "eligible" to have a phone unlocked, but I suspect that you have to have made several payments on time and be in good standing. When I am under a new contract with a subsidized phone I typically wait a few months (in this case, about 6) before calling in to ask to have my phone unlocked. I've had T-Mobile unlock three phones (under 2 different contracts) for me in the past, but this was the first time I tried it with AT&T.  

I suspect that AT&T has an official policy of making it difficult to unlock your phone. Here is my experience:

Continue reading