Rohmad Hidayat's Blog


My Notes on Mobile Technology, Python GUI, Python Web Framework, Software Development, Database, Server, Embedded System, Mini Computer

Q: What is Wireless-N (draft 802.11n)?

What Is Wireless-N?
Q: What is Wireless-N (draft 802.11n)?
A: Wireless-N draft 802.11n version 1.0A: The 802.11n standard will be the next generation of high-speed Wi-Fi, capable of delivering the range and capacity to support today’s most bandwidth-hungry applications, like streaming HD (High Definition) video, voice and music. Currently approved for 1.0 draft status by the IEEE (Institute of Electrical and Electronic Engineers) Task Group-N committee, final 802.11n specification is expected to be approved in 2008.

Q: How does Wireless-N work?
A: Wireless-N uses multiple technologies such as MIMO (Multiple Input, Multiple Output), which utilizes multiple radios to transmit and receive at the same time to maximize wireless networking performance. While MIMO itself is not a standard, it is the underlying technology behind the throughput increase in 802.11n. These multiple radios transmit multiple streams of data called “spatial streams.” The higher the number of spatial streams, the higher the throughput. Numerous streams of content can move over the same channel at the same time, multiplying the capacity of each channel. Wireless-N can further double the capacity by optionally using two 20MHz channels. With smart antenna technology, strong, weak and reflected signals are combined into one data stream for maximum range–virtually eliminating dead spots throughout your home or office.


Filed under: Computer

Software E-Ticket, Solusi Ticket Anda…!!!

Akhirnya kami hadirkan produk software kami selanjutnya, yaitu Software E-Ticketing. Software ini dibuat untuk mempermudah proses pembuatan ticket dalam bentuk Digital sehingga lebih fleksibel dan mengurangi beban bisnis dalam pembuatan tiket konvensional.

Beberapa Fiturnya adalah:


1. Setting jenis tiket dan harga
2. Setting Anjungan/Permainan/stand
3. Pencetakan Tiket dengan Barcode Printer
4. Otomatisasi Proses Pengecekan saldo tiket
5. Akumulasi tiket dengan membeli voucher baru
6. Laporan Penjualan Tiket, Kunjungan, traffik pengunjung anjungan.
7. Dapat digunakan sistem Member

Filed under: Programming

A minimal mobile-aware web app with Python & cloud-based device detection

In this article we’ll look at a how to make a minimal device-aware web application. The point of this article is not to demonstrate a useful application but rather to show just how little code is required to make an app that is fully device aware, and that can change its presentation entirely depending on the nature of the device accessing it.

To keep things simple and lightweight we’ll use Python in conjunction with and DeviceAtlas Personal (the cloud-based version of DeviceAtlas). is a minimalist Python web framework that suits this example because it is simple and lightweight but the techniques demonstrated here will work equally well in any other web framework. You will need to install if you want to run this example.


DeviceAtlas Personal is a device detection web service that requires no installation, configuration or maintenance – it just works. To make this easier to incorporate into a Python project I’ve attached a Python module to this article that wraps the web service into a convenience function that does everything you need.

Without further ado, here is the code:

import web
from DeviceAtlas import DaPersonal
urls = ( '/', 'index',)
app = web.application(urls, globals())
pageTemplate = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" ""><html xmlns=""> <head> <title>test page</title></head><body><p>Hello, %s user</p><p>%s</p></body></html>'
class index:
    def GET(self):
        props = DaPersonal.get_device_properties(web.ctx.env['HTTP_USER_AGENT'])
        if props.has_key('mobileDevice') and props['mobileDevice']:
            return pageTemplate % ('mobile', props)
            return pageTemplate % ('sedentary', '')
if __name__ == "__main__":

Run the server as follows:


Now, accessing the URL http://localhost:8080/ will result in two different outputs:

Desktop browser

Hello, sedentary user

Mobile browser

Hello, mobile user

{u’mobileDevice’: True, u’isBrowser’: False, u’displayWidth’: 320, u’displayHeight’: 480, ‘_source’: ‘cache’}


  • Caching – DeviceAtlas Personal is best used in conjunction with local caching to avoid the delay incurred by the round-trip to our servers. For new devices that have not been seen before and hence are not in the cache, the detection time is typically in the order of 500ms; for previously-seen (cached) devices it is unmeasurably small (less than 1ms). Caching is enabled by default in the module but you will need to create the appropriate directory for it (typically /tmp/DeviceAtlasCache).
  • DeviceAtlas Personal – this is a preview version of the service, and right now we make no guarantees about stability, performance, or uptime.
  • Deployment – this application can be run as a standalone application that implements its own HTTP stack, or run as a CGI, or WSGI, or mod_python application with Apache / Lighttpd / nginx

Closing Comments

This is an extremely simple application, clearly, but it nonetheless demonstrates a couple of key points:

  • Device adaptation need not be complex. In this application cloud-based detection has completely removed this burden, and yet is accurate and very fast
  • Adapting websites do not necessarily require complex frameworks and lots of code


Filed under: Catatan Lepas, Programming, Python