How to set the correct Android *.apk MIME Type for Apache Webserver

Android application uses *.apk file as its installation package. It is a variant of the Java JAR file format (which in turn a Zip 2.0 file). Usually the *.apk file is obtained from Android Marketplace, the official channel for getting Android application. However there are some vendors or carriers that allow *.apk file to be downloaded from 3rd-party websites.

Those who elect to upload the *.apk files on their own webserver can add the official Android APK MIME Type to their Apache Web server config file:

Option 1: edit mime.types (for those who have root access)
1. First edit the mime.types file – sudo nano /etc/apache2/mime.types
2. Then add this at the end of the file – application/vnd.android.package-archive
3. Reload the server configuration – “sudo service apache2 reload”
Option 2: edit .htaccess file (for shared server or user who do not have root access)
1. Edit .htaccess
2. Add this line – AddType application/vnd.android.package-archive

This will register the appropriate MIME type for the *.apk file so that both the server and mobile application can handle.

How to extract Audio from Youtube Flash Video (FLV) in Ubuntu Linux

First you need youtube-dl tool or ‘cclive’ to download the Youtube .FLV file.

Then, download the Youtube stream.
python youtube-dl http://www.youtube.com/watch?v=lee7a55401e

Alternatively, you can use ‘cclive’ to download the youtube stream.
cclive http://www.youtube.com/watch?v=lee7a55401e

After that, use ffmpeg to extract the audio and encode it to MP3
ffmpeg -i lee7a55401e.flv vn -acodec libmp3lame -ab 128000 -ar 44100 lee7a55401e.mp3

Note: You need to install the restricted codecs in order to extract MP3 audio files.

Thanks Mohammad Bahathir Hashim for the tip!

How to limit MySQL port access to specific network

MySQL service port are not meant to be accessible to the outside world as it would become a security concern to the administrator.

Although MySQL server (mysqld) by itself has a built-in mechanism to deny access from unauthorized ip-address, it still does not protect it from being overwhelmed by multiple malicious requests or buffer overflow attack directed to the server.

One of the solution is to limit the MySQL port access to trusted network using iptables

This assume your trusted network has the address within the range of 192.168.1.1-192.168.1.254


iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

MySQL server (mysqld) uses port 3306.

Note: Always assume the internet as the untrusted network!

Ubuntu 11.10 drops Synaptic package manager

The upcoming Ubuntu 11.10 release (Oneiric Ocelot) will drop Synaptic Package Manager from default installation in favor of Ubuntu Software Center.

This has been foreseen since Canonical has spend their effort in developing and improving Ubuntu Software Center as a convenience one-stop center to install free and paid software alike.

Personal Thoughts
Personally, I still prefer to use Synaptic Package Manager over Ubuntu Software Center as it is still doesn’t offer the same number of options that I used to get from Synaptic (ability to search by name, description, ability to test the fastest mirror).

But I believe the changes that Canonical and Ubuntu community made might make it easier to streamline the looks and functionality of package manager into desktop environment (Unity) regardless of the computing platform.

Synaptic