Поездка в Гармиш-Партенкирхен и Миттенвальд в мае 2022

Submitted by Ромка on Сб, 18/06/2022 - 17:50

Ромка аватар

В конце мая 2022 года мы с Олей поехали в горы на юг Германии. В этом блоге я немного расскажу о поездке.

Изначально я планировал побывать только в каком-то одном месте: в Германии очень хорошо развита железнодорожная сеть, удобные и недорогие поезда. Поэтому я хотел остановиться в Гармиш-Партенкирхене (это небольшой город недалеко от границы с Австрией) и пешком, на велосипеде, на поезде исследовать юг Германии и сервер Австрии. К моему сожалению, за два месяца до поездки, когда я планировал маршрут, уже не было возможности забронировать отель на все полторы недели нашего отпуска. Это было для меня неожиданностью: Гармиш-Партенкирхен — это популярный горнолыжный курорт и зимой здесь не протолкнуться от туристов, я полагал, что весной здесь низкий сезон, но как бы не так. Пришлось бронировать два отеля, а раз так, то и не было смысла делать это в одном городе, поэтому вторую половину отпуска в итоге мы провели в Миттенвальде. Это даже не город, а скорее большая деревня, но деревня в немецком смысле, или скорее даже в баварском, а не в русском: ухоженные белоснежные домики, чистые зелёные газоны, хорошие дороги.

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

А вот Миттенвальд, типичная деревня в Баварии:

Переезд в Берлин 2021

Submitted by Ромка on Вс, 13/02/2022 - 17:50

Ромка аватар

Около года назад мы с Олей переехали из Москвы в Берлин. В Москве Оля работала на немецкую компанию. Летом 2020 года компания решила закрыть российский офис и Оле предложили релоцироваться в Берлин. Обстоятельства сложились очень удачно: мы давно подумывали попробовать пожить за пределами России, но хотелось чтобы мы оба имели работу. Так как я программист, казалось, что мне найти работу будет проще и мы хотели чтобы сначала работу нашла Оля. В итоге, всё примерно так и сложилось: сначала около трех месяцев после переезда я потратил на подготовку к собеседованиям и около месяца прошло с момента когда я отправил первое резюме до момента когда я получил оффер в компанию своей мечты.

В этом блогпосте хочу рассказать о переезде, подготовке к интервью, поиске работы, а также о своих впечатлениях. Мне самому будет интересно почитать эти записи через пару лет и посмотреть насколько поменяются мои мысли. Этот текст — не инструкция по релокации в другую страну или по прохождению собеседования в большую IT-компанию, а просто повествование о моем опыте.

Здесь и далее фотографии просто чтобы разбавить рассказ, но к событиям в тексте они имеют косвенное отношение

Берлин, Люббенау, Потсдам

Submitted by Ромка on Вс, 13/05/2018 - 14:20

Ромка аватар

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

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

Байкал, остров Ольхон, посёлок Хужир

Submitted by Ромка on Вс, 15/04/2018 - 20:14

Ромка аватар

Я много слышал о прекрасной природе Байкала и давно мечтал съездить, посмотреть на него своими глазами. Останавливали только сложность перелета и относительная дороговизна билетов, но, наконец-то, в марте 2018 не осталось причин откладывать эту поездку.

Байкал это довольно большое озеро и бывалые туристы рекомендуют планировать не меньше 2-3 недель на путешествие по всем самым интересным местам озера. У нас, к сожалению, было только 5 дней, поэтому в качестве цели своего путешествия я выбрал одно место — остров Ольхон. Чтобы добраться до Ольхона от Москвы нужно потратить около 5,5-6 часов на перелет до Иркутска и еще около 5 часов на путь от Иркутска на машине. Расстояние от Иркутска до поселка Хужир на Ольхоне около 300 километров, большая часть пути идет по континенту и не имеет никаких сложностей. Сложности начинаются при достижении переправы с континентальной части на остров. Зимой Байкал замерзает и примерно с середины января до конца марта (интервал может меняться год от года в зависимости от погоды) переправиться на остров можно по льду Байкала прямо на обычных машинах. Это самый простой и дешевый способ.

Поездка в Хорватию

Submitted by Ромка on Ср, 04/10/2017 - 22:25

Ромка аватар

Хорватия одна из самых северных средиземноморских стран. Формально, море в Хорватии не Средиземное, а Адриатическое, но оно является частью Средиземного. Из безусловных плюсов такого расположения я могу выделить очень комфортную температуру воздуха летом — около 27 °C и чистый свежий воздух пропитанный морской солью и ароматом хвои. По сравнению с той же Грецией, где летом температура запросто держится на уровне 35 °C здесь гораздо комфортнее гулять днем.

Мы остановились в Млини, относительно небольшой деревне недалеко от курортного Дубровника. Здесь, как и в других частях Хорватии, очень разнообразная флора: растут как привычные в нашей полосе сосны, так и пальмы, фи́говые деревья, виноград, оливки, лаймы. На рынке можно найти много местных овощей, фруктов и ягод... mmm... me gustó.

Из недостатков — вода холоднее чем в Греции, первые несколько дней она казалась ледяной, но со временем я к этому привык и в последние дни отпуска лез в воду несмотря на её температуру и погоду :)

Несколько фотографий моря:

Метрика загруженности процессора (CPU utiliztion) — это не то что вы думаете

Submitted by Ромка on Сб, 24/06/2017 - 13:09

Ромка аватар

Всем привет. Предлагаю вашему вниманию свой перевод поста "CPU Utilization is Wrong" из блога Брендана Грегга.

Метрика загруженности процессора (CPU utiliztion), которую все мы привыкли использовать, обычно понимается неправильно. Что такое загруженность процессора? То насколько процессор сейчас занят работой? Нет, это не так, и да, я говорю о метрике %CPU, которая используется всегда и везде, в каждой утилите мониторинга производительности, например в top(1).

Как вы думаете, что значит нагрузка на процессор 90% на картинке ниже?

Вот что это значит на самом деле:

Поездка в Берлин, Роттердам, Дюссельдорф в марте 2017

Submitted by Ромка on Пт, 31/03/2017 - 19:12

Ромка аватар

В марте 2017 съездил в короткое путешествие, чуть больше чем на одну неделю, в Берлин, Роттердам и Дюссельдорф. Маршрут получился не самым оптимальным, слишком много переездов за такой короткий интревал, но все равно интересным: Москва — Берлин — Роттердам — Берлин — Дюссельдорф — Берлин — Москва. Все перемещения кроме поездок из и в Москву это разные местные поезда.

К своему сожалению я забыл дома зарядник от фотоаппарата, а аккумулятор был на нуле. Новый зарядник купил не сразу, поэтому фотки начинаются с Роттердама. Хотя это не страшно, в Берлине я уже бывал дважды в 2012 и 2013, поэтому увидеть что-то новое не рассчитывал.

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

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

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

HTTP/2 на этом сайте

Submitted by Ромка on Вс, 25/10/2015 - 16:45

Ромка аватар

Обновил на этом сайте nginx до версии 1.9.5 и включил поддержку HTTP/2. Для теста погонял сайт до и после на WebPagetest. Честно говоря, результат измерений не сильно впечатлил, вот результат до:

а вот после:

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

Ниже информация о том, что нужно сделать для апгрейда nginx в Ubuntu.

Nginx и HTTP/2

Submitted by Ромка on Втр, 13/10/2015 - 22:41

Ромка аватар

22 сентября 2015 года вышел nginx версии 1.9.5 — это первая стабильная версия nginx с поддержкой HTTP/2.

Какие преимущества дает HTTP/2:

  1. мультиплексированные соединения — теперь весь контент с одного домена скачивается в рамках одного TCP-соединения, а не с помощью нескольких keep-alive соединений. Более того, даже контент с нескольких доменов может быть скачан в рамках одного TCP-соединения при условии, что эти домены имеют общий ip-адрес и SSL-сертификат,
  2. сжатие HTTP-заголовков,
  3. приоритезация — клиент может указать какие из запрашиваемых ресурсов наиболее приоритетны, а ткаже задать зависимости между ресурсами (ресурс Б не будет загружен до тех пор пока не загружен ресурс А),
  4. server push — сервер может сам определять какие ресурсы могут быть затребованы клиентом в ближайшее время (например, на основании собранной статистики) и передавать их клиенту заранее. Клиент в свою очередь может отказаться от приема такого контента,
  5. flow control — клиент может попросить сервер временно снизить скорость загрузки того или иного ресурса, или остановить загрузку полностью. Это полезно в случае, например, если юзер нажал паузу во время загрузки и просмотра видео.

С новым HTTP/2 устаревают такие best practice из HTTP/1.1 как шардирование доменов (загрузка статического контента с нескольких поддоменов одного домена), использование спрайтов изображений, объединение нескольких маленьких js/css файлов в один. Более того, эти практики теперь превращаются в антипаттерны: шардить домены нет смысла, так как данные будут загружены быстрее в рамках одного соединения с мультиплексированием и приоритезацией, спрайты и объединение файлов мешают кешированию — при обновлении одного из файлов браузеру заново придется загузить весь большой объединенный файл вместо одного изменившегося.

Стандарт HTTP/2 не требует обязательного использования TLS, однако современные браузеры включают HTTP/2 только для шифрованных соединений. Связано это, во-первых, с тем, что на шифрованных соединениях больше выигрыш от использования новой версии протокола, так как TLS handshake это достаточно тяжеловесная операция, а в случае использования HTTP/2 будет установлено всего 1 соединение с одним источником. Во-вторых, браузер и веб-сервер должны как-то сообщить друг другу о поддержке HTTP/2, а это легко сделать в рамках TLS handshake без добавления лишних запросов к серверу.

P.S. Прикрутил сегодня к этому блогу SSL-сертификат и планирую в ближайшее время обновить используемый веб-сервер, чтобы добавить поддержку HTTP/2.

P.P.S С помощью вот этого плагина для Хромиума и всех его форков можно отслеживать какие сайты уже используют HTTP/2 или его предшественника SPDY.

P.P.P.S. Вот ссылка на пост в официальном блоге nginx с описанием возможностей HTTP/2 и ссылками на дополнительные полезные документы.

GNU parallel и xargs. Параллельный запуск нескольких копий команды с разными аргументами

Submitted by Ромка on Сб, 19/09/2015 - 16:07

Ромка аватар

Задача

GNU Parallel
Есть консольная команда вида:

./do-something.sh -x 1

Значение аргумента x может меняться в диапазоне от 1 до 30 000. Выполнение команды для одного аргумента занимает от 30 секунд до 15 минут. Нужно максимально быстро выполнить эту команду для заданного диапазона аргументов на N-ядерном сервере максимально используя ресурсы сервера.

Возможные варианты решения

  1. Простой цикл от 1 до 30 тысяч с запуском команды на каждой итерации будет использовать только 1 ядро. Это решение неприемлемо: оно будет работать слишком долго и не задействует все доступные ресурсы сервера.
  2. Можно вручную разбить диапазон на N частей и запустить N циклов вида:
  for i in `seq 1 1000`
  do
      ./do-something.sh -x $i
  done

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

Страницы

Subscribe to Ромка!eu RSS