Copyleft Hardware
Free Electrons: ELC 2010 videos
Videos from the Embedded Linux Conference in San Francisco, April 12-14, 2010.
The 2010 edition of the Embedded Linux Conference was once again a very interesting event. For embedded Linux developers, the Embedded Linux Conference is a perfect place to learn about new technologies, profit from the experience of other developers, and to meet key software developers.
For people who couldn’t attend this conference, and for single core people who didn’t manage to attend two or three talks at the same time, here are the videos that we managed to shoot. As usual, the videos are released with a Creative Commons Attribution – ShareAlike 3.0 license.
Welcome speech, by Tim Bird (CE Linux Forum)
HD video (12 minutes, 128M)- Real-Time Linux Failure, by Frank Rowand (Sony Corporation)
slides, HD video (53 minutes, 488M) - Using Interrupt Threads to Prioritize Interrupts, by Mike Anderson (The PTR Group)
slides, HD video (61 minutes, 574M)
Android: A Case Study of an Embedded Linux Project, by Greg Kroah-Hartman (Novell)
slides, HD video (52 minutes, 893M)- Experiences in Android Porting, Lessons Learned,Tips and Tricks, by Marc Gross (Intel)
slides, HD video (56 minutes, 398M) - Measuring Responsiveness of Linux Kernel on Embedded System, by YungJoon Jung and DongHyouk Lim (ETRI)
HD video (41 minutes, 220M) - GPIO: Talking to the Outside World, by Gene Sally (Touchtown)
slides, HD video (61 minutes, 596M) - Announcements, by Tim Bird (Sony)
HD video (6 minutes, 144M) - Embedded in 2010: An End to the Entropy?, by Matt Asay (Canonical)
slides, HD video (41 minutes, 881M)
Runtime Power Management: Overview and Platform Implementation, by Kevin Hilman (Deep Root Systems)
slides, HD video (55 minutes, 1.3G)- Embedded Multi-core with Adeos, by Dan Malek (Mentor Graphics)
HD video (55 minutes, 367M) - Ftrace – Embedded Edition, by Steven Rostedt (Red Hat)
slides, HD video (55 minutes, 346M) - Linux Toolchain Overview with Advanced Debugging and Tracing Features, by Dominique Toupin (Ericsson)
slides, HD video (58 minutes, 251M) - Case Study – Embedded linux in a Digital Television STB, by Melanie Rhianna Lewis (Red Embedded Consulting)
slides, HD video (36 minutes, 358M)
Link Time Dead Code and Data Elimination Using GNU Toolchain, by Denys Vlasenko (Red Hat)
slides, HD video (53 minutes, 628M)- Custom Hardware Modeling for FPGAs and Embedded Linux Platforms with QEMU, by John Williams and Edgar Iglesias (Axis Communications – PetaLogix)
slides, HD video (53 minutes, 544M)
Semantic Data Storage for Mobile Devices, by Rob Taylor (CodeThink)
slides, HD video (58 minutes, 258M)- Flattened Device Tree ARM Support Update, by Grant Likely (Secret Lab Technologies)
slides, HD video (56 minutes, 399M) - Supporting SoC video subsystems in video4linux, by Hans Verkuil (Tandberg Telecom)
slides, HD video (51 minutes, 678M)
An Introduction to the Qt Development Framework, by Jeremy Katz (Nokia)
slides, HD video (33 minutes, 631M)- Porting the Linux Kernel to x86 MID Platforms, by Jacob Pan (Intel)
slides, HD video (49 minutes, 512M) - Recent Developments in Open Video Technology, by David Schleef (Entroypy Wave)
slides, HD video (54 minutes, 446M)
Strategies for Migrating Uniprocessor Code to Multi-Core SMP, by Mike Anderson (The PTR Group)
slides, HD video (45 minutes, 445M)- Understanding Threat Models for Embedded Devices, by Jake Edge (LWN.net)
slides, HD video (33 minutes, 188M) - Wake-ups Effect on Idle Power for Intel’s Moorestown MID and Smartphone Platform, by German Monroy (Intel)
slides, HD video (54 minutes, 346M) - State of Embedded Linux, by Tim Bird (Sony)
slides, HD video (48 minutes, 297M) - Using the LTTng Tracer for System-wide Performance Analysis and Debugging, by Mathieu Desnoyers (EfficiOS)
slides, HD video (52 minutes, 385M) - Demo session, by GeeXbox (GeeXbox.org)
HD video (5 minutes, 172M) - Creating a Secure Router Using SELinux, by Mike Anderson (The PTR Group)
slides, HD video (59 minutes, 436M) - Using a JTAG to Debug Linux Device Drivers (Part 1), by Mike Anderson (The PTR Group)
slides, HD video (55 minutes, 314M) - Using a JTAG to Debug Linux Device Drivers (Part 2), by Mike Anderson (The PTR Group)
slides, HD video (63 minutes, 376M) - Developing for Non-x86 Targets Using QEMU, by Rob Landley (Impact Linux)
slides, HD video (57 minutes, 602M) - Effective Use of Scripting in Embedded Devices, by Steve Bennett (WorkWare Systems)
slides, video (46 minutes, 187M)
GeeXboX Enna: embedded Media Center, by Benjamin Zores (GeeXboX)
slides, video (54 minutes, 244M)- Kexec – Ready for Embedded Linux?, by Magnus Damm (Renesas)
slides, video (31 minutes, 142M) - No Crash Dump? No Problem!, by David VomLehn (Cisco)
slides, video (53 minutes, 306M)
Implementing Asynchronous Zero-Copy API for Embedded IVR Application, by Alexey Volkov (Iskratel)
slides, video (47 minutes, 124M)- Workload-based Aggressive Power Management on the Intel Moorestown MID and Future Intel MID/Smartphone Platforms, by Sujith Thomas (Intel)
slides, video (49 minutes, 146M)
Polishing Dirt: Porting RTOS Code to Linux Userspace Driver Framework, by Vitaly Wool (Ericsson)
slides, video (51 minutes, 291M)- Linux Without a Boot Loader?, by Greg Ungerer (SnapGear)
slides, video (46 minutes, 403M) - Engaging Developer Communities: Lessons and Opportunity from webOS, by Matthew Tippett (Palm)
slides, video (45 minutes, 281M) - Lock-free Algorithm for Multi-Core Architecture, by Hiromasa Kanda (SDY Corporation)
slides, video (47 minutes, 242M) - A Consideration of Memory Saving by Efficient Mapping of Shared Libraries, by Masahiko Takahashi (NEC Corporation)
slides, video (22 minutes, 192M) - Effectively Managing Documentation for Embedded Linux Projects, by Jeff Osier-Mixon (MontaVista)
slides, video (49 minutes, 162M) - Multi-core Scheduling Optimizations for Soft Real-time Multi-threaded Applications — A Cooperation Aware Approach, by Lucas Martins De Marchi (STMicroeletronics and ProFUSION)
slides, video (45 minutes, 140M) - DVFS for Embedded Linux, by Yong Bon Koo and Youngbin Seo (ETRI)
slides, video (36 minutes, 150M) - Understanding and Developing Applications for Maemo Platform, by Leandro Melo de Sales (Federal University of Alagoas, Brazil)
slides, video (54 minutes, 271M) - Evaluation of Data Reliability on Linux File Systems, by Yoshitake Kobayashi (Toshiba)
slides, HD video (33 minutes, 421M)
We hope it makes you feel like joining the next edition of the conference. If you can’t wait, what about going to ELC Europe in Cambridge (UK) in late October? It has a very interesting program too. Of course, the sessions will also be recorded. I hope to see you there!
Mirko Vogt, nanl.de: Ubud
I moved from Sanur to Ubud today, which is located in the center of Bali – staying here for at least three days.
Actually I wanted to go there by taxi, however in the morning I met three really nice local guys in my age, who offered to drive me there for free after I told them I’m going to go to Ubud today… (however) by motorcycle.
Considering the traffic conditions on Bali I really was not sure about whether taking this offer would be a good idea… however I agreed – no risk no fun… – it was an awesome experience!
So I collected all my stuff, threw it in my backpack and met with these guys – four people on two motorcycles, lurching through the traffic about 40 minutes from Sanur to Ubud having all my stuff on my back.
Watching the traffic from this point of view it seems much more and less scary at the same time. You’re now part of this chaos, praying the guy in front of you driving the motorcycle is doing everything right.
However it just works – what seems to be the worst chaos ever from the outside, from the inside everything seems to be smooth, everybody is seems to be relaxed, just trying to find out whether this gap is big enough to get through…
The accomodation is really simple, but quite nice – just a room with a bed in and a kind of open-air shower and WC. Tea and coffee the whole day and breakfast included for about 10USD / night.
[ photos will be uploaded later... ]
Mirko Vogt, nanl.de: some impressions
This post is derived from an email to some of my German relatives and friends – maybe I’m going to translate it to English later…
—
so langsam fühl ich mich wohl hier… gestern war irgendwie der erste Tag an dem ich richtig am Meer und Pool ausspannen konnte – Beweis:
Man (ich) benötigt scheinbar doch wirklich mehr Zeit als man sich eingestehen möchte – Überwindung des Jetlags, Anpassung an die Klimaverhältnisse, Verstehen und Erwidern können der balinesischen Art im Alltag…
Hängt wohl auch damit zusammen, dass ich so langsam glaube rauszuhaben, wie man mit all den Reizüberflutungen – vor Allem der an jeder Ecke und nicht-Ecke stehenden Verkäufern, die einem alles Mögliche andrehen möchten – umzugehen hat.
Die vorherige Grundlage “die wollen doch alle nur Touristen abzocken” bot nicht viel Spieraum für ernstzunehmende Gespräche. Es beginnt aber Spaß zu machen auf eben jene einzugehen, mit den Leuten einfach nur zu reden, ggf. zu Handeln, feixen, etc – vor Allem wenn man merkt, dass noch immer Interesse seitens der Verkäufer – trotz klarem Nein zu angeboteten Waren und Dienstleistungen – an ein wenig Smalltalk besteht.
Zudem – was mir vorher auch nicht deutlich wurde – wahren sie, trotz ihrer exzessiven Versuche Dienstleistungen / Produkte an den Mann zu bringen – ihre Prizipien und Kultur. Vor jedem Stand und Laden legen die Balinesen kleine Opfergaben auf die Straße, beten und überschreiten bestimmte Grenzen einfach nicht (klare Neins werden auch als solche akzeptiert).
Ich habe mir gestern Abend/Nacht Kura angeschaut – dem Ballermann Mallorcas auf Bali – wenn man da lebend rauskommt, ist man für alles andere gewappnet.
Eigentlich wollte ich mich auch dort ein paar Tage lang aufhalten, jedoch war der Rat seitens meines englischen Gastgebers – sich den Ort ggf. vorher einfach mal anzuschauen (~30 min. mit dem Taxi von Sanur aus) – eine sehr gute Idee; dort Ruhe und Schlaf zu finden dürfte nicht einfach werden.
Zudem wurde ich nun wirklich häufig vor den Australiern gewarnt – am Treffensten wurde es so formuliert: “Well, you’re German… I guess the Australians in Bali are like the Germans on Mallorca”… Kuta, eine perfekte Symbiose.
Sich in Kuta einzuquartieren ist also vorerst keine Option.
Allerdings ist der kilometerlange Strand dort trotz angrenzender Partymeile extrem ruhig, nicht überlaufen und wirklich schön und ich habe eine Menge echt netter dort lebender Leute kennengelernt die sich hier häufig zum allabendlichen Sonnenuntergang einfinden.
Darunter unter Anderem eine Gruppe von Japanern die teils auf Bali, teils auf Java wohnen – einer von ihnen arbeitet in Kuta als Friseur und will mir, weil ich der doch schon gut angetrunkenen und kettenrauchenden Truppe, die knapp bei Kasse war, ne Packung Kippen spendierte, irgendwann demnächst einen neuen Haarschnitt verpassen – bin da aber noch ein wenig skeptisch
).
Ich habe gerade eine Unterkunft in Ubud, im Zentrum Balis, gebucht – für von morgen plus zwei Nächte. Steht im Guide als Low-Budget (8USD/Nacht) Unterkunft folgendermaßen beschrieben: “Charmante kleine Bambusbungalows mit wunderschön begrüntem Open-Air-Du/WC, in der das kalte Wasser schnell zur Nebensache wird” – man darf gespannt sein
Sanur, der Ort in welchem ich mich die ganze Zeit hauptsächlich aufhalte, gefällt mir so langsam wirklich gut.
Sonne, Strand, Meer, luxuriöse Hotelanlagen deren Bars und Pools ich trotz nicht-dort-Gast einfach mitbenutze, was los, aber doch nicht zuviel – ein prima Ort zum akklimatisieren und einfühlen.
Ich werde auf jeden Fall – spätestens am Ende meines ungeplanten geplanten Rundtrips – hier in Sanur nochmal aufschlagen, zumal ich dort und Unbegung einen Haufen wirklich netter Leute kennengelernt habe, die ich auf jeden Fall nochmal wiedersehen möchte. Die weitere spätere Unterkunft hier bei der balinesisch-/englischen Familie steht mir weiterhin zur Verfügung.
Zum Schluss noch ein paar Eindrücke des Ortes Sanur in Form von ungephotoshoppten Fotos:
Dieter Spaar: OsmocomBB GSM Development
I have the impression that not a lot of people are developing for Layer-1 in OsmocomBB. Is it because GSM in that depth is too complicated ? Of course you need some GSM knowledge to start, but be assured you will learn a lot if you work on this level.
Besides the really cheap phones supported by OsmocomBB you also need a BTS or GSM Testset for doing serious work. You can use a BS-11 or nanoBTS with OpenBSC or an USRP-1 with OpenBTS. I understand that the price for this hardware might be too expensive for some of you.
However GSM Testsets are not that expensive any more. If you have the room for a large and heavy unit (around 30 Kg) the HP 8922 might be a good solution. You can buy them for a few hundred Euros and this unit is really nice: Besides the GSM Testset it can be used as a very accurate Signal Generator (10 MHz to 1 GHz) and it also comes with a simple Spectrum Analyzer (10 MHz to 1 GHz) as a hardware option. The unit is for GSM-900 but there is an additional converter available for GSM-1800 support. The converter doubles the size of the unit and you usually don't need it. One drawback is that the HP 8922 does not support Encryption. As far as I know this was a Hardware Option but I have never seen a unit for sale which has this option installed. Actually it would only require a different DSP code in one of the EEPROMs which includes the A5/1 or A5/2 encryption code, the rest (Layer-3 support and passing Kc to the DSP) is already there. As usual with most HP units, you can download the documentation from the HP/Agilent web site.
Another GSM Testset I use is the Racal 6103. Its smaller than the HP 8922 and has more Layer-3 options but is not that versatile on Layer-1. The "E" Variant of the unit also supports Encryption. You can sometimes find those units for a few hundred Euros, but be aware that it is not the "Anite" or "Aime" variant, those units require a special PC software to use them, without this software you can't do much with them. So far I have not seen this software, I only know that it is quite expensive.
If you use a GSM Testset, you have one big benefit: You can connect the phone to the Testset with a cable (there is no need for an attenuator) and don't have to care that much about emitting RF on the licensed spectrum.
Bunnie Studios: Web browser on the Infocast
A couple months back, Name that Ware featured the Insignia Infocast by Best Buy Exclusive Brands. While it’s marketed as a device for viewing chumby apps and sharing photos, as far as the DIY crowd is concerned, the Infocast is a $169, 800 MHz linux machine with an SVGA touchsreen, 128 MB of DDR2, and a 2GB disk drive.
An example of the versatility of the platform is hb’s recent port of the Qt UI framework running webkit to the Infocast, pictured running above. For those who want to build it themselves, there are instructions on the chumby wiki and a forum for questions; or you can just download a pre-packaged binary image that you can uncompress to a USB thumb drive, toss it into one of the ports on the back, reboot and use. Note that the implementation assumes a USB keyboard plugged for text input.
Of course, this is just scratching the surface on what you can do with the platform. There are folks working on porting Android and OpenEmbedded, and the hardware reference schematics are available for those inclined to the soldering iron.
Village Telco: Mesh Potatoes Go On Sale
This is a big moment for the Village Telco. We have finally arrived at the of the journey that began in June 2008 when I sat down with some very, very bright and innovative people and together we decided not to re-purpose rich world technology for Africa but to boldly design our tech to meet our own requirements. Don’t get me wrong, if something vaguely similar had already existed we would have jumped at it but at the time no one was manufacturing a mashed up WiFi AP and Analogue Telephony Adaptor. They still aren’t.
You can see the final design of the Mesh Potato at the right. Those of you are familiar with the Ubiquiti Nanostation II will know that we borrowed wholesale from their excellent enclosure design. They say imitation is the sincerest form of flattery. In this case, it is certainly true. We love Ubiquiti gear.
What we’ve borrowed from Ubiquiti is the sealed-unit design which makes for a sturdy weather-proof enclosure. What’s a little bit different is the back mounting which has a slip-on piece that can be screwed to a wall. Without the screw-on piece there is a similar mounting to the Nanostation for mounting on a pole.
The best news of all is that Mesh Potatoes are now available for purchase by anyone. Simply click on the Products link above to buy them from our webstore. The cost of each Mesh Potato is USD 119 but for the next two weeks we’re making them available at the wholesale price of USD 89 per unit. In order get that price, enter “afinemesh” as a coupon code on the Checkout page after you have selected the number of Mesh Potatoes that you’d like. Shipping is calculated via DHL from Atcom in China. Please contact us if you’d like to make other shipping arrangements. Orders placed now will ship by the end of September.
Finally, I would just like to express ongoing amazement and appreciation of the many, many people who have contributed to making the Mesh Potato a reality in small ways and in big earth-shaking ways. You know who you are. You all seriously rock. Open Software, Open Hardware refreshes the parts that other intellectual property regimes can’t reach. Thank you.
Related posts:
- Smoke testing the Mesh-Potato video – Part II We have now a new over-voltage protection circuit design for...
- A simple Mesh-Potato setup using the web administration interface Current firmware images for the Mesh-Potato now feature the LUCI...
Related posts brought to you by Yet Another Related Posts Plugin.
Harald Welte: Motorola announces "Ming" phone with Android
For those who don't know: The Motorola Ming was the A1200, a commercially very successful Linux-based phone in China and other parts of Asia, using the EZX software platform, i.e. the kind of hardware that we once built the OpenEZX software.
Motorola has recently announced that they will follow-up with some android based ming phones. It is my suspicion that apart from some mechanical design aspects, those phones will not resemble the ming in any way, neither on the baseband hardware side, nor on the application processor side, and particularly not on the software side.
So it's probably nothing than a marketing coup, trying to connect to successes of the past. Not interesting from the OpenEZX point of view, I guess.
Free Electrons: Buildroot 2010.08 released!
On the last day of August, just in time, the 2010.08 version of Buildroot has been released. For the record, Buildroot is an easy-to-use embedded Linux build system: it can build your toolchain, your root filesystem with all its components (Busybox, libraries, applications, etc.), your kernel and your bootloaders, or any combination of these components.
Amongst the interesting changes in this version :
- Complete rewrite of the bootloader build code. It contained a lot of legacy, unused and unclear stuff, it is now much easier to use and extend. We’ve removed support for Yaboot and added support for the new Barebox bootloader, and all the code to support AT91Bootstrap, AT91DataFlashBoot, U-Boot, Grub and Grub 2 has been rewritten.
- Complete rewrite of the Linux kernel build code. It was also complicated to use, with an horribly complicated kernel version selection mechanism, the new code is much easier to configure and use.
- The configuration file .config is now located in the out-of-tree directory when the O= option is used. So typically, for an out-of-tree build (which are very convenient when using the same Buildroot source tree for different projects/tests), you could do : mkdir ~/myoutput ; make O=~/myoutput menuconfig ; make O=~/myoutput
- Support for building NPTL toolchains with uClibc, using the latest uClibc snapshots.
- Support for the gconfig Gtk-based configurator, in addition to the already available menuconfig and xconfig
- A particular effort has been put on fixing many of the bugs in our Bugzilla, improving robustness thanks to automated random builds, and converting even more packages to the generic and autotools infrastructure
- Various things have also been deprecated: support for the CRIS, IA64, Sparc64 and Alpha architectures, support for Gtk over DirectFB (which is at the moment not supported upstream), Java support (no maintainer has volunteered to maintain this in Buildroot)
- Many components have been bumped to newer versions
- The shared configuration cache, which allowed to speed up the configuration of different packages, has been disabled by default, since it was causing a lot of problems with certain package configurations
I’ve again contributed to a significant portion of this release, being the author of the bootloader build code cleanup, the Linux kernel build code rewrite, leading an effort to reduce the number of outstanding bugs in our Bugzilla and many other little things. The contributors for this release are shown below :
175 Peter Korsgaard 168 Thomas Petazzoni 38 Gustavo Zacarias 18 cmchao 8 Luca Ceresoli 7 Paul Jones 6 Lionel Landwerlin 6 Malte Starostik 5 Yann E. MORIN 3 Julien Boibessot 3 Khem Raj 2 Dmytro Milinevskyy 2 Francois Perrad 2 Nick Leverton 2 Peter Huewe 2 Stanislav Bogatyrev 1 Baruch Siach 1 Bjørn Forsman 1 Daniel Hobi 1 Darcy Watkins 1 Darius Augulis 1 H Hartley Sweeten 1 Karl Krach 1 Kelvin Cheung 1 Ossy 1 Sagaert Johan 1 Simon Pasch 1 Slava Zanko 1 Thiago A. Correa 1 Will Wagner 1 Yegor YefremovFor the next release, there are already a few things in the pipeline :
- Cleanup of all the board support code in Buildroot, in order to cleanly add support for more boards like BeagleBoard, Qemu boards, Calao boards, etc. We’ll use the new minimal defconfig mechanism used by the kernel. I’ve already started working on this
- Cleanup of the package download process, to support Git and SVN download. The code has already been written by Maxime Petazzoni, reviewed on the list, so I expect it to be included fairly soon
- Rewrite of libtool handling code, to remove some of our ugly libtool hacks. The code is currently being worked on by Lionel Landwerlin
- Support for compiling toolchain using Crosstool-NG as a backend. The code is currently being finalized by Yann E. Morin, the author of Crosstool-NG
- Further work on package uninstallation, clean partial rebuild. Some work has been started by Lionel Landwerlin, but it needs some discussion
- Continue the conversion of packages to the generic and autotools infrastructures
- I have also a ton of other things on my TODO-list : rework gdb/gdbserver support with external toolchains, rework the configuration of IPv6/RPC/locale/etc. with external toolchains, set up a Wiki-based Buildroot website with tutorials and better documentation, clean up the toolchain build process, reduce the number of “enhancement” bugs waiting in our Bugzilla, etc.
As Peter Korsgaard, Buildroot maintainer, said in the 2010.08 announcement: The next release is going to be 2010.11. Expect the first release candidate in late October and the final release at the end of November..
It is worth noting that we will be having a Buildroot Developer Day, on Friday 29th October, right after Embedded Linux Conference Europe. At least Peter Korsgaard, Lionel Landwerlin, Yann E. Morin and myself should be there.
Free Electrons: Update your WordPress site from scripts
An example Python script, which can be re-used with other website engines.
The Free Electrons website is proudly powered by WordPress. It is a mix of static pages and blog posts, and we are very satisfied of the way we can manage and post content.
Being the webmaster, I had an issue though. Several of our pages share the same bits of content, in particular the descriptions of our public training sessions. To avoid discrepancies between pages, I ended up writing scripts to generate the contents of these pages from common parts. However, updating those pages on the website was done with manual copying and pasting, which was time consuming and error prone.
Fortunately, after some on-line research and practical experiments, I found a simple way of automating the process of login to our WordPress site, open a page for editing, and submitting a new version of the contents.
Since this wasn’t really straightforward, I’m happy to share the Python script I came up with, hoping that it be useful to you too:
#!/usr/bin/env python # # update-wordpress-page: updates a WordPress page with the contents # of the input file # # Usage: update-wordpress-page url-base post-id content-file # # Example: update-wordpress-page myblog.com 245 page-contents # # For each url-base, the $HOME/.update-wordpress-page file # should give the wordpress user and password # # Multiple wordpress sites are supported. # # Tested with Python 2.6 and WordPress 3.0 # # Advantage: you don't have to leave a direct database connection # to your website open, and don't have to understand # the WordPress database. # # Copyright 2010, Free Electrons, michael@free-electrons.com # License: Public domain import urllib, urllib2, cookielib, optparse, sys, os import ConfigParser, ClientForm usage = 'Usage: %prog url-base postid page-contents' description = 'Updates a WordPress page with the specified contents' optparser = optparse.OptionParser(usage=usage, version='1.0beta1', \ description=description) (options, args) = optparser.parse_args() if len(args) != 3: print 'Wrong number of arguments. Exiting.' sys.exit() url_base = args[0] post_id = args [1] login_url = 'http://' + url_base + '/wp-login.php' url = 'http://' + url_base + '/wp-admin/post.php?post=' \ + post_id + '&action=edit' page_contents = args[2] file = open(page_contents) new_contents= file.read() file.close() # Read configuration file config = ConfigParser.RawConfigParser() config.read(os.environ['HOME'] + '/.update-wordpress-page') user = config.get(url_base, 'user') password = config.get(url_base, 'password') # Open the authentication page cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode({'log' : user, 'pwd' : password, }) # Log in resp = opener.open(login_url, login_data) resp.close() # Access member only pages resp = opener.open(url) forms = ClientForm.ParseResponse(resp, backwards_compat=False) try: # WordPress has multiple forms and uses forms[1] for content # Other versions or other CMS may use [0] or [2]... form = forms[1] form["content"] = new_contents content = opener.open(form.click()).read() check_success(content) except urllib2.HTTPError, e: sys.exit("%d: %s" % (e.code, e.msg)) except IOError, e: print e except: pass resp.close()This script can only be used to modify an existing page. It just changes the contents, and doesn’t touch other attributes. Of course, you could also extend it to create new pages and posts, but this would represent much more work, having lots of input fields to fill.
Another approach would have been to open a direct database connection to the server running WordPress, and then to perform your updates directly with SQL commands. However, this requires a knowledge about WordPress databases (making the script much less generic), and the open database port also makes your website less secure.
To use my script, you will first have to find the edit URL for your page, which reveals the WordPress post id.
I suggest you to create a special WordPress user with Editor privileges. The page history will then show which changes were automated, and which were manual.
The last thing you will have to do is create a $HOME/.update-wordpress-page configuration file as follows:
[free-electrons.com/fr] user=bot password=ERrdrsdGp8 [free-electrons.com] user=bot password=Hgdeedxx55You can easily tune this script to support other web content engines. You first need to identify the login page (WordPress uses cookies to authenticate a session, instead of simple http authentication). Then, you will find the names of the input forms by reading the login page HTML code.
The second step is to open the page editing URL, and find out the name of the input form used for the page contents.
We don’t offer official support for our script, but I hope that this working code example will help you to make your own scripts, and to get you started faster. Python’s urllib2 and ClientForm really make this easy to do. What I especially like with ClientForm is its ability to modify the value of a given form, without having to read and fill any other input forms in the page, to keep their default content.
Mirko Vogt, nanl.de: successfully arrived on Bali
I successfully arrived in Bali yesterday in the evening. Flight was (as always) not quite enojoyable (Amsterdam -> Singapore more than 12 hours) – however it was bearable.
I was surprised actually by the service offered by KLM and Singapore Airlines in a positive way (food was surprisingly great: both offered fish – first time I got fish offered on an airplane as regular meal within economy class; Singapore Airlines additionally had real metal cutlery and a big portion of awesome ice-cream afterwards, for a flight of just two hours).
Met a German couple on the plane going to do professional diving somewhere in the south of Bali for three weeks. They offered me to visit them there and taking a deep look into the water with professional diving equipment. From what they told it has to be really incredible and if any way possible, I’m going to take that offer whenever I’ll be in this area.
On the final flight from Singapore to Bali I met an English guy, who is living on Bali with his Balinese wife and daugther for quite some time now and offered me to stay with them in their place for a couple of days which offer I thankfully took, as I had no clue anyway what to do after dropping out of the airplane (I in case of doubt I would have aimed a hostel near the airport mentioned in my guide).
These three people (actually four, there is an attendant living with them who is treated as part of the family) are really lovely, doing everything to make my stay enjoyable – well, I got in touch with the guy just two hours ago on the plane!
Their place – they call it “simple” – is wonderful; the whole kind-of 2nd floor is mine, within an own (bed)room, bathroom and an area with chairs and table which is opened to the inside of the whole area which in fact is a little garden – if I want to just “relax” they said…
Just take a look by yourself:
When writing this text it’s about 4 ‘o clock local time – bloody jetlag… _right now_ I just did see Bali at night (arrived at 9 ‘o clock); I’m really curious about how this all looks by day.
I took a walk in the area nearby at about 11PM and have to admit – I don’t really feel comfortable just walking around alone… Overall people offering you every kind of services in a very aggressive way, trying to rip off tourists.
However walking around in this area, tired and a little bit agitated because of the long flight, just wanna have everybody shut-up, might not have been the appropriate preconditions facing the situation in an open-minded way.
UPDATE: That was really just the first impression… the people are nice and kind, seriously. Yes, they want to sell their stuff quite often and quite everywhere, however you get used to it… just saying no, starting ignoring them or taking with them about all the world and his wife or whatever elese
So much for now – as there are lot of things I’d like to see/visit very close by the place I’m currently staying, I think I’ll keep staying here for a couple of days – trying to figure out where to go and what to do next.
Harald Welte: More GPL enforcement work again.. and a very surreal but important case
In recent days and weeks, I'm doing a bit more work on the gpl-violations.org project than during the last months and years. I wouldn't say that I'm happy about that, but well, somebody has to do it :/
Right now I'm facing what I'd consider the most outrageous case that I've been involved so far: A manufacturer of Linux-based embedded devices (no, I will not name the company) really has the guts to go in front of court and sue another company for modifying the firmware on those devices. More specifically, the only modifications to program code are on the GPL licensed parts of the software. None of the proprietary userspace programs are touched! None of the proprietary programs are ever distributed either.
If that manufacturer would succeed with such a lawsuit, it would create some very nasty precedent and jeopardize the freedom of users of Linux-based embedded devices. It would be a direct blow against projects that provide "homebrew" software for embedded devices, such as OpenWRT and many others.
I've seen many weird claims and legal strategies when it comes to companies trying to deprive developers of their freedom to modify and run modified versions of Free Software. But this is definitely so weird that I still feel like I'm in a bad dream. This can't be real. It feels to surreal.
It's a pity that I cannot speak up more about the specific company in question right now. I'm desperately looking forward to the point in time where I can speak up and speak out about what has been happening behind the scenes.
Elphel: Initial OpenLayers mockup to display images
Image Sensors World: Canon Developed 8" by 8" CMOS Sensor
Canon said it has solved large sensor speed problem through an innovative circuit design, making possible the realization of a massive video-compatible CMOS sensor. The sensor makes possible the image capture in one one-hundredth the amount of light required by a 35 mm full-frame CMOS sensor, facilitating the shooting of 60 frame-per-second video with a mere 0.3 lux of illumination, about one-half the brightness of a moonlit night.
Potential applications for the new high-sensitivity CMOS sensor include the video recording of stars in the night sky and nocturnal animal behavior.
No word is said on the sensor resolution or its pixel size. Also, it's not clear what fab Canon used to produce that large sensor. The picture below compares the new sensor with a full-frame 35mm one:

Village Telco: Dili Village Telco Rolls Out
I’ve just blogged on the latest stage of the Dili Village Telco roll out in Timor Leste. Fascinating what can be learnt from a real world deployment. I find the social and business issues just as fascinating as the technical problems us geeks usually focus on.

Test call by HAFOTI Director. HAFOTI is an NGO working on Womens issues in Timor Leste
Links
1. More photos of the Dili Village Telco roll out.
2. The Dili Village Telco Wiki.
3. Other blog posts in the Dili Village Telco series.
Related posts:
- Village Telco at linux.conf.au (LCA) 2010 I have just returned from LCA 2010 where I presented...
- Factors Affecting Village Telco Performance This post discusses the factors that affect the quality of...
- A2Billing with Village Telco We are pleased to announce the release of A2Billing 1.4.4...
Related posts brought to you by Yet Another Related Posts Plugin.
Chitlesh Goorah: FEL: Bugfix release of Perl-Verilog 3.302
Verilog::Language 3.302 was released shortly after 3.300 to fix a few bugs, namely
- Increase define recursions before error. [Paul Liu]
- Fix documentation on verilog_text and link, bug278. [Mike Z]
- Use Digest::SHA instead of SHA1, bug189. [Ahmed El-Mahmoudy]
- Fix false test failure if Math::BigInt not installed.
It will soon be among your updates. Special credits go to Veripool.
Tuxbrain: [Photos]First workshop done in Tuxbrain's Den :)
With some spare bugs here and there due the first time nerves, last August 28th , we did the Arduino initiation workshop, the first of the workshop series we plant to do in the Tuxbrain's Den. There where 10 participants and due there is only place for 11 we consider it as tremendous success :)
Below are some pictures of the most fun moment of the workshop, the Arduino "Death Roulette", a simple game to demonstrate the communication between Arduino boards and also the speed reaction of the participants, we have the record in number of players in 5 gamers :)
Image Sensors World: Omnivision Announces 720p Video BSI Sensor
OV9740 integrates automatic WB, color noise reduction in the YUV domain, automatic exposure, automatic gain control, auto black level calibration, gamma correction, defect pixel correction, edge enhancement, lens correction, and dual lane MIPI interface.
The OV9740 is sampling now and is expected to enter mass production in September 2010.
Bunnie Studios: chumby hacker boards (now available in beta)
chumby is now offering a “hacker” board, which is the guts of the chumby One, but modified to be more hacker-friendly: it comes with three high speed USB host ports, uses the power connector from the Sony PSP (instead of the weird, hard to find connector on the chumby One) and incorporates a variety of headers, such as Arduino-style shield headers and a 44-pin breakout header that gives you access to a lot of digital I/O and some analog inputs. There’s even a four-directional switch on board and some LEDs so you can do quick hacks that don’t require a video display for user feedback. Speaking of the display, while this board doesn’t come standard with an LCD, it does provide composite video output via a 4-wire 1/8″ jack so you can, by using an iPod video cable, plug the chumby hacker board into any TV that supports a composite video input.

(Photo by Adafruit)
The hacker board is currently being sold through Adafruit and also soon through Sparkfun as part of a limited-run beta program. The board is priced at around $89. The goal of the beta program is to collect feedback from users who purchase the board to fine-tune the design and to figure out what I/Os and accessories make sense to bundle with the board. Like the Arduino, we don’t integrate a lot of features onto the mainboard itself (keeps base cost low). Instead, we’d like to make sure that adequate I/O resources exist for developers to hack in the peripheral module they require to complete their project — or for more enterprising developers to build their own flavor of peripheral board and sell their own accessory.
There’s a few resources available to get people started on using the boards: a forum for general support and questions, and a wiki containing links to datasheets, schematics, and other more permanent documentation that people will find useful. Adafruit also has available a snazzy hackerboard page with tons of info, well-documented tutorials, and nice photos to boot.
One other point of note about the hacker board is that you can install a native gcc toolchain on it, so you don’t need to configure/install a cross-compiler on your host PC to develop for it. Heck, it’s got a 454 MHz CPU and plenty of disk space, so why not? Adafruit has a tutorial on how to install the compiler using a downloadable self-extracting script and a USB dongle. I’ve also heard rumors that an OpenEmbedded port is coming to the board soon, so stay tuned.
If you do end up purchasing a board and participating in the beta, please do contribute to the fora and wikis with your feedback. As always, happy hacking!
Image Sensors World: Aptina Announced 8MP Camera Solution
CCS8140 solution offers advanced functionality, such as face and scene detection, and enabling new applications such as visual search. The CCS8140 solution offers up to 250MP/second throughput processing, enabling low latency, low shutter lag, and fast 1080p/30fps HD video recording over two-lane MIPI output.
"Traditionally, camera module integrators and mobile handset OEMs have had to source their 8MP sensor and co-processing solution from two different sources, and then spend considerable time and resources in tuning for image quality" said Farshid Sabet, VP and GM of Aptina's Mobile, PC Gaming Business Unit at Aptina. "With the SoC-like configuration of the Aptina CCS8140 imaging solution, we are removing the compatibility and cost concerns associated with using standalone components and the image processing and improving performance beyond SoCs. We are pleased to provide a complete camera solution in a form that allows module integrators and handset OEMs to meet stringent time-to-market requirements, while lowering design risk and costs."
CCS8140 solution is sampling now as bare die or as packaged parts. Mass production is scheduled for CYQ4 2010.
Image Sensors World: WRGB LOFIC Sensor Shows 2x Sensitivity
Checkered White-RGB Color LOFIC CMOS Image Sensor
Shun Kawada, Shin Sakai, Yoshiaki Tashiro and Shigetoshi Sugawa
Tohoku University, Japan
WRGB pattern is said to improve sensitivity by a factor two as compared with RGB sensor. Here is the pixel and color filter layout:


















