Tomas Petricek
@tomasp.net
Assistant prof at @mff.unikarlova.cuni.cz. Interested in new ways of thinking about programming and history & philosophy of computing. Previously at University of Kent and @cst.cam.ac.uk.
Pinned
Tomas Petricek
@tomasp.net
· May 6
Can software express critical reflections on its own nature in the same way post-modern architecture does?
I don't have the answers, but I wrote a long text with some early thoughts: tomasp.net/architecture/
I don't have the answers, but I wrote a long text with some early thoughts: tomasp.net/architecture/
What if we think about proof assistants/dependently typed languages as interactive programming systems? Discussion today @mff.unikarlova.cuni.cz
(And yes, our building has fairly thick walls :-))
(And yes, our building has fairly thick walls :-))
November 10, 2025 at 10:27 AM
What if we think about proof assistants/dependently typed languages as interactive programming systems? Discussion today @mff.unikarlova.cuni.cz
(And yes, our building has fairly thick walls :-))
(And yes, our building has fairly thick walls :-))
Booked my train tickets for a trip to a PhD defense in Aarhus!
Maybe it's not faster than flying, but I get to go from a train station 10 minutes walk from where I live.
🚂👍
Maybe it's not faster than flying, but I get to go from a train station 10 minutes walk from where I live.
🚂👍
November 7, 2025 at 12:16 AM
Booked my train tickets for a trip to a PhD defense in Aarhus!
Maybe it's not faster than flying, but I get to go from a train station 10 minutes walk from where I live.
🚂👍
Maybe it's not faster than flying, but I get to go from a train station 10 minutes walk from where I live.
🚂👍
In the next lab from my Tiny Systems course, you learn how type inference in ML-like languages works and write your own Hindley-Milner inference algorithm!
🎞️ Watch the videos: www.youtube.com/watch?v=FUFQ...
⌨️ Get the #fsharp code: github.com/tpetricek/ti...
🎞️ Watch the videos: www.youtube.com/watch?v=FUFQ...
⌨️ Get the #fsharp code: github.com/tpetricek/ti...
TinyHM 4.1 - How type inference in ML works
YouTube video by Tomas Petricek
www.youtube.com
October 23, 2025 at 7:58 PM
In the next lab from my Tiny Systems course, you learn how type inference in ML-like languages works and write your own Hindley-Milner inference algorithm!
🎞️ Watch the videos: www.youtube.com/watch?v=FUFQ...
⌨️ Get the #fsharp code: github.com/tpetricek/ti...
🎞️ Watch the videos: www.youtube.com/watch?v=FUFQ...
⌨️ Get the #fsharp code: github.com/tpetricek/ti...
In the second lab of my Tiny Systems course, we write a small interactive BASIC interpreter, inspired by Commodore 64 (Dijkstra does not approve...)
🎞️Watch the videos on YouTube: www.youtube.com/watch?v=jR0m...
⌨️Get the source code here: github.com/tpetricek/ti...
🎞️Watch the videos on YouTube: www.youtube.com/watch?v=jR0m...
⌨️Get the source code here: github.com/tpetricek/ti...
October 20, 2025 at 9:18 AM
In the second lab of my Tiny Systems course, we write a small interactive BASIC interpreter, inspired by Commodore 64 (Dijkstra does not approve...)
🎞️Watch the videos on YouTube: www.youtube.com/watch?v=jR0m...
⌨️Get the source code here: github.com/tpetricek/ti...
🎞️Watch the videos on YouTube: www.youtube.com/watch?v=jR0m...
⌨️Get the source code here: github.com/tpetricek/ti...
I'm afraid I've just recorded a video for my Tiny Systems course on how great GOTO was in Commodore 64 BASIC :-)
(Although, to be fair, I also mention some benefits of GOSUB and RETURN, which is included in bonus materials...)
(Although, to be fair, I also mention some benefits of GOSUB and RETURN, which is included in bonus materials...)
PLP 6.2-6.4: Structured Control Flow, Sequencing, and Selection - youtu.be/oX9aFuJ--zg
Also check out the whole Programming Language Pragmatics playlist: tinyurl.com/PLP5vids
Also check out the whole Programming Language Pragmatics playlist: tinyurl.com/PLP5vids
PLP 6.2-6.4: Structured Control Flow, Sequencing, and Selection
YouTube video by Jonathan Aldrich
youtu.be
October 17, 2025 at 8:07 PM
I'm afraid I've just recorded a video for my Tiny Systems course on how great GOTO was in Commodore 64 BASIC :-)
(Although, to be fair, I also mention some benefits of GOSUB and RETURN, which is included in bonus materials...)
(Although, to be fair, I also mention some benefits of GOSUB and RETURN, which is included in bonus materials...)
Absolutely fascinating 1960 ad for the SAGE (Semi-Automatic Ground Environment) computer!
www.youtube.com/watch?v=iCCL...
For those curious about what this is, there is an excellent book by Rebecca Slayton that documents the software side of the missile defense: mitpress.mit.edu/978026254957...
www.youtube.com/watch?v=iCCL...
For those curious about what this is, there is an excellent book by Rebecca Slayton that documents the software side of the missile defense: mitpress.mit.edu/978026254957...
IBM Sage Computer Ad, 1960
YouTube video by chiklit
www.youtube.com
October 16, 2025 at 9:46 PM
Absolutely fascinating 1960 ad for the SAGE (Semi-Automatic Ground Environment) computer!
www.youtube.com/watch?v=iCCL...
For those curious about what this is, there is an excellent book by Rebecca Slayton that documents the software side of the missile defense: mitpress.mit.edu/978026254957...
www.youtube.com/watch?v=iCCL...
For those curious about what this is, there is an excellent book by Rebecca Slayton that documents the software side of the missile defense: mitpress.mit.edu/978026254957...
To be honest, I feel this is bragging about doing poorly in a meaningless league table.
📊 According to the recently published Times Higher Education World University Rankings 2025, Charles University is once again among the 500 best universities in the world. At the same time, it remains the highest-ranked university in the Czech Republic.
October 11, 2025 at 2:54 PM
To be honest, I feel this is bragging about doing poorly in a meaningless league table.
I'm trying to replace my beloved but long-defunct Atom with VS Code for editing LaTeX.
How do I stop copilot from telling me that I can press "Ctrl+I"? I already disabled it using "github.copilot.enable", which hides the actual suggestions, but not this useless message...
How do I stop copilot from telling me that I can press "Ctrl+I"? I already disabled it using "github.copilot.enable", which hides the actual suggestions, but not this useless message...
October 11, 2025 at 2:17 PM
I'm trying to replace my beloved but long-defunct Atom with VS Code for editing LaTeX.
How do I stop copilot from telling me that I can press "Ctrl+I"? I already disabled it using "github.copilot.enable", which hides the actual suggestions, but not this useless message...
How do I stop copilot from telling me that I can press "Ctrl+I"? I already disabled it using "github.copilot.enable", which hides the actual suggestions, but not this useless message...
I just uploaded videos for the first lab of my tiny systems. TinyML - Write your own tiny functional language interpreter!
🎞️Watch the videos on YouTube: www.youtube.com/playlist?lis...
⌨️Get the source code here: github.com/tpetricek/ti...
🎞️Watch the videos on YouTube: www.youtube.com/playlist?lis...
⌨️Get the source code here: github.com/tpetricek/ti...
October 10, 2025 at 10:36 AM
I just uploaded videos for the first lab of my tiny systems. TinyML - Write your own tiny functional language interpreter!
🎞️Watch the videos on YouTube: www.youtube.com/playlist?lis...
⌨️Get the source code here: github.com/tpetricek/ti...
🎞️Watch the videos on YouTube: www.youtube.com/playlist?lis...
⌨️Get the source code here: github.com/tpetricek/ti...
I'm teaching 𝗪𝗿𝗶𝘁𝗲 𝘆𝗼𝘂𝗿 𝗼𝘄𝗻 𝘁𝗶𝗻𝘆 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴 𝘀𝘆𝘀𝘁𝗲𝗺(𝘀)! again. I'll be posting the videos & tasks on YouTube too.
In the first lecture, I explain what's a tiny system, why write one and show plenty of demos!
🎞️ Playlist: www.youtube.com/playlist?lis...
👉 More info: d3s.mff.cuni.cz/teaching/npr...
In the first lecture, I explain what's a tiny system, why write one and show plenty of demos!
🎞️ Playlist: www.youtube.com/playlist?lis...
👉 More info: d3s.mff.cuni.cz/teaching/npr...
Write your own tiny programming system(s)! - YouTube
The goal of this course is to teach how fundamental programming language techniques, algorithms and systems work by writing their miniature versions. The cou...
www.youtube.com
October 7, 2025 at 9:18 PM
I'm teaching 𝗪𝗿𝗶𝘁𝗲 𝘆𝗼𝘂𝗿 𝗼𝘄𝗻 𝘁𝗶𝗻𝘆 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴 𝘀𝘆𝘀𝘁𝗲𝗺(𝘀)! again. I'll be posting the videos & tasks on YouTube too.
In the first lecture, I explain what's a tiny system, why write one and show plenty of demos!
🎞️ Playlist: www.youtube.com/playlist?lis...
👉 More info: d3s.mff.cuni.cz/teaching/npr...
In the first lecture, I explain what's a tiny system, why write one and show plenty of demos!
🎞️ Playlist: www.youtube.com/playlist?lis...
👉 More info: d3s.mff.cuni.cz/teaching/npr...
Reposted by Tomas Petricek
Deadline extension: 1 week.
Please submit your talk proposals by October 16 (anywhere on Earth).
bsky.app/profile/undo...
Please submit your talk proposals by October 16 (anywhere on Earth).
bsky.app/profile/undo...
Announcing Undone CS 2026:
2nd conference on Undone science in Computer science
A conference in computer science to pause and reflect on the epistemological and ethical dimensions of the field, through the concept of undone science
Full call for presentations at www.undonecs.org/2026/cfp.html
2nd conference on Undone science in Computer science
A conference in computer science to pause and reflect on the epistemological and ethical dimensions of the field, through the concept of undone science
Full call for presentations at www.undonecs.org/2026/cfp.html
October 3, 2025 at 3:27 PM
Deadline extension: 1 week.
Please submit your talk proposals by October 16 (anywhere on Earth).
bsky.app/profile/undo...
Please submit your talk proposals by October 16 (anywhere on Earth).
bsky.app/profile/undo...
I'm at #uist2025 presenting our new work with @jonathoda.bsky.social!
𝗗𝗲𝗻𝗶𝗰𝗲𝗸 is a computational substrate for end-user programming that makes it easy to implement programming experiences like programming by demonstration, collaborative editing and more!
tomasp.net/academic/pap...
𝗗𝗲𝗻𝗶𝗰𝗲𝗸 is a computational substrate for end-user programming that makes it easy to implement programming experiences like programming by demonstration, collaborative editing and more!
tomasp.net/academic/pap...
September 30, 2025 at 6:13 AM
I'm at #uist2025 presenting our new work with @jonathoda.bsky.social!
𝗗𝗲𝗻𝗶𝗰𝗲𝗸 is a computational substrate for end-user programming that makes it easy to implement programming experiences like programming by demonstration, collaborative editing and more!
tomasp.net/academic/pap...
𝗗𝗲𝗻𝗶𝗰𝗲𝗸 is a computational substrate for end-user programming that makes it easy to implement programming experiences like programming by demonstration, collaborative editing and more!
tomasp.net/academic/pap...
Reposted by Tomas Petricek
Companion (Workshop) Proceedings for ‹Programming› 2025 are now available! Co-edited with @jonathoda.bsky.social and @tomasp.net. Thanks to the awesome OASIcs publishing team for getting this over the line.
drops.dagstuhl.de/entities/vol...
drops.dagstuhl.de/entities/vol...
Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming (Programming 2025)
drops.dagstuhl.de
September 17, 2025 at 2:55 PM
Companion (Workshop) Proceedings for ‹Programming› 2025 are now available! Co-edited with @jonathoda.bsky.social and @tomasp.net. Thanks to the awesome OASIcs publishing team for getting this over the line.
drops.dagstuhl.de/entities/vol...
drops.dagstuhl.de/entities/vol...
Slides from my talk "Critical Architecture/Software Theory" at PPIG 2025 in Belgrade: tpetricek.github.io/Talks/2025/c...
The talk has been a great excuse to organize some more ideas, on top of my earlier article on the topic: tomasp.net/architecture/
The talk has been a great excuse to organize some more ideas, on top of my earlier article on the topic: tomasp.net/architecture/
September 9, 2025 at 1:06 PM
Slides from my talk "Critical Architecture/Software Theory" at PPIG 2025 in Belgrade: tpetricek.github.io/Talks/2025/c...
The talk has been a great excuse to organize some more ideas, on top of my earlier article on the topic: tomasp.net/architecture/
The talk has been a great excuse to organize some more ideas, on top of my earlier article on the topic: tomasp.net/architecture/
Reposted by Tomas Petricek
Announcing Undone CS 2026:
2nd conference on Undone science in Computer science
A conference in computer science to pause and reflect on the epistemological and ethical dimensions of the field, through the concept of undone science
Full call for presentations at www.undonecs.org/2026/cfp.html
2nd conference on Undone science in Computer science
A conference in computer science to pause and reflect on the epistemological and ethical dimensions of the field, through the concept of undone science
Full call for presentations at www.undonecs.org/2026/cfp.html
July 17, 2025 at 12:46 PM
Announcing Undone CS 2026:
2nd conference on Undone science in Computer science
A conference in computer science to pause and reflect on the epistemological and ethical dimensions of the field, through the concept of undone science
Full call for presentations at www.undonecs.org/2026/cfp.html
2nd conference on Undone science in Computer science
A conference in computer science to pause and reflect on the epistemological and ethical dimensions of the field, through the concept of undone science
Full call for presentations at www.undonecs.org/2026/cfp.html
In case someone liked Prague during @programming-conf.bsky.social so much they wanted to come for longer...
📢 Charles University has a funding scheme for established researchers - to join us for (initially) 6 months to 2 years.
More info: cuni.cz/UKEN-2238.html
📢 Charles University has a funding scheme for established researchers - to join us for (initially) 6 months to 2 years.
More info: cuni.cz/UKEN-2238.html
Donatio Universitatis Carolinæ Chair
cuni.cz
June 24, 2025 at 8:17 PM
In case someone liked Prague during @programming-conf.bsky.social so much they wanted to come for longer...
📢 Charles University has a funding scheme for established researchers - to join us for (initially) 6 months to 2 years.
More info: cuni.cz/UKEN-2238.html
📢 Charles University has a funding scheme for established researchers - to join us for (initially) 6 months to 2 years.
More info: cuni.cz/UKEN-2238.html
Anybody remembers Microsoft script encoder? A true gem from the MSDN archives of August 1999: web.archive.org/web/20021214...
(The thing was clearly not very sophisticated: web.archive.org/web/20070103...)
(The thing was clearly not very sophisticated: web.archive.org/web/20070103...)
June 17, 2025 at 11:27 AM
Anybody remembers Microsoft script encoder? A true gem from the MSDN archives of August 1999: web.archive.org/web/20021214...
(The thing was clearly not very sophisticated: web.archive.org/web/20070103...)
(The thing was clearly not very sophisticated: web.archive.org/web/20070103...)
Reposted by Tomas Petricek
For software to be malleable, we need ways of building and modifying programs that are accessible to many more people.
Are you working on new interfaces for programming?
Share your progress at the LIVE workshop!
Submissions are due July 21st.
liveprog.org
(Happy to chat if you have questions!)
Are you working on new interfaces for programming?
Share your progress at the LIVE workshop!
Submissions are due July 21st.
liveprog.org
(Happy to chat if you have questions!)
Computing could be a more harmonious and empowering force in our lives if we could mold it to our needs. We wrote a little about this vision of "malleable software" – past, present, and future.
www.inkandswitch.com/essay/mallea...
www.inkandswitch.com/essay/mallea...
Malleable software: Restoring user agency in a world of locked-down apps
The original promise of personal computing was a new kind of clay. Instead, we got appliances: built far away, sealed, unchangeable. In this essay, we envision malleable software: tools that users can...
www.inkandswitch.com
June 11, 2025 at 3:34 AM
For software to be malleable, we need ways of building and modifying programs that are accessible to many more people.
Are you working on new interfaces for programming?
Share your progress at the LIVE workshop!
Submissions are due July 21st.
liveprog.org
(Happy to chat if you have questions!)
Are you working on new interfaces for programming?
Share your progress at the LIVE workshop!
Submissions are due July 21st.
liveprog.org
(Happy to chat if you have questions!)
I suspect some people worried about politics might enjoy this song: www.youtube.com/watch?v=_9VW...
The communist totalitarian regime in power at the time banned all the consonants from the song.
The communist totalitarian regime in power at the time banned all the consonants from the song.
Planeta Hieronyma Bosche II
YouTube video by Progres 2 - Topic
www.youtube.com
June 12, 2025 at 8:28 PM
I suspect some people worried about politics might enjoy this song: www.youtube.com/watch?v=_9VW...
The communist totalitarian regime in power at the time banned all the consonants from the song.
The communist totalitarian regime in power at the time banned all the consonants from the song.
The Choose-Your-Own-Adventure Calculus is a small formalism that captures an interaction pattern where you repeatedly choose from the available options.
Examples include type providers, structure editors, theorem provers & more!
Draft paper based on my earlier blog post: tomasp.net/academic/dra...
Examples include type providers, structure editors, theorem provers & more!
Draft paper based on my earlier blog post: tomasp.net/academic/dra...
June 10, 2025 at 12:34 PM
The Choose-Your-Own-Adventure Calculus is a small formalism that captures an interaction pattern where you repeatedly choose from the available options.
Examples include type providers, structure editors, theorem provers & more!
Draft paper based on my earlier blog post: tomasp.net/academic/dra...
Examples include type providers, structure editors, theorem provers & more!
Draft paper based on my earlier blog post: tomasp.net/academic/dra...
One last picture from @programming-conf.bsky.social!
A photo from the Friday afternoon visit to the Prague castle gardens, some time after we miraculously avoided the rain by hiding in a pub and talking about programming some more...
A photo from the Friday afternoon visit to the Prague castle gardens, some time after we miraculously avoided the rain by hiding in a pub and talking about programming some more...
June 9, 2025 at 7:54 PM
One last picture from @programming-conf.bsky.social!
A photo from the Friday afternoon visit to the Prague castle gardens, some time after we miraculously avoided the rain by hiding in a pub and talking about programming some more...
A photo from the Friday afternoon visit to the Prague castle gardens, some time after we miraculously avoided the rain by hiding in a pub and talking about programming some more...
Is schema change someone else's problem?
@jonathoda.bsky.social presenting our paper "Schema Evolution in Interactive Programming Systems" at @programming-conf.bsky.social Check it out: programming-journal.org/2025/9/2/
@jonathoda.bsky.social presenting our paper "Schema Evolution in Interactive Programming Systems" at @programming-conf.bsky.social Check it out: programming-journal.org/2025/9/2/
June 5, 2025 at 12:17 PM
Is schema change someone else's problem?
@jonathoda.bsky.social presenting our paper "Schema Evolution in Interactive Programming Systems" at @programming-conf.bsky.social Check it out: programming-journal.org/2025/9/2/
@jonathoda.bsky.social presenting our paper "Schema Evolution in Interactive Programming Systems" at @programming-conf.bsky.social Check it out: programming-journal.org/2025/9/2/
Fun fact from Thomas Würthinger's @programming-conf.bsky.social keynote. The most notable paper on GraalVM was published in Onward!
Maybe conference ranking is broken 😱?
Maybe conference ranking is broken 😱?
June 5, 2025 at 7:09 AM
Fun fact from Thomas Würthinger's @programming-conf.bsky.social keynote. The most notable paper on GraalVM was published in Onward!
Maybe conference ranking is broken 😱?
Maybe conference ranking is broken 😱?
It also didn't have a conditional jump and you instead had to overwrite the target of an unconditional jump in memory to do this. That's the "stored -program capabilities"!
It’s 7️⃣ 5️⃣ years since the Alan Turing-designed, National Physical Laboratory-built Pilot ACE computer became functional. It was one of the first computers built in the UK and one of the earliest with general-purpose, stored-program capabilities.
Read more: archivesit.org.uk/75-years-sin...
Read more: archivesit.org.uk/75-years-sin...
75 years since: Alan Turing-designed National Physical Laboratory Pilot ACE computer - Archives of IT
Main Image: The Pilot ACE computer at the National Physical Laboratory, Teddington in 1950. Part…
archivesit.org.uk
June 2, 2025 at 10:26 PM
It also didn't have a conditional jump and you instead had to overwrite the target of an unconditional jump in memory to do this. That's the "stored -program capabilities"!
I'll be talking about my "Tiny programming systems" course & research at the #MoreVMs workshop in about 10 minutes.
Join the @programming-conf.bsky.social live stream at: 2025.programming-conference.org
...and stay tuned for many great talks on Wednesday and Thursday!
Join the @programming-conf.bsky.social live stream at: 2025.programming-conference.org
...and stay tuned for many great talks on Wednesday and Thursday!
‹Programming› 2025
The International Conference on the Art, Science, and Engineering of Programming—or ‹Programming› for short— focuses on programming topics including the experience of programming. ‹Programming› seeks ...
2025.programming-conference.org
June 2, 2025 at 2:10 PM
I'll be talking about my "Tiny programming systems" course & research at the #MoreVMs workshop in about 10 minutes.
Join the @programming-conf.bsky.social live stream at: 2025.programming-conference.org
...and stay tuned for many great talks on Wednesday and Thursday!
Join the @programming-conf.bsky.social live stream at: 2025.programming-conference.org
...and stay tuned for many great talks on Wednesday and Thursday!