All streams
Search
Write a publication
Pull to refresh
56
0
Константин @kstep

Инженер-программист

Send message
И был бы это вариант питона. И пришлось бы для использования лямбд писать длинющее ключевое слово, так что ФП превратилось бы в боль, а потом его постоянно везде читать. И стал бы lambda выглядеть lamba код на расте lambda примерно вот так lambda lambda lambda. И плакали ли бы мы кровавыми слезами каждый раз при чтении функциональных конвейеров из map/filter/and_then.

Нет, спасибо. ИМХО именно наличие этого ключевого слова в питоне тормозит развитие ФП в нём. Лямбда — легковесная структура, предназначенная для частого использования, и должна выглядеть и читаться легковесно.
А ещё в расте можно итерировать элементы и по ссылке, и по значению, на выбор. Пример с итерацией по изменяемой ссылке:

let mut numbers = vec![1, 2, 3, 4, 5];

for number in &mut numbers {
  *number += 1;
}

println!("{:?}", numbers);
24-часовом индийско-пакистанском ресторанчике

Есть хорошее русское слово: «круглосуточный». Именно так переводится 24-hours в данном случае.

Адреса, которые отвечали на его рыбалку

Таки «фишинг», как термин.

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

1) в /etc/systemd/logind.conf.d лежит файлик no-lid-sleep.conf
no-lid-sleep.conf
[Login] HandleLidSwitch=ignore
2) в /etc/acpi/events лежат два файла: docked и undocked
docked
event=ibm/hotkey LEN0068:00 00000080 00004010 action=sleep 5 && /usr/bin/systemctl start docked.target
undocked
event=ibm/hotkey LEN0068:00 00000080 00004011 action=/usr/bin/systemctl start undocked.target
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+! Жму, разрешаю права, и… получаю ту же форму регистрации с предзаполненными полями мыла и логина, но надо всё равно придумывать пароль. Шта??? Всё, на этом игра для меня закончилась, конверсия не произошла.
Github, gitlab, bitbucket — все они прекрасно выполняют роль тулзов для код-ревью.
Идея интересная, но…
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 если удалённая ветка обновилась.
Раз пошла такая пьянка, моя строка выглядит так:



Доступно в моём zsh-config репе: prompt.zsh

Выводит:

1) текущий каталог, если слишком длинный, то последние 5 каталогов,
2) текущая git-ветка, если я в репозитории (иначе не выводит этот компонент), вопросительный знак если есть незакоммиченные изменения, восклицательный — если есть изменения в стейджинге,
3) текущий терминал (удобно различать в каком терминале находишься и какой шелл убивать если что),
4) если команда выполнялась дольше 5 секунд, выводит сколько времени она выполнялась,
5) если команда неудачно завершилась, то выводит код ошибки.

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

И да, для bash придётся переписать, но тут главное идея.
Ну можно в качестве надёжных пиров использовать те же сервера CDN-а, которые всегда присутствуют в хайве, плюс по возможности использовать живой пиринг.
Да, я уже понял, что hg evolve это суперкруто. Однако:

не пользуюсь: 1) bitbucket его пока не поддерживает, а искаробочной смотрелки репозитория мне недостаточно 2) недостаточно народу на проектах под mercurial, чтобы разворачивать evolution (там, где народу достаточно, VCS выбирал не я ⇒ Git)
О да, знакомая картина :-)
У нас было как на второй картинке после octopus merge. Я его сделал чисто попробовать первый и последний раз в жизни.

Information

Rating
Does not participate
Date of birth
Registered
Activity