Many Latin alphabets (like my native Czech) contain characters with diacritical marks (or can be called accent marks). For some application in computers (like searching, cross systems compatible file names etc.) we would like to remove diacritics and translate to string containing just ASCII characters. Common approach for this is to use UNICODE character decomposition.
It utilizes fact, that unicode has two ways how to represent characters with diacritics – for instance character á (LATIN SMALL LETTER A WITH ACUTE) normaly has code 225, but this character can be decomposed into two unicode characters code 97 (LATIN SMALL LETTER A) and character code 769 (COMBINING ACUTE ACCENT). This process will work for majority of common ‘special’ Latin characters, however there are still few left, for which unicode does not have decomposition defined – these include characters like ø (LATIN SMALL LETTER O WITH STROKE) used in Norwegian language or ł (LATIN SMALL LETTER L WITH STROKE) used in Polish language. A special handling is needed for these characters – basically a transcription table to map these into some basic Latin characters (it could be 1 to many mapping – for instance æ (LATIN SMALL LETTER AE) should map to ‘ae’).
Characters decomposition is defined in unicode standard and all common computer languages contains libraries which contain unicode definitions and can decompose characters. Below Ishow how this can be done in python. Continue reading Removing Diacritics Marks from Strings
Having heard so much about clouds and ‘Infrastructure as A Service’ recently I decided to try Openstack – complete open source solution for cloud computing. Openstack is actually a set of softwares, that together provide necessary services for a cloud infrastructure. Openstack (Essex release) can be installed in virtual machine, Virtual Box in my case, so I gave it a try and here are some of my observations: Continue reading Partly Cloudy – Openstack in VM
After upgrade to the new version of Linux (Mint 13, which is based on Ubuntu Precise) I’d found that my trackpoint is not working right (on Dell E6410), it was bit unresponsive and movement was not smooth. Touchpad was generally OK, but trackpoint really sucked. So I had to look into details of mouse setup in X and I was really surprised how many various parameters are there and how many aspects of mouse behaviour could be modified. So I’d like to share few tips how to set pointing device – apart of those obvious settings, which are available in desktop settings (Acceleration and Sensitivity).
Continue reading The Taming of The Mouse – Details of Mouse Setup in X
In many scenarios it would be nice if we can provide some dynamic actions to report (classical) region, which can be handled via Ajax calls, rather then submitting a whole page – these actions could include:
Often it is necessary to print an object to debugging log. This small utility function can help to print all properties:
import inspect, pprint
props=filter(lambda t: not t.startswith('__'),
inspect.getmembers(object, lambda m: not inspect.ismethod(m)))
I ‘ve recently created multiselect plugin for APEX 4.1 – there is still little information about how exactly write APEX plugins, and some aspects – like cascading LOV, I have not found explained anywhere, so I’d like to share my experiences here:
What You Need
To write plugin you will need:
- Oracle Database and APEX running somewhere – the installation manual for APEX is very good and you can go step by step according to it
- Knowledge of PL/SQL – it is good to have PL/SQL Reference at your hand
- Reference documentation for APEX 4.1 API
- Some knowledge of APEX and also some basic knowledge of plugins – try some available tutorials you can find on web – this article will focus on rather specific issues within Item plugin.
- Oracle SQL/Developer (or other development tool)- to write PL/SQL – optional, if you are PL/SQL god and can write correct code by heart – if you struggling with PL/SQL like me this is an invaluable helper.
Visual Python or vpython is python library for simple 3D animation, especially useful for animation of simple physical scenes – like pendulum, ball on a spring, movement in gravitational field etc. It is fairly simple to use and gives quite nice animations, which can demonstrate some laws of physics. I actually spot this package, when I saw an article about physics in popular mobile game “Angry Birds – Space”. In that article they had been arguing about physics laws in the game and also referred to vpython, where they made some experiments. I told myself I have to try it myself, so I’ve created small program using vpython. Continue reading Having 3D fun with Visual Python
In some places Internet access is available only via proxy, which in practice means that you are limited to HTTP and HTTPS protocols only. But if you have external email accounts like Gmail, this is bit limiting, because you cannot access your email via IMAP protocol from your email client.
However there can be a solution – if proxy support HTTPS protocol, it means also that it supports CONNECT method that tunnels a connection to remote server unchanged. This method could be used to tunnel any protocol, so basically it could tunnel also IMAP ( and SMTP for outgoing email). Continue reading Accessing IMAP/SMTP via HTTPS Proxy
Aptana studia is a plugin to Eclipse, which contains many useful modules (like PyDev) and amongst many also GIT module. However this module is different than EGit ( and EGit cannot be installed because it conflicts with Aptana Git)so manual on Github is not applicable. So how does it work? On my recent project I’ve tried to use it and here is quick guide how to create project and push it to Github. Continue reading Aptana Studio And Git/Github
When I was starting this site I was looking for a reliable solution to backup the site. I have been looking bit around and found this excellent plugin for WordPress:
This plugin is absolutely awesome, with many features, just mentioning few key ones:
- You can create backup job, where you can define what tables and what files will be backed up – thus you can basically backup all site, or selectively just critical data
- You can store backup file to many locations: locally, to remote server or to many popular cloud services (Amazon S3, DropBox …) – so the backup available even when site is completely down.
- You can schedule backups with any periodicity (cron like scheduler) – you can also run it manually
- It works well even in limited hosting environments