Как стать автором
Обновить
27
0
Maksim @MuLLtiQ

Software engineer

Отправить сообщение

CPU сдаст вас с потрохами: самая серьезная дыра в безопасности за всю историю наблюдений?

Время на прочтение2 мин
Количество просмотров131K

Что случилось?


Исследователи Google опубликовали исследование «Reading privileged memory with a side-channel», в котором они описывают найденную ими аппаратную уязвимость, которая затрагивает практически все современные и устаревшие процессоры вне зависимости от операционной системы. Строго говоря, уязвимостей целых две. Одной подвержены многие процессоры Intel (на них проводилось исследование). AMD с ARM также уязвимы, но атаку реализовать сложнее.

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

Пожалуй, самое вероятное и неприятное применение на данный момент — получение дампа системной памяти во время выполнения JavaScript.

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

Эксплуатация уязвимости не оставляет следов.

Насколько это серьезно?


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

Как защититься?


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

Прекрасные новости, это всё?


Не все. Судя по тестам, патчи сильно повлияют на производительность существующих систем. Тесты показывают падение на 10-30% в некоторых задачах. Да-да, вы все правильно поняли, ваш мак может навсегда стать медленнее, а AWS заметно дороже.

Дополнительные данные


Читать дальше →
Всего голосов 138: ↑130 и ↓8+122
Комментарии524

Уязвимость в ЦП Intel: затронуты Windows и Linux, закрытие уязвимости приведёт к падению производительности до 30%

Время на прочтение2 мин
Количество просмотров112K
Если сообщения верны, Intel допустила весьма серьёзную уязвимость в своих центральных процессорах, и её нельзя исправить обновлением микрокода. Уязвимость затрагивает все процессоры Intel за последние лет десять как минимум.

Закрытие уязвимости требует обновления ОС, патчи для Linux уже вышли, Microsoft планирует закрыть её в рамках традиционного ежемесячного «вторника патчей». На данный момент детали уязвимости не разглашаются, но некоторые подробности всё-таки выплыли наружу благодаря Python Sweetness и The Register.

image
Читать дальше →
Всего голосов 119: ↑118 и ↓1+117
Комментарии513

Учим робота готовить пиццу. Часть 2: Состязание нейронных сетей

Время на прочтение9 мин
Количество просмотров7.6K


Содержание



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


Попробуем обучить Условный вариационный автоэнкордер (Conditional Variational Autoencoder), а потом перейдёт к тому, ради чего это всё и затевалось — генеративным cостязательным нейронным сетям (Generative Adversarial Networks).

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии10

Многопользовательская игра на Go через telnet

Время на прочтение5 мин
Количество просмотров15K
Всем привет! Меня зовут Олег и я SRE. В какой-то момент мне захотелось улучшить свои навыки программирования на Go и написать маленькую многопользовательскую игру.

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

Вот что получилось:

image
Всего голосов 33: ↑32 и ↓1+31
Комментарии8

Табы, пробелы и ваша зарплата — какая связь?

Время на прочтение11 мин
Количество просмотров41K

image


Пару дней назад Дэвид Робинсон опубликовал на Stack Overflow статью с очень провокационным названием: Разработчики, использующие пробелы, зарабатывают больше использующих табуляцию (перевод на Хабре). Автор взял данные из исследования разработчиков, проведённого Stack Overflow, и в самом деле показал, что использование пробелов ассоциируется с более высокими зарплатами, даже принимая в расчёт одинаковый уровень опыта. Так что, нужно вместо табуляций использовать пробелы, чтобы увеличить свою зарплату?

Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии143

Результаты опроса Stack Overflow 2017: разработчики, которые используют пробелы, зарабатывают больше

Время на прочтение3 мин
Количество просмотров31K
Это с определенной точки зрения «священная война» среди разработчиков программного обеспечения, эта тема стала предметом множества дебатов и шуток. Я использую пробелы и никогда не задумывался о важности этого момента. Но сегодня мы публикуем исходные данные опроса разработчиков Stack Overflow 2017 и некоторые аналитики считают, что этот выбор имеет большее значение, чем я ожидал.

Пробелы приносят больше денег чем табы


Было опрошено 28 657 респондентов, которые выразили свое предпочтение табам или пробелам и считали себя профессиональным разработчиками (ученики и бывшие программисты не учитывались). В этой группе 40,7% используют табы и 41,8% пробелы (17,5% используют оба метода). Из них 12 426 оставили информацию о своей зарплате.

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


Читать дальше →
Всего голосов 67: ↑49 и ↓18+31
Комментарии152

Как поссорились разработка с эксплуатацией — и как помирились

Время на прочтение6 мин
Количество просмотров11K

image alt text


С чего начинается любой проект по ИТ-инфраструктуре? Если вы подумали о чем-то вроде: админы собрались, обсудили и кто-то предложил решение, — то с высокой вероятностью попали в точку. Именно так обстоят дела с эксплуатацией в российских компаниях, и у нас до недавнего времени тоже.


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

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии5

Каково это — быть разработчиком в России, когда тебе сорок

Время на прочтение37 мин
Количество просмотров161K
Привет всем, я — сорокалетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
Читать дальше →
Всего голосов 353: ↑338 и ↓15+323
Комментарии788

Не убивайте свою мотивацию: осваивайте Ruby on Rails на интересных примерах

Время на прочтение8 мин
Количество просмотров43K
Все же помнят, как это бывает: учишься ты чему-то новому, но вдруг раз и приуныл. А все почему? Потому что разработка типовых приложений при обучении скучна до зубовного скрежета.

Подобные задания становятся УБИЙЦАМИ мотивации №1.

Лично я не хочу, чтобы мои ученики теряли мотивацию и сдавались на полпути. Поэтому я создал этот километровый список из 27 забавных идей для приложений, которые вы можете создать, пока обучаетесь использовать React на пару с Ruby on Rails.


Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии25

Эффективный расчёт области видимости и линии взгляда в играх

Время на прочтение16 мин
Количество просмотров37K
image

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

image

Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
Читать дальше →
Всего голосов 130: ↑126 и ↓4+122
Комментарии27

Архитектура ассемблера Go

Время на прочтение17 мин
Количество просмотров27K
image Привет, Хабр! Меня зовут Марко Кевац, я системный программист Badoo в команде «Платформа», и я очень люблю Go. Если сложить эти две вещи, то вы поймёте, насколько я люблю ассемблер в Go.

Совсем недавно мы рассказывали на Хабре о том, на каких конференциях побывали. Одной из них была GopherCon 2016, где практически всем запомнился доклад Роба «Командира» Пайка про Go-шный ассемблер. Представляю вам перевод его доклада, оформленный в виде статьи. Я постарался дать в тексте как можно больше ссылок на релевантные статьи в «Википедии».
Читать дальше →
Всего голосов 82: ↑79 и ↓3+76
Комментарии35

Дорогой JavaScript,

Время на прочтение7 мин
Количество просмотров33K
Мне хочется рассказать тебе о проблеме в нашем сообществе.

Я участвовал во множестве открытых проектов, таких как Babel, Flow, Yarn, Lerna, и других. Как разработчик, мне посчастливилось стать частью самых лучших времён сообщества, равно как и худших.

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

Но боюсь, это не всё, с чем я сталкивался.
Открыть письмо
Всего голосов 83: ↑71 и ↓12+59
Комментарии78

WebRTC: Делаем peer to peer игру на javascript

Время на прочтение13 мин
Количество просмотров38K
Недавно мне довелось поработать над прототипом видеочата. Это был отличный повод поближе познакомиться с концепциями WebRTC и опробовать их на практике. Как правило, когда говорят про WebRTC, подразумевают организацию аудио- и видеосвязи, но эта технология может применяться и для других интересных вещей. Я решил попробовать сделать peer-to-peer игру и поделиться опытом ее создания. Видео того что получилось и подробности реализации под катом.


Читать дальше →
Всего голосов 94: ↑92 и ↓2+90
Комментарии52

Гедоммист и ближайшие соседи

Время на прочтение6 мин
Количество просмотров8.4K

Гедоммист (в Древнем Риме) — человек, получающий кайф от программирования.

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

Помню об этом, одолевая манящие сложностью алгоритмы.

И хочу рассказать об одной бесполезной задаче, которую я решал неделю в полном экстазе. Задача родилась благодаря 3aicheg, чей комментарий дал мне идею для игры под iOS (вижу Ваши глаза, Шо опять?). Смысл в том, чтобы сделать match game на нерегулярной сетке с гравитацией.

Кстати, если вы думаете, что рассказывая здесь о своем бесплатном приложении, можно получить мировую славу и купить яхту, то вот таблица
Рейтинг статьи Просмотров статьи Просмотров видео Загрузок
+30 20 000 5 000 18
-2 2 500 2 000 14

И потому я восхищаюсь бескорыстными авторами Хабра (особенно теми, кто владеет русским слогом). Теперь к делу! А дело такое…
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии12

Как открыть стартап в Берлине [инфографика]

Время на прочтение1 мин
Количество просмотров5.8K
Думаете об открытии стартапа в Берлине? Или может быть вам просто интересно изучить как устроено местное стартап-сообщество? Так или иначе я перевела для вас инфографику, которая поможет сориентироваться в этих вопросах.


Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии6

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Время на прочтение44 мин
Количество просмотров213K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Всего голосов 80: ↑76 и ↓4+72
Комментарии270

Парсинг JSON — это минное поле

Время на прочтение25 мин
Количество просмотров156K
image

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

Читать дальше →
Всего голосов 170: ↑164 и ↓6+158
Комментарии60

Теория категорий на JavaScript. Часть 1. Категория множеств

Время на прочтение35 мин
Количество просмотров35K


Абстракция – это одна из основных техник в ИТ. Любой язык программирования или моделирования, любая парадигма программирования (процедурная, функциональная, ООП, …) дают ответ на вопрос, как и от чего нужно абстрагироваться. Причём, адепты каждого подхода предлагают какой-то свой вариант абстракции.

Если вы хотите увидеть истинную, универсальную абстракцию, то вступайте в нашу… изучайте теорию категорий. В статье на примере категории множеств с картинками и JavaScript-кодом объясняются самые базовые понятия теории категорий: пределы, универсальное свойство. Рассматривается вычислительный аспект теории категорий.

Также немного говорится про классы, примеси и смеси в JavaScript.

Примеры из статьи можно посмотреть тут.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии47

Глупые трюки с ES6

Время на прочтение5 мин
Количество просмотров26K

Это перевод статейки о некоторых не совсем очевидных прикольных возможностях, которые предоставляет ES6 стандарт JavaScript'а. В статье время от времени проходит нечто наркоманское, так что вполне возможно я не смог перевести всё достаточно качественно. Если нашли косяки, напишите мне об этом — поправлю.


{в оригинале здесь была какая-то непонятная гифка с обезьяной, которую я как-то не очень понял, оттого и не буду её здесь ставить}


Вот вам несколько методов на основе ES6, которые на самом деле не совсем трюки — просто, используя некоторые вещи из нового синтаксиса, мы можем неплохо сократить код, улучшить его читаемость, или, возможно, просто весело провести время. Я (автор оригинала, не автор этой статьи на хабре — прим. пер.) планирую собирать больше в этой статье, поэтому, пожалуйста, не стесняйтесь добавлять её в закладки и проверять время от времени. Ну и если у вас тоже есть какие-то забавные трюки, которые я не упоминаю здесь, пожалуйста, напишите об этом!

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии71

Фиеричная система счисления, или почему 1 + 10 = 100

Время на прочтение9 мин
Количество просмотров62K
«10.01 х 10.01 = 1000.1001»
Джордж Оруэлл. «1010001001001000.1001001000100001»


image


Существует ли позиционная система счисления с иррациональным основанием, в которой все натуральные числа записываются конечным числом цифр? В которой число больше единицы, не имеющее цифр после запятой, наверняка не целое и даже не рациональное? В которой 1 + 10 = 100, а 1 + 1 = 10.01?
Я заинтригован и хочу узнать ответ
Всего голосов 92: ↑89 и ↓3+86
Комментарии54
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность