Massenproduktion angelaufen

Jau, der Automatismus steht …

card2

Es hat sich noch einiges geändert … Und zwar baue ich jetzt keine Latex-Dokumente mehr zusammen, sondern verwende ganz simple pdfjam, was Teil von pdflatex ist (und Latex-Dokumente baut 😀 )

pdfjam $FN --frame true --nup 2x1 --angle 270 --suffix 4up --delta "0.8cm 0cm" --scale 0.93 --papersize '{145mm,105mm}' --outfile back.pdf

In $FN kommen alle A7-Karten, die auf A6-Papier gemerged werden sollen.

D.h. FN=“a.pdf b.pdf“, mit jeweils a.pdf und b.pdf ist ein A7 PDF, dann bekommt man ein einseitiges A6-PDF mit a.pdf und b.pdf auf einer Seite.

Man druckt zuerst das PDF mit den Vorderseiten, dann dreht man den Stapel um und druckt das PDF mit den Rückseiten und dann schneidet man die Karten auseinander (weil die meisten Drucker kein A7 drucken können).

Der Unterschied von Vorder- zu Rückseite der Karten ist einfach einmal „–angle 270“ und „–angle 90“.

Das eigentliche Ausdrucken der Karten auf A6-Papier war ja auch eine kleine Odyssee … Mein Drucker weigerte sich A6 im „Landscape“-Modus zu bedrucken. Schließlich konnte ich ihn überreden, indem ich behauptete, es wäre ein A5 Papier. Interessanterweise störte meinen Drucker das Fehlen der unteren Hälfte A5-Papier nicht 🙂

Ich hab mir gestern auch mal das Android SDK und ein Barcode-Scanner Example angeschaut … Ohne jegliche Android-SDK Kenntnisse war es mir innerhalb 2h möglich, das SDK zu installieren und das Beispiel zu kompilieren und auf mein Handy zu deployen.

Jetzt fehlen eigentlich nur noch 5 Zeilen Code, um die Anki-Audio-Samples abzuspielen und einen kleinen QR-Code Python Generator, der mir die QR-Codes für die Audio-Samples für meine Karteikarten erzeugt.

Dann kann ich beim Lernen die Karte scannen und mir das Audio anhören 🙂

Advertisements

JLPT N5 Ergebnis

Tja, N5 war nix …

Ich hatte eigentlich damit gerechnet, dass ich im Listening-Teil die „Section-Pass-Mark“ nicht erreichen würde. Dort hat es aber gereicht – mit unglaublichen 22 von 60 Punkten (19 notwendig).

Und ich hatte in Vokabeln ein A und in Grammar ein A. Dafür ein C in Reading …

Und so kam ich dann auf 78/180 und damit um 2 Punkte zu wenig …

Reading halte ich aber für eine Übungssache, daher bin ich zuversichtlich, den N4 im nächsten Dezember zu bestehen 🙂

Klar ist man enttäuscht und man hätte sich gewünscht, den Test zu bestehen … Das ist aber kein Weltuntergang, weil ich das Zertifikat für nichts brauche und ich eh vor hatte, den N4 zu machen 🙂

Karteikarten und Audio

Richtige Karteikarten können kein Audio abspielen … leider …

Aber es müsste doch möglich sein, Bar-Codes per Anki-Plugin für die Karten zu erzeugen und eine kleine Android App zu bauen, die eine Barcode-Scanner-Library verwendet und je nach Barcode einfach eine Audio Datei abspielt.

So könnte man Karteikarten beim Lernen mit einem Smartphone scannen und so das entsprechende Audio abspielen …

Sowas scheint es bisher noch nicht zu geben … Schön wäre, wenn es sowas schon geben würde, dann bräuchte ich mir die Arbeit nicht mehr selbst machen 😉

Heute hab ich mein DIN-A6 Papier bekommen … Nicht zu dünn und hoffentlich nicht zu dick … Ich muss meinen Karteikarten-Erstellungs-Prozess nur noch vollständig automatisieren und kann dann mit dem Karteikarten-Lernen anfangen.

Wiederholen werde ich weiterhin mit Anki … Vlt brauch ich dann die Audio-Funktion gleich garnicht … Mal schauen 🙂

 

LMMS und Sustain Pedal

Na, das kann doch garnicht sein!

Mit Freuden stellte ich fest, dass LMMS auch für Windows zu haben ist.

Unter Windows funktioniert alles, was mit Multimedia zu tun hat, viel einfacher und tatsächlich … Midi meines Digitalpianos wurde sofort erkannt und ich konnte Noten im „Piano Roll“ aufnehmen.

Was die Programmierer aber von LMMS all die Jahre ignoriert haben, ist, dass es keinen Sinn macht, wenn LMMS das Sunstain-Pedal nicht unterstützt … Sie haben jetzt – Januar 2013! – die erste Implementierung eines Sustain-Pedals programmiert …

Manchmal kann ich nur meinen Kopf schütteln und bin sprachlos …

Soll ich mich jetzt doch wieder mit Midi unter Linux abmühen?

Genau das wollte ich nicht!

Hmm … Mal schauen, ob es das Fruity-Loop-Studio für Windows noch gibt, das war durchaus brauchbar …

Mit Karteikarten lernen

In meinem letzten Artikel kündigte ich an, meine Motivation, mit Karteikarten zu lernen, zu erläutern.

Nun, Anki ist wirklich großartig, wenn es um das Wiederholen von bereits gelernter Wörter geht.

Ich hatte damit aber immer große Schwierigkeiten eine Lektion über 80 Wörter über einen Zeitraum von einer Woche zu lernen.

Meines Verständnisses nach, ist Anki nicht mehrdimensional genug.

Man kann sich das so vorstellen, als gäbe es bei Anki nur eine Dimension. Entweder vorwärts oder rückwärts.

Was mir beim Lernen aber hilft ist, wenn ich beim Lernen feststelle, dass es ähnliche Karten gibt (z.B. Himmelsrichtungen, Familien-Mitglieder, …) und ich diese beim Lernen auf ein separates Häufchen legen kann und dieses dann seperat lerne z.B.

Das würde mit Anki eingeschränkt auch gehen, weil man die Karten ja taggen kann (was man konsequent machen müsste).

Bei Anki kann ich aber niemals 2 Karten gleichzeitig sehen und das geht mir wirklich ab!

Nun, das war so ein unterschwelliges Gefühl, dass sich mit der Zeit immer mehr verstärkt hat, bis ich erkannte, dass ich so nicht effektiv lernen kann.

Ich werde jetzt testen, wie es mit den Karteikarten läuft. Als Unterstützung zum Kanji-lernen hab ich auf jeder Karte die einzelnen Kanjis als KanjiABC-Grapheme und Bedeutungen, damit ich die Struktur der Kanji gleich lernen kann.

Ich hoffe, dass ich so jetzt endlich mal voran komme!

Zum Wiederholen ist Anki aber perfekt … Vorallem, weil Karteikarten mir nicht sagen können, wie man etwas ausspricht … D.h. Karteikarten für’s Lernen + Anki mit Audio zum Wiederholen und auffrischen dürfte genau richtig sein 🙂

 

Rückschritt ist Fortschritt ;)

Wieder gibt es eine Optimierung meines Lernens … Der Fortschritt ist in diesem Fall ein Rückschritt auf doppelseitig gedruckte Karteikarten 🙂

card

Die Kunst war, das ganze „Bulk-freundlich“ zu kriegen … d.h. es geht um einige hundert Karteikarten … Da darf das erstellen nicht viel Zeit kosten.

Ein anderes bedeutendes Detail war, wie man die Karteikarten nicht als Bild, sondern möglichst als ein Vektor-Format/HTML druckt, sodass die Auflösung beim Drucken nicht verloren geht. Ich hab es als Bild versucht, das sah wirklich schlimm aus.

Im Folgenden, ein paar Hinweise, wie man das hinbekommen kann:

Zuallererst muss man sein Anki2 Deck so anpassen, dass jede Karte einen Rahmen mit fester Größe hat. Dazu kann man z.B. eine neue CSS-Klasse .cardx einführen. Zusätzlich sollte man versuchen, die Inhalte alle zentriert darstellen zu lassen. Bei DIVs ist das etwas schwierig, es gibt aber eine css-Eigenschaft display, die das ermöglicht:

.cardx {
    width: 640px; 
    height: 452px;
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    border: 1px solid;
}

DIVs unterstützt die letzte Eigenschaft normalerweise nicht und auch margin:auto kann kein vertikales Zentrieren der Inhalte. display: table-cell wird zwar von alten browsern nicht unterstützt, darauf kommt es hier aber nicht an.

Man wrappe jetzt alle Inhalte in

<div class='cards'>
    <span>
        {{Expression}}
        ...
    </span>
</div>

Das div gibt die Größe und Zentrierung vor, das span reduziert die größe des Inhalts auf das Minimum. DIVs können sowas nicht, weil sie implizit eine Breite von 100% haben. Normalerweise wrappe Anki die Inhalte selbst in einem span, weshalb dieser wahrscheinlich sogar weggelassen werden könnte.

Wenn das Karten-Modell gespeichert und Anki2 alle Karten upgedatet hat, dann kann man alles exportieren.

Man wählt exportieren -> als raw-Text-File.

Dieses File hat eine Karte pro Zeile und die Vor- und Rückseite als reines HTML, jeweils durch einen tabulator \t getrennt.

Man könnte die allererste Karte, Vor- und Rückseite so bekommen:

LINE=$( cat export.txt | head -1 )
FRONT=$( echo -e "$LINE" | awk -F'\t' '{print $1}' )
BACK=$( echo -e "$LINE" | awk -F'\t' '{print $2}' )

Selbstverständlich lässt sich alle Fronts und Backs so generieren

while read LINE;
do
    FRONT=$( echo -e "$LINE" | awk -F'\t' '{print $1}' )
    BACK=$( echo -e "$LINE" | awk -F'\t' '{print $2}' )
    ....
done < <( cat export.txt )

Im Grunde müsste man $FRONT oder $BACK nur noch in ein HTML-Gerüst einbauen, welches das Anki-Style-Sheet enthält und anschließend mit z.B. wkhtmltopdf nach PDF konvertieren.

Bsp:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
.cardx {
    width: 640px;
    height: 453px;
    display: table-cell;
    vertical-align: middle;
    text-align:center;
    font-family: TakaoPGothicKanjiABC;
}
...
</style>

</head>
<body>
{CARD}
</body>
</html>

Eingesetzt bekommt man $FRONT oder $BACK, wenn man

cat template.html | sed "s|{CARD}|$FRONT|g" > front.html
cat template.html | sed "s|{CARD}|$BACK|g" > back.html

ausführt. Die HTML-Dateien kann man nun mit wkhtmltopdf in ein PDF wandeln und mit pdfcrop zuschneiden.

Nun hat man eizelne hübsche PDF-Dateien mit jeweils der Vorder oder Rückseite.

Man muss diese nur noch zu irgendwas druckbarem zusammensetzen.

An dieser Stelle könnte ich Latex empfehlen … Ich bin noch beim Experimentieren, aber es könnte ungefähr so aussehen:

PDF, das (in diesem Fall) die Vorderseiten von 4 Karten enthält:

\documentclass[paper=a6]{scrartcl}
\usepackage{geometry}
\usepackage[pdftex]{graphicx}
\geometry{left=0.5cm,right=0.5cm,top=0.5cm,bottom=0.5cm}
\pagestyle{empty}
\setlength{\tabcolsep}{0mm}
\renewcommand{\arraystretch}{3}

\begin{document}
\clearpage
\begin{tabular}[H!]{ll}
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=0,scale=0.90]{./images/500_front-crop.pdf} \\
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=0,scale=0.90]{./images/501_front-crop.pdf} \\
\end{tabular}
\newpage
\begin{tabular}[H!]{ll}
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=0,scale=0.90]{./images/502_front-crop.pdf} \\
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=0,scale=0.90]{./images/503_front-crop.pdf} \\
\end{tabular}

\end{document}

Und hier das PDF, das die Rückseiten enthält:

\documentclass[paper=a6]{scrartcl}
\usepackage{geometry}
\usepackage[pdftex]{graphicx}
\geometry{left=0.5cm,right=0.5cm,top=0.5cm,bottom=0.5cm}
\pagestyle{empty}
\setlength{\tabcolsep}{0mm}
\renewcommand{\arraystretch}{2}

\begin{document}
\vspace*{-12mm}
\begin{tabular}[H!]{ll}
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=180,scale=0.90]{./images/503_back-crop.pdf} \\
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=180,scale=0.90]{./images/502_back-crop.pdf} \\
\end{tabular}
\newpage
\vspace*{-12mm}
\begin{tabular}[H!]{ll}
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=180,scale=0.90]{./images/501_back-crop.pdf} \\
\hspace{-4mm}\includegraphics[width=105mm,height=74mm,angle=180,scale=0.90]{./images/500_back-crop.pdf} \\
\end{tabular}

\end{document}

Das Ganze ist für jeweils zwei DIN-A7 Karten auf einem DIN-A6 Ausdruck. Man muss nach dem Drucken den ausgedruckten Stapel andersrum einlegen und mit dem anderen PDF bedrucken.

Dieses Latex-Dokument lässt sich dann natürlich auch gleich automatisiert erstellen, d.h. im Grunde wird es so laufen, dass man sein Anki-Deck leicht anpasst, das Script startet und zum Schluss kommen zwei PDFs raus, die man auf die Karten drucken muss 🙂

Ich bin noch am Basteln … Ich denke aber, dass ich bald meinen Prozess so verfeinert und automatisiert habe, dass ich mit geringem Aufwand die Karten drucken kann …

Im nächsten Artikel erkläre ich dann die eigentliche Motivation dahinter 🙂

Noch 8 mal schlafen …

… dann weiß ich, ob ich bestanden habe.

Die JLPT-Ergebnisse werden online am 31.1. veröffentlicht … Hmm … Geht in Japan die Uhr vor oder nach?

Ich glaubt, in Japan müsste es 10h früher der 31.1. sein als bei uns, oder? *lol*

Zeitzonen haben es in sich … Ich hab viel in Java gebaut und hatte da öfters mit Zeitzonen zu tun … Wie irgendwas scheinbar so einfaches nur so kompliziert sein kann … Naja … Es lebe der Millisekunden-seit-1970-Timestamp, der keine Zeitzone hat!