Підсумки 2017

Вже шостий раз пишу постик у цьому форматі. Одна з улюблених традицій, пов’язаних з цим блогом.

Now playing: “The Bells of Notre Dame”.
Досягнення року: опублікував першу нормальну індексовану наукову роботу! І побував на першій в житті серйозній міжнародній науковій конференції!
Подія року: 34c3 and FedCSIS 2017!
Настрій року: Спроби встати з ліжку, до якого ти прив’язаний
Зустріч року: Людина, з якою я кілька годин говорив про науку, комп.лінгвістику та меланхолію всередині колишньої будівлі для очищення стічних вод в центрі Праги
Геморой року: Моя дипломна робота
Країна року: Чехія
Місто року: Прага/Гент
Solvet sæclum in favilla
Dies iræ, dies illa
Слово року: Bitcoin
Подорож року: Прага, та автостоп додому.
Веб-сервіс року: http://www.onlinetimer.ru/
Колір року: Чорний.
Запах року: “Home is where the water tastes normal” — так само про запах квартир, який відчуваю зразу. Так от, запах квартири в Укр та запах гуртожитку.
Новина року: “We are glad to inform you that your paper Title: Automatized Generation of Alphabets of Symbols has been ACCEPTED as a SHORT PAPER.”
Книга року:Never eat alone“, “The defining decade
Фільм року: Casablanca! \

The bell tower, perhaps. And who knows? Our Lord works in mysterious ways.
Even this foul creature may Yet prove one day to be Of use to me_

Пісня року: La boheme, Leinen los, volle Fahrt Santiano, БУРШТИН, Гудбай Америка, Я хочу быть с тобой, Там шли два брата, Когда мы были на войне, ось цей запис афтерпаті Захара Мая, Эй ухнем, Go west, Piano man, Песня про дурачка.
Жах року:
Заклад року: Ярослава, Living room, та обидві столовки 7 корпусу НТУ “КПІ” ім.Сікорського (ха.)
Напій року: Чай все ще тримає позиції. + Швеппс, який допомагає від нудоти в дорозі краще ніж будь-що.
Їжа року: Курині відбивні після спортзалу та молочно-творожно-бананові шейки!
Транспорт року: Flixbus
Бренд року:
Антилюдина року:
МріяЦіль на наступний рік:  Опублікувати кілька НОРМАЛЬНИХ наукових робіт, замутити штук 5 маленьких недо-стартапів для passive income, та знайти фіксовану роботу.
Побажання собі на 2013 2014 2015 2016 2017 2018 рік: 
Здоров’я, спорт, харчування та сон як пріоритет, і щоб це мені допомогло прибрати туман. Рости у професіональному плані — Python, comp.linguistics, genetic algorithms. Буддизм і медитація “для душі”, і більше читати саме художньої літератури. Навчитися більш системно використовувати записи та нотатки, щоб покрити явні дефіцити моєї пам’яті.

Не боятися.

Life is a big glowing burning white piece of paper, and you can do with it whatever you want. (c) almost-Kerouac.

Risk, make errors, fail, start again.

Non abbiate paura.

Це буде моїм найкращим роком.


An early retrospective of 2017

The typical end-of-year thingy will also happen, as it has the last five years! But this spring I stumbled upon this, and I think it has potential! Changing “travel outside the US” and “how many states did you visit” to my cases, also not changing 2013 to 2017 everywhere, but othertwise leaving it as it is.

Now playing: Егор Летов – Про дурачка

1)Was 2017 a good year for you?

Yes, but not exceptionally so

2) What was your favourite moment of the year?

The summer trip to the Carpathians, Shypit waterfall and the Synevyr lake. (Ahaha, sounds so weird in English!)


Most of my camping trips and most of the travelling was absolutely awesome.1

On a professional level, FedCSIS 2017. It made me feel with my entire skin that science is awesome and that I am mostly able to do it, if I apply myself. That it’s one of the few areas where I will be able to capitalize on my strengths and compensate my weaknesses.

3) What was your least favourite moment of the year?

Everything leading to my diploma, my diploma itself, and the horrible results I got. It put me out of balance for more than a month.


Ideas for Quantified Self experiments

Once I will be reasonably confident that I have a semi-OK-baseline, it would be great to actually start doing stuff.

How to do self-experiments:

I’d also like to make predictions at the beginning, and to ask myself some question (how hard was it, do I feel deprived or tempted, etc). This will keep me focused

Those are the ones that I suspect will be very interesting and easy to do and formalize and with the biggest possible impact:

  1. Eliminating caffeine (ABAB)
    1. Semi-regularly but tracked except for tea (right now)
    2. Use caffeine+L-theanine systematically and see how (and when) does it influence the following: (for two weeks)
      1. CBS
      2. DNB
      3. typing speed
      4. General wellbeing(=mood)
    3. Phenibut 2-3 times in the middle of those two weeks
    4. Eliminate both caffeine and phenibut totally after that, for two weeks
  2. Jogging/exercise on sleep and mood the following day/night (I think I can do it at the same time as 1.)
  3. Creatine and citrulline on workouts and jogging (keep them consistent, 2-3 times a week, and just either take them or not, and see what happens)
    1. The workout/run itself
    2. Muscle soreness next day
  4. Food on cognition, especially a lot of it, especially junk food
    1. Not as experiment, just record it, and see what happens.

Not a priority but very interesting:

  1. No caffeine or alcohol for 30 days
  2. ISR every evening for 2 weeks
  3. Vegan for 30 days
  4. Intermittent fasting
  5. Mindfullness meditation every evening for 20 days

More abstract:

  1. Recite affirmations every day
  2. Activity alarm every 30 minutes
  3. MINDFULLNESS and outside
  4. Eat only on response of hunger
  5. Write 1000 words a day for two weeks

Over and out for now

Pchr8board (third update to the Dvorak Mirrorboard layout)


Now playing: Машингвери, штурмгевери


You might remember the last two posts about the Dvorak Mirrorboard layout. Well, I’ve updated it for the third time, and it’s gotten different enough that I think I can call it Pchr8board, just to have a better name and to reflect the fact that it’s made for my own personal use and not as some kind of general-purpose layout, though it could be a nice starting point for further changes.

Ladies and gentlemen, Pchr8board:


Keys without a legend have the same letters attached.

Otherwise, this is how you read the picture above:


The layout uses left alt as a Latch key, that, when pressed with left thumb, switches the letters to their corresponding right-hand letters, as per original Mirrorboard, but for Dvorak.

Other important changed keys are highlighted.

  • Enter and BackSpace are on the Tilde (“~”) key.
  • The Tab key allows to type forward slashes (“/”), mostly for searching, and diaereses (ümläüts) on the letter immediately following Shift+Latch+Tab (awkward at first, but not more so than the typical compose key approach).

The layout is usable as a typical Dvorak one, and I wanted to add a couple of more keys that I miss. For the right hand, there are:

  • Direction keys on the Latch+”htnc”, which are the base keys for the right hand
  • A Backspace key on Latch+r

I sorely needed both of those, since they required too much movement in a traditional layout. What’s also nice is that all the keyboard shortcuts still work, that is for the OS it doesn’t make much difference. Selecting words word-by-word using Ctrl+Shift+right_arrow as Ctrl+Shift+Latch+n still works, for example. In practice such chords are much less complicated and easier to get used to than they seem. Honest.

At first, I wanted to add the arrow keys to the left hand, but didn’t find a not-awkward way to do this. Next version, maybe. Another logical change would have been using hljk or someting, since this is what I use for my i3wm shortcuts, but, again, I think keeping it classic in this aspect would be more beneficial.

Installation instructions:

  • Copy to your key definitions folder (usually /usr/share/X11/xkb/symbols/)
  • Either just setxkbmap left3 or integrate it in whatever you are using (e.g. setxkbmap -option 'grp:rshift_toggle, compose:rctrl' left3,ru,ua)
  • In case you want to edit it, copy it every time to a new name. The layout gets cached to the DE, and for it to read the new changes you would have to reload X, unless it’s a new file. Or just during editing do xkbcomp mirrorboard.xkb $DISPLAY 2>/dev/null as recommended in the original post, maybe removing the last part to see any errors.

The layout is on Github.


// Pchr8board, formerly known Dvorak MirrorBoard (v3), based on MirrorBoard one-hand keymapping

// Original keymap: https://blog.xkcd.com/2007/08/14/mirrorboard-a-one-handed-keyboard-layout-for-the-lazy/
// Changes and details: https://www.pchr8.net/blog/2017/11/10/third-update-dvorak-mirrorboard-now-called-pchr8board/

default  partial alphanumeric_keys modifier_keys
  xkb_symbols   "dvorak-mirrorboard" {

// Using L-Alt as modifier instead of Caps lock.

// Additionally, it's a Latch key, not a Shift one, so pressing it once activates the group. 
    key <LALT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Latch ] };

// Mod+Space is return

// Tilde is Backspace by itself, 
// Mod+Tilde is Return 
    key <SPCE> { [ space, space, Return ] };
    key <TLDE> {    [     BackSpace,    asciitilde,    Return,    asciitilde    ]    };

// Mod+Tab gives a slash, which I use often (searching etc.) 
// Mod+Shift+Tab gives an umlaut on the next character

    key  <TAB> {    [ Tab,    ISO_Left_Tab, slash, dead_diaeresis]    };

    key <AD01> { [  apostrophe,    quotedbl, l, L] };
    key <AD02> { [    comma,    less,   r, R] };
    key <AD03> { [      period,    greater, c, C] };
    key <AD04> { [        p,    P, g, G        ]    };
    key <AD05> { [        y,    Y, f, F        ]    };

    key <AC01> { [        a,    A, s, S         ]    };
    key <AC02> { [        o,    O, n, N        ]    };
    key <AC03> { [        e,    E, t, T        ]    };
    key <AC04> { [        u,    U, h, H        ]    };
    key <AC05> { [        i,    I, d, D        ]    };

    key <AB01> { [   semicolon,    colon,z, Z] };
    key <AB02> { [        q,    Q, v, V        ]    };
    key <AB03> { [        j,    J, w, W        ]    };
    key <AB04> { [        k,    K, m, M        ]    };
    key <AB05> { [        x,    X, b, B        ]    };

    key <AE01> {    [      1,    exclam,        0,    parenleft    ]    };
    key <AE02> {    [      2,    at,        9,    parenright    ]    };
    key <AE03> {    [      3,    numbersign,    8,    asterisk    ]    };
    key <AE04> {    [      4,    dollar,        7,    ampersand    ]    };
    key <AE05> {    [      5,    percent,    6,    asciicircum    ]    };

    // Backspace and arrow keys
    key <AD08> { [        c,    C,    Up,     Up    ]    };
    key <AD09> { [        r,    R,    BackSpace,    BackSpace        ]    };
    key <AC07> { [        h,    H,    Left,    Left        ]    };
    key <AC08> { [        t,    T,    Down,    Down   ]    };
    key <AC09> { [        n,    N,    Right,    Right        ]    };

    key <AD06> { [        f,    F          ]    };
    key <AD07> { [        g,    G        ]    };
    key <AD10> { [        l,    L        ]    };
    key <AD11> { [    slash,    question    ]    };
    key <AD12> { [    equal,    plus        ]    };

    key <AC06> { [        d,    D        ]    };
    key <AC10> { [        s,    S        ]    };
    key <AC11> { [    minus,    underscore    ]    };

    key <AB06> { [        b,    B        ]    };
    key <AB07> { [        m,    M        ]    };
    key <AB08> { [        w,    W        ]    };
    key <AB09> { [        v,    V        ]    };
    key <AB10> { [        z,    Z        ]    };

    key <BKSL> { [  backslash,  bar             ]       };

    key <AE06> {    [      6,    asciicircum    ]    };
    key <AE07> {    [      7,    ampersand    ]    };
    key <AE08> {    [      8,    asterisk    ]    };
    key <AE09> {    [      9,    parenleft    ]    };
    key <AE10> {    [      0,    parenright    ]    };
    key <AE11> {    [     bracketleft,    braceleft    ]    };
    key <AE12> {    [     bracketright,    braceright        ]    };


The following resources helped me:




Exporting Cambridge Brain Sciences data

Now playing: Ry Cooder – Jesus on the Mainline

Cambridge Brain Sciences is a nice way to measure brain health. After quick (~10 minutes) tests, it gives you your score in three main areas (Verbal, Reasoning and Memory) and your C-Score, which is “the summary of your cognitive function”. It’s meant not as a semi-static measure (~IQ), but as a “how are you feeling today” kind of thing.

I use it both as a way to track/manage some depression symptoms, and as an objective way to measure how various things influence your mental performance (think exercise/nootropics/sleep/…). I wrote a bit about it and how I use it here.

It’s pretty awesome, but lacks a CSV export, or even just a way to get the data in a readable format, without having to hover on their charts. I wrote them (they are pretty responsive and open to suggestions, by the way) and they said that they will add that as a planned feature. I  didn’t want to wait (patience is not one of my virtues) and wanted to start running some analyses on the data I have, but didn’t want to it down manually. Hovering over the data points in their chart to get the individual data points would have been very very tedious.

Looking at the source code (and hoping to find some “data.json” or something similar), I saw that for their charts they use Highchart. After skimming the documentation, I wrote small and extremely basic javascript snippet that would output the dates and datapoints of the currently open chart:

chart=0; d='\n';
for (i=0;i < Highcharts.charts[chart].xAxis[0].categories.length; i++) {
d=d+(Highcharts.charts[0].xAxis[0].categories[i]+" "+Highcharts.charts[0].yAxis[0].series[0].points[i].y+"\n");

To use:

  1. Open the CBS dashboard
  2. Open the developer console.
  3. Paste snippet above


Then, if you need the verbal/memory/reasoning data, just switch to that tab and repeat the process.

For individual tests the process is very similar.

The snippet is the same, but you need to change the “chart” parameter. Switch to the “Tests” page, then right-click on the needed graph, “Inspect element”. You are looking for the data-highcharts-chart parameter:


This is the number you need. Set it in the first line of the snippet (chart=” “) and run.

To work with the data, I pasted it into LibreOffice calc with the following settings.


You need the “Separated by space” and “Merge delimiters”.

That way, it gets outputted to different cells, and you can copy the ones you need. I’m sure Excel can do something similar.

To merge the AM/PM on the other cell, I used the following formula to convert the time:


with B37 as cell with the time, and C37 as cell with AM/PM.

I hope I’m not infringing any terms of service, it’s not even scraping — just accessing the data already in the graphs. And I am not doing a tool or Greasemonkey script out of this, because I think that I won’t need to do this often (I add the data manually at the end of each tests if I do them), but if there’s interest, I could do something more “beautiful” and portable — let me know!