» Knorkator im Mau (Rostock)
Gestern war ich auf einem der besten Konzerte, die ich seit langem gesehen habe. Knorkator hat ein 2 Stunden Programm geboten und bis auf "Klartext" haben sie alle Songs gespielt, die man sich wünschen kann.Songs, an die ich mich erinnere waren: "Ding inne Schnauze", "Die Narrenkappe", "Ein ganz besond'rer Mann", "Ich will nur ficken", "Konflikt", "Pft", "Alter Mann", "Wir werden alle sterben", "Nur mal angenommen", "GV", "Geld", "Der Ultimative Mann", "Ich hasse Musik", "Mai Khao Djai", "Böse" und und und.
Auch die Show rund um die Songs herum war sehr genial. Die Knorkatorjungs wissen, wie man die Menge motiviert. Ein grosses Plus auch für die Soundqualität - diese übertraf sogar die Studioaufnahmen ;-)
Das nächste mal bin ich unter Garantie wieder dabei!!
Lokales , Musik | 17.03.2007 | 123 Wörter
» Prüfung in praktischer Informatik
Ich hatte heute meine mündliche Prüfung in praktischer Informatik. Das beinhaltet Programmierungstechnik und Softwaretechnik. Natürlich war mir von vornerein klar, dass es für mich keine große Herausforderung wird(eigentlich war ich der größte Schisshase, aber egal ;-) ).Mit 2,7 bin ich insgesamt zufrieden, obwohl ich doch bei der ein oder anderen Frage etwas mehr hätte rausholen können, aber so sind Prüfungsbedingungen halt.
Zum Inhalt:
Als erstes wurde ich zu den Möglichkeiten befragt, die man hat, um dynamische Prozesse darzustellen. Es lief hier insbesondere auf Mealy-,Moore- und Harelautomaten hinaus, wobei insbesondere Unterschiede und Merkmale dieser Automaten interessant waren. Auch zu diesem Thema gehörte das Petri-Netz(besonders B/T-Netze). Mealy-,Moore und Harel hatte ich keine Probleme, auf die Petri-Netze musste er mich erstmal stossen - die Erklärung war aber nicht das Problem. Noch eine kleine Verstehensfrage, wieviele Zustände man mit n-Stellen in einem B-T-Netz darstellen kann(Antwort:nhoch2) und dieses Thema war abgehakt.
Dann ging es weiter mit B-Bäumen, wobei das Hauptaugenmerk auf den Einfügealgorithmus gerichtet war. Den Algorithmus konnte ich gut erklären, jedoch wusste ich nichts mit der Frage anzufangen, an welchem Knoten man erkennt, ob der Baum wächst. Nach kurzer Zeit konnte ich aber auch das lösen. (Antwort: Wurzelknoten) ;-)
Danach ging es um Relaxation. Das Thema hat mir gefallen. Erstmal kurz die Nutzung der Relaxation im Bellman-Ford(jede Kante wird n-mal relaxiert) und Dijkstra(jede Kante wird 1-mal relaxiert). Und wie das Prinzip funktioniert. Dann musste ich erklären, warum der Dijkstra einen höheren Aufwand als O(n) hat.(Antwort: die Verwaltung der Priority-Queue).
Im Anschluss daran widmeten wir uns dem optimalen Suchbaum. Hier war meine Leistung etwas ausbaufähig :-). Grundsätzlich konnte ich erklären, wie ein optimaler Suchbaum aufgebaut wird. Aber mehr auch nicht :-D. Der Algorithmus für einen annähernd optimalen Suchbaum wäre mir leichter gefallen
Das letzte Thema war Iterative Deepening Depth-First-Search. Hier konnte ich etwas trumphen. Die Erklärung ging mir gut von der Hand, in welchen Fällen diese Suche genutzt wird(Kann bei unendlichen Graphen genutzt werden, wenn man eine Vorstellung hat, wie weit der Zielknoten entfernt ist). Auch die Frage warum die Breitensuche hier nicht besser ist(ziemlich hoher Speicherverbrauch).
Alles in Allem war es halb so schlimm ;-)
MfG Lundner
Studium , Tagebuch | 13.03.2007 | 381 Wörter
» Bildupload via PHP
Ich habe mal eine kleine Funktionalität zum Hochladen von *.jpeg Bildern geschrieben. In wenigen Schritten ist das ganze eingerichtet1.Erstellt einen Ordner "pictures", in den die Bilddateien abgelegt werden.
2.erstellt eine Datei "upload.php", in die ihr diesen code einfügt:
<?php
function upload_pic(){
if($_POST[form_picture_send]){
//Bild absenden
upload_send();
} else {
show_form();
}
}
//Formular anzeigen
function show_form(){
echo '<form method="POST" action="',$_SERVER[PHP_SELF],'" enctype="multipart/form-data">';
echo 'Bild hochladen: <input type="file" name="form_picture"><br><br>';
echo '<input type="submit" value="hochladen" name="form_picture_send">';
echo '</form>';
}
//Bild hochladen
function upload_send(){
$maxsize = 100000;
$maxwidth = 1000;
$maxheight = 700;
if($_POST[form_picture_send]){
//Es wurde kein Bild hochgeladen
if($_FILES[form_picture][size]==0){
$error[] = 'Du musst ein Bild hochladen.';
} else {
//Fehler: Bild zu gross
if($_FILES[form_picture][size]>= $maxsize){
$error[] = 'Das Bild ist zu groß';
}
//Fehler: Falscher Bildtyp
if(($_FILES[form_picture][type]<>"image/jpeg") and ($_FILES[form_picture][type]<>"image/pjpeg")){
$error[] = 'Es sind nur Bilder des Typs *.jpg und *.jpeg gestattet.';
}
//Abmessungen des Bildes herausfinden
$size = getimagesize($_FILES[form_picture][tmp_name]);
$width = $size[0];
$height = $size[1];
if(($height>$maxheight) or ($width>$maxwidth)){
$error[] = 'Die Bildabmessungen sind zu gross. Erlaubt ist höchstens '.$maxwidth.'x'.$maxheight.' px.';
}
}
if(!isset($error)){
//Kein Fehler vorhanden ...
//Bild kopieren
$newfile = time().'.jpg';
$newfilepath = '../pictures/'.$newfile;
//Bild an neue Position kopieren
copy($_FILES[form_picture][tmp_name],$newfilepath);
} else {
//Fehler aufgetreten, ausgeben
foreach($error as $out){
echo '<div>',$out,'</div>';
}
}
}
}
?>
3.Die Werte $maxwidth.$maxheight und $maxsize nach Wunsch anpassen.
4.Um das Formular aufzurufen müßt ihr nur noch diesen Code in eure PHP-Seite einfügen:
<?php //Einbinden der upload.php include 'upload.php'; //Aufrufen der Upload-Funkton upload_pic(); ?>
5.Spass haben ;-)
Hinweis
-Ich übernehme übrigens keine Verantwortung für die Sicherheit dieses Skripts - Hinweise sind aber willkommen.
-Das Skript gibt nur eine mögliche Vorgehensweise an. Es hat keinen Anspruch auf Sicherheit oder Vollständigkeit.
Programmierung | 12.03.2007 | 41 Wörter
» Schulfasching in Barth Review
So gestern war Schulfasching der jetzigen 11. Klasse! Am Anfang kam mir die Veranstaltung doch etwas "leer" vor, was sich im Laufe des Abends aber änderte. Die Stimmung war auch ausgesprochen gut. Leider wird es wohl zum Trend, das jedes Jahr weniger Lehrer sich blicken lassen, aber da kann ich mich auch subjektiv täuschen ;-).Als größtes Hinderniss an diesem Abend stellte sich für mich das Bier heraus. Man kann sich nicht vorstellen wie schwer es ist, einen Ortswechsel zu vollziehen mit Krücken+Bier. Viele bekannte Gesichter waren dort, nervig nur dass mich so gut wie jeder nach meiner Verletzung fragte - aber verständlich. Ich hätte mir wohl einen Aufkleber mit "Achillessehnenruptur" holen sollen ;-) .
Geheiratet wurde auch! - Tim gab mir sein Wort und seine Jungfräulichkeit (wer's glaubt ;-) ). Nach 3-4 Stunden war es dann aber auch schon relativ schwer zu stehen, weshalb ich dann langsam gegen 12 den Heimweg antrat.
Alles in Allem ein angenehmer Abend und nächstes Jahr bin ich bestimmt auch wieder dabei, auch wenn ich nicht jünger werde :-D.
Tagebuch , Lokales | 10.03.2007 | 172 Wörter
» Verstecktes Layer sichtbar machen
Um die Seite nicht zu überladen, möchte man eventuell bestimmte Informationen nur anzeigen, wenn diese durch den Besucher auch erwünscht sind. Doch dafür eine neue Seite zu öffnen ist in den meisten Fällen überflüssig. Für solche fälle gibt es eine Javascript-Lösung.In diesem kleinen Tutorial geht es um "meinLayer":
<div id="meinLayer" style="display:none;"> Mein verstecktes Layer </div>
Es soll auf Knopfdruck versteckt bzw. sichtbar gemacht werden. dafür benötigen wir folgende Javascriptfunktion:
<!-- Javascript -->
<script type="text/javascript">
function showHideLayer(id){
e = document.getElementById(id);
if(e.style.display=="block"){
e.style.display = "none";
} else {
e.style.display = "block";
}
}
</script>
Sie funktioniert folgendermassen:
das html-Element mit der id: id wird dem Element e zugewiesen.
Nun wird geprüft, ob es die CSS-Eigenschaft display:block hat. Wenn dies der Fall ist, dann wird es versteckt, indem ihm die CSS-Eigenschaft display:none zugewiesen wird. Trifft diese Eigenschaft nicht zu wird die Eigenschaft display:block zugewiesen.
Dieses Script kann man nun folgendermassen Aufrufen:
<a href="alternativerLink" onclick="showHideLayer('meinLayer');return(false)">Anzeigen/Verstecken</a>
Wichtig hierbei ist, das ihr mit href einen alternativen Link angebt, mit dem die Leute, die Javascript nicht aktiviert haben, an die selben Informationen kommen, wie die Javascriptnutzer(Stichwort: Barrierefreiheit). Der Link funktioniert nur wenn ihr hinter dem Funktionsaufruf das return(false) anfügt. ;-)
Und hier der Code mal im Gesamten:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Verstecktes Layer sichtbar machen</title>
<!-- Javascript -->
<script type="text/javascript">
function showHideLayer(id){
e = document.getElementById(id);
if(e.style.display=="block"){
e.style.display = "none";
} else {
e.style.display = "block";
}
}
</script>
</head>
<body>
<!-- Link zum Anzeigen/Verstecken -->
<a href="alternativerLink" onclick="showHideLayer('meinLayer');return(false)">Anzeigen/Verstecken</a>
<div id="meinLayer" style="display:none;">
Mein verstecktes Layer
</div>
</body>
</html>
Beispiel
MfG Lundner