И был бы это вариант питона. И пришлось бы для использования лямбд писать длинющее ключевое слово, так что ФП превратилось бы в боль, а потом его постоянно везде читать. И стал бы lambda выглядеть lamba код на расте lambda примерно вот так lambda lambda lambda. И плакали ли бы мы кровавыми слезами каждый раз при чтении функциональных конвейеров из map/filter/and_then.
Нет, спасибо. ИМХО именно наличие этого ключевого слова в питоне тормозит развитие ФП в нём. Лямбда — легковесная структура, предназначенная для частого использования, и должна выглядеть и читаться легковесно.
3) в /etc/systemd/system лежат два файла: docked.target и undocked.target
docked.target
[Unit]
Description=Laptop is docked
Conflicts=undocked.target
undocked.target
[Unit]
Description=Laptop is undocked
Conflicts=docked.target
4) пишутся разные юниты, настраивающие ноут на разное состояние в зависимости от задоканности, в [Install] секции прописывается WantedBy=docked.target или WantedBy=undocked.target, потом им делается systemctl enable {unit}.service
5) ???
6) PROFIT!
Получается очень гибко, удобно добавлять/удалять/контроллировать сервисы в зависимости от состояния ноута.
P.S. sleep 5 в docked нужен, чтобы система успела подключить все устройства, доступные через док, например иксам надо успеть найти мониторы.
О, класс. Хочу такую! Где взяли? Или просто выдрали из старого Thinkpad и доработали напильником? У меня лично уже лет 5 блютусная Logitech diNovo Edge, пока устраивает, но рано или поздно аккумулятор сядет, надо будет искать замену…
Почему же, конфиги в системд прекрасно разбиваются по логическим частям, можно перекрывать общесистемные настройки юнитов на уровне пользователя и т.п.
Например, если не нравится настройки запуска сервиса по умолчанию, можно создать каталог /etc/systemd/system/имясервиса.service.d/local.conf и прописать их в этом файле, эти настройки перекроют общесистемные, и при обновлении пакетов не затронутся.
На редкость отличный и полезный перевод! Если бы не вставки «от переводчика», можно было бы и не догадаться, что оригинальная статья не на русском. Большое спасибо, было очень приятно читать!
Зашёл на веб-версию, просит зарегаться. Блин, опять выдумывать логин-пароль. О, есть кнопка логина через G+! Жму, разрешаю права, и… получаю ту же форму регистрации с предзаполненными полями мыла и логина, но надо всё равно придумывать пароль. Шта??? Всё, на этом игра для меня закончилась, конверсия не произошла.
Идея интересная, но…
1) Статья очень куцая, на статью не тянет (да, я читал, что статья пишется «по ходу разработки», но всё же осадок есть).
2) Стоило бы упомянуть, что описываемое решение windows-only.
Новичок станет делать git bisect? Если человек уже узнал про git bisect и начал его использовать, то вряд ли он «новичок». А за git checkout origin/master без понимания процесса нужно бить по рукам. Ну и в случае git checkout который приводит к detached head гит выдаёт здоровенный текстовый баннер с подробным описанием, что вы сейчас в «detached HEAD», что нужно сделать «git checkout -b branch» чтобы сохранить изменения и т.д., и т.п. Так что тут ещё и нужно не уметь читать, чтобы так лопухнуться.
Коммит можно делать всегда и из любых положений, он не требует обновлений с сервера, потому что это сугубо локальная операция. Только git push может потребовать git pull если удалённая ветка обновилась.
1) текущий каталог, если слишком длинный, то последние 5 каталогов,
2) текущая git-ветка, если я в репозитории (иначе не выводит этот компонент), вопросительный знак если есть незакоммиченные изменения, восклицательный — если есть изменения в стейджинге,
3) текущий терминал (удобно различать в каком терминале находишься и какой шелл убивать если что),
4) если команда выполнялась дольше 5 секунд, выводит сколько времени она выполнялась,
5) если команда неудачно завершилась, то выводит код ошибки.
Итого всё очень минималистично, выводит только ту информацию, которая важна по контексту, что позволяет держать строку очень короткой, но при этом информативной.
И да, для bash придётся переписать, но тут главное идея.
Ну можно в качестве надёжных пиров использовать те же сервера CDN-а, которые всегда присутствуют в хайве, плюс по возможности использовать живой пиринг.
Да, я уже понял, что hg evolve это суперкруто. Однако:
не пользуюсь: 1) bitbucket его пока не поддерживает, а искаробочной смотрелки репозитория мне недостаточно 2) недостаточно народу на проектах под mercurial, чтобы разворачивать evolution (там, где народу достаточно, VCS выбирал не я ⇒ Git)
Нет, спасибо. ИМХО именно наличие этого ключевого слова в питоне тормозит развитие ФП в нём. Лямбда — легковесная структура, предназначенная для частого использования, и должна выглядеть и читаться легковесно.
Есть хорошее русское слово: «круглосуточный». Именно так переводится 24-hours в данном случае.
Таки «фишинг», как термин.
Дальше не читал.
1) в /etc/systemd/logind.conf.d лежит файлик no-lid-sleep.conf
[Login] HandleLidSwitch=ignore
event=ibm/hotkey LEN0068:00 00000080 00004010 action=sleep 5 && /usr/bin/systemctl start docked.target
event=ibm/hotkey LEN0068:00 00000080 00004011 action=/usr/bin/systemctl start undocked.target
[Unit] Description=Laptop is docked Conflicts=undocked.target
[Unit] Description=Laptop is undocked Conflicts=docked.target
[Install]
секции прописываетсяWantedBy=docked.target
илиWantedBy=undocked.target
, потом им делаетсяsystemctl enable {unit}.service
5) ???
6) PROFIT!
Получается очень гибко, удобно добавлять/удалять/контроллировать сервисы в зависимости от состояния ноута.
P.S. sleep 5 в docked нужен, чтобы система успела подключить все устройства, доступные через док, например иксам надо успеть найти мониторы.
Например, если не нравится настройки запуска сервиса по умолчанию, можно создать каталог /etc/systemd/system/имясервиса.service.d/local.conf и прописать их в этом файле, эти настройки перекроют общесистемные, и при обновлении пакетов не затронутся.
1) Статья очень куцая, на статью не тянет (да, я читал, что статья пишется «по ходу разработки», но всё же осадок есть).
2) Стоило бы упомянуть, что описываемое решение windows-only.
Доступно в моём zsh-config репе: prompt.zsh
Выводит:
1) текущий каталог, если слишком длинный, то последние 5 каталогов,
2) текущая git-ветка, если я в репозитории (иначе не выводит этот компонент), вопросительный знак если есть незакоммиченные изменения, восклицательный — если есть изменения в стейджинге,
3) текущий терминал (удобно различать в каком терминале находишься и какой шелл убивать если что),
4) если команда выполнялась дольше 5 секунд, выводит сколько времени она выполнялась,
5) если команда неудачно завершилась, то выводит код ошибки.
Итого всё очень минималистично, выводит только ту информацию, которая важна по контексту, что позволяет держать строку очень короткой, но при этом информативной.
И да, для bash придётся переписать, но тут главное идея.
У нас было как на второй картинке после octopus merge. Я его сделал чисто попробовать первый и последний раз в жизни.