Search Results: "spa"

28 April 2006

David Pashley: Dealing with blog spam

Julien, the majority of comment spam can be dealt with very simply by including a turing test. On my blog, when I first started getting comment spam, I added a check box asking if the poster was a human. For a human, it's not a massive inconvience to tick a box, but for an automated tool, it's a major problem. Was implemented in 3 lines of html and one line of python. Since I added it, I haven't recieved a single piece of spam. I don't believe it's had a major effect on people commenting, although I currently can't tell. I could change it to hide posts that claim to be non-human until I've checked them. If spam tools work out this simple problem, I could change the nature of the test to randomly change between "I am a human" and "I am not a human". After that I could include a simple sum or some other simple question. It also has an advantage over captchas that it is accessible. It is a simple change which massively reduces spam by increasing the cost of spamming and I'm surprised that most people don't do something similar.

Julien Danjou: No more comment

Due to the heavy spam load my blog is suffering, I am now obliged to close the comments section. My anti-spam filter (keywords+RBL) is not able to filter and catch everything. Trackbacks are still available. Sad :(

Uwe Hermann: Look behind you, a Three-Headed Monkey!

Funny ad by the Consumer Electronics Association (CEA): Pirate Ad There's a PDF version, too. Btw, finding out what the subject of this post has to do with the contents of it is left as an exercise to the reader. (via Starfrosch, originally from the EFF)

27 April 2006

Antti-Juhani Kaijanaho: Unnamed pie recipe

Note: Somebody help me name this thing! :) Serves 8.
Base liquid
4 dl water
2 dl (red) grape juice
0.5 dl white vinegar (10 % acid)
50 g baker’s yeast
100 g sugar
Base solids
2 dl oatmeal
1 dl oat bran
1 dl rye bran
2 dl textured soy protein
Seasoning
1 g cardamom
to taste:
garlic
oregano
mint
Flour
ca. 6 dl wheat flour (bread flour)
Finishing touches
1 dl oil
100 g grated cheese
  1. Mix the base liquid ingredients in the tin, making sure that the finished liquid is lukewarm (~37 °C), and that the yeast is thoroughly dissolved. The tin must be large enough that this mixture takes less than a third of the volume available.
  2. Add the base solids and mix thoroughly.
  3. Add the seasonings.
  4. Add the flour in small batches, kneading the would-be dough well after each batch. There is enough flour in the mixture when it starts behaving like dough instead of gruel. The dough can well be fairly loose.
  5. Mix in the oil.
  6. Put the tin containing the dough in a warm place with no draught, cover it with a cloth, and let the dough leaven for about 30 minutes, or until the dough has doubled in size.
  7. Bake in an oven preheated to 200 °C for an hour.
  8. When the pie is almost ready, cover it with the cheese and put it back to the oven, letting the cheese melt.
Serve warm (reheating if necessary) with fresh vegetables. Rough nutrient breakdown Computed from recipe and individual ingredient nutrient content.
recipe
Energy 16200 kJ
(3870 kcal)
Carbohydrates 494 g 52 E%
– sugar 100 g 10 E%
Protein 143 g 15 E%
Fat 139 g 33 E%
Dietary fiber 38 g 2.32 g/MJ
This pie is high in both fat and sugar, but both are within the limits of recommended intake for healthy adults. Just make sure to have the other parts of the meal to be similarly or better balanced in terms of sugar and fat :)

Jordi Mallach: Get prepared for Vilanova

Everyone knows IRC is a very useful resource. Today, #gnome-hackers had the basic tips to survive GUADEC moment.
16:23 <@davyd> you can then teach us how to order drinks
16:23 <@davyd> because I can't speak spanish
16:23 < miguel> They dont speak spanish in that down Davyd
16:23 < miguel> They speak Catalan
16:24 < miguel> Which is sort of Spanish - arabic words + a little bit of
                french thrown in
16:24 < jdub> estic cercant els meus pantalons!
16:24 < Ankh> I always thought catalan was a network file access thing
16:24 < hadess> davyd: they seem to prefer somebody speaking english than
                somebody speaking castillan ;)
16:24 < miguel> I know how to order coffee
16:24 < miguel> cafe am llet

Simon Richter: Arrrr?

I am blessed and cursed with the kind of memory that can remember every tiny bit of detail, which means that I read a book a single time and then it bores me, or that I can remember a song after having heard it a few times. Needless to say, I don't buy many CDs (and I don't have an MP3 collection either, I need the space for programming projects). Since I can "listen" to the songs anytime I want, the technician in me says that I have a reasonably good (digital, with error correcting codes even) copy in my brain. Now say I bought a CD and listened to it until I remembered it well enough, then sold the CD on eBay. Would that be copyright infringement?
The voices in my head are now playing "Soultaker" by Apoptygma Berzerk.

Neil McGovern: Killing X

I've got a IBM Thinkpad R50e. It's a very nice laptop, with a lovely keyboard. It does, however, have one farily large issue, as I discovered last night.
The control and alt keys are a little too easy to press at the same time. Therefore, it's very easy to press ctrl+alt+backspace when you've just spent an hour creating some minutes for a SPI board meeting and haven't saved your changes yet.

So, thanks to Priyadi Iman Nurcahyo's blog, I've added this to /etc/X11/xorg.conf:
Section "Serverflags"
Option "DontZap"      "yes"
EndSection

26 April 2006

Wouter Verhelst: GCC 4.1

The m68k port has been having issues with GCC 4.0 since its inclusion in the archive. Although many of the bugs that spawned from that update have since been fixed, there are still a lot of them; I suspect the high number of GCC 4.0 ICEs is the main reason the m68k port still hasn't made it back as a release candidate architecture. Many of the issues with GCC 4.0 seem fixed in GCC 4.1. The most recent example is QT4, which did not build with G++ 4.0, but did build with G++ 4.1. Another particularly problematic example is some KDE-related thing (the name of which I can't remember offhand) that didn't build with GCC 4.0 due to an ICE, and didn't build with GCC 3.4 either, due to a different ICE. However, it's hard to say for sure whether GCC4.1 really is an improvement if you haven't tried using it on an autobuilder. For that reason, I just installed gcc 4.1 in the buildd chroots on jazz and quickstep, the experimental autobuilders, and made them the default compilers. Hopefully that'll work better than GCC 4.0.

Christine Spang: Side Effects

Today, I witnessed somebody attempting to read a magazine on a dark bus via the light of their cell phone. Makes me wonder what OLPC will end up causing.

25 April 2006

Erich Schubert: More thoughts on XML differencing

Last year, I gave a talk on XML differencing at the Extreme Markup Languages 2005 conference in Montr al. Since then I didn't have much time to work on that project. The prototype app is opensource, and available at ssddiff.alioth.debian.org. The slides are there, too, and so is a link to the article. XML differencing is actually a two phase process; I've been mostly working on the first phase. Traditional approaches intertwine the two phases. In the first phase, you build a mapping between the two documents. I called this a "nodeset correspondence" in the slides. Basically you decide which node from the first document corresponds to which node in the second document. When you have found this mapping (the "marked" output writer of ssddiff will output this information in form of two XML documents marked with numbers in a certain attribute), the actual differencing is done. But much of the work remains. When doing a diff, the output (format) is just as important as the actual result. While the "marked" output explained above is very precise, it doesn't give the user an overview of what has changed in the document. That's why I added two more output writers, the "xupdate" writer and the "merged" writer. The "xupdate" writer does obviously produce an XUpdate script. It goes a long way to optimizing the output (read: minimizing the number of operations), and employs a longest-common-subsequence algorithm for that (LCS is what regular diff uses on lines!). Fortunately we already have a 1:1 mapping, so this boils down to a longest-increasing-subsequence which can be computed very efficiently. Then the writer employs some XUpdate tricks to do real moves (by storing parts of the tree in variables to be inserted later), and avoids collapsing of text nodes (it will eventually insert dummy nodes for that). But all this gives just a glimpse of the complexity I've encountered in what I considered to be a "remote" part of my project. It isn't even described in the paper, because I just hacked this code together to work somewhat (attribute handling is incomplete IIRC). The "merged" writer turned out to be much more powerful than I had imagined and actually rather easy. After "merging" two version of an HTML document, I could add some CSS rules and have a visual presentation of the changes in my browser. Very cool. I'd love to add this html merge functionality to the prototype, but I didn't have enough time yet (you'll find some refactoring of the merged writer in SVN though to get there someday). But let me get back to the difficulties in the "XUpdate" writer. Not all of these difficulties are actually of technical nature. It is (like with the semantics of differencing) a matter of the intended data model and use. When you are doing a diff to be applied by a computer (e.g. via XUpdate), you may have the requirement, that the resulting document is identical to the original document. In that case, the diff is likely to have to restore whitespace. If you are interested in analyzing the differences, you will want to skip any irrelevant information. Let's assume we have an address book:
<abook><entry name="tom" /><entry name="jerry" /></abook>
Ordering of the entry nodes is likely to be irrelevant. You address book applications will sort the entries on demand. So a "semantic diff" shouldn't include any changes to the ordering of "entry" nodes, should it? The XUpdate writer doesn't have any functionality in place to skip such changes from being written to the output file. This will likely be not possible without some DTD magic and extra user information. However, to have the benefits of the "-u" context option of good old "diffutils" - fuzzy matches, and somewhat reliable merging of changes without having all revisions available - such semantics are needed, too. But this will even further increase complexity of the output writer, which for example would need to detect somehow that the "name" attribute in my address book is a unique key, and therefore xpath expressions like /abook/entry[@name='tom'] are preferrable to expressions such as /abook/entry[1], which will easily break when merging. The specification of an "XUpdate-replacement with context information" is probably a whole thesis in itself, I guess. P.S. I'm occasionally asked about a Java version of ssddiff. Sorry that I have to disappoint you there. First of all, I'm very short of time. Then I'm not too comfortable in Java, and I estimated that the Java version would need at least twice as much memory, because of certain optimizations I can't easily access in Java that I can just hide in a template in C++. And memory is the key limiting factor at least in exact mode.

23 April 2006

Martin F. Krafft: It's cool in Pyin Oo Lwin

While the heat in Mandalay was stifling, here in Pyin Oo Lwin it's quite bearable, at about 1000 metres elevation. I accepted Adam's offer to accompany him and his friends, and on Friday morning, after I climbed the Mandalay hill and visited some of the caves at its foot, we were off to drive the two hours into the Shan hills. The car ride was exhausting, so when we finally arrived, I blew off my initial plans to go to walk the botanical garden (which Adam calls the most beautiful in the world) and instead stayed in started to read my new book, "From the land of green ghosts" by Pascal Khoo Thwe, a Burmese fugitive's memoirs about his travels from this most remarkable country to Cambridge, where he went to university. We went to eat Chinese that evening and I tried to chat up some locals afterwards, but without much success, so after everything had closed at around 9:30, I headed back to the hotel. The lodge is a beautiful British colonial house with great teak-floor rooms and most helpful staff, set in a very nice setting overlooking the lake up here. At $30 per night, it's actually above my budget, but given that so far I didn't pay anything for transport or food -- Adam and his friends have taken me around -- I am still within the bounds of the expected. And for sure, those $30 are worth it, I slept great, but woke for an hour to witness a giant storm followed by a downpour of really cold rain. Saturday morning, we visited the local market and I made a reservation for my return flight from Yangon to Bangkok on 4 May. Then, following a recommendation by Adam's friend Eddy, I took a motorbike taxi to a nearby Bhuddist cave and some waterfalls. The cave was great and very unlike the ones we had seen in Laos. It extends several hundreds of metres into the mountain with a river running through it, but stairs and planks have been built everywhere, and there was plenty of light from bulbs hanging everywhere to illuminate the Bhudda statues. Actually, being very close to the Shan state, which hosts the only people with a catholic religion, I was able to witness some statues of Jesus, and also some icons of Bhuddist images with clearly Christian tendencies, such as the halo, giving it all a very weird touch, or at least I cannot place it yet. I returned for a longer chat with Adam and then set off to meet James, a former employee of the British government, who runs a computer school and was able to help me out with his satellite dish to at least allow me to send an email to a friend, who will hopefully publish my blog entries for me. Burma is really cut off, many websites are blocked, SSH seems impossible, as does HTTPS, so the sshd I had bound to port 443 is of no use to me. Also, my cellphone has no reception -- only local cellphones that cannot make international calls are allowed -- and telephone calls from the public booths are very unreliable (I tried a couple of times at least to reach my mother to say I am still alive), and a call to Germany comes in at $6 per minute and seldomly work. My time online is short as I don't want to be a burden to James, and I also want some of his time to talk about Linux and computers in Burma in general. I left eight Ubuntu CDs with him and hopefully he can put them to good use. He seemed interested at least. My further itinerary is beginning to solidify: I shall leave for Mandalay on Monday and head to Bagan on Tuesday, by boat, which a friend from college recommended to me when he read about my expedition. From there, I am considering to fly to Inle Lake and then take local transportation down to Yangon, where I want to spend four or five days. That's it for now, thanks for reading along. I will write more about my impressions of Burma when I have more time, at the latest when I get back home.

Joey Hess: ouch&#33;

I've added a sigprogs page listing some of the signature programs I've written over the years. As I was researching that, I discovered pictures of one of my programs, a variant of the RSA in 3 lines of perl, that two people have gotten tatooed onto themselves. tattoo2.jpg tattoo3.jpg
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_= echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp" dc ;s/\W//g;$_=pack('H*',/((..)*)$/)
I remember sending that in, but until today I hadn't realised that my keystrokes had actually translated into needle sticks for two people, Youch! (The history of why a few people did things like getting programs tattoed on their bodies as a form of political protest is pretty interesting, if you're not familiar with it, the basics is that this tiny 3 line program was considered a dangerous "munition" by the US government, and was thus illegal to export. Nowadays you just have to mail a copy to the CIA or someone before exporting it; OTOH I think my DVD decoder T-shirt is still illegal.) Anyway, I wonder how to represent this acheivement in my resume? "Munitions tattoo artist"?

22 April 2006

Joey Hess: ugh&#44; mailman

Just wasted 3 hours fighting with my mailman installation, which had, unnoticed to me, stopped processing any mail two weeks ago. It seemed to be either getting completly stuck on some messages in the outgoing mail queue -- strace and ltrace showed it was in some kind of tight loop processing their contents. So I solved that by removing some 900 of the 1000 queued messages (the ones that were messages about bounces, held messages, and spam), then it processed the rest of the actual important messages quite quickly. I think I've had enough of mailman. The web user interface is great for letting nontechnical users admin their own mailing lists, but every time the package upgrades I seem to have to manually delete cruft out of the queue; the spamassassin integration sucks, it doesn't allow configuring it on a per-list basis; its mail archiving is sucky, especially its attachment handling; it seems to shunt random messages constantly for no apparent reason; mailing list admin is unending drudgery of processing mails that it thinks are spam; this is at least the third time in the past year that it's just died for no apparent reason; and in general it seems the be designed with the idea that there will be a human constantly in the loop babysitting things. Oh and it still defaults to sending stupid monthly password reminders in cleartext. Guess I should try Enemies of Carlotta or something, ezmlm used to work fine w/o handholding back when I used qmail.

Tollef Fog Heen: Am I spoiled?

(By way of magnio) Go through the list. Tick everything you have or have done. If you can tick 40 or more, you're spoiled. Do you: Are you: Have you: Did you: 24, so a bit more spoiled than Magni. Not that much, though.

21 April 2006

MJ Ray: Spammers: point and laugh

Over at the Register, they think it's good to simply point and laugh when spammers claim to be Tom Jones, son of a Python. Yes, some of this spam is truly bizarre. Do spammers like ridicule?

Jose Carlos Garcia Sogo: GCompareFunc...

or why C++ sucks. I am wondering if someone could be able to explain me why this piece of code fails when I try to compile it:
  1. GMJabberClient *GMJabberManager::GetClient (GmAccount *ac)
  2. {
  3.   GMJabberClient *client = NULL;
  4.  
  5.   client = g_slist_find_custom (jabber_client_list, ac,
  6.                                 (GCompareFunc) compare_clients_by_account);
  7.   return client;
  8.  
  9. }
  10.  
  11. gint GMJabberManager::compare_clients_by_account (gconstpointer a,
  12.                                                   gconstpointer b)
  13. {
  14.   GmAccount *client_ac;
  15.  
  16.   GMJabberClient *client = (GMJabberClient *) a;
  17.   GmAccount *ac = (GmAccount *) b;
  18.  
  19.   client_ac = client->GetGmAccount();
  20.   if ( strcmp(client_ac->aid, ac->aid) )
  21.      return 0;
  22.  
  23.   return 1;
  24. }
It fails at g_slist_find_custom call, why GCC saying:
endpoints/jabber.cpp: In member function GMJabberClient* GMJabberManager::GetClient(GmAccount*):
endpoints/jabber.cpp: 6 error: invalid use of member (did you forget the & ?)
make[1]: *** [jabber.o] Error 1
I have been only able to fix this by declaring compare_clients_by_account () function a static function, while it actually should be private method of GMJabberManager client. Ideas?
Update 04-21-2006 11:31:34.- First of all, thanks to everybody who have replied to me by mail. Fot those who wonder why I don't have comments enabled, the answer is easy... it is another place to look at, to keep clean of spam, and to care. Those who suggested using constructions like this->compare_clients_by_account or &compare;_clients_by_account that won't work, as other people explained to me (and GCC says a bit more clearly if you try to compile that). As this is C++, when using such constructions you get a member function which gets passed a pointer to the class instance. This way, the prototype for what g_slist_find_custom expects and what it is actually being passed is not the same. This is where static member functions enter in action. Those are functions belonging to a class that not get passed the this pointer, avoiding the problem. Please, follow next week our "C++ sucks / what the hell" show!

20 April 2006

Neil McGovern: Killing X

I've got a IBM Thinkpad R50e. It's a very nice laptop, with a lovely keyboard. It does, however, have one farily large issue, as I discovered last night.
The control and alt keys are a little too easy to press at the same time. Therefore, it's very easy to press ctrl+alt+backspace when you've just spent an hour creating some minutes for a SPI board meeting and haven't saved your changes yet.

So, thanks to Priyadi Iman Nurcahyo's blog, I've added this to /etc/X11/xorg.conf:
Section "Serverflags"
Option "DontZap"      "yes"
EndSection

19 April 2006

Simon Richter: Spanish for Finns

Liquorice = Regaliz

Jordi Mallach: Siemens-BenQ mobile and Catalan support

While Catalan in the computer industry slowly advances, thanks to volunteer efforts and Free Software, it's difficult to see any sign of improvement in other areas of the technology world. Mobile phones are not an exception. In Catalunya, many people own a Siemens, Alcatel or Sagem mobile phone because they are the only companies that include Catalan as an option for their terminals. When I first got my mobile phone one and a half years ago, I chose an Alcatel, and while the phone was more or less ok, and Catalan was present in the interface, it lacked some Catalan characters like , , or in the input system. The battery wasn't that good, and it was a bit slow at times, but in general I was happy. Three weeks ago, I decided to switch to Telef nica's mobile phone provider, Movistar, because Vodafone has no network coverage in my mother's town, Vall de Almonacid, where I spend many weekends and vacations, and I was getting tired of my mobile turning into a plastic brick when I went there. I hoped the switch would be painless. As people talked positively about Siemens, I went for one of their free Siemens offerings: the Siemens AP75. Ugh, fellow Catalans: DON'T DO IT. So, it seems Siemens has sold or merged their mobile division with BenQ. The girl in the shop said one of the cool new features was better battery lifetime. This terminal was advertised as having Bluetooth, Infrared and other goodies. As soon as I got it (and couldn't give it back), I found out the extensive language list in BenQ mobile phones doesn't include Catalan anymore. Actually, it just offers Spanish and English. Had I known this, I would have quickly got a Nokia, which I believe are the best phones out there. But I'm silly enough not to pick the best just to support some practices, in the same way I won't but nVidia unless they do something about their drivers. Anyway, ignoring the lack of Catalan fact, the mobile was supossed to be quite good, or so I thought, until I tried to transfer my contacts list via Bluetooth. My mobile phone wasn't able to find other devices at all, and the interface doesn't list IrDA at all. What's the story? Yesterday I had the opportunity to go to the Movistar shop, and I was told a tale about the mobile phone having those features built in, but they are deactivated by the telco. This is pretty difficult to believe, and googling around, I haven't seen any proof about the AP75 having any Bluetooth support for anything other than voice transmission (ie, for use with headphones, etc). It plain sucks. So, dear Catalan readers, if you're getting new phones, avoid these BenQ-Siemens idiots, as they don't have a clue about Catalan. Either choose Alcatel, Sagem, or one of the older real Siemens mobiles. Softcatal has a Catalan mobile phones Wiki page with detailed information of the current situation. I'll have to update it to warn about current Siemens practices. In a happy future, Nokia will hopefully support Catalan and things will be a lot easier.

Jesus Climent: "ADSL lines and hard disc drives are sold for and thanks to the music"

As read in http://www.todosafavordelcanon.es/insuficiencia.html (Spanish only), one of the Spanish groups that "defend the artists and their rights", Asociaci n de Compositores y Autores de M sica (ACAM, translated as "Music Composers and Authors Ass.") claims that ADSL lines and hard disc drives should pay the "private copy" levy imposed in Spain, because "[they] are sold for and thanks to the music". Now, WHAT THE FSCK are all those Debian packages doing in my hard disc drives? And who put them there?

Next.

Previous.