Search Results: "ag"

19 April 2010

Matt Brubeck: Read Later: a Mobile Firefox extension

Hello, Planet Mozilla! I'm Matt Brubeck, the newest member of the Mobile Firefox (Fennec) front-end team. I'm working remotely in Seattle, but you can find me in #mobile during the North American day, or follow me on Buzz/Twitter/etc. To help myself learn Fennec and XUL, I wrote a simple extension called Read Later. Like Marco Arment's Instapaper service it stores a list of web pages so you can return to them later. Unlike Instapaper, my extension does not save pages to a remote server. Instead, it uses your mobile device's storage, so you can view saved pages offline. I use code from Arc90's Readability bookmarklet to extract the main content from the page, save it, and present it in a simple mobile-friendly layout. One thing the extension can't do (which Instapaper and other services can) is synchronize saved pages between computers. This would be a great feature for a Mobile Firefox add-on, but writing my own sync service is a bit more work than I want to put into this little side project. A future version may use Weave to sync saved pages, as long as the size of the data is not a problem. If you are using a recent Fennec 1.1 build, try out Read Later and let me know what you think. And if you're a developer, you can look at the source code to see how a simple Fennec extension works.

Russell Coker: Creating a Micro Conference

The TEDxVolcano The TED conference franchise has been extended to TEDxVolcano [1], this is a small conference that features people who are stranded by the Eyjafjallaj kull volcano in Iceland. As usual TED is an inspiration to us all, so there is obvious potential for other conferences to be organised in similar situations there s no reason why a free software conference can t be organised in Europe right now! What You Need to run a Conference If a conference will have limited attendance (EG due to a volcano preventing anyone from flying to the area) then filming everything is very important. I ve seen adverts for digital cameras that support Full HD resolution (1920*1080) for as little as $AU400. $AU600 will get you a digital camcorder that does Full HD which will offer some benefits for recording long movies (such as the ability to store the video on an external hard drive). If I was stuck in a foreign hotel with not much to do then I would be prepared to buy a digital camera or camcorder for the purpose of running such a conference (my current digital camera is 5.1MP and only has 3* optical zoom, it s a nice camera but I could do with something better. A tripod can cost up to $100, but I recently bought myself a 15cm tall tripod for $10 that would do at a pinch. Once you have high quality video you can easily upload it to something like Blip.TV. Of course you get a better result if you do some post-production work to merge images of the slides for the lecture into the video, but that is a lot of work and probably requires a camera that outputs uncompressed video for best results. The next issue is getting a venue. Different hotels cater for different parts of the market, some cater to tourists, some to business travel, some to conferences. If you want a venue at short notice you may be able to get a good deal if you find a hotel that is adversely affected, for example I m sure that there are some quite empty conference hotels in Europe right now but the tourist hotels are probably reasonably busy (why not do some tourism if you are stuck). I expect that hotels really don t want to have empty conference rooms and are prepared to offer good deals for bookings at short notice. Of course you would want to try to ensure that hotel rooms aren t too expensive in that hotel as some delegates will want to stay in the hotel which hosts the conference. The minimal staffing for a micro conference is probably two people, one for taking payment, directing people, etc, and the other to film the lectures and moderate panel discussions. Rumor has it that attending without paying is a problem at conferences, for conferences that are planned in advance corporations will try and send multiple employees on the one ticket and have them share a name-tag one issue with this is that there is a fixed quantity of food supplied and if extra people appear then everyone who paid gets less, another is that people who pay really hate to see freeloaders. The best reference I ve found for people not paying at conferences is Jon Oxer s description of how Leslie Cachia of Letac Drafting Services brazenly stole a book from him [2]. Name-tags are needed for any meeting with more than about 15 people. I m not sure how to get proper name-tags (ones that pin on to clothing and have printed names maybe the bigger hotels can add this to the conference package). But a roll of sticky labels from an office supply store is pretty cheap. Costs in Wellington Along with a few other people I considered running a small security conference immediately before or after LCA 2010, that ended up not happening but I will consider doing it in future. When considering that the general plan was to get a hotel to provide a meeting room for 10-30 people (we had no real idea of the demand). When investigating the possibilities for running a conference in Wellington I discovered that the hotel fees for a conference room can either be based on paying a fixed fee for the room plus additional expenses for each item or you can pay a fixed rate per person. It seemed that there was the potential to save a small amount of money by paying the fixed fees and avoiding some payments for things like tea/coffee service. But the amount that could be saved would be small and it would incur extra effort in managing it saving $5 per person is a good thing if you have 600 delegates, but if you have 30 then it s probably a waste of time. So it seemed best to go for one of the packages, you tell the hotel what time you want the lunch and snack breaks and how you want the tables arranged and they just do everything. The cost for this seemed to be in the range of $nz35 to $nz55 per delegate per day. There is some flexibility in room arrangement, so a room that seats 12 people in the board-room layout (tables in a rectangle facing the center) would fit 25 in the classroom layout (tables all facing the front) or 50 in the theater layout (chairs facing the front with no tables). So the hotel could accommodate changes in the size at relatively short notice (whatever their notice period for buying the food). The cost for a catered conference dinner seemed to be about $nz45 per diner. In many cases it would be possible to get a meal that is either cheaper, better, or both by going somewhere else, but that wastes time and effort. So that gave an overall conference cost of about $nz135 for a two day conference with a dinner at the end of the first day. Given that the cheapest budget rate from Wotif.com for a 3 star hotel in Wellington is currently $nz85 per night it seems that $nz135 for a two day conference including dinner is pretty cheap as the minimum accommodation cost would be $nz170. Also note that the hotels which I considered for hosting the conference had rates for their hotel rooms that were significantly greater than $nz85 per night. The hotels all offer other services such as catered cocktail parties , these would be good things for any company that wants to sponsor the conference. Different cities can have vastly different prices for hotels. But I expect that the way conference rooms are booked and managed is similar world-wide and the ratio of conference costs to hotel booking fees to also be similar. Most of the hotels that cater to conferences seem to be owned by multi-national corporations. It would probably make sense to charge delegates an extra $10 or $15 above the cost of running the conference to cover unexpected expenses. Of course it s difficult to balance wanting to charge a low rate to attract more people with wanting to avoid the risk of a financial loss. Conclusion The hard part is getting speakers. If you can get speakers and panel participants who can fill the time slots and have interesting things to say then all the other parts of organising a micro conference should be relatively easy. When the cost is less than $150 per delegate then a syndicate of a few people can easily agree to split the loss if the number of delegates turns out to be smaller than expected, a potential loss of $2000 shared among a few people shouldn t be a huge problem. Also if the conference is booked at short notice (EG because of a volcano) then the hotel shouldn t require any deposit for anything other than the food which is specially ordered (IE not the tea, coffee, etc) that limits the potential loss to something well under $100 per delegate who doesn t attend. Anyone who has enough dedication to a topic to consider running a conference should be prepared to risk a small financial loss. But based on my past observations of the generosity of conference delegates I m sure that if at the conference closing the organiser said unfortunately this conference cost more than the money you paid me, could you please put something in this hat on the way out then the response would be quite positive. Note that I am strictly considering non-profit conferences. If you want to make money by running a conference then most things are different.

18 April 2010

Eugene V. Lyubimkin: dealing with unwanted recommends using cupt

Some people use '--without-recommends' switch and the problem is gone. I think that's overkill.

This post will tell how (would I recommend) to deal with unwanted recommends. The following text tells about cupt package manager, and though ideas are applicable to any package managers, the techniques may differ.


Stage 1. Facing problems

Suppose we want to install the package kde-minimal:

-8<-
$ sudo cupt install kde-minimal
[sudo] password for jackyf:
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 16 packages will be INSTALLED:

dolphin kappfinder kde-minimal kdebase-apps kdebase-bin kdebase-data kdepasswd
kfind kinfocenter konqueror konqueror-nsplugins kwrite libkonq5
libkonq5-templates libkonqsidebarplugin4 plasma-widget-folderview

The following 1 packages will be UPGRADED:

konsole

Need to get 6024KiB/6024KiB of archives. After unpacking 14.9MiB will be used.
Do you want to continue? [y/N/q]
->8-

Umm, kinfocenter? No, we don't want it to be installed.

Stage 2. Searching for a reason

Now we will use the 'reason tracking' feature of libcupt's resolver. Let's add '-s' switch (simulating) and '-D' switch (tracking reasons):

-8<-
$ cupt -s install kde-minimal -D
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 16 packages will be INSTALLED:

dolphin
reason: kdebase-apps 4:4.3.4-1 depends on 'dolphin (>= 4:4.3.4-1)'

kappfinder
reason: kdebase-apps 4:4.3.4-1 depends on 'kappfinder (>= 4:4.3.4-1)'

kde-minimal
reason: user request

kdebase-apps
reason: kde-minimal 5:55 depends on 'kdebase-apps (>= 4:4.3.1)'

kdebase-bin
reason: kdebase-apps 4:4.3.4-1 depends on 'kdebase-bin (>= 4:4.3.4-1)'

kdebase-data
reason: kappfinder 4:4.3.4-1 depends on 'kdebase-data (= 4:4.3.4-1)'

kdepasswd
reason: kdebase-apps 4:4.3.4-1 depends on 'kdepasswd (>= 4:4.3.4-1)'

kfind
reason: kdebase-apps 4:4.3.4-1 depends on 'kfind (>= 4:4.3.4-1)'

kinfocenter
reason: kdebase-apps 4:4.3.4-1 recommends 'kinfocenter (>= 4:4.3.4-1)'

konqueror
reason: kdebase-apps 4:4.3.4-1 depends on 'konqueror (>= 4:4.3.4-1)'

konqueror-nsplugins
reason: kdebase-apps 4:4.3.4-1 recommends 'konqueror-nsplugins (>= 4:4.3.4-1)'

kwrite
reason: kdebase-apps 4:4.3.4-1 depends on 'kwrite (>= 4:4.3.4-1)'

libkonq5
reason: kdebase-apps 4:4.3.4-1 depends on 'libkonq5 (>= 4:4.3.4-1)'

libkonq5-templates
reason: libkonq5 4:4.3.4-1 depends on 'libkonq5-templates kdesktop'

libkonqsidebarplugin4
reason: konqueror 4:4.3.4-1 depends on 'libkonqsidebarplugin4 (>= 4:4.3.4)'

plasma-widget-folderview
reason: kdebase-apps 4:4.3.4-1 depends on 'plasma-widget-folderview (>= 4:4.3.4-1)'


The following 1 packages will be UPGRADED:

konsole
reason: synchronized with package 'kdebase-apps'


Need to get 6024KiB/6024KiB of archives. After unpacking 14.9MiB will be used.
Do you want to continue? [y/N/q]
->8-

Now, the output is much bigger. Every package has reason(s) to change its state appended. Let's look at the chain: kinfocenter is installed, because... kdebase-apps is to install. Ok, look further, kdebase-apps is to install because... of kde-minimal. The final chain is 'kde-minimal -> kdebase-apps -> kinfocenter'.

Stage 2.5. Analyzing reason

After determining a full chain one may try to think - is this dependency chain looks OK? Maybe, some Depends/Recommends should be turned up to a less strict dependencies? If that so, it's a good idea to fire a command 'reportbug <package>' to report an unwanted dependency.

In this example, the dependency chain looks OK (at least, to me :)).

Stage 3. Installing a package without unwanted dependency(ies)

The resolution of the problem depends on the answer to the question "Why I don't want this package to be installed?"

Case 1. Only this time/package

If the answer is, say, "Because dependency 'kdebase-apps -> kinfocenter' doesn't make sense on this system", then you do:

-8<-
$ sudo cupt install kde-minimal kinfocenter-
[sudo] password for jackyf:
Building the package cache... [done]
Initializing package resolver and worker... [done]
Scheduling requested actions... [done]
Resolving possible unmet dependencies...
The following 15 packages will be INSTALLED:

dolphin kappfinder kde-minimal kdebase-apps kdebase-bin kdebase-data kdepasswd kfind konqueror konqueror-nsplugins kwrite libkonq5 libkonq5-templates libkonqsidebarplugin4 plasma-widget-folderview

The following 1 packages will be UPGRADED:

konsole

Need to get 5463KiB/5463KiB of archives. After unpacking 13.2MiB will be used.
Do you want to continue? [y/N/q]
->8-

And that's all, kinfocenter won't be installed.

Consequences:

1. This answer implies that you are not against installing kinfocenter if some other package needs it. So, while installing other packages which recommend kinfocenter cupt will suggest you to install kinfocenter again.

2. If you will want to upgrade the package, and the new version contains the same relation, cupt will not suggest to install kinfocenter.

Case 2. Forever

If the answer is "Because I don't want to see kinfocenter in my system ever", then the good choice is APT pinning system.

Place the next three lines into your APT preferences file (usually, /etc/apt/preferences or any file in /etc/apt/preferences.d directory):

-8<-
Package: kinfocenter
Pin: version *
Pin-Priority: -10000
->8-

-10000 is a very low priority, usual priorities are (0 - 1000), so cupt will not ever suggest you to install kinfocenter because of soft (Recommends or Suggests) dependencies. Moreover, if in some actions cupt will need to choose between, say 'kde-virtual kde-virtual-alternate', where kde-virtual depends on kinfocenter and kde-virtual-alternate does not, then cupt will choose kde-virtual-alternate. The exceptions possible in (very unlikely to happen) cases, when non-installing kinfocenter will result in very bad solution for selected actions. The less priority kinfocenter has, the less chances it has to be installed when not requested explicitly (as in 'cupt install kinfocenter').

Steve Kemp: Different cultures call us by different names

This past week has had a couple of minor software releases:
chronicle
I made a new release which improves support for foreign language; so dates can be internationalised, etc. The online demos now include one in with French month names.
slaughter
The perl-based sysadmin tool had a minor update earlier today, after it was pointed out that I didn't correctly cope with file content checks. I'm still pretty pleased with the way this works out, even if it is intentionally simple.
milli
This is a simple bug-record-thingy which I was playing with recently, and I've now started using to record bugs in other projects. I'll pretend its a fancy distributed-bug-tracker, but actually it isn't. It's nothing more than a bunch of text-files associated with a project, which have sufficiently random names that collisions are unlikely and which thus becomes semi-distributed-friendly.
Today I'll be learning to love Javascript a little more. I want to use the gallerific image gallery - but it doesn't make thumbnails automatically - which galleria does. I need to either come up with my own which looks like galleriffic, or port the thumbnail bits over. (I'm currently using a slightly modified version of gallerifific for my people-shots.) ObFilm: Hancock

Russell Coker: ATI ES1000 Video on Debian/Squeeze

The Problem I ve just upgraded my Dell PowerEdge T105 [1] from Debian/Lenny to Debian/Squeeze. Unfortunately the result of the upgrade was that everything in an X display looked very green while the console display looked the way it usually did. I asked for advice on the LUV mailing list [2] and got a lot of good advice. Daniel Pittman offered a lot of great advice. The first suggestion was to check the gamma levels, the program xgamma displays the relative levels of Red, Green, and Blue (the primary colors for monitors) where it is usually expected that all of them will have the value of 1.0. This turned out to not be the problem, but it s worth noting for future instances of such problems. It s also worth noting the potential use of this to correct problems with display hardware, I ve had two Thinkpads turn red towards the end of their lives due to display hardware problems and I now realise I could have worked around the problem with xgamma. He also suggested that it might be ICC, the command xprop -root grep -i icc might display something if that was the case. I m still not sure what ICC is about but I know it s not set on my system. The next suggestion was to use the VESA display driver to try and discover whether it was a bug in the ATI driver. It turned out that the VESA driver solved that problem, I was tempted to continue using the VESA driver until I realised that the VESA driver has a maximum resolution of 1280*1024 which isn t suitable for a 1680*1050 resolution display. After reviewing my Xorg configuration file Daniel noted that my frame buffer depth of 16 bits per pixel is regarded as unusual by today s standards and probably isn t tested well. As 24bpp is generally implemented with 32bits for each pixel that means it takes twice the frame-buffer storage (both in the X server and in some applications) as well as twice the memory bandwidth to send data around. So I generally use 16bpp for my systems to make them run a little faster. (II) RADEON(0): Not using mode 1680 1050 (mode requires too much memory bandwidth) I tried using a depth of 24bpp and then I saw messages such as the above in /var/log/Xorg.0.log. It seems that the display hardware in my ATI ES1000 (the on-motherboard video card in the Dell server) doesn t have the memory bandwidth to support 1680*1050*24bpp. I tried using the gtf to generate new mode lines, but it seems that there is no 24bpp mode which has a low enough vertical refresh rate to not exhaust memory bandwidth but which is also high enough for the monitor to get a signal lock. The Solution My current solution is to use 15bpp mode which gives almost the same quality as 16bpp and uses the same small amount of memory bandwidth. It seems that 15bpp doesn t trigger the display driver bug. Of course one down-side to this is that the default KDE4 desktop background in Debian seems perfectly optimised to make 15bpp modes look ugly, it has a range of shades of blue that look chunky. What I really want to do is to get a better video card. Among other things I want to get a 1920*1080 resolution monitor in the near future, Dell is selling such monitors at very low prices and there are a bunch of affordable digital cameras that record video at that resolution. Even if I can get the ES1000 to work at 1920*1080 resolution it won t support playing Full HD resolution video I can barely play Youtube videos with it! I ve previously described my experience with the awful Computers and Parts Land (CPL) store [3] where they insisted that a PCIe*16 graphics card would work in my PCIe*8 system and then claimed to be doing me a favor by giving me a credit note for the full value (not a refund). This convinced me to not bother trying to buy such a card for the past year. But now it seems that I will be forced to buy one. What I Want to Buy I want a PCIe*8 video card that supports 1920*1080 resolution at 24bpp and has good enough performance with free Linux drivers to support Full HD video playback. Also PCIe*4 would do, and I m prepared to compromise on support of Full HD video. Basically anything better than the ES1000 will do. Does anyone know how I can buy such a card? I would prefer an ATI card but will take an NVidia if necessary. Note that I have no plans to cut one of the PCIe sockets on my motherboard (it s an expensive system and I m not going to risk breaking it). I will consider cutting the excess pins off a video card as a last resort. But I would rather just buy a PCIe*8 video card. Note that I am not going to pay cash in advance to a random person who reads my blog. Anyone who wants to sell me a second-hand card must either have a good reputation in the Linux community or ship the card to me on the condition that I pay after it passes the tests. Update: The first version of this post said that I upgraded TO Lenny, not FROM it.

Christian Perrier: Debian Installer localization status

I just published the following in debian-i18n. If you read this on Planet Debian, please followup on debian-i18n. The situation for D-I translations is currently the following. It is not that brilliant, I have to say. And I limit details to "level 1". In very short: 33 languages are in good shape. *26 languages are in danger of being deactivated* More details The safe side 16 languages are complete:
ar bg cs de es fr ga it ja lt nb pt ru sk th vi
14 languages were complete before changes to sublevel 5 and only have 5 fuzzy strings to very seldomly used packages:
ast bn el eo et eu fi gu mr pl sl sq sv tr zh_TW
3 languages have a few strings to update in sublevels 1 to 3 but have active translators who will probably easy cope with them:
be nl zh_CN
The unsafe side 12 languages had random updates since lenny but not on a regular basis. These languages are at risk of being deactivated for Squeeze if they are not complete for sublevels 1 and 2:
da gl ko pa ro he hi hu ka pt_BR ml tl
8 languages were complete in lenny but had no update since then. These languages are at risk of being deactivated for Squeeze if they are not complete for sublevels 1 and 2: bs ca dz hr id km lv mk ne nn ta wo Other languages are in various situations. Those marked "(P)" are not activated and have nearly no chance to be activated for Squeeze, the exception being Sinhala (si) which is making great progress. The 6 active languages listed below are at risk of being deactivated:
089%  uk     1
087%  ku     1
086%  am     1
083%  kk
083%  si (P) 2
072%  sr     1
069%  cy     1
064%  is (P) 1
043%  ms (P) 1
034%  kn (P) 1
025%  br (P) 1
015%  se     1
014%  mg (P)
014%  te (P) 2
012%  fa (P) 1
009%  xh (P) 1
008%  ur (P) 1
002%  hy (P) 1
000%  lo (P)
Squeeze release plans have not been made yet but I would say this is time to become aware of the situation and start hunting for translators for "endangered" languages.

17 April 2010

Stefano Zacchiroli: oh my

let's face it After having tamed for a day and a half my INBOX, my IRC log, and my @replies, of an unexpected message flow about the election results, after having being pinged by the -press team to contribute a quote for a very nice and professional press release, after having fired mutt -s "Bits from the (newbie) DPL" debian-devel-announce@lists.debian.org, ... it's time to realize that I've been elected DPL. I still have a bunch of mixed feelings (happiness, fear, responsibility, etc.) to disentangle, but above all I'm really proud of our processes (well I don't mind the result either!). I'm grateful to the other candidates and to all the people that took part in campaigning discussions. As I've observed already, campaigning has been exciting for me. It wouldn't have been so without the courage of all candidates and the inquiries of all contributors. No wonder we have had both the highest percentage of voters of recent years (yes, WAT runs of course helped that), and an absolute number of voters close to that of past "heated" elections. In days in which most of the big players in the distro market are companies (and hence take money-driven decision), I can't be more proud to be a member of a huge volunteer project whose processes are driven by a truly do-ocratic and democratic constitution. See you in a bit. PS 1 in case you wondered, yes, I've fired mutt, but I'm far from having written something in the body of the mail! In the next few hours I'll first distill a personal TODO-list / detailed-plan out of my platform and of the inputs that I've already received. Then I'll finalize my first ever DPL bits to d-d-a. PS 2 In the meantime ... I'll surely be looking for a new "maintainer" for RCBW, any taker? :-) PS 3 shameless plug! The mythical Debian Kilt is being weaved again, and you still have your chance of getting one in time for DebConf10. If you're interested, check out this post by Phil Hands and sign up on the wiki, I'm definitely getting one!

Enrico Zini: Tweaking locale settings

Tweaking locale settings I sometimes meet some Italian programmer who prefers his system to be in English, so they get untranslated manpages and error messages. I sometimes notice that their solution often leaves them something to complain about. Some set LANG=C and complain they can't see accented characters. Some set LANG=en_US.UTF-8 and complain that OpenOffice Calc wants dates in the format MM/DD/YYYY which is an Abomination unto Nuggan, as well as unto Me. But the locales system can do much better than that. In fact, most times people would be extremely happy with LC_MESSAGES in English, and everything else in Italian:
$ locale
LANG=it_IT.UTF-8
LC_CTYPE="it_IT.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="it_IT.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="it_IT.UTF-8"
LC_NAME="it_IT.UTF-8"
LC_ADDRESS="it_IT.UTF-8"
LC_TELEPHONE="it_IT.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_IDENTIFICATION="it_IT.UTF-8"
LC_ALL=
A way to do this (is there a better one?) is to tell the display manager (GDM, KDM...) to use the Italian locale, and then override the right LC_* bits in ~/.xsessionrc:
$ cat ~/.xsessionrc
export LC_MESSAGES=en_US.UTF-8
That does the trick: English messages, with Proper currency, Proper dates, accented letters sort Properly, Proper A4 printer paper, Proper SI units. Even Nuggan would be happy.

16 April 2010

Vincent Sanders: Claudia black makes this look good

OK maybe the title is a bit of a reach, but she is pretty and my topic is dull.

It is the school holidays and between entertaining the kids I have been experimenting with the vala (see there is the link to the title) language. Overall I really like it, building a usable graphical GTK application is a snap and that side of it works well.

Unfortunately, and here comes a a whole pile of fail, the documentation is lacking, not just poor but mostly non-existent. You rapidly discover yourself using the Glib and GTK library documentation to try and infer how things work.

Underneath, the vala compiler is clever, it is really a c code generator. It takes your vala source file converts it to c and compiles it. When it works smoothly it works very well, when something is not quite right you can end up with a large pile of pieces complete with the C compiler spitting out cryptic nonsense.

This is all exasperated to new heights of madness when you want to access a simple c library. I say simple because if you want to access a Glib based library its easy and "there is an app for that". Because vala is object oriented c interfaces must be described as an object. This description is performed using vapi files. The file format is documented by the simple approach of "we already wrapped a load of libs go look at their vapi files"

For my small starter project I wanted to access a tiny c library I had written. The entire interface described in a single header header (excluding copyright) is:
typedef enum motor_dir  
motor_off = 0,
motor_forward = 1,
motor_back = 2,
motor_brake = 3,
motor_dir;

int edgerbtarm_init(void);
int edgerbtarm_close(void);
void edgerbtarm_ctrl_motor(int motorn, motor_dir direction);

Yes that is it! one enum, an initialise a finalise and a single operation function. The vapi file I came up with after a great deal of trial, error and head scratching was.
[CCode(cheader_filename = "libedgerbtarm.h",
lower_case_cprefix = "edgerbtarm_",
cprefix = "")]
namespace edgerbtarm
[CCode(cprefix = "motor_")]
public enum motor_dir
off,
forward,
back,
brake


public int init();
public int close();
public void ctrl_motor(int motorn, motor_dir direction);
This seemed to work until I tried to use the motor_dir type within my vala code at which point the c compiler started throwing errors about undeclared macros
arm.vala.c:297: error:  EDGERBTARM_TYPE_MOTOR_DIR  undeclared (first use in this function)
I struggled for some time and finally ended up asking my friend Enrico for help. He initially suggested I simply use an int instead of the motor_dir type and cast when I needed to. This approch worked and let me compile the program, it did however seem a bit grubby and removed the type safety of the enum.

Then Enrico came up with the "correct" solution. the enum description in the in the vapi file needed an extra parameter so vala would know the enum did not have a Glib type...yeah it was obvious to me too :-/

so by altering the vapi file enum declaration to
[CCode(cprefix = "motor_", has_type_id = false)]
public enum motor_dir
off,
forward,
back,
brake
Everything works as you might expect and the motor_dir enum can be used as a type within the vala program with no more fuss.

So the outcome of all this is that while vala is an interesting language which I may well use again in future, one should be aware that it is still very immature as a solution and has nowhere near enough documentation especially round the awkward stuff where it needs it most.

Gunnar Wolf: I, for one, welcome our new Italian overlord

The 2010 Debian Project Leader election is over! (but the page is not yet updated Try here Thanks to Steve McIntyre for two long years of good work And, of course, congratulations to Stefano Zacchirioli! I, for one, welcome our new Italian overlord.

Dirk Eddelbuettel: Rcpp 0.7.12

A new bug fix versions 0.7.12 of Rcpp is awaiting inclusion into CRAN and Debian. It is also available from here. This is another bug-fix version related solely to a build failure on Windows. Trying to protect paths with spaces has the side-effect of breaking backticks use, which unfortunately is already in use by a number of package that since broke during CRAN autobuilds. No other changes were made. As always, full details are in Rcpp Changelog page and the Rcpp page which also leads to the downloads, the browseable doxygen docs and zip files of doxygen output for the standard formats. A local directory has source and documentation too. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page

David Welton: Make Life Easier for European Startups: Simpler/Cheaper Limited Liability Companies

As I've mentioned here before, one of the differences between "Europe" and the US is just how cheap it is to start a company in the US. Before we go any further, I'll take a moment to add the standard "yes, I know that Europe is not one country" disclaimer, and specify that I'm mostly talking about continental Europe. Starting a company in the UK or Ireland isn't nearly as bad. In Oregon, I spent $55 to create DedaSys LLC. If I'd created it with one or more partners, I would have spent something on a lawyer in order to create a solid agreement, but that is of course a voluntary expenditure that we would pay for because it provided us with some value. In Italy, it costs thousands of Euros just to get started with a company; before you've made any money at all. And, while there are gradual improvements, it's still a bureaucratic process that pretty much must involve at least an accountant and a notary public. And you have to involve the very arbitrary number of 10,000 euros of capital in the company, supposedly there as a guarantee for the people you're doing business with. But 10,000 is not nearly enough to cover some kinds of problems you might cause, and way more than, say, a web startup with a couple of guys and their laptops need. My friend Salvatore says it's possible to sort of "get around" sinking the full 10K into your company, but in any case, the principal of "caveat emptor" is a more sensible one. At most, make a transparency requirement so that people dealing with companies can tell exactly how much reserves they have. During a recent bout of cold/flu, compliments of our daughter's nursery school, when I had some extra time on my hands, I decided to do something about this, however much it may be pissing into the wind. I set up a site: http://www.srlfacile.org (warning: Italian only) As well as a Google Group, and petition for people to sign, in an attempt to make a little bit of noise about the problem, here in Italy. While it's likely that the actual bureaucratic mechanisms are more smoothly oiled in other European countries, I have my doubts as to whether the actual amount of paperwork can compete with the very minimal page or two required by many US states. And in any case, the costs are still quite high, and while we all have different levels on the idea of the role of government, and ideal levels of taxation, I think we can agree that it's sensible to levy taxes only after a company has begun to make money! So - how about it? Anyone want to create sister initiatives in other countries in Europe where things aren't as simple and easy as they should be? Anyone care to tell of how this problem has been fixed elsewhere? I've heard tell that in Germany, there is now a simpler/cheaper way to create limited liability companies.

Joey Hess: 10 years

This month is the ten year anniversary of when I started blogging with this post. After a strong start in 2000 thanks to advogato.org, I slowed down, and 2003 saw no blog posts at all. Since then I have kept going fairly steadily, to no set schedule, writing when I feel the need. In all, 984 posts over ten years, or almost two posts per week. 205000 words. 650 pages if it were all bound into a book. (Sounds like a lot maybe, but the software I've grown to run the blog is 3 times longer.)

15 April 2010

Josselin Mouette: A new toy

It takes a lot to prepare for a big trip if you want to really enjoy it. This time, we re going to Japan, and we bought some stuff to stay connected there. First, there s the new camera: that s a Sony 230. We haven t made a photo trip to see all its capabilities yet, but it looks like an excellent toy so far. You ll see probably more photos on this blog in the future. And there s the new laptop: a Packard-Bell Dot-M/A. Theoretically it s called a netbook, but in practice it has everything a real laptop has. The reason I chose this model is that it features Radeon (X1270) graphics and a 64-bit processor, all in a 11,6" laptop which is one of the cheapest of all. Lots of power in one kilogram for a low price, although the drawback is more cells in the battery. Getting the Dot-M/A to work under Debian I first tried to install lenny on it, and while it worked nicely there are several problems with hardware support.
  1. The CPU runs extremely slow; you would think it is an Atom. It takes no less than one minute to boot a minimal installation. This is a very strange issue.
  2. Wi-Fi doesn t work, even after installing the firmware.
  3. 2D works out of the box, but 3D doesn t: the kernel doesn t recognize the PCI ID.
  4. Frequency scaling doesn t work, it always runs at full speed which eats battery at an impressive pace.
Upgrading to squeeze solved the first three issues in a blink. The CPU is now as fast as you can expect from an Athlon 64 @1,2 GHz, there s wifi and 3D. OTOH I was hit by a GStreamer bug when the useless snd_pcsp module was loaded why isn t this thing blacklisted by default? ACPI nightmare CPU frequency scaling is another story. I discovered that the BIOS for such Athlon L110 computers does not expose P-states in the ACPI DSDT table. Which means Linux cannot tell at which frequencies it is supposed to work. However, thanks to the awesome work from a guy named Krists Krilovs and the awesome tutorial from the Gentoo wiki I was able to: After a reboot, I immediately noticed the fan slowing down. Under GNOME, the CPU was no less than 10 C cooler and the CPU frequency applet started to work. <hrule> The Debian kernel maintainers deliberately chose not to provide support for loading a DSDT table from the initrd. There are very good reasons for this, and anyway it shouldn t be necessary to hack something as awful as that to have power saving support. The question remains: how do we deal with this madness? There needs to be some kind of support out-of-the-box for the Athlon L110, which is otherwise a very nice beast. Could the powernow-k8 module set hard-coded defaults when it detects this CPU model? It would be better than the current situation. Other pieces of the toy Otherwise this laptop is very good hardware. Among other things, I enjoyed: There is one minor annoyance: the integrated RealTek Ethernet card is only 100 Mbits/s. With all this performance otherwise, you would have expected Gigabit, but well, not everyone has GigE at home yet.

Bernd Zeimetz: gimp-plugin-registry package updated

Yesterday I finally found the time to update gimp-plugin-registry, the (hopefully!) largest and best collection of plugins for The GIMP. As usual here comes a short summary of the changes: Hope you like my work, suggestions and bug reports are welcome as usual!

Steve Kemp: Planning to be surprised when you deliver?

I'm constantly amazed by how blas electricians are with regard to live voltage. I'm used to mixing with software developers, who have a healthy fear and respect for "hardware", or physicists who're a very cautious bunch on the whole. A week or two ago I developed a leak in my flat's roof, which lead to a small amount of minor water damage and a failure in my lighting. I've had a couple of people out to look at it, and they all seem quite happy poking around with the (potentially soggy) electrical cables without me disconnecting the ring / main supply. Still I guess they must know what they're doing; they've not previously been killed ... ObFilm: Juno

Matt Zimmerman: Ubuntu Inside Out Free Software and Linux Days 2010 in Istanbul

In early April, I visited Istanbul to give a keynote at the Free Software and Linux Days event. This was an interesting challenge, because this was my first visit to Turkey, and my first experience presenting with simultaneous translation. In my new talk, Ubuntu Inside Out, I spoke about: The organizers have made a video available if you d like to watch it (WordPress.com won t let me embed it here). My first game of backgammonAfterward, Calyx and I wandered around Istanbul, with the help of our student guide, O uzhan. We don t speak any Turkish, apart from a few vocabulary words I learned on the way to Turkey, so we were glad to have his help as we visited restaurants, cafes and shops, and wandered through various neighborhoods. We enjoyed a variety of delicious food, and the unexpected company of many friendly stray cats. It was only a brief visit, but I was grateful for the opportunity to meet the local free software community and to see some of the city.

Gustavo Noronha Silva: WebKit2 and WebKitGTK+

So you ve seen people talking about WebKit2, perhaps have seen someone claiming it drops support for Linux , and you ve been wondering what the hell that means for WebKitGTK+. Well, welcome to the preemptive Q&A section with WebKitGTK+ maintainers =D. Let s first explore some history so we can better understand what exactly is going on. What exactly is WebKit2? Currently, when we say WebKit we really mean one of the ports that are built on top of WebCore using the WebKit layer. WebCore is the part that does all of the hard Web-related work, WebKit an API layer that exposes WebCore functionality in a coherent way, so that the platform-specific ports can expose a public API layer for their applications to use, which is usually also called WebKit . This WebKit layer was designed by Apple to build the Mac, and Windows ports it maintains, and was later released as Free Software so that other ports, such as the GTK+, Qt, EFL ports could be built on top of it, instead of having to do all the heavy lifting from WebCore directly.

Current WebKit model WebKit2 is nothing more than the second version of that interface, with a whole lot of changes on what you can expect from it, and on how it interacts with WebCore, and the platform-specific API and UI. First of all, the first WebKit was not API stable, and that interface was usually not made public by the various ports - they only exposed their platform-specific APIs. WebKit2 is being designed to provide a stable, cross-platform, C-based, non-blocking public API. This is huge. It will allow cross-platform code to be written without having to consider language, and port differences for basic functionality. The second big change is the API will be made fully non-blocking. Currently most things you do are asynchronous already, but some of them may be completed in a synchronous ways (like, loading a string into WebKit instead of an URI). This is important for responsiveness, and is also a very important need for what comes next: process splitting. WebKit2 will bring into WebKit proper the concept of splitting the UI process from the Web process, similar to what Chromium has. It also much more awesome than what Chrome has for a large number of reasons, including, but not limited to:

  1. It s being contributed directly to the WebKit project, in a cross-platform way that lets ports such as WebKitGTK+ take advantage of it, instead of being shipped directly into Safari, like Google does with Chrome;
  2. The process separation goes bellow the API layer, meaning that all complexity involved in managing the process separation is handled by the library, and hopefully none of it leaks to the application using it; that means that applications like Devhelp and Yelp will be able to take advantage of this without having to make their lives more complicated;
There s a much better diagram in WebKit2 s wiki page, but here goes a simplified version that demonstrates what I m talking about:
WebKit2 model
What WebKit2 is not? WebKit2 is NOT a rewrite of the whole WebKit stack. Webcore will continue mostly unchanged, and all ports currently building on top of it will keep working. It is also not a fork - the code lives in the same tree as the current version of WebKit, which will allow us to progressively move towards using this new, improved layer. WebKit2 is not Apple-only, and it is not dropping Linux support. Initial builds of the code that is being landed will likely show up building on Linux in the near future (specially because us porters are already eager to play with it). What happens to WebKitGTK+? In the near future, nothing special. We will continue working towards making it feature-complete, more stable, faster, and rocking on it as always. We will, though, start working out how we can best take advantage of WebKit2 in order to provide an even more awesome library for the G world. What this means is you can expect us to have a library that will provide a nice GTK+ widget, just like we have today, with a GObject-based API, like we have today, but that is built on top of this new WebKit2 infrastructure, taking advantage of the process-splitting, and the bigger focus on not blocking the UI thread. This should give us a platform that is more stable, and faster and more responsive than what we already have today. The API is bound to change, of course, but the WebKit2 version of WebKitGTK+ will be a separate, parallel-installable library, and we will keep supporting the WebKit1 version while we work on making the new one at least as good as the current one. This is long term we re talking here. We ll likely see WebKitGTK+ 1.4, and 1.6 come to life before we are satisfied enough with WebKitGTK+2. We hope this clears some of the doubts up, and lightens your hearts! The WebKitGTK+ maintainers.

Joachim Breitner: zpub article in Linux-Magazin

The 05/2010 issue of the German Linux-Magazin contains an article of mine about DocBook, Subversion and zpub. I was quite surprised to find it there I submitted it in January and did not receive any feedback. But of course it is a nice surprise to find out it was accepted! The article, the zpub website and zpub itself is only available in German so far, but there is an English blog post describing zpub.

MJ Ray: Debian Project Leader Election Campaign Round-up

I ve been AWOL for most of the debian project leader election campaigns this year, but I still want to vote, so I ve been dredging the emails on the last day. Maybe someone still has to vote and reads this, or maybe it ll help someone to interpret the result. What I ve done this year is to make a quick tally of platform points and campaign answers that I liked and disliked for each candidate, then total them up to get an order. If anyone gets a negative (more dislikes than likes), then I ll rank them below NOTA. Platforms: Margarita Manterola, Stefano Zacchiroli, Wouter Verhelst, Charles Plessy. Some of the questions: Make of that what you will. It surprised me which way the scores came out, but there was one answer with such a massive problem (in my opinion) that I ranked its giver equal with the next candidate down anyway. If you re a debian developer (DD), have you voted yet?

Next.

Previous.