GNU Hackers' Meeting 2022 — İzmir, Turkey
The GNU Hackers' Meetings or “GHMs” are a venue to
discuss technical topics related to GNU and
free software.
The event atmosphere is friendly and informal. Anybody is welcome to
register and attend, including newcomers.
GNU Hackers' Meetings have been taking place since 2007: you may want to
look at the other pages documenting most
past editions,
which in many cases include video recordings.
The GNU Hackers' Meeting 2022 took place place in the beautiful İzmir, Turkey, on Saturday 1st October and Sunday 2nd October 2022.
The 2022 event is now over
We wish to thank the attendees for making the event lively and pleasant; we hope that the new friends we met will keep in touch with us, and possibly become involved in GNU. We trust that the attendees will forgive us for the occasional technical glitch. Even if not everything went as smoothly as it could have we made a serious attempt of making the event interesting, and very wide in its scope; to the degree that can be expected from non-professional event organisers we believe that at least in part we succeeded.
After experiencing the staff's helpfulness and professionalism we feel very confident recommending the Park Inn by Radisson hotel in İzmir to other people wishing to organise events in the region.
Now that the event is over some of the practical informations below will become irrelevant, and will be kept for historical reference.
Remote streaming
We have streamed most of the event live to the general public over BigBlueButton and Jitsi, for those who could reach us in İzmir. Some participants who could not attend in person also gave their presentation over BigBlueButton or Jitsi.
We wish to thank Linux Weekly News for gratiously providing the BBB instance.
Notice that all the time indication in the schedule below are in the local Turkish time zone, which is UTC+3.
Workshop
GNU Jitter workshop
Luca Saiu (GNU Jitter, GNU epsilon).
Starting from a parser provided by me I will help the audience write a complete JIT for a simple programming language, using Jitter; I will implement a solution live, giving time for the audience to work on their laptops.
The workshop will follow the general ideas from Mohammad's talk about Jitter, but with many details greatly simplified as appropriate for a hackers' meeting.
I mean to keep the workshop accessible to any good programmer even not from the programming language field: because of this no particular experience on compilers will be required: knowledge of C is the only prerequisite.
The audience is invited to bring laptops with a GNU/Linux system installed or at least an SSH client.
Duration: as long as the audience is interested.
The files needed for the workshop, currently hosted on Luca Saiu's
ageinghacker.net
server:
- the problem specification handout (PDF, public domain) explaining the İzmir language's syntax and compilation rules;
-
the source tarball
izmir-1.0.tar.gz
containing the source code to complete — the build system does not require changes to work on the workshop problem, and a copy of GNU Jitter is already included as a sub-package; -
the
workshop/
directory may be of interest to those who have followed the event and wish to continue from version 1.1; - a video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0) of the live workshop.
Presentations
Digital Anarchism: Current status of decentralized and federated protocols
Onur Akdeniz
- Talk about authoritarianity on the free or non-free web services;
- A short introduction about currently status and benefits of federated protocols in instant messaging, social media, video broadcasting, etc.;
- The difference between “decentralized” and “federated”;
- and if my muses bring other good things, they are.
Duration: 40 minutes.
Resources:
- slides (LibreOffice, GFDL 1.3+);
- video recording (WebM: VP9/Opus 720p 15fps, GFDL 1.3+).
Emacs as a C/C++ development environment
Ali Chegini
Emacs is a powerful editor. Thanks to extensibility of Emacs, we can make it aware of C/C++ constructs by installing a few packages.
In this talk I will go through steps of extending vanilla Emacs to add features like auto-completion, real time error checking and making Emacs aware of whole project.
Duration: 10 minutes.
Resources:
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0).
The Gungadin Tools for Volcanologists and Explorationists
Christopher Dimech (GNU Behistun).
The Gungadin-Opcon Terminal Tools and the Gungadin-Typex Tools will be introduced. A long and impressive list of techniques will be discussed. Finally, there will be some action.
The Gungadin-Opcon Tools provide a unique gratifying experience, making things happen right within the terminal with command line tools made with a unique purpose of cutting down on the time and hassle in using the Gnu Core Utilities for Unix-Like environments.
The Gungadin-Typex Tools provide a sturdy configuration for Emacs, that includes a noteworthy collection of commands. These include: an accessible color and contrast environment that complies with international readability metrics; an environment for attaining the highest level of work intensity and involvement; and an abbreviated symbolic writing method for brevity and speed using a keyboard;
The typical approach by scholastic and computing pinheads is to spend time tinkering with the various commands; which although powerful, are not quick to grasp. This is at odds with volcanologists and explorationists who need to spend their time working on what is needed, and do it quick. If you desire the latter, this seance is for you.
Duration: 1 hour.
Resources:
- (slides to come);
- (video recording to come).
Realisations of Cosmic Complexities
Christopher Dimech (GNU Behistun).
A form of reasoning common in the seventeenth century was the Law of Economy. A primary figure in establishing simplification was the fourteenth century medieval English Theologian William of Ockham. The approach - known today as Ockham's Razor - summarises the shaving off of sophisticated machinery. Newton's Laws of Gravitation and the Copernican System of Planetary Orbits are examples of broadly applicable physical principles epitomising simplicity in classical physics. Simplicity is a very old school of thought, and has been going on long before William of Ockham. Egyptian Astronomer Claudius Ptolemy (Latin: Claudius Ptolemaeus) (100AD-170AD), for instance, wrote about it 1,200 years before William of Ockham came.
In actuality, however, physical phenomena are significantly more complicated when introspected in detail. The 2019 Global Coronavirus Pandemic culminated the next major scientific leap - the introspection of Networked Dynamical Systems characterised by interconnectivity, uncontrolability, and unpredictability. The realisation of the complexity of the cosmos inevitably cracks the Reductionist Paradigm. A similar refutation of reductionism was provided for mathematics by the Incompleteness Theorems of Austrian Logician Kurt Gödel. Geophysics presents us with an impressive number of natural complications. The most interesting component is how systems are characterised by their interacting structures, driven by organizing principles that function at different scales. These intricacies will be discussed.
Things will get more specific, by considering the exotic capability of recontructing vibrational patterns from continuous measurements of stellar and planetary microseismic wavefields in specific low-frequency spectral bands. An effective computational scheme for generating hypersensed coherance functions is presented, Rather than continuing with the compulsive emotional patters many are accustomed to, this session demonstates how mathematical complications are capable of producing wonderful transformations of science and beyond.
Duration: 1 hour.
Resources:
- (slides to come);
- (video recording to come).
GNU poke: the extensible editor for structured binary data
José E. Marchesi (GNU poke, GNU recutils, GNU ferret).
GNU poke is an interactive, extensible editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them.
In this talk I will be introducing the tool, its fundamentals, explain how it works, show some implementation details, and highlight what is new in recently released versions.
Duration: 1 hour and 30 minutes.
How GNU programs are developed: a practical guide
José E. Marchesi (GNU poke, GNU recutils, GNU ferret).
Behind GNU programs lies a complex infrastructure of software, standards, communication tools, to make the maintainer life's easier.
Even non-GNU programs might want to take inspiration. Or would you like to become the new author or maintainer of some GNU software yourself?
Duration: 1 hour.
poked: GNU poke beyond CLI
Mohammad-Reza Nabipoor (GNU poke).
GNU poke is about manipulating structured binary data. For a long time, the only available user interface (UI) for poke was the CLI interface. But that's not the case anymore! Now we have ‘poked’ and a lot of pokelets. ‘poked’ is the daemon responsible for enabling pokelets provide their UIs. The most mature pokelet is poke-el (an Emacs interface). This talk explains why this approach is a good and powerful idea. And how it enables users to make their own task-specific UIs very fast, or extend GNU poke with more capabilities (like making GNU poke a more powerful Wireshark-like tool, or adding disassembly capabilities).
Duration: 1 hour.
Resources:
- (slides to come);
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0).
So you need a virtual machine? Use GNU Jitter
Mohammad-Reza Nabipoor (GNU poke).
So you have a great idea regarding a new awesome programming language, you already have a parser for your language, and you need to run your code? It's your lucky day! In this code-oriented tutorial I'll go through all steps from an Abstract Syntax Tree (AST) to actually executing the code of a simple programming language.
The purpose is to show you how easy it is to get a fast virtual machine,
without spending too much time on non-fun stuff.
Now you can spend most of your time designing your awesome new language and
not waste your time trying to get your code run faster on different
platforms! Now it's Jitter's responsibility!
GNU Jitter supports every platform that has a standard C compiler. If your platform supports advanced compilers like ‘gcc’, it even can generate much faster code for you, automagically! All behind the scenes!
Duration: 1 hours and 30 mintes.
Resources:
- (slides to come);
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0).
Using GNU Lilypond to control software instruments
Tobias Platen (GNU Lilypond).
Lilypond can be extended using Guile, the GNU's scripting language. One example of the use of Guile is the Singing Computer project which uses an extension to Lilypond to control the Festival Speech Synthesis System. In this talk I will propose ways how to control software music instruments, including singing voice synthesizers, drum computers and karplus strong guitar player bots using Lilypond and Guile. An exporter for MusicXML could be made using the same interface, that the Singing Computer project uses.
Duration: 1 hour.
Resources:
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0);
hana.ogg
(Ogg/Vorbis, CC BY-SA 4.0);suchdolsky-rybnik-mixdown.ogg
(Ogg/Vorbis, CC BY-SA 4.0);kasane-teto-vosamp--sakura-no-ame.ogg
(Ogg/Vorbis, CC BY-NC 4.0).
Novelties in Rust for C and C++ developers
Egeyar Saiu.
An introduction to Rust and its features, intended for people who know C or C++ and are considering a safer alternative.
Duration: 1 hour.
Resources:
- (slides to come);
- (video recording to come).
Free software, the GNU Project and the GNU Hackers' Meetings
Luca Saiu (GNU Jitter, GNU epsilon).
A quick welcome followed by an introduction to free software, GNU and the GNU Hackers' Meetings.
This brief presentation opens the event.
Duration: 15 minutes.
Resources:
- presentation slides (PDF, CC BY-SA 4.0);
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0).
The joy of being precise: exact garbage collection from C and a language VM
Luca Saiu (GNU Jitter, GNU epsilon).
The Boehm-Demers-Weiser garbage collector is a successful piece of software, very widely used but not loved. In this talk I will start with an apology of Boehm's remarkable and underappreciated system and then present my completely different alternative garbage collector, to be included in Jitter.
The new Jitter garbage collector features precise rather than conservative pointer finding: its higher performance comes at the cost of a much more complex and error-prone C API.
I will show how to write a C system interfacing with Jitter's garbage
collector, and how to use the collector from language VM code.
Studying garbage collection and language VMs reminds us of a very obvious
design principle for performance-oriented software: optimising for the
common case.
How can we generalise this design from a sequential to a parallel system? Is this generalisation even worth the trouble?
(Canceled)
Free software on cell phones: my experience with Replicant
Luca Saiu (GNU Jitter, GNU epsilon).
Replicant is a free-software variant of Android, and is the only system I use on my only cell phone. Replicant is a compromise giving control to the user on top of a hostile hardware platform.
I will speak about the project and relate my experience, mostly positive. Replicant is not difficult to install on supported hardware and can be used right now in production even if performance and reliability are not perfect.
I will show you the utilities I use to handle my Replicant phone from GNU/Linux computer: mounting the phone file system over USB, transferring files, backing up, installing free software apps, accessing the logs — plus something more fun, such as running an application using GNU Jitter on the phone.
In case you want to contribute I can direct to people who can use your help; the project does need help from competent programmers.
I am a somewhat advanced user of Replicant but I do not participate in its development; this talk will probably be the least technical of the entire meeting.
Duration: 45 minutes.
Resources:
- presentation slides (PDF, CC BY-SA 4.0);
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0).
In defence of language as an interface — a statement of the obvious
Luca Saiu (GNU Jitter, GNU epsilon).
While preparing the presentation about Replicant I started with a premise about my personal dislike for some kinds of user interfaces. As my rant grew and grew, rather than cutting it as off-topic, I decided to split it off into a separate talk. I believe that this premise turned out to be more interesting than the main talk.
My claim is that the best way of harnessing the power of computers is trough a linguistic interface of some kind, independently from the specific encoding of language terms. I propose to generalise Abelson and Sussman's three elements of programming to human-computer interface.
Duration: 45 minutes.
Resources:
- presentation slides (PDF, CC BY-SA 4.0);
- video recording (WebM: VP9/Opus 720p 15fps, CC BY-SA 4.0).
Event schedule
All the times as given in TRT UTC+3.
Friday 30th September
Pre-event dinner at BigChefs Alsancak.
Address: Kültür, Atatürk Cd. No:172, 35220 Konak/İzmir, Turkey
Date and time: Friday 2022-09-30, 19:30 TRT (UTC+3)
Saturday 1st October
Time | Speaker | Title |
---|---|---|
09:00 - 09:15 | Welcome | |
09:15 - 09:30 | Luca Saiu | Free software, the GNU Project and the GNU Hackers' Meetings |
09:30 - 09:40 | A round of introductions | |
09:45 - 10:45 | Christopher Dimech | The Gungadin Tools for Volcanologists and Explorationists (remote talk, live from the Kamchatka peninsula) |
10:45 - 11:00 | coffee break | |
11:00 - 12:30 | Mohammad-Reza Nabipoor | So you need a virtual machine? Use GNU Jitter (remote talk, live from Iran) |
12:30 - 13:30 | lunch break | |
13:30 - 15:00 | José E. Marchesi | GNU poke: the extensible editor for structured binary data |
15:00 - 15:15 | coffee break | |
15:15 - 16:15 | Tobias Platen | Using GNU Lilypond to control software instruments (remote talk, live from Germany) |
16:20 - 16:30 | Ali Chegini | Lightning talk: Emacs as a C/C++ development environment (pre-recorded video, after network problems connecting live from Iran) |
16:35 - 18:00 | Luca Saiu | In defence of language as an interface — a statement of the obvious immediately followed by Free software on cell phones: my experience with Replicant |
starting from 18:00 | dinner |
Sunday 2nd October
Sunday's morning schedule was disrupted by a technical problem that prevented us from using BBB for remote talks, and for recording. We improvised alternative solutions and had to change the presentation order.
Time | Speaker | Title |
---|---|---|
09:00 - 09:15 | Welcome | |
09:20 - 10:20 | Christopher Dimech | Realisations of Cosmic Complexities (remote talk, live from the Kamchatka peninsula) |
10:20 - 10:35 | coffee break | |
up to 11:35 | Egeyar Saiu | Novelties in Rust for C and C++ developers |
11:35 - 13:35 | lunch break | |
starting from 13:35 | Mohammad-Reza Nabipoor | poked: GNU poke beyond CLI (quickly switching from pre-recorded back to live from Iran) |
14:00 - 14:15 | Coffee and snacks will be available, in parallel with the presentations | |
up to 16:10 | Luca Saiu | GNU Jitter workshop |
16:10 - 17:00 | Onur Akdeniz | Digital Anarchism: Current status of decentralized and federated protocols |
17:00 - 18:00 | José E. Marchesi | How GNU programs are developed: a practical guide |
18:00 | Closing |
Practical information
Venue
Hotel Park Inn by Radisson
Cumhuriyet Bulvari 124, 35210 İzmir, Turkey
info.izmir@parkinn.com
+90 232 4044242
Latitude 38.42721, Longitude 27.13326.
See
a map of the area around the hotel on OpenStreetMap.
GHM 2022 will take place at Park Inn by Radison, İzmir; which is one block away from well-known Cumhuriyet Meydanı (Rebublic Square) in the district of Konak. We agreed to an attendance fee of 60€ per person, which includes two coffee breaks and snacks: one break in the morning, one in the afternoon.
We decided to help students who wish to attend by contributing 50€ out of their 60€ attendance fee; they will need to only pay 10€, upon presenting proof of enrolment to us.
Accommodation
Our venue provider Park Inn by Radison offered us a slight
discount as well: A standard room is 80€ for one person
or 100€ for two people, per night.
Otherwise, many other hotels surround Cumhuriyet Square. Within 10 minutes of
walking distance from the venue, the prices of standard hotel rooms vary
between 25€ and 135€ per night.
Almost all hotels include breakfast, which is the most important meal of the day in Turkey. We humbly suggest you not to skip that.
Transportation
The closest airport is Adnan Menderes Airport (ADB) which is connected to many main European airports by direct flights. We regret to suggest avoiding Corendon Airlines, known for often cancelling flights.
One can of course take a cab from the airport to the hotel. Alternatively, Egeyar suggests taking the IZBAN train from the airport to Alsancak train station, walking towards the Alsancak port (10 min), and then walking along the coast for 15 minutes to reach Cumhuriyet Meydanı.
Athens and İzmir are connected by the two ferry lines Pireas-Chios-Cesme and Pireas-Kusadası. Keep in mind that you'd need to drive over an hour after landing to reach the İzmir city centre.
Unfortunately there is only a single train connection between Turkey and Europe, between Sophia and Istanbul where one can then hop on a train to İzmir. Both main train stations of İzmir, namely Basmane Garı and Alsancak Garı, are at a walking distance from the Cumhuriyet square.
Meals
The GHM registration fee includes coffee breaks with snacks, but meals are not included.
Tips for İzmir
The attendee Burak Sulak has published some tips for people
visiting İzmir on his web site
carrot.monster
.
How to contact us
The event was organised by Egeyar Saiu who took care of logistics and by Luca Saiu who dealt with the event schedule.
You may:
-
[contact us in private using the
ghm2022
mail alias: removed after the end of the event] - write to the public mailing list ghm-discuss in case you want your message to be public.
Of course everybody is welcome to subscribe to ghm-discuss.
Registration
[Registration information has been removed from this page now that the event has taken place.]
Submitting a talk proposal
We welcome talk proposals or proposals of technical demos / workshops. Any technical talk related to GNU and free software is considered on-topic.
[Talk submission information has been removed from this page now that the event has taken place; however if you want to discuss talk proposals for the next edition in public you can write to the ghm-discuss mailing list.]
GHM 2022 banner
If you want to promote the event on your website you may use this banner, reminiscent of the one prepared with Sylvain for the 2013 edition, to link to this page:
You might write, for example,
<span style="max-width: 90%; max-height: 5em;"> <a href="https://www.gnu.org/ghm/2022"> <img style="display:block; margin-left: auto; margin-right: auto; border-style: none;" src="ghm-2022-banner-small.jpg" alt="GNU Hackers Meeting 2022 banner"/> </a> <p style="font-size: 80%; text-align: center"> Banner released under <a href="http://artlibre.org/licence/lal/en">FAL</a>, <a href="https://www.gnu.org/copyleft/fdl.html">GFDL-1.3+</a>, or <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA 2.0</a>. Banner copyright © 2022 Luca Saiu, Egeyar Saiu. </p> </span>
The banner is available as:
-
ghm-2022-banner.xcf
in the XCF foramat supported by the GIMP (separate layers, 6539x1080, 6.6MiB); -
ghm-2022-banner.jpg
as a large JPEG image (6539x1080, 859KiB); -
ghm-2022-banner-small.jpg
as a smaller JPEG image (1000x165, 66KiB).
About the banner: Copyright © 2022 Luca Saiu, Egeyar Saiu. The banner is distributed under a choice of:
- the GNU Free Documentation License, version 1.3 or later;
- the Free Art License,
- Creative Commons Attribution-ShareAlike 2.0 (CC BY-SA 2.0).
The banner is based on:
-
The image at
https://pxhere.com/fr/photo/1372410
, CC0 Public Domain; - A Bold GNU Head originally by Etienne Suvasa as redrawn by Aurélio A. Heckert, published under a choice of GFDL v1.3+, Free Art license, Creative Commons Attribution-ShareAlike 2.0.