std::string randomString(int)
0Mir ist langweilig. Und der Blog soll leben!
#include <cstdlib>
#include <ctime>
#include <string>
std::string randomstring(unsigned int len) {
using namespace std;
char rndstr[len+1];
//long cast to avoid precision warnings on x64 systems
static long seed = (long) (time(0) + &rndstr);
srand(seed);
for(unsigned int i=0; i<len; ++i) {
switch(rand()%3) {
case 0: rndstr[i] = rand() % 26+65; break; //A-Z
case 1: rndstr[i] = rand() % 9 +48; break; //0-9
case 2: rndstr[i] = rand() % 26+97; break; //a-z
}
seed += (long) rndstr[i];
}
rndstr[len] = 0;
return rndstr;
}
#include <iostream>
int main() {
for(int i=1; i<=50; i++)
std::cout<<i<<" - "<<randomstring(i)<<std::endl;
return 0;
}
42.zip mit Windows 7
0Es ist ja bekannt, dass man 42.zip nicht rekursiv öffnen sollte.
Ich habe heute gelernt, dass diese Datei unter Windows 7 nicht mal aufbewahrt werden darf.
Irgendwann wird der Windows Search Indexer drüber stolpern, und das ganze RAM innerhalb von 4 Sekunden vollstopfen.
Windows 7 wird dann ganz freundlich die Meldung bringen, dass der Speicher voll ist und ein paar Programme zur Sicherheit beendet werden sollen.
Solltet euch das passiert sein, so habt ihr noch [bei 4GB RAM, 8GB SWAP] ca. 20 Sekunden Zeit (während Windows versucht Teile des RAMs in den SWAP zu stecken) um
- Taskmanager zu öffnen
- Prozess SearchFilterHost.exe solange killen, bis er nicht mehr auftaucht (ca. 3 mal).
- 42.zip wieder löschen.
Sollte der Bildschirm schwarz werden, bevor der Prozess beendet wurde: GAME OVER.
Minecraft Server mit Nether
0Diese Anleitung ist nun überflüssig, da Nether im SMP offiziel unterstützt wird.
Man kann zwar Nether-Server erstellen, aber diese blieben bis jetzt eine geschlossene Welt, wo man nichts rein- und rausbringen konnte. Es sei, wir ändern immer wieder das “hellworld”-Parameter und starten den Server neu (funktioniert mit 2-3 Spielern vielleicht noch, aber bei 30: noway).
Nun hab ich (vielleicht neben vielen anderen) ein einfachen Weg gefunden Nether parallel laufen zu lassen und zwar einfach als einen zweiten Server, dessen Spieleldaten mit dem ersten synchronisiert werden. Der Schlüssel liegt im players-Ordner der Minecraftwelt.
Anleitung
Ich setze vorraus, dass du dich mit deinem System bestens auskennst und symbolischen Links Erfahrung hast.
- Begebe dich auf den Server und geh zum Spawn (wichtig!).
- Nun beende den Server.
- Geh ins Verzeichnis des Minecraft Servers.
- Mach ein Backup deiner Welt(en). Sicher ist sicher.
- Erstelle einen Ordner mit einem beliebigen Namen (z.B. “nether”)
- Kopiere die Server Executable (.exe/.jar) und server.properties in diesen rein. (DIE WELT NICHT REINKOPIEREN!)
- Falls du im Nether die gleichen Plugins verwenden willst, kannst du diese als Symlinks mitkopieren. Pass aber drauf auf, dass auf die erste Welt zugeschnittenen Konfigurationen nicht mitkommen.
- Öffne die server.properties im Nether-Ordner und bearbeite folgende Zeilen:
hellworld=true server-port=6666 # kannst du selber bestimmen
- Starte nun den Nether-Server (für ein Testlauf) und beende ihn wieder, sobald genug Welt für den Start generiert wurde (Betreten in der Zeit ist nicht verboten
). - Gehe in den Welt-Verzechnis des Nethers und lösche den players-Ordner.
- Setzte in diesem einen symbolischen Link vom players-Ordner der normalen Minecraft Welt (../world/players).
Verzeichnisstruktur würde dann so ähnlich aussehen:minecraft ├── backups ├── banned-ips.txt ├── banned-players.txt ├── minecraft_autobackup.sh ├── minecraft_server.jar ├── nether │ ├── backups │ ├── banned-ips.txt -> ../banned-ips.txt │ ├── banned-players.txt -> ../banned-players.txt │ ├── minecraft_autobackup.sh │ ├── minecraft_server.jar │ ├── ops.txt -> ../ops.txt │ ├── plugins -> ../plugins │ ├── server.log │ ├── server.properties │ ├── start │ └── world │ ├── DIM-1 │ │ ├── 1 │ │ ├── 1a │ │ ├── 1b │ │ └── 2 │ └── players -> ../../world/players ├── ops.txt ├── plugins ├── server.log ├── server.properties ├── start └── world ├── 1 ├── 1a ├── 2 └── players ├── faggot ├── Player1 └── Player2 - Starte beide Server.
- Fertig!
Um in den Nether zu wechseln, muss der Client nun einfach disconnecten und die Portnummer dessen Servers eingeben. Sein Inventar, HP und Rüstung bleiben erhalten.
Anmerkung
Die Positionen der Spieler werden zwischen den Servern auch synchronisiert! Ich rate es ab, willkürlich zwischen den Welten hin und her zu springen unabhängig davon, wo man gerade ist, denn schlimmstenfalls landest du plötzlich im Lava des Nethers oder im nirgendwo der normalen Welt.
Am Besten einigst du dich mit den Spielern für einen Platz wo ein Pseudoportal hinkommt und gehst in den Nether erst, wenn du auf diesem stehst. Im Nether kannst du das Gleiche machen und an der Stelle ein Outpost oder so errichten.
Viel Spaß im Nether… beim Laufen!
Mandelbrot
2.. einer der genialsten Mathematiker der Nachkriegszeit, hat sein Leben am 14. Oktober 2010 nun auch abgegeben.
Die 2 oder 4 Leser hier werden wohl fragen, wieso ich darüber schreibe? Weil der Typ einfach awesome war!
Jeder Anspruch, als Erster etwas erfunden oder gefunden zu haben, offenbart nur außerordentliche Arroganz.
Ich arbeitete in einem Industrielabor, weil die akademische Welt keinen Platz für schräge Denker hatte.
“Und weiter?”
Seine Entdeckung in your face!
Wir haben ungewöhnliche Aktivitäten in Ihrem (E-Mail) Konto festgestellt.
1Vorgestern schickte Google mir plötzlich eine seltsame Meldung vom hauseigenen Mail Delivery Subsystem:
Eine Mail als Blizzard an irgendjemanden unerreichbaren? Ich kann mich nicht erinnern die letzen Wochen irgendwas irgendjemanden geschickt zu haben. Auch wenn es mich beunruhigte, tat ich erstmal nichts. Könnte auch ein schlechter Zufall gewesen sein.
Beim üblichen Checken von Mails schaute ich heute aus Neugier in Spam-Ordner, denn nicht oft stand die Zahl 56 daneben.

Beim ersten Blick kam mir ein berühmter Spruch, den mein Gehirn abgeändert hatte, durch den Kopf: It’s not a Zufall, it’s never a Zufall.
Doch da war etwas anders: Der Absender war mein alter Google Account!
Aus verschiedenen Gründen hab ich ja beim Neuen/Aktuellem den Zugriff auf den Posteingang des alten Accounts eingerichtet. Somit rief er die ganzen Fehler-Mails ab.. und schleußte sie noch durch den Spamfilter, wo viele aufgrund ihrer Übereinstimmung hängenblieben sind.
Schnell loggte ich mich um. Beim Tippen des alten Accountnamens, erinnerte ich mich verzweifelt an die Geheimantwort, denn sicher hätten die Spambots mein Pas- schon drückte ich Enter und Google loggte mich ein. Kurze Denklosigkeit. Plötzlich nächste Überraschung: Statt mir mein altes Konto anzuzeigen, bekam ich folgendes zu sehen:

Nun, hat mich jetzt nicht wirklich überrascht. Gelesen, getan. Passwort geändert. 315 SpamMails aus dem Ausgang gelöscht. IP Zugriffe angeschaut…
Durch hostip.info stellte sich heraus,
Host name: mail-yw0-f30.google.com
IP address: 209.85.213.30
Location: UNITED STATES
dass die ganzen IPs Google-Servern gehören. Dann muss es wohl der aktuelle Account sein, der neue E-Mails stündlich abruft.
Wer hat aber heute diesen WoW-Phishing-Spam versendet?
Scheinbar ist Google nicht in der Lage ihre IPs herauszufinden. Schade.
Den alten Account habe ich nun entgültig gelöscht und beim neuen das Passwort geändert. Und an euerer Stelle würde ich mal euren alten E-Mail Account (falls er noch existiert) auch mal überprüfen.
Update:
Ich hab nun die Header genauer angeschaut und dabei ist mir diese Zeile aufgefallen
Received: from evoakoo ([114.85.41.103])
by mx.google.com with ESMTPS id t11sm2145067wfc.10.2010.09.05.01.51.38
Sieh mal an, doch eine fremde IP Adresse, mal sehen was hostip.info sagt..
Host name: 114.85.41.103
IP address: 114.85.41.103
Location: Shanghai, CHINA
…






