Pull to refresh
7
0

Software Engineer

Send message

Разработка под Flipper Zero: быстрый старт и первое приложение

Reading time19 min
Views28K

Итак, это случилось. Я добыл Flipper Zero в бою (ну, на самом деле мне его выдали на хакатоне), и естественно, что интереснее всего не играть в него, используя уже сделанные кем-то функции, а писать что-то новое. Примерно так же я развлекался с Pebble. Тут, кстати, все очень похоже — МК, RTOS, небольшой монохромный экранчик, си.

Поэтому давайте попробуем что-нибудь под него написать. Для начала, что-то совсем простое, чтобы освоиться с SDK, не закапываясь в отладку и сложности RTOS, но функциональное. Есть кнопки, есть экранчик, давайте напишем счетчик-кликер. Нажимаете кнопку — число увеличивается. Подойдет считать посетителей, круги на стадионе, взломанные домофоны или сообщения в чате русскоязычного комьюнити флиппера (по утрам, в особенно активное время там их бывает до 2к, так что я бы на вашем месте подумал, прежде чем нажимать кнопку Join).

Читать далее
Total votes 122: ↑119 and ↓3+116
Comments74

Основы теории цвета. Система CIE XYZ

Reading time22 min
Views127K
На Хабре периодически появляются статьи, которые так или иначе относятся к понятию цвета: его общая теория, применение цветовых профилей и систем управления цветом, подбор гармоничных сочетаний цветов в дизайне, описание проблем, которые возникают при работе с изображениями, да и множество других топиков, например, на тему обработки изображений, так или иначе затрагивают вопросы цвета и цветовоспроизведения. Но, к сожалению, большинство таких статей описывают понятие цвета и особенности его воспроизведения очень поверхностно или в них делаются поспешные выводы или даже ошибки. Количество статей и вопросов на профильных форумах об практических аспектах точного цветовоспроизведения, а также множество неверных попыток дать ответы на эти вопросы даже самими опытными специалистами, говорит о том, что проблемы при работе с цветом возникают довольно часто, а найти аргументированные и чёткие ответы на них трудно.

Недостаточные или ошибочные знания большинства IT специалистов относительно цветовоспроизведения, по моему мнению, объясняются тем, что на изучение теории цвета тратится очень мало времени, так как её основы обманчиво простые: так как на сетчатке глаза есть три вида колбочек, то смешивая определённые три цвета можно без проблем получить всю радугу цветов, что подтверждается регуляторами RGB или CMYK в какой то программе. Большинству этого кажется достаточно, и ихняя тяга к знаниям в этой области заканчивается. Но, процессы получения, создания и воспроизведения изображений готовят Вам множество нюансов и возможных проблем, решить которые поможет понимание теории цвета, а также процессов в основе которых она лежит. Этот топик призван восполнить пробел знаний в области цветоведения, и будет полезен большинству дизайнеров, фотографов, программистов, а также, надеюсь, другим IT специалистам.

Попробуйте дать ответ на следующие вопросы:
  • почему физика не может дать определения понятию цвета?
  • какая из семи основных единиц измерений СИ основывается на свойствах зрительной системы человека?
  • какого цветового тона нет в спектре?
  • как удалось измерить ощущение цвета человеком ещё 90 лет назад?
  • где используются цвета, которые не имеют яркости?

Если хоть один на вопрос у Вас не нашёлся ответ, рекомендую заглянуть под кат, где Вы сможете найти ответы на все эти вопросы.
Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments57

Строим твёрдотельный лазер без регистрации и смс

Reading time12 min
Views81K


Лазер. Как много в этом слове… Ну и так далее. Помню, с каким интересом я открывал один из школьных учебников по физике и рассматривал картинки устройства рубинового лазера. Сделать такое было бы сродни получить мощь гиперболоида инженера Гарина. Как всё было просто на картинке учебника! Но повторить такое школьнику в 90-е это было бы что-то из области фантастики. Прошло много лет, окончена кафедра квантовой электроники ЛЭТИ, но мечта осталась. Пора её реализовать! Итак, вперёд.
Читать дальше →
Total votes 148: ↑147 and ↓1+146
Comments117

Ищем свободное парковочное место с Python

Reading time14 min
Views63K
image

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

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

Поэтому я решил направить камеру в окно и использовать глубокое обучение, чтобы мой компьютер сообщал мне, когда освободится место:

image

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

Поэтому давайте немного развлечёмся и напишем точную систему уведомлений о свободной парковке с помощью Python и глубокого обучения
Читать дальше →
Total votes 110: ↑107 and ↓3+104
Comments53

Хакаем CAN шину авто. Виртуальная панель приборов

Reading time14 min
Views213K


В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!
Total votes 195: ↑192 and ↓3+189
Comments224

Плоская Земля: эксперименты и доказательства

Reading time5 min
Views257K
Уже в начальных классах государственных школ в учебниках природоведения пишут, что наша Земля плоская, и дети растут, не размышляя о том, что правительство вкладывает в их головы. Но думающий человек может докопаться до правды, изучая иногда вроде бы не связанные факты или даже ставя собственные эксперименты.


Total votes 261: ↑256 and ↓5+251
Comments299

Увеличь это! Современное увеличение разрешения

Reading time21 min
Views182K

Я уже перестал вздрагивать и удивляться, когда звонит телефон и в трубке раздается жесткий уверенный голос: «Вас беспокоит капитан такой-то (майор такой-то), вы можете ответить на пару вопросов?» Почему бы не поговорить с родной полицией…

Вопросы всегда одни и те же. «У нас есть видео с подозреваемым, пожалуйста, помогите восстановить лицо»… «Помогите увеличить номер с видеорегистратора»… «Здесь не видно рук человека, пожалуйста, помогите увеличить»… И так далее в том же духе.

Чтобы было понятно о чем речь — вот реальный пример присланного сильно сжатого видео, где просят восстановить размытое лицо (размер которого эквивалентен примерно 8 пикселям):


И ладно бы только русские дяди Степы беспокоили, пишут и западные Пинкертоны.
Читать дальше →
Total votes 378: ↑377 and ↓1+376
Comments262

Проект ИТЭР в 2018 году

Reading time11 min
Views41K

Проект


Прошедший год для Международного Экспериментального Термоядерного Реактора ИТЭР (о проекте) стал, для внешнего наблюдателя, наверное, одним из самых спокойных за все годы строительства (с 2009 года). Для меня же лично этот год был отмечен посещением площадки ИТЭР в сентябре 2018 года, поэтому этот ежегодный отчет будет разбавлен личными впечатлениями и фотографиями.

image

Три года назад у проекта официально сменился директор — им стал энергичный француз Бернар Биго. Осознавая сложное положение, в котором ИТЭР находился в момент начала его правления (нарастающее колоссальное отставание графика и перерасходы ставили вопрос о закрытии), Биго предпринял несколько важных управленческих решений, в том числе — создание “всеобъемлющего плана сооружения”. Как известно, графики такого масштаба точно соблюдаются только в момент создания/обновления, и за 2 прошедших года можно констатировать, что 100% следования даже новому графику нет. Однако, ситуация явно лучше, чем было в период 2009-2015 годов, и отставание на сегодня составляет 6-9 месяцев, тем более, что появляются варианты “уплотнения” планов сборки реактора. Величина в пределах года не слишком критична для такого проекта, вопрос в основном — что будет с динамикой отставания дальше?
Читать дальше →
Total votes 139: ↑138 and ↓1+137
Comments148

English notes #1: Заканчивай с этим «very»

Reading time3 min
Views51K
Прим. ред.: Этой статьёй мы начинаем цикл публикаций, посвящённых английскому языку и подготовленных нашим штатным учителем для инженеров компании (в данном случае — на основе видеоурока engVid, JamesESL English Lessons). С одной стороны — нам нужно изучать язык, с другой — нравится это делать, а с третьей — почему бы не разбавить технические материалы своего блога? Ваши отзывы очень приветствуются!

Слово «very» очень популярно в английском языке, да и не только. Однако, употребляя его слишком часто, вы можете прослыть косноязычным или попросту Эллочкой-людоедочкой.



Как известно, в великом романе-эпопее «Война и Мир» Лев Николаевич не совершает повторов на протяжении каждых трех страниц(!). Не это ли искусство? Однако, не будем долго мечтать — let's get down to business.
Читать дальше →
Total votes 98: ↑87 and ↓11+76
Comments160

Темное искусство воскрешения: как восстанавливают данные с поврежденных носителей

Reading time8 min
Views68K

(с)

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

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

Так, компьютерные археологи могут восстановить семейные фотографии с поврежденного смартфона или данные с жесткого диска, уничтоженного преступником в попытке избавиться от доказательств, а также помогут воссоздать детали механизма, разрушенного несколько тысячелетий назад.
Total votes 60: ↑56 and ↓4+52
Comments73

Борщевик Сосновского. В МО ввели штрафы за распространение

Reading time20 min
Views108K
Изображение с pixabay. Автор YvonneH1 ноября 2018 года Московская Область без объявления войны (объявленной парой лет ранее), ввела финансовые санкции. Против собственников территорий, предоставляющих плацдарм для распространения борщевика Сосновского. Ура!

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

Что же такое борщевик Сосновского и почему с ним надо бороться. Как это делать. Как это делать не нужно. А так же научные и псевдонаучные факты в нескучно-популярном изложении.
Читать дальше →
Total votes 289: ↑268 and ↓21+247
Comments684

Go быстрее Rust, Mail.Ru Group сделала замеры

Reading time7 min
Views66K
С такой фразой мне кинули ссылку на статью компании Mail.Ru Group от 2015 «Как выбрать язык программирования?». Если кратко, они сравнили производительность Go, Rust, Scala и Node.js. За первое место боролись Go и Rust, но Go победил.

Как написал автор статьи gobwas (здесь и далее орфография сохранена):
Эти тесты показывают, как ведут себя голые серверы, без «прочих нюансов» которые зависят от рук программистов.
К моему большому сожалению, тесты не были эквивалентными, ошибка всего лишь в 1 строчке кода поставила под сомнение объективность и вывод статьи.
Восстановим справедливость?
Total votes 186: ↑175 and ↓11+164
Comments282

Что намазать на зубы, чтобы они не выпали

Reading time8 min
Views193K


Хорошо зафиксированный пациент в анестезии не нуждается

По многочисленным просьбам трудящихся сегодня мы будем заниматься очень важными вопросами:


  • Как правильно мазать зубы пальцем?
  • Хорошо ли растворяются пломбы в кислоте?
  • Почему больно, когда сверлят зубы дрелью без анестезии?
  • Зачем мазать зубы зеленкой?
  • Лечение кариеса на дому
  • Глубокое микрофторирование эмали

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

Читать дальше →
Total votes 209: ↑206 and ↓3+203
Comments693

Мы перерабатываем. Ну и что такого?

Reading time10 min
Views19K
image

[Прим. пер.: в оригинале используется слово crunch, означающее что-то вроде «напряжённо работать, чтобы успеть в срок». Статья написана про игровую индустрию, но, как мне кажется, применима к разработке любых продуктов.]

Переработки — прискорбная особенность нашей индустрии. Что с ней делать, пока кто-нибудь не решит её окончательно?

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

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

Поэтому, если вы только что начали работать в этой индустрии и встретились со своим первым «горящим сроком», или только решаете, стоит ли заниматься играми, услышав все эти ужасные истории о переработках, вот мои размышления о том, как возникают «напряги», и как пережить их.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments17

Воскрешаем FTDI в картинках

Reading time1 min
Views216K
Здравствуйте многоуважаемые хабравчане. Уж не знаю куда писать, сюда или в GT, но раз первоисточник находиться здесь, то и я запощу на Хабр.
В общем если вы, такой же как и я, прилежный установщик обновлений и вас постигла сия участь



… а из опуса UnknownType вы мало что поняли, добро пожаловать под кат!
Читать дальше →
Total votes 76: ↑67 and ↓9+58
Comments26

Консоль разработчика Google Chrome: десять неочевидных полезностей

Reading time6 min
Views227K
Как с помощью консоли разработчика превратить Google Chrome в подобие текстового редактора? Какой смысл в ней приобретает знакомый многим по jQuery значок $? Как вывести в консоль набор значений, оформленный в виде вполне приличной таблицы? Если сходу ответы на эти вопросы в голову не приходят, значит вкладка Console из инструментов разработчика Chrome ещё не раскрылась перед вами во всей красе.

image

На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
Читать дальше →
Total votes 88: ↑83 and ↓5+78
Comments62

Алгоритм Х или что общего между деревянной головоломкой и танцующим Линком?

Reading time5 min
Views67K


Предисловие


Как-то в гостях мне в руки попалась головоломка, в которой из 25 одинаковых фигурок требовалось собрать куб. Я провозился с ней почти весь вечер, и как можно догадаться, абсолютно безрезультатно. Тем не менее, я не мог сдаться просто так.

Не можешь сам — заставь компьютер. Сказано — сделано. В результате написанному по наитию алгоритму пришлось работать всю ночь, чтобы найти все 4 уникальных решения. В процессе гугления решений для сравнения, я нашёл программу Burr Tools, которая справилась с этой задачей за 3 минуты на моём ноутбуке.

Такая разница в скорости заставила меня разобраться, как решается эта задача и ещё целый класс подобных.

Так как же решается эта задача и ещё целый класс подобных?
Total votes 145: ↑141 and ↓4+137
Comments14

Генерирование паролей для серии игр Prince of Persia

Reading time9 min
Views16K
Добрый день, уважаемые пользователи.
Сегодня я хотел бы рассказать про одну замечательную серию игр. Многие познакомились с ней, благодаря версии на NES, некоторые видели персидского принца на DOS, кто-то играл в Принц Персии на Sega Genesis и… вроде всё, но нет! Первая часть была портирована на большое количество разных игровых платформ. А сколько систем паролей было придумано по этому поводу? А сколько портов было у второй части? А какие пароли были там?
Про это я и хотел бы Вам рассказать.

Prince of Persia (Sega Master System/Sega Game Gear)


image
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments25

Кровеносная система мирового интернета

Reading time6 min
Views116K

Инфографика TeleGeography

Google запускает рой воздушных шариков в стратосферу, а Facebook — армию беспилотников на солнечных батареях. Но это лишь маленькие игрушки гиков, которые мечтают покрыть связью всю планету. Их амбициозные сервисы станут крохотным дополнением к мощной базовой инфраструктуре Всемирной сети — разветвлённой сети наземных и подводных магистральных каналов. Вот где настоящая кровеносная система современной цивилизации. Именно здесь бьётся её пульс.

Крупнейшие хабы


На физическом уровне интернет представляет сеть хабов (точек обмена трафиком), связанных магистральными каналами. В точках обмена трафиком концентрируется не только трафик, но и сетевая инфраструктура (дата-центры, хостинг и т.д). Крупнейшие точки обмена находятся во Франкфурте, Амстердаме, Лондоне и Париже. В каком-то смысле эти города можно считать столицами мирового интернета. По крайней мере, точно крупнейшими сетевыми узлами, вместе с Нью-Йорком, который тоже входит в пятёрку основных хабов.

В списке крупнейших точек обмена трафиком в мире лидируют DE-CIX (пиковая пропускная способность 5178 Гбит/с), AMS-IX (4270 Гбит/с). Российская MSK-IX находится на 5-м месте (2135 Гбит/с).
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments28

Что такое пространство-время на самом деле?

Reading time22 min
Views117K

Перевод поста Стивена Вольфрама "What Is Spacetime, Really?".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации.


Примечание: данный пост Стивена Вольфрама неразрывно связан с теорией клеточных автоматов и других смежных понятий, а также с его книгой A New Kind of Science (Новый вид науки), на которую из этой статьи идёт большое количество ссылок. Пост хорошо иллюстрирует применение программирования в научной сфере, в частности, Стивен показывает (код приводится в книге) множество примеров программирования на языке Wolfram Language в области физики, математики, теории вычислимости, дискретных систем и др.

Содержание


Простая теория всего?
Структура данных Вселенной
Пространство как граф
Может быть, нет ничего, кроме пространства
Что есть время?
Формирование сети
Вывод СТО
Вывод ОТО (Общей теории относительности)
Частицы, квантовая механика и прочее
В поисках вселенной
Ок, покажите мне Вселенную
Заниматься физикой или нет — вот в чем вопрос
Что требуется?
Но пришло ли время?
Сто лет назад Альберт Эйнштейн опубликовал общую теорию относительности — блестящую, элегантную теорию, которая пережила целый век и открыла единственный успешный путь к описанию пространства-времени (пространственно-временного континуума).

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

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

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

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

Во-первых, такой подход казался не слишком перспективным — хотя бы потому, что модели, которые я изучал (клеточные автоматы), казалось, работали так, что это полностью противоречило всему тому, что я знал из физики. Но где-то в 88-м году — в то время, когда вышла первая версия Mathematica, я начал понимать, что если бы я изменил свои представления о пространстве и времени, возможно, это к чему то бы меня привело.
Подробнее о пространственно-временном континууме...
Total votes 43: ↑39 and ↓4+35
Comments144

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Registered
Activity