Сравнить две директории из командной строки

April 10, 2017

Я использую блог как референс некоторых команд, которые нужны редко и я их забываю. Несколько лет назад у меня был пост как настраивать звук в убунту для двух моделей VAIO. Да, да, у нас дома было два ноутбука VAIO и звук там настраивался маленько по разному. И яркость. Блин, звук и яркость. Мои самые сильные ассоциации от убунту на ноуте.

Сегодня оставляю команду для сравнения двух директорий, которая мне нравится:

colordiff -Nur folder1 folder2

Это укороченный вариант более утонченной версии из этой SO дискуссии

diff -ENwbur repos1/ repos2/ # для эстетов, которым не сложно заполнить и
                             # 6 неочевидных опций команды `diff`.

ENwburdiff! Ктулху, выходи!

Docker run

April 7, 2017

В дефалтовой версии докер пробивает iptables при запуске через -p 3000:3000. Мы когда настраивали прометей в первый раз случайно таким образом вывели ендпойнты ноде экспортера наружу.

Чтобы этого избежать можно запускать контейнеры с явным указанием интерфейса, например: docker run -p 127.0.0.1:3000:3000 или docker run -p 168.192.10.1:3000:3000. Тогда докеры контейнеры не будут доступны из интернета.

На андроид стороне

April 6, 2017

Два дня назад я узнал, что мой айфон пять как цэ боится не только морозов и выключается через пять минут при небольшом минусе, но еще не любит влаги и, после небольшого дождя, начал отправлять рандомные сообщения и не отвечать на нажатия. Ждать когда он начнет бегать от собак я не стал и решил попробовать сразу и андроид, и лопату в одном лице, купив Xiaomi Note 4.

Ну так, жить можно. Переход на удивление занял не много времени, уже через 2 часа поставил все приложения, которые мне нужны (а у меня их очень немного), поднастроил нотификации и дискомфорта не чувствую. Конечно шарма и минимализма у товарища Андроида поменьше, чем у благородного iOS, - кнопочки, плашечки какие-то левые, визуального мусора точно больше. Но почта, браузер, тудуист, все работает ожидаемо. Экран здоровенный, аппарат тяжелый, за 11к рублей нормально.

Дизайн и эволюция JavaScript

April 5, 2017

5 лет назад я стал ортодоксальным рубистом, сбежав из C++-кабалы. Руби - прост, но не убог, красив, но не уродлив, силен, но не слаб. Продолжать можно бесконечно. Сейчас, проматывая статьи про изменения в C++, я не понимаю и половины слов. Наверное, то, что очередные полиморные изоморфики попали в стандарт должно радовать, а отсутствие изоморных полиморфиков - печалить... Не знаю, я сбежал с этой вечеринки.

Но самое диво дивное это, конечно, JavaScript. Иногда кажется, что он даже не пытался побывать на уровне сложности C++ и сразу стал Хаскелем. Я уже старый и последний год программирую в основном на yml-файлах и баш скриптах, и, честно говоря, вообще не понимаю, как писать вот такое (Код взят из этой статьи - Вы знаете, что такое трансдьюсеры):

const firstTwoWins = compose(
  filter(({ my, others }) => my > others),
  map(({ gameID }) => gameID),
  take(2),
)

const result = transduce(firstTwoWins, append, [], scores)

Это даже не выглядит как javascript, если честно. Я помню там $("#element").hide() и поехали.

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

Ну и топчиковый коммент:

Искусство разложить файлы

April 4, 2017

Мне безумно нравится вот это выступление Игоря Сысоева на HighLoad++, которое хочется процитировать целиком:

"Я буду говорить о масштабируемой конфигурации nginx, но это не о том, как обслужить с помощью nginx сотни тысяч одновременных соединений, потому что nginx для этого настраивать не надо. <...> Поэтому я буду рассказывать о другой масштабируемости — о масштабируемости конфигурации nginx, т.е. о том, как обеспечить рост конфигурации от сотни строчек до нескольких тысяч и при этом тратить минимальное (желательно константное) время на сопровождение этой конфигурации."

Божественно, что когда система растет - как правильно разложить файлики, гораздо важнее rps и rpm. Логический хайлоад всегда наступает гораздо раньше и острее, чем фактический.

Плато продуктивности /пост ни о чем/

April 3, 2017

Залез я тут в википедию почитать про плато продуктивности по Гартнеру. Так оно не плато, а платеау. Вот английский язык именно такой. Все просто, просто, а потом вжух и получите, распишитесь - платеау. Причем в транскрипции сразу два значка, которые меня всегда пугали - ['plætəu]. Ну ладно, это на их совести останется.

Вот картинка из статьи Hype cycle:

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

И напоследок крутейшая шутка с баша:

http://bash.im/quote/444051
Цикл внедрения нового программного продукта глазами админов:
1 Отрицание.
2 Гнев.
3 Торги.
4 Депрессия.
5 Принятие (в эксплуатацию).

Новый формат

April 1, 2017

Привет, дорогие читатели! Я решил немного поменять формат своего блога, теперь буду публиковать каждый рабочий день одно новое блюдо, которое готовлю самостоятельно. Сегодня представляю вашему вниманию говядину (лопатка), запеченую в фольге:

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

До новых встреч! :cat: :cat: :cat:

OS и автоматизация

March 31, 2017

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

Еще во всех абсолютно языках не хватает возможности контролируемо и просто вызывать внешние процессы, заходить на ssh, опрашивать урлы и прочее, что нужно при любой автоматизации. Вот как человек делает. Он попробовал зайти на сервер, не получилось - попинговал, посмотрел DNS. Однако сейчас даже чтобы вызвать внешний bash-скрипт и корректно обработать код возрата нужно делать какие-то нетривиальные движения (привет popen3 и братья в руби).

То есть нужна операционка и надежные, простые инструменты автоматизации. Вот такой запрос к обществу.

CircleCI PosgteSQL 9.6

March 30, 2017

Прочитав несколько тьюториалов разной степеним мутности, я наконец нашел способ как запускать тесты в CircleCI под постгресом 9.6:

# circle.yml
dependencies:
  pre:
    - sudo service postgresql stop
    - sudo mv /usr/lib/postgresql-9.6/9.6 /usr/lib/postgresql/9.6
    - sudo mv /etc/postgresql-9.6/9.6 /etc/postgresql/9.6
    - sudo service postgresql start 9.6
    - sudo -u postgres psql -p 5433 -c "create user ubuntu with password 'ubuntu';"
    - sudo -u postgres psql -p 5433 -c "alter user ubuntu with superuser;"

database:
  override:
    - mv config/database.yml.ci config/database.yml
    - bundle exec rake db:create db:schema:load --trace

и в файле config/database.yml.ci прописать:

test:
  adapter: postgresql
  database: circle_ruby_test
  username: ubuntu
  password: ubuntu
  host: localhost
  port: 5433

Странно, что это не из коробки, но так часто бывает, когда из инструментов 21-го века торчат уши 20-го.

Стачка

March 29, 2017

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

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