Compare commits
No commits in common. "2950f064e6b34ac75351f238e9d5433759694292" and "229f99b3a55981e056a85c11baa23ea82c69c2c6" have entirely different histories.
2950f064e6
...
229f99b3a5
@ -1,288 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<html newsdate="2023-03-21">
|
|
||||||
<version>1</version>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Meet Andrei and David, two first edition YH4F participants</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1 id="interview-with-Andrei-and-David">Meet Andrei and David, two first edition YH4F participants</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The coding period of the Youth Hacking 4 Freedom hacking contest has
|
|
||||||
been running for almost three months now. The
|
|
||||||
competition continues to be a fun contest for young hackers to
|
|
||||||
test and develop their skills. The previous edition
|
|
||||||
ended with 35 great projects submitted with inspiring stories
|
|
||||||
behind them. Read about Andrei's and David's projects.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>The rules for the contest are simple: the projects must be Free Software. There are
|
|
||||||
no limits to the possibilities on the kinds of projects that can be
|
|
||||||
submitted. Any technical idea is welcome. This gives each
|
|
||||||
participant the chance to create a project according to their wishes,
|
|
||||||
skills, and interests. At the end of the first
|
|
||||||
edition of the <a href="/activities/yh4f/">Youth Hacking 4 Freedom</a>
|
|
||||||
competition, 35 amazing projects had been submitted. Each of these
|
|
||||||
projects has an inspiring story behind it. Let us introduce you to two of these amazing
|
|
||||||
projects.
|
|
||||||
Take a look at Andrei's handy tool for dmenu and David's <a
|
|
||||||
href="https://github.com/david-0609/OpenCV-Hand-Gesture-Control">"OpenCV
|
|
||||||
Hand Gesture Control"</a> project.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Before joining YH4F, Andrei was already involved in the Free Software world. He
|
|
||||||
has not only used various GNU/Linux distributions as his main operating
|
|
||||||
system, but also made sure it stays fun with games
|
|
||||||
available for everybody. He recently helped port <a
|
|
||||||
href="https://www.minetest.net/">Minetest (a Free Software game)</a> to
|
|
||||||
the cross-platform library <a href="https://www.libsdl.org/">"Simple
|
|
||||||
DirectMedia Layer" (SDL)</a>, which helps developers to make sure their
|
|
||||||
games are working on different types of operating systems. But instead of
|
|
||||||
sticking to only a technical world Andrei channels his artistic
|
|
||||||
energy into both shell and film scripts.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The mind behind "OpenCV Hand Gesture Control" is David. David has a
|
|
||||||
passion for Free Software and software development. He
|
|
||||||
learned the basics of Scratch programming in Grade 3. Since then he has
|
|
||||||
improved his skills and widened his knowledge of programming. David
|
|
||||||
started writing scripts in Python and Bash and has now moved on to
|
|
||||||
learning Rust. After the YH4F contest David has also continued to work on
|
|
||||||
projects such as the <a
|
|
||||||
href="https://gitlab.com/david-0609/matrix-modbot">Matrix-Modbot</a>,
|
|
||||||
which is a bot that automatically moderates Matrix rooms.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p><strong><span style="color:#3394ce"> FSFE</span></strong>: Hello
|
|
||||||
Andrei and David. Thank you for joining us.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: How did you
|
|
||||||
come into contact with programming and how did you learn to program?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: When I
|
|
||||||
was in China, in grade 3 I was introduced to Scratch programming and
|
|
||||||
immediately became fond of it. Then I learned through experimenting
|
|
||||||
with the program to create simple animations and games. When I got
|
|
||||||
my first computer, I started to learn Python from a video series for
|
|
||||||
beginners. After learning the basics, I began to write some small
|
|
||||||
scripts in Python and Bash for myself. And last year, I managed to
|
|
||||||
secure an internship position at a software company. There I learned
|
|
||||||
a lot and this experience also led me to learning about python OOP
|
|
||||||
design and software design in general. Now I am learning Rust and
|
|
||||||
working on a project called <a
|
|
||||||
href="https://gitlab.com/david-0609/matrix-modbot">Matrix-Modbot</a>,
|
|
||||||
which is an automated bot for Matrix.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#ce6d33">Andrei</span></strong>: I used
|
|
||||||
to go to a programming club a friend of mine invited me to. We were
|
|
||||||
writing C++ to solve some mathematical problems (things like
|
|
||||||
greatest common factor, factorial etc.) though we (unofficially)
|
|
||||||
spent too much time playing games there as well.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: Andrei, can
|
|
||||||
you tell us what was your first contact with Free Software?</p>
|
|
||||||
|
|
||||||
<p><strong><span style="color:#ce6d33">Andrei</span></strong>: When I was
|
|
||||||
going through The Odin Project they required at some point to install a
|
|
||||||
derivative of Ubuntu (they said nearly half of software engineers use
|
|
||||||
it and it’s easier to install software and so on). I was convinced my
|
|
||||||
computer would stop booting but went along with it. Xubuntu installed
|
|
||||||
fine! Later on I learned all about the parts of the free GNU/Linux
|
|
||||||
operating system and how they work together so now I have started
|
|
||||||
writing package files (PKGBUILDs) on Arch so that I may too try and
|
|
||||||
contribute to this freeing ecosystem.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p><strong><span style="color:#3394ce">FSFE</span></strong>: Andrei, you have already
|
|
||||||
coded before and used Free Software in your daily life. What motivated you
|
|
||||||
to participate in the YH4F contest?</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p><strong><span style="color:#ce6d33">Andrei</span></strong>: I did not
|
|
||||||
know the FSF had an European sister organisation before and I was really
|
|
||||||
happy to get involved! I really liked the way the contest gives an
|
|
||||||
opportunity to choose a concrete, practical task and go through with it.
|
|
||||||
(Too often I get stuck halfway on coding a cool thing, and that’s not great.)</p>
|
|
||||||
|
|
||||||
<p><strong><span style="color:#3394ce">FSFE</span></strong>: David, what motivated you
|
|
||||||
to join the YH4F contest?</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: I saw the
|
|
||||||
advertisement on Mastodon and became interested in the competition,
|
|
||||||
so I joined and used my free time to work on the project.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: David, how
|
|
||||||
did you come up with your project idea to use your hand motion for
|
|
||||||
executing commands?
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: It
|
|
||||||
actually started while I was trying to read novels or to watch movies
|
|
||||||
on my laptop. When I read, I am usually in a relaxed position and I
|
|
||||||
find it cumbersome to reach for the mouse or the keyboard to turn
|
|
||||||
pages, so I thought: What if I can turn pages or pause the video with
|
|
||||||
the wave of my hand? And that is how I got my idea for the project.<br/>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<figure>
|
|
||||||
<iframe title="Hand gesture detection" src="https://download.fsfe.org/videos/yh4f/Hand-Gesture-Detection-Demo.webm" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="560" height="315" frameborder="0"></iframe>
|
|
||||||
<figcaption>
|
|
||||||
David demonstrating his "OpenCV Hand Gesture Control" project.
|
|
||||||
</figcaption>
|
|
||||||
</figure>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: Andrei, could
|
|
||||||
you also give us an overview of your project
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#ce6d33">Andrei</span></strong>: I added
|
|
||||||
clipboard functionality to a dynamic menu program called bemenu.
|
|
||||||
Pressing ctrl-Y inserts the system clipboard into the command's
|
|
||||||
command buffer now.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: What
|
|
||||||
motivated you to work on your project?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: It was
|
|
||||||
mainly to solve my own problem, and my program could also be used on
|
|
||||||
smart TVs or other devices with a camera to control the device
|
|
||||||
without using a keyboard or a controller.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#ce6d33">Andrei</span></strong>: The bemenu project
|
|
||||||
is written in C, and it sounded nice to maybe learn to do some advanced tasks in
|
|
||||||
C like programmatically copying and pasting. That it would solve a practical
|
|
||||||
problem for me was a nice bonus too.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: Andrei, could you
|
|
||||||
briefly explain what a dynamic menu like bemenu is?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p><strong><span style="color:#ce6d33">Andrei</span></strong>: A dynamic
|
|
||||||
menu takes in a list of things, for example some URLs, or some commands,
|
|
||||||
or usernames, and allows matching and selecting one of them. For example,
|
|
||||||
typing in fire or fox will match firefox but still allow selecting fire
|
|
||||||
or fox by itself. This means, for example, that finding and running a
|
|
||||||
command is made much easier. Think of it as a start menu, except one
|
|
||||||
that can be programmed to be taken into other programs, like for example
|
|
||||||
using it as a password prompt or a confirmation box. This works because
|
|
||||||
it always gives back the thing that was selected, and that can be used
|
|
||||||
by a different program.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p><strong><span style="color:#3394ce">FSFE</span></strong>: Did any of you encounter
|
|
||||||
any problems during the coding period or the building period?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: I did
|
|
||||||
encounter many issues, and they were mostly some design flaws that I did
|
|
||||||
not anticipate. At that time I had little knowledge about software
|
|
||||||
design and was struggling to make the code clean and cohesive.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#ce6d33">Andrei</span></strong>: It turns out
|
|
||||||
getting clipboard data is not the same everywhere! It is one thing on X11, and
|
|
||||||
a different thing on Wayland. At first, writing a clipboard manager myself
|
|
||||||
sounded fine (a likely story!), though eventually I decided on using
|
|
||||||
wl-clipboard and xclip. I am glad I learned to not be excessively afraid of
|
|
||||||
pulling in dependencies where it really solves a complex problem that writing
|
|
||||||
by hand would make little sense.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: David, can
|
|
||||||
every user define the shortcuts themself and do you have an example on
|
|
||||||
how your program works?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: Yes, and
|
|
||||||
there is an example config file in the git repo of the <a
|
|
||||||
href="https://edugit.org/david-0609/OpenCV-Hand-Gesture-Control">OpenCV-Hand-Gesutre-Control</a>.
|
|
||||||
For example three fingers to the right open a terminal window.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: How did you
|
|
||||||
train your tool to recognise your hand movements?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: The hand
|
|
||||||
movement recognition is based off OpenCV, however I used a 3rd party
|
|
||||||
library to provide a trained model as implementing the same model myself
|
|
||||||
would be “reinventing the wheel”, but this time the wheel would probably
|
|
||||||
not spin as well.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: Andrei and David do you think you will
|
|
||||||
continue working on your project and what would be some next steps you would
|
|
||||||
like to realize?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#ce6d33">Andrei</span></strong>: I think I am happy
|
|
||||||
with how the project is right now! They may say code never stops changing, but
|
|
||||||
when something is really finished that is great feeling. I’m sure I’ll be back
|
|
||||||
at it if something feels like it needs improvement though! My confidence is
|
|
||||||
certainly there now.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#d0f400">David</span></strong>: I think I
|
|
||||||
will work on the project in the future and re-factor the code as it is
|
|
||||||
currently quite messy and somewhat buggy. To make the detection more
|
|
||||||
accurate, I could use the power of python’s data science libraries to
|
|
||||||
make better sense of the input data.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<strong><span style="color:#3394ce">FSFE</span></strong>: Thank you for
|
|
||||||
your time and we wish you both good luck with your next steps.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The coding period for the second edition of YH4F is still ongoing.
|
|
||||||
For more information about the contest please visit <a
|
|
||||||
href="/activities/yh4f">yh4f.org</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
<tags>
|
|
||||||
<tag key="front-page"/>
|
|
||||||
<tag key="interview">Interview</tag>
|
|
||||||
<tag key="yh4f">Youth Hacking 4 Freedom</tag>
|
|
||||||
</tags>
|
|
||||||
|
|
||||||
|
|
||||||
<discussion href="https://community.fsfe.org/t/947"/>
|
|
||||||
<image url="https://pics.fsfe.org/uploads/medium/9594f30fb15a8edf5082d60baac594bd.png" alt="Three young hackers are tinkering on their laptops"/>
|
|
||||||
|
|
||||||
|
|
||||||
</html>
|
|
Loading…
x
Reference in New Issue
Block a user