Generell gibt es zwei Arten, unter Windows einen SSH-Schlüssel zu speichern:
ppk
)Viele Anleitungen beschränken sich auf die eine oder andere Methode zum Anlegen von SSH-Schlüsseln. Tatsächlich macht es aber unter Windows sehr viel Sinn, den eigenen Schlüssel in beiden Formate verfügbar zu haben. Das geht deutlich schmerzloser, wenn beide Schlüsselformate in einem Aufwasch angelegt werden.
puttygen
Schlüsselgenerator, pageant
Schlüsselagenten und das plink
SSH-Verbindungstool.mkdir -p ~/.ssh
angelegt werden.C:\Users\USERNAME\.ssh
) die insgesamt drei Dateien anzulegen, die zusammen alle Schlüssel-Komponenten darstellen.In PuttyGen selber wird es nun etwas trickreich:
C:\Users\USERNAME\.ssh\id_rsa.ppk
speichern.C:\Users\USERNAME\.ssh\id_rsa.pub
einfügen (mit der Funktion „Save public key“ wird der Public Key nicht im korrekten Format exportiert).C:\Users\USERNAME\.ssh\id_rsa
speichern. Wichtig ist hierbei, dass keine Dateiendung verwendet wird.In eurem SSH-Verzeichnis C:\Users\USERNAME\.ssh
sollten nun mindestens drei Dateien liegen:
id_rsa.ppk # Privater / öffentlicher Schlüssel für PuTTY
id_rsa.pub # Öffentlicher Schlüssel für OpenSSH
id_rsa # Privater Schlüssel für OpenSSH
Später werden in diesem Verzeichnis ggf. noch mehr Dateien auftauchen, wie z.B. known_hosts
, authorized_keys
und config
.
Übrigens solltet ihr mit der Git Bash mittels chmod 644 ~/.ssh/* && chmod 600 ~/.ssh/id_rsa
allen Dateien die korrekten Zugriffsrechte (-rw-r--r--
bzw. -rw-------
) geben, falls dies nicht schon geschehen ist.
Den öffentlichen Schlüssel könnt ihr nun auf allen Servern und Diensten bekannt machen, mit denen ihr euch später verbinden wollt. Auf eurem Rechner wiederum wird die Git Bash automatisch den privaten OpenSSH-Schlüssel verwenden, während andere Programme den privaten Schlüssel aus der id_rsa.ppk
entweder in den Einstellungen übergeben bekommen müssen, oder aber aus einem vorher zu startenden pageant
Schlüsselagenten übernehmen können. Falls ihr SSH-Schlüssel für eure tägliche Arbeit benutzt, könnt ihr den Pageant auch automatisch starten und den Schlüssel laden lassen.
Viele Windows-Programme können so euren SSH-Schlüssel nutzen, u.a.:
So oder so seid ihr nun mit beiden Schlüsselformaten ausgestattet, so dass z.B. auch der Wechsel des Betriebssystems oder die Verwendung von Virtualisierung euch die Weiterbenutzung eures SSH-Schlüssels erlaubt.
Unter Linux und Mac OSX ist der Vorgang übrigens etwas kürzer:
ssh-keygen -t rsa -b 4096 -C "YOUR@EMAIL"
]]>Sending and receiving messages in Exapunks is a tricky business. Timing problems can ruin the proper execution of your Axiom code.
]]>Sending and receiving messages in Exapunks is a tricky business. Timing problems can ruin the proper execution of your Axiom code.
Consider these two Exas trading messages via the M
register. Exa XA
reads from a file and sends them to the network register M
…
NOTE XA - SENDER
GRAB 199
MARK READING
COPY F M
TEST EOF
FJMP READING
…where XB
reads from M
and writes these messages to another file:
NOTE XB - RECEIVER
MAKE
MARK WRITING
COPY M F
TEST MRD
TJMP WRITING
As you can see, XA
tests for the end of file (EOF
), while XB
tests for receivable messages (MRD
). This seems to be rather well designed, but most often ends up in XB
never finishing its job because there is nothing waiting in M
when TEST MRD
is executed. Why is that?
Transfers via the M
register are not instantaneous. Before writing to M
it needs to be empty, before reading from M
the corresponding write operation has to be finished.
NOOP
for timingOne solution for timing issues is to add additional NOOP
commands in your writing loop, telling your receiver to wait until the sender is back online.
NOTE XB - RECEIVER
MAKE
MARK WRITING
COPY M F
NOOP
NOOP
TEST MRD
TJMP WRITING
If the job of XA
is to just read its file and die afterwards, your programme could be written even more compact:
NOTE XA - SENDER
GRAB 199
MARK READING
COPY F M
JUMP READING
NOTE CRASH AND BURN AT END OF FILE
…with XB
having to wait one operation less than before:
NOTE XB - RECEIVER
MAKE
MARK WRITING
COPY M F
NOOP
TEST MRD
TJMP WRITING
By a rule of thumb the number of instructions in your receiver loop after your last read from M
and before doing TEST MRD
has to be as many instructions as it takes the sender to reach its next write to M
after its last write to M
.
If you do not want to think about timing, the receiving XB
can test for a marker which tells it that the end of the message has been reached.
This only works if you know for sure that the file you are reading from never contains the symbol 0
, as XA
will use this as its „End Of Message“ message (EOM
):
NOTE XA - SENDER
GRAB 199
MARK READING
COPY F M
TEST EOF
FJMP READING
NOTE EOF, SEND EOM
COPY 0 M
The receiver XB
now copies the message to T
, from where it is written into the file and is also executable from TJMP
or FJMP
. Remember: If T
is 0
, it is evaluated to false
– all other values will evaluate to true
.
NOTE XB - RECEIVER
MAKE
MARK WRITING
COPY M T
COPY T F
NOTE TEST EOM FROM `T`
TJMP WRITING
NOTE DELETE EOM FROM FILE
SEEK -1
VOID F
If XA
knows the file size it is reading to the network in advance, it is a very clever trick to send the file size to the receiver XB
as well. This way the XB
does not have to test for the message to end, but will know when all message chunks have been delivered.
XA
will send the message size to XB
and use it for its own loop:
NOTE XA - SENDER
GRAB 199
NOTE `T` CONTAINS THE NUMBER OF CHUNKS TO READ
COPY T M
MARK READING
COPY F M
NOTE COUNT DOWN REMAINING CHUNKS
SUBI T 1 T
TJMP READING
XA
and XB
will have the same loop conditions:
NOTE XB - RECEIVER
MAKE
NOTE NOW `T` CONTAINS THE MESSAGE SIZE
COPY M T
MARK WRITING
COPY M F
NOTE COUNT DOWN REMAINING CHUNKS
SUBI T 1 T
TJMP WRITING
For bullet-proof communication your best choice is to have XA
send a „keep alive message“…
NOTE XA - SENDER
GRAB 199
MARK READING
COPY F M
TEST EOF
NOTE SEND RESULT OF TEST TO M...
COPY T M
NOTE ...AND USE RESULT FOR YOUR OWN LOOP
FJMP READING
…to XB
:
NOTE XB - RECEIVER
MAKE
MARK WRITING
COPY M F
NOTE USE TEST RESULT TO TEST FOR YOURSELF
TEST M = 1
FJMP WRITING
Every reading cycle XB
reads two messages from M
, where the second message contains 0
if XA
reached the end of its file. In this manner XB
continues to wait for messages as long as XA
explicitly tells it to by sending 1
in the second message.
This lets you skip all timing issues on the expends of more writes to the M
register. It adds just one extra line of Axiom code (but one less than having to NOOP
), but may end up producing more cycles.
If you are facing a multi-sender communication, things may get hairy. In this scenario, multiple senders transmit data to one receiver, which has to combine these messages into a single on.
Above solutions may apply, but if you are forced to deal with different message lengths which need to be combined, if may become very tricky to shut down the other sender as well, so your receiver stops its receiving cycle.
Imagine a scenario where first sender XA
knows when to quit, but second sender XB
does not; in this case, receiver XC
may go on receiving messages from XB
ad infinitum.
To solve this problem, XA
could literally use the KILL
command to shut down XB
. You may even opt to kill the receiver XC
as well with this method.
Update 2018–09–06: Added section for „End Of Message“ & „Packet Size“.
Update 2018–09–16: Added section for „Terminator“
]]>You might have noted my new infatuation with the hacking game Exapunks by Zachtronics. Being a programmer myself I could not help but write up some coding standards for Exapunks' programming language „Axiom“. 😎 Oh, and some loop patterns which might get you kickstarted on your next hack.
]]>You might have noted my new infatuation with the hacking game Exapunks by Zachtronics. Being a programmer myself I could not help but write up some coding standards for Exapunks' programming language „Axiom“. 😎 Oh, and some loop patterns which might get you kickstarted on your next hack.
Even though the Axiom language seems not to be overly complex, it pays to have a proper coding style:
NOTE
for comments. This will help you later on to identify the phase your EXA is supposed to be in.READ_FILE
or RECEIVE_DATA
.MARK
and @REP
.TJMP
, FJMP
, JUMP
– and before @END
.So this…
GRAB 199
MARK READING
TEST F = X
SEEK 2
FJMP READING
SEEK -2
COPY F X
…becomes this:
NOTE X IS ENTRY WE ARE SEARCHING FOR
GRAB 199
MARK READING
TEST F = X
NOTE ADVANCE FILE HEADER TO NEXT LINE
SEEK 2
FJMP READING
NOTE GET THE NEXT ENTRY FROM FILE
SEEK -2
COPY F X
Because Exapunks' Axiom language is very basic, I found some patterns for me which emulate constructs from other programming languages.
As there are no WHILE
loops, a combination of TEST
and jump labels will do the trick:
COPY 10 X
MARK WHILE
NOTE DO STUFF
SUBI X 1 X
TEST X > 1
TJMP WHILE
Remember: If T
evaluates to 0
, the next TJMP
/ FJMP
instruction will pick this up. Above listing could be written as:
COPY 10 T
MARK WHILE
NOTE DO STUFF
SUBI T 1 T
TJMP WHILE
Obviously this only makes sense if there are more cycles to perform than lines of code needed for this construct, and/or you do not know in advance how many times the loop will be performed. Otherwise you might want to write out loops:
As „Trash World News“ states in its November 1997 issue: Sometimes it is faster not to use loops. This loop will need almost 10 cycles:
MARK LOOP
COPY X F
ADDI X 1 X
TEST X > 2
FJMP LOOP
The same loop could be written as:
COPY 0 F
COPY 1 F
COPY 2 F
For writing bigger blobs of repeating commands consider the @REP
and @END
commands:
@REP 3
COPY @{0,1} F
@END
NOTE WILL BE EXPANDED TO
NOTE COPY 0 F
NOTE COPY 1 F
NOTE COPY 2 F
Using loops you can quickly read files:
GRAB 199
MARK READING
COPY F M
TEST EOF
FJMP READING
If you are searching for a specific entry, you can test for the value at the file pointer without having to copy F
to some internal register:
NOTE X IS ENTRY WE ARE SEARCHING FOR
GRAB 199
MARK READING
TEST F = X
FJMP READING
NOTE GET THE NEXT ENTRY FROM FILE
NOTE YOU MIGHT WANT TO USE `SEEK` TO MOVE THE FILE POINTER
COPY F X
You can speed up searches in files by skipping rows. This needs more instructions, but in long files this will speed up the process:
NOTE X IS ENTRY WE ARE SEARCHING FOR
GRAB 199
MARK READING
TEST F = X
NOTE ADVANCE FILE HEADER TO NEXT LINE, SAVING 2 LOOPS
SEEK 2
FJMP READING
NOTE GET THE NEXT ENTRY FROM FILE
SEEK -2
COPY F X
In files you can read and delete at the same time. Well, almost, as you need to set the file pointer back for deleting the chunk you just read:
MARK GET_IT_OUT
NOTE DO STUFF WITH F
COPY F M
SEEK -1
VOID F
TEST EOF
FJMP GET_IT_OUT
If you have to halt your EXA anyway after completing its loop, you may choose to deliberately crash it on exit. Reading a file, this can be easily achieved by reading past the file end. So this…
GRAB 200
MARK READ_FILE
COPY F M
TEST EOF
FJMP READ_FILE
HALT
NOTE `HALT` ALSO DOES `DROP`
..becomes this:
GRAB 200
MARK READ_FILE
COPY F M
JUMP READ_FILE
NOTE CRASH AND BURN ON EOF
NOTE CRASH ALSO DOES `DROP`
Sadly you cannot crash a network transfer. So have a look on Exapunks' network communication patterns on how to solve these.
Zachtronics published a guide on how to create new levels for Exapunks. Being a game for programmers, building levels (called „virtual network“) is done by programming… in Javascript.
The community is already at work: You will find new levels in the Exapunk Steam Workshop.
]]>For quite some time I take my flying turns in the flight simulator „Aerofly FS2“. But only recently I found out about instrument navigation integrated into AFS2. Believe it or not: If you master instrument navigation in Aerofly FS2 it's not only possible to get to your destination airport in bad weather or at night – planning and execution of an instrumental flight makes also a whole lot of fun.
]]>For quite some time I take my flying turns in the flight simulator „Aerofly FS2“. But only recently I found out about instrument navigation integrated into AFS2. Believe it or not: If you master instrument navigation in Aerofly FS2 it's not only possible to get to your destination airport in bad weather or at night – planning and execution of an instrumental flight makes also a whole lot of fun.
Decades before satellite navigation via GPS or GLONASS was available for civilian use, planes had to use different means of navigation. In the early ages of flying for example there was an US system consisting of light houses and large concrete arrows for planes to use. Given that these markers required the pilot to actually see these navigation aids made for limited usefulness – at night or in bad weather their useful range was rather low. A different solution had to be found.
Major breakthroughs in radio technology at the beginning of the 20th century led to the development of radio beacons. Like a light house emitting light, the radio beacon would emit radio waves, allowing a receiver to identify the direction the beacon was broadcasting from – but with far more range than light and (theoretically) unhindered by darkness and bad weather. Another positive side effect: Beacons could transmit an identification Morse code, so the receiver would know that she was tuned to the right beacon.
Determining the bearing to a beacon was comparatively easy. But knowing the bearings to two beacons (or bearing and distance to one beacon) one could pinpoint her location by using simple geometry. Given the location of the beacons was known, it was easy to determine your own absolute position.
Further development in this area led to VOR navigation and ILS landings. And even though nowadays GPS / GLONASS is available world wide and (mostly) reliable, navigation by VORs and ILS has still its merits – and its own charm.
Since Microprose's „Solo Flight“ instrumental flight is a part of every major flight simulation. To use these principles properly one first has to understand and practice them.
Doofer911s FSX video tutorials explain the basic principles as well as how the navigation instruments in a plane work. Doofer911 made these tutorials for a Cessna 172 in Microsoft's Flight Simulator X – but these principles hold true for all simulators and for all plane types equipped with a VOR receiver.
Most important for us: How to use a VOR receiver…
…and how to use ILS landing equipment and procedures:
If you are more into reading than watching: Charles Wood's navigation tutorials got you covered, and not only explains the basics of VOR flying, but also supplies some examples to try out for yourself.
In Aerofly FS2 there is everything included for planning and executing a simple IFR flight with VOR- and ILS-support. There are no additional maps or informations needed.
First things first: Choose a plane type suitable for VOR-IFR. This excludes all bi-planes, gliders or military jets. The easiest planes to get into VOR flying are the Cessna 172 or the Beechcraft Baron 58, because the instruments used are the most basic ones as seen in Doofer91's videos.
Continue with the navigation screen from the main menu. Choose an airport to take-off from, and one to land on. If you want to exercise ILS landings you will need to choose an runway with an ILS sender, as will be indicated next to the runway entry you clicked on.
Depending on your chosen route you may want to add an extra VOR waypoint by clicking on a VOR station. This makes navigation relative to a VOR sender somewhat less difficult.
Now take note of all frequencies of all VOR and ILS senders required for your flight plan. You may want to put them on a slip of paper – I for one build a small flight plan notebook called „VORman“ to keep track of my flight plan data. The frequencies of VOR, ILS or NDB senders show up once you click on the sender on the map.
The most important part is to determine the bearings / radials to and from your selected VOR or NDB senders. There is a flight plan summary telling you about all directions and distances. This summary can be accessed by clicking on the word „route“ in the lower section of your screen. Clicking a single waypoint tells you about frequencies used there.
In case you need radials / bearings not deductible from your regular flight plan there is a small workaround in Aerofly FS2:
You will also see the elevation of the terrain below your plane marker. Dragging your plane marker along your route, this helps in determining the minimal safe height you will need to fly to get from one waypoint to the next.
When you are done building your flight plan, put your plane back on your start airfield. By the way: It is rather smart to set your plane on a parking position on your start airfield, as this gives you proper time to put all navigation data into your plane's instruments without sitting on the runway blocking other planes. 😉
Now jump into your cockpit and enter all frequencies as well as radials / bearings into the navigation panels of your plane.
Now your instruments are set that even in fog and night your plane can safely reach its destination.
All pictures in this article show a Beechcraft Baron 58 on its way. To follow its flight plan from Grand Junction, Colorado (KGJT) to Eagle County, Colorado (KEGE) you will need the following settings:
113.0 MHz
(your first VOR) and your standby frequency to 108.3 MHz
(the ILS of your destination airfield).109.2 MHz
(the VOR of your destination airfield).64°
.This is the bearing we are going to fly to the first VOR.39°
. This is the bearing we turn to after passing the first VOR.252°
. This is the bearing of the second VOR we need to intercept and turn into to get to our destination airfield.After take-off you need to get onto the yellow line indicated in your HSI. Once you are on the line, you need to turn to 64° to keep on the line. After flying for 75 miles you will reach the first VOR.
After passing the first VOR you will need to turn the OBS knob of your HSI to 39° (or use the NAV1 indicator in the lower left corner, which you already prepared). Turn to 39° to keep on the radial, and fly on for another 14 miles.
Now you just have to wait to intercept NAV2, which will be indicated by the line in your NAV2 indicator reaching the middle position. With a quick turn to 252° you are right on track to Eagle county airport. Approaching the airport switch NAV1 to the ILS frequency (which you already put into your frequency panel as standby frequency). Now HSI and NAV1 indicator should show the ILS bearing and glideslope, leading (hopefully) to a proper landing.
Diesen Artikel gibt es auch auf Deutsch.
]]>Schon seit geraumer Zeit drehe ich mit dem Flugsimulator „Aerofly FS2“ meine Runden – aber erst vor Kurzem habe ich darin die Instrumenten-Navigation entdeckt. Die erstaunliche Erkenntnis: Wenn man Instrumenten-Navigation in Aerofly FS2 beherrscht, macht das nicht nur längere Flüge möglich – die Planung und Durchführung eines solchen Fluges macht auch erstaunlich viel Spaß.
]]>Schon seit geraumer Zeit drehe ich mit dem Flugsimulator „Aerofly FS2“ meine Runden – aber erst vor Kurzem habe ich darin die Instrumenten-Navigation entdeckt. Die erstaunliche Erkenntnis: Wenn man Instrumenten-Navigation in Aerofly FS2 beherrscht, macht das nicht nur längere Flüge möglich – die Planung und Durchführung eines solchen Fluges macht auch erstaunlich viel Spaß.
Lange bevor Satelliten-Navigation mit GPS oder GLONASS auch für die zivile Nutzung zur Verfügung stand, mussten Flugzeug auf andere Art und Weise ihre Ziele finden. Schon früh hatte man z.B. in den USA mit Leuchttürmen und großen Beton-Pfeilen für Flugzeuge begonnen, aus der Luft nutzbare Navigationshilfen zu schaffen. Dieses System war aber augenscheinlich auf Sichtweite begrenzt – bei Nacht und Nebel konnte diese entsprechend gering sein. Eine bessere Lösung musste her.
Durchbrüche in der Funk-Technologie zu Beginn des 20. Jahrhunderts erlaubten die Errichtung von Funkfeuern. Nach dem Prinzip der Leuchtfeuer nutzen Funkfeuer Radiowellen, die einem Empfänger mitteilten, in welche Richtung der betreffende Sender zu finden war. Vorteilhaft an diesen Sendern war ihre enorme Reichweite, dass sie bei (fast) jedem Wetter empfangen werden konnten, und dass sie sich über ihre Frequenz bzw. Morse-Zeichen identifizieren konnten.
Ein Flugzeug konnte mit diesen Sendern seine Position relativ einfach bestimmten. Durch die Bestimmung der Richtung zu zwei Sendern, oder aber durch Bestimmung von Richtung und Entfernung zu einem Sender, konnte ein Flugzeug mittels einfacher Geometrie seine relative Position zu den Sendern bestimmen. Da die absolute Position der Sender wiederum bekannt war, ließ sich aus der relativen Position des eigenen Flugzeugs dann dementsprechend die absolute Position des Flugzeugs bestimmen.
Weitere Entwicklungen in diesem Bereich führten dann zu dem bis heute verwendeten Prinzipien der VOR-Navigation und ILS-Landung. Und obwohl GPS / GLONASS inzwischen weltweit preisgünstig und (zumeist) zuverlässig verfügbar sind, hat das Navigieren mit Hilfe von VORs und die Landung mit ILS weiterhin seine Berechtigung – und seinen ganz eigenen Reiz.
Schon seit den Zeiten von Microprose' „Solo Flight“ ist Instrumenten-Flug fester Bestandteil von Flugsimulatoren. Die Verwendung im Flugzeug will dabei gelernt und geübt sein.
Besonders anschaulich erklärt wird das Prinzip mit Doofer911s FSX Video-Tutorials. Zwar hat Doofer911 diese Anleitungen für die Cessna 172 in Microsofts FSX-Simulator erstellt – tatsächlich gelten sie aber für alle Simulatoren und für alle Flugzeugmuster mit VOR-Empfängern an Bord.
Für uns relevant: Die Anleitung über die Verwendung von VOR-Empfängern…
…und die Anleitung für die Prozeduren bei ILS-Landungen:
Für Freunde des geschriebenen Wortes: Charles Woods Navigations-Tutorials erklären die Grundzüge und bringen sogar Beispiele zum Nachfliegen mit.
In Aerofly FS2 ist alles vorhanden, was man zur Planung und Durchführung eines einfachen IFR-Fluges mit VORs und ILS benötigt. Ihr braucht kein weiteres Karten- oder Informationsmaterial.
Im ersten Schritt wählt man ein Flugzeugmuster, dass sich für VOR-IFR eignet. Dies schließt alle Doppeldecker, Segelflieger und Militärjets aus. Besonders einfach wird es mit einer Cessna 172 oder Beechcraft Baron 58, weil dort die Bedienelemente ähnlich wie in den Video-Tutorials von Doofer91 sind.
Danach wählt man unter dem Punkt Navigation einen Start- und Zielflughafen aus. Wenn ihr eine ILS-Landung hinlegen wollt, müsst ihr dabei darauf achten, dass der Flughafen für die von euch ausgewählte Landebahn auch über einen ILS-Sender verfügt.
Ggf. könnt ihr eurem Flugplan auch so verändern, dass ihr VORs direkt überfliegt. Das macht euch die spätere Flugplanung besonders einfach.
Notiert euch nun die Frequenzen aller relevanten VORs und ILS-Sender. Das kann auf einem kleinen Stück Papier geschehen – ich persönlich habe mir dafür das Flugplan-Notizbuch „VORman“ zusammengebastelt. Die Frequenzen erfahrt ihr, in dem ihr die einzelnen VORs, NDBs oder Flugplätze anklickt.
Der entscheidende Schritt ist nun die Bestimmungen der Richtungen, die ihr von bzw. zu einem VOR- bzw. NDB-Sender einschlagen müsst – die sogenannten Radiale bzw. Peilungen. Allgemein könnt ihr euch eine Übersicht über die Richtungen und Distanzen durch Anklicken des Wortes „Route“ im unteren Bildschirmabschnitt zeigen lassen; durch Anklicken der einzelnen Wegpunkte daneben erhaltet ihr Informationen über die VOR/NDB/ILS-Frequenzen des jeweiligen Wegpunktes.
Falls ihr aber Radiale bzw. Peilungen außerhalb eures Flugplans benötigt, kann man in Aerofly FS2 etwas tricksen:
Übrigens findet man an dieser Stelle auch die Geländehöhe heraus. Das hilft euch, um eine sichere Flughöhe zu finden. Überfahrt einfach mit dem Flugzeugsymbol eure Wegstrecke, um rechts die Geländehöhe und sichere Flughöhe angezeigt zu bekommen.
Zu guter Letzt setzt ihr euer Flugzeug wieder auf den Startpunkt. Besonders schlau ist es übrigens, als Startpunkt eine Parkposition am Flughafen zu wählen. So könnt ihr eure Einstellungen in Ruhe durchführen, und müsst nicht hastig an Knöpfen drehen, während ihr schon mit laufenden Motoren auf der Startbahn steht.
Jetzt könnt ihr euch ins Cockpit schwingen, und übertragt die Frequenzen sowie Radiale / Peilungen in die Navigationsinstrumente eures Flugzeugs.
Nach dem Abheben sollten euch die Instrumente eures Flugzeugs nun auch bei Nacht & Nebel sicher an euer Ziel geleiten.
In den Bildern zu diesem Artikel kann man einen einfachen Flug mit einer Baron 58 bewundern. Der „VORman“-Flugplan für einen Flug von Grand Junction, Colorado (KGJT) nach Eagle County, Colorado (KEGE) erklärt euch dazu die Einstellungen:
113.0 MHz
(euer erstes VOR), und die Standby-Frequenz auf 108.3 MHz
(das ILS des Zielflughafens).109.2 MHz
(das VOR des Zielflughafens).64°
zeigt. Das ist der Leitstrahl, auf dem wir zum ersten VOR fliegen wollen.39°
. Das ist der Leitstrahl, auf den wir nach Überfliegen des ersten VORs abdrehen wollen.252°
. Das ist der Leitstrahl, den wir erst abfangen wollen, um dann darauf einzuschwenken und zu unserem Zielflughafen zu kommen.Nach dem Start müsst ihr nur noch die gelbe Linie auf eurem HSI einfangen – und dann Kurs 64° fliegen, um darauf zu bleiben. Nach circa 75 Meilen erreicht ihr das erste VOR.
Nach dem Überfliegen des ersten VORs dreht ihr den OBS-Knopf am HSI weiter auf 39° (oder benutzt den NAV1-Anzeiger unten links, den ihr ja schon vorbereitet habt) und fliegt weitere 14 Meilen.
Dann wartet ihr nur noch, bis der NAV2-Anzeiger sich der Mittellinie nähert, um eine rasante Kurve Richtung 252° hinzulegen, direkt auf den Flughafen von Eagle County zu. Für den Landeanflug stellt die NAV1-Frequenz auf das ILS um, und schon zeigt sowohl das HSI als auch das NAV1-Instrument den ILS-Leitstrahl an.
There is an english version to this article.
]]>Höchste Zeit, sich mit einem AdBlocker für Mobiltelefone auseinanderzusetzen.
]]>Höchste Zeit, sich mit einem AdBlocker für Mobiltelefone auseinanderzusetzen.
In letzter Zeit haben sich sehr nervige Werbeformen für Mobiltelefone ausgebreitet. Aber auch reguläre Werbeformen werden immer umfangreicher und intrusiver. Gerade aber wenn man unterwegs ist und die Internetverbindung nicht zuverlässig, limitiert und/oder kostenpflichtig ist, würde man gerne Zeit, Nerven, Geld und Batterie sparen für die Inhalte, die man wirklich sehen möchte — und nicht „diesen verrückten Trick zum Abnehmen“ oder die „Netflix-Geheimnisse, die die Regierung am Liebsten verbieten würde“.
Leider gibt es für die meisten in Android integrierten Browser keine Möglichkeit, Werbung zu blockieren. Google Chrome für Android soll ja zukünftig einen fest eingebauten Adblocker erhalten, der Zeitpunkt dieser Änderung ist aber in nebulöser Ferne. Gleichzeitig hat Google als Anbieter von Werbung auch nur ein begrenztes Interesse an einem vollumfänglichen Adblocker.
So hatte ich schon vor längerer Zeit einen Adblocker für die AVM Fritz!Box gebaut. Dieser hatte aber zwei Nachteile: Einerseits funktioniert er nicht auf https-Seiten (die sich weiterhin stark vermehren), andererseits funktioniert er nur, wenn die Internetverbindung über die Fritz!Box hergestellt wird – also nicht unterwegs, wo es gerade drauf ankommt.
Um Werbung zu blockieren habe ich einen alten Freund wiederentdeckt: Mozilla Firefox! Mozilla hat inzwischen den Mozilla Firefox für Android herausgebracht. Dieser verfügt über eigentlich alle Features von Chrome für Android (inkl. der Synchronisation von Bookmarks und Einstellungen, Tabs, einfachen Bedienung etc.). Gleichzeitig kann der Mozilla Firefox für Android aber auch Plugins bzw. Add-Ons installieren.
Eines dieser Addons ist der Adblocker „uBlock Origin“ für Android, der wie sein großer Desktop-Bruder einfach Werbung aus der gerade angeschauten Seite herausfiltert. Die Installation im Firefox ist mit wenigen Tapps erledigt.
Nach kurzer Umgewöhnung habe ich jetzt auf allen meinen Android-Geräten Firefox zum Standard-Android-Browser gemacht. Und lasse mich überraschen, wie der eingebaute Adblocker von Google Chrome funktioniert… wenn er denn mal kommt.
Update: Google unternimmt nun die ersten, wenn auch sehr zögerlichen Schritte zur Bekämpfung von Nerv-Werbung: In Zukunft soll Chrome für Android Werbe-Redirects blockieren – am Basis-Problem der Verschwendundung von Ressourcen durch unerwünschte Werbung ändert dies aber nichts, so dass Firefox für Android weiterhin mein Browser der Wahl bleibt.
]]>Im Computerspiel „The Long Dark“ gibt es jede Menge kreative Wege, sein Überleben zu vereinfachen. Ich habe für mich die folgenden witzigen Ideen entwickelt:
]]>Im Computerspiel „The Long Dark“ gibt es jede Menge kreative Wege, sein Überleben zu vereinfachen. Ich habe für mich die folgenden witzigen Ideen entwickelt:
Jagen ist ein notwendiges, aber aufwändiges Hobby: Sowohl Munition als auch Zeit sind knapp. Daher gibt es folgende Methode, um euren Jagd-Ertrag zu verdoppeln:
Sucht euch eine Umgebung, in denen sowohl Wölfe als auch Hirsche leben. Nun umkreist die Hirsche, bis ihr über die Hirsche gepeilt die Wölfe sehen könnt. Dann hetzt ihr die Hirsche in Richtung der Wölfe. Wenn alles klappt, wird einer der Wölfe einen Hirsch jagen und zur Strecke bringen.
Jetzt nehmt ihr euer Gewehr, und erlegt den abgelenkten Wolf, der am Hirsch rumknabbert. Jetzt habt ihr einen toten Hirsch und einen toten Wolf, deren Fleisch ihr nach Hause schaffen könnt.
Übrigens funktioniert die Methode auch, wenn ihr kein Gewehr habt, nur mit Zeitverzug: Da ihr den Wolf nicht erlegen könnt, lasst ihr den Hirsch vom Wolf erlegen, und kommt einfach später wieder. Die Überreste vom Hirsch reichen immer noch für eine Mahlzeit – kocht aber das Fleisch gut ab, um nicht irgendwelche Parasiten zu bekommen.
In „The Long Dark“ trefft ihr öfter auf Tierkadaver, an denen noch verwertbares Fleisch, Fell oder Innereien zu finden sind. Mit dem Hinweis „gefroren“ werdet ihr auf den Umstand hingewiesen, dass dieser Kadaver auch mit geeignetem Werkzeug wie Messern oder Äxten schwer zu bearbeiten sein wird, bzw. euer Werkzeug stumpf wird.
Die Lösung dafür ist so einfach wie trivial: Entfacht direkt neben dem Kadaver ein Feuer! Nach einiger Zeit taut das Tier an, und ihr könnt viel einfacher eurem Waidwerk nachgehen. Darüber hinaus friert ihr auch nicht bei der Arbeit. Die Wartezeit zum Antauen des Kadavers kann man übrigens gut zum Auftauen von 0,5 Liter Wasser nutzen.
Das funktioniert übrigens auch für Fischlöcher, in denen ihr angeln könnt: Ein Feuer daneben hält das Loch deutlich länger offen, und wärmt beim Angeln.
Übrigens: Geangelte Fische sind auch eine natürliche Quelle für Lampenöl.
Wind ist in der Natur meistens eine unangenehme Erscheinung: er kühlt euch aus, und erschwert das Entzünden von Feuer. Darüber können euch Tiere je nach Windrichtung wittern. Achtet daher auf die Windrichtung, indem ihr z.B. den treibenden Schnee beobachtet.
Beim Entzünden von Feuer wie auch bei der Bewegung im Gelände solltet ihr auf Winddeckung achten. Geht entsprechend in Senken und Hohlwegen, und entfacht euer Feuer nur in geschützten Stellen. Ein kleines Symbol zeigt euch, ob ihr windgeschützt seid.
Nach Stürmen finden sich übrigens abgebrochene Äste, die ihr gut als Brennholz verwenden könnt.
Eure Klamotten in Schuss zu halten ist ein guter Weg, um Erfrierungen zu vermeiden. Während alle eure Klamotten mit Stoff geflickt werden, geht das bei euren Schuhen nur mit Leder. Aber wo findet man nur Leder? Ein kleiner Tipp: Damit sind nicht Wolfspelze oder Kaninchenfelle gemeint.
Leder findet ihr, in dem ihr andere Schuhe zerlegt. Das ist zwar meist schade, aber lässt sich nicht ändern. Eine andere Quelle für Leder zwingt euch nicht diese traurige Entscheidung auf: Ab und zu findet ihr äußerst nutzlose fingerlose Lederhandschuhe. Diese sind aus Leder, dass man gut zum Reparieren von Schuhen benutzen kann.
Beim Durchsuchen von Städten und Hütten kann man schnell die Übersicht verlieren, wo man schonmal war. Eine ganz einfache Methode: Legt vor der Tür von einer durchsuchten Hütte einen überflüssigen Gegenstand wie Krähenfedern oder Steine ab.
Mit dieser Methode könnt ihr euch auch im Wald Wegweiser bauen. Legt einfach ein paar Steine in einem Muster, das euch die Richtung weist. Auch ein ausgebranntes Lagerfeuer kann als Wegzeichen dienen.
Übrigens könnt ihr Gegenstände auch einfach platzieren: Statt mit der linken Maustaste nehmt ihr den Gegenstand mit der rechten Maustaste auf, und könnt ihn danach wie einen Schlafsack oder ein Lagerfeuer frei platzieren. (Das hilft übrigens auch, um beim Trocknen von Fellen und Innereien die Übersicht zu behalten.)
Durchsuchte Autos kann man sich einfach dadurch markieren, indem man die Motorhaube aufsperrt.
]]>Vor einigen Wochen hat das Computerspiel „The Long Dark“ von Hinterland Studio endlich den lang ersehnten Story-Modus bekommen. Höchste Zeit, die wichtigsten Erkenntnisse zum Überleben in diesem Survival-Spiel zusammen zu fassen.
]]>Vor einigen Wochen hat das Computerspiel „The Long Dark“ von Hinterland Studio endlich den lang ersehnten Story-Modus bekommen. Höchste Zeit, die wichtigsten Erkenntnisse zum Überleben in diesem Survival-Spiel zusammen zu fassen.
Der Story-Modus weiht uns endlich in die Geschichte des Piloten Will ein, der mit seiner Ex-Frau an Bord mit seinem Flugzeug im tief-verschneiten kanadischen Hinterland abstürzt. Nachdem eine apokalyptische Sonneneruption alle Elektronik und Elektrik auf der Erde zerstört hat, bricht die Zivilisation zusammen – und mitten drin versucht Will, seine nach dem Absturz verschwundene Ex-Frau wieder zu finden.
Im Spiel selber muss beständig abgewogen werden, was man einerseits zum Überleben braucht, und anderseits sich nicht mit zu viel Gewicht belastet. Denn je mehr Ausrüstung Will mit sich herum schleppt, desto schneller ermüdet er, und braucht auch mehr Kalorien. Dementsprechend sollten die folgenden Arten von Trips unterschieden werden:
Dementsprechend sollte man bei jedem Ausrüstungsteil wissen, wie viel man mitnehmen soll.
Auf jedem Trip solltet ihr Brennholz, Zunder, Streichhölzer und für den Notfall eine Flasche Anzünder mitführen. Bis auf Brennholz wiegt alles so wenig, dass ihr beliebig viel mitführen könnt.
Beim Brennholz könnt ihr unterwegs natürlich mit Hilfe eines Beils euren Brennholzvorrat wieder auffüllen. Für den Fall der Fälle sollte man aber zumindest 2–3 Holzscheite mitführen.
Pro Tag solltet ihr ausreichend Nahrungsmittel mitführen, um zwischendurch den schnellen Hunger zu stillen. 1,5 Liter Trinkwasser und knapp 1000–1500 Kalorien an Nahrungsmitteln sollte man immer dabei haben. Von bestimmten Nahrungsmitteln wie z.B. Salzcrackern wird man aber durstig, dementsprechend sollte man mehr Wasser mitnehmen.
Für Langstreckentrips solltet ihr MREs bunkern – die sollte man nicht einfach zu Hause essen. Dosenfutter dagegen ist perfekt für den Tagesanfang oder -abschluss, zumal man das auf einem Herd schön aufwärmen kann.
Bei Kleidung kann man sich schnell verleitet fühlen, möglichst warme und winddichte Kleidung zu nutzen. Zu beachten ist, dass bestimmte Kleidung auch deutlich schwerer ist, und teilweise doppelt so viel wiegt wie ein nur etwas weniger warmes Teil.
Viel wichtiger als Hochleistungs-Klamotten sind eher Klamotten in gutem Zustand: Eine reparierte Hose wiegt genau so viel wie eine zerschlissene Hose des selben Typs, ist aber deutlich wärmer.
Das Will ab und an mal friert ist nicht zu vermeiden. Sinnigerweise sollte man bei bestimmten Temperaturen, bei Sturm oder nachts einfach nicht vor die Tür gehen (und den Tag lieber mit dem Reparieren von Ausrüstung verbringen).
Wer ein Gewehr besitzt, fühlt sich verleitet, es immer und überall dabei zu haben. Tatsächlich ist das Gewehr aber relativ schwer. Will sollte es also nur mitnehmen, wenn er auf Jagd geht, oder wenn er einen Langstrecken-Trip vor sich hat. So oder so braucht man nur das mit 10 Schuss vollgeladene Gewehr – Zusatzmunition oder das Gewehr-Putzset sind verschwendeter Platz, wenn ihr nicht gerade umzieht. Nach Benutzung kann man das Gewehr auch gut abends in der heimischen Basis putzen und nachladen.
Stattdessen ist die Leuchtpistole eine leichtgewichtige, wartungsarme Selbstverteidigungswaffe. Sie verscheucht Wild auch auf Distanz – und gewiefte Jäger können aus kurzer Distanz Wölfe auch damit über den Haufen schießen. Kleiner Profitipp: Gleich nach jedem Schuss nachladen.
Es lässt sich nie komplett vermeiden, in einen Kampf mit einem Wolf verwickelt zu werden (oder mal einen Abhang runterzustolpern). 4 Tabletten Schmerzmittel, zwei Tabletten Antibiotika, zwei Bandagen und 0,5 Liter Desinfektionsmittel (bzw. der pflanzliche Äquivalent) reichen für jede Notlage locker hin. Abenteuerlustige Naturen verzichten auf die Antibiotika und Desinfektionsmittel, wenn man abends wieder in der Basis sein kann.
Da bis auf das Desinfektionsmittel Medikamente auch nicht viel wiegen, ist das Mitnehmen auch keine besondere Belastung.
Petroleumlampen? Viel zu schwer! Leuchtfackeln? Schon besser! Aber richtig gut sind Fackeln, denn man kann sie auch als Brennholz (s.o.) verwenden, und können schnell mit einem Lagerfeuer produziert werden.
Der Werkzeugkasten, das Gewehr-Putzset, der Schleifstein wie auch das Nähzeug sind Ausrüstungsteile, die ihr normalerweise nicht unterwegs braucht – lasst sie lieber daheim. Für notdürftige Reparaturen an der Kleidung kann man behelfsmäßig auch einen Angelhaken nebst Schnur verwenden. Falls ihr öfter Ärger mit Wölfen erwartet, könnt ihr aber gut ein kleines Nähset mitnehmen.
Die Brechstange ist zwar sehr schwer, in einigen Schränken und Kofferräumen gibt es aber meistens tolle Sachen zu entdecken, wenn sie aufgehebelt werden müssen. Optional kann man sich überlegen, zunächst das Gelände ohne Brechstange aufzuklären, um später dann nochmals zu hebel-bedürftigen Schränken zurückzukehren.
Das Messer und das Beil sollten immer dabei sein – mit beiden Werkzeugen bekämpft ihr Wölfe, zerkleinert Brennholz und Tierkadaver. Beide Werkzeuge sollten nicht nur überall hin mitgenommen werden, sondern auch immer in einem Top-Zustand sein!
Die Schlafrolle braucht ihr nur für längere Trips. In fast jeder Hütte sollte aber ein Bett zu finden sein. Nur wenn ihr die Gegend nicht kennt und nicht abends wieder daheim sein könnt, solltet ihr die sperrige Rolle dabei haben.
Und ein sehr unwahrscheinliches Werkzeug solltet ihr ebenfalls immer dabei haben: einen Dosenöffner. Nichts ist schlimmer, als sein Messer an einer Dose Tomatensuppe abzubrechen und dann zu verhungern. Ein Dosenöffner wiegt nicht viel und öffnet euch den Weg zu lang haltbaren Nahrungsmitteln, die man unterwegs findet.
]]>So könnte die Aufgabe z.B. sein, innerhalb von HTML nur Anpassungen innerhalb einer <table>
, eines <li>
oder in <code>
durchzuführen. Eine sehr performante Lösung dafür könnte ein Stream-Parser sein, der beim Erreichen eines bestimmten Zeichens in einen anderen Modus umspringt.
Tatsächlich lässt sich ein ähnliches Verhalten auch mittels einfacher Verschachtelung von regulären Ausdrücken erreichen. Das mag nicht so performant sein, ist aber eine größere Verbesserung gegenüber einer endlosen Aneinanderreihung von global durchgeführten, regulären Ersetzungen.
Ein Beispiel für ein solches Verhalten:
/**
* Improves HTML.
* @param {String} html [description]
* @return {String} [description]
*/
var fixHtml = function (html) {
return html
// Fix in <table>
.replace(/(<table>)([\s\S]+?)(\/table)/g, function(all,before,content,after) {
return
before +
content.replace(/(<tr>[\s]*)<td><strong>(.+?)<\/strong><\/td>/g,'$1<th scope="row">$2</th>') +
after
;
})
// Fix in <code>
.replace(/(<code>)([\s\S]+?)(\/code)/g, function(all,before,content,after) {
return
before +
content.replace(/((?:\/\/|\s#).+?(?:\n|$))/g, '<i class="comment">$1</i>') +
after
;
})
;
}
]]>"December 2015"🐱"12.72"🐱"9.41"
"January 2016"🐱"14.80"🐱"10.23"
"February 2016"🐱"15.32"🐱"11.41"
CSV steht für „Cat-Separated Values“ und löst im Zeitalter von UTF-8 „Comma-Separated Values“ ab.
Update: Ein Kollege wies mich zurecht darauf hin, dass ähnlich wie beim alten CSV das Problem entstehen kann, dass beim Austausch von Daten das Trennzeichen nicht richtig erkannt wird. Stellt also beim Austausch von Daten sicher, dass nicht 🙀
verwendet wird!
"December 2015"🐱"12.72"🐱"9.41"
"January 2016"🐱"14.80"🐱"10.23"
"February 2016"🐱"15.32"🐱"11.41"
CSV steht für „Cat-Separated Values“ und löst im Zeitalter von UTF-8 „Comma-Separated Values“ ab.
Update: Ein Kollege wies mich zurecht darauf hin, dass ähnlich wie beim alten CSV das Problem entstehen kann, dass beim Austausch von Daten das Trennzeichen nicht richtig erkannt wird. Stellt also beim Austausch von Daten sicher, dass nicht 🙀
verwendet wird!