Search Results: "cas"

9 June 2008

Lucas Nussbaum: Text normalizer, anyone?

When I write text documents (using LaTeX or Docbook), I like to wrap lines, as it makes them easier to edit (less things moving on the screen), and allow to have easy-to-read diffs. However, I always hesitate before rewrapping paragraphs (using vim’s gqap): this mean that I will add noise to my git history. So I only do that from time to time, making “rewrapping-only commits”. But that sucks, since in the meantime, I sometimes make a lot of changes, and my lines grow long again. Of course, I could rewrap my paragraphs before each commit, but if I simply add a word to a paragraph, it might cause all the lines to be rewrapped. So I what I would need is some kind of “text normalizer” that will: I’ve looked at plasTeX: I could use it to parse a LaTeX document, and export it as LaTeX. But then it would be a LaTeX-only solution. Does anyone have a better solution?

8 June 2008

Andrew Pollock: [life] And we're back

We actually got home last Sunday, but I've been too jetlagged, and then too busy with work to really have a chance to write anything... We got back in at around 2pm, but our bags fell victim to Heathrow's Terminal 5, and didn't arrive until around 11pm. I think I lasted until about 8pm, when I had to crash. Poor Sarah had to stay up until 11pm when they finally got around to delivering our suitcases. The week in Zurich was wonderful. The Zurich office is everything the photos make it out to be, and then some. One weird thing: apparently there's some Swiss regulation about how much you're allowed to cool a building in relation to the outdoor ambient temperature, so there's no air conditioning in the office. Instead, you can open the windows. Unfortunately, there's a fairly busy set of train tracks right beside the office, so it can get a tad noisy... It was a pretty warm week, I think around 30°C. I certainly prefer being colder rather than hotter when indoors, so found the lack of decent cooling to be a shame, given the rest of the building's features. That said, it was pretty amazing sweltering away in Zurich, and then looking up and seeing snow on the mountains. It was surprising how much of a temperature difference there was. On the last evening in Zurich, we went on a reconnoitre to try and find the river that we could hear (and see on the map) behind our apartment. We eventually found some street access to it, and it was another world back there. It was fairly thickly wooded, and the sunlight was heavily filtered through the trees, so it was cool and shady. The river was fairly fast flowing over some rocks in parts, which is what was making it so audible. The whole setting was absolutely beautiful. There were a couple of paths, and the whole thing felt like something out of a fairy tail. We think we stumbled onto a fox, but we're not sure. It's a shame we only discovered the place on the last day, as I'd have liked to have explored it further. I really liked Zurich. It was nice and flat, and had an excellent tram service. Monday Night Skate made me wish I'd packed my roller blades. We were wandering around on Monday night, and it felt like the entire city had donned skates and were going out. Apparently the authorities really get behind it, and close roads, and the police go along behind the pack and reopen the roads behind them and pick up the stragglers. Great way to encourage an active lifestyle. We've got all of our photos up now from the Europe trip, and they're here. This brings the total countries I've visited up to 10, excluding Hong Kong and Macau. I don't like selecting China when I generate this map, as I've never been to mainland China. Countries I've visited as of June 2008

Robert Collins: 8 Jun 2008

So, the last lazyweb question I asked had good results. Time to try again: Whats a good python-accessible, cross-platform-and-trivially-installable(windows users) flexible (we have plain text, structured data, etc and a back-end storage area which is only accessible via the bzr VFS in the general case), fast (upwards of 10^6 documents ), text index system? pylucene fails the trivially installable test (apt-cache search lucence -> no python bindings), and the bindings are reputed to be SWIG:(, xapian might be a candidate, though I have a suspicion that SWIG is there as well from the reading I have done so far, and - we'll have to implement our own BackEndManager subclass back into python. That might be tricky - my experience with python bindings is folk tend to think of trivial consumers only, not of python providing core parts of the system :(. So I'm hoping there is a Better Answer just lurking out there... Updates: sphinx looks possible, but about the same as xapian - it will need a custom storage backend. google desktop is out (apart from anything else, there is no way to change the location documents are stored, nor any indication of a python api to control what is indexed). It looks like I need to be considerably more clear :). I'm looking for something to index historical bzr content, such that indices can be reused in a broad manner(e.g. index a branch on your webserver), are specific to a branch/repository (so you don't get hits for e.g. the working tree of a branch), with a programmatic API (so that the bzr client can manage all of this), with no requirement for a daemon (low barrier to entry/non-admin users).

Biella Coleman: Anthropologocial Wonders and Myopias North and South

Four years ago, the last time I was in Brazil, I came as an anthropologist-in-training to attend and give a talk at Debconf4 held in Porto Alegre. I have returned to this city in the south, again in the winter, but this time I have come back as an anthropologist who is giving a talk at the department of anthropology at the UFRGS, based on my research conducted many years ago. This time, thanks to my (really friendly and energetic) hosts, I am seeing far more of the actual city, its beautiful and legendary sunsets, its outlying neighborhoods, and even its subcultures. This has been my first foreign trip where I am interacting primarily with anthropologists and this has been really interesting for me. On the one hand, because of the language difference, there is a lot that is strange and hard for me to follow and I am acutely aware of the general and particular economic gulf between north and south and its impact on students (books are expensive, traveling for conferences is very difficult, and even applying to graduate schools in the north can be impossible because it costs so much to apply to each school!) On the other hand, the methods and subjects of study, the style of analysis, and the teaching are all very familiar, making me feel like I am part of a discipline that (thankfully) transcends national borders. Many of the projects I learned about–the tensions between free software advocacy and development, the role of memory among fan s of a corny country/Gaucho singer from this area and the surgical management of intersex (hermaphrodite) newborns were some of the most interesting projects I have come across and gobbled as much information about them as I could. I was also struck, yet again, by the deep myopias of anthropology, north and south. My own project, which focuses mostly on white, American and European hackers, often does not strike as culturally authentic enough because, well, the people I study are white, American and European (and I am slowly coming to see that if you study the so-called white and male or the North American/European elements of technology and the Internet and the law, you are probably white and male yourself and anything having to do with ethnicity/gender is usually the province of female academics, which I find really problematic). If I had carried out my first project in Brazil, where there is a foreign language, where there is a long tradition of studying various groups, then my project would have been stamped by that mysterious aura of authenticity/approval. On the other hand, two of the students here (those that worked on free software and the country singer) complained that their papers have yet to be accepted by the Brazilian Anthropological Association for being too strange, non-traditional, and it seems in their case, the problem is that they are studying urban Brazilian, popular culture (which for me would have just been just the thing to study). We are located far apart but find ourselves in similar positions by virtue of studying something geographically close to where we live, which is confused and misperceived as being culturally close to our world. But if there is something I wish to hammer into my students and other anthropologists is that there is tremendous plurality and multiplicity within our own societies. We can travel far, in the cultural sense, just by staying home and opening our eyes a little wider. Another nice experience is that I am learning a tremendous amount about free software politics and development from the graduate student, Luis Felipe, who is really responsible for getting me down here. He found me on IRC many moons ago and finally we have been able to compare notes and have long conversations about free software, the differences in how we can gather data due to gender, and a topic close to me, which is the tension between the political and apolitical in free software. Our relationship is at once based on friendship and also one of mentoring. And it reminds me of others who have also mentored me and how crucial this mentoring was to the development of my own work. One of my most important mentors, Chris Kelty, just published his book on Free Software (and I will soon write an entry about the book but the WHOLE THING IS ONLINE) and so it felt quite nice that we were discussing what I think his one of his most amazing chapters on the creation of the copyleft in our class on Friday. Not only was the topic about the genesis of the first free software license appropriate for a class on IP, but in many ways, because of his mentoring, I have gotten to where I am and so it felt also appropriate to honor and recognize that genealogy in my own work.

7 June 2008

Lucas Nussbaum: Datamining Launchpad bugs

One think that really is annoying with Launchpad is its lack of interfaces with the outside world. No SOAP interface (well, I think that work is being done on this), no easy way to export all bugs. The only way to get all the bug data in a machine-parseable is to first fetch this URL, and then, for each bug number listed there, to make another request for https://launchpad.net/bugs/$bug/+text. I filed a bug a few weeks ago, asking for a simpler way to get all the data. A Launchpad dev suggested to do what I just described (fetch all the number, then fetch the data for each bug). I originally dismissed the idea because it just sounded too dirty/aggressive/whatever, but since I needed to practice python, I gave it a try. And actually, it works: I was able to get all the data in less than an hour (but that probably put some load on Launchpad ;-)). That allows to write cool SQL queries. Bugs with the most subscribers:
select bugs.bug, title, count(*) as subscribers
from bugs, subscribers
where bugs.bug = subscribers.bug
group by bugs.bug, title
order by subscribers desc
limit 10;
bug firefox subscribers
188540 firefox-3.0 crashed with SIGSEGV in g_slice_alloc() 291
154697 package update-manager 1:0.81 failed to install/upgrade: ErrorMessage: SystemError in cache.commit(): E:Sub-process /tmp/tmpjP6Bsx/backports/usr/bin/dpkg returned an error code (1), E:Sub-process /tmp/tmpjP6Bsx/backports/usr/bin/dpkg returned an error code (1), E:Sub-process /tmp/tmpjP6Bsx/backports/usr/bin/dpkg returned an error code (1), E:Sub-process /tmp/tmpjP6Bsx/backports/usr/bin/dpkg returned an error code (1) 278
141613 npviewer.bin crashed with SIGSEGV 262
59695 High frequency of load/unload cycles on some hard disks may shorten lifetime 182
215005 jockey-gtk crashed with AttributeError in enables_composite() 171
216043 compiz.real crashed with SIGSEGV 168
121653 [gutsy] fglrx breaks over suspend/resume 144
1 Microsoft has a majority market share 142
145360 compiz.real crashed with SIGSEGV 134
23369 firefox(-gnome-support) should get proxy from gconf 126
Bugs where someone is subscribed twice:
select bug, subscriber_login as cnt
from subscribers
group by bug, subscriber_login
having count(*) > 1;
bug subscriber
33065 mvo
48262 mvo
144628 skyguy
158126 benekal
213741 sandro-grundmann
216043 jotacayul
221630 kami911
(Yes, that forced me to change a primary key) Packages with the most bugs:
select package, count(distinct bug) as cnt
from tasks
group by package
order by cnt desc
limit 10;
package number
ubuntu 5392
linux 1464
linux-source-2.6.20 1034
update-manager 826
linux-source-2.6.22 724
firefox 684
kdebase 673
firefox-3.0 668
ubiquity 590
openoffice.org 566
Bugs with the shortest titles:
select bug, title, length(title) as len
from bugs
order by len asc
limit 5;
bug title length
190560 - 1
160381 uh 2
224350 css 3
133621 gnus 4
138052 pbe5 4
If you want to play too, you can fetch the SQLite3 DB (5.8M, lzma-compressed), the DB creation script, and the script that fetches the bugs and import them into the DB. Comments about my code would be very appreciated (stuff like “oh, there’s a better way to do that in python!”), as I’m not very confident about my pythonic skills. :-) Update: apparently, I’m not really fetching all the bugs. I’m getting the same results as when you just press “Search” on https://launchpad.net/ubuntu/+bugs. But if you click on “Advanced search”, then select all the bug statuses, and click search, you get a lot more bugs (154066 vs 49031). If someone know which bugs are excluded with the default search, I’m interested! Update 2: Got it. Apparently the default search doesn’t list bugs that have all their “tasks” marked “Won’t fix”, “Fix Released”, or “Invalid”.

David Nusinow: The Cognitive Load Of Web Development

The most dynamic segment of the software industry that I'm aware of is web programming. Flamewars rage about frameworks and browsers and standards and whatnot, and the openness of the whole thing feels like some of the things that made me fall in love with computing as a whole and Free Software in particular. The problem with all that openness is that it's rather difficult to navigate. Aside from the obvious issues with browser incompatibilities, there's an enormous amount of software solutions on the server side, spanning languages, libraries, and frameworks. Each one is an ecosystem to itself, often being large and complicated.

This makes it rather difficult to do certain aspects of web programming well. You are constantly switching between tools and languages, as well as coding paradigms, in order to build a web app in full. You'll be writing HTML, CSS, and Javascript on the client side, each with its own peculiarities. On the server side you'll probably have settled on one language with its own very different varieties of coding style and patterns. Some, like Ruby on Rails, are their own unique brand of language that makes you work both in the DSL (Rails in this case) and the parent language (Ruby here). Template engines often will do the same thing, such as in the case of Django.

It's pretty obvious that having to juggle all these tools places a fairly large burden on the coder. Much to their credit, it's not difficult to work in any of these languages, but to work in them at a high level becomes more difficult the deeper and wider the software stack reaches. You get this a bit in systems programming, juggling C/C++ with a build system and a scripting language, but that's usually it. You can get that number of moving parts just on the client side of the web with HTML, CSS, and Javascript.

Something interesting that seems to be happening is that people are moving to decrease this cognitive burden. One good example is the Google Web Toolkit which lets you write all your AJAXy client-side stuff in Java, and let it get compiled in to Javascript. That way you cut the languages you have to work in. A similar concept is behind Microsoft allowing Ruby (and Python, if I've heard correctly) in Silverlight. Alternately, you can bring Javascript (back) to the server side, which is the motivation behind Helma and Rhino on Rails (the latter of which I hope sees the light of day).

Personally, I'm rooting for Javascript to not become an assembly language, but to take over the server side again. It's a capable and powerful language (much better than Java in my opinion), and we're collectively leveraging it very poorly. Rhino is interesting and has enormous potential, but it needs library binds in the worst way. Currently it's basically using Javascript to write Java, which is rather atrocious (COBOL in any language, etc) but with some Javascript-style wrappers around the Java classes it could be phenomenal. Alternately, there's Spidermonkey, which could be wrapped in a more capable shell with a good FFI, and we could easily have wrappers to our favorite Free Software libraries. This project seems far along here, but it's currently very windows-centric.

There's a lot of potential here though. Unifying the development language for both web and system apps would benefit the Free Software desktop, and give us the ability to better integrate our stuff with the web. One of the best things about Free Software is that it dropped the barrier to entry in software development. I think we can repeat that success again here.

Joey Hess: dbus reconnection

Julien, dbus and hal make handling server reconnection correctly Hard, or impossible, in my limited experience. This information is what I can remember based on git logs from when I beat my brains against this particular wall for a few days. You'd think you could check for an exception after calling libhal_device_get*. Maybe org.freedesktop.dbus.error.disconnected. But this doesn't work if dbus is down. Instead the function, IIRC, crashes. So instead, it seems you have to check dbus_connection_get_is_connected before every attempt to use hal, and reconnect if it's down. But this means you've introduced a race condition. Also, once you notice the connection is down, it'd make sense to tell hal to close the connection to dbus. Except, if dbus is down, hal crashes instead, IIRC. So there's no way to close an old hal connection in this case; the best thing to do seems to be to leave it open, and open a new one. So now your program is not just racey, but it's leaking. The dbus people claim dbus is never supposed to be restarted. Ever. In other words: dbus/hal is badly designed crap. Do not use.

MJ Ray: Bridgwater College Computing Advisory Panel

Probably due to some mistake or just an excess of randomness in the world, our webmaster cooperative has been invited to Bridgwater College's Computing Advisory Panel meeting next week and it looks like I'm going. The interesting agenda items are:- 5. Current Curriculum offer 6. Computing and ICT Sector Developments - Education and Training - ICT Diplomas - Distance Learning - Specialist training / apprenticeships 7. Meeting Employer Needs I've asked some nearby cooperatives and social enterprises for comments and I'll probably highlight things like Linux opens London's Oyster and Specsavers sees clear benefits in open source when arguing for more free software use and emphasising "worker needs" rather than "employer needs", but please send me any other suggestions in a comment on this blog post or an email.

6 June 2008

Enrico Zini: Italian weather agencies

Italian weather agencies Most Italian regions have agencies providing good regional weather forecast. However, I could not find a useful national index of all their weather forecast pages. So I made one, tweaking an image map found on wikipedia. Abruzzo Basilicata Calabria Campania Emilia-Romagna Friuli-Venezia Giulia Lazio Liguria Lombardia Marche Molise Piemonte Puglia Sardegna Sicilia Toscana Trentino-Alto Adige Umbria Valle d'Aosta Veneto Italia suddivisa per regioni I only filled in those regions that I was checking to organise a specific trip. With time, if I'll keep using this map I'll add more regions. Of course, if you now of a weather forecast page of a regional, public funded agency that is missing here, send me an e-mail.

Adrian von Bidder: Blocking outgoing port 25

For once, the the action of an otherwise stupid ISP, namely blocking port 25 outgoing, was probably the right thing to do. Yes, in comcasts case, it apparently was communicated badly, and of course you have to be able to get it unblocked easily, but I think if all big providers would either block 25 outgoing alltogether for their consumer offerings or would block it for hosts they see spamming (pattern: smtp connections to more than 20 hosts within one minute perhaps?) the world would be a better place. OTOH spammers are already reacting: the percentage of spam I'm receiving through regular MXen (as per reverse DNS), including Yahoo and Google, (but not gmx so far, interestingly) is increasing markedly these months.

5 June 2008

Dirk Eddelbuettel: Adventures with Comcast: Part ohbynowIhavelostcount in an ongoing series

Regular readers of this blog (ed: oxymoron alert) may recall tales of woe with our beloved (ha!) cable internet provider such as this; then there are of course minor tales like this or this or this or the other stories on on this page but I am probably forgetting others. Anyway, yesterday's highlight was initiated with a mail, seemingly sent to all customers, informing me that
ACTION REQUIRED: Comcast has determined that your computer(s) have been used to send unsolicited email ("spam"), which is generally an indicator of a virus. For your own protection and that of other Comcast customers, we have taken steps to prevent further transmission of spam from your computer(s).
and the email went on to recommend some Windows anti-spam measures, including a reference to a page I could only open with IE at work and one URL to a page that doesn't exist. Nice. Not. Needless to say, there are now Windows computers sending mail (via Comcast) here (as the lone windows box, my wife's work laptop goes straight to her university webmail). And obviously, they blocked port 25, so no more mail sending from home. So I grumpily logged a compaint having been on hold and in telephony menu hell for fifteen or twenty minutes. I was promised to hear back in 72 hours. Hasn't happened yet, naturally, but we're only half way through... Anyway, to make a long story short and this post constructive: Here is what you do on a Debian or Ubuntu system running exim as your mail transport: And it may pay to check /var/log/exim4/mainlog for any irregularities. Barring those, you should now be sending mail to you smarthost using authenticated transfer over port 587. In the meantime, it looks like they unblocked port 25 at some point today...

Russell Coker: SE Linux Support in GPG

In May 2002 I had an idea for securing access to GNUPG [1]. What I did was to write SE Linux policy to only permit the gpg program to access the secret key (and other files in ~/.gnupg). This meant that the most trivial ways of stealing the secret key would be prevented. However an attacker could still use gpg to encrypt it’s secret key and write the data to some place that is accessible, for example the command “gpg -c --output /tmp/foo.gpg ~/.gnupg/secring.gpg“. So what we needed was for gpg to either refuse to encrypt such files, or to spawn a child process for accessing such files (which could be granted different access to the filesystem). I filed the Debian bug report 146345 [2] requesting this feature. In March upstream added this feature, the Debian package is currently not built with --enable-selinux-support so this feature isn’t enabled yet, but hopefully it will be soon. Incidentally the feature as currently implemented is not really SE Linux specific, it seems to me that there are many potential situations where it could be useful without SE Linux. For example if you were using one of the path-name based MAC systems (which I dislike - see what my friend Joshua Brindle wrote about them for an explanation [3]) then you could gain some benefits from this. A situation where there is even smaller potential for benefit is in the case of an automated system which runs gpg which could allow an attacker to pass bogus commands to it. When exploiting a shell script it might be easier to specify the wrong file to encrypt than to perform more sophisticated attacks. When the feature in question is enabled the command “gpg -c --output /tmp/foo.gpg ~/.gnupg/secring.gpg” will abort with the following error:
gpg: can’t open /root/.gnupg/secring.gpg’: Operation not permitted
gpg: symmetric encryption of /root/.gnupg/secring.gpg’ failed: file open error Of course the command “gpg --export-secret-keys” will abort with the following error:
gpg: exporting secret keys not allowed
gpg: WARNING: nothing exported Now we need to determine the correct way of exporting secret keys and modifying the GPG configuration. It might be best to allow exporting the secret keys when not running SE Linux (or other supported MAC systems), or when running in permissive mode (as in those situations merely copying the files will work). Although we could have an option in gpg.conf for this for the case where we want to prevent shell-script quoting hacks. For editing the gpg.conf file and exporting the secret keys we could have a program similar in concept to crontab(1) which has PAM support to determine when it should perform it’s actions. Also it seems to me that crontab(1) could do with PAM support (I’ve filed Debian bug report 484743 [4] requesting this). Finally one thing that should be noted is that the targeted policy for SE Linux does not restrict GPG (which runs in the unconfined_t domain). Thus most people who use SE Linux at the moment aren’t getting any benefits from such things. This will change eventually.

Joerg Jaspert: FTP assistants

Some days ago I wrote a little mail asking for volunteers for the FTP assistant role. Right now we got 4 people mailing us with some kind of volunteer offer and the same amount of replies talking about total different topics. From those 4 volunteers I think we are doing step two - handing out tasks to check the knowledge of the volunteers with two of them. The other two seem to want to limit themselves too much in what work they want to do. I will look and hand out tasks / reply to the mails somewhere soon, like this Saturday/Sunday. In case you want to volunteer too, please read the mail I linked to, it contains a description of what you would volunteer for and then maybe mail us. Comments: 0

Marc 'Zugschlus' Haber: Serial Console Server for the Poor II

This is the second installment of my article about the Serial Console Server for the Poor. First installment here. The last part of the article having covered the hardware and the udev part creating the device nodes, this part addresses the part of the software that connects the user to the device node. The idea of the software side is to allow users access only to certain serial ports without giving out a shell account on the server itself. Communication between user and the console server should be encrypted (which certainly means ssh), and users should be able to authenticate both with a key and with a password. Serial parameters (baud rate, parity, stop bits etc) should be configured on the console server to keep this possible error source away from the users. For years, I have been thinking about using UUCP’s cu to access the serial port. This time, it’s not going to be used because it offers a shell escape which cannot be turned off. That would give a user shell to the users indirectly, which is not what I want. Minicom seems still to be the most-used application to access a serial port. I have never understood the sense of using a terminal emulator inside a terminal emulator, especially if one has to break the terminal emulator’s habit of trying to initialize a non-existent modem. So I settled on the application that I usually use to access a serial port: ser2net. This is a Linux implementation of Cisco’s “reverse telnet” feature which “connects” a TCP port to a serial port with a given set of parameters. For example,
4016:telnet:600:/dev/USBserial6:38400 8DATABITS NONE 1STOPBIT banner
connects TCP port 4016 with /dev/USBserial6 with an 38400 8n1 parameter set. If you telnet to localhost 4016, you’ll find yourself talking to the device connected to the appropriate serial port. This moves the security risk to the telnet client, which - unfortunately - offers a shell escape function from the telnet command line reachable with the escape character. The only way to remove this is to use the -E command line option, which turns off the escape function completely. This unfortunately excludes the user from cleanly quitting the telnet session, so the only way to get out of a telnet -E is to have the remote side close the serial port (which ain’t happening on a serial console) or to kill the telnet process, for example by closing the carrying ssh session. That’s a turn-off, but one that one can live with. Now, the only challenge left is to have the appropriate telnet client started automatically for the user. I decided on connecting this to the account being connected to, so that ssh USBserial4@hostname will automatically do the right thing. Since password authentication needs to work (optionally), this precludes the use of the command modifier in an authorized_keys file. Another possibility to force a command being executed on login is to set it as the users’ login shell in /etc/passwd. One drawback: The command must not have any parameters, so one needs to pass needed parameters to the program some other way. Additionally, the program must be listed in /etc/shells or it will be silently ignored. My /etc/passwd entries look like
USBserial2:x:1002:1002:USBserial2,,,:/home/USBserial2:/usr/local/sbin/serialconnect-shell
with /usr/local/sbin/serialconnect-shell looking like
#!/bin/bash
set -eu
case “$(id --user --name)” in
  USBserial1) PORT=“2011”;; 
  USBserial2) PORT=“2012”;;
  USBserial3) PORT=“6013”;;
  USBserial4) PORT=“6014”;;
  USBserial5) PORT=“2015”;;
  USBserial6) PORT=“2016”;;
  USBserial7) PORT=“6017”;;
  *) echo “called from unknown account, terminating.”; exit 1;;
esac
telnet -E localhost $PORT
Just for reference, here are the appropriate entries in /etc/ser2net.conf:
2011:telnet:600:/dev/USBserial1:9600 8DATABITS NONE 1STOPBIT banner
2012:telnet:600:/dev/USBserial2:9600 8DATABITS NONE 1STOPBIT banner
6013:telnet:600:/dev/USBserial3:115200 8DATABITS NONE 1STOPBIT banner
6014:telnet:600:/dev/USBserial4:115200 8DATABITS NONE 1STOPBIT banner
2015:telnet:600:/dev/USBserial5:9600 8DATABITS NONE 1STOPBIT banner
2016:telnet:600:/dev/USBserial6:9600 8DATABITS NONE 1STOPBIT banner
6017:telnet:600:/dev/USBserial7:115200 8DATABITS NONE 1STOPBIT banner
If one wants to authenticate for a given serial port with an ssh key, all you need to do is put the appropriate key into the authorized_keys file of the appropriate account, and you’re all set. I do sincerely hope that I didn’t put any blatant security goofs into this setup, but if I did, you’ll tell me in the comments, right? Just one more challenge for my valued readers: The port numbers in my ser2net.conf have a system. Can you explain it to me?

MJ Ray: World Environment Day

Today is World Environment Day 2008 and also Recycle Week in the UK. Locally, our poor recycling record has attracted attention. The main Somerset CC area averages 50% recycling and composting, while North Somerset only does 36%. This will cost us money, as explained under the subtly-titled local newspaper article 'REDUCE WASTE NOW OR FACE A 12M FINE' It's very annoying to read a Conservative councillor say
"The message we really have to get out to people is that this is their problem too."
We know it's a bloody problem. Have you tried to use your stupid recycling system? Criticism of the stupid collections is strangely absent from the local Lib-Dem's Mid table place shouldn't be good enough when it comes to recycling (Mike Bell) and I can't even find recycling mentioned on local Labour sites - I think those two groups may have been in coalition when the stupid system was introduced. It's left to local residents to explain the problem. Local waste collections have been simplified recently but it still seems bloody awkward, taking different types of waste to different places. The most recent edition of the council's North Somerset Life magazine explained that they don't collect plastic bottles from the doorstep because it would add 10 per year to our local tax. I'm damn sure it already costs me more than that to store them and ferry them into town over a year. The only people rewarded by saving that 10 seem to be those who live near the town centre collection point, drive to that Tesco anyway, or don't recycle plastics. Why reward them? Speaking of Tesco... those national and local favourites have applied to build Two more Tesco stores for Weston [The Weston Mercury] including one directly opposite another supermarket. The application number is 08/P/1230/F if you want to respond. The planning system seems my main chance to protect my local environment at the moment. Next Monday evening at 7.30pm, 08/P/1070/F - Erection of 5 storey building to provide 14 flats, restaurant and office with basement parking following demolition of restaurant will be considered by a Kewstoke village council planning meeting in the village hall. As I understand it, the public may make statements at the start of the meeting and 2 Kewstoke Road is currently the Castle.

4 June 2008

Russell Coker: The Date Command and Seconds Since 1970-01-01

The man page for the date command says that the %s option will give “seconds since 1970-01-01 00:00:00 UTC“. I had expected that everything that date did would give output in my time zone unless I requested otherwise.. But it seems that in this case the result is in UTC, and the same seems to be also true for most programs that log dates with the number of seconds. In a quick google search for how to use a shell script to convert from the number of seconds since 1970-01-01 00:00:00 UTC to a more human readable format the only remotely useful result I found was the command date -d "1970-01-01 1212642879 sec", which in my timezone gives an error of ten hours (at the moment - it would give eleven hours in summer). The correct method is date -d "1970-01-01 1212642879 sec utc", you can verify this with the command date -d "1970-01-01 $(date +%s) sec utc" (which should give the same result as date).

John Goerzen: Camping

Terah, Jacob, and I went camping last weekend. Terah had asked me what I wanted for Father's Day. I thought for just a second, and said "camping!" She looked like she regretted asking. But it has been a year since our last camping trip, so off we went.

We went to Marion County Park and Lake, a nice park built by FDR's CCC program in the 1930s. It is on the National Register of Historic Places thanks to all the stone buildings, bridges, etc. that were built back then and still survive.

The reason we like it is because one side of the lake has the park office, rentable meeting houses, RV hookups, a swimming area, and really all the things you expect at a park like this (albeit on a small scale). The other side of the lake has gravel roads and fire rings. No power, no running water, but the occasional stone outhouse every half mile or so. Which means that the RV owners are not going to want to spend the night on that side of the lake. So, unlike far too many parks, it is possible to pitch a tent a good distance from the RVs. It's so annoying to go to camping and find it to be noisier than home because of all the TVs and generators running.

Jacob wasn't so sure about the first evening, but he was having a blast all day Saturday. His favorite thing was the campfire. He called it "fie" (rhymes with "buy"). He watched me gathering up brush and preparing the fire, carefully placing the small sticks first, then the big ones. So he picked up a small stick, and carefully laid it inside the fire ring, too. Then he'd watch me light the fire, or blow on some embers, and he'd blow on it, too. Fffffffffffffff! As hard as he could. At one point, I was kneeling next to the fire ring, inspecting the kindling. Terah noticed Jacob kneeling next to the fire ring on the other side, with the exact same posture and expression as I had. It was a perfect Father's Day, I think.

Once the fire got going, he'd walk up towards it, say "HA!" (hot), and then run away. Educational, this camping business. He now knows what "hot" is all about.

Jacob also loved the lake. We would walk the few feet down to the beach, and he'd (holding on to one of us) walk just far enough into it to get his feet covered by the water, then pick up sand and throw it into the water to watch it splash. Or, he'd point at a boat ("bope") in the water ("wah") going past, all excited -- Bope! Bope!!! BOPE!!!

One of my favorite things while camping is sitting outside and watch the sun set. Terah and I did that while munching on banana boats we cooked in the fire (a banana and chocolate concoction that you sort of melt in tinfoil). Or we could sit in the shade on the ground and just relax and enjoy the scenery.

Terah didn't say that she enjoyed camping, but she did agree that there were good times and we could come back. Woohoo, I guess.

We're not really camping pros, and we learned a few things. One is that it would be nice to not have three meals in a day that require a fire. I'm fine with eating fruit, canned stuff, and other no-cooking-needed stuff when camping, but Terah likes more traditional food. And that's fine, and we had some great stuff to eat, but building fires is hard and hot work.

Over the first few days after we got home, Jacob came up to me and said, looking rather sad, "Fie? Fie?" I said, "Jacob, we don't have a fire here. There is no fire here." He would look so sad, and just repeat to himself for a few minutes, "No fie. No fie. No fie." So I asked him if I should build a little fire. "Yeah!" So I got a match and lit a candle. Oh, was that exciting, and almost as soon as it showed up, he tried to blow on it. By today he has learned how to blow out a candle.

A great Father's Day for sure, but we hadn't really tried to sow the seeds of a fascination with fire on the trip.

Bastian Venthur: actual file size does not match size in .changes

Beh! Looks like it is currently not possible to use debsign from etch to sign packages built in a sid cowbuilder environment. Update: Adam just pointed out that this was already announced on debian-devel-announce. He proposed to get an updated version of devscripts from etch-backports. I wonder if we shouldn’t provide a fixed version of devscripts in etch officially, just in case someone who maintains packages actually *erm* uses it.

MJ Ray: Hosting Blogs on Multiple Servers

[Mast]
(Is this a network?) Terry Lane asked:

"Do you know of any reason why someone would suggest we consider placing blogs on more than one server? I think his main concern would be related to SEO and - I'm assuming here - Google."
There are some small reasons, mainly about various sorts of reliability: what if the server catches fire, what if someone filters out adverts from the server, what if the server gets labelled as a spammer or splogger, and so on... but I believe they're outweighed by ease of management and having all your site on one server. If the search engines label your IP address as a spammer, you can get another IP address as a short-term fix, but in general, the search engines are always a major threat to a blog-based business. If they label one server as a spammer, I think it would take the guys at google or whatever about 0.1 seconds to spot the link to another server. The best tactic is to avoid looking like a spam source in the first place... I guess if you're hosting several blogs on shared servers, like I do, splitting your blogs across several servers is a good idea for those reasons, which is part of why I do it... In any case, make sure you download backups in case your hosting goes like this:- The Planet (EV1) Data Center Catches Fire - 9000 Servers Offline If a blog becomes really popular, the usual tactics of mirroring and distributed load-balanced hosting can be used, but I don't think that was the question here. Even after all those, I can't think of any real killer reasons to split a blog across multiple servers if you're on your own dedicated server already. Have I missed a reason?

Biella Coleman: Museum of Intellectual Property

Check out this new website the Museum of Intellectual Property, which provides some nice case studies and visuals for the study/critique of IP law. It also bears a slightly different IP notice, the Konomark, which is not a license, but as its web page explains, a signal.

Next.

Previous.