whoami — Programmierprojekte, Berlin programming projects, Berlin
Programme, die eine Aufgabe haben. Programs with one job.
Hier liegt die Programmierarbeit von Mehmet Celalettin Küçük — getrennt von der filmischen. Simulationen, kleine Werkzeuge, Skripte für den eigenen Alltag und die statischen Seiten, auf denen die Filmarbeit steht. Meist Python, oft Bash, gelegentlich nur HTML und ein Stylesheet. This is where the programming work of Mehmet Celalettin Küçük lives — kept apart from the film work. Simulations, small tools, scripts for everyday use, and the static sites the film work stands on. Mostly Python, often Bash, sometimes nothing but HTML and a stylesheet.
01cat werkstatt.md
Ich bin Filmemacher und Historiker und programmiere, weil sich manche Fragen nur beantworten lassen, wenn man das Werkzeug dafür selbst baut. Das Muster ist jedes Mal dasselbe. Für den Film und für historische Recherche führe ich Interviews, und aus Interviews werden Stunden Tonaufnahme, die niemand von Hand abtippt. Fertige Dienste gibt es, aber sie wollen die Aufnahme haben — und was jemand mir im Vertrauen erzählt hat, lade ich nicht auf einen fremden Server. Also steht am Ende ein eigenes Programm, das die Aufnahmen dort lässt, wo sie sind: der Transcriber weiter unten. So ist fast alles hier entstanden — weil eine konkrete Arbeit es gebraucht hat, nicht weil eine Technik ausprobiert werden wollte. I am a filmmaker and historian, and I write software because some questions can only be answered by building the tool for them yourself. The pattern is the same every time. For the films and for historical research I record interviews, and interviews turn into hours of audio that nobody transcribes by hand. Ready-made services exist, but they want the recording — and what someone told me in confidence does not go onto a stranger's server. So it ends in a program of my own, one that leaves the recordings where they are: the Transcriber below. Nearly everything here came about that way — because a piece of actual work needed it, not because a technology wanted trying out.
Ein Schwerpunkt hat sich daraus ergeben: Technologie für Bildung. Werkzeuge, die beim Lernen helfen, ohne dass es nach Unterricht aussieht — und die ohne Konto, ohne Werbung und ohne Datensammlung auskommen. rapbot ist davon das deutlichste Beispiel: Kinder üben Reim, Metrum und Wortschatz, während sie glauben, sie spielen. Auf Tech4Everybody habe ich Tutorials veröffentlicht, und dieselbe Haltung steckt in der Arbeit an Vermittlung und Public History — eine Sache so zu erklären, dass sie hängenbleibt. One focus has grown out of that: technology for education. Tools that help people learn without looking like a lesson — and that work without an account, without advertising and without collecting data. rapbot is the clearest example: children practise rhyme, metre and vocabulary while they believe they are playing. On Tech4Everybody I published tutorials, and the same attitude runs through the work on public history — explaining a thing so that it stays explained.
Drei Dinge halte ich dabei durch. Kommentare erklären das Warum, nicht das Was — was der Code tut, steht im Code. Jedes Modul hat eine Zuständigkeit und greift nicht in die Parameter der anderen. Was nicht geprüft ist, ist nicht fertig — auch bei einem Skript, das nur ich benutze. Three things I hold to. Comments explain the why, not the what — what the code does is in the code. Each module has one responsibility and does not reach into another's parameters. What is not tested is not finished — even for a script only I will ever run.
Die meisten Repositories sind privat. Wo unten ein Name verlinkt ist, ist der Quelltext öffentlich; wo nicht, gibt es ihn auf Anfrage. Most repositories are private. Where a name below is a link, the source is public; where it is not, it is available on request.
02ls -l projekte/
-
2026
Transcriber
Aus einem Ordner voller Tonaufnahmen wird lesbarer Text. Das Programm schreibt ganze Interviewstapel mit OpenAI Whisper mit — aber vollständig auf dem eigenen Rechner. Nichts wird hochgeladen, es braucht kein Konto; nur das Sprachmodell wird beim ersten Mal einmalig heruntergeladen. Bei Interviews ist das keine Bequemlichkeit, sondern Bedingung. Lange Gespräche zerlegt es in Abschnitte von etwa zehn Minuten, geschnitten in einer Pause; bricht ein Lauf ab, geht es beim nächsten Start an derselben Stelle weiter. Jeder Abschnitt wird darauf geprüft, ob sich Whisper in einer Wiederholung festgefahren hat — dann wird die Stelle neu geschrieben oder, wenn auch das nicht gelingt, markiert, damit man sie nachhört. Heraus kommt ein Text mit Timecode mindestens jede halbe Minute, auf Wunsch in Frames und ab dem Start-Timecode der Aufnahme, dazu Untertitel und PDF. Wer gerade spricht, erkennt es noch nicht, und wechselt die Sprache innerhalb eines Abschnitts, wird der andere Teil ungenau. Eine Oberfläche für macOS, Rechnung über die Apple-Grafikeinheit, ein Wächter für den Arbeitsspeicher. Damit es auch auf Rechnern läuft, auf denen keine Python-Umgebung eingerichtet ist, entsteht gerade ein eigenständiges Paket, das alles mitbringt, bis hin zum Lesen der Audioformate; jeder Bau wird geprüft, indem das fertige Paket einen Testton transkribiert. Für den Mac ist das gebaut und erprobt. Die Fassungen für Windows und Linux nutzen eine schlankere Variante von Whisper, die ohne Grafikeinheit auskommt — sie sind vorbereitet, aber noch nicht getestet. Entstanden mit opencode, weiterentwickelt mit Claude Code. A folder full of recordings turns into readable text. The program transcribes whole batches of interviews with OpenAI Whisper — but entirely on my own machine. Nothing is uploaded and no account is needed; only the speech model is downloaded once, the first time. With interviews that is not convenience but a condition. Long conversations are split into sections of about ten minutes, cut in a pause; if a run breaks off, the next start picks up at the same place. Every section is checked for Whisper getting stuck in a repetition — that passage is then transcribed again or, if that fails too, marked so it can be checked by ear. The result is a text with a timecode at least every half minute, in frames and from the recording's start timecode if wanted, plus subtitles and a PDF. It does not yet tell who is speaking, and when the language changes within a section, the other part comes out inaccurate. A macOS interface, computation on the Apple GPU, a watchdog for memory. So that it also runs on machines without a Python setup, a self-contained package is in the works that brings everything along, down to reading the audio formats; every build is checked by having the finished package transcribe a test tone. For the Mac this is built and tested. The Windows and Linux versions use a leaner variant of Whisper that needs no graphics chip — they are prepared but not yet tested. Built with opencode, extended with Claude Code.
Python · OpenAI Whisper · PyTorch · Tkinter · macOS
In BenutzungIn use
-
2026
Excerpt Creator
Wer wissenschaftlich liest, unterstreicht — und tippt die Stellen danach von Hand in ein Exzerpt ab. Diesen zweiten Schritt übernimmt das Programm. Es liest ein PDF, in dem unterstrichen oder markiert wurde, sucht die Striche, ordnet sie den Wörtern darüber zu und setzt daraus den Wortlaut der Stellen wieder zusammen, jede mit Seite und Zeile. Heraus kommt eine Tabelle, nach Kapiteln oder nach Seiten geordnet, als Word-Datei und als PDF. Die Spalte für den Inhalt bleibt absichtlich leer: Zusammenfassen ist die eigentliche Arbeit, und die soll kein Programm erledigen. Deshalb auch kein Sprachmodell und keine Texterkennung, nur Geometrie und Regeln — und alles bleibt auf dem eigenen Rechner. Das PDF braucht dafür eine Textebene; ein bloßer Scan mit Bleistiftstrichen lässt sich noch nicht auswerten. Zuverlässig ist es auch sonst noch nicht: Eine gedruckte Linie im Satz hält es mitunter für eine Unterstreichung, und Markierungen über mehrere Zeilen greifen zu weit. Jede Tabelle wird deshalb gegen die Vorlage geprüft. Entstanden mit opencode und Qwen 3.8 Max. Anyone who reads for research underlines — and then types those passages into an excerpt by hand. That second step is what this program takes over. It reads a PDF that has been underlined or highlighted, finds the strokes, assigns them to the words above them and reassembles the wording of each passage, with its page and line. The result is a table, ordered by chapter or by page, as a Word file and as a PDF. The column for the content stays empty on purpose: summarising is the actual work, and no program should do it. Hence no language model and no text recognition either, only geometry and rules — and everything stays on my own machine. The PDF needs a text layer for this; a plain scan with pencil strokes cannot be read yet. Nor is it reliable in other respects so far: it sometimes takes a printed rule on the page for an underline, and markings that run over several lines reach too far. So every table is checked against the source. Built with opencode and Qwen 3.8 Max.
Python · PyMuPDF · python-docx · ReportLab · Tkinter · macOS
In ArbeitIn progress
-
2024—26
rapbot
Ein Rap-Battle-Spiel für Kinder: Der Rechner antwortet auf einen Reim mit einem eigenen. Gedacht als Sprachspiel — Reim, Metrum und Wortschatz üben, ohne dass es nach Unterricht aussieht. A rap battle game for children: the machine answers a rhyme with one of its own. Meant as a language game — practising rhyme, metre and vocabulary without it looking like a lesson.
Python · OpenAI API
In ArbeitIn progress
-
2026
poormansalgo
Ein Haushaltsbuch, das keine Buchhaltung verlangt. Man trägt ein, was im Monat hereinkommt, setzt eine Grenze für das, was man höchstens ausgeben will, und schreibt die Ausgaben auf, sobald sie anfallen. Sichtbar bleibt dabei immer die eine Zahl, auf die es ankommt: was noch übrig ist. Reißt die Grenze, sagt das Programm es deutlich — verbieten kann und will es nichts. Nichts wird hochgeladen, keine Bank angebunden, kein Konto angelegt. Das Ziel dahinter: dass jeder sein Budget im Blick behalten und haushalten kann, auch ohne Tabellenkalkulation und ohne Beratung. Bisher rechnet es eine Runde; dauerhaftes Speichern, Kategorien und der Import einer Haushaltstabelle stehen noch aus. A household budget book that demands no bookkeeping. You enter what comes in each month, set a ceiling for what you are willing to spend, and note the expenses as they happen. The one number that matters stays in view throughout: what is left. If the ceiling breaks, the program says so plainly — it neither can nor wants to forbid anything. Nothing is uploaded, no bank is connected, no account is created. The aim behind it: that anyone can keep an eye on their budget and manage a household, without a spreadsheet and without advice. So far it handles one round; saving between sessions, categories and importing a budget spreadsheet are still to come.
Python · Tkinter
In ArbeitIn progress
-
seit 2026
Agenten-Teams Agent teams
Ein Sprachmodell kann vieles, aber es kann nicht gleichzeitig Ingenieur, Prüfer und Personalabteilung sein — jedenfalls nicht gut. Deshalb baue ich keine einzelnen Assistenten, sondern Teams: mehrere Agenten mit je einer klar umrissenen Zuständigkeit, angeordnet nach einer Unternehmensstruktur. Eine Leitung verteilt die Aufgaben, mehrere Ingenieure arbeiten parallel, eine Instanz wacht über die Architektur und darf einen Entwurf auch ablehnen; dazu Technik und Umgebung, Recht und Papiere, Berichte, Prüfung der Dokumentation. Jeder Agent hat eigene Werkzeugrechte, und mancher darf ausdrücklich weniger als die anderen — wer alles darf, macht früher oder später alles kaputt. Der interessantere Teil ist dabei nicht die Technik, sondern die Organisation: wer an wen berichtet, wer was entscheiden darf, und welche Regel über allen steht. A language model can do a great deal, but it cannot be engineer, reviewer and human resources all at once — not well, at any rate. So I do not build single assistants but teams: several agents, each with one clearly bounded responsibility, arranged as a company. A lead distributes the work, several engineers run in parallel, one instance guards the architecture and may reject a design; alongside them tooling and environment, legal and paperwork, reporting, documentation review. Every agent has its own tool permissions, and some are deliberately allowed less than others — whoever may do everything eventually breaks everything. The more interesting part is not the technology but the organisation: who reports to whom, who decides what, and which rule stands above all of them.
Claude Code · Sub-Agenten · Rollen und Rechte
LaufendOngoing
-
2021
Mars-Rover — Wilhelm-von-Siemens-Gymnasium Mars rover — Wilhelm von Siemens Gymnasium
Als Lehrkraft an der Schule in Berlin-Marzahn habe ich das Mars-Rover-Projekt zusammen mit der IT-Abteilung betreut. Grundlage war ein Baukastensystem von Siemens; die Aufgabe bestand darin, den Rover unter Ubuntu und Debian überhaupt erst zum Laufen zu bringen und anschließend die Algorithmen für seine Fahrt zu schreiben. Für die meisten Schülerinnen und Schüler war es der erste Kontakt mit Linux — und mit der Erfahrung, dass ein Gerät genau das tut, was im Code steht, und nichts anderes. As a teacher at the school in Berlin-Marzahn I supervised the Mars rover project together with the IT department. It was built on a modular kit supplied by Siemens; the task was first to get the rover running under Ubuntu and Debian at all, and then to write the algorithms for how it drove. For most of the pupils it was their first encounter with Linux — and with the experience that a machine does exactly what the code says and nothing else.
Ubuntu · Debian · Robotik
AbgeschlossenCompleted
-
2026
Data_Science
Linguistische Auswertung deutschsprachiger Raptexte mit pandas — Reimschemata, Wortschatzbreite, Wiederholung. Der Datensatz aus dem Rapbot-Umfeld, hier ohne Spielmechanik, nur als Analyse. Linguistic analysis of German rap lyrics with pandas — rhyme schemes, vocabulary range, repetition. The dataset from the rapbot work, here without the game, purely as analysis.
Python · pandas
ÖffentlichPublic
-
2023—24
Themenanalyse — Datensätze und Auswertungs-Workflows Topic analysis — datasets and analysis workflows
Im Team entstanden, im Zuge meines Bachelorstudiums in Geschichte, Publizistik- und Kommunikationswissenschaft — und die unscheinbarste Arbeit von allen: Für die meisten Fragen, die sich wirklich stellen, gibt es keinen fertigen Datensatz. Man muss ihn erst herstellen. Genau darum ging es — Quellen sammeln, Tonspuren verschriftlichen, Rohtext säubern, lemmatisieren und so lange in Form bringen, bis eine Auswertung überhaupt möglich wird. Darauf setzt die eigentliche Analyse auf: Themenmodelle für kommunikationswissenschaftliche Fragen — welche Themen in einem Korpus vorkommen, wie sie sich über die Zeit verschieben, mit welcher Sprache geredet wird. Gearbeitet wurde in R und RStudio und dokumentiert in R Markdown, damit jeder Schritt nachvollziehbar bleibt und nicht nur das Ergebnis. Der Umweg, Whisper dafür in R einzuspannen, war übrigens der Anfang des Transcribers weiter oben. Built as a team during my BA in history, journalism and communication studies — and the least conspicuous work of all: for most questions worth asking there is no ready-made dataset. You have to build it first. That was the job — gathering sources, turning audio into text, cleaning the raw text, lemmatising it and shaping it until an analysis becomes possible at all. The actual analysis rests on that: topic models for questions in communication studies — which topics occur in a corpus, how they shift over time, what language is used. The work was done in R and RStudio and documented in R Markdown, so that every step stays reproducible and not just the result. Harnessing Whisper from R for this was, incidentally, where the Transcriber above began.
R · RStudio · tidyverse · quanteda · R Markdown
AbgeschlossenCompleted
-
seit 2023
bash-scripts
Mein Ziel ist es, Automatisierungen zu erfinden und zu bauen, die Technologie für Menschen zugänglicher machen. Dafür arbeite ich mit Algorithmen und mit KI-Modellen. Diese Werkzeugkiste ist der Alltag davon: Aufräum-, Umbenenn- und Sicherungsskripte, dazu Handgriffe rund um Videoschnitt und Transkription. Nichts davon ist schön, alles davon läuft täglich — und jedes einzelne Skript ist eine Handbewegung weniger, die jemand tun muss. My aim is to invent and build automations that make technology more accessible to people. For that I work with algorithms and with AI models. This toolbox is the everyday side of it: cleanup, renaming and backup scripts, plus small helpers around video editing and transcription. None of it is pretty, all of it runs daily — and every single script is one manual step somebody no longer has to take.
Bash · ffmpeg
LaufendOngoing
03cat kontakt.md
Etwas gebaut,
das jemand brauchen könnte?
Built something
someone else could use?
Für Fragen zum Quelltext, für Hinweise auf Fehler oder wenn Sie eines der privaten Repositories sehen möchten: For questions about the source, for bug reports, or if you would like to see one of the private repositories:
[email protected]Am Rande: Hier entstehen auch Websites. shiitake-film.eu und atopics-film.eu sind von Hand gebaut — kein Framework, kein Cookie, kein Tracker, keine Schrift von fremden Servern. As an aside: websites are made here too. shiitake-film.eu and atopics-film.eu are built by hand — no framework, no cookie, no tracker, no font from a foreign server.