Pull to refresh
-10
0

Пользователь

Send message

Побеждаем шину CAN. Часть 1. Технология

Reading time5 min
Views78K
image

Сегодня я хочу познакомить вас с интересной микроконтроллерной платформой CANNY. Это обзорная статья в которой вы узнаете о технологии, а в последующих статьях я расскажу вам о работе с сообщениями CAN, интеграции CANNY c Arduino Mega Server и о тех возможностях, которые предоставляет эта связка.

Почему CANNY? От названия шины CAN, которая широко используется на транспорте и, в частности, во всех современных автомобилях в качестве бортовой сети. Итак, что же можно сделать, имея специализированный контроллер, подключённый к CAN шине вашего автомобиля?
Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments15

Форк блокчейна Ethereum, или «вот так свобода и умирает, под гром аплодисментов»

Reading time6 min
Views32K
Звёздные войны. Эпизод III: Месть ситхов. Сцена с выступлением, пока еще, канцлера Палпатина в сенате.

Криптовалюта Ethereum стоит на историческом распутье, которое оставит неизгладимый след в её истории. О «чёрных списках», централизованной «децентрализованной автономности» и почему сообщество с такой радостью, рвением и беззаботностью открывает ящик регуляции криптовалюты, тем самым забивая гвозди в гроб Ethereum.
Читать дальше →
Total votes 50: ↑42 and ↓8+34
Comments165

Отправляем зашифрованные SMS сообщения с Virgil

Reading time4 min
Views11K

Привет, Хабр!
Несмотря на набирающие все большую популярность мобильные мессенджеры, такие как WhatsApp и Telegram, старые добрые SMS все еще не теряют свою актуальность. SMS можно использовать для отправки разного рода уведомлений, для двухфакторной аутентификации или при сбросе пароля. Однако последние успешные атаки на мобильные сети заставляют задуматься о дополнительном уровне защиты передаваемых с помощью SMS данных.
В этой статье мы поговорим о том, как используя сервисы Virgil и Twilio, сделать процесс отправки SMS на Android устройства безопасным.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments13

Как я писал классические танки с интеллектом

Reading time7 min
Views17K

Вступление


Я являюсь независимым разработчиком приложений под Android (а конкретней — полтора года разработки интеллектуальной версии классической всеми любимой культовой игры "Танчики 1990").


Почему я решил написать эту игру: к играм я имею ещё более непосредственное отношение (играю в них). В плэймаркете я не увидел ни одной 2D-игры, где присутствовал бы алгоритм принятия решений о поиске кратчайшего пути. Я не говорю о более сложных играх, написанных на мощных движках. От чего зависит процент таких игр, я не знаю. Или это следствие идейной составляющей, или же результат конъюнктуры игрового рынка в целом, мне неизвестно. Моё личное мнение: таких игр должно быть больше.


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


Имитация оппонента в контексте мною написанной игры — это скорее "псевдоинтеллект" (оптимизированное варьирование между целями — задачами и, как следствие, между поиском путей).


Как алгоритм поиска пути я использовал А* (A-star). Вот его моя реализация на java:

Читать дальше →
Total votes 20: ↑11 and ↓9+2
Comments14

Как работает умный обработчик служебных смс (показывает только важную информацию)

Reading time9 min
Views7.5K

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


1. Как это работает


В манифесте прописываем разрешение на получение и чтение SMS


<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>`
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments11

Гоночный FPV-дрон своими руками (часть 2) — настройка

Reading time9 min
Views34K
В первой части я рассказал, как собрать квадрокоптер для FPV-полётов. Теперь настало время его настроить. Если интересно, вэлкам под кат.


Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Внедрение code style в разработку

Reading time3 min
Views13K
Добрый день, %username%

Хочу поделиться своим успешным опытом внедрения автоматической проверки стилей кода в проект и рассказать на какие грабли наступали. Опубликовать opensource сообществу инструменты, которые были созданы для решения задачи

Немного о нашем проекте: PHP сайт, лежит в git репозитории объемом 2Gb, состоит из 20k php файлов, возраст проекта- 10 лет, в данный момент у нас 15 разработчиков. Для code review используем atlassian stash. Всю разработку ведем в рамках отдельных веток, которые после прохождения code review вливаем в master и деплоим на прод
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments31

Исследуем защиту и восстанавливаем аркады Namco System ES1

Reading time10 min
Views26K
Tank! Tank! Tank! Arcade

Введение

Эта история началась практически сразу после написания статьи об исследовании аркады небезызвестной корейской компании: в аркадном автомате Tank! Tank! Tank! от Namco вышел из строя жесткий диск (что неудивительно, т.к. производитель установил в автомат не отличающиеся надежностью Seagate 7200.12), диск взяли с рабочей аркады и скопировали его через WinHex, после чего игра перестала запускаться. Предположив, что целостность диска была нарушена неосторожным нажатием клавиши в окне редактирования данных на диске в WinHex, был взят другой диск с еще одного рабочего автомата, скопирован аналогичным образом, который также перестал запускаться. Тут-то и стало понятно, что в диск каким-то образом встроена защита от копирования.
Arcade Linux Error
Читать дальше →
Total votes 93: ↑92 and ↓1+91
Comments55

9 секретов онлайн-платежей. Часть 8: возвраты — и как их избежать

Reading time6 min
Views21K
imageМожет ли для интернет-магазина быть что-то обиднее, чем упущенная прибыль? Может! Еще обиднее ситуация, когда деньги уже поступили на счет, а клиент или банк внезапно потребовал вернуть средства обратно на карту плательщика. Особенно, если услуга уже оказана или отгрузка товара уже состоялась. Что делать в этом случае? Об этом — в новом, предпоследнем материале цикла «9 секретов онлайн-платежей», в котором сконцентрирован восьмилетний опыт работы команды PayOnline.

Представим ситуацию: покупатель совершает покупку с помощью карты, но товар ему по каким-то причинам не подходит. Клиент возвращает товар и инициирует так называемый рефанд (англ. refund) — добровольный возврат платежа, произведенного ранее в счет покупки по банковской карте. Чаще всего он осуществляется по просьбе покупателя. Еще один случай — мошенничество с картой, и здесь могут быть разные ситуации. Во-первых — дружественный фрод (от английского fraud — мошенничество) — когда злоумышленник делает заказ на крупную сумму, ему отгружают товар, а в интернет-магазин приходит запрос на возврат денег «настоящего» владельца карты. Согласно легенде подельника, его карту украли, и с нее совершили покупку. «Настоящий» владелец карты требует вернуть ему деньги, и если банк встает на его сторону, то интернет-магазин остается и без товара, и без денег.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments19

AndroidAudit. Ваше Android-приложение как место преступления

Reading time11 min
Views11K


От переводчика: оценка процесса и результата разработки — достаточно субъективная вещь, если не используется какая-либо мера весов. Можно долго спорить: табы или пробелы, git или mercurial, maven или gradle, но такие споры все равно скатываются к вкусовщине и каким-то частным случаям. Другое дело — соблюдение однородности проекта, вот это уже вполне себе измеримая величина.
Плохая методология лучше её отсутствия.
Помимо общих вещей, найдутся и специфические, присуще только мобильной разработке, только под Android. Pedro Vicente Gómez Sánchez из Karumi в своей работе разобрал по косточкам основные технические области и задал меткие вопросы для правильной, объективной оценки разработки для платформы Android. Если появится задача: оценить чужой проект, то рекомендую воспользоваться его методологией. Я воспользовался этой методологией, как чек листом. На выходе получился вполне понятный не профессионалу документ, где напротив каждой категории — конкретная величина соответствия правильности от 0 до 1.

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments2

Пример простой автоматизации letsencrypt

Reading time8 min
Views74K
image

Удостоверяющий центр «Let’s Encrypt» (далее просто letsencrypt) вышел из беты пару месяцев назад, пообтерся в реальных условиях, избавился от детских болезней и оброс различными клиентами. И к этому моменту выдал 5 миллионов сертификатов. Самое время внедрять, т.е. получать сертификаты на свои домены и обновлять их в автоматическом режиме. Но как внедрить так, чтобы приблизиться к любимому админскому «поставил и забыл»? Чтобы было просто получать новые сертификаты, а старые при этом обновлялись автоматом? Ну и как добавить немного безопасности в этот процесс?
Ответ под катом.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments38

Электровелосипед — доступность и эффективность на личном примере

Reading time6 min
Views50K
В последнее время на Гиктаймсе проскакивают статьи про электровелосипеды, анонсированные крупными компаниями или выложенные на кикстартере и аналогах. Но всех их объединяет одно — низкая эффективность и многократно завышенная цена. Например, Xiaomi Mi Qicycle Folding Electric Bicycle проезжает до 45 км в идеальных условиях при скорости 20 км/ч. Зачем при такой скорости вообще мотор? Но при увеличении скорости каждые 10км/ч увеличивают расход, грубо говоря, в два раза. Да ещё надо учесть то, что чем больше мощности отбираем у аккумулятора, тем меньше ёмкости он отдаст. Делаем выводы про дальность.

Про то, как я дошёл до электротранспорта и какой ценой — под катом.
Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments166

Гоночный FPV-дрон своими руками (часть 1) — сборка

Reading time10 min
Views103K
Сегодня популярность гонок на дронах стремительно растёт. Любительские полетушки перерастают в серьёзные международные соревнования, а количество людей, вовлечённых в это хобби, растёт в прогрессии. Я сам недавно собрал FPV-квадрокоптер 180-го размера (расстояние в мм между осями моторов по диагонали) и спешу поделиться этим опытом.



Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments25

Еж — птица говорящая [если с MP3-плеером]

Reading time15 min
Views13K


Давным-давно, настолько что уже кажется неправдой, masterkit рассказывали про чудесный встраиваемый MP3-плеер, которым можно оснащать все, что угодно, даже MP3-плееры, если из них сначала вынуть собственный, а потом поставить этот. Короче, полезная вещь. Особенно, если хочется сделать детскую игрушку во-первых, своими руками, а, во-вторых — правильно, а не так, как думают те, кто их делает в промышленном масштабе.

Однако в представленном товаре меня устраивало не только лишь все, поэтому я подумал: не может быть такого, чтобы настолько по-китайски выглядящей вещи не было на Aliexpress. И действительно, там было какое-то количество таких плееров, причем ознакомление с модельным рядом показало, что есть варианты более привлекательные, нежели модели с фиксированным объемом памяти. Именно — со слотом для сменных карточек microSD.

И понеслось.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments24

BTSync как средство бэкапа

Reading time6 min
Views24K
День добрый комрады. Спустя некоторое время, как я устроился системным администратором, я стал сталкиваться с такой бедой задачей:

Специфичный юзкейс, решаемый в данной статье


Подходит сотрудник с просьбой восстановить файл который вчера/сегодня/только-что удалили, а сейчас он кровь-из-носу понадобился. При этом дату создания файла он не помнит, а дату последнего изменения и знать не знает, ибо с файлом в разное время могли работать множество разных сотрудников. И восстановить нужно, разумеется, последнюю версию.
Либо файл вчера/сегодня/только-что случайно и фатально отредактировали/перезаписали. И восстановить нужно, соответственно, предпоследнюю версию.

Итак, исходные данные:
  • Имя файла и его адрес: известны хотя бы примерно
  • Дата создания искомой версии файла: не известна
  • Бэкап ежедневный, инкрементальный или равный ему по ресурсоёмкости. Полный и разностный не используются ввиду ограниченности объёмов дискового пространства в хранилище/приемнике бэкапов.
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments25

Реализация reference counting или жизнь без GC (почти)

Reading time7 min
Views7K
Доброго времени суток, хабр!

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

Как Вам, скорее всего, известно — в D сборщик мусора, отчасти, опционален. Но ручное управление памятью это прошлый век.
Поэтому сегодня я покажу как можно реализовать сборку мусора самому через «полуавтоматический» подсчёт ссылок, а так же как при этом минимизировать обращения к встроенному в runtime сборщика мусора на основе сканирования памяти.

Поехали
Total votes 11: ↑10 and ↓1+9
Comments17

Как мы разрабатываем новый фронтенд Tinkoff.ru

Reading time10 min
Views95K

Tinkoff.ru


В апреле этого года мы перезапустили tinkoff.ru. Банк превратился в финансовый супермакет. Теперь не только клиент банка, но и любой посетитель оплатит мобильный, проверит налоги и оформит ипотеку — всё на одной платформе. В этой статье я поделюсь опытом и технологическими решениями, к которым мы пришли за год разработки.

Читать дальше →
Total votes 73: ↑59 and ↓14+45
Comments175

Загрузчик для dsPIC33

Reading time7 min
Views7.4K
Загрузчик (bootloader) — очень удобный инструмент работы с микроконтроллерами (далее — МК). Это маленькая программа, которая позволяет МК «самопрограммироваться» (self-programming). Обычно, при подаче питания на МК, управление сначала получает загрузчик, которые проверят заранее заданные условия (определенное состояние на ножке МК, флаг в EEPROM, подходящий файл прошивки на SD-карте и т.д.). Если условия не выполняются, то управление передается основной программе. Если же условия выполняются, то загрузчик переключается в режим программирования, получая данные новой прошивки по предопределенному интерфейсу. Это позволяет обновить прошивку МК не прибегая к паяльнику, программатору или внутрисхемному программированию.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments12

Readme Driven Development

Reading time2 min
Views9.3K
RDD — это крайне простая практика. И здесь «DD» может означать «минута на освоение и вся жизнь для мастерства». Но, к счастью, не в этом случае.

Пишите Readme в первую очередь. Вот в принципе и все. Но почему?

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

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

Работа программы это не только о её код. Если никто не может использовать программу, потому что не знает как, то не важно содержит ли она кучу ошибок или не содержит ни одной.
Читать дальше →
Total votes 35: ↑27 and ↓8+19
Comments9

Information

Rating
Does not participate
Registered
Activity