inicio sindicaci;ón

Theorie ist Scheiße!

Das Leben ist zu kurz und andere Dinge zu spannend um sich mit langweiliger Theorie abzumühen. Sorry, das musste jetzt raus.

Aufgabe 10

“Gegeben sei ein quadratisches Bild in der Größe a x a mm. Es sei in kleine Quadrate zerlegt, n mal n Stück (also sei jede Seite in n gleich große Abschnitte unterteilt). Nehmt z.B. an, es sei n = 16 und a = 80 mm, die Rasterquadrate hätten also eine Seitenlänge von 5 mm. Nun sollen die Farben Schwarz und Weiß zur Verfügung stehen. Jedes Rasterquadrat kann entweder schwarz oder weiß gefärbt sein.”

A) Ein wenig Mathematik

Das müssten eigentlich 2^(n*n) verschiedene Bilder sein. Es gibt n*n “Pixel” und jeder kann die Farbe Schwarz oder weiß annehmen.

B, C, …) Das Programm

… ist eine Gemeinschaftsarbeit von Steffi und mir. Wir sind noch nicht so ganz zufrieden damit. Speziell bei der systematischen Erzeugung aller möglichen Pixelbilder stehen wir irgendwie auf dem Schlauch. (Tipps willkommen!) Abgesehen vom Zeilendrift funktioniert’s ansonsten aber ganz ordentlich.

Programm Pixelbilder muss durch einen Klick auf ‘Random’ oder ‘Systematic’ gestartet werden.

Aufgabe 8 - “Sein und Zeit”

A) Das Buch Sein und Zeit

Ich bemesse die Zeit für diese Aufgabe “so knapp es geht” und lasse Lars “philosophieren”.

B) Syntaktisches Bildungsgesetzt der Wörter Sein und Zeit

Das Wort besteht aus 4 Buchstaben, der erste ist ein Großbuchstabe, die restlichen 3 sind Kleinbuchstaben. Der zweite Buchstabe ist ein ‘e’, der dritte ein ‘i’.

Damit dürften sich nach Adam Riese 26*26 = 676 Wörter dieses Schemas ergeben. Ich schätze, dass 1 bis 2 Prozent davon echte Wörter sein werden.

C) Das Programm

Verdammt. Man sollte die Aufgabe zu Ende lesen, bevor man anfängt was zu machen … Naja, hier mein erster Versuch, der noch nicht ganz der Aufgabestellung entspricht, aber auch nicht schlecht ist. Und hier der zweite, der die Vorgaben nun zur Genüge erfüllen sollte.

Und ja, die Farben beißen sich schon ein bisschen …

Aufgabe 7 - “MouseFunctions”

A) Funktionen erklären

Wird man mir glauben, dass ich die Funktionen genügend verstanden habe, wenn ich sie wie unter B) zu sehen verwende? Mal sehen. Ansonsten hat Lars das Ganze überaus ausführlich beschrieben. Es war doch Gruppenarbeit angesagt, oder? … (Nochmal für Lars, damit er glücklich wird, und alle anderen, die’s nicht so verstehen: Ich war natürlich nicht an der herausragenden Arbeit von Lars und Sebastian beteiligt.)

B) Programm

Kleines MouseFunctions-Raster, das man sicher hätte eleganter programmieren können. “Bedeutsamer ist aber, dass Ihr mit dem begrenzten Zeitbudget, das Ihr habt, eine Äußerung produziert.” Weiter so, Frieder! Solche Aufgaben machen Spaß!

Einen guten Rutsch und ein spannendes kommendes Jahr!

Aufgabe 6 - Poesie

Silencio

A) Gedichtinterpretation *roflmao*

Beim gezeigten Gedicht handelt es sich mehr um ein Bild als ein Gedicht. Auffällig ist, dass Wortinhalt und optischer Eindruck genau gegensätzlich arbeiten. Die vielen massiv eingesetzten “silencio” vermitteln eher den Eindruck eines nach Ruhe Schreiens. Sollte Ruhe selbst dargestellt werden müsste wohl eher ein einzelnes “silencio” in zarter Schrift mit viel Weißraum außenherum gesetzt werden. Gegen das Schreien wiederum spricht allerdings die äußerst akkurate Anordnung der Schrift und auch die sehr strenge Schriftart Helvetica selbst. Somit erhält das “Gedicht” einen sehr technischen, unpersönlichen Touch.

B) Warum das ganze?

Ja, warum Gedichtinterpretation? Warum zum Teufel in einem Kurs der Praktischen Medieninformatik ein Gedicht interpretieren müssen? Wo man sich doch so viele spannende Projekte vornehmen könnte. Diese jede Woche besprechen und weiterentwickeln. Technische Probleme beseitigen und vor allem Inhalt und Optik verbessern. Etwas Schaffen! Zum in der Hand haben! Naja, oder eben für den USB-Stick - Aber etwas handfestes eben. Nicht nur Erinnerungen an nette Diskussionen und schlaue Weißheiten.

Vielleicht weil wir im Laufe des Kurses schonmal über die Ästhetik eines Programms gesprochen haben? Vielleicht soll uns die Gedichtästhetik zu einem besseren Verständnis dieser führen? Vielleicht. Vielleicht aber auch nicht. - Es bleibt die Hoffnung, dass unser lieber Dozent schon weiß was er tut …

C) Sowas programmieren?

Eine Gedichtmaschine entwickeln? Der Rechner soll nun also Poesie machen? Am Anfang des Kurses haben wir uns noch mehr oder weniger darauf verständigt, dass nichtmal ein Kochrezept ein Algorythmus sein kann und jetzt soll Poesie entstehen? Hm. Nein, ich denke nicht, dass ich Lust dazu habe mir so etwas auszudenken. Die Rechner sollen mal rechnen und von mir aus auch Schach spielen. Aber Poesie soll mal schön bei denen bleiben, die sie potentiell besser beherrschen.

Aufgabe 5 - Rasterbilder

Grundraster Raster 1

A) Programm: Einfaches Raster

// Bühnengröße festlegen
size(500,500);
// Default-Farben
fill(255);
background(32,39,43);
// Punktform definieren
strokeCap(PROJECT);
// Konturstärke
strokeWeight(0);
// Kantenglättung aktivieren
smooth();

int counter = 1;
int inc = 100;

for(int y=0; y
for (int x=0; x
// Farbe festlegen (abhängig von Counter -> Verlauf)
fill(255-counter*10,counter*7,0);
// Sich verkleinerndes Quadrat zeichnen
int d = x/(inc/10) + y/(inc/10);
rect(x+d/2,y+d/2,95-d,95-d);
// Zähler erhöhen
counter++;
}
}

Irgendwie kriegt’s das scheiß Wordpress hier nicht hin, die for-Anweisung korrekt in HTML umzuwandeln. y und x sollen auf jeden Fall kleiner als height bzw. width sein und jeweils um inc erhöht werden.

Bis nächsten Dienstag folgen (hoffentlich) noch weitere Beispiele …

B) Vasarely und das Raster

victor-vasarely.jpg 251.jpg image5.gif vas-pose.jpg
Periode Noir-Blanc: Konstrast der Farben Weiß und Schwarz

vasarely5.jpg medium_vasarely.jpg

Hommage à l‘hexagone: physikalisch nicht mögliche Perspektiven durch Hell-Dunkel-Effekte

0152_intro01_maxi.jpg 20060405-vasarely-2.jpg 20060405-vasarely-44.jpg chp_9_357.jpg vasarely3.jpg vasarely4.jpg
Universelle Strukturen – Vega: Er verformt ein regelmäßiges Gitter so, dass es optisch den zweidimensionalen Raum verlässt

20060405-vasarely-3.jpg vasarely-victor-feny-2602606.jpg victor2.JPG vastoggone.jpg

C) Wie programmieren (letztere)?

Gar nicht. Ja, solche Bilder würde ich erstmal gar nicht programmieren, weil diese auch sehr schnell per Photoshop erstellt sind (Filter -> Wölben).

Wenn sie nun aber programmiert werden sollen/müssen, würde ich zunächst sehen, welche Möglichkeiten mir meine Programmiersprache bietet. Wenn es Funktionen gibt, um Bilder zu verzerren könnte ich es genauso programmieren, wie ich es mit Photoshop von Hand machen würde: Gleichmäßiges Raster erstellen und anschließend verzerren.

Wenn es diese Möglichkeit nicht gibt … hm, dann wird’s wohl kompliziert. Muss ich mir mal noch Gedanken drüber machen. - Aber nicht jetzt.

Magische Zauberkugel

Ist die Magische Zauberkugel wirklich Magie oder vielleicht doch eher einfache Mathematik? Um’s kurz zu machen, hier die Mathematik:

ij sei die zweistellige Zahl, wobei gilt 1 <= i <= 9 und 0 <= j <= 9

Nun soll folgende Rechnung durchgeführt werden:
(i * 10 + j) - (i + j)

Wenn wir das etwas vereinfachen erhalten wir:
10i + j - i - j = 10i - i + j - j = 10i - i = 9i

Wir sehen also, es kommen nur wenige Werte als Ergebnis in Frage, im Einzelnen:
9, 18, 27, 36, 45, 54, 63, 72, 81 (Vielfache von 9 eben)

Und schon liegt das Rätsels Lösung auf der Hand: Jede dieser 9 Zahlen erhält einfach immer das gleiche Symbol. Natürlich ist das bei jedem Programmaufruf ein anderes, sonst würden wir den Betrug zu schnell bemerken! Die restlichen 91 Zahlen erhalten beliebige andere Symbole. Schon wird immer das richtige Symbol angezeigt, egal welche Zahl man sich ausgedacht hat.

Der Kurs am 28.11.

Dem Anfang der Stunde konnte ich leider nicht beiwohnen. Danach: Anweisungen, Zuweisungen, Schleifen in einfachster, grundlegenster Form - alte Bekannte, daher heute nichts neues fürs Lernbuch.

Dafür wenigstens ein nahezu wörtliches Zitat von Frieder: “Ihr Frauen seid ja etwas langsamer …” Dito!

Aufgabe 4 - Zufall

100 Zufallspunkte 200 Zufallspunkte

A) Was ist Zufall

Zufall ist wenn etwas passiert (oder auch nicht passiert), ohne dass dies von irgendwelchen Faktoren/Variablen/Paramtern abhängt.

In der Mathematik spricht man häufig von Zufallszahlen: Dies ist eine Anzahl von zufällig ausgewählten Ziffern. Diese müssen dabei nicht gleichmäßig verteilt sein (wie häufig angenommen). 5 Zufallszahlen (von 1 bis 9) könnten z.B. auch 2,4,7,4,4 sein. Wenn allerdings die Anzahl der ausgewählten Zufallszahlen gegen unendlich geht sollte jede einzelne ungefähr gleich oft vorkommen.
Bekannte “Zufallsgeneratoren” sind Würfel oder Karten.

Tatsächlicher Zufall kommt jedoch praktisch nicht vor: Selbst bei Würfeln kann eine Seite minimal Größer sein, so dass sie mit minimal höherer Wahrscheinlichkeit fällt, so dass die fallende Zahl nicht mehr ganz zufällig ist. Wobei gewürfelte Zufallszahlen noch deutlich zufälliger sind, als solche die vom Computer errechnet werden. Diese werden immer anhand bestimmter Parameter (z.B. aus der aktuellen Uhrzeit, etc.) berechnet. Man nennt sie daher auch Pseudo-Zufallszahlen.

Wikipedia:
Man spricht von Zufall - oder noch klarer von reinem Zufall -, wenn ein Ereignis nicht kausal notwendig auftritt.
http://de.wikipedia.org/wiki/Zufall

B) Die Funktion random() in Processing

Generates random numbers. Each time the random() function is called, it returns an unexpected value within the specified range. If one parameter is passed to the function it will return a float between zero and the value of the parameter. The function call random(5) returns values between 0 and 5. If two parameters are passed, it will return a float with a value between the the parameters. The function call random(-5, 10.2) returns values between -5 and 10.2.

http://www.processing.org/reference/random_.html

Dem habe ich nichts hinzuzufügen.

C) Was ist ein Parameter

Ein Parameter ist ein Wert, eine Variable, anhand der eine Funktion ihre Berechnungen durchführt. Die Parameter sind sozusagen die steuerenden Elemente, da alles andere der Funktion ja fix ist.

D) Programm: Zufallspunkte

// Bühnengröße festlegen
size(200,200);
// Hintergrundfarbe
background(0);
// Kantenglättung aktivieren
smooth();
// Strickstärke definieren
strokeWeight(1);
// Strichfarbe definieren
stroke(255);

// 100 zufällige Punkte zeichnen
// Überlappung nicht ausgeschlossen, aber unwahrscheinlich
for(int i=0;i<100;i++) {
point(int(random(0,width)),int(random(0,height)));
}

E) Experimente inspiriert von Steffi

Zufällig: Position, Größe, Transparenz

Zufall Quadrate Zufall Kreise

Aufgabe 3

Aufgabe 3, Bild 1Aufgabe 3, Bild 2Aufgabe 3, Bild 3

size(600,400);
background(0);

smooth();
strokeWeight(1);
strokeCap(SQUARE);

for(int i=0; i<(width*2); i++) {
int x = i;
if (x>width) {
x = width;
}
int y = (width*2)-i;
if (y>width) {
y = width;
}
float r = random(0, 50);
stroke(r);
line(0, 0, x, y);
}

stroke(255);

/* Motiv 1
for(int i=0; i
line(i/4+i,(i/2)+150,(i*i)/width+i,(i*i)/height+i);
}
*/
/* Motiv 2
for(int i=0; i
line(i,(i/2)+150,(i*i)/width,height-i);
}
*/
/* Motiv 3
for(int i=100; i
line(i,(i/2)+250,width-(i/1.5)-50,height-i);
}
*/

Bild

Was ist ein Bild? Diese Frage konnte nicht geklärt werden. Braucht es eine Begrenzung, einen Rahmen? Wo fängt ein Bild an? Ist ein Bild schon das Motiv selbst, beginnt es im Kopf, in der Erinnerung? Beginnt es auf dem Film, dem Negativ? Der Ausdruck? Die auf die Festplatte gebannten Pixel?
Ein Pixel: Position und Farbwert.

Programmiersprachen

Besonderheiten

logisch, interpretationsfrei/eindeutig

Sprachen

PHP, ASP, Java, JavaScript, C, C++, Basic, VisualBasic, HSL, Prolog, Processing, ActionScript, Lingo, AppleScript, Kobolt, Hamster

Maschinensprachen -> Höhere Sprachen

Höhere sprachen sind besser lesbar, komfortabler für den Programmierer. Sie bieten einen höheren Umfang an Funktionen, die dem Programmierer Arbeit abnehmen.

Algorithmus

Ein Algorithmus ist eine hinreichend gut verständlich und exakte Tätigkeitsbeschreibung, die uns zum Ziel führt.

Beschreibung für Rechenvorgang
endlich, genau, präzise, effektiv*

(*erzeugt einen Effekt/hat ein Ergebnis - NICHT effizient)

Definierte Abarbeitung von endlich vielen Schritten.

Programm

Algorithmus in maschinenlesbarer Form

Zahlenmengen

Natürliche Zahlen N
1, 2, 3, …

Ganze Zahlen Z
-2, -1, 0, 1, 2, …

Rationale Zahlen Q
z.B. 2/3 oder 0,6Periode

Irrationale Zahlen
z.B. Wurzel(2), PI

Reele Zahlen R
Rationale + Irrationale

Komplexe Zahlen
z.B. Wurzel(-1) = i

(Auch bei Wikipedia gut erklärt)

Prozess

Abfolge/Vorgang/Ablauf/Abarbeitung mehrerer (vordefinierter) Aufgaben. Ereignisse. Oder einfach die (Gerichts-)Verhandlung?

Abspeichern von Daten. Aufruf von Befehlen.