Самопроизвольный уход в спящий режим Windows 10 через 1-2 минуты бездействия

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

Решилась отключением .NET Framework 3.5.

Решение найдено и описано каким-то добрым человеком на CyberForum.

Docker Toolbox на Windows

Лучше поздно, чем никогда — решил на днях практически познакомится с Docker. До этого в разное время делал пару подходов, но как-то безрезультативно.

В качестве основной системы последнее время использую Windows. Ожидаемо, с Linux-контейнерами в Win все не так просто. На Windows с недавних пор есть два варианта поднять Docker — более новый Docker for Windows (на основе Hyper-V) и несколько устаревший Docker Toolbox on Windows (на основе VirtualBox). Причем нельзя одновременно активировать Hyper-V и использовать VirtualBox. В них используется виртуализация разного типа — на уровне железа и на уровне ядра ОС соответственно и они как-то между собой конфликтуют. Придется выбирать, чем пользоваться для всех своих проектов.

У меня довольно большой парк проектов, настроенных на работу локально через Vagrant с VirtualBox и нет желания их докерезировать. Так что выбираю вариант Docker Toolbox. Toolbox — это по сути пакет утилит из инфраструктуры Docker и VirtualBox c образом специального минималистичного Linux Boot2Docker, в котором собственно и крутятся сервис Docker и сами контейнеры.

Ставлю набор инструментов, прохожу вводное руководство по настройке Django проекта с помощью Docker Compose. И на шаге startproject файлы проекта не создаются. Все вроде в порядке и все на месте и крутится, но не работает как надо.

В конце-концов выясняю — все прекрасно работает, если проект находится в папке пользователя Windows. Оказывается, именно она настроена в совместный доступ с гостевой ОС по-умолчанию в созданной машине VirtualBox. А чтобы все работало как надо на диске D:, нужно создать еще одну расшареную папку со своими проектами и смонтировать ее в госте по сходному пути.

Wagtail CMS: хлебные крошки

В базовый или включаемый шаблон добавить подобный код:

{% load wagtailcore_tags %}

{% if self.get_ancestors|length > 1 %}
    <ul class="breadcrumb">
        {% for page in self.get_ancestors %}
            {% if not page.is_root %}
                <li><a href="{% pageurl page %}">{{ page.title }}</a></li>
            {% endif %}
        {% endfor %}
        <li>{{ self.title }}</li>
    </ul>
{% endif %}

npm: ошибка при установке пакетов в Vagrant

Во время выполнения команды npm install в расшаренной директории Vagrant (Windows хост, Ubuntu гостевая) происходит ошибка вида protocol error, symlink '../acorn/bin/acorn' -> '/vagrant/node_modules/.bin/acorn'. Эта распространенная проблема при работе с пакетными менеджерами в Vagrant под Windows и связана с некорректной работой симлинков при стандартном VirtualBox-ом механизме синхронизации папок между Windows хостом и Linux гостем. Решается либо сменой способа синхронизации, либо отказом от использования симлинков.

У npm к счастью есть опция отказа от симлинков:

npm install --no-bin-links

Добавляем поддержку Ruby синтаксиса в PhpStorm или PyCharm через TextMate Bundles

У меня в последние годы типична ситуация, когда в веб-проекте используется целая россыпь технологий. Как минимум, это какая-то из бекенд платформ — PHP, Python, Ruby и т.д. + JavaScript на фронте. Такой кейс отлично покрывается IDE от JetBrains — во всех из них поставляется полноценная поддержка JavaScript и других фронтенд технологий, соответствующая уровню WebStorm.

Но по факту, в дополнение к основному бекенд коду чаще имеем еще вспомогательные инструменты — сборка, деплой, виртуализация, оркестрация и т.д. Все эти системы также требуют конфигурирования или программирования и совсем не обязательно с использованием языка самого проекта. Самый распространенный пример — PHP или Python проект + Vagrant, у которого конфиг на Ruby. Ну а самый вырожденный случай в этом смысле — проект на моднейших микросервисах, в котором легко могут быть заюзаны 5 фреймворков на 3 языках.

Так вот в PhpStorm нет встроенной поддержки Ruby даже на уровне подсветки синтаксиса. Аналогично и с остальными IDE JetBrains — всегда поддерживается только одна бекенд технология. Остальные недоступны даже через репозитарий плагинов. Немного странно после использования текстовых редакторов типа Vim, Atom или ST, в которых всегда можно доустановить поддержку любого синтаксиса.

Понятно почему JetBrains так делают — им надо продавать лицензии. Хочешь полноценную поддержку еще одной технологии — плати. Есть даже All Products Pack предложение со скидкой.

Но если мне нужно поправить конфиг Вагранта, то мне совсем не нужна полноценная поддержка Ruby. И ДжетБрейнсы изящно выкрутились из этого противоречия, добавив поддержку плагинов для редактора TextMate — так называемых TextMate Bundles. Репозитария в IDE для них нет — бандлы нужно найти и скачать самому. Все без проблем ищется на гитхабе — называются обычно плагины %что-то%.tmbundle.

Пример бандла для Ruby. Качаем, распаковываем и добавляем в IDE через Settings — Editor — TextMate Bundles. Дополнительно может понадобиться указать сопоставление цветовых схем и перезагрузить среду.

Babun как терминал в PyCharm

Продолжаю осваивать Windows, как бы это забавно не звучало для веб-разработчика в 2K16. Захотелось, чтобы в качестве терминала в PyCharm запускался Babun, а не стандартный cmd.exe.

Делается так:

  • Нужно зайти в настройки Settings — Tools — Terminal.
  • Задать путь к bash.exe в директории установки Babun. По умолчанию C:\Users\YOUR-USER\.babun\cygwin\bin\bash.exe.

Снимок экрана (1)