Search Results: "nate"

23 August 2007

Wouter Verhelst: Asterisk adventures, and the DECT gap.

A customer called me a while back, requesting whether I could help him set up asterisk. Since I hadn't previously played with asterisk, we agreed that I'd try out stuff, and then do a demo setup, so that he could decide whether that is okay for his needs. So I bought me a Linksys SPA-3102 ATA (with one FXO and one FXS port) and a Linksys SPA-921 IP phone, and started experimenting. Didn't take me long to figure out that the SPA-921 works, but that if I want to use a company-wide directory (which was a requirement for that customer), I have to use a Linksys proprietary protocol, which Asterisk obviously doesn't support. Someone then told me that Snom's hardware phones have LDAP support in their hardware phones; so I bought me the Snom 300 as well, and played a bit with the system. After experimenting for about two weeks or so, alltogether, I've now got a demo setup that fulfills most of his requirements, and I can show why others can't easily be implemented. Which is cool. Afterwards, I'll be stuck with an ATA and two IP phones that I have no immediate use for at the office, so I was thinking of taking them home and using them there. We've got way too many phones at home anyway (one upstairs, one downstairs, a fax, and a DECT basestation with no less than four handsets), so adding the ability to call eachother might be useful. Except that I can't seem to find a DECT basestation that appeals to me. The one we have doesn't have VoIP, so that'll need replacement. Just connecting it to the ATA could work, but then transferring a call from a regular phone to one of the DECT handsets would be troublesome, at best; what I would prefer is the ability to give each of my DECT handsets a separate asterisk extension; in effect, a DECT - SIP bridge. What I've found so far in DECT basestations that allow me to somehow link the DECT phones to a computer, is appaling. So now basically I'm left to conclude that there is a gap in what's available in DECT basestation products; one that allows me to connect a low number of DECT handsets to a network through SIP, and has nothing more. It'd be cool if one existed...

Miriam Ruiz: New Game: Battle Tanks

Battle Tanks is a GPL’ed multiplayer game with original cartoon-like graphics, cool music and inspired in the old arcade games. You can choose one of three vehicles (tank, Shilka, and rocket launcher) to try to eliminate your enemy using the whole arsenal of weapons you have available (four types of ammo, six types of rockets, landing troops, mines and so on). The game supports keyboard as well as a gamepad. There are ten multiplayer maps (seven for deathmatch and three for cooperative mode) in different locations (city, village, forest, desert,…) and a game world that reacts on player. Roads have traffic, buildings can be destroyed, weather effects are simulated, etc. I’m not usually into packaging war games, but I think this is cute enought to make an exception, and in any case I don’t think playing it will hurt anyone, apart from some prides, if they find out they’re not as smart and quick as the enemy. I hope that the game enters Debian repositories soon, but meanwhile you can find some packages for the game already built for SID for i386, powerpc and amd64 architectures (the source for the packages is here).

Russell Coker: The Start of My Computer Career

When I was about 11 years old I decided that I wanted a career related to computers. My first computer was the TEC-1 single-board Z80 based kit computer from Talking Electronics magazine (see the photo below). I think that I built this when I was 10. tec-1.jpg The computer is 16cm high and 25cm wide. The six seven segment displays are the only built-in output device (there were optional kits for other output devices). The keypad has the hexadecimal number keys, an “ad” button for entering addresses, a “go” button for executing programs, and “+” and “-” keys for incrementing and decrementing the address. Below the reset button (labelled “R“) you will see the optional function key (of which I can’t remember the purpose). Programming this computer required entering the hexadecimal code on the keypad with the “+” and “-” keys being the main method of editing (the “ad” key was used to jump to a different section of RAM). In editing mode the first four seven-segment displays showed the address (the Z80 could only address 64K of RAM) and the other two showed the memory contents (the word size was one byte). In terms of user-friendlyness it was probably about equal to punched cards - apart from the lack of non-volatile storage (unless you built the optional NVRAM kit). My TEC-1 has 2K of RAM (the 83251R chip is equivalent to an Intel 16kilo-bit 6116 static RAM chip) and 2K of ROM (the chip with the orange sticker labeled Mon1 is a 2716 EPROM - 16kilo-bit). Not long after that my parents bought the first serious computer for the family, a Microbee Z80 based system with a tape drive that used a monochrome monitor of resolution approximately equal to CGA and which had either 16K or 32K of RAM (I can’t recall). The next family computer was a Microbee Premium series 128K which is probably the same model as the one depicted on the Microbee Wikipedia page (a serious omission of the Wikipedia page is that it has no picture of the box containing the PSU and the floppy drives for the Premium Series). My first published article in a computer magazine was when I was about 15 years old and I wrote a long email on a Fidonet echo (mailing list) reviewing a 3rd party update to the CP/M system for the Premium Series Microbee and was surprised by having it published in the Microbee club magazine (in those days we didn’t bother much about copyright so no-one asked for my permission before publishing). I wonder if starting with computers at such an age is typical for people who now contribute to free software development. I think it would be interesting to see some blog posts from other people in the community about how old they were when they started with computers and what type of computer they started with. I also wonder about the correlation between the age of starting with computers and career success in the computer industry. One significant benefit of starting early was that I could learn things that would be useful for my career in later decades while other children were wasting time studying what teachers told them to study. It also meant that in later years of high-school I could relax knowing that I could get straight B’s without effort which was more than was required to enter a CS degree program at that time. Until half-way through year 12 I tried to avoid ever doing home-work at home - home-time was computer time! Do you think that the age at which you chose your career significantly affected your success? If so in what way? If you were asked for advice by parents as to when their child should be given it’s first computer what age would you suggest? Unfortunately I usually get asked for advice about such things by people who have children aged 16+ (which is way too late IMHO).

Brice Goglin: Debian X.org notes - ATI 6.7.191 with RandR-1.2 and TV-out support in experimental

No, I am not confusing version numbers. Yes, xserver-xorg-video-ati 6.7.191 follows 6.6.193. Upstream thought it was useless to try fixing the dead-end 6.7 branch (where 6.6.193 came from) since they were already mostly working on the randr-1.2 branch. So 6.7 will probably never happen. The randr-1.2 support has been merged in master and will be released as driver 6.8. 6.7.191 is its first release candidate. With RandR-1.2 support, you get mode auto-detection and so, as in the Intel driver 2.x. So you may clean your xorg.conf as described here. If you don't get your desired resolution at startup, see here. However, the old dual-head support code (zaphod) is dead, so some people might have to get used to xrandr instead. Several people will also be happy that the GATOS TV-output support code has been merged and improved to support more cards. You will see a S-video output and you can enable it as usual with xrandr. Not sure how well tested it has been, but at least it seems to work fine on my rv370 (Mobility X300). Don't forget that this is a release candidate. I personally consider the code as highly experimental since I seem to get more GPU lockups when playing xmoto than in 6.6.193. The code is still under heavy development. Multiple ATI boards have strange behaviors that may not be supported yet (but it shouldn't be worse than in 6.6.193). Fortunately, upstream people are very responsive and doing a great job at fixing bugs, so feel free to ping them on IRC or report a bug directly on http://bugzilla.freedesktop.org. The package is in now in debian experimental. But the Xserver release candidate is there too. So you will need to upgrade xserver-xorg-core too. If you don't want to do so, just rebuild the driver against unstable, you should just need to downgrade xserver-xorg-dev build-depend to 1.3.0 or so.
(Permanent link) 

22 August 2007

Russell Coker: LED Headlights in Audi Sports Car

It’s interesting to see that Audi is releasing a car with LEDs for all lights including the headlights. This is being promoted as an environmental benefit, however a quick google search revealed that my Volkswagen Passat apparently takes 55W headlights (giving a total of 110W of electricity used). Even allowing for some inefficiency in the alternator this would make a very small impact on the fuel use of a engine rated at 140KW. The Audi in question is the R8 (wikipedia link because the Audi web site is badly broken) and has a 300KW engine… A simple implementation of LED headlights will do some good for plug-in hybrid cars and all-electric vehicles where saving power is more important - when the technology filters down to cheaper vehicles. Also one possible use for the technology is to dim the headlights by turning off some of the LEDs in the bank (according to the LED Wikipedia page it is currently impossible to create a single LED that takes more than 1W of power, so a bank of LEDs would be used). Currently you have a choice of using “parking lights” or “head-lights” when driving, and when driving just before sun-set or at night in the city (where the street lights are bright) you need head-lights to allow other drivers to clearly see you but don’t need them as bright as they have to be when driving at night in the country. So a range of levels of luminosity could be effectively used in headlights to increase efficiency in some situations and increase light levels in others. According to the Luminous efficiency Wikipedia page current LEDs are up to three times as efficient as quartz halogen incandescent globes and future developments are likely to increase that to six times the efficiency. Combine that with more effective use of headlights to provide the light at the location and level that’s needed and the result could be using at little as 10% of the electricity for headlights on average! Another thing that I would like to see is the Adaptive Headlights feature of the better BMWs (which I referenced in a previous post about the BM 5 and 7 series) implemented in a cheaper and more reliable manner. The feature in question is that the headlights will turn when driving around a corner to show the road ahead instead of just shining off the edge of the corner. Implementing such a feature with incandescent lights is difficult because they have to be physically turned and moving parts tend to break (which increases maintenance costs and decreases the overall reliability of the vehicle). An obvious alternate design is to have a set of LEDs pointing in different directions and which LEDs get power would determine where the light goes (this would also react faster than physically moving a light). Once LED headlights become common the Adaptive Headlights feature could be implemented in the cheapest cars on the road with minimal extra cost - currently it’s a feature that would be expensive to implement and would increase the sale price of a small car and probably the service price too.

Wouter Verhelst: countmail

Jordi blogs about mail (in reply to a number of other people), and mentions a rather interesting application.
wouter@country:~$ countmail 
ZERO!
ZERO MAIL MESSAGES!
HAHAHAHAHA!
wouter@country:~$ 
Unfortunately, all is not what it seems. Apparently countmail doesn't support Maildir.

Lucas Nussbaum: Opening mutt s HTML attachments with epiphany?

I just ran into a rather funny problem. I’d like to use epiphany to open text/html attachments or mail parts. Mutt uses mailcap, so I added an entry in ~/.mailcap:
text/html; epiphany-browser '%s'; description=HTML Text; nametemplate=%s.html This should work fine, but the problem is that mutt creates a temporary file (/tmp/mutt.html) and removes it when the command terminates, which is nearly immediately with epiphany. And epiphany has a really nice feature: it monitors local files for changes and reload them when they change. Which results in seeing the page briefly, then a File "/tmp/mutt.html" not found. error page. Anyone using mutt and epiphany together successfully?

21 August 2007

Russell Coker: Music Videos

I’ve been thinking about music videos recently while compiling a list of my favourite videos of all time. It seems that YouTube has changed things through the re-mixes of videos and the ability of anyone to publish for a mass-market (although without the possibility of directly making money from it). Also today all new PCs (and most PCs that are in use) are capable of being used for video editing and the compute power needed for 80’s and 90’s quality special effects is also commonly available (in most cases good art doesn’t need more technical quality than that). So anyone can produce videos (and a quick search of YouTube reveals that many people are producing videos for their favourite songs). I think that we need a music video for the Free Software Song. One possibility is to base it on the 1984 Apple advert (because it’s the free software community that is opposing Big Brother not Apple). I think it would be good to have multiple versions of the Free Software Song (with matching videos), there could be the version for young children, the Hip-Hop version, the Punk version, etc. Also I think that there is potential for the creation of other songs for the free software community. One possible way of doing this would be to have a contest for producing music and videos. Maybe a conference such as LCA or OLS could have the judging for such a contest. I would be prepared to donate some money towards the prize pool and I’m sure that other individuals and organisations would also be prepared to do so. If I get some positive feedback on this idea I’ll investigate how to run such a contest. Here are my favourite videos of the moment. Please let me know of any videos that you think I would like based on this list.
  • Smashing Pumpkins:
    Ava Adore, interesting way of changing scenes, and a very artistic and strange video (matches the song)
  • Duran Duran (who incidentally named their group after a character in Barbarella: Queen of the Galaxy - strangely the spelling is different though):
  • Too Much Information - they should re-do this and include a reference to the Internet in the lyrics. ;)
  • Wild Boys - Mad Max 3 as a film clip

  • UNKLE:
    • Eye for an Eye - strange and disturbing, as any serious art that is related to war must be
  • Rabbit in Your Headlights - surprising end, I wonder if anyone was injured trying to emulate this clip

  • Nine Inch Nails:
    Head Like a Hole, strange and a bit bizarre at times. Not the greatest of my favourite clips but the music makes up for it.
  • Queen:
    • I Want to Break Free, strangely amusing and very artistic


  • Chemical Brothers:
    • Let Forever Be - my favourite clip of all time. Fractally weird, you can watch it dozens of times and still be missing things.
  • Setting Sun - the world would be a better place if more cops could dance like that! Also is it just me or does the drummer guy look like a Narn from Babylon 5?
  • Out of Control - surprise ending. I would appreciate it if someone who knows the non-English language (probably Spanish) in the clip could point me to a translation.
  • Star Guitar - a real work of art but no plot and I didn’t enjoy the music, I recommend watching it once
  • The Golden Path - I used to wonder whether office work was really so grim in the 60s and 70s, but then I worked for a financial company recently…

  • Fat Boy Slim:
    Praise You - why can’t reality TV be this good?
  • Falco:
    Rock Me Amadeus - let’s represent two totally diffent cultures (bikers and Austraian high society) in a film clip, silly but amusing
  • Madonna:
    Like A Prayer - I wonder how many racist organizations banned that
  • A-Ha:
    Take On Me - mixing multiple art forms (in this case film and animation) can work really well. Beat Kill Bill to the idea by a couple of decades.
  • Robert Palmer:
    Simply Irresistable - pity that they didn’t hire more women who can dance or at least put the dancers in front of the models. It’s interesting to note that one of the models appears to be actually playing a guitar.
  • Garbage:
  • Michael Jackson:
    Billie Jean - class is timeless.
  • Manoj Srivastava: Arch Hook

    All the version control systems I am familiar with run scripts on checkout and commit to take additional site specific actions, and arch is no different. Well, actually, arch is perhaps different in the sense that arch runs a script on almost all actions, namely, ~/.arch-params/hook script. Enough information is passed in to make this mechanism one of the most flexible I have had the pleasure to work with. In my hook script, I do the following things: I d be happy to hear about what other people add to their commit scripts, to see if I have missed out on anything.

    20 August 2007

    Russell Coker: Suggestions and Thanks

    One problem with the blog space is that there is a lot of negativity. Many people seem to think that if they don’t like a blog post then the thing to do is to write a post complaining about it - or even worse a complaint that lacks specific details to such an extent that the subject of the complaint would be unable to change their writing in response. The absolute worst thing to do is to post a complaint in a forum that the blog author is unlikely to read - which would be a pointless whinge that benefits no-one. Of course an alternate way for the recipient to takeg such complaints as suggested by Paul Graham is “you’re on the right track when people complain that you’re unqualified, or that you’ve done something inappropriate” and “if they’re driven to such empty forms of complaint, that means you’ve probably done something good” (Paul was talking about writing essays not blogs, but I’m pretty sure that he intended it to apply to blogs too). If you want to actually get a blog author (or probably any author) to make a change in their material in response to your comments then trying to avoid empty complaints is a good idea. Another useful point Paul makes in the same essay is ““Inappropriate” is the null criticism. It’s merely the adjective form of “I don’t like it.”” - something that’s worth considering given the common criticism of particular blog content as being “inappropriate” for an aggregation feed that is syndicating it. Before criticising blog posts you should consider that badly written criticism may result in more of whatever it is that you object to. If you find some specific objective problem in the content or presentation of a blog the first thing to do is to determine the correct way of notifying the author. I believe that it’s a good idea for the author to have an about page which either has a mailto URL or a web form for sending feedback, I have a mailto on my about page - (here’s the link). Another possible method of contact is a comment on a blog post, if it’s an issue for multiple posts on the blog then writing a comment on the most recent post will do (unless of course it’s a comment about the comment system being broken). For those who are new to blogging, the blog author has full control over what happens to comments. If they decide that your comment about the blog color scheme doesn’t belong on a post about C programming then they can respond to the comment in the way that they think best (making a change or not and maybe sending you an email about it) and then delete the comment if they wish. If there is an issue that occurs on multiple blogs then a good option is to write a post about the general concept as I did in the case of column width in blogs where I wrote about one blog as an example of a problem that affects many blogs. I also described how I fixed my own blog in this regard (in sufficient detail to allow others to do the same). Note that most blogs have some degree of support for Linkback so any time you link to someone else’s blog post they will usually get notified in some way. On my blog I have a page for future posts where I invite comments from readers as to what I plan to write about next. Someone who prefers that I not write about topic A could write a comment requesting that I write about topic B instead. Wordpress supports pages as a separate type of item to posts. A post is a dated entry while pages are not sorted in date order and in most themes are displayed prominently on the front page (mine are displayed at the top). I suggest that other bloggers consider doing something comparable. One thing I considered is running a wiki page for the future posts. One of the problems with a wiki page is that I would need to maintain my own private list which is separate, while a page with comments allows only me to edit the page in response to comments and then use the page as my own to-do list. I may experiment with such a wiki page at some future time. One possibility that might be worth considering is a wiki for post requests for any blog that is syndicated by a Planet. For example a wiki related to Planet Debian might request a post about running Debian on the latest SPARC systems, the first blogger to write a post on this topic could then remove the entry from the wish-list (maybe adding the URL to a list of satisfied requests). If the person who made the original request wanted a more detailed post covering some specific area they could then add such a request to the wish-list page. If I get positive feedback on this idea I’ll create the wiki pages and add a few requests for articles that would interest me to start it up. Finally to encourage the production of content that you enjoy reading I suggest publicly thanking people who write posts that you consider to be particularly good. One way of thanking people is to cite their posts in articles on your own blog (taking care to include a link to at least one page to increase their Technorati rank) or web site. Another is to include a periodic (I suggest monthly at most) links post that contains URLs of blog posts you like along with brief descriptions of the content. If you really like a post then thank the author by not only giving a links with a description (to encourage other people to read it) but also describe why you think it’s a great post. Also if recommending a blog make sure you give a feed URL so that anyone who wants to subscribe can do it as easily as possible (particularly for the blogs with a bad HTML layout). Here are some recent blog posts that I particularly liked: Here are some blogs that I read regularly:
    Finally I don’t read it myself, but CuteOverload.com is a good site to refer people to when they claim that the Internet is too nasty for children - the Internet has lots of pictures of cute animals!

    Bastian Venthur: Deserializing SOAP replies with ZSI?

    Dear Lazyweb, what is the most elegant way to read a SOAP reply containing a complex type into an object using ZSI? I’ve read the documentation several times and I guess there is an elegant way to solve this, but I still don’t get it. I guess it should work like this: What I’m currently doing with soappy in rng is rather crude: I take the SOAP response which is a dictionary holding many interesting facts about a bug report, take those elements I’m interested in and copy them into a bug report object. Not very elegant, but it works. While I’m moving away from soappy to ZSI I’d like to implement the deserializion the ZSI way. Unfortunately I don’t understand their examples. So please Lazyweb, is there any ZSI expert out there who can provide a minimalistic example?

    Martin F. Krafft: Pay three times as much and get zero brain power

    If you walk up to the Swiss railways customer service desk and tell them that you're a group of six looking to travel from Zurich to Munich and would thus like to make a reservation, they'll charge you 15 CHF (~ 9.50 ) for a little piece of paper which documents that the guy behind the desk put his brain to use and reserved six contiguous seats to keep the group together. Well, he actually asked me whether that's what I wanted. If you walk up to the German railways customer service desk and tell them that you're a group of (now) eight looking to travel from Munich to Zurich and would thus like to make a reservation, they'll charge you 28 for a little piece of paper which documents that the guy behind the desk does not have a brain or didn't bother to switch it on: instead of two adjacent groups of four seats, we got four pairs of aisle seats. Given that we mainly reserved to minimise the annoyance for the other travellers while we kept up a conversation for the five hours of the journey, it did piss me off quite a bit to have paid three times as much in Germany as the reservation cost in Switzerland and not be able to talk among each other without annoying the others. This reservation was made two days in advance. You may, of course, think that the train was already full and no space to sit eight was left; however, I did not have to go further than two wagons to find copious amounts of unreserved spaces for eight, which were then, unfortunately, already occupied (of course). It shames me to expose my peers (I made the travel arrangements) to the crap and blather one has to put up in German railways: the quality of the speaker system is crap, everything is repeated in English by non-English-speaking conductors, and after every stop, we're yet again alerted to the fact that we could be relaxing to high-quality cuisine in the board restaurant, or should watch out for the little trolley passing by and happy to collect our money. Oh, and of course the brainless and often unfriendly service employees. And all that for a price more than it would have cost the lot of us to rent a van and drive back and forth. Going by train is my most preferable means of transport, not only, but in large part due to environmental issues. I don't understand why the German government puts this important bit of infrastructure in the hands of imbeciles and lets them overcharge for their low-quality service and their delays. NP: Mono: Under the Pipal Tree Update: A guy from Berlin wrote:
    The seats you found in the other wagons may as well have been reserved, too. The electronic reservation signs will extinguish about 15 minutes after the train departs from the station. Or, there was too little time between reservation and departure, so you could only get one of the few express-reservation seats.
    I am aware of this. However, the train between Zurich and Munich is ancient (part of the way it still has to run on Diesel) and the reservation signs were paper slips. The seats of eight I found were definitely unreserved, especially because I checked immediately after departure.

    Manoj Srivastava: Mail Filtering with CRM114: Part 4

    Training the Discriminators It has been a while since I posted on this category actually, it has been a long while since my last blog. When I last left you, I had mail (mbox format) folders called ham and/or junk, which were ready to be used for training either CRM114 or Spamassassin or both. Setting up Spamassassin This post lays the groundwork for the training, and details how things are set up. The first part is setting up Spamassassin. One of the things that bothered me about the default settings for Spamassassin was how swiftly Bayes information was expired; indeed, it seems really eager to dumb the Bayes information (don t they trust their engine?). I have spent some effort building a large corpus, and keeping ti clean, but Spamassassin would discard most of the information from the DB after training over my corpus, and the decrease in accuracy was palpable. To prevent this information from leeching away, I firstly increased the size of the database, and turned off automatic expiration, by putting the following lines into ~/.spamassassin/user_prefs:
    bayes_expiry_max_db_size  4000000
    bayes_auto_expire         0
    
    
    I also have regularly updated spam rules from the spamassassin rules emporium to improve the efficiency of the rules; my current user_prefs is available as an example. Initial training I keep my Spam/Ham corpus under the directory /backup/classify/Done, in the subdirectories Ham and Spam. At the time of writing, I have approximately 20,000 mails in each of these subdirectories, for a total of 41,000+ emails. I have created a couple of scripts to train the discriminators from scratch using the extant Spam corpus; and these scripts are also used for re-learning, for instance, when I moved from a 32-bit machine to a 64-bit one, or when I change CRM114 discrimators. I generally run them from ~/.spamassassin/ and ~/var/lib/crm114 (which contains my CRM114 setup) directories. I have found that training Spamassassin works best if you alternate Spam and Ham message chunks; and this Spamassassin learning script delivers chunks of 50 messages for learning. With CRM114, I have discovered that it is not a good idea to stop learning based on the number of times the corpus has been gone over; since stopping before all messages i the Corpus are correctly handled is also disastrous. So I set the repeat count to a ridiculously high number, and tell mailtrainer to continue training until a streak larger than the sum of Spam and Ham messages has occurred. This CRM114 trainer script does the hob nicely; running it under screen is highly recommend. Routine updates Coming back to where we left off, we had mail (mbox format) folders called ham and/or junk sitting in the local mail delivery directory, which were ready to be used for training either CRM114 or Spamassassin or both. There are two scripts that help me automate the training. The first script, called mail-process, does most of the heavy listing. This processes a bunch of mail folders, which are supposed to contain mail which is either all ham or all spam, indicated by the command line arguments. We go looking though every mail, and any mail where either the CRM114 or the Spamassassin judgement was not what we expected, we strip out mail gathering headers, and then we save the mail, one to a file, and we train the approprite filter. This ensures that we only train on error, and it does not matter if we accidentally try to train on correctly classified mail, since that would be a no-op (apart from increasing the size of the corpus). The second script, called mproc is a convenience front-end; it just calls mail-process with the proper command line arguments, and feeds them the ham and junk in sequence; and takes no arguments. So, after human classification, just calling mproc does the classification. This pretty much finishes the series of posts I had in mind about spam filtering, I hope it has been useful.

    Cameron Dale: DebTorrent Release 0.1.4 (and apt-transport-debtorrent 0.1.0)

    The next release of DebTorrent is now available. This release includes new functionality for communicating with APT using a new transport method specifically designed for debtorrent, and many bug fixes. The major changes in this release are all in the communication between APT and DebTorrent. The HTTP server in DebTorrent that listens for APT requests has been upgraded to support HTTP/1.1 persistent connections and pipelining, which allows APT to have multiple outstanding requests for files. This is useful as DebTorrent suffers from the typical bittorrent slow start, so requesting multiple files at a time helps to speed up the download considerably. Though better, HTTP/1.1 is not ideal for DebTorrent however, as a maximum of 10 outstanding requests is maintained by APT's http method, and files must still be returned in the order they were requested (which is not ideal for bittorrent-type downloading since downloads occur randomly). To further improve the APT communication I have modified APT's http method to create a debtorrent method. This new debtorrent transport for APT is packaged separately as apt-transport-debtorrent, and once installed APT can be told to use it by replacing "http://" with "debtorrent://" in your sources.list file. This method sends all requests it receives immediately to DebTorrent, and will receive responses from DebTorrent in any order. You can find this new method on the Alioth project, or in my personal repository (only amd64 and i386 versions are currently available). Unfortunately, the story doesn't end here. The APT code responsible for sending requests to the method also limits the maximum number of outstanding requests that it will send to the method to 10, which is not really necessary since all existing methods limit the requests they send out themselves. I have therefore patched the current APT code to increase this limit to 1000 (a one line change), and released this patched version as 0.7.6-0.1. You can find this patched version in my personal repository (again, only for i386 and amd64). I have tested it with the other methods available and it causes no problems, and I hope to get the change included in the regular APT code soon. To sum up: The last DebTorrent version (0.1.3.1) is currently in the NEW queue, and judging by the length of it, will be there for about another week. After DebTorrent is added to the archive, I will be upgrading it to this new version. I also hope to get the new apt-transport-debtorrent package into the NEW queue soon. This brings to an end the Google Summer of Code (which this project was created as a part of), but development of DebTorrent will of course continue (probably a little slower). The next major change will be the addition of unique piece numbers, which is almost complete but needs to be extensively tested. I'd like to thank Anthony Towns, Steve McIntyre, and Michael Vogt for their help over the last 4 months, and also the many others who sent me encouraging emails or engaged in interesting discussions about this project. It's the people who make a project like this a fun and memorable thing to do. Here's the changelog for the new DebTorrent release:

    Cameron Dale: DebTorrent Release 0.1.4 (and apt-transport-debtorrent 0.1.0)

    The next release of DebTorrent is now available. This release includes new functionality for communicating with APT using a new transport method specifically designed for debtorrent, and many bug fixes. The major changes in this release are all in the communication between APT and DebTorrent. The HTTP server in DebTorrent that listens for APT requests has been upgraded to support HTTP/1.1 persistent connections and pipelining, which allows APT to have multiple outstanding requests for files. This is useful as DebTorrent suffers from the typical bittorrent slow start, so requesting multiple files at a time helps to speed up the download considerably. Though better, HTTP/1.1 is not ideal for DebTorrent however, as a maximum of 10 outstanding requests is maintained by APT's http method, and files must still be returned in the order they were requested (which is not ideal for bittorrent-type downloading since downloads occur randomly). To further improve the APT communication I have modified APT's http method to create a debtorrent method. This new debtorrent transport for APT is packaged separately as apt-transport-debtorrent, and once installed APT can be told to use it by replacing "http://" with "debtorrent://" in your sources.list file. This method sends all requests it receives immediately to DebTorrent, and will receive responses from DebTorrent in any order. You can find this new method on the Alioth project, or in my personal repository (only amd64 and i386 versions are currently available). Unfortunately, the story doesn't end here. The APT code responsible for sending requests to the method also limits the maximum number of outstanding requests that it will send to the method to 10, which is not really necessary since all existing methods limit the requests they send out themselves. I have therefore patched the current APT code to increase this limit to 1000 (a one line change), and released this patched version as 0.7.6-0.1. You can find this patched version in my personal repository (again, only for i386 and amd64). I have tested it with the other methods available and it causes no problems, and I hope to get the change included in the regular APT code soon. To sum up: The last DebTorrent version (0.1.3.1) is currently in the NEW queue, and judging by the length of it, will be there for about another week. After DebTorrent is added to the archive, I will be upgrading it to this new version. I also hope to get the new apt-transport-debtorrent package into the NEW queue soon. This brings to an end the Google Summer of Code (which this project was created as a part of), but development of DebTorrent will of course continue (probably a little slower). The next major change will be the addition of unique piece numbers, which is almost complete but needs to be extensively tested. I'd like to thank Anthony Towns, Steve McIntyre, and Michael Vogt for their help over the last 4 months, and also the many others who sent me encouraging emails or engaged in interesting discussions about this project. It's the people who make a project like this a fun and memorable thing to do. Here's the changelog for the new DebTorrent release:

    19 August 2007

    Mike Hommey: New WebKit snapshot (almost) in unstable

    Along with a new epiphany release using it as backend, I prepared a new WebKit snapshot, which is now waiting in NEW for some ftp-master attention. Unfortunately, while webkit now has the necessary symbols for back and forward buttons, it seems not to work properly. Scrollbars are also not yet displayed. I’ll have to take a look at these some day, if upstream doesn’t do it before me. I also set up a git repository to hold the debian branch, following the already existing git repository tracking upstream. Note the filtered branch, which avoids the debian branch to contain what we don’t ship, and reduce the download size from 100MB+ to roughly 16MB. I’ll write more about this filtering in a few days. Also, if you’re interested in webkit and/or want to give a hand, you can subscribe to the pkg-webkit-maintainers mailing list. Everything is ready for team maintenance, so, don’t hesitate ;). If you want to track changes on the debian repo, there is also a pkg-webkit-commits mailing list where the post-receive hook sends the commit messages.

    Biella Coleman: The Lingering Memories of War

    As many readers of this blog know, I tend not to shy away from writing about my mother s struggle with Alzheimers. But in the last 6 months and especially since I paid my last visit to my mother, I have found it much harder to sit and write about her current state of affairs. If we think of Alzheimers as a journey to a new place, she is almost at the point of reaching that place of great loneliness and inhospitality, which is not only new and different both for her and those around her but is a virtual prison, for it rarely allows you to leave and visit the places of your past. More than ever, her memory and understanding of her life as she (as I and many others), once knew it, is fading fast; Of course, this was to be expected but it is quite difficult to imagine what it will be like until the actual experience unmistakably knocks on the door of present time and unfortunately, when it knocks, you can t do anything but open the door and let it in. Unsurprisingly, it is incredibly difficult to witness and interact with a person who is losing most all recollections, the stuff of which, you come to realize, is what defines a person and allows you to more or less have the opportunity to seamlessly interact with him or her. In the last number of months, I have perhaps been more silent than usual because there is only so much I can and want to think about when it comes to my mother s decline. I talk to her nearly every day and I have decided for now, that is enough. But I am retreating out of my silence after reading a refreshingly honest, though still somewhat timid piece on Alzheimer in the NYTimes, entitled Zen and the Art of Coping With Alzheimer s
    The piece is striking because it offers a more realistic portrayal of the disease than most mainstream media accounts and it provides some really sound advice about the importance of just letting go and going with the flow when interacting with those with Alzheimers. At the same time, it lacks a certain window into just how disheartening and hard it can be to witness the decline, and how hard it can be to manage those conversations and interactions. On the whole, I try to go with the flow. For example, I recently returned from a visit and soon after I left, my mother forgot I was even there. She started to ask me over and over again when I was coming home for a visit and when I told her I was just there, her semi-humorous reaction was well, why didn t anyone tell me? (and then proceeded to castigate her caretaker for not telling her!!). Perhaps I did not stay long enough, or perhaps her lack of recall would happen no matter what. To hear she forgot shook me hard and deeply. The first time I realized she could not remember I had just visited, I was able to jog her memory by listing off all that we did together. Finally, when I mentioned that I bought a new refrigerator while in PR, something clicked. She is still worried about money, so buying a refrigerator was enough to remind her I had spent a lot of money. But after it was clear that she felt quite bad about not remembering, I knew that was the first and last time I would try to jog her memory. Instead, I will merge and mold my reality to her reality, as much as I can and assure her that I will soon visit.
    (more…)

    17 August 2007

    Stefano Zacchiroli: debcheckout bits

    debcheckout: some new bits Some new bits about debcheckout (talk is cheap, code here): (Perl) Tip of the day: Switch.pm With "use Switch;" you will win a switch statement for your Perl programs, which can be used as follows:
    switch ($repo_type)  
      case "cvs"    my $module = pop @cmd; push @cmd, ("-d", $destdir, $module);  
      case /^(bzr darcs git hg svn)$/
                    push @cmd, $destdir;  
      else   die "sorry, don't know how to set the destination directory for $repo_type repositories (patches welcome!)\n";  
     
    
    
    This is far better than a chain of if/elsif statements and has even a sane semantics (e.g. no need of explicit breaks, possibility to have higher-case branches, ...). Unfortunately, it is not possible (using a simple syntax) to match a scalar value against an array case branch. Therefore the only way to factorize branches is (when possible) to rely on regexp alternative branches, as it is done in the code snippet above.

    15 August 2007

    Julien Danjou: i386--, amd64++

    As I said previously, abydos was dead. I bought new hardware some days after, mainly a new Enermax Liberty ELT 500 W power supply (ATX 2.2 compliant, sick, my old Enermax ATX 1.2 could not work with new mainboards), an Asus P5K, 2 GB of G.Skill DDR2 PC6400, an Intel Core 2 Duo E6750 and a GeForce 8400 GS 512 MB. At that time, I just switched the hard drives without reinstalling the box. However, I had to reinstall some days because my old was an old Intel Pentium 4 (i386) and the new is 64 bits-ready. Before that, I played with some kind of stuff. First, installing cpufrequtils is just magic, because now my processor is set at 2 GHz instead of 2.66 GHz, and rise to 2.66 GHz on demand. Just cool: less power, less warm, less noise. I tried to tweak my SATA drives. I did something very wrong: hdparm -s. Kids, don't do this at home, it killed my hard drives! Yes, you're warned if you read the hdparm manual and you have to force the command, but I'm mad anyway. After that, the drives were no more detected at boot time by the buggy BIOS. Why buggy? Because after some googling, I found that they were NOT dead, just sleeping. And the fucking BIOSes around never try to wake them up. Fortunately, hdparm people distribute an bootable ISO that will wake your drives... It saved me. The Asus P5K is not well supported by the 2.6.18 kernel, so you won't have network during install of etch (or lenny beta 1), and when you will reboot you won't be able to boot correctly because initrd is stuck with hard drive detection. Furthermore 2.6.18 on this mainboard is fucking slow anyway. Fortunately, I just added another NIC in the box, boot on the CD, mount disks, chrooted and dist-upgrade to sid with a 2.6.22 kernel which work perfectly. So now, everything's ready and set up, I can play!

    Mike Hommey: WebKit (almost) in unstable

    I finally uploaded the first release of WebKit to unstable. It will obviously need to go through NEW first, which might take some time. There still is work to do, first of which being to correctly setup the git repositories. For the moment, there is only a git repository following upstream svn available on git.d.o. The branches are a bit messy, though ; I have to figure out why git-svn insists on randomly recreating the master branch… I supposedly removed the master branch to have the svn branch follow the git-svn remote. Anyways, once it is sorted out, I’ll set up a special branch to create our tarballs and from which we’d derive the debian branch (or not, this is not decided yet). This special branch will be a copy of the upstream branch with some stuff removed (see debian/copyright in the current packages source for a list of these). Speaking of the package source, since NEW is not available, I made the packages sources and binaries available on gluck. An important note: the version I uploaded is made from revision 24735 of upstream svn repository, which is from July 27. Unfortunately, to be able to build the first version of epiphany that includes webkit embedding (2.19.6) as is, webkit_gtk_page_can_go_forward and webkit_gtk_page_can_go_backward are needed, and these, while available in the API headers, only appeared in the source code on July 30. However, I built a hacked epiphany with calls to these functions removed (which means back and forward buttons won’t work properly), and made it available on gluck too. Be aware this version requires glib and gtk from experimental, which, I’ve been said, made all gtk/glib warnings fatal. That means all applications that usually fill your .xsession-errors log file are likely to crash with these versions. You’ll note integration is not yet perfect, biggest misfeature being the scrollbars missing, and some glitches such as the user agent (it is hardcoded in WebKit :-/), and the about window still saying it is based on Gecko ;) I’ll try to push a new version of WebKit soon enough. Stay tuned.

    Next.

    Previous.