2009 wrap-up; and my very personal move to Git
January 6, 2010
As you might have noticed, the first nine years of this millenium are over. From a programming perspective, my last year has not been overly productive: KDiamond¹ is in maintenance mode, Kolf¹ 2 could easily win the “Most biggest KDE Vaporware” award because another major rewrite is due, only Palapeli¹ is about to have a first release after yet another major rewrite. 😉
I hope that this year turns out better. Perhaps a first version of Kolf 2 can ship with SC 4.5 (more likely 4.6), after I have cut away the 3D stuff. Palapeli 1.1 (KDE SC 4.5) will definitely bring diverse improvements in handling big puzzles, as well as lower memory and CPU time consumption. Apart from that, I have three top-secret projects for which I hope to produce first code over the next year.
Now you are probably waiting for me to tell you about my very personal move to Git. Some fellow students and I are writing our lectures in LaTeX. (Through this experience, I have become quite comfortable in writing AMSLaTeX formulas and creating TikZ drawings in near real-time.) We use Gobby during the lecture, and also synchronized and backed up our working copys through a self-written CMS on a joint webserver (LAMP config).
This solution has worked well for about two years, but has been retired this Monday, because it has some architectural issues:
- Synchronizing the working copy with the server essentially meant downloading some tar-like archive files which contain a plain snapshot of the server’s master version. Everyone of us has written extensive Bash scripts to unpack these archives, and sort and merge the contents with the working copy.
- Every file needed to be uploaded by hand. No mass uploading, over even a command line client. (The interface was
copiedheavily inspired from MediaWiki.)
- It’s centralized and has linear version numbering. This is so 90s.
- There were lots of funny ways to lose files, e.g. by renaming them to inaccessible names.
Enough reasons for me to finally make the switch to Git. I quickly hacked together a 200-lines QtSql application to convert the database into a Git repo, and after five minutes, I have my repo right away. Since the webserver upgrade to a vServer has not yet been ordered to host the origin/master, it currently resides elsewhere:
If you’re interested in some sample code that shows how to convert a simple CMS database into a Git repo, post a comment. Apart from that, I’m now working on a Makefile generator for LaTeX files and SVG drawings (which I need to convert to PDF for usage with PDFLaTeX). More on that coming soon.
¹ For those who do not know it: KDiamond is a simple three-in-a-row game, Kolf is a minigolf game, Palapeli is a jigsaw puzzle game.