_   _ ____ _  _ ___  _  _
 \_/  |    |__| |__] |\ |
  |   |___ |  | |__] | \|


WTF is going on there?

So, this is my blog. Since I like
plaintext and minimalism, I decide to
keep blog in simple plain text file.

CONTACT INFO: ychbn at tutanota dot de

!!!!!   Warning! Bad english   !!!!!
(I try to learn, so I decide to 
write some posts in english).


= 2020-05-24 Syncthing istead  services
----------------------------------------

Now I use syncthing for synchronization
between home laptop and android device.

Primary for notes and todo-stuff(todo.txt,
archive.txt).

Say goodbye to private github repositories,
dropbox and so on and so on.



= 2020-05-17 Todo.txt
---------------------

Stop using stupid cloud-based
todo-services. Go plain, use todo.txt.

Actually, it's hard to use todo.txt if
you have more than 50 lines in your file.
So, you can't live without some apps even
with this simple approach. And syncing between
PC and android device - another pain in the
ass. But, I will try.

= 2020-04-01 Plain text twitter
------------------------

Twitter in plaintext? Goooood.
https://twtxt.readthedocs.io/en/stable/

= 2020-03-24 Sick
-----------------------
Hope it's not coronavirus.

Anyway, pornhub offfers free access to
pornhub premium until 04.23. That's will
give me the power to get well.

= 2020-03-17 Drone and ambient music
------------------------------------

Love with drone and ambient music since
about 2014. All starts from Robert Rich's
Somnium. Interesting thing - I don't want
to listen this kind of music on regular
basis. Need special mood.

Favorites list:

- Somnium (Robert Rich)
- Perpetual (Robert Rich)
- Metavoid (Lustmord)
- 1979 (Deru)
- Deep Frieze (Sleep Research Facility)
- District Delta (track, Cisfinitum, athmosphere - 10/10)

= 2020-02-22 Web sites with minimalistic web design
---------------------------------------------------


I like minimalism in web design. Not only for
eyes-pleasure look and feel, but also for speed and
a clear understanding of the idea.


On this page I will list all sites I like with simple and minimalistic design.

- Richard Stallman personal page(https://stallman.org)
- V8 JavaScript engine blog(https://v8.dev)
- ArXiv(https://arxiv.org)
- Some funny site from neocities(https://digdeeper.neocities.org/)

= 2020-01-07 Openssl for text files encryption
----------------------------------------------

Warning! Bad english (I try to learn, so I decide to write some posts in
english).

In one of my previous posts I described my workflow for syncing and
editing text files via github and private repository.

Now I decide to encrypt my notes before sync. There are many
tools that can do this, but openssl is my choise. It's simple,
already installed in most linux distros, and *works* on Windows.

So, this is how files are encrypted:

---
openssl aes-256-cbc -a -salt -in textfile.txt -out textfile.txt.enc
---

Then openssl ask for password.

To decrypt file:

---
openssl aes-256-cbc -a -d -in textfile.txt.enc -out textfile.txt
---

Work with openssl on Windows

In Windows I work with openssl via git-bash.exe. This is the
bash emulator wich comes with git for Windows.

To encrypt file with openssl in Windows, following command are used:

---
winpty openssl aes-256-cbc -a -salt -in textfile.txt -out textfile.txt.enc
---

Same way for decrypt file:

---
winpty openssl aes-256-cbc -a -d -in textfile.txt.enc -out textfile.txt
---

= 2019-11-27 My vim commands
----------------------------

Warning! Bad english (I try to learn, so I decide to write some posts in
english).

Vim is really powerful editor with huge and easy to remember
commands. But today I noticed that in my daily editing
tasks I use only small subset of them. It's really interesting to me,
so I decide to document what I type in my vim. So, here is my top:



- dd - delete line
- dw - delete to the end of word
- w - move forward by word
- b - move backward by word
- O - insert empty line above current line
- o - insert empty line after current line
- 0 - move to the beginning of the line
- A - move to the end of the line and switch to /insert/ mode
- cw - replace word with another one
- rX - replace char under cursor with char X

It's just ten commands, but I feel very comfortable
when I use them.

= 2019-11-10 Zim as replacement for google keep
-----------------------------------------------

Just tried zim as system for keeping all my notes in one place. It's really
nice:

Warning! Bad english (I try to learn, so I decide to write some posts in
english).

1. All info stored in plain-text-files
2. Not org-mode.

For me, this is the best solution for now.
I use plain-text files right now, but it's hard to
insert links to another text files. Yes, I can use
vim's ```gf``` feature or emacs ```find-file-at-point``` command, but
I need to *type* filename. In zim, It's easy because of gui modal window
where I can select file to link.

= 2019-09-22 Why I don't like standart 'open file' dialogs
----------------------------------------------------------

Warning! Bad english (I try to learn, so I decide to write some posts in
english).
Actually, I hate them. I never saw a good, user-friendly dialog window yet(based
on my experience with different Linux distros and Windows).


They looks the same. Left panel with quick access to different places of your
PC, and central panel with files list. But hey - what is wrong with this design?
I agree, maybe this is the best solution for ‘choose file to open’ task, but
theese dialogs always used from another program. And I think this is the main
problem.

Different hotkeys, different look, all is different. That’s why (in my opinion)
vim and emacs does not use them - it’s break user experience.

= 2019-09-14 Back to linux
--------------------------

Warning! Bad english (I try to learn, so I decide to write some posts in
english).

Tried to use Windows on laptop for 2 weeks. Arghh, no. Not because Windows is
bad, but because I used to work with some set of programs, and their usability
on linux is very fine. But not on Windows.

To work with git on Windows I need to download special build, which go with
linux terminal emulator(msys32). And I have to run git-bash.exe If I want to use
git. This window must always be open for comfortable work(I don’t want to write
tons of cd commands to change working directory).

This site is generated with Jekyll, so, I need Ruby to make this work on
Windows. Ok, googling… Yes, Ruby Installer on Windows should work.link to
project. This installation provides windows command prompt with ruby integrated
into it. Again, I need to run this terminal separately from git terminal. Also,
I have to use Windows commands, not commands from linux. For example, to change
current directory in git window, I print command cd D://projects. Not so easy on
Windows with ruby terminal. First, I need to print D:. And only then, I can
execute cd projects. According to this answer on superuser:

    Going back to the days of DOS, there’s a separate “current directory” for
    each drive. cd D:\foldername changes D:’s current directory to the
    foldername specified, but does not change the fact that you’re still working
    on the C: drive.

Maybe I should do some research for GUI applications on Windows, thats fit my
needs, but not today.

= 2019-09-07 Syncing and editing text files with github
-------------------------------------------------------

Warning! Bad english (I try to learn, so I decide to write some posts in
english).

Almost all of my notes and todo-lists lives in plain text files. So, it’s always
was a problem to sync this files across all devices.


Yes, I know about dropbox and other cloud things. But the problem is that I
haven’t access to Dropbox from my office computer - security department gone
crazy.

I tried to split all information into “Work” and “Not Work” types, but this
method sucks - sometimes at work I want to add something to “Not Work” category,
and vice versa.

Few days ago I decide to create private github repo for my text files, just for
version control. Later, I opened the repo in browser and seen the edit button at
the top right corner of frame with source code. Click… Wow, I can edit files
online and commit them! I’m not heavy github user, and really didn’t know about
this feature.

That’s all what I need - At home, I just fetch repo, commit when I want to sync
data. On android device I can edit files directly from browser, at work I have
access to github, so I can edit files from browser too.

I hope that this will be my last technology swith to syncing my notes and todos.

= 2019-04-22 Книжный марафон. Первая неделя
-------------------------------------------

Кхм-кхм, не все идет по плану в этой жизни.
"Маятник Фуко" даже не начинал читать, вместо этого
был прочитан рассказ "Король в желтом" за авторством Рэймонда Чандлера.
Кстати, хотел я прочитать совсем про другого кололя в желтом - того, который
создан Робертом Чамберсом; про того, который  потом фигурировал в
лавкравтовских произведениях, и который был задействован в первом
сезоне "Настоящего детектива".

После этого был прочитан роман "Случай Чарльза Декстера Варда" Лавкрафта.

Все, теперь берусь за маятник.

= 2019-04-14 Книжный марафон
-----------------------------

Последнее время все больше посещают мысли о том, что я
слишком мало читаю. Точнее, мало читаю книг. Постоянные
залипания в смартфоне не считаются. В связи с этим было
решено устроить себе своеобразный книжный марафон. Его цель -
читать по одной книге в неделю.

Конечно, тут сроки могут варьироваться - одну прочитаешь за 2 дня,
другую - за 9 дней. Но в целом правила более-менее будут соблюдены.

Сначала пранировалось составить список книг, которые планируется
прочитать, но потом эта идея была оставлена - не интересно, когда
знаешь, что будешь читать. Каждый новый кандидат на чтение будет выбираться
после прочтения предыдущего. Ну а номером 1 был выбран роман  "Маятник Фуко"
за авторством Умберто Эко.

= 2019-03-02 Org-mode отстой
-----------------------------

Как язык разметки. Нет, ну действительно же отстой.
Такое ощущение складывается, что его специально создали
сложным, чтобы только в Emacs работал.

Самый простой пример - это вставка блока кода. для этого
нужно использовать связку строк:

#+BEGIN_SRC
print "Я очень сложный язык разметки";
#+END_SRC

Почему многим нравится org-mode? Да просто потому, что в 
Emacs к нему прикручено очень много функционала. И все это
красиво раскрашивается. Здорово, людям нравится, когда раскрашивается.
Только если выключить подсветку синтаксиса, хрен ты разберешься даже
в не самом сложном org-документе.

Ок, если пользоваться базовыми элементами разметки, то org-mode может
и не сильно сложнее того же markdown или любого другого языка, но
его использование буквально подразумевает, что вы будете пользоваться
абсолютно ненужными элементами. Без них org-mode перестанет быть самим
собой.

О каких элементах я говорю? Их бесчисленное множество, я считаю.
Самый бесящий меня, с которыми я столкнулся, используя org-mode всего лишь на
протяжении
года-полтора это:

Наличие состояний в списках. Таким образом в org-mode решен вопрос
со списком задач. Там можно на каждый элемент списка поназначать
кучу вариантов состояний(напр. Done, Todo, Waiting, In_progress, ....).
При этом в org-mode сообществе как правило принято логгировать изменение
этих состояний. Это выглядит примерно так:

** DONE Ненежная задача, зато круто смотрится, как у тру-задрота
   CLOSED: [2019-01-14 Mon 00:17]
   - State "DONE"       from "IN_PROGRESS" [2019-01-14 Mon 00:17]
   - State "IN_PROGRESS" from "NEXT"       [2019-01-14 Mon 00:17]

Т.е. под каждой задачей добавляется еще и история того, как задача
меняла свои состояния. Зачем это нужно? Ну серьезно, зачем? Ключевое
слово в списке задач, списке покупок, списке того, что хочешь прочитать -
это слово *Список*. Да, блин, простой список. Вот и все. Зачем этот
ненужный мусор?

Вдобавок ко всему этот язык как правило не очень удобно конвертировать
в тот же html. Нет, можно конечно, но удобно это сделать только из
Emacs. Остальные решения - не трушные считаются.

Как я считаю, основной проблемой org-mode является то, что его
создатели считают, что он способен решить все задачи, которые
перед ним можно поставить. Как результат - слооооожность и **громоздкость**.

Что лучше? На мой взгяд, все, что угодно будет лучше. Markdown лучше,
Asciidoctor лучше, даже обычный текст, использующий для семантической
разметки только отступы и пустые строки будет лучше, чем org-mode.

= 2018-09-29 Спам на электронную почту
---------------------------------------

Как всегда - стоит засветить в интернете свой e-mail, как туда тоннами
приходит спам. Как же он выглядит сейчас? - Да также, как и всегда, наверное,
и не изменится, пока пользователи не станут думать, что они делают.

http://ychbn.com/assets/spam_1.png

http://ychbn.com/assets/spam_2.png

http://ychbn.com/assets/spam_3.png

И подобных вариаций сообщений больше десятка пришло. По ссылкам, которые
отправляются в почте - zip архив, в нем файл с расширением *.scr и
соответствующим именем, что-то вроде "счета по оплате за месяц".

Понятно, что более-менее опытный пользователь на такое не поведется, но!
Как много людей обращают внимание на расширение файла? Правильно, не очень
много. 
= 2018-09-27 Развертывание сайта на Jekyll через FTP(v2)
--------------------------------------------------------

Уже раньше я писал о том, что для деплоя блога на Jekyll использую
самописный скрипт. Оказывается, не нужно было изобретать велосипед, - все уже
сделано за нас.

Для автоматического деплоя на FTP можно использовать гем ```glynn```.

Для начала установим сам ```glynn```:

gem install glynn

После этого добавим в наш _config.yml информацию об FTP-соединении:

ftp_host: 'you-ftp-host'
ftp_dir: 'dir-to-deploy'
ftp_passive: false

# optional
ftp_port: 21
ftp_username: 'ftp-username'  # default read from stdin
ftp_password: 'ftp-password'  # default read from stdin

Здесь параметры с именем пользователя и паролем необязательны,
просто если их здесь не указать, то придется указывать их
каждый раз.

Вот и все. Теперь для того, чтобы отправить ваш сайт на FTP, нужно
выполнить из корневой директории проекта c сайтом следующую команду:

glynn


= 2018-09-19 Альтернативные замены популярным сервисам
------------------------------------------------------

Список альтернативных сервисов, о которых(возможно) вы никогда не слышали.

 - twitter - mastodon(https://joinmastodon.org/)
 - facebook - diaspora(https://diasporafoundation.org/)
 - youtube - dtube(https://d.tube/)

= 2018-07-28 Генерация карт в Dwarf Fortress

Меня постоянно завораживали карты в рогаликоподобных
играх, которые каждый раз генерируются абсолютно по-разному.

Я, конечно, играл в rogue, nethack, и еще подобные им игры.

Но совсем недавно решил поиграть в Dwarf Fortress, и карты, которые
там генерируются, меня просто поразили. Я не знаю, почему. Может
потому, что там разные элементы имеют различные цвета, что добавляет
интереса к просмотру окрестностей, а может и в том, что вместо темных
подземелий в наличии имеются реки, моря и леса.

В общем, в ближайшее время буду начинать свое погружение в новый мир.

Пример сгенерированного мира в Dwarf Fortress:

http://ychbn.com/assets/df_map_medium.png)

= 2018-05-14 Запись действий с экрана в GIF на linux
----------------------------------------------------

Для записи происходящего на экране в изображение
формата gif на linux можно воспользоваться программой
`byzanz`.

Проблема в том, что для записи с экрана `byzanz` принимает
координаты X и Y, а также значения ширины и высоты области, с которой
нужно производить захват.

Решить эту проблему помогает скрипт `byzanz-record-window.sh`.
Найти одну из его вариаций легко на гитхабе. Вот пример работающего скрипта:

#!/bin/bash

# Delay before starting
DELAY=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
    paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}

# Duration and output file
if [ $# -gt 0 ]; then
    D="--duration=$@"
else
    echo Default recording duration 10s to /tmp/recorded.gif
    D="--duration=10 /tmp/recorded.gif"
fi
XWININFO=$(xwininfo)
read X <<< $(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y <<< $(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W <<< $(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H <<< $(awk -F: '/Height/{print $2}' <<< "$XWININFO")


echo X=$X

echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; do
    echo $i
    sleep 1
done

beep
byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D
beep

Чтобы записать все происходящее на экране, нужно сохранить данный скрипт
под именем ```beyzanz-record-window.sh``` в домашнем каталоге, после
чего выполнить команду

./beyzanz-record-window.xh 30 ~/record.gif

После ввода данной команды нужно будет щелкнуть мышкой
по окну приложения, действия в котором нужно записать.
Скрипт начнет запись с задержкой в 10 секунд, после чего
будет произведена запись продолжительностью в 30 секунд.
Результат будет сохранени в файле `~/record.gif`.

http://ychbn.com/assets/recorded.gif

= 2018-04-22 Разбивка большого файла на части в linux
-----------------------------------------------------

Часто возникает необходимость разбить большой файл
на части. Я для этого использую следующую команду:

split --bytes 500M --numeric-suffixes --suffix-length=3 filename filename.

Данная команда разобьет файл на части по 500 МБ, при этом автоматически
добавит суффиксы для нумерации частей(в данном случае суффикс будет состоять
из трех символов, т.е. будет равен 000, 001, и т.п)

= 2018-01-14 Обмен файлами между linux и android-устройством
----------------------------------------------------------

На данный момент большинство android-устройств работают по 
протоколу MTP(https://en.wikipedia.org/wiki/Media_Transfer_Protocol)
для обмена файлами с компьютером. А это значит,
что подключить их как обычные usb-устройства не получится.

Большинство дистрибутивов сами корректно определяют устройства
MTP, но иногда все-таки необходимых пакетв в дистрибутиве нет.

Один из самых простых способов - использовать программу
android-file-transfer.

Приложение имеет минимаистичный графический интерфейс,
и работать с ним проще некуда.

При подключении телефона он будет автоматически обнаружен
и в окне приложения отобразится список файлов.

Скрин:

http://ychbn.com/assets/android-file-transfer.png)

Для загрузки в телефон данных используются кнопки 
"Upload Album", "Upload Directory" и "Upload".


= 2018-01-08 Развертывание сайта на jekyll c удалением exif-данных
------------------------------------------------------------------

Ранее я уже писал о том, как можно по-быстрому задеплоить сайт
на jekyll при помощи простого perl-скрипта, а также как удалять
exif-данные из изображений.

Для того, чтобы еще больше облегчить себе жизнь, можно 
воспользоваться простеньким скриптом, который после 
удаления exif просто вызывает скрипт для
переброски содержимого сайта на FTP.

#!/usr/bin/sh

for i in ./assets/*.jpg;
do
    exiftool -all= "$i";
done

jekyll build && ./deploy.pl



= 2018-01-03 Удаление exif-данных из изображений в Linux
--------------------------------------------------------

Для того, чтобы работать с exif-данными в изображениях,
можно использовать программку под названием `exiftool`.

Для удаления exif-данных из изображения используется 
следующая команда:

exiftool -all= image.jpg

Как правило, возникает необходимость удалять метадынные не
из одного изображения, а из многих.

К примеру, для удаления exif со всех изображений  c расширением jpg в 
директории assets в корне блога на jekyll, я использую следующий код:

#!/usr/bin/sh

for i in in assets/*.jpg;
do
    exiftool -all= "$i";
done


= 2017-12-29 Развертывание сайта c Jekyll на FTP
----------------------------------------------

Для Jekyll отлично подходит хостинг без использования баз данных,
языков программирования и т.п, т.е. хостинг статичных страниц.
Собственно, все развертывание сайта в таком случае сводится к 
его копированию в определенную директорию на FTP.

Вот что говорит документация jekyll:

>To upload a Jekyll site to a web host using FTP, simply run the jekyll build
>command and copy the contents of the generated _site folder to the root folder
>of your hosting account. This is most likely to be the httpdocs or public_html
>folder on most hosting providers.

Т.е. для того, чтобы развернуть свой сайт прямо на ftp,
нужно выполнить команду `jekyll build`, после чего
вручную скопировать содержимое директории `_site` на FTP
(конкретные наименования корневых директорий могут быть разными,
например `httpdocs`, `htdocs`, `public_html`).


Ручное копирование на FTP

Для того, чтобы скопировать нужные файлы на FTP, можно воспользоваться
файловым менеджером Midnight Commander.

Для этого после его запуска 

1. `F9 - lp`
2. Вводим данные для логина в формате `username:password@host`
   (т.е. строка может выглядеть так -
   `myusername:123456@ftp.service.location.net`)
3. Заходим в нужную директорию на FTP.
5. Клавишей `tab` переключаемся на правую панель
6. Выделяем через `shift` все файлы, которые находятся в директории `_site` и
нажимаем `F5`(копировать)

Автоматическое развертывание

Ниже показан код скрипта, который позволяет развертывать сайт на ftp 
хостера автоматически. 

UPD 2018-09-27:

Сейчас я использую гем `glynn`, и параметры он может брaть
напрямую из _config.yml


```perl
#!/usr/bin/perl

use strict;
use warnings;
use Net::FTP;
use Net::FTP::Recursive;
use File::Path;
use Getopt::Long;

my $host = 'ftp.ezio.neolocation.net';
my $username = 'username';
my $password = 'password';
my $rootpath = '/htdocs';
my $backup = '';
my $backuppath = './backup';
my $contentpath = './_site';

GetOptions("host=s" => \$host,
           "username=s" => \$username,
           "password=s" => \$password,
           "rootpath=s" => \$rootpath,
           "backup" => \$backup,
           "backuppath=s" => \$backuppath,
           "contentpath=s" => \$contentpath);

sub backup {
    my ($connection,$backuppath, $rootpath) = @_;
    my $rmcount = File::Path::remove_tree($backuppath);
    mkdir $backuppath;
    chdir $backuppath;
    $connection->cwd($rootpath) or die "Cannot change working directory to
    $rootpath";
    $connection->rget();
    chdir '../';
    return $rmcount;
}

sub upload {
    my ($connection, $rootpath, $contentpath) = @_;
    $connection -> cwd($rootpath) or die "Cannot switch ftp directory to
    $rootpath";
    $connection -> rdelete();
    chdir $contentpath;
    $connection -> rput();
    return;
}

sub _connect {
    my ($host, $username, $password) = @_;
    my $ftp = Net::FTP::Recursive->new($host, Debug => 0) or die "Cannot connect
    to $host";
    $ftp->login($username, $password) or die "Cannot login to ftp";
    $ftp->binary();
    return $ftp;
}


my $ftp = _connect($host, $username, $password);

if ($backup) {
    backup($ftp, $backuppath, $rootpath);
}

upload($ftp, $rootpath, $contentpath);

$ftp->quit;
```

Этот скрипт нужно скопировать в корневую директорию Jekyll- сайта и 
дать возможность запускать его без указания слова ```perl```:

```bash
chmod +x deploy.pl
```

Если скрипт был запущен с опцией `--backup`, 
то сначала будет создан бэкап указанной корневой директории(той, что на ftp) в
папку `backup`,
после чего удаляет все содержимое корневой директории(`htdocs`) и копирует туда
содержимое 
директории `_site`. Наименование директории, в которую будет делаться бэкап,
можно
задать так: `--backuppath=backupfolder'.

Скрипт написан быстро и грязно, но позволяет делать то, что нужно запуском
команды из jekyll директории сайта:

./deploy.pl

Для того, чтобы собрать сайт и сразу же отправить его на ftp,
можно использовать команду:

jekyll build && ./deploy.pl

= 2017-12-24 Бэкап gpg-ключей
-----------------------------

Для того, чтобы сделать бэкап всех ключей gpg,
достаточно сохранить в безопасное место
директорию .gnupg.

cp -r ~/.gnupg safe_place_for_backup

Где safe_place_for_backup  - очень
безопасное место, где будет храниться
бэкап.

Для восстановления достаточно скопировать 
эту директорию обратно в домашний каталог пользователя.

= 2017-12-22  Легкая работа с архивами из консоли в linux
---------------------------------------------------------

Распаковка архивов

Довольно часто возникает необходимость работы с архивами из терминала linux.
Так как постоянно вводить нудные команды для их распаковки лень,
на просторах интернета был найден следующий код, который позволяет
распаковывать одной короткой командой большое количество разных архивов.


x(){
    if [ -f $1 ] ; then
            case $1 in
                    *.tar.bz2)   tar xvjf $1    ;;
                    *.tar.gz)    tar xvzf $1    ;;
                    *.bz2)       bunzip2 $1     ;;
                    *.rar)       unrar x $1     ;;
                    *.gz)        gunzip $1      ;;
                    *.tar)       tar xvf $1     ;;
                    *.tbz2)      tar xvjf $1    ;;
                    *.tgz)       tar xvzf $1    ;;
                    *.zip)       unzip $1       ;;
                    *.Z)         uncompress $1  ;;
                    *.7z)        7z x $1        ;;
                    *)           echo "Unable to extract '$1'" ;;
            esac
    else
            echo "'$1' is not a valid file"
    fi
}

Этот код можно добавить в файл .bashrc.

Для того, чтобы новой командой можно было пользоваться без повторного входа в
систему, можно выполнить следующую команду:

source ~/.bashrc

Теперь распаковывать архивы можно так:


x somearchive.tar.gz

Очень удобно.

Создание архива

Чаще всего у меня есть необходимость создавать tar.gz архивы, поэтому для
удобства использую следующий код:

tgz(){
        tar -czf "$1.tar.gz" $1
}

И создавать архивы из директории или файла можно так:

tgz directory_to_compress

= 2017-12-19  Tutanota - хорошая зашифрованная почта
----------------------------------------------------

Если нужен хороший сервис электронной почты, да 
чтобы еще и надежный, Tutanota(https://tutanota.de) - отличный вариант.

Исходный код открыт(https://github.com/tutao/tutanota), используемые 
алгоритмы шифрования - AES-128 и RSA-2048.

Присутствуют приложения для Android и iOS.(то, что для андроид - очень даже,
второе - не пробовалось).

Единственный нюанс - Если отправляешь сообщение на почтовый адрес,
который не относится к tutanota, то нужно передать пароль 
для расшифровки сообщения получателю заранее. Получателю
на почтовый ящик приходит ссылка, пройдя по которой и введя
пароль он сможет прочитать письмо.

Для того, чтобы отключить шифрования сообщений при отправлении
писем на внешние почтовые ящики, нужно в настройках указать
это отдельным флагом(Settings - Email, снять галочку напротив
слова Confidencial).

(ychbn.com/assets/tutanota.png)

Пользуюсь этим сервисом уже более года, очень доволен.


= 2017-09-15 Математика для гуманитариев
---------------------------------------

Замечательные лекции по математике.

Ссылка для примера:

Математика для гуманитариев. Савватеев:
https://www.youtube.com/watch?v=rQJMT9nbFhk

Помимо видео, существует и книга, основанная на данных лекциях.
Вот ссылка: http://www.usdp.ru/book/savva_book.pdf


= 2017-09-06 Русский текст в виртуальной консоли Linux
------------------------------------------------------

Для того, чтобы кириллица нормально отображалась
в виртуальной консоли linux(обычно доступна по Ctrl-Alt-F1..F7),
достаточно выбрать шрифт, который поддерживает русский язык. 

Сделать это можно следующим образом:

setfont ter-c16b


= 2017-07-23 19:12:40 Космические рейнджеры, только на Linux
------------------------------------------------------------

Недавно обнаружил на Linux игру, очень
похожую на "космические рейнджеры" - Naev.
(http://blog.naev.org/). 

Как же приятно снова полетать в космосе под приятную музыку.

= 2017-04-10 Немного об электронных книгах
-------------------------------------------

На данный момент скачать интересующую книгу в электронном формате(epub,
fb2, и т.д.) не представляет никакого труда. Уже через книг 10
(приблизительно, зависит от того, сколько стоит электронная книга и
какую литературу вы читаете) , прочитанных в электронном формате, ebook
окупится.

Объективная оценка книги

При чтении бумажной книги труднее оценить ее по-настоящему, а точнее -
оценить, насколько она вам не нравится. Вы уже заплатили за нее, и все
равно будете пытаться найти хоть что-нибудь хорошее в ней. С электронной
книгой все гораздо проще: не нравится книга - не читай ее, ведь ты
всегда можешь начать читать другую книгу, прямо сейчас, даже в магазин
идти не нужно.

Занимают меньше места

4 Gb электронная книга вмещает в себя огромное количество книг, точно
больше, чем может физически поместиться в средней квартире.

Некоторые нюансы:

-   Некоторых книг просто нет в электронном виде, только в бумажном
-   Книги, которые содержат большое количество графики(диаграмм,
    блок-схем, и т.д.) лучше читать в бумажном виде, это просто удобнее.
-   Батарея в них держит очень долго, но все же не бесконечно(от 2
    недель в среднем, смотря сколько читаешь, до месяца и более) -
    иногда нужно заряжать.

Личное мнение

Подсветка необходима

Подсветка позволяет читать в темноте, но немного быстрее высаживает
батарею. Но это лучше, чем искать источник света, особенно когда хочется
почитать перед сном.

Pocketbook.Дешево и сердито

Довольно дешевые книги, легко найти. Отлично подойдут для того, чтобы
ознакомиться и понять, нужно ли вам это.

Paperwhite - бери, не ошибешься

Купил и не заморачиваешься. Качество бумаги отличное, подсветка
присутствует. *Недостаток - не поддерживает fb2 и epub*.
Придется конвертировать, но это лишь небольшие затраты по времени.

Качество экрана - очень важно

Я обладатель девайса от Pocketbook с не самым белым и чистым экраном, но
и не с самым плохим. Всегда осознавал, что экран не самый хороший, но и
желания покупать что-то лучшего качества не появлялось, так как
впринципе все устраивало. До недавнего времени.

Как только появилось больше свободного времени, желание читать больше
все усиливалось, и время, проводимое за чтением, тоже.

Стало понятно одно: качество экрана играет большую роль, когда читаешь
долго без перерыва. Истина вроде простая и ясная, но до недавнего
времени все устраивало, т.к. читал в день не более часа. Контраст белого
фона с текстом недостаточный, т.к. бумага не очень белая, а текст
оказывается отдает серым.

Для проверки был взят на неделю paperwhite, и разница стала заметна
почти моментально - читать снова стало в удовольствие, разбить книгу
желания не возникало :)



= 2017-01-02 Интересные ссылки. Просто, чтобы не потерять.
----------------------------------------------------------

- John Gilmore's home page: http://www.toad.com/gnu/

- Сайт автора книг по программированию Столярова: http://stolyarov.info

Пишет интересно и с юморком. Материал почти всех книг очень хорошо
изложен. Почти вся литература рассчитана на то, что используется
unix-like ОС.

- Зачем Столлману GPL?: http://jeder.ru/?p=250

- Fossil: http://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki
Интересная система контроля версий, которой нужно уделить внимание.
Использует SQLite, есть встроенные wiki и bugtracker

- Руковдоство по дизайну нормальных web-страниц: http://motherfuckingwebsite.com

- Matthew Cook's homepage(математик): http://www.paradise.caltech.edu/~cook/

- Neocities.org. Призван сделать веб снова забавным https://neocities.org

- Наверное лучшее место для прослушивания музыки онлайн: https://soundcloud.com

-Ресурс с большим объемом информации о процедурной генерации в играх:
http://pcg.wikidot.com/


== 2016-07-05 То, что нужно прочитать и то, что уже прочитано.
--------------------------------------------------------------

Что нужно прочитать
-------------------

-   Федор Достоевский - Братья Карамазовы
-   Артур Кларк - Космическая одиссея 2061 года

Что прочитано
-------------

2017 - 2019:

-   Рекс Скаут - Только через мой труп
-   Лю Цысинь - Темный лес
-   Рекс Скаут - Острие копья
-   Рекс Скаут - Лига перепуганных мужчин
-   Рекс Скаут - Слишком много поваров
-   Рекс Скаут - Где Цезарь кровью истекал
-   Дивер Джеффри - Голубое нигде
-   Дик Фрэнсис - Двойная осторожность
-   Джонатан Литтелл - Благоволительницы
-   Франц Кафка - Процесс
-   Федор Достоевский - Идиот

2014 - 2016:

-   Нил Стивенсон - Лавина
-   Федор Достоевский - Игрок
-   Франц Кафка - Замок
-   Ирвин Уэлш - Кошмары аиста Марабу
-   Лю Цысинь - Задача трех тел
-   Джон Стейнбек - О мышах и людях
-   Эрнест Хемингуэй - Старик и море
-   Артур Кларк - 2010: Одиссея два
-   Агата Кристи - Слоны умеют помнить
-   Агата Кристи - Загадка Эндхауза
-   А. Кларк - Космическая одиссея 2001 года. Рассказы
-   Агата Кристи - Занавес. Последнее дело Пуаро
-   Гарри Гаррисон - Линкор в Нафталине
-   Гарри Гаррисон - Конные варвары
-   Льюис Кэрролл - Алиса в Стране Чудес
-   Роберт Льюис Стивенсон - Странная история доктора Джекила и мистера
    Хайда. Сборник
-   Гарри Гаррисон - Специалист по этике
-   Гарри Гаррисон - Неукротимая планета
-   Роберт Харрис - Фатерланд
-   Роберт Кормье - Шоколадная война
-   Нил Стивенсон - Криптономикон
-   Джулиан Ассанж - Шифропанки: свобода и будущее Интернета
-   Франц Кафка - Превращение. В исправительной колонии.
-   Франц Кафка - Превращение
-   Робер Мерль - Смерть — мое ремесло
-   Дэн Симмонс - Восход Эндимиона
-   Сингх Саймон - Книга шифров
-   Ирвин Уэлш - Дерьмо

2010 - 2014:

-   Иэн Бэнкс - Осиная Фабрика
-   Дэн Симмонс - Эндимион
-   Дэн Симмонс - Падение Гипериона
-   Дэн Симмонс - Гиперион
-   Томас Харрис - Ганнибал
-   Томас Харрис - Красный дракон
-   Томас Харрис - Молчание ягнят
-   Йозеф Оллерберг - Немецкий снайпер на Восточном фронте. 1942-1945
-   Питер Уоттс - Морские звезды
-   Герман Мелвилл - Моби Дик, или Белый Кит
-   Уильям Голдинг - Повелитель мух
-   Арчибалд Кронин - Замок Броуди
-   Джордж Оруэлл - 1984. Скотный Двор
-   Герберт Уэллс - Остров доктора Моро
-   Кнут Гамсун - Голод. Мистерии. Виктория
-   Ярослав Гашек - Похождения бравого солдата Швейка
-   Тургенев И.С. - Дворянское гнездо
-   Иван Тургенев - Рудин
-   Иван Тургенев - Отцы и дети
-   Энтони Берджесс - Заводной апельсин
-   Патрик Зюскинд - Парфюмер. История одного убийцы
-   Илья Ильф, Евгений Петров - Золотой теленок
-   Илья Ильф, Евгений Петров - Двенадцать стульев
-   Чарльз Буковски - Почтамт. Женщины. Макулатура
-   Дэн Браун - Цифровая крепость
-   Оскар Уайльд - Портрет Дориана Грея
-   Генрик Сенкевич - Quo Vadis