summaryrefslogtreecommitdiff
path: root/msg
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2011-05-02 01:18:31 +0200
committerJonas Smedegaard <dr@jones.dk>2011-05-02 01:18:31 +0200
commit610799bc2c2365a1bd2afba4ae2c11c1acb613b1 (patch)
tree46bd8e49fe898372835836e590dcc80b785f4589 /msg
parent4105fd6355caf520d87e9b6efa71c8d9cb5f9e6a (diff)
Add initial msg pages.
Diffstat (limited to 'msg')
-rw-r--r--msg/gateway.da.po378
-rw-r--r--msg/gateway.mdwn145
2 files changed, 523 insertions, 0 deletions
diff --git a/msg/gateway.da.po b/msg/gateway.da.po
new file mode 100644
index 0000000..fc96bfd
--- /dev/null
+++ b/msg/gateway.da.po
@@ -0,0 +1,378 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2011-05-02 01:06+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: Title #
+#, no-wrap
+msgid "Building a remote-control for real cars"
+msgstr "Bygger en fjernbetjening til rigtige biler"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta date=\"2011-05-01\"]]\n"
+msgstr "[[!meta date=\"2011-05-01\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!tag debian msg blog editorial]]\n"
+msgstr "[[!tag debian msg blog editorial]]\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "SMS is used to lock car doors"
+msgstr "SMS bruges til at låse bildørene"
+
+#. type: Plain text
+msgid ""
+"[Copenhagen Carpool][] soon receive a new batch of electric cars. The new "
+"cars will contain a cellphone tied to the door locks, to only let into the "
+"car the member who booked its current timeslot."
+msgstr ""
+"[Københavns Delebiler][] modtager snart et nyt parti elbiler. De nye biler "
+"indeholder en mobiltelefon knyttet til dørlåsen, så den kun lukker medlemmer "
+"ind der har reserveret tid nu."
+
+#. type: Plain text
+msgid ""
+"I am setting up the system to connect the cars with their booking calendar."
+msgstr ""
+"Jeg sætter systemet op som forbinder bilerne med deres reservationskalender."
+
+#. type: Plain text
+msgid "The general idea is to..."
+msgstr "Overordnet er ideen at..."
+
+#. type: Bullet: ' 1. '
+msgid "Connect a standard cellphone to a computer."
+msgstr "Forbinde en normal mobiltelefon til en computer."
+
+#. type: Bullet: ' 1. '
+msgid "Forward sms messages received on the phone to the calendar."
+msgstr "Overføre sms beskeder modtaget på telefonen til kalenderen."
+
+#. type: Bullet: ' 1. '
+msgid "Send messages from the calendar through the phone."
+msgstr "Sende beskeder fra kalenderen gennem telefonen."
+
+#. type: Bullet: ' 1. '
+msgid "Leave the system in a corner, turned on 24/7."
+msgstr "Lade systemet stå i et hjørne, tændt døgnet rundt."
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!graph src=\"\"\"\n"
+msgstr "[[!graph src=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"rankdir=LR\n"
+"phone -> computer -> \"calendar\" [dir=\"both\"];\n"
+msgstr ""
+"rankdir=LR\n"
+"telefon -> computer -> \"kalender\" [dir=\"both\"];\n"
+
+#. type: Plain text
+msgid ""
+"Most of my work is in trying to avoid ways things might go wrong -- which so "
+"often happens when computers are involved."
+msgstr ""
+"Det meste af mit arbejde går ud på at undgå måder ting kan gå galt på -- som "
+"så ofte sker når computere er involveret."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"What if...\n"
+" * messages are delayed or lost?\n"
+" * a chain of messages arrive out of order?\n"
+" * messages are sent faster than they can be delivered?\n"
+msgstr ""
+"Hvad nu hvis...\n"
+" * beskeder bliver forsinkede eller går tabt?\n"
+" * en kæde af beskeder dukker op i forkert rækkefølge?\n"
+" * beskeder sendes hurtigere end de kan ekspederes?\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[Copenhagen Carpool]: http://www.kobenhavnsdelebiler.dk/\n"
+" \"Københavns Delebiler\"\n"
+msgstr ""
+"[Københavns Delebiler]: http://www.kobenhavnsdelebiler.dk/\n"
+" \"Københavns Delebiler\"\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "Reliable conversation"
+msgstr "Robust snak"
+
+#. type: Plain text
+msgid ""
+"Human conversation is most reliable when using plain speak. Slang, sarcasm "
+"or jokes raise the risk of misunderstandings. This is quite similar in "
+"computer conversation."
+msgstr ""
+"Menneskesnak er mest robust med jævn tale. Slang, sarkasme eller "
+"vittigheder øger risiko for misforståelser. Dette minder meget om "
+"computersnak."
+
+#. type: Plain text
+msgid ""
+"When surfing the Web, you normally \"GET\" a web page or \"POST\" new data "
+"like a search query. The words \"GET\" and \"POST\" are \"plain speak\" of "
+"the World Wide Web -- defined as a principle called \"[REST][]\" or "
+"\"RESTful design\"."
+msgstr ""
+"Når du surfer på nettet, henter din webbrowser websider med \"GET\" (hent), "
+"og en søgning eller anden formular sendes den med \"POST\" (send). Ordene "
+"\"GET\" og \"POST\" er \"jævn tale\" på Spindet - World Wide Web - defineret "
+"som et princip kaldet \"[REST][]\" eller \"RESTfuldt design\"."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"rankdir=LR\n"
+"\"fetch document\" -> website [label=\"GET\", dir=\"back\"];\n"
+"\"provide info\" -> website [label=\"POST\"];\n"
+msgstr ""
+"rankdir=LR\n"
+"\"hent dokument\" -> websted [label=\"GET\", dir=\"back\"];\n"
+"\"levér information\" -> websted [label=\"POST\"];\n"
+
+#. type: Plain text
+msgid ""
+"I use the [Kannel][] tool to talk directly to the phones. When an sms "
+"arrives on the phone, Kannel \"GET\"s it to the calendar. That's weakly "
+"expressed -- better if it had \"POST\"ed the message instead."
+msgstr ""
+"Jeg brugere værtøjet [Kannel][] til at snakke direkte med telefonerne. Når "
+"en sms modtages på telefonen, \"GET\"'er Kannel den til kalenderen. Det er "
+"svagt formuleret -- den burde have \"POST\"et beskeden i stedet."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"rankdir=LR\n"
+"\"provide sms info\" -> \"calendar\" [label=\"GET\" style=\"dotted\"];\n"
+msgstr ""
+"rankdir=LR\n"
+"\"levér sms information\" -> \"kalender\" [label=\"GET\" style=\"dotted\"];\n"
+
+#. type: Plain text
+msgid ""
+"Kannel is a quite reliable tool, but not RESTful in conversations. That "
+"requires extra attention at other parts of the setup to avoid breakage in "
+"special situations."
+msgstr ""
+"Kannel er et ret stabilt værktøj, men snakker ikke RESTfuldt. Det kræver "
+"ekstra opmærksomhed andre steder i systemet for at undgå fejl i særlige "
+"situationer."
+
+#. type: Plain text
+msgid "That worries me."
+msgstr "Det bekymrer mig."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[Kannel]: http://www.kannel.org/\n"
+" \"Kannel: Open Source WAP and SMS Gateway\"\n"
+msgstr ""
+"[Kannel]: http://www.kannel.org/\n"
+" \"Kannel: Open Source WAP og SMS bro\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[REST]: http://en.wikipedia.org/wiki/REST\n"
+" \"Representational State Transfer\"\n"
+msgstr ""
+"[REST]: http://en.wikipedia.org/wiki/REST\n"
+" \"Representational State Transfer\"\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "Each car has a blog"
+msgstr "Hver bil har en dagbog"
+
+#. type: Plain text
+msgid ""
+"So I setup a gateway from Kannel to RESTful conversation. And choose "
+"classic blogging as style of conversation:"
+msgstr ""
+"Jeg opsætter derfor en \"bro\" fra Kannel til RESTfuld snak. Og vælger den "
+"klassiske blogging (web-dagbog) som samtalestil:"
+
+#. type: Bullet: ' * '
+msgid "The carpool fleet is a blogroll"
+msgstr "Delebilsflåden er en blogroll (dagbogssamling)"
+
+#. type: Bullet: ' * '
+msgid "each car has a blog"
+msgstr "hver bil har en blog (dagbog)"
+
+#. type: Bullet: ' * '
+msgid "each sms emitted from a car is a blog entry"
+msgstr "hver sms sendt fra en bil er et blog (dagbogs)indlæg"
+
+#. type: Plain text
+msgid ""
+"Blogging comes in two flavors, -- [RSS][] and [Atom][]. Both cover "
+"distribution of messages. I use Atom because it is newest and coolest, and "
+"because it also covers creating and editing meesages with the [AtomPub][] "
+"extension."
+msgstr ""
+"Der er to typer blogging (dagbøger) -- [RSS][] og [Atom][]. Begge dækker "
+"distribution af beskeder. Jeg bruger Atom fordi det er nyest og smartest, "
+"og fordi det også dækker oprettelse og redigering af beskeder, gennem "
+"udvidelsen [AtomPub][]."
+
+#. type: Plain text
+msgid ""
+"AtomPub allows the calendar to create an empty message -- which then "
+"triggers an sms from the car which \"fills it in.\""
+msgstr ""
+"AtomPub kan tillade kalenderen at oprette en tom besked -- som så udløser at "
+"en sms fra bilen fylder indhold ind i den."
+
+#. type: Plain text
+msgid ""
+"AtomPub also let the calendar \"PUT\" tags onto existing messages, to mark "
+"them as processed, read etc., and let an admin or a cleanup script \"DELETE"
+"\" outdated entries or blogs. The words \"PUT\" and \"DELETE\" are RESTful "
+"conversation as well."
+msgstr ""
+"AtomPub kan også lade kalenderen \"PUT\"te mærkater på eksisterende "
+"beskeder, for at notere dem som behandlet, læst osv., og lade en "
+"administrator eller en oprydningsrutine \"DELETE\" (slette) forældede "
+"beskeder eller hele blogs. Ordene \"PUT\" og \"DELETE\" er også RESTfuld "
+"snak."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[Atom]: http://en.wikipedia.org/wiki/Atom\n"
+" \"Atom\"\n"
+msgstr ""
+"[Atom]: http://en.wikipedia.org/wiki/Atom\n"
+" \"Atom\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[RSS]: http://en.wikipedia.org/wiki/RSS\n"
+" \"RSS\"\n"
+msgstr ""
+"[RSS]: http://en.wikipedia.org/wiki/RSS\n"
+" \"RSS\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[AtomPub]: http://en.wikipedia.org/wiki/AtomPub\n"
+" \"AtomPub\"\n"
+msgstr ""
+"[AtomPub]: http://en.wikipedia.org/wiki/AtomPub\n"
+" \"AtomPub\"\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "The system is dancing!"
+msgstr "Systemet danser!"
+
+#. type: Plain text
+msgid ""
+"My sms-to-blog gateway is written in [Perl][], using the [Dancer][] toolkit."
+msgstr ""
+"Min sms-til-blog bro er skrevet i [Perl][], med hjælpesystemet [Dancer][]."
+
+#. type: Plain text
+msgid ""
+"Dancer makes it simple to setup a RESTful web conversation, and when I "
+"contacted the authors on [IRC][], they swiftly added support for the non-"
+"RESTful quirk that I needed."
+msgstr ""
+"Dancer (danser) gør det nemt at opsætte RESTfuld web-snak, og da jeg "
+"kontaktede forfatterne på [IRC][], udvidede de hurtigt til at understøtte "
+"den ikke-RESTfulde finurlighed jeg havde brug for."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"rankdir=LR\n"
+"phone -> \"sms gateway\" [dir=\"both\"];\n"
+"\"sms gateway\" -> \"blog gateway\" [dir=\"both\", style=\"dotted\"];\n"
+"\"blog gateway\" -> calendar [dir=\"both\"];\n"
+msgstr ""
+"rankdir=LR\n"
+"telefon -> \"sms bro\" [dir=\"both\"];\n"
+"\"sms bro\" -> dagbogsbro [dir=\"both\", style=\"dotted\"];\n"
+"dagbogsbro -> kalender [dir=\"both\"];\n"
+
+#. type: Plain text
+msgid ""
+"My sms-to-blog gateway is not yet ready, but basic routines work. The "
+"[project is public][], and code is [Free Software][]."
+msgstr ""
+"Min sms-til-dagbogsbro er endnu ikke færdig, men basale rutiner fungerer. "
+"[projektet er offentligt][], og koden er [Fri Software][]."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[Perl]: http://en.wikipedia.org/wiki/Perl\n"
+" \"Perl\"\n"
+msgstr ""
+"[Perl]: http://en.wikipedia.org/wiki/Perl\n"
+" \"Perl\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[Dancer]: http://www.perldancer.org/\n"
+" \"Dancer: Perl web development framework\"\n"
+msgstr ""
+"[Dancer]: http://www.perldancer.org/\n"
+" \"Dancer: Perl web-udviklingsmiljø\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[IRC]: http://www.perldancer.org/irc\n"
+" \"IRC Chat system (Internet Relay Chat)\"\n"
+msgstr ""
+"[IRC]: http://www.perldancer.org/irc\n"
+" \"IRC Chat-system (Internet Relay Chat)\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[project is public]: git://source.delebilfonden.dk/msg/\n"
+" \"Kannel-to-AtomPub Gateway\"\n"
+msgstr ""
+"[projektet er offentligt]: git://source.delebilfonden.dk/msg/\n"
+" \"Kannel-til-AtomPub bro\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[Free Software]: http://www.debian.org/social_contract#guidelines\n"
+" \"The Debian Free Software Guidelines (DFSG)\"\n"
+msgstr ""
+"[Fri Software]: http://www.debian.org/social_contract#guidelines\n"
+" \"Debians retningslinjer for fri software (DFSG)\"\n"
diff --git a/msg/gateway.mdwn b/msg/gateway.mdwn
new file mode 100644
index 0000000..8cb979a
--- /dev/null
+++ b/msg/gateway.mdwn
@@ -0,0 +1,145 @@
+# Building a remote-control for real cars
+
+[[!meta date="2011-05-01"]]
+[[!tag debian msg blog editorial]]
+
+## SMS is used to lock car doors
+
+[Copenhagen Carpool][] soon receive a new batch of electric cars.
+The new cars will contain a cellphone tied to the door locks,
+to only let into the car the member who booked its current timeslot.
+
+I am setting up the system to connect the cars with their booking calendar.
+
+The general idea is to...
+
+ 1. Connect a standard cellphone to a computer.
+ 1. Forward sms messages received on the phone to the calendar.
+ 1. Send messages from the calendar through the phone.
+ 1. Leave the system in a corner, turned on 24/7.
+
+[[!graph src="""
+rankdir=LR
+phone -> computer -> "calendar" [dir="both"];
+"""]]
+
+Most of my work is in trying to avoid ways things might go wrong
+-- which so often happens when computers are involved.
+
+What if...
+ * messages are delayed or lost?
+ * a chain of messages arrive out of order?
+ * messages are sent faster than they can be delivered?
+
+[Copenhagen Carpool]: http://www.kobenhavnsdelebiler.dk/
+ "Københavns Delebiler"
+
+
+## Reliable conversation
+
+Human conversation is most reliable when using plain speak.
+Slang, sarcasm or jokes raise the risk of misunderstandings.
+This is quite similar in computer conversation.
+
+When surfing the Web,
+you normally "GET" a web page or "POST" new data like a search query.
+The words "GET" and "POST" are "plain speak" of the World Wide Web
+-- defined as a principle called "[REST][]" or "RESTful design".
+
+[[!graph src="""
+rankdir=LR
+"fetch document" -> website [label="GET", dir="back"];
+"provide info" -> website [label="POST"];
+"""]]
+
+I use the [Kannel][] tool to talk directly to the phones.
+When an sms arrives on the phone,
+Kannel "GET"s it to the calendar.
+That's weakly expressed
+-- better if it had "POST"ed the message instead.
+
+[[!graph src="""
+rankdir=LR
+"provide sms info" -> "calendar" [label="GET" style="dotted"];
+"""]]
+
+Kannel is a quite reliable tool, but not RESTful in conversations.
+That requires extra attention at other parts of the setup
+to avoid breakage in special situations.
+
+That worries me.
+
+[Kannel]: http://www.kannel.org/
+ "Kannel: Open Source WAP and SMS Gateway"
+
+[REST]: http://en.wikipedia.org/wiki/REST
+ "Representational State Transfer"
+
+
+## Each car has a blog
+
+So I setup a gateway from Kannel to RESTful conversation.
+And choose classic blogging as style of conversation:
+
+ * The carpool fleet is a blogroll
+ * each car has a blog
+ * each sms emitted from a car is a blog entry
+
+Blogging comes in two flavors,
+-- [RSS][] and [Atom][].
+Both cover distribution of messages.
+I use Atom because it is newest and coolest,
+and because it also covers creating and editing meesages
+with the [AtomPub][] extension.
+
+AtomPub allows the calendar to create an empty message
+-- which then triggers an sms from the car which "fills it in."
+
+AtomPub also let the calendar "PUT" tags onto existing messages,
+to mark them as processed, read etc.,
+and let an admin or a cleanup script "DELETE" outdated entries or blogs.
+The words "PUT" and "DELETE" are RESTful conversation as well.
+
+[Atom]: http://en.wikipedia.org/wiki/Atom
+ "Atom"
+
+[RSS]: http://en.wikipedia.org/wiki/RSS
+ "RSS"
+
+[AtomPub]: http://en.wikipedia.org/wiki/AtomPub
+ "AtomPub"
+
+
+## The system is dancing!
+
+My sms-to-blog gateway is written in [Perl][],
+using the [Dancer][] toolkit.
+
+Dancer makes it simple to setup a RESTful web conversation,
+and when I contacted the authors on [IRC][],
+they swiftly added support for the non-RESTful quirk that I needed.
+
+[[!graph src="""
+rankdir=LR
+phone -> "sms gateway" [dir="both"];
+"sms gateway" -> "blog gateway" [dir="both", style="dotted"];
+"blog gateway" -> calendar [dir="both"];
+"""]]
+
+My sms-to-blog gateway is not yet ready, but basic routines work.
+The [project is public][], and code is [Free Software][].
+
+[Perl]: http://en.wikipedia.org/wiki/Perl
+ "Perl"
+
+[Dancer]: http://www.perldancer.org/
+ "Dancer: Perl web development framework"
+
+[IRC]: http://www.perldancer.org/irc
+ "IRC Chat system (Internet Relay Chat)"
+
+[project is public]: git://source.delebilfonden.dk/msg/
+ "Kannel-to-AtomPub Gateway"
+
+[Free Software]: http://www.debian.org/social_contract#guidelines
+ "The Debian Free Software Guidelines (DFSG)"