About GNOME · Download · Users · Art & Themes · Developers · Foundation · Contact

February 10, 2007

aBaCUS OPC on 18th

aBaCUS is an annual technical symposium conducted by the Computer Science Department of CEG. aBaCUS ‘07 itself is over.. but the OPC is scheduled for the 18th of February. Lots of Prizes to be won and the rules are pretty much similar to the Kurukshetra OPC. And oh yeah, We will once again be using the hackzor OPC judge. A gist of them:

Team Size: Maximum 3
Languages Allowed: C, C++, Java, Perl, Ruby and Python
Date: 18th February, 2007
Time: 14:00 IST - 20:00 IST
Prize Money: 35000 INR

A practise contest will be conducted shortly. Look out on this blog for more details…

Technorati Tags: , , ,

February 09, 2007

10101 down

and still counting…

February 08, 2007

All of us should do Phds

People with PhDs live longer than people with master’s degrees, who in turn live longer than people with only a bachelor’s. A study of census data by Robert Erikson at Stockholm University in Sweden found that men aged 64 with a basic tertiary education had a greater rate of mortality than men with doctorates. In the years between 1991 and 1996, the less educated men had a 9.6 per cent chance of death, versus a 6 per cent risk among those with PhDs. Those with a master’s had an 8.5 per cent risk of death.

[Source: New Scientist]

February 07, 2007

February 06, 2007

Steve Jobs (Apple Inc.) protiv DRM-a

DBD_logo_final.jpg

U tekstu "Thoughts on Music" Steve Jobs komentariše mane DRM-a i zašto je to sistem koji jedino može da oteža i onemogući legalnu upotrebu kupljenog materijala, a da pri tome ne uspeva da zaštiti isti od nelegalnog kopiranja.

Pored činjenice da DRM ne može da radi (ako nešto možete da čujete, možete to da digitalno snimite, uprkos suludim idejama zaštite sadržaja u novoj verziji najpopularnijeg vlasničkog operativnog sistema, što takođe ne radi) u najveće probleme DRM-a spada to da jednom kupljenu pesmu ne možete preneti kada zamenite uređaj za reprodukciju (kao što je to oduvek bilo moguće sa audio diskovima, kasetama, vinilskim pločama itd.) te morate da iste pesme ponovo kupujete, a tehnologija sprečava prikupljanje kulturnog nasleđa i ne definiše proceduru za prelazak u javno vlasništvo po isteku autorskih prava.

Steve u pismu konstatuje da jedini način da se stvari učine normalnim je da se DRM eliminiše:

Zamislite svet u kome svaka internet prodavnica prodaje muziku oslobođenu od DRM-a kodiranu u otvorenom licencnom formatu (prim. prev. MP3 format nije potpuno otvoren, ali to je meni prihvatljiv kompromis u odnosu na današnje stanje stvari). U takvom svetu svaki uređaj može da reprodukuje muziku kupljenu u bilo kojoj prodavnici, i svaka prodavnica može da prodaje muziku za bilo koji uređaj. Ovo je očito i najbolje za korisnike, i Apple bi tu ideju prigrlio u zagrljaj. Ako četiri najveće kompanije licenciraju Apple-u njihovu muziku bez obavezne DRM zaštite, u iTunes muzičkoj prodavnici bismo prodavali muziku bez DRM-a. Svaki iPod ikada napravljen će moći da reprodukuje ovu muziku.

Zašto bi ove četiri najveće muzičke kompanije pristale da Apple i ostali distribuiraju njihovu muziku bez zaštite DRM-om? Najjednostavniji odgovor je zato što DRM nikada nije, i nikada ni neće zaustaviti muzičku pirateriju. Iako muzičke kompanije zahtevaju da muzika koja se prodaje preko interneta bude zaštićena DRM-om, iste ove kompanije nastavljaju da prodaju milijarde diskova godišnje koji sadrže potpuno nezaštićenu muziku....

February 01, 2007

two questions about creative commons

question 1: when did creative commons start offering the No Derivative Works add-on to creative commons licenses?

question 2: how long until we see the iPodOnly add-on?

((ipod art lifted from rstevens of diesel sweeties))

edit: i understand that for some people and some types of work, "no derivatives" makes sense. i understand that even "you have to give me money" makes sense as a license. i don't have anything against either. i merely think that someone who says "you can't use my work in the creation of another work" isn't really putting their work into what i would call a "creative commons".

January 28, 2007

Im in ur specs, synergistically leveragin ur award-winnin opportunities

Quiz time: Guess what it is about?

The Hardware Start Button, (…), is designed to be an attractive and discoverable actuator for launching the new Start menu and search experiences in the Windows Vista family of operating systems. The Hardware Start Button creates and deepens affinity between physical hardware and the Windows Vista user experience while complementing the brand platforms and product design languages of hardware manufacturers.

If you guessed "the Windows key" (found on just about every keyboard manufactured after 1996), then you're right. And this ridiculous paragraph is the intro to a spec detailing such exciting aspects as what paint to use, or how polished the key surface can be.

 More gems:

What’s new in Version 1.01?

Conventional Keycap Design Requirements (page 7)A matte finish with a consistent texture of MT11000 or equivalent may be used on the Hardware Start Button dome and chamfer instead of an SPI A2 gloss finish for an indefinite period of time, not until December 31, 2007 as the Version 1.0 specification stated.

The Hero Start Button functions as a Start Button just like the other implementations in this specification. It is not required and is provided as an option for keyboard manufactures that want to take advantage of its more dramatic look.

And what is this "more dramatic look"?

Larger size, clear dome, and full-color printing and placement on the keyboard. The Hero Start Button uses a lens insert and is placed directly below the space bar.

If you feel brave, read for yourself.

In other news, OpenOffice.org is a steaming pile of shit that leverages every fucking opportunity to fucking crash every fucking minute and present you with a completely useless and retarded recovery dialogue even though I never changed a single character in that document.

quick shell hack -- gtc

this is fun.

gtc.

use it like this (in a makefile):

CC = gtc -pkg gconf-2.0

or just

gtc -o evil evil.c

you get gtk for free. other pkg-config'd packages can be added with -pkg. enjoy.

January 27, 2007

Komentar na "Đelić iz Davosa: Treći dan" sa B92 Blog-a

Božidar Đelić je pre par dana počeo da na B92 Blog-u objavljuje zapise sa njegove posete Svetskom ekonomskom forumu u Davosu. Ono što je meni privuklo pažnju jeste:

Prvo, razgovarao sam sa predsdnikom Majkrosofta Internejšenl koji vodi u firmi sva tržišta sem SAD, Žan-Filipom Kurtua (Jean-Philippe Courtois) o strateškom partnerstvu koji bi Srbija i Majkrosfot mogli da formiraju.

...

Dogovorili smo se da se, po formiranju reformske vlade, napravi veoma ambiciozan višegodišnji plan razvoja elektronske srpske državne uprave (e-government) gde tragično kaskamo za našim susedima, kamoli svetskim liderima.

A ovo je komentar koji sam tamo objavio, a ovde ga u delu prenosim:

Zanimljivo mi je da ignorišete e-Europe 2005 plan i iDABC inicijativu pri Evropskoj komisiji za elektronsku upravu koja podržava upotrebu slobodnog softvera u javnom sektoru prvenstveno radi dostupnosti i prilagodljivosti softvera svim građanima. I Slovenija i Hrvatska su usvojile sličnu politiku korišćenja slobodnog softvera.

[Slobodan softver] dozvoljava organizacijama da dele rezultate i know-how i prilagode gotovo njihovim potrebama. Ne manje važno, osigurava privrženost otvorenim standardima, pa olakšava međupovezanost i daje jednak pristup informacijama i uslugama javnog sektora...

Ja ne kažem da sa nekim ne treba razgovarati. Lično bih želeo da oni zaposle još 1000 naših stručnjaka i prihvate otvoreni model razvoja softvera (iako su obe stvari podjednako nerealne). Pozivam Vas samo da sagledate i drugu opciju koju lično podržavam i za koju verujem da može imati daleko bolji učinak na razvoj domaće softverske ICT industrije.

Kao još jedan prilog mojim stavovima uputio bih vas na studiju koju je podržala Evropska komisija o uticaju slobodnog softvera na inovacije i konkurentsku prednost kada je reč o evropskom ICT sektoru, objavljenoj krajem prošle godine.

Posebno važno mesto slobodni softver ima i u obrazovanju. Brojni zaključci OLPC projekta (laptop za 100$) koji podržava i UN pokazuju da se tako pružaju jednake šanse svima, razvija znatiželja kod pojedinaca, a zašto da ne pomenem i značajnu materijalnu uštedu. Sve su to razlozi zašto je izabran upravo slobodan softver. U komentarima je već pomenuta Ekstramadura u Španiji, koja je po mnogo čemu slična nama. Kompletan sistem sa sve obukom i prilagođavanjem je koštao manje od milion umesto 18 miliona evra. A i taj novac je ostao u lokalnoj sredini. Mislite o tome.

January 26, 2007

hilarious n800 ad

i got my "have a cheap n800" email today from nokia.

first let me say how fantastic nokia is. they absolutely don't need to give us discounts on these devices which many of us would likely pay full price for anyway. they absolutely don't need to make a huge contribution to guadec. but they do. that's awesome. thanks, guys.

second, i have something hilarious to share with everyone. i was looking for information on if the n800 will be available for purchase from nokia in canada any time soon and i came across this hilarious video. watch this n800 ad on tigerdirect.

not only is it beyond corny — it goes into a very detailed explanation of how the device supports gsm and exactly which cell phone carriers you will and will not be able to use it with. priceless.

January 22, 2007

German Card Translations

German card translations are a sad affair. They are riddled with clumsy translations, especially in the card names. It's not such a great idea to translate english card names 1:1. The rules texts are translated sanely, i.e. using special German templates, although some of the template choices are a bit strange and more verbose than needed. For example, "target" is translates as "deiner Wahl" ("of your choice"), while "of your choice" is translated with "die du bestimmst" ("that you choose").

In Planar Chaos Ovinize was translated as "Verhammelung". First of all this sounds strange. The noun "Hammel" was turned in the verb "verhammeln", which was turned back into the noun "Verhammelung". But it's also not good templating. Ovinize is an Instant, and Instants and Sorceries usually get a verb as name. Ovinize is a verb. The German translation "Verhammelung" on the other hand is a noun. This shows a lack of understanding of magic card naming on the part of the translator. "Verhammeln" or "Schafen" had been a much better name.

But what's worse are wrong translations. For example the German version of Necrotic Sliver has the following ability: "All Slivers have '3, Sacrifice this creature: Sacrifice target permanent.'" (You can only sacrifice your own permanents.) Since Wizards decided not to publish Oracle texts until Monday after the prerelease, I could not confirm that the card was actually a mistranslation and had to rule it by its German text. Unfortunately the mistranslations (in the rules text) average around one per expansion.

Finally, cards that have obvious templating problems in the original are not corrected in the German version. For example the flip side of Saviours of Kamigawa's Erayo, Soratami Ascendant reads "Counter the first spell played by each opponent each turn", a rather obvious templating error. This was unfortunately not corrected in the German translation. In my opinion a good translator should catch errors like this.

January 20, 2007

Planar Chaos Prerelease

Today I head-judged the prerelease of Planar Chaos, the latest Magic: The Gathering expansion. The prerelease at the FUNtainment Game Center here in Berlin was attended by 71 players, a fairly disappointing number after the strong Time Spiral prerelease. Some people blame The Burning Crusade, the latest World of Warcraft expansion, out this week. Personally I also think the traditionally weak month of January plays a fairly important role.

Speaking of World of Warcraft: One of the most funny cards of the new expansion is Ovinize, the color-shifted version of Humble. It allows you to "sheep" a creature, essentially remove all its abilities temporarily. One the one hand this resembles the old card Ovinomancer, which created Sheep tokens, on the other hand it plays with a similar concept in MMORPGs like World of Warcraft.

The color-shifted cards are an interesting concept: Reprinting old cards in another color, where they could have been printed if a few decisions had been different.

I had a few interesting calls:

  1. The interaction between Vesuvan Shapeshifter and Shaper Parasite. The Shapeshifter is turned face up and copies the Parasite. Question: Does the "Turned-face-up" ability of the Parasite trigger on the copy. I ruled in analogy to comes-into-play abilities and copy effects: The creature has all the copied characteristics before it is turned face up, so all triggered abilities that trigger on it being turned face up will trigger. Later the Time Spiral FAQ confirmed my ruling.

  2. I botched the interaction of Ovinize and Vanishing. The rules text for Vanishing reads in part (according to the Rules Primer):

    502.60. Vanishing

    502.60a Vanishing is a keyword that represents three abilities. "Vanishing N" means "This permanent comes into play with N time counters on it," "At the beginning of your upkeep, if this permanent has a time counter on it, remove a time counter from it," and "When the last time counter is removed from this permanent, sacrifice it."

    For some reason I assumed that the third ability was included in the second one like this: "At the beginning of your upkeep, if this permanent has a time counter on it, remove a time counter from it. When the last time counter is removed from this permanent, sacrifice it." Now the question was some like: "If I play Ovinize on a card with Vanishing and one time counter in response to Vanishing's first triggered ability, what happens?" My ruling was that the last time counter is removed and the card with Vanishing is sacrificed, but any "leaves-play" abilities on the card don't trigger. The correct ruling is that the last time counter is removed, but the permanent remains in play. At the time the counter is removed, the permanent has no abilities, in particular it doesn't have Vanishing and so no "Last counter removed, then sac" ability.

  3. Player A had played Hunting Wilds. Some time later his opponent, player B, noticed that A's graveyard was empty. A looked through his hand, and library and found a copy in the latter. Since he wasn't sure whether he played one or two copies he wanted to see his decklist. After a short lecture that a player should under no circumstances look through his library without asking a judge first, I fetched the deck list and determined that the player only had one Hunting Wilds in total, so this one had to be the one played earlier. After a brief interview I was convinced that this was an honest mistake and the card had been shuffled into the library when the Forests had been searched for as part of resolving Hunting Wilds. The card was placed in the graveyard, the library was shuffled, and I issued a Warning for Procedural Error - Major.

    A case could be made for leaving the card in the library (leaving the game state as is is the default remedy if a decision point has been passed). But since the players had placed the card in the graveyard themselves in mutual agreement before a judge was called, I considered this to be the solution both would be more comfortable with, and let the card remain there. I think it was Scott Marshall who proposed to use a remedy both players of a match agree on instead of the normal remedy if this seems suitable. While I was initially opposed to it, this was a good example where this makes sense. I am still undecided on the issue, though.

January 18, 2007

The Indian Prez on Yahoo! Answers

The Indian Prez on Yahoo! Answers

Real or not? At least Yahoo! seems to endorse it.

Technorati Tags: ,

January 16, 2007

Using Git with Bugzilla

There is a functionnality that rocks in git (among others), that's the ability to automatically send patches by e-mails from command line. The kind of stuff that's not extraordinary at all, but damn convenient. But unfortunately, the Gnome people tend to prefer Bugzilla, and usually dislike e-mailed patches all over their mailing-lists.

So what I did is to write a new script, which combine a git-format-patch and git-send-email-like functionnality in one, and is oriented towards Bugzilla use. Quite naturally, I named it git-send-bugzilla.

In short, what it does is attaching a set of patches to a bugzilla bug, directly from command line. All you have to do is to provide your username and password, the bug id, and you're done.

It is available (along with a man page) here, or clonable through:

git clone git://code.istique.net/repo/git-porcelains.git

Note: you'll need the WWW::Mechanize perl module to make it run. It's available as the libwww-mechanize-perl package on Ubuntu, or you can just cpan WWW::Mechanize.

Enjoy!

The only shortcoming that botters me currently is that it's not able to attach several commits as one single patch. Also, I didn't test it with non-Gnome Bugzillas and I think it's quite unlikely to work ok. But if you have other concerns or functionnalities, patches are welcome ;-)

January 15, 2007

A look back at the Kurukshetra OPC

The Kurukshetra OPC was finally conducted successfully last sunday (14th Jan, ‘07).

So, The official stats! (Server stats at http://prashblog.com/files/report.html)

Total No of Registered Teams: 633
Total No of Active Teams: 547 (Teams who confirmed their accounts)

No of Submits No of Accepted Submits
Three Brothers 255 26
Names in a DataBase 224 31
Travelling Fisherman 83 9
Festive Change 291 55
Nikhil’s Cake 166 21
Father and Son 61 1

Now, The number of submits by language:

Language No of Submits
C 207
C++ 800
Java 32
Python 24
Perl 5
Ruby 12

The OPC was conducted by using a product that Ravi Shankar and myself designed — Hackzor. If any of you would like to use Hackzor in your college/organisation, please feel free to contact either of us in helping you deploy it. And of course any help in developing it further is most welcome. Hackzor is a Python application which uses the Django Web Framework.

Many thanks are due for Ravi Shankar, Rajiv Mathews, Anjan, Venkatanathan, etc for helping us make this OPC a huge success.

Questions in the OPC:

Technorati Tags: , , , ,

January 13, 2007

Kurukshetra OPC on Jan 14th

The Kurukshetra Online Programming Contest has been rescheduled for the 14th of January. The timings will be between 14:00 IST to 20:00 IST. The rules will be the same was earlier. We regret that we have to disappoint you last time. The 2000 USD is still up for grabs. Please visit http://opc.kurukshetra.org.in for more details.

If you had already registered for the OPC, you need NOT register again. However, the registration page is still open in case you have not yet registered.

Location: http://opc.kurukshetra.org.in
Date: 14th January, 2007
Time: 14:00 IST - 20:00 IST
Prize Money: 2000 USD
Languages allowed: C, C++, Java, Python, Ruby, Perl, PHP

Thank You,

The Kurukshetra OPC Team

Technorati Tags: , ,

January 12, 2007

New Python unittest module?

Collin Winter blogs about an updated unittest module he wrote. His update fixes the internal structure, and therefore the expandability, of the module, but also cleans up the external API. There are still a few minor improvements I would like to see, but nevertheless I hope that his updated version will be included in Python's standard library eventually.

January 10, 2007

Gnome Scan won't be part of Gnome 2.18

Hi all,

Some of you may be disappointed by that, but i don't. Gnome Scan won't be added in Gnmoe 2.18. Strong objections from Vincent Untz were non-Gnome hosting (which is my primary goal since Gnome SVN migration). The real objections are : Gnome Scan is far too immature for release. I expect huge and deep changes (API break, features, etc.). Following the Gnome schedule is too restrictive for Gnome Scan which is still at early stage. So keeping Gnome Scan out of Gnome schedule allow a more active development for Gnome Scan.

See the Gnome Scan inclusion proposal at desktop-devel-list.

Happy new year !

January 08, 2007

Arabic translation

Hi all,

Thanks to Djihed Afifi, gnome-scan now have arabic translation ! I produce a 0.4.0.2 release for that. Note that i prefer receiving .po by mail instead of waiting for translation team acknowledgment in rosetta …


Étienne.

January 06, 2007

The world that is no more

It was a world that is now extinct. People don’t know that vi was written for a world that doesn’t exist anymore - unless you decide to get a satellite phone and use it to connect to the Net at 2400 baud, in which case you’ll realize that the Net is not usable at 2400 baud. — Bill Joy

[Source: http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/]

Technorati Tags: , ,

January 05, 2007

Kurukshetra ‘07 On-Site Programming Contest

Today was the Programming Contest of Kurukshetra:

For those inclined towards puzzles and logic try solving them:
[Question Paper] [Solution Set]

Technorati Tags: , ,

January 04, 2007

a possible googleabuse

i was talking with quim today when he mentioned the idea of keeping his old phone for "people calling to my current spanish number". this made me realise how silly phone numbers are. they're practically like ip addresses.

i got an idea for an interesting workaround to this problem.

i publish a specification with some word unlikely to appear on its own, like "phonenumbersearchsystem". i then use this spec to encourage people to augment their normal homepages with the following two features:

  • cause the phrase "phonenumbersearchsystem your name" to appear in the page
  • insert a meta tag into the page for phone number (possibly even having multiple meta tags for home, business, cell, "default", etc.)

then in order to call someone you i'm-feeling-lucky for "phonenumbersearchsystem quim gil" and look at the meta tags of the page that comes back. if you find a phone number, you make a call.

this means that you can call the person's current number simply by using their name. by virtue of the fact that you use your own homepage, the google juice for your name already increases your chance of being the first result. in fact, it might turn out to be better not to use the special word at all and just google the person's name and use the special meta tag. this prevents the person, though, from having a phone number page divorced from their normal homepage. it also prevents you from passing results that are irrelevant to you (for example, there are a couple of pages that still win against "desrt" which are simply misspellings).

some neat advantages:

  • phone number changes would be instantaneous and you'd have no need to keep your "old number"
  • you could even have your webpage be a cgi script that returned different phone numbers at different times of the day (for this reason, it might make sense for your homepage not to contain the number directly, but to refer to another document that does)

some obvious disadvantages:

  • google could pull the plug at any time
  • obviously not for people who don't want their phone number made public

so this blog post is mostly meant as a question: does anybody know of any other system currently abusing google (or other general-purpose public search engines) in this sort of way?

The price of freedom

Dear Mr. Vernon,

We accept the fact that we had to sacrifice a whole Saturday in detention for whatever it was that we did wrong. But we think you are crazy to make us write an essay telling you who we think we are. You see us as you want to see us, in the simplest terms with the most convenient definitions. But what we found out is that each one of us is:

a brain, a athlete, a basket-case, a princess and a criminal.

Does that answer your question ?

Sincerely yours,

The breakfast club.

From The Breakfast Club (1985)

The price for freedom is not paid by those who are free, it is paid by those who wish that others were a little less free.

[Source: http://gaia.ecs.csus.edu/~laned/ (One of the authors of PC^2)]

January 03, 2007

Subverting git

So Gnome has finally switched over to Subversion. This is a really good news and a big improvement over our old CVS, for a bunch of reasons.

So far so good. But I'm one of those who prefer git over SVN, simply because it has some advantages that makes it fit better to the way I like to work. For instance it has a full local history and branching is very cheap, not to say it's very fast and easily scriptable. In two words, I love it.

And what's great with Subversion is that there is a lot of interoperability layers between it and others SCM. In particular, since git 1.4.4 there is git-svn, that can fetch from and commit to a Subversion repository, in a very pleasant way. So, here are a few hints on how to use git when you want to write some code for the Gnome project.

Note: git 1.4.4 is probably not available in your distro yet, so you are likely to have to compile it by yourself. No panic, it's not hard at all. I've also requested a backport for Edgy.

Small overview of git-svn

So let's start with the beginning: how to checkout your favourite project, for instance gedit. First you have to create a directory and initialise it as a git repository.

$ mkdir gedit
$ cd gedit
$ git-svn init svn+ssh://svn.gnome.org/svn/gedit/trunk

Then you need to fetch the history from the repository. If you are not interested in the whole history, I suggest you to do this way, otherwise you can just skip the first one in the following commands.

$ git-svn fetch -r5000
$ git-svn fetch
$ git checkout -b work remotes/git-svn
$ git repack -d

The first command fetches a given revision (here, the 5000th one), so your history will start at that revision. If you don't do it, you will just end up downloading every single revision of the project, from the first one. The third command will create a work branch (you shouldn't commit anything on the remote branch). The last command will repack the local repository, ie compress it, to make it smaller. After that, the whole gedit history is about 31MB big. As a comparision, the SVN checkout weights 47MB.

Update: You can also ignore the files set in the svnignore property:
$ (echo; git-svn show-ignore) >> .git/info/exclude

Later, to update your git repository, you need to run git-svn fetch again, and fast-forward your working branch using git rebase, which is recomended over git merge, in order to keep the history as linear as possible.

When you have made some changes on your work branch, you have to commit it locally to git, then mirror the commit into SVN using git-svn dcommit. This will actually send every single new commit of your current branch into the SVN repository, so be careful. Then update your local repository as usual, in order to take the changes into account. Note that the commit messages in SVN will be the same as the ones in git.

This works pretty well, the only drawback I've seen yet is that git rebase does not like edited Changelogs. I've also tried a few strange commands to send several commits at once (like git-svn commit-diff, but I won't explain those further here since if you need to, you should definitely prettify your patches in git itself and use git-svn dcommit.

January 02, 2007

Java File API

I don't like Java's File API. It's main problem is that is mixes several responsibilities into one class. One responsibility is handling of "abstract" file and path names, i.e. operating system independent file names. The other responsibilities are all file system related: Querying file meta information (access rights, access times, file type), creating files, and listing directory contents. In my opinion these should be clearly separated.

I am also missing a constructor or construction method that creates a File instance from a list of path components like this:

  File f = new File("/", "path", "to", "file");

Maybe I should start a Java warts page, similar to my Python warts page ...

December 30, 2006

My stance on Ubuntu and the Bad Vista campaign


From:     Ryan Lortie <desrt@desrt...>
To:       Bad Vista Contact <webmaster@badvista....>
Subject:  My stance on Ubuntu and the Bad Vista campaign



Hello FSF,

This is an open letter.

In the past year your organisation has seemingly taken a new stance on
what is important.  You have started participating in things that matter
to people other than hackers.  You are making attempts to reach normal
people -- wouldbe consumers of Trojan Horse technology products.  These
efforts are absolutely commendable.  There is no doubt that the fight
for freedom will be won only by convincing people that there are
practical alternatives to companies that are more interested in their
bottom lines than they are in providing a working product.

Your Defective By Design campaign is brilliant.  I've actually heard
people other than hackers (albeit, still geeks) talking about it.  Your
new Bad Vista campaign also hits the nail right on the head by letting
customers know what they need to know to make an informed decision.  A
distinct feature of these campaigns is that they don't spend time
harping about ideological freedom, but rather, stress real world
problems inherent in DRM.  You talk about practical problems that people
will encounter and be affected by.  You talk about practical solutions.

I am writing this letter because of a controversial decision that you
have made.

The Bad Vista page contains the following text:

     ...and provide a user-friendly gateway to the
        adoption of free software operating systems like
        gNewSense (http://www.gnewsense.org) and Ututo
        (http://www.ututo.org).

I'm not aware of what Ututo is, but by your recommending it, I'm going
to assume that it is subject to the same problems with gNewSense.

From the standpoint of focusing on real practical issues rather than
harping about ideology, gNewSense is basically exactly the same thing as
Ubuntu except that it doesn't work on most people's computers.

People have ATI and nVidia video cards.  Most people have laptops with
wireless cards that at least require firmware.

One of the real practical problems with closed source software is that
if there's a bug then you can't fix the bug and this might prevent you
from using your hardware.  In terms of practicality, this isn't really
much better then not being able to use your hardware at all in the first
place.

Another practical problem is that gNewSense isn't a rock star.  Ubuntu
is.

Let's face it -- no matter how good you are, you're not going to get the
average computer user to install a new operating system.  The people you
will convince to do this are people who are already technology geeks.  
These are the same people who have read tech news sites talking about
this "Ubuntu" thing.

Faced with a recommendation to install gNewSense, they will say "huh?".
Faced with a recommendation to install Ubuntu, they just might say
"ya... I've been hearing a lot about that.  Maybe I should give it a
try."

Even if you manage to get people to install gNewSense, you're most
likely going to be harming your cause.  The overwhelming majority of
computer users have some hardware that requires some sort of binary-only
code to operate.  People will install gNewSense and, with very high
likelihood, some part of their system won't work.  They will get
frustrated and annoyed -- possibly turned off of free software forever.
I know people who still pass judgement on Linux as a whole based on
experiences from 5 years ago.

Ubuntu is more or less 99% free.  It doesn't even come anywhere close to
being as awful as Vista is.  Besides -- I bet your computer is already
at least a little non-free.  Is your BIOS open source?  The ROM firmware
on all your devices?  Your CPU's microcode?  We all put up with these
things in the meantime because we understand that the only chance of
success will be to get people on to our platform.  Without users, we
can't make demands.

I understand that it's quite a strange position to be in to be
condemning Ubuntu on one hand for their shipping of proprietary code,
while recommending them to people on the other hand.  To do so would
require swallowing some pride.  I hope that this is something that
you're capable of doing.

Through your campaigns of the past year you've indicated your
understanding of the fact that your key to success lies in public
acceptance.  Recommending Ubuntu instead of gNewSense will increase the
public's acceptance of your platform.  You have to make sacrifices --
that's just the way it is.

I'm sure you appreciate the importance of what you're trying to do and
that you realise what a unique opportunity you have right now.  Please
don't waste it.

I am an Ubuntu user and member.  This letter is my personal opinion.

Ryan Lortie
desrt@desrt...

December 29, 2006

Kurukshetra ‘07 Online Programming Contest

The College of Engineering, Guindy is proud to announce Kurukhetra ‘07 Online Programming Contest. The contest is open to EVERYONE (If your dog’s name is Max he can participate too!). Yes you don’t need to be a student to participate

The contest is to take place on Dec 31st i.e. Sunday from 14:00 IST to 20:00 IST. A set of problems will be posted on the website. And what you do is to write programs to solve the problems and submit to the server. The server will evaluate your program automatically (so make sure your output formats are right!).

And whats the motivation to the contest? A simple sum of 2000 USD

Register yourselves at http://opc.kurukshetra.org.in/accounts/register/

To summarise:
Members per team: 3 (maximum) - Lone wolves are allowed too
Languages Allowed: C, C++, Java, Python, Ruby, Perl, C#
Prize Money: 2000 USD
Time: 14:00 IST - 20:00 IST on 31st December ‘06 (New year’s party ;-))

UPDATE: We found that the mono compiled binary was forking too many processes (or threads?) upon start. Moreover the number of forks could not be deterministic. Once it was 15, next time it was 16. I could not give 1 permanent value for NPROC in setrlimit. Does anyone know how to solve this?

Technorati Tags: , , ,

December 27, 2006

Cena zaštite sadržaja u Windows Vista-i

Prenosim isečke iz zaista sjajnog teksta "A Cost Analysis of Windows Vista Content Protection", čiji je autor Peter Gutmann. Sam tekst je zanimljivo pisan, obiluje referencama i konkretnim opisom problema pa se moze svašta i naučiti.

Windows Vista uključuje pozamašne izmene osnovnih delova operativnog sistema kako bi bila obezbeđena zaštita od kopiranja za tzv. "prvoklasni sadržaj", obično HD zapisi sa Blu-Ray i HD-DVD izvora. Ova zaštita za sobom nosi nezanemarive troskove gledano u performansama i stabilnosti sistema, zahteva veću tehničku podrsku, a pri tome poskupljuje hardver i softver.
...
Razmotrimo lekara koji koristi PC za kontrolu skenera dok sluša pesme/film sa računara (CDROM uređaji u računarima na radnom mestu svoj život neižbezno provedu puštajući audio ili MP3 diskove kako bi oterali ostalu buku). Ako je bilo kakav "prvoklasni sadrzaj" prisutan, zaštita u Vista-i će blago izmeniti sliku, što moze ugroziti živote iako je razvojem tehnologije medicina upravo to želela da eliminiše. Najstrašnije je da ne postoji lak način da se ovo zaobiđe - Vista će bez najave izmeniti sadržaj koji se prikazuje u nekim situacijama (a skoro nemoguće ih je unapared predvideti) zarad ugrađenog sistema zaštite.
...
Najgore je što ne postoji izbor. Proizvođači hardvera će morati ovo da progutaju kako bi proizvodi radili sa Vista-om: "Niko ne zahteva potpisivanje ugovora, ali bez toga prvoklasan sadržaj neće biti moguće reprodukovati". Kao proizvođač hardvera možete ostati sa strane, ako vam ne smeta da vaš uređaj može da prikaže samo zabrljanu sliku lošeg kvaliteta sa šuštećim zvukom kada je prisutan prvoklasni sadržaj, dok vaša konkurencija nema ove (veštački stvorene) probleme. A i kao korisnik nemate izbora. Bilo da koristite Windows Vista-u, XP, 95, GNU/Linux, FreeBSD, OS X, Solaris (na x86), ili skoro bilo koji drugi operativni sistem, Windows-ova zaštita sadržaja će načiniti hardver skupljim, manje pouzdanim, težim za programiranje i podršku, ranjivijim, sa mnogo vise problema nekompatibilnosti. Zato što Windows dominira tržištem, a proizvođači neće praviti više verzija proizvoda, i oni koji ne koriste Windows će plaćati cenu zaštite sadržaja u Windows Vista-i iako nikada neće koristili Windows na njima.
...
Da bi cela stvar radila, specifikacije zahtevaju čuvanje detalja kako uređaj radi u tajnosti. Jasno je da svako ko zna dovoljno kako uređaj radi da može napisati drajver za neki ne-Windows sistem, zna dovoljno da prevari zaštitu u Vista-i. Jedini način da ona funkcioniše je da se nikakvi tehnički podaci ne objavljuju osim onog minimalnog potrebnog za novinare i upoređivanje različitih modela.
...
"Ovo uvećava cenu planiranja, uvećava vreme razvoja i smanjuje fleksibilnost za OEM prilagođavanja. Troškove snose kupci računara, a mogući je i zastoj u ponudi platformi visokih performansi." -- ATI.

Za više ovakvih tekstova, možete pogledati novosti na http://badvista.fsf.org (kolona sa desne strane).

December 26, 2006

Christmas Evening Thoughts

Merry Christmas everyone !

A few thoughts that seemed to be shared among a fairly large portion of #gnome-hackers this evening:

  • It would be fine if there was an additional level of hierarchy on the desktop. SDI is fine when working on unrelated objects, but otherwise MDI looks better for things like opening a few related C files... So SDI with some concept of project (to group related windows in it) would really be awesome.
  • Midtalk looks promising.
  • Why switch to SVN when everyone agree distributed scm are the way to go? At least there is something good in adopting SVN over CVS: git svnimport works better than git cvsimport.
  • Dear Santa Claus, could you please bring us a brand new compilation framework that would allow us to get rid of autotools and related stuff like intltool? KDE guys have tested everything around and are sticking to cmake, maybe we should give it a try as well...

December 25, 2006

svn

what's the deal with svn? i seriously don't understand why we are switching to it. basically everyone knows that we need to be using git or bzr (i don't even care which one).

so seriously. someone please explain to me why we start using svn even though we all know it's not the correct (final) solution.

ps: i like cvs just fine :)

Indian street maps

MapMyIndia is an online effort to map all the streets in India. A much needed utility I seem to have been ignorant about all this while. Services like Google Maps dont offer as high resolutions in the Indian context.

Update: Google maps seems to have improved tremendously since I last checked (which was quite some time back)

[Source: Technospot]

Technorati Tags: ,

December 24, 2006

Using OpenID to log in

Excellent tutorial and screencast on using OpenID to log into blogs and websites:

Technorati Tags:

December 22, 2006

Back in town

So I have been away for the past 1 week. First stop was the Amrita Engineering College where the ACM ICPC Asia Regionals were conducted. This College has some AWESOME scenery around the college. The coding competition itself was not as eventful. We (Vijay, Venkatnathan and myself) came in 10th place. But then I guess thats not all that bad a position for a regional level competition ;-)

Ahh.. and the trip from Coimbatore (where Amrita is located) to Bangalore is worth mentioning. We missed the train because of this huge traffic build up due to the President’s arrival. We had to catch a car and travel 2 stations ahead to catch the train, which too was just by a brush for that matter. And as bad luck would persist, Someone stole my shoes on the train.

Bangalore was an amazing experience. The whole CEG gang completely enjoyed ourselves at the HiPC conference. I presented 2 posters at the conference — The first was SemFS, which is also my Final Year Project in College along with Venkat and Raghu, and the other was RepoFS along with Aanjhan (who couldn’t make it to the conf). Incidentally topa was there at the conf too. So it was a lot of fun for 4 days. Enjoying life at a 5 star hotel ;-). So now back in Chennai and back to work :-)

Technorati Tags: ,

December 20, 2006

Releasing 0.4 : « Is your app people-ready ? »

Hi all !!

Update: emergency 0.4.0.1 release : fix build failure & include latest swedish translation

For Chrismas, i expected a 0.3.2 release, but enhancments and API breakage are so important, i decided to make a major release. i codenamed this release « Is your app people-ready ? » in order to wink at Microsoft advertisments in the past month : « Are you people ready ? ». I really hate this ads which don't expose product quality, but "feelings" and "concepts". That's manipulation. This release of Gnome Scan add nice smart behaviour that make it very suitable for daily use, both for basic and advanced users.

Highlights

  • The scan dialog has been entirely review and is now very consistent with Gtk print dialog. The new dialog implements a mecanism to include extras widget inside the dialog instead of building an entire dialog using provided widgets. This add consistency between app using Gnome Scan, and reduce the amount of code in app/plugin.
  • Gnome Scan now implement a smart way of selecting area and rotation for you. Select the device, select the source, select the format and the page orientation. Gnome Scan will compute if the document will be rotated in order to fit the scanner, and centered if you use ADF.
  • Gnome Scan preview now allow you to resize only "custom size". So if you choose A4 paper, you will just be able to move the area. Select back Custom size to adjust area again.
  • The preview area now shows a "document" icon in top left corner instead of a centered application icon, this is far more useful when you set the rotation, in order to know where is you document, even if you didn't trigger preview acquisition.
  • Gnome Scan now handle X/Y resolution. Gnome Scan try determine wether the device allow dual resolution and allow you to unsync res.
  • Gimp plugin now allow you to choose layer name before scan. The acquisition dialog is now 4 times smaller !!
  • Updated translations. Many thanks to Philip Sadleder for deutsch translation, Gil Forcada for catalan translation and Daniel Nylander for swedish translation !

Links

Under the hood

  • GnomeScanDialog has been highly reviewed. It now herit (again) from GtkDialog, like GtkPrintUnixDialog. GnomeScanDialog now use GtkNotebook in order to separate fields. This allow to have a tab completely dedicated to preview. In contrary to printing, scan preview is interactive : user can choose area and rotation, this is why i choose to use a tab instead of a separate window. The preview tab is shown only if user select "Flatbed" source.
  • The GnomeScanDialog implement a "front widget" mecanism that allow developer to add a custom widget in the General tab, below source and format selectors. There is not yet an API for adding/hiding custom tabs.
  • Introducing GnomeScanAreaSelector, a smart widget that allow user to choose document format and orientation. When a device is selected, the widget compute a list of available formats that fit the device geometry. The widget compute if the document needs to be rotated to fit the device geometry and setup the context in order to rotate back the document in the right orientation. This behaviour apply both with flatbed or adf source selected. GnomeScanAreaSelector use new Gtk+-2.10 GtkPaperSize API which use PWG standard for sizes and names.
  • Gnome Scan now store wether an area is user defined (custom) or not, this allow GnomeScanPreviewArea to hide resize handle if area is not user defined.
  • GnomeScanContext now handle dual resolution. However, i based the device dual resolution capability on SANE 2 standard. SANE backends may implement differently that for SANE 1. That's one of the problem with SANE.
  • GnomeScanPreview and GnomeScanAdvancedPreview has been dropped. They were quite duplicated. now GnomeScanDialog provide a unique preview GUI.
  • GnomeScannerSelector has been dropped in favor of GnomeScanListStore which allow to feed both GtkTreeView (implemented) or GtkComboBox. GnomeScanDialog now use a GtkTreeView feeded with a GnomeScanListStore.
  • GnomeScanOptionWidget has also been dropped. This widget only added automaticcaly a field before a widget. This widget didn't allow to keep fields aligned. Now let user use either a GtkTable or frame (like GnomeScanDialog).
  • Add a --disabled-gnome option in order to build flegita for xfce desktop target. (Patch from Olaf Leidinger).

How to help ?

  • Please test the smart behaviour. If your does not center document in ADF, if should review the process.
  • If you didn't find useful stock paper size, please ask for adding it.
  • Please translate this major alpha release.
  • If your device handle dual resolution, please test wether Gnome Scan detect this capability.
  • Spread the word, ask for package in your distribution or package it !

About Gnome Scan and Gnome

I failed to follow Gnome 2.18 schedule. Mostly because i'm new to free software development, i do not yet manage my work as i want. I often let Gnome Scan hibernate during few weeks, and then develop it during on weeks and produce a release. I wish i'll be able to spend this week just before tarball dues.
Also, Gnome Scan still have deep API changes. I wonder if i will modify the API to be more consistant with GtkPrint API, as far as possible.

Gnome SVN migration is soon to be completed. I wish to switch to a a gnome as possible hosting solution for SVN, FTP, translation, …

Future

For next releases, i intend to implement a few features.
  • Select maximal possible area.
  • Auto select area.
  • Gamma correction.
  • Highlight/Shadow point
  • The return of GnomeScanOptionSet.
  • Device specific options tab in GnomeScanDialog.
  • Depth selection.
  • Colorspace selection.
  • Whatever you asked for …

SANE and HAL

Currently, SANE manage two task : probe and access. That's a bad thing. SANE must let OS do the probe and ask it for access. SANE should provide a simple glue between various OSes and driver so that OSes can load driver on plug, monitor buttons, and trigger acquisition. I wish that SANE 2 will move toward this design or scanner in HAL will be a dream (or cost a fork which i really do not want). After 1.0 release, i plan to implement one or two driver for SANE (my father owns about 9 scanners at home from all-in-one printers to various pens), especially a nice business card reader. This will allow me to dive deeply into SANE, hoping to make constructive critic for SANE 2 design. Martin Owens is working hard on Scanner in HAL, wish that for this summer, Gnome Scan will use HAL.

Allan, a most active SANE devloper said that linux distro user often do not use HAL. I really think that's a mistake. All major distro ship HAL, and tons of other ditros do that too. SANE can handle probe, but must allow OS integration. Mac OS X has nothing for scanners. Vista has a very nice scanner handling (espcially probe and detection), but drivers lakes or are unsusable, also Vista scan UI is a joke (not people ready !). Freedesktops has a huge opportunity to make the difference with proprietary OSes ; Droping "probe each launch" and adding hotplug+button support is a must-have feature to fulfill this goal, along with OCR.

Merry Chrismas and see you in 2007 !

Étienne.

December 19, 2006

0.2.1: ready for use !

Hello all,

I released the 0.2.1 version of GnomeScan which include fixes for area size bug (which was a far deep and larger bug) and the "always-busy-after-first-acquisition". See more details at GnomeScan newspage at Gna!.

Download is also at Gna! project page : http://download.gna.org/gnomescan/ .

Next step is the dbus service. Which means a lot of documentation to read, test to write. This is a huge mutation of the project which make it very different from any other sane frontends. I'll also have to see how to integrate with hal.

Étienne.

gnomescan-0.1: the road to maturity

After long work and deep rework, i'm please to announce the availability of GnomeScan-0.1 !
GnomeScan aim to provide scan to the Gnome infrastructure. The plateforme part of the project consists of two library : libgnomescan -- which may be considered as libsane-glib -- and libgnomescanui -- a collection of widgets to write scan interfaces. The desktop part consists of a tiny app : flegita and more to come.

This release features a lot of changes in almost every part of the project, especially libgnomescan and libgnomescanui. The code has been entirely review in order to write documentation using gtk-doc tool. This lead to many changes in the naming schemes and coding style. The coding style is now much closer to gtk+ one. The code has been simplified in some part (e.g. using G_DEFINE_TYPE). The autotools files has been corrected so that make distcheck pass successfully.

What changed ?

  • libgnomescan:
    • GnomeScanBackend device probe has been deeply reviewed. API has been cleaned of loosy function such as gnome_scan_backend_compute_image_measure() and other. Use boxed type GnomeScanContextInfo to share context data instead of applying sane option (like "tl-x" and other). Work around some unfollowed SANE convention (never use string where an enum is possible).
    • GnomeScanner recevied the following properties:
      • "dimension": the dimension of the device (in mm)
      • "resolution-range": the range of available resolution on the device.
      • "sources": an array of available source (Automatic document feeder, flatbed, etc.).
    • GnomeScanner:"device-type" is now an enum value which make it far more easy to use.
    • GnomeScanContext received new signals:
      • "preview-started"
      • "preview-terminated"
    • GnomeScanContext has been deeply review with GnomeScanBackend and GnomeScanner. rotation is appointing, but not yet implemented. The API has been cleaned. image-size, image-measure and other loose code has been dropped. More signals are to come since this allow GnomeScanContext to marshall all widgets of a scan UI.
    • GnomeScannerOptionSet has been drop.
    • Scan option (resolution, area, source, etc.) and device option (light, etc.) are now separated. gnome_scanner_get_options() now give only scanner options. Scan options are now handle only with GnomeScanContext.
    • gnomescanutils has been a lot completed. New types has been created. Glib enums are generated. Types used in GObjects properties are now registered in the Glib type system. Also a set of useful function has been implemented such as g_value_new_{int,boolean,double,string}(), g_enum_get_{name,nick}() and other.
    • The library is entirely documented.
  • libgnomescanui:
    • New widgets:
      • GnomeScanOptionWidget: a widget that make simple the creation of other option widget, showing a nice label, storing a GnomeScanContext and packing a child widget. That save a lot of codes :).
      • GnomeScanSourceSelector: a widget that allow to select a source if a device has several choices.
    • GnomeScannerSelector is now base on GnomeScanOptionWidget. Also the combo box now show an icon representing the device type. The overall look of this widget has been review so it take less place. See screenshots.
    • GnomeScanDialog now set it sensitivity according to GnomeScanContext "preview-started", "preview-terminated", "acquisition-started" and "acquisition-terminated". One time it will also react on a "probe-started" and "probe-terminated" signal. That kill the bug of a partly insensitive window during preview acquisition.
    • GnomeScanPreviewArea now show an empty pictures of the size of the selected device (thanks to GnomeScanner:"dimension" property). The widget does not insensitive itself during preview acquisition.
    • The library has been entirely documented. That lead to a lot of code clean up. Most widgets has now a screenshot of it. Some widget screenshot are obsolete, but this is a details.
  • flegita:
    • Now use GnomeScanSourceSelector above the GnomeScannerSelector widget.
    • a new FlegitaActionWidget appeared in the code, but is still hidden and non functionnal. A preview screenshot is available. (Uncomment lines 113, 115 and 117-121 in order to show the widget).

What didn't happen ?

  • The Gimp plugin: This is the next step before the end of the Summer of Code. I wish to publish it before the end of the month in GnomeScan 0.2. This plugin require a new widget : GnomeScanAdvancedPreview.
  • Rotation: This feature needed the deep review i made in libgnomescan. A bit of code has been written for that feature. This feature include another widget : GnomeScanRotationSelector based on GnomeScanOptionWidget. Also, all the infrastructure of the post acquisition image manipulation has to be designed. Since the review of the acquisition configuration design, this should be a lot simpler.
  • Preview zoom: Not for 0.2.
  • Mass acquisition: source selection is one step in the way to implement this feature. But a lot of work has to be done do design and implement this feature. GnomeScanAcquisitionDialog is to be deeply review for this feature. Not for 0.2.

Notes

I made myself the icons using the great Inkscape and trying to follow Tango guidelines. But I'm not satisfied with the icons. If anyone wants to contribute a bit and create an icon for each device type described in the libgnomescan reference manual, I'm open to any contribution :-).

Known bugs

  • Preview: the scan area selection is not efficient.
  • Preview: dimension of the preview seems buggy on certain devices.
  • Funky picture: raw data aren't handle correctly. Currently, GnomeScanBackend just put raw data into a GdkPixbuf using gdk_pixbuf_new_from_data().

Thanks

If you read this blog you may know i wheren't motivated to dive back in the code. I want to thank my mento Vincent Untz that help me re-entering the game. Thanks all the people who help me on IRC, especially on #gnome-hackers (chpe, nud, hub, etc.) and on #gimp, etc. Thanks to all Gnome developers that help making great software in happyness. Thanks to Marc-André Lureau, GSmartMix developers with whom i had nice discussions and happy testings of the the wonderful Vista killer GSmartMix project !

Further

Documentation, code review, 0.1 release. All that things make GnomeScan an ever more mature project. This release is kind of Request For Comments. Especially for the API of both libgnomescan and libgnomescanui. Sent me your comments. Add your ideas in at http://live.gnome.org/GnomeScanning/Ideas.

Hosting is a key point in order to get feedback and code. The bzr branch at http://bersace.ath.cx/bersace/flegita is far from accessible. I'm wondering wether to use sf.net, gna or launchpad. More important, i don't know well if and when this project will be included in Gnome and then hosted in cvs.gnome.org. After using bzr, CVS looks really backward for me :|.

Next step is 0.2 realease which mainly include GnomeScanAdvancedPreview widget and Gimp plugin based on this widget. This will end the Summer of Code projet. Of course, i intend to continue the work as long as the project is useful. At the end of the Summer of Code, a lot of work has been done. But the overall project is still in an obvious alpha state. Key feature like rotation, save as pdf, mass acquisition are missing.

Thanks.

Update: A 0.1.0.1 version has been released which use gnome crash report tool !

gnomescan-0.2: final evaluation

Hello all !

Tomorow begin the final project evaluation. This is one more reason to release the exciting version 0.2 of gnomescan !

Notes
  • Beware this is still an alpha release.
  • this version has been tested against gtk 2.10 and cairo 1.2 (cairo-pdf). I should reasonnabily work with gtk2.8, but cairo-pdf is required.
  • Please uninstall previous version, or old documentation will remain.
  • Please report bugs and patches at bersace03 at laposte dot net.
  • If you have any ideas for a rocking gnome scan experience, put them on the GnomeScan wiki !
Links
Overview
  • Localisation finaly enter the game. I translated to french, this allow me to commente string and make string easy to translated (no splitted string, avoid pango tags, etc.).
  • A new widget allow to choose scan resolution.
  • First plugin implemented : flegita-gimp which allow to scan in new image and scan as layer ! The plugin set default scan resolution to the image resolution or default resolution. But allow to manually set resolution using the new resolution widget.
  • The overal UI has been review in order to have HIG and consistent margins. The save as popup dialog has been replaced by a widget in the main dialog that allow to choose action (only save is available, Sent and Print are planned) and choose the format between PNG, JPEG, TIFF and .... PDF !!! Thanks to cairo-pdf backend :)
  • The preview widget has be rewrite in order to improve performance. The selection is now nicer and far more faster to render. (Thanks to #cairo people). Scrolling with mouse wheel is now supporte, both vertical and horizontal direction. And the most wanted Rotation feature !
  • GnomeScanUI provide new and improves icons for buttons and devices. Thanks to the Tango/ArtLibre project. GnomeScan no longer use "xsane" icons ... :)
Under the hood
  • A lot of usefull enums are now declared in the GType system using glib-mkenum (which makes me some headhaches in collaboration with autotools).
  • New widget: GnomeScanAdvancedPreview. Used in Gimp plugins. For now, it just draw rulers around preview area which show the size (in centimeters) and the cursor position. Would be nice if the widget tel the exact size of the area.
  • GnomeScanPreview and GnomeScanAdvancedPreview now use GtkToolBar to display buttons in order to follow desktop toolbar policy.
  • libgnomescanui provide the gnome_scan_ui_init() function which declare stock items GS_STOCK_SCAN, GS_STOCK_ROTATE_COUNTER_CLOCKWISE and GS_STOCK_ROTATE_CLOCKWISE and intialize i18n.
  • GnomeScanDialog has been slightly review and use now one GtkHButtonBox with secondary group instead of two GtkHButtonBox inside a GtkHBox.
  • GnomeScanPreviewArea now draw to a buffer when neeed and just output the buffer at expose. It also correctly handle motion hint in order to keep a decent sync between drawing operation and pointer motion.
  • GnomeScanBackend now handle slightly better errors (i.e. does not crash, just jump), still lake some real errors handling.
  • FlegitaActionWidget now handle GdkPixbuf grab and execute the user request on it. If a file exists, it is save to the Filename-%i.png needed. Image are scanned at screen resolution (using a Gdk call), choosing PDF outpur format select 300dpi (which seems to be far too much, i need advice about that). This is how flegita is intended to work : carry option setting without people to know their screen resolution or what means dpi (think that most of the world uses ISO centimeters).
  • pkg-config modules files are provided for libgnomescan (module gnomescan) and libgnomescanui (module gnomescanui).
  • Documentation has been review including GObject hierarchy, chapters and sections, Indexes, True Widget gallery (not only widget screenshot per page). I wrote a ulgy hack, flegita-shoot that take screenshot of widget using Gdk features.
  • I upgraded to edgy on my box which means gtk2.10 and cairo1.2. I don't try with cairo1.0. I wish this will allow to create a nice print UI :) Scanning an Printing together in Gnome ... so nice !
Known bugs
  • On my Canon CanoScan N1220U (plusteck:libusb), the area selection isn't efficient. Don't know on other backend/devices.
  • With networked all-in-on printer Hewlett-Packard OfficeJet 7140xi, the devices keep at busy state after the first acquisition (i.e. preview acquisition) until the app is closed :(
  • Acquisition progress bar is completely dumb. Don't trust it !
  • Don't click the about dialog, it strill segfault !
  • And many more, i'm waiting for reports :)
If you have problem with scanning (like ugly pictures, crash, etc.), you can enable verbose output by editing a source file. Remove the #undef g_debug and #define g_debug(...) ((void) 0) lines in libgnomescan/gnomescanbackend.c . Yes that's not so nice as a --verbose or --debug option, but.

Future

The end of the holidays will surely reduce the rhythm of releases, but i'm very excited about developing and improve the stability of the project. I subscribe to various hosting service like sf.net, gna.org, launchpad.net and freashmeat.net. I also request for a SVN repo at gnome.org and a Gnome maintainer account.

Further development will be made first on GnomeScanBackend in order to get ride of those bugs with many devices. After that, here are functionnality i wish to implement (not in order) :
  • Fixed area (A4, A5, photo, US Letter, etc.)
  • Auto area selection.
  • Zoom.
  • X and Y resolution.
  • Multiple acquisition and multipage PDF output.
  • Sent by mail (with contact completion).
  • Print
  • Fax ?
  • Multiple area per scan.
  • Gamma, contrast
  • A dbus service that handle devices detection and sharing in order to get ride of the waiting dialog (are user waiting so much for printer detection ???).
  • A capplet to configure devices specific options and sharing.
  • Application provided about dialog.
  • AbiWord and gthumb plugins.
  • Split gnomescan (libgnomescan, libgnomscanui, dbus and capplet) and flegita (flegita-gimp, AbiWord and gthumb plugins).
  • And many more you would like to add to the wiki !
Even if that's out of GnomeScan, i want to mention that I may write one or more backends for SANE. (since my father own almost 9 scanner devices and only 3 are supported). I have a Business card reader. Expect nice plugins for Evolution !

As a conclusion, I would like say i'm very very happy to contribute to Gnome and Free Software. Thanks to Google which allow me to get officially mentored by Gnome and to spend this summer coding for free developers and free users.

Enjoy ! :D

Étienne.

Gnome Scan 0.2.4

Hi all,

I made a bugfix release 0.2.4. I fix bugs for epson, v4l devices and more. Please test it and report bugs at GnomeScan bugzilla . Download it at the usual GnomeScan download page .

Étienne.

Releasing 0.3 « Scan for the Mass »

Hi all,

I'm releasing 0.3 release of Gnome Scan. This release add a major feature in GnomeScan and Flegita : Mass acquisition. Now GnomeScan implement acquisition as a set of image. This mean that user/application has to manually stop the acquisition process. The acquisition process take advantage of ADF. In flegita, this is shown by the buttons "Stop" or "Next". If the output format is PDF, flegita write all image in the same file, one page per image. For other image format, the behavior keep being the same.

The acquisition dialog has been a lot review and is now far more HIG compliant, text are more useful. I also fix a lot of bug, including the crazy value of the progress bar. I updated translation and documentation. I weren't able to contact the deutsch translator, so only the french translation is updated.

Download at usual download page. I update screenshots and documentation at GnomeScan homepage.

Étienne.

0.3.1, the polished alpha release

Hi all,

I'm very happy to announce you the availibility of Gnome Scan 0.3.1. This version is what should have been Gnome Scan 0.3. A lot of bugs has been fixed. Translations are uptodate in french, deutsch and catalan. The data receiving process has been review in order to support Grey, RGB and three-pass acquisition (e.g. all red then all blue then all green data). I intend to support multiple depth in the future. Note that the final result will always be a GdkPixbuf with its limitations : 8bit per sample, RGB only, etc. But choosing lower depth or different colorspace allow to fasten acquisition, and more.

This version include a filled NEWS file for maintainers. Sadly, svn log wasn't able to output all changelog, need to investigate more in order to get a good ChangeLog file.

Using Rosetta for translation

Hi all,

I choose to upload a .pot for gnomescan launchpad product. So everybody can easily add or update translation of gnomescan/flegita :). Please translation according to Gnome Schedule as possible.

See https://launchpad.net/products/gnomescan/trunk/+pots/gnomescan .

Thanks to translators.

Good news

Hi all,

After quite some time of hibernation, i wake up the development process of Gnome Scan. Gnome Scan hit the 100th revision ! This revision is the first contributed patch Olaf Leidinger. It added --disable-gnome option for xfce people and other. I'm also very pleased to see news Swedish translation and nearby Dutch translation

Gnome Scan seems to spread more and more. How surprised where i to see that Foresight Linux 0.9.4 include Gnome Scan/Flegita ! Gnome Scan 0.3.1 is now in feisty/universe. I even saw unofficial ebuild. A bunch of people talk about Gnome Scan all around the web in French and German (some consider it as a good replacement of xsane, i find Gnome Scan in a too early stage to fully replace xsane).

Emmanuel Fleury, associate professor at Bordeau-I university, submitted Gnome-OCR project to its student. The project will start in January. The idea is to link tesseract-OCR and Gnome Scan. I wish this project will end up with an Abiword plugin. Even if i mainly work on flegita, the purpose of Gnome Scan is not a standalone app, but flegita is the first step. As long as Gnome Scan has no stable API, i don't want to provide too many unmanagable plugins. I don't want to end up with 7.0.0 libtool version for gnome-scan 1.0 :).

I guess that 0.3.2 will arrive as Chrismas gift to the FOSS world :). It will include nice features that may make Gnome Scan a reasonable replacement of xsane for basic end user.

So yes, Gnome Scan is still alive ! And very active !

Étienne.

November 30, 2006

Disqualifications & Coverage

I am glad to see that there is an extensive article about the double disqualification of Amiel Tenenbaum and his opponent in Wizards's coverage of Worlds 2006. I just had the discussion with another judge on #mtgjudge, whether this should be covered and how extensive.

I think covering DQs has several advantages:

  • It generates interest in the game. People like gossip. I know I do. Personally I couldn't care less about play-by-play coverage, but I'm interested in stuff that happens at these events. I want stories. I want gossip. I want photos.
  • There is a professional interest for me as judge. It shows me how people cheat or try to cheat. It shows things than can happen that lead to disqualifications.
  • It shows that judges catch cheaters. If you read Magic-related message boards (and manage to keep your sanity) you will notice that many players, especially more casual ones, believe that cheating is rampant and cheaters are never caught. Making disqualifications public can help to dispell this myth. It shows that the tournament organizing staff will catch cheaters and that they will be penalized.
  • Word gets around if a player is disqualified. Whether it's in the official coverage or not. It's better to have an informed article with interviews with judges involved or the even the players. Otherwise people will speculate and lots of false rumors are started.

On the other hand the coverage still hasn't got enough photos. And I would still prefer a blog from a coverage reporter to the "Pro Players Blog", which is just another form of (boring) play-by-play coverage.

November 28, 2006

"concerns about the election process"

i recently made a post to the foundation-list about concerns about the election process.

two of the issues that i brought up was that it's impossible for a truly paranoid individual to know for sure that his vote has been properly counted or that nobody logged his choices.

the second issue is quite hard to solve but i've produced a proof of concpt for what a solution to the first problem might look like.

props go to behdad for the idea of encoding the user's voting choices into their token (allowing the user to prove, later on, that their vote was incorrectly recorded).

so here it is: possible future voting system prototype.

there is no index file for that directory and in the same directory i've included .phps versions of all of the files so that you can inspect the source. consider the source as being under the gpl. please try to find problems with the system (both conceptual problems and code bugs) and let me know about them.

November 27, 2006

foss.in

Back from foss.in. Whee it was fun meeting people in person whom I have chat with daily on IRC. The list? Viyyer, sp2hari, taggy, T3, tazz, shres, nags, baks17, vamsee, f3ew, _Abhi_, kartik, spo0nman, Karunakar, koolhead17, jony, and lots more :-)

I learnt more about how not to do a presentation than how to do the presentation ;-)

UPDATE: jony posted a short clip of my talk on youtube

November 26, 2006

Gaia shut down by Google

Clint: Did you actually read the letter sent by Google? I actually consider this to be a perfect example of "don't be evil." There are no threats in that letter, Michael Jones, the writer, is just explaining why Gaia hurts Google and in what way he think the Gaia project is violating Google's Terms of Service. He tells the Gaia project members that he understands their curiosity, even calls them "smart engineer[s] like ourselves", but asks them to "refocus [their] work toward building an open earth viewer that uses open earth images."

I don't think that Google is free to do whatever they want with the images of the earth stored on their server. They most likely have a rather restrictive deal with the actual image providers. And even if they hadn't, Google probably pays a rather large amount of money to these image providers. I can understand that they don't want to offer these images for everybody to grab.

I consider this letter to be very kind and understanding, compared to what seems to be standard today: Let the lawyers do the talking, or don't bothering with the talking at all and just sueing.

November 22, 2006

Java: Iterators are not Iterable

This is something I stumbled across multiple times now in Java: Iterators are not Iterable. Java 1.5 introduced the foreach statement, which allows easy iteration over collections like this:

for (MyClass item: myCollection) {
    doStuffWithItem(item);
}

For this to work class MyClass must implement the Iterable interface. This interface defines just one method that returns an Iterator:

    Iterator<T> iterator();

This works fine in many cases. But now suppose we have a class that can be iterated in multiple ways. For example a Tree class that can be iterated breadth first or depth first. I would define two methods and use them like this:

class Tree {
    Iterator<Node> depthFirstIterator();
    Iterator<Node> breadthFirstIterator();
}

// ...
    for (Node node: myTree.depthFirstIterator()) {
    }

This won't work in Java. Iterators do not extend the Iterable interface, like they in other languages. For example in Python an iterator will return itself when its iterator() equivalent is called. Instead in Java I have to return an object that itself implements the Iterable interface like this:

class IterableIterator<T> implements Iterable<T> {
    private Iterator<T> iter;

    public IterableIterator(Iterator<T> iter) {
        this.iter = iter;
    }

    public Iterator<T> iterator() {
        return iter;
    }
}

class Tree {
    IterableIterator<Node> depthFirstIterator();
    IterableIterator<Node> breadthFirstIterator();
}

Not only is this boilerplate code for no gain, a generic class like the IterableIterator above is not included in Java's standard library.

November 20, 2006

JavaScript Includes Revisited

I've given in in the JavaScript and Modules matter. I'm doing now what all the cool kids are doing: Using XMLHttpRequest synchronously to load external JavaScript files. This has the advantage that it works synchronously, a very important thing for includes. Therefore I don't need callback and moduleLoaded hackery anymore. Also I have sensible error checking, i.e. I can notice when loading a JavaScript module failed. This enables me to have multiple search paths, for example, and sensible error handling.

But it comes at a cost, too. XMLHttpRequest is only supported by "modern browsers". But since moderns browsers means any browser of the last five years I don't care too much. When XMLHttpRequest is not supported, I suppose I can't rely on other useful stuff neither. The synchronous requests also mean that there might be a slight performance hit. But the advantages of synchronous includes outweigh this by far. Finally, XMLHt