Das # Zeichen nennt sich Raute. Oder doch Doppelkreuz, Lattenzaun oder gar Oktothorp? Wie man sieht haben wir für unsere Sonderzeichen eine Reihe von Namen. Eine Sammlung dieser Namen findet man auch unter http://fsinfo.noone.org/~abe/Bloedsinn/Teppich.html. Es sind einige interessante Sachen dabei wie z.B. das „sign of interrogation“, nicht wahr?
AB 0:53 wird es interessant ![]()
Nach dem ersten Teil gibt es nun auch den zweiten Teil:
Wer Spiele entwickelt, kennt das Problem sicherlich das man nicht alles gleich gut kann. So kann man zwar Software schreiben hat aber von Musik keine Ahnung, möchte solche aber natürlich trotzdem im Spiel haben. Hier hilft Imphenzia zu finden unter imphenzia.com. Dort kann man sich günstig mit Soundeffekten, Loops oder ganzen Tracks eindecken. Bei den Preisen wird dabei unterschieden zwischen Indie (< 250.000 verkaufte Einheiten) und kommerziell (alles darüber). Alles in allem moderate Preise und eine schöne Auswahl ![]()
Wenn man unter JavaScript entwickelt so benutzt man sicher auch folgende Zeile ab und an in abgewandelter Form:
alert("XYZ");Das Problem an „alert“ ist das es für viele Sachen unpraktikabel ist. Schöner wäre hier eine Konsole in die man diese Meldungen hineinschreiben könnte und die auch browserunabhängig funktioniert. Genau hier kommt Blackbird ins Spiel welches unter http://www.gscottolson.com/blackbirdjs/ zu finden ist.
Mit der Konsole ist es möglich verschiedene Loglevel zu realisieren und das ganze einfach in das Projekt seiner Wahl einzubinden. Der weitere Vorteil ist, das man die Debugmeldungen im Gegensatz zu einem „alert“ auch einfach im Quelltext stehen lassen kann und die Ausgabe nur bei Bedarf aktiviert.
Alte Tweets automatisch zu löschen ist eine Idee die nicht nur ich hatte. Auch andere haben solches ein Werkzeug entwickeln. In diesem Fall trägt es den Namen „radiergummi.py“ und ist unter https://github.com/ilf/twitter-eraser zu finden. Das ganze ist dabei ein Pythonskript und für den Aufruf via „cron“ vorgesehen. Um es zu benutzen wird noch die Python Bibliothek „tweepy“ benötigt. Anschließend kann man das ganze konfigurieren (wie viele Tweets, DMs et cetera sollen erhalten bleiben) und benutzen.
Die GEMA mal einfach erklärt:
Gestern war mal wieder Stadtvertretersitzung in Neubrandenburg. Stattgefunden hat das ganze um 15 Uhr im Ratssaal des Rathauses. Die Vertretung der Stadt besteht dabei aus 43 Ratsfrauen und Ratsherren. Im Gegensatz zum Kreistag ist die Akustik zu mindestens für Gäste nicht ausrreichend, da die Lautsprecher der Audioanlage auf die Mitte des Saales ausgerichtet ist und die Gäste (sitzen hinten rechts) nicht wirklich viel davon haben.
Exemplarisch schön fand ich die Ansage sobald jemand ans Pult geht und spricht:
Sehr geehrter Stadtprasident, sehr geehrte Ratsherren…
Die Gäste werden leider nicht erwähnt, wobei einige Mitglieder der Stadtvertretersitzung das durchaus hinbekommen indem sie einfach „Sehr geehrte Damen und Herren“ sagen.
Thematisch ging es um Mountain Biking auf dem Wall und die Probleme die ein Mitglied der Stadtvertretersitzung damit hatte (und wie man das ganze unterbinden kann). Ganz interessant dabei war, das der geneigte Zuhörer dadurch erfuhr das es in der Oststadt (Kiesgrube) wohl eine Mountain Biking Strecke gibt welche vom Verein Dirt Force betrieben wird.
Anschließend ging es um die Finanzierung bestimmter Vereine (Tafel, Suppenküche) welche Geld bekommen sollten (so wurde es beschlossen) aber erst ihre Liquidität versichern sollten und dies mit einem Brief aus dem Innenministerium begründet wurde. Bestimmte Vereine hatten wohl schon Geld erhalten, während andere Vereine sich erst besagter Prüfung unterziehen musste. Darüber gab es dann eine längere Diskussion, in deren Verlauf einige Mitglieder der Stadtvertretung diese Art der Prüfung verurteilten.
Nach dem Beschluss der Tagesordnung, wurden dann ohne Diskussion respektive Aussprache die ersten Punkte der Tagesordnung abgestimmt. Darunter waren unter anderem die „Besetzung des Aufsichtsrates der Neubrandenburger Stadtwerke GmbH“ sowie der NEUWOGES, die Bestimmungen zur Durchführung der Wahl der Schiedspersonen für die Schiedsstellen der Stadt Neubrandenburg und einige Änderungen am Bebauungs- und Flächennutzungsplan. Eine der letzten Tagesordnungspunkte war die Wahl einiger Wehrführer der Feuerwehren sowie deren Vereidigung und Ernennung zu Ehrenbeamten.
Der letzte Punkt der Tagesordnung für den öffentlichen Teil bestand in der Abstimmung über den Aufbau eines zentralen Asylbewerberheimes des Kreises. Der öffentliche Teil war damit um 17 Uhr beendet. Es wurde auf Twitter wieder live berichtet und zwar unter dem Hashtag #SVSNB.
Neulich berichtete ich per Twitter (@seeseekey) live von der Kreistagsitzung. Nach einer Weile kam dann beim Versenden eines Tweet nur noch „Verboten“ als Antwort vom Server zurück. Ich hatte wohl mein API Limit gesprengt. Das führt natürlich zu der Frage wo genau dieses Limit liegt.
Glücklicherweise ist das alles sauber dokumentiert. Das Limit für Direktnachrichten liegt bei 250 pro Tag, das der Tweets (Updates) bei 1000 pro Tag wobei auch Retweets als Updates gezählt werden. Die Anzahl der Updates ist allerdings noch pro Stunde gedeckelt und zwar auf 150 bzw. 350 (per OAuth). Nach Ablauf der Stunde kann man dann wieder weitertwittern.
Weitere Informationen gibt es unter:
https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following
https://dev.twitter.com/docs/rate-limiting
Im Funkbereich gibt es schon einige seltsame Dinge wie z.B. Zahlensender. Ein interessantes Kuriosum ist der Sender UVB-76 welcher schon seit Jahrzehnten sendet und es immer noch tut, aber niemand so genau weiß wofür er eigentlich gut ist. Ab und an gab es Sprachnachrichten auf dem Sender aber sonst nur das charakteristische „Buzz“ Signal. Wer also einen Kurzwellenempfänger hat, kann ja mal reinhören ![]()
Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/UVB-76
http://de.wikipedia.org/wiki/Zahlensender
http://de.wikipedia.org/wiki/Woodpecker_%28Kurzwellensignal%29
Gestern war die Kreistagssitzung des neuen Kreises Mecklenburgische Seenplatte. Es gab auch ein paar interessante Entscheidungen. So wurde das Kennzeichen auf MSG (oder MST, so genau hat man das nicht verstanden) festgelegt. Auch der Antrag auf Live Streaming (im Antrag in Direktübertragung umbenannt) des Kreistages wurde genehmigt.
Die Barrierefreiheit war zu Teilen gesichert, so kam man mit einem Rollstuhl et cetera in die Mensa der Hochschule. Was mir gefehlt hat war ein Gebärdendolmetscher (wenn das Thema interessiert der sollte http://meinaugenschmaus.blogspot.de/ besuchen), aber hier kann man ja noch nachbessern. Beim Live tweeten kam ich auch irgendwann an die Limitation der Twitter API, deshalb ging es dann auf dem Account der Seenpiraten weiter. Zu Ende war die Veranstaltung gegen 21:45 Uhr.
Wer bei OpenStreetMap etwas gemappt hat und sich einmal mit anderen Mappern messen möchte, sollte http://osmranking.altogetherlost.com/ ausprobieren. Dort gib man die zwei Nutzernamen ein welche und anschließend die Kategorien nach welchen verglichen werden soll.
Danach noch einen Klick auf den „Create Ranking“ Button und schon kann man vergleichen wie man abgeschnitten hat.
Möchte man unter .NET/Mono das Schließen einer Konsolenanwendung abfangen so kann man dies mit einigen Methoden lösen, wie zum Beispiel die Anwendung bestimmten pInvoke Techniken unter Windows. Allgemeiner kann man das ganze mit dem „CancelKeyPress“ Event gestalten was dann so aussieht:
Console.CancelKeyPress+=new ConsoleCancelEventHandler(Console_CancelKeyPress);
...
static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
WriteErrorToConsole("Programm wird abgebrochen...");
e.Cancel=true; // Event abbrechen
}Wie Heise gestern berichtete (http://www.heise.de/newsticker/meldung/Gefahr-durch-offene-PHP-Luecke-1567433.html) gibt es eine wunderschöne Sicherheitslücke im Bezug auf CGI und PHP. So führt der Aufruf:
http://localhost/index.php?-s
dazu das der Quellcode der Webseite ausgegeben wird. Das ist natürlich unpraktisch wenn dort Konfigurationsvariablen enthalten z.B. die Zugangsdaten für eine Datenbankverbindung. Zur Lösung des Problems gibt es drei Varianten:
- PHP Version mit dem Bugfix einspielen
- Rewrite Anweisung in die .htaccess
- Wrapper welcher vor dem PHP-CGI aufgerufen wird
Die erste Variante scheidet aus, da der aktuelle Bugfix leicht umgangen werden kann. Die zweite Variante (einzutragen in eine „.htaccess“) sieht so aus:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^[^=]*$
RewriteCond %{QUERY_STRING} %2d|\- [NC]
RewriteRule .? - [F,L]Die dritte Variante setzt einen Wrapper vor den eigentlich Aufruf und filtert die entsprechenden Anweisungen heraus. Dazu ändert man in der „httpd.conf“ die Zeile:
Action application/x-httpd-php /cgi-bin/php-cgi.exe
in
Action application/x-httpd-php /cgi-bin/php-cgi-wrapper.exe
und startet den Apache Server neu. Der Quelltext des Wrappers sieht dabei so aus:
#include <process.h>
#define PHP_ORIG "php-cgi.exe"
int main(int argc, char **argv)
{
if(argc>1) argv[1]=0;
_execv(PHP_ORIG, argv);
}Das ganze kann hier auch als fertiges Visual Studio Projekt oder gleich als ausführbare Datei heruntergeladen werden.
Weitere Informationen gibt es unter:
http://www.kb.cert.org/vuls/id/520827
http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
http://www.heise.de/newsticker/meldung/PHP-patcht-schnell-aber-nicht-gruendlich-1567906.html




