Ежедневная работа с deb-пакетами
det_random
Распространенные случаи работы с пакетами в Ubuntu или Debian немногочисленны и довольно быстро входят в привычку. Приведу список команд, без которых обходится редкий день, ну или хотя бы неделя.

Установить пакет или обновить до последней версии:
sudo apt-get install firefox

Удалить пакет:
sudo apt-get remove firefox

Удалить пакет вместе с конфигами:
sudo apt-get purge nginx

Узнать установленную версию пакета:
sudo dpkg -l nginx

Эта команда выведет и другую полезную информацию о состоянии пакета:
$ dpkg -l nginx
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  nginx          1.1.19-1ubuntu small, but very powerful and efficient web s

Найти, к какому пакету принадлежит файл:
dpkg -S /boot/vmlinuz-3.2.0-98-virtual

Показать, какие файлы установлены пакетом:
dpkg -L libudev0

Показать информацию о пакете:
apt-cache show firefox

Установить пакет из файла:
sudo dpkg -i skype-ubuntu-precise_4.3.0.37-1_i386.deb
Tags:

Как проверить чексуммы установленного deb-пакета
det_random
Не про все файлы, которые устанавливаются из deb-пакета, в системе остается запись с чексуммами. Поэтому полностью проверить пакет может оказаться сложно. Сами суммы лежат в /var/lib/dpkg/info/<package>.md5sums:

bb5096cf79a43b479a179c770eae86d8  usr/lib/openssh/sftp-server
42da5b1c2de18ec8ef4f20079a601f28  usr/sbin/sshd
8c5592e0d522fa0f8f55f3c104479ef5  usr/share/lintian/overrides/openssh-server
cfcb67f58bcd1edcaa5a770863e49304  usr/share/man/man5/sshd_config.5.gz
71a51cbb514da3044b277e05a3ceaf0b  usr/share/man/man8/sshd.8.gz
222d4da61fcb3c65b4e6e83944752f20  usr/share/man/man8/sftp-server.8.gz

Проверить их поможет команда debsums (sudo apt-get install debsums):

$ debsums openssh-server
/usr/lib/openssh/sftp-server                                                  OK
/usr/sbin/sshd                                                                OK
/usr/share/lintian/overrides/openssh-server                                   OK
/usr/share/man/man5/sshd_config.5.gz                                          OK
/usr/share/man/man8/sshd.8.gz                                                 OK
/usr/share/man/man8/sftp-server.8.gz                                          OK

Начиная с версии 1.17.2, такую функциональность имеет и dpkg:

$ dpkg --verify openssh-server

И ограничения у нее те же: в /var/lib/dpkg/info/<package>.md5sums записываются суммы не для всех файлов. Единственно полный способ -- это извлечь deb-пакет как архив (dpkg --extract <package.deb> <directory>) и сравнить файлы с системными тем или иным способом.
Tags:

Музыкальность для танцев: как услышать в музыке больше ритмов и инструментов
det_random
Рано или поздно у всех продолжающих танцоров появляется желание "танцевать музыкально", обыгрывать музыку, слышать ритмы даже в самых навороченных тимбах, но четкого понимания, как к этому прийти нет. То есть понятно, что нужно заниматься дальше, посещать семинары, слушать музыку, ловить удачные моменты у других танцоров, но всё равно есть какая-то растерянность.

Кому-то повезло попасть на полугодовой мега-курс по разным латиноамериканским танцам и разобраться со многими вещами при помощи занятий и на их фоне, как мне, например. Кто-то предварительно получил музыкальное образование, чувствует музыку интуитивно и совсем не понимает чужие затруднения в различении сон-клаве 2-3 и 3-2. Но для меня вопрос о том, как побыстрее научиться, например, различать музыку "на 1", "на 2" и даже "на 3", оставался открыт. Когда вечеринка открывается песней Permiso que llegó Van Van, во время вступления начинает казаться, что может ну её, тимбу, я лучше посижу пока. Но это преодолимо:)

1. Заниматься нужно. Техника сама себя не закрепит.
2. Слушать музыку нужно, и много. Лучше сразу спросить у тренера, какую именно.
3. Есть специальные занятия по музыкальности, как в ходе регулярных курсов, так и на семинарах и фестивалях. Это, наверное, главный катализатор изменений в музыкальности.

Но! Семинары прошли, музыка слушается, мини-роли для разных композиций отрабатываются, но это всё? Конечно, нет. И вот что надо сделать: взять и научиться играть базовые ритмы на всех инструментах, до которых можно добраться! Это не так сложно и экзотично, как может показаться, а эффект очень простой и очень действенный: вы начинаете отчетливо слышать в музыке то, что только что сами сыграли, а когда музыканты отклоняются от стандартного ритма в сбивках, импровизациях и прочих намеренных вкусностях, вы замечаете это ясно и без раздумий.

Не обязательно покупать звонкую пару клаве из твердых пород дерева, способную перекричать музыку на любой дискотеке. За 300 рублей можно найти достаточно хорошую пару, а вообще, достаточно буквально двух чурок для игры в городки или любых других деревяшек, не обязательно даже круглых. Можно сделать их самостоятельно, почувствовать себя ближе к традиции, так сказать. Включаем любимую песню, ловим ритм и начинаем в него стучать. Важно делать это подольше, чтобы почувствовать автоматизм даже на следующий день. Если в песню стучать сложно, то можно поставить специальный метроном. Там будет и 2-3, и 3-2, и румба 2-3 и 3-2, и не только. А если это окажется слишком простым, то попробуйте шагать базовый шаг под свой же ритм. Если и это получается просто, то снимаю шляпу.

Фортепьяно есть у многих дома, у родственников, у друзей, да где угодно. Научиться играть тумбао можно за смешное время по роликам на ютубе, например, https://youtu.be/wC3Iq5ImTXE. Идеальный случай: ставишь планшет с видео вместо нот на фортепьяно и начинаешь выполнять упражения. Сначала это может показаться скучным, но эффект поразительный: знакомая музыка звучит, будто слышишь ее в первый раз, гора-а-аздо интереснее. Я сразу стал слышать, что типичный нью-йорк -- это на 2, "как я мог раньше этого не замечать?". Очень рекомендую.

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

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

Как удалить файлы из истории Git-а, или git filter-branch и переписывание истории
det_random

Допустим, в репозиторий по ошибке попал лишний блоб из сборки или файл с ключами, паролями или какая-нибудь еще чувствительная информация. Удалим его насовсем:

cd /path/to/repo
git filter-branch \
  -d /tmp/filter-branch-xxx \
  --original vanilla \
  --index-filter "git rm -r --cached --ignore-unmatch unwanted_file.dat" \
  --prune-empty \
  HEAD

На стандартном выводе получим нечто подобное:

Rewrite 588408a0f4c7e3aa272ed58d1ebc4adc432add68 (1/3)rm 'unwanted_file.dat'
Rewrite 261533807bc8226804b9c7d7c8a67f62a8f861ac (2/3)rm 'unwanted_file.dat'
Rewrite 6c59972f8f7c2f9a60a730c38c187d6fcb1c38b8 (3/3)rm 'unwanted_file.dat'
...

Ref 'refs/heads/master' was rewritten

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

git clone file:///path/to/repo /path/to/clean/repo

А если код был на гитхабе, битбакете или гитлабе, то будет нужно завести новый репозиторий и запушить в него наш новый и чистый, предварительно предупредив всех заинтересованных.

Как это работает и почему можно всё сломатьCollapse )
Tags:

Как удалить git submodule
det_random
Всё просто:

git submodule deinit path/to/submodule
git rm path/to/submodule
rm -rf .git/modules/path/to/submodule
git commit -m "Removed path/to/submodule"


См. также https://chrisjean.com/git-submodules-adding-using-removing-and-updating/.
Tags:

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

  • http://chromanova.de -- там надо выбирать чиллаут в менюшке и уходить в транс;

  • Familjen -- вы вряд ли услышите хотя бы один знакомый корень в текстах, так что поводов отвлечься будет мало, в отличие от русскоязычной или англоязычной музыки (или испаноязычной в моём случае); рекомендую послушать и посмотреть другие видео Фамильена;

  • https://soundcloud.com/zardonic -- давно не бывал в таком настроении, но этот D'n'B помогал на прошлой работе;

  • http://www.happyhardcore.com/radio/player/radio.asp -- это хардкор для перезагрузки мозга, котаны.

На закуску Zardonic & Playma – Freakshow:


HighLoad != High Performance
det_random
HighLoad может держать миллионы запросов, но отвечать на каждый хит за 500 мс, а High Performance может считать сутками, если того требует задача, но не тратить время процессора понапрасну. Совместить HighLoad и High Performance -- это собственная задача, которая ставит целью получить и High RPS и Low Latency одновременно.

Тестирование в CMake с использованием Google Test
det_random
http://www.kaizou.org/2014/11/gtest-cmake/

Смена альтернатив
det_random
Например, хочется иметь разные версии g++ на одной тачке. Нет проблем, http://askubuntu.com/questions/26498/choose-gcc-and-g-version:


First erase the current update-alternatives setup for gcc and g++:



sudo update-alternatives --remove-all gcc 
sudo update-alternatives --remove-all g++


Install Packages

It seems that both gcc-4.3 and gcc-4.4 are installed after install build-essential. However, we can explicitly install the following packages:



sudo apt-get install gcc-4.3 gcc-4.4 g++-4.3 g++-4.4


Install Alternatives

Symbolic links cc and c++ are installed by default. We will install symbol links for gcc and g++, then link cc and c++ to gcc and g++ respectively.


sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.3 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 20

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc

sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++



Configure Alternatives

The last step is configuring the default commands for gcc, g++. It's easy to switch between 4.3 and 4.4 interactively:


sudo update-alternatives --config gcc
sudo update-alternatives --config g++



Or switch using script:


#!/bin/sh

if [ -z "$1" ]; then
    echo "usage: $0 version" 1>&2
    exit 1
fi

if [ ! -f "/usr/bin/gcc-$1" ] || [ ! -f "/usr/bin/g++-$1" ]; then
    echo "no such version gcc/g++ installed" 1>&2
    exit 1
fi

update-alternatives --set gcc "/usr/bin/gcc-$1"
update-alternatives --set g++ "/usr/bin/g++-$1"


El Cantante (2006)
det_random
Ну что ж, не самый веселый фильм о людях, которые делали весело для многих других.

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

Возможно, это следствие того, что фильм задумывался как некое посвящение всем звездам Фании и целой эпохе в музыке, а не как копание в психологии отдельно взятого певца. Возможно, этот фильм представляет что-то вроде памятника Хектору, и в памятнике не место мрачнейшим деталям и неприглядным подробностям. Много музыки, много танцев, много вечеринок и история любви, встретившей много трудностей. Что еще надо для художественного фильма, чтобы его посмотрели многие, а не узкий круг любителей истории латиноамериканской музыки в США.

Ну и Марк Энтони и Дженнифер Лопез в главных ролях, кстати.

http://www.imdb.com/title/tt0458522/
http://www.kinopoisk.ru/film/161180/vk/1/


?

Log in