Pull to refresh
2
0
Send message

Что происходит с вашим JavaScript-кодом внутри V8. Часть 1

Level of difficultyMedium
Reading time6 min
Views6.2K

В этой серии статей мы пройдемся по каждому этапу работы V8: лексическому и синтаксическому анализу, построению AST, интерпретации и оптимизациям. Затронем Ignition, Sparkplug, Maglev и Turbofan; разберемся с hidden classes, байт-кодом, и много чем еще. Углубимся во все этапы достаточно, чтобы понимать, за что отвечает каждый из них.

В этой части посмотрим на лексический и синтаксический анализ.

Читать далее

Как собрать ДНК с помощью кода: симуляция молекулярных операций на Python

Level of difficultyHard
Reading time4 min
Views2K

Синтез ДНК кажется чем-то сугубо биологическим — с пробирками, центрифугами и белыми халатами. Но что, если попробовать собрать ДНК в коде? Не просто сгенерировать последовательность, а симулировать реальные процессы: лигирование, гибридизацию, ПЦР, ошибочные вставки, ферментативные сдвиги и многое другое. В этой статье — практическая попытка воссоздать молекулярную биологию средствами Python, без библиотек типа Biopython, с нуля. Много кода, немного шуток и один вопрос — можно ли построить in silico ДНК-лабораторию?

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

Идея: построить в коде лабораторную скамью, где можно будет “сшивать” фрагменты ДНК, копировать их, проверять на ошибки. Причём без привычных библиотек вроде Biopython — просто Python, NumPy и желание воссоздать реальный молекулярный процесс в виртуальной среде. Можно ли собрать виртуальную ДНК-плазмиду и отдать её синтетической биологии?

Да. Но сначала немного теории.

Читать далее

Наше расследование: ищем отечественные микросхемы в «отечественных» счетчиках электроэнергии. Часть 4 и снова блогер…

Level of difficultyEasy
Reading time4 min
Views25K

Хвалебное видео от Максима Горшенина про успехи GS Croup в импортозамещении послужило наводкой, благодаря которой мы провели вскрытие, и узнали, что в выпускаемых "отечественных" микросхемах Flash памяти GSN2516Y и GSN2517Y используются полупроводниковые кристаллы от серийных иностранных микросхем W25Q16 тайваньской компании WINBOND. Проследив кто потребляет эти псевдоотечественные микросхемы, мы нашли уже "отечественные" счетчики электроэнергии от компании "Энергомера" с рекордными 117 баллами из Реестра российской промышленной продукции. Благодаря этим баллам счетчики выигрывают миллиардные тендеры на государственных закупках. Но в самих счетчиках мы не нашли отечественных микросхем, благодаря которым и должны набираться эти 117 баллов. Основным микроконтроллером и АЦП в счетчиках оказались микросхемы от тайваньской компании VANGO. В след за GS Croup по пути выдачи китайских микросхем за отечественные пошла компания "Интегральные Телематические Решения", нанеся свою маркировку на корпус микросхемы включили их в реестр, хотя на самом деле это микросхемы от все той же китайской VANGO. Вот так заказной хвалебный ролик от главного пиарщика и воспевателя импортозамещения разоблачил его самого и его заказчиков. Так что если Максим кого-то хвалит, то значит дело не чистое и нужно искать. И мы снова нашли...

Читать далее

Необычный взгляд на ведение личных финансов

Level of difficultyEasy
Reading time2 min
Views4.8K

Вести финансы я пытался много раз. В начале пользовался AceMoney, потом пытался перелезть на другие платформы. Но каждый раз всё заканчивалось одним и тем же. В очередной раз я считал, сколько у меня в реальности денег, и сколько должно быть согласно программе, в которой я вел финансы. И эта цифра не сходилась. И не сходилась по разным причинам. Где‑то забыл записать, где‑то ошибся при вводе ну копейку/рубль, где‑то случайно учёл 2 раза. Или просто где‑то потерял деньги.

И помучавшись год‑два я это дело бросал. Потом возвращался, и опять бросал. Но отсутствие контроля за финансами меня напрягало. Немного подумав над тем, как и куда уходят деньги, я решил немного отойти от обычной системы учёта финансов. Грубо говоря, мне не нужно знать, сколько у меня денег с точностью до копейки. И даже если нужно, то можно просто зайти в приложения банков, и на калькуляторе всё посчитать. У меня скорее другая задача — не дать себе тратить горы денег на какую‑то ерунду. А горы денег трачу на всякую ерунду я потому, что мне эта ерунда нравится. И полностью исключать то, что мне нравится — не логично. Как, впрочем, и спускать туда все свои деньги.

В итоге я взял идею из книги «Самый богатый человек в Вавилоне». Создал простенький Excel, добавил все «вредные» траты в виде колонок, и для каждой определил% от доходов, которые буду себе разрешать тратить. Пришла ЗП/проценты по кладу/ещё чего... отлично, забиваем в Excel сумму, и она автоматом раскидывается по нужным «бюджетам» в определённых пропорциях. И открыв Excel я могу сразу увидеть, сколько я могу потратить на новые девайсы/путешествия/пирожное/кофе/и т. д. Туда же добавил с «полезные» траты — инвестирование. Потратил — списал из этой категории.

Читать далее

Nokia 6555: раскладушка, которая зажигала в 2000-х. Что внутри?

Reading time4 min
Views7.6K

Этот телефон был не просто звонилкой, а настоящим модным аксессуаром, который кричал: «Я крут!». Nokia 6555 была звездой среднего сегмента, сочетая шикарный дизайн с мультимедийными плюшками. Хочешь слушать музыку? Пожалуйста! Желаешь щелкать фотки? Легко! Логично, что модель стала очередным хитом финской компании. К сожалению, звездное время телефона ушло.

У меня есть эта модель, я ее уже описывал, как раз в ее собственный день рождения. Ну а теперь давайте вспомним, что это за трубка, оценим наружи и особенно внутри. Я все разберу, посмотрим, насколько быстро получится добраться до материнской платы и какие чипы использовались. Поехали!

Читать далее

Программируя с использованием AI ты продаешь душу дьяволу

Reading time5 min
Views7.2K

Хочешь убить свое будущее — переходи на программирование с использованием AI.

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

И вдруг тема «продаже души дьяволу» появилась из неоткуда...

Читать далее

Как я «случайно» получил root-доступ к платёжному терминалу

Level of difficultyMedium
Reading time8 min
Views10K

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

Absolute Zero Reasoner: ИИ научился программированию без входных данных — и это может поменять всё

Level of difficultyEasy
Reading time7 min
Views22K

Возможно я был недостаточно внимателен, но мне попалось на Хабре буквально одно, очень краткое упоминание крайне интересного исследования от команды из Университета Цинхуа и партнерских институтов нескольких стран: Absolute Zero Reasoner (AZR) — новую систему машинного обучения, которая развивает принципы self-play и способна обучаться без каких-либо внешних данных. В отличие от традиционных подходов, требующих тысячи размеченных примеров, AZR использует принцип самообучения через создание и решение собственных задач программирования. Система играет две роли одновременно: составителя задач (Proposer) и решателя (Solver), используя исполнитель кода как объективного судью для получения обратной связи. AZR продемонстрировал state-of-the-art результаты в программировании и математических рассуждениях, превзошедший модели, обученные на десятках тысяч человеческих примеров, при этом показав впечатляющий кросс-доменный перенос знаний между различными областями знаний.

Читать далее

Когда технологии пахнут провалом: история неудачи цифровых ароматов

Reading time15 min
Views1.7K

«Чувствуешь запах? Это напалм, сынок. Больше ничто в мире не пахнет так.
Я люблю запах напалма поутру», — говорит с экрана полковник Килгор из фильма «Апокалипсис сегодня». Но в этот момент зритель максимум может ощутить запах попкорна или чипсов — в зависимости от того, с чем он смотрит кино.

А теперь представьте: вместе с этой легендарной репликой в нос ударяет едкий запах бензина. Каково? Закрываешь глаза — и вот ты уже во Вьетнаме, в реве вертолётов, рядом с бравым воякой.

Такие попытки сделать кино более «настоящим» — в том числе через запахи — предпринимались ещё с 1950-х. В этой статье расскажем про стартап Digiscent, созданный выпускниками Стэнфорда в конце 90-х, коротко пройдёмся по истории технологий передачи запахов и заодно подумаем: есть ли у них вообще будущее.

Читать далее

Секреты изнанки музыкальных инструментов

Reading time4 min
Views7.5K

Привет, Хабр! Как думаете, что на этом фото? Нет, это не современная урбанистика или галлюцинации нейросетей. Это фотография... концертного органа изнутри. Предлагаем отвлечься от архитектуры ПО, инфраструктур, нейронок и погрузиться в архитектуру музыкальных инструментов.

Читать далее

Прогрессивный JSON

Level of difficultyEasy
Reading time10 min
Views18K

Вы знаете, что такое прогрессивный JPEG? Можете почитать хорошее объяснение. Идея заключается в том, что вместо загрузки изображения сверху вниз оно сначала грузится размытым, а потом постепенно становится чётче.

Что, если мы применим тот же принцип к передаче JSON?

Читать далее

Сети захватили район, маркетплейсы отнимают клиентов, но почему продуктовые магазины выживают?

Reading time8 min
Views9.9K

Представьте, что вы — маленький продуктовый магазинчик. Точнее, его владелец. По соседству только что открылась огромная "Пятёрочка", а ещё "Магнит" и "Дикси". В телефонах ваших покупателей — приложения "Самоката" и "Яндекс.Лавки". А на холодильнике — магнитик с промокодом на скидку в Ozon-продуктах. Всё, конец? Пора закрываться?

Читать далее

Топ-5 лучших Linux дистрибутивов для пентестера

Level of difficultyEasy
Reading time4 min
Views7.3K

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

Читать далее

Как мы превратили iPhone в лабораторный микроскоп с AI и BLE: real-world edge-приложение

Level of difficultyMedium
Reading time18 min
Views2.3K

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

Это не очередной todo-лист с авторизацией или приложение для наложения масок на селфи  — в центре внимания: видеопоток с окуляра микроскопа, нейронки, работа с железом, Bluetooth-управление перемещением стекол, и всё это — прямо на iPhone. 

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

Читать далее

Localhost-атака: как Meta* и Яндекс следят за пользователями Android через localhost

Level of difficultyMedium
Reading time14 min
Views54K

Мы раскрыли новый метод отслеживания, используемый компаниями Meta* и Яндекс, который потенциально затрагивает миллиарды пользователей Android. Мы обнаружили, что нативные приложения Android — включая Facebook, Instagram и несколько приложений Яндекса, таких как Карты и Браузер — незаметно слушают определенные локальные порты в целях отслеживания.

Эти нативные приложения Android получают метаданные браузеров, куки и команды от скриптов Meta* Pixel и Яндекс.Метрики, встроенных на тысячи веб-сайтов. Эти скрипты загружаются в мобильных браузерах пользователей и незаметно связываются с нативными приложениями, работающими на том же устройстве, через локальные сокеты (localhost). Так как нативные приложения программно получают доступ к идентификаторам устройства, таким как рекламный идентификатор Android (AAID), или обрабатывают идентификацию пользователя, как в случае приложений Meta, этот метод позволяет этим организациям связывать сессии мобильного браузера и веб-куки с личностью пользователя, тем самым деанонимизируя посетителей сайтов, на которых размещены их скрипты.

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

Читать далее

Как ускорить сложение и вычитание при помощи 2^51

Level of difficultyEasy
Reading time8 min
Views10K

Помните, как долго выполняется сложение на бумаге?

¹¹ ¹
6876
+ 3406
------
10282

Начиная с единиц, мы складываем 6 + 6 = 12, записываем 2 и переносим 1. Затем пошагово двигаемся влево, пока складываемые разряды не закончатся.

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

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

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

Читать далее

ZLinq — Zero-Allocation LINQ-библиотека для.NET

Level of difficultyHard
Reading time20 min
Views5.6K

В прошлом месяце я зарелизил ZLinq v1 — революционную LINQ-библиотеку, которая достигает zero allocation на структурах и дженериках. Она может похвастаться такими расширениями, как LINQ to Span, LINQ to SIMD, LINQ to Tree (FileSystem, JSON, GameObject и т.д.), drop-in replacement Source Generator для произвольных типов, поддержкой нескольких платформ, включая .NET Standard 2.0, Unity и Godot и на данный момент ZLinq имеет более 2000 звезд на GitHub.

Читать далее

3D для каждого. Оптимизация. Часть 4. Ремейк меша

Level of difficultyMedium
Reading time7 min
Views2.4K


Добрый день, дорогие хабражители и хабражительницы.


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

Образцовый джун

Level of difficultyEasy
Reading time6 min
Views5.7K

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

Читать далее

Новый кандидат в односторонние функции для криптографии и PRNG

Level of difficultyMedium
Reading time7 min
Views1K

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

Читать далее

Information

Rating
6,205-th
Registered
Activity