Friday, July 11. 2008
Das erste Mal gut geschlafen in Haifa, allerdings mit Ohrstoepseln. Bin am Bahnhof auf dem Weg nach Akko von einem Mann angesprochen worden, der an meinem Dialekt erkannt hat, dass ich Deutsch spreche. Hab mit ihm ein paar Worte gewechselt, er hat mir erzaehlt, sein Vater ist 1948 von Wien nach Israel emigriert. Er hat mir noch viel Spass in Israel gewunschen, und ich bin zu meinem Zug nach Akko gegangen. Dort hab ich zufaellig zwei junge Franzoesinnen, die perfekt Deutsch (ja, tatsaechlich) gesprochen haben, getroffen. Nachdem die aber in Akko auf der Suche nach einem Zimmer waren, und ich nur begrenzt Zeit hatte, haben sich unsere Wege schnell wieder getrennt.
Die Altstadt von Akko ist uebrigens grossartig. Im Grunde genommen ein einziges Netzwerk aus schmalen, verwinkelten Gassen. Die arabische Bevoelkerung dominiert hier eindeutig (teilweise sind Geschaefte und Strassen ausschliesslich in Arabisch angeschrieben), die Strassenhaendler am tuerkischen Basar sind unaufdringlich, und der angeschlossene Markt wirkt authentisch. In der unterirdischen Kreuzritterstadt finden derzeit leider Bauarbeiten statt, trotzdem ist es mir gelungen, ein paar wirklich imposante Bilder zu schiessen. Und sobald ich zurueck bin, wird's ein paar ganz nette Panoramen geben. Nachdem ich alles, was ich sehen wollte, gesehen habe, hab ich mich schliesslich noch in eines der Lokale am Strassenrand der (vermutlichen) Hauptstrasse von Akko gesetzt, und ein koestliches Schawarma auf Hummus gegessen, dazu einen wunderbaren Gurken-Tomaten-Soldat, gewuerzt mit reichlich Koriander (wenn ich mich recht entsinne).
Um ca. 15:15 hab ich mich dann zum Bahnhof zurueckbegeben, wo mir mitgeteilt wurde, dass der letzte Zug nach Haifa schon um 14:30 abgefahren ist. FAIL. Die Schabbat-Ruhe macht echt alles schwieriger. Bin dann zum Egged-Busbahnhof, wo ich zufaellig auf ein finnisches Paar getroffen bin, die ebenfalls nach Haifa und noch dazu in die selbe Jugendherberge wie ich wollten. Nach einem interessanten Gespraech, das sich mit einem Grundwehrdiener (interessanterweise mit einem Offiziersdienstgrad, den er als "Academic Officer" umschrieben hat, den jeder Wehrpflichtige, der vorher studiert hat, nach 6 Monaten Training erhaelt; lt. Wikipedia ist es ein Leutnantsrang) ergeben hat, haben wir den Bus nach Haifa genommen. Leider ging der in einen Aussenbezirk, und ein Bus ins Stadtzentrum ging um die Uhrzeit nicht mehr (hatte ich schon erwaehnt, dass die Schabbat-Ruhe in der Hinsicht echt stoerend ist?), also haben wir ein Taxi in die Jaffa Road genommen.
Morgen wird nicht viel los sein, ich werde wahrscheinlich hauptsaechlich herumhaengen, und ein wenig in der Stadt fotografieren. Und am Sonntag geht es schliesslich nach Jerusalem. Toll wird das.
Thursday, July 10. 2008
Heute im "Clandestine Immigration and Naval Museum" gewesen, wo man einiges ueber die Geschichte der israelischen Marine, die illegale Einwanderung nach Palestina nach dem 2. Weltkrieg bis zur Ausrufung des Staates Israel, und man kann auch ein U-Boot und ein Missile Boat (der deutsche Begriff "Flugkoerperschnellboot" ist viel zu sperrig) von innen anschauen. Das Periskop des U-Boots funktioniert uebrigens bestens. Das Museum ist aehnlich dem Haganah-Museum umgesetzt, jedoch noch wesentlich umfangreicher. Der einzige Wermutstropfen war der lange Fussweg, insgesamt bin ich 1,5 Stunden in der prallen Sonne gegangen, und es sind knapp 2,5l Mineralwasser und Traubensaft mit Muskat-Aroma (ja, sowas gibts hier) draufgegangen.
Wie im letzten Eintrag schon erwaehnt, hab ich heute auch mein Hotel in Jerusalem fixiert, in unmittelbarer Naehe zur Jerusalemer Altstadt. Nach einem eher spartanischen Gaestehaus und einer nicht so tollen Jugendherberge wird die zweite Haelfte des Aufenthalts angenehmer werden.
9.7. 11:15: Sitze im Zug von Tel Aviv nach Haifa. Das Ticket kostet unverschaemt-subventioniert-guenstige 26 Schekel (ca. 5 Euro). Der Zug ist komfortabel, und gut klimatisiert. Besonders auffaellig sind die vielen Soldaten, viele davon mit ihren M-16, M-4 und Tavor-Sturmgewehren unterwegs. Allgemein eine schleissige Adjustierung: die Uniformhosen werden wie Baggy Pants getragen, das Hemd oft heraussen, verschiedenste Schuhe, von offiziell aussehenden Feldschuhen ueber Sport- und Skateschuhe bis hin zu simplen Flip-Flops. Ebenso eine schleissige Rasur, und das Gewehr wir mehr wie ein Mode-Accessoir getragen. Selbst Offiziere tragen leichte Sandalen. Vielleicht ist gerade diese "Laessigkeit" das Geheimrezept dieser Armee.
Gegenueber von mir haengt eine Eiswerbung. "Nok Out - Feels like a crime". Irgendwie ist der Slogan richtig dumm. Wie fuehlt sich ein Verbrechen an, und inwiefern ist das ueberhaupt mit einem Eis vergleichbar? Naja.
Israel, vom Zug aus gesehen, sieht aus wie das typische halbverdorrte Mittelmeerland, nur etwas orientalischer. Spanien trifft Tuerkei trifft Aegypten, plus meist dreisprachige Beschriftungen.
9.7. 20:45: Im Youth Hostel angekommen, auf dem Zimmer einem Amerikaner namens Moss etroffen. Der kannte ein gutes Lokal mit viel Bier und gutem Essen. Dann rauf auf den Berg Carmel, ein anstrengender Marsch, der mit einer herrlichen Aussicht ueber die Stadt und die Bucht bis Akko belohnt wurde. Der bisherige Eindruck von der Stadt ist ein ziemlich guter, generell finde ich Haifa schoener als Tel Aviv. Auch die klimatischen Bedingunen wirken etwas angenehmer hier.
10.7. 11:45: So, jetzt hab ich auch noch ein Hotel, zu Fuss keine 10 Minuten von der Altstadt entfernt. Damit sind auch schon wieder alle Aufenthalte geplant. Damit sind saemtliche Unterkunftssorgen verflogen.
Achja, Fotos gibts hier.
Tuesday, July 8. 2008
6.7. 16:40: Toll, der Metalldetektor loest bei meinen Schuhen aus. Und das schon in Linz. Genau das, was ich im Metalldetektor-gespickten Land Israel brauchen kann.
7.7. 9:10: Das Hostel, in dem ich uebernachte, ist von so einer juedisch-messianischen Gruppe, mit "normalen" christlichen Freiwilligen aus der ganzen Welt.Die Leute sind ueberfreundlich, das behagt mir nicht, weil es so froehlich-gekuenstelt wirkt. Das Zimmer ist ok, das Klima in der Nacht allerdings unertraeglich. Erleichterung verschafftnur die laute Klimaanlage.
7.7. 10:45: Apaches und Super Cobras ueber Tel Aviv. Schuelergruppen, die von Securites mit M1A1 Carbine begleitet werden. Soldaten, die auf kleinen Mopeds durch die Stadt rasen: Das Land ist merklich bewaffnet, und diese Bewaffnung draengt sich noch dazu foermlich auf.
7.7. 12:05: Die Sonne brennt vom Himmel, die ersten 1,5l Wasser sind verbraucht, und die Sonnencreme vermischt sich beim Auftragen mit dem Schweiss zu einer einzigen grauslichen Suppe. Der Strand ist riesig lang, sauber, und abschnittsweise ziemlich dicht belegt.
8.7. 8:35: Gestern hab ich mich das erste Mal verrannt, und bin einen riesigen Umweg zu meinem Hotel zurueckgegangen. Halbseitige Karten aus Reisefuehrern sind nicht grad das Wahre. Ueberhaupt, muss ich sagen, ist Tel Aviv eine teilweise ziemlich heruntergekommene Stadt. An vielen Ecken wird gebaut, die Strassen sind teilweise sandig-dreckig, an vielen Haeusern broeckelt der Aussenputz herunter. Einfach unansehnlich. Der Plan fuer heute: ein Zimmer in Akko kriegen, rausfinden, wie ich am besten dorthin komme, und dann noch ein paar Museen anschauen. Eines, das Haganah-Museum, wollte ich gesternbesuchen, es war fuer mich allerdings unauffindbar. Schlechte Karte eben. Der gestrige Wasserverbrauch lag uebrigensbei 3 Flaschen zu 1,5l.
8.7. 12:55: uiuiui, das Zimmer reservieren in Akko ist vielleicht stressig. Nachdem das einzige Hostel in Haifa keinen Platz hatte, und die Nummer zur Reservierung der israelischen Houth-Hostel-Vereinigung vollkommen woanders rausgekommen ist, hab ich mal eines der teuren Hotels in Akko reserviert, und zwar so, dass ein Ausflug nach Haifa mit eingeplant ist. In der Stadt selbst laufen einem jede Menge deutscher Bierschilder ueberden Weg, wie z.B. Paulaner und Weihenstephan.
8.7. 15:35: das Haganah-Museum ueber die gleichnamige Miliz und Vorgaengerorganisation der IDF ist absolut empfehlenswert. Und waere wohl noch besser, wenn man Hebraeisch koennte.
8.7. 16:31: ich sitze gerade in einem Internetcafe, und lese, dass meine Reservierung in genanntem Hotel in Akko nicht akzeptiert wurde. Scheisse. Ich hab jetzt noch ein Gaestehaus in einem Kibbuz nahe Haifa gefunden, mal hoffen, dass die meine Reservierung annehmen. Und langsam beginne ich zu zweifeln, ob das kurzfristige, spontane Reisen durch Israel ohne fixe Reservierungen ausser fuer den ersten Halt in Israel wirklich so eine tolle Idee war... naja, hoffen wir, dass die Reservierung gut geht, dann haette ich bis Sonntag Zeit, ein Zimmer in Jerusalem zu finden. Das werde ich dann zu meiner "Basis" fuer weitere Reisen machen.
8.7. 17:20: puh, grad noch ein Bett in Haifa gekriegt, allerdings in einem Dormitory. :-/ Nicht unbedingt, das, was ich wollte, aber dafuer werd ich mich wohl in Jerusalem etwas besser einquartieren (und mich vor allem frueher um ein Hotelzimmer kuemmern).
Sunday, June 22. 2008
Kris erklärt Blütenporn zum neuen Katzencontent. Na dann, hier mein Blütenporn:
Learned basic C++ from an inadequate tutorial.
#include <iostream.h> using namespace std; // thanks, joe void main(int argc, char** argv) { cout << "Hello, world!" << endl; }
Learned basic C++ from a slightly better tutorial.
#include <iostream> using namespace std; int main(int argc, char* argv[]) { cout << "Hello, world!" << endl; return 0; }
Learned about namespace pollution.
#include <iostream> int main(int argc, char* argv[]) { std::cout << "Hello, world!" << std::endl; return 0; }
Learned about classes.
#include <iostream> #include <string.h> class Hello { private: char* msg; public: Hello() { this->msg = strdup("Hello, world!"); } ~Hello() { delete this->msg; } char* hello() { return this->msg; } }; int main(int argc, char* argv[]) { Hello* hello = new Hello(); std::cout << hello->hello() << std::endl; delete hello; return 0; }
Learned about the C++ string container.
#include <iostream> #include <string> class Hello { private: std::string msg; public: Hello() { this->msg = "Hello, world!"; } std::string hello() { return this->msg; } }; int main(int argc, char* argv[]) { Hello hello; std::cout << hello.hello() << std::endl; return 0; }
Found out about the STL.
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/bits/ios_base.h: In copy constructor ‘std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)’: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/bits/ios_base.h:783: error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/iosfwd:52: error: within this context /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/iosfwd: In copy constructor ‘std::basic_ostream<char, std::char_traits<char> >::basic_ostream(const std::basic_ostream<char, std::char_traits<char> >&)’: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/iosfwd:61: note: synthesized method ‘std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)’ first required here test.cpp: In function ‘int main(int, char**)’: test.cpp:7: note: synthesized method ‘std::basic_ostream<char, std::char_traits<char> >::basic_ostream(const std::basic_ostream<char, std::char_traits<char> >&)’ first required here test.cpp:7: error: initializing argument 3 of ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Funct = std::basic_ostream<char, std::char_traits<char> >]’ /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/bits/stl_algo.h: In function ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Funct = std::basic_ostream<char, std::char_traits<char> >]’: test.cpp:7: instantiated from here /usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.1/../../../../include/c++/4.3.1/bits/stl_algo.h:3791: error: no match for call to ‘(std::basic_ostream<char, std::char_traits<char> >) (char&)’
Mastered the basic containers of the STL.
#include <iostream> #include <string> #include <vector> int main(int argc, char* argv[]) { std::string hello = "Hello, world!"; std::vector<char> v; for (unsigned int j = 0; j < hello.length(); ++j) { v.push_back(hello[j]); } std::vector<char>::iterator i; for (i = v.begin(); i != v.end(); ++i) { std::cout << <strong>i; } std::cout << std::endl; return 0; }
Mastered the STL.
#include <iostream> #include <string> #include <algorithm> class printc { public: void operator() (char c) { std::cout << c; } }; int main(int argc, char</strong> argv[]) { std::string hello = "Hello, world!"; std::for_each(hello.begin(), hello.end(), printc()); std::cout << std::endl; return 0; }
Read the C++ FAQ Lite and realized C++ mastery is impossible.
#include <iostream> int main(int argc, char* argv[]) { std::cout << "Hello, world!" << std::endl; return 0; }
Read the C++ FQA Lite.
#include <stdio.h> int main(int argc, char* argv[]) { printf("Hello, world!\n"); return 0; }
Heard of 4chan and wound up in /b/.
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
Found a replacement for /b/ after finding it overrun by ``cancer'' and ``newfags.''
One word, the forced indentation of code. Thread over. Also, read SICP!
Read SICP after months of telling people to read SICP.
(display "Hello, world!") (newline)
Achieved Satori after re-reading SICP every day for many years.
void main() { puts("Hello, world!"); }
(gefunden irgendwo auf 4chan, Dank an nion)
Tuesday, June 10. 2008
Ein Rant über meine Bank ist notwendig. Fürs Online-Banking dort waren zuerst TANs, dann indizierte TANs (iTAN) im Einsatz. Ich halte die indizierten TANs in Kombination mit Username und Passwort für ausreichend sicher, insbesondere, weil die iTAN-Liste die Merkmale eines Codebuchs aufweist. Noch dazu ist der Übermittlungsweg der iTAN-Liste aufgrund der speziellen Verpackung (undurchsichtiges, vor Durchschein-Angriffen mit einem S/W-Zufallsmuster geschütztes Kuvert, in die iTAN-Liste de facto nicht mehr knitterfrei zurück eingeführt werden kann) hinreichend vertrauenswürdig.
Vor ein paar Monaten wollten die mir doch allerdings "TAC-SMS" (Wikipedia nennt es mobile TAN [mTAN]) anbieten. Das funktioniert dann so, dass man übers Online-Banking-Interface ein SMS an sein Handy anfordern kann, worüber dann ein 5 Minuten lang gültiger Code übermittelt wird. Abgesehen davon, dass als Übertragungsweg ein streckenweise unverschlüsselter und grundsätzlich als kompromittiert geltender Kanal verwendet wird, so steht als Angriffsvektor immer noch das Handy selbst da: einerseits könnte es gestohlen werden, andererseits könnte auf dem Handy eingeschleuste Schadsoftware das SMS direkt abgreifen. Das vormals physische Codebuch wird bei mTAN damit auf deutlich schwieriger auditbare Medien als bei TAN/iTAN verlagert. So weit, so schlecht.
Wirklich schlimm wird das ganze allerdings durch den Umstand, dass seit neuestem Überweisungen von Beträgen mehr als EUR 1000,- via iTAN bei der Sparkasse nicht mehr möglich sind. Das default sind übrigens EUR 300,- (damit könnte ich nicht mal meine Miete zahlen), und ich musste intervenieren, um das Limit hochgesetzt zu bekommen.
Ich frage mich echt, wer bei der Sparkasse für das threat modeling zuständig ist. Wahrscheinlich der gleiche Schlag Mensch, der auch die Vorteile von Wahlcomputern preisen würde. Oder doch jemand, der in einem Deployment von mTAN statt TAN/iTAN ein erhebliches Einsparungspotential sieht? Eigentlich will ich es garnicht wissen.
Thursday, April 17. 2008
There are certain C standard library functions whose potentially insecure behaviour is well known. These functions, such as sprintf() or strcpy() are usually avoided these days. But today, while reviewing some security-related code, that there is one function where you wouldn't really expect any weird oder unusual behaviour. The function that I'm talking about is strtoul().
Most people will automatically know and/or associate that it's the unsigned long variant of the strtol() function that is used to convert strings to integers. Some may also think about using this function to verify that the result of the string to integer conversion can never be negative, and thus, strtoul() completely ignores negative numbers. But this is wrong: strtoul() does check for a + or - sign, and if it finds a "-" before the actual number to be converted, it negates the the scanned value prior to returning it. That's what the manpage and the official SuSv2/v3 documentation say, and it sounds innocuous. But it definitely isn't, and this little test program will show this: #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <errno.h> int main(int argc, char * argv[]) { char * endptr; unsigned long int value; value = strtoul(argv[1], &endptr, 10); if (value == ULONG_MAX) { } return 0; }
Let's see how this program behaves when feeding it some numbers: To sum this up: - Positive numbers are scanned correctly, except for ULONG_MAX.
- Negative numbers are scanned, and their (negative) value is casted to an unsigned type. In the case of -1 that becomes 4294967295, this also (incorrectly) signals an error during conversion, in the case of -2 it doesn't.
- Numbers that are too large are signaled as such.
In my opinion, this behaviour is clearly unacceptable, as it is completely counter-intuitive, it can lead to incorrect error signaling, and is a hazard for anybody who wants to stick to unsigned integers only. It's nothing but a thinly disguised (unsigned long)strtol(...). So don't use it. Use strtol() and explicitly manually exclude negative values instead, and explicitly cast it to an unsigned value afterwards. That limits the maximum value that you can scan, but hey, the world isn't perfect.
Tuesday, April 15. 2008
Am Wochenende bin ich zu dem Entschluss gekommen, im Juli oder August dieses Jahres für voraussichtlich zwei Wochen nach Israel zu fahren, und dort als Rucksacktourist im Land herumzureisen. Mein Team hatte keinen Einwand dagegen, grobe Pläne sind schon geschmiedet, alle möglichen Ziele schon rausgesucht. Einzige Bedingungen: nicht ins Westjordanland einreisen, mindestens 10 km Abstand zum Gazastreifen halten (so weit fliegen nämlich die Qassam-3-Raketen), und nicht an die Grenze zum Libanon. Ja, spannend wird das.
Sunday, April 6. 2008
Gerade dieses tolle "Spam"-Mail gekriegt: From: mariamayer.online@XXXXXXXXXXXXXXX.de Date: Sun, 6 Apr 2008 20:22:46 +0100 To: w3bfukk0r@YYYYYYYYYYYYYY.de Subject: Subject for german customers
Here goes the text (propably german) for the german speaking customers. FAIL!
Monday, March 31. 2008
Irgendwie fühlt es sich komisch (im positiven Sinne) an, wenn man ein Angebot für eine freiberufliche Tätigkeit erhält, deren primäre Anforderung es ist, Know-How für genau das Produkt zu besitzen, an dem ich in der Arbeit mitentwickle. Natürlich habe ich abgelehnt, denn an dem Produkt selbst mitzuarbeiten ist doch spannender, als es "nur" zu verwenden.
Tuesday, February 19. 2008
Poah, wenn ich sowas lese, dann muss ich kotzen: Stallman sagte, auch der Kernel enthalte nicht freie Bestandteile. Torvalds persönlich bezeichnete der GNU-Gründer als "einen Studenten, der einen Kernel geschrieben hat".Stallman wirft Torvalds vor, nicht für freie Software einzustehen sondern vielmehr den Spaß am Programmieren im Vordergrund zu sehen. Ich sage nur: was RMS mittlerweile so von sich gibt, ist völlig überbewertet. Wenn RMS Linus Torvalds vorwirft, den Spaß an der Programmierung hochzustellen, dann ist das im Grunde genommen der Vorwurf, dass Linus Torvalds ein Hacker (im ursprünglichen Sinne) ist.
Meiner Meinung nach zeigt das doch wieder einmal, wie verbohrt RMS mittlerweile "seine" Ideologie bewirbt. Auch nion meint, dass RMS nur noch zu seinesgleichen predigt. Und dann noch sowas: Vor allem kommt es laut Stallman darauf an, dass Schulen "allein freie Software unterrichten und einsetzen". Damit könnten sie zum einen Geld sparen. Frei heiße zwar nicht unbedingt kostenlos. Aber gerade für Ausbildungsstätten sei die Freiheit wichtig, "Programme weiter zu verbreiten".
Ich sage: man darf Fundamentalisten wie RMS nicht die Deutungshoheit über den Freiheitsbegriff kampflos überlassen.
Der Richtungsstreit zum Freiheitsbegriff im Kontext Software führt ja im wesentlichen in zwei Richtungen, und zwar einerseits die individuelle Freiheit, und andererseits die kollektive Freiheit. Während GNU-Fundis wie RMS ausschließlich kollektive Freiheit fordern, und dabei individuelle Freiheiten ziemlich zugrunde richten, ist die Gegenbewegung um keinen Deut besser, nämlich die BSD-Fundis, die es zwar OK finden, dass ihre Arbeit von kommerziellen Firmen en masse gerippt wird, aber sich daran stößt, wenn sich BSD-Sourcecode in GPL-lizenzierter Software wiederfindet: individuelle Freiheit über alles, aber kollektive Freiheit wird aktiv bekämpft. Ein dringend nötiger Ausgleich zwischen den beiden fundamentalistischen Position ist dringendst notwendig, aber leider nicht in Sicht. Klar ist aber, dass diese Art von Fundamentalismus in einem Themenkomplex wie Softwarelizenzierung mittel- bis langfristig äußerst schädlich ist.
Und zu guter Letzt möchte ich noch betonen: zur wahren Freiheit gehört auch dazu, die Freiheit zu haben, zwischen Freier Software/Open Source und proprietärer Software wählen zu können.
Saturday, February 16. 2008
Nachdem ich mir heute einen Scanner gekauft hab: auf welche Plattform für ein geplantes Fotoblog (hauptsächlich Polaroid-Bilder) soll ich zurückgreifen? - Selbst hosten? Wenn ja, welche Software?
- Eine bestehende Hostingplattform verwenden?
- ...?
Tipps und Erfahrungsberichte bitte per Kommentar.
Wednesday, February 13. 2008
Weil es immer wieder zur Sprache kommt, auch in meiner Arbeit (obwohl wir keine Raketenwissenschaftler sind, und kein Ada programmieren), hier findet sich eine Seite mit einer ziemlich guten Beschreibung, was denn genau schief gelaufen ist beim ersten Start der Ariane 5. Und hier das Code-Snippet: declare vertical_veloc_sensor: float; horizontal_veloc_sensor: float; vertical_veloc_bias: integer; horizontal_veloc_bias: integer; ... begin declare pragma suppress(numeric_error, horizontal_veloc_bias); begin sensor_get(vertical_veloc_sensor); sensor_get(horizontal_veloc_sensor); vertical_veloc_bias := integer(vertical_veloc_sensor); horizontal_veloc_bias := integer(horizontal_veloc_sensor); ... exception when numeric_error => calculate_vertical_veloc(); when others => use_irs1(); end; end irs2;
|