Как стать автором
Обновить
0
0
Александр @Xtail96

Разработчик ПО

Отправить сообщение

Юнит-тестирование в Qt

Время на прочтение6 мин
Количество просмотров79K

gollum подметил что в тексте картинки есть ошибка

Салют, хабр! Как дела?

Хотел немного подучится чему-то. Искал на хабре в хабе «Qt Software» хоть какой-то пост про юнит-тестирование в Qt. Не нашел. Тут я расскажу базовые вещи про юнит-тестирование на Qt (не ожидайте могучего шаманства). На самом деле, юнит-тестить в Qt довольно просто. Что бы узнать как это делать, приглашаю читать дальше.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии21

Реализация поиска печатей на OpenCV без нейронок, регистрации и смс

Время на прочтение15 мин
Количество просмотров9.4K


Не так давно перед нами стояла задача найти и извлечь печати с документов. Зачем? Например, для проверки наличия печатей в договорах с двух сторон (участников договора). У нас в закромах уже был прототип для их поиска, написанный на OpenCV, но он был сыроват. Решили откопать данный реликт, стряхнуть с него пыль и на его основе сделать рабочее решение.


Большинство приемов, описанных здесь, можно применить и вне задачи поиска печатей. Например:


  • цветовая сегментация;
  • поиск круглых объектов / окружностей;
  • конвертация изображения в полярную систему координат;
  • пересечение объектов, Intersection over Union (IoU, Коэффициент Жаккара).

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

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии1

Легкое создание отчетов на C/C++

Время на прочтение4 мин
Количество просмотров11K
Если вы разрабатываете на C/C++ какое-либо ПО для операторов (администраторов) больниц, магазинов, сервисов проката гироскутеров, ремонта сотовых телефонов, то наверняка сталкивались с задачей создания отчетов, чтобы печатать их на принтере, ну или хотя бы в PDF. Существует множество сторонних пакетов для Embarcadero RAD Studio, которые позволяют это делать. Такие как FastReport, QuickReport, Crystal Reports и т.д. Но на мой взгляд все эти пакеты требуют глубокого вникания в свой механизм и интерфейс. Много времени уходит на их изучение, и что самое главное, код для генерирования даже самого простого отчета будет состоять из огромного числа строк. Когда я впервые столкнулся с задачей генерирования отчетов под C/C++, то начал с FastReport и понял, что этот инструмент мне абсолютно не нравится.

В этот самый момент в голову пришла замечательная мысль: как круто бы было взять простой EXCEL-файл, добавить в него статическую информацию и отформатировать под свои нужды. В программе останется только открыть этот файл, наполнить его динамическими данными и сохранить или отправить на печать! Это послужило отправной точкой к моему изучению OLE механизма работы с файлами MS Office из программ, разрабатываемых в Embarcadero RAD Studio.
Читать дальше →
Всего голосов 25: ↑15 и ↓10+5
Комментарии16

Установка MacOS High Sierra, когда под рукой только WiFi

Время на прочтение4 мин
Количество просмотров48K
Итак, у меня случилась ситуация, которая заставила меня попотеть, так как подробной инструкции не нашёл нигде. Сам себе создал проблем.

Уехал заграницу, с одной сумкой, из техники был только телефон) Думал куплю ноут на месте, чтоб не таскаться. В итоге купил первый свой, на мой взгляд неплохой MacBook Pro 8,2 2011 года, i7-2635QM, DDR3 8GB, 256SSD. До этого были обычные ноутбуки на BIOS с Windows, на которых уже собаку съел, решил перейти на Apple, так как телефоном очень доволен. Была установлена High Sierra, версию не помню, но не суть. Решил я значит, что от прежнего владельца где-то что-то осталось, пароли и т.п. Думаю сброшу ка я всё в ноль
Читать дальше историю или инструкцию
Всего голосов 30: ↑26 и ↓4+22
Комментарии26

Разбор полетов AirSelfie 2

Время на прочтение3 мин
Количество просмотров18K
Не так давно стала доступна новинка — летающая камера AirSelfie 2. Попала она и в мои руки — предлагаю посмотреть небольшой отчет и выводы по этому гаджету.


Всего голосов 50: ↑43 и ↓7+36
Комментарии46

Комикс «Паять просто» в обновлённом варианте (2019)

Время на прочтение1 мин
Количество просмотров36K
image

Всем добрый день. Одним далёким днём (летним или зимним уже и не упомнить) набрёл я на статью от atarity, где в красках (во всех смыслах) было рассказано о том, как легко и просто можно научиться паять (ссылку на комикс прилагаю).
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии101

Как создать чужого — размышления о дизайне инопланетных видов

Время на прочтение17 мин
Количество просмотров19K
Инопланетяне являются почти настолько же основным столпом научной фантастики, как и межзвёздные полёты. Если задуматься, то пожалуй даже более влиятельным — Идеи о чуждой жизни обосновались в фантастике даже до межзвёздных полетов, с работами Герберта Уэллса и Эдгара Берроуза.

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


В 9 из 10 таких произведений «инопланетянин» по замыслу создателей — это типичный человек, только со странными выростами на голове, и\или неестественным цветом кожи (Наиболее хрестоматийный пример такого безобразия — сериал Star Trek). В худшем случае запредельной лени инопланетянин будет просто человеком, без каких-либо внешних отличий вообще. Это если инопланетянин подразумевается как персонаж которому можно сочувствовать, в случае если этот инопланетянин задумывается как враг, то его внешность и поведение часто больше напоминают какое-нибудь разъяренное дикое животное, чем разумное существо. Рычание или бритвенно-острые когти в полметра длиной не обязательны, но крайне приветствуются.

Где-то примерно до середины или конца 90х такая ситуация имела весьма практичное объяснение: Чтобы сделать персонажа, не похожего на человека, необходим большой бюджет и много денег на создание аниматронных кукол (А результат всё равно мог получиться неудовлетворителен по убедительности). Далеко не все проекты обладали таким количеством денег и времени, тем более телевизионные сериалы, поэтому загримированный актер оставался наиболее дешевым, практичным и эффективным способом сымитировать инопланетянина.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии175

Откуда у врановых и попугаев когнитивные способности? Последние исследования ученых

Время на прочтение5 мин
Количество просмотров23K
Плотность нейронов в отделах мозга врановых и попугаев, отвечающих за когнитивные способности, как продемонстрировали результаты последних исследований, превосходит плотность нейронов в мозгу приматов. Подробнее об этом неожиданном открытии мы расскажем в сегодняшний публикации.

image
Подробнее
Всего голосов 37: ↑23 и ↓14+9
Комментарии26

Поймай меня, если сможешь. Версия директора

Время на прочтение11 мин
Количество просмотров45K
«Поймай меня, если сможешь». Так называется фильм Стивена Спилберга. Я смотрел, интересно. Но не правда, хоть и основано на реальных событиях.

В действительности, «поймай меня, если сможешь» — это такая игра. Я вижу эту игру каждый день, и даже участвую в ней. И чувствую себя примерно так же, как герой фильма Спилберга – тот, которого Том Хэнкс играет. Я чувствую себя идиотом. Беспомощным идиотом, которого обманывают, глядя в глаза, каждый день. У меня есть власть, но все, что я могу с ее помощью сделать – уволить. Хотя, и это не помогает – приходит новый сотрудник, и игра начинается снова.

Слышали, наверное, такое красивое высказывание: если вы пригласили на работу квалифицированного специалиста, то надо делать то, что он говорит, а не говорить ему, что делать. А вы пробовали делать то, что говорят эти квалифицированные специалисты? Я пробовал. И скажу прямо: это полная чушь.
Читать дальше →
Всего голосов 131: ↑104 и ↓27+77
Комментарии217

3 популярных инструмента для организации непрерывного развертывания (Continuous Deployment)

Время на прочтение5 мин
Количество просмотров10K
image

Continuous Deployment (непрерывное развертывание) — особый подход в разработке программного обеспечения, который применяется для быстрого, безопасного и эффективного внедрения различных функций в ПО.

Основная идея — создание надежного автоматизированного процесса, позволяющего разработчику быстро предоставлять пользователю готовый продукт. При этом вносятся постоянные изменения в продакшн — это называется конвейером непрерывной доставки (CD Pipeline).
Читать дальше →
Всего голосов 52: ↑35 и ↓17+18
Комментарии6

Dell XPS 13 9380: надёжный и очень компактный ноутбук для серьёзных дел

Время на прочтение9 мин
Количество просмотров34K
Привет, Хабр! Сегодня мы хотим подробно рассказать о новой версии нашего флагманского ультрабука XPS 13 9380. Машина интересна сразу несколькими особенностями. Во-первых, это один из самых компактных и лёгких 13-дюймовых лэптопов на рынке. Во-вторых, здесь используются очень хорошие материалы – металл и углепластик. В-третьих, гаджет оснащается замечательными Full HD или 4К дисплеями, подходящими для профессиональной работы с графикой, а в первом случае ещё и отличается длительным временем автономной работы. И это далеко не все преимущества. Интересно? Тогда добро пожаловать под кат!


Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии67

Современные возможности C++, о которых надо знать всем программистам

Время на прочтение9 мин
Количество просмотров40K
Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые времена C++ не хватало динамичности. Непросто было найти человека, который мог бы сказать, что он питает к этому языку нежные чувства. Всё изменилось тогда, когда те, кто отвечает за стандартизацию языка, решили дать ход новшествам. В 2011 году C++ стал динамическим языком, языком, который постоянно развивается и вызывает у программистов куда больше положительных эмоций.

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



Сегодня мы поговорим о некоторых новых возможностях языка (начиная с C++ 11, которому, кстати, уже 8 лет), знать о которых будет полезно любому программисту.
Читать дальше →
Всего голосов 56: ↑44 и ↓12+32
Комментарии14

Подводный GPS на подводном роботе: опыт использования

Время на прочтение10 мин
Количество просмотров15K
Привет глубокоуважаемый хабрачитатель!

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

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



(Ахтунг! Под катом много фото!)
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии56

Снова трансформатор Теслы с печатными катушками, на этот раз сложный и с MIDI

Время на прочтение4 мин
Количество просмотров14K

Посетив в прошлом году выставку электроники к Германии, автор обратил внимание на два экспоната, объединение которых дало бы по его мнению превосходный результат. Это спиральный трансформатор Теслы, построенный Даниэлем Эйндховеном и представленный на стенде журнала Elektor, а также новые ключи на нитриде галлия, позиционируемые Texas Instruments как предназначенные для высокочастотных импульсных преобразователей.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии17

Дизайн интерфейсов встраиваемых систем

Время на прочтение13 мин
Количество просмотров24K


Осциллографы


Встраиваемые и промышленные системы — моя любимая тема в разработке дизайна. Когда делаешь интерфейс ПО какого-нибудь лазера или яхты — это чистый кайф и творчество.
На прошлой неделе я посетил выставки expoelectronica и embeddedday именно как UI разработчик. Целью было посмотреть на новинки вживую, пощупать, набраться опыта.
В итоге я посмотрел более 100 GUI различных систем, но вот с набором опыта возникли проблемы...


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


Внимание! Много фото!

Читать дальше →
Всего голосов 87: ↑87 и ↓0+87
Комментарии77

Разработка hexapod с нуля (часть 4) — математика траекторий и последовательности

Время на прочтение8 мин
Количество просмотров15K

Всем привет! Разработка гексапода продвинулась на еще один шаг. На этот раз реализованы и протестированы траектории движения конечности — очередная часть математики передвижения. В этой статье я расскажу об этих траекториях и базовых последовательностях для движения. Надеюсь будет интересно.

Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии32

Разработка hexapod с нуля (часть 3) — кинематика

Время на прочтение6 мин
Количество просмотров19K

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

Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии21

Разработка hexapod с нуля (часть 1) — проектирование

Время на прочтение4 мин
Количество просмотров39K

WARNING: Данная статья устарела и носит исключительно исторический характер!

Всем привет! Не так давно я начал изучать программирование под микроконтроллеры. По началу написание простых программ для мигания светодиодом и даже двумя уже не доставляло удовольствие и становилось скучно. И вот одним вечером сидя в раздумьях над тем, чем же занять свою голову, решил найти более сложные проекты. На просторах интернета увидел много вещей, которые создают люди, но больше всего меня удивил шестиногий робот или hexapod.

Вдохновившись картинками и видео решил опробовать свои силы. Разработка корпуса, электроники и программы будет вестись с 0.

Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии45

Разработка hexapod с нуля (часть 5) — электроника

Время на прочтение4 мин
Количество просмотров17K

WARNING: Данная статья устарела и носит исключительно исторический характер!

Всем привет! Разработка гексапода близится к завершению первой боевой версии и вот настало время для описания всей его электронной начинки. Так же я добавил HC-SR04 для обнаружения препятствий, которого так не хватало для визуальной удовлетворенности во внешнем виде гексапода. Будет немного нового видео и у Вас есть шанс меня отпинать по электронике.

Этапы разработки:
Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии18

Cloud Firestore + Android это просто

Время на прочтение4 мин
Количество просмотров26K

Не так давно Google зарелизил Cloud Firestore. Cloud Firestore — это облачная NoSQL база данных, которую Google позиционирует как замену Realtime Database. В этой статье я хочу рассказать как начать ей пользоваться.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии9

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность