A list (and minimal introduction) of some of my favourite books on programming, sorted by programming language.
A (very) short paper on the multi-sided generalization of the C0 Coons patch. It draws on the same idea as the CR patch, but does not need normal information at the boundaries. A simple, lightweight patch when C0 continuity with adjacent patches is sufficient. See also my sample implementation.
A "dual" Catchup board printable on A4 paper (also in PDF). The size is just right to play with Go stones (triangle edges are 1" long), but you will need smaller markers for the scoring track. The game is played by two players with black and white Go stones. The rules are simple:
There are dice of various number of sides. But is there a 3-sided die? The answer is YES! My original idea was that it should have 3 faces, and should be symmetrical. The intersection of three spheres is like that. Place the center of the spheres on the vertices of an equilateral triangle, and make their radii somewhat larger than the side of the triangle (how much larger depends on how "fat" you want the die to be).
Then I found out that there are 3-sided dice in existence, but they have more than 2 faces: these can be constructed as the intersection of three planes (an extruded equilateral triangle) with a sphere.
Dara is a Nigerian board game similar to Nine Men's Morris (but much more complex). Variations of it are played throughout West Africa. I have summarized the rules, and created a simple A4 PostScript board (also in PDF). It is the perfect size to play with checkers pieces.
PostScript DVONN boards printable on A4 paper:
My transliteration system for Thai. It only uses normal ASCII letters, but gives back the exact sounds (including tones).
A simple regular octahedron foldable from half of any 1:sqrt(2) sized paper (e.g. A- and B-series).
All the letters of the Thai alphabet with different styles (fonts), and a useful two-page summary at the end (in Hungarian).
A simple EPS board for the Marrakech board game. Each square is about 2.5 cm wide, so the carpets should be 2.5cm x 5cm, you can make 18 of them from a standard 15cm square origami paper. Also, here are the rules summarized in Hungarian.
If you take 4 of the right angle tetrahedra, and one regular tetrahedron, you can also build a cube! The smaller sides of the papers should have a ratio of 1:sqrt(3), so if you fold the right angle tetrahedra from a paper of size (1,2), the regular tetrahedron should be folded from a paper of size (sqrt(3),sqrt(6)).
There is an alternative version of the right angle tetrahedron, foldable from a square paper. For the above construction to work, the smaller side of the regular tetrahedron should be 3-sqrt(3).
Two papers related to S-patches, both presented at local conferences: G1 hole filling with S-patches made easy (KÉPAF'19), which also has a nice poster (also in SVG), and On the CAD-compatible conversion of S-patches (WAIT'19), with slides.
The conventions of our SAYC-based bidding system (in Hungarian), converted from reStructured Text format, with internal links for easy browsing.
Get the latest source with Git:
A board for playing XiguaQi. This is a simple two-player game where players move their pieces along the lines to adjacent intersections. Initially the 6-6 pieces are on the lower (upper) half of the board, with the points of the central circle left empty. When a piece or a group of pieces has nowhere to go, it is removed from the board. The player who has less than 3 pieces loses.
A short memo comparing different bagh-chal rules, including: Fox & Geese, Asalto, Catch the Hare and a few others.
I tried to organize my thoughts on functional programming languages, and wrote a memo/tutorial (in Hungarian) on how to create a very basic language based on combinatory logic.
Random Arabic phrases wrapped into a geometric design of Kufic script. The PBM files are just bitmaps, the larger PNGs also show the same phrase unwrapped and in standard (Naskh) script.
|Time is Like a Sword||PBM||PNG|
|(my name)||PBM||PNG / Color PNG / Seal (password-protected)|
|(my wife's name)||SVG||PNG|
|Merry Christmas||PBM||PNG / Paper-cut|
|Indonesian Language||PBM / Dotless version||PNG|
A (very) short presentation on Moroccan mathematics (in Arabic). This was a task for completing the Advanced 1 MSA course in Qalam wa Lawh, Rabat.
A memo (in Hungarian) of the most important differences between the Moroccan dialect of Arabic and the "common denominator" spoken language (e.g. the one taught in Arabic Today).
My first (unit) origami design. There are many ways to make cubes without creases on the faces, there is e.g. John Montroll's from 1 square paper, or Miyuki Kawamura's from 6. This is one using 3 squares - it is so simple, that someone else must have done it before.
Another 2-unit cube is folded from half-squares. It is somewhat small (the edges are 1/6 of the square's), but its surface area is 1/6 of that of the total used paper, which is comparable to the other ones (3-unit: 2/9, 2-unit: 3/16).
Finally, I have found a box - an open cube - also so simple that it must be already known.
As an exercise, I've tried to write up a 30-page introduction to Persian grammar (in Hungarian), covering (almost) all the basic constructions, along with some worked out example texts. The goal was to create a document that can be read and understood with no previous knowledge of the language.
I have also presented the results at the GMP 2018 conference.
A memo on how I found out the continuous representation of a discrete curve I used to doodle when I was a kid (in Hungarian). [Note that, while similar, this is not an astroid: drawing an astroid requires the "falling" line segment to be of constant length.]
A two-page summary of the basics of Urdu poetry, concentrating on prosody and the ghazal form (in Hungarian).
I have recently bought the 2nd edition of "Arabic Today" (by John Mace), which is a unique Arabic textbook, as it first teaches the colloquial language, then moves on to the written language (normally it is the other way around). I have found this approach very nice, as the colloquial language does not impose such a burden on the learner, and the transition is also quite easy, using the short pronunciation as a base. The spoken language the book teaches is a kind of common educated language that is not specific to any one region, and can be used anywhere in the Arab world.
The book does have its faults - there are no translation exercises, and the audio is worthless (apart form the first three lessons, only some exercises have recordings). Also, it focuses on business/media vocabulary a bit too much for my taste. Still, it is the best textbook I know of.
A list of the metres of all poems in the book Faces of Love (a compilation of Persian poetry by three Shirazi poets, translated by Dick Davis). The metres are given also using Elwell-Sutton's numbering system.
A fusion of two earlier patches (MP and GC), the Midpoint Coons patch boasts computational efficiency and interior control. Read all about it in our paper for the WAIT'17 conference. Also there is a nice set of slides (with a Star Trek reference).
I have worked trough all exercises in the 4th edition of "An Introduction to Persian" (by W. M. Thackston), which was a very nice experience. You can find all the words in the vocabulary lists (with Hungarian translations). I have bought the key for this textbook, but found that it had quite a lot of misprints and a few omissions, so I wrote up an errata containing all errors and typos I have found.
At the end of my 1-year stay in Hamamatsu, the Suzuki Foundation made a short interview with me about my research, life in Japan etc. (in Japanese).
A short review presentation on aesthetic curve representations, focusing on log-aesthetic curves.
My first rejected paper! It was a short submission to the Pacific Graphics 2016 conference. While it does not have much theoretical contribution, I think it still does a good job as a technical report, so it deserves its place here.
The paper was polished a bit and re-submitted to a small local conference at our university (WAIT 2018). Thus the original version is removed.
Another new paper, this time for the bi-annual Hungarian conference, contrasting multi-sided representations with fullness control, and also introducing a very nice transfinite formulation, which we call the midpoint patch.
I have already created some slides for the presentation.
I have worked trough all exercises of "An Introduction to Koranic and Classical Arabic" (by W. M. Thackston), which was a very nice experience. These are all the words in the vocabulary lists (with Hungarian translations). I have bought the key for this textbook, but found that it had quite a lot of errors, even though most exercises used sentences or passages from the Koran or from hadith literature, so I wrote up an errata containing all errors and typos I have found.
A memo of the methods in the book "Introduction to Bayesian Statistics".
A short memo comparing different checkers rules: Russian checkers (shashki), English draughts, tournament (or pool) checkers and international checkers.
I'm a believer of Emacs, but every now and then I have to use the EviL editor. This is a brief guide on the essentials of movement and editing in vi/vim.
As an exercise, I've tried to write up a 20-page introduction to Indonesian grammar (in Hungarian), covering (almost) all the basic constructions, along with a worked out example text. The goal was to create a document that can be read and understood with no previous knowledge of the language.
A comparison between the generalized Coons patch and our version of the Gregory patch was presented at the 10th Conference of the Hungarian Association for Image Processing and Pattern Recognition. This paper was accepted as a poster (PDF, Scribus) displayed on a fullHD display.
All the words I have learned from "Teach Yourself Beginner's Hindi" (R. Snell), "Teach Yourself Hindi" (R. Snell), and "Living Language Hindi" (M. Bhat) - the latter lists containing only the words not appearing in the previous ones. There are also some grammar notes. About using the dictionary file, see the snippet page.
A new paper on creating G2 Gregory patches over a curve network. It was presented at the Pacific Graphic 2014 Conference in Seoul, and it is published in the Computer Graphics Forum journal. A (less polished) previous version was presented at the Seventh Hungarian Conference on Computer Graphics and Geometry, 2014.
A list of my favourite knots, mostly found in Geoffrey Budworth's wonderful "The Knot Book" (and of course in the Ashley Book of Knots).
Note: I have also presented this work at the GMP'15 conference in Lugano.
A summary of some advanced Contract Bridge techniques (elimination, throw-in, squeeze, trump/grand coup, Bath coup, Deschapelles coup) illustrated with examples (in Hungarian).
All the words I have learned from "Teach Yourself Modern Persian" - both the wonderful 1971 version by John Mace, and the awful 2004 version by N. Farzad, the latter list containing only the words not appearing in the first. There are also some grammar notes. About using the dictionary file, see the snippet page.
Added the words from "An Introduction to Persian" by W. M. Thackston.
I've done an origami workshop at an Asia-related event, and also created some slides to introduce the main concepts (in Hungarian).
These are my Korean wordlists. I have tried to learn Korean from quite a few books. The first was Teach Yourself Korean (M. Vincent & J. Yeon), then came the Elementary & Continuing Korean (R. King & J. Yeon), then I found the nice website of Sogang University, which included a few courses. I've also taken some grammar notes.
It was only much later when I realized that Korean is very easy to learn through Japanese. So I bought 文法をしっかり学ぶ韓国語 and 前田式韓国語中級文法トレーニング, and started it all over again (wordlist, grammar notes). About using the dictionary file, see the snippet page.
Our paper "Transfinite surface interpolation over specific curvenet configurations" at the 14th IMA Conference on Mathematics of Surfaces.
A Greek (which is a port of the modified Emacs greek-babel input method), a Latin (that contains diacritical marks), a Russian (which is a port of the Emacs transliterated cyrillic input method), a Turkish (which is a prefix translation of the Emacs turkish-postfix input method - another Emacs input method mimics the (non-modified) characters of the Turkish Q layout), a Persian (which is a translation of the Emacs farsi-isiri-9147 input method), an Arabic, implementing the standard layout (image from Wikipaedia), and two Hungarian tables for the Smart Common Input Method (SCIM). Place these files in ~/.scim/user-tables, and don't forget to edit the icon path in the txt files. There is also an Emacs port of the SCIM JyutPing (Cantonese Big5) input method, and a postfix Yoruba input method for Emacs (not yet translated to SCIM).
My lecture on the game of go and the Japanese language, presented at the Japan Foundation office in Budapest. I have also created a 9x9 PostScript board for the students (also in PDF and with wood background), and one twice as large for the whiteboard using 40mm magnets (also in PDF).
Added: a template for recording go games (碁罫紙) (19x19, A4 size).
My PhD dissertation on "Fair Curves and Surfaces", along with its synopsis (in English and in Hungarian), and the theses booklet (in English and in Hungarian). The main results are also illustrated in the (Hungarian) slides that I presented at the defense of my dissertation.
Two papers we've written for the Sixth Hungarian Conference on Computer Graphics and Geometry, 2012: 3D Shape Design Using Curve Networks with Ribbons, and New Schemes for Multi-sided Transfinite Surface Interpolation.
I have also given a talk on the latter topic at the International Workshop on New Trends in Applied Geometry held in Gazzada, Italy.
This is my public key for anyone who wants to send me secure data. You can import it to your keyring using GnuPG with gpg --import peter-salvi.pgp.
PGP Fingerprint: F069 3534 5174 7418 F532 5FD2 CF7A 4AA7 B89A BC28
GTalk/OTR Fingerprint: 01904A6A 78CB8BCB DDBEA30B E0274B8F FBBA3D95
ICQ/OTR Fingerprint: 4502CD10 404F82BC 89E4E9F3 10BDDB91 5B3B4264
MSN/OTR Fingerprint: EC68BEF1 DDB9319E B87D0B35 DF17EEA2 200DA5FE
As an exercise, I've tried to write up a 20-page introduction to Swahili grammar (in Hungarian), covering (almost) all the basic constructions, along with a worked out example text. The goal was to create a document that can be read and understood with no previous knowledge of the language.
A description on configuring my cheap Kraun gamepad to work under Linux. It involves downloading various tools, hacking a kernel module and patching the SDL library - all in a day's work for a programmer!
All the words I have learned from "Colloquial Swahili" (D. McGrath & L. Marten) and those I have learned from "Teach Yourself Swahili" (J. Russell) and those from "Living Language Swahili" (Kh. Mohamed & A. Mazrui), containing only the words not appearing in the previous lists. There are also some grammar notes. About using the dictionary file, see the snippet page.
2010.02.24.: The word list of "Colloquial Swahili" is complete.
2010.04.24.: The word list of "Teach Yourself Swahili" is complete.
2011.05.05.: The word list of "Living Language Swahili" is complete.
All the words I have learned from "Colloquial Cantonese" (Keith S.T. Tong & Gregory James), along with Hungarian meanings and chinese characters (also in HTML version). There is another list in text or in HTML for "Teach Yourself Cantonese" (H. Baker & P. Ho), containing only the words not appearing in the first list. About using the dictionary files, see the snippet page.
2009.11.22.: The word list of "Colloquial Cantonese" is complete.
2011.03.24.: The word list of "Teach Yourself Cantonese" is complete.
2011.02.07.: The word list of "Teach Yourself Indonesian" is complete.
All the words I have learned and some grammar notes (HTML) I took (in Hungarian) while learning from "Teach Yourself Arabic" (J. R. Smart) and other sources, such as "Arabic - An Essential Grammar" (Faruk Abu-Chacra) and "A New Arabic Grammar of the Written Language" (J. A. Haywood & H. M. Nahmad). The words file also has a pattern search feature (written in Emacs Lisp).
Another ASCII-based dictionary contains all the words from the book "Teach Yourself Gulf Arabic" (J. Smart & F. Altorfer).
A few thoughts on what are the prerequisites for a comfortable programming language. Of course all of this is very subjective.
A paper I've written for the Fifth Hungarian Conference on Computer Graphics and Geometry, 2010 and the slides I've presented. It was also rewritten as a short paper for the SPM2010 conference (there is also a longer version).
A memo on how to setup CLISP for writing scripts, along with a short example.
A list that contains every (1-character) wubi code and maps them to their corresponding chinese character and pronounciation (in pinyin). There is a version with Unicode accents, and a two-column PDF.
This dictionary is automatically generated from the data files of my Wubi Practice program and the tonepy input method in Emacs.
A memo on how to compile Clojure programs into JAR files.
All the words I have learned and some grammar notes (HTML) I took (in Hungarian) while learning from "Introduction to Attic Greek" (D. J. Mastronarde). This table contains sample words for practicing every declension and conjugation I (should) know (there is a filled version here, and also in PDF format). There is also a list of my solutions to the exercises of the book "Homeric Greek - A Book for Beginners" (C. Pharr). About using the dictionary file, see the snippet page.
Note: The Homeric Greek exercises are temporarily suspended.
A short memo (in Hungarian) on the rules of Chinese and Japanese mahjong, containing the most important words in both languages (also with romaji for Japanese).
The slides of the presentation I've given on the ICFP'08 programming contest with my friend 黄涧石 at a Lisp seminar in Tokyo.
A more-or-less complete list of anime titles I've seen, with a four-scale (very subjective) rating system.
Well, it's SVG, which is a markup language, so it's text in a way :). There is an Emacs logo (100dpi PNG), the famous FailWhale (100dpi PNG) and a character from the anime series Honey and Clover called Yamada (100dpi PNG).
All the words (html) I have learned and some grammar notes (html) (in Hungarian). There is also a list of my solutions (html) to the exercises of the book "Latin for Beginners" (B. L. D'Ooge). About using the dictionary file, see the snippet page.
2008.07.04.: The answer list is now complete.
There is also a utility to generate isophote textures.
List of the (mostly open-source) programs I frequently use.
An attempt to create an enjoyable `test yourself' quiz for Emacs users. There are only a few (basic) tasks for the moment.
There is also an answer list for my personal use.
A short note to remind myself when to use which programming language / library.
I sometimes jot down the melodies in my head - movie themes and songs, mainly. These scores were created with Lilypond; I've uploaded the source files I still have, too.
|Liu Song-bai||Chun Xiao||png||ly|
|Naozumi Yamamoto||Fighting Elegy Theme||png||ly||midi|
|John Williams||Harry Potter Theme||png||ly|
|?||JR Signal at Takada no Baba||png||ly|
|Loituma||The famous Leekspin Song||png||ly||midi|
|Li Chun-bo||Loulan Xinniang||png||ly|
|?||Misaki no toudai||png||ly||midi|
|?||Fragment of a repeating Naruto theme||png||ly||midi|
|Tchaikovsky||A few measures from (maybe) the
overture of Romeo and Juliet
|?||Rudolph the Red-Nosed Reindeer||png||ly|
|Li Chun-bo||Xiao Fang||png||ly|
|Li Chun-bo||Yi feng jiashu||png||ly|
|Deng Li-jun||Yueliang daibiao wo de xin||png||ly|
Some slides (in Hungarian) about CLOS and the conditions system in Common Lisp, written for a class at university. Largely based on Peter Seibel's talk at Google TechTalks, also his wonderful book "Practical Common Lisp" and some other sources.
A paper I've written for the Third Hungarian Conference on Computer Graphics and Geometry, 2005.
Timed Hungarian translation of the Rurouni Kenshin OVA in SubStation Alpha format.
Classical Japanese conjugation tables in Hungarian.
See more information at Baf's Guide.