Да, это частая практика — использовать DMD для разработки, но собирать финальную версию с помощью GDC/LDC.
Для идиоматического кода в стиле Phobos LDC сейчас создаёт самые компактные бинарники с большим отрывом, т.к. по умолчанию включено --gc-sections для линкера.
Gnome Shell на Ubuntu пользоваться практически невозможно. Я не знаю, почему всё так плохо, каждый раз, когда пробую из интереса (основная система Arch Linux), прихожу в ужас от количества глюков.
Из всей огромной простыни текста непосредственно об установке — пара строк, всё остальное про (необязательную) настройку. Я бы с интересом почитал про аналогичную настройку винды :)
Да, а для всех остальных (конкурентов, потребителей, государства) — самое нежеланное. Для меня эта лекция звучит подобно лекции о преимущества рабовладения — всё разумно, практично, экономически обосновано. Но эмоции вызывает далеко не положительные.
Тот факт, что антимонопольное регулирование совершенно не работает в индустрии IT — большая проблема и я бы предпочёл послушать лекции о том, как с этим бороться, а не лекции о том, как этим лучше воспользоваться в личных целях.
Меня просто смущает рассказ в духе «монополии — это хорошо» от лица не самого последнего человека по авторитету в IT-бизнесе. Наверное, даже не сам рассказ, а то, что его после этого не линчевали. IT живёт в какой-то своей экономике х_Х
P.S. rebase своеобразно сочетается с merge commit — в обычном логе последний показывается как один коммит, но в списке rebase -i будут указан полный список коммитов второго родителя.
> редактор закрывается без единого изменения (в попытке убрать этот кошмар)
А откуда взялась идея, что отсутствие изменений == отмена rebase? :) Это вообще-то то же самое, что и просто rebase, без -i
Для отмены операции нужно текстовый буфер в редакторе очистить и сохранить, тогда git обидится на отсутствие коммитов и ничего делать не будет.
> И было бы очень здорово, если таким человеком оказались бы вы
За долю в компании такой вариант можно ещё рассмотреть. Всё, что меньше — банально не стоит новой головной боли. Так что уж лучше довольным дворником ;) Тем более, что за хороших дворников сейчас готовы платить намного больше 60 тысяч.
К счастью реалии рынка не соответствуют этому (вне всякого сомнения разумному) мнению :)
А реальность такова, что мне мало интересны проблемы моего работодателя, точно как и ему мало интересны мои эстетические предпочтения в программировании. Просто так сложилось, что я люблю есть, а работодателю могут быть полезны мои навыки. Трудовой контракт это честная сделка только в том случае, если обе стороны признают, что их цели и интересы различны и готовы идти на компромиссы. Обе стороны.
Для меня программирование — самоцель, а работа — побочный эффект. Я не скрываю этого на собеседованиях и ожидаю, что к такой позиции будут относиться с уважением и пониманием — до тех пор пока работа выполняется. Но если мне начнут рассказывать, что этого мало и я ещё и должен работать с «правильным отношением» — я просто сменю компанию.
Давайте же уважать друг друга и стремиться к разумным компромиссам ;)
> Мне, например не понятно, чего оно там с GC крутит (и скорее важны задержки на вызовы GC чем память которая занмается/освобождается). Если написали можно отключить — знач можно, а не как в С++ — можно, но со special rule's ;)
Всё очень просто — чем меньше мусора, тем меньше задержки на сканирование :) Явно запретить сканирование в критичных фреймах можно через GC.disable() / GC.enable(). Довольно удобный подход — использовать ручное управление памятью для основных данных программы (через свои аллокаторы), но оставлять GC для мелких полезностей — делегаты, долгоживущие ссылки и т.п.
Вот в этом выступлении (http://youtu.be/WmE7ZR1_YKs) мой коллега вкратце упоминает, как аккуратное выделение памяти позволило достигнуть приемлемых для soft real-time результатов с включенным GC.
Для идиоматического кода в стиле Phobos LDC сейчас создаёт самые компактные бинарники с большим отрывом, т.к. по умолчанию включено --gc-sections для линкера.
Меня в slack очень радует возможность использование IRC/Jabber клиентов.
Тот факт, что антимонопольное регулирование совершенно не работает в индустрии IT — большая проблема и я бы предпочёл послушать лекции о том, как с этим бороться, а не лекции о том, как этим лучше воспользоваться в личных целях.
Зато для пользователей и индустрии в целом такой сложившийся расклад — одна из самых больших проблем, препятствующих развитию.
А откуда взялась идея, что отсутствие изменений == отмена rebase? :) Это вообще-то то же самое, что и просто rebase, без -i
Для отмены операции нужно текстовый буфер в редакторе очистить и сохранить, тогда git обидится на отсутствие коммитов и ничего делать не будет.
rebase -i
, чтобы убедиться, что перенесены будут именно ожидаемые коммиты.За долю в компании такой вариант можно ещё рассмотреть. Всё, что меньше — банально не стоит новой головной боли. Так что уж лучше довольным дворником ;) Тем более, что за хороших дворников сейчас готовы платить намного больше 60 тысяч.
А реальность такова, что мне мало интересны проблемы моего работодателя, точно как и ему мало интересны мои эстетические предпочтения в программировании. Просто так сложилось, что я люблю есть, а работодателю могут быть полезны мои навыки. Трудовой контракт это честная сделка только в том случае, если обе стороны признают, что их цели и интересы различны и готовы идти на компромиссы. Обе стороны.
Для меня программирование — самоцель, а работа — побочный эффект. Я не скрываю этого на собеседованиях и ожидаю, что к такой позиции будут относиться с уважением и пониманием — до тех пор пока работа выполняется. Но если мне начнут рассказывать, что этого мало и я ещё и должен работать с «правильным отношением» — я просто сменю компанию.
Давайте же уважать друг друга и стремиться к разумным компромиссам ;)
habrahabr.ru/post/226071/#comment_7787471
Не понял вопроса :) Это легальный код использующий массивы без GC:
dlang.org/phobos/std_container.html#.Array реализует почти точный аналог std::vector из С++
> Мне, например не понятно, чего оно там с GC крутит (и скорее важны задержки на вызовы GC чем память которая занмается/освобождается). Если написали можно отключить — знач можно, а не как в С++ — можно, но со special rule's ;)
Всё очень просто — чем меньше мусора, тем меньше задержки на сканирование :) Явно запретить сканирование в критичных фреймах можно через GC.disable() / GC.enable(). Довольно удобный подход — использовать ручное управление памятью для основных данных программы (через свои аллокаторы), но оставлять GC для мелких полезностей — делегаты, долгоживущие ссылки и т.п.
Вот в этом выступлении (http://youtu.be/WmE7ZR1_YKs) мой коллега вкратце упоминает, как аккуратное выделение памяти позволило достигнуть приемлемых для soft real-time результатов с включенным GC.