Wednesday, July 14, 2010

Django running

I wanted to test one of the python web frameworks. I installed Django on Ubuntu. Here is the Django server running on my machine:


Now I'd like to know how I can use it to show the extracts of a table of metadata ! :-)

I don't know weather this was a stand-alone server or not. It's also possible to use Django on a standalone server. django-wsgiserver installs a web server for Django using CherryPy's WSGI server.

Python scripts as CGI on a web server

Today I wanted to run python scripts on a server. I have already Apache installed on my Ubuntu machine at home.
I dropped a python script (called rubbish.py) at /usr/lib/cgi-bin/rubbish.py But I couldn't see the output in my browser at: localhost/cgi-bin/rubbish.py (there was an error).
So I looked for help from the python cgi-script documentation. And their sample script works, it gives an html output that I can see in my browser. The main thing I had forgotten seems to be the need for the comment #!/usr/bin/env python as a first line of the file.
Here is what I see at the address http://localhost/cgi-bin/rubbish.py :


I wanted to run the script without cgi-bin, so i installed modwsgi.
Then restarted the Apache with sudo /etc/init.d/apache2 restart
I added a little python script into the /var/www/ folder. But it doesn't execute. Instead it loads the file. I saw somewhere that I have to change the .htaccess file. To tell the server that this is not just a file but a script the line AddHandler python-program .py does this. Well somehow it doesn't word. And the Apache doc says: "In general, you should never use .htaccess files unless you don't have access to the main server configuration file." I should change the httpd.conf file located at /etc/apache2/ on my computer. Pffffiou, :-) I'll do this another time, I already spent the whole afternoon on it.
  • I got inspiration from this forum (first result on google for "LAMP server python"), but then needed more help to get to the correct cgi script formatting (the first line with #!/usr/bin/env python).

Friday, June 11, 2010

Crop pages in a PDF

It's possible to crop pages in Adobe Acrobat:

That's usefull if you have a document that has increadibly wide margines and you'd like to print 2 pages per sheet.

Undo close tab in Firefox

I was looking for a way to undo close tab in firefox an I have found an extenssion for it.
But a comment on the page says: " Useless Press Ctrl. Shift T instead of installing an add on for it." And that's quite true! :)

You can also view the recently closed tabs in the history menu.

Thursday, June 03, 2010

Turn off auto notifiers to increase your productivity

Process your email in batches:

A simple way to increase your productivity is to turn off auto notifiers. It’s simply not necessary to check email constantly throughout the day, and doing so will regularly interrupt more important tasks. After receiving thousands of emails I can safely say that I’ve never received one that couldn’t wait 12 hours or so.

Process your inbox in batches. Make it once or twice a day, and try to get your inbox down to zero. This will allow you to plow through the rest of your productive tasks without constant interruption.


I'm sad to say I use outlook at work. Turning off auto notification is called: "Turn Desktop Alerts on or off" in the outlook help page:
On the Tools menu, click Options.
On the Preferences tab, click E-mail Options, and then click Advanced E-mail Options.
Under When new items arrive in my Inbox, clear the Display a New Mail Desktop Alert (default Inbox only) check box.

Tuesday, June 01, 2010

Why Python

Python Experts - Why They Do Python

Matthew: """Python syntax encourages programmers to write easy-to-read programs . [...]  A well-written python program reads like a book. """
The homogenization of scientific computing, or why Python is steadily eating other languages’ lunch
Tad: """A few years ago, you couldn’t really do statistics in Python unless you wanted to spend most of your time pulling your hair out and wishing Python were more like R (which, is a pretty remarkable confession considering what R is like)."""
Paypal engineering: 10 myths of enterprise python:
Myth #7: Python does not scale
"""Scale has many definitions, but by any definition, YouTube is a web site at scale. More than 1 billion unique visitors per month, over 100 hours of uploaded video per minute, and going on 20 pecent of peak Internet bandwidth, all with Python as a core technology. Dropbox, Disqus, Eventbrite, Reddit, Twilio, Instagram, Yelp, EVE Online, Second Life, and, yes, eBay and PayPal all have Python scaling stories that prove scale is more than just possible: it’s a pattern."""
Astronomers switch from IDL to Python. IDL is a vector oriented programming language. A wiki version of the IDL vs Python comparison, comment from the blog IDL vs. Python:
"Lately I’ve gotten increasingly frustrated with programming in IDL: [...] I find myself spending more and more time on “stupid stuff” like wrestling with the ancient and limited plotting system, building very ugly GUIs which nonetheless take vast amounts of cumbersome code to build, and dealing with namespace conflicts between routines with identical names in different libraries. Python is not perfect, but it’s a heck of a lot better than IDL in all of these aspects. Like I said, I’m only halfway switched (and certain collaborations are going to keep me in IDL for years, as will all my legacy code) but for new stuff Python seems like it’s got the wind behind its sails."

Interesting modules


xlrd and xlwt

Have a look at those python tools to read and write Excel files:
Maybe have a look at this discussion group: python-excel.

Friday, May 21, 2010

Battery sizes

I needed a 23A battery for a key-fob style car opener. I wasn't sure about the number and I think I found a List of Battery sizes, with a correct description of the battery I'm looking for: 12 V, length 29mm Diameter 10mm.

Thursday, May 13, 2010

Using synaptic on the eeePC

Using synaptic on the eeepc:

OK, it turns out there's an easy way to install Audacity[...]. I showed you the hard way already. Now let's take a look at the easy way.

  1. Go ahead and open a terminal by starting the file manager (located under the Work tab) and selecting "Open Console Window" from the Tools menu.
  2. Now type "konqueror" to bring up the KDE file manager/web browser. If you want to avoid entering your password down the line, try typing "sudo konqueror."
  3. Select Applications
  4. Select System
  5. Select Synaptic Package Manager
  6. Under Settings, select Repositories
  7. Click add and enter "deb http://http.us.debian.org/debian/ stable main"
  8. Click the Search button and enter Audacity, GIMP, or any other program you're looking for.
  9. Click on the check box next to the program you want to install and select Mark for installation
  10. Click Apply and you're all set.

Wednesday, April 28, 2010

Monday, April 19, 2010

Annoying line in word

This blog post saved an annoying problem I was having in word. A line that was impossible to remove turns out to be a table border, just choose *no border* and it's removed.

Wednesday, March 24, 2010

Remove image tags from an html page

On my company's wiki site, there is an internal phone book . I wanted to be able to use it offline, so I saved it to my local computer. The web paged saved with a folder and attached images (normal behavior). But I wanted to remove the images.

I used Scite's replace function with regular expressions, I first removed all line breaks, then I used the simple regular expression
 <img[^>]*>
to match for all images and replace them with no text.

Wednesday, March 17, 2010

Installing Ubuntu server on KVM virtual machine

In the previous post, I tested the usage of Xubuntu on a virtual machine.

Today I installed Ubuntu server edition on a virtual machine. The 64 bit edition won't install on the virtual machine. By dowloading the 32 bit version , I could install a server on the virtual machine. Command:
kvm -m 750 -cdrom ../Downloads/ubuntu-9.10-server-i386.iso -boot d ubuntu-server.img
It installed fine, and I added the 2 options to install a LAMP server and a Postgreesql database.
After installation, I restarted the new system with the command:
kvm -no-acpi -m 700 ubuntu-server.img
[edit] The -no-acpi flag is to disable acpi. I used the command from a how-to done by a guy who wanted to avoid a kernel panic on an Ubuntu 7.10, but in ubuntu 9.10 acpi works well. So I can start the server with:
kvm -m 700 ubuntu-server.img

Starting Ubuntu-Server on KVM Virtual Machine

Next step would be to access the http server from outside the virtual machine. For this I probably need to set a public bridge.

Tuesday, March 16, 2010

Virtual Machine

I installed KVM on my Ubuntu computer.
Following this instruction, I created a raw drive image with the command:
qemu-img create xubuntu.img -f qcow2 2G
I used the option -m 750 to start the virtual machine (VM) with 750 Mb of RAM. Then I used the option -cdrom to use a file as a cdrom image and the option -boot d to say that the VM shall boot on a cdrom drive. The command:
kvm -m 750 -cdrom ../xubuntu-9.10-desktop-i386.iso -boot d xubuntu.img
...starts the installation of Xubuntu on the virtual machine.

Screenshot of the starting page of Xubuntu on the virtual machine.

The virtual Machine runing Xubuntu

Now I'm going to install Ubuntu server and try to install a LAMP on it.

Thursday, March 04, 2010

From DOS to Windows NT

In 1981 IBM relesead the Personal Computer with Microsoft's MS DOS as operating system.CP/M-86:
When IBM contacted other companies to obtain components for the IBM PC, the as-yet unreleased CP/M-86 was its first choice for an operating system because CP/M had the most applications at the time. Negotiations between Digital Research and IBM quickly deteriorated over IBM's non-disclosure agreement and its insistence on a one-time fee rather than DRI's usual royalty licensing plan.[1] After discussions with Microsoft, IBM decided to use 86-DOS (QDOS), a CP/M-like operating system that a Seattle area computer company had made for its own hardware. Microsoft adapted 86-DOS for the PC hardware and IBM shipped it as PC-DOS.

After learning about the deal, Digital Research founder Gary Kildall threatened to sue IBM for infringing DRI's intellectual property, and IBM agreed to offer CP/M-86 on the PC to settle the claim. CP/M-86 was released a few months after the PC and was one of three operating systems a customer could buy from IBM. At $240 per copy it sold poorly compared to the $40 PC-DOS. Kildall would later accuse IBM of setting the prices to marginalize him, but the accounts of Microsoft, IBM, and other DRI executives indicate that Kildall had demanded a substantial royalty for CP/M-86 while Microsoft had accepted a fixed sum. Customers rapidly adopted the PC platform with PC-DOS as the new industry standard, and opportunities for DRI to license CP/M-86 to other customers dwindled.


Windows NT:
Microsoft decided to create a portable operating system, compatible with OS/2 and POSIX support and with multiprocessing in October 1988.[10] When development started in November 1989, Windows NT was to be known as OS/2 3.0,[11] the third version of the operating system developed jointly by Microsoft and IBM. In addition to working on three versions of OS/2, Microsoft continued parallel development of the DOS-based and less resource-demanding Windows environment. When Windows 3.0 was released in May 1990, it was eventually so successful that Microsoft decided to change the primary application programming interface for the still unreleased NT OS/2 (as it was then known) from an extended OS/2 API to an extended Windows API. This decision caused tension between Microsoft and IBM and the collaboration ultimately fell apart. IBM continued OS/2 development alone while Microsoft continued work on the newly renamed Windows NT. Though neither operating system would immediately be as popular as Microsoft's MS-DOS or Windows products, Windows NT would eventually be far more successful than OS/2.


Windows NT was intended to complement consumer versions of Windows that were based on MS-DOS. NT was the first fully 32-bit version of Windows, whereas its consumer-oriented counterparts, Windows 3.1x and Windows 9x, were 16-bit/32-bit hybrids. Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Home Server, Windows Server 2008 and Windows 7 are based on Windows NT, although they are not branded as Windows NT.

Wednesday, March 03, 2010

Linus: Software evolves over time

Linus (after having been asked about cooperation in writing software): "I never actually though about how the kind of community works at all. Until people started asking me about it later on, like journalists started - how can this ever work? - (in a very doubting way, by the way). [...] these people who asked the questions, they were not exactly convinced that it could work at all. So I kind of had to rationalise, why the Linux kind of development does work. And I don't know if this answers your question, but I actually came to my private conclusion which is that it really is all about evolution. And what you find, whether you like it or not is that [...] you don't design software, you don't even know what it is the user wants. Most cases the user himself doesn't know what he wants [...] If you designing things and you don't know what you're designing for, the design simply cannot work [...] and it turns out that this is a problem that humanity has had forever"

In this video (around 0:36:00) :



Interactive linux kernel map.

Tuesday, March 02, 2010

Richard Stallman comparing proprietary software companies with colonial powers

Richard Stallman speaking at a conference on development. He compares proprietary software companies to the colonial powers of the past: Another feature you might remember from the colonial system was that the colonial power would recruit a local elite, a few local people who would - like maybe the nobles or whoever, or one tribe against another or they would create tribes if they weren't tribes (so they can massacre each other decades later) - and so the local elite, they would get certain privileges and in return they would help keep everybody else down. Well you can see that today, some proprietary software companies actively recruit local elites, they set up a software development centre in your country and the people who work there are part of the local elite or they do some favour either for politicians secretly or for the government openly. But it doesn't make any difference which one, either way they're buying influence in the government, converting that governement - from a sovereign state - into their local overseer, of their empire, who's job is to make sure everybody else becomes dependent on the same non-free software. They say the schools: "we will help you by giving you these gratis copies of our non-free software, so that you can turn your students into addicts of our software. Why do I use the term addicts? Because they develop a dependency, on this software. And then after they graduate, you can be sure they're not going to be offered these gratis copies any more. Because it's only the first dose that's gratis. Once you're addicted, then you're supposed to pay. And then, also of course the companies that these graduates work for,... those companies are not going to be offered gratis copies, so what essentially these companies - these software developers - are doing is: they're recruiting the schools into agents to lead people into permanent life-long dependency. These are things that the open-source movement usually doesn't talk about, that's why I don't support open-source. Open source is a way of promoting software that usually is free, but without mentioning these ideals. These are issues of freedom, they're left in the background, open source people usually talk only about practical values, you know, how do you get powerful convenient software and how much will it cost. Well free software probably allows you to save money too if you're not being forced to pay for permission to use it, you can probably save money. But I think that's a secondary issue, even in poor countries freedom is important. We should never start saying: "Oh they're so poor, freedom for them doesn't matter. All they need is some bread and circuses". Which they had here once upon a time. and then they shouldn't even think about being free. I think freedom is important in every country, in every society, whether its rich or poor. Nonetheless, people who support open-source often contribute to extending the free software community. Many of them develop free software, those are useful contributions. I'm not saying that what they do is bad, I'm saying that by itself it is not enough. Because it's weak, you see. When you say: "the goal is to have powerful, reliable, convenient software and get it cheap", then it becomes possible for the representatives of proprietary software to say: "well we claim that we'll deliver you more powerful reliable software, we claim that our total cost of ownership will be cheaper". And I think it's usually bullshit. When Microsoft says this, it's based on distorted facts, but it's weak, but when we say the goal is to live in freedom and to be allowed to cooperate with other people in a community, they can't say they're going to offer us more of that cheaper. Because they don't offer that at all, they're not even competing with us. They're out of the running! Once you decide you want to live in freedom, they're out of the running. So we are trying to help you reach freedom, in a community, they are trying to subjugate you, but they say that they'll get you there faster! And maybe they would.



Monday, March 01, 2010

Wikibook linuxguide

Linuxguide: "The easiest way to begin using a Linux system may be to use an already running system. For example, some systems may be available in various educational or work environments. In this case you only need to contact the appropriate administrator and obtain a user ID and password. You will only be able to explore the system to a certain extent, but the first steps can be taken without having go through the installation process. Another trouble-free way of obtaining a Linux system is to buy a computer with Linux pre-installed. The number of vendors selling such systems is constantly increasing."