Как стать автором
Обновить
16
Карма
0
Рейтинг
Oleg Kandaurov @f0y

Кот-Программист

  • Подписчики 14
  • Подписки 3

Жизнь современного разработчика в ЮMoney

Когда написал код и прошёл ревью, то иногда получается код отличный от изначального. Тем не менее написал его ты.

Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits

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

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Ну так можно поставить autocrlf=true и пушиться будут lf переносы.

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Но ведь можно использовать crlf. Почему ты сделал выбор в пользу lf?

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

В Linux все просто. Там юниксовые переводы строк везде и ставишь в git autocrlf = input. А вот в wsl хз…

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Коллеги, объясните пожалуйста, как правильно работать с переносами строк с wsl? Скажем у меня есть git, а редактирую я в через консольный vim и idea.

OpenWRT + OpenVPN: точечный обход блокировок

ipset тоже поплохело) уже 80к+ нужно хранить

Concurrency: 6 способов жить с shared state

О каких проблемах идет речь? Если ссылку на immutable объект расшарить между двумя потоками, то потоки, одновременно работающие с ним, не смогут его «испортить», так как объект неизменяемый. В этом суть данного подхода. Конечно он не полностью решает все проблемы и не всегда подходит.

Concurrency: 6 способов жить с shared state

Спасибо за комментарий!

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

В комментах упоминается
Если да, то нас опередили, но мы оптимистичны и повторяем транзакцию еще раз.

В данном случае изменения повторяются автоматически системой. Поэтому операции внутри транзакции должны быть идемпотентны. Я специально убрал часть конфигурации отвечающую за количество повторений транзакции, чтобы не загромождать код.
private final TransactionFactory txFactory = new TransactionFactoryBuilder().setMaxRetries(1_000_000) .build();

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

Concurrency: 6 способов жить с shared state

в варианте неблокирующего оптимистичного алгоритма есть существенный недостаток: при высокой конкуренции вероятность получить false на compare-and-swap становится достаточно высока, особенно с большими значениями BigInteger

Да, вы правы. Я сделал перформанс тесты (спасибо огромное TheShade) и до определенного момента неблокирующий алгоритм выигрывает в 2 раза у блокирующих. Затем деградириует и в конце концов становится медленнее. Здесь он просто приведен для демонстрации подхода.

Кроме того, пожалуй, метод val() излишний в api, потому что класс в таком виде становится не Thread safe

В какой реализации? BigInteger же immutable.

I2P-прокси на хостинге

Спасибо, отлично все заработало. Правда вместо настройки правил в плагине foxyproxy, я использовал privoxy, как описано здесь help.ubuntu.com/community/I2P

Про азбуку Морзе

Нас на Северном Флоте, да и в учебке в Анапе учили по другому. И я считаю, что более правильно.
Есть определенный гласные которые звучат коротко — это Е и И. А есть те, у которых длинный звук — это А и О. Если вы посмотрите скажем на Х, то там должны быть все короткие звуки, а вас двое длинных (хОлОстяки). У нас Х звучала как «химичите». То же самое с буквой С (сАмОлет), у нас «сисисип». То есть у вас А и О применяются и для длинных и для коротких звуков, что на мой взгляд не способствует более быстрому обучению, хотя это может и не влиять на скорость и качество приема.

zsh и bash: что выбрать

Раз уж зашёл разговор о раскрашивании
cat_via_pygmentize() {
    if [ ! -x $(which pygmentize) ]; then
        echo package \'pygmentize\' is not installed!
        exit -1
    fi

    if [ $# -eq 0 ]; then
        pygmentize -g $@
    fi
     
    for FNAME in $@
    do
        filename=$(basename "$FNAME")
        lexer=`pygmentize -N \"$filename\"`
        if [ "Z$lexer" != "Ztext" ]; then
            pygmentize -l $lexer "$FNAME"
        else
            pygmentize -g "$FNAME"
        fi

    done
}

alias o='cat_via_pygmentize'


Подсвечивает абсолютно любой вывод

Git Rebase: руководство по использованию

Она не всегда спасает. Вот тут сказано почему stackoverflow.com/questions/2333424/distributing-git-configuration-with-the-code/2354278#2354278

Из собственного опыта скажу что git blame <имя_файла> на виндовой машине будет говорит, что изменения not commited. Поскольку в репозитории юниксовые, а на винде виндовые и он думает что файл изменился. И поэтому надо прописывать git blame HEAD <имя_файла>. Также при мерджах возникает конфликт, но после вызова mergetool сразу говорит, что разрешён. Почему так еще не разобрался…

Безболезненная миграция с Gitosis на Gitolite

На нестандартном порту висит gitolite. После того как все конфиги протестированы этот instance выключается. А gitolite переносится на стандартный порт, как и описано в конце статьи
На другом пользователе нельзя поднимать, поскольку много систем зависит от origin url.

Безболезненная миграция с Gitosis на Gitolite

Всё дело в файле authorized_keys. Gitosis'у и gitolite'у нужно эксклюзивное владение этим файлом. А для одного instance'a ssh задаётся только один такой файл. Поэтому чтобы не было конфликтов надо поднять второй instance, который будет использовать другой файл authorized_keys

Yandex.Store + Мини отчет с YAC2012

По ссылке выступление длительностью 1:10, когда как на ЯК у докладчиков было 30 мин + 10 на вопросы. Это то, о чем говорил человек выше.

Бесплатный курс по работе с Sublime Text 2

Кто нибудь уже делал хоткеи максимально похожими на intellij idea?

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность