# 2010-05-02 Bicycles

Thinking of buying two bikes. For weekends and bike holidays, alpine excursions and local singletrails: a light mountain bike. I looked at some web pages and realized that I missed twenty years of bike development. I need to talk to people.

Within the city I’d like something simple. I was frustrated when I realized that I was unable to fix my gearshift on the old bike that recently got stolen. I saw a friend of mine owns a single gear bike. It looks light & mechanically super simple. I like it.

Tags:

Comments on 2010-05-02 Bicycles

Reminded me of jwz’s advice. Written in his inimitable style. I’ve started biking to work 3 times a week. It’s surprisingly efficient.

AlokSingh 2010-05-03 02:27 UTC

Single gear bikes in Zurich still strike me as nuts. I have a maintenance free seven gear shift - not a Rohloff, but still absolutely necessary IMHO. Even with that I fail the Weinberg, I must admit.

Harald Wagener 2010-05-03 05:30 UTC

Agreed. Try going over Duttweilerbrücke without gears…

– Marco 2010-05-03 06:27 UTC

I think I got around most of Zurich on my old mountain bike using the top two gears, and may a third to get up to speed. But then again I live, bathe, work, and walk down by the river.

AlexSchroeder 2010-05-03 11:04 UTC

I went to The Bike Store in Altstetten and bought a Trek FX 7.5 (20”) with a humongous number of gears. I’m going to regret it, but it was a nice 20% off for being an older model.

AlexSchroeder 2010-05-03 23:03 UTC

My bike was stolen yesterday evening.

That was short. :wry: :groan:

AlexSchroeder 2010-05-07 08:12 UTC

GRIM

PhillipReay 2010-05-08 16:22 UTC

I was ready to buy a single-gear bike, but today I got an offer for a free bike from friend. Now that’s cool!

AlexSchroeder 2010-05-08 18:37 UTC

WTF! Stolen in 3 days?!? Don’t forget to buy a lock that is almost as expensive as the bike ;) If you like simpel bikes, simpel.ch might be worth a look too.

– 2ni 2010-05-11 13:48 UTC

Hm, die aktuelle Serie wirkt aber ordentlich teuer! Vielleicht ist mein Problem auch, dass ich nur auf Grund ihres online Kataloges kein Velo kaufen könnte. Ohne Probefahren? Da müsste ich vorher jemanden kennen, der so ein Velo hat. Die Beschreibung des 14 Gang Rohloff Speedhub finde ich spannend. Habe also etwas weiter geklickt und ihren “Radgeber” mal durchgeklickt:

 frischluft sport ausgerüstet optimist Alfine wegwärts tour Herren CHF 1680.00 CHF 2480.00 CHF 3480.00

Ich suche im Moment einfach ein Stadtvelo für ins Geschäft und an den See fahren. (Gleichzeitig suchen Claudia und ich noch ein Zweitvelo für Velofahren auf organisierten Touren, zB. diesen Herbst. Wir wollen mit ihrem Vater um eine Insel fahren. Das wird dann schon ordentlich kosten.)

Ein Kollege hat ein cooles Eingangvelo von Velotto Spezialanfertigungen; sowas würde mir noch gefallen.

AlexSchroeder 2010-05-11 14:47 UTC

Add Comment

# 2010-05-04 Säkularisierung und Fundamentalismus

Im Le Monde diplomatique vom März 2010 las ich einen ausgezeichneten Artikel zum Thema Religion – Heilige Einfalt: Moderne, Säkularisierung und die Rückkehr des Religiösen von Olivier Roy. Seine These: Die Religion löst sich im Zug von Globalisierung und Säkularisierung vom politischen und kulturellen Hintergrund und erfindet sich neu. Dies erklärt, warum fanatische Gruppen vermehrt Zulauf haben, mehr Leute nach Rom pilgern, aber weniger Leute sich als gläubig bezeichnen, weniger sich zum Priester weihen lassen, warum die modernen Sekten und Freikirschen mehr Zulauf als orthodoxe Kirchen haben, und so weiter. Ausgezeichnet.

(Too bad I didn’t find an English translation of this article.)

Tags:

Add Comment

# 2010-05-06 Neue Sprüche

Vor einiger Zeit las ich B/X Magic-User Spellbooks und beschloss, D&D Magie irgendwie aufzupeppen. Eine Weile lang hatten wir in unserem Alder King Spiel nur einen Hexenmeister dabei, aber unterdessen haben wir einen Barden und zwei Magier, und ich habe das Gefühl, die Sache wird klarer.

Angefangen hat alles mit Marcos Clown Sprüchen. Sprüche selber machen!

Für die Schattenelfenzauberin habe ich deswegen Justin Alexanders Spells of Light and Darkness: The Art of the Flame and Void gekauft. Die Sprüche sind bis jetzt leider noch nicht so oft verwendet worden. Vielleicht müsste man die noch etwas aufpeppen.

Dann hat die Gruppe das Buch der Weissen Katze gefunden.

Und weil der Goblinbarde sich im Spiel für die Hexe Grysella interessiert und einige Zeit bei ihr verbracht hat, beschloss ich ein paar neue Verwandlungssprüche der Grysella zu erfinden:

• Grysellas mächtige Männlichkeit. Der Zauberer verwandelt sich für einen Tag in einen virilen, männlichen Humanoiden mittlerer Grösse (Menschen, Elfen, Orks, Hobgoblins, Echsenmenschen).
• Grysellas sexuelle Anziehung. Nach dem freiwilligen Beischlaf kann der Partner für einen Tag gefügig gemacht werden und behandelt die Zauberwirkende wie seinen besten Freund. Dem Opfer ist es wärend der Dauer des Zaubers nicht möglich, sich zu konzentrieren.
• Grysellas Froschatem. Verleiht Schwimmhäute, Sprungkraft (+10), und Schwimmfähigkeit eines Frosches (30 Fuss), verlangt aber vor Sprüngen ein lautes Quaken.
• Grysellas Aalform. Grösse bleibt, Unterwasseratmung, und Schwimmgeschwindigkeit 30 Fuss. Bissangriff der gleichviel Schaden macht wie ein Dolch der entsprechenden Grösse.
• Grysellas ewiger Kuss. Nach einem innigen Kuss weiss die Zauberwirkende immer, wo sich das Opfer ungefähr befindet (Richtung, Entfernung, auf 10% genau) und in welcher Stimmung sich das Opfer befindet.
• Grysellas geheimes Wissen. Mit einer sanften Berührung kann die Zauberwirkende dem Opfer geheimes Wissen einpflanzen, von dem das Opfer nichts weiss, bis ein von der Zauberwirkenden festgelegter Auslöser dem Opfer das geheime Wissen offenbart.

Etwas mehr Details im PDF.

Tags:

Comments on 2010-05-06 Neue Sprüche

Für die D&D 3.5 Runde wurde zudem beschlossen:

• Grysellas mächtige Männlichkeit: Wie bei Polymorph kann man die veränderten physischen Attribute übernehmen.
• Grysellas sexuelle Anziehung: Für Barden auf Stufe 2, da so charmant.
• Grysellas ewiger Kuss: Für Barden auf Stufe 2, da so charmant.

AlexSchroeder 2010-06-15 22:55 UTC

Add Comment

# 2010-05-10 Javascript

I still haven’t learnt Javascript. Right now I’m trying to integrate svg-edit and Oddmuse. This requires some Javascript voodoo that escapes me.

If you upload a SVG file to http://www.emacswiki.org/test/SVG_Test, you’ll be able to look at it. I’m using an iframe to do that.

If you then click on Edit this page and then on Edit image in the browser, you’ll get the SVG editor.

What I’m lacking is loading and saving the image!

If you look around the svg-edit project’s pages, you’ll note example code like the following:

    svgEditor.loadFromString('<svg>...</svg>');

What I don’t understand is where this code runs and how svgEditor is set.

If I simply add the following to the top of the page, inside the header, then Firebug will tell me that the svgEditor object does not exist.

    <script type="text/javascript">
svgEditor.loadFromString('<svg>...</svg>');
</script>

What now? Is this a variable “inside” the iframe? Is this something I need to initialize by calling a function? Which one?

Update: Perhaps I’m running into some cross-site scripting protection. The site runs on www.emacswiki.org, the SVG editor runs on svg-edit.googlecode.com. Using Firebug, I run document.getElementsByName('svgEditor')[0].getSVGDocument().setUserData('fd') and get an error message.

Tags:

Comments on 2010-05-10 Javascript

This site is great!

– Kate 2010-05-13 10:38 UTC

It looks like you’re not including the javascript library that provides the SVG editing functions.

Harald 2010-05-13 12:32 UTC

Hah, I’m seeing the light. Copying the script over to localhost has fixed this. I’ve come a long way. Now I need MIME encoding in Javascript, and probably a cool Save dialog – or a little rewrite.

AlexSchroeder 2010-05-13 20:41 UTC

AlexSchroeder 2010-05-13 23:20 UTC

Add Comment

# 2010-05-12 Traveller Bureaucracy

I’m spending about an hour after each Traveller session (itself usually 2½h) updating our Kaylash campaign wiki with notes on money made for trading, money spent for repairs, maintenance, salaries, etc. It’s a lot of bureaucracy. [1]

Unlike D&D 3+ where players can spend a lot of time away from the table thinking about their character and tweaking it, Traveller seems to be the game where players can spend a lot of time away from the table thinking about their ship’s finances.

I’m not sure I like it. Right now we’ve been rotating game masters, so I’ve been recharging my creative energies, but once I return to running games, I might not feel like updating the site. My players don’t seem too interested in it, and yet the rules afford spending a lot of time on it – just like D&D 3+ rules encourage players to spend time tweaking their characters.

You’re not required to do it, but the rules invite you to do it.

Tags:

Comments on 2010-05-12 Traveller Bureaucracy

I think your ship needs an expensive malfunction…

BeRKA 2010-05-13 06:34 UTC

The ship just had an expensive malfunction with a couple botched impromptu repair attempts.

Alex, when you take over as GM, I’ll be happy to have a look at the finance side again.

Harald 2010-05-13 12:31 UTC

Tim’s Give them a ship suggests that finding an excuse to give the party a ship with no mortage payments to be made would free the party to more adventurous stuff.

AlexSchroeder 2010-06-08 15:51 UTC

Add Comment

# 2010-05-12 iPad Alternative

I’ve enjoyed my iPhone as an always-on portable web browser. It hasn’t worked so well for reading books. Would the iPad work?

• It looks nice. :ok:
• I like my iPhone; the iPad is similar. :ok:
• The iPhone I got was a present from my employer. I’ll have to buy the iPad myself. :sucks:
• Wifi, 3G, 64GB – CHF 1,049.00!? That’s expensive for a locked-down device. :sucks:
• I think using 3G with the iPad costs extra and isn’t included in my iPhone plan. :sucks:

I guess my problem is that the iPad is bigger and starts to look and cost like a general purpose computer. Suddenly I feel like I should be enjoying more rights.

What are my alternatives? What compromises do I need to make?

Tags:

Comments on 2010-05-12 iPad Alternative

Well, there is the ZenPad – it’s much cheaper and comes with open source operating system, but it’s also much smaller, so probably can’t be used for all the things the iPad would work.

Myself, I recently got me an ebook reader. It’s about the size of the iPad, has WiFi, stylus-based touchscreen, e-ink display. It’s also linux-based and the company even gives out a developer’s toolkit (C++ unfortunately). Again, it’s not an iPad. It’s better in some ways – the battery life is good because of e-ink, you can connect additional memory and even some USB devices (like 3G modem), I’m not afraid to use it in public places. It’s also worse in that there is no software for it except for the ebook/image viewer, simple graphical program, web browser and a calculator, plus the e-ink display is slow to refresh, so the interactions are far from fluent.

I guess it really boils down to what you really need from it.

RadomirDopieralski 2010-05-13 05:46 UTC

Well if you really just want to read books, get an e-ink device. There are quite a few available now and most of them are more open and less expensive than the iPad.

Andreas Gohr 2010-05-13 06:38 UTC

As you know, I own an iPad and use it in places where my phone is to small and my laptop is too big. I have no issues with it being the non-3G version as I can usually find WiFi, which is good enough. But I also got it from my employer and did not need to pay for it.

As previous posters said; if you only want to use it to read books, you might be better off with a Kindle or other e-ink based reader. Or you exercise some patience and wait for future contenders to the iPad.

Harald 2010-05-13 12:29 UTC

I’ve been reading a lot of blogs using Google Reader on my iPhone while on the train. That’s where I got the idea of 3G access. So it’s not just eBooks that I want to read on my machine. Today I got a call back from Orange regarding 3G access using an iPad. You need to get a micro-SIM, which costs about CHF 10 to buy, and CHF 5 per day you use it.

This will never do.

I think that for the moment I’ll stick to my phone.

AlexSchroeder 2010-05-14 10:22 UTC

Apparently Evil Steve also said No to tethering iPhone to iPad. Grrrr.

AlexSchroeder 2010-05-14 20:53 UTC

Maybe hope is in the air: http://twitter.com/hal1974/status/14163815367 (Telefonica so far, but who knows…). A friend of mine working at Sunrise told me that just using a second SIM should work (sharing the same subscription). It’s the speak channel which causes problems only. Will know soon more…

2ni 2010-05-19 21:24 UTC

Add Comment

# 2010-05-16 The Sound of Traveller

What music would you use for your Traveller?

• I tried Star Wars and it was too weird.
• I tried the German Captain Future soundtrack by Christian Bruhn and it worked ok.
• GM Harald used Macross it worked just fine.
• More Jazz? I have a small number of so-called Science Fiction Jazz CDs. I no longer like the music that much; I wonder whether it would work for Traveller.
• Maybe Ghost in the Shell has enough weirdness, Jazz, and Asian gibberish we don’t understand to work as a background? It would require better preparation.
• Vangelis’ Bladerunner soundtrack?
• *Cowboy Bebop*? Perhaps the sound of the future is not technoid after all.

I’ve seen DM Peter a Computer RPG game soundtrack for an entire campaign. There was our intro theme, our combat theme, and a small number of selected tracks for selected scenes. Perhaps picking a small number (three?) of tracks per session, and another small selection (two?) tracks per campaign would work?

Tags:

Comments on 2010-05-16 The Sound of Traveller

Cowboy Bebob is actually what I would be going for in terms of style, also the soundtrack of Firefly. Both are kind of specific and might be a bit too weird in all situations, so basically I would go for some bluesy/jazzy feeling in city/tech surroundings and for country sounding music (maybe only instrumental) whenever you touch the wilderness (and with that I mean underdeveloped planets and stuff. The soundtrack of Deadwood comes to my mind for that.

Also: have you looked into Christopher Franke’s Perry Rhodan “soundtrack” and the work he did for Babylon 5? Might be something.

And for more spacy feelings: why not put on some of the more experimental Prog Rock things. A few songs by Pink Floyd, Yes or Jethro Tull might work wonders. Although, that might give a very 70s-ish style of a soundtrack

G. Neuner 2010-05-17 00:38 UTC

Good point. One of the reasons I think a retro soundtrack would work is that Traveller is in a way a Retro Future. We would get rid of all the William Gibson, Bruce Sterling, Charles Stross influences.

Perry Rhodan… Damn it, I was subscribed for a while!

One problem I have with the prog rock is the lyrics. If people start singing in the background I cannot help but listen. “Mother do you think they’ll drop the bomb?” I must avoid that.

Deadwood & Firefly, two shows I haven’t seen, yet.

Maybe I’ll start with a small collection of Jazz for cities and build it from there.

AlexSchroeder 2010-05-17 08:18 UTC

Me, I recommend Philip Glass. For moderate pace, use something from Glassworks: http://www.youtube.com/watch?v=imbwn6iVryQ

For driving fast, there is NOTHING like The Photographer http://www.youtube.com/watch?v=f5t2SRCjLcs

– DanielMacKay 2010-05-17 11:35 UTC

I actually had a mix of different styles of Music for different parts of the game:

• For the visit to the Drug Baron’s Den I used Music from the Diva OST, Macross Plus OST and Gotan Project (all more quiet stuff with piano and/or female singers)
• For the space drift stuff, I had a mix of Swod/Gehen, Amon Tobin, Gotan, some more orchestral pieces from Diva and a smaller selection from the Macross Plus OST – almost ephemeral, ambient at times
• For possible action scenes, I had The Tea Party, some more Amon Tobin, Diva, the Seventh Sign OST and again a smaller selection from the Macross Plus OST - more upbeat and loud stuff.
• for tension parts like the second space walk after the explosion, I had more Seventh Sign, other parts from Diva and Macross Plus - muted, choral parts

For next wednesday’s game, I’m still trying to find the right music, but I have some ideas. For the high king of Axaze I think brass heavy classical music may be good, with a dash of John Zorn for when the shit hits the fan. And then there are some other groups that deserve their own sound scape (without spoiling too much). Btw, I do this less for the game and more for me to have aural cues as to what kind of mood I want to convey. I hope it works.

Harald Wagener 2010-05-17 13:09 UTC

Add Comment

# 2010-05-20 Neotopia

I was browsing Concept Ships and saw the ships by Gergely Buttinger and some of the cute ships reminded me of Novotopia, a comic by Rod Espinosa. I only have volume 1. I think I want the other three volumes as well. And Amazon doesn’t carry them. When I look at the Arctic Press online shop I can’t order the collected issues. Only single issues.

The German publisher Eidolon has only published the first volume. Want! More!

Tags:

Add Comment

# 2010-05-20 Updated Traveller Mapping

My SVG Mapper for Traveller got a bit better regarding communication routes (at least compared to last time).

It uses a two-step process:

1. it connects all the systems with a class A starport, a naval base, or an imperial consulate that are one or two parsecs from each other
2. any system with an amber or red travel code will eliminate all connections except the ones to the best and closest starport

I’m still working on the trade routes. At the moment it looks way too busy, so I’m trying to think of an elimination step that will get rid of some of them again. Anyway, I have some working code, but it needs some improvement before I’ll deploy.

I also fixed the spinward/trailing labels. I had them confused!

Note for the curious: If you check the link you’ll also find a source link at the bottom. It’s Free Software. Enjoy!

Update: Trade routes now added!

1. considering only systems that offer fuel: starport A-D, gas giant, or Wa trade code
2. connecting trade codes In or Ht with As, De, IC, or NI within 4 parsecs using a jump-2 route
3. connecting trade codes Hi or Ri with Ag, Ga, or Wa within 4 parsecs using a jump-2 route
4. but in the end, when I have the trade graph (which is part of the SVG but invisible in case you want to look at it using Inkscape), I use Kruskal's algorithm to create a minimal spanning tree based on the subset of legal trade routes thanks to a suggestion by Joshua Bell

Later: I suspect that there are still bugs in the system. It generates an unpopular trade route between Labeveri and Sogeeran, but as far as I can tell, there is no reason for it to exist. Must debug… Hm… Nope. Everything is as it should be. If you check the debug output (there’s a new checkbox) you’ll find that the system participates in other trade-routes as well:

• Inedgeus - Biveer - Sogeeran
• Biveer - Sogeeran
• Diare - Aanbi - Sogeeran
• Reisbeon - Aanbi - Sogeeran
• Lara - Aanbi - Sogeeran
• Lalala - Bemaat - Sogeeran
• Azaxe - Lara - Aanbi - Sogeeran
• Biveer - Sogeeran - Onreon
• Labeveri - Sogeeran - Onreon

Phew!

Tags:

Comments on 2010-05-20 Updated Traveller Mapping

(waves from travellermap.com)

For automated communication route generation I was pondering trying a minimal spanning tree.

Joshua Bell 2010-05-24 05:01 UTC

… just remember that the maximum node length is 4, since XBoats have Jump-4 drives.

Harald Wagener 2010-05-24 09:48 UTC

Traveller Map is the best!

Thanks for the excellent suggestion! I’m still calculating the trade routes according to the rules:

1. considering only systems that offer fuel: starport A-D, gas giant, or Wa trade code
2. connecting trade codes In or Ht with As, De, IC, or NI within 4 parsecs using a jump-2 route
3. connecting trade codes Hi or Ri with Ag, Ga, or Wa within 4 parsecs using a jump-2 route
4. but in the end, when I have the trade graph, I use Kruskal's algorithm to create a minimal spanning tree based on the subset of legal trade routes

I’m not quite sure whether I like the result, but it’s already good enough to be used, I think.

I can already see the next problems:

1. I’m not happy with the colors I’ve picked. Suggestions?
2. I can’t used dashed lines – assume I have four systems A B C D in a line, A connects to C, B connects to D – the overlapping lines between B and C will result in a mess (not in Inkscape but in Firefox it sucks).
3. Using Bézier curves would be awesome.
4. I added a random button which queries the UWP Generator for a random subsector.
5. I extended the generator such that it accepts a seed value.
6. I extended the mapper such that it adds a link back to the UWP (bottom right corner) if it was randomly generated.
7. I’m not sure I want to start generating Traveller appropriate names [1][2] – I’m still happy with the Elite-like names I’m generating.
8. The generator now also has a button to generate a map.
9. The generator also had a bug which I fixed; that bug led to systems with no starport still having bases.

I announced it on Citizens of the Imperium.

I like the work you have done … I only found one small problem which was you limit the law code to 9 … when in theory it can rise higher than that.

Because the Law Level code is restricted, any worlds with Law higher than 9 just don’t appear on the map. I can see the Regex expression is 0-9 and could be changed to 0-9A-F

All of that aside I think you did a great job

Brennall 2010-05-31 19:50 UTC

Indeed, I looked at the tables on the Imperial Encyclopedia [3][4] and fixed both the UWP Generator and the SVG Mapper for Traveller.

AlexSchroeder 2010-05-31 23:41 UTC

Alex, I was looking at the SVG you generate, and I noticed the special symbols you used for the Gas Giants etc. When I attempted to save the SVG locally and look at them in an editor it replaced the symbols with “?”. Obviously my editor defaulted to the wrong character set, but I am curious what character set you did use which had the emblems in?

Brennall 2010-06-02 12:29 UTC

Its ok .. should have looked further in the extended UTF-8 Character set. Found them now.

Brennall 2010-06-02 12:44 UTC

For future readers looking for help:

 ◉ gas giant 0x25C9 FISHEYE ■ imperial consulate 0x25A0 BLACK SQUARE ☼ TAS 0x263C WHITE SUN WITH RAYS ▲ scout base 0x25B2 BLACK UP-POINTING TRIANGLE ★ navy base 0x2605 BLACK STAR π research base 0x03C0 GREEK SMALL LETTER PI ☠ pirate base 0x2620 SKULL AND CROSSBONES ▮ communication/trade 0x25AE BLACK VERTICAL RECTANGLE

AlexSchroeder 2010-06-02 13:06 UTC

Thanks Alex .. Very helpful

Brennall 2010-06-02 13:36 UTC

I am curious Alex … have considered a method of saving the SVG output from the map ?

Brennall 2010-06-04 13:41 UTC

Uh… What browser are you using? I just hit Ctrl+S and save the SVG file. And since I also have the option of printing to a file, producing a PDF is no problem either.

In fact, I sometimes update the UWP of my campaign, regenerate the SVG map, save it, and use Inkscape to add the spheres of influence we have. The result:

At one point the party caused civil war in a system by dropping a tactical nuke on large part of a government. I then assigned a red zone to the system, which caused the major trade routes to shift. Result:

before after
note the spheres of influence but I forgot them here, hehe

AlexSchroeder 2010-06-04 14:26 UTC

After some quick testing the following results

• Chrome saves the HTM file by default not the SVG.
• IE doesnt show the map and tries to save it only.
• Safari gives the option to save it when doing Save As.
• Firefox gives the option to save it when doing Save As.
• Opera gives the option to save it when doing Save As.

Interesting difference given Chrome and Safari both use Webkit.

I will have to switch over to Firefox from Chrome to get what I want!

I will also have to give Inkscape a try as I haven’t used it yet.

Cheers Alex.

Brennall 2010-06-04 15:03 UTC

Yeah, I <3 Inkscape!

I wasn’t aware that browser reactions varied so much. But then again, I was surprised when I learnt that Firefox was going to support SVG in the first place.

AlexSchroeder 2010-06-04 22:57 UTC

Great work! I love this program.

A few quick questions though…

1) I’m importing my own UWP codes so that I can make my own sub-sector but I can’t seem to get the Amber or Red Zones to show up on my map. I can see them when I do a randomly generated map, but just not my own.

Here is an example of my UWP code: Darkgate 0810 X563401-B Ni G R 124 Ukn

It shows the: Gas Giant, Research Lab,X Spaceport and name (Darkgate) but no red circle. Name

2) What UWP code do I use for asteroid belts (to see the circle in the hex)?

– Mark Merrell 2011-08-03 01:28 UTC

Nevermind, I figured it out. I had extraneous info in my UWP line.

Also, figured out the grey circle is in fact the amber zone.

I learned something today!

Again, thanks for the program!

– Mark Merrell 2011-08-03 01:35 UTC

Heh, excellent. No idea regarding the asteroid belts – those didn’t show up in my Mongoose Traveller book.

AlexSchroeder 2011-08-03 08:26 UTC

Add Comment

# 2010-05-21 Artist Fail

I wanted to add more pictures to my blog. I had hoped this would inspire me to do more drawings. Doodles, whatever!

But no such luck. This sucks!

Maybe if I learnt how to clickly doodle on Brushes, and mail it to a mail filter that posted it automatically. I remember having a setup like that for this blog. That was a long time ago, though.

Add Comment

# 2010-05-23 3.5 Private Sanctuary Still There

As I was going through my list of podcasts that hadn’t updated in ages, I found 3.5 Private Sanctuary. I think a tear started to form, but then I decided to check their website.

Uh… They’re doing ok?

What’s going on?

I discovered that I was subscribed to this feed:

• http://rcjrproductions.com/35ps/index2.php?option=com_podcast&feed=RSS2.0&no_html=1 – which doesn’t work

where as the show is going strong on this feed:

Gah! How did this happen?

Oh well, I’m subscribed once again.

Tags:

Add Comment

# 2010-05-23 Ping Pong

Yes, every now and then I like to spend a Saturday or Sunday morning playing Ping Pong out in the open, on some school yard where they have concrete tables, steel plates instead of a net, the wind is blowing, leaves are on the table, and the holes are in the table.

Notice my awesome victory dance:

Tags:

Comments on 2010-05-23 Ping Pong

Tischtennis hat mir immer gut gefallen. Leider habe ich sehr wenig Gelegenheit gehabt es zu spielen. In Thailand hatten wir einen Tisch im Garten, da erinnere ich mich noch gut. Also nütze die Gelegenheit, aber feiere die Siege nicht so unverschämt!!!>

– Helmut Schroeder 2010-05-23 22:16 UTC

Hehehe, ja, da kann ich mich noch erinnern! Zu meiner Schande muss ich gestehen, dass ich mich vor allem daran erinnere, wie ich dich unbedingt mit scharfen Schmetterbällen besiegen wollte, statt einfach mal den Ball zehn mal über’s Netz zu bringen. Zum Glück bin ich etwas gescheiter geworden.

AlexSchroeder 2010-05-23 23:03 UTC

Kannst du dich noch erinnern, es war auch in Bangkok: Anja hat einmal den Schläger ins Gesicht bekommen (wir hatten zu viert gespielt) und wir fuhren sofort ins Spital. Dort wurde die Narbe (über dem Auge) sofort genaeht. Mir wurde schlecht im Operationssaal beim Zuschauen. Am selben Abend flogen Anja und Stefanie zurück nach Portugal. Es ist alles gut gegangen (anfangs dachte ich das Auge haette etwas abbekommen).

– Helmut Schroeder 2010-05-24 19:15 UTC

Das habe ich völlig verdrängt – kann mich nicht mehr daran erinnern!

AlexSchroeder 2010-05-24 21:40 UTC

Add Comment

# 2010-05-31 Blognapping

For Blogger, using bash, perl, and curl. You need to replace XXX with the magic number you get when you look at the blog’s source. The HTML header will contain a line like the following: <link rel="service.post" type="application/atom+xml" title="..." href="http://www.blogger.com/feeds/XXX/posts/default" /> – this is where you get the number from.

Once you have it:

for i in seq 40; do
start=$(((10#$i-1)*25+1))
curl -o foo-$i.atom "http://www.blogger.com/feeds/XXX/posts/default?start-index=$start&max-results=25"
done

This should get you 40 files called foo-1.atom to foo.40.atom with 25 articles each in your current directory. Delete the ones that don’t contain any results or increase the number if you’re looking at a blog with more than 1000 posts that you’re interested in.

For a Wordpress blog, we try to do the same thing. First, get the atom pages:

for i in seq 100; do
curl -o foo-$i.atom "http://foo.wordpress.com/feed/atom/?paged=$i"
done

This should get you 100 files called foo-1.atom to foo.100.atom in your current directory. Delete the ones that don’t contain any results or increase the number if you’re looking at a blog with more posts.

Now, unless the author has disabled it somehow, the atom feeds already include the complete articles. It’s certainly possible to fetch them all again, but it’s not necessary. Save the following in a Perl script called extract.pl.

#!/usr/bin/perl
use strict;
use XML::LibXML;
undef $/; my$data = <STDIN>;
my $parser = XML::LibXML->new(); my$doc = $parser->parse_string($data);
die $@ if$@;
my $encoding =$doc->actualEncoding();
my $context = XML::LibXML::XPathContext->new($doc);
$context->registerNs('atom', 'http://www.w3.org/2005/Atom'); foreach my$entry ($context->findnodes('//atom:entry')) { my$title = $entry->getChildrenByTagName('title')->[0]->to_literal;$title =~ s!/!_!gi;
$title =~ s!&amp;!&!gi;$title =~ s!&#(\d+);!chr($1)!ge; my$content = $entry->getChildrenByTagName('content')->[0]->to_literal; open(F, ">:raw" .$title . ".html") or die $! . ' ' .$title;
$content = utf8::decode($content);
print F <<EOT;
<html>
<head>
<meta content='text/html; charset=$encoding' http-equiv='Content-Type'/> </head> <body>$content
</body>
</html>
EOT
close F;
}

Run it on the Atom files:

for f in *.atom; do
perl extract.pl < $f done You should end up with a ton of HTML files in your current directory. If that doesn’t work, perhaps the author only has links to the actual articles in their atom files. Here is how to extract the HTML links from these Atom feeds: save the following in a Perl script called url.pl. #!/usr/bin/perl use XML::LibXML; undef$/;
$data = <STDIN>; my$parser = XML::LibXML->new();
my $doc =$parser->parse_string($data); die$@ if $@; my$context = XML::LibXML::XPathContext->new($doc);$context->registerNs('atom', 'http://www.w3.org/2005/Atom');
foreach ($context->findnodes('//atom:entry' . '/atom:link[@rel="alternate"][@type="text/html"]' . '/attribute::href')) { print$_->to_literal() . "\n";
}

Now you can extract all the URLs and fetch them:

for f in *.atom; do
for url in perl url.pl < $f; do curl -O "$url";
done;
done

The use of the -O option assumes that the file names given by the URL will be unique – this is not necessarily true as http://localhost/2010/05/test.html and http://localhost/2010/06/test.html will result in one overwriting the other.

You should end up with a ton of HTML files in your current directory.

This doesn’t get any required extra files like CSS or images, but it might be good enough for a blog backup.

If you want to get the images, here’s a way to extract the image URLs and download them. Save the following as img.pl.

#!/usr/bin/perl
use XML::LibXML;
undef $/;$data = <STDIN>;
# munging
$data =~ s!<colgroup>.*?</colgroup>!!gs;$data =~ s!<class western="">.*?</class>!!gs;
# parsing
my $parser = XML::LibXML->new(); my$doc = $parser->parse_html_string($data);
die $@ if$@;
# extracting
my $context = XML::LibXML::XPathContext->new($doc);
foreach ($context->findnodes('//img/attribute::src[starts-with(.,"http")]')) { print$_->to_literal() . "\n";
}

Use it:

for f in *.html; do
echo "$f"; for img in$(perl img.pl < "$f"); do echo "$img"
curl -s -O "$img" done done Watch out for parser errors! What you’re still lacking is a fixing of all the links in the HTML sources. How about this? Save as img-replace.pl. #!/usr/bin/perl use XML::LibXML; undef$/;
$data = <STDIN>; # munging$data =~ s!<colgroup>.*?</colgroup>!!gs;
$data =~ s!<class western="">.*?</class>!!gs; # parsing my$parser = XML::LibXML->new();
my $doc =$parser->parse_html_string($data); die$@ if $@; # extracting my$context = XML::LibXML::XPathContext->new($doc); for my$attr ($context->findnodes('//img/attribute::src[starts-with(.,"http")]')) { my$url = $attr->getValue();$url =~ s!.*/!!;
$attr->setValue($url);
}
print $doc->toString(); Use: for f in *.html; do echo "$f";
perl img-replace.pl < "$f" > "${f}_"
mv "${f}_" "$f"
done

This seems to work well enough. If you have some HTML files that cannot be parsed, however, this will result in them getting overwritten with an empty file.

Tags:

Comments on 2010-05-31 Blognapping

I’m surprised (and somewhat impressed) that it works for Wordpress blogs too.

Good work!

greywulf 2010-06-01 05:51 UTC

Now that the coding has been done, I need to do actual text assembly. Yikes!

AlexSchroeder 2010-06-01 17:52 UTC

If you’re wondering how to do this… Assume you want to pull a copy of A Hamsterish Hoard of Dungeons and Dragons. Examine the source code and you’ll find a link to the atom feed within blogger. This is important, because it’ll provide us with the blog Id! In this case:

<link rel="alternate" type="application/atom+xml" title="A Hamsterish Hoard of Dungeons and Dragons - Atom" href="http://hamsterhoard.blogspot.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="A Hamsterish Hoard of Dungeons and Dragons - RSS" href="http://hamsterhoard.blogspot.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="A Hamsterish Hoard of Dungeons and Dragons - Atom" href="http://www.blogger.com/feeds/5373792969086619654/posts/default" /> ← that’s the one we’re looking for!

Start with a small set: the last 100 entries:

for i in seq 4; do
start=$((($i-1)*25+1))
curl -o taichara-$i.atom "http://www.blogger.com/feeds/5373792969086619654/posts/default?start-index=$start&amp;amp;max-results=25"
done

Save it in a script such as download-atom.sh and run it using bash download-atom.sh. You’ll end up with the files taichara-1.atom taichara-2.atom taichara-3.atom taichara-4.atom.

Now take the Perl script from the main page and save it as url.pl. It will extract the page URLs from the Atom files.

for f in *.atom; do
for p in perl url.pl &lt; $f; do wget$p
done
done

Once you’ve verified it, you can fetch more Atom pages.

AlexSchroeder 2011-11-16 19:53 UTC

Add Comment

# 2010-05 Book Club

When: May 19

Where: Aquarium

Apparently some of the best travel writing around. Those who like could also read the original French “Chronique japonaise”. It’s quite a small book of around 200 pages. [1]

Also on Wikipedia: Nicolas Bouvier.

Supporters: Karina, Alex, Uli, Kirsten, Elisa

Tags: BookClub

Add Comment