Один из самых быстрых способ межпроцессного взаимодействия реализуется при помощи разделяемой памяти (Shared Memory). Но мне казалось не логичным, что в найденных мною алгоритмах, память всё равно нужно копировать, а после перезапуска клиента (причём он допускался только один) нужно перезапускать и сервер. Взяв волю в кулак, я решил разработать полноценный клиент-сервер с использованием разделимой памяти.
Читать полностью »
Рубрика «велосипед на ракетном топливе»
Ускоряем передачу данных в localhost
2017-01-26 в 11:43, admin, рубрики: c++, IPC, open source, qnx toolchain, semaphore, shared memory, велосипед на ракетном топливе, менеджер памяти, Промышленное программирование, разделяемая память, Разработка систем передачи данныхУлучшаем свой английский: изобретаем субтитры заново
2016-02-25 в 5:44, admin, рубрики: английский язык, велосипед на ракетном топливе, изучение английского языка, изучение иностранных языков, изучение языков, иностранные языки, кино, Лайфхаки для гиков, персонализация, субтитры1. Intro
— Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
— Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
— Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
— А вот это уже ваши проблемы.
Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.
Читаем электронные книги на английском без словарей и переводчиков
2015-04-03 в 6:08, admin, рубрики: ePub, google translate api, python, английский обучение языки, английский язык, велосипед на ракетном топливе, изучение языков, книги, Лайфхаки для гиков, Читальный зал, электронные книги, метки: epub1. Интро. Личное.
Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).
Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.
Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
Реализация поддержки пользователей средствами JIRA или как мы избавились от OTRS
2014-06-25 в 11:50, admin, рубрики: jira, велосипед на ракетном топливе, разработка, управление проектами, метки: how-to, jira, велосипед на ракетном топливе0. О чем это все
История началась с того, что в компании, в которой я работал, была старая и, субъективно, несколько неудобная система обработки заявок (OTRS), с которой работала техническая поддержка. Разработка использовала JIRA, а отсутствие интеграции между JIRA и OTRS мешало толком формализовать процесс взаимодействия отделов. Кроме этого, в OTRS было несколько существенных недостатков, например письмо, взятое в работу одним сотрудником поддержки, не мог видеть другой. Эти проблемы надо было как-то решать и в процессе раздумий все свелось к двум вариантам:
- Обновление OTRS и настройка ее интеграции с JIRA
- Полный перенос работы техподдержки в JIRA и отключение OTRS
Делать решили второй вариант: это позволяло унифицировать рабочие инструменты, перестать поддерживать лишний сервис (который админы поддерживали по принципу «работает — не трожь», что не позволяло его оптимизировать и развивать), реализовать автоматическую сборку статистики по работе технической поддержки и использовать различные плюшки JIRA: канбан-доски, создание шаблонного бага на разработку одной кнопкой, гибкий поиск, автоматическую рассылку писем при исправлении ошибки и прочее.
Для упрощения работы переписку с пользователями решили свести к заведению задачи по первому письму от пользователя и комментированию задачи по всем последующим. Комментарии техподдержки отправлялись обратно пользователю письмом.
Быстрее чем std::function
2013-11-27 в 14:56, admin, рубрики: c++, c++11, велосипед на ракетном топливе, Программирование, метки: c++, c++11, велосипед на ракетном топливе С момента выхода стандарта С++11 прошло уже больше двух лет. И большинство С++ разработчиков уже знакомы с основными его нововведениями и костылями. Одним из нововведений было добавление в стандартную библиотеку класса std::function
.
Классы std::function и boost::function являются высокоуровневыми обертками над функциями и функциональными объектами. Объекты таких классов позволяют хранить и вызывать функции и функторы с заданной сигнатурой, что бывает удобно, например, при создании callback вызовов (например, мы можем регистрировать несколько обработчиков, и это могут быть как обычные функции, так и объекты с определенным оператором =)
Этого замечательного шаблонного класса давно не хватало нам. Однако, в погоне за универсальностью разработчикам стандартной библиотеки пришлось пойти на некоторые жертвы. Так как С++ используется в первую очередь там, где необходимо выжать максимальную скорость из железа, со больше всего разочаровывает любой overhead по скорости. В частности, к таким вещам можно отнести:
- При создании объекта
std::function
вызывается операторnew
, как следствие того, чтоstd::function
позволяет сохранять в себя функтор произвольного размера. std::function
имеет семантику копирования, которая, в принципе, редко когда бывает необходима в при действиях с функторами (в связи с появлением move-семантики), но стоит определенных ресурсов CPU.
Как от этого избавиться?
Читать полностью »
Не бойтесь велосипедов. Или еще один Grand Central Dispatch (GCD) на C++11
2013-07-10 в 17:59, admin, рубрики: c++, c++11, GCD, велосипед на ракетном топливе, велосипедостроение, велосипеды, параллельное программирование, Программирование, метки: c++11, GCD, велосипед на ракетном топливе, велосипедостроение, велосипеды, параллельное программированиеИМХО (Имею Мнение Хрен Оспоришь)
С моей точки зрения самое полезное, что может сделать программист для повышения своего профессионального уровня — это написание велосипедов. Велосипедостроение — очень увлекательный процесс. Иногда он увлекает больше, чем задача, ради которой сам велосипед и затевался. При написании велосипеда (под велосипедом я понимаю реализацию уже существующего) происходит более глубокое понимание уже существующих решений и техник.
Читать полностью »
Экосистемный подход к сборке веб-проекта с TeaCSS
2012-06-29 в 16:50, admin, рубрики: css, dsl, html, javascript, less, require, requirejs, sass, Веб-разработка, велосипед на ракетном топливе, метки: css, dsl, html, javascript, less, parser, require, requirejs, sass, Веб-разработка, велосипед на ракетном топливеВ этой статье я расскажу как можно организовать процесс сборки фронтэнда «от и до».
Советую начать со вводной статьи, если кто не читал.
Там я рассказывал про TeaCSS как про надмножество CSS, и это была неправда. Точнее – полуправда. И таким он был во времена своего создания (откуда и название).
Сейчас – это декларативный метаязык для генерации контента, во многом черпающий вдохновение из QML, Lisp, Clojure, Nemerle.Читать полностью »
TeaCSS – очевидный подход к созданию стилей
2012-06-28 в 23:27, admin, рубрики: css, html, javascript, javascript library, less, sass, Веб-разработка, велосипед на ракетном топливе, метки: css, javascript, javascript library, less, sass, велосипед на ракетном топливеВведение
Хотя CSS-подобных языков не так уж и много – на слуху и на плаву сейчас и вовсе одни Sass и Less, я все же начну с ответа на вопрос «А зачем нужен еще один?».
Если коротко, то TeaCSS не плодит новых сущностей, ведь этот тот же CSS, в который в качестве языка добавили JavaScript.
У этого подхода есть свои плюсы и минусы.
Плюсы – практически никаких подводных камней. Файл tea преобразуется в JavaScript, наполненный простыми командами вывода. Этот JavaScript можно отлаживать, смотреть в FireBug и вообще его поведение предсказуемо. В этом и состоит очевидность подхода, в вебе уже и так превалирует JS, поэтому вам не придется учить ничего нового.
Читать полностью »