Search Results: "xam"

15 February 2010

Russell Coker: Will Aliens be Alien?

The Telegraph has a silly article titled Aliens are likely to look and behave like us [1]. It s based on the ideas of Professor Simon Conway Morris [2] who is a big fan of evolutionary convergence. He seems to believe that humans evolved in a way that is close to optimal and that aliens would have to evolve in a similar manner. The article s claim that aliens will look and behave like us has three flaws, one is assuming that humans are the ideal form for space travel, another is the significant possibilities for vast objective differences between species, and the final one is the human tendency to regard small differences as being really significant. The Arrogance of Assuming that Humans are Ideal. It seems extremely arrogant to assume that humans have the ideal form for performing tasks that we have not yet performed such as traveling to another star system. To assume that it is certain that humans will colonise the stars is also extremely arrogant and foolish as well, I think that a significant amount of money should be devoted to existential risks that we face. People who believe that humans will inevitably colonise the stars (probably because God told them there s no other reason for such certainty) will tend to oppose taking prudent measures to reduce the probability of failure. We should also consider the possibility that a human society that colonises another star system at some future time might be so different from us that we regard them as alien. How Might Aliens be Different? It seems to me that one problem with the theory of convergent evolution (as applied to different planets) is that evolution doesn t seem to work in big steps. It seems to me that for an increasing portion of the jobs in our technological society there would be a benefit in having four arms and two legs, and maybe having more than four fingers on two of the hands. But evolving a bone structure that makes four arms useful is not a minor tweak so it seems unlikely to happen naturally we might be able to genetically modify humans to have four arms and two legs with some future technology. I can t believe that four limbs is the optimal number for every mammal, amphibian and reptile (apart from the legless ones), that two legs plus two wings is the optimal number for every bird, and that six legs is the optimal number for every insect. I also can t believe that two arms and two legs is the optimum number for every primate with the only significant difference in limbs being the primates that possess a prehensile tail. Evolution doesn t produce perfect creatures, what it does is to produce creatures that tend to be slightly fitter than their ancestors. So even if there was an optimal form for a species that develops interstellar-craft, there would be no reason to assume that humans have such a form even if we had developed interstellar travel. I think it s relatively safe to assume that aliens would have two eyes (stereoscopic vision is a significant advantage), but apart from that I don t think we can assume much about their appearance. For example I don t think that there s any inherent reason why creatures as intelligent as current humans could not evolve from octopuses 8 arms would be quite useful for operating machines. Aliens that spread beyond their own home planet don t have to be optimal for such tasks, they only need to become the dominant species on their planet, develop decent technology, and then want to leave their planet. A species that took 100,000 years to achieve what humans have achieved in the past 100 years might not be considered optimal but it might still be able to eventually launch interstellar craft. I don t think it s reasonable to assume that aliens would have to be as intelligent as humans to do that. But it does seem most likely that any aliens who manage to get here would be more intelligent than us. Guns, Germs, and Steel: The Fates of Human Societies by Jared Diamond has a really interesting analysis of how human history was determined by geography and the availability of plants and animals suitable for domestication. Part of the explanation for the apparent lack of intelligent aliens could be planets where the dominant species was stuck in a situation like that of the people of New Guinea, the lack of plants and animals suitable for domestication prevented their society from developing. A stone-age human civilisation could potentially be stable for millions of years. The article says Extra-terrestrials might not only resemble us but have our foibles, such as greed, violence and a tendency to exploit others resources . Well for starters a species that can displace all other contenders to become the dominant species in their planet would have to be capable of greed and violence. So that is probably correct but is not really going out on a limb. Physorg.com has a short article describing the benefits of sexual reproduction in terms of the rate of accumulation of harmful mutations [3]. So it seems that sexual reproduction is most likely among intelligent aliens. But I don t think that there is any reason to assume that aliens couldn t be hermaphrodites. The Telegraph article claims that Star Wars and Star Trek could be more accurate than they ever imagined in depicting alien life , but given that Star Trek has avoided homosexuality even when demanded by the plot it seems that whatever aliens do in the bedroom would be way outside the range of activities alluded to in Star Trek. It seems that almost all sci-fi has aliens that are less alien than a significant portion of the human population. I think it s safe to predict that if we should meet aliens they will not look like humans wearing cheap make-up or rubber suits that has more to do with the budgets assigned to movie studios than any claim to potential realism. It seems most likely that a society capable of developing space travel would need a great deal of training for it s young before they become self-sufficient. Species of animal that abandon their eggs and hope for the best seem unlikely to succeed in doing that. I think that this implies that a pair-bonded species that spends an extended amount of time raising their young is most likely to succeed. Perceptions of Aliens Vulcans are widely regarded as being on the Autism spectrum. So it seems that having some similarities in personality to about 1% of the human population is enough to convince most human viewers that the character in question is an alien. A Google search for such things just turns up many references to people on the Autism spectrum who feel like aliens which incidentally is the source of the alias ETBE [4] that I used for more than 10 years before being diagnosed as an Aspie. Star Trek aliens aren t actually very alien by human standards! Given the repeated demonstrations of the general human inability to recognise the psychological similarities in people from different countries or racial/ethnic/religious backgrounds it seems likely that few people would recognise aliens as being at all similar to us. As so many people are unable to recognise the fundamental similarities in people who happen to have a different skin color I can t imagine many people immediately regarding beings that look like octopuses as having human traits. Could an eusocial organism (such as bees or ants) develop space travel? It seems to me that most people wouldn t regard humans who act in a manner that resembles ants (such as the Borg Collective) as being like us . The possibility of an eusocial race evolved from humans is explored in Coalescent: A Novel (Destiny s Children, Bk. 1) by Stephen Baxter (and more briefly in the sequels). Probability The universe is a large place. Making a specific prediction about the first alien species that we might encounter might make some sense. But given the potentially billions of species that might be out there we should assume that some of the more improbable forms are represented. Claiming that anything in particular is impossible seems very rash. Also anyone who makes claims about what evolution should do seems to have missed the point. What evolution does is to give rise to species that tend to be a better fit for the environment. Different environments result in different creatures. We can try and predict what creatures might evolve, but we don t get to say that things should happen.

Christine Spang: a foray into emacs

This spring I'm taking a class that does all its programming assignments in MIT Scheme. The last time I had to write Scheme for class, we used PLT Scheme, and thus the DrScheme editor. This time, with that option out, I've decided to do the assignments in Emacs. It is, after all, an editor built out of lisp. I've used vim for the last five years or so. Some people ask me why this is so I do go to MIT after all, where Emacs was originally written. The answer to that is simply that Debian got to me first, and at the time at least, the people I knew there used vim. I've heard Emacs is good, but up until this point every time I've tried it I've thrown it down in frustration and then couldn't figure out how to exit the damn thing. This time I was more determined, and made it through the initial hump of being completely useless at the editor. Here are a few of my observations so far, after mucking around for a couple days over a period of about two weeks: I'm pretty sure at this point that I'm still trying to bend emacs into being vim with different keybindings instead of figuring out how emacs wants to be used. It's also difficult to compare and contrast between the two editors in that my .vimrc contains years of tweaks and customizations whereas my .emacs started out as a clean slate. There are two things I'm doing to try to mentally separate emacs from vim, to avoid my fingers' muscle memory from becoming confused:
  1. I'm always using emacs in an X window with dark-on-light text, whereas I always use vim in a terminal with light-on-dark text.
  2. I'm only writing scheme in emacs. No other languages so far.
I'm planning to keep working on these programming assignments in emacs, despite it being annoying slower than I would be in vim. Tips and pointers for improving my experience are welcome.

14 February 2010

Russell Coker: Which People are Stupid on the Internet?

I don t think that the answer is everyone or even everyone other than my geeky friends , but obviously it is a large number of people. Many people apparently type facebook into Google and try to login to the first thing that they see, if it happens to not be Facebook then they whine this became known after a Google search for facebook login happened to not return the Facebook login page as the first link [1]. This blog post claims that they are not stupid [2] the specific claim is that URLs etc are just too complex. I disagree, if my mother and my mother-in-law can both do better than that then I think that we should expect that a significant portion of retirees can do so and we should also expect that younger people will do better than older people. In a more specific sense, when I was in primary school I was taught the Dewey Decimal System aka Dewey Decimal Classification. With the DDC a primary school student can look up the location of a book in the library index system (cardboard files when I was at school) and then know where to find it. After looking up a book on one occasion no-one would want to repeat the effort so the sensible thing to do is to write down the DDC index to any interesting book. The same mental processes can be used for dealing with URLs, someone might find Facebook etc through Google on the first occasion but they can then use browser bookmarks and written notes for traveling to track the URLs that interest them. I think we should expect that a typical adult nowadays should be able to complete any task that would be expected of a 10yo when I was young, and I don t think it s unreasonable to call an adult stupid if they can t compare to a 10yo from the early 80 s! As a specific example, while 10yo children were given assignments to look up various books in the DDC I think that an adult can be expected to work out the value of an index on their own young children should be expected to require a little more training than adults! Some people will claim that it s not stupidity but ignorance. What exactly is supposed to have prevented these people from learning? Have the primary school libraries stopped teaching the DDC and most other things related to storing written knowledge? Is there supposed to be such an utter lack of computer skills in the general population that anyone who wants to learn will be unable to do so? I m sure that there are plenty of retirees who could seek advice from my mother or my mother-in-law if they wanted to learn about such things. NB I m not making any general comment about gender specific computer skills here, my father and my father-in-law don t seem to use the Internet much and they aren t the ones to complain to me when things break so I can t assess their skills. I am talking about four individuals and the only generalisation that I am making is that 2/4 retirees I know well seem to have good Internet skills and therefore I expect there to be a reasonable number of retirees who successfully use the Internet. The Making Light analysis and discussion of the issue has a lot of good points (Making Light does in fact make light ) [3]. But does have some claims that I find really strange, one example concerns a woman who misunderstood the way the up/down buttons work to call an elevator. Misunderstanding the buttons is one thing, but she also shared her knowledge of elevators with others, presumably she had more than a few people try to correct her and she ignored their advice. I think that someone who ignores advice from a variety of people, ignores advice that can easily be tested (just push the elevator buttons and observe what happens), and then goes around sharing their wrong ideas seems to have clearly crossed the line separating cluelessness from stupidity. One of the Making Light comments references the Clients From Hell blog a summary of strange, stupid, and amusing requests that clients have made to web design companies [4]. It seems to me that there are two noteworthy categories of anecdote on that site. One is requests that demonstrate ignorance of the work, such as requesting something significant and complex to be done in an hour. The other is requests that demonstrate contempt for the people doing the work, such as offering to pay $10 per hour. Misjudging the time taken to complete work is forgivable if someone has the skill to accurately estimate the time required then they would be able to do the work and wouldn t be asking for a quote for someone else to do it. Demonstrating contempt for someone that you are about to hire is stupid no matter how or why it s done. Clients From Hell also documents people who have requests that are obviously silly, it s understandable that someone might expect a blurry image to be sharpened as done on CSI , but wanting use image editing to reveal the face of a person who was facing away from the camera is simply assigning magical powers to the computer the fact that this sort of thing is done in shows such as Star Trek says a lot about the shows in question and their viewers. Often car metaphors are used for computers, you can be a good driver without knowing the details of how a car works but you do have to know how the pedals, switches, and steering wheel work as well as the meanings of the various dials. You can be competent at using the Internet without knowing much about bits, bytes, assembler code, or how a CPU works but you do need to know how the controls work and this means knowing how to type a URL. The basic operations of browsing the web require considerably less skill than driving a car and less skill than is commonly used in operating the telephone system (including PABX systems, mobile phones, and international calls). Anyone who is unable (not unwilling) to drive a car or make any phone call other than a local direct call and yet is reasonably intelligent could be used as an example of how an intelligent person could be unable to understand some aspects of technology, I don t think that there are many people in that situation it s difficult to find an adult in Australia who can t drive a car. Finally while it s reasonable to be uninterested in some things, it s not reasonable to be interested in doing something without wanting to learn how to do it properly. If typing facebook.com is so difficult that it exceeds someone s level of interest in the service then they shouldn t complain if they find that they can t access the service. Really typing facebook.com into the address bar of a web browser is easier than starting the engine of a car with a manual transmission, it s easier than filling the fuel tank of a car with the correct fuel, or figuring out when a car is due for service. Now there are serious security issues revealed by this event. I m sure that lots of people use similar methods to access their online banking etc. I just did a quick Google search for online banking with Australian banks, and I noticed that a few of the search results have adverts from rival banks. So it seems quite plausible that someone could trick Google into thinking that they run a bank (there are many thousands of banks in the world), run adverts competing against established banks, and phish the people who click on them. I wonder whether the best solution would be for the banks to test the security of their customers. Then any customer who gets phished by the bank s anti-fraud division would receive increased bank fees for the next few years and the rest of us who are less risk to the bank could receive lower fees. The current situation seems to be that my bank fees are partly determined by the need to recoup the money that the bank loses from customers who just use Google to find their bank s web site. I would rather not pay for the stupidity of such people. In the end all security comes down to people issues, technology just helps people do the right thing. I believe that one of the groups of stupid people on the Internet are those who believe that the Internet should be made safe for people who want to know nothing about it not even the basic library skills that are taught to primary school students.

12 February 2010

Sandro Tosi: This RRD was created on another architecture

That is the message you'll receive when trying to open a RRD database created on a 32bit machine from a 64bit one (it's also true the reverse). It's due to the fact that RRD is an architecture-dependent file format: endianess and integer bits length matter.

That's quite boring, given it's quite common to let each machine generate its own RRDs and graph them from a central place, and the more machines you have, the more chances of the above problem.

So, for another example, if you migrate one machine from 32 to 64 bits, you'll have to:
as described here. And when you have +4GB of RRDs it's not so painless.

So, can we haz an architecture independed RRD file format? Pretty please?

It was planned for 1.4, and now that 1.4 is release it's planned for 1.5. Let's hope it comes soon, it would be really nice! :)

11 February 2010

Joachim Breitner: Diploma Thesis Finished

Earlier today, I went to a local copy shop and had my diploma thesis printed. This afternoon, I will hand it in. The title is Loop subgroups of Fr and the images of their stabilizer subgroups in GLr( ) and discusses a group-theoretical result. I assume that very few readers care about the content of the thesis, but maybe some are interested in a few assorted LaTeX hints. I m also publishing the full TeX source code, maybe someone can make use of it. Less chatty varioref I m using the varioref package, in conjunction with the cleveref package. This provides a command \vref fig:S3S4l which will expand to, for example, to Figure 1 on page 11 . But if the referenced figure is actually on the current page, the next page, the previous page or the facing page (in two-side layouts), it will say so: Figure 1 on this page. This is very nice, but I assume that the reader of my thesis is able to find Figure 1 when it is visible, i.e. on the current or facing page. One can remove the referencing texts with the commands \def\reftextfaceafter , \def\reftextfacebefore and \def\reftextcurrent . But because varioref puts a space between Figure 1 and this text, we will get a superfluous space even before punctuation. The remedy is the command \unskip, which removes this space again. So I use in my preamble:
\def\reftextfaceafter  \unskip %
\def\reftextfacebefore \unskip %
\def\reftextcurrent    \unskip %
Palatino and extra leading I chose the Palatino font for my thesis, using the mathpazo package. Various sources (such as the KOMA-Script manual) suggest to use 5% extra leading:
\linespread 1.05 
Counting figures independently from chapters I don t have too many figures and tables in my thesis, and I want them to be numbered simple 1, 2, ... By default, LaTeX would say 1.1, 1.2, 2.1, ... This can be fixed using the remreset package and these commands:
\makeatletter
\@removefromreset figure chapter 
\renewcommand \thefigure \arabic figure 
\@removefromreset table chapter 
\renewcommand \thetable \arabic table 
\makeatother
No widows and club lines LaTeX already avoids these, but I wanted to get rid of them completely. This can be done with:
% Disable single lines at the start of a paragraph (Schusterjungen)
\clubpenalty = 10000
% Disable single lines at the end of a paragraph (Hurenkinder)
\widowpenalty = 10000 \displaywidowpenalty = 1000
Struck table lines I had to typeset tables with some lines struck, and I could not find a ready command for that. I used the following definition, based on the code for \hline. Note that it probably does not adjust well to other font sizes and needs to be adjusted manually:
\makeatletter
\def\stline %
  \noalign \vskip-.7em\vskip-\arrayrulewidth\hrule \@height \arrayrulewidth\vskip.7em 
\makeatother
Title page in one-sided layout According to the KOMA manual, the title page as set by LaTeX is not meant to be the cover of a publication, and therefore has to be set with the margins of a right page i.e. a larger right margin and a smaller left margin. But when printing cheaply, one often just put a transparent sheet on top of the print, so the title page is the cover. You can convince KOMA that you are right by using
\KOMAoptions twoside=false 
\begin titlepage 
...
\end titlepage 
\KOMAoptions twoside=true 
Not flushing the page for chapter heads LaTeX would put the list of algorithms on a new right page. I found this a waste of paper for my few algorithms, and preferred to put the list right after the table of contents. You can override the LaTeX behavior using:
\tableofcontents
 
\let\cleardoublepage\relax  % book
\let\clearpage\relax  % report
\let\chapter\section
\listofalgorithms
 
This code also reduces the size of the heading to that of a section. The same trick also works with \chapter. Math in headings vs. PDF bookmarks LaTeX with the hyperref package creates nice PDF bookmarks from your chapter and section titles. Unfortunately, PDF bookmark names can only be plain strings, while the titles in the document might contain some math symbols. You can make both happy with \texorpdfstring:
\section Stabilizer subgroups in \texorpdfstring $\GL_r(\Z/2\Z)$ GL\_r(Z/2Z) 
Setting lines for the signature The diploma thesis contains a small note which I have to sign, saying that I created it on my own etc. Below that, I put two labeled lines for date and signature, using the tabbing environment:
\begin tabbing 
\rule 4cm .4pt \hspace 1cm  \= \rule 7cm .4pt  \\
Ort, Datum \> Unterschrift
\end tabbing 

Alexander Reichle-Schmehl: [Updated] RC-Bug statistics for Squeeze, calendar week 6:

Back in the Lenny release cycle, I published some statistics of the release critical bugs. As we are (try to) get nearer to a freeze of Squeeze I think it's time to start that again. But first, a small explanation follows, what these numbers actually mean. If you look at our official bug tracking system currently lists 750 release critical bugs affecting the next stable release. While this number is kind of true, it is not accurate to use it to measure the state of the release. The unofficial rc bug thingy at bts.turmzimmer.net is quite more powerful to actual get some interesting numbers, as you can ignore specific kinds of bug and filter them properly. Note, that at the very end of the detailed list of the bugs you get the total number. With that interface you can for example filter them by different distributions. For example it currently lists 650 rc bugs in total for any distribution, but if you filter for squeeze bugs, you get only 518. That's a different number as the official bug tracker shows; I'm not entirely sure why, but a part of that difference is that both the official and the unofficial web pages are only synced periodically. Should someone be able to give a good explanation about the differences, please step forward ;) But let's play more: You can filter for bugs valid in squeeze-only, but not in sid. These bugs are already fixed in sid, but the packages haven't yet migrated to squeeze. Currently that are 94 bugs. We can furthermore ignore bugs only in sid; when squeeze is unaffected, we just don't migrate the broken package from sid to squeeze. The number that is most interesting for contributors is the number of bugs affecting both, sid and squeeze, as these are the ones which really need to be fixed as no fix is known, yet. So filtering for bugs for both we are down to 424 at the moment. But of these 424 remaining release critical bugs, we can still ignore some (for now). For example bugs concerning packages in non-free or contrib (9 currently) won't stop us from release, will they? There are also many bugs marked as pending (32), meaning that the maintainer is aware of the bug has a fix prepared and is just waiting with the upload a moment. Some of this bugs have already a patch (64), but no one reviewed it and uploaded it by now. You'll also see that you can ignore merged bug reports (47). That are bug reports reporting the very same bug several times. Finally there are bug fixes already uploaded to the so called delayed queue (6). This are bug fixes which where uploaded by someone else than the real maintainer, but to give the maintainer a chance to act on himself or to comment, the upload is delayed by some days before it will actually hit the archive. Currently 6 bugs are fixed by uploads to delayed. 17 bugs are claimed meaning that someone already said he will take care of this bug (but they are not finished, yet). You could also ignore the bugs invalidated by today's britney bug category, representing bugs which will vanish after the next migration of packages from sid to freeze, but as we are only looking at rc bugs in both sid and squeeze, this number will always 0 ;) That leaves bugs somehow other marked as fixed which are bugs (39) where I honestly have no Idea what they are... If someone can explain them, please do so ;) Here is a small tabular showing the above numbers:
Total:650
Affecting Squeeze:518
Squeeze-only:94
Unfixed bugs remaining in Squeeze:424
Of these 424 bugs...
... are pending32
... are patched:64
... are duplicates:47
... are in Non-free or contrib:9
... are claimed by someone:17
... are fixed in the delayed queue:6
... are somehow marked as fixed:39
Or in other words:
Release critical bugs left in squeeze, when ignoring all these:
260 That's a pretty number, isn't it? There are only 260 bugs left which need our immediate attention :) But that is a rather optimistic view of the situation. We e.g. assume that all bugs having a patch are really fixed by the patch. We also ignored, that some bugs in squeeze are already fixed in sid, but the package can't migrate because the package in sid contains a new bug. (Which happens to release wizard Marc Brockschmidt quite often.) So if we take off the purple classes and take a more pessimistic view (release mangers must be pessimists to ensure high quality packages ;) we count the bugs in squeeze and ignore only those bugs, which are: With this release managers views, 424 bugs remain to be fixed somehow before we can release. As far as I know, we can freeze once that number is reliable under 300. So we better get working ;) When asked, what is the thing mostly needed to help the release, I was told: mips porter!
As you might have read we have some problems with the mips and mipsel architectures. It seems we have all the hardware we need, but it doesn't work very reliable. I have been told, that over 300 packages are only waiting to be build on mips* architectures. So if you can help us in that regard, please contact our mips porter mailing list. Update: Andreas Barth just told me, that he already send a couple of mails to the mips list describing the problem and asking questions. Answers to these questions would be most welcome and accpeted gladly.

10 February 2010

Bernd Zeimetz: caching issues in django

Yesterday I stumbled upon an interesting and broken behaviour of Django: Running two instances with the same memcached as cache backend might result in displaying the wrong template from the cache in case we have template files with the same name but a different content. This behaviour is also visible in all django applications which use the cache backend without taking care of settings.CACHE_MIDDLEWARE_KEY_PREFIX. As mentioned in the bug report a design decision is necessary here, as the setting was only supposed to be used in middlewares. On the other side not honouring the setting everywhere makes it impossible to use different (unrelated) Django instances with one memcached. While this is not such a big issue for template data, it should be - for example - possible to insert faked django CMS user permissions into memcached as they are cached there, too. One possible solution is to ensure that settings.CACHE_MIDDLEWARE_KEY_PREFIX (or a similar setting with a better name) is used for every access. Using the following snippet as custom cache backend ensures this. Additionally it is much harder to insert faked cache content by using a md5 hexdigest as key. Although you should never store sensitive data in memcached - if you need to cache such data, use locmem, file or db as cache backend, as they allow to limit access to the data properly.
from django.conf import settings
from django.core.cache.backends.memcached import CacheClass as DjangoMemcachedCacheClass
from django.utils.hashcompat import md5_constructor
class CacheClass(DjangoMemcachedCacheClass):
    def __init__(self, server, params):
        self.key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
        super(CacheClass, self).__init__(server, params)
    def _genkey(self, origkey):
        return md5_constructor("%s:%s" %(self.key_prefix, origkey)).hexdigest()
    def add(self, key, value, timeout=0):
        return super(CacheClass, self).add(self._genkey(key), value, timeout)
    def get(self, key, default=None):
        return super(CacheClass, self).get(self._genkey(key), default)
    def set(self, key, value, timeout=0):
        return super(CacheClass, self).set(self._genkey(key), value, timeout)
    def delete(self, key):
        return super(CacheClass, self).delete(self._genkey(key))
    def get_many(self, keys):
        return super(CacheClass, self).get_many(self._genkey(key))
    def incr(self, key, delta=1):
        return super(CacheClass, self).incr(self._genkey(key), delta)
    def decr(self, key, delta=1):
        return super(CacheClass, self).decr(self._genkey(key), delta)

9 February 2010

Martin F. Krafft: Baffling Exchange

I found out yesterday that my university s Microsoft Exchange Server account stopped forwarding my mail on 8 December 2009. As a result, mail accumulated there and remained unseen. Dear examiners, paper authors, supervisors, sponsors, participants, and peers who responded to my calls and cries related to my PhD thesis. I am terribly sorry that you were subjected to this. You replied usually within a few days, but I still sent you reminder after reminder in the weeks to follow. You must have thought that I was a real dork. Please forgive me. I really appreciate your patience! I filed a ticket with my university s IT service provider, which got closed the next day with it should now work again . That wasn t going to cut it for me, so I reopened the ticket, asking for an explanation. Next, I received an apology with a bit of speculation. After a bit of research, it seems that the reason was to be found in the inconsistency of being an external staff member (i.e. an e-mail address outside of the Active Directory domain), but still having an account on the server. On 8 December 2009, the server was upgraded with a service pack. This caused Exchange to go a little manic on the housekeeping. After all, why would anyone ever want to forward their e-mail elsewhere, and still have an account? Well, I certainly don t want an account, and yet I have to have one: Microsoft has bought their ways into the university and spread their germs all across, I need credentials to be able to access shared files, print, browse the library, or search the phone book. However, considering that UL s Outlook Web Access instance does not let users of decent browsers search their mailboxes (a premium feature reserved for users of Internet Exploder), one cannot manipulate more than a page-full of e-mails at a time, bounce messages, or do many of the other operations that make dealing with large amounts of e-mail possible, and because Exchange mail if it doesn t get lost in the first place sucks in so many other ways, I certainly prefer my mail to be handled by a real mail server with a proper mail filter (writeup in progress). Maybe the Exchange service pack was simply designed to get rid of outcasts like me who don t buy into the low-Microsoft-quality vendor lock-in? We ll never know, thanks to the proprietarity of their software (and the fact that the university service provider apparently does not keep logs of changes). NP: AC/DC: Back in Black

Kees Cook: easy example of filesystem capabilities

Instead of using setuid programs, the goal for the future is to use fine-grained capabilities. For example, here is /bin/ping:
$ ls -la /bin/ping
-rwsr-xr-x 1 root root 35680 2009-11-05 00:41 /bin/ping
$ ./ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.041 ms

$ sudo setcap CAP_NET_RAW=ep /bin/ping
$ getcap /bin/ping
/bin/ping = cap_net_raw+ep
$ ./ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.041 ms

$ dmesg tail -n1
[212275.772124] warning: /bin/ping has both setuid-root and effective capabilities. Therefore not raising all capabilities.
The best part is that the kernel will choose the set of least privileges when both setuid and capabilities exist. Easy way to transition!

Lucas Nussbaum: Slides from my FOSDEM talk on Debian and Ubuntu

I ve just put the slides of my talk on Debian and Ubuntu online. Don t hesitate to post comments to ask for clarifications where needed (it might be difficult to understand some parts of the slides without being in the room). Clarifications:

Dirk Eddelbuettel: Rcpp 0.7.5

A new release of our Rcpp R / C++ interface classes is now out, the version number is 0.7.5. It comes on the heels of the release 0.7.4 and keeps with our semi-frantic schedule of releases every ten or so days going. The package is now on CRAN and Debian, and mirrors start to get the new versions. As before, my local page provides more details and Romain's blog is always worth watching too. The changes are summarised below in the NEWS file snippet, more details are in the ChangeLog as well.
0.7.5	2010-02-08
    o 	wrap has been much improved. wrappable types now are :
    	- primitive types : int, double, Rbyte, Rcomplex, float, bool
    	- std::string
    	- STL containers which have iterators over wrappable types:
    	  (e.g. std::vector<t>, std::deque<t>, std::list<t>, etc ...). 
    	- STL maps keyed by std::string, e.g std::map<std::string>
    	- classes that have implicit conversion to SEXP
    	- classes for which the wrap template if fully or partly specialized
    	This allows composition, so for example this class is wrappable: 
    	std::vector< std::map<std::string> > (if T is wrappable)
    	
    o 	The range based version of wrap is now exposed at the Rcpp::
    	level with the following interface : 
    	Rcpp::wrap( InputIterator first, InputIterator last )
    	This is dispatched internally to the most appropriate implementation
    	using traits
    o	a new namespace Rcpp::traits has been added to host the various
    	type traits used by wrap
    o 	The doxygen documentation now shows the examples
    o 	A new file inst/THANKS acknowledges the kind help we got from others
    o	The RcppSexp has been removed from the library.
    
    o 	The methods RObject::asFoo are deprecated and will be removed
    	in the next version. The alternative is to use as<foo>.
    o	The method RObject::slot can now be used to get or set the 
    	associated slot. This is one more example of the proxy pattern
    	
    o	Rcpp::VectorBase gains a names() method that allows getting/setting
    	the names of a vector. This is yet another example of the 
    	proxy pattern.
    	
    o	Rcpp::DottedPair gains templated operator<< and operator>> that 
    	allow wrap and push_back or wrap and push_front of an object
    	
    o	Rcpp::DottedPair, Rcpp::Language, Rcpp::Pairlist are less
    	dependent on C++0x features. They gain constructors with up
    	to 5 templated arguments. 5 was choosed arbitrarily and might 
    	be updated upon request.
    	
    o	function calls by the Rcpp::Function class is less dependent
    	on C++0x. It is now possible to call a function with up to 
    	5 templated arguments (candidate for implicit wrap)
    	
    o	added support for 64-bit Windows (thanks to Brian Ripley and Uwe Ligges)
As always, even fuller details are in the ChangeLog on the Rcpp page which also leads to the downloads, the browseable doxygen docs and zip files of doxygen output for the standard formats. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page

Francois Marier: Excluding files from git archive exports using gitattributes

git archive provides an easy way of producing a tarball directly from a project's git branch.

For example, this is what we use to build the Mahara tarballs:
git archive --format=tar --prefix=mahara-$ VERSION / $ RELEASETAG bzip2 -9 > $ CURRENTDIR /mahara-$ RELEASE .tar.bz2
If you do this however, you end up with the entire contents of the git branch, including potentially undesirable files like .gitignore.

There is an easy, though not very well-documented, way of specifying files to exclude from such exports: gitattributes.

This is what the Mahara .gitattributes file looks like:
/test export-ignore
.gitattributes export-ignore
.gitignore export-ignore
With this file in the root directory of our repository, tarballs we generate using git archive no longer contain the selenium tests or the git config files.

If you start playing with this feature however, make sure you commit the .gitattributes file to your repository before running git archive. Otherwise the settings will not be picked up by git archive.

8 February 2010

Biella Coleman: Hacker and Troller as Trickster

trickster If you read the literature on tricksters, you will confront a string of words that capture the moral quality and sensibilities of these figures, figures scattered across time and place and largely enshrined in myths and stories:
Cunning, deceit, lying, provocateur, mischief, audacious, thief, play, shrewdness, audacity, grotesque, over the top, appetite, shocking, fun, delight, wit, trap, subversive, ability, wanderer.
These figures, which include Coyote, Loki, Hermes, and Eshu, among many more, push the envelope of what is morally acceptable and in so doing, argues Lewis Hyde (in his tome on the subject), renew and revitalize culture, especially the moral stuff of culture. They are not only boundary crossers, they are boundary makers. As the title of his book so succinctly and masterfully broadcasts Trickster Makes this World. Or as he suggests with a bit more elaboration:
I want to argue a paradox that the myth asserts: that the origins, liveliness, and durability of cultures require that there be a space for figures whose function is to uncover and disrupt the very things that cultures are based on p. 9
At the opening of the book, Hyde asks whether there are tricksters in modern industrial societies. His answer is a plain no. The con man who might share some similarities does not qualify. For in fact what is needed is either a polytheistic system or lacking that, he needs at least a relationship to other powers, to people, to instructions, and traditions that can manage the odd double attitude of both insisting that boundaries be respected and recognizing that in the long run their liveliness depends on having those boundaries regularly distributed p.13 He does locate the spirit of the trickster in spirited individuals: in Picasso, in Frederick Douglass, in laudable figures who push certain boundaries and renew our world for the better but nonetheless fall short of the archetypal trickster. I bet it is pretty obvious where I am going with all of this given my object of study: phreakers, hackers, and trollers. The trickster does exist across America, across Europe, really across the world and it is not in myth but in embodied in group and living practice: in that of the prankster, hacker, the phreaker, the troller (all of whom, have their own unique elements of course, but so does each trickster). Their relationship to other powers are many and can be located in terms of information, intellectual property, the government, language itself, institutions of power like the FBI and AT&T. The list is not short. For a few years now I have been thinking about the linkages between the trickster and hackers as well as the troller but it was only in the fall when I found myself trapped in a hospital for a week that I finally cracked open the book by Hyde and devoured it. Within a the first few pages, it was undeniable: there are many links to be made between the trickster and hacking. Many of these figures, push boundaries of all sorts: they upset ideas of propriety and property; they use their sharpened wits sometimes for play, sometimes for political ends; they get trapped by their cunning (which happens ALL the time with tricksters! That is how they learn); and they remake the world, technically, socially, and legally and includes software, licensing and even forms of literature (think textfile, the Jargon File or most dramatically, ED). But if the trickster generally resides in myth, and the trickster of the information age resides in practice, myth matters everywhere because there is a mythos created around these figures. Sometimes the mythos is propagated these groups (take a look of ED for example or Phrack in the past) and of course the media has played an undeniable role. And yet, unlike what is represented in the pages of Hyde, there are living, actual bodies in motion, in conversation, in transformation, a group that goes far beyond the other more controlled and bounded tricksters we might be able to locate in society, such as artistic/political groups like the Yes Men. But the most shocking (or hard to think through) element lies less in the many associations one can make, but in the following curious fact. For the most part the trickster is enshrined in myth and stories but the tricksters I am referring to are in fact full-bodied, full-blooded groups of people who are actually engaging in all sorts of acts of trickery. This is culture not in the sense of art and myth but people and practice and this of course makes an (ethical) difference. What happens when you are the recipient not of a story offered an elder, but the recipient of trickery, an act of pranking or trolling, for example? What happens when you can trace all sorts of instances of boundary re-shifting and remaking, as with the GPL? I think this, even more than the linkages, is what makes this connection so remarkable and I trying to think through what it means to have a figure that we can find and talk to, as opposed to one embodied in myth and story. For now I am going to leave this post short and in the next installment, will start raising some of the connections between trickery and variants of hacking and trolling.

Biella Coleman: Hacker and Troller as Trickster

trickster If you read the literature on tricksters, you will confront a string of words that capture the moral quality and sensibilities of these figures, figures scattered across time and place and largely enshrined in myths and stories:
Cunning, deceit, lying, provocateur, mischief, audacious, thief, play, shrewdness, audacity, grotesque, over the top, appetite, shocking, fun, delight, wit, trap, subversive, ability, wanderer.
These figures, which include Coyote, Loki, Hermes, and Eshu, among many more, push the envelope of what is morally acceptable and in so doing, argues Lewis Hyde (in his tome on the subject), renew and revitalize culture, especially the moral stuff of culture. They are not only boundary crossers, they are boundary makers. As the title of his book so succinctly and masterfully broadcasts Trickster Makes this World. Or as he suggests with a bit more elaboration:
I want to argue a paradox that the myth asserts: that the origins, liveliness, and durability of cultures require that there be a space for figures whose function is to uncover and disrupt the very things that cultures are based on p. 9
At the opening of the book, Hyde asks whether there are tricksters in modern industrial societies. His answer is a plain no. The con man who might share some similarities does not qualify. For in fact what is needed is either a polytheistic system or lacking that, he needs at least a relationship to other powers, to people, to instructions, and traditions that can manage the odd double attitude of both insisting that boundaries be respected and recognizing that in the long run their liveliness depends on having those boundaries regularly distributed p.13 He does locate the spirit of the trickster in spirited individuals: in Picasso, in Frederick Douglass, in laudable figures who push certain boundaries and renew our world for the better but nonetheless fall short of the archetypal trickster. I bet it is pretty obvious where I am going with all of this given my object of study: phreakers, hackers, and trollers. The trickster does exist across America, across Europe, really across the world and it is not in myth but in embodied in group and living practice: in that of the prankster, hacker, the phreaker, the troller (all of whom, have their own unique elements of course, but so does each trickster). Their relationship to other powers are many and can be located in terms of information, intellectual property, the government, language itself, institutions of power like the FBI and AT&T. The list is not short. For a few years now I have been thinking about the linkages between the trickster and hackers as well as the troller but it was only in the fall when I found myself trapped in a hospital for a week that I finally cracked open the book by Hyde and devoured it. Within a the first few pages, it was undeniable: there are many links to be made between the trickster and hacking. Many of these figures, push boundaries of all sorts: they upset ideas of propriety and property; they use their sharpened wits sometimes for play, sometimes for political ends; they get trapped by their cunning (which happens ALL the time with tricksters! That is how they learn); and they remake the world, technically, socially, and legally and includes software, licensing and even forms of literature (think textfile, the Jargon File or most dramatically, ED). But if the trickster generally resides in myth, and the trickster of the information age resides in practice, myth matters everywhere because there is a mythos created around these figures. Sometimes the mythos is propagated these groups (take a look of ED for example or Phrack in the past) and of course the media has played an undeniable role. And yet, unlike what is represented in the pages of Hyde, there are living, actual bodies in motion, in conversation, in transformation, a group that goes far beyond the other more controlled and bounded tricksters we might be able to locate in society, such as artistic/political groups like the Yes Men. But the most shocking (or hard to think through) element lies less in the many associations one can make, but in the following curious fact. For the most part the trickster is enshrined in myth and stories but the tricksters I am referring to are in fact full-bodied, full-blooded groups of people who are actually engaging in all sorts of acts of trickery. This is culture not in the sense of art and myth but people and practice and this of course makes an (ethical) difference. What happens when you are the recipient not of a story offered an elder, but the recipient of trickery, an act of pranking or trolling, for example? What happens when you can trace all sorts of instances of boundary re-shifting and remaking, as with the GPL? I think this, even more than the linkages, is what makes this connection so remarkable and I trying to think through what it means to have a figure that we can find and talk to, as opposed to one embodied in myth and story. For now I am going to leave this post short and in the next installment, will start raising some of the connections between trickery and variants of hacking and trolling.

7 February 2010

Asheesh Laroia: Cosmetic carbon copy: The opposite of blind carbon copy

I propose a new feature for email software: Cosmetic carbon copy. CCC works very similarly to today's carbon copy feature: If you put an address in the CCC: list, when the recipients open the message, they can see the address. The one difference is that with "cosmetic" carbon copy, the CCC:d address never recieves the message. An example might illustrate the situation. Let's say someone (Alice) wants to invite Bob to a movie but doesn't want Charlie to come. She might send this email:
From: alice@example.com
To: bob@example.com
CCC: charlie@example.com
Subject: MOOOVIEEE!
Hey all my friends, join me for a movie tonight!
When Alice sends the email, Bob recives a copy. Bob thinks that Charlie received a copy, as he will be in the CC list. But Alice's mail software never sent Charlie a copy. So Alice can relax, knowing that Bob won't forward a copy to Charlie, since Bob thinks he already received it. Alice and Bob will meet up without Charlie, and Alice will quietly sigh in relief.

How can this work? Cosmetic carbon copy works on the same principle as blind carbon copy: the contents of the message are fundamentally independent from the recipients. Saavy email users have used the "blind carbon copy" feature for years. When you place an address in the BCC list, that address will receive a copy of the email even though other recipients won't see the address listed. This allows for a form of privacy between the sender of the email and that hidden recipient. This works because, like postal mail, email messages are delivered using an "envelope" that contains the actual recipients. When you compose a message in Alpine, Gmail, or Thunderbird, you are writing the contents of the envelope. When you hit send, the mail software looks for email addresses that should receive a copy. It creates one envelope per address, stuffs the letter inside, and sends the whole thing on its way through the Internet using a protocol called SMTP. When the recipient (Bob)'s email system receives it, the letter is pulled out of the envelope and placed in an inbox. Which means the envelope is entirely invisible to Bob, the recipient. Most mail software puts information about the envelope in email headers. Since each email recipient gets a separate envelope, In the case of cosmetic carbon copy, Alice's letter claims that Charlie was on the CC: list. But Bob can never learn that Charlie's copy was never sent. So to implement cosmetic carbon copy, Alice's mail program must understand this rule:
  • For each address in the CCC list, copy the message to the CC: list in the email message.
  • Create no new envelopes when sending the message.
Because of the last bullet point, this "carbon copying" is purely cosmetic rather than functional.

A possible privacy problem You might wonder, what happens when Bob hits reply-all to say "Yes, I'm coming"? Then (oh no!) Charlie might see the invitation. Not a problem: Most of my friends use Gmail, and Gmail users almost always hit Reply instead of Reply-All. Gmail used to have an experimental option called "Reply All by Default", but thankfully they removed that option. A future version of this specification might suggest mangling the last "." in the BCC:d email addresses with the ONE DOT LEADER character, which looks like "." but isn't one. That way, even if Bob clicks "Reply all," Charlie's email address is subtly incorrect and will bounce.

Future work The story I've told here is marginally simplified so it's understandable to a less-technical audience. Those who want a more technical version can request I submit an RFC. Perhaps in two months? (File under "games to play with email.")

6 February 2010

Cyril Brulebois: G-I, part 4

A picture is worth a thousand words: A slightly longer story follows, resuming from the previous episode, where Gtk seemed to be working. Making sure Gtk actually works Since the udebs are quite fat already, I decided to put the contents of the gtk2.0-examples package into a new revision of the new libgtk-x11-udeb package. gtk-demo was running fine (if one forgets that this demo application is really easier to deal with if one uses a window manager), although image handling was broken. Julien and I spent quite some time double-checking that the libpixbufloader-png.so plugin was present; that both previous DirectFB-based udeb and new x11-based udeb were very similar; that configuration was generated properly; we went so far as to include strace in the netboot image, and to check the configuration file was open() d, but the plugin was never to be even looked for. All this resulting in a Unrecognized file format message every time. Josselin, our Messiah, enlightened us: although Gtk was previously using some configuration files to determine which pixbufloader plugin to use, it still continues to access those files but relies on a MIME database in the end. Installing the host s /usr/share/mime/mime.cache database did the trick (we have a proper fix pending), and all of a sudden, we got image support (which is needed for the logo_installer.png displayed on top of every screen, as well as for some icons during the installation, like the final one). Tweaking d-i itself Julien took care of rootskel-gtk. It was mostly about: Another easy step was cdebconf. Mostly: search and destroy on the few bits using DirectFB. An interesting issue we had was that even though a proper cursor theme was installed and made the default, we only had a black cross as X pointer. That s where we learnt it s needed to manually set a cursor for the root window, which can be done this way:
GdkCursor *cursor = gdk_cursor_new(GDK_LEFT_PTR);
gdk_window_set_cursor(gdk_get_default_root_window(), cursor);
gdk_cursor_unref(cursor);
Tweaking gtk2-engines was trivial, just a matter of building against the x11 flavour of Gtk instead of the directfb one. Some substitutions in debian/control and debian/rules, and that was done. Julien also took care of tweaking console-setup so that keyboard-configuration s and console-setup-udeb s postinst scripts call setxkbmap when $DISPLAY is set. Meaning we were able to replace kbd-chooser with console-setup-udeb, leading to a correct setting within X right after having selected the layout! Reverting d-i s r61645 (which disabled Gtk-based d-i images) was trivial (although while looking back, it was probably unnecessary), and after having messed around with the packages lists (there s a lot of local udebs at this point), especially to add some fonts, we managed to get an image which seems to work fine (at least in my VirtualBox environment). I tried Chinese, Japanese, Arabic, and French installations, and all of them seem to work fine (installed systems were bootable after an installation in the selected language) while issues were limited to some rendering or translation glitches, which didn t seem critical at all. Next steps Since there were some iterations, and since the trial-and-error approach was chosen, the first goal is to generate clean patches against all modified packages, and make sure a single walk through all packages in a clean chroot is sufficient to generate a working d-i image again. Once that done, which should probably considered (at least, I hope!) quite a good base already, the idea is to look into the various udebs to see whether there are some parts that could be disabled (maybe introducing a trimmed-down flavour especially for the udeb in some non-flavoured-yet libraries), so as to reduce the size of the resulting image. In the meanwhile, one can fetch the current hand-built netboot image by browsing http://people.debian.org/~kibi/di-x11/. It s only available for amd64, and weights 23MB. There s a sha256sum as well as a detached GPG signature in the same directory.

John Goerzen: The Big-Publisher Ebook Scam

There s been a lot written about the Amazon vs. Macmillan dust-up. I ve seen a lot of posts by people that work for publishers saying that there are costs to making a book, and that $9.99 just won t cut it for an ebook. They say that publishers invest in typesetting, editing, selection, art, and various stages of quality control. All of that is true. Too bad they aren t doing it with ebooks. I ve had some books published, and while the process varies from publisher to publisher, the editing process usually involves technical editors (people that check my facts), copy editors (people that help the writing and grammar), cover designers, and QC staff. Often I will see PDFs or printed pages at the final stage, and at that point can catch things like bad table formatting or lines split at inopportune places. My point here is that there s a lot of editing going on, and there are many pairs of eyeballs looking at the printed page before it goes to the presses. In the year or so since I ve owned my Kindle, I can absolutely guarantee you that this process is not happening with ebooks. Most of the time, it is quite obvious that nobody has even looked at the finished product. Some intern has whipped up a quick conversion from whatever typesetting software they use, give it a quick glance, and call it good. One of my own books, Real World Haskell, is available in Kindle form. O Reilly took better than average care of that process, but even so, I certainly didn t approve screenshots before it went out like I did for paper (not that I d have had time after the paper project was done anyway.) From memory, some of the flaws I m aware of: In some of these cases, it is quite obvious that a human didn t even bother to look at the result. Harper Collins got a huge black eye after their LOTR fiasco, and still took quite a long time to fix it. Now, if the publishers were actually going to put as much care into the quality of their ebooks as they do into the quality of their paper books, then sure, I d pay almost the cost of a paperback. But very few of them are doing that. It is quite obvious to me usually by the end of the first chapter of a book whether anybody even looked at the result of their conversion. Bottom line: If they re going to sell me an inferior product, don t expect me to pay near full price. If they can get their act together on quality, only then would they have room to start arguing for higher prices. If all you re going to do with the ebook is run the paper version through some buggy filter, you haven t incurred much additional cost, and it is plainly visible to all. Note: I would like to say that Lonely Planet and O Reilly have done good jobs with the tools available, and while their results aren t perfect, they have done a good job working with rendering their sometimes very complex print layouts for a Kindle.

5 February 2010

Cyril Brulebois: G-I, part 3

Last night was the third one spent on playing around with X in a d-i environment. Making sure X actually works So far, running X was nice already, but is it really possible to run some applications inside? Bad news is that many trivial applications (xeyes, xclock, ) pull more dependencies than previously packaged. Finally, xev was chosen, and it indeed works fine (provided one makes sure it gets the focus). X was crashing when the (only last) client was exiting, and that wasn t normal. Thankfully the bug was reproducible outside d-i and Julien sent a patch a few minutes later. In the meanwhile, using -noreset did the trick to keep X running. Another way to run X applications there, is to point the host environment to the guest environment using DISPLAY=$GUEST:0 xterm. With VirtualBox, I followed those steps: Moving forward: cairo, pango, gtk The next step was to rework some udebs. Legend: Current situation, keeping only the relationships between udebs of interest: I took care of gtk+2.0 while Julien hacked pango1.0 and cairo. Some more libraries were needed, but being X libraries, tweaking the packaging was as trivial as for the first X libraries, and it only took a couple of minutes: libxcomposite, libxdamage, and libxinerama. Once those added to localudebs/ and to pkg-lists/local, and once the image rebuilt, I prepared a tiny Hello world -style application: Pango wasn t quite happy at first (message wrapped):
(hello:1991): Pango-WARNING **: failed to choose a font, expect
              ugly output. engine-type='PangoRenderFc', script='latin'
Indeed, since no fonts were included, there was a tiny issue. No big deal, adding ttf-dejavu-udeb did the trick. I wanted to play around with a non-Latin language, so I asked for an example (thanks, Theppitak!), and once ttf-thai-tlwg-udeb added as well, one gets: Of course, there are many more features to test, but that sounds like we re going in the right direction (and this is not a joke about RTL). Next step Have a look at the green boxes, which may require to have a closer look at g-i s integration within d-i (it might be needed to see how it s supposed to be started, that might help testing the tweaked packages).

Andrew Pollock: [life] Dean's Award for Sarah

Sarah got a piece of mail today from USQ, with a very ominous "Do Not Bend" on it. It turns out because she averaged a 6.5 GPA in semester 2, she'd qualified for a special Dean's Award for Outstanding Academic Achievement, and will get a mention on the University's website and in a bunch of newspapers. I'm really proud of her. Unfortunately, she had to withdraw from semester 3 (the Summer semester) study because all of the baby's brain stuff came up right towards the end of semester, and that on top of moving and trying to renovate was just too much for her. She's intending to take Semester 1 off, because the baby's due right around exam time, and then resuming study in Semester 2.

Carl Chenet: python-jabberbot 0.9 in Debian


The new upstream version of python-jabberbot was uploaded yesterday in unstable (thanks Piotr!). Python-jabber is a Python library which makes easy to write your own Jabber bot. /usr/share/doc/python-jabberbot/examples/broadcast.py is a good example of a *really simple* Jabber bot and could be a good start if you need one.

Next.

Previous.