All streams
Search
Write a publication
Pull to refresh
6
0
Send message
В gdb почти полная поддержка D mangling, нужно только использовать свежую версию, с патчами от Iain Buclaw.
Да, это частая практика — использовать DMD для разработки, но собирать финальную версию с помощью GDC/LDC.
Для идиоматического кода в стиле Phobos LDC сейчас создаёт самые компактные бинарники с большим отрывом, т.к. по умолчанию включено --gc-sections для линкера.
Что с гейтами?
Меня в slack очень радует возможность использование IRC/Jabber клиентов.
Gnome Shell на Ubuntu пользоваться практически невозможно. Я не знаю, почему всё так плохо, каждый раз, когда пробую из интереса (основная система Arch Linux), прихожу в ужас от количества глюков.
Из всей огромной простыни текста непосредственно об установке — пара строк, всё остальное про (необязательную) настройку. Я бы с интересом почитал про аналогичную настройку винды :)
Да, а для всех остальных (конкурентов, потребителей, государства) — самое нежеланное. Для меня эта лекция звучит подобно лекции о преимущества рабовладения — всё разумно, практично, экономически обосновано. Но эмоции вызывает далеко не положительные.

Тот факт, что антимонопольное регулирование совершенно не работает в индустрии IT — большая проблема и я бы предпочёл послушать лекции о том, как с этим бороться, а не лекции о том, как этим лучше воспользоваться в личных целях.
Меня просто смущает рассказ в духе «монополии — это хорошо» от лица не самого последнего человека по авторитету в IT-бизнесе. Наверное, даже не сам рассказ, а то, что его после этого не линчевали. IT живёт в какой-то своей экономике х_Х
Очень радостная история… с точки зрения монополиста.

Зато для пользователей и индустрии в целом такой сложившийся расклад — одна из самых больших проблем, препятствующих развитию.
P.S. rebase своеобразно сочетается с merge commit — в обычном логе последний показывается как один коммит, но в списке rebase -i будут указан полный список коммитов второго родителя.
> редактор закрывается без единого изменения (в попытке убрать этот кошмар)

А откуда взялась идея, что отсутствие изменений == отмена rebase? :) Это вообще-то то же самое, что и просто rebase, без -i
Для отмены операции нужно текстовый буфер в редакторе очистить и сохранить, тогда git обидится на отсутствие коммитов и ничего делать не будет.
Рекомендую всегда делать rebase -i, чтобы убедиться, что перенесены будут именно ожидаемые коммиты.
За период, потраченный на оптимизацию. В остальное время разработчику платят за другие задачи.
Всё упирается в количество серверов. Ускорение программы на 10% позволит сэкономить совсем разные суммы при 10 машинах и при 100.
Вы ничего не докажете! :)
> И было бы очень здорово, если таким человеком оказались бы вы

За долю в компании такой вариант можно ещё рассмотреть. Всё, что меньше — банально не стоит новой головной боли. Так что уж лучше довольным дворником ;) Тем более, что за хороших дворников сейчас готовы платить намного больше 60 тысяч.
К счастью реалии рынка не соответствуют этому (вне всякого сомнения разумному) мнению :)

А реальность такова, что мне мало интересны проблемы моего работодателя, точно как и ему мало интересны мои эстетические предпочтения в программировании. Просто так сложилось, что я люблю есть, а работодателю могут быть полезны мои навыки. Трудовой контракт это честная сделка только в том случае, если обе стороны признают, что их цели и интересы различны и готовы идти на компромиссы. Обе стороны.

Для меня программирование — самоцель, а работа — побочный эффект. Я не скрываю этого на собеседованиях и ожидаю, что к такой позиции будут относиться с уважением и пониманием — до тех пор пока работа выполняется. Но если мне начнут рассказывать, что этого мало и я ещё и должен работать с «правильным отношением» — я просто сменю компанию.

Давайте же уважать друг друга и стремиться к разумным компромиссам ;)
> Тоесть они отвязываются от GC? Где это написано?

Не понял вопроса :) Это легальный код использующий массивы без GC:
import core.stdc.stdlib;

auto mallocArr(T)(size_t size)
{
    auto chunk = malloc(T.sizeof * size);
    auto typed = cast(int[]) chunk[0..(T.sizeof * size)];
    typed[] = T.init;
    return typed;
}

void main() @nogc
{
    int[] arr = mallocArr!int(5);
    assert(arr.length == 5); 
    assert(arr[0] == 0); 
    arr[0] = 42; 
    assert(arr[0] == 42);
}


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.

Information

Rating
Does not participate
Location
München, Bayern, Германия
Date of birth
Registered
Activity