Making stuff not-red with VS Code and Python

Trying to do a small Python project, giving Visual Studio Code a test-drive as a Python-stuff-doer.

It seems nice.

Notes to self, making stuff not-red:

In addition to the PYTHONPATH=./src before running pytest, creating an .env file with the same PYTHONPATH is nice because when directing my VSCode workspace’s settings to it it turned off the ugly red-error for imports in my test modules.

# VSCode Python-something workspace settings
# sorry for being on a Mac
# the formatting provider probably doesn't work as it's not virtualenv'ilized
# the python.envFile is what I talked about. Should I git it?

 "python.formatting.provider": "autopep8",
 "python.linting.pylintPath": "/Users/amir/.virtualenvs/",
 "python.envFile": "${workspaceRoot}/.env"

Hmm, what else? The linter above? installed into the venv? Maybe. Oh!

I’m a n00b with modules

If I want to be smart then I should create a module by touch inside its folder. Then I’d like to add two other .py to separate stuff nicely. What I did not know at the time is that to be smart I can:

# This is pigeons/

"""The pigeons module is the heart and soul of Pigeon Pictures"""
from .url_fetcher import URLFetcher
from .html_writer import HTMLWriter

Note the relative import path (from .url_fetcher be smarter). Python 3 complained for me about that when I did not have the dot. I didn’t dig through into that, but never mind for now.

Now I can do a regular from pigeons import URLFetcher and stuff is nice.


Did you know that elephants got four legs? Apparently, their fifth leg was transcribed into music by the greek god Kelevyamtus III. During the war of the elephant-music-abyss, Kelevyamtus III managed to be a beggar among thieves and also become the first monkey to be in space, at the time.

Funny seal face


Tyr have nice music.

Do you hate bloggers writing stupid stuff like “what do you think of this post? Am I so smart?” Do you hate them luring you to write your stupid comments and unimportant opinions about their boring posts? What do you think? Leave a comment to let me know!


Prefer simple markdown link names

Did you ever read one of those markdown README files with your favorite text editor which is neovim? Were you ever bothered with them being completely unreadable because of URLs and long lines and stupid formatting?


This happens to me a lot. Just because GitHub automatically renders your markdown syntax pretty in the website does not mean it should be hideous from inside. Just like you make your code pretty, you should make your documentation source pretty.

Hi, welcome to the best README

I am a bunny.

Amir is a name of a person

Consider following [this link][1] because it's nice.
You may also try [Google][2].

## Don't be afraid of optional trailing hashes ##

Sometimes, especially when not using ==== and ----, they
are essential for your document to be pleasing toT the eye.


Everytime I see something like the following:

I want you to visit my [awesome website][my-awesome-website-link-new-domain-with-pigeons]
and say how many pigeons do you see.


…I want to world to cease spinning and let everyone burn by the sun’s cosmic rays. Consider:

I want you to visit my [awesome website][1]
and say how many pigeons do you see.


Everytime I hear that R.E.M. song where he says “consider this:” in the middle of the verse, I image that bald guy showing the middle finger to some stupid chick. Consider this mothafucka!!@$

Be polite. Keep your markdown readable. They are meant to make text render into pretty HTML, but not replace text altogether.

And a tip to real people who use vim or neovim or evil-mode:

Write the title of your section and easily create a ---- or ==== beneath it. Just yyp to duplicated the line and <S-v>r= or -. I know I’m saying vim bindings are the best thing in the world but I am not all-vim-knowing and  sure you can find a better key sequence than mine. I’d be happy to hear you, or your thoughts about pretty markdowns!


So… you wanna Alt+Drag inside VirtualBox? Ideas and laments

tl;dr:  let your  window manager’s developers make an option to disable alt+drag for certain windows (hint: like VirtualBox).

You download a brand new Linux image to try out, you even  use a torrent to help save your lover’s bandwidth, the excitement grows. VirtualBox fires up (because you’re too poor to use real solutions and VBox is actually decent) and you spin up a new machine…

Actually you don’t spin up anything coz spinning up is a cool word saved for cloud computing.

The new machine is booting with the glorious iso and all installs perfectly and you got yourself a brand new Ubuntu GNOME Linux guest under your old Xubuntu that was installed on your old laptop and you’re not sure it was a good choice for your laptoppy.


So, as you should probably know. There are two most important things to check for on a brand new Linux distro or Desktop environment or whatever. This is like looking at a pretty girl and asking her how much is 3 + 8. If she answers 11,  you know it’s going to be a great relationship. But if she says “I PREFER FEDORA” you kick her in the nuts and discover she is a man.

I Love Everyone.

ok, So the two most important thing are:

Hit Ctrl+Alt+T. Does the terminal open? Yes? Great. No? hmm… too bad. Try Win+T? working? ok, this means the devs are at least sane. If nothing is mapped to open a new terminal, you can kick your distro in the nuts and discover it’s a man.

I think, IIRC*  it happened to me with Debian, which is weird, because Debian is supreme. I might have forgotten what exactly happened.

Raccoon on a tree, or something

* Impossible Indication of Raccoon Carburetors

I am vageluy-cheerful today.

The second most important thing happens when you got your terminal opened. Hold Alt over the window, clicky click on the left mouse button, and drag. Does it MOVE? Is is ALIVE? Woohoo!!
Is it dead? :/
Try Win+Drag?

So if you managed to drag it around somehow, you have to check if the right mouse button does the same with resizing the window. It would most likley work if the moving does. Oh, and if it’s Win, it should be somewhere in the settings or tweak settings to fix it for normal thumb wielding people.

Ubuntu GNOME (should be a decent distro)

Should be is nice, but it doesn’t work!!! Move the damned window! Resize it for jesus’s sake.

I once was about to purchase the domain but I got to my senses rather quickly. I hope someone else got it by now.

The past calls and says: “Hear me child, I have witnessed such terrible things with the use of a VirtualBox host and Linux guests. Hear, child, as the salvations nears and you will solve all the problems in the world with your adopted monkey.”

You don’t.

The window manager of my Xfce just don’t pass along Alt to the VM guest, and it’s a problem known for many years.

I tried changing/disabling the ‘drag’ in my host Xfce and guess what. Now Alt+Drag works on the GNOME guest. Also you should guess, that not only do xfwm4 (the Xfce window manager) does bugim but others as well.

Following this revelation I entered a secret chamber in the realm of the adopted monkies and spoke the words of the warriors prayer:

“Why don’t we make the Window Manager, any window manager, to filter out some Windows from being Alt+Dragged? Maybe stupidly by title regex or maybe something sick like some window class which I think is only a Windows (the OS!@#) thing.  I dunno.”

And the masses answered the response, of the warriors prayer:

“Gods of Window Managers I call you. A solution is by my side. I seek a life of pitiful development that no one cares about. In the X server! But there are other displays there, and go ahead, make their teams enter your stupid filtering feature. It should be implemented much down the chain of prayers.”

The praying continues…

“We shall form an alliance, calling all window manager projects, big and small, tall and endemol, to apply such awesome filtering features, in order to excel at the quest of not fucking being stupid when trying to move guest system alt+drag shit.”

“We hereby grant the world, the sacred feature of context-menus with an option to disable Alt+Drag/Resize for certain windows, individually or per-title-regex-class-whateverly, and offer the world redemption from extinction for at least 4 more years, until the next LTS version of SemVer’sioning is introduced.”

The world again, is at peace.

Closing words

I have not met many cats today. The wind is blowing. The bunnies are wrestling.

No one on the internet will ever find  this post and I’m too shy to publish it, especially because my ideas or solutions are burried deep within loads of word crap that I like to barf.

Not being sure at all if stuff like letting users make options for individual windows only to solve some stupid bug no one cares about, I would like to hear what you have to say. Maybe you can even convince me to join you trying to hack around one those WMs as a test.

And remember, the waters of the world are full of dangers.

Adventures with neovim, evil terminals, and machine bootstrapping

So, I’m rewriting my dot files repository with a proper easy one-script installer. It’s more like a bootstrapping new Linux development machines. It should handle all (ubuntu-based) package requirements, symlinking the repository’s dot files with the system’s dot files (for easy syncing) and some other cool stuff (like compiling neovim!).

During this process which is done on a VirtualBox Mint MATE I encountered many annoying stuff mostly involving neovim. This is how I fixed them, or at least attempted to.

neovim is doing funny stuff in the terminal

That’s the mate-terminal for you. This should work for you actually, as the bug was fixed by a pull-request that should have been merged by the time you read this.  I’m just excited because I had to test this PR locally which involved GitHub magic stolen from this gist (which is awesome, CMake also). I got to the PR from this issue.


Everyone likes tmux but me (I like it secretly, and on servers)

I’m not even sure if this is how the world works, as every terminal emulator these days has tabs and all kinds of fun stuff, but my friend told me he uses tmux at work while he’s vimming (haha! he’s not using neovim!). I thought giving it a try on my local machine’s terminal. After all, you can split and vsplit terminals and look like a hax0r.

Worth mentioning and essential to the story is that I use awesome vim themes (which are also neovim themes, and I think I’ll stop mentioning neovim every 3 words neovim) that require the terminal to support 256 colors. While running nvim on the terminal stuff look amazing. However, running nvim under tmux proved to be a kakashka of a cat. Colors were a bit funny, and trying to <C-j>/<C-k> in CtrlP (which is actually good if you :help ctrlp-commands and learn its game) just didn’t show the selection that you were to consider. Horrors.

Now, let the terrible fixing begin.

$ echo "This is terrible:"
$ tmux -2

This forces tmux to run in 256 colors. But you don’t want to alias tmux to tmux -2 because it’s dirty.

What you wanna do is have your $TERM set to something interesting.

$ echo "This is also terrible:"
$ TERM=screen-256color tmux

It can actually be xterm-256color or something like that, there’s another guy with 256color I think.

So you can set this up in your .bashrc or .profile, but you shouldn’t! Why? Because the Arch people said:

Do not set the TERM variable from your ~/.bashrc or ~/.bash_profile or similar file.

~Arch people

But! Guess what?

I don’t care.

I put it in my ~/.profile but I don’t think it’s the correct place and I don’t feel like logging in/out to find out. Worse case I’ll put it in some .bashrc or its relatives.

This morning I went to the post office to get my MIDI keyboard pedal controller that I ordered from the Chinese people at It’s so awesome! Playing the keyboard with sustain is very freshening and it’s a dream coming true, after buying my MIDI keyboard in the first place (the M-Audio Code 49, which is ok), my first dream.

Have you encountered similar issues? Maybe something I wrote above is utter bullshit? Are you an Arch guy who wanna look down at me and snort? I’d be more than happy to hear from you and have your thoughts shared.

May you never eat kittens in a soup or with bread,