Программирование -


Инструментарий Perl программиста

29 марта, 2011 by Сергей Тамкович

Я люблю язык Perl. Простой, понятный, логичный и даже элегантный — это всё он. Для написания Perl программ отлично подходит текстовый редактор vim. Vi я освоил ещё в институте и с тех пор пользуюсь им с удовольствием. Лучшей среды для разработки небольших проектов, на мой взгляд — не существует. У некоторых пользователей существуют проблемы с […]


Анализ core-dump многопоточного приложения с помощью GDB

21 марта, 2011 by rius

Недавно по работе мне пришлось анализировать core-dump, сброшенный httpd. Поиск нужных команд для gdb занял некоторое время. Для того, чтобы съэкономить время другим, напишу о своем опыте. Итак, мы открыли с помощью GDB core-dump: gdb /path/to/binary —core /path/to/core_file Httpd – многопоточное приложение. Если сделать backtrace для основного потока, скорее всего ничего страшного не увидишь — […]


Как писать неподдерживаемый код, застрахуй свою работу :)

20 февраля, 2011 by Сергей Тамкович

Несколько лет назад, знакомый прислал ссылку на очень смешную статью — How To Write Unmaintainable Code, Ensure a job for life ;-) Статья превзошла все мои ожидания и вот на протяжении нескольких лет я с удовольствием перечитываю её снова и снова. В статье рассматриваются приёмы программирования на языке Си, цель которых состоит в том, что […]


Kamailio: загружаем много данных с помощью db_mysql

20 октября, 2010 by Сергей Тамкович

В Kamailio/OpenSIPS, как в любом взрослом проекте, имеется некоторое количество «прокладочных» интерфейсов. Задача этих интерфейсов — унификация. Например, с помощью mem/mem.h унифицирована работа с памятью. Интерфейс предоставляет набор вызовов pkg_malloc/pkg_free для работы с обычной памятью и shm_malloc/shm_free для работы с разделяемой памятью. Благодаря унификации работы с памятью — Kamailio портирован на множество различных платформ. Другим […]


Kamailio. Функции child_init(rank) и mod_init()

25 августа, 2010 by Сергей Тамкович

Каждый IP телефонист рано или поздно приходит к мысли, а не написать ли мне свой модуль для Asterisk, ну что бы делал всё что мне нужно быстро и без 2х страниц диалплана? Когда модуль для Asterisk написан, возникает желание написать модуль и для SIP-proxy, например для Kamailio. Программировать под Kamailio, на мой взгляд, несколько сложнее […]


Мнение о Google V8

11 марта, 2010 by Сергей Тамкович

Google V8 это высокопроизводительный JavaScript движок распространяемый под лицензией BSD. С недавних пор, компания Google активно продвигает V8, предлагая сторонним разработчикам включать V8 в свои проекты. Изучая вопрос подключения V8 к Asterisk, наткнулся на статью Игоря Сысоева (автора великолепного веб сервера nginx): … Поскольку V8 разрабатывается в первую очередь для Chrome, то это наложило на […]


Как рассчитать расстояние между парой координат (широта долгота)

26 февраля, 2010 by Сергей Тамкович

Работая с картами, часто бывает необходимо рассчитать расстояние в километрах между парой координат. Для этого пригодится следующая функция: function distance($lat1, $lng1, $lat2, $lng2) { $pi80 = M_PI / 180; $lat1 *= $pi80; $lng1 *= $pi80; $lat2 *= $pi80; $lng2 *= $pi80;   $r = 6372.797; // mean radius of Earth in km $dlat = ($lat2 […]


Как разделить строку в Си

19 февраля, 2010 by Сергей Тамкович

Разделение строки на элементы — стандартная задача при обработке текста. Многие высокоуровневые языки предоставляют удобные операторы для решения этой задачи. Например язык Perl позволяет разбить строку используя в качестве разделителя другую строку или регулярное выражение с помощью функции split. Результат разбиения возвращается в виде массива: @elements = split(/\s/, "very simple example"); В PHP аналогичную роль […]


Asterisk realtime теперь различает NULL и пустые строки

2 января, 2010 by Сергей Тамкович

Новогодние каникулы — отличное время для обновления вашей системы. Есть время подумать, взвесить все «за» и «против» и внимательно накатить необходимые обновления. Не стали исключением и эти праздники. Неприятный сюрприз ждал меня в модуле res_config_mysql из Asterisk-addons. 4 декабря, в него был добавлен сомнительный патч: /* Encode NULL values separately from blank values, for the […]


Как правильно расставлять фигурные скобки в Си

14 января, 2009 by Сергей Тамкович

Существует несколько нотаций, каждая из которых описывает, как и где писать фигурные скобки и писать ли их вообще. На каждую нотацию найдется большое количество любителей и немало ненавистников, готовых в любой момент затеять holy war. Так все таки, как же лучше записывать if и прочие выражения языка C, за которыми следуют операции или блоки операций? […]


← Предыдущая страницаСледующая страница →