Underestimating Debian

I had two issues in the last days that lead me a bit into panic until they got solved. In both cases the issue was external to Debian but I first thought that the problem was in Debian. I’m not sure why I had those thoughts, I should be more confident in myself, this awesome operating system, and the community around it! The good thing is that I’ll be more confident from now on, and I’ve learned that hurry is not a good friend, and I should face my computer “problems” (and everything in life, probably) with a bit more patience (and backups).

Issue 1: Corrupt ext partition in a laptop

I have a laptop at home with dual boot Windows 7 + Debian 9 (Stretch). I rarely boot the Windows partition. When I do, I do whatever I need to do/test there, then install updates, and then shutdown the laptop or reboot in Debian to feel happy again when using computers.

Some months ago I noticed that booting in Debian was not possible and I was left in an initramfs console that was suggesting to e2fsck /dev/sda6 (my Debian partition). Then I ran e2fsck, say “a” to fix all the issues found, and the system was booting properly. This issue was a bit scary-looking because of the e2fsck output making screen show random numbers and scrolling quickly for 1 or 2 minutes, until all the inodes or blocks or whatever were fixed.

I thought about the disk being faulty, and ran badblocks, but faced the former boot issue again some time after, and then decided to change the disk (then I took the opportunity to make backups, and install a fresh Debian 9 Stretch in the laptop, instead of the Debian 8 stable that was running).

The experience with Stretch has been great since then, but some days ago I faced the boot issue again. Then I realised that maybe the issue was appearing when I booted Debian right after using Windows (and this was why it was appearing not very often in my timeline ūüėČ ). Then I payed more attention to the message that I was receiving in the console

Superblock checksum does not match superblock while trying to open /dev/sda6
 The superblock could not be read or does not describe a valid ext2/ext3/ext4
 filesystem. If the device is valid and it really contains an ext2/ext3/ext4
 filesystem (and not swap or ufs or something else), then the superblock
 is corrupt, and you might try running e2fsck with an alternate superblock:
 e2fsck -b 8193
 e2fsck -b 32768

and searched about it, and also asked about it to my friends in the redeslibres XMPP chat room ūüôā

I found this question in the AskUbuntu forum that was exactly my issue (I had ext2fsd installed in Windows). My friends in the XMPP room friendly yelled “booo!” at me for letting Windows touch my ext partitions (I apologised, it will never happen again!). I now consistently could reproduce the issue (boot Windows, then boot Debian, bang!: initramfs console, e2fsck, reboot Debian, no problem, boot Windows, boot Debian, again the problem, etc). I uninstalled the ext2fsd program and tried to reproduce the issue, and I couldn’t reproduce it. So happy end.

Issue 2: Accessing Android internal memory to backup files

The other issue was with my tablet running Android 4.0.4. It was facing a charge issue, and I wanted to backup the files there before sending it to repair. I connected the tablet with USB to my laptop, and enabled USB debugging. The laptop recognized a MZ604 ‘camera’ connected, but Dolphin (the file browser of my KDE Plasma desktop) could not show the files.

I looked at the settings in the tablet to try to find the setting that allowed me to switch between camera/MTP when connecting with USB, but couldn’t find it. I guessed that the tablet was correctly configured because I recall having made a backup some months ago, with no hassle… (in Debian 8). I checked that my Debian (9) had installed the needed packages:

 ii kio-mtp 0.75+git20140304-2 amd64 access to MTP devices for applications using the KDE Platform
 ii libmtp-common 1.1.12-1 all Media Transfer Protocol (MTP) common files
 ii libmtp-runtime 1.1.12-1+b1 amd64 Media Transfer Protocol (MTP) runtime tools
 ii libmtp9:amd64 1.1.12-1+b1 amd64 Media Transfer Protocol (MTP) library

So I had no idea about what was going on. Then I suspected some problem in my Debian (maybe I was needing some driver for the Motorola tablet?) and booted Windows 7 to see what happened there.

Windows detected a MZ604 device too, but couldn’t access the files either (when clicking in the device, no folders were shown). I began to search the internet to see if there were some Motorola drivers out there, and then found the clue to enable the correct settings in the Android device: you need to go to Settings > Storage, and then press the 3-dots button that makes the “Menu” function, and then appears “USB computer connection” and there, you can enable Camera or MTP. Very hidden setting! I enabled MTP, and then I could see the folders and files in my Windows system (without need of installing any additional driver), and make my backup. And of course after rebooting and trying in Debian, it worked too.

Some outcomes/conclusions

  • I have a spare hard disk for backups, tests, whatever.
  • I should make backups more often (and organize my files too). Then I wouldn’t be so nervous when facing connection or harddrive issues.
  • I won’t let my Windows touch my Debian partitions. I don’t say ext2fsd is bad, but I installed it “just in case” and in practice I never felt the need to use it. So no need to risk (again) a corrupt ext partition.
  • Having a Windows system at hand is useful some times to demonstrate myself (and maybe others) that the problems aren’t usually related to Debian or other GNU/Linux.
  • Having some more patient is useful too to demonstrate myself (and maybe others) that the problems aren’t usually related to Debian or other GNU/Linux.
  • Maybe I should put aside some money in my budget for collateral damages of my computer tinkering, or renew hardware at some time (before it definitely breaks, and not after). For example if I had renewed this tablet (it’s a good one, but from 2011, Android 4, and the screen is broken, and it was not charging since one year, we were using it only plugged to AC), then my family wouldn’t care if I “break the old tablet” trying to unlock its bootloader or install Debian on it or whatever. The same for my husband’s laptop (the one with the dual boot), it’s an old machine already, but it’s his only computer. I already felt risky installing Debian testing on it! (I installed it in end-january, right before the full-freeze).
  • OTOH, even thinking about renewing hardware made me headache. My family show advertisements from the shopping mall and I don’t know if I can install Debian without nonfree blobs, or Replicant or LineageOS on those devices. I don’t know the max volume that the ringtone reaches, and the max volume of the laptop speakers, or the lower possible brightness of the screens. I’m picky about laptop keyboards. I don’t like to spend much money in hardware that can be destroyed easily because it falls down from my hand to the floor, or I accidentally throw coffee on it. So I end enlarging the life of my current hardware, even if I don’t like it much, either…


You can comment on this post using this pump.io thread.

Posted in My experiences and opinion | Tagged , , , ,

Rankings, Condorcet and free software: Calculating the results for the Stretch Artwork Survey

We had 12 candidates for the Debian Stretch Artwork and a survey was set up for allowing people to vote which one they prefer.

The survey was run in my LimeSurvey instance, surveys.larjona.net. LimeSurvey¬† its a nice free software with a lot of features. It provides a “Ranking” question type, and it was very easy for allowing people to “vote” in the Debian style (Debian uses the Condorcet method in its elections).

However, although LimeSurvey offers statistics and even graphics to show the results of many type of questions, its output for the Ranking type is not useful, so I had to export the data and use another tool to find the winner.

Export the data from LimeSurvey

I’ve created a read-only user to visit the survey site. With this visitor you can explore the survey questionnaire, its results, and export the data.
Username: stretch
Password: artwork

First attempt, the quick and easy (and nonfree, I guess)

There is an online tool to calculate the Condorcet winner, http://www.ericgorr.net/condorcet/ 
The steps I followed to feed the tool with the data from LimeSurvey were these:
1.- Went to admin interface of lime survey, selected the stretch artwork survey, responses and statistics, export results to application
2.- Selected “Completed responses only”, “Question codes”, “Answer codes”, and exported to CSV. (results_stretch1.csv)
3.- Opened the CSV with LibreOffice Calc, and removed these columns:
id    submitdate    lastpage    startlanguage
4.- Remove the first row containing the headers and saved the result (results_stretch2.csv)
5.- In commandline:
sort results_stretch2.csv | uniq -c > results_stretch3.csv
6.- Opened results_stretch3.csv with LibreOffice Calc and “merge delimitors” when importing.
7.- Removed the first column (blank) and added a column between the numbers and the first ranked option, and fulfilled that column with “:” value. Saved (results_stretch4.csv)
8.- Opened results_stretch4.csv with my preferred editor and search and replace “,:,” for “:” and after that, search and replace “,” for “>”. Save the result (results_stretch5.csv)
9.- Went to http://condorcet.ericgorr.net/, selected Condorcet basic, “tell me some things”, and pasted the contents of results_stretch5.csv there.
The results are in results_stretch1.html

But where is the source code of this Condorcet tool?

I couldn’t find the source code (nor license) of the solver by Eric Gorr.
The tool is mentioned in http://www.accuratedemocracy.com/z_tools.htm where other tools are listed and when the tool is libre software, is noted so. But not in this case.
There, I found another tool, VoteEngine, which is open source, so I tried with that.

Second attempt: VoteEngine, a Free Open Source Software tool made with Python

I used a modification of voteengine-0.99 (the original zip is available in http://vote.sourceforge.net/ and a diff with the changes I made (basically, Numeric -> numpy and Int -> int, inorder that works in Debian stable), here.
Steps 1 to 4 are the same as in the first attempt.
5.- Sorted alphabetically the different 12 options to vote, and
assigned a letter to each one (saved the assignments in a file called 
6.- Opened results_stretch2.csv with my favorite editor, and search
and replace the name of the different options, for their corresponding
letter in stretch_key.txt file.
Searched and replaced “,” for ” ” (space). Then, saved the results into
7.- Copied the input.txt file from voteengine-0.99 into stretch.txt and edited the options
to our needs. Pasted the contents of results_stretch3_voteengine.cvs
at the end of stretch.txt
8.-In the commandline
./voteengine.py <stretch.txt  > winner.txt
(winner.txt contains the results for the Condorcet method).
9.- I edited again stretch.txt to change the method to shulze and
calculated the results, and again with the smith method. The winner in
the 3 methods is the same. I pasted the summary of these 3 methods
(shulze and smith provide a ranked list) in stretch_results.txt

If it can be done, it can be done with R…

I found the algstat R package:
which includes a “condorcet” function but I couldn’t make it work with the data.
I’m not sure how the data needs to be shaped. I’m sure that this can be done in R and the problem is me, in this case. Comments are welcome, and I’ll try to ask to a friend whose R skills are better than mine!

And another SaaS

I found https://www.condorcet.vote/ and its source code. It would be interesting to deploy a local instance to drive future surveys, but for this time I didn’t want to fight with PHP in order to use only the “solver” part, nor install another SaaS in my home server just to find that I need some other dependency or whatever.
I’ll keep an eye on this, though, because it looks like a modern and active project.

Finally, devotee

Well and which software Debian uses for its elections? 
There is a git repository with devotee, you can clone it:
I found that although the tool is quite modular, it’s written specifically for the Debian case (votes received by mail, GPG signed, there is a quorum, and other particularities) and I was not sure if I could use it with my data. It is written in Perl and then I understood it worse than the Python from VoteEngine.
Maybe I’ll return to it, though, when I have more time, to try to put our data in the shape of a typicall tally.txt file and then see if the module solving the condorcet winner can work for me.
That’s all, folks! (for now…)


You can coment on this blog post in this pump.io thread
Posted in Tools | Tagged , , , ,

New phone: Samsung Galaxy S III phone with Replicant

Thanks to the¬†Bazaar¬†effort of¬†The Guardian Project, I’ve been offered a phone to test F-Droid and other free software apps for Android. I accepted the offer, and chose a Samsung Galaxy S III phone with¬†Replicant¬†4.2.2, ¬†installed and shipped by¬†Tehnoetic.
I’m using it now as my main phone, and since it uses Android 4.x I’m able to install more modern apps than in my old Galaxy Ace (which remains usable with CyanongenMod 7.2 (Android 2.3.7)).
My plans with this new phone are:
  • Test Replicant and free software for Android on it
  • Get more involved in translations of Android apps
  • Get more involved in the F-Droid community
  • Keep an eye on Android tools in Debian
  • Post here in my blog articles about what I’ve been doing (and of course report issues and contributions upstream)

Migration to the new phone

I’ve migrated my stuff from the old phone to this one. Some notes:
  • Wrote down my list of apps
  • Used¬†Slight Backup¬†for contacts, call logs and messages
  • Periodical¬†has its own backup tool
  • Whatsapp has its own backup tool
  • Exported settings in¬†K-9 Mail
  • Exported¬†Kontalk¬†GPG key
  • Simply Do¬†has its own backup tool
  • I don’t use calendars in the phone so I didn’t migrate any events (I have¬†Offline Calendar¬†to ad temporary notes/reminders, but that’s all)
I moved the SIM card and the SD Card to the new phone and tried the restore tool for each app.
I found out that several apps could not find the backups because they were not looking at the SD Card for the files (seems that they were using internal memory locations). So for recovering my backups, I made new backups in the new phone with the empty apps, then found out where those backups were created (in the internal memory, /storage/emulated/0), and then copied the authentic backup files there (overwriting teh dummy ones), and then used the app to restore the backup.
For some apps (K-9) I had to set again the folder for attachments, since the SD was not anymore in /media/sdcard, now it was in /storage/sdcard1.
Apart from that, everything went well.
I was a bit upset that I could not migrate Kontalk conversations (there is no backup/export tool, and I am not sure where are the files/database stored).
I noticed that although Kontalk is ‘registered’ using the phone number, and it uses the phone numbers for contacts, it kept working in the old phone (Whatsapp detects when you change to a new phone and kind of ‘deactivates’ itself in the old one, but that’s not the case for Kontalk: it works as any XMPP client (if it’s open, it can send/receive messages)).

Replicant 4.2 in a Galaxy S III (i9300)

Here I write some particularities that I found in the phone, mostly bugs or problems. But don’t get me wrong: overall I’m very happy with it!
I experienced a problem when using the phone to make/receive calls, it seemed that the proximity sensor was not working well. I thought it was a Replicant issue, but later I realized that there was a Tehnoetic sticker that was partially covering the sensor. I removed the sticker and everything worked well.
The phone came with F-Droid installed which is nice. I upgraded to the latest alpha and I’m testing the alpha releases since then ūüôā
I found that I cannot choose “where” to install apps nor move apps from internal memory to the SD Card: there is no such option in Settings > Apps > Manage Apps (there is such setting in my CyanogenMod 7.2 phone, though). Since my phone is rooted and I have full access to both internal memory and SDCard, and I have plenty of room in the internal memory, I didn’t bother too much. I’m not sure if this is a bug, a feature, something related to Android 4 or specific to Replicant, o specific to this phone model. Pending to investigate, but low priority.
Replicant is almost fully translated to Spanish, yay!. I only found one untranslated string: You go to Settings > Wireless > Cell Broadcasts, and in the settings page, “Cell Broadcasts” is untranslated (but the settings themselves are). I still need to find where/how to send a patch for this (not sure if it comes from Android, CyanogenMod, or it’s something specific for Replicant. Also, being Android 4.x, I’m not sure about the usefulness of reporting such a minimal and unimportant patch upstream…).
When I turn on the phone, I get the Samsung S III splash screen, later the Replicant Splash screen, later the numeric pad to unlock the SIM card. After that, I see the screen lock but when I press the lock to enter the pattern, the screen turns off and on, screen lock appearing again (and I have to press the lock again to enter the pattern). If after unlocking the SIM card I wait a bit, I see the screen lock and again black screen and screen lock, so it’s not my tap causing it. Doing like this (waiting a bit for the phone to show the screen lock for 2nd time) is less annoying, but I wonder why this happen and I cannot unlock the screen directly in the first attempt. This is also pending for research, but low priority.
When the phone boots, I find the splash screens too bright (the “Samsung Galaxy S III” splash, and later the red Replicant one). I don’t know if I can change that. I know that other people have created different ‘Replicant’ splash screens, so maybe I can create one almost black and only the “Replicant” text in very dark grey. But this is obviously a workaround, not a fix. OTOH, it’s an annoying thing just some seconds: when the unlock screen is shown, the phone shows the brightness level that I’ve set (usually, the lowest one).
From time to time, I suffer soft reboots:
  1. the phone hangs for 2-3 seconds
  2. then the red “Replicant” splash screen is shown (the phone is not totally rebooted, because I don’t see the “Samsung Galaxy S III” splash screen and and the SIM card unlock PIN is not requested)
  3. after unlocking the screen, I see a normal ‘desktop’ (similar to what I see after rebooting the phone: no apps running, and no “last used apps” history. Time and date are ok, wireless or 3G starts correctly etc).
I’ve tried to track the causes of these soft reboots, but I couldn’t find anything specific. They are not frequent at all, and when I decide to launch¬†CatLog¬†to try to catch any hint, the phone works perfectly for hours or days :s
Replicant is currently using the fallback Android EGL implementation, which is incomplete. The missing features of this implementation cause multiple issues, which are described in #705. These are the ones that I experience (or I miss):
  • The phone comes with a video editor preinstalled: Movie Studio. I got excited about it, because I was jealous of the small built-in video editor that comes with Whatsapp, but I became sad because Movie Studio does not work ūüė¶
  • The camera does not record video.
  • When I long-press the central button of my phone to see the list of recent apps, I don’t see their thumbnails (only the name, and their icons). This is quite unimportant for me, names and icons are enough.
  • The stock Gallery app does not work well: I cannot see thumbnails of the albums. This is not very important, because I installed¬†Gallery.
  • I cannot use Firefox, Orfox and other derivative web browsers (I usually use the stock browser, and I installed Lightning too).
  • I cannot use barcode or QR scanners.
  • My son cannot play¬†Shattered Pixel Dungeon¬†(nor¬†Pixel Dungeon). Fortunately he uses now my old Android 2.x devide for that.
I installed the non-free firmware to be able to use Wifi and tethering, GPS and some other things. This does not fix the graphics problems listed above.

New apps, and translations

Note: when I write about Android apps, I usually link to their pages in the F-Droid website. Here I talk about translations (contributions), so I’ll link to their original website or souce code repos. But you can find all those apps in F-Droid too.
As I told before, I installed another gallery app called Gallery and submitted an update to it Spanish translation.
I installed¬†Red Moon¬†to reduce (even more) the screen brightness. At night it’s a relieve. Maybe the brightness of the splash screen is not so much, and I perceive them annoying because I got accostumed to Red Moon! I contributed some strings to the Spanish translation.
I liked RadioDroid very much, and I translated the app to Spanish.
I translated¬†Wifi Privacy Police, and I used for some time, but I became tired that it keeps asking all the time that I walk across my workplace (multiple buildings within the same Wifi network, but quite a lot access points…).
I keep on contributing to K-9 Mail to make it 100% translated to Spanish. Now with a modern Android I can move to the development branch (5.1xx releases), and just did it.
I submitted a Spanish translation to¬†DAVDroid, although I’m not using it yet (I have to see if my University’s Owncloud instance allows to sync contacts and calendar).
I updated the Spanish translation of¬†PassAndroid, although I don’t use it yet (I tend to print my train/airplane tickets…). I keep it installed in my phone, just in case.

Other apps that I use

I’m testing¬†OwnCloud,¬†NextCloud¬†and¬†NexCloud Beta¬†clients with my University’s Owncloud and with¬†Davros¬†in my Sandstorm box (with Davros, I could only make it work installing an old version of Owncloud/Nexcloud client,¬†and then upgrading. See¬†#65).
I didn’t get accostumed to¬†Conversations. Not sure why, though. Maybe it’s just that I got accostumed to¬†Xabber-Classic, so I upgraded to¬†Xabber. It works like a charm, dark theme, and I can close it easily when I don’t want to chat.
I got in love with¬†KDE Connect. Later I realized that I could have been using it in my Android 2.x phone since long…
Sometimes I have fun activating¬†Voice Notification¬†and entering the redeslibres XMPP multi user chat at salas.mijabber.es, for example while I’m cooking in the kitchen (in that room people talk in Spanish and make many wordplays, mixing Spanish and English, and use tech slang, etc so it’s really fun to hear the Spanish-TTS deal with the conversation there!).

More to come

As I told at the beginning of this long post, my plan is to keep on tinkering with the phone, testing and translating apps, and becoming more involved. So expect some more posts about Android in this blog, in the future.
For now, some big things in my TODO:
  • Watching again some videos: DebConf16 videos about Android tools in Debian, FOSDEM talks about Replicant, and some other talks about free software in Android.
  • I track the #fdroid and #fdroid-dev channels in IRC, but I’m not very talkative there. I guess I could do more user support.
  • Participate more in the F-Droid (client, server, data) issue trackers (I send reports when the alpha version crashes, and comment on few issues, but I don’t triage the issue tracker to find issues that I could reproduce or help to diagnose or contribute to fix).
  • Long time ago I learned to setup an Android development environment and build apps. I would like to re-learn and maybe do some small fixes in unmaintained or near unmaintained apps, and maybe adopt them or join their development teams (I’m thinking, for example, in¬†Puma, an Android client for pump.io network, the¬†MediaGoblin app, or the¬†DebianDroid¬†app). And ship new versions of unmaintained apss, including Spanish translations.
We’ll see how far I can go!


You can comment about this post in this pump.io thread.
Posted in My experiences and opinion, Tools | Tagged , , ,

More involved in the Debian Publicity team

More than 6months since I am Debian Developer and I’m learning new things every day… and trying to organize my time better to accomplish all the things I would like to do.
In September I became publicity delegate (and we joined Press+Publicity into the Publicity team). We continued discussing how the team works, and hopefully revitalizing it.
I became more active in the IRC channel, installed quassel in my home server and then I could read all the backlog too.
I’ve tried to contribute more to Debian Project News (less than I’d like), to bits.debian.org and to the social networks (Pump.io and GNU Social).
Since November I’ve been failing to call for meeting but finally¬†on 2016/02/29 we had it. I hope to resume semi-regular meetings each 1-2 months.
At the beginning of the year I helped to handle all the news and announcements about the loss of Ian Murdock. It has been hard work but I feel that I could turn some of the sadness into something useful for others. There is still work to be done: parse the condolence emails and setup a website to publish them.
About bits.debian.org, DPN and announcements, I’ve learned how to perform the parts of the work that require membership permissions (building the blog, actually publishing the announcement, sending the DPN/announcement mail to the corresponding lists). Not without mistakes, but I guess no matter how much you care, sometimes things happen, and then you learn and then things get better and you too.

Some things I discovered

  • Installing quassel server and clients and getting addicted to IRC… It’s not that I chat so much, but I read the backlog of the channels where I am, and it’s hard for me to leave a channel once I join, even if I joined just to ask something and they already answered.
  • Writing (correct) English is harder for me than what I imagined. Not here or by mail or in IRC, but when I have to ‘create’ some news for DPN or bits, it takes much time and I doubt in many cases. I trust in the reviews by¬†debian-l10n-english team, and thank them very much, but I also feel a bit ashamed of my broken English. OTOH, note that we have few native English speakers in the Publicity (and website) team. Please consider joining (Publicity or L10n-English) and helping with the reviews! That helps not only to get good quality content in Debian, that also helps non-English speakers to contribute more ideas or paragraphs, because we can trust in somebody reviewing our work.
  • It’s hard for me to call for meetings, proposing dates/times. We are very dispersed geographically so I usually come up with long tables with lots of days and times proposed, and I think it does not help. OTOH setting a fixed time can systematically leave out people from certain timezones, and I feel that’s very sad. I suppose I need to try to offer few options and if I see no agreements, then extend.

Some clarifications

  • I’ve written “hard” word 4 times in this post (well, 5 now!) but that does not mean I don’t want to do those tasks. I feel going out of my comfort zone and that’s ok, needed to learn and experience. I’m having a good time in Debian in the last months, as always!
  • We’re 4 people delegated and more team members and contributors, so anybody could think: “Publicity is well covered, let’s go to do other things in Debian”. It’s perfectly ok if you want to do other things in Debian, but please consider combining your contributions with some minutes for the¬†publicity team. Aiming to be the universal operating system, our community and target audience is big and diverse and we’d like to show that diversity to the world. The more we are, the merrier!


You can comment about this blog post in this pump.io thread.
Posted in My experiences and opinion | Tagged , , , , ,

Thanks Ian, thanks Debian

I didn’t know Ian Murdock but the news about his passing left me with a very strange and sad feeling, because he started the project that creates the tool that I use every day in my work, and everyday in my communication with my family and friends, and everyday for anything computer related… It’s like if somebody puts a treasure in your hands and you got distracted looking at it and when you head up to look at the person and say ‘Thank you’, he’s gone…

And, in the last years, Debian for me is not just ‘my favorite tool’, I’ve been slowly getting involved in the community, known some people here and there, been able to put some work to try to improve some small parts, been able to work with other people as a team, and I’ve been touched many times admiring how the Debianers work, how they talk and write, how they behave to each other and to the ones that reach the community for first time, and to the world, since most of the communication and work is public… I’ve felt myself helped, welcomed, encouraged, empowered. Not only in my computer related skills or the improved capabilities of my humble hardware. I’ve felt myself helped, welcomed, encouraged and empowered in important areas of my life (understanding other points of view, caring about the ones that don’t speak aloud, enjoying diversity and becoming flexible to make it flourish, making friends…). And I like to think that I try to emulate that and help, welcome, encourage, empower others too… I’m learning.

Thanks Ian, for this alive and growing treasure that is Debian (the OS, the community), and thanks Debian, for the past, present and future miracles.

Posted in My experiences and opinion | Tagged , , , ,

Software Freedom Conservancy supporter

I think it’s important that organizations as Software Freedom Conservancy exist.
They provide a non-profit home, infrastructure, and advice for FLOSS projects. They take care that the will of the project members, choosing free software licenses, is respected by third parties. They care about “all the rest” so free software contributors can focus in improving the software itself. They have an agreement with the Debian community to protect the freedoms that Debian Developers provide to the Debian end users (and derivative distributions).

So I decided to join as supporter. I’m happy that this week there is a matching fund so my donation will count double.

I hope that many others join too, so the organization’s voice and action continues loyal to their goals and representative of all the projects (wether big or small) under their umbrella. This way (small donations from many individuals as funding model), no single or few actors can use their big money as pressure to deviate or block Conservancy’s action.

We free software/free knowledge contributors know very well the power that many micro actions can provide, when coordinated towards the common good, isn’t it?

Posted in My experiences and opinion | Tagged , , , , , , ,

Look at that nice looking FreedomBox!

This is a guest post by Alberto Fuentes, Debian contributor. Thanks!!

I’m rebuilding one my home server and decided to take a look at the FreedomBox project as the base for it.

The 0.6 version was recently released and I wasn’t aware of how advanced the project is already!

They have a virtualbox image ready for some quick test. It took me longer to download it than to start using it.

Here’s is a pic of what it looks like to entice you to try it ūüôā

All this is already on debian right now and you can turn any debian sid installation into a FreedomBox just by installing a package.

The setup generates everything private on the first run, so even the virtualbox image can be used as the final thing

They use Plinth (Django) to integrate the applications into the web interface. More info on how to help integrate more Debian packages here.

A live demo is going to be streamed this Friday 30 Oct 2015 and a hackaton is scheduled for this saturday 31 Oct 2015.


Posted in My experiences and opinion | Tagged , , , ,

Long summer story, Welcome team, and I am a Debian Developer now

Note: 2015/10/16: I need to add some links but I won’t delay this more, posting now, will edit later.

Summer ended long time ago, but believe me, I’m still catching up with all the things that I began in June/July, all the things I left in August when I went holidays, and more things that appeared in August and September.

This is a long overdue post, I hope you bear with me for waiting so long, and writing (now) so long too!


In June, I was 100% sure that I would not attend DebConf15 (well, I was 98% sure until then), and when the new “Outreach Sponsorship” grants were announced, I decided to write some mails to several Debian contributors, so they consider applying for the grant and attend DebConf (and maybe trigger some i18n/l10n meeting…). They kindly declined, and I understood their reasons, but also wondered what would have happened if the proposal would have come from somebody more “official” instead of a random contributor that they don’t know. I also hoped that lots of other Debianites also write to newbies or not-yet-DD-contributors or non-packaging contributors to invite them to DebConf, and I hoped that they had better luck than me in convincing them ūüôā


In July I usually work hard preparing the computer labs for next academic year at my workplace in the University, but I also have more free time in the long afternoons and evenings, since I don’t sleep much, and there is not much to do outside with the summer hot. So I used that month to go on contributing to DebConf publicity and think a bit more about Debian and the other free software communities.

I didn’t put much time in advancing my selfhosting (no SSL yet in *.larjona.net! booooo!) but I decided to deep my toe in Sandstorm.io, and try to selfhost an instance ( http://lacaja.larjona.net ) and try Etherpad inside Sandstorm (since I failed in deploying Etherpad by myself in my jessie+nginx+postgres box).

Sandstorm worked, and Etherpad was packaged in Sandstorm so it worked too; and I have my free-software-base pads now for writing and share.

So I joined #sandstorm IRC channel since then, and there I learnt that Asheesh Laroia (who works in Sandstorm.io and is also a Debian Developer and was going to give a talk about Sandstorm.io in DebConf15) was offering mentorship for people wanting to learn Sandstorm packaging, and his proposal was to begin packaging Framadate. I also failed in selfhosting Dudle (prepared for Apache + FastCGI, couldn’t make it work in my Nginx), so Asheesh’s proposal looked suitable for me. We talked and decided to invest the rest of July and first days of August in learning to package Framadate.

I learned a lot, but couldn’t finish the task. I encountered many issues (setting my dev environment, and later trying to package), and we solved some of them but my time ran out. I posted my work in the list, and I hope that my feedback on the documentation and the issues I encountered helped Asheesh and the Sandstorm community. Framadate is packaged in Sandstorm.io now, Drew Fisher packaged it, not sure if my stuff was useful or not (it’s been useful for me, for learning, at least). I’ll talk more about Sandstorm.io in a future blog post updating on my selfhosting adventures.

What I liked most was the kind of proposal of mentoring that Asheesh made. It was very detailed in every aspect: the task, the things you need to accomplish it, details about his availability for mentorship… I try to be welcoming in the teams in which I participate, but the fact is that I fail in actually mentor, maybe because of not making specific proposals to people (until now, I was like “Hi, newcomer! Go read this, this and this, and try for yourself any task you feel you like it, and come back if you have issues”, √† la Debian…). This, plus the thoughts about my mails in June for diversity outreach in DebConf, made me feel the need of having a team where people willing to welcome newcomers share tricks and procedures, write together more specific proposals, and follow up the newcomers experiences in a regular way.

I talked with Enrico Zini and we wrote down some notes for a “Welcome Team” in Debian; he said he would spread the word during DebCamp/DebConf and we would see what people thinks about it.


August came, and the day before going on holidays I was really tired: too much luggage to prepare, too many hours in front of the computer, and the usual stress of traveling; and I took the bad decision of signing some GPG keys of several Debianites that I met in July. I say “bad decision” because the lack of sleep showed its black magic and I accidentally deleted my secring.gpg file. I knew I had a backup but I didn’t have too much time to invest and I didn’t want to mess it with the backup too, and my laptop was going to stay at home, powered off, during the whole month, so I just went on holidays and left the GPG issue for later.

The day after, meanwhile I was waiting in the airport for my boarding time, I received a mail accepting me as Debian Developer. Wow!! Really, I was not expecting that the process was already finished, I had interchanged several mails with my Application Manager (who happens to be the current DPL!) and I thought that his summer could be quite packed of Debian/DebConf work and my process could wait a bit. So it was a very happy news and very motivating after one month (July) full of free software work. On the other side, I was a bit scared: “what type of Debian Developer are you, larjona, not capable to sign some GPG keys without breaking your setup?!” but I answered myself “well, I’m the type of Debian Developer that has backups ūüôā” and then, with that mixed feelings of excitement and impostor syndrome, I took my plane and went on holidays, not expecting to touch any computer until the end of the month.

August is probably the month in the year when I have more free time (holidays), but less time to dedicate to free software. I devote most of the month to visit family and stay with them, with no internet connection available or no free time to look at the mailbox or social networks or IRC…

But DebCamp and DebConf15 were happening during my holidays. And this DebConf15 was the first one in which I participated in the organization, and the first one in which I felt more than being a “consumer of Debian videos”. I could not follow the streamings, my only internet-capable device was my Android 2.x phone, but when I had wifi I fetched the mail, and during the nights, while everybody else was sleeping and I was laying on the terrace, below the sky full of stars, I could read batches of hundred of mails from debconf-discuss mailing list. And I could get some feeling from DebConf life, because I learned about the ad-hoc BoFs and discussions, the morning bike rides and swimming proposals, and the dancing classes, the i18m/l10n meeting, and many other things. I could answer some mail from time to time, and I also knew that a fellow Debianite from Madrid was going to bring me some stickers, maybe a t-shirt, and shake hands in my name to some persons.

September and October

September was about finishing reading all the mails and try to answer the pending ones, and preparing my computer to use my new Debian identity (and stop using larjona-guest). I still have some things to do, pending technical work, and some mails that I should have answered and I’ve forgotten, for sure (if you sent me a mail that needs answer or would be fine that I answer (even if it was months ago!), please resend or ping me). I recovered my secring.gpg but and just now I added larjona@debian.org to the ID in my GPG key, but didn’t signed the pending keys again (sorry dkg and holger! will catch up there soon). My subkeys expired and I’m trying to find out how to proceed (they are in my FSFE SmartCard) :/

About the Debian teams, I’ve resumed my work in publicity team (this year I’ll try to be more involved, in Debian Project News in particular), partially in the website team, and recently I’ve finished catching up with the Spanish translation of the website. I’ve also joined the DebConf team again (for DebConf16, no matter I probably won’t attend) and documented the Publicity task for DebConf, and I try to engage the mailing list and the IRC meetings.

I finally could have time to watch some DebConf15 videos and Andreas Tille’s talk (“Creating a more inviting environment for newcomers – New experiences from MoM, SoB, Teammetrics”) helped me to step ahead in welcoming people with more useful stuff than “Hi, newcomer! Go read this (general URLs), try for yourself whatever you like…”. I have made specific proposals for two people. In mid September I accepted an interview about Debian for a podcast with quite a lot audience (in Spanish), in which I explained the idea of the Welcome Team and offered myself as first-contact. Since then, two more people have contacted me and I have offered specific tasks I think are suitable for them. I also try to be more available in the IRC and offer some time spans for new contributors to DebConf to explain the git setup, the wiki, and all this stuff that looks more complicated than what it is.

And I think that’s all. My Debianite friend kindly brought me some stickers and a DebConf t-shirt, plus the organization t-shirt that the team gave me as present for my contributions in DebConf15.

Neil McGovern kindly sent me a certificate of my new “Debian Developer” status (thanks!!), and it’s posted in my wall at work. Here you are a photo!


(Note: my wall is full of stickers and pieces of papers with things I need, things I like and things I use to explain my work (sometimes sarcastically/ironically…). Maybe some day I’ll make a blog post about that!)

I feel very proud and happy. Still, a lot of things to learn and work to do, but my intentions are: to keep on progressing (sometimes fast, sometimes slowly), never give up, and enjoy the multiple flowers I find in my way ūüôā

Thanks everybody!

October and future

Some other ideas/plans for the future (the ones I didn’t say yet):

  • Try to catch up with “Debian Contributors” development/news, adopt some data source (www.debian.org?), try to create some new data source (about translators, for example).
  • Clean spam in the archive lists (now that I am DD I may help in not only “Mark as spam”, but actually remove the spam from the archive)
  • Help in the review/updates of the Debian website (ongoing: /users; future: children-distros/derivatives, /partners).
  • Try to get more involved in the Debian i18n team, at least in the part of internationalizing the Debian infrastructure (make translatable via PO files/templates many texts that used repetitively in the Debian website, for example) and in welcoming new members in translation teams or helping the weak ones (although I don’t know many languages, the workflow and tools are common, so I think I could help new translators at least to get hands on the matter).
  • Maybe some short screencasts/videos about the Debian infrastructure, for newcomers? (mailing lists, IRC, wiki, Alioth…)


If you want to comment you can use this pump.io thread.

Posted in My experiences and opinion, News | Tagged , , , , , , , ,

Family games: Robots

I play “Robots” with my kid. I’ve tested the game with other kids and it seems that for ages 5 to 7 they like it. I’ve talked about the game to several adults and it seems they like too, so I thought maybe writing about it here may be useful for somebody to enjoy some summer days.


One player is the Robot. The other one is the programmer. If there are more players, it can be several robots and several programmers. If players are older, you can make the game more complicated making robots cooperate or programmers cooperate. If not, you make pairs 1-1 or 1 programmer – 2 robots if the number is odd.

The game

The programmer must turn on the robot, pressing the ON/OFF button (robot chooses where’s the button: nose, ear, belly, whatever).
Then, the robot say “hello”, and the programmer asks for the list of commands available (like “Hello, robot, give me the list of commands”). The robot says the list of commands available, for example “Run, stop, jump, sing a song, somersault, say something in a different language”. Then, the programmer thinks a program, and loads it to the robot (speaks the list of orders, loudly, to the robot). Then the programmer presses the START button (Robot choses where it is) and then the robot has to perform the program without errors.

If the robot performs correctly, wins one point. If it fails, looses one point. The programmer can design another program (maybe longer, maybe with some conditional expression) and tries the limits of the memory of robot.

If the robot is tired, needs to charge batteries, or whatever, the roles programmer/robot are interchanged, and the one with more points in a certain amount of time or rounds, wins.

Variants, tips…

If the programmer does not like the list, of commands, she can ask for updates, and maybe some new commands will be installed (and/or other uninstalled, who knows).

Please be creative with the list of commands, or the game will be very boring.

Depending on the operating system which runs the robot, it will give more or less options to the programmer, and the behaviour will be more evil or good. Robots shouldn’t behave too much evil, though, otherwise the programmer will erase their disk and install Debian on them to make them obedient ūüėČ

You can play with a third person being the Robot manufacturer, who controls the robot, even sometimes overriding the programmer instructions (if the robot has an OS which is not free software). Robot will win one point obeying the manufacturer, but if there are more robots, will loose one round of playing because the programmer got angry and turned it off or reinstalled the software.

The manufacturer and the programmer cooperate if the robot runs free software, though. Together they can expand robot memory (for example, lend a piece of paper where to store the program), or create new commands, fix bugs, or whatever.


You can comment about this post in Pump.io thread about this post.

Posted in My experiences and opinion | Tagged , , , , , ,

Un paseo por XMPP

Si tienes trato conmigo, me habrás oído hablar algo de Jabber/XMPP.

¬ŅTe vienes a dar un paseo por la mensajer√≠a instant√°nea libre?


Es un protocolo de comunicación, como el correo electrónico o el FTP.
Antes se llamaba Jabber, ahora se llama XMPP ūüôā
Permite la mensajería instantánea entre dispositivos usando internet (ordenadores, móviles, otros aparatos).
Permite charlar persona a persona y también en grupo.

El estándar es abierto y funciona con un servidor donde se crean las cuentas, y programas clientes (para ordenador o móvil) que sirven para enviar/recibir los mensajes. Te puedes comunicar con personas que tengan cuenta en un servidor XMPP distinto al tuyo (como en el caso del correo, tu servidor le pasará el mensaje al servidor del destinatario, que lo entregará).

Se puede usar con software libre (y gratuito) tanto en el lado del servidor como en los programas clientes, y permite el uso de cifrado punto a punto, para que ni los servidores ni los “mirones” vean el contenido de los mensajes.

Buena pinta ¬Ņeh?


Mi cuenta es larjona@jabber.org

Me hice la cuenta hace alg√ļn tiempo y ese servidor est√° algo saturado, as√≠ que a la familia y amigos ahora les recomiendo otros, por ejemplo mijabber.es. Si quieres buscar otro diferente, tienes una lista con muchos servidores aqu√≠: https://xmpp.net/directory.php

Para registrarse, puedes ir con un navegador web a la p√°gina del servidor y crear la cuenta, o puedes usar alg√ļn programa cliente que permita el registro autom√°tico (esto √ļltimo no lo he probado).

Elige tu servidor, y elige un apodo que est√© libre. Y ya est√° (bueno, alg√ļn servidor puede que te pida un correo electr√≥nico para poder recuperar tu contrase√Īa si se te olvida, o alg√ļn otro dato personal. T√ļ decides).

Programas clientes

Hay clientes para muchos sistemas operativos distintos.

También, muchos servidores, ofrecen un cliente web, para no tener que instalar nada. Por ejemplo: https://mijabber.es/jappix/

En GNU/Linux, Android, e iOS, usa el repositorio oficial para instalar el que quieras (puedes tener varios, si quieres). En Windows/OS X, visita las p√°ginas web de los proyectos para descargar los ejecutables.

Yo uso Xabber en mi móvil (Android 2.x), y Conversations esporádicamente en mi tableta (Android 4.x). También he probado Tigase y Yaxim. Todos disponibles en F-Droid.

En el ordenador (con Debian), he probado varios: Psi, Psi+, Jitsi. Tengo pendiente probar Gajim.

En Windows sólo he probado Jitsi, pero conozco gente que usa Gajim o Pidgin.

Algunos clientes tienen estructura modular, y hay que instalar complementos para poder usar el cifrado, o la videollamada, u otras funciones avanzadas.

Chatear, y grupos

Una vez hemos instalado el cliente, iniciamos sesi√≥n con nuestra cuenta identificativa o JID, por ejemplo pepita.pulgarcita@mijabber.es y la contrase√Īa.
Podemos a√Īadir contactos (indicando sus JID), y se enviar√° una solicitud de autorizaci√≥n al contacto. Tambi√©n podemos entrar en grupos, (seg√ļn el cliente que uses, ver√°s que los llaman “grupos”, “salas”, “conferencias”, o MUC (“multi user chat”)). Por ejemplo en la sala redeslibres@salas.mijabber.es (haz clic y echar√°s un ojo ahora mismo desde el navegador) o crear t√ļ uno en un servidor que permita la creaci√≥n de grupos (salas.mijabber.es es uno de ellos, simplemente creas un nuevo nombre como “familiadepepitapulgarcita@salas.mijabber.es” y ya).

Cuando nos unimos a una sala de charla, podemos usar un apodo diferente, invitar a gente, proteger la sala con contrase√Īa, y otras cosas.

En la conversación uno a uno, podemos activar el cifrado OTR, llamada de voz, o videollamada, si nuestro cliente y el de nuestro interlocutor lo soportan.

Envío de archivos

El est√°ndar XMPP permite enviar/recibir archivos de dos maneras diferentes, y cada servidor y programa cliente decide de cu√°l manera lo hacen. Esto es un poco problem√°tico, porque t√ļ con tu cliente y tu cuenta en tu servidor podr√°s enviar archivos y quiz√° el servidor del receptor o el cliente no admite ese m√©todo… es cuesti√≥n de ponerse de acuerdo.

En general, los clientes de escritorio permiten el envío de archivos, y algunos clientes móviles (Conversations) también.

El m√©todo que funciona en todo caso es subir el archivo a alg√ļn sitio y proporcionar a tu interlocutor o interlocutores la URL ūüėČ Pero no te des por vencido/a, haz pruebas y actualiza frecuentemente tus clientes porque esta situaci√≥n est√° evolucionando para bien.


Existen aplicaciones que utilizan XMPP pero no son del todo compatibles, porque han adaptado el sistema a sus necesidades.


Un ejemplo de derivado libre es Kontalk (a partir de la versión 3, versiones anteriores no usaban XMPP).

El servidor es XMPP, pero el programa crea la cuenta de usuario aplicando una funci√≥n “hash” al n√ļmero de tel√©fono del usuario, con lo que se obtiene un JID algo complicado, tipo aedc28ed561209dfa98dee@beta.kontalk.net, y √©se es el JID que tienes que decir a tus contactos que usan XMPP est√°ndar para que te agreguen… Porque adem√°s el cliente de Kontalk no permite agregar contactos manualmente (a√ļn), s√≥lo usando la lista de n√ļmeros de tel√©fono. Adem√°s, no es posible hoy por hoy iniciar sesi√≥n con tu JID de Kontalk usando otro cliente XMPP, porque Kontalk usa cifrado GPG con un par de claves, en lugar de contrase√Īa. As√≠ que los usuarios de Kontalk, en la pr√°ctica, s√≥lo pueden usar la aplicaci√≥n de Kontalk para comunicar.

Kontalk, por ahora, no permite grupos, aunque se está trabajando en ello (así como en mejorar el sistema para que se puedan usar otros clientes XMPP para comunicarse).

El código del servidor y del cliente es libre, por lo que es posible, por un lado, instalar más servidores para crear una red federada como la XMPP estándar, y por otro, como sabemos, se puede adaptar y mejorar todo el sistema (de hecho, el desarrollo es comunitario, con 2 personas dirigiendo el proyecto y una comunidad bastante activa).


Un ejemplo de derivado no libre es Whatsapp.

Han adaptado el servidor, cliente y protocolo para que se registren las cuentas autom√°ticamente mediante el n√ļmero de tel√©fono (de forma similar a como hemos explicado con Kontalk), y al no estar el c√≥digo fuente disponible, es dif√≠cil saber c√≥mo lo han hecho, y si han hecho m√°s cosas. Han eliminado pr√°cticamente cualquier posibilidad de control por parte del usuario: el usuario no puede saber su JID, tampoco puede especificar otro servidor para usar, y aunque se averiguara el JID, por acuerdo de t√©rminos de servicio, no puede usar otra aplicaci√≥n distinta a la “oficial” para conectarse. As√≠, la empresa proveedora se ha reservado para s√≠ todo el control. Todas las cuentas est√°n en el mismo servidor, y usan el mismo cliente, y el usuario no puede cambiar nada; se asegura entonces el funcionamiento del env√≠o de archivos (aunque √©ste se limita a s√≥lo archivos de determinados tipos) y se asegura que todas las comunicaciones pasan por el servidor de Whatsapp, lo que permite controlar la comunicaci√≥n, pero tambi√©n perjudica a todos los usuarios si hay un problema en ese servidor.

En conclusión, la empresa usa XMPP para aprovechar sus ventajas en exclusiva, sin conceder al usuario esas ventajas que XMPP podría ofrecerle.


GTalk era el cliente de mensajería instantánea de Google. Funcionaba usando el estándar XMPP, pero Google no implementó ciertos estándares de seguridad que exigen la mayoría de los servidores XMPP actuales. Como GTalk no era software libre, tampoco era posible arreglar esta situación por parte de la comunidad.

Cuando Google lanz√≥ su nuevo sistema de mensajer√≠a y videollamadas, Hangouts (abandonando definitivamente GTalk), segu√≠a sin ser libre, y adem√°s result√≥ incompatible con XMPP. As√≠, todas las personas que usaban XMPP est√°ndar, dejaron de ver conectados a sus amigos que usaban GTalk/Hangouts, y viceversa. Google no inform√≥ a los usuarios de GTalk de que perder√≠an la conectividad con sus contactos XMPP en otros servidores, al actualizar a Hangouts. Desde mi punto de vista, s√≥lo eso es raz√≥n para dejar de usarlo y volver al XMPP est√°ndar creando una cuenta en cualquier (otro) servidor…

Los usuarios de Hangouts tienen además el problema de la centralización del servidor, como hemos comentado anteriormente con Whatsapp. Si su servidor tiene problemas, no podrán usar ese sistema (no hay otro servidor de Hangouts donde crearse cuenta).


Cuando nos dicen que determinada empresa/aplicaci√≥n de mensajer√≠a ofrece mejor experiencia de usuario, es interesante pensar c√≥mo lo consigue, o a costa de qu√©. Desde mi punto de vista, centralizar la comunicaci√≥n haciendo que todos pasemos por un mismo servidor es hacer “trampa” (y adem√°s, tiene implicaciones muy importantes acerca de la privacidad de las comunicaciones, por ejemplo).

Llevo un tiempo usando XMPP, y veo que las aplicaciones de cliente y servidor est√°n en continua evoluci√≥n, resolviendo¬† retos nada triviales (env√≠o de archivos, videollamada, compatibilidad m√≥vil/PC, comunicaci√≥n s√≠ncrona y as√≠ncrona…), sin renunciar a la interoperatividad y la federaci√≥n (elementos claves de la supervivencia de una red que quiera ser una verdadera red) y a poner el control en manos de los usuarios y sus comunidades (elementos claves para que podamos comunicarnos con libertad).

Si piensas que el ecosistema XMPP se mueve despacio, y necesitar√≠a un buen empuj√≥n para alcanzar la usabilidad y el n¬ļ de usuarios de los otros, ¬Ņa qu√© esperas para colaborar? √ösalo, est√ļdialo, mej√≥ralo, dif√ļndelo. Es software libre, ¬°tienes todo el derecho a ello!


Puedes comentar sobre este artículo en este hilo de pump.io.

Y tambi√©n, usando XMPP, en la sala redeslibres@salas.mijabber.es ūüôā

Posted in My experiences and opinion | Tagged , , , , , , , ,