Search
Write a publication
Pull to refresh
27
0
Джони Дэп @Godless

Супермэн

Send message

Сервисы, которые стали бесплатными на время карантина: курсы, радио, книги, кино и сериалы

Reading time5 min
Views387K
image

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

Доверительный интервал для числа заболевших коронавирусом (расчёт по летальности)

Reading time4 min
Views48K
Популярный аргумент к ставшей вирусной публикации про коронавирус — да как же можно по трём случаям какую-то статистику выводить? Нельзя делать выводы по таким маленьким выборкам! Эту историю про размеры выборок все, кто учился социальным наукам, впитали с молоком альма матери. И это правильно в тех ситуациях, с которыми мы обычно имеем дело — с выборочными статистиками.

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

И вот перед нами число 3. Три умерших, не вектор какой-нибудь, не таблица и не выборка. Это факт. Три умерших попали к нам совершенно не случайно. Они умерли.
Читать дальше →

Устройство расширений для браузера Firefox (WebExtensions)

Reading time38 min
Views19K

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


Тому, кто разбирается в веб-разработке, будет несложно создать новое расширение для браузера. Сейчас большинство самых популярных браузеров поддерживает стандартную систему разработки, которая использует в основном только JavaScript, HTML и CSS, — WebExtensions.


Человеку, который никогда раньше не создавал дополнение для браузера на основе WebExtensions, может быть тяжело сразу понять, из каких основных частей оно должно состоять и что может делать. В сети Интернет есть много информации об этой системе, но для того, чтобы создать для себя общую картину, придётся потратить много времени. Эта статья поможет быстро разобраться в устройстве системы WebExtensions и покажет, как лучше ориентироваться в документации к её API. Здесь описывается расширение для браузера Firefox, поэтому почти вся информация, используемая в статье, взята с сайта MDN. Но статья будет полезна и тем, кто хочет создать расширение для других браузеров, поддерживающих WebExtensions, — в первую очередь для Google Chrome и Chromium.


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


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

Как коронавирус сказывается на IT-индустрии

Reading time9 min
Views36K


Вспышка COVID-19 сказалась не только на здоровье человечества, но и на IT: компании переводят сотрудников на удалёнку, новый айфон откладывается, известнейшие мероприятия отменяются. И похоже, что даже если завтра число заражённых пойдёт на спад, какие-то из этих последствий могут остаться с нами надолго.


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

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

10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

Reading time3 min
Views100K

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


Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.


image


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

Коронавирус: почему надо действовать прямо сейчас

Reading time19 min
Views5.6M

Вступление


Учитывая всё, что происходит с коронавирусом, может оказаться очень сложно принять решение, что делать прямо сейчас. Стоит ли подождать, пока станет больше информации? Надо ли предпринять что-то уже сегодня? Если да, то что?

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

  • Сколько людей заболеют коронавирусом в вашем регионе?
  • Что случится, когда они начнут заболевать?
  • Что вы должны делать?
  • Когда?

Когда вы закончите читать статью, вы придёте к следующим выводам:

  • Коронавирус приближается к вам.
  • Он приближается с экспоненциальной скоростью: сперва постепенно, а потом внезапно.
  • Это вопрос нескольких дней. Может быть, неделя или две.
  • Когда это случится, ваша система здравоохранения будет перегружена.
  • Ваши сограждане будут лечиться в коридорах.
  • Изможденные медицинские работники сломаются. Некоторые погибнут.
  • Им придётся решать, кто из пациентов получит лечение, а кто умрет.
  • Единственный способ предотвратить это — социальная изоляция уже сегодня. Не завтра. Сегодня.
  • Это значит держать как можно больше людей дома, начиная с сегодняшнего дня.

Если вы политик, общественный деятель или руководитель, у вас есть власть и ответственность, чтобы предотвратить описанное выше.

Сейчас вы можете опасаться: что, если это избыточная реакция? Не станут ли люди смеяться надо мной? Вдруг они разозлятся на меня? Не буду ли я выглядеть глупо? Не лучше ли подождать, пока другие сделают первые шаги? Что, если это слишком навредит бизнесу?

Однако через 2-4 недели, когда весь мир будет закрыт и изолирован, когда окажется, что несколько драгоценных дней социальной изоляции, которые вы организовали, спасли жизни, вас больше не будут критиковать. Люди будут благодарить вас за то, что вы приняли правильное решение.

Итак, давайте разбираться.
Много графиков и длинный текст

CVE-2019-18683: Эксплуатация уязвимости в подсистеме V4L2 ядра Linux

Reading time22 min
Views8K

В данной статье описана эксплуатация уязвимости CVE-2019-18683 в ядре Linux, которую я обнаружил и исправил в конце 2019 года. Указанный CVE-идентификатор присвоен нескольким аналогичным ошибкам типа «состояние гонки», которые присутствовали в подсистеме V4L2 ядра Linux на протяжении пяти лет. Пятнадцатого февраля я выступил с докладом по данной теме на конференции OffensiveCon 2020 (ссылка на презентацию).


Далее я детально объясню, как работает разработанный мной прототип эксплойта (PoC exploit) для микроархитектуры x86_64. Данный эксплойт выполняет локальное повышение привилегий из контекста ядерного потока, где отсутствует отображение пользовательского адресного пространства. В статье также показано, как эксплойт для Ubuntu Server 18.04 обходит следующие средства защиты: KASLR, SMEP и SMAP.


Начнем с демонстрации работы эксплойта.


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

Чистый CSS: 4 метода анимирования цвета ссылок

Reading time6 min
Views39K
Автор статьи, перевод которой мы сегодня публикуем, предлагает, пользуясь чистым CSS, создать механизм изменения цвета текста ссылки при наведении на неё мыши. Но это должна быть не обычная смена цвета. Новый цвет должен заполнять ссылку слева направо, заменяя старый.


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

Стоит ли хранить Google Fonts на своём сервере?

Reading time22 min
Views24K
В последние несколько недель, по стечению обстоятельств на работе и в сторонних проектах, я узнал много о веб-шрифтах, а также много нового о Google Fonts в частности. Благодаря этому я могу дать более развернутый ответ на вопрос, который в прошлом мне казался простым: стоит ли вам хранить Google Fonts на своём сервере?

Говоря объективно, признаю, шрифты — не моя сильная сторона. Я предпочитаю более практичный подход и не зацикливаюсь на дизайне (посмотрите на этот сайт и убедитесь, что так и есть) и прежде не чувствовал необходимости в использовании нестандартных шрифтов. Конечно, они выглядят немного приятнее и «брендируют» текст. Но для основного текста толку в них мало. Я никогда не оценивал статью (или иначе относился к её содержанию), только потому что для её подачи использовался красивый шрифт. Тем не менее, мне было полностью понятно негативное влияние дополнительных шрифтов на производительность и скорость загрузки страницы, так что, возможно, из-за этого я предвзят.

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

Управляем дюймовыми жалюзи дешево

Reading time8 min
Views31K

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



До покупки жалюзи из Леруа Мерлен у меня была идея поставить шторы с электроприводом, но цена на них несколько лет назад, когда делал выбор, была довольно кусачая. К тому же, из-за высоты и ширины окна размер штор получался нестандартный, что тоже увеличило стоимость.

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

Как я 1000 дней пользовался OpenHAB, а затем перешел на Home Assistant

Reading time3 min
Views68K

Однажды в 2016 году мне потребовалось настроить удаленный сбор показаний счетчиков в квартире. К текущему моменту (январь 2020 года) там внедрена комплексная домашняя автоматизация с возможностью перекрытия воды и полного удаленного обесточивания (и обратного включения) электроэнергии.



В статье расскажу об опыте управления OpenHAB 1.х и 2.х и Home Assistant, а также приведу свои конфигурации.

OpenHAB vs Home Assistant

Полная домашняя автоматизация в новостройке. Продолжение

Reading time9 min
Views93K
Неожиданно статья про мой опыт автоматизации однокомнатной квартиры площадью 41 кв. м. в новостройке, опубликованная две недели назад, стала популярна и на 10 марта её добавил в закладки 781 image человек, просмотрели 123 921 раз и Хабр даже запилил рекламный блок в разделе «Рекомендуем» с пометкой «Интересно».


1500 метров проложенных кабелей после окончания ремонта не видны. На фото спальня

Перед вами продолжение истории, где я отвечу на комментарии, приведу фотографии квартиры с мебелью, получившиеся электрические щиты, а также расскажу о тех сложностях, с которыми я столкнулся после того, как перешёл c openHAB в другую систему домашней автоматизации — Home Assistant.
Самая умная однушка ...

Введение в SSD. Часть 4. Физическая

Reading time8 min
Views25K

Прошлые части цикла «Введение в SSD» поведали читателю про историю появления SSD-накопителей, интерфейсы взаимодействия с ними и популярные форм-факторы. Четвёртая часть расскажет о хранении данных внутри накопителей.
Читать дальше →

Программный контроллер интерфейса на STM32

Reading time9 min
Views14K
Проблема обратной совместимости, вероятнее всего, будет всегда.

В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше).

В таких аппаратах иногда всё собрано на логике, без каких-либо программируемых элементов.
Кроме того, в старой технике существуют доморощенные интерфейсы, которые не реализуются какими-либо серийно выпускаемыми контроллерами.

В таких случаях совместимые контроллеры приходится реализовывать на CPLD\FPGA\ASIC.

Я подумал, что можно обойтись без указанных выше средств, а именно реализовать контроллер интерфейса программно на микроконтроллере серии STM32F4.
Читать дальше →

Прояснен механизм памяти: при попытке вспомнить что-то нейроны мозга активируются в последовательности запоминания

Reading time2 min
Views18K

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

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

Подстава с NVMe на Линуксе

Reading time2 min
Views57K
Доброго времени суток.

Хотел обратить внимание сообщества на характерную особенность Linux при работе с несколькими NVMe SSD в одной системе. Особенно актуально будет для тех кто любит делать из NVMe программные RAID массивы.

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

Еще раз о передатчиках и приемниках 433 МГц

Reading time10 min
Views214K
Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.
Читать дальше →

Разработка модуля на iMX8 от NXP. Особенности переноса трассировки DDR

Reading time9 min
Views16K
Приветствую, Хабр!



Некоторое время назад, компания NXP представила линейку процессоров iMX8. Было бы странно упустить возможность и не разработать новый модуль. Кому интересны нюансы, прошу под кат (много легковесных картинок).
Читать дальше →

Обезл***вание д***ных — это не просто рандомизация

Reading time7 min
Views30K


В банке есть проблема: нужно давать доступ к базе данных разработчикам и тестировщикам. Есть куча клиентских данных, которые по PCI DSS требованиям Центробанка и законам о персональных данных вообще нельзя использовать для раскрытия на отделы разработки и тестирования.

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

Так вот, не будет.

Дело в том, что база данных банка — это множество связанных между собой таблиц. Где-то они связаны по ФИО и номеру счёта клиента. Где-то по его уникальному идентификатору. Где-то (тут начинается боль) через хранимую процедуру, которая вычисляет сквозной идентификатор на основе этой и соседней таблицы. И так далее.

Обычная ситуация, что разработчик первой версии системы уже десять лет как умер или уехал, а системы ядра, запущенные в старом гипервизоре внутри нового гипервизора (чтобы обеспечить совместимость) ещё в проде.

То есть прежде чем всё это обезличить, сначала надо разобраться в базе данных.
Читать дальше →

Весь Хабр в одной базе

Reading time7 min
Views17K

Добрый день. Прошло уже 2 года с момента написания последней статьи про парсинг Хабра, и некоторые моменты изменились.


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

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

Information

Rating
8,373-rd
Location
Россия
Registered
Activity