In 2006 I had just gotten into college and was learning Python by myself, my English skills (also self-taught) were pretty low and I had to rely a lot on whatever material was available in Portuguese (I'm from Brazil).
In 2007 I had an amazing college teacher, the "drop of water in the desert" kind of teacher. He was trying to convince everyone that they could move from MS Windows to GNU/Linux and that the available desktop software was pretty decent.
The only catch is that he used KDE2 and all the "cool" desktop apps he was showing were built on QT, like a good pupil I always tried to pair up an equivalent GTK option to every QT app my teacher showed to the class.
That worked well for everything: Music Players, Photo Viewers, etc.
But then I did not have a good alternative for GTK if I wanted to press F12 to get a drop-down terminal I'd have to install libqt on my Debian?
No way!
I set out to write an equivalent of Yakuake for GTK+ (hence the name Guake, with "G" for GTK), at the time I did not know exactly how D-Bus worked and had no idea of how to write Python extensions in C.
The very first working version of Guake was a Gnome Applet that used GTK bindings to libvte to make a terminal always available.
Was still not good enough for me.
The next step was to write a regular GTK Window application and try to make it disappear, but I was having a lot of trouble binding F12 globally, it only worked well on Metacity which was the default window manager for GNOME2 at the time.
Guake's user experience was not great, it only worked well on Metacity but was good enough for me to show to my teacher, I was so excited I was able to create my very first GPL software and publish on source forge. I was ahead of everyone in my class at the time, I was learning on my own the things that would be taught only in the next semester and many things that we would never learn in class (such as Python programming).
Some months go by and Guake-Gnome-VTE (the original name) gets some visibility, and this guy Lincoln de Sousa reaches out to me, he told me he had fixed the global keybinding problem by writing a Python extension in C, also he refactored the whole code and even applied GNOME Human Interface Guidelines to it.
It sounded great to me, I was so excited that someone else was interested in Guake, and made improvements to it, I was in awe with open source.
Except for one thing: Lincoln rewrote a lot of things that were working, just for the sake of cleaning up the Python code the aesthetics of it (actually he was applying PEP8 which I had no idea what was before this)
I had these mixed feelings: in one Guake had become what I wanted it to be, the global keybinding worked anywhere, the UI looked even better and the code was a lot easier to understand.
On the other a lot of the code I had written was deleted, I was not a skilled python developer when I wrote the first version of Guake, so I had spent several hours reading, coding and trying things out.
Anyways, the whole thing was a win-win, yay open source, now Guake had 2 maintainers putting a lot of time and love into it.
After some time Lincoln proposed that we moved the code off of Sourceforge to a git repository, self-hosted (we had a very "purist" mentality regarding FOSS and were terrified of having our code hosted by a proprietary software such as Github), he had way more experience than me on pretty much everything and he took reins: the code was hosted in one of his servers and all I did was pay for the domain.
In retrospect, I wish I had just pushed the code to Github at the time, so no the commit history would be lost.
The irony in having a purist FOSS mentality: the code was hosted on a server that I eventually lost access to.
Also, instead of importing all the commit history from Sourceforge we just pushed the code to git.
You can look at the first commits on github:
commit 4f4ab35d5cb2363dd464e6b252d1c798bd01c2fb
Author: Lincoln de Sousa <lincoln@minaslivre.org>
Date: Sat Oct 6 13:56:50 2007 -0300
The "guake_root" commit swallowed all the history of the original code I had done.
In 2008 I moved out of my city to work for a big corporation in Rio de Janeiro, there my FOSS purism slowly evolved into tolerance for proprietary software, eventually, I even got an iPhone and a MacBook.
That's when I stopped contributing to Guake: I had moved to MacOSX and the project had been taken over by other maintainers.
But even the icon is still the one I design on Inkscape, Guake was my first open-source software, I put a lot of time and love into it.
Today 14 years later I seldom use Guake because I seldom use a Linux Desktop, but I must confess that seeing my original authorship vanish from the project is very sad.
Hi. I am Gaetan, the current maintainer of Guake ! I am so sorry to see you find your "authorship" having disappeared from the Guake history, there was no intent from my part to remove it ! I only discussed with the maintainer back in 2013 from Pierre Yves, there has been many maintainers over the years I do not even know !
This history would have indeed a very place in the HISTORY page in the documentation, do not hesitate to write it, or with your permission, I copy/paste most of your comment.
Do not hesite to reach me in order to find a good way to put satisfying credits in the history.
Hello Gaetan, thank you so much for adding the authorship back.
Please don't get me wrong, I know you're not responsible for it disappearing and I'm not looking to blame anyone.
I'm happy that Guake is still being active maintained.
cool ! If only we could take a beer together ! But, at least, I hope, this will end up in a nice story and blog posts about opensource software development. We are all humans, mistakes can be made. The project lived a lot actually, and many files has been changed, the "chain" of maintainers made some of them not knowing the others !
If you still have the SVN repo, there should be a way to actually import all the commits to a Git repo (git-svn). Then, you could rebase the entire master branch of the current GitHub repo. That might show more of your contributions if many of them are hidden by the "guake_root" commit.
I only have a working knowledge of git but wouldn't that be equivalent to re-writing the whole history of the repo? Rebasing would give all of the commits a new commit ID and would cause conflicts everywhere.
Unless of course you just meant as an interesting way of being able to see the full history rather than suggesting the project adopt it.
Personally I'm impressed that you remember details of the development after this time. I usually suppress the memories of all the frustration in a few months with the help of unhinged hedonism and nonstop entertainment.
I'm Max @ulidtko, I took over Guake maintenance from Lincoln, did a dozen patches, l10n merges and maybe one release... Together with Pierre we welcomed Gaetan years later.
I'm still using Guake pretty much every day.
It was amazing to contribute, and having burned out from it -- to see the project live on with people continuing contributions & maintenance; and even reaping BountySource rewards for new features!
https://github.com/Guake/guake/pull/1415
Really sorry for this situation. It somehow slipped through, I honestly didn't notice it happening. I don't think anyone wished you anything bad, it's just generic inexperience (per the Hanlon's razor).
I, too, remember myself fiddling with copyright lines in translation files. I just had the single goal, to iron out inconsistencies and make adding new l10n's as smooth as possible. Never had intentions to take away credit from noone.
Glad to see you living full life. Sorry again; I'd be among those whose should've noticed and reverted that change. Hope you got a good enough resolution of this issue!
Gabe! Good for you, hope this works out for you. Had fun working with you in Miami Beach years back :D I can personally attest to @gfalcao's competency here ^^
> Except for one thing: Lincoln rewrote a lot of things that were working, just for the sake of cleaning up the Python code the aesthetics of it (actually he was applying PEP8 which I had no idea what was before this)
People shouldn't do this. At least not without prior agreement from the original author.
The issue I might still have today in 2020 is disk space, and extra time downloading updates to those packages at the next update. Even today I'd be reluctant to want to pull in large libraries that amount to an entire UI or desktop framework just for one application, unless I have a really good justification to use that application.
I am also a tad displeased today at how many optional dependencies I don't use get pulled in by package managers on my systems.
At the time it was a big deal, you went all GTK or all KDE/QT and your desktop looked ugly if you didn't. Also everyone was obsessed with 'bloat' and KDE had that rep.
As another kid who got into Linux at the time, KDE and Qt had a reputation at the time for poor performance on low-cost hardware.
To give you an idea, my computer at the time was a used machine that was duct taped together and any fancy desktop would cut my battery life to about an hour. So out of necessity I was driven towards lighter weight software
Let me clarify the whole story:
In 2006 I had just gotten into college and was learning Python by myself, my English skills (also self-taught) were pretty low and I had to rely a lot on whatever material was available in Portuguese (I'm from Brazil).
In 2007 I had an amazing college teacher, the "drop of water in the desert" kind of teacher. He was trying to convince everyone that they could move from MS Windows to GNU/Linux and that the available desktop software was pretty decent.
The only catch is that he used KDE2 and all the "cool" desktop apps he was showing were built on QT, like a good pupil I always tried to pair up an equivalent GTK option to every QT app my teacher showed to the class.
That worked well for everything: Music Players, Photo Viewers, etc.
One day he showed Yakuake (https://kde.org/applications/system/org.kde.yakuake) to the class and everyone went bananas, this was such an amazing tool.
But then I did not have a good alternative for GTK if I wanted to press F12 to get a drop-down terminal I'd have to install libqt on my Debian? No way!
I set out to write an equivalent of Yakuake for GTK+ (hence the name Guake, with "G" for GTK), at the time I did not know exactly how D-Bus worked and had no idea of how to write Python extensions in C.
The very first working version of Guake was a Gnome Applet that used GTK bindings to libvte to make a terminal always available. Was still not good enough for me.
The next step was to write a regular GTK Window application and try to make it disappear, but I was having a lot of trouble binding F12 globally, it only worked well on Metacity which was the default window manager for GNOME2 at the time.
Guake's user experience was not great, it only worked well on Metacity but was good enough for me to show to my teacher, I was so excited I was able to create my very first GPL software and publish on source forge. I was ahead of everyone in my class at the time, I was learning on my own the things that would be taught only in the next semester and many things that we would never learn in class (such as Python programming).
Some months go by and Guake-Gnome-VTE (the original name) gets some visibility, and this guy Lincoln de Sousa reaches out to me, he told me he had fixed the global keybinding problem by writing a Python extension in C, also he refactored the whole code and even applied GNOME Human Interface Guidelines to it.
It sounded great to me, I was so excited that someone else was interested in Guake, and made improvements to it, I was in awe with open source.
Except for one thing: Lincoln rewrote a lot of things that were working, just for the sake of cleaning up the Python code the aesthetics of it (actually he was applying PEP8 which I had no idea what was before this)
I had these mixed feelings: in one Guake had become what I wanted it to be, the global keybinding worked anywhere, the UI looked even better and the code was a lot easier to understand.
On the other a lot of the code I had written was deleted, I was not a skilled python developer when I wrote the first version of Guake, so I had spent several hours reading, coding and trying things out.
Anyways, the whole thing was a win-win, yay open source, now Guake had 2 maintainers putting a lot of time and love into it.
After some time Lincoln proposed that we moved the code off of Sourceforge to a git repository, self-hosted (we had a very "purist" mentality regarding FOSS and were terrified of having our code hosted by a proprietary software such as Github), he had way more experience than me on pretty much everything and he took reins: the code was hosted in one of his servers and all I did was pay for the domain.
In retrospect, I wish I had just pushed the code to Github at the time, so no the commit history would be lost. The irony in having a purist FOSS mentality: the code was hosted on a server that I eventually lost access to.
Also, instead of importing all the commit history from Sourceforge we just pushed the code to git.
You can look at the first commits on github:
commit 4f4ab35d5cb2363dd464e6b252d1c798bd01c2fb Author: Lincoln de Sousa <lincoln@minaslivre.org> Date: Sat Oct 6 13:56:50 2007 -0300
commit 8973af85108c889f7dc16af2d8443d0f8ff3ec05 Author: guake_root <guake_root> Date: Wed Aug 1 02:35:20 2007 +0000The "guake_root" commit swallowed all the history of the original code I had done.
In 2008 I moved out of my city to work for a big corporation in Rio de Janeiro, there my FOSS purism slowly evolved into tolerance for proprietary software, eventually, I even got an iPhone and a MacBook.
That's when I stopped contributing to Guake: I had moved to MacOSX and the project had been taken over by other maintainers. But even the icon is still the one I design on Inkscape, Guake was my first open-source software, I put a lot of time and love into it.
Today 14 years later I seldom use Guake because I seldom use a Linux Desktop, but I must confess that seeing my original authorship vanish from the project is very sad.