UserTiming — это современный API, который позволяет разработчикам отмечать наступление важных событий (timestamps — моменты времени) и засекать их длительность (как разность указанных моментов времени). Для получения представления о работе API рекомендуется прочитать статью или заметку с несколькими примерами использования.
Archive for the ‘Программирование’ Category
Исключения при работе с числами с плавающей запятой


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

Использование JAMon для мониторинга


Java Application Monitor (JAMon) является бесплатной, высокопроизводительной и потокобезопасной библиотекой для сбора статистики о работе приложения и поиска узких мест, анализа возможностей масштабирования. Можно считать количество брошенных исключений определенного типа, количество SQL запросов, количество запросов JSP страницы. В отчете выдается число вызовов, время выполнения (общее, среднее, минимальное, максимальное, среднеквадратичное отклонение), а также сведения, относящиеся к […]

Прокачиваем плагин NextGEN Gallery


Началось с того, что я решил настроить имеющиеся галереи на предмет обработки событий прокручивания (скроллинга). В настройках админки я не нашел подходящей опции. Более того, такой функциональности я не обнаружил даже в примерах галерей на официальном сайте: сайт. После некоторого поиска оказалось, что для моих целей годится плагин easy fancybox. Однако, нужна доработка напильником — […]
Пример использования antlr 4


В этой заметке я рассмотрю использование antlr версии 4. Разбирать будем определения макросов для языка С/С++ и сделаем упрощенный препроцессинг — замену в теле макросов параметров на их значения. Упрощения касаются обработки пробелов — пробелы не пропускаются инструкцией skip. В первую очередь из-за того, что пробелы могут быть в теле/описании макроса: «(X) * (X)». Тело […]
Особенности использования плагина jasperreports-maven-plugin в CentOS


Третьего дня понадобилось под CentOS мавеном собрать проект, в котором задействован плагин jasperreports-maven-plugin. Собирал как положено — мавен 3.3.3 и jdk 1.8.0. Сборка начала валиться с ошибкой: [ERROR] class file has wrong version 52.0, should be 50.0[ERROR] class file has wrong version 52.0, should be 50.0 Это навело на мысль, что плагин ищет джаву вовсе […]
Продвинутые SCTP клиент и сервер


Протокол SCTP является очень перспективным и предоставляет множество интересных возможностей. В данной заметке я рассмотрю использование продвинутых SCTP клиента и сервера из примеров netty (простые клиент и сервер рассмотрены тут: Простые SCTP клиент и сервер ). Проект будет на maven. Скорее всего с ходу вам скомпилировать примеры из репозитория (репозиторий) не удастся. Я перечислю еще […]

Ошибки сборки от commons-math3 и commons-pool2


Намедни понадобилось собрать сэмплер для jmeter. Для сборки нужна зависимость org.apache.jmeter.ApacheJMeter_core версии 2.13, которая тянет за собой зависимости из org.apache.commons. Тянет она их опосредованно через ApacheJMeter_parent-2.13.pom. Среди них как минимум две — org.apache.commons.commons-math3 и org.apache.commons.commons-pool2 (скорее всего список неполный) — указаны неверно и вызовут ошибки вида: Multiple annotations found at this line: — Missing artifact […]

Програмная имитация отжига для начинающих


Данная заметка является переводом этой статьи: источник Поиск лучшего решения для определенных задач оптимизации может быть необычайно тяжелым, часто даже практически невозможным. Это происходит из-за того, что при усложнении задачи возрастает число возможных решений из которых нужно выбрать оптимальное. Даже при использовании возможностей современных компьютеров перебор всех вариантов представляется тяжелой задачей. В этом случае мы […]

Разбор рекурсивной грамматики с помощью javacc


Продолжаем создавать парсеры на java с помощью javacc. В этот раз рассмотрим разбор грамматики, которую уже разбирали с помощью lex+yacc тут: ссылка. В той статье есть BNF для данного языка в понятном для yacc виде. Для простоты я опять закомментировал название пакета — если надо, раскоментируйте и ставьте свой. Я собирал с помощью make: