пятница, 23 ноября 2012 г.

Никогда не изучить что-либо, не написав для этого программу и не начав жить и дышать этим. Одно дело выучить язык ради удовольствия, но нельзя говорить о том, что знаешь его, пока не напишешь на нём большую сложную систему.
Брэд Фицпатрик, создатель LiveJournal. Кодеры за работой. 2011

четверг, 22 ноября 2012 г.

О вреде методов объектов в C

В предыдущем посте я показал как в Си можно использовать вызов функций в стиле, похожем на C++. Теперь об основной причине, по которой так делать не стоит.

суббота, 10 ноября 2012 г.

Методы объекта в C

Когда плюсистов насильно пересаживают на Си, одним из пунктов ломки по нормальным языкам является отсутствие адекватных объектов и их методов. Но если становится совсем плохо, методы можно легко реализовать.

воскресенье, 7 октября 2012 г.

понедельник, 24 сентября 2012 г.

воскресенье, 16 сентября 2012 г.

lstlistings и кириллица

При использовании кириллицы в листингах возникает ряд проблем, решение которых разбросано где-то по интернетам. Здесь я опишу некоторые приёмы, позволяющие решить возникающие проблемы.

пятница, 10 августа 2012 г.

Как я пытался собрать gentoo при помощи clang.

Недавно случайно убил систему и под такое дело решил немого поэксперементировать. Сразу оговорюсь, что на практике менять системный компилятор не особо нужно, но если Ваши части тела жаждут приключений - это то, что Вы искали.

суббота, 28 июля 2012 г.

Создаём мануалы

Рано или поздно при написании утилиты возникает необходимость составления пользовательской документации по ней. Традиционно такой документацией является man страничка.

пятница, 13 июля 2012 г.

Проба пера на OCaml

Решил покурить OCaml. Первой (на самом деле нет) прогой на нём стал алгоритм Дейкстры преобразования выражений в польскую нотацию. Приводить алгоритм я здесь не буду, а вот ощущениями от языка поделюсь.

понедельник, 25 июня 2012 г.

... существуют два способа составления проекта программного обеспечения: один способ - сделать его таким простым, чтобы было очевидно, что недостатков нет, а другой - сделать его таким сложным, чтобы не было очевидных недостатков.
Чарльз Энтони Ричард Хоар. Старые платья императора. 1980

пятница, 15 июня 2012 г.

Расставить идентификаторы при помощи xquery

Возникла как-то задача расставить идентификаторы для определённого набора объектов в xml БД. Судя по выдаче гугла по этому вопросу или эта задача возникла только у меня, или она на столько тривиальна, что не стоит внимания.

четверг, 14 июня 2012 г.

Обойти 1000000 звёзд и не упасть.

В предыдущем посте написал, что при попытке индексирования 1000000 элементов у меня падала БД BaseX. Теперь выяснил почему.

вторник, 12 июня 2012 г.

Этот тормознутый xquery.

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

понедельник, 23 апреля 2012 г.

Git. Submodule. Грабли.

Переход от одного средства разработки к другому - вообще довольно затруднительное занятие, почти всегда сопряжённое с трудностями, ошибками и неприятностями. Так и переход с svn на git. Последний вообще оказался довольно своеобразной системой. И здесь под своеобразием я понимаю не то, что он ведёт себя не как svn, а то, что его поведение не интуитивно.

вторник, 17 апреля 2012 г.

Запускаем valgrind в Gentoo.

Есть в gentoo одна довольно неприятная бага: в ней не работает valgrind. Причём с довольно интересной формулировкой:
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      strlen
valgrind:  in an object with soname matching:   ld-linux-x86-64.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2


Стандартные советы по исправлению данной ошибки не сработали, поэтому пришлось как всегда делать собственные костыли. Для начала я расскажу как я пытался это пофиксить, ибо выглядело оно довольно забавно. Если Вам влом всё это читать, то переходите к последнему абзацу - там дано окончательное решение.

понедельник, 26 марта 2012 г.

Imagine Сup. Московский финал 2012.

Как-то незаметно прошёл год с предыдущего Imagine Cup, и вот в прошлую субботу состоялся московский финал 2012 года.

понедельник, 19 марта 2012 г.

суббота, 17 марта 2012 г.

The GCC AST itself is a curious data structure in that it is an implementation of the polymorphic data type idea in C (next time someone tells you that polymorphism works perfectly in C and they don’t need “bloated” C++ for that, show them the GCC AST)

вторник, 21 февраля 2012 г.

Пишем плагин для gcc. Часть 1.

Одной из крайне интересных фич, внедрённых в gcc 4.5 стала возможность создания плагинов для компилятора. К сожалению, в сети пока очень мало информации, описывающей данную возможность, а на русском языке её нет совсем. Что ж, постараюсь исправить эту ситуацию.

суббота, 18 февраля 2012 г.

colorgcc

Наткнулся на забавный пакет dev-util/colorgcc. Сие творение есть простенький скрипт на перле, который призван сделать хорошо более понятным вывод сообщений gcc. Последняя версия вышла аж в 1999 году!

пятница, 17 февраля 2012 г.

Я_обещаю_поставлять_патчи_с_ошибками...

Нет, меня конечно забавляет необходимость в alpha версиях gcc перед установкой вводить команду

export I_PROMISE_TO_SUPPLY_PATCHES_WITH_BUGS=1

но блин, прерывать из-за этого установку... Вот поставил я установку gcc в очередь команд и пошёл пить чай, а он грохнулся. Хорошо хоть спать не ушёл, а то под утро был бы сюрприз.

воскресенье, 12 февраля 2012 г.

cannot find -lEGL

Обновления в генте - вещь всегда весёлая и приводящая к ошибкам, от которых у дебианщиков глаза по пять рублей делаются.

суббота, 11 февраля 2012 г.

Диплом в LaTeX. Версия для МАИ. Часть 3.

Предисловие

Это третья и заключительная часть серии статей про то, как я писал диплом для МАИ в LaTeX. В первой части можно посмотреть общие замечания к вёрстке, во второй - несколько конкретных приёмов работы с текстом, а в этой части - как можно сделать в LaTeX презентацию.

суббота, 4 февраля 2012 г.

Диплом в LaTeX. Версия для МАИ. Часть 2.

Предисловие

Это вторая часть рассказа про то, как я писал диплом в МАИ. Первую можно посмотреть здесь, третья будет про составление презентации в beamer.

пятница, 27 января 2012 г.

Диплом в LaTeX. Версия для МАИ. Часть 1.

Предисловие

В МАИ прежде чем выйти на защиту, необходимо сдать диплом и раздаточные материалы (презентацию) в КДП - Кабинет Дипломного Проектирования. Процесс этот не самый приятный и временами отдаёт маразмом. В интернетах существует методичка с требованиям и верстать диплом нужно в соответствии с ней. Это заметно уменьшит количество придирок и, как следствие, ненужных поездок в институт. В этой серии статей будут рассмотрены решения, применённые при вёрстке диплома, которые применил автор при сдаче дипломной работы в МАИ, на 8 факультете в 2012 году.

воскресенье, 22 января 2012 г.

PVS под лупой

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

суббота, 14 января 2012 г.

Автоматические компьютеры существуют вот уже четверть века. Они сильно повлияли на наше общество в качестве инструментов, но их воздействие в этом качестве не более чем рябь на поверхности нашей культуры по сравнению с более глубоким влиянием, которое они окажут в качестве интеллектуального вызова, который не имеет прецедента в культурной истории человечества.
Эдсгер Вибе Дейкстра. Смиренный программист. 1972 г.