Search
Write a publication
Pull to refresh
3
0
Send message

Документируем код эффективно при помощи Doxygen

Reading time18 min
Views388K


Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

  1. Документируем код эффективно при помощи Doxygen
  2. Оформление документации в Doxygen
  3. Построение диаграмм и графов в Doxygen

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

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

22 photoshop-плагина для фронтенд-разработчика

Reading time2 min
Views74K
Предлагаю читателям «Хабрахабра» подборку 22 дополнений (скриптов) помощников, необходимых фронтенд-разработчику.

Hexy


Hexy

Печально выбирать слои в макете и каждый раз запускать палитру цветов только для того, чтобы получить шестнадцатиричное значение того или иного цвета. Hexy позволяет использовать инструмент «Пипетка»: нажмите на цвет объекта и скопируйте его непосредственно в буфер обмена.
Читать дальше →

Полноценный веб-сайт на C++ и немного диванной аналитики

Reading time20 min
Views132K
Но зачем?
Тут должна быть картинка про троллейбус

Невежливо отвечать вопросом на вопрос, но: а почему бы и нет? Просто потому, что можно.
Ладно, я пошутил. Чтобы пояснить причину, хотелось бы кратко описать историю моего знакомства с веб-разработкой. Но, дабы не нарушать последовательность повествования, я решил поместить ее в конце. В общем, с причинами мы еще разберемся.

Думаю, многим знакома такая разновидность веб-форумов, как имиджборды. Да-да, вы правильно поняли — именно на примере имиджборды я расскажу об опыте создания сайта на C++. Что же сподвигло меня заняться столь сомнительной пользы проектом? Левая пятка. В этом случае действительно никаких особых причин не было. Просто проснулся однажды утром и понял — хочу. Но это все лирика.

На Хабре хватает статей о веб-сайтах на C++: например, с использованием FastCGI или CppCMS. Но все это — HelloWorld'ы и туториалы. Я же вам расскажу о полноценном (пусть и не идеальном с точки зрения архитектуры и чистоты кода) проекте, постараюсь осветить различные тонкости.
Перейдем же к делу

Ускорение выполнения типовых задач в Windows

Reading time8 min
Views17K
Все можно сделать лучше, чем делалось до сих пор. /Генри Форд/

Каждый день я работаю за компьютером в среднем 10 часов. В данной статье описывается опыт настройки Windows 7 для ускорение выполнения типовых задач, который может пригодиться и вам.

В целом все сводится к минимизации временных затрат на выполнение задач. Чем меньше времени уходит на выполнение задач, тем большее их количество можно успеть сделать за единицу времени и тем самым повысить свою продуктивность.

Я выделяю несколько типов действий для ускорения выполнения типовых задач:
  1. Использование дополнительного софта
  2. Настройка интерфейсов Windows и приложений
  3. Использование горячих клавиш
  4. Ускорение работы системы (за счет отключение неиспользуемого функционала)

Читать дальше →

Визуализируй это

Reading time10 min
Views83K
Несколько лет назад я делал сайт о рыбалке и публиковал на нём карту окресностей города, отмечая интересные места. Я так увлёкся картами, что и сегодня занимаюсь дизайном геосервисов, а на досуге экспериментирую с картографическими визуализациями. Недавно я визуализировал статистику работы московского велопроката, а ранее опубликовал высотную модель города в виде разноцветной сетки улиц.

Это здорово, когда большие массивы данных об окружающем нас мире становятся визуальными, осязаемыми. Привлекает меня в этом не множество разноцветных линий или точек на тёмном фоне, а возможность наглядно показать и рассказать окружающим интересную историю, сделать эти данные полезными для людей. Мне хочется, чтобы увлечённых этой темой людей становилось больше — делиться знаниями друг с другом, обсуждать идеи.


Дома в центре Москвы разного цвета в зависимости от площади здания.
Данные: © Участники OpenStreetMap


О дизайне в картографии я уже рассказывали ещё буду рассказывать, ведь об этом можно рассказать много интересного. В этой истории, речь пойдёт не про традиционные карты.

Я задумал собрать что знаю про картографические визуализации и рассказать об этом. В итоге, у меня получился онлайн-курс «Визуализация геоданных»  —  серия мини-лекций об общих принципах и инструментах для работы с геоданными. К каждой части я собрал ссылки на дополнительные материалы и примеры рабочих файлов, чтобы можно было погрузиться в детали и попробовать что-то сделать самостоятельно. Этот пост собран из материалов курса.
Читать дальше →

Магия одного div. Мастеркласс от создателя a.singlediv.com

Reading time7 min
Views49K
Почему Single Div?

В мае 2013 года я присутствовала на CSSConf и услышала, как Лиа Веру говорит об укрощении свойства border-radius. Это было поучительно и позволило мне понять о CSS то, чего я раньше не понимала. Это напомнило мне времена, когда я изучала изящные искусства, когда я постоянно стремилась повысить свой профессиональный уровень. Мой уровень владения CSS можно назвать средним, поэтому я бросила себе вызов, чтобы узнать все, что я смогу, исследуя и экспериментируя со свойствами

Но почему именно один DIV?

Когда я училась рисовать, мой класс делал упражнение, в ходе которого мы получали цвета смешением трех основных: красного, желтого и синего. Целью этого занятия были изучение поведения материалов и понимание силы комбинации. Конечно, вы можете купить зеленую краску, но также можете получить ее, смешав синий и желтые цвета. Большее количество доступных вариантов решения проблемы заставляет нас пересматривать наши привычные решения.

Я решила запустить проект a.singlediv.com, где намеревалась каждые несколько дней размещать нечто новенькое, созданное с помощью CSS. Я поставила перед собой ограничение использовать только один DIV.
Читать дальше →

Visual Studio Extensibility. Часть первая: MSBuild

Reading time19 min
Views28K
Привет Хабр, в этих статьях я попытаюсь осветить тему расширений Microsoft Visual Studio(а попутно ещё и MSBuild), т.к. эта сфера является крайне плохо документированной и вообще покрыта пеленой какой-то загадочности.


Читать дальше →

Где смерть Кащеева?

Reading time7 min
Views34K
Привет ребят, давайте для начала проверим вашу память. Итак:
«На море на океане есть остров, на том острове дуб стоит, под дубом сундук зарыт, в сундуке — заяц, в зайце — утка, в утке — яйцо» в яйце игла — смерть Кощея!

А теперь, внимание, вопрос — как это формализовать?
Как приатачить к яйцу иголку и какова временная сложность детача смертии моей. Как перенести сказку в быль, как это выглядит на B-деревьях и почему на самом деле нет разницы между 2D и 1D.
А было все так: давным давно, в неком царстве, некотором государстве, на одном сервисе с шейрингом геолокации очень захотелось Иванушке Дурачку на уровне ЧПУ разделить Москву(/RU/MOW/) и Область(/RU/MOS/). И вообще навести порядок, чтобы все лежало по полочкам красиво и по алфавиту. Но не получалось ему сокровища свои посчитать, и аккуратно разложить. А Василису, хоть и дурак, к сбережениям не пускал.
Но решение было найдено.
Совсем недалеко над каким-то златом успешно чах Чахлик, еще и смерть он свою прятал по науке.
И если задача определения региональной (точнее полигональной) принадлежности некой иголки к некому сундуку выходит за рамки данной статьи, то нам ничто не мешает погрузиться в глубины зайца и посмотреть как он устроен на табличном уровне.
PS: и не спрашивайте почему зайца.
Читать дальше →

Штампуем окна: автоматизированное развёртывание виртуальных машин Windows на Hyper-V при помощи Vagrant (часть 2)

Reading time7 min
Views14K
В предыдыщей части мы рассмотрели, для чего нужна автоматизация разворачивания ВМ Windows и как подготовить хостовую систему. Сегодня я хотел бы заострить внимание на технической реализации самой массивной части процесса, а именно — подготовке базового бокса для Vagrant.
Собираем коробочку

Как запустить программу без операционной системы: часть 6. Поддержка работы с дисками с файловой системой FAT

Reading time11 min
Views21K
В пятой части нашей серии статей мы показали, как можно использовать прерывания BIOS'а после перехода в защищенный режим, и в качестве примера определили размер оперативной памяти. Сегодня мы разовьем этот успех и реализуем полноценную поддержку работы с дисками с файловой системой FAT16 и FAT32. Работу с файлами на диске можно разбить на 2 части: работа с файловой системой и работа с диском на уровне чтения/записи секторов. Можно сказать, что для этого нам нужно написать «драйвер» файловой системы и «драйвер» диска.
Читать дальше →

Пишем бота для MMORPG с ассемблером и дренейками. Часть 4.5

Reading time4 min
Views19K
Привет %username%! Сделаем небольшую остановку, что бы расставить все точки над «и», понять что к чему и как работает. За последнее время, я получил очень много вопросов связанных с офсетами для различных версий World of Warcraft, множество предложений по способам реализации инъекции сторонних инструкций в игровой процесс и теперь настало время это все обсудить. Если есть вопросы или предложения, добро пожаловать под кат!
Читать дальше →

Лекции Технопарка. 1 семестр. Алгоритмы и структуры данных

Reading time2 min
Views169K
Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

Лекция 1. Основы


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


Читать дальше →

Всё о версиях Windows 8.1 и о том, как легально загрузить последний образ без подписки

Reading time6 min
Views773K
Хочу поделиться в одной заметке важной, на мой взгляд, информацией о версионности образов Windows 8.1, и о том, как любой желающий может совершенно легально загрузить ту языковую версию и издание, которые ему требуется. С учётом того, что после выхода Windows 8.1 образы пересобирались минимум пять раз, вопрос версионности становится интересным для администраторов и энтузиастов.

Недавно я писал о том, как можно совершенно легально загрузить самый последний Microsoft Office с сайта Microsoft — как корпоративную версию, так и коробочную Retail — любые языки и продукты, со всеми интегрированными обновлениями. Сегодня я расскажу, как сделать то же самое и с операционной системой — средствами предоставляемыми самой Microsoft.

Но для начала я хочу рассказать о версиях Windows 8.1. Не об изданиях — этого добра в сети много, а именно о публичных версиях сборок ОС. Ведь для любого администратора удобно загрузить образ со всеми интегрированными обновлениями, чем устанавливать сотню самостоятельно. Причём загрузить образ с сайта Microsoft, а не самодельную сборку с торрентов. Всё что я буду рассказывать о версиях ОС Windows 8.1 применимо и к Windows Server 2012 R2, за исключением канала для бесплатной загрузки образов для переустановки ОС. Но давайте всё по порядку.
Читать дальше →

Qt Coding Style

Reading time5 min
Views44K
Qt Coding Style по версии Qt
Привет, хабражители!

Сейчас какой-то спец с многолетним опытом работы с Qt подумал: «Что за фигня? Хабр — для вещей покруче!». Но ведь даже спецам с многолетним опытом иногда надо читать вот такие статьи про простые вещи, ведь это — важно. Код — это одна из самых важных составляющих программирования. А наша задача — держать его в чистоте. Эта статья посвящена всем Qt программистам которые стремятся к идеалу.

Конечно есть статья на Qt Project — Qt Coding Style. Только вот там материала ценного меньше…
Все-таки решили почитать? Ну тогда - поехали!

Приложения для MeeGo Harmattan: Nokia N9, N950

Reading time14 min
Views104K
Бытует миф, что для MeeGo Harmattan и Nokia N9 мало приложений. Тут, как мне кажется, весь вопрос в том: а сколько надо? Лично я считаю, что все разговоры о сотнях тысячах приложений для iOS или Android, — галимый маркетинг и не более. Особенно, на мой взгляд, молчать в тряпочку следовало бы Android’у, потому как из-за многообразия девайсов и разрешений их дисплеев, добрая половина приложений на том или ином смартфоне или планшете открывается и работает некорректно. Впрочем, и iOS теперь больна все той же болезнью: на данный момент большая часть приложений на iPhone5 открывается как для дисплея iPhone 4s, то есть с черными полосами по краям 4-дюймового дисплея iPhone5. Я уже не говорю о том, что часть приложений на iPad открывается в “айфоновском” виде.

Читать дальше →

Светодиоды, ленты и их питание от ЭТ переменного тока

Reading time10 min
Views162K
Наверное, не ошибусь, если скажу, что более 90% жителей России знающих, что такое светодиодные ленты, на вопрос «можно ли трансформаторы от „галогенок“ использовать для питания светодиодных лент?» ответят «нет, нельзя!». Самым распространенным объяснением станет банальное «электронный трансформатор – это переменный ток, а светодиодам нужен постоянный». Именно так нам говорят в магазинах, именно такой лейтмотив имеют подавляющее большинство «профессиональных» статей на эту тему, чем, в общем-то, и приучили людей тратить заметно больше денег.

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

Сразу оговорюсь, что для обозначения «светодиод» я и далее буду применять само собой напрашивающееся и вполне естественное сокращение СД и намеренно не буду использовать для этого понятия английскую техническую аббревиатуру LED (Light Emitting Diode). В нашей нынешней стране отсутствие какой либо должной технической подготовки менеджеров и продавцов в магазинах уже привело к замусориванию и появлению таких неестественных для технического языка, юродивых для слуха и ужасных в написании буквосочетаний «леды», «led’ы», «ледовые», или как недавно увидел бегущей строкой — «LEDовые светодиоды». Мало того, что «масло – масляное», я просто вторить и плодить это «словомутие» не хочу…

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

Как REST-архитектура влияет на скорость и надежность работы сайта

Reading time3 min
Views50K
В основе REST-архитектуры лежит несколько важных базовых принципов, которые часто упускаются из вида начинающими программистами. Между тем, эти принципы имеют критическое значение для скорости и надежности работы веб-сайта. В некотором смысле REST — это архитектура, концентрирующаяся на совместимости и эффективном взаимодействии с другими узлами сети и клиентским ПО. Для них веб-сайт — черный ящик, реализующий HTTP интерфейс.

Унифицированный программный интерфейс


Ключевой момент: совместимость с HTTP-методами в плане безопасности и идемпотентности.

Безопасный запрос — это запрос, который не меняет состояние приложения.

Идемпотентный запрос — это запрос, эффект которого от многократного выполнения равен эффекту от однократного выполнения.
Читать дальше →

Футуристическое мышление

Reading time6 min
Views58K
Все имена сохранены, все совпадения имеют под собой злой умысел.

Привет! Меня зовут Саня, и я вижу будущее. Вы только не подумайте: я не какой-нибудь там маг-экстрасенс пятой категории гильдии Ардуины второго пришествия. Я действительно вижу будущее, когда сосредоточусь. Я не знаю, кто посылает мне эти видения: бородатый дядька на небе, аццкий сцотона, или дух Ричарда Фейнмана просачивается сквозь швы пространства-времени и подсовывает мне в голову эти картинки. Я также не знаю, как вся эта бодяга согласуется с многомировой теорией, принципом неопределённости Гейзенберга и пророчеством Ванги.

Многие спросят: «Эй чувак! Если ты действительно видишь будущее, то какого чёрта ты тратишь время на пост в хабр вместо того, чтобы спасать мир?!» Проблема в том, что я не вижу глобальных событий. Я не могу предсказать эпидемию или войну; не могу знать о том, что Северная Корея запустит ядерную ракету; даже вымирание популяции бородатых хомячков в африканских саваннах я не могу предотвратить. Вот я и решил устроиться на работу, где мои скромные умения точно пригодятся.
Читать дальше →

В поисках лучшего сигнала мобильного интернета весной 2015

Reading time3 min
Views28K
Вот и пришла весна в наши края. Погода на улице + 5 градусов, возобновляются дачные работы, а вместе с ними и поиски надежного провайдера мобильного интернета. Именно весной, когда природа начинает просыпаться, деревья создают дополнительные электромагнитные излучения, листва закрывает прямую видимость с базовой станцией, встает задача усиления сигнала сотовой связи. А в 2015 году особой популярностью пользуются решения с наименьшими затратами, об этом и пойдет речь в данном обзоре.
Читать дальше →

Из Oracle да в Postgres

Reading time10 min
Views72K
Так уж случилось, что с Oracle организация наша работает давно и плотно. Сам я познакомился с Oracle Database ещё во времена 6-ой версии и, с тех пор, какого либо дискомфорта не испытывал. Всё испортили рыночные отношения. С недавних пор, мы начали замечать, что Заказчик гораздо благосклоннее смотрит на наши проекты если в них используются бесплатные СУБД. О портации одного из таких проектов и будет мой рассказ... 
Читать дальше →

Information

Rating
4,243-rd
Location
Кызыл, Тува (Тувинская Респ.), Россия
Registered
Activity

Specialization

Software Developer, Application Developer
Senior
From 150,000 ₽
Python
C++
Linux
Docker