Pull to refresh
-11
0
Send message

Прерывания от внешних устройств в системе x86. Часть 1. Эволюция контроллеров прерываний

Reading time8 min
Views47K
В данной статье хотелось бы рассмотреть механизмы доставки прерываний от внешних устройств в системе x86 и попытаться ответить на вопросы:

  • что такое PIC и для чего он нужен?
  • что такое APIC и для чего он нужен? Для чего нужны LAPIC и I/O APIC?
  • в чём отличия APIC, xAPIC и x2APIC?
  • что такое MSI? В чём отличия MSI и MSI-X?
  • как с этим связаны таблицы $PIR, MPtable, ACPI?

Если на какой-то из этих вопросов вам интересно получить ответ или вы просто хотите ознакомиться с эволюцией контроллеров прерываний в системе x86, добро пожаловать под кат.
Читать дальше →

Google Analytics. Синхронизация с пикселями Facebook, VK, Yandex, MyTarget

Reading time4 min
Views10K
Привет, Хабр! Со временем, маркетологам начинает хотеться делать воронки ремаркетинга по событиям, а потом еще и преследовать по всем каналам.

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

Чтобы было проще масштабировать ремаркетинг на другие системы, сейчас мы сделаем синхронизацию событий GA в Метрику, Facebook, VK, MyTarget.


Поехали!
Читать дальше →

Новая реализация любопытства у ИИ. Обучение с вознаграждением, которое зависит от сложности предсказать результат выдачи

Reading time8 min
Views11K

Прогресс в игре «Месть Монтесумы» многими рассматривался как синоним достижений в области исследования незнакомой среды

Мы разработали метод случайной дистилляции сети (Random Network Distillation, RND) на основе прогнозирования, который поощряет агентов обучения с подкреплением исследовать окружение благодаря любопытству. Этот метод впервые превысил средние результаты человека в компьютерной игре «Месть Монтесумы» (если не считать анонимную заявку в ICLR, где результат хуже нашего). RND демонстрирует ультрасовременную эффективность, периодически находит все 24 комнаты и проходит первый уровень без предварительной демонстрации и не имея доступ к базовому состоянию игры.

Загрузка ядра Linux. Часть 1

Reading time12 min
Views63K
От загрузчика к ядру

Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

Мне очень интересно разобраться, как работают низкоуровневые штуки: как программы запускаются на моём компьютере, как они расположены в памяти, как ядро управляет процессами и памятью, как работает сетевой стек на низком уровне и многое другое. Итак, я решил написать еще одну серию статей о ядре Linux для архитектуры x86_64.

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

Играем в Mortal Kombat с помощью TensorFlow.js

Reading time18 min
Views19K
Экспериментируя с улучшениями для модели прогнозирования Guess.js, я стал присматриваться к глубокому обучению: к рекуррентным нейронным сетям (RNN), в частности, LSTM из-за их «необоснованной эффективности» в той области, где работает Guess.js. В то же время я начал играться с свёрточными нейросетями (CNN), которые тоже часто используются для временных рядов. CNN обычно используют для классификации, распознавания и обнаружения изображений.


Управление MK.js с помощью TensorFlow.js

Исходный код для этой статьи и МК.js лежат у меня на GitHub. Я не выложил набор данных для обучения, но можете собрать свои собственные и обучить модель, как описано ниже!
Читать дальше →

Как разобраться в Tensorflow и не умереть, а даже научить чему-то машину

Reading time8 min
Views40K

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


Читать дальше →

Лучший способ начать изучать современную генетику, молекулярную биологию, генную инженерию и геномику

Reading time5 min
Views44K
Если вы когда-либо хотели разобраться в фундаментальных основах современных биотехнологий, генной инженерии, биоинформатики и молекулярной биологии, детально понимать, что творится на передних рубежах этой удивительной и революционной в настоящий момент науки, быть сознательным свидетелем тех потрясающих научных открытий, современниками которых мы являемся, но не знали с чего начать — этот пост должен быть вам интересен.

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

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


Читать дальше →

ДНК. Механизмы хранения и обработки информации. Часть II

Reading time12 min
Views16K

Привет Хабр! Сегодня мы продолжим прошлый рассказ о ДНК. В нем мы поговорили о том, сколько ее бывает, как ДНК хранится и почему так важно то, как она хранится. Сегодня мы начнем с исторической справки и закончим основами кодирования информации в ДНК.

История


Сама по себе ДНК была выделена еще в 1869 году Иоганном Фридрихом Мишером из лейкоцитов, которые он получал из гноя. Лейкоциты это белые клетки крови, выполняющие защитную функцию. В гное их довольно много, ведь они стремятся к поврежденным тканям, где «поедают» бактериальные клетки. Он выделил вещество, в состав которого входят азот и фосфор. Вначале оно получило название нуклеин, однако, когда у него обнаружили кислотные свойства, название изменили на нуклеиновую кислоту. Биологическая функция новооткрытого вещества была неясна, и долгое время считалась, что в нем запасается фосфор. Даже в начале XX века многие биологи считали, что ДНК не имеет никакого отношения к передаче информации, поскольку строение молекулы, как тогда казалось, было слишком однообразным и не могло закодировать столько информации.
Читать дальше →

Что будет с обработкой ошибок в С++2a

Reading time5 min
Views16K

image


Пару недель назад прошла главная конференция в С++ мире — CPPCON.
Пять дней подряд с 8 утра и до 10 вечера шли доклады. Программисты всех конфессий обсуждали будущее С++, травили байки и думали как сделать С++ проще.


Удивительно много докладов были посвящены обработке ошибок. Устоявшиеся подходы не позволяют достичь максимальной производительности или могут порождать простыни кода.
Какие же нововведения ожидают нас в С++2a?

Читать дальше →

LoJax: первый известный UEFI руткит, используемый во вредоносной кампании

Reading time25 min
Views17K
Кибергруппа Sednit, также известная как АРТ28, Strontium и Fancy Bear, работает как минимум с 2004 года. Считается, что группа стоит за рядом резонансных кибератак. Некоторые ИБ-компании и Министерство юстиции США назвали Sednit ответственной за взлом Национального комитета Демократической партии перед выборами в США в 2016 году. Группе приписывают взлом глобальной телевизионной сети TV5Monde, утечку электронных писем Всемирного антидопингового агентства (WADA) и другие инциденты. У Sednit множество целей и широкий спектр инструментов, некоторые из которых мы уже задокументировали ранее, но в этой работе мы впервые детально опишем применение UEFI руткита.


Читать дальше →

Книга «Почему мы ошибаемся. Ловушки мышления в действии». Выдержки часть 1

Reading time4 min
Views10K
Что увеличивает шанс на ошибку?
Чего мы не замечаем когда ошибаемся?
Насколько сильно предпосылки влияют на наше решение?

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

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

Как работает, и работает ли вообще разговорная психотерапия

Reading time30 min
Views69K
Привет, Хабр!

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



tl;dr: в длинной и нудной статье рассматривается вопрос эффективности психотерапии (да, эффективна, в своих границах применимости, разумеется), а также приводятся размышления относительно того, каким образом эта эффективность достигается (посредством реализации морфологических и метаболических изменений за счёт нейропластичности мозга).

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

Как работает stack trace на ARM

Reading time8 min
Views11K
Добрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги компиляции влияют на возможность трассировки стека на ARM? Как это реализовано в ядре Linux? По результатам исследований решил написать эту статью.
Читать дальше →

Как открыть ИП в Германии, если ты программист, и не набить шишек

Reading time6 min
Views37K
В последние недели Берлин — популярная тема на Хабре. Не случайно — в Германии много возможностей для работы в ИТ с комфортным переездом. Но бюрократия она и в Африке бюрократия, а если встают вопросы об индивидуальном предпринимательстве за рубежом — головной боли не избежать.



Алина Ануфриева (allinne) работала фронтендером в Яндексе, но ее муж получил оффер из Германии, и они вместе с ребенком переехали в Берлин. Работа позволила мужу получить Blue Card — рабочую визу, действующую по всей Европе — и вид на жительство для семьи. Но если но был обязан работать именно в той компании, которая его позвала, то Алина получила более широкие возможности: работать где угодно и даже открывать свое дело.

Но первое время она занималась бытовыми делами, например устраивала ребенка в сад. «Надо заполнить 100500 формуляров, принести их в Jugendamt (управление по делам молодежи). Российское гражданство никаких трудностей не вызовет, если есть виза», — говорит она.

Алина смотрела вакансии на неполный рабочий день в Берлине, чтобы заниматься ребенком, но ей не удавалось найти работу даже на 30 часов в неделю. Наконец она нашла удаленный оффер из Финляндии, но столкнулась с бюрократическими трудностями — финские и немецкие законы устроены так, что организовать работу можно было только через ИП.

Открыть его сложнее чем в России, есть много подводных камней. Мы созвонились, и Алина подробно описала весь процесс, а я записал ее рассказ.
Читать дальше →

Британская панель биомаркеров здорового старения

Reading time11 min
Views8.1K
Команда британских геронтологов из университетов Кембриджа, Бирмингема, Эдинбурга и Ньюкасла провела исследование, по результатам которого была составлена панель биомаркеров здорового старения.

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

Исследования по здоровому старению включают в себя:

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

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

Портирование JS на Эльбрус

Reading time11 min
Views33K
Это рассказ про портирование JavaScript на отечественную платформу Эльбрус, выполненное ребятами из компании UniPro. В статье — краткий сравнительный анализ платформ, детали процесса и подводные камни.



В основе статьи — доклад Дмитрия (dbezheckov) Бежецкова и Владимира (volodyabo) Ануфриенко с HolyJS 2018 Piter. Под катом вы найдете видео и текстовую расшифровку доклада.

Создаём простую нейросеть

Reading time9 min
Views208K


Перевод Making a Simple Neural Network

Что мы будем делать? Мы попробуем создать простую и совсем маленькую нейронную сеть, которую мы объясним и научим что-нибудь различать. При этом не будем вдаваться в историю и математические дебри (такую информацию найти очень легко) — вместо этого постараемся объяснить задачу (не факт, что удастся) вам и самим себе рисунками и кодом.
Начнем.

Взламывая код старения: новая наука о старении и о том что значит оставаться молодым

Reading time8 min
Views21K

В своей новой книге «Взламывая код старения: новая наука о старении и о том что значит оставаться молодым» Джош Миттельдорф, который изучал старение десятилетиями и писал об этом на своем вебсайте, изучает науку о старении и устанавливает свою собственную теорию о том почему мы, и буквально все организмы сложнее бактерии, стареем. (Соавтор книги Дориан Саган, но теория Миттельдорфа).

Эта научная книга года, лучшее что я читал в последнее время.

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

Изучаем процессы в Linux

Reading time7 min
Views178K

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

Данная статья в большей мере рассчитана на новичков в системном программировании и тех, кто просто хочет узнать немного больше о том, как работают процессы в Linux.
Читать дальше →

Information

Rating
7,239-th
Registered
Activity