Как стать автором
Обновить
1
0
Юрий Фрадкин @Jef239

Высокоточная спутниковая навигация, АСУТП и embed

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

Автопилот своими силами: sensor fusion с телефона и открытые обучающие данные

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

Всем привет. Продолжаем собирать автомобильный автопилот на компьютерном зрении из гитхаба и палок (начало здесь). Сегодня подключаем к делу датчики движения смартфона (акселерометр, гироскоп и GPS приемник) на Android, осваиваем несложный sensor fusion и окончательно закрываем с кодом для сбора обучающей выборки. Бонусы — Android приложение для записи всех сенсоров синхронзированных с видео и больше часа размеченных данных в рамках импортозамещения иностранных конкурсов. Весь код по-прежнему на github.



Это трехосные MEMS акселерометр и гироскоп, они будут нам крайне полезны.

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

Умный обход блокировок в Украине

Время на прочтение7 мин
Количество просмотров123K
image
В статье описывается настройка бесплатного сервиса Zaborona.Help для обхода блокировок сайтов в Украине.

Особенность конфигурации в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Работает на всех основных платформах: Windows, Linux, iOS, MacOS, Android.

VPN не влияет на скорость интернета, не подменяет IP для остальных сайтов и не мешает работе онлайн-игр, голосового трафика и т.д.

Проблемы популярных средств обхода блокировок


  • Браузерные плагины — не работают для мобильных приложений, проксируют через свои сервера весь трафик. Имеют доступ к содержимому страницы и угрожают безопасности.
  • Обычные VPN — маршрутизируют через свои сервера весь трафик. Влияет на скорость интернета, увеличивают задержки, подменяет IP для всех сайтов.
  • Браузеры с прокси — не позволяют обойти блокировку мобильных приложений.

Процесс настройки описан на примере OpenVPN и может быть легко повторен за несколько минут.

Настройки на стороне клиента выполняются с помощью одного файла конфигурации и не требуют ручного ввода адресов и паролей.
Читать дальше →
Всего голосов 77: ↑56 и ↓21+35
Комментарии254

Аналог std::vector из C++11 на чистом C89, и как я его писал

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

image
Жилой массив людей. Нет, серьёзно.


Холивары между ценителями Си и приверженцами его ублюдка сына в лице C++ начались ещё до моего рождения и прекратятся разве что после смерти обоих этих языков и меня заодно.


Адепты великого творения Кернигана-Ритчи до последней секунды рабочего дня готовы доказывать приспешникам Страуструпа аксиомы про вечность Си и его невероятную гибкость.
Те в ответ по-свойски советуют им лучше порадоваться рабочему дню, ведь он вот-вот окажется последним – двадцать первому веку кроссплатформенный ассемблер не нужен.
Распаляясь, сторонники Си приводят миллионы давно прошедших через голову навылет тезисов "почему Си лучше C++", при этом каждый раз подчёркивая, что второй все достоинства первого растерял ещё будучи в отцовской утробе, попутно утратив лик человеческий.
Обвиняемая сторона в обиде не остаётся и...


а хотя постойте, о чём это я.


Я люблю Си, уважаю C++ и не переношу холивары (честно). При этом я осознаю, что в Си действительно не хватает многого, и яркий тому пример – отсутствие удобной работы с данными. В C++ эту проблему во многом решает STL и свойства самого языка. На мой студенческий взгляд, здесь особо отличается всем знакомый std::vector. Если стало интересно, как я реализовал его аналог средствами C89 – прошу под кат.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии67

Благотворительность напрямую: детям — игрушки, взрослым — права на рисунки

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


Разработчик из DataArt Виктор Борисов придумал и реализовал что-то похожее на банк данных и социальную сеть в одном приложении. Причем не коммерческом, его проект — инструмент прямой благотворительности. Дети подают заявки на игрушки, прикрепляя к ним свои рисунки, а благотворители выполняют заявки и получают права на изображения. Хобби-проект Виктора называется «Игрушка за рисунок. Платформа для проведения конкурсов детских рисунков через интернет», а подробнее о нем рассказал сам автор.

Типичная ситуация: ребенок просит дорогую игрушку, которую родители купить ему не могут. Что остается делать ребенку? Обычно — просто смириться. Но каково ему будет, когда он вырастет и на него навалятся желания крупнее, если с самого детства его приучили сидеть сложа руки, отказавшись от амбиций?

«Игрушка за рисунок» предлагает уже с ранних лет прилагать усилия для достижения цели, искать альтернативные пути, но добиваться успеха. Если родителям конкретная игрушка кажется дорогой, для другого человека цена такого подарка может быть вполне посильной. Остается подать заявку на игрушку, дать ссылку на интернет-магазин, где благотворитель может купить этот товар, написать о себе и регулярно добавлять к заявке свои рисунки.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии27

Опубликована коллекция хакерских инструментов ЦРУ

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


7 марта 2017 года сайт Wikileaks начал публикацию коллекции Vault 7 секретных документов Центрального разведывательного управления США. Первая часть коллекции Year Zero содержит 8761 файл, в том числе список разнообразных зловредов, вирусов, троянов, десятков 0day-эксплойтов и полезной нагрузки для них, систем удалённого управления (сейчас вместо папок с файлами лежат pdf со списком файлов, после проверки появятся сами файлы) и соответствующая документация. Всего во всех частях коллекции — сотни миллионов строк кода. По мнению активистов Wikileaks, после такой утечки ЦРУ теряет контроль над большей частью своего хакерского арсенала.

Файлы получены из сети с высокой степенью защиты в Центре киберразведки ЦРУ, расположенного в Лэнгли, шт. Виргиния.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии130

Самые полезные приёмы работы в командной строке Linux

Время на прочтение5 мин
Количество просмотров157K
Каждый, кто пользуется командной строкой Linux, встречался со списками полезных советов. Каждый знает, что повседневные дела вполне можно выполнять эффективнее, да только вот одно лишь это знание, не подкреплённое практикой, никому не приносит пользы.

Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.

image

Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
Читать дальше →
Всего голосов 146: ↑130 и ↓16+114
Комментарии149

Как программисты развлекались до появления программирования

Время на прочтение4 мин
Количество просмотров39K
Любой язык — начиная от математики и музыки и заканчивая механикой и программированием — позволяет творить достаточно странные штуки. Вот несколько просто примеров того, как восхитительно можно пользоваться такими возможностями.

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


Послушать можно вот тут.

Юристы — это вообще песня. Их профессия, пожалуй, наиболее близка к разработке кода, разве что в роли кода выступают люди.
Всего голосов 76: ↑71 и ↓5+66
Комментарии159

Там добавим const, отсюда удалим const…

Время на прочтение9 мин
Количество просмотров18K
Я только что закончил серию изменений в коде браузера Chrome, которая уменьшила размер его бинарника под Windows примерно на 1 мегабайт, перенесла около 500 КB из read/write сегмента в read-only, а также уменьшила потребление оперативной памяти в общем примерно на 200 KB на каждый процесс Chrome. Удивительное заключается в том, что конкретно данная серия изменений состояла исключительно из удаления и добавления ключевого слова const в некоторых местах кода. Да, компиляторы — странные.

Эта задача возникла, когда я писал документацию для некоторых утилит, которые я использую для исследования регрессий кода, связанных с увеличением размера скомпилированных бинарников под Windows. Я запустил утилиту, скопировал в документацию её вывод и начал его описывать, когда заметил нечто странное: несколько больших глобальных объектов, которые согласно архитектуре должны были быть константными, почему-то находились в сегменте read/write данных. Сокращённая версия того вывода утилиты показана ниже:

image

Большинство исполняемых форматов имеют как минимум два сегмента данных — один для read/write объектов и ещё один для read-only. Если у вас есть константные данные, такие, например, как kBrotliDictionary, то их будет логично поместить в read-only сегмент, который является сегментом «2» в бинарнике Chrome под Windows. Однако некоторые константные данные, такие как unigram_table, device::UsbIds::vendors_ и blink::serializedCharacterData были в секции «3», то есть в read/write сегменте.

image
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии24

Опять февраль семнадцатого, готовим революционный наган для спутниковой навигации

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


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

Сейчас ситуация начинает стремительно меняться.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии218

64-битная Windows — это очень просто

Время на прочтение2 мин
Количество просмотров13K
Перевод поста piers7 «64 Bit Explained».

Послушайте, в этом правда нет ничего сложного.

Все программы находятся там же, в %ProgramFiles%, кроме случаев, когда вам требуется 32-битная версия, которая находится в %ProgramFiles(x86)%, за исключением ситуаций, когда дело касается 32-битной машины, и в этом случае они по-прежнему в %ProgramFiles%.

Все эти библиотеки, DLL, по-прежнему находятся в %SystemRoot%\System32, просто теперь они 64-битные. Ну а 32-битные, они вот, в %SystemRoot%\SysWOW64. Вы ещё следите за объяснением? Да, а 16-битные всё так же хранятся в %SystemRoot%\System – перемещать их в иное место было бы странным.
Читать дальше →
Всего голосов 227: ↑175 и ↓52+123
Комментарии115

UNIX-подобные системы содержат кучу костылей. Крах «философии UNIX»

Время на прочтение29 мин
Количество просмотров107K
UPD от 2017-03-04: кто-то выполнил английский перевод. Обсуждение на Hacker News.

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

Костыли в UNIX начали возникать ещё с момента появления UNIX, а это было ещё раньше появления не только Windows, но даже вроде бы Microsoft DOS (вроде бы, мне лень проверять, проверяйте сами). Если лень читать, хотя бы просмотрите все пункты, что-нибудь интересное найдёте. Это далеко не полный список, это просто те косяки, который я захотел упомянуть.
Читать дальше →
Всего голосов 455: ↑297 и ↓158+139
Комментарии700

Еще раз об утечке атомов и баге VCL

Время на прочтение3 мин
Количество просмотров7.6K
Введение

Просматривая ленту, наткнулся на статью Неправильное использование атомов и трудноуловимая бага в VCL. После прочтения возникла мысль описать еще одну проблему в той же самой области, о которой не рассказано в этой статье. Наша команда натолкнулась на нее самостоятельно, потом оказалось, что это уже известный баг VCL. Разработка ведется на Delphi 7, и я не уверен, существует ли ошибка в более новых версиях. Судя по приведенным чуть ниже ссылкам, есть, как есть и исправление. На исправление версии 7 надеяться, по понятным причинам, не приходится.

В статье MrShoor описывается переполнение т.н. таблицы атомов в случае, если приложение на Delphi завершено некорректно, и некоторые атомы не удаляются. Оказывается, для переполнения таблицы атомов вовсе необязательно «убивать насильно» ваше приложение. Вполне достаточно его запустить и корректно закрыть, но много-много раз подряд.
Давайте посмотрим, как это происходит:
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии12

Hype Driven Development

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

Команды разработчиков ПО часто принимают решения о программной архитектуре или технологическом стеке, основываясь на ошибочных мнениях из социальных сетей и на всем том, что является скорее модным, чем хорошо изученным, без серьезной оценки возможного влияния на их проекты. Я называю эту тенденцию «Hype Driven Development (HDD)», считаю ее вредной и выступаю за более профессиональный подход. Давайте посмотрим, как обстоят дела, и что мы можем противопоставить.

Новые технологии — новые надежды


Вы встречались с подобным? Команда выбирает новейшие, самые «горячие» технологии для использования в проекте. Кто-то из них читает пост в блоге, тренд в Твиттере или только что пришел с конференции, на которой говорили великие вещи. И вот уже команда использует эту блестящую технологию (или новую парадигму программной архитектуры), но вместо обещанной большой скорости работы и высокого качества продукта, они получают неприятности. Темп работы замедляется, пропадает мотивация, возникают сложности с выпуском рабочей версии. Некоторые команды застревают на этапе устранения багов вместо того, чтобы добавлять новые функции. Им требуется «еще пара дней, чтобы все подчистить».
Всего голосов 83: ↑78 и ↓5+73
Комментарии115

Использование инерциальной навигационной системы (ИНС) с несколькими датчиками на примере задачи стабилизации высоты квадрокоптера

Время на прочтение8 мин
Количество просмотров85K
В данной статье я постараюсь рассказать о своем опыте создания и реализации алгоритма для обработки сигналов с нескольких стандартных датчиков, входящих в состав ИНС (в английской версии IMU), для решения задачи стабилизации высоты многороторного летательного аппарата (в моем случае — квадрокоптера). На хабре уже был ряд статей, описывающих, что это за игрушка и как её сделать самому. Как программисту по профессии, мне было интересно не только его собрать, но и поковыряться в «мозгах» и сделать что-то полезное для сообщества. В качестве «мозгов» я выбрал Arduino и замечательный проект MultiWii. Он полностью открытый, динамично развивается, но в нем пока есть «белые пятна». Например, неудовлетворительно работает стабилизация положения по высоте. И я решил разобраться, можно ли с имеющимся оборудованием улучшить эту часть системы.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии37

Метастабильность триггера и межтактовая синхронизация

Время на прочтение9 мин
Количество просмотров73K
Удивительный факт, но многие студенты, успешно прошедшие курс цифровой электроники, остаются в неведении о таком явлении, как метастабильность (либо считают его столь малозначимым, что примерно через 2 дня после экзамена напрочь забывают). Между тем, сбои в работе устройства, вызванные метастабильностью диагностируются крайне трудно. Если вы узнали себя в таком студенте, и если вы хоть как-то связаны с разработками на базе цифровых микросхем — крайне рекомендую к прочтению данный текст. Возможно, что потратив 10 минут сейчас вы сэкономите многие дни, проведенные за отладкой в будущем.


Оказывается, долго подбрасываемая монета может зависнуть в воздухе
Всего голосов 38: ↑38 и ↓0+38
Комментарии53

Nuklear — идеальный GUI для микро-проектов?

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

Nuklear — это библиотека для создания immediate mode пользовательских интерфейсов. Библиотека не имеет никаких зависимостей (только C89! только хардкор!), но и не умеет создавать окна операционной системы или выполнять реальный рендеринг. Nuklear — встраиваемая библиотека, которая предоставляет удобные интерфейсы для отрисовки средствами реализованного приложения. Есть примеры на WinAPI, X11, SDL, Allegro, GLFW, OpenGL, DirectX. Родителем концепции была библиотека ImGUI.


Чем прекрасна именно Nuklear? Она имеет небольшой размер (порядка 15 тысяч строк кода), полностью содержится в одном заголовочном файле, создавалась с упором на портативность и простоту использования. Лицензия Public Domain.

Читать дальше →
Всего голосов 109: ↑107 и ↓2+105
Комментарии80

One Core API чтоб править Windows

Время на прочтение1 мин
Количество просмотров31K
                      "Если Microsoft не обеспечивает совместимость — 
                      сообщество обеспечивает совместимость".
                                                                     Aceler



Поздравляем хабражителей с Рождеством! И у нас есть праздничный сюрприз для вас!

Представляем вашему вниманию проект One Core API — слой совместимости с открытым исходным кодом для Windows XP/2003, который позволяет запускать на этих системах программы для более поздних ОС. По сути это враппер функций NT6. Путем дополнительных ухищрений обеспечивается поддержка DirectX 10. One Core API создан на основе исходников Wine и ReactOS, но его разработкой занимается другая команда.

Всех желающих приглашаем присоединится к разработке: github.com/Skulltrail192/One-Core-Api
под катом - демонстрация возможностей
Всего голосов 54: ↑48 и ↓6+42
Комментарии90

Как понять, что происходит на сервере

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


Александр Крижановский ( krizhanovsky, NatSys Lab.)


По Сети уже давно бегает эта картинка, по крайней мере, я ее часто видел на Фейсбуке, и появилась идея рассказать про нее:


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

Про обратную совместимость прикладных программ и выкапывание стюардесс

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


Давно ли тут не было холиваров Windows vs Linux? «Будут!» (с) Федя

Каждый раз, когда я переезжаю на новый ноут или переставляю ось, я повторяю один и тот же ритуал — выкапывание стюардессы. Точнее, нескольких стюардесс. У меня их около десятка, но есть TOP5.
Читать дальше →
Всего голосов 96: ↑65 и ↓31+34
Комментарии289

Тестирование радиомодемов LoRa/LoRaWAN RN2483. Часть 1, LoRa

Время на прочтение5 мин
Количество просмотров81K
Одна из интересных технологий “интернета вещей” — сети LoRa/LoRaWAN, однако в рунете они практически не описаны. Пора восполнить этот пробел, и тем более интересно попробовать “вживую”, как это работает.



Что такое LoRa?


Это технология связи на большие (Long Range) расстояния, запатентованная компанией Semtech, и реализованная в их чипах SX1272 and SX1276. LoRa это протокол низкого уровня, поверх которого могут реализовываться более высокоуровневые протоколы, например LoRaWAN.

Особенность стандарта LoRa — это передача небольших пакетов данных с невысоким энергопотреблением. По заверениям производителя, дальность на открытом воздухе может достигать 10км, а время работы от батареи может составлять несколько лет. Рабочие частоты зависят от страны, и составляют 433 или 868МГц (EU-версия) или 915МГц (USA-версия).

Как это работает? Подробности под катом.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии38

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность