Es wächst und gedeiht: Einstieg in Model-View-Controller

Für das Winzen-Projekt, das ich mit den Forschungsdaten von Christian Günther als eine Art öffentliches Tutorial für interessierte „Digital Humanities“-Anhänger baue, hatte ich ja CodeIgniter als Framework ausgewählt. Ursprünglich wollte ich ja gerne alles transparent von Grund auf programmieren, aber das wäre echt etwas zu heftig geworden, um es einigermaßen zeitnah neben der Arbeit zu machen. Inzwischen ist das erste Teilziel für das Winzen-Projekt erreicht und unter winzen.danielstange.de mit den elementarsten Funktionen auch nutzbar. „Es wächst und gedeiht: Einstieg in Model-View-Controller“ weiterlesen

Frontend-Kickoff

Mir ist irgendwie bewusst geworden, dass das Monate dauern wird, bis ich genug Programmieren erklärt habe, dass hier im Blog das Frontend zu Christians Daten der Winzen-Gruppe „live“ wachsen kann.  Also habe ich CodeIgniter in meine OpenShift-Instanz installiert und ein schnelles Frontend für die Datenbank gebaut. Unter winzen.danielstange.de gibt’s eine bescheidene Webrepräsentation, wer parallel mitbasteln will, checkt das Projektrepository bei bitbucket aus. Dokumentation folgt dann hier im Blog.

„Hello world“ – es wird Zeit zu programmieren

In der Datenbank liegen die  Winzen-Daten jetzt schon einmal recht gut. Aber wir wollen ja auch noch Dinge damit tun. Dafür ist eine Datenbank nur rudimentär geeignet. Es gibt zwar einige Möglichkeiten, Logik auch direkt in die Datenbank zur verlagern, und Daten anzeigen gehört nicht zu ihren Funktionen. Wir müssen also kleine Programme schreiben, die eine Abfrage ausführen, das Ergebnis holen und ausgeben. Und das ist gar nicht so schwierig, wie es klingt. Na gut: Es ist natürlich ein Unterschied zwischen professionellen Programmen und Scripts, die „mal eben“ etwas erledigen. Eins nach dem Anderen – wir wollen ja erstmal anfangen. „„Hello world“ – es wird Zeit zu programmieren“ weiterlesen

SQL Vertiefung: Keys und die Winzen-Relationen in Action

Ich musste erstmal die Tabellenstruktur nacharbeiten, aber jetzt geht’s dann weiter mit Beispielen für die Winzen-Datenbank zur Masterarbeit von @derguenther. Habt Ihr die unterschiedlichen Abfragen noch drauf? Wenn nicht, lest noch einmal schnell nach: Blogartikel zu den SQL-Basics. Und wer das Ganze mit den gleichen Daten nachspielen will, kann in meinem Bitbucket-Repo die SQL-Rohdaten auschecken oder herunterladen und in seinem mySQL-Server laden.

„SQL Vertiefung: Keys und die Winzen-Relationen in Action“ weiterlesen

Da schlummert was im Archiv

Gerade macht ein netter Artikel auf dem Aktenkunde-Blog die Runde und ganz ehrlich: Wunderbar spitz formulierter Beitrag, den es zu lesen lohnt. Es geht um die Überlegung, welchen Unterschied es wohl macht, welches Wort denn nun als Randnotiz geschrieben und unterstrichen wurde. Eine digitale Edition liefert hier den Beweis, dass schon immer da war, was für manch einen Experten früher nicht dagewesen zu sein scheint. Zumindest stellte es sich mal anders dar. Und dann fiel mir David Kriesel wieder ein, der am 28.12.2014 auf dem 31c3 einen tollen Vortrag (Video auf media.ccc.de – oder youtube)mit einer katastrophalen Botschaft gehalten hatte (sein Blogpost hier) „Da schlummert was im Archiv“ weiterlesen

Textverarbeitungs-Evolution I – Versionskontrolle statt USB-Sticks

Nennen wir es mal beim Namen: Jeder schreibt mit Word (OpenOffice, Pages, was auch immer), und jeder weiß irgendwie auch: Große Dokumente mit Word zu schreiben, das ist nicht schön. In Word entstehen in der Wissenschaft Forschungsförderanträge und Qualifikationsarbeiten, und Stunden, Minuten, vielleicht auch einen Tag passiert es quasi immer: Textverarbeitung schmiert ab, kaputtes Dokument, was auch immer – und dann herrscht die nackte Existenzangst. 

Ein bisschen was über Datensicherheit bei der Abschlussarbeit wollte ich schon länger schreiben, und daran soll hängen wie man Word am besten los wird.  „Textverarbeitungs-Evolution I – Versionskontrolle statt USB-Sticks“ weiterlesen

Winzen reloaded: Normalisiert – und jetzt?

In den vorangegangenen Schritten hatte ich anhand der Daten zur Winzengruppe, die @derguenther bereitgestellt hat, knapp und blumig erklärt, wie man eine Datenbank darauf entwickeln kann, die zumindest grundlegend (also nicht im orthodoxen, sondern forschungsdienlichen Sinn) normalisiert ist.

Jetzt stellt sich die Frage: Was mache ich jetzt damit?

Der Sinn einer normalisierten (relationalen) Datenbank wird nicht automatisch klar, wenn man bislang Excel gewohnt war. Eine relationale Datenbank wie mySQL ist immer dann stark, wenn Datensätze mit einander in Beziehung stehen. Bei historischen Personendaten ist das immer ganz besonders interessant, wenn man Beziehungen, Zeitverläufe etc. erfassen will. Wer kennt wen? Wer hielt sich wann wo auf? „Winzen reloaded: Normalisiert – und jetzt?“ weiterlesen

„Weihnachtsprojekte“

Das mit diesen „Weihnachtsprojekten“ / „Zwischen den Jahren-Projekten“ ist irgendwie auch Murks. Oder ich habe zu viele Ideen. Jedenfalls ist in drei Tagen der Urlaub vorbei und auf der Bucket List für diesen Urlaub steht noch teilfertig:

  • besser JavaScript können: Das ist ganz gut gediehen
  • Vorbereitung für die Platform Developer Zertifizierung – Status: okayish
  • Tweet-Dump-Application für den @paintitscience bauen – Status: naja, der gute Wille zählt.
  • Das Gerüst einer generischen Randomizer-Funktion bauen, die im Process Builder in als Invocable Method läuft nach einer Idee von der @bethbrains – Status: okayish (es fehlen noch ein paar Feinheiten, aber da wird’s einen Open Source Release geben unter https://github.com/dstdia/SFDCRandomizer)
  • Und jetzt hat mit wieder mal @derguenther auf zwei interessante Themen gebracht:
    • Größere Texte ins Web publizieren und die Kommentare als Annotation denken. Ich weiß, da gibt’s Sachen wie thepund.it, hypothes.is, Annotate.JS und so. Aber ich finde das irgendwie schwach, dass man immer entweder ein Browser-Plugin braucht, sich bei einem 3rd-Party-Dienst anmelden muss oder nicht gemeinsam auf den Annotationen arbeiten kann.
    • Die Daten der Winzengruppe mal richtig strukturieren. Irgendwie scheint das Interesse da zu sein. Ich würde dazu ja naturgemäß eigentlich gern eine Force.com-Application nehmen, aber das ist dann vielleicht zu heftig für die „Zielgruppe“. Also versuche ich mich mal zu bremsen und baue in mySQL / PHP, vielleicht mit Cake oder so?

OK, vermutlich sind das genug Vorsätze, um 2017 noch nicht fertig zu sein mit allem 🙂

Ist JSON schreiben programmieren?

JSON (gesprochen wie Jason) ist ein guter Bekannter von allen, die etwas hinter die Kulissen des Web und von Datenschnittstellen schauen. JSON ist kein so besonders beliebter Typ, weil er sehr flexibel und verbiegbar ist. Aber viele lieben ihr auch genau deswegen. Neulich wurde ich mal gefragt, ob JSON bearbeiten programmieren ist. Ist es nicht.  Aber warum?

JSON steht für Javascript Object Notation – Javascript Objekt-Schreibweise. Und damit ist eigentlich die Antwort gegeben, warum JSON eben Schema und nicht Logik ist: JSON ist ein Weg, zu beschreiben, wie ein Objekt aussieht. Ja, JSON sieht aus wie eine Programmiersprache. Weil es in der Syntax von Javascript funktioniert. Aber das ist genau das gleiche wie „in Deutsch schreiben“ mit „ein Gedicht“ gleichzusetzen.

Also – was ist JSON dann?  „Ist JSON schreiben programmieren?“ weiterlesen

„Chancen und Risiken“ my ass.

Ich bin ja inzwischen fast erheitert, wenn ich in der Diskussion um „Digital Humanities“ von „Chancen und Risiken“ / „Grenzen und Möglichkeiten“  lese – aus meiner Sicht ist das inzwischen fast das eindeutigste Indiz, dass der Text eine Hidden Agenda hat und eigentlich die Zeit nicht wert ist, ihn zu lesen (EDIT: Man muss sich wohl mal die Frage stellen, für wen oder was eigentlich „Chancen“ und „Risiken“ bestehen – diese Frage drängt sich mir beim nochmal nachdenken auf). Ich nutze die Zeit lieber für einen Rant und will man über drei Toptreffer im Bullshit-Bingo der DH-Diskussion schimpfen.  „„Chancen und Risiken“ my ass.“ weiterlesen