Search Results: "spa"

11 April 2007

MJ Ray: Online Banking: What works with GNU/Linux? (12)

Added: Banco R o, ING Bank l ski, mBank, Sparkasse I notice that Jonathan's earth.li presence: Planned bank outages notes Cahoot's good approach and asks about others. I've sometimes seen announcements on the web pages of NPBS and Co-operative Bank, but no email unless it appears in their routine email newsletters. How about others? (I've posted this comment here because the presence is a login-to-comment site.)

Maximilian Attems: Happy switch from bzr to git

The cardinal reason for the switch is collaboration: git scales. During my bzr usage time of the last year i observed the following shortcomings of bzr:
  • Speed - This improved a bit lately but not enough for my q&d usage.
  • Documentation - Beside the obvious "svn-style" commands the usage of the other commands isn't obvious and the man pages lack examples. git is not perfect in that regard, but you quickly find typical usage pattern on wiki tutorials or on many google hits.
  • Pager - On big diff output bzr doesn't pipe that to pager^Wless. I consider that as a big usability bug.
  • Branches - I recently learned that a bzr repository corresponds to a git repo with just one branch. This seems strangely complicated. I really love to have different branches ready to checkout in my pwd . This short-coming blocks cooperation as i'm not confident enough to fetch random changes from bug reporters in my own branch.
  • Minor Nitpicks:
    * Push command - Defaults on the non-obvious old sftp protocol. Worked with rsync on some very ancient version.
    * Repo format - Changes on every major upgrade.
    * Patchlevel - Probably for svn compat reason the chosen default patchlevel is -p0 not -p1.
  • Latest initramfs-tools repo is available at:
    git clone git://git.debian.org/git/kernel/initramfs-tools.git Thanks to tailor it is now possible to move from different version control systems. For git as target repository it is recommended to use latest upstream either directly via darcs or at least install the unstable version. The etch version throws strange python backtraces.

    10 April 2007

    Russell Coker: what is a BOF?

    BOF stands for Birds Of a Feather, it's an informal session run at a conference usually without any formal approval by the people who run the conference.

    Often conferences have a white-board, wiki, or other place where conference delegates can leave notes for any reason. It is used for many purposes including arranging BOFs. To arrange a BOF you will usually write the title for the BOF and the name of the convenor (usually yourself if it's your idea) and leave a space for interested people to sign their names. Even though there is usually no formal involvement of the conference organizers they will generally reserve some time for BOFs. Depending on the expected interest they will usually offer one or two slots of either 45 minutes or one hour. They will also often assist in allocating BOFs to rooms. But none of this is needed. All that you need to do is find a notice-board, state your intention to have a BOF at a time when not much else is happening and play it by ear!

    My observation is that about half the ideas for BOFs actually happen, the rest don't get enough interest. This is OK, one of the reasons for a BOF is to have a discussion about an area of technology that has an unknown level of interest. If no-one is interested then you offer the same thing the next year. If only a few people are interested then you discuss it over dinner. But sometimes you get 30+ people, you never know what to expect as many people don't sign up - or have their first choice canceled and attend the next on the list!

    To run a BOF you firstly need some level of expert knowledge in the field. I believe that the best plan is for a BOF to be a panel discussion where you have a significant portion of the people in the audience (between 5 and 15 people) speaking their opinions on the topic and the convener moderating the discussion. If things work in an ideal manner then the convener will merely be one member of the panel. However it's generally expected that the person running the BOF can give an improvised lecture on the topic in case things don't happen in an ideal manner. It's also expected that the convener will have an agenda for a discussion drawn up so that if the panel method occurs they can ask a series of questions for members of the BOF to answer. My experience is that 8 simple questions will cover most of an hour.

    One requirement for convening a BOF is that you be confident in speaking to an audience of unknown size, knowledge, and temperament. Although I haven't seen it done it would be possible to have two people acting as joint conveners of a BOF. One person with the confidence to handle the audience and manage the agenda and another with the technical skills needed to speak authoritatively on the topic.

    Some of the BOFs I have attended have had casual discussions, some have had heated arguments, and some ended up as lectures with the convener just talking about the topic. Each of these outcomes can work in terms of entertaining and educating the delegates.

    But don't feel afraid, one of the advantages of a BOF is that it's a very casual affair, not only because of the nature of the event but also because it usually happens at the end of a long conference day. People will want to relax not have a high-intensity lecture. One problem that you can have when giving a formal lecture to an audience is nervous problems such as hyper-ventilating. This has happened to me before and it was really difficult to recover while continuing the lecture. If that happens during a BOF then you can just throw a question to the audience such as "could everyone in the room please give their opinion on X", that will give you time for your nerves to recover while also allowing the audience to get to know each other a bit - it's probably best to have at least one such question on your agenda in case it's needed.

    Note that the above is my personal opinion based on my own experience. I'm sure that lots of other people will disagree with me and write blog posts saying so. ;)

    The facts which I expect no-one to dispute are:

    Bastian Blank: pvmove still blocks sometimes

    I thought the problems with pvmove was fixed with devmapper 1.02.12, but I just run into this problem again. Not sure if there was different fixes in later versions. pvmove suspends the devices and fails to reload tables under some conditions. This time it just blocked while the devices for /usr und /var was suspended. This means the system is dead. Update: It seems to be related to the number of LVs to move. Only one works all the time.

    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.

    Russell Coker: a strange interpretation of the US constitution about copyright

    In a blog on infoworld the following strange statement appeared:

    The US Constitution is clear that the reason for copyright/patent/etc. is to benefit creators of property, not users of property. I appreciate the reason: give creators a reasonable return on their investment.

    Actually the US constitution seems to clearly say the opposite. Here is a link to section 8 of the US constitution. The important phrase is "To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries".

    There is no mention of providing benefits to creators of written works and inventions. The aim is clearly stated to promote the progress of science and useful arts and the exclusive right which operates for limited times is merely a method of achieving that aim.

    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.

    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...

    8 April 2007

    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.

    Uwe Hermann: Testing stuff with QEMU - Part 2: MenuetOS, a tiny OS written in 100% assembly language

    Note: This article is part of my Testing stuff with QEMU series.
    
    MenuetOS screenshot From Wikipedia:
    MenuetOS is an operating system with a monolithic preemptive, real-time kernel, including video drivers, all written in FASM assembly language, for 64-bit and 32-bit x86 architecture computers, by Ville Mikael Turjanmaa. MenuetOS development has focused on fast, simple, efficient implementation. It has a graphical desktop, games, and networking abilities (TCP/IP stack), yet still fits on one 1.44MB floppy disk. It also facilitates easy, full-featured assembly language programming. This stands in marked contrast to the (as of 2007) widespread view that assembly languages are useful mainly for old and embedded systems.
    Testing (the GPL'd) MenuetOS in QEMU is easy:

    wget http://mesh.dl.sourceforge.net/sourceforge/menuet/M32-084.ZIP
    unzip M32-084.ZIP
    qemu -fda M32-084.IMG -m 384
    There's also Menuet 64, written in 64-bit assembly, but that's not open source'd for some strange reason I don't understand. But you can try that one, too (the binary images, that is), using QEMU:

    wget 'http://www.menuetos.be/download.php?CurrentMenuetOS'
    unzip M64-059.ZIP\?3.1
    qemu-system-x86_64 -fda M64-059.IMG

    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.

    Russell Coker: SE Linux - not too difficult for new users

    At http://tanso.net/selinux/ Jan-Frode Myklebust has documented his work in creating new SE Linux policy to run Googleearth on Red Hat Enterprise Linux 5. He discussed this with us on #selinux in irc.freenode.net (the main SE Linux IRC channel).

    One of his later IRC comments was:
    btw erich, the reason for creating this googleearth module was mostly triggered by your apparmor blog entry.. I wanted to see how much more difficult it would be to create policies in selinux compared to apparmor, and must say it wasn't too hard.

    "erich" refers to Erich Schubert. His AppArmor blog entry is currently the top entry in his SE Linux list.

    7 April 2007

    Eddy Petri&#537;or: Thanks...

    The answer to my previous question is "to be". That happened thanks to a bunch of people, in no particular order:
    Updates:

    Eddy Petri&#537;or: "To be or not to be on the first CD?"

    That is the question. Well, not personally[0], the Romanian translation of the Release notes.

    If you would have asked me yesterday, I would have said the plan is "to be".

    Plan: make sure that a decent enough text is committed in CVS at all times.


    What happened? Let me see...

    (Time stamps are for EET - UTC+3 now - unless specified otherwise)

    - pack in the morning
    - take luggage to work
    - buy train ticket before going to work
    - ask on list to take action if I don't act by 03:00am EET (00:00 UTC)
    - send the translation as is (25u), maybe the connection at my parents is broken
    - leave from work directly to the station
    - meet a pair of lovers in the train
    - he is so into her
    - she plays him like the fool he is
    - translate on the train
    - 5u and the battery is at 8%
    - no "darcs rec", hdd consumes battery
    - close lid instead of hibernating
    - mini-panic, mini-panic[1]
    - resume and hibernate - those percentages seem to change sooo slowly
    - arrive home
    - Internet connection works, good
    - continue updates
    - reach 100%
    - send first complete draft of the translation for inclusion
    - parallel review gathering up to 4 people on #debian-ro for review
    - joke seriously about me not being able to send the translation
    - ask again for action from the team, if needed
    - 02:30 - translation seems to be mature, less an less problems are found, should be committed
    - 02:40 forgot to ask activation, new mail
    - ??? - turning point?
    - send mail... error
    - can't send mail with the request to activate Romanian
    - provider's network seems to be isolated
    - realize I don't know if the commit request reached its target
    - frustration eased up by the already made requests to take action, if needed
    - 04:30 - power goes out
    - no ping from GW either
    - 04:30:01 - decide to write a blog about this day
    - start in zim
    - write a first nice draft - with some exciting writing style
    - zim looses my article when trying to remove a link-ified timestamp
    - start gedit
    - break the plug of the network cable[2]
    - 09:09 not even the GW is reachable
    - 05:10 sleep
    - (expected) 06:30 wake up
    - (expected) check the network connection
    - translations committed ???
    - thank to people / take action yourself ???
    - 07:00 (04:00 UTC) Romanian translation and CD images status: ???
    - sometime during the day - publish article


    [0] pure unintentional rhyme
    [1] I never lost files with a Linux FS, but I have the mandatory fear
    [2] is not fixed in the socket

    6 April 2007

    Amaya Rodrigo: Mine do it every night

    A cat helped spare a family from death by carbon monoxide poisoning by jumping on the bed and meowing wildly as fumes filled the home, the owners said.

    Eric and Cathy Keesling told reporters that their 14-year-old cat, Winnie, played a crucial role in saving their lives March 24 after a gasoline-powered water pump in their basement caused the odorless but deadly gas to build up.

    About 1 a.m., Winnie began nudging Cathy Keesling s ear and meowing loudly. It was a crazy meow, almost like she was screaming, said Keesling.

    Winnie s caterwauling and jumping persisted until Keesling finally climbed out of bed and realized she was nauseous and dizzy and couldn t awaken her husband.

    Paramedics found the couple s 14-year-old son, Michael, unconscious on the floor near his bedroom. The Keeslings were taken from the home in oxygen masks and treated for carbon monoxide poisoning; they soon recovered. The cat was unhurt.

    I have no idea what dangers Jazz has already saved me from, but either at 4:30 or 6:00, sharp, this happens every night in my bedroom.

    5 April 2007

    Michael Prokop: crm114: Controllable Regex Mutilator and Spam Filter

    Do you already know crm114? Taking quotes of the crm114 book:
    What is this? Some kind of grep bitten by a radioactive spider?
    — apocryphal CRM114 isn’t ugly like PERL. It’s a whole different kind of ugly.
    — John Bowker
    Want to get a calculator using crm114? No problem:
    % cat > calc << EOF
     
      eval (:_dw:) /:@: :*:_dw: :/
      output /:*:_dw: \n/
     
    EOF
    % crm calc
    (42*23)+(11/3.14) # press return and EOF (ctrl-d) at this stage and get the result:
     969.50318
    
    There’s a crm114 book (PDF, 283 pages!) available for free download. Just apt-get crm114, the installed-size is less than 1MB. Thanks Maddi for pointing me to it again, it was on my todolist for ages. ;)

    Evan Prodromou: 15 Germinal CCXV

    Just got some cheerful news from Ryan Finnie. Apparently the new version of Finnix has an amd64 kernel on the x86 disk. Per his blog post about Finnix 89: using an AMD64 kernel on a supported platform yields several advantages: ... You can chroot into native 64-bit AMD64 filesystems. Considering that's just what I needed to do yesterday (see Journal/14 Germinal CCXV), it's pretty sad that I only had a Finnix 88 CD. It was pretty dumb of me to not check the latest version, and it was wrong to say that Finnix doesn't support amd64. But it's good to know that it will work in the future. tags:

    RoCoCoCamp We had another organisational meeting for RoCoCoCamp at the Bande-Passante this evening. It was really good -- we had quite a few people, and made some of the down-to-the-wire plans for the event. RoCoCoCamp is the RecentChangesCamp in Montreal the 18-20th of April, 2007. It's an "unconference" -- a community-organized conference that, we hope, will let a lot of people connect in a new way. The great thing about RoCoCoCamp -- and RecentChangesCamp in general -- is that it's hosted by the wiki community -- people who love and use wikis. But we try to reach beyond wikis, to other associated communities, organizations and individual activists. Wiki concept map I like to think of it like this: "wiki" is a concept associated loosely with other concepts -- tied to them in some concept-space. If we just bring together people who know and understand wiki, and have them talk together, we'll achieve very little. But if we bring together people who work, think and live in those closely-associated concept circles, we've got the opportunity for fascinating cross-cultural mixing -- passionate, creative accidents. I'm really looking forward to see what kind of creative accidents we engender at RoCoCoCamp 2007. I think it's going to be really fun. tags:

    Hellas Spectrum I did an interview tonight on Hellas Spectrum, the local Greek-language television show here in Montreal. The host, Toula Drimonis, had seen the article about me in the Gazette, had recognized my name as Greek, and wrote to ask if I'd like to be on the show. The interview was really fun, and it was great to be around Greek-speaking people for a while. Montreal has a very strong Greek community, with which I've entirely failed to connect in the 5 years (!!!!) that I've lived here. But Maj and I have talked about sending Amita June to one of the very good tri-lingual Greek-English-French private schools here in Montreal, and we'd all like to make more connections in the Greek community. Hopefully this helps! I've always felt a little cut off from the more intense Greeks here and elsewhere because... welllll... I just don't speak Greek that well. So it was great doing Hellas Spectrum -- Toula's job at the show is to include those Greek-Canadians and Greek-Americans who maybe don't speak the language and live in the neighborhood, but need to be included in the greater Greek culture. I had a great time at the interview, and on the way from the green room to the studio, we ran into the show's producer. He asked me something incomprehensible (in Greek), and when I looked confused, he said, "You don't speak Greek? That's OK. Are you Greek, though? Are you Greek here?" He touched his chest. "Are you Greek in your heart?" Yes, I am. And it was cool to feel Greek in my heart tonight. Thanks to Toula for the invitation and the HS crew for making such a great show. tags:

    Martin F. Krafft: Sun gives a flying food about AMD64

    During my attempts to get Java support into my Iceweasel browser on my amd64 desktop, Sam Morris pointed me to this bug log. In it, you will find more than two years worth of requests and seconds by users desperately waiting for the 64-bit Java browser plugin without a single comment by Sun. Amazing. Even if it means using JRE 1.4, as opposed to 1.5 or even Java6, I am switching to Blackdown, who even provide an APT-gettable archive of their Java packages. At least now Java works from within my Iceweasel browser on amd64. Thanks, Sun. Suckers. NP: Erik Norlander / Music Machine

    Adam Rosi-Kessel: Bad Bicycle News

    I used to be a hardcore daily bike commuter. (By “hardcore,” I mean I commuted 20-30 miles roundtrip every day in Chicago in January.) Lately, I’ve gotten lazy, especially since I now live about thirty seconds by foot from a train station that takes me to a spot about thirty seconds by foot from my job. Also, since I’m now supporting two people (including my nearly two-year-old daughter), I’m a little more reluctant to get myself killed. I was reminded of the perils of biking in Boston this afternoon when a 22-year old bicyclist was killed by a dump truck in an area where I used to ride daily:
    The bicyclist, a 22-year-old man from Halifax, was riding between two lanes of traffic on Huntington Avenue when he was clipped by a taxicab near Northeastern University at about 2:30 p.m., police said. After being clipped by the cab, the bicyclist was run over by a McCauley and Sons Co. dump truck, police said.
    When I was a bike commuter, I was fairly cavalier about this sort of incident. I realize it’s still fairly rare and biking may not be any more dangerous than driving. But we still see these events in Boston fairly regularly. I don’t think it can be fixed fully by better driver education/behavior (or better bicyclist education/behavior). There are just too many streets that are poorly designed and naturally hazardous. On a related note, Nat mentioned this nasty run-in during a recent Critical Mass in San Francisco (the article is obviously from the driver’s point of view — there may be another angle on this):
    Susan Ferrando, her husband, their two children and three preteens had come to San Francisco from Redwood City to celebrate the birthday of Ferrando’s 11-year-old daughter. They went to Japantown, where they enjoyed shopping and taking in the blooming cherry blossoms. Things took a turn for the worse at about 9 p.m., when the family was leaving Japantown — just as the party of about 3,000 bikers was winding down its monthly red-lights-be-damned ride through the city. Suddenly, Ferrando said, her car was surrounded by hundreds of cyclists. Not being from San Francisco, Ferrando thought she might have inadvertently crossed paths with a bicycle race and couldn’t figure out why the police, who she had just passed, hadn’t warned her. Confusion, however, quickly turned to terror, she said, when the swarming cyclists began wildly circling around and then running into the sides of her Toyota van. Filled with panic, Ferrando said, she started inching forward until coming to a stop at Post and Gough streets, where she was surrounded by bikers on all sides. A biker in front blocked her as another biker began pounding on the windshield. Another was pounding on her window. Another pounded the other side. “It seemed like they were using their bikes as weapons,” Ferrando said. One of the bikers then threw his bike — shattering the rear window and terrifying the young girls inside. All the while, Ferrando was screaming, “There are children in this car! There are children in this car!” …
    Update 4/5/2007: the 22-year-old bicyclist had a myspace page.

    Next.

    Previous.