-
Pl
chevron_right
Jonathan Blandford: Crosswords 0.3.16: 2025 Internship Results
news.movim.eu / PlanetGnome • 23 October • 3 minutes
Time for another GNOME Crosswords release! This one highlights the features our interns did this past summer. We had three fabulous interns — two through GSoC and one through Outreachy. While this release really only has three big features — one from each — they were all fantastic.
Thanks goes to to my fellow GSoC mentors Federico and Tanmay. In addition, Tilda and the folks at Outreachy were extremely helpful. Mentorship is a lot of work, but it’s also super-rewarding. If you’re interested in participating as a mentor in the future and have any questions about the process, let me know. I’ll be happy to speak with you about them.
Dictionary pipeline improvements
First, our Outreachy intern Nancy spent the summer improving the build pipeline to generate the internal dictionaries we use. These dictionaries are used to provide autofill capabilities and add definitions to the Editor, as well as providing near-instant completions for both the Editor and Player. The old pipeline was buggy and hard to maintain. Once we had a cleaned it up, Nancy was able to use it to effortlessly produce a dictionary in her native tongue: Swahili.
A Grid in swahili
We have no distribution story yet, but it’s exciting to have it so much easier to create dictionaries in other languages. It opens the door to the Editor being more universally useful (and fulfills a core GNOME tenet).
You can read about it more details in Nancy’s final report .
Word List
Victor did a ton of research for Crosswords, almost acting like a Product Manager. He installed every crossword editor he could find and did a competitive analysis , noting possible areas for improvement. One of the areas he flagged was the word list in our editor. This list suggests words that could be used in a given spot in the grid. We started with a simplistic implementation that listed every possible word in our dictionary that could fit. This approach— while fast — provided a lot of dead words that would make the grid unsolvable. So he set about trying to narrow down that list.
New Word List showing possible options
It turns out that there’s a lot of tradeoffs to be made here ( Victor’s post ). It’s possible to find a really good set of words, at the cost of a lot of computational power. A much simpler list is quick but has dead words. In the end, we found a happy medium that let us get results fast and had a stable list across a clue. He’ll be blogging about this shortly.
Victor also cleaned up our development docs , and researched satsolve algorithms for the grid. He’s working on a lovely doc on the AC-3 algorithm, and we can use it to add additional functionality to the editor in the future.
Printing
Toluwaleke implemented printing support for GNOME Crosswords.
This was a tour de force, and a phenomenal addition to the Crosswords codebase. When I proposed it for a GSoC project, I had no idea how much work this project could involve. We already had code to produce an svg of the grid — I thought that we could just quickly add support for the clues and call it a day. Instead, we ended up going on a wild ride resulting in a significantly stronger feature and code base than we had going in.
His blog has more detail and it’s really quite cool ( go read it! ). But from my perspective, we ended up with a flexible and fast rendering system that can be used in a lot more places. Take a look:
The resulting PDFs are really high quality — they seem to look better than some of the newspaper puzzles I’ve seen. We’ll keep tweaking them as there are still a lot of improvements we’d like to add, such as taking the High Contrast / Large Text A11Y options into account. But it’s a tremendous basis for future work.
Increased Polish
There were a few other small things that happened
- I hooked Crosswords up to Damned Lies . This led to an increase in our translation quality and count
- This included a Polish translation, which came with a new downloader!
- I ported all the dialogs to AdwDialog, and moved on from (most) of the deprecated Gtk4 widgets
- A lot of code cleanups and small fixes
Now that these big changes have landed, it’s time to go back to working on the rest of the changes proposed for GNOME Circle.
Until next time, happy puzzling!