Search Results: "will"

9 April 2007

Daniel Burrows: Latest Shiny Geek Toy: coq

So, one of the reasons I've been a bit uncommunicative the last few weeks is that I've been getting my head around Coq, maybe one of the most fascinating pieces of software I've played with in a long time.

What is Coq? I don't know if I understand it well enough yet to give a complete description (the Coq tome only arrived in the mail on Friday and I have yet to make it past the introduction, what with taxes and so on). Here's my best shot:

Coq is a programming language where you write proofs as functions taking proofs of their preconditions and producing proofs of their results. That is, a proof that "If X is an integer, then X-1 X" becomes a function that accepts a proof of "X is an integer" and produces a proof of "X-1 X".

You can manipulate logical expressions more or less the way you expect. For instance, if you have in your hands a set S of natural numbers and a proof that "forall nonempty sets T of naturals, T has a least element", then you can bang these together to produce the least element of S (or rather, a proof that it exists).

I don't think this describes the theoretical underpinnings of Coq, but it does describe my experience of actually using it to prove stuff.

To get the hang of Coq, I'm working my way through basic automata theory -- regexps are done, but I couldn't work out how to express some finiteness constraints on FSMs without generating a lot of extra typing; hopefully the Coq book will have some hints. Once that's done, I'm actually tempted to try something more ambitious. [snip long digression] We'll see ... watch this space :).

It was a real rush, though, to code up these theorems and watch the computer verify them. What really fascinated me was how close to being a practical tool this is. Coq isn't at all a toy -- without quite getting all the theory yet, my intuition is that it can probably cover anything you can express in the predicate calculus (with sufficient amounts of typing, anyway), and while there are a few shortcomings, it's almost (IMO) at the point where anyone who knows some formal logic and has a little patience can prove interesting stuff. Even more suggestive of possibilities, there's a project (which I sadly haven't had time to look at) that integrates Coq with OCaml, so you can have proofs about your OCaml code verified at compile-time!

I could go on and on ... anyway, this is a really cool tool and I'd encourage any mathematically-minded person to give it a spin. The only sad thing is that I doubt I'll ever have the opportunity to explore this stuff in my day job unless/until I go back to school :-(.

Shortcomings of Coq specifically and the whole concept of correctness proofs on programs generally have been moved to a future blog post that may never appear depending on how ambitious I'm feeling this week. Rest assured that I'm aware of (some of) them, I just hit my self-imposed length limit.

[0] the reason being that I could only prove correct the formal underpinnings of the resolver; in practice, a lot of the bugs are in the interface to apt, or in apt itself, and I can hardly prove that code correct.

Peter Van Eynde: gone is sarge

from my CL repositories I have at my p.d.o pages. I will now track etch (and will try to get the packages into backports.org too), sid and ubuntu's dapper and edgy. I expect to track feisty after it is released.

Hmm. No release party in Belgium planned yet...

David Watson: Switched to Drupal

Tonight I have replaced my Wordpress blog with a Drupal installation ( as some may have noticed due to my poorly timed test post ). I was finding that Wordpress didn't make it easy to host much more than just a blog, what I wanted was a complete site and not just a blog. So Drupal looks much more like what I need. For now I have set up the blog part, the rest of the content will follow.

Steve Kemp: Black celebration

My apt-get repository has moved- no longer:
deb     http://steve.org.uk/apt sarge ...
deb-src http://steve.org.uk/apt sarge ...
Instead you should now use:
#
#  Steve Kemp's repository:  Sarge
#
deb     http://apt.steve.org.uk/sarge sarge main non-free contrib
deb-src http://apt.steve.org.uk/sarge sarge main non-free contrib
Or :
#
#  Steve Kemp's repository:  Etch
#
deb     http://apt.steve.org.uk/etch etch main non-free contrib
deb-src http://apt.steve.org.uk/etch etch main non-free contrib
This scheme should be more extensible and will be easier for me to maintain. I've setup symlinks so that clients who don't update will still have something working - but I'd really rather you switched if you're using these repositories. I've imported the Sarge repository fully, for AMD64/i386. I'll go through the Etch one shortly - I think most packages people care about are in the new release, the biggest package is xen-tools which has had several important/interesting/useful changes since the Etch freeze... There are some custom packages that seem suprisingly popular, such as the steve-completion which will need to be imported for etch too - but I'll do those by the end of the week all being well. BUG: if apt-get honoured HTTP redirects I'd not have to post this here and hope for the best ...

Junichi Uekawa: etch release party in tokyo.

I will be holding a party in Tokyo somewhere this Thursday to celebrate Debian etch release. You're all invited to come, please contact me if you want to join in.

Sam Hocevar: Election results

Okay, I guess I m expected to say something. You ll probably notice I m not exactly bouncing around in a great explosion of joy. I ll keep that for the upcoming obligatory yay for Etch post. As much as I m saddened by a few reactions of perplexity or sometimes even bitterness, I hope the ha, in your face! attitude targeted at other candidates will eventually fade out, too. I really didn t think I would win (at least before all those people started e-mailing to tell me they voted for me). My initial goal was only to make people think I could win, so that other well-placed candidates would pick up the good stuff in my platform or adapt to it. I didn t really care about me being DPL. Well, apparently this didn t go exactly as expected and here I am. That said, I m of course happy that my candidate of choice won :-) And it s good that we had more voters than last year. I d also like to thank all other candidates for running. Despite disagreements and given how much I advocated teams in my platform, there s obviously things we ll be able to do together, I just don t know the details yet. I have already been offered help on many topics, including from people with whom I ve disagreed or even quarreled and that s really heartwarming. It will be a great year. For the datamining lovers here, you may want to use this alternate tally sheet that makes grepping more meaningful. Votes are rewritten as a comma-separated preference list: 3567,4,1289 means ranked options 3, 5, 6 and 7 equally, then option 4, then options 1, 2, 8 and 9 equally and could be a --19111-- or a 331211133 vote (which mean exactly the same to the voting software but not necessarily to the voter). To know for instance how many people ranked NOTA above all other candidates, use grep '^9,' (that s 19 people, by the way). To know how many people put at least 5 candidates below NOTA, use grep '9.*,\([1-8].*\)\ 5\ ' (and that s 119 people!).

Erich Schubert: Renaming applications

You probably have read it alread Gaim will be renamed to Pidgin. Most likely because of AOL being unhappy with them using AIM in their name (although they support a dozen other messengers as well; getting rid of AIM in the name was also 'wanted' by the Gaim developers I guess). However, such software renames eventually cause some problems. For example, will the API also be renamed? Will libgaim become libpidgin? Will the DBus interfaces change their name? A dozen of applications might be affected by that, including the popular AdiumX messenger for OSX. (One of the prettiest I've seen so far, btw.) Other examples of such renames (and the problems caused by that) is the Mozilla chaos. Mozilla doens't allow to distribute modified versions of Firefox or Thunderbird under these names, so Debian has to replace the names (though most of our patches at some point are adopted by upstream, or they'd be okay with them, Debian also has the requirement that our users must be able to do their own modifications!). This is why etch just shipped with "Iceweasel" and "Icedove" instead. However some web sites don't test for the browsers "Gecko" version, and for example Google Groups, when trying to set the profile image, tells me I need to run Firefox or Internet Explorer. Though I'm pretty sure the function would just work fine with both Epiphany (my primary browser) and Iceweasel. The transition from "cdrecord" to "wodim" was a bit smoother. On the one hand, many application were already expecting functionality not present in the "official" cdrecord (and yes, Joerg, I know that your opinion might differ on that point - I don't care, nor does anybody else I know). On the other hand, it mostly affects programs included in the distribution, so they can be easily handled. There aren't random websites testing for it either, and custom scripts written by users can probably handled via a wrapper (this is much more difficult for libraries I guess, or the DBus API of Gaim. Fortunately for Gaim, these interfaces aren't used much, so it can be solved with a simple search and replace and recompilation in affected applications). I think when more distributions switch from Firefox to Iceweasel because of realizing that it might be important to some of their users and recommend Epiphany because of it's smoother user interface, we might also see less websites doing incorrect browser capability detection.

Russell Coker: BSD vs GPL licences

James Dumay writes about Theo's latest flame-war.

One interesting part of the debate was Theo's response to this comment:
> We can dual license our code though and that is an
> acceptable license for Linux, the kernel.

Theo:
We? Sure, you can. But Reyk will not dual license his code, and most of the other people in the BSD community won't either, because then they receive the occasional patch from a GPL-believer which is ONLY under the GPL license, and then they are no less screwed than they would be from the code granted totally freely to companies.

The difference of course is that when you give code to companies under the BSD license you will never know what is done to it, but GPL-only patches can still be used as inspiration for new code development. Sure GPL-only code can't be copied into BSD-only code, but once you know where the bugs are they are easy to fix.

Towards the end of the debate Theo asks the following question:
David, if you found a piece of your code in some other tree, under a different license, would your first point of engatement be a public or private mail?

I can't speak for David, but after reading the discussion I would probably start by blogging about such an issue.

Wouter Verhelst: Etch m68k

So now that etch is out, m68k is no longer an officially supported port in the latest version of Debian . However, if you have a look at a DMNY[1], you'll see the following:
ncftp /debian/dists > ls
Debian3.1r6@                           proposed-updates@
Debian4.0r0@                           README
etch/                                  sarge/
etch-m68k/                             sid/
etch-proposed-updates/                 stable@
experimental/                          stable-proposed-updates@
lenny/                                 testing@
lenny-proposed-updates/                testing-proposed-updates@
oldstable@                             unstable@
Note the 4th line of output:
etch-m68k/
Yes, that means there is a way out for users of Debian/m68k. The etch-m68k suite will allow us to update patckages for etch on m68k only, much like the AMD64 folks did on sarge. This is necessary, since etch/m68k is a bit too different from 'regular' etch. Want to help? Head over to debian-68k@lists.debian.org and/or #debian-68k on OFTC. Help is always welcome. [1]Debian Mirror Near You

Russell Coker: New Debian release and new DPL

Ingo Juergensmann has blogged in detail about the new release and the new DPL.

Sam Hocevar ran for DPL on a platform based on some significant new changes. It will be interesting to see what happens over the next year.

The release of Etch is an exciting milestone in Debian development. Among other things it has SE Linux working!

I'm going to try and arrange a party in Melbourne, Australia to celebrate. We also have a mailing list for Debian people in Melbourne, to subscribe send a message to debian-melb-request@taz.net.au with the subject subscribe. I'll use that list for arranging the party, send me private email if you are not subscribed but want to attend.

Matt Brubeck: 9 Apr 2007

lkcl: Ratings and reports are explained in the Advogato FAQ, by the way. One thing I can't tell whether you realized or not: The report at /rating/report/lkcl does not show what other people think of your diary. It shows what you (and the people you certified) think of other users' diaries. The lumpiness of the histogram is because most users don't use the full range of ratings. And since confidence scores fall off exponentially by network distance, your confidence-weighted histogram will be skewed toward ratings given out by yourself and people you directly certified. For example, I tend to rate most diaries between 4 and 9, so I expect my report to be skewed toward those values.

Russell Coker: heartbeat - what defines a cluster?

In Debian bug 418210 there is discussion of what constitutes a cluster.

I believe that the node configuration lines in the config file /etc/ha.d/ha.cf should authoritatively define what is in the cluster and any broadcast packets from other nodes should be ignored.

Currently if you have two clusters sharing the same VLAN and they both use the same auth code then they will get confused about which node belongs to each cluster.

I set up a couple of clusters for testing (one Debian/Etch and the other Debian/unstable) under Xen using the same bridge device - naturally I could set up separate bridges - but why should I have to?

I gave each of them the same auth code (one was created by copying the block devices from the other - they have the same root password so there shouldn't be a need for changing any other passwords). Then things all fell apart. They would correctly determine that they should each have two nodes in the cluster (mapping to the two node lines), but cluster 1 would get nodes ha1 and ha2-unstable even though it had node lines for ha1 and ha2.

I have been told that this is the way it's supposed to be and I should just use different ports or different physical media.

I wonder how many companies have multiple Heartbeat installations on different VLANs such that a single mis-connected cable will make all hell break loose on their network...

Matt Brubeck: 8 Apr 2007

Planet Venus as a personal home page Planet Matt is my shiny new home page, based on the Planet Venus feed aggregator. It displays my recent updates from Advogato, LiveJournal, Flickr, and elsewhere. It also provides a single feed for friends who want to subscribe to all of my updates without tracking down a username and feed for each new service. This gives some of the same benefits as ClaimID or Red Hat's MugShot, but it runs at a domain I control, and doesn't depend on any one third-party service. As a bonus, the home page is also my new OpenID URL (using delegation). Right now I'm using a slightly modified version of the "classic_fancy" theme that comes with Planet, plus some simple custom filters. I'm developing a new theme that will be more suited for use as a personal home page, which I plan to contribute back to Planet Venus for others to use. Let me know if you're interested.

8 April 2007

Erich Schubert: Visualizing iptables

I've written a small parser for iptables rules in Python, and made it output GraphVis data. Byte counters are translated to line width, packet counters to line color. Dashed lines didn't receive any data so far. This is the result for my laptop's tiny firewall setup (generated by Pyroman; the double accept/drop/reject rules are mostly for cosmetic purposes, and counting data and packet totals. However the reject rule also does a 'cleaner' reject for TCP connections) Visualization of a small iptables rule setup I've ran it on a much larger firewall (~100 chains, ~600 rules; a multi-homed firewall at our university), but it becomes to messy with the dotty layout algorithm. The firewall chains generated by pyroman are pretty flat; it generates one chain per client-server combination, the INPUT etc. chains are filled with source/destination filters, the services are filtered in the second level then. Also most of the traffic is handled by connection tracking, so it boils down to having one big accept line, with little going on beyond that. So the visualization turned out to be only of partial interest (at least for Pyroman-generated firewalls. It could be useful if someone actually nests chains more levels deep). Still there is some interesting stuff I might be going to try with the iptables-save parser I've written: [P.S. Anyone aware of a GTK/Gnome application or library for visualizing graphs?]

Ben Armstrong: Moved Debian Jr. repository to Alioth

A little remembered fact is that the Debian Jr. project had a directory in the subversion repository of the CDD project at Alioth. Aside from Andreas Tille’s experimental conversion of Debian Jr. to use cdd-dev1, there was nothing else there until today. While I was in the process of populating this directory with the junior-* metapackages and adding an external reference to the live CD config, it seemed to me that it would be better to move the whole thing to our own repository at Alioth, which I promptly did. So now you can check it out:
$ svn co svn://svn.debian.org/debianjr
As well, I registered Debian Jr. at http://cia.vc/ and configured svn so that the CIA bot will report on the #debian-jr channel at irc.debian.org for every commit. And finally, I applied for the creation of a debian-commits@lists.alioth.debian.org list. As soon as the list is created, I will hook it up to the repository so you can subscribe to commit emails.

1 Although this seemed like a good idea at the time, for various reasons I ended up sticking with the single metapackage per category model Debian Jr. uses to this day. But I have retained this experiment in the repository under svn://svn.debian.org/debianjr/branches/EXP-cdd-dev in case we ever reverse that decision.

Ingo Juergensmann: The big Debian day

Today - as many of you have already noticed - is/was a big day for Debian:



Well, I could add another topic:


In a more detailed view:
Sam Hocevar won the DPL election
Congrats to Sam! I can agree with most of the points he made in his DPL platform, e.g. a sexier website, sexier distribution, remaing the universal OS, etc.
sexier website: Really, the current design of Debians website is awful. It's really something back from the 90s. Bad look, bad design and stuff you're looking for is difficult to find, because it's badly structured and stuff is spread all over the place. I think, it would be good to have some decent CMS and some good designers/graphic artists - a good package maintainier doesn't make a good webdesigner.
sexier distribution: Many people are using Ubuntu because they're desktop users. The current release cycles are way too long and drive people away from Debian. It's a different matter, of course, for servers or managed systems like Terminal Servers or such. Those are fine with longer release cycles. Splitting up the release in some core and sub releases is a quite common proposal. Yes, this split is difficult, but I think it's the way to go.
remaing the universal OS: As of the release of Etch, Debian became the no-more-universal OS - just because m68k wasn't released for obscure reasons. I'm a great m68k user and now I'm left behind by Debian with the problem that my pet arch is not supported anymore. Running testing/unstable is not an option for m68k IMHO. Because the m68k porters didn't come up with an alternative release plan so far, I think it's the best to shutdown my 3 m68k machines - all of them are m68k buildds - within the next weeks or months. They're producing (well, some little) heat, some disturbing noise and consume a lot of power of course. Currently I accept those drawbacks in order to help the m68k port by donating CPU power running some buildds for about 7 years now. I've spent much more money on this purpose - not only for paying the electricity bills - for phone calls to get crashed remote machines rebooted, sending replacement parts for other buildds or even driving by car to bring machines or other parts to other persons (like crest.debian.org to Michael Schmitz or accel boards to the Netherlands for porting stuff. Anyway, I will happily reactivate the machines when it's up to make a new release for the m68k architecture again! :)

Some other point Sam mentioned in his platform is this:
There are very useful services around, such as http://www.buildd.net/, http://bts.turmzimmer.net/ or http://bjorn.haxx.se/debian/. I cannot understand why they are not Debian services.

I already had a conversation with Sam about this in which I expressed my general intention to develop at least Buildd.Net beyond its current state - it's quite frustrating for me to see Buildd.Net being stuck in development just because I've no more time and skill to develop Buildd.Net further. Sadly, my call for help wasn't as successful as I wanted. Only two persons wanted to help: faw and joey - and both are quite busy with other stuff.
Apparently, Buildd.Net will most likely suffer from shutting down my m68ks due to the missing m68k Etch release as well, because it was always a frontend to my m68k buildds in my eyes. All other stuff on Buildd.Net is just a nice addition to that. And when I don't operate m68k buildds on a daily basis, it's obvious that I won't invest much more time into the development of Buildd.Net. This is already true for the past year where I haven't found the time to fix some serious problems in the backend scripts and database of Buildd.Net, which basically breaks store_packages2.py (source and therefor ptracker.cgi(example) as well. I even haven't found the time to setup trac and svn again after the move to the new server during last autumn.
Erm, anyway.. back to the topic: I wish Sam the best for his period - but I don't think that he can make a big change. I doubt in general that any DPL is able to push big changes in Debian. One reason for this is the short period of just one year. Another reason is that many DDs won't let big changes to be made.

Nico Golde: Altering a variable outside the scope of a loop

I recently had a nice discussion on a mailinglist about #!/bin/bash vs #!/bin/sh as the shebang line in shell scripts.
In general I support to use #!/bin/sh, maybe there are some corner-cases in which it makes sense to use #!/bin/bash, I am not a shell programmer.
But since the guy from shellscripts.org (btw why shellscripts and not bashscripts?) told me that I have to use a bashism to
alter a variable outside the scope of a loop because of the created subshell and in my opinion this is a common misunderstanding I blog this.

  1. foo=123
  2. echo 456 while read line ; do
  3.         foo=$line
  4. done
  5. echo $foo


results in 123 because the loop has its own subshell and no access to foo outside of its scope.

  1. foo=123
  2. while read line ; do
  3.         foo=$line
  4. done < <( echo 456 )
  5. echo $foo


is the proposed bashism to solve this issue, it will result in 456.

  1. echo 456 {
  2. foo=123
  3. while read line; do
  4.         foo=$line
  5. done;}
  6. echo $foo


Also results in 456 and is sh-compliant (or at-least runs in ksh93 which is the reference implementation for the POSIX standard.
What also surprised me is that this is not running in bash, dash but in zsh :-)
I reported this as a bug in bash and dash for Debian, please correct me if I am wrong.

Nico Golde: Altering a variable outside the scope of a loop influenced by a subshell

I recently had a nice discussion on a mailinglist about #!/bin/bash vs #!/bin/sh as the shebang line in shell scripts.
In general I support to use #!/bin/sh, maybe there are some corner-cases in which it makes sense to use #!/bin/bash, I am not a shell programmer.
But since the guy from shellscripts.org (btw why shellscripts and not bashscripts?) told me that I have to use a bashism to
alter a variable outside the scope of a loop because of the created subshell and in my opinion this is a common misunderstanding I blog this.

  1. foo=123
  2. echo 456 while read line ; do
  3.         foo=$line
  4. done
  5. echo $foo


results in 123 because the loop has its own subshell and no access to foo outside of its scope.

  1. foo=123
  2. while read line ; do
  3.         foo=$line
  4. done < <( echo 456 )
  5. echo $foo


is the proposed bashism to solve this issue, it will result in 456.

  1. echo 456 {
  2. foo=123
  3. while read line; do
  4.         foo=$line
  5. done;}
  6. echo $foo


Also results in 456 and is sh-compliant (or at-least runs in ksh93 which is the reference implementation for the POSIX standard.
What also surprised me is that this is not running in bash, dash but in zsh :-)
I reported this as a bug in bash and dash for Debian, please correct me if I am wrong.

Neil Williams: Etch release!

First time I've had the chance to see a Debian release - I waited before blogging and all my boxes have upgraded smoothly. Some had already moved to testing from unstable a while ago and it's great that I can now move some to stable. One or two can even go directly from unstable to stable.

Well done to everyone involved!

Interesting point for me: 1,881 packages are going into testing tonight! Ouch!

(I've got a few updates for unstable but those will keep for a day or so until things settle down a bit.)

Hopefully, the NEW queue will start moving too - one reason to vote for Sam Hocevar was to speed up admission of packages that result from splitting an existing source package. pilot-qof introduces some new binary packages and it is frustrating that simply reorganising existing code causes the same delay as a completely new source package. Sam also expressed an interest in embedded work which is always a good sign.

Sam Hocevar: Election results

Okay, I guess I m expected to say something. You ll probably notice I m not exactly bouncing around in a great explosion of joy. I ll keep that for the upcoming obligatory yay for Etch post. As much as I m saddened by a few reactions of perplexity or sometimes even bitterness, I hope the ha, in your face! attitude targeted at other candidates will eventually fade out, too. I really didn t think I would win (at least before all those people started e-mailing to tell me they voted for me). My initial goal was only to make people think I could win, so that other well-placed candidates would pick up the good stuff in my platform or adapt to it. I didn t really care about me being DPL. Well, apparently this didn t go exactly as expected and here I am. That said, I m of course happy that my candidate of choice won :-) And it s good that we had more voters than last year. I d also like to thank all other candidates for running. Despite disagreements and given how much I advocated teams in my platform, there s obviously things we ll be able to do together, I just don t know the details yet. I have already been offered help on many topics, including from people with whom I ve disagreed or even quarreled and that s really heartwarming. It will be a great year. For the datamining lovers here, you may want to use this alternate tally sheet that makes grepping more meaningful. Votes are rewritten as a comma-separated preference list: 3567,4,1289 means ranked options 3, 5, 6 and 7 equally, then option 4, then options 1, 2, 8 and 9 equally and could be a --19111-- or a 331211133 vote (which mean exactly the same to the voting software but not necessarily to the voter). To know for instance how many people ranked NOTA above all other candidates, use grep '^9,' (that s 19 people, by the way). To know how many people put at least 5 candidates below NOTA, use grep '9.*,\([1-8].*\)\ 5\ ' (and that s 119 people!).

Next.

Previous.