<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>danigm.net - endless</title><link>https://danigm.net/</link><description></description><lastBuildDate>Sun, 18 Sep 2022 00:00:00 +0200</lastBuildDate><item><title>SUSE is my new distribution (new job)</title><link>https://danigm.net/suse.html</link><description>&lt;p class="img"&gt;
    &lt;a target="_blank" href="https://suse.com"&gt;
        &lt;img src="/pictures/Poster-Always-Changing.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This week I've started to work at &lt;a href="https://suse.com/"&gt;SUSE&lt;/a&gt;. I'll be working as Python
Specialist, in the packaging team, so I will go back to work on packaging and
distribution after more than ten years. My first job in 2008 was working on a
Ubuntu based local distribution, &lt;a href="https://en.wikipedia.org/wiki/Guadalinex"&gt;Guadalinex&lt;/a&gt;, so packaging and distribution
work is not something new for me.&lt;/p&gt;
&lt;h2&gt;Python&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt; was the first language that I fell in love. I learned to write code
with C and C++, but when I discovered Python, in 2006, I found a really nice
language to be able to create amazing things really fast and with a great
community behind.&lt;/p&gt;
&lt;p&gt;I'm very happy for this new opportunity to be able to collaborate to the Python
distribution in all the SUSE flavours, and also to be able to collaborate in
the creation of one of the most famous and used Linux distributions.&lt;/p&gt;
&lt;h2&gt;Tumbleweed&lt;/h2&gt;
&lt;p class="img"&gt;
    &lt;a target="_blank" href="https://www.opensuse.org/#Tumbleweed"&gt;
        &lt;img src="/pictures/tumbleweed.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;As part of this job change I've also installed &lt;a href="https://www.opensuse.org/#Tumbleweed"&gt;SUSE Tumbleweed&lt;/a&gt; for the
first time. Tumbleweed is a rolling release distribution with the latests
packages. In the past I was using other rolling releases distributions like
Arch, but this one looks more user friendly.&lt;/p&gt;
&lt;p&gt;I've not spent a lot of time here, but from the point of view of a GNOME
developer, I can say that it's a great distribution for development with
updated packages, and it looks "stable". You can choose the desktop to use on
installation and the GNOME desktop is there without any customization that I've
detected, so it looks like it's a good vanilla GNOME desktop distribution.&lt;/p&gt;
&lt;h2&gt;Endless, it's not the end&lt;/h2&gt;
&lt;p class="img"&gt;
    &lt;a target="_blank" href="https://endlessos.org"&gt;
        &lt;img src="/pictures/endless-farewell.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I'm not working for &lt;a href="https://endlessos.org"&gt;EndlessOS&lt;/a&gt; now, but it's not the end. I've been working
here for almost 4 years. At first I worked on the &lt;a href="https://hack-computer.com/"&gt;Hack Computer&lt;/a&gt; and after
that project didn't work, I was working on the &lt;a href="https://www.endlessos.org/key"&gt;Endless Key&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;During this time I've also collaborated a bit with the EndlessOS distribution,
and I can say that's a really nice distribution to use, the ostree usage for
the whole filesystem is a great idea, and the amount of content that comes with
the installation is really good.&lt;/p&gt;
&lt;p&gt;The EndlessOS Foundation Goal is to reduce the digital divide, providing
content and tools for offline people, centered on kids. This is a great mission
and in the future, if I find the opportunity to help my local community, I'll
try to use the EndlessOS tools and content to provide good learning content for
kids without online access.&lt;/p&gt;
&lt;p&gt;I was very happy these years at Endless, and I've learned a lot from different
great people. It's incredible the number of talented software engineers that
are related to Endless, and for me it was a real privilege to be able to share
this space and mission for a few years.&lt;/p&gt;
&lt;h2&gt;The future!&lt;/h2&gt;
&lt;p&gt;So there we go, I'm exited for this change, and also sad about leaving a great
project, but life is change and we should go ahead and think about the future!
And my future is green now.&lt;/p&gt;
&lt;p&gt;And if you don't know how to pronounce it, here you've a music video:&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/nLdexZlVkAY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Sun, 18 Sep 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:danigm.net,2022-09-18:/suse.html</guid><category>blog</category><category>gnome</category><category>work</category><category>endless</category><category>suse</category></item><item><title>Berlin Mini GUADEC 2022</title><link>https://danigm.net/berlin-mini-guadec.html</link><description>&lt;h2&gt;The GUADEC is back!&lt;/h2&gt;
&lt;p&gt;This year, the famous GNOME developers meeting event, the &lt;a href="https://events.gnome.org/event/77/"&gt;GUADEC&lt;/a&gt;, gets
back to "normal" after the last year global COVID-19 situation. And when I say
normal, I'm talking about people meeting in one place to share knowledge and to
build a great community around this great software project.&lt;/p&gt;
&lt;p&gt;This year the even was in Guadalajara, Mexico, and that's great, but a bit far
to go from Spain... But thankfully, some of GNOME folks who can't go to Mexico
organized a parallel event to attend remotely in Berlin, Europe, that's the
Berlin Mini GUADEC.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/berlin-mini-guadec/plane.jpg" /&gt;
&lt;/p&gt;

&lt;p&gt;I decided to join this people, because there's a direct flight from Málaga, so
it was not a very long travel for me. This was my first big trip after COVID, and
I was a bit afraid, but besides the heat wave, everything was great.&lt;/p&gt;
&lt;h2&gt;My talk&lt;/h2&gt;
&lt;p&gt;The GUADEC event allows a remote attendance and also remote participation, so I
proposed &lt;a href="https://events.gnome.org/event/77/contributions/351/"&gt;a talk&lt;/a&gt; that I finally did from Berlin thanks to the &lt;a href="https://www.c-base.org/"&gt;c-base&lt;/a&gt;
people that build a great setup to give the talk to the local people at the
same time that it was streamed to the main event in Mexico.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/berlin-mini-guadec/gnome-streamers-2022.jpg" /&gt;
&lt;/p&gt;

&lt;p&gt;As you may know, I started to do &lt;a href="https://danigm.net/twitch.html"&gt;live coding streaming&lt;/a&gt; this year, and
there are also other &lt;a href="https://wiki.gnome.org/Community/Streamers"&gt;GNOME Developers&lt;/a&gt; doing that, so I wanted to talk
about this new way of sharing and build community, and that was my talk about.&lt;/p&gt;
&lt;p&gt;You can watch my full talk in Youtube:&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/wuFTiAcdBXk?start=9346" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;

&lt;h2&gt;Endless&lt;/h2&gt;
&lt;p&gt;It's not all party and fun in this event, there's also time to work. We take
advantage of this event and some of the Endless people take the opportunity to
meet together.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/berlin-mini-guadec/endless-family-2.jpg" /&gt;
&lt;/p&gt;

&lt;p&gt;We're fully remote and I started to work at Endless in 2019. We had the
opportunity to meet one time in London, but after that, this is the second time
we had the opportunity to share some time together and it was great. Besides
the day to day work, that can be done in remote completely, it's always nice to
have the opportunity to share some time with coworkers to meet the real person.&lt;/p&gt;
&lt;h2&gt;Thanks&lt;/h2&gt;
&lt;p&gt;My travel was sponsored by the &lt;a href="https://www.gnome.org/foundation/"&gt;GNOME Foundation&lt;/a&gt;, and thanks to the
&lt;a href="https://www.endlessos.org/"&gt;EndlessOS Foundation&lt;/a&gt;, to give me the opportunity to be part of this great
community.&lt;/p&gt;
&lt;p style="text-align: center"&gt;
    &lt;a href="https://gnome.org"&gt;
        &lt;img src="/pictures/sponsored-by-foundation-round.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Fri, 22 Jul 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:danigm.net,2022-07-22:/berlin-mini-guadec.html</guid><category>blog</category><category>gnome</category><category>guadec</category><category>berlin</category><category>community</category><category>endless</category></item><item><title>Endless Orange Week: Hack content creators platform (2)</title><link>https://danigm.net/hack-content-creators-1.html</link><description>&lt;p&gt;The past Friday was the last day of the &lt;a href="http://danigm.net/hack-content-creators.html"&gt;Endless Orange Week&lt;/a&gt;. It was a nice
and fun experience, and even if I was not able to do as much as I wanted, we
were able to make something that "works" in the Hack project.&lt;/p&gt;
&lt;h2&gt;The Hack Quest editor&lt;/h2&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/clubhouse-custom-quests-1.png" /&gt;
&lt;/p&gt;

&lt;p&gt;The first step to have custom quests on the Hack app was to complete the
&lt;a href="https://www.inklestudios.com/ink/"&gt;Ink language&lt;/a&gt; support. We started to work on this some time ago, but never
completed the functionality.&lt;/p&gt;
&lt;p&gt;I worked on that the first three days, updating the ink library and building
the missing pieces to be able to load quests from random paths. I've
implemented that in a way that the Hack application is able to receive a path
to a &lt;code&gt;.ink&lt;/code&gt; file, and it's able to build and run the quets.&lt;/p&gt;
&lt;p&gt;The Quests are not just the script, but they have some metadata, like title,
subtitle, description, difficulty and the card image to show on the interface.
To solve that I defined a "custom quest bundle format", that's bassically a
folder with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;questId&lt;/li&gt;
&lt;li&gt;quest.jpg&lt;/li&gt;
&lt;li&gt;metadata.json&lt;/li&gt;
&lt;li&gt;quest.ink&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I also added the functionality to import a bundle zip file and export with
the quest information.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/clubhouse-custom-quests-2.png" /&gt;
&lt;/p&gt;

&lt;p&gt;I created some command line options to use this new functionality:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;play&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;ink&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;FULL_INK_FILE_PATH&lt;/span&gt;&lt;span class="w"&gt;                 &lt;/span&gt;&lt;span class="n"&gt;Start&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ink&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;quest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;import&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;quest&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PATH_TO_BUNDLE_OR_INK_FILE&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ink&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;quest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="k"&gt;export&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;quest&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CUSTOM_QUEST_ID&lt;/span&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;Export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;quest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bundle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Quest creation interface and the Inky Editor&lt;/h3&gt;
&lt;p&gt;The first idea was to try to provide a full quest creation experience in the
app, but that was too much, so we decided to simplify the way to create quests
and depend on the &lt;a href="https://flathub.org/apps/details/com.inklestudios.Inky"&gt;Inky editor&lt;/a&gt; external tool. Manuel Quiñones took some time
to update the flatpak application with the latests ink version, so we can use
to create custom quests.&lt;/p&gt;
&lt;p&gt;The Inky editor provides help about the language, syntax highlighting and a
simple way to test the script, so it's a nice tool. The main problem with this
tool is that it doesn't provide a way to launch it with a file path so it's
not possible to integrate with the Hack app.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/clubhouse-custom-quests-3.png" /&gt;
&lt;/p&gt;

&lt;p&gt;So at the end, the Quest creation dialog is just a way to define the metadata
and to select the Quest ink files from your filesystem. How the ink script is
created is a decision to make for the content creator.&lt;/p&gt;
&lt;h3&gt;The future&lt;/h3&gt;
&lt;p&gt;We've no time to complete all we wanted to do, and I didn't create a new
release, so this new functionality is still not there. But we'll try to do a
release soon.&lt;/p&gt;
&lt;p&gt;Simon is working on some interface improvements and also on a new tutorial
Quest, so we can introduce the Custom Quest creation tool in the same app.&lt;/p&gt;
&lt;h2&gt;The Character editor&lt;/h2&gt;
&lt;p&gt;The other part of this week planning was the character editor. Joana did a
really nice work designing the application, the initial assets and the user
experience, but I had not too much time to work on the implementation.  So I
spent just one day working on this.&lt;/p&gt;
&lt;p&gt;The main idea was to create a new independent app, and then provide a way to
integrate with the Hack application and the custom Quest creation dialog. And
it'll be a simple application so maybe it could be useful or interesting for
other people, it's a fun way to play around and create random faces.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/avatar-creator-1.png" /&gt;
&lt;/p&gt;

&lt;p&gt;We just created the application &lt;a href="https://github.com/endlessm/avatar-creator/"&gt;Avatar Creator&lt;/a&gt;. I created a simple python
Gtk4 application and worked a bit on the basic functionality. So right now it
loads a list of svg assets and provide the 3x3 grid. You can click on a grid
cell and then choose what basic image should go there.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;img src="/pictures/avatar-creator-2.png" /&gt;
&lt;/p&gt;

&lt;p&gt;I added the initial set of basic images, created by Joana, to create this funny
robot faces, but the format is simple enough to extend with different "avatar
libraries" in the future.&lt;/p&gt;
&lt;p&gt;Right now it's also possible to export to png, so the app is functional, but it
needs a bit more work.&lt;/p&gt;
&lt;p&gt;My idea is to work a bit more in the following weeks, when I have some time, on
weekends or holidays and at some point, publish it in flathub. And lets see if
there are more developers interested on this app so it can grow.&lt;/p&gt;
&lt;p&gt;The application is simple enough to be a good place for GNOME newcomers and it's
also a fun project to work on. A simple toy app to create faces that could
have some potential, some future ideas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;"Smart" random faces generator&lt;/li&gt;
&lt;li&gt;Configurable grid: Maybe is interesting to make it bigger or smaller to play
   around&lt;/li&gt;
&lt;li&gt;Programmed simple base image manipulations, like rotation, mirror, color&lt;/li&gt;
&lt;li&gt;Animation creation, maybe be able to export to gif&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Endless Orange Week experience&lt;/h2&gt;
&lt;p&gt;This week was a really nice experience, because we were working in a "personal"
chosen project, that we liked and without the day to day meetings, times
schedules and other related work stuff.&lt;/p&gt;
&lt;p&gt;But that was not all. In Endless we've different teams that work mostly
isolated, because we're working on different fields, we've some overlapping,
but we work day to day as small teams, and this week we were all using the same
slack channel to show our progress, and it was nice.&lt;/p&gt;
&lt;p&gt;Maybe now that we're not a big organization with a lot of workers, we can do
something like this more often, it's always good to know more about other
coworkers and to learn something that maybe it's not related with your main
project, but it could be interesting.&lt;/p&gt;
&lt;p&gt;I'm really happy that we did this Endless Orange Week, it's sad that it ended
too soon, I'm waiting to learn from my coworkers what amazing things they do
during this week and I'm looking forward the next year Orange Week!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Mon, 15 Nov 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:danigm.net,2021-11-15:/hack-content-creators-1.html</guid><category>blog</category><category>hack</category><category>endless</category><category>orangeweek</category><category>work</category><category>gnome</category><category>software</category></item><item><title>Endless Orange Week: Hack content creators platform</title><link>https://danigm.net/hack-content-creators.html</link><description>&lt;p&gt;This week (Nov 8 – 12) I am participating in Endless Orange Week, a program
where the entire &lt;a href="https://www.endlessos.org/"&gt;Endless&lt;/a&gt; team engages in projects designed to grow our
collective learning related to our skills, work and mission.&lt;/p&gt;
&lt;p&gt;We propose a project, that could be anything, and then work during the whole
week, without distraction. I've choosed to work on the &lt;a href="https://www.hack-computer.com/"&gt;Hack project&lt;/a&gt;, that's a
really nice project that needs some love, because since the past year, we have
&lt;a href="https://www.endlessos.org/key"&gt;other priorities&lt;/a&gt;, so there's no time to improve the Hack app.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/clubhouse.png"&gt;
        &lt;img src="/pictures/clubhouse.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;The project: Hack content creators platform&lt;/h2&gt;
&lt;p&gt;The Hack application is a "Quest" launcher, and each Quest is an interactive
learning experience, a guided introduction to some technology or topic.&lt;/p&gt;
&lt;p&gt;Quests are just python scripts, with a simple library to expose messages to the
user, ask questions, or wait for desktop events, like launch an application,
focus an application, etc. And all these Quests are inside the application, and
are created by the Hack team and released with a new Hack app flatpak.&lt;/p&gt;
&lt;p&gt;The main idea of the project is to provide a simple Quest editor to allow any
Hack user to create and share their our Quests.&lt;/p&gt;
&lt;p&gt;To have this Hack content creators platform we'll need:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;To simplify the way we create Quests, instead of a python script, we'll uses
   a Domain Specific Language, called &lt;a href="https://www.inklestudios.com/ink/"&gt;Ink&lt;/a&gt;. We started to work on this, but
   we never ended the support.&lt;/li&gt;
&lt;li&gt;To create the interface to be able to import and export custom Quests, that
   could be zip bundles, with the Ink script and some images.&lt;/li&gt;
&lt;li&gt;To create the interface to write the actual Quests and save or bundle.&lt;/li&gt;
&lt;li&gt;Create some introductory Quest to explain "how to create your own Quests!".&lt;/li&gt;
&lt;li&gt;Create an character editor, to be able to "design" new characters for Quests.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;The Quest editor&lt;/h3&gt;
&lt;p&gt;The Quests will be written using the Ink language, and there's &lt;a href="https://flathub.org/apps/details/com.inklestudios.Inky"&gt;something done before&lt;/a&gt;.
The first idea is to just provide a text editor and some helpful information
about the format, and maybe a button to validate. But if there's time we can
use something advanced or even integrate the &lt;a href="https://flathub.org/apps/details/com.inklestudios.Inky"&gt;Inky&lt;/a&gt; editor.&lt;/p&gt;
&lt;h3&gt;The Character editor&lt;/h3&gt;
&lt;p&gt;Each Quest has a main character, and we've five in the Hack app right now, but
it could be great to be able to define new ones for custom Quests. That's the
idea of this part of the project.&lt;/p&gt;
&lt;p&gt;The initial idea is to have a library of character parts to combine, and the
editor will allow the user to combine this parts and maybe change colors, to be
able to create unique characters for your Quests.&lt;/p&gt;
&lt;h3&gt;The Team&lt;/h3&gt;
&lt;p&gt;I'm not working alone in this "side" project during the Endless Orange Week,
Simon Schampijer and Joana Filizola will be working on this too, so this is a
big task but we've a great team. Let's see how far we are able to go during
just one week.&lt;/p&gt;
&lt;h3&gt;The impact&lt;/h3&gt;
&lt;p&gt;This is just a project to try to keep alive more time the Hack application,
without a lot of effort or a whole team behind it. We are not able to put more
content there periodically, so if there's a way to create new content easily
and (maybe in the future) a way to publish, it'll be possible to create a
community around the project.&lt;/p&gt;
&lt;p&gt;And we have also new possibilities, in the near future, we can add some Hack
content to the Endless Key, and using the Ink language, so this editor could
help to bring more content there easily.&lt;/p&gt;
&lt;p&gt;And the final piece, the Character editor, could be an independent application,
a nice simple application that could be used to create your character for your
profile photo, or to generate random character pics.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Mon, 08 Nov 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:danigm.net,2021-11-08:/hack-content-creators.html</guid><category>blog</category><category>hack</category><category>endless</category><category>orangeweek</category><category>work</category><category>gnome</category><category>software</category></item><item><title>LAS 2019, Barcelona</title><link>https://danigm.net/las-2019.html</link><description>&lt;h2&gt;The event&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://linuxappsummit.org/"&gt;The Linux App Summit&lt;/a&gt; (LAS) is a great event that bring together a lot of
linux application developers, from the bigger communities, it's organized by
GNOME and KDE in collaboration and it's a good place to talk about the Linux
desktop, application distribution and development.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/las-2019.jpg"&gt;
        &lt;img src="/pictures/las-2019.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This year the event was organized in Barcelona, this is not too far from my
home town, Málaga, so I want to be there.&lt;/p&gt;
&lt;p&gt;I sent a talk proposal and was accepted, so I was talking about distributing
services with flatpak and problems related to service deployment in a flatpaked
world.&lt;/p&gt;
&lt;p&gt;Clicking in this image you can find my talk in the event streaming. The sound
is not too good and my accent doesn't help, but there it is :D&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a target="_blank" href="https://youtu.be/4RE8gq0jLhA?t=4770"&gt;
        &lt;img src="/pictures/las-2019-talk.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;The event was a really great event, with really good talks, about different
topics, we've some technical talks, some talks about design, talks about
language, about distribution, about the market and economics, and at least two
about "removing" the system tray 😋&lt;/p&gt;
&lt;p&gt;It was really interesting the talk about the &lt;a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/59"&gt;"future" inclusion of payments&lt;/a&gt; in
flathub because I think that this will give a new incentive to people to write
and publish apps in flathub and could be a great step to get donations for
developers.&lt;/p&gt;
&lt;p&gt;Another talk that I liked was the one about the &lt;a href="https://conf.linuxappsummit.org/en/LAS2019/public/events/15"&gt;maintenance of flatpak repositories&lt;/a&gt;,
it's always interesting to know how the things works and this talk give an easy
introduction to ostree, flatpak, repositories and application distribution.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/las-2019-group.jpg"&gt;
        &lt;img src="/pictures/las-2019-group.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Besides the talks, this event is really interesting for the people that bring
together. I've been talking with a lot of people, not too much, because I'm a
shy person, but I've the opportunity to talk a bit with some Fractal
developers, and during a coffee talk with Jordan Petridis, we've time to share
some ideas about a cool new functionality that maybe we can implement in the
near future, thanks to the outreachy program and maybe some help from the
gstreamer people.&lt;/p&gt;
&lt;p&gt;I'm also very happy to be able to spend some time talking with Martín Abente,
about sugar labs, the hack computer and the different ways to teach kids with
free software. Martín is a really nice person and I liked a lot to meet him and
share some thoughts.&lt;/p&gt;
&lt;h2&gt;The city&lt;/h2&gt;
&lt;p&gt;This is not my first time in Barcelona, I was here at the beginning of this
year, but this is a great city and I've no time to visit all the places the
first time.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/las-2019-barcelona.jpg"&gt;
        &lt;img src="/pictures/las-2019-barcelona.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;So I've spent the Thursday afternoon doing some tourism, visiting the "Sagrada
Familia" and the "Montjuïc" fountain.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/las-2019-sagrada.jpg"&gt;
        &lt;img src="/pictures/las-2019-sagrada.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;If you have not been in Barcelona and you have the opportunity to come here,
don't hesitate, it's a really good city, with a great architecture to admire
and really nice culture and people, and here you can find good food to enjoy.&lt;/p&gt;
&lt;h2&gt;Thank you all&lt;/h2&gt;
&lt;p&gt;I was sponsored by the &lt;a href="https://www.gnome.org/foundation/"&gt;GNOME Foundation&lt;/a&gt;, I'm really thankful for this
opportunity, to come here, give a talk and share some time with great people
that makes the awesome Linux and open source community possible.&lt;/p&gt;
&lt;p style="text-align: center"&gt;
    &lt;a href="https://gnome.org"&gt;
        &lt;img src="/pictures/sponsored-by-foundation-round.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I want to thank to my employer &lt;a href="https://endlessos.com/es/"&gt;Endless&lt;/a&gt; because it's really a privilege to
have a job that allows this kind of interactions with the community, and my
team &lt;a href="https://hack-computer.com/"&gt;Hack&lt;/a&gt;, because they I've missed some meetings this week and I was not
very responsive during the week.&lt;/p&gt;
&lt;p&gt;And I want to thank to the LAS organization, because this was a really good
event, good job, you can be very proud.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Thu, 14 Nov 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:danigm.net,2019-11-14:/las-2019.html</guid><category>blog</category><category>gnome</category><category>LAS</category><category>endless</category></item><item><title>EndlessOS dual boot with Fedora</title><link>https://danigm.net/endlessos-dual-boot.html</link><description>&lt;p&gt;I've a &lt;em&gt;ThinkPad X1 Yoga&lt;/em&gt;, that's basically a &lt;em&gt;ThinkPad X1 Carbon 4th&lt;/em&gt; but
with a touch screen with a pencil that works like a wacom tablet.&lt;/p&gt;
&lt;p&gt;I've this laptop since 2016. The first thing that I did when I received it
was install a GNU/Linux operating system. I'm a GNU/Linux user since the
year 2000 going through a lot of distributions, Debian, Ubuntu, Archlinux, etc.&lt;/p&gt;
&lt;p&gt;When I received this computer I've a customized Archlinux there, and I wanted
to &lt;code&gt;dd&lt;/code&gt; my harddisk and boot, but I was unable to do that. I didn't know
nothing about UEFI and I was unable to boot the Archlinux installer.&lt;/p&gt;
&lt;p&gt;So I decided to go ahead and change my main distribution. I installed Fedora
and almost all the hardware worked so I keep that one and was happy, until
today :P&lt;/p&gt;
&lt;h2&gt;OStree, the new way of distribute GNU/Linux&lt;/h2&gt;
&lt;p&gt;With OStree and flatpak, there's a new way to distribute GNU/Linux, instead of
use directly a package manager and update each package, we can use OStree and
mount the root filesystem as read only and do full OS upgrades without broken
packages and dependencies and so. The operating system go as is and the user
should try hard to break it.&lt;/p&gt;
&lt;p&gt;The other great thing about OStree is that it's like a git repository, so you
can have different branches and a history, so you can easily go back and forward,
it's really easy to test the beta and go back without breaking your system.&lt;/p&gt;
&lt;p&gt;The main problem is that you &lt;em&gt;can't&lt;/em&gt; install anything on your OS, you should
use contained apps like flatpak or install by hand, you can't use &lt;code&gt;apt-get&lt;/code&gt;.
But that's okay for a day to day user, a power user always can &lt;code&gt;unlock&lt;/code&gt; the OS
and use it as a normal GNU/Linux distribution.&lt;/p&gt;
&lt;p&gt;I wanted to try one of these distributions. The logical choice was &lt;a href="https://silverblue.fedoraproject.org/"&gt;Silverblue&lt;/a&gt;
because it's a Fedora and I'm using it for three years now, but there's another
option, &lt;a href="https://endlessos.com/"&gt;EndlessOS&lt;/a&gt; is also OStree based, and &lt;a href="http://danigm.net/endless.html"&gt;I'm working with this OS&lt;/a&gt;,
so I should give a try and use EndlessOS.&lt;/p&gt;
&lt;h2&gt;The EndlessOS install process&lt;/h2&gt;
&lt;p&gt;Like all the new modern GNU/Linux distros, EOS comes with a easy to use installer,
you only need to boot from the USB and click next until it's done...&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/eos/endless-install-2.jpg"&gt;
        &lt;img src="/pictures/eos/endless-install-2.jpg" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;But here we've the first problem. I've more than one partition in my disk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/dev/sda1: UEFI&lt;/li&gt;
&lt;li&gt;/dev/sda3: Fedora /&lt;/li&gt;
&lt;li&gt;/dev/sda8: Swap&lt;/li&gt;
&lt;li&gt;/dev/sda4: Fedora /boot&lt;/li&gt;
&lt;li&gt;/dev/sda6: /home&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I want to keep my Fedora (who knows if something bad happens) and try to use the
same home partition for my new EOS. But the installer only give me the option
to erase all and have a clean system. But that won't stop me.&lt;/p&gt;
&lt;p&gt;Let's go back and instead of reformat I will click on &lt;em&gt;Try Endless OS&lt;/em&gt;:&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/eos/EndlessOS-Installation.png"&gt;
        &lt;img src="/pictures/eos/EndlessOS-Installation.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;What we need to do, Robert McQueen gave me some directions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The constraints for booting Endless are 1) you use our grub, and 2) the root
partition is labelled "ostree"&lt;/p&gt;
&lt;p&gt;So if you have an EFI system, you can copy our EFI binaries into the ESP, and
create a new partition for Endless, then dd the endless ostree filesystem into
it&lt;/p&gt;
&lt;p&gt;Then you should be able to boot, if you add a boot entry for the endless grub
to your firmware, or make it the default (by providing the fallback boot64.efi
or whatever it's called), or chain load it from another Linux loader&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Install EOS with other linux (EFI system)&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Boot from USB, select try&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Launch the gnome-disk-utility and prepare a partition. I've not free space,
but I was able resize my Fedora partition and I split in two of the same size,
now I've a new ext4 partition &lt;code&gt;/dev/sda7&lt;/code&gt; with 25GB.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the endless ostree:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;su
&lt;span class="c1"&gt;# dd if=/dev/mapper/endless/image3 /dev/sda7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Copy endless grub to EFI. I mounted all partitions in /tmp, the first
partition in &lt;code&gt;/tmp/sda1&lt;/code&gt; and the EOS efi in the &lt;code&gt;/tmp/EOS&lt;/code&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# mkdir /tmp/sda1 /tmp/EOS
# mount /dev/sda1 /tmp/sda1
# mount /dev/mapper/endless-image1 /tmp/EOS
# cp -rf /tmp/EOS/EFI/endless/ /tmp/sda1/EFI
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Add the new boot entry:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# efibootmgr -c -d /dev/sda -p 1 -L EOS -l \\EFI\\endless\\grubx64.efi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Set as default boot:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# cp /tmp/EOS/EFI/endless/grubx64.efi /tmp/sda1/EFI/Boot/bootx64.efi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Reboot and create my default user. Then I add my home partition to the &lt;code&gt;/etc/fstab&lt;/code&gt;
file:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;UUID=c885e171-1a03-4afb-8519-f9fe26fe92b7 /sysroot/home ext4 defaults 1 2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And because the first user in EOS is the shared account, with UID 1000, I've to
change the UID of my user editing the file in &lt;code&gt;/etc/passwd&lt;/code&gt;. Then I rebooted
again and all works. I've all my flatpak apps installed in the user space working.&lt;/p&gt;
&lt;p&gt;So here we're, with a shiny new OS working like a charm:&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/eos/screenshot.png"&gt;
        &lt;img src="/pictures/eos/screenshot.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;The EFI and efibootmgr (who needs grub to select the OS?)&lt;/h2&gt;
&lt;p&gt;I didn't know much about UEFI and I was very impressed about how easy is to
update this from GNU/Linux. There's a tool called &lt;code&gt;efibootmgr&lt;/code&gt; that does all
the work, and you can mount the partition, that's a FAT32, and put files there.&lt;/p&gt;
&lt;p&gt;In my ThinkPad, I can boot directly to the UEFI boot menu pressing F12 during
the boot, and that menu can be changed using the &lt;code&gt;efibootmgr&lt;/code&gt; so it's not
needed anymore to use the grub2 OS selection interface, I can use the UEFI
menu for that!&lt;/p&gt;
&lt;p&gt;This has some disadvantages, if you remove files from the UEFI partition, you
can break the whole boot, so review all before any change.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Sat, 25 May 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:danigm.net,2019-05-25:/endlessos-dual-boot.html</guid><category>blog</category><category>gnome</category><category>work</category><category>endless</category><category>fedora</category></item><item><title>I'm a hacker</title><link>https://danigm.net/endless.html</link><description>&lt;h2&gt;I've the strength of the one that fails, trains and returns&lt;/h2&gt;
&lt;p&gt;Some time ago I wrote &lt;a href="http://danigm.net/gnome-gtk-developer.html"&gt;about my interview process&lt;/a&gt; trying to get a job at
GNOME. After this blog post was published in the GNOME planet, I received a lot
of comments from the &lt;em&gt;Great&lt;/em&gt; GNOME community.&lt;/p&gt;
&lt;p&gt;This guided me to take a look to the companies that was looking for GNOME
developers and after some interviews I finally get an offer to work on
&lt;a href="https://endlessos.com/"&gt;Endless&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All the process was online, I've been working from home since 2011 and I want
to continue like this. I'm living in Málaga, the south of Spain and I was
looking for a remote job.&lt;/p&gt;
&lt;p&gt;I've a very nice interview process, talking with developers that I knew about
from their contributions to free software and these interviews weren't
technical, that's a good thing about the free software contribution and
the community, if someone wants to know my technical skills, he only need to
look to my gitlab or github and he will find a lot of code. These interviews
were personal and with some management questions, to know if I'll fit in the
team and the company.&lt;/p&gt;
&lt;p&gt;I did the interview to work directly on the Endless OS, in the desktop team,
but after some interviews I ended in other team, working with the Endless OS
and all GNOME technology, but in the &lt;a href="https://hack-computer.com/"&gt;Hack Computer&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;The hack computer&lt;/h2&gt;
&lt;p&gt;The hack computer is an educational project. The main idea is to provide a
fully functional computer for kids to be their first personal computer and also
provide a way to teach kids to &lt;em&gt;hack&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The computer is a usual laptop, with an Endless OS running, and with some extra
applications that try to guide kids to explore, modify and finally hack the
computer learning in the process about GNU/Linux, the code and that any part
of your software can be hacked to make it better, an introduction to the
free software and the great world of open source code that you can modify to
learn, play or simply because you can.&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/SN7tC4XnGko" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;The way to guide kids to learn is like a video game, with characters that will
appears in your desktop and will guide you with tips and challenges and after
each quest completed the kid will learn something, playing with his computer.&lt;/p&gt;
&lt;p&gt;If you like this and want to collaborate, &lt;a href="https://jobs.lever.co/endless"&gt;we're hiring&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Endless OS&lt;/h2&gt;
&lt;p&gt;The hack computer is built on top of the Endless OS. Endless OS is based on
debian and the desktop is a modified gnome shell, but it's not the usual debian
derivative, it's based on &lt;a href="https://ostree.readthedocs.io/en/latest/"&gt;OSTree&lt;/a&gt;. The main difference is that the root
filesystem is read only and updates are managed with ostree, that's like a git
repository.&lt;/p&gt;
&lt;p&gt;This kind of Operating System is easier to maintain, because the user &lt;em&gt;can't&lt;/em&gt;
modify the base system, so this means that he was unable to &lt;em&gt;break it&lt;/em&gt;. All user
applications are installed via flatpak, so are &lt;em&gt;independent&lt;/em&gt; of the &lt;em&gt;OS&lt;/em&gt;
version and because of flathub you can install latests version of apps without
the need to update the full operating system.&lt;/p&gt;
&lt;p&gt;This is the way that &lt;a href="https://silverblue.fedoraproject.org/"&gt;Fedora SilverBlue&lt;/a&gt; is trying to follow and is a &lt;em&gt;new&lt;/em&gt;
way to build and distribute GNU/Linux.&lt;/p&gt;
&lt;p class="img"&gt;
    &lt;a href="/pictures/hack-mount-tree.png"&gt;
        &lt;img src="/pictures/hack-mount-tree.png" /&gt;
    &lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;The end of an Era&lt;/h2&gt;
&lt;p&gt;I've been working in &lt;a href="https://wadobo.com"&gt;Wadobo&lt;/a&gt; since 2011. I created that company with two
college friends to try to continue hacking like we were hacking in the Seville
LUG &lt;a href="https://sugus.eii.us.es/"&gt;SUGUS&lt;/a&gt; and earn money from that, and we did it for a long time.&lt;/p&gt;
&lt;p class="img"&gt;
  &lt;img src="/pictures/wadobo-old-2.jpg" /&gt;
&lt;/p&gt;

&lt;p&gt;We've been working in free software projects and with free software technology,
contributing to the community as much as we can and always trying to free our
work.&lt;/p&gt;
&lt;p class="img"&gt;
  &lt;img src="/pictures/wadobo-old-1.jpg" /&gt;
&lt;/p&gt;

&lt;p&gt;We created some projects that grow up and follow its own path, like the
agora voting system, that Edulix (Eduardo Robles) converts in &lt;a href="https://nvotes.com/"&gt;nvotes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The self employment was a really good experience. I've been doing was I want
for a long time, taking time to contribute to GNOME and other projects when
I need it, because I was the one deciding what I want to do. But in the other
hand, I've been stuck in the local consultancy market for a long time.&lt;/p&gt;
&lt;p class="img"&gt;
  &lt;img src="/pictures/wadobo-old-3.jpg" /&gt;
&lt;/p&gt;

&lt;p&gt;I'm not a business man, I'm a developer and I'm based in Spain, where there
is no money inverted in innovation or we was unable to find that money, so we
were doing django web apps for a living and spending some time in our interests
in the extra time we've. So when I found the possibility to work full time in
an innovative project, I've no choice.&lt;/p&gt;
&lt;p&gt;We'll try to continue with the &lt;strong&gt;Wadobo&lt;/strong&gt; idea, like a group of people
interested in free software and new technologies, maybe this will derive into
a Linux User Group or maybe in the future someone takes the initiative and
build a business around this again.&lt;/p&gt;
&lt;p class="img"&gt;
  &lt;img src="/pictures/wadobo-old-4.jpg" /&gt;
&lt;/p&gt;

&lt;h2&gt;Hacking&lt;/h2&gt;
&lt;p&gt;I'm really happy with this change. Endless OS and the hack computer are really
great projects with a lot of bleeding edge technology and a really great group
of people, and I'm really exited to be able to work with people all around the
world in a project with a global vision.&lt;/p&gt;
&lt;p&gt;I don't want to leave the roots I've here with my Wadobo friends and the local
community and local technology ecosystem. This is also related with the Endless
vision. Spain, and here in the south, in Andalucía, we've a technological
breach that we try to fill with free software.&lt;/p&gt;
&lt;p&gt;I'll continue working with the Seville University, because they give me a lot
and I think it's a talent pool, we only need to guide those students to the
GNOME community or to other free software communities out there, to &lt;em&gt;save&lt;/em&gt;
their souls from the privative software and the dark side.&lt;/p&gt;
&lt;p&gt;I'll continue supporting initiatives like the &lt;a href="http://concursosoftwarelibre.org/"&gt;Free Software Contest&lt;/a&gt;&lt;/p&gt;
&lt;p class="img"&gt;
  &lt;a href="http://concursosoftwarelibre.org/"&gt;
    &lt;img src="http://concursosoftwarelibre.org/1819/files/images/banners/cusl2_500x455.png" /&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;By the way, I'll be talking about rust in the Seville University the next
Tuesday 5th of March 2019, if you're in Seville, come to talk with me :D&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">danigm</dc:creator><pubDate>Sun, 17 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:danigm.net,2019-02-17:/endless.html</guid><category>blog</category><category>gnome</category><category>work</category><category>endless</category><category>hack</category></item></channel></rss>