All streams
Search
Write a publication
Pull to refresh
144
0
Mikhail @host_m

Хостинг серверов

Send message

Гениальность микропроцессоров RISC-V

Reading time11 min
Views60K
image

Войны между RISC и CISC, проходившие в конце 1990-х, уже давно отгремели, и сегодня считается, что разница между RISC и CISC совершенно не имеет значения. Многие заявляют, что наборы команд несущественны.

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

Недавно я подробнее изучил информацию об архитектуре набора команд (instruction-set architecture, ISA) RISC-V и вот некоторые из аспектов, которые по-настоящему впечатлили меня в ISA RISC-V:

  1. Это небольшой и простой в изучении набор команд RISC. Очень предпочтителен для тех, кому интересно получать знания о микропроцессорах.
  2. Благодаря своей простоте, открытости и связи с университетскими профессорами он с большой вероятностью будет доминировать как архитектура, выбираемая для обучения процессорам в вузах.
  3. Его продуманная структура позволяет разработчикам CPU создавать высокопроизводительные микропроцессоры на основе ISA RISC-V.
  4. Благодаря отсутсвию лицензионных отчислений и нацеленности на простую аппаратную реализацию увлечённый любитель может, в принципе, создать за приемлемое время собственную конструкцию процессора RISC-V.
Читать дальше →

Почему CPU, GPU, чипы для консолей и другие компоненты становятся дефицитом

Reading time8 min
Views33K
На самом деле 2020 год был первоклассным временем для технологических инноваций, но тем не менее, в историю, скорее всего, он также войдёт как год крайнего раздражения разочарованных покупателей из-за того, что целевая аудитория долгое время не могла купить желанные ей товары: графические карты, процессоры, источники питания и, наконец, готовые решения — современные консоли PlayStation 5 и Xbox Series X. Почему вообще возник такой дефицит? Все связанные с данными проблемами крупные бренды (Sony, Microsoft, NVIDIA, AMD) говорят, что «спрос превысил предложение». Да неужели?


Это довольно уклончивое объяснение, никак не связанное с истинным состоянием предложения и производственных линий брендов. Каждая компания, вне зависимости от размера, имеет в штате опытных специалистов, выполняющих долговременное планирование производства и снабжения; они создают так называемый прогноз, который является просто сложным предсказанием, учитывающим все факторы. Разумеется, компания вполне может что-то упустить, и примером тому была AMD с её Vega: оказалось, что специалисты забыли заранее запланировать выделение достаточного количества ресурсов на упаковку. Но очень маловероятно, что одинаково ошибиться могли одновременно все.
Читать дальше →

Разработана опенсорсная утилита Depix для восстановления паролей с размытых скриншотов

Reading time6 min
Views19K
Разработана опенсорсная утилита Depix для восстановления паролей с размытых скриншотов


Результат работы программы Depix (исходный код)

В голливудских фильмах любят преувеличивать. Они зуммируют фотографии в миллион раз — и выводят цифры из одного пикселя.

Хотя это невероятно, но научные исследования в этой области идут давно. Ещё в 90-е годы были опубликованы теоретические работы и PoC с восстановлением текста из размытых изображений. В 2012 году Владимир Южиков писал на Хабре о своей программе SmartDeblur для восстановления смазанных и расфокусированных снимков.

Несмотря на достаточно хорошее развитие науки в данном направлении, до сих пор не было специализированного инструмента конкретно для восстановления паролей (текста) после пикселизации. Программа Depix — первый такой инструмент.
Читать дальше →

Самодельная портативная консоль microByte

Reading time6 min
Views14K

В реальности качество изображения лучше, но это сложно передать на фотографии.

Введение


В феврале этого года ко мне прибыл дисплейный модуль ST7789; качество картинки и цветов, несмотря на маленький размер, было впечатляющим, поэтому в голову пришла одна идея…

Может, разработать брелок, на котором можно будет играть в Pokemon?

В этот момент зародилась примитивная идея microByte. Спустя более семи месяцев идея брелока эволюционировала в полнофункциональную портативную консоль, способную эмулировать:

  • NES
  • GameBoy
  • GameBoy Color
  • Sega Master System
  • GameGear

И всё это в крошечном размере картриджа первого GameBoy. Самое важное, что тексты в игре читаемы, нужна только лупа. Размеры устройства: 78x17x40 мм

SuperRT — чип для рейтрейсинга на Super Nintendo

Reading time5 min
Views4.5K
image

В продолжение темы, представляем вашему вниманию перевод оригинала статьи от Бена Картера.

Ссылки на видео по этой статье:


У меня наконец-то появились результаты работы над проектом, которым я занимался в свободное время примерно около года.

Его идея возникла, когда я пытался придумать интересный проект для изучения Verilog и проектирования FPGA. Мне пришла в голову мысль о создании простого трассировщика лучей (частично я вдохновлялся успехами моего до ужаса умного друга, создавшего собственный GPU). Немного позже (наверно, потому, что мой мозг ненавидит меня и наслаждается придумыванием глупых заданий) всё это превратилось в вопрос: «а не будет ли интересно заставить SNES выполнять рейтрейсинг?». Так родилась идея чипа SuperRT.

Я хотел попробовать создать нечто, напоминающее чип Super FX, используемый в таких играх, как Star Fox. SNES в них выполняет игровую логику и передаёт описание сцены чипу в картридже, который занимается генерированием графики. Я намеренно ограничил себя использованием в конструкции единого самодельного чипа, а не ядра ARM на плате DE10 или любых других внешних вычислительных ресурсов.

До свидания, Google Fonts. Последний аргумент

Reading time6 min
Views87K


Шрифты Google Fonts страшно популярны. Их загружают более 42,8 миллиона сайтов, в том числе Хабр. Библиотека Google Fonts содержит 1023 свободных шрифта и программные интерфейсы для их внедрения через CSS. Очень удобно, казалось бы.

Во многих статьях отмечалось, в какую цену обходятся многочисленные запросы через API. Совет самостоятельно хостить шрифты дают много лет. Даже сама Google давала такой совет на конференции Google I/O 2018 года в выступлении на тему веб-производительности.

Так почему же многие до сих пор загружают шрифты через Google Fonts API? Ну, был последний аргумент — кэширование. Мол, благодаря общему CDN пользователю не нужно скачивать шрифт заново с каждого сайта. Однако в октябре 2020 года этот аргумент перестал работать. Теперь шрифты Google Fonts больше не кэшируются!
Читать дальше →

«Чертовски глупое решение»: история появления языка C

Reading time12 min
Views33K

Как ни сложно в это поверить, C не родился в виде истрёпанного руководства в бумажной обложке.

В том или ином виде, язык C повлиял на формирование практически каждого языка программирования, разработанного с 1980-х. Некоторые языки наподобие C++, C# и Objective C должны были стать прямыми наследниками C, а другие просто переняли и адаптировали его синтаксис. Программист, перешедший с Java, PHP, Ruby, Python или Perl, почти не испытает сложностей с пониманием простых программ на C, и в этом смысле C можно воспринимать как lingua franca программистов.

Однако C не возник из ниоткуда как единый монолит программирования. История C начинается в Англии, с коллеги Алана Тьюринга и программы, игравшей в шашки.

Как я создал собственный алгоритм YouTube (чтобы не тратить время впустую)

Reading time8 min
Views24K


Побег от алгоритма YouTube


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

Всё это неудивительно: алгоритм отдаёт приоритет кликам и времени просмотра.

Поэтому я поставил перед собой задачу: Смогу ли я написать код, который автоматически будет находить ценные видео, избавив меня от привязанности к алгоритму YouTube?

Вот так всё и началось.

Оптимально выстроенные планы


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

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

Notion API выйдет весной, но пользоваться им можно уже сейчас

Reading time3 min
Views11K


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

Нужна ли нам замена языка C?

Reading time5 min
Views25K
Язык программирования C даже сегодня находится в списке наиболее популярных используемых языков, несмотря на то, что он был выпущен аж в 1972 году и по современным стандартам имеет довольно много ограничений и изъянов.


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

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

Мы нашли опасную уязвимость в Microsoft Teams, но компания устранила её только спустя два месяца

Reading time14 min
Views7.5K

TL;DR:

  • 31 августа 2020 года мы сообщили о критически опасных багах исполнения удалённого кода в Microsoft Teams.
  • 30 сентября 2020 года Microsoft присвоила им рейтинг «Important, Spoofing» («Важно, спуфинг») — один из наиболее низких.
  • В нашей команде мгновенно родилась новая шутка.
  • Microsoft отказалась подробно обсуждать воздействие этих багов, окончательное решение принято 19 ноября 2020 года
  • «Что касается CVE, в настоящее время политика Microsoft заключается в том, чтобы не публиковать CVE продуктов, автоматически обновляемых без действий пользователя», — 30 ноября 2020 года
  • Баги устранены к концу октября 2020 года

Рейтинг Microsoft Security Response Center — «Important, Spoofing»


Microsoft приняла эту цепочку багов в баунти-программу облачных багов O365 как «Important» (уровень серьёзности), «Spoofing» (воздействие). Это один из самых низких рейтингов.

По крайней мере, теперь в нашем коллективе появилась новая шутка — когда мы находим баг исполнения удалённого кода (remote code execution, RCE), мы называем его «Important, Spoofing». Спасибо, Microsoft!

Если быть полностью честными, то для десктопного приложения был присвоен отдельный рейтинг «Critical, Remote Code Execution», но только за «очки Microsoft»! Очки Microsoft позволяют вам попасть в таблицу лидеров MSRC.

В этой статье мы расскажем об одном из пяти переданных в MSRC цепочек багов исполнения удалённого кода Microsoft Teams, требующих одного нажатия или не требующих нажатий вообще («Important, Spoofing»).
Читать дальше →

Телефон шпионил за мной, поэтому я нашёл тех, кто использует данные слежения

Reading time12 min
Views121K

СЛЕЖКА: Американская компания имеет информацию о моём местоположении.

В моём телефоне 160 приложений. Я не знаю, что они делают, но решил это выяснить.

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

Я знаю, что есть те, кто покупает и продаёт эту информацию. Как они отслеживают нас, и что хотят делать с нашими данными?

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

Или почти повсюду. Я оставил его дома, когда проходил тест на COVID-19 в апреле.
Читать дальше →

Датчики давления в шинах автомобиля: пробуем провести DoS-атаку

Reading time7 min
Views20K


Датчики TPMS (Tire-pressure monitoring system, системы мониторинга давления в шинах) активно изучались множество лет назад. Они периодически передают давление в шинах, температуру и уникальный ID, которым можно злоупотреблять для слежения за транспортным средством. Однако существует и ещё один аспект: современные датчики TMPS также имеют приёмник, который обычно используется для включения передачи данных, когда в автомобиле появляется новый датчик TPMS («процедура обучения»).

У нас в Европе датчики TPMS обычно передают сигналы в диапазоне 433 МГц (предназначенном для ISM — промышленности, науки и медицины). Приёмник работает на частоте 125 кГц, очень близкой к LF RFID. Проще всего использовать приёмник, поискав наличие несущей частоты 125 кГц, а затем включив передачу данных. Современные датчики обычно более совершенны и используют модулированную несущую, содержащую пакеты команд; передача данных включается, только если получена правильная команда.

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

Пользуемся офлайн-браузингом, как будто сейчас 1995 год

Reading time5 min
Views9.6K

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

В июне 2015 года разработчик из команды Google Chrome Алекс Рассел опубликовал пост. В этом посте он рассказал о неудачной истории разработки «близких к вебу» (web-adjacent) приложений. Он говорил об инструментах, использовавшиеся для создания приложений при помощи веб-технологий, но при этом не являвшихся нативными приложениями веба. Рассел предложил альтернативу. Он обратил внимание на разработки, проводившиеся в технологиях браузеров за последние несколько лет, в которых он сам непосредственно участвовал.

Рассел утверждал, что платформа веба совершила большой прогресс. Она дошла до той точки, в которой приложения, похожие на те, что вы можете установить из App store или в своём компьютере, могут создаваться напрямую в браузере. При помощи различных функций веба мы можем создать приложение на основе веба. Алекс и фронтенд-разработчик Фрэнсис Берриман придумали этому принципу название: Progressive Web Applications, или PWA.
Читать дальше →

Некоторые математические задачи нерешаемы, и это не так уж плохо

Reading time7 min
Views16K

Постройте выпуклый восьмиугольник с четырьмя прямыми углами.

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

Потом у них возникают подозрения и они начинают задавать вопросы. «Вы сказали о прямых углах. Может, на самом деле вы имели в виду три угла?», «Вы точно имели в виду выпуклый многоугольник?», «Четыре прямых угла, по сути, образуют прямоугольник. Как мы можем получить ещё четыре стороны в восьмиугольнике?» Я внимательно слушаю, киваю, подтверждая их догадки.
Читать дальше →

Проверим тысячи пакетов PyPI на вредоносность

Reading time8 min
Views7K
Примерно год назад Python Software Foundation открыл Request for Information (RFI), чтобы обсудить, как можно обнаруживать загружаемые на PyPI вредоносные пакеты. Очевидно, что это реальная проблема, влияющая почти на любой менеджер пакетов: случаются захваты имён заброшенных разработчиками пакетов, эксплуатация опечаток в названиях популярных библиотек или похищение пакетов при помощи упаковки учётных данных.

Реальность такова, что менеджеры пакетов наподобие PyPI являются критически важной инфраструктурой, которой пользуется почти любая компания. Я мог бы многое написать по этой теме, но сейчас достаточно будет этого выпуска xkcd.



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

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

Я хотел глубже исследовать этот вопрос, поэтому в посте расскажу о том, как установил и проанализировал каждый пакет PyPI в поисках вредоносной активности.

Современные накопители очень быстры, но плохие API это не учитывают

Reading time11 min
Views14K


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

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

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

Вот самые распространённые примеры таких заблуждений:

  • «Вполне нормально скопировать память здесь и выполнить эти затратные вычисления, потому что это сэкономит нам одну операцию ввода-вывода, которая была бы ещё более затратной».
  • «Я проектирую систему, которая должна быть быстрой. Поэтому она должна находиться в памяти».
  • «Если мы разобьём эти данные на несколько файлов, то выполнение будет медленным, поскольку возникнут паттерны произвольного ввода-вывода. Нам нужно оптимизировать выполнение под последовательный доступ и осуществлять считывание из одного файла».
  • «Прямой ввод-вывод очень медленный. Он подходит только для очень специализированных областей применения. Если у тебя нет собственного кэша, ты обречён».

Однако если изучить спецификации современных NVMe-устройств, то мы увидим, что даже в потребительском классе это устройства с задержками, измеряемыми в единицах микросекунд, и пропускной способностью в несколько ГБ/с, поддерживающие несколько сотен тысяч произвольных IOPS. Так в чём же нестыковка?
Читать дальше →

Социальный мониторинг здорового человека: бесплатные инструменты для отслеживания упоминаний

Reading time4 min
Views9.5K


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

Как Джон Макафи разработал одну из первых социальных сетей

Reading time9 min
Views6.6K


Стоит отметить, что мы живём в очень интересное время, ведь даже заграничный арест за уклонение от налогов Джона Макафи, одного из самых спорных людей в мире технологий… остался почти незамеченным.

Но именно это произошло в прошлом месяце. В результате Макафи сел в испанскую тюрьму и теперь дожидается экстрадиции.

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

В чём заключались инновации? В приложении для чата PowWow, которое, несмотря на всё влияние Макафи, сильно опередило своё время. Мы расскажем о том, почему вы, скорее всего, ничего о нём не помните.
Читать дальше →

Разработка должна ориентироваться на продакшен, всё остальное — чушь

Reading time9 min
Views15K


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

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

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

Information

Rating
Does not participate
Location
Meppel, Drenthe, Нидерланды
Registered
Activity