Анализ сишных исходников через Тимсити

11.04.2018 23:56:28

Я очень люблю и уважаю статический анализ кода. Когда-то прикручивал Кланг к сборкам, потом к нему добавился Сиппчек, сейчас я стараюсь оба анализатора использовать, хотя получается и не всегда. В прошлом году как раз прикручивал Сиппчек к нескольким проектам и возникла занятная задача интеграции с Тимсити.
Читайте далее »

О качественных граблях: select()

02.09.2009 21:04:39

Написал я тут хороший (но очень секретный!) сервер со страшной многопоточностью и прицелом на большое число клиентов. И всё бы хорошо, да вот незадача — валится он странным образом при наваливании всё большего числа тех самых клиентов. Как оказалось, наткнулся я на достаточно известные (если знать что искать), но очень, очень качественные грабельки, так что грех не поделиться.
Читайте далее »

Многоязычное

23.07.2009 14:26:34

Как понять, что ты слишком много последнее время писал на Python и Shell? Легко — когда GCC начинает ругаться на комментарии начинающиеся с «#» в C.

Embedded crap

15.01.2008 19:42:26

Очень забавно.

Одна проблема, uClibc тоже не в лучшем состоянии.

Разработка кипит

29.09.2006 13:10:27

Потрясающие патчи иногда попадают в ядро. Например, такие.

SDKNet

02.07.2006 18:31:35

Вброс свободного кода!
Читайте далее »

О пользе паники

25.06.2006 15:13:39

Из-за повышенного уровня собственного разгильдяйства приходится в срочном порядке воевать с зеленым монстром, поскольку сдавать осенью экзамен на последней сессии как-то несолидно. Да и вообще, осенью я еще ничего не сдавал, нечего и начинать, неаккуратно это. Однако, в процессе борьбы появляются всякие интересные наблюдения.
Читайте далее »

Переносимость переносимости

23.05.2006 23:01:23

Интересно получается. Пишешь переносимое приложение. Пишешь для GNU/Linux на i386. Фактически, уже написал. Но поиспользовал пару «интересных» ioctl для последовательного порта, что для переносимости плохо. Ну, еще чуть-чуть pthreads. В ожидании хорошего геморроя перетаскиваешь все это на FreeBSD/amd64. Компилируешь из тех же исходников. И собирается на раз. Без каких-либо модификаций.

Что еще смешнее — на FreeBSD все работает без ошибок. На GNU/Linux появляется не очень пока что понятная (но явно мелочная) ошибка.

Круто.

P.S. Ошибка действительно идиотская была. Теперь все тип-топ с обеих сторон. Из совершенно идентичных исходников.

Зач0т

22.05.2006 14:07:52

В самом прямом смысле! Сегодня получил первый зачет на эту сессию по «Проектированию программных систем». Сдавали последние две работы, но неспортивно, аж обидно. Когда у преподавателя болит голова, сдавать неинтересно. А то я так старался на Форте, так старался с шести часов утра… Что даже самому понравилось.

На Форте (Википедия, Wikipedia) последняя лаба была, там мы еще раз реализовывали замечательный конечный автомат, который делали еще на самой первой лабе на C или Java какой-нибудь (хи-хи, а кто-то на Ragel :)). Естественно, попутно изучали этого зверя (до этого я с ним общался года три назад, наверное, когда ковырялся с nncron). Извиняюсь, но зарулил Форт Ragel по полной программе, разница между препроцессором для C/C++/Java/т.д. и простым до безобразия, но чудовищно эффективным по сути понятием словаря с виртуальной машиной, видна сразу.

Калашникова реализовывал вот по такой простой методике. Скажите мне, в каком еще языке это вообще возможно? По сути, я начертил табличку переходов в ASCII графике, да воспользовался парой определений из указанной статьи. И все работает. Без тонны if, then, else, case, switch, goto и прочей шелухи. Очень это радостно.

Ну и зачёт, конечно. Как-никак, а ведь если призадуматься, то это последняя сессия. Дальше уже такого цирка не будет. Эх.

Замечено

09.05.2006 23:20:49

Интересно, что когда нужно писать код, писать его ужасно не хочется. Хочется писать/переводить ближе к родному языку, а не C. При этом, когда надо что-то уже написать/перевести, резко появляется желание что-нибудь написать в коде, пусть даже и на C. Ужас.