Archiv für Kategorie Studium (done)

LaTeX unter Windows

Wie viele Andere, muss auch ich irgendwann mal die wunderbare Welt der Abstraktion verlassen und eine echte Bachelorarbeit schreiben… allerdings war ich noch nie großer Fan von Dokumentation o.ä. (wem es genauso geht kann sich ja mal das Eclipse Plugin JAutodoc anschauen :-) )

Nun erzählt man sich dass echte Informatiker solche sachen mit diesem LaTeX erledigen, und genau das versuch ich nun hier mal etwas näher zu bringen:
Die Windows Distribution für LaTeX ist MiKTeX, bei mir hat die 2.9er Version einwandfrei funktioniert.

Zum schreiben genügt eigentlich jeder etwas bessere Texteditor ala Notepad++, da man aber bei den Notationen oder Sonderzeichen nur wenig bis gar keine Unterstützung erhält, habe ich mich hier für das TeXnicCenter entschieden.
TeXnicCenter wird beim ersten Start nach der LaTeX Distribution fragen, hier muss man das bin Verzeichnis der MiKTeX angeben (in der Standardinstallation als “C:\Program Files (x86)\MiKTeX 2.9\miktex\bin”).

Grundsätzlich war das nun schon alles… wären da nicht ca 1800 Zusatzpakete für LaTeX, von denen das TeXnicCenter (zumindest bei mir) nicht in der Lage war die benötigten Pakete eines Templates automatisch herunterzuladen. Der die Exception über fehlende Pakete könnte nicht sprechender sein: “cannot initialize GUI Framework”. Wenn man nun aber die Ursache kennt, kann man den Fehler auch recht einfach beheben. In der gleichen Zeile wie die Exception müsste auch der Paketname zu finden sein, das muss nun manuell installiert werden. Dazu unter dem oben genannten bin Verzeichniss von MiKTeX die Datei mo.exe ausführen und im letzten Reiter (“Packages”) ein Repository auswählen und dann über den “Start Package Manager” Button den Paket Manager starten. Die Filterfunktion tut einwandfrei ihren Dienst und liefert im Normalfall das fehlende Paket. Nun nur noch über das + oder über Rechtclick/install das Paket installieren und das Kompilieren neu starten und das nächste fehlende Paket suchen :-)

Wer einen guten Mirror für ein Repository gefunden hat und über eine entsprechende Leitung verfügt kann auch die Dampfhammermethode wählen und über “Edit/Select Installable Packages” alle auswählen und runterladen.

Noch ein paar Tips zum Schluss:

  • Das Paket Listings macht einigermaßen brauchbares Syntaxhighlightning. Zu benutzen:

    \begin{lstlisting}[language=Java]
    Code
    \end{lstlisting}

  • Für Links hilft das hyperref Paket enorm weiter:
    \href{www.drailing.net}{subba Blog}
  • Falls sich über das TeXnicCenter gar nichts kompilieren lässt, ist die Fehlerausgabe und hilfe in der Konsole um einiges besser, auszuführen über:
    pdflatex Bachelorarbeit.tex

In diesem Sinne,
nach dem Post kann ich kein Camelcase mehr sehen und allen die auch grade anfangen zu schreiben: Viel Erfolg!

Keine Kommentare

Rückmeldung zum Wintersemester 2010/11

Zur Erinnerung: vor einer knappen Woche hat wieder die Rückmeldefrist fürs nächste Semester begonnen (231 Euro) und kann bis zum 04.08.2010 überwiesen werden.

Alle benötigten Daten sind hier zu finden: Link

Keine Kommentare

Kurz Zusammengefasst und wieder da!

Hallo Zusammen,

leider wars etwas still in der letzten Zeit, die Klausuren sind aber inzwischen vorbei, die Semesterferien ebenso und so fängt der harte Studentenalltag wieder an.
Es gab viel zu tun und mit dem neuen Semester möchte ich mit einer kurzen Zusammenfassung auch die neue “Blog-Saison” einläuten :-)

Neues Semester:
nach gnadenloser Überbelegung und einem etwas chaotischen Semesterstart, habe ich inzwischen doch noch alle Kurse bekommen. Insgesammt wirds wohl ein verdammt dickes Semester:
- das erste Mal wird C# angeboten, sehr gemütliche Sprache, leider ist die Microsoftkonforme Notation mindestens genauso gewöhnungsbedürftig wie der Umstieg von Eclipse auf Visual Studio. Bei letzterm steht uns immerhin die 2010er Version als Beta zur Verfügung. Trotz eines neuen und sehr mächtigen Refactoring Tools fehlt mir immenroch der Komfort von Eclipse oder Netbeans (ganz stupide: automatisches Schliessen der Klammerungen fehlt komplett…) und es ist wieder ein ganz neues Gefühl ohne Ontime Debugger zu entwickeln.
- in Datenbankanwendungsentwicklung wird eine bestehende Applikation in PHP mit MySql-DB nach Java mit eigenem Datenbankserver portiert. Da wird wohl das Spannenste die tieferen Einblicke in Hibernate sein. Zudem steh ich einfach auf Java / EJB im JSP Umfeld :-)
- von Data Warehouse und OLAP verspreche ich mir einfach einen Crashkurs im gesamten DWH Umfeld.
- die Vorlesung Projekt Systementwicklung ist im Grunde gar keine Vorlesung. Wir spielen Softwarehausm, haben Rollen verteilt und entwickeln eine Reiseverwaltung fürs iPad. Da ich ja im Grunde dem Apple Hype nichts abgewinnen kann und ich mir hin und wieder eine abfällig Bemerkung nicht verkneiffen möchte war ich mir nicht sicher ob ich da richtig bin. Das “Kickoff Meeting” hat mich aber dann doch überzeugt, der Dozent bringt den nötigen Witz mit und zum Glück gibts dazu auch ein Webfrontend mit Rails zu entwickeln!!

Zusammengefasst: ich freu mich drauf!

Arbeit in Semesterferien, diesmal: ein Preisbildungstool:
nach der ersten Woche Gewälze von lebenden Konzepten und der Aufgabe Testfälle daraus zu entwickeln (brrrrr) durfte ich endlich auch an den Code. Aber die Realität ist hart und ernüchternd. Nach Advanced Programming Techniques im lezten Semester dacht ich, ich bin gut vorbereitet und es kann kommen was will – aber am ende kam ein Richclient auf Basis von nem selbstgeschriebenen russischen Framework und Java 4… Nach einer kleinen Einarbeitungszeit konnte ich dann aber auch kleinere Aufgaben übernehmen und mit viel Schweiss, dem Ignorieren von allem Gelernten und einer komplett zerstörten Ansicht über die schöne, heile Javawelt wurde am Ende auch so gut wie alles gemeistert.

Resümiert habe ich viel neues, altes gelernt und trotz dem gnadenlosen Dampfhammer der Praxis hats immer viel Spaß gemacht!

Das wars im Großen und Ganzen, und in diesem Sinne,
wünsche euch allen nen guten Start ins Semester und viel Erfolg!

Grüße,
Christian

4 Kommentare

Schützt das Klima!

Guten Abend!

nach der heutigen Klausur schmerzte doch einiges, irgendwie und überall.
Daher beschloss ich mich einen kleinen Artikel im Fachschaftsforum zu platzieren den ich im Nachhinein doch auch für Blogtauglich empfand :-)

Anbei mein Geschreibsel und der Link zum Fachschaftsforum:

—-Anfang—-

Schützt das Klima!

Vorausgeschickt sei: wenn ich meine restlichen 2 Semester überblicke, habe ich alle Klausuren in dieser Form überstanden. Also geht mein Hilferuf ausschließlich an die nachfolgenden Generationen.

Nun zum eigentlichen.
Wie wir alle wissen befinden wir uns im wärmsten Winter aller Zeiten – und da wir alle brav an die uns vorgesetzten Klimaforscher glauben, fordere ich hiermit: Keine Programmierklausuren mehr auf Papier!

Sorgfältig wurde die Herkunft dieses aussterbenden Rohstoffs recherchiert, und es hat sich herausgestellt: Papier ist aus Baum! (http://de.wikipedia.org/wiki/Papier#Rohstoffe)

Wiederum musste ich feststellen, dass “Baum” zu der Gattung der Pflanzen zuzuordnen ist und die der Fotosynthese bemächtigt sind. (für Unwissende: unser Atemabfall wieder in gute Luft verwandeln)

Nun wird mir bestimmt niemand widersprechen wollen, wenn ich hier eine Behauptung aufstellen möchte: Programmierklausuren auf Papier schädigen die Umwelt!

Im Grunde kann man diesen umweltschädlichen Fakt (nehmen wir an dieser hat den wert 100) auch noch mit verschiedenen anderen Faktoren multiplizieren. Bisher konnte ich der praxisnahen Ausbildung an der h_da vollkommen zustimmen, der subjektive Studienaufbau stimmt, und subjektive 95% der Professoren sind auf dem aktuellen Stand und schaffen es sogar vollkommen interessenfremde Themen noch in irgendeiner Form interessant gut darzustellen.

Leider Gottes bleibt mir jeglicher Sinn und praxisbezogene Lerneffekt von Programmierklausuren auf Papier bisher verschlossen. Das Werkzeug für uns heißt IDE! Kein Arbeitgeber wird jemals fragen “Naa, junger Mann, kannst du auch schönen php/java Code auf Papier schreiben?”. Eine der Kernfragen wird sein, ob man in Umgang mit eclipse (seltener wohl inzwischen auch netbeans oder eclipse-pdt bzw aptana) auf dem Stand der Dinge ist.

Da wohl bisher die wenigsten Programmierklausuren auf Papier auch zeitlich angemessen waren, nehmen wir hier an, der Faktor beträgt 300.
Ausmultipliziert ergibt das einen Unnötigkeitsfaktor von 3000!

Daher die Frage: Wo liegt der Sinn darin, wertvolles Papier mit Code zu schänden, wenn darauf wertvolle Gedichte oder Bücher entstehen könnte?
Und wo liegt der Mehrwert für uns?

(wenn man den Faktor 10 für die angenehmere Korrektur für unsere Profs dazu nimmt, sind wir bei 30.000!)

In diesem Sinne,
danke an Wieczo fürs ausbügeln meiner (Komma-)Legasthenie

—-Ende—-

und in weiterem Sinne,
weiterhin viel Erfolg bei den Klausuren!

Keine Kommentare

Erinnerung: Fristen fürs Sommersemester

Hallo Zusammen,

da ich solche unangenehmen Sachen wie hart verdientes Geld ausgeben gerne vergesse:

Ab heute kann die Rückmeldegebühr fürs Sommersemester überwiesen werden!
Die normale Frist läuft noch bis zum 24 Februar, und die kostenpflichtig verlängerte Frist läuft am 3. März aus.

Links:
Semesterbeiträge der h_da
Semestertermine der h_da

Grüße,
Christian

2 Kommentare

PHP Schnipsel I

Guten Morgen,

da sich inzwischen auch EWA mit den etwas interessanteren Themen beschäftigt und sich im laufe der Zeit auch ausserhalb von EWA etwas nützliches angesammelt hat, hier ein paar kleine Codeschnipsel auf die ich immer wieder gerne zurückgreiffe:

Komplettes POST Array auslesen und ausgeben:

foreach($_POST as $key => $value)  { 
    print(htmlspecialchars("Name: [$key] Wert: [$value]")."<br>"); 
}

Komplettes POST Array unescapen:

if (get_magic_quotes_gpc()) {
    $_POST = array_map('stripslashes', $_POST);
}

Includes als Dateinamen managen:

if ($_GET && is_file("files/".$_GET["site"].".php"))
    include ("files/".$_GET["site"].".php");
else
    include ("welcome.php");

Letzte Besuche von Google Bot registrieren:

$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);    
$domain = explode(".", $host);   
$domain_array = count($domain)-2;   
if ($domain["$domain_array"] == "googlebot"){  
    //information verwalten, insert oder ausgabe 
}

Und kennt evtl irgendjemand ein WordPressPlugin was es erlaubt den Code schön formatiert zu posten?
Für Tips bin ich sehr dankbar ;-)

Grüße,
Christian

2 Kommentare

JS: private Member

Guten Morgen!

nach dem EWA (Entwicklung Webbasierter Anwendungen) Praktikum und unserer Lösung, möchte ich die privaten Member in JavaScript kurz vorstellen da es wohl dem ein oder anderen noch nicht bekannt ist.

Aufgabe war ein Pizza-Bestellservice zu basteln, bei dem mit Klick auf ein Bild die entsprechende Pizza dem Warenkorb hinzugefügt wird. Beim Hinzufügen soll sich auch entsprechend der Preis ändern. Hier bieten sich die privaten Member sehr an, da man keinerlei sonstige Container braucht.

Beim onklick aufs Bild wird also eine neue Option mit entsprechenden Parameternder Liste zugefügt. Ein privates Memberattribut wird selbst definiert und wird nicht im HTML angezeigt – wir können also der Option beliebig viele, selbst definierte Attribute zuweisen und später wieder im JS zugreifen.
In der Zeile “pizza_neu.preis = preis;” setzen wir das Attribut, wobei der Name komplett beliebig gewählt werden kann:

function addPizza(name, preis){
    var pizza_neu = new Option();
    pizza_neu.innerHTML = name;
    pizza_neu.preis = preis;
    document.getElementById(warenkorbID).appendChild(pizza_neu);
}

Und können beim Preis berechnen wieder ganz einfach zugreifen, indem wir uns die Liste mit allen Options holen und über das zuvor definierte Attribut iterieren:

function price_gen() {
    var korb = document.getElementById(warenkorbID;
    var preis = 0;
    for (var i = 0; i &lt; korb.length; i++) {
    preis += korb.options[i].preis;
    document.getElementById(warenkorbID).innerHTML = "Gesamtpreis: " + preis + " €";
}

Nicht sehr schwer zu verstehen oder anzuwenden, aber man muss es mal gesehen haben :-)

Noch ein kleiner Tip zur nächsten Aufgabe: Ich musste feststellen das sich XAMPP (Apache) und Skype nicht besonders mögen und sich gegenseitig die Ports belegen – wenn sich also der Apache nicht starten lässt, einfach mal Skype beenden!

Wünsche allen einen guten Start in die Woche!
Grüße,
Christian

Keine Kommentare

EWA Tools (Entwicklung Webbasierter Anwendungen)

Guten Morgen!

Da EWA ja langsam mit der eigentlichen Entwicklung beginnt, dachte ich mir dass es vielleicht sinnvoll ist mal die gängigsten Tools zusammenzufassen:

- Aptana: Link
sehr komfortabler Editor auf Eclipsebasis

- XAMPP: Link
eine Distribution aus Apache Webserver, PHP und MySQL – sehr einfach zu installieren und super praktisch zum lokalen Entwickeln.

Firefox Plugins:

– Firebug: Link
einfach DAS Werkzeug ohne das wohl kein Webentwickler mehr leben möchte. Ermöglicht das genaue Analysieren und Debuggen von HTML, CSS und Javascript.

- IE Tab: Link
erlaubt das Darstellen der Seite in der Internet Explorer Engine in einem eigenen Firefox Tab.

- HTML Validator: Link
prüft jede Webseite auf Standardkonformität und zeigt dabei Warnings und Fehler an.

- Dust-Me Selectors: Link
scannt das CSS (auf Wunsch automatisch) und erstellt eine Liste mit genutzen und ungenutzen CSS Klassen

Internet Explorer:

IE Developer Toolbar: Link
ähnlich wie Firebug für Internet Explorer, leider bei weitem nicht so komfortabel.

Und zum Schluss noch ein Link zum “Werkzeugkoffer für Webentwickler” – eine sehr umfangreiche und gut sortierte Linksammlung in der man immer mal wieder was nützliches neues finden kann.
(gefunden bei Webthreads )

Ich glaube für den Moment habe ich nix vergessen, vielleicht hilfts ja dem ein oder anderen etwas weiter ;-)

Grüße,
Christian

2 Kommentare

Semesterstart und 64bit

Hallo Zusammen,

mit einer glatten 2 in der BWL Klausur, fast allen Wunschfächern und einem neuen Notebook starte ich nun also ins 4. Semester.

Da fangen auch schon die Probleme an, das doofe ding hat doch tatsächlich 4 Gigabyte Arbeitsspeicher. Grundsätzlich sind 4 Gig ja nichts schlechtes, allerdings heisst das auch es muss ein 64bit Windows 7 installiert werden, da die 32bit Version nur bis 3 Gigabyte unterstützt.

Da es sich nicht immer als einfach herausgestellt hat auch eine 64bit kompatible Version zu bekommen habe ich hier einfach mal meine Lösungen zusammengeschrieben.

Eclipse:
leider habe ich mir da sehr schwer getan, mich auf der Eclipse-Seite zurecht zu finden, über Umwege kam ich dann bei diesem Link heraus.
Nicht vergessen die Umgebungsvariable zum JDK zu setzen!

JDK:
nun… kein Hexenwerk sich im Dropdownmenü das entsprechende zu suchen, deshalb nur der vollständigkeit halber hier: Link

Groove ist jetzt Mesh:
was soll man sagen, MSDN verwöhnt eben ;) Dummerweise funktioniert bei Groove die Dateifreigabefunktion unter 64 bit nicht. Lange habe ich nach einer Alternative gesucht um etwas komfortabel den Studienordner und Workspace zwischen Notebook und Desktop zu synchronisieren. Die Lösung für mich zur zeit ist Mesh. 4 Gigabyte Speicherplatz sind kostenlos und die Synchronisation funktioniert bei mir tadelöse. Soll sogar zwischen Mac und PC funktionieren!

Sobald neue Probleme und die damit verbundenen Lösungen auftauchen aktualisiere ich hier ;-)

Grüße,
Christian

4 Kommentare