news
Programming Leftovers
-
Nicolas Fränkel ☛ Solving Gradle metadata and Renovate integration
My current company has settled on using Gradle. It doesn’t make me very happy, but you need to learn to work with constraints. Plus, I must admit that the developers who actually implemented the build files did a pretty good job overall: they used Kotlin instead of Groovy, they moved code to regular plugins, etc. This week, I worked on improvements to a new project and set up Renovate.
-
Lars Thießen ☛ Speeding up the Unreal Editor launch (again) by not loading 1585 files
Or, to put it simply: The main thread reads hundreds of tiny files, one after another. We will get to what those files are and what we need them for in a minute, but this bit of information already explains why the measured times vary as much as they do. All those file reads are done synchronously during the editor start, a time at which a bunch of other threads is already loading other stuff, from the same drive. Based on timing and the activity of the other threads, we run into dozens or hundreds of of I/O bottlenecks and the thread spends most time just waiting for a chance to load the next file. Not an ideal situation, surely we can speed things up?
-
Ata Kuyumcu ☛ Open-sourcing a puzzle site without leaking the puzzles
dailyprog is a hosted web app. Nobody downloads it. That single fact picks the license.
Plain GPL has a hole for software you run as a service: modify it, host it, never distribute a binary, and you never have to share your changes. AGPL closes that hole. If you run a modified version as a network service, you owe your users the source. For something that only ever exists as a website, AGPL is the version of copyleft that actually bites. MIT would have let anyone lift the whole thing and run a closed clone. I didn’t want that. AGPL it is.
The license text is one file in a 23-file commit. The interesting work is the other 22, and the fixes that kept trailing in for two weeks after.
-
Abdallah Maouche ☛ A Tour of Magit's Status Interface
Magit is an Emacs Git client that is praised by many users . It was one of the reasons I switched to Emacs back when I stumbled across an Emacs video tutorial for the first time. I remember I was impressed by the intuitive UI/UX. In this blog post, I will go over the main Magit interface — Magit Status — and hopefully you will get to see why Magit is awesome .
-
Perl / Raku
-
Python
-
Juha-Matti Santala ☛ N is for namedtuple - Python A to Z
If you write any Python code, you should be using more namedtuples than you are using right now. They are my favourite data structure in Python: they are a subclass of tuples so they are immutable but in addition, you give them and their fields names which increases the readability and debuggability of your code a lot.
-
-
Java/Golang
-
[Old] Markus Eliasson ☛ Adventures in Go
Go on the other hand is known for being the love child of Python and C - and recently I have been doing a lot of Python programming. Python is a really nice language, it has a perfect abstraction level, it easy to read, great community - but it's not very good at concurrency. So I want to see if I can enjoy Go as I enjoy Python.
-