Как стать автором
Обновить
81
0
Eiren Rain @Eirenliel

Chasing Bits

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

Как выглядит производство корпусов Flipper Zero изнутри

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

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13]

Сейчас мы активно налаживаем процесс массового производства Flipper Zero на фабриках. Компоненты Флиппера производятся на нескольких заводах: корпус и детали на одном заводе, электроника на другом. Сегодня репортаж с завода, на котором делается корпус.

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

Читать далее
Всего голосов 131: ↑128 и ↓3+173
Комментарии68

Аппаратный менеджер паролей или как перестать вводить пароли и начать жить

Время на прочтение7 мин
Количество просмотров73K
Меня зовут %username%, мне n лет и я параноик. И каждый день информационный мир усложняет мне жизнь. Технологий становится больше, порог вхождения в IT снижается, и мы получаем действительность, где грубые ошибки в безопасности это нормально. А еще и мощность вычислительной техники растет с каждым годом. В итоге наши пароли, хранимые как получится, становятся достоянием общественности.

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

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

Поэтому мы придумали свой хакерский подход к хранению и вводу паролей.



Кратко: телефон связан через Bluetooth со специальным девайсом, который эмулирует клавиатуру. Утеря девайса и телефона не позволяют получить паролей. Утеря девайса и мастер-пароля тоже не страшны. Как так? Добро пожаловать под кат (там 7 картинок, но они красивенькие).
Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии147

Как заработать на геймерах-китайцах и не только

Время на прочтение4 мин
Количество просмотров12K
Допустим, Вы – отечественный разработчик мобильной игры, который решился выпустить свое детище на внутреннем рынке или за границей. Конечно, кроме локализации, поиска паблишера-партнера (в случае с Китаем) и взаимоотношений со сторами, Вы должны продумать и монетизационную политику своего продукта. Популярность популярностью, но основная цель любого бизнеса – получить прибыль. Итак, как заработать на мобильных игроках из разных стран?

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

Как покрыть мониторингом все слои инфраструктуры

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

Как-то я посчитал, что 1 минута простоя hh.ru в будни днем затрагивает около 30 000 пользователей. Мы постоянно решаем задачу снижения количества инцидентов и их длительности. Снизить количество проблем мы можем правильной инфраструктурой, архитектурой приложения — это отдельная тема, ее мы пока не будем брать во внимание. Поговорим лучше о том, как быстро понять, что происходит в нашей инфраструктуре. Тут как раз нам и помогает мониторинг.

В этой статье на примере hh.ru я расскажу и покажу, как покрыть мониторингом все слои инфраструктуры:
  • client-side метрики
  • метрики с фронтендов (логи nginx)
  • сеть (что можно добыть из TCP)
  • приложение (логи)
  • метрики базы данных (postgresql в нашем случае)
  • операционная система (cpu usage тоже может пригодиться)

Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии15

Вы все еще храните 404backup.zip на сервере? Я на 200ДА

Время на прочтение2 мин
Количество просмотров42K
Сумеречными зимними вечерами под песнь вьюги, укутавшись в овечий плед с бокальчиком «яблочной самогонки», я люблю почитывать логи на сервере. Авторизация по ключам упрощает сие, так что если в публичное помещение меня и не пустят, то сервер всегда рад приютить, старый чертяга.

В мире много чего происходит, у кого счастливое 200, кто-то недоуменно смотрит на 301, кто-то царапает похабщину на 403.

Но самый ценных мех — это исследователи. Это те, кто открывает новый для себя мир на основе своих знаний путем проб и 404.
Читать дальше →
Всего голосов 137: ↑125 и ↓12+113
Комментарии79

Как происходит рендеринг кадра в GTA V

Время на прочтение16 мин
Количество просмотров119K
Серия игр Grand Theft Auto прошла долгий путь с момента своего первого релиза в 1997 году. Примерно 2 года назад Rockstar выпустила GTA V. Просто невероятный успех: за 24 часа игру купило 11 миллионов пользователей, побито 7 мировых рекордов подряд. Опробовав новинку на PS3, я был весьма впечатлен как общей картинкой, так и, собственно, техническими характеристиками игры.

Ничто так не портит впечатление от процесса, как экран загрузки, но в GTA V вы можете играть часами, преодолевая бескрайние сотни километров без перебоев. Учитывая передачу солидного потока информации и свойства PS3 (256 Mb оперативной памяти и видеокарта на 256 Mb), я и вовсе удивился, как меня не выбросило из игры на 20-ой минуте. Вот где чудеса техники.

В этой статье я расскажу о проведенном анализе кадра в версии для ПК в среде DirectX 11, которая съедает пару гигов как оперативки, так и графического процессора. Несмотря на то, что мой обзор идет со ссылкой на ПК, я уверен, что большинство пунктов применимо к PS4 и в определенной степени к PS3.

Анализ кадра


Итак, рассмотрим следующий кадр: Майкл на фоне любимого Rapid GT, на заднем плане прекрасный Лос-Сантос.

image

Осторожно! Трафик!
Читать дальше →
Всего голосов 164: ↑158 и ↓6+152
Комментарии65

Wme2 — на что способен браслет от авторов первого iPhone: ЭКГ, давление и пульс из двух пальцев

Время на прочтение16 мин
Количество просмотров53K
Глупые тесты про “Психологический возраст”, которые засорили весь эфир в социальных сетях, по сути могли иметь под собой серьезную медицинскую базу, и сегодня я расскажу вам о том, каков возраст моей вегетативной нервной системы, а сделаю это с помощью браслета Wme2.



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


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

«Стань тупым». 10 советов по управлению IT стартапом от основателя сервиса Вирусдай

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


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

Весь этот набор содержит в себе нужные знания и рецепты. Но это только инструмент, который вам поможет развить стартап до реального бизнеса. По моему же личному убеждению любой человек может превратить свой стартап в бизнес. Все что нужно для успеха — просто сделать достаточно. Ведь если говорить честно, то закрывшийся стартап — это не вина конкурентов, рынка или еще каких-то потусторонних сил. Во всем что случилось виноваты лично вы — это вы работали недостаточно упорно, знали недостаточно много, учились недостаточно усердно, реагировали недостаточно быстро и вели себя недостаточно жестко. Причина вашего провала – вы сами. Вы были недостаточно «тупы».
Читать дальше
Всего голосов 13: ↑12 и ↓1+11
Комментарии1

Использование потенциальных полей в сценарии стратегии реального времени

Время на прочтение8 мин
Количество просмотров41K
Реализация поведения юнитов в RTS играх может стать серьезной проблемой. Компьютер, зачастую, контролирует огромное количество юнитов, в том числе и принадлежащих игроку, которые должны передвигаться в большом динамическом мире, попутно избегая столкновения друг с другом, выискивая врагов, защищая собственные базы и координируя атаки для истребления противника. Стратегии реального времени работают в реальном времени, что делает довольно сложным слежение за планированием действий и навигацией.

Этот урок описывает метод планирования течения игры и навигации юнитов, который использует многоагентные потенциальные поля. Он основан на работах под номерами [1, 2, 3]. (Смотри в конце статьи ссылки на используемые материалы)



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

Продвижение инди-игры на Steam Greenlight

Время на прочтение11 мин
Количество просмотров97K
Всем, привет! Наша команда сейчас проходит важный этап становления любого разработчика игр — первый запуск игры на Steam Greenlight. Пока я готовил материал для этой статьи, наша игра вошла в ТОП-100 проектов на Greenlight, набрала почти 2000 голосов «ЗА» и через 12 дней получила зелёный свет.

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

image
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии14

Вычисление факториала или мощь Stream API

Время на прочтение4 мин
Количество просмотров33K
На днях появилась статья 5nw Два способа быстрого вычисления факториала, в которой приводится идея ускорения подсчёта факториала с помощью группировки перемножаемых чисел в дерево по принципу «разделяй и властвуй». Взглянув на это, я сразу понял, что тут параллельные потоки Java проявят себя во всей красе: ведь они делят задачу на подзадачи с помощью сплитераторов именно таким образом. Получается, что быстрая реализация будет ещё и красивой:

public static BigInteger streamedParallel(int n) {
    if(n < 2) return BigInteger.valueOf(1);
    return IntStream.rangeClosed(2, n).parallel().mapToObj(BigInteger::valueOf).reduce(BigInteger::multiply).get();
}

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

Почему научиться программировать так чертовски тяжело?

Время на прочтение14 мин
Количество просмотров426K
Привет, Хабр!

Взявшись за работу над образовательным проектом Хекслет, мы понимали, что на нас ложится большая ответственность. К нам приходит огромное количество новичков с вопросами и комментариями, такими как:

  • С чего начать обучение программированию?
  • У вас есть курс по Java для новичков, но я слышал, что нужно изучать Python, правда ли это?
  • На других сайтах все просто и понятно, а у вас какие-то компиляции и тесты!
  • Непонятно зачем нужен этот ваш курс по алгоритмам, в реальной жизни все алгоритмы уже реализованы в стандартных библиотеках

Но сложнее всего объяснить новичку, грубо говоря, во что он ввязывается. Благодаря очень простым, игровым образовательным проектам многие считают, что программирование это очень легко, а наши виртуальные машины, где нужно запускать тесты и компилировать код – это надуманная сложность. Давно хотелось найти такой материал, который бы подготовил новичка к длинному и сложному пути к карьере программиста. И недавно наши коллеги из Viking Code School такой материал написали! А мы его перевели для вас.




Квинси Ларсон был просто “офисным парнем в костюме”. Он решил научиться программировать. Начал спрашивать людей вокруг. Изучил немного Руби, потом быстренько посмотрел на другие языки вроде Scala, Clojure и Go. Он изучил Emacs, а потом Vim, а потом раскладку Dvorak. Он втыкал в Линукс, копался с Лиспом и кодил на Питоне, и жил при этом в командной строке больше полутора лет.

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

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

Ох. Звучит знакомо?
Читать дальше →
Всего голосов 65: ↑55 и ↓10+45
Комментарии44

300 потрясающих бесплатных сервисов

Время на прочтение11 мин
Количество просмотров1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Всего голосов 341: ↑325 и ↓16+309
Комментарии107

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

Время на прочтение17 мин
Количество просмотров63K
Во второй половине 2014 года мы уже неоднократно упоминали про целевые атаки на крупные финансовые учреждения как новую ступень мошенничества. Ведь теперь денежные средства похищают не у «мелких юрлиц», а у крупных финансовых компаний, в которых, казалось бы безопасность должна быть на высшем уровне и сложность совершения преступления приближается к «Hell». Однако, учитывая не стихающий поток подобных преступлений, а также особую актуальность на фоне текущего финансового состояния страны, мы решили обновить пост и добавить новых подробностей касательно группы Anunak, которая использует одноименного трояна, также известного как Carbanak. Название Carbanak происходит от склейки двух слов Anunak+Carberp.

Краткий экскурс


После задержаний членов группы Carberp в России, некоторые участники остались без работы, однако, полученный за долгие годы работы опыт позволил им занять новую нишу. Один из участников быстро понял, что можно украсть тысячу раз по $2 000 и заработать 2 миллиона долларов, а можно украсть всего лишь один раз и сразу всю сумму.

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

Основной костяк преступной группы составляют граждане России и Украины, однако есть лица, оказывающие им поддержку из Белоруссии.
Читать дальше →
Всего голосов 81: ↑71 и ↓10+61
Комментарии20

Как работает мозг?

Время на прочтение8 мин
Количество просмотров120K
Этот пост написан по мотивам лекции Джеймса Смита, профессора Висконсинского университета в Мадисоне, специализирующегося в микроэлектронике и архитектуре вычислительных машин.

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

Моделирование нейронов


Кора человеческого мозга состоит из порядка ста миллиардов нейронов. Исторически сложилось так, что учёные, исследующие работу мозга, пытались охватить своей теорией всю эту колоссальную конструкцию. Строение мозга описано иерархически: кора состоит из долей, доли — из «гиперколонок», те — из «миниколонок»… Миниколонка состоит из примерно сотни отдельных нейронов.



По аналогии с устройством компьютера, абсолютное большинство этих нейронов нужны для скорости и эффективности работы, для устойчивости ко сбоям, и т.п.; но основные принципы устройства мозга так же невозможно обнаружить при помощи микроскопа, как невозможно обнаружить счётчик команд, рассматривая под микроскопом микропроцессор. Поэтому более плодотворный подход — попытаться понять устройство мозга на самом низком уровне, на уровне отдельных нейронов и их колонок; и затем, опираясь на их свойства — попытаться предположить, как мог бы работать мозг целиком. Примерно так пришельцы, поняв работу логических вентилей, могли бы со временем составить из них простейший процессор, — и убедиться, что он эквивалентен по своим способностям настоящим процессорам, даже хотя те намного сложнее и мощнее.
Читать дальше →
Всего голосов 66: ↑64 и ↓2+62
Комментарии38

Беззнаковая арифметика в Java

Время на прочтение5 мин
Количество просмотров94K
Как известно, в Java нет беззнаковых типов. Если в Си вы могли написать unsigned int (char, long), то в Java так не получится. Однако нередко возникает необходимость в выполнении арифметических операций именно с числами без знака. На первый взгляд кажется, что беззнаковые типы в принципе-то и не особо нужны (подумаешь, MaxInt для чисел со знаком меньше в два раза, если нужны числа больше, я просто возьму long и далее BigInteger). Но основное различие на самом деле не в том, сколько различных неотрицательных чисел можно положить в signed или unsigned int, а в том, как над ними производятся арифметические операции и сравнения. Если вы работаете с бинарными протоколами или с двоичной арифметикой, где важен каждый используемый бит, нужно уметь выполнять все основные операции в беззнаковом режиме. Рассмотрим эти операции по порядку:

Преобразование byte в short (int, long)


Обычный каст (int) myByte выполнит расширение до 32 бит со знаком — это означает, что если старший бит байта был установлен в 1, то результатом будет то же самое отрицательное число, но записанное в 32-битном формате:

0xff -> 0xffffffff (-1)

Часто это не то, чего бы мы хотели. Для того, чтобы выполнить расширение до 32 бит без знака и получить 0x000000ff, в Java можно записать:

int myInt = myByte & 0xff;
short myShort = myByte & 0xff;

Сравнение без учёта знака


Для беззнакового сравнения есть лаконичная формула:

int compareUnsigned(int a, int b) {
    return Integer.compare( a ^ 0x80000000, b ^ 0x80000000 );
}

Для byte, short и long, соответственно, константы будут 0x80, 0x8000 и 0x8000000000000000L.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии27

Как улучшить свой стиль программирования?

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

Исповедь 1


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

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →
Всего голосов 235: ↑202 и ↓33+169
Комментарии248

Autotiling: автоматические переходы тайлов

Время на прочтение6 мин
Количество просмотров18K
Буквально только что наткнулся на статью из песочницы о grid-tiling'е и решил написать свой аналог.
Мой метод распределения переходов несколько отличается от упомянутой в той статье.
Начало данной системы положено в небезызвестной игре WarCraft III.

image
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии5

Как PayPal и GoDaddy заставили меня отдать Twitter аккаунт ценой в $50 000

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


У меня был редкий Twitter логин – @N. Да, только одна буква. Мне предлагали за него $50 000. Его часто хотели украсть. Инструкции по восстановлению пароля постоянно приходили мне на почту. К сожалению, на данный момент, я потерял @N. Хакеры забрали его.

20 января 2014 года на обеде, я получил сообщение от PayPal с кодом подтверждения. Кто-то пытался украсть мой счет PayPal. Я проигнорировал и продолжил есть.
Читать дальше →
Всего голосов 441: ↑377 и ↓64+313
Комментарии137

Архитектура сервера онлайн-игры на примере Skyforge

Время на прочтение12 мин
Количество просмотров192K
Привет, Хабр! Я Андрей Фролов, ведущий программист, работаю в Mail.Ru над Next-Gen MMORPG Skyforge. Вы могли читать мою статью про архитектуру баз данных в онлайн-играх. Сегодня я буду раскрывать секреты, касающиеся устройства сервера Skyforge. Постараюсь рассказать максимально подробно, с примерами, а также объясню, почему было принято то или иное архитектурное решение. По нашему серверу без преувеличения можно написать целую книгу, поэтому для того, чтобы уложиться в статью, мне придется пройтись только по основным моментам.

image

Читать дальше →
Всего голосов 141: ↑127 и ↓14+113
Комментарии179
1

Информация

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