Wenn
ihr eine Emailadresse schreibt, wie m_mustermann11@cs.uni-kl.de, sagt
euch LaTeX "Yo Buddy, du wolltest bestimmt 'ne Matheumgebung machen, ich
hab dir die $ ergänzt, nichts zu danken."
Ihr wolltet aber
garkeine Matheumgebung oder? Dann schätzt ihr bestimmt als erstes,
"Whoow, da ist ein '@' im Weg! Das sollte ich irgendwie maskieren." Und
dann sucht ihr eine gefühlte Stunde nach
Auswegen, und kommt irgendwann auf die komische Idee, andere Zeichen zu
escapen, wie dieses schelmisch tiefstellende '_'. Ihr compiled die Adresse "m\_mustermann11@cs.uni-kl.de"und es geht.
Also: Wenn ihr ein Unterstrich in LaTeX schreiben wollt, dann escaped ihn richtig.
Xubuntu kommt von Haus aus mit dem Display-Manager lightdm. Hat man bei der Installation ausversehen das Häckchen zur automatischen Anmeldung gesetzt, gibt es aber kein Einstellungsmenü um das wieder abzuwählen bzw. zu Ändern.
In der Config in
/etc/lightdm/lightdm.confsetzt man mit der Zeile
autologin-user=contradictioned
Ich hab gerade die schöne Geschichte von Daniel G. Taylor gelesen, der irgendwann 2006 Langeweile hatte und mit seinem Bruder einen eigenen Webserver Names Oriven programmiert hat.
Das Paper, das im wesentlichen die Geschichte erzählt, dazu ist auf der Projektseite falsch verlinkt, über Google stieß ich aber auf den richtigen: programmer-art.org/media/articles/oriven-paper.pdf stimmt jetzt :)
Ich mag das Webframework Ruby on Rails sehr für seine Modularität, seine textliche Klarheit und seine Architektur. Diese Eigenschaften kommen zu einem großen Teil von der grundlegenden Sprache Ruby, aber auch vom gewachsenen Ökosystem.
Ruby bringt das Paketsystem Rubygems mit, das sich wie mit den Linux-Systempaketmanagern pacman, apt, ... vergleichen lässt. Für den Programmieralltag sehr angenehm werden Pakete, als gem installiert, sofort im PATH gefunden. Beispiel:
$ gem install json
Damit wird das gem json in der aktuellsten Version installiert und der folgende Code findet im require-Statement alles erwünschte.
require 'json'
puts JSON.generate [0, 1, 3, "Hallo"]
Ein neues Rails-3.2-Projekt benötigt aber gleich 40 Gems. Das Rails-3.0-Projekt von vor einem halben Jahr benötigt andere 40 Gems und von der Redmine-Installation, die noch Rails-2.3 benutzt, und ihren Abhängigkeiten will ich garnicht erst sprechen. Deshalb:
Mit dem Ruby Version Manager kann man sich verschiedene Interpreter (für die Sprache Ruby gibt es eine Menge Interpreter neben der Refernzimplementierung wie JRuby, Rubinius, ree, ...) installieren und zu jedem Interpreter auch ein Gemset. Das ist eine jeweils eigener Ordner in den zusammengehörige Gems installiert werden.
Praktisch sieht das so aus, dass man dann eine Ordnerstruktur auf der Festplatte hat wie
.rvm
|-- rubies
| |-- 1.9.3
| |-- ree
| | ...
| `-- jruby
`-- gems
|-- 1.9.3@global
|-- 1.9.3@beispiel
|-- ree@global
|-- ...
...
Den Alltagsservice, den RVM einem dann noch bietet, ist das Umsetzen der Umgebungsvariablen, sodass man sich mit dem Befehl
$ rvm use 1.9.3@mygemset
in das System lädt, sowie die gems, die in mygemset installiert wurden:
$ which rvm
/home/manuel/.rvm/bin/rvm
$ gem list
*** LOCAL GEMS ***
bundler (1.0.22)
json (1.6.5)
rake (0.9.2)
Und genauso kann man wieder einen anderen Interpreter und ein anderes Gemset wählen:
$ rvm use 1.9.3@mygemset
$ which rvm
/home/manuel/.rvm/bin/rvm
$ gem list
*** LOCAL GEMS ***
bundler (1.0.22)
Damit zwischen den verschiedenen Gemsets so automatisch wie möglich umgeschaltet wird, benutze ich auch noch .rvmrc mit sinnvollen Namen für die Gemsets.
(oder yet another versioning system.) Wenn ich am Laptop spontan neuen Rails-Code schreibe, das Projekt am heimischen Rechner fertig machen und auf dem Server deployen will, eignet sich eine Versionsverwaltung unter anderem zum schnellen Rumschieben von Dateien. Die miteingecheckte .rvmrc sorgt dann zumindest dafür, dass überall die Gemsets gewechselt werden.
Die Auswahl der Gems darin übernimmt bei Rails das gem bundler, was ich auch für andere Ruby-Projekte nur Empfehlen kann.
Das Ausliefern der Seiten übernimmt bei mir dann der Phusion Passenger, der privat mit nginx - auf der Arbeit auch mal mit Apache - zusammen den Webserver mit der Rails-App verschweißt.
Auch wenn mein Output hier eher gering war bisher, habe ich mich mal (um mich auch vorm Lernen zu drücken) am Design vergangen und ein wenig Bild, Farbe und Schrift verändert.
Für die Bildchen in der Navigation (da kommen auch noch mehr) und die Überschriften hab ich Skizzen gescannt und mit Gimp bearbeitet. Ganz gefällt es mir noch nicht, aber ich kann erstmal damit leben. Das sollte auch ein Prototyp für sketchy Webdesign sein.
Was die Farben angeht, habe ich mich von meinem alten Lieblingsorange #FF9900
zum etwas dunkleren #FF6600
gewendet. Da hat auch Daniel durchaus geholfen, der einmal gesagt hat, dass er es blöd findet, und seitdem sah es für mich auch irgendwie ausgeblasst aus.
Die Schrift für den Fließtext heißt übrigens Gentium und ist unter OFL lizensiert.
Shop-Empfehlung:
Mal abgesehen von Moleskine-Zeug aller Art, gibts bei denen Bookdarts. Beschde.
"Eine Wahl im Sinne der Politikwissenschaft ist ein Verfahren in Staaten, Gebietskörperschaften und Organisationen zur Bestellung einer repräsentativen Person oder mehrerer Personen als entscheidungs- oder herrschaftsausübendes Organ." - http://de.wikipedia.org/w/index.php?title=Wahl&oldid=95062476
Das, was heute abgestimmt wird, ist keine Person.
Klickt mal drauf und schaut das Video "Ball schön flach oben rein"
Wer in JavaScript loggen will, weiß erstens, was JavaScript ist, zweitens, dass Loggen nicht immer was mit Holzfällerei zu tun hat und wird drittens Chromium oder Firefox benutzen. (Grob geschätzt.)
Die Ausgabe mit alert(foo); ist veraltet, heutzutage wird mit Firebug und Co die Ausgabe lesefreundlich in die Konsole geschrieben.
Sobald aber solch Code in die Produktion wandert, kann es zu Problemen kommen, weil ratet mal, wer von console.log(); kaputt geht: Jap, der Internet Explorer (getestet mit Version 8) kennt das console-Objekt nicht.
Eine mögliche Lösung wäre es, diesen Wrapper zu verwenden:
global.log = function(message) {
if (typeof console != "undefined") {
console.log(message)
}
}
Hier: http://sw-guide.de/webdesign-und-entwicklung/icon-sammlungen/ gibt's tolle Icons, insbesondere die da:
http://markus-schlegel.com/weblog/plain-extended
(Und wieder 3 Tabs geschlossen :) )
Und weil ichs grad brauch, arbeite ich jetzt den heise-Verlag ab:
(1) heise Security
Erst einmal wird grob drüber gescrollt und ein neuer Tab für jede hinreichend interessante Überschrift aufgemacht, der Rest bleibt Grundrauschen (so gehe ich bei höher frequenten Blogs generell vor).
Aus dem Grundrauschen nehme ich nur eine generelle Tendenz zu aktiven Nachrichten wahr, also mehr "Hacker hacken Systeme", statt "Systeme haben Sicherheitslücken".
Eine dieser aktiven Nachrichten war, dass die Gema gehackt wurde, wie man wohl als regelmäßiger YouTube-Benutzer weiß, mit politischem Hintergrund.
Eine Aktive terminierende Mitteilung betrifft die Hackergruppe "No Name Crew" (wen?), die heroisch niedergerungen ward - aber der Hack gegen dieses Patras war doch nicht bekannt?
Dafür finde ich viel interessanter, dass es DDoS-Attacken auf Pizza-Lieferanten gibt! Nicht nur, dass mich das ja mal als unbefriedigten Kunden treffen könnte, aber ich verstehe DDoS-Attacken nicht als Zeitvertreib, sondern der Botnetz-Fahrer zahlt Geld für die Botnetzbetriebseinheiten. Und ist bei Pizzageschäften, bei denen man auch einfach Anrufen kann (gibt es only-online-ordering Systeme?) - ist da wirklich so viel zu holen?
Gleich zweimal geht es um Programmiersprachen-Updates, nämlich um (an dieser Stelle sei angemerkt, dass das der erste Googletreffer bei der Suche nach "php turing complete?" war!) PHP 5.3.7, wo die Funktion crypt() nur Salt, nicht auch den Hash zurückgegeben wird. TDD my ass!
Auf mehr kompilierten Sprachseite wird die Java-Plattform 7 angekündigt; auch ein netter Metawitz, dies in der Sparte "Security" anzukündigen. Obwohl, erst mit Version 8 kommen die Lambdas daher :)
Was ich nett zu lesen finde, wenn auch etwas viel Ermittlerromantik dabei durchscheint, ist dieser Bericht eines Admins, der gegen ein Scriptkiddy vorgeht.
Und letztendlich weg von dem, was ich mit "Security" assoziiere, gehen die beiden Artikel über ewige Cookies (bei dem der Kommentar von FrogmasterL einfach zu gut ist), die an sich eine Sauerei sind, aber joa.. seit dem 27C3 wissen wir ja, wie das Internet uns sieht.
Der letzte Artikel dieses Feeds, den ich für interessant hielt, war die Meldung, dass Firefox keine Versionsnummern mehr haben wird. Dies regt mich zum denken an.. ich melde mich wieder, wenn das fertig ist.
(2) iX news
Das Überblättern lässt einen in dieses IKEA-Gefühl fallen: Hätte ich doch so viele Zimmer... Wer mit jedem Artikel etwas anfangen kann, wohnt wahrscheinlich in einem Schloss :)
Das erste Zimmer wird bewohnt von Firefox - mit Versionsnummern! Weitere entpuppen sich als Vorzimmer zu einer Pay-per-Suite... andere haben ein Bitte-Bezahlen-Schild an der Tür und wollen trotzdem kein Geld.
Als DB-Orientierter Informatiker sehe ich die Meldungen über eine Kombination aus memcached, Membase und CouchDB mit Interesse und werde da auch einmal reintesten... und noch viel interessanter: UnQl!
Als letztes noch der lustige Opa für die Cloud. Ich war nach zwei Sätzen enttäuscht genug für [Strg+w].
(3) heise Netze
Achievement unlocked: Den .ss-Domain-Artikel ignoriert.
Der Artikel über hitzetolerante Server ist dagegen leicht langweilig geraten: 900 Stunden bei 40°C und 90 Stunden auch mal ein fünfe mehr? Lieber aptitude install hitzefrei probieren.. oder doch auf Kühlsysteme bauen. Vielleicht taugt das ja bei einer guten Durchmischung von Präsenz- und Arbeitsmaschinen, aber spontan hört sich das nicht nach einer guten Idee an.
Eher in die Kategorie Schichtenphilosophie gehört das Pre-Rendering von Websites. Denn da stehen auf der einen Seite die serverseitigen Surftracker, die nicht scharf zwischen Browser- und Useraktionen trennen können und auf der anderen diejenigen, die RFCs lesen können und wissen, dass GETs idempotent sind.
Ach ja, lest das http://www.heise.de/netze/artikel/Kommentar-Whois-abschaffen-1259143.html!
(3) heise developer
Das schnelle Überblättern wirft einem schon viele Namen ins Gesicht, die aber ein beliebiger it-news-headline-generator auch erraten hätte. Die schon genannten Programmiersprachennews sind hier natürlich auch mit dabei. Aber eben auch die Methode: In einem kurzen Bericht zum Thema Agile 2011 findet man sich tatsächlich in der Developer's Corner und ich tipple schon nervös auf meinem Amazon-Warenkorb.
Dafür fand ich die Artikel über C und Java, PHP Debugging und noch so ein Thema spontan sääähr langweliisch.
Und sofort hat wieder ein Artikel über JavaScript mein Interesse geweckt, nicht auf fachlicher Seite, sondern die Tatsache, dass erzählt wird, wie man als (Java-)OO-Hase mit JavaScript umgeht - und ich ebendies im letzten halben Jahr quasi selbst gelernt habe, nur ohne zusammenfassenden Artikel. Im Nachhinein ist dieser Text auch nicht sondlerlich vollständig, aber trotzdem mal einen Blick wert.
Es gibt ja viele Sachen, die man einfach mal vergisst: Blumen gießen, Müll rausbringen, eMails beantworten...
in meinem Fall auch: Während der Klausurzeit den Feedreader lesen (Bei mir übrigens der von Google). Um nicht einfach drüberzublättern, möchte ich hier ein paar Feeds empfehlen und darüber sinnieren, was darin steht.
1.: Kekse von Tanine
Da schreibt sie über das, was ihr so in die Finger gerät - und das ist meistens was zum Lesen. Auch wenn ich ihren Buchgeschmack nicht immer teile, ihre Rezensionen lesen sich angenehmerweise so, dass man auch das Gefühl bekommt, sie habe das Buch gelesen.
2.: Campus von SWR2
Samstags morgens um 10 kommt diese halbstündige Sendung auf SWR2. Sie besteht aus mehreren einzelnen Beiträgen, die "Neues aus Wissenschaft und Forschung" versprechen. Die Themenwahl ist dabei breit gefächert und dreht sich mal um Biologie und Medizin, mal um Technologie und Technik oder auch um Kritik am Forschungsapperat selbst, wie in dem Beitrag "Patent oder Publikation?".
Wer also schon immer mal in ~6 Minuten wissen wollte, wie es auf der Rückseite des Mondes aussieht, oder was es mit Marcumar auf sich hat - und Samstag morgens noch kein Radio hören mag, dem kann ich den Campus-Podcast nur empfehlen.
3. Ahoi Polloi
Moleskine-Zeichnungen, die man am besten mit Kenntniss des aktuellen Weltgeschehens versteht - und dann auch sehr lustig finden kann. Lesenswert sind hier auch oft die Kommentare, wie bei diesem Stammtisch. Manchmal wird aber auch einfach nur die Realität um plausible Geschehnisse ergänzt.
Wie ging das nochmal mit Eduroam und der TU Kaiserslautern und Archlinux?
CONNECTION='wireless'
INTERFACE=wlan0
SECURITY='wpa-configsection'
ESSID='eduroam'
IP='dhcp'
CONFIGSECTION='
ssid="eduroam"
key_mgmt=WPA-EAP
eap=TTLS
group=TKIP CCMP
pairwise=TKIP CCMP
anonymous_identity="anonymous@uni-kl.de"
identity="mustermann@rhrk.uni-kl.de"
password="password"
priority=1
phase2="auth=PAP"
ca_cert="/etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem"'
Ich bin begeisterter SWR2-Hörer, vor allem wegen der Features und Sendereihen. Eine davon ist Aula, was sich gut zum Sonntagsfrühstück macht, wenn man denn um 8:30 Uhr schon wach ist.
In der Aula gab es demletzt eine 6 Teilige Sendereihe mit dem Titel "Wissen 2.0 - Wie das Internet die Bildung verändert", die sich vielleicht nicht immer ganz an ihren Titel hält, dafür um so interessantere Standpunkte zum Themenkomplex Bildung bietet. Wer also [1..6]·30min Zeit hat, und sich dafür interessiert, möge da mal reinhören:
Teil 1: Brauchen wir noch einen neuen alten Bildungskanon
Eine Übersicht über die Mediensituation der Wissensgesellschaft.
Teil 2: Wie die digitalen Medien die Schule verändern
<todo: hören>
Teil 3: Die Ökonomisierung der Bildung
Kritik an modernen Universitäten, die sich zu sehr an wirtschaftlichen Interessen orientieren. (Ja, Bologna)
Teil 4: Niedergang der Vortragskultur
Hier geht es um Powerpoint, leider mit einem großen Batzen Urheberrecht und "geistiges Eigentum" versehen. Diskussionswürdig.
Teil 5: Über die Eindimensionalität der Wissensgesellschaft
Warum kommt es überhaupt zum Bulimie-Lernen?
Teil 6: Warum Online-Teaching eine gute Entwicklung ist
<todo: hören>
Ich bin Student an einer Uni. Und ich hab so ein Helfergen. Also wenn es denn was zu tun gibt, bin ich auch da. Okay, inzwischen hab ich auch gelernt mich für sowas nicht immer freizuboxen; ein wenig richtige Freizeit ist ja auch immer ganz nett.
Aber wenn ich soetwas mache, mache ich es ziemlich freiwillig - und im Kontext der Uni auch neben dem eigentlichen Zweck meines Aufenthalts dort (das mit dem Lernen und so). Und unentgeldlich.
Trifft ziemlich meine Vorstellung vom Ehrenamt.
Szenenwechsel. Bundestag. Wer dort ist, will dort auch bleiben; er bekommt gutes Geld, auch noch für die Altersvorsorge. Er macht es also hauptberuflich.
Wessen Beruf es ist, an einem Arbeitsplatz zu sein, der durch Wahlen steht und fällt (gerade, wenn man keinen sicheren Platz durch hohe Listenpositionen hat), dem kann ich also einigermaßen guten Gewissens ein Interesse zusprechen, sich diesen Arbeitsplatz sichern zu wollen. Beispielsweise dadurch, dass er den anderen Bewerbern Inkompetenz unterstellt.
Zurück in die Uni: Hier ist das Interesse erstens: "nur", seine Meinung vertreten zu sehen, zweitens: sein Helferbedürfnis auszuleben.
Zum Ersten: Diese Haltung kann man verstehen, oder auch nicht; je höher das Verlangen nach Mitsprache ist, desto mehr Einsatz kann ich auch verstehen.
Zum Zweiten: Das Helferbedürfnis kann man immer ausleben. Es gibt genug Studenten, die einfach nur studieren und zu wenige, die sich engagieren - warum auch immer. Ich behaupte das einfach mal.
Da es zu wenige gibt, die sich engagieren, gibt es auch genügend Möglichkeiten das zu tun. Sei es in Senatskommissionen, auf Feten, bei Wahlen... dieses Interesse kann also schon gut gedeckt werden.
Beim Verlangen nach Mitsprache ist das eine zwiespältige Sache: Klar will wohl jeder irgendwie die Bedingungen seines Lebens (im Unifalle also des Studiums) beeinflussen. Aber wenn man das regelmäßig machen will, braucht es dazu schon etwas Ausdauer; meistens sind da viele Menschen beteiligt, die solche Entscheidungen neben ihrem eigentlichen Zweck an der Uni treffen müssen, z.B. in Sitzungen, die nur alle zwei Wochen stattfinden.
Schnellschüsse sind abei sicherlich unerwünscht. Wenn also jemand seine Meinung vertreten will, muss er den anderen Sitzungsteilnehmern (insbesondere den stimmberechtigten) also Gedenkzeit zugestehen, Rückfragen zulassen etc.
Für eine wohlüberlegte Entscheidung sind bei so einer Sitzungsfrequenz also schonmal sechs Wochen Zeit drin.
Will jemand, der in einem Studierendenparlament ist, da drin bleiben, hat er meiner Auffassung genau nur dann ein (legitimes) Interesse, wenn er auch die Ausdauer hat, dort mit Ausdauer für seine Sache zu streiten.
Wenn jemand das nicht hat (also weniger als die Hälfte der Sitzungen anwesend ist), wieso wirft er dann schäbigst mit falschem Schlamm nach den anderen?
<p>Ich mach mich dann mal an <a href="http://www.linuxfromscratch.org/">LFS</a> - Linux from scratch - eine Anleitung, die einem ein komplett selbst zusammengebautes Linux verspricht.</p><p>Und warum? Heut zu Tage kann man ja schon in der Wikipedia eine <a href="http://en.wikipedia.org/wiki/List_of_Linux_distributions">riesige Liste</a> an Distributionen finden, die für alle möglichen Einsätze zurecht geschustert sind und mit allerlei Bequemlichkeiten daherkommen. Aber dabei geht genau die Erfahrung verloren, die mit freier Software (zumindest in meiner romantisierten Vorstellung) mitkommen kann, nämlich dass man selbst die Kontrolle über sein System hat.</p><p>Ob das etwas wird, mit dem ich wirklich arbeiten kann, weiß ich noch nicht, aber ich möchte hier mal meine Erfahrungen mit euch teilen... also dieses Posting wird öfters mal auf einen neuen Stand gebracht.</p>
Die erste Übung besteht im Partitionieren und Formatieren der Festplatte, was jetzt nicht so mit Überraschungen verbunden war - cfdisk und mke2fs benutzt man ja auch sonst im Alltag.
Meine fünf Partitionen (ich hab mich für /, /boot/, /opt/, /usr/src/, /home/ + swap entschieden) werden dann irgendwo sinnfällig hin gemountet, aber dann kommt schon der erste gravierende Unterschied zu gewohnten Linuxen:
8 Minuten lang wget um ganz grundlegende Sourcen runterzuladen. Die sind dann auch noch nicht kompiliert; das kommt beim nächsten Mal. :).
Tag 2: Musste ja so kommen...
Der erste Kompilieranlauf besteht aus den Binutils, GCC, Linuxheadern Glibc und nochmal Binutils, diesmal mit dem eben gebauten GCC. Klappt das so? Natürlich nicht.
Und was lerne ich nach ca sechs Stunden "hä?"
Problem: Du hast eine Rails-Applikation und hast im Ruby-Code z.B. "Gedönz" geschrieben. Lokal läuft alles, aber der dem Productionserver geht immer dann kaputt, wenn das entsprechende Programmfragment aufgerufen wird.
Lösung: In app/controllers/application_controller.rb als erste Zeile
# coding: utf-8
schreiben. Grund: Ganz langweilig: Ruby ist schuld. Wenn der Ruby-Interpreter nicht gesagt bekommt, wie er mit nicht-ASCII-Dateien umgehen kann, geht er kaputt.
Genaueres gibt's hier
Ob ich Outlook oder Thunderbird benutze, immer ist es ein Problem: Große Mails (also vor allem Mails mit großen Anhängen) vom einen Ordner in den nächsten zu verschieben.
Was ist das Problem? Ich will dann noch etwas anderes tun! Zumindest bei Outlook und Thunderbird blockiert das jeweilige Programm nach dem Anfang des Verschiebens einfach.
Könnte das nicht ein Thread im Hintergrund machen?
Ich werd wohl Code lesen...
Hallo Welt!
Hiermit ist ein neues Kapitel meiner Blogversuche am ersten Meilenstein angelangt: Ein rudimentäres Blogsystem mit eigenem Code und so.
Mal schaun, wie es diesmal klappt, ich bin aber irgendwie zweckoptimistisch.
Eine Kommentarfunktion kommt bestimmt auch irgendwann nach...
und nu gehts schlafen!