Pull to refresh
@master1312 read-only

User

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

в C++ можно не писать return в методе, который согласно сигнатуре должен что-то возвращать

Меж тем у компилятора (gcc по крайней мере) есть ключик -Werror=return-type, превращающий соответствующий warning в полноценный error. Очень рекомендую.

Что делать, когда малое предприятие всерьез задумалось о переходе с Windows на Linux

Линукс сложно проапгрейдить до состояния, когда вообще ничего не запускается. А вот Мелкософт некоторое время назад умудрился выпустить обновление на Вин10, которое стабильно вызывало БСОД при загрузке системы.

Что делать, когда малое предприятие всерьез задумалось о переходе с Windows на Linux

Учитывая, что в Линуксе у рута всегда есть неприкосновенный резерв места на диске, все запущенные из-под него службы продолжат работать в штатном режиме. А вот котикам не повезет, это да.

Вредные заклинания в программировании

А в Ruby и прочих зачем так сделано? Там же наверное тоже какая-то логика была.

Вредные заклинания в программировании

sizeof(x+=1);

Кстати, компилятор люто паникует.
предупреждение: statement has no effect [-Wunused-value]
sizeof(x+=1);

Так что, не забывайте посматривать на ворнинги компилятора.

Вредные заклинания в программировании

Питон мне вообще мозг вынес, учитывая то, что еще в комментах понаписали.
0 соответствует true в Ruby

Еще в линуксовых шеллах во всех.

Анализ требований

А, Вы наверное подумали, что я предлагаю от требований отказаться? Не-не-не, требования — это мастхэв номер 1, и спорить даже не буду. :) Нет требований — нет проекта.

Анализ требований

Я имею ввиду, что юзкейсы (с макетами или хотябы без них) очень сильно помогают утрясти собственно сами требования. Без низ риск накосячить гораздо выше. Можно сказать, они как раз и помогают «продать» требования заказчику, так как показывают ему, как будет работать еще не разработанный продукт.

Анализ требований

Требование — это не функция системы, а описание задачи или проблемы, которую хочет решить конкретный человек.

Вот мне лично эта фраза прям понравилась. Мне кажется, что написать требования и не написать юзкейсы — зря потратить время. Юзкейсы обязательно надо показать заказчику, чтобы он прослезился и сказал: «Да, именно так я и хочу чтобы оно работало».

Когда переменная bool не true и не false одновременно

Таки да, забыл выключить. Теперь для switch-а результат «superposition» и bool сравнивается как int, с 1 и 0, для if-ов по прежнему true. Да и ассемблерный код для них все равно одинаковый. В общем-то логично, что gcc if(t[0]) и if(t[0]==true) одинаково воспринимает, так же как и if(!t[0]) и if(t[0]==false).

Когда переменная bool не true и не false одновременно

GCC для примера с if-ами вообще странный код генерирует. Во-первых, он выкидывает напрочь ветку default из switch и выводит false, потому что в первом case-е сравнивает булевскую переменную с 1, когда не совпадает (а там же мусор, так что не совпадает) — сразу переходит на cout<<«false\n»;. А в обоих ифах gcc тупо сравнивает булевскую переменную с 0 и довольный выводит true. Ассемблерный код для if(t[0]) и if(t[0]==true) абсолютно одинаковый:
0x80486e8 <+0x0048> 80 3e 00 cmpb $0x0,(%esi)
0x80486eb <+0x004b> 75 43 jne 0x8048730 <main()+144>
Подозреваю, что MVC для switch-а честно сравнивает переменную сначала с 1, потом с 0 и в результате попадает в default.
А вот при явном присвоении «bool var=10;» gcc еще при компиляции преобразует 10 в true (то есть в 1), что в отладке видно.

2038: остался всего 21 год

В свое время я нашел в библиотеке Qt волшебную функцию QDateTime::toMSecsSinceEpoch(). Так что я уже готов к 2038-у году. :)

Bash-скрипты, часть 3: параметры и ключи командной строки

Ключ -s команды read предотвращает отображение на экране данных, вводимых с клавиатуры. На самом деле, данные выводятся, но команда read делает цвет текста таким же, как цвет фона.

Наверное, все-таки вообще не выводятся. Иначе они занимали бы место на экране и во многих терминалах их можно было бы выделить мышкой.

Опрос разработчиков от StackOverflow (2017)

Тут скорее «переспал, но не женился».

Искусство оборонительного программирования

По поводу Message и Mailer пришлось перечитать три раза, прежде чем я въехал. Слава C++ и указателям! :)
Если честно, упоминание php и ракет вызывает когнитивный диссонанс. А тут еще и фреймворки. Как раз если писать ПО для ракеты, широко распространенные фреймворки использовать нельзя ни в коем случае. Тут лучше подходит самопальный «бронированный» велосипед, хотя это и дороже. Но в таких случаях на спичках не экономят.

Ваш язык программирования — отстой

Видимо, он идеален. ))

Методы удаленного доступа к Linux GUI

Я, может, ошибаюсь, но я не заметил в статье самый простой вариант для Linux-Linux. После установки иксов запускаем ssh с ключом -X и наслаждаемся окошками удаленных GUI-приложений у себя в системе. Это, конечно, для случая, когда не нужен именно рабочий стол.

C/C++: как измерять процессорное время

Дабы минимизировать временные затраты на саму функцию получения времени, вызываю два раза clock_gettime с CLOCK_PROCESS_CPUTIME_ID в начале и в конце, пересчет в секунды делаю уже потом. Если есть возможность зафиксировать частоту процессора, использую rdtsc инструкцию.

Об удобной навигации и отладке C++ кода в Vim

А что Вам мешает запускать ssh с ключем -X и QtCreator на удаленной машине с X11 Forwarding? Или он так тормозит?

Бизнес vs программная инженерия

Мне кажется, что проблема тут в отсутствии взаимопонимания, даже скорее взаимопроникновения знаний. Менеджер, работающий в контакте с командой программистов, обязательно должен обладать неким базовым набором знаний в программной инженерии, иначе он не сможет понять причины возникновения тех рисков, о которых ему будут говорить разработчики. А значит, он от них просто отмахнется. С другой стороны, разработчики должны понимать, для каких целей они делают ПО, кто и как им будет пользоваться, и в какую сторону оно предположительно будет развиваться (если вообще будет).
В конечном итоге, менеджер и команда разработчиков должны ДОГОВАРИВАТЬСЯ друг с другом, и не ударяться в крайности, а принимать компромиссные решения, которые позволят не только снять сливки сейчас, но и продолжить это делать в течении длительного времени с минимальными затратами.

Information

Rating
Does not participate
Registered
Activity