Підсумки 2016

Невже цьому 5 років, Боже мій…

Пишу ці рядки 31/12/2016, в Мюнхенському аеропорту за годинку до початку посадки.

UPD: Політ  Мюнхен->Варшава був дуже милим. В літаку крутять тихі джазові новорічні пісні через public announcement system, всі посміхаються, стюардеси ходять і роздають цукерки, пілот теж у явно чудовому настрої і дуже-дуже багато балакає ні про що. Чи не вперше за ці пару тижнів відчув ту саму атмосферу. До 2017 року менше ніж півдоби. Продовжую писати у аеропорту ім. Шопена у Варшаві у затишній кафешці

Now playing: “Нанэ цоха” та ця чудова пісня без відомої мені назви з “Табор уходит в небо”.
Досягнення року: почав напів-серйозно займатися здоров’ям, долаючи тонни бюрократичних перешкод
Подія року: 33C3, про це буде окремий пост!
Настрій року: Перечікування дощу, виход з мертвої петлі
Зустріч року: Я версії $дата-10 року народження
Геморой року: хай будуть ті самі бюрократичні перешкоди, а так відносно тихий рік без очевидних великих стресів
Країна року: Україна
Місто року: Фуртверк!
Слово року: Melancholy
Подорож року: Гамбург і ця надзвичайно довга дорога додому
Веб-сервіс року: http://pchr8.net (сам себе не похвалиш, …)
Колір року: #184e7b
Запах року: Арома-лампи, композиції “ясный ум” та масло ладану; приємний дим чергової інкарнації моєї воскової свічки після тушіння
Новина року: див. “Жах року”.

Оставь ее, баро, погубит она тебя и никто не сможет тебя спасти из беды, даже я не смогу. Оставь ее, баро, она же ведьма! 1http://cinematext.ru/movie/tabor-uhodit-v-nebo-1976/?page=4 

Книга року: Die Biographie über Steve Jobs; To kill a mockingbird; Wir Kinder from Bahnhof Zoo; Sophies Welt; The autobiography of Benjamin Franklin
Фільм року: “Табор уходит в небо”
Пісня року: Крематорий – Мусорный ветер; “Табор уходит в небо” Каспийского Груза;
Жах року: Trump&Brexit
Заклад року: JB @ München + столовка у Школі
Напій року: Чай — вкотре.
Їжа року: Заморожена піца; Kinder County; заморожені булочки, які zum Fertigbacken
Транспорт року: Benz Express, рейс Київ-Лейпциг-Київ
Бренд року:
Антилюдина року: так класно, що хвилин 5 думаю над цим. Можливо таки рухаюсь у правильному напрямку у житті
МріяЦіль на наступний рік:  Закінчити КПІ, активно вчитись і вирішити, що мені потрібно в житті (в тому числі в плані магістратури). Отримувати нормальні оцінки, щоб спростити вибір магістратури. Знайти стимулюючу роботу.
Побажання собі на 2013 2014 2015 2016 2017 рік: 
Хм. По-максимуму стабілізуватись, дуже-дуже класно спати, гарно харчуватися, тримати себе в найкращій можливій формі, займатися спортом, не давати моху рости і ставати теплим і затишним. Я дуже непогано собі уявляю, що саме робити, щоб прибрати туман з голови — ну от саме це все і робити. Почати активно creating value, мутити масштабність рівня 7-9 класу. Вчитися caring about things знову, чисто вольовим зусиллям цікавитися всім, поки воно не стане більш-менш звичкою.

(У)

Footnotes   [ + ]


Pentachronological #0012 — 10 sex appeal tips by your friendly neighborhood ghost

Пентахронология (Pentachronological) — Талмуд

(ибо назвать Библией было бы слишком неинтересно)

ДЕЙСТВУЮЩИЕ ЛИЦА (в порядке появления):

ЛУИЗА, бывший врач
ЕВГЕНИЙ, рекетир-адвокат-милиционер
ГАМЛЕТ, привидение, друг Луизы
ВАСЯ, бывший главврач
ПОЕТ, поэт-диссидент, телемит-герметик-теософ

МЕСТО ДЕЙСТВИЯ: Середина 90-х, Город, заброшенная психбольница. 1http://www.romeo-juliet-club.ru/shakespeare/romeojuliet_pasternak1.html#Пастернак 2 Как все начиналось

Read more...

Updated Fiamma “Add link” bookmarklet (now there are _two_ of them!)

Now I have a bookmarklet that gets triggered when I’m on a page I want to bookmark. It window.open()’s to the wiki page named after the page title and passes two parameters to the template: the title and the URI of the page. The template gets preloaded1More here: https://www.mediawiki.org/wiki/Manual:Creating_pages_with_preloaded_text .

javascript:window.open('http://pchr8.net/f/index.php?title='+encodeURIComponent(document.title)+'&action=edit&preload=Template:NewLink&preloadparams[]='+encodeURIComponent(location.href)+'&preloadparams[]='+encodeURIComponent(document.title))

The template itself looks pretty trivial. (Note to self: Templates are case sensitive?!)

Then we get a page with an URI and a title. I fill the additional values like this:

http://ronburk.blogspot.de/2009/09/commas-depend-on-linebreaks.html
Ron Burk: Commas Depend on Linebreaks
6


language, linguistics, internet, style, etiquette, mildly interesting

Language
Style

Then I run the bookmarklet, which transform it to the following:

{{B|#124;#124;
http://ronburk.blogspot.de/2009/09/commas-depend-on-linebreaks.html

|#124;#124;Ron Burk: Commas Depend on Linebreaks
|#124;#124;6
|#124;#124;5
}}
{{#set:
k=language, linguistics, internet, style, etiquette, mildly interesting
|#124;#124;+sep=, }}

[[Category: Language]]
[[Category: Style]]

Then I could add something, and then save it.

The new bookmarklet now understands an unlimited number of keywords and categories.

The updated bookmarklet:

var lines = '';
var lines = $('#wpTextbox1').val().split('\n'); 
for (i=0; i<7; i++) {
if (typeof lines[i] == 'undefined') {lines[i]='';}
}
 
if (!ValidURL(lines[0])) {alert(lines[0]+" doesn't look like a valid URL.")};
if (lines[1]=='') {lines[1]=lines[0]};
if (lines[2]=='') {lines[2]='5'};
if (lines[3]=='') {lines[3]='5'};
 
if (parseInt(lines[2]) > 10 |#124;#124;|#124;#124; parseInt(lines[2])<0 |#124;#124;|#124;#124; isNaN(lines[2])) {
alert(lines[2]+'is not a valid value, setting to default 5');
lines[2]='5';
}
 
if (parseInt(lines[3]) > 10 |#124;#124;|#124;#124; parseInt(lines[3])<0 |#124;#124;|#124;#124; isNaN(lines[3])) {
alert(lines[3]+'is not a valid value, setting to default 5');
lines[3]='5';
}

var keywords="\n{{#set:\n";
keywords+="k=";
keywords+=lines[5]; 
keywords+="\n|#124;#124;+sep=, }}\n";

var categories="\n";
for (i=0; i<lines.length-7; i++){
 categories+="[[Category: ";
 categories+=lines[i+7];
 categories+="]]\n";
}

var text="{{B|#124;#124;\n"+lines[0]+"\n|#124;#124;"+lines[1]+"\n|#124;#124;"+lines[2]+"\n|#124;#124;"+lines[3];
if (lines[4]!='') text+="\n|#124;#124;"+lines[4];
text+="\n}}";
text+=keywords;
text+=categories;
 
var field = document.getElementById('wpTextbox1');
var textArray = field.value.split("\n");
textArray.splice(0, lines.length);
textArray[0] = text;
field.value = textArray.join("\n");


function ValidURL(str) {
var pattern = new RegExp('^(https?:\\/\\/)?'+
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|#124;#124;'+
'((\\d{1,3}\\.){3}\\d{1,3}))'+
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+
'(\\?[;&a-z\\d%_.~+=-]*)?'+
'(\\#[-a-z\\d_]*)?$','i');
return pattern.test(str);
}

Todo:

Make it check for bad characters (think “ #124;#124;”, which mediawiki doesn’t like in names and parameters, and everything else here: https://www.mediawiki.org/wiki/Manual:Page_title; make it do something for empty titles, so I don’t get redirected to the main page; put together all of this and upload it to github?

The final bookmarklet looks like this, in one line to make it easy to copypaste:

{% highlight javascript %} javascript:var lines = ‘’; var lines = $(‘#wpTextbox1’).val().split(‘\n’); for (i=0; i<7; i++) { if (typeof lines[i] == ‘undefined’) {lines[i]=’’;} } if (!ValidURL(lines[0])) {alert(lines[0]+” doesn’t look like a valid URL.”)}; if (lines[1]==’’) {lines[1]=lines[0]}; if (lines[2]==’’) {lines[2]=’5’}; if (lines[3]==’’) {lines[3]=’5’}; if (parseInt(lines[2]) > 10 |#124;#124;|#124;#124; parseInt(lines[2])<0 |#124;#124;|#124;#124; isNaN(lines[2])) { alert(lines[2]+’is not a valid value, setting to default 5’); lines[2]=’5’; } if (parseInt(lines[3]) > 10 |#124;#124;|#124;#124; parseInt(lines[3])<0 |#124;#124;|#124;#124; isNaN(lines[3])) { alert(lines[3]+’is not a valid value, setting to default 5’); lines[3]=’5’; } var keywords=”\n{{#set:\n”; keywords+=”k=”; keywords+=lines[5]; keywords+=”\n|#124;#124;+sep=, }}\n”; var categories=”\n”; for (i=0; i<lines.length-7; i++){ categories+=”[[Category: “; categories+=lines[i+7]; categories+=”]]\n”; } var text=”{{B|#124;#124;\n”+lines[0]+”\n|#124;#124;”+lines[1]+”\n|#124;#124;”+lines[2]+”\n|#124;#124;”+lines[3]; if (lines[4]!=’’) text+=”\n|#124;#124;”+lines[4]; text+=”\n}}”; text+=keywords; text+=categories; var field = document.getElementById(‘wpTextbox1’); var textArray = field.value.split(“\n”); textArray.splice(0, lines.length); textArray[0] = text; field.value = textArray.join(“\n”); function ValidURL(str) { var pattern = new RegExp(‘^(https?:\/\/)?’+ ‘(((a-z\d)\.?)+[a-z]{2,}|#124;#124;’+ ‘((\d{1,3}\.){3}\d{1,3}))’+ ‘(\:\d+)?(\/[-a-z\d%_.~+])’+ ‘(\?[;&a-z\d%_.~+=-])?’+ ‘(\#[-a-z\d_]*)?$’,’i’); return pattern.test(str); } {% endhighlight %}

Unrelated to the above:

Apparently, after N years of studying programming and tweaking/optimizing whatever incarnation of my workspace, I’m getting it. Like, you can really solve your own problems by writing your own code?! Wow!

What happens next? I’m gonna go around writing extensions and stuff? How was the quote: “Be a man, write your own drivers!”

Regardless, this small and dead-simple bookmarklet that solves my own problems has done much more for my motivation than anything else I’ve ever tried in the last couple of years.

Wohoo!

(Y)

Footnotes   [ + ]


Pentachronological 11 | Это мне напоминает анекдот, который я слышал в Латвии в 1967 году