Programmierung mit LaTeX...
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Untertitel |
| |
Serientitel | ||
Teil | 34 | |
Anzahl der Teile | 59 | |
Autor | ||
Lizenz | CC-Namensnennung - keine kommerzielle Nutzung 2.0 Deutschland: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/20983 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache | ||
Produktionsort | Sankt Augustin |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
|
FrOSCon 201434 / 59
1
2
3
4
8
11
21
23
26
29
30
34
35
36
37
38
39
41
42
43
45
46
50
52
53
54
56
57
58
00:00
SoftwareProgrammierungProgrammierungProgrammiergerätCodeProgrammierspracheXMLUMLVorlesung/Konferenz
00:50
ProgrammierungProgrammBildschirmtextSoftwareProgrammierungProgrammiergerätOpen SourceMakrobefehlAggregatzustandVorlesung/KonferenzComputeranimation
02:29
SoftwareFehlermeldungFunktion <Mathematik>Vorlesung/Konferenz
03:22
EinfügungsdämpfungFunktion <Mathematik>ParametersystemMAKROSOperateurLaufzeitsystemDefaultComputeranimationVorlesung/Konferenz
05:17
AnalogieschlussComputer-Investitions-ProgrammLaufzeitsystemp-BlockZahlParametersystemValiditätVariableBefehl <Informatik>Ende <Graphentheorie>ComputeranimationVorlesung/Konferenz
06:32
MAKROSRechnenBerechnungVariableHausdorff-RaumPräprozessorRechnenZeichenketteZählenZahlenbereichMAKROSComputeranimation
07:53
RechnenRömische ZifferWort <Informatik>ZählenZahlenbereichComputeranimationVorlesung/Konferenz
08:51
MatroidVariableMultiplikationp-BlockMultiplikationRechenwerkLängeKontrollstrukturMultipliziererComputeranimation
09:56
KontrollstrukturAbfrageTOMVariableSoftwaretestAbfrageSchnittmengeComputeranimationVorlesung/Konferenz
10:44
AbfrageKontrollstrukturZahlZeichenketteUngleichungZählenZahlenbereichComputeranimation
11:33
Lesezeichen <Internet>ProgrammierspracheRoboterValiditätÜbersetzer <Informatik>GRADEZahlenbereichWort <Informatik>Web-SeiteComputeranimationProgramm/Quellcode
14:45
AbfrageKontrollstrukturPGPVariablePunktComputeranimationVorlesung/Konferenz
15:53
MathematikPGPDemoszene <Programmierung>DifferentialgleichungPolarkoordinatenMathematikComputeranimationVorlesung/Konferenz
16:37
Demoszene <Programmierung>Magnetooptischer SpeicherHash-AlgorithmusMathematikZahlenbereichAddierwerkMathematikerPolarkoordinatenProgramm/Quellcode
18:22
Demoszene <Programmierung>GRADEExponentialfunktionKosinusfunktionSinusfunktionFunktion <Mathematik>BerechnungVorlesung/KonferenzProgramm/Quellcode
19:58
MathematikPGPDemoszene <Programmierung>VariablePolarkoordinatenZeichenketteLängeComputeranimationVorlesung/Konferenz
21:17
ZeichenketteProjektdokumentationDemoszene <Programmierung>Funktion <Mathematik>TabelleFehlermeldungBefehl <Informatik>App <Programm>CodeZeichenketteProgramm/Quellcode
22:51
Demoszene <Programmierung>FehlermeldungDruckverlaufBefehl <Informatik>Vorlesung/KonferenzProgramm/Quellcode
24:35
Demoszene <Programmierung>RollbewegungVorlesung/Konferenz
25:19
LISPNabel <Mathematik>TEXInterpretiererCodeZoomNabel <Mathematik>FraktalTEXWort <Informatik>CodeBerechnungComputeranimationProgramm/Quellcode
27:39
LISPInterpretiererZoomMAX <Programm>CodeStabMinimumEDTZeichenketteÜbersetzer <Informatik>TEXDateiProgrammiererSkriptspracheFunktion <Mathematik>Ebene KurveTabelleARM <Computerarchitektur>Programm/Quellcode
31:34
CodeBefehl <Informatik>RichtungSoftwareentwicklerVorlesung/KonferenzComputeranimation
32:43
CodeDemoszene <Programmierung>DateiPhysikalische GrößeUnicodeComputeranimationVorlesung/Konferenz
33:39
Demoszene <Programmierung>Nabel <Mathematik>ProgrammTOUR <Programm>ProgrammiergerätFehlermeldungNabel <Mathematik>Ein-AusgabeSkriptspracheBefehl <Informatik>DateiProgramm/Quellcode
35:38
Skript <Programm>GleichungLinieComputeralgebraMathematikRechnenProgrammiergerätVersion <Informatik>VerweildauerGleichungLokales MinimumParametersystemProgramm/Quellcode
37:11
Nabel <Mathematik>ProgrammMaskierung <Informatik>WEBKooperatives InformationssystemFunktion <Mathematik>PlotterTEXDateiEin-AusgabeCodeMathematikProgramm/Quellcode
39:29
Nabel <Mathematik>ProgrammMaskierung <Informatik>E-MailPlotterPlotterDateiSinusfunktionProgramm/Quellcode
40:30
Nabel <Mathematik>ProgrammMaskierung <Informatik>TOUR <Programm>Demoszene <Programmierung>DatenverarbeitungssystemLokales MinimumRegulärer Ausdruck <Textverarbeitung>DateiProgrammierspracheCodePhysikalische GrößePlotterBerechnungÜbersetzer <Informatik>MatrizenringVariableDateiInterpretiererSinusfunktionFehlermeldungPrint <4->RelationalsystemBefehl <Informatik>QuellcodeRegulärer Ausdruck <Textverarbeitung>PDF <Dateiformat>BDF-VerfahrenEnde <Graphentheorie>ZahlFormation <Mathematik>Offene MengeRundungNoten <Programm>Programm/Quellcode
48:37
Demoszene <Programmierung>DateiProgrammierspracheCodeCodeModulParametersystemBefehl <Informatik>Übersetzer <Informatik>NormalvektorPresentations <Programm>Hash-AlgorithmusProgramm/Quellcode
51:38
RechnenXML
53:05
Gewicht <Ausgleichsrechnung>Lokales MinimumInternetdienstRechnenZeichenketteGruppoidVerschlingungNormalvektorPDF <Dateiformat>Web SiteMAKROSWeb ServicesComputeranimationVorlesung/Konferenz
56:49
Computeranimation
Transkript: Deutsch(automatisch erzeugt)
00:08
So, wir kommen zurück nach der Mittagspause. Wir kommen zum nächsten Vortrag. Diesmal von Wolfgang Gautermann, der uns was erzählt über Programmierung mit LaTeX, aber eben nicht nur mit LaTeX, sondern auch mit anderen Programmen. Bitte schön.
00:21
Ja, ich sage herzlich willkommen zu meinem Vortrag. Er ist gerade angekündigt worden. Der halbe Vortrag wird sich um Programmierung in LaTeX damit befassen. Und die andere Hälfte wird ja Interfaces zu anderen Programmiersprachen, zu anderen Sprachen sein, weil Programmiersprachen kann man noch verwenden,
00:44
um LaTeX-Makros zu schreiben, um Code auszuführen, der dann direkt in LaTeX übernommen wird. Ich komme von der FH Jauneum und unterrichte da, ich bin Süßadmin, und unterrichte da seit Kurzem auch die Studierenden eine kurze Einführung in LaTeX
01:01
und habe mir das einmal zusammengeschrieben, wie man da eben programmieren kann, nachdem ich gefragt worden bin. Unser Programm, erst einmal Programmierung in LaTeX, hilfreie Zusatzpakete. Ich kann hier bei weitem nicht alle Zusatzpakete auflisten. Einfach ein paar, die ich gefunden habe, die irgendwie möglicherweise hilfreich sein könnten.
01:23
Der eine oder die andere wird sicher sagen, ja, da gibt es doch viel was Besseres. Mag sein. Also ich kenne wirklich nicht alle. Dann, wie kann man externe Programme heraufrufen? Wie geht das? Was kann man damit anstellen? Dann gibt es noch eine Möglichkeit, Beiten einzubinden mit Beitendech.
01:43
Es gibt die Möglichkeit, Perl einzubinden mit Perltech. Und am Schluss ein kurzer Ausblick, was gibt es noch alles? Ich nehme an, Grundkenntnisse in LaTeX sind vorhanden. Ja, perfekt. Dann kann ich da gleich anstarten.
02:03
Die meisten werden das vielleicht schon gemacht haben, dass sie irgendwie mit New Command sich ein eigenes Kommando definieren. Mag es sein, irgendwie FrostCon möchte ich irgendwie öfters verwenden in meinem Dokument. Definiere ich mein eigenes Kommando. Wechsel ich FrostCon und das wird ganz normal,
02:23
wenn Macro wird ersetzt, das ist die Free- und Open Source Softwarekonferenz. Kann ich dann so anwenden, wenn ich wechsel ich FrostCon schreibe, wird anschließend der lange Text ausgegeben. Wenn ich ein Kommando einmal definiert habe mit New Command,
02:42
ist es für sich belegt. Und wenn ich es noch einmal definieren will, bekomme ich eine Warnung oder eine Fehlermeldung. Ich muss das dann mit New Command quasi umdefinieren. Das kann man durchaus auch machen mit existierenden Kommandos. Man sollte da schon sehr aufpassen, dass man da nicht gewisse Sachen umdefiniert,
03:04
wo LaTeX eigentlich erwartet, dass sie irgendwie definiert sind. Aber man kann da interessante Sachen machen. Was braucht man bei so einer Proamiersprache? Eine Art Funktionen.
03:21
Funktionen sind in LaTeX Macros. Die haben wir gerade behandelt. Mit New Command oder Free New Command kann man eben Funktionen mehr oder weniger aufrufen. Und man kann natürlich auch Argumente angeben, bis zu maximal neun Stück. Die werden mit Gitterzeichen 1 bis Gitterzeichen 2 angesprochen, bis Gitterzeichen 9.
03:46
Und werden dann so aufgerufen. Ich definiere mein Kommando Zugfahrt. Das hat zwei Argumente. Und es gibt dann aus, ich fahre von Gitterzeichen 1, also vom ersten Argument, nach Gitterzeichen 2.
04:01
Ich fahre zum zweiten Argument. Das heißt Zugfahrt Graz-Wien ergibt, ich fahre mit dem Zug von Graz nach Wien. Es gibt auch die Möglichkeit, ein optionales Argument anzugeben. Ja, dafür muss man einen Defaultwert setzen. In diesem Fall ist mein Default Zug.
04:24
Und ich definiere ein Kommando Fahrt. Fahrt von Graz nach Wien gibt, ja. Ich fahre mit dem Zug von Graz nach Wien. Und ich kann irgendwie ein optionales Argument angeben. Auto, ich fahre Autofahrt von Graz nach Wien. Und Zugfahrt von Graz nach Wien.
04:40
So war das. Wieso kann man nicht zwei optionale Argumente angeben? Ja, wenn man irgendwie eines in eckigen Klammern angibt. Ich weiß, laute ich nicht, ist das jetzt das erste oder das zweite optionale Argument. Das heißt, eines kann optional sein. Und da gibt man eben einen Defaultwert vor.
05:03
Ja, das ist also optionale Argumente. Es gibt natürlich auch eigene Umgebungen. Man kennt das Beginn-Umgebungsname, End-Umgebungsname. Das ganze Ding kann man auch irgendwie definieren. Mit New Environment.
05:21
Ja, wie üblich. Erst einmal, wie heißt das so in der Umgebung? In meiner Falle Mayenf. Gegebenenfalls gibt es Argumente. Eine Zahl von 1 bis 9. Gibt es ein optionales Argument. Und anschließend zwei Blöcke. Der erste Block wird quasi ausgeführt, wann der Beginn-Block startet.
05:47
Beginn Mayenf. Da könnte z.B. die Schrift umgestellt werden. Da könnten auch eigene Kommandos definiert werden. Das kennt man z.B. von Beginn Itemize. Die Umgebung definiert einen Befehl Backslash Item. Der ist nur innerhalb dieser Umgebung gültig.
06:02
Nach dem End Itemize, wenn ich da wieder das Backslash Item aufrufe, dann sagt er irgendwie, was willst du? Das heißt, da kann man auch eigene Befehle definieren. Da kann man alles Mögliche anrichten. Und beim End sollte man das halt alles wieder zurückstellen. Ja, was hätte man in einer Premiere-Sprache noch gern?
06:25
Genau, Variablen. Variablen gibt es z.B. String-Variablen, Integer-Variablen, Floating-Variablen. Im Latech-Kontext sind String-Variablen das, was ich eigentlich gerade behandelt habe. Makros.
06:41
Das ist eigentlich irgendwie vergleichbar mit dem C Präprozessor. Also es sind anflüssig wirklich Makros. Man definiert einen String mit New-Command. Man setzt ihn auf einen zweiten Wert mit Renew-Command. Meistring ist D E F. Entspricht so quasi Dollar-Meistring ist gleich D E F in Perl.
07:05
Beim ersten, bei der Deklaration muss man es halt irgendwie mit New-Command anlegen und bei der Umdefinition dann mit Renew-Command. Ja, was braucht man noch für Variablen? Man braucht Integer-Variablen.
07:22
Im Latech sind das Counter. Also einfach Zähler. Die können definiert werden mit New-Counter. Definiert eine neue Integer-Variabe. Set-Counter setzt sich auf einen Wert. Set-Counter, das ist das I++, das man aus anderen Prämiesprachen kennt.
07:44
Etto-Counter, ja, ich zähle einen Wert dazu. Value-My-Counter gibt den Wert quasi zurück zum Rechnen. Da kommt gleich noch ein Beispiel. Also nicht zur Ausgabe. Und wie gibt man sie aus?
08:01
Da unten steht noch, es gibt etliche Counter vordefiniert. Das kennt jeder, der Tech-Dokumente setzt oder so. Ich habe irgendwie einen Counter, das ist die aktuelle Seitennummer. Ich habe einen Counter, das ist die aktuelle Kapitelnummer etc. Also die sind einfach schon vordefiniert. Und wie gibt man sie aus?
08:20
Mit entweder D, D-Page für die Seitennummer. Alf, für Alfalfametisch, also A, B, C. Oder mit großem A, halt als große Buchstaben. Ja, dann irgendwie Roman, gibt es auch noch, für römische Ziffern. Und D oder Rewig für ganz normale Zahlen.
08:48
Ja, das hätte man auch gerne. Man hätte auch gerne irgendwie Floating-Point-Variablen. Die gibt es auch. Die gibt es mehr oder weniger. Im Ladeich-Kontext sind das Längen.
09:02
Die sind auch einheitenbehaftet. Das heißt, da steht immer irgendwie Zentimeter, Millimeter oder was auch immer dabei. Ich definiere sie mit New Length. Ich setze sie mit Set Length. Ich kann sie auch zuordnen mit Add to Length. Und ich kann irgendwie multiplizieren.
09:22
0,6 mal meine Länge ist die Multiplikation. Das kennt man häufig von irgendetwas mal Textwiz oder so. Also wenn ich etwas die halbe Seitenbreite haben will, ist das 0,5 mal die Länge Textwiz. Die ist eben auch schon vordefiniert.
09:41
Und etliche andere auch. Ja, Kontrollstrukturen. Sind an und für sich ohne Zusatzpakete irgendwie nicht vorhanden, aber hätte man gerne in einer Poemiersprache. Was macht man? Im Ladeich nimmt man sich irgendein Zusatzpaket. Es gibt auf SIT dann hunderte Zusatzpakete.
10:04
Ich habe jetzt eins genommen, das ist das If-Then-Paket. Es ist schon etwas älter. Es gibt sicher etliche andere. Aber das sieht man relativ häufig angewendet. Das sieht man relativ häufig im Beispiel. Ja, man kann Boolean-Variablen erst einmal definieren.
10:20
Mit New Boolean, Set Boolean auf True, False setzen. Man kann den Wert abfragen. Und man kann eben diverse Tests ausführen. Das ist jetzt nicht das, was ich haben will. Ja, Entschuldigung. Man kann gewisse Tests ausführen.
10:41
Erst einmal logische Abfragen. And or not. Man kann Vergleiche anstellen. Man kann prüfen, ist eine Zahl geradzahlig? Ist sie definiert, ein Kommando? Sind zwei Strings gleich? Ja. Sind zwei Längen gleich? Ja.
11:01
Es gibt noch etliche andere Abfragen, gegebenenfalls einfach in der Dokumentation des Paketes If-Then-Nachschauen. If-Then-S. Es gibt in diesem Paket auch die Möglichkeit, Weilschleifen einzurichten. Es gibt einen Befehl Weil. Weil Du.
11:21
Ja, was mache ich? Erst einmal definiere ich mir einen Counter. Setze ihn auf 10. Und solange der Wert größer als minus 1 ist, gib bitte i, ist gleich erhebe ich von i aus. Und was macht das? Anschließend addiere ich eins dazu.
11:47
Das ist eben ein Beginndokument, Enddokument und Document-Class-Versehen.
12:00
Habe ich das Ganze in ein gültiges Tech-Dokument umgeschrieben, wenn ich mir das übersetze. Ups, bitte flottig. Ja, ich habe hier noch in dem Dokument noch drin type out, i ist gleich erhebig, type out,
12:22
gibt einen Wert beim Übersetzen aus. Das hat er da oben schon gemacht. Das heißt, er hat beim Übersetzen immer den aktuellen Wert von i ausgegeben. i ist 10 bis 1 oder 0. Und hat eben am Schluss ein PDF-Dokument generiert.
12:41
Und wenn ich mir das anschaue, es wird natürlich drinstehen, was man erwartet, eben die, ups, zoom in, countdown gestartet oder sowas steht da drin und dann die Zahlen von 1 bis 10 runtergezählt. Und am Schluss halt start, weil es ein countdown ist. Das ist die Weilschleife.
13:03
Was man relativ häufig hat bei gewissen Premiere-Sprachen, ist so ein 99 Bottles of Beer, wo man halt irgendwie so ein, runterzählt von 99 etc. Das geht natürlich auch in LaTeX. Das schaut ungefähr so aus, ups,
13:23
99 Bottles.Tech, also es ist etwas länger. Ja, ist das lesbar von hinten? Man definiert sich gewisse Zusatzkommandos. Solange der Wert eben größer als 1 ist,
13:40
also wenn es 0 ist, irgendwie schreibt man halt no more Bottles. Und da habe ich irgendwann eine Schleife drin. Weil du, also solange der Wert kleiner als 1 ist, wird das ganze Ding halt ausgegeben. Ich kann mir das übersetzen lassen. Und das kommt halt ein Dokument raus, ups,
14:09
ja, wo halt so runtergezählt wird. 99 Bottles, 98 Bottles etc. etc. etc. Bis irgendwie 0 Bottles of Beer oder sowas. Kennt man auch von diversen anderen Premiere-Sprachen.
14:20
Ich habe das Ding auch jetzt irgendwie, wie man da sieht, eben nicht selbst prorimiert, sondern von so einer Webseite geklaut, wo eben diese Aufgabe in 100 Premiere-Sprachen dargestellt wird. Und da sieht man eben, es ist auch in Ladeich
14:42
zwar etwas länger, aber es ist durchaus machbar. Weil Schleifen haben wir gehabt. Was hätte man noch gerne?
15:00
Jetzt kann man zum weiteren Zusatzpaket, man hätte noch gerne so etwas wie Vorschleifen. Ja, das gehört zum BGF-Paket. Da gibt es ein Paket BGF-4.
15:21
Das bietet mir so eine Vorschleife an. Ich kann eine Variable in einer Liste ausführen. Und was gibt es für Möglichkeiten? Entweder ich definiere mir die Liste so vor. 1, 2, 4, 8, 16. Und gebe immer das Kommando den Wert von x aus. Komma, Wertzeichen.
15:40
Oder ich kann irgendwie einen Bereich angeben und quasi mit drei Punkten als Auslassungszeichen das ganze Ding aufzählen, um so bis 100 oder bis 1000 zu zählen. Muss ich alle Werte gleichzeitig hinschreiben.
16:02
Ja, auch bei BGF gibt es, ich habe das mal mit höherer Mathematik beschrieben. Es ist nicht höhere Mathematik im Sinne, dass man jetzt eine integrieren, differenzieren oder Differenzialgleichung lösen kann. Dazu komme ich später noch. Aber man kann mit BGF-Math-Pars
16:20
einen mathematischen Ausdruck bewerten. Und in BGF-Math-Result steht dann das Resultat drin. Sowas könnte ungefähr drinstehen.
16:46
BGF. Also das erste ist halt das BGF vor. Ja, da habe ich hier noch zweimal einen Bereich eingetragen. Einmal 1 bis 10 und dann irgendwie von 21 bis 30.
17:03
Geht natürlich auch. Ich kann mir das Ding übersetzen. BGF vor. Und was kommt raus? Was ich halt haben will, einmal die Zahlen von 1 bis 7,
17:23
einmal von 1 bis 20 und dann anschließend noch einmal von 1 bis 10 und von 20 bis 30. Was ich in der Vorschleife halt definiert gehabt habe. Ja, wie schaut das mit der Mathematik aus?
17:43
Ja, es erinnert irgendwie an ein Ding. Also ich kann erst einmal zwei Zahlen addieren. Ich kann sie irgendwie BGF-Math-Pars und dann eine Funktion add 10, 20 und gebe das Resultat aus BGF-Math-Add 10 und 20.
18:01
Die beiden Zahlen zusammen. Ich kann dividieren BGF-Math-Divide. Da gibt es eben auch einen Divide-Befehl, den ich in Math-Pars einbauen kann. Das erinnert ein bisschen an Kobold, wenn man sich die Dinge so ausschreibt. Aber man kann durchaus noch andere Sachen machen. Ich kann die Quadratwurzler 2 berechnen. Ich kann den Wert von B ausgeben.
18:21
Ich kann irgendwie den E hoch vor 1 ausgeben. Also oder E hoch irgendetwas, also Exponentialfunktion. Ja, und ich habe am Schluss noch irgendwo das Sinus von 10² plus Cosinus von 10² hingeschrieben. Man weiß Sinusquadrat x plus Cosinusquadrat x sollte gleich 1 ergeben. Er gibt ja nicht hundertprozentig 1 in diesem Fall.
18:41
Aber wenn ich mir das ganze Ding übersetze, dann habe ich irgendwas falsch gehabt.
19:04
Ja, ich habe hier zwei Technik-Installationen. Das aktuelle Technik-Live und eben die Situation, was standardmäßig bei UNTU dabei ist. Da ist es nicht dabei. Bei der eigenen Technik-Distribution bei in meinen Frühen der Optech-Live ist es dann da.
19:21
Und ich kann mir das ganze Ding noch mal anschauen. Ja, da kommen eben die berechneten Werte raus. Erst einmal 30, noch einmal 30, noch einmal 30. Da habe ich mal 10 und 20 zusammengezählt. Ein Drittel habe ich berechnet. Die Wurzler 2 habe ich berechnet. B habe ich ausgegeben.
19:40
E habe ich ausgegeben. Der letzte Wert sollte eigentlich genau 1 sein. Ist fast genau 1. Aber da sind auch noch mehr Funktionen vorhanden. Wenn man gewisse mathematische Berechnungen machen will, ist das durchaus sinnvoll. Ich bin jetzt an und für sich mit der,
20:01
hoffentlich zeitmäßiger mit der Hälfte. Sind schon vorbei, oder? Ja, das sollte ich jetzt wissen. Man kann irgendwie mit BGF material,
20:22
da steht der Wert drin. Ich kann das einfach einer anderen Variablen zuweisen. Da steht quasi das Resultat drin. 3,141 für Bi oder so etwas. Und was ich damit mache, ob ich es ausgebe oder ob ich es einer Länge zuweise oder was auch immer,
20:41
das ist meine Sache. Entweder ausgeben, wenn man es einfach zu backslash BGF Matrisalte hinschreibt.
21:01
Oder ich könnte irgendwie setLengths irgendetwas auf das Matrisalte setzen, um halt irgendeinen berechneten Wert zu setzen. Der zweite Teil. String hab ich noch erwähnt. Was kann man machen?
21:20
Kreis Abbau. Einen String nach Großbuchstaben umwandeln. Die Länge ausgeben. Schauen, wo ich da String C in Frost kann. Oder halt zu einem Sub-String. Von 10 bis 14 steht da das Wort Open. Es gibt etliche weitere Funktionen. Einfach mal nachschauen in dem Paket, wenn man halt Strings bearbeiten will.
21:42
Ganz kurz noch, was kann auch noch passieren. Das nenne ich fragile Befehle. Öfters bekommt man Fehlermeldungen, die sind irgendwie, was? Ich hab ja alles richtig gemacht. Ja, hat man eigentlich. Das ganze Ding nennt sich sehr zerbrechliche Befehle. Ich hab da irgendwo jetzt ein kurzes Beispiel.
22:03
Nummer drei. Das war ein Protektor. Ja, ich hab ein Begin-Document-Section. Und ich möchte eine Fußnote setzen.
22:21
Und dann End-Document. Ist eigentlich, kann nicht viel falsch sein. Wenn ich das übersetzen will, bekomme ich trotzdem eine Fehlermeldung raus. Schon, oder? Genau. Ich bekomme eine Fehlermeldung raus. Warum bekomme ich eine Fehlermeldung raus?
22:41
Also, ich hab irgendwie eigentlich alles richtig gemacht. Der Code ist gültig. Fußnote schreibt quasi in eine Hilfsdatei einen Wert rein. Zum Beispiel in die AUX-Datei. Und da sollte er eigentlich das Kommando reinschreiben.
23:02
Aber das ist das Not-Protekt. Und da zerlegt er mir aber den Fußnotebefehl schon.
23:22
Da zerlegt er mir den Fußnotebefehl in der Numberline, etc., etc., etc. Bla, bla, bla. Und das sollte er aber nicht machen. Das kann man lösen, indem er vor solch merkwürdigen Fehlermeldungen das Wort Protekt hinschreibt.
23:41
Das ist quasi genau das selbe. Nur, ich hab hier vor dem Fußnotebefehl ein Protekt eingefügt. Damit wird der Befehl quasi nicht zerlegt. Nicht vorherlich ausgeführt, sagen wir mal so. Und das Problem ist gelöst. Also, das kann ich dann korrekt übersetzen. Und bekomme dann auch den...
24:03
Ups. Lässt sich normal übersetzen und macht kein weiteres Problem. Ja. Richtig? Okay.
24:21
Gut, also das... Häufig... Es ist wohl nicht richtig, was ich gerade erzähle, aber ich erzähle einfach mal weiter.
24:45
Ähm... Genau, das Beispiel hab ich auch bei Ihnen. Mhm. Dass man als optionales Argument angeht.
25:03
Okay, ja, ich hab hier... Okay, ja. Gut. Aber ich komm einfach zu anderen Poemiersprachen. Geht's einfacher. Ja, es gibt noch andere Poemiersprachen, die man verwenden kann.
25:21
Zum Beispiel Lisb, Lua, Shell und Co. Beiden Perl, etc., etc., etc. Lisb. Lisb ist irgendwie... Warum Lisb? Ähm... Ja, ich weiß schon, wo sie häufig angewendet wird. Ähm...
25:40
Lisb ist irgendwie eine Poemiersprache, die ist in einem Paket, wirklich in LaTeX poemiert worden. Ähm... Und ja, man kann dann... Use package Lisb und TeX. Man kann dann irgendwie Lisb-Code ausführen. Ich hab ein ganz kurzes Beispiel dazu. Zur Fakultätberechnung. Ich bin nicht wirklich der Lisb-Programmierer.
26:07
Aber... Das schaut auch nicht für sich so aus. Fakultätpunkt TeX. Ich hab hier Lisb-Code drin. Und kann dann quasi die Fakultät von 10 berechnen.
26:29
Das gibt dann die Fakultät von 10 aus. Ähm... Es ist ein Beispiel in der Logo noch dabei. Ja... Berechnet ein Fraktal. Das Ergebnis schaut so aus.
26:45
FB... Das wird von Lisb-Code berechnet. Ähm... Wenn man das ganze Ding übersetzen will... Ich weiß nicht, ich hab's ja mal nach einem Tag abgebrochen. Also... Da wird wirklich... BDF...
27:02
BDF-Latte... Ja, und was macht er? Er rechnet... Und rechnet... Und rechnet... Braucht 100% CPU.
27:21
Ähm... Und... Wird in einer Stunde auch noch 100% CPU brauchen. Ja... Das ist dann blöderweise nicht Malti-Threading-fähig. Also, ich weiß nicht, da sind 2 CPUs drin. Und der verwendet blöderweise nur eine.
27:45
Ja... Luadech ist das nächste. Ja... Das wird eigentlich in LaTeX die Skriptsprache Lua mehr oder weniger eingebunden. Ähm... Man kann Lua-Code dann direkt einbinden mit dem Befehl da recht Lua.
28:00
Was gewisse Probleme verursachen kann. Weil LaTeX einen mehrzelligen String einfach zu einem zusammengefügt quasi die... ...Zellnumbrüche wirklich. Und Lua hat als Kommentarzeichen Minus, Minus und bis zum Ende der Zeile ist das dann irgendwie ein Kommentar. Ähm... Schaut dann ungefähr so aus.
28:21
Also, und LaTeX sagt dann einfach es ist alles eine Zeile. Null, ups, ups, ups... Ah, 0, 3, Lua.
28:44
So könnte ich mir den Wert von B mehr oder weniger ausgeben lassen. Ich kann irgendwie... Lua 2-punktig. Ich gebe ihn da jetzt mehrfach aus, mehr oder weniger. Und was ich in 2a mache
29:02
ja... Das ist ein Lua-Kommentar. Und TeX fügt dann aber von da bis da mehr oder weniger alles zu einer Zeile zusammen und B wird nur einmal ausgegeben anstatt irgendwie mehrfach. Es sollte mindestens zweimal ausgegeben werden. Ich spare mir jetzt das zum Übersetzen. Lua
29:21
3, das dritte Beispiel. Wie macht man es richtig? Ja, man fügt eine Datei ein mit Lua 3-punktig und die bindet eine Lua-Datei ein über die Lua-Funktion des Do-File. Und da steht dann eben der Lua-Code drin, den man verwenden will und der wird dann richtig ausgeführt.
29:42
Lua 4-punktig, das ist... Ah ja, genau. Ich tue da von Anfang an mal was auskommentieren. Ja, was habe ich da? Die Frostkunde ist eine großartige Windows-Veranstaltung.
30:00
Also wenn man sich das übersetzt... Man muss sich dann mit Lua-Datei übersetzen, nicht mehr mit BDF-Datei. Ups. Genau, und da schaut dann
30:21
genau so aus. Wenn Sie mich fragen, was ist die Frostkunde? Eine großartige Windows-Veranstaltung. Ich habe das jetzt... Ah, warte mal. Das ist das Deckpfeil, das ich da ausgebe.
30:41
Ja, ist natürlich irgendwie seltsam. Was macht man? Man definiert sich einen Befehl OS-Korrektur. Also operating-system-Korrektur. Und was macht der? In Lua 4-punkt Lua...
31:02
Also da binde ich das halt auch halt ein. Ja, mit der Lua-Funktion gsub werden Strings ersetzt. Was ich ersetze Windows-O-Linux. Und dann kann ich es übersetzen. Ja, und dann schaut so aus, wie es
31:22
ausschauen soll. Die Frostkunde ist eine großartige Linux-Veranstaltung. Also Lua ist auch relativ unkompliziert zum Programmieren. Und man kann relativ bequem... Hab ich da noch ein Beispiel? Lua 5.
31:42
Ja, eben wie man quasi eigene Befehle definieren kann. Also man kann auch auf Deckbefehle dann zugreifen, mehr oder weniger. So, was haben wir Lua? Das Thema. Man muss halt mit Lua lauterlich übersetzen.
32:02
Aber hat dann auch die Möglichkeit eine wirkliche als Projimiersprache gedachte Projimiersprache zu verwenden, ja?
32:31
Okay, ja. Ja, ich habe da auch geschrieben, die Zukunft von LaTeX ist in Entwicklung. Aber ich
32:42
denke, es geht sehr in Richtung Lua LaTeX. Wenn man irgendwie LaTeX-Vorträge in 10 Jahren hört, wird man wahrscheinlich standardmäßig mit Lua LaTeX übersetzen und nicht mehr mit BDF LaTeX. So, meine Vermutung.
33:05
Also man kann es durchaus mit Lua LaTeX übersetzen. Es hat auch den großen Vorteil, die Unicode ist kein Problem. Man braucht irgendwie nicht mehr Zusatzpakete wie Input-Encoding oder so was. Das ist standardmäßig schon dabei. Und man kann auch sowohl mit Lua LaTeX als auch
33:21
mit Xe LaTeX Troteilschriften verwenden. Genau, die Beispiele habe ich gerade irgendwie gezeigt. Das heißt, die Live-Demo haben wir schon. Ich habe den Wert von B ausgegeben. Ich habe irgendwie
33:41
das Kommando OS-Korrektur definiert und das Beispiel mit den Kommentaren habe ich auch gezeigt. Ja, Shell und Co. Man kann in LaTeX auch Shell- Befehle ausrufen. Man kann irgendwie externe Programme aufrufen.
34:01
Wie schaut das ganze Ding aus? Es gibt einen kleinen Befehl Input. Normalerweise verwendet man das, um andere Dech-Dateien einzufügen, wenn man das mit einem Type-Symbol beginnt. Das kann man zu irgendeinem Programm ausführen. Das ist natürlich security-technisch
34:21
ein bisschen möglicherweise fragwürdig. Das heißt, es ist standardmäßig deaktiviert. Aber, ich habe mir ein kleines Programm geschrieben. helloworld.de
34:41
Ich muss es übersetzen mit shell-escape. Das heißt, die Shell-Befehle werden wirklich ausgeführt. Ich habe zwei Skripte dabei. helloworld.sh und ein helloworld-from-the-shell und ein Perl-Skript.
35:02
helloworld-from-perl-interpreter Man kennt das. Wenn ich mir das ganze Ding einmal übersetze mit wdf-laTeX helloworld.de dann bekomme ich eine Fehlermeldung. Hoppala, ich darf nicht mehr oder weniger.
35:21
Und wenn ich sage mit minus minus shell-escape dann übersetzt das ordnungsgemäß und ich bekomme mein helloworld.bdf angezeigt einmal mit helloworld.from-the-shell helloworld.from-perl-interpreter Auf diese Art und Weise kann man
35:42
externe Programme beliebig aufrufen. Ich habe noch ein ganz kurzes Beispiel da, wo ich sage, lautech ist ja bekannt für den Mathematik-Satz, oder? Das ist irgendwie flottant gestrickt. Das ist irgendwie Maxima.dech Maxima ist ein freies
36:02
Programm für symbolische Mathematik. Ja, und ich sage, ich rufe Maxima mit gewissen Parametern auf. Ich möchte irgendwie sagen Hoppala, gib die Dech-Ausgabe vom Integrate x der dritten, also x der vierten Viertel. Und am Schluss möchte ich nur eine Gleichung lösen und das möchte ich auch nicht selbst machen,
36:21
sondern das möchte ich mit Maxima machen. Ich habe hier einen Compile-Script, weil ich habe mir für diesen Maxima-Compile oder so heißt das. Genau. Ich habe eine zusätzliche Lisp-Datei gebraucht, um den restlichen Output wegzubekommen. Und ich habe mir Maxima die aktuelle Version auch selbst kompiliert
36:41
und installiert. Wenn ich das ganze Ding kompiliere, also ich setze erst den Pfad um und führte anschließend dann Maxima logischerweise aus. Was kommt raus? Einmal recht. Ja, erst einmal die Lösung vom Integral
37:02
und anschließend die Lösung von der Gleichung. Wozu soll man selber rechnen? Man hat einen Rechner. Ja, was ich da auch noch habe, ist irgendwie, es gibt das ganze Ding als ein Interface zu Sage.
37:20
Sage ist auch ein sehr umfangreiches Mathematikpaket. Wo ist das drin? Da kann man eben auch mathematische Funktionen aufrufen, indem man sagt, man kann einen Plot machen oder man kann irgendwie
37:42
mit Sage Sage-Code ausführen. Das ist ein breiter Paket, das etliche Mathematikpakete zusammen fasst mehr oder weniger. In diesem Fall muss man das ganze Ding einmal mit Latech aufrufen. Also ich habe jetzt nur das
38:03
Sage.example.dech hier und eine Datei, die compile. Was muss ich machen? Ich muss erst einmal PDF Latech aufrufen. Vorher setze ich noch den Pfad um, dass wirklich Sage gefunden wird. Ich setze TeX Inputs
38:21
in mein Sage-Verzeichnis, weil es kommt eine Datei, eine Style-Datei dazu. Und die soll zu Sage passen. Die ist eigentlich nicht bei Latech dabei, sondern die wird mir Sage mitgeliefert, dass sie zur aktuellen Sage-Installation passt. Dann rufe ich erst einmal Latech auf, anschließend Sage mit
38:42
den generierten Sage-Dateien und dann noch mal Latech und ich bekomme dann im Prinzip die Datei. Die schaut dann so aus. Jetzt läuft im Hintergrund Sage, würde ich sagen.
39:00
Genau, Python. Es ist ein Python-Interface zu diversen Mathematikprogrammen. Und in endlicher Zeit sollte die Sachen gelöst haben und dann hoffentlich die Ausgabe der Datei noch mal übersetzen.
39:22
Genau, das macht er. Processing Sage-Code, etc. Ich generiere mir da auch einen Plot. Vielleicht sehe ich das da oben noch.
39:41
Sage-Block. Genau. Also ich plotte irgendwie eine Funktion von minus eins bis eins und die Funktion definiere ich weiter oben auch noch. Und hoffentlich sind wir bald einmal fertig. Wir sind fertig. Sage-Datei-Example. Ich bekomme erst einmal die Rechnungen,
40:02
die ich gemacht habe. 3 mal 3 ist 9. Irgendwie eine Funktion habe ich mir definiert. Die habe ich abgeleitet. Und ich kann quasi auch Sage-Blocker irgendwie übernehmen. Und am Schluss habe ich da noch einen Plot gemacht. Und der ist dann an und für sich hier so eine
40:20
Sinus-Funktion oder so etwas, was das ist. Genau. Das heißt, das geht mehr oder weniger auch on the fly. Ich rufe einmal Datei auf, einmal Sage auf und dann noch einmal Datei auf. Das ganze gibt es auch, da gehen wir mal in die Präsentation.
40:42
Das haben wir auch gehabt. Das ganze gibt es auch mit Byton. Also ein Interface zu Byton. Byton, ja, kennen sich auch viele. Kann man ganz gut für mathematische Berechnungen nutzen. Man kann auch Kommandos dann eben mit Byton definieren und Grafiken generieren. Zum Beispiel Matplotlib.
41:02
Wie schaut das ganze Ding aus? Es gibt ein Paket Bytontech. Das definiert mir die Befehle erstmal bei. Da steht dann Byton expression, zum Beispiel einfach dreimal fünf oder irgendetwas. Bei C steht dann Byton Code, zum Beispiel Print irgendwie zweimal fünf.
41:21
Und eben eine Umgebung noch. Begin By Code und End By Code. Ja, wird das ganze Ding aufgerufen. Byton ist quasi der Mittelprozess, wie wir es eben bei Sage schon gesehen haben. Ich rufe erstmal Latech auf, dann rufe ich Bytontech auf und dann nochmal Latech. BDF-Latech in diesem Fall.
41:41
Ja, und das generiert mir dann die Ausgabe. Das schaut dann ungefähr so aus. 6 Byton. Ja, was haben wir?
42:02
Byton 1.Tech Ja, einfach eine große Zenerpotenz berechnen. 2 hoch 100. Ich übersetze das Ding einmal mit BDF-Latech. Ups, anschließend Bytontech.
42:33
Genau, Null Errors, das ist das, was ich haben will. Und dann nochmal mit Latech und Cola.
42:44
Byton 1 gibt halt irgendwie die 2 hoch 100 ist diese große Zahl, das hat mir beiden berechnet. Ja, ich habe da noch zwei Beispiele, da schauen wir mal Byton 2. Das ist eben dasselbe noch einmal mit
43:00
einmal als Expression. Also quasi einfach Gitterzeichen 1, Sternenstern Gitterzeichen 2 und einmal mit dem beiden Befehl Print das ganze Ding ausgegeben. Ich kann eben mir so einen Befehl definieren und sage hoppala, ja, New Command
43:21
Byton Power Expression ist der Byton Code Gitterzeichen 1, Sternenstern Gitterzeichen 2. Das ist eine für sich. Relativ einfach. Was haben wir noch? Byton 3. Byton kann ja
43:44
Gitterzeichen generieren. Was mache ich? Ich verwende einen NumPy und Matplot generiere mir eben so eine Sinusfunktion und schreibe
44:01
den Plot als PDF raus. Und am Schluss binde ich den Code dann ein. Das ganze Ding funktioniert, wenn man es übersetzt beim ersten Mal mit Latech nicht. Warum nicht? Weil die Plot PDF Datei noch nicht existiert. Aber es wird der Byton
44:21
einfach return drucken, weitermachen. Es wird der Byton Code rausgeschrieben. Der Byton Code wird ausgeführt. Der generiert mir dann die PDF Datei. Und am Schluss wird eben die Datei generiert. Das heißt ich kann das wieder Was war es? Byton 2?
44:46
In diesem Fall habe ich die Datei schon da. Aber ja. Dann bytantecht das ganze Ding noch einmal. Null Errors. Das ist das, was wir haben wollen.
45:02
Noch einmal übersetzen. die Grafik, die mir erzeugt wurde, wird dann angezeigt. In diesem Fall wäre es ein Sinusplot. Ich habe da noch ein Beispiel.
45:22
Byton kann auch Byton integral kann auch symbolisch rechnen mit dem Paket Sympy. Ich habe hier ein integral zu berechnen und gebe das ganze Ding halt aus.
45:43
Bytantecht unterstützt auch Ruby und Ruby Octave und Julia. Julia ist eine Gourmetsprache für für wissenschaftliche Berechnungen. Das ganze schaut
46:01
ungefähr so aus. Also erst einmal die Sache für Ruby. Das ist nämlich nicht so einfach, weil es wird unterstützt. Aber wie das unterstützt wird, das steht nur mal im Source Code. Was muss man in diesem Fall machen? Use family Ruby
46:21
und use package Bytantecht. Und dann gibt es einen Befehl Beginn Ruby Code und dazwischen steht der Ruby Code und wie wird das ganze Ding übersetzt. Ich rufe wieder Bytantecht auf. Also erst LaTecht und Bytantecht. Mit Interpreter ist Ruby Ruby. Erst einmal ist es die
46:40
Primiersprache und dann in welcher Interpreter soll verwendet werden. Das ist jetzt gerade bei Byton interessant, weil da gibt es Byton 2, Byton 3 und möglicherweise hat man zwei verschiedene Interpreter im System installiert. Und anschließend installiere ich mir das ganze System. Übersetze das mit Bytantecht nochmal mit LaTecht und
47:02
bekomme das ganze Ding irgendwie übersetzt. Da oben hat er dann gesagt 0 Errors, 0 Warnings, perfekt. Und Ruby gibt eben dann bytonruby.bdf gibt eben dann Hello World vom Ruby aus. Das hat eben der Ruby Befehl jetzt ausgegeben. Und es werden dann eben
47:24
etliche Zusatzdateien irgendwie noch generiert. Bytantecht, Bytonruby, die waren vorher quasi alle nicht da. Ich hoffe es. Wie schaut mein Zettel aus?
47:42
Ja, das geht sich aus. Also ich habe noch ein ganz kurzes Beispiel für Oktaf. Ist ein Matlab-Klon, freier Matlab-Klon. Ja, ich definiere mir zwei Variablen
48:02
und multipliziere die beiden aus und möchte das ganze Ding halt berechnen lassen. Das ganze Ding schaut so aus. Ich übersetze mir das ganze Ding, dann wird Oktaf aufgerufen, anschließend wird nochmal BDF LaTecht aufgerufen
48:23
und rauskommt die ausmultiplizierte Matrix. Julia soll auch noch gehen, dafür habe ich kein Beispiel, weil die Prämiesprache kenne ich gar nicht. Genau, dann kommen wir zum letzten Punkt.
48:41
Presentation. Das ist PerlTech. Man kann Kommandos und Umgebungen eben in Perl definieren. Man kann Perl groß einbinden. Wie geht das? Ja, es gibt ein Paket PerlTech UsePackage und dann gibt es PerlNewCommand,
49:01
PerlRenewCommand und das schaut analog aus zu den ganz normalen NewCommand, RenewCommand Befehlen, ebenso mit Environments. Ich habe einen Befehl, der hat eine gewisse Anzahl von optionalen Argumenten und eine Definition, was soll der Befehl machen.
49:20
Hier ein ganz kurzes Beispiel, ich habe eine Substring Befehl, brauche ich zufällig. Das ist eben LaTecht selbst umständlich zum programmieren. In Perl ist es ein Einzeiler, weil Substring existiert als Funktion. Das ist quasi der erste Parameter,
49:40
das entspricht dem Gitterzeichen 1. Das ist der zweite Parameter, Gitterzeichen 2 und das ist der dritte Parameter, Hash 3. Und so schaut mein Substring Befehl aus. Es gibt noch einen Kommando PerlDo, um einfach PerlCode auszuführen. Wie schaut das ganze Ding aus?
50:05
07 Perl. Genau. LaTecht1.dech Ja. Was habe ich hier definiert?
50:21
Erst einmal mein NewCommand, da steht mein Substring Befehl. Genau. Und anschließend habe ich einen Befehl SH1Hacks verwendet. Der verwendet das Modul und gibt dann den SH1Hash von einem Modretour.
50:41
Da wird ein Substring Befehl angewendet. Da wird PerlCode direkt ausgeführt. 12x12 wird multipliziert. Und am Schluss wird SH1Hacks von Frostcom berechnet. Und das ist das Enddokument. Wenn ich das so übersetzen will,
51:00
wird das nicht funktionieren. Erstmal muss ich das mit PerlTecht übersetzen. PerlTecht1.dech Er wird schreien, weil er ist aus Sicherheitsgründen untersagt, mehr oder weniger.
51:20
Es gibt die Option minus minus no safe. Ja. Heißt so. Gut. Und dann kann ich mir das Ergebnis anschauen. WTF. In diesem Fall hat er das... Nein.
51:52
Das war nicht das, was ich haben wollte.
52:07
Ja. Ja. Ja. Aber ich frage mich warum. Ja gut. Das war jetzt nicht das, was ich mit dem no safe erreichen wollte.
52:20
Ich erzähle dir... Ich habe hier nicht mehr 3 Minuten Zeit. Ich erzähle dir die letzten... Nein. Das hat mein Rechner irgendwie ein Problem. Ja. Ich frage mich warum. Geht da Strom da nicht oder was?
52:42
Weiß ich wursch. Die Folien gibt es irgendwie online. Die sind schon verlinkt auf meinen Seiten, wo der Vortrag beschrieben wird. Okay. Ja. Es gibt bei PerlTecht noch die Möglichkeit,
53:01
dass man eine Option angibt. Wenn man no PerlTecht, dann wird ein Stylefile angelegt. Und mit dem kann man dann statt use package PerlTecht, use package no PerlTecht schreiben. Und wenn man dieses Stylefile
53:21
liefert, kann man das Dokument zum Beispiel an einen Verlag schicken oder so. Dann ist es nämlich übersetzbar mit ganz normalem PDF PerlTecht. Und das gilt aber nur für dieses eine Dokument. Wenn irgendwo Makros wieder aufgerufen werden, die halt mit Perl definiert worden sind,
53:41
muss man das Ding quasi noch einmal, das Stylefile noch einmal, neu generieren. Ja. Und das war im großen und großen eh schon die Schlussworte. Das letzte, was bei PerlTecht halt noch geht, anstatt no safe, was den ganzen Rechner in den Abgrund reißt, jetzt keine Ahnung warum,
54:02
kann man auch noch gewisse Opcos irgendwie freischalten, dass man nicht alle Operationen erlaubt, sondern eben nur gewisse Perloperationen. Aber ansonsten kann man eben damit wirklich die merkwürdigsten Sachen machen.
54:22
Ja, man kann auf Webservices zugreifen, man kann irgendwie von einer Website irgendwie Sachen runterladen und dann automatisch in ein Techtokument übernehmen. Als letzten Folie habe ich noch irgendwie, was gibt es noch, was habe ich alles nicht, irgendwie erwähnt, aber
54:41
es gibt hunderte weitere Pakete um jetzt meinetwegen mit Knoblot Grafiken zu definieren, Knoblotech oder etliche andere Pakete um Strings zu behandeln. Einfach mal auf Site suchen. Beispiel, man sucht
55:01
Strings oder sowas und dann findet man etliche Pakete, ich habe Strings vorgestellt, mit denen man Strings bearbeiten kann. Oder je nachdem, Interfaces der anderen Promiersprachen, einfach mal auf Site suchen. Man findet garantiert eine Möglichkeit, die Lieblingspromiersprache zu verwenden
55:21
und sei es einfach als, indem man es mit Input, Pipe übernimmt und die Ausgabe dann halt irgendwie mit Option Minus Minus Shell Escape quasi erlaubt. Weitere Fragen? Muss mal rechnen, das frage ich mich, aber
55:41
ich glaube, ich bin zeitlich einigermaßen durchgekommen. Ja, ich werde die sobald der Rechner wieder geht. Also im Laufe der nächsten Tage auch irgendwie
56:00
verlinken und werden dann auch, nehme ich an, über die Frostpunk-Seiten verlinkt sein. Ja, ich habe jetzt die aktuellen Folien einfach als Link eingefügt, die sind seit mehreren Tagen schon online.
56:24
Auch noch nicht der 100% die letzte Stand, aber das liegt auf meiner Homepage, also kann ich das nicht aktualisieren, werde ich noch machen und ja, dann hoffe ich, es war ein interessanter Vortrag und ich habe nicht allzu viele Plätze natürlich.