Neues in der Kategorie Programmieren
Mit einem Fork-Aufruf erzeugt man im Normalfall beim Programmieren einen Kindprozess, der dann gewisse Aufgaben übernehmen soll. Dieser wird im Prozessor eigenständig verwaltet und benötigt somit auch eigene Rechenzeit. Dass das mit dem Fork-Aufruf manchmal aber auch nach hinten losgehen kann, sieht man an den Fork-Bomben. Dabei wird der Kindprozess rekursiv aufgerufen und bringt so den Prozessor zum erliegen.
Um über die Bash unter Linux das System zu blockieren, kann man folgenden Code verwenden (Originalcode aus dem Wikipedia-Artikel zu Forkbomb, der Funktionsname ist hierbei der Doppelpunkt):
:(){:|:&};:
Wer mehr über Fork-Prozesse und die Fork-Bomben lesen möchte, der sei an Wikipedia verwiesen:
http://de.wikipedia.org/wiki/Fork_(Unix)
http://de.wikipedia.org/wiki/Forkbomb
Wer eine kleine Hilfe beim Programmieren oder verfassen von Code haben möchte, der kann in VIM die Syntaxhervorhebung ein- oder ausschalten. Einfach im Kommandomodus folgende Befehle verwenden:
syntax on
zum einschalten des Syntax Highligjting oder
syntax off
zum Ausschalten des selbigen (das Ausschalten lohnt sich, wenn man zum Beispiel mit einem Beamer arbeitet).
Wer unter Windows die beiden Funktion kbhit() und getch() kennt, möchte wohl kaum unter Linux auf diese verzichten. Deswegen kann man die beiden Funktionen sich einfach selbst basteln:
kbhit():
#include <termios.h>
int kbhit(void);
int kbhit(void) {
struct termios term, oterm;
int fd = 0;
int c = 0;
tcgetattr(fd, &oterm);
memcpy(&term, &oterm, sizeof(term));
term.c_lflag = term.c_lflag & (!ICANON);
term.c_cc[VMIN] = 0;
term.c_cc[VTIME] = 1;
tcsetattr(fd, TCSANOW, &term);
c = getchar();
tcsetattr(fd, TCSANOW, &oterm);
if (c != -1)
ungetc(c, stdin);
return ((c != -1) ? 1 : 0);
}
und getch():
#include <termios.h>
int getch();
int getch()
{
static int ch = -1, fd = 0;
struct termios neu, alt;
fd = fileno(stdin);
tcgetattr(fd, &alt);
neu = alt;
neu.c_lflag &= ~(ICANON|ECHO);
tcsetattr(fd, TCSANOW, &neu);
ch = getchar();
tcsetattr(fd, TCSANOW, &alt);
return ch;
}
Auf der Linux-Konsole gibt es ein kleines Werkzeug namens "rename", welches zum Umbennen von Dateien bestimmt ist. Unter zu Hilfenahme der "Perl Expressions" lassen sich so in beliebiger Weise schnell viele Dateien mit einem bestimmten Muster transformieren.
Möchte man zum Beispiel, die Umlaute aus Dateinamen weghaben, so kann man dies zum Beispiel mit folgendem Kommando tun:
rename 's/ü/ue/' *
Mit diesem Befehl werden alle Umlaute, in Dateinamen eines Ordner, in Dateinamen ohne Umlaute umbenannt.
Weiterer Link zu diesem Thema auch mit Beispielen zum Rename-Kommando:
http://www.barmasse.org/linux/praxishilfe/bash/dateien02.html
Und hier eine Referenz zu den Perl Expressions und wie diese verwendet werden (ebenfalls mit vielen Beispielen):
http://www.troubleshooters.com/codecorn/littperl/perlreg.htm
Wer schon immer mal seine Urlaubsbiler in 3 Dimensionen erleben wollte, der hat jetzt die Gelegenheit dazu. Forschern an der Stanford University ist es jetzt gelungen, mit speziellen Algorithmen 2-dimensionale Panorama-Bilder in 3-D Bilder umzurechnen.
Hier ein Beispiel von der Golden Gate Bridge (created by Codebot):
Um das Beispiel anzuschauen, sollte Shockwave (http://www.adobe.com/shockwave/download) installiert sein.
Wer seine eigenen Fotos uploaden will, der muss sich zunächst aber registrieren. (Ich habe es leider noch nicht ausprobiert). Die Fotos stehen danach unter der Creative Commons Attribution-Noncommercial 3.0 unported license. Außerdem ist der Code mit Algorithmus ebenfalls unter dieser Lizenz frei verfügbar.
Hier nun der Link zur Projektseite der Stanford Univerity:
http://make3d.stanford.edu/
Hier der Link zum Heise-Artikel:
http://www.heise.de/newsticker/Make3D-wandelt-Fotos-in-dreidimensionale-Aufnahmen-um--/meldung/105134
Wer hält es für möglich? Sogar mit einfachsten Mitteln, wie mit denen, die man unter Microsoft Excel zur Verfügung hat, lassen sich 3D-Grafiken erstellen und simulieren. Peter Rakos hat dies eindrucksvoll bewiesen. Theoretisch ist es so möglich, Spiele oder aufwändige Simulationen zu programmieren. Interessanterweise fällt ein Schritt bei Excel weg: Das Kompilieren! Man kann also On-the-Fly Programmieren und Testen und spart so eine Menge Zeit.
Peter Rakos stellt hierfür zwei Demos zur Verfügung und erläutert zwei Methoden:
Hier der deutsche Artikel auf Gulli.com (mit Video):
http://www.gulli.com/news/microsoft-excel-als-3d-engine-2008-03-08/
Hier der Originalartikel mit Sourcen von Peter Rakos auf Gamasutra (mit Video):
http://www.gamasutra.com/view/feature/3563/microsoft_excel_revolutionary_3d_.php
Hier die Sourcen von Peter (die Marko-Sicherheitsstufe in Excel sollte auf niedrig eingestellt sein. Mit ALT-F8 wird dann das Makro gestartet):
http://gamasutra.com/images/RakosExcel.zip

