yet another blog about computer, technology, programming, and internet

Thursday, May 29, 2008

Setting up an FTP Server Behind NAT (Network Address Translation)

Thursday, May 29, 2008 Posted by Ismail Habib , 152 comments
Before starting, I assume that you have enough knowledge about FTP, active and passive mode in FTP, and NAT (Network Address Translation).

My home LAN (Local Area Connection) is consisted of several computers connected to The Internet via a router with a single IP Address, therefore obviously NAT is required. With NAT, there are two types of IP Address, local and global address(es). The computers in my network use local addresses which are only recognized inside my network. On the other hand, the router uses both address, so that it is possible to reach the router from local network or from the internet. I want to use one of my computer as an FTP server that can be accessed from outside my local network. The problem is that with only local address, the computer I used for FTP server couldn't be accessed from outside the local network.



In active mode, client is the one responsible in opening ports for data transmission. However, in passive mode (which is more popular), this responsibility is taken care by server. This is a similar problem from the previous one. The ports which are opened by the server are only available for those in the local network since it is using a local address.

Solution: Port Forwarding

In order to make the local FTP server available for anyone connected to the internet, a port forwarding must be applied to the router. For active mode, you just simply add port 21 (the default port for FTP) and forward it to the FTP server address. For passive mode, the same thing also have to be applied. In addition, several other ports are also need to be opened for data transmission.

Example:
I'm using the very common router (LinkSys WRT54GL) with local address 192.168.1.1. I want to open the port 21 and another ports from 60000-60050 for data transmission (this is actually up to you, pick anything above 1024). Open the router's interface from browser: http://192.168.1.1. Open the Application & Gaming -> Port Range Forward and fill in as follow (192.168.1.100 is my FTP Server's local address).



FTP Server Application

Another important thing that you need to do when using passive mode is setting up the FTP Server application itself. I think most of the FTP server application supports the usage of FTP server behind NAT. I'm going to use the free FileZilla FTP server as an example. In order to make the FTP Server works, you need to let it know about its global address. If you have a fixed address then you just have to tell the application about it, otherwise you will need another tool to retrieve the global address such as the one provided by FileZilla: http://ip.filezilla-project.org/ip.php.

To set up the FileZilla FTP server, open the Edit -> Settings menu and choose "Passive mode settings". If you have a fixed IP address (like in my example is 202.169.1.1), fill in the "Use the following IP" field, otherwise (or if you're not sure), just tick the "Retrieve external IP address from" and fill it with "http://ip.filezilla-project.org/ip.php". Tick both "Don't use external IP for local connections" and "Use custom port range". Fill the port range with the same range that you have filled in the router settings.

Tuesday, May 27, 2008

Echochrome: Not Just Another Game

Tuesday, May 27, 2008 Posted by Ismail Habib , 15 comments
Even though I'm not a real gamer, I still like to follow the development in the game world. From what I see in the recent years, the development of games is a bit stagnant. It's true that in matter of graphics we have been experiencing an incredible improvement. However, the types of game doesn't vary as much as I expected. A death in creativity?

If you also have a similar opinion, then you might be interested to know this game: Echochrome (Mugen Kairou). It is a game developed by SONY for the PlayStation Portable and PlayStation 3. Echochrome is a puzzle game involving a figure traversing a rotatable world where physics and reality are affected by perspective. What seems to be a impossible path is made possible by rotating the camera to the right angle. A hole will not have any effect when you cover it with another object.

This game based on OLE Coordinate System developed (an engine that determines what is occuring based on the camera's perspective) by Jun Fujiki. This engine made it possible to constraints movement not only by 3D coordinates but also by the position of camera as well.

Take a look at the trailer below and I hope you will enjoy it as much as I do :)

Tuesday, May 13, 2008

Computer Technology, Now and Twenty Years Ago

Tuesday, May 13, 2008 Posted by Ismail Habib 49 comments
With or without us realizing, the technology has been improving significantly over the past 20 years. One of the most significant changes can be spotted in the improvement of computer technology. Computer nowadays has better performance, smaller size, and bigger capacity. On top of that, the improvements of computer technology make it possible to lower the cost of computers. All of those lead to many unimaginable capabilities of computer.

Before 1980, the idea of “computer for everyone” was considered as a very unlikely, if not an absurd idea. However, keep in mind that most of the advanced technology we have today started from a mere dream. It was IBM who made it possible by introducing the first computer intended for home usage, called “IBM PC (Personal Computer)” in the early 1980s. It is true that before IBM, several companies had already attempted to release a personal computer, but none of them shared the similar popularity as IBM PC. Since that time, the computer technology started to grow immensely.

In 1987, Intel introduced the first 32-bit processor 80386 which is the third generation of processor. During the next 20 years, the development of processor has been quite outstanding and nowadays we are quite familiar with the multi-core processor known as the 8th generation of processor. To practically compare the third generation processor and the 8th generation processor is virtually impossible, however, it is still possible to compare those two using a measurement of performance in MIPS (Million Instruction per Second) scale. The 80386 processor had the processing capability of 8.5 MIPS while the high-end processor introduced in 2006, Intel Core 2 Extreme is working at 57,063 MIPS, which is 6713 times faster. It is not even necessary to mention that there exists a prototype called “Intel Polaris” capable on working in 1,800,000 MIPS just to show that there is significant improvement in processor’s performance.

The capacity of computer has also been increasing rapidly. In approximately 20 years, hard drives (common non-volatile storages for computers) has evolved from a fifty two-foot diameter disks holding only five MB (5,000,000 bytes) of data to today’s drives at the size of 3.5 inches wide capable of storing one TB (1,000,000,000,000 bytes) or more. Moreover, the development of “flash memory” made it possible to have an even smaller device with decent storage capability. The smallest flash memory available commercially called microSD is only at 15mm x 11mm x 0.7mm, or about the size of a fingernail. Despite its physical size, it can store up to 8GB of data (around 1600 MP3 or 13 movies in VCD’s format!).

The most popular Operating System (OS) in the world, Microsoft Windows had only started in 1985. The first two unsuccessful versions of Windows were nowhere near the Windows we know today. They were barely called Operating System because they were merely extensions to the console-based MS-DOS and inherit the latter’s flaws and problems. The later version of Windows called the Microsoft Windows 3.0 scored a significant success. It was capable of running multi-task applications thanks to its new memory management. Another significant improvement was its user-friendly GUI (Graphical User Interface), making it possible for the PC users to enjoy better interface that previously only be enjoyed by the more exclusive Apple Macintosh users. The latest version of Microsoft Windows is called Vista that was released in 2006 as a replacement for Microsoft Windows XP. However, despite many new exciting features introduced in Vista, many people still reluctant to upgrade their system.

Computer technology may have changed a lot, however, the same thing may not necessarily true for human. Since 20 years ago, some programmers have been keeping on developing a certain useless and troublesome programs called computer virus. It is a program that can copy itself and infect a computer without permission or knowledge of the user. If anything different about developing virus 20 years ago and now, then it should be the motives. "The most significant change has been the evolution of virus writing hobbyists into criminally operated gangs bent on financial gain" said F-Secure's chief research officer Mikko Hypponen. Unfortunately, “This trend is showing no signs of stopping".

Thursday, May 08, 2008

Google Translation Now With Language Detection

Thursday, May 08, 2008 Posted by Ismail Habib , , 13 comments
It is a bit surprising that only 3 days since I post about Creating a One-Click Web Page Translation Button, Google Translation now includes another cool feature: language detection. So, instead of picking source and destination language now you can just select the destination language and let Google decides the source language. You can update the translation button here. You might also notice that the number of supported languages has increased quite a lot. The number of possible translation also increased drastically from 31 pairs to more than 500 pairs!

Related post

Tuesday, May 06, 2008

Sharing Internet Connection using WiFi (Windows XP)

Tuesday, May 06, 2008 Posted by Ismail Habib , 81 comments
Here is the situation, you have two (or more) laptops (or PC) with WiFi capabilities. You don't have any router, switch, hub, or whatsoever. Just a single Internet port enough for one of your computer. Don't be worry, because you still can share the Internet connection by using ad-hoc network.

First, you need to pick one of those computers as a "server". Connect it to the Internet using the usual way. Next, open Control Panel>Network and Internet Connections>Network Connections. Open the Wireless Connection Properties. Change tab to Wireless Networks then click Add... button. Under the Association tab, input your Network Name as you like. Clear the The key is provided for me automatically check box and select the This is a computer-to-computer (ad hoc) network check box. Fill in the Network Key along with the confirmation with a 13-digit password and then press OK. Press OK once again to close the dialog box. Now you have finished with the first computer.

For the other computer, check for available wireless network. Usually a notification balloon will pop up and you can just simply click on it or just go to the Network Connections, right click on the Wireless Network Connection and click on View Available Wireless Networks. Select your network, and click connect button on the lower right corner. Input the Network Key and press connect once again.

If the first computer is using a PPPoE connection to gain access to the Internet don't forget to allow other computers to use it. You can do it by accessing the Network Connections, then open the properties of the connection. Open Advanced tab, check the Allow other network users to connect through this computer's Internet connection and set the Home networking connection to Wireless Network Connection.

In my experience, this network is not very stable. Not really sure what is the cause, but still good enough for a temporary solution.

Monday, May 05, 2008

Creating a One-Click Web Page Translation Button

Monday, May 05, 2008 Posted by Ismail Habib , , 57 comments
For someone like me who live in a foreign country with unfamiliar language, a translation tool is everyday necessity. My favorite tools for web translation so far are Google Translation and Altavista's Babelfish. However, I feel a little bit uncomfortable when using them in my usual way. It is because the process is too long and not straightforward.

Usually the sequence of web translation is like this:
1. Open a website with unfamiliar language
2. Copy the website's URL or the specified texts to be translated
3. Open web translator tool, paste the URL or the texts
4. Translate it

The sequence is not natural, what I really want to do are:
1. Open a website with unfamiliar language
2. Translate it (or select some texts and translate it)

I tried some extensions for my browser. Mostly the extensions are too sophisticated and complicated, while what I need is just a simple tool. After a bit of searching, I found that Google actually have the tool that I need, and it is very simple. Just go to here (I'm using English as my base language) and you will see this:


Drag the translation button you need to the browser's toolbar. Now you have the translation button. To use it, you just need to open a website and click the translation button, or select some texts before do so.

Related post

Sunday, May 04, 2008

Portable Applications

Sunday, May 04, 2008 Posted by Ismail Habib , 18 comments
Are you working with several computers? Do you have some favorites application that is not available at your workstation? Do you have problem on installing your software because you don't have the priviledge to do it?

If you at least have one question answered yes, you probably will like portable applications. Portable Applications is just like another applications, except that they are... portable. It is designed to fit on your flash disk, iPod, external drive, or whatever. It involves no installation at all, no set-ups, no registry changes, and no whatsoever. Imagine all your favorite software in a single flash disk, you can pick any PC to work with, and still you have all the applications you need.

The applications are vary from Operating System to games, which virtually means that you have everything there. You can use Notepad++ for your editor, XAMPP for web developers, GIMP for image manipulation, FileZilla FTP Client, the amazing Mozilla Firefox, a complete OpenOffice suite, and many other things. You can check out the list of portable applications on wikipedia or on portable applications website, and yes, there's still a ton of applications that aren't on the list. You might want to check out the portable applications suite as well, a package that includes a set of commonly used applications.


Since Portable Applications are usually a modification from its conventional counterpart, it is only possible for applications in open source license. Commercial licenses in general won't permit any redistributions. Free applications with commercial license on the other hand permit redistributions, but not modifications. So most of the time you will find portable applications as a free, open source applications. Not bad at all.

Altough I'm not working with so many computers, I still found that portable applications are very useful. Its characteristics (not require any installation, leaving almost no "footprint") are remind me of a old-good days of the famous Disk Operating System (DOS). No installation required, and even if there is, most of the time it is just the same as copying a bunch of files to harddrive and that's all. Even uninstalling is just a simply files removal. No traces left. A clean and simple solution. Just love it.

Image taken from: http://portableapps.com/
Inspired by: http://brahmasta.net/2007/03/14/aplikasi-portabel/ (Indonesian)

Thursday, May 01, 2008

Google Analytics, a Tool for Bloggers and Webmasters

Thursday, May 01, 2008 Posted by Ismail Habib , 20 comments
At my early days of blogging, I had a doubt whether there are some people over there actually read my blog. Thus, if that is the case, how did they know about my blog, where are they come from, and what did they read? I think this is quite common questions for blogger or webmaster.

Google Analytics answers all of those and even some more unthinkable questions. It provides a nice package of web analytics including:
  • number of visitors and pageviews
  • bounce rate
  • average time spend on your site
  • percentage of new visitor
  • location of visitor
  • source of your traffic
  • detailed information about content
  • keyword used to reach your site
  • and many many many more

It wrapped nicely by google with a simple but nice interface (considering the number of features you get) and on top of that it is absolutely free! Are you using adwords? Then this tools also might come in handy, even though I don't know exactly how it works since I don't use adwords (yet). You can even customize your own goals in your blog/website. I believe those features will fit really nicely for a blogger/webmaster who really want to improve their website, or for people like me who enjoy playing around with statistics of my own website ;) Hey, I got a visitor from Moscow!


You can even put more than one website into this webmaster tools, as long as you really own them of course :) Google Analytics require us to put a tracking code into our blog/website (yea that is obvious).

If there is something lacking from Google Analytics then it must be because it updates the statistics on a daily fashion. For me, it is not that important to have a real-time statistics. However, a daily updates still seems too long. Let's just wait if Google is willing to give a higher update frequency. Meanwhile, it is still very useful and fun.