the GNU Hackers' Meeting 2022 banner

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.

group photo with (almost all of) the local attendees

Most of the local attendees in a final group photo.


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:


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:


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:


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:

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:

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:


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:

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:

a banner for linking to the GNU Hackers' Meeting 2022 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 &copy; 2022 Luca Saiu, Egeyar Saiu.
  </p>
</span>

The banner is available as:

About the banner: Copyright © 2022 Luca Saiu, Egeyar Saiu. The banner is distributed under a choice of:

The banner is based on: