summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Douillet <vincent@vdouillet.fr>2025-06-09 17:45:10 +0200
committerVincent Douillet <vincent@vdouillet.fr>2025-06-09 17:45:10 +0200
commit9334ac94afad33821fc859c98c471ee550a13fd0 (patch)
tree6d2bfc9e0a7637ffc30b553ea71fb0cd4f52fd95
parent561c935d3b03c1365e8b0bf3f79ab15a33e229b3 (diff)
article: suckless presentationsHEADmaster
-rw-r--r--20250609-suckless-presentations.md55
-rw-r--r--static/passthrough/20250609-maven-primer-01.pngbin0 -> 14160 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-02.pngbin0 -> 15215 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-03.pngbin0 -> 13335 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-04.pngbin0 -> 27922 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-05.pngbin0 -> 16568 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-06.pngbin0 -> 16161 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-07.pngbin0 -> 23467 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-08.pngbin0 -> 22280 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-09.pngbin0 -> 18310 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-10.pngbin0 -> 13905 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-11.pngbin0 -> 17556 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-12.pngbin0 -> 17319 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-13.pngbin0 -> 19956 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-14.pngbin0 -> 13184 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-15.pngbin0 -> 23499 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-16.pngbin0 -> 16378 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-17.pngbin0 -> 13196 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-18.pngbin0 -> 12458 bytes
-rw-r--r--static/passthrough/20250609-maven-primer-19.pngbin0 -> 15843 bytes
-rw-r--r--static/passthrough/20250609-maven-primer.txt82
21 files changed, 137 insertions, 0 deletions
diff --git a/20250609-suckless-presentations.md b/20250609-suckless-presentations.md
new file mode 100644
index 0000000..b0ed8f7
--- /dev/null
+++ b/20250609-suckless-presentations.md
@@ -0,0 +1,55 @@
+# Suckless presentations
+
+June 9, 2025
+
+I'm a big fan of [suckless](http://suckless.org) tools. My laptop has been running [dwm](http://dwm.suckless.org) for years now. One of their tool has fascinated me ever since I discovered it: [sent](http://tools.suckless.org/sent).
+
+Its purpose is to create presentations. Being a suckless tool, it only needs a plain text file with each paragraph corresponding to a slide. Pictures can be displayed on a slide, but not with text on the same slide. You then launch sent on the file and the presentation starts in a plain X11 window.
+
+It is diabolically efficient, and I like that. No need for a bloated WYSIWYG tool or elaborate markup language. Just write what you want to present, and it's done. With the file being plain text, you can even open it with any viewer or editor and just read it that way.
+
+Some may find that the resulting presentation is a little too bland for their taste. In my opinion, that's a feature. I think many slides are way too bloated in the presentations I see. Having a few simple sentences or just one picture per slide is enough. It lets the viewer quickly read it and then listen to what is being said about it. The slide should support the talk, and not the opposite.
+
+To test drive sent, I've created a simple "Maven primer" presentation. Don't take it too seriously, I've not checked everything I've written. You can find the presentation source file [here](/static/20250609-maven-primer.txt). The sent home page is quite clear that exporting the presentation to other formats is not supported, but suggests automating a PNG export of each slide. That's exactly what I've done with a quick and dirty bash script:
+
+ #!/bin/bash
+
+ echo "Please focus sent window"
+
+ for i in {3..1}
+ do
+ echo "$i..."
+ sleep 1
+ done
+
+ xdotool getactivewindow windowsize $1 $2
+
+ for i in {01..19}
+ do
+ import -screen -window 'sent' $i.png
+ xdotool getactivewindow key n
+ done
+
+Just launch it with your desired output resolution and then you have 3 seconds to focus the sent presentation to export:
+
+ $ ./sent-export.sh 800 600
+
+[![01](/static/20250609-maven-primer-01.png)](/static/20250609-maven-primer-01.png)
+[![02](/static/20250609-maven-primer-02.png)](/static/20250609-maven-primer-02.png)
+[![03](/static/20250609-maven-primer-03.png)](/static/20250609-maven-primer-03.png)
+[![04](/static/20250609-maven-primer-04.png)](/static/20250609-maven-primer-04.png)
+[![05](/static/20250609-maven-primer-05.png)](/static/20250609-maven-primer-05.png)
+[![06](/static/20250609-maven-primer-06.png)](/static/20250609-maven-primer-06.png)
+[![07](/static/20250609-maven-primer-07.png)](/static/20250609-maven-primer-07.png)
+[![08](/static/20250609-maven-primer-08.png)](/static/20250609-maven-primer-08.png)
+[![09](/static/20250609-maven-primer-09.png)](/static/20250609-maven-primer-09.png)
+[![10](/static/20250609-maven-primer-10.png)](/static/20250609-maven-primer-10.png)
+[![11](/static/20250609-maven-primer-11.png)](/static/20250609-maven-primer-11.png)
+[![12](/static/20250609-maven-primer-12.png)](/static/20250609-maven-primer-12.png)
+[![13](/static/20250609-maven-primer-13.png)](/static/20250609-maven-primer-13.png)
+[![14](/static/20250609-maven-primer-14.png)](/static/20250609-maven-primer-14.png)
+[![15](/static/20250609-maven-primer-15.png)](/static/20250609-maven-primer-15.png)
+[![16](/static/20250609-maven-primer-16.png)](/static/20250609-maven-primer-16.png)
+[![17](/static/20250609-maven-primer-17.png)](/static/20250609-maven-primer-17.png)
+[![18](/static/20250609-maven-primer-18.png)](/static/20250609-maven-primer-18.png)
+[![19](/static/20250609-maven-primer-19.png)](/static/20250609-maven-primer-19.png)
diff --git a/static/passthrough/20250609-maven-primer-01.png b/static/passthrough/20250609-maven-primer-01.png
new file mode 100644
index 0000000..bd9b40c
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-01.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-02.png b/static/passthrough/20250609-maven-primer-02.png
new file mode 100644
index 0000000..87eadad
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-02.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-03.png b/static/passthrough/20250609-maven-primer-03.png
new file mode 100644
index 0000000..c0607a0
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-03.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-04.png b/static/passthrough/20250609-maven-primer-04.png
new file mode 100644
index 0000000..bfe8fa3
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-04.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-05.png b/static/passthrough/20250609-maven-primer-05.png
new file mode 100644
index 0000000..9e06f2c
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-05.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-06.png b/static/passthrough/20250609-maven-primer-06.png
new file mode 100644
index 0000000..b64518e
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-06.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-07.png b/static/passthrough/20250609-maven-primer-07.png
new file mode 100644
index 0000000..4111503
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-07.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-08.png b/static/passthrough/20250609-maven-primer-08.png
new file mode 100644
index 0000000..eefe23f
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-08.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-09.png b/static/passthrough/20250609-maven-primer-09.png
new file mode 100644
index 0000000..6a70447
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-09.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-10.png b/static/passthrough/20250609-maven-primer-10.png
new file mode 100644
index 0000000..be21727
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-10.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-11.png b/static/passthrough/20250609-maven-primer-11.png
new file mode 100644
index 0000000..70a38fb
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-11.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-12.png b/static/passthrough/20250609-maven-primer-12.png
new file mode 100644
index 0000000..aa6f054
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-12.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-13.png b/static/passthrough/20250609-maven-primer-13.png
new file mode 100644
index 0000000..e7d6c37
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-13.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-14.png b/static/passthrough/20250609-maven-primer-14.png
new file mode 100644
index 0000000..ad22ed5
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-14.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-15.png b/static/passthrough/20250609-maven-primer-15.png
new file mode 100644
index 0000000..95e6be9
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-15.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-16.png b/static/passthrough/20250609-maven-primer-16.png
new file mode 100644
index 0000000..6859680
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-16.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-17.png b/static/passthrough/20250609-maven-primer-17.png
new file mode 100644
index 0000000..ec08402
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-17.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-18.png b/static/passthrough/20250609-maven-primer-18.png
new file mode 100644
index 0000000..47685e1
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-18.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer-19.png b/static/passthrough/20250609-maven-primer-19.png
new file mode 100644
index 0000000..c4803b1
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer-19.png
Binary files differ
diff --git a/static/passthrough/20250609-maven-primer.txt b/static/passthrough/20250609-maven-primer.txt
new file mode 100644
index 0000000..9d438a0
--- /dev/null
+++ b/static/passthrough/20250609-maven-primer.txt
@@ -0,0 +1,82 @@
+Maven
+A beginner's guide
+
+https://maven.apache.org
+"Apache Maven is a software project management
+and comprehension tool"
+
+Based on a "project object model (POM)"
+that allows Maven to build the project as configured
+
+Through its configuration, you can tell Maven:
+- What your project dependencies are
+- How to compile your project
+- How to package your project
+- How to run your unit tests
+- How to... whatever, really
+
+Maven is architected around plugins.
+Its functionnalities can be extended by writing new plugins.
+Though, most likely a plugin already exists for your needs.
+
+Maven is launched through the command line
+with its command and a target "phase".
+$ mvn deploy
+
+When Maven runs, it follows a "lifecycle".
+A lifecycle is made of "phases".
+Maven will run all the phases up to the
+one you specified on the command line.
+
+Default lifecycle
+- validate
+- compile
+- test
+- package
+- verify
+- install
+- deploy
+
+Each build phase is made up of plugin goals.
+You configure which plugins run at each phase
+through Maven's config file "pom.xml".
+
+The POM file should be in the directory from
+which you invoke Maven.
+
+The POM file specifies:
+- The project's dependencies
+- The plugins to use for the build
+
+The dependencies and the plugins are called
+artifacts.
+They're identified by a group, a name, and
+a version.
+
+<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.14.0</version>
+</plugin>
+
+Maven downloads artifacts from a "repository".
+There are 2 types of repositories.
+
+Local repository
+A directory on your computer.
+Maven caches remote downloads
+in the local repository
+
+Remote repository
+Any other repository is a remote repository.
+It can be a directory, an HTTP server, ...
+
+By default, Maven uses the following remote repository
+https://repo.maven.apache.org/maven2/
+
+Through the POM file, you can configure one
+or several repositories to use.
+
+You can instruct Maven to "deploy" your locally built
+artifact to a repository, so that other users can
+instruct Maven to depend on it for their build.