Pull to refresh
10
Karma
0.2
Rating
Григорий Клюшников @grishkaa

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

  • Posts
  • Comments

Кодирование Рида-Соломона для чайников

Entertaining tasksAlgorithmsDevelopment of communication systems

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

этой статьи
Total votes 16: ↑16 and ↓0 +16
Views6K
Comments 1

News

Show more

Витамин D — механизм действия и нужно ли принимать добавки

LifextBiotechnologiesBrainHealth

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


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


Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Views394.9K
Comments 158

Главная причина, почему не Linux

Desktop PC's
Сразу хочу сказать, что речь в статье пойдёт исключительно о настольном применении Линукса, т.е. на домашних компах/ноутах и рабочих станциях. Всё нижеизложенное не касается Линукса на серверах, встроенных системах и прочих подобных устройствах, т.к. то, на что я сейчас вылью тонну яда, этим сферам применения, наверное, как раз на пользу.
Читать дальше →
Total votes 508: ↑308 and ↓200 +108
Views161.3K
Comments 2491

Коронавирус: мы все умрём?

PythonData MiningOpen dataPopular scienceHealth
Sandbox
Что мы говорим Богу смерти? — Не сегодня.
Сирио Форель, сериал «Игра престолов».


Насколько действительно опасен коронавирус COVID-19? Сколько людей умрёт от коронавируса в мире? А сколько – в России? Так ли необходимы жесткие меры, принимаемые для борьбы с коронавирусом в большинстве стран мира? Что принесет больше ущерба: смерть людей от коронавируса или падение экономики, вызванное ограничительными мерами?

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

Чтобы сделать материал доступным для всех читателей, в начале статьи мы сконцентрируемся на качественном анализе, и красивых картинках. А в самом конце для интересующихся приведем исходный код для расчетов, выполненных на языке Python.
Читать дальше →
Total votes 175: ↑126 and ↓49 +77
Views54K
Comments 601

Разбираемся с launchMode Android Activity: standard, singleTop, singleTask и singleInstance

OTUSDevelopment for Android
Translation
Перевод статьи подготовлен специально для студентов продвинутого курса по Android разработке.




Activity — это одна из самых ярких концепций в Android (самой популярной мобильной операционной системе с хорошо продуманной архитектурой управления памятью, которая отлично реализует многозадачность).

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

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

Вот почему важно указывать, нужно ли создавать новое Activity или использовать существующее, иначе это может привести к плохому UX или сбоям. Благодаря разработчикам ядра Android, это легко сделать с помощью launchMode, который был специально для этого разработан.
Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views14.8K
Comments 1

[Flipper Zero] отказываемся от Raspberry Pi, делаем собственную плату с нуля. Поиск правильного WiFi чипа

Flipper Devices Inc.Information SecurityWireless technologiesManufacture and development of electronics


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущий пост [1].

Много всего произошло с момента первого поста про флиппер. Мы усердно работали все это время и проект претерпел радикальные изменения. Главная новость в том, что мы решили полностью отказаться от Raspberry Pi Zero и делать свою плату с нуля на базе чипа i.MX6. Это значительно усложняет разработку и полностью меняет всю концепцию, но я уверен, что оно того стоит.

Также мы до сих пор не нашли правильный WiFi чипсет, который поддерживает все нужные функции для WiFi-атак, при этом поддерживает диапазон 5Ghz и не устарел на 15 лет. Поэтому я приглашаю всех поучаствовать в нашем исследовании.

В статье я расскажу, почему мы приняли такое решение, на каком этапе находится проект, текущие задачи, и как можно принять участие.
Читать дальше →
Total votes 125: ↑123 and ↓2 +121
Views53.1K
Comments 100

Реверс-инжиниринг протокола ngrok v2

Reverse engineering

Реверс-инжиниринг протокола Ngrok v2


ngrok — это сервис, позволяющий создавать туннели на локальный компьютер пользователя. Иными словами, резервируется публичный адрес, все обращения по которому пробрасываются на локальный порт.

К сожалению, с 2016 года поддержка open-source версии клиента (ngrok v1) прекращена, и чтобы воспользоваться сервисом, нужно запустить закрытую версию (ngrok v2), что во многих случаях неприемлемо. Данная статья описывает процесс изучения протокола, используемого официальным клиентом, и создания альтернативного открытого клиента.

Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Views9.9K
Comments 13

Debian: простое превращение i386 в amd64

Configuring Linux*nixLifehacks for geeks
Recovery mode
Это краткая статья о том, как без переустановки организовать 64-битную архитектуру на вашем 32-битном Debian/Deabian-based дистрибутиве (который вы могли по-невнимательности загрузить вместо 64bit).

* Ваше железо должно изначально поддерживать amd64, магию творить никто не собирается.
* Это может повредить систему, так что действуйте очень осторожно.
* Всё проверялось на Debian10-buster-i386.
* Не делайте этого, если хоть что-то здесь не понимаете.
Читать дальше →
Total votes 22: ↑16 and ↓6 +10
Views18.7K
Comments 7

Flipper Zero — пацанский мультитул-тамагочи для пентестера

Flipper Devices Inc.Information SecurityWireless technologiesManufacture and development of electronics
Flipper Zero — Multi-tool Device for Hackers

Flipper Zero — проект карманного мультитула на основе Raspberry Pi Zero для пентеста IoT и беспроводных систем контроля доступа, который я разрабатываю с друзьями. А еще это тамагочи, в котором живет кибер-дельфин.

Он будет уметь:

  • Работать в диапазоне 433 MHz — для исследования радиопультов, датчиков, электронных замков и реле.
  • NFC — читать/записывать и эмулировать карты ISO-14443.
  • 125 kHz RFID — читать/записывать и эмулировать низкочастотные карты.
  • iButton ключи — читать/записывать и эмулировать контактные ключи, работающие по протоколу 1-Wire.
  • Wi-Fi — для проверки защищенности беспроводных сетей. Адаптер поддерживает инъекции пакетов и мониторный режим.
  • Bluetooth — поддерживается пакет bluez для Linux
  • Режим Bad USB — может подключаться как USB-slave и эмулировать клавиатуру, ethernet-адаптер и другие устройства, для инъекции кода или сетевого пентеста.
  • Тамагочи! — микроконтроллер с низким энергопотреблением работает, когда основная система выключена.

Я с волнением представляю свой самый амбициозный проект, идею которого я вынашивал много лет. Это попытка объединить все часто необходимые инструменты для физического пентеста в одно устройство, при этом добавив ему личность, чтобы он был милым до усрачки.
В данный момент проект находится на стадии R&D и утверждения функционала, и я приглашаю всех поучаствовать в обсуждении функций или даже принять участие в разработке. Под катом подробное описание проекта.
Читать дальше →
Total votes 237: ↑234 and ↓3 +231
Views129.5K
Comments 160

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

PerlAbnormal programmingSystem Analysis and DesignNetwork technologiesAPI

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Ответ на этот вопрос неоднозначен
Total votes 187: ↑182 and ↓5 +177
Views47.5K
Comments 239

Японские интерфейсы в реальном мире

Interfaces
Привет! Хочу рассказать про то, чем японское видение разных интерфейсов в реале отличается от нашего. Как всегда, эти мелочи могут сказать о культурной среде очень многое.

Вот, например, гуляете вы около небоскрёба в центре города. А потом поднимаете голову и понимаете, что ресторан с первого этажа небоскрёба выращивает себе травы в небольшом парке рядом:



А вот термометр. Они здесь часто круглые, и при этом есть цветовая индикация.



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

Читать дальше →
Total votes 202: ↑195 and ↓7 +188
Views79.4K
Comments 379

Новая библиотека x86 SIMD интринсиков — immintrin debug

IntelHigh performanceProgrammingAssembler
С каждым новым поколением процессоров Intel появляются новые и все более сложные векторные инструкции. Хотя длина вектора (512 бит) в ближайшее время расти не будет, появятся новые типы данных и виды инструкций. Например, кто сможет с первого взгляда понять, что делает такой интринсик (и соответствующая ему инструкция процессора)?

Bitwise ternary logic that provides the capability to implement any three-operand binary function; the specific binary function is specified by value in imm8.

__m512i _mm512_mask_ternarylogic_epi32 (__m512i src, __mmask8 k, __m512i a, __m512i b, int imm8)
FOR j := 0 to 15
    i := j*32
    IF k[j]
        FOR h := 0 to 31
            index[2:0] := (src[i+h] << 2) OR (a[i+h] << 1) OR b[i+h]
            dst[i+h]   := imm8[index[2:0]]
        ENDFOR
    ELSE
        dst[i+31:i] := src[i+31:i]
    FI
ENDFOR
dst[MAX:512] := 0

ОК, допустим, мы разобрались, как она работает. Следующий уровень сложности — отладка кода, интенсивно использующего такие интринсики.
под катом о новом средстве для отладки интринсиков
Total votes 29: ↑28 and ↓1 +27
Views3.6K
Comments 0

Япония: страна настолько здравого смысла, что он для нас местами иррационален

Urbanism


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

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

И вся вот эта лютая хрень, которую вы слышали про страну, на самом деле логично следует из предпосылок, которые есть в базовом культурном коде. Сейчас расскажу.
Читать дальше →
Total votes 377: ↑365 and ↓12 +353
Views173.8K
Comments 488

Выросли поколения людей, которые не видели Млечный Путь

Popular scienceHealthEcologyAstronomy


Величественная картина Млечного Пути в ночном небе всегда вдохновляла астрономов, поэтов и художников. Что может быть более грандиозным и впечатляющим, чем диск нашей Галактики, в которой Солнечная система — лишь крохотная песчинка в рукаве Ориона, среди бесчисленного количества миров. В этом мириаде звёздных скоплений практически наверняка существовали цивилизации инопланетян на более высоких стадиях технологического развития (см. расчёт в статье «Новое эмпирическое ограничение на распространённость технологически развитых существ во Вселенной» по уравнению Дрейка со свежими поправками на количество экзопланет, опубликовано 13 мая 2016 года в журнале Astrobiology, doi:10.1089/ast.2015.1418, pdf).

Взгляд на Млечный Путь даёт понимание колоссальной мощи Вселенной и ничтожности человечества, вызывая трепет и вдохновляя на подвиги. Но только не у наших современников, которые живут в крупных городах. Впервые в истории выросло несколько поколений, которые почти никогда не видели Млечный Путь из-за светового загрязнения, а если увидят его во время редких вылазок за город, то даже не сразу поймут, что это такое.
Читать дальше →
Total votes 28: ↑23 and ↓5 +18
Views50.8K
Comments 132

Играем в Тетрис на электромеханическом экране

Reverse engineeringCircuit designDeveloping for ArduinoDIY


Однажды, просматривая объявления на Avito, я наткнулся на очень любопытную вещь — блинкерное табло или flip-dot display по-английски. Такие табло используются для отображения информации в аэропортах, вокзалах, стадионах или маршрутоуказателях на общественном транспорте.

Я подумал, что с дисплеем такого типа можно сделать много всего интересного.
Читать дальше →
Total votes 124: ↑124 and ↓0 +124
Views18.9K
Comments 49

Бесплатные варианты лицензирования PVS-Studio

PVS-Studio

PVS-Studio Free

Существует несколько вариантов бесплатного лицензирования статического анализатора кода PVS-Studio, предназначенного для поиска ошибок и потенциальных уязвимостей. Бесплатной лицензией могут воспользоваться открытые проекты, маленькие закрытые проекты, публичные специалисты по безопасности и обладатели статуса Microsoft MVP. В статье кратко рассматривается каждый из этих вариантов.

PVS-Studio — это инструмент для выявления ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках С, C++, C# и Java. Работает в среде Windows, Linux и macOS.
Читать дальше →
Total votes 66: ↑61 and ↓5 +56
Views9.1K
Comments 15

Да начнется unit-тестирование (Objective-C)

Development for iOSObjective CXcodeDevelopment for MacOS
Sandbox
Tutorial
Данная статья посвящена вопросу тестирования в рамках Objective-C используя Xcode 6. Рассматриваются стандартная библиотека для тестирования и сторонняя библиотека OCMock. Опытные разработчики, возможно, не найдут здесь слишком полезной информации, тем же, кто недавно встал на этот путь — статья откроет необходимые базовые знания по написанию unit-тестов на языке Objective-C.

Для основы тестирования просьба обратиться сюда.
Для основы unit-тестирования сюда.

А теперь мы начнем изучение unit-тестирования в рамках Objective-C.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Views34.5K
Comments 11

Декодирование сигналов мультиплексированного ЖКИ

DIYElectronics for beginners


В этой статье я расскажу о том, как работает жидкокристаллический индикатор (ЖКИ) с точки зрения сигналов, как эти сигналы декодировать и использовать для своих целей.
Читать дальше →
Total votes 82: ↑82 and ↓0 +82
Views25.1K
Comments 28

Как собрать GSM телефон на базе SDR

Positive TechnologiesDevelopment of communication systems


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

В отличие от проприетарного программного обеспечения проекты с открытым исходным кодом всегда получают больше внимания со стороны исследователей безопасности. Возможность заглянуть «под капот» и узнать, как работает тот или иной компонент программы, позволяет не только находить и исправлять всевозможные ошибки, но и убедиться в отсутствии так называемых «закладок» в коде. Кроме того, открытый исходный код позволяет начинающим разработчикам учиться на примере более опытных, используя результаты их работы в качестве опоры.
Читать дальше →
Total votes 37: ↑37 and ↓0 +37
Views32.3K
Comments 7

Information

Rating
1,429-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity