Snake (5): Future work

Three weeks ago, I released my classic browser-based snake game—a project I started 15 years ago—under a free and open-source license.

In my previous three posts, I introduced the various systems, their interactions, the game design, and the underlying technologies. In this post, I will close off this series by outlining some future work.

Read More

Snake (4): Design, influences, and technology

Three weeks ago, I released my classic browser-based snake game—a project I started 15 years ago—under a free and open-source license.

In my previous two posts, I introduced the various systems that power the game and how they interact. Today, I’ll dive into the game’s design, its influences, and the underlying technologies.

Read More

Snake (3): Interplay between different systems

Three weeks ago, I released my classic browser-based snake game—a project I started 15 years ago—under a free and open-source license.

In my previous post, I introduced the various systems that bring the game to life. In this post, I’ll explore how these systems interact to create a balanced and engaging gameplay experience.

Read More

Snake (2): Game loop and systems

Two weeks ago, I released my classic browser-based snake game—a project I started 15 years ago—under a free and open-source license.

In this post, I’ll walk you through the game’s fundamental loop and explain the various systems that bring it to life.

Read More

Snake (1): My browser snake game from 15 years ago, now free and open-source

In the late 2000s, I was an active member of the Czech bulletin board https://diskuse.jakpsatweb.cz, a vibrant space where hobbyists, academics, and professionals shared ideas about web development.

On July 29, 2010, I introduced an early version of a web browser game called DHTML Snake in a forum post. In that post, I explained the game’s systems, implementation details, and invited feedback. Over the next couple of years, I incrementally improved the game by following my own creative direction and incorporating suggestions from high school classmates.

After more than a decade without updates, I revisited the project yesterday. I cleaned up the code and released it under a free, open-source license on GitHub.

You can try the game here using your computer’s keyboard and mouse. 🤞

Read More

Static analysis of expl3 programs (7): Lexical analysis and a public website listing issues in current TeX Live

Since last December, I’ve released five updates to expltools, a bundle that includes the static analysis tool explcheck for the expl3 programming language.

In v0.4.0 (January), I introduced the second processing step: lexical analysis. As noted in my previous blog post, this step converts the expl3 parts identified during preprocessing into TeX tokens, opening the door to deeper program analysis.

Throughout the rest of January, I focused on improving the lexical analysis and enhancing user experience. Notably, in v0.5.0, I added support for ignoring issues with inline TeX comments % noqa and the command-line option --ignored-issues. Furthermore, in v0.6.0 and v0.6.1, I implemented TOML config files to allow users to configure explcheck for their projects.

In v0.7.0 and v0.7.1 (February), I continued refining issue detection. To assist with validation, I added regression tests that regularly scan all expl3 files from TeX Live versions 2013 to 2023, comparing results to baselines as part of our continuous integration process.

Furthermore, in collaboration with Oliver Kopp and with the advice of Norbert Preining, we launched a public website that lists all issues in current TeX Live detected by explcheck.

Read More

Static analysis of expl3 programs (6): A flurry of releases, CSTUG talk, and what's next

Two weeks ago, I announced the first public release of expltools, a bundle that includes explcheck, a static analysis tool for the expl3 programming language.

Since then, the project has sparked a lively discussion in the project repository, engaging early adopters, contributors, and enthusiasts. This feedback loop has already resulted in two new releases within the past two weeks, and another update is planned for next Monday (December 23).

On December 14, I also had the opportunity to present explcheck during a talk at the general assembly of the Czechoslovak TeX Users Group (CSTUG). Although the talk was delivered in Czech, the presentation slides are in English and should provide a clear overview of the topics discussed.

Read More

Static analysis of expl3 programs (5): Frank Mittelbach in Brno, the first public release of explcheck, and expl3 usage statistics

This week has been an exciting one for the TeX and LaTeX community in Brno, with Frank Mittelbach, a key figure from the LaTeX team, visiting Masaryk University to deliver talks on the history and the future of LaTeX.

Alongside his visit, I introduced explcheck, a static analysis tool for the expl3 programming language, with its first public release now available on CTAN.

As part of my seminar talk, I demonstrated explcheck’s capabilities, including a deep dive into 11 years of expl3 usage statistics, which reveal intriguing trends about its adoption and integration into the TeX ecosystem.

Read More

Static analysis of expl3 programs (4½): Status update

In September, I wrote a project proposal for developing a static analysis tool (so-called linter) for the expl3 programming language. I submitted the proposal to the TeX Development Fund and I’m thrilled to share that the proposal has been accepted. The project was awarded a grant of US$2000, spread over the next 12 months. At the end of this period, I’ll be presenting a final report as a TUGboat article, potentially as early as at TUG 2025 in तिरुवनन्तपुरम्.

Read More

Static analysis of expl3 programs (4): Design

This is my fourth devlog post for the development of a static analysis tool (so-called linter) for the expl3 programming language, which would help developers to discover bugs in their expl3 programs before even running them.

Read More

Exploiting an nVidia Optimus-Enabled Notebook with Debian Stretch

I recently acquired a DELL Inspiron 15 7559 notebook and decided to supplement the pre-installed Windows OS with Debian Linux (Stretch), which has been my daily driver OS for about two years now and will soon become the stable Debian version. The machine contains two GPUs—an integrated Intel 915G GPU, and a dedicated nVidia GTX960M GPU—that are interconnected via the the nVidia Optimus GPU switching technology.

Read More

Bad Times: Reincarnation

I did a remix of the Persona 3 “Mass Destruction” theme from the “Burn My Dread -Reincarnation: Persona 3-” album by Shoji Meguro (Atlus) and two versions of “Megalovania” from Undertale and Homestuck by Toby Fox.

The drawings of Sans and Gaster Blaster were kindly provided by Sallintha. The animation was created using Synfig Studio – a free open-source animation software that provides command-line rendering. All the assets and project files are available in a Git repository along with the two other remixes of the songs I did earlier.

Read More

JoJo's Bizarre Adventure: Phantom Echoes

While I was watching the first volume of JoJo’s Bizzare Adventure: Diamond is Unbreakable, I fell in love with the battle theme of Koichi Hirose (Yuuki) and wondered what a remix with the intro theme of JoJo’s Bizzare Adventure: Phantom Blood (Sono Chi no Sadame) would sound like. Since the JoJo’s Bizzare Adventure: Diamond is Unbreakable OST got released on July 27th, I decided to throw together a quick prototype.

Read More

The Mesa Verde National Park

Today, we are headed to the Mesa Verde National Park, where the dwellings of the Ancestral Pueblo people, who called Mesa Verde their home during 500s–1300s A.D., can be found. Perhaps most fascinating are the cliff dwellings built in the alcoves in the surrounding canyon sides, where the Ancestral Pueblo people retreated from the mesa tops during the 1200s. Shortly after that the people disappeared – presumably due to a long period of droughts, as evidenced by the annuli of the well-preserved pine logs that were used to support the building roofs, or an internal struggle.

Read More

The Monument Valley National Park

Today, we are headed to the Monument Valley – a national park at the northern rim of Arizona where monumental rock formations, mesas and buttes predominate over the desolate wasteland.

Read More

The Antelope Canyons

Today, we are headed to the Antelope Canyons in the Navajo Tribal Park. The entrance fees are pretty steep ($46 + $8 tribal fee per a visitor) and the ride on the back of an all-terain vehicle to the entrance to the upper canyon is fairly uncomfortable with all the sand flying around. The sights, however, are well worth the trouble.

Read More

Valley of Fire State Park

Today, we are moving from California to Utah across the southern rim of Nevada and the northern rim of Arizona and we are visiting the Valley of Fire state park along the way.

Read More

Hollywood

Today we are taking some much-needed rest after the long flight before heading to Arizona. And what a better place to rest than the Hollywood Boulevard.

Read More

Leaving for the USA

Having left Velešín in the early morning, we made it through the immigration interview at the Prague airport and departured at noon (GMT+2). Arrived in at the New York airport at 16:00 (GMT-4) and then at the Los Angeles airport at 21:30 (GMT-7).

Read More