It's been rolling over the past weekend TuxCon 2017. Most people think I've done pretty well with my lecture. Personally, I'm not entirely happy, there are definitely a lot of things to work on, because I plan not to have my last such event in the future. If I have to be honest about most of the presentation, I hardly remember it, it was like a trance. I remember sporadic moments when I look at my watch and find out, that a decent amount of time has elapsed.

It was definitely not easy, even with that in mind, that the audience was extremely narrowly focused and there was no big barrier with the audience.


My favorite text editor is Geany. It is very minimalist HERE which supports a huge set of languages – shell, php, python, C … etc. It has automatic finishing and at the same time it is very agile. It lacks some other pleasant opportunity, but at the moment it is more than enough for me. I started an online course Python Programming на SoftUni – to refresh my knowledge and upgrade it because I have not adequately monitored what is happening with python 3. The lecturers of the course recommend PyCharm as an IDE for pyton programming, but I do not like it, of course I use Geany for the exercises.

During the lectures I felt painfully 2 lacks

  1. python autocomplete exhales from documentation of functions and methods
  2. no validation for pep8 standard

The good thing is that Geany is flexible enough to configure and can be easily supplemented by missing ones.. Sometimes add python documentation to our IDE:

  • we pull the following script somewhere in our PATH for example / usr / bin and don't forget to make it executable
  • edit the file ~ / .config / geany / filedefs / filetypes.python by adding the following line in the settings section context_action_cmd=pydocw %s. If there is only add the name of the binary from the previous step. We restart Geany if it is released.
  • We already have a context-action that will get you information about the function. I added a shortcut to make it more convenient as I do not understand any functionality. I like this approach a lot because I am very annoyed by the netbeans approach.

So far so good. Then I really want to have validation of the code I write – whether I write it according to generally accepted standards or I write some ugliness. Basically I found it again tutorials how things happen but it's a bit outdated – Geany has everything built into it, you just need to install the pep8 package. In Debian apt-get install pep8 works in the other distros you have to find out for yourself how the magic happens. In the Build menu, the second button (at least for me) is Lint after clicking it you will find how ugly code you have created 😀

Screenshot from 2016-01-11 20-42-21

Here's a general outline of how to make your Geany work better with Python while still being fast without making your CPU want to pull the bullet.

From time to time I have to use Bitcoin URI and when I need my client has not associated it is annoying, that I have to do everything by hand. The procedure is extremely trivial for the association in question. It can be synthesized in the following 5 points

  1. Open your address bar about:config
  2. Create a new boolean key (right-click clip -> new -> boolean)
  3. Enter a name: network.protocol-handler.expose.bitcoin
  4. Select a false value
  5. The next time you click on the Bitcoin URI you will be asked to choose the path to your Bitcoin client. Be sure it has enforceable rights.

I personally use MultiBit the customer who has all the necessary functionality and is agile enough

When you make the RAID layer above it, do it on the LVM, so you will save a lot of trouble if you set not very well estimated partition sizes.. The idea is that if you don't use XFS or ZFS or some other FS that allows resizing partitions like EXT2 / 3/4 for example things become a big hassle when you realize, that you didn't do the most- good division. In general, you get maximum plasticity if you need to reduce or increase the size of the partition and at the same time you are protected against unpleasant events of your data. In general, something of this kind is obtained

| / | /var | /usr | /home  |
|       LVM Volume         |
|       RAID Volume        |
| Disk 1 | Disk 2 | Disk 3 | 

As I wrote recently, my people from Debian are moving to multiarch support. This in itself is a good thing a lot of things will go normally for example some problems with wine on x64 architecture will disappear. Because my system is much more complicated to configure it is generally sid (unstable) however, testing packages are also used and with the multiarch things are lubricated. Extremely unpleasant at that. So today I had to clean my system of all i386 dependencies in order to be able to run like people 🙂

In general, the procedure is extremely trivial. We clean the packages, disable the i386 architecture and live happily 😉 how does this happen with the following command below. Ie they are 2, in case someone is interested in how many packages he has managed to get along with all the things he has actually uploaded, the second one cleans the system.

dpkg -l | grep i386
apt-get remove --purge .*:i386

So far, everything is clear, we have a purge system. All that remains is to ban the architecture where the system crushes us

dpkg --remove-architecture i386

apt-get update

Hello clean life. If one day I don't get bored I will sit down to write down my pin priorities for packages like people so as not to crush the multiarch but in general I don't have much desire to do so I prefer a clean x64 system to many duplicate libraries.