Как стать автором
Обновить
110
Карма
0
Рейтинг
Анатолий Тросиненко @atrosinenko

Программист

  • Подписчики 49
  • Подписки 4
  • Публикации
  • Комментарии

Почему убивают смартфоны в ванне?

СхемотехникаПроизводство и разработка электроникиНосимая электроникаDIY или Сделай самЭлектроника для начинающих

brandName убил россиянку ударом тока. brandName на секунду упал на живот: сына известной блогерши убило током в ванне. Жертв все больше: почему не стоит брать телефон в ванну. Россиянка уронила в ванну телефон и погибла.

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

Читать далее
Всего голосов 175: ↑172 и ↓3+169
Просмотры65K
Комментарии 286

Хомяк торгует криптовалютой не хуже, чем трейдер

Блог компании Cloud4YЧитальный залНаучно-популярноеКриптовалюты

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

Читать далее
Всего голосов 32: ↑31 и ↓1+30
Просмотры14K
Комментарии 25

M/o/Vfuscator2, безумный компилятор

Блог компании VDSina.ruНенормальное программированиеКомпиляторы


Однажды один умный чувак (Кристофер Домас) читал статью другого умного чувака (Стивена Долана) про удивительную особенность архитектуры x86. Стивен ругал её за избыточность и утверждал, что набор инструкций можно сократить до одной лишь mov, потому что она Тюринг-полная. Если бы Стивен не был таким умным, в его словах можно было бы усомниться, но у Кристофера загорелись глаза: проработав двадцать лет с x86, он не слышал ни о чём подобном, и ему страшно захотелось написать компилятор, который бы переводил весь код в наборы одних лишь mov-инструкций. Так родились M/o/Vfuscator и M/o/Vfuscator2, наглядно иллюстрирующие ненормальное программирование.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Просмотры6.1K
Комментарии 28

Melange — DSL для сетевых протоколов

Ненормальное программированиеQtФункциональное программирование
Всем программистам рано или поздно приходится передавать данные. Ни для кого не секрет, что библиотек сериализации в Java существует примерно >9000, а в C++ они вроде и есть, а вроде их и нет. К счастью для большинства, несколько лет назад появился Google Protobuf, который принёс достаточно удобный способ определять структуры данных и быстро завоевал всенародную любовь. Это была фактически первая, доступная широким массам библиотека, позволяющая гонять по сети готовые структуры данных, не связываясь при этом с чем-то вроде XML. На дворе был 2008 год.

Вернёмся немного назад. В 2006 году простой индийский программист (как бы подозрительно это ни звучало!) Анил Мадхавапедди, один из самых известных сейчас в мире OCaml-разработчиков и автор свежевышедшей книги Real World OCaml, защищал в Кембридже кандидатскую диссертацию. Именно о ней я сегодня вам и расскажу.

Анил сразу пошёл дальше, чем Google. Он сразу подумал, для чего люди обычно пересылают по сети какие-то формализованные структуры данных? Чтобы реализовать какой-то протокол. А что такое протокол? Это какой-то конечный автомат. А где мы можем взять хороший пример сложного, хорошо спроектированного и проверенного временем протокола? Да прямо в обычном сетевом стеке! Итак, были взяты набор сетевых структур данных и протоколов: Ethernet frame, IPv4, ICMP, TCP, UDP, SSH, DNS и DHCP и постановка задачи: большая часть этих протоколов (особенно SSH и DNS) реализуются, что называется «руками», а хочется, чтобы не было типичных для C переполнений буфера, все переходы совершались автоматически, это всё можно было верифицировать, и чтобы работало быстро, а не как обычно.

Поскольку никто не будет читать диссертацию, сразу скажу: это более чем удалось. По результатам работы были написаны референсные реализации DNS и SSH-сервера и произведено сравнение с BIND и OpenSSH. OCaml-реализации давали по сравнению с традиционными прирост производительности от незначительного, до почти двухкратного. Кроме того была найдена ошибка в RFC на SSH (рабочая группа была уведомлена и RFC исправлен). О том, что было сделано, и как с этим жить, читайте под катом.
Мне интересно.
Всего голосов 68: ↑68 и ↓0+68
Просмотры16K
Комментарии 18

Как мы ускоряли работу отладчика Swift

Блог компании ЯндексOpen sourceРазработка под iOSРазработка мобильных приложенийSwift

Привет! Меня зовут Александр Скворцов, я работаю в команде Яндекс.Браузера для iOS. Это очень большой проект, который насчитывает около тысячи clang-модулей и примерно 600 Swift-модулей. Наверное, из-за таких масштабов мы чаще других наталкиваемся на проблемы инструментов разработки, например, находим критические ошибки в компиляторе, неработающую подсветку и автодополнение. Это бывает неприятно, но жить можно. 

Самая серьёзная проблема возникла с отладкой. В худшем случае с момента запуска до остановки в отладчике на точке входа в приложение проходило больше 20 минут. И это на свежем MacBook Pro 16! С таким «быстродействием» инструментов разработки невозможно эффективно развивать проект, поэтому мы решили разобраться в причинах и поискать возможные решения.

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

Читать далее
Всего голосов 50: ↑49 и ↓1+48
Просмотры6.7K
Комментарии 13

Мощные и не очень одноплатники с RISC-V чипами: что готовит рынок

Блог компании SelectelПроизводство и разработка электроникиКомпьютерное железоПроцессоры

В одноплатных компьютерах сейчас недостатка нет, есть системы на любой вкус и потребности. Вскоре спектр решений еще больше расширится — к выходу готовятся одноплатники на базе RISC-V чипов. Первыми выйдут системы на основе Allwinner Xuantie-C906.

Это не монстр производительности, но зато это один из самых недорогих процессоров с открытой RISC-V архитектурой. Новинок с таким чипом будет несколько, поскольку собственные решения готовят разные производители.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Просмотры13K
Комментарии 24

Использование LoRa для интеграции кота в IoT

Блог компании RUVDS.comГеоинформационные сервисыИнтернет вещейDIY или Сделай самБудущее здесь

Увлекательные приключения кота Барсика в нидерландской деревне и его интеграция в интернет вещей с помощью LoRa радио и The Things Network.

Читать далее
Всего голосов 134: ↑134 и ↓0+134
Просмотры24K
Комментарии 103

Почему tar.xz-файлы, созданные с Python tar, оказались в 15 раз меньше, чем у macOS tar

Блог компании ФлантПрограммированиеСжатие данных
Перевод

Прим. перев.: это не совсем обычный перевод, потому что в его основе не отдельно взятая статья, а недавний случай со Stack Exchange, ставший главным хитом ресурса в этом месяце. Его автор задает вопрос, ответ на который можно отнести к базовым знаниям в области ИТ, но в то же время оказавшийся откровением для некоторых посетителей сайта.

Сжимая каталоги по ~1,3 ГБ, в каждом из которых по 1440 файлов JSON, я обнаружил 15-кратную разницу между размером архивов, сжатых с помощью tar на macOS или Raspbian 10 (Buster), и архивов, полученных при использовании библиотеки tarfile, встроенной в Python.

Читать далее
Всего голосов 80: ↑77 и ↓3+74
Просмотры20K
Комментарии 24

NVMe Namespaces: возможности и подводные камни

Блог компании SelectelIT-инфраструктураСерверное администрирование

Уверен, многие слышали про NVM Express, или просто NVMe. Изначально для меня это были просто быстрые диски. Потом я осознал, что это интерфейс для подключения этих дисков. Затем стал понимать NVMe как протокол для передачи данных по PCIe-шине. И не просто протокол, а протокол, разработанный специально для твердотельных накопителей!

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

Так что же такое NVMe? Рассмотрим подробнее.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Просмотры10K
Комментарии 34

Аппетитный мир стандартной еды от НИСТ

Научно-популярноеЗдоровье
Перевод


Национальный институт стандартов и технологий США основали 3 марта 1901 года, сначала как «Национальное бюро стандартов», и переименовали в 1988 году. Правительство поручило этой организации гарантировать единообразие мер и весов по всем США, и помогать промышленности, учёным и всем прочим с выработкой стандартов.

Одна из основных задач НИСТ – выпуск и продажа «Справочных материалов по стандартам», СМС. В них дан широкий спектр стандартов, от проб стали и бетона до геологических материалов типа глины. Существуют стандарты и для еды. Да, в США можно купить баночку стандартного арахисового масла от НИСТ – хотя её стоимость вряд ли сможет конкурировать с тем, что предлагают в обычных магазинах. Давайте разберёмся, почему существует эта стандартная еда, и что стоит на полках национального института стандартов.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Просмотры3.6K
Комментарии 3

Новый высокопроизводительный одноплатный компьютер BeagleV построенный на открытой архитектуре RISC-V за $119+

Я пиарюсь
Перевод
BeagleV SBC

До недавнего времени платы построенные на процессоре RISC-V такие как Kendryte K210, невозможно было использовать для высоко ресурсоемких задач, т.к. производительность конечных была очень низкой. В частности одноплатный компьютер XuanTie C906 на базе Allwinner RISC-V можно было использовать только для нишевых небольших задач, например в качестве камеры из-за отсутствия аппаратного графического ускорителя и наличия только 256 МБ оперативной памяти. Можно использовать одноплатные компьютеры такие как SiFive HiFive Unmatched или PolarBerry, но стоимость конечной системы составит сотни, а то и более тысячи долларов, что является весьма дороговато.
Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Просмотры18K
Комментарии 37

Обратная отладка виртуальных машин в QEMU

Системное программированиеВиртуализацияОтладкаРеверс-инжиниринг
🔥 Технотекст 2020

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

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Просмотры2.9K
Комментарии 5

МЭМСы. Как устроены современные датчики?

Блог компании МиландрСхемотехникаПроизводство и разработка электроникиЭлектроника для начинающихИнженерные системы
Микроэлектромеханические системы (МЭМС) — устройства, объединяющие в себе микроэлектронные и микромеханические компоненты. Сейчас довольно трудно встретить системы в которых не используются датчики, выполненные по данной технологии. Но как устроены современные датчики и какие преобразователи используются для работы с ними? Постараемся детально разобраться в этом вопросе, основываясь на работе современных МЭМС-акселерометров.

Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Просмотры12K
Комментарии 19

Кое-что о весе страницы

Блог компании Web-payment.ruВеб-аналитика
Перевод
Три года назад, когда я работал веб-разработчиком на YouTube, один из старших инженеров начал разглагольствовать о слишком большом весе видеостраницы. Страница была раздута до 1,2MB и содержала десятки запросов. Этот инженер так и заявил: если целые клоны Quake пишутся с объемом до 100KB, у нас просто нет оправданий! Я согласился с ним и был в восторге от нового проекта, решив сделать страницу просмотра YouTube с весом ниже 100 КВ. В этот вечер, в автобусе, едущем из Сан-Бруно, я написал код прототипа. Я решил ограничить функциональность базовым минимумом: видеоплеер, пять похожих видео, кнопка «Поделиться», инструмент разметки и десять комментариев, загружаемых с помощью AJAX. Я назвал проект “Feather” (англ. — перышко).

Даже при таком ограниченном наборе функций страница весила около 250 КБ. Я углубился в изучение кода и понял, что наше средство оптимизации (т.е. Closure compilation) не способно исключить код, который никогда реально не используется на самой странице (чего и следовало ожидать от любого инструмента в сложившихся обстоятельствах). Единственным способом дополнительно сократить код было вручную оптимизировать спрайты CSS, Javascript и изображения. Три дня стараний — и я получил гораздо более удачное решение. И все равно это было не 100 КБ. Я совсем недавно закончил написание кода видеоплеера HTML5, и поэтому решил включить его вместо гораздо более увесистого Flash player. Бамс! 98KB, и всего 14 запросов. Я снабдил код некоторыми базовыми возможностями мониторинга и запустил его исполнение в части нашего трафика.
Читать дальше →
Всего голосов 148: ↑144 и ↓4+140
Просмотры60K
Комментарии 68

Уязвимость отказа в обслуживании в OpenVPN

Информационная безопасностьOpen source
image
В OpenVPN < 2.3.6 обнаружена уязвимость, которая позволяет аутентифицированным клиентам удаленно уронить VPN-сервер, т.е. выполнить атаку отказа в обслуживании.
Уязвимость заключается в некорректном использовании assert(): сервер проверяет минимальный размер control-пакета от клиента именно этой функцией, из-за чего сервер аварийно завершится, если получит от клиента control-пакет длиной менее 4 байт.
Следует отметить, что для совершения атаки достаточно установить коммуникацию через control channel, т.е. в случае с TLS, сам TLS-обмен. VPN-провайдеры, которые реализуют аутентификацию с использованием логина/пароля и общего TLS-ключа, подвержены уязвимости еще до стадии проверки логина и пароля.

Уязвимость имеется во всех версиях OpenVPN второй ветки, т.е. начиная, как минимум, с 2005 года. Ветка OpenVPN 3, на которой основаны мобильные клиенты, не подвержена данной уязвимости.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Просмотры16K
Комментарии 5

«Победа сегфолтом» и другие эксплойты шахматных движков

Информационная безопасностьИскусственный интеллектИгры и игровые приставкиЛогические игры
Перевод

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

Прелюдия


Universal Chess Interface (UCI) — это открытый коммуникационный протокол, позволяющий шахматным движкам общаться с интерфейсами пользователя. Он поддерживается практически каждым шахматным движком, и через этот интерфейс мы будем подключать наш «запутыватель» (фаззер, fuzzer).

Stockfish


Stockfish — это шахматный движок с открытым исходным кодом, постоянно занимающий высокие места в списках рейтингов шахматных движков. Stockfish обычно поставляется в составе шахматных приложений, а также используется как основа для множества производных от него движков.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Просмотры6.1K
Комментарии 5

Qomu — полноценная система на кристалле размером с ноготь

Блог компании SelectelПроизводство и разработка электроникиГаджетыКомпьютерное железо

Миниатюризация в электронике достигла весьма впечатляющих результатов. На днях была представлена система на кристалле (SoC), Qomu, размером не больше ногтя. Эта плата — часть семейства Tomu, миниатюрных плат, предназначенных для подключения к USB-портам ПК и ноутбуков. При этом у разных плат — различная специализация.

Qomu, например, представляет собой SoC c FPGA, специализирующуюся на машинном обучении, эмулировании процессоров и создании кастомной схемотехники. FPGA можно запрограммировать на выполнение конкретной задачи, затем модифицировать прошивку для реализации уже другой задачи. Qomu способна на все это, будучи весьма миниатюрной платой.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Просмотры15K
Комментарии 19

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

Настройка LinuxСистемное программированиеСетевые технологииОтладкаРазработка под Linux

Продолжаем серию статей про BPF — универсальную виртуальную машину ядра Linux — и в этом выпуске расскажем о том, какие типы программ BPF существуют, и как они используются в реальном мире капиталистического чистогана. Кроме этого, в конце статьи приведено некоторое количество ссылок, в частности, на две с половиной существующие книжки про BPF.


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


Если вы хотите узнать, как именно BPF помогает эффективно решать задачи защиты от DDoS атак, распределения нагрузки на серверы, реализации сетевого стека kubernetes, защиты систем от нападения, эффективной трассировки систем 24x7 прямо в проде и многие другие, то добро пожаловать под кат.


image

Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Просмотры5.4K
Комментарии 8

Как получить 9В/12В от зарядного с Quick Charge (на примере STM32)

Программирование микроконтроллеровСхемотехникаРазработка под ArduinoDIY или Сделай самЭлектроника для начинающих
Из песочницы

Чем может быть полезна быстрая зарядка


С увеличением ёмкости аккумуляторов телефонов потребовалось увеличить и мощность зарядных устройств, чтобы достичь маленького времени зарядки, для чего и нужно было увеличивать выходную мощность: напряжение, ток. Таким образом зарядные с Quick Charge 3.0 кроме 5 В могут выдавать 9В/12В/20В +возможность регулировки с шагом 0.2 В (до 12 В).


image

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

Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Просмотры19K
Комментарии 21

Отечественный микроконтроллер К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии

Блог компании МиландрИнформационная безопасностьЛокализация продуктовПрограммирование микроконтроллеровПроизводство и разработка электроники
Добро пожаловать в эпоху RISC-V!

Решения на базе открытого стандарта системы команд RISC-V всё чаще появляются на рынке. Уже в серийном производстве микроконтроллеры от китайских коллег, интересные решения предлагает Microchip с FPGA на борту. Растет экосистема ПО и средств разработки для данной архитектуры. Кажущиеся ранее непоколебимыми лидеры все чаще встречаются в объявлениях о перепродаже, а молодые стартапы привлекают многомиллионные инвестиции. Компания Миландр так же ввязалась в эту гонку и сегодня начала поставку заинтересованным предприятиям инженерных образцов своего нового микроконтроллера К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии. В общем картинки, характеристики и прочая информация, а так же немного хайпа под катом.


Читать дальше →
Всего голосов 99: ↑99 и ↓0+99
Просмотры28K
Комментарии 147

Информация

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