Порт 8080 на MacOS

Уж не знаю почему (хотя есть догадки) каждый второй туториал по веб-приложениям пытается повеситься на порт 8080. Всё бы ничего, но по умолчанию этот порт слушает nginx, если он был установлен через Homebrew. Как результат — ошибки в консоли примерно такого вида:

Error: listen EADDRINUSE 127.0.0.1:8080

Мне это в конце концов надоело и я попросил nginx больше не прослушивать этот порт. Вообще, это стоит делать сразу после установки пакета, наверно. Для этого открываем файл usr/local/etc/nginx/nginx.conf с правами супер-пользователя и закоментируем секцию, начинающуюся с этих строк:

server {
    listen 8080;
    server_name localhost;

Проверяем конфигурацию и перезапускам nginx

sudo nginx -t
nginx -s reload

Разработчика туториалов же рекомендую писать чуть более сложный скрипт старта приложения и выбирать свободный порт из определённого диапазона.

Типичный зимний велосипедист

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

По случаю праздника многие заведения города предлагали разные ништяки для велосипедистов (в основном, кофе). Всё это было сведено в публичную гугл-табличку, а вот карты точек не было. Ну я и воспользовался моментом — создал свою.

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

Много ли таких? На сайте мероприятия зарегистрировалось 463 человека. Мою карту посмотрели 109 уников. Немного, для пятимилионного города. У победителя, Загреба, 842 человека на 790 тысяч жителей.

Посетителей в возрасте до 18-35 лет составили около 87%, при этом больше половины из них — старше 25 лет, так что ехали действительно на работу, а не в институт. Девушек, кстати, довольно много — больше четверти. При этом около 30% пришли со смартфона, боюсь, что им было не очень удобно, особенно на морозе.

Вот, кстати, моя фоточкапо пути на работу. В шлеме и очках.

A photo posted by Mikhail Baranov (@mkhlbrnv) on

Клонирование из GitHub в WebStorm

В WebStorm и все прочие IDE от JetBrains встроена интеграция с гитхабом. Например, можно клонировать репозиторий и создать проект не вводя лишних данных. Но, к сожалению, по умолчанию используется клонирование через https  – этот способ более универсален, но очень неудобен, если для работы с VCS используется не только gui, но и консоль. В этом случае терминал на каждый чих будет просить ввести пароль (в WS пароль от GH не спрашивается, если вы его сохранили в кейчейн или используете API Token).

Однако, это очень легко исправить: заходим в Preferences > Version Control > GitHub и отмечаем галочкой «Clone git repositories using ssh». Всё, теперь новые репозитории будут клонироваться правильно.

2015-12-24 09-34-54 Default Preferences

Вагрант и каталог, который не хотел удаляться

В одном из фриланс-проектов используется Vagrant, а я недавно поставил свежий El Capitan.

Клонирую я, значится, проект и делаю в нём $ vagrant up —provision. Что-то там крутится, пыхтит, выплёвывает в консоль кучу всякой информации, а потом — умирает. Ну, думаю, ладно. Обновлю-ка, для начала, всё. Сношу виртуальную машину, качаю последние стабильные VirtualBox и Vagrant, устанавливаю, запускаю…

А там сайт-то простой, на php. И всё ставится через composer install. И вот что-то этот Бетховен (см. на лого композера) снова падает с ошибкой, что он не может удалить какой-то там каталог в процессе установки. Ну, думаю, ладно. Нахожу этот каталог на хост-машине — он прекрасно удаляется. Но композер всё равно сходит с ума и не работает.

В общем, где-то час я занимался удалением каталогов на хост-машине и изнутри виртуалки, чистил ~/.composer, убивал и пересоздавал виртуалку — всё без толку. Если зайти через $ vagrant ssh на виртуалку и попробовать удалить каталоги там, то падает с ошибкой «cannot remove `/home/vagrant/project/vendor/packageName’: Is a directory». А если сделать «ls», то получаем следующую картину:

vagrant@vm:~$ ls -l project/vendor
ls: cannot access project/vendor/packageName: No such file or directory
total 0
?????????? ? ? ? ?            ? packageName

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

И тут, во время очередного перезапуска виртуалки, я увидел ворнинг в консоли:

=> default: Checking for guest additions in VM…
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.1.12
    default: VirtualBox Version: 4.3

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

$ vagrant ssh
vagrantup:~$ cd /opt
vagrantup:~$ sudo wget -c http://download.virtualbox.org/virtualbox/4.3.30/VBoxGuestAdditions_4.3.30.iso \
                       -O VBoxGuestAdditions_4.3.30.iso
vagrantup:~$ sudo mount VBoxGuestAdditions_4.3.30.iso -o loop /mnt
vagrantup:~$ cd /mnt
vagrantup:~$ sudo sh VBoxLinuxAdditions.run —nox11
vagrantup:~$ cd /opt
vagrantup:~$ sudo rm *.iso
vagrantup:~$ sudo /etc/init.d/vboxadd setup
vagrantup:~$ sudo apt-get install chkconfig #не уверен, что это нужно
vagrantup:~$ sudo chkconfig —add vboxadd
vagrantup:~$ sudo chkconfig vboxadd on
vagrantup:~$ exit

Тушу виртуалку, поднимаю, делаю composer install — всё работает. По хорошему, теперь бы надо ещё сделать кастомный package для этого всего, но как-то лень.

На самом деле нет

Простите, но я устал от велосипедизации и их лозунгов. Поэтому щас будет порция сарказма, по мотивам http://bike2work.ru/know-how/.

Я В ПЛОХОЙ ФИЗИЧЕСКОЙ ФОРМЕ

  • Начинайте ездить потихоньку, через несколько месяцев вы заметно окрепнете.
    На самом деле нет, кроме езды на велосипеде нужно ещё меньше жрать и больше двигаться. 15 минут в день на велосипеде вас не спасут.
  • Используйте выходные, чтобы найти самый простой и короткий путь из дома до работы.
    И удивитесь, как сильно меняется траффик в будни.
  • Ежедневные поездки на велосипеде помогают поддерживать форму не хуже, чем занятия в фитнес-клубе.
    Если вы в плохой физической форме — вы не ходите в фитнес-клуб, верно?

ВЕЛОСИПЕД ЕДЕТ СЛИШКОМ МЕДЛЕННО

  • Средняя скорость велосипедиста в городе — 15 км/ч. Чем чаще вы будете практиковаться, тем быстрее научитесь ездить.
    Это правда, но только если вы едете по проезжей части. А там, простите, страшно.
  • На дистанциях в пределах 5 км велосипед, как правило, быстрее другого транспорта.
    Истинно так.
  • На дистанциях в пределах 5-10 км скорость велосипеда сравнима или выше, чем у автомобиля.
    Тут уже всё сильно зависит от маршрута. На 10 км получается быстрее, чем на авто, но вы будете весь потный.

Я ЖИВУ СЛИШКОМ ДАЛЕКО ОТ РАБОТЫ

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

РЯДОМ С РАБОТОЙ НЕТ ВЕЛОПАРКОВКИ

  • Попробуйте привязать велосипед к забору или столбу неподалеку от офиса.
    И его опять украдут через неделю.
  • Поговорите с руководством компании — возможно, вам разрешат занести велосипед в подсобку или держать его на рабочем месте.
    Возможно. А возможно и нет. Но попробовать действительно стоит.
  • Попросите руководство установить велопарковку рядом с офисом. Для этого лучше объединиться с другими велосипедистами.
    Если парковка не охраняемая, ну, вы поняли…

Я БОЮСЬ, ЧТО ВЕЛОСИПЕД СЛОМАЕТСЯ

  • Перед тем как сесть на велосипед, убедитесь, что колёса накачаны, а тормоза и фары работают исправно.
    А ещё что тросики не растянуты, цепь не заржавела, спицы на колёсах не полопались.
  • Пройдите техосмотр в хорошей веломастерской. Не забудьте сообщить, что намерены использовать велосипед для регулярных поездок.
    Ещё бы кто подсказал контакты хорошей веломастерской.
  • Если вы сами не умеете производить мелкий ремонт, узнайте, где на пути вашего следования располагаются мастерские.
    И в чём теперь преимущество велосипеда перед машиной? В ней хоть под дождём эвакуатор ждать не страшно.

НА РАБОТЕ НЕТ ДУША

  • Большинство велосипедистов работает в офисе, где нет душа. Если не гнать, передвигаясь с комфортной скоростью, у вас вряд ли возникнет в нём потребность.
    Блин, расскажите мне, как вы это делаете — двигаетесь со скоростью 15+ км/ч и не потеете?
  • Если вы рассчитываете использовать поездки как вариант фитнеса, налегайте на педали по дороге с работы, а не наоборот.
    Но тогда вы будете ехать на работу ооочень медленно.
  • Слишком крутые горки преодолевайте пешком. Это не сильно увеличит время в пути и поможет сохранить свежий вид.
    Толкать велосипел в горку нисколько не легче чем ехать на нём. Если вы не хипстер на фиксе, конечно.

У НАС В ОФИСЕ ДРЕСС-КОД

  • Если у вас городской велосипед с прямой посадкой, то большую часть года ничто не помешает вам ездить в деловом костюме.
    Действительно, ведь у нас нет ни дождя, ни луж, ни пыли на дорогах.
  • Держите на работе запас офисной одежды.
    Годный совет. Даже если у вас нет дресс-кода.
  • Если по работе или после неё вам предстоит особо торжественное мероприятие, в этот день велосипед можно оставить дома.
    Нет, что, правда можно оставить велик дома?

В ДОРОГЕ МОЖНО ПОПАСТЬ ПОД ДОЖДЬ

  • Заведите себе плащ-дождевик и всегда возите его с собой.
    И резиновые сапоги. И штаны резиновые тоже не помешают.
  • Оснастите велосипед крыльями, которые защитят вас от брызг, летящих из-под колёс.
    Особенно хорошо они защитят от брызг от проезжающих мимо автомобилей.
  • Если за окном льёт как из ведра, необязательно ехать на велосипеде, можно воспользоваться и другим видом транспорта.
    Если за окном льёт как из ведра — лучше вообще сидеть дома. Пока дойдёшь до автобуса — промокнешь всё равно.

МНЕ КАЖЕТСЯ, ЧТО ЭТО НЕБЕЗОПАСНО

  • Согласно статистике, передвигаясь на велосипеде, вы рискуете попасть в аварию гораздо меньше, чем те, кто едет на автомобиле.
    А если летать самолётами — риск ещё ниже. Статистика вообще смешная наука.
  • Изучите и соблюдайте ПДД. Основная масса аварий с участием велосипедистов происходит, когда они нарушают ПДД.
    А ещё в ПДД написано, что велосипеду не место на тротуаре. И как же теперь нам быть?
  • Снабдите велосипед фарами и обязательно включайте их в тёмное время суток. Если со шлемом и в светоотражающей одежде вам будет спокойнее, купите себе и то и другое.
    О, второй годный совет. Велосипедист должен мигать как новогодняя ёлка, нет правда, лучше чтобы вас было видно как можно дальше.

У МЕНЯ МНОГО РАЗЪЕЗДОВ ПО РАБОТЕ, А ВЕЧЕРОМ МНЕ НУЖНО В МАГАЗИН

  • Купите надёжный замок, чтобы спокойно оставлять велосипед на улице.
    А ещё посмотрите на ютьюбе подборку роликов про болторезы и жидкий азот.
  • Прикрепите корзинку на руль и ящик на багажник, чтобы увеличить грузоподъемность велосипеда.
    И будьте готовы к снижению управляемости велосипеда.
  • Если едете на встречу, заложите лишние 5 минут на поиски парковки для велосипеда.
    Что? Для велика тоже нужно искать место для парковки? Ну я лучше поищу место, где можно машину припарковать.