Как стать автором
Обновить
477
140.8
Дмитрий Брайт @Bright_Translate

Переводчик

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

Интернет на раскладушке, или Веб-сёрфинг с помощью оригинального Opera Mini

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.3K

Первая версия Opera Mini вышла в 2005 году. Это был веб-браузер для мобильных телефонов, позволявший целиком скачивать сайты, поручая всю основную работу внешнему серверу. Поначалу вокруг него возник хайп, но в свете всё большего распространения смартфонов, интерес к этому браузеру начал угасать.

Opera Mini до сих пор существует для iPhone и Android — только теперь это слегка скорректированная версия стандартного мобильного браузера Opera, а эти браузеры использовать не рекомендуется. Тем не менее изначальная его версия на базе Java ME по-прежнему функциональна, и её можно установить даже на современный ПК.
Читать дальше →

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

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.8K

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

Абсурдно усложнённая схема регистров в Intel 80386

Время на прочтение16 мин
Количество просмотров16K
Фото кристалла i386 с обозначенным блоком регистров (полномасштабная версия фото доступна в оригинале статьи)

Революционный Intel 80386 (1985 год) стал первым 32-битным процессором с архитектурой x86. Как и большинство процессоров, он содержит огромное число регистров, которые являются ключевой составляющей, обеспечивая сверхбыструю обработку данных в сравнении с основной памятью. К ним относятся регистры общего назначения, регистры индекса и селекторы сегментов, а также специальные регистры для управления памятью и разработки операционной системы. В этой статье я буду говорить о кремниевом кристалле i386 и объясню, как в нём организованы основные регистры.
Читать дальше →

Собираем умные часы: выбор микросхемы

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.9K
image

Полный видеоролик по этой статье есть на моём YouTube-канале.

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

Сервер, которому не суждено было жить

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

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

Это история о доверии, технологиях… и задачах, которые не всегда можно решить.

Где-то 16 лет назад со мной связался давний друг. Его беспокоила ситуация, связанная с одним общим знакомым.

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

Издержки микросервисов, которые ваш стартап может не потянуть

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров12K

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

Google Maps не знают, как работает адресация улиц

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров12K

Как-то я катался по Вернону в Британской Колумбии и попросил Google Maps построить маршрут до 3207 30th Ave, на что приложение с уверенностью сказало мне, куда ехать. Благо мой пассажир заметил, что по факту карта направила меня на 3207 34th Ave, то есть четырьмя кварталами севернее. Довольно странно.

Спустя несколько дней, мой кузен попросил меня (как бывшего сотрудника Google и самого головастого члена семьи) помочь ему разобраться с проблемой в Google Maps. Заключалась же проблема в том, что адрес 138 W 6th Ave в Ванкувере отображался в точку, находящуюся в 2,4 км (1,5 милях или 12 фарлонгах) от его фактического расположения.
Читать дальше →

Как одна строка кода могла окирпичить ваш iPhone

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров9.6K

Это история о том, как я недавно обнаружил в iOS уязвимость, которая стала одной из моих любимых. Почему любимых? Потому что реализовать для неё эксплойт оказалось очень легко. Кроме того, она использовала публичный легаси API, на который до сих пор опираются многие компоненты ОС Apple, и о котором многие разработчики даже не слышали.
Читать дальше →

История AMP, или Почему электронной почте не нужна интерактивность

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

«Система Email оставалась практически неизменной в то время, как окружающая веб-среда стремительно развивалась». — написал продакт-менеджер Google Аакаш Шейни в 2019 году.

Но в Google решили «Хватит», и разработали фреймворк для электронной почты под названием AMP (accelerated mobile pages), обещающий «сохранение актуальности информации в ваших письмах» и «удобную возможность совершать действия прямо из сообщений».
Читать дальше →

Evertop: ультра-экономичный ПК на солнечной батарее

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

Evertop — это портативный ПК, эмулирующий IBM XT с процессором 80186 и 1МБ RAM. На нём можно запускать DOS, Minix и некоторые другие ОС из 80-х. Можно запустить и Windows до версии 3.0. Благодаря мощному и при этом экономичному микроконтроллеру, E-Ink дисплею, батареям на 10 000 мАч и реализации исключительных мер энергосбережения, он может работать на одном заряде до сотен и даже тысяч часов. Прибавьте сюда встроенную солнечную батарею и вы сможете использовать его бесконечно в условиях отсутствия сети, не беспокоясь о подзарядке.
Внутри много фото

Ох уж эти скрытные ботнеты

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров9K

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

IP-адреса, с которых происходят попытки использовать мой сервер для отправки спама

IP-адреса, с которых совершаются попытки подобрать имя пользователя/пароль для авторизации на моём почтовом сервере и рассылки спама
Читать дальше →

Какие они — лучшие программисты?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров27K

За свою жизнь я повстречал немало разработчиков и недавно задался вопросом: «А что делает разработчика одним из лучших? Что у таких людей есть общего?»

В надежде, что эти мои рассуждения послужат для кого-то вдохновением, я описал черты, которые встречал у большинства исключительных людей в нашей сфере. Лично я бы хотел, чтобы у меня был такой список, когда я только начинал. Следуя этому пути, я бы сэкономил уйму времени.
Читать дальше →

Декодируем 90-ые: реверс-инжиниринг и криптография на заре разработки ПО

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

В августе 2020 года к нам обратился клиент с кэшем из заблокированных документов QText из середины 90-х, пароль для которых он утерял.

QText — это редактор из времён DOS, использовавшийся для обработки иврита и английского текста. Написан он на Pascal и был выпущен где-то за 15 лет до того, как мы с @Elisha занялись обратной разработкой.

В этой статье мы опишем весь процесс анализа тех зашифрованных документов и выполним реверс-инжиниринг программы DOS.

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

Почему в индустрии фотокамер такой беспорядок с форматами RAW, и что говорят производители?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров12K

Когда вы настраиваете новую камеру или даже делаете фото с некоторых смартфонов, перед вами возникает выбор: JPG или RAW?

Фото в JPG изначально готово к публикации практически везде, в то время как RAW — это сырой файл с дополнительными данными, дающими широкие возможности для пост-обработки. Такая опция сохранения в RAW (и даже само обобщённое название RAW) в индустрии вроде как стандартизирована, но несмотря на это, в мире фотосъёмки единый формат RAW так и не утвердился.
Читать дальше →

Я больше не доверяю Google Search, но каковы альтернативы?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров31K

Довольно актуальная тема, согласитесь? Ощущение, что разные приложения, которым ты когда-то доверял, просто перестали адекватно работать. Примером того может быть ваш Nest Hub Max, который способен ответить разве что на самые базовые запросы, хоть и использует передовую модель Gemini от Google. Или же различные социальные сети типа Instagram, Facebook и Twitter — которые раньше заполняли вашу ленту постами друзей и близких, а теперь впихивают в неё «рекомендации», рекламу и сгенерированный ИИ шлак.

Сложно сказать, стал ли причиной этого ощущения главный продукт Google. Обсуждения на тему ухудшения их поисковой системы звучат по всему интернету — даже сейчас вы тому свидетель — но насколько серьёзны все эти претензии? Достаточно ли их, чтобы вынудить человека перейти на другую платформу? Готов с уверенностью сказать, что да. Google Search стал настолько ужасен, настолько засорился неточной информацией и стал выдавать ошибочные результаты, что доверять ему в качестве основного механизма поиска я больше не могу.
Читать дальше →

Недопонятый язык Lua

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров37K

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

Так что меня немного расстраивает, когда я читаю о нём статьи и посты, в которых сквозит абсолютным непониманием сути и контекста применения этого языка. Чаще всего такие статьи выглядят как набор неких требований. Из последних могу вспомнить пост на LWN, где автор жаловался на «недокомплект» Lua, и обсуждение этого поста на Hacker News, которое побудило меня написать встречную статью, чтобы ответить на некоторые прозвучавшие в нём комментарии.
Читать дальше →

Чем хорош Emacs, или Полезные советы современным приложениям от 50-летнего редактора

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров8.7K

Когда я только начал использовать Emacs, то он мне показался довольно странным. У меня возникали вопросы вроде: «Почему окна в нём называются фреймами, а вкладки — окнами?» и «Что вообще значит C-x C-s

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

И в современных реалиях мне кажется странным, что другие приложения не похожи на него, ведь у этого 50-летнего текстового редактора можно многому поучиться.
Читать дальше →

Знакомство с форками Firefox

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров15K

В последнее время действия разработчиков Mozilla озадачивали многих сторонников Firefox, склоняя их к поиску альтернатив. На рынке есть много решений для тех, кому нужен браузер, который бы не являлся частью монокультуры Chrome, но при этом был полноценен и удобен для постоянного использования. Для тех же, кто желает остаться в «семье» Firefox, есть ряд хороших вариантов, идущих своим путём. К ним можно отнести GNU IceCat, Floorp, LibreWolf и Zen.
Читать дальше →

О скрытии сообщений в эмодзи и взломе казначейства США

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров15K

30 декабря 2024 года, пока большинство из нас суетились в преддверии празднования Нового года, Казначейство США готовило для Финансового комитета Сената США важное уведомление. В нём сообщалось, что его системы, которые, очевидно, содержат особо чувствительные конфиденциальные данные, были взломаны группой правительственных хакеров Китая.

Даже не знаю, как пропустил эту новость. Обычно я всё активно отслеживаю, особенно уязвимости опенсорсного ПО, которые касаются казначейства моей страны 🤷‍♂‍

И это ещё не самое безумное. Сейчас я расскажу вам, как именно они это сделали!
Читать дальше →

Дело всегда в TCP_NODELAY

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров15K

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

Но для начала давайте проясним, о чём вообще речь. Лучше всего нам в этом поможет документ RFC896, изданный Джоном Нейглом в 19841 году. Вот описание задачи:

Обработка малых пакетов сопряжена с одной специфичной проблемой. Когда для передачи односимвольных сообщений с клавиатуры используется TCP, обычно для отправки одного байта полезных данных задействуется пакет размером 41 байт (один байт данных и 40 байт заголовка). Такие издержки в 4 000%, конечно, раздражают, но в слабо нагруженных сетях ещё терпимы.

Если коротко, то Нейгл хотел сократить затраты на отправку TCP-заголовков, чтобы повысить пропускную способность сети — вплоть до 40х! Эти крохотные пакеты поступали из двух основных источников: интерактивных приложений вроде оболочек, где пользователь вводил по одному байту за раз, и плохо реализованных программ, которые передавали сообщения ядру через множество вызовов write(). Предложенное Нейглом исправление оказалось простым и продуманным.
Читать дальше →
1
23 ...

Информация

В рейтинге
27-й
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность