Дисклеймер

Внимание: в этом блоге могут описываться события, явления и факты при помощи ненормативной лексики. Убедитесь, что Вы готовы к этому.

вторник, 5 июня 2018 г.

Томатный суп с мясом, фасолью и кукурузой



Примечание: я готовлю в 5.5-литровой кастрюле и цифры приводятся с учётом этого объёма. Для меньшего количества — просто пропорционально уменьшить количество ингредиентов. Разумеется, можно добавить чего-то больше, чего-то меньше, но для меня приведённые ниже пропорции оптимальны.

Потребуется:
  • Мясо — 1 кг (можно чуть больше, например, 1.25 кг). В примере используется свинина — свиная лопатка (по причинам, не связанным с вкусовыми качествами), но и филе курицы / индейки заходят на ура;
  • Сок томатный — 3 литра (на упаковках указано 0.97). Пробовал разные, принципиальной разницы не заметил. Но другие потребители говорят, что Rich вкуснее;
  • Кукуруза консервированная (любая) — 3 банки по ~425мл. На моих написано «масса нетто — 340 г, масса продукта — 272 г». Сам разницы не замечаю, но другие говорят, опять же, что вкуснее получается со сладкой.;
  • Фасоль консервированная (любая) — 3 банки по ~425 мл. На моих написано «масса нетто — 400 г, масса продукта — 220 г». Лучше без томатного сока в них — он обычно ужасного качества;
  • Лук репчатый (свежий) — 3-4 луковицы диаметром 6-8 см. Можно две зелёных, две красных (точнее, фиолетовых);
  • Укроп / петрушка / зелёный лук — если есть всё, то достаточно 50 г каждого ингредиента, если есть что-то одно, то можно порубить 100 г;
  • Чеснок (опционально) — половина головки;
  • Базовые приправы и специи — соль (аккуратно, ибо томатный сок солёный), чёрный перец измельчённый.
  • Опциональные приправы и специи — куркума (вообще крайне желательно, чтобы была, но это моя вкусовщина), сухой измельчённый набор трав («Итальянские травы», «Травы кавказа» и прочее) либо пажитник зелёный сухой, ажгон измельчённый, карри.

Затраты по времени — 1,5 — 2 часа.

Обычный вариант приготовления

Сперва нарезаем лук. Мельче — лучше, но и так, как на фото — сойдёт. Фото кликабельные, кстати. Порезали - кладём в кастрюлю, наливаем подсолнечного или другого масла, включаем «медленный» огонёк и закрываем крышкой.


Дальше нарезаем мясо. Мясо имеет свойство сжиматься и уменьшаться за счёт освобождения жидкости, оттого особо мельчить не следует. Достаточно — как на фото.
Мясо периодически закидываем в кастрюлю и перемешиваем.

После того, как всё мясо порублено, добавляем специй: перец, ажгон (если есть), куркуму, измельчённый набор трав и соль. С солью аккуратно ибо сок солёный, ориентируйтесь на 1 столовую ложку без верха.
Всё это с закрытой крышкой греется (как бы и не тушится, но и не жарится) около 20 минут. Кстати, после этого этапа можно сделать «сохранение» - сутки в холодильнике такой полуфабрикат супа без проблем простоит.
Затем уже выливаем в кастрюлю 2 литра сока из трёх. Остатки имеет смысл доливать потом, когда будут добавлены все ингредиенты, чтобы можно было уложиться в объём кастрюли.

Следующий шаг — добавляем фасоль и кукурузу. Это как раз удобно делать, пока прогревается мясо и лук. Я промываю чистой водой в дуршлаге, но тут смотрите сами. После добавления обязательно тщательно перемешать. Огонь выставляем на «средний». Не забываем периодически помешивать.
Через полчаса рубим и добавляем зелёный лук / укроп / петрушку и чеснок. Сильно мельчить не нужно — смотрите, как удобнее. Если нравятся хрустящие травы, то лучше добавлять уже после приготовления при выключенном огне.
После этого убавляем пламя и с закрытой крышкой готовим ещё 15-20 минут. Если кастрюля заполнена почти до самых краёв, то накрывать не нужно — иначе потом придётся оттирать плиту. Не забываем следить за поплавком и периодически помешивать.

Желательно дать супу потом постоять ещё 15-20 минут и потом уже приступать к поглощению.


Более быстрый вариант
Заливаем 2 литра сока, включаем средний огонь, тупо рубим и добавляем все ингредиенты (сначала лук и мясо, само собой), добавляем приправы, доливаем сок. За 30 минут можно управиться. Периодически поглядываем и помешиваем / доливаем сок.

Затраты (на моём примере, без стоимости специй):
  • мясо — 1кг - 300 рублей;
  • сок — 3 пачки * 69 = 207 рублей;
  • фасоль — 3 банки * 40 = 120 рублей;
  • кукуруза — 3 банки * 40 = 120 рублей;
  • лук репчатый — 0.4кг - 11 рублей;
  • лук зелёный — пучок — 30 рублей;
  • укроп — 100г — 35 рублей
Всего: 823 р.
Да, что-то не совсем бюджетно, но с учётом объёма приготовленного (огромная кастрюля) и скорости - сойдёт.

В среднем такого количества хватает на 10-11 порций (за 1 порцию считаю ~0.5 литра супа). Опять же, для разных людей размер порции будет разным.

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

четверг, 9 февраля 2017 г.

How to block any non-VPN connections

Some people care about their internet privacy and some of them also use GNU/Linux distros. Most VPN apps for Windows have killswitch option, so if VPN suddenly disconnects, some applications or whole internet connection will be stopped.
However, there's no such option for Linux systems. But there's a beatiful thing called iptables, a very powerful firewall.

My setup is mostly automated (check the link to understand), so I have put this script in /etc/openvpn/ and named it iptables-update.sh

Here's the content:
#!/bin/bash

# CLEAR all previous iptables rules
iptables -F;

### List of the rules ###

# ALLOW loopback access
iptables -A INPUT -i lo -j ACCEPT; iptables -A OUTPUT -o lo -j ACCEPT;

# ALLOW connections within own network (e.g. to router)
iptables -A INPUT -s 192.168.1.1/16 -d 192.168.1.1/16 -j ACCEPT;  iptables -A OUTPUT -s 192.168.1.1/16 -d 192.168.1.1/16 -j ACCEPT;

# ALLOW eth+ and tun+ to communicate
iptables -A FORWARD -i eth+ -o tun+ -j ACCEPT; sudo iptables -A FORWARD -i tun+ -o eth+ -j ACCEPT; # ALLOW eth+ and tun+ to communicate

# Complicated stuff
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE;

# DROP any eth+ outgoing packets with different destination than server IP
iptables -A OUTPUT -o eth+ ! -d $(grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /etc/openvpn/openvpn.conf) -j DROP;

# SAVE iptables rules
/etc/init.d/iptables save;
This script works perfectly for me with NordVPN setup. Last rule is the most crucial one - it takes server IP from /etc/openvpn/openvpn.conf and drops any packets with different destination to prevent leaks.

NOTE: make sure you have iptables starting at system boot.

It is reworked version of the information I found here.
And to make it automated, I put the following aliases examples in my ~/.bashrc:

alias de100="sudo /etc/init.d/openvpn stop; sudo /etc/init.d/iptables stop; sudo cp /etc/openvpn/de100.nordvpn.com.udp1194.ovpn /etc/openvpn/openvpn.conf; sudo /etc/openvpn/iptables-update.sh; sudo /etc/init.d/iptables start; sudo /etc/init.d/openvpn start"

alias de101="sudo /etc/init.d/openvpn stop; sudo /etc/init.d/iptables stop; sudo cp /etc/openvpn/de101.nordvpn.com.udp1194.ovpn /etc/openvpn/openvpn.conf; sudo /etc/openvpn/iptables-update.sh; sudo /etc/init.d/iptables start; sudo /etc/init.d/openvpn start"
Every time I change server with this alias, bash script automatically updates the rules.
As always, maybe not the most elegant way, but it's working fine :-)

How to setup NordVPN in a more convenient way

NordVPN allows you to connect to their VPN servers using multiple devices and there are many ways to connect (L2TP, PPTP, IKEv2, OpenVPN etc). One of the best way to connect is via OpenVPN, one of the most flexible and secure protocol.

NordVPN installation instructions for Linux systems can be found here, however NM Gui is laggy as hell and proposed command like method isn't the most convenient because it's not fully automated and requires a lot of typing to change servers and / or start and turn off service.

So here's my way. I don't claim it to be most elegant, but it works for me and is certainly more comfortable.

0. Assumptions.
You have:
  • active NordVPN subscription;
  • OpenVPN, ca-certificates and ZIP installed; 
1. Getting OVPN files. Download and extract .OVPN files the same way as stated in tutorial (steps 3-7).
cd /etc/openvpn/
sudo wget  https://nordvpn.com/api/files/zip
sudo unzip zip
sudo rm zip

2. Autologin. Create pass.txt file in /etc/openvpn/ directory containing your login and pass so it will look like this:
myemail@mail.com
mypassword123
1st line - login, 2nd line - password, make sure there are no extra symbols or spaces. You can make this file not readable for a unpriviledged user if you care about your NordVPN login and password and your environment isn't trusted.

Add a line to all extracted NordVPN files so they will get credentials from pass.txt and you won't have to type it manually. It's better to achieve with simple sed script:

sed -i 's/auth-user-pass/auth-user-pass pass.txt/' *.ovpn

3. Setup and start OpenVPN service. 

Now you need to copy content from certain .ovpn file to your openvpn.conf.
Let's say you want to connect to de101 server using UDP.

sudo cp /etc/openvpn/de101.nordvpn.com.udp1194.ovpn /etc/openvpn/openvpn.conf

After that you need to restart openvpn service so changes will apply:
sudo /etc/init.d/openvpn restart

The command above might be different for a certain Linux distros.
If everything is OK, you will be connected to de101 server.
In case if there are messages like this:
WARNING: openvpn has started, but is inactive
there's no reason to panic, it's totally OK.

4. Make sure OpenVPN daemon is started at the system boot.
It is different for every Linux distro and it's easy to find how to do that. If you're using Ubuntu chances are it will start automatically itself and you won't need to do anything at all.
For some distros like Gentoo however you will need to do:
sudo rc-update add openvpn default

5. Adding aliases.
Edit your ~/.bashrc to simply change servers using command-line aliases.

It's always better to type things like "de100" rather than typing manually a lot of letters.
So I just put things like this in my .bashrc.
For those who don't know what it is, just type this in command line:
cd ~
nano .bashrc
and add following lines after the existing content:

alias de100="sudo /etc/init.d/openvpn stop; sudo cp /etc/openvpn/de100.nordvpn.com.udp1194.ovpn /etc/openvpn/openvpn.conf; sudo /etc/init.d/openvpn start"

alias de101="sudo /etc/init.d/openvpn stop; sudo cp /etc/openvpn/de101.nordvpn.com.udp1194.ovpn /etc/openvpn/openvpn.conf; sudo /etc/init.d/openvpn start"
NOTE: it must be one single line for every alias in your .bashrc even if it looks like I pressed "enter" and broke it into 2 or 3 lines.

Those 2 lines above will add aliases to connect or reconnect to de100 and de101 servers.
And the list goes on -  just copy those lines change "de101" and "de100" to whatever you please from the server list to add more server-changing alieases for example:

alias nl11="sudo /etc/init.d/openvpn stop; sudo cp /etc/openvpn/nl11.nordvpn.com.udp1194.ovpn /etc/openvpn/openvpn.conf; sudo /etc/init.d/openvpn start"
Don't forget to control-O to save it. Changes will apply when you open a new tab in terminal.

After that you can just type de100 or nl11 (or whatever else you put in your .bashrc) in your shell and you will connect or reconnect to appropriate server.

If you're looking for more security and want to block any non-secured internet traffic, check this post.

вторник, 10 января 2017 г.

OpenVPN через GUI Network Manager в Ubuntu (rage-пост)

В ubuntu для подключения VPN через OpenVPN через network-manager нужно не только установить network-manager-openvpn, но ещё и network-manager-openvpn-gnome.
В противном случае через GUI будет доступен только способ подключения VPN через PPTP.
Где логика?
Почему в "линуксе для человеков" (именно так, ага) не тянется пакет с графическим интерфейсом автоматически?
В общем, вдогонку sudo apt-get install network-manager-openvpn-gnome для решения.

P.S. если в Проводном соединении указать "автоматически подключаться к VPN после установки соединения",то автоконнект после загрузки системы срабатывает через 4 минуты с лишним, практически через 5 минут. Если нужно быстрее - то ручками, ручками. (Что это за 3.14здец?)
P.P.S. баги касательно проблем с автоконнектом VPN в NM были описаны ещё в 2008 году.
Network Manager такой, сука, Network Manager.

среда, 28 декабря 2016 г.

Как я в ДНС мышку возвращал


История с хэппи-эндом, без мата и экстремизма.

Дисклеймер: защита прав потребителей — не моя специализация, у меня совсем другая сфера права (IP), поэтому прошу оценивать пост как просто историю из жизни одного человека (да, юрист тоже человек).

Купил я, значит, взамен служившей мне много лет Bloody V5, внезапно утратившей способность скроллить, мышку Steel Series Rival 100. Брал по принципу «по описанию вроде характеристики норм, много кто пользует, значит и мне сойдёт» и решил приобрести такую по пути из суда в ближайшем салоне сети «ДНС». В магазине особо не исследуешь, показалась мелковатой, но больше размерами моделей от Steel Series в наличии не было. Покупать временную мышку А4 или Logitech (читать — «выкидывать деньги на ветер до покупки комфортной мышки») желание не было. А работать нужно.

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

При покупке обратил внимание на небольшие царапинки на тефлоновых ножках, но внимания особого не придал. Ножки ("скейты") — расходник же по большому счёту. Коробка была открытой, мало ли кто по столу пошаркал проверить работу мыши, вот и царапки.

Дома попробовал пользоваться мышой и сразу понял, что не моё: надо побольше для моих рук и моего хвата (полной ладонью — palm grip). Потому решил воспользоваться правом, предусмотренным ст. 25 ЗоЗПП, а именно, правом на обмен не бывшего в употреблении товара, сохранившего товарный вид, бирки и т. п., не подошедшего по фасону / размеру / цвету / габаритам / комплектации. Мышка дома пробовалась на коврике QcK от Steel Series, и учитывая моё общее аккуратное отношение к вещам, следов эксплуатации не прибавилось совсем. Т.е. их всех видимых следов использования — уже упомянутые выше царапинки на ножках.



Относимость мышки к технически сложным товарам (ТСТ) согласно «Перечню непродовольственных товаров надлежащего качества, не подлежащих возврату или обмену на аналогичный товар других размера, формы, габарита, фасона, расцветки или комплектации» пока опускаем. Да и ранее я менял уже мышки в «ДНС», никто на ножки пристально не смотрел.

Использовать мышку я прекратил, и "пофиксил" скролл у старой мыши Bloody v5 пассатижами - стало трудно крутить, но хотя бы работало).

Соответственно, затем созвонился с сотрудником магазина, объяснил ситуацию, мне сказали «да, окей, обменяем на другую модель с доплатой вообще без проблем». Но когда я явился для обмена, оказалось, что не всё так просто. Управляющий магазина сослался на царапины на ножках (которые, напоминаю, были с самого начала) и сказал, что «товарный вид утрачен, мышь была в употреблении, обмен по 25-й статье сделать не можем». Продавец, продавший мне эту мышку, присутствовавший при этом диалоге, добавил: «я Вам эту мышь продавал, никаких там царапин не было». Разумеется, мне никто не поверил, что я видел царапинки и всё равно купил мышь.

При мне при этом открыли другую коробку (которую привезли взамен купленной мной модели, т. к. их нечасто берут по словам продавцов) и показали мышь без царапин на ножках. Мои замечания о том, что открывается новая мышь в запечатанной коробке, и что в наборе присутствует Quick Start Guide (которого у меня не было) остались без внимания. В общем, мне пожелали удачи.

Кто-то может бы и остановился на этом, но мне стало немного обидно, и я решил это так не оставлять.