The frog prince,coders edition!

Robert @ 3:06 pm

The Frogs Prince, Coders Editionvia geekandpoke

The floating point guide

Tags: , , , , — Robert @ 9:14 am

Ich bin gerade über einen sehr schöne Seite gestolpert, die schön zusammen fasst was jeder über Floatingpoint Arithmetik wissen sollte: http://floating-point-gui.de/

Art and science of software development

Robert @ 1:09 pm

Can we please start pushing the art and science of software development toward the austere? I’d love someday to hear a young coder tell a story about someone they idolized like, “There was this guy I worked with who once optimized a complicated red- black tree getting 300% performance boost. I was baffled and ask, ‘How’d you do that? That’s impossible.’ To which he responded…”

“’That’s my linked list my son.’”

Quelle:  zedshaw

C und C++ Code verschönern

Tags: , — Robert @ 5:41 pm

Wer generell dazu neigt seinen Code nicht ganz Konventionsgetreu zu formatieren dem sei folgendes Tool ans herz gelegt: astyle

Das Tool verschönert mit Leichtigkeit fast jeden noch so unlesbaren Code. Vor allem in meiner Tätigkeit als Tutor ist das ganz nützlich, wenn die Erstsemester sich erst mal daran gewöhnen müssen das Linksbündig != schön ist.

Hier mal ein kleines Beispiel:

shifter.c.vorher.jpg

shifter_danach.jpg

Also ich finde das Ergebnis kann sich schon sehen lassen. (Nein ich programmiere nicht immer so, das war nur ein Beispiel um zu zeigen wie man es nicht machen sollte)

Wer wie ich unter OSX viel mit Textmate arbeitet dem sei noch folgender Link empfohlen: http://mblsha.psi-im.org/2006/11/29/formatting-your-c-code-the-easy-way/

Dort kann man sich ein Textmate-Command herunter laden das einem den Code in Textmate direkt “aufhübscht”

dd

Tags: , , , — Robert @ 12:00 pm

Ist ein prima Tool wenn es darum geht das Image eines Speichermediums auf ein anderes zu übertragen.

Gestern wollte ich das Systemimage meiner NSLU von meinem alten iPod Nano auf einen neuen 4GB USB-Stick umziehen. Und anstatt alles komplett neu zu installieren brauchte ich dafür nur 2 Befehle und 3 “Aktionen”:

  1. iPod Nano anschließen
  2. user@ubuntu:~$ sudo dd if=/dev/sdb1 of=sdb1_ipod
  3. iPod Nano auswerfen und den USB-Stick anschließen
  4. sudo dd if=sdb1_ipod of=/dev/sdb1
  5. USB-Stick auserfen. Fertig!

Wenn alles gut gegangen ist wird man nach dem dd Befehl mit einer Ausgabe ähnlicher dieser belohnt:

7807527+0 records in
7807527+0 records out
3997453824 bytes (4.0 GB) copied, 805.927 s, 5.0 MB/s

Der langsame Durchsatz (immerhin hat der für die 4gb 13 Minuten gebraucht) liegt bei mir daran, dass ich das ganze in einer Virtuellen Maschine laufen lassen habe. Hat man ein “echtes” Linux zur Hand dürfte das wesentlich schneller sein.

Signalhandler

Tags: , — Robert @ 8:53 pm

Mal 3 Zeilen um Signale zu verarbeiten. Wichtig ist hierbei das SIGKILL nicht blockierbar ist (SIGTERM übrigens auch nicht ;-) )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
 
void sig_handler(int signum)
{
	printf("Fetched Strg+cn");
	exit(1);
}
 
int main (int argc, char const *argv[])
{
	/*catch SIGINT (strg+c)*/
	signal(SIGINT,sig_handler);
	while(1);
	return 0;
}

C Variablen tauschen

Tags: , — Robert @ 6:38 pm

Der Klassikertrick. Durch XOR Verknüpfungen eine Variable sparen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main (int argc, char const *argv[])
{
	int a = 1;
	int b = 2;
 
	printf("Start:  a:%i b:%in",a,b);
	a=a^b;
	printf("a=a^b:  a:%i b:%in",a,b);
	b=a^b;
	printf("b=a^b:  a:%i b:%in",a,b);
	a=a^b;
	printf("a=a^b3: a:%i b:%in",a,b);
	return 0;
}

C

Tags: , — Robert @ 4:26 pm
1
2
3
4
5
6
#include <stdio.h>
int main (void)
{
  printf("Ich bin jetzt offiziell C-Tutorn");
  return 0;
}
Get Adobe Flash playerPlugin by wpburn.com wordpress themes