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

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

Send message

Браузер и числа с плавающей запятой

Reading time12 min
Views15K

Изображение — www.freepik.com

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

Часть 1: нереальные ожидания


Баг назывался «JSON некорректно парсит 64-битные Integer»; поначалу это непохоже на проблему с плавающей запятой или браузером, но его отправили на crbug.com, поэтому меня попросили взглянуть. Проще всего воссоздать его, открыв инструменты разработчика Chrome (F12 или Ctrl+Shift+I) и вставив в консоль разработчика следующий код:

json = JSON.parse(‘{“x”: 2940078943461317278}’); alert(json[‘x’]);

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

Кодинг без рук: что делать, если лишился своего основного рабочего инструмента

Reading time9 min
Views44K


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

Как можно понять, это достаточно серьёзная проблема: я разработчик ПО, и вся моя карьера зависит от возможности пользования клавиатурой!

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

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

Как был побит рекорд в решении задачи коммивояжёра

Reading time8 min
Views20K


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

Они посчитали, что даже если Нэтану не удастся её решить, то в процессе работы он многому научится. Он согласился на эту идею. «Я не знал, что мне нужно бояться», — говорит Кляйн. «Я был всего лишь начинающим аспирантом, поэтому не понимал сложность этой задачи».
Читать дальше →

# Стоит ли связываться с C#

Reading time4 min
Views50K


На рынке есть десятки популярных ЯПов, и сеть набита статьями для новичков: какой язык выбрать? Мы решили сделать подборку статей с субъективным обзором языков для профессионалов, которые ищут, в какую сторону можно расширить свой кругозор.

Первую статью цикла мы посвящаем языку C#.
Читать дальше →

Всё, что вы хотели знать о безопасном сбросе паролей. Часть 2

Reading time11 min
Views8.3K

Двухфакторая аутентификация


Всё прочитанное вами в первой части касалось идентификации на основании того, что знает запрашивающий. Он знает свой адрес электронной почты, знает, как получить к ней доступ (т.е. знает свой пароль от электронной почты) и знает ответы на секретные вопросы.

«Знание» считается одним фактором аутентификации; двумя другими распространёнными факторами являются то, что у вас есть, например, физическое устройство, и то, кем вы являетесь, например, отпечатки пальцев или сетчатка глаза.


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

Неисповедимы пути контента или про CDN замолвим слово

Reading time11 min
Views2.9K

Дисклеймер:
Данная статья не несет в себе сведений ранее неизвестных читателям, знакомым с понятием CDN, а носит характер обзора технологии

Первая веб-страница появилась в 1990 году и имела размер в считанные байты. С тех пор контент масштабируется как качественно, так и количественно. Развитие ИТ-экосистемы привело к тому, что современные веб-страницы измеряются мегабайтами и тенденция к увеличению пропускной способности сетей с каждым годом лишь укрепляется. Как контент-провайдерам охватить большие географические масштабы и обеспечить пользователям повсеместно высокую скорость доступа к информации? С этими задачами должны справляться сети доставки и дистрибуции контента, они же Content Delivery Network или просто CDN.

В интернете все больше «тяжелого» контента. При этом многочисленные исследования показывают, что пользователи не хотят иметь дело с веб-сервисами, если те грузятся дольше 4-5 секунд. Слишком низкая скорость загрузки сайта чревата потерей аудитории, что непременно приведет и к уменьшению трафика, конверсии, а значит и прибыли. Сети доставки контента (CDN), в теории, позволяют избавиться от этих проблем и их последствий. Но на деле все как обычно решают детали и нюансы конкретного случая, коих в этой сфере предостаточно.
Читать дальше →

Всё, что вы хотели знать о безопасном сбросе паролей. Часть 1

Reading time15 min
Views13K
Недавно у меня появилось время снова поразмыслить над тем, как должна работать функция безопасного сброса пароля, сначала когда я встраивал эту функциональность в ASafaWeb, а потом когда помогал сделать нечто подобное другому человеку. Во втором случае я хотел дать ему ссылку на канонический ресурс со всеми подробностями безопасной реализации функции сброса. Однако проблема в том, что такого ресурса не существует, по крайней мере, такого, в котором описывается всё, что мне кажется важным. Поэтому я решил написать его сам.

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


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

Самый маленький офисный пакет в мире

Reading time8 min
Views36K


Всем нам знаком традиционный офисный пакет — текстовый редактор, электронные таблицы, программа для создания презентаций, возможно, приложение для создания диаграмм или заметок. Всё это мы видим в Microsoft Office и в Google Docs. Все эти программы мощны и объёмны. Но каким будет минимальное количество кода, требуемое для создания офисного пакета?
Читать дальше →

Не лайтхаусом единым: как проверить свой сайт со всех сторон

Reading time3 min
Views19K


Когда мы говорим о веб-валидаторах и оптимизации сайта под них, мы чаще всего имеем ввиду Lighthouse/Pagespeed Insights от Google, который давно стал де-факто стандартом для оценки производительности сайта. Кто-то стремится к заветным 100 баллам даже на прототипах и шаблонных приложениях в две кнопки, кто-то в шутку создает абсолютно недоступный сайт с идеальным рейтингом, но для всех фронтендеров лайтхаус предоставляет вменяемую, хоть и довольно поверхностную, аналитику производительности сайта и поиск бутылочных горлышек. Однако скорость загрузки — лишь один из множества параметров, которые стоит проверять на своём сайте, и для большинства других есть свои валидаторы и скоринговые алгоритмы. Мы рассмотрим инструменты для каждого из значимых направлений и составим список, по которому стоит прогонять свой сайт, чтобы в дальнейшем не отлавливать проблемы вручную.
Читать дальше →

Как происходят атаки при помощи голосового фишинга

Reading time8 min
Views19K


Что такое вишинг?


Vishing (voice phishing, голосовой фишинг) — это вид атаки, при котором жертву пытаются убедить раскрыть ценную личную информацию по телефону. Хотя по описанию это похоже на старый добрый скам, вишинг-атаки имеют элементы хай-тека: например, в них применяется технология автоматизированной симуляции голоса, или для упрощения задачи скаммер может использовать персональную информацию о жертве, собранную во время предыдущих кибератак.
Читать дальше →

Эта база данных в огне…

Reading time9 min
Views9.9K


Позвольте мне рассказать техническую историю.

Много лет назад я разрабатывал приложение со встроенными в него функциями совместной работы. Это был удобный экспериментальный стек, в котором использовался полный потенциал раннего React и CouchDB. Он в реальном времени синхронизировал данные по JSON OT. Его использовали во внутренней работе компании, однако широкая применимость и потенциал в других сферах были очевидными.

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

okdb — библиотека для совместной работы

Reading time2 min
Views6.1K


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

Умрёт ли FTP? Расцвет и упадок протокола

Reading time9 min
Views21K


Вот небольшое известие, которое вы могли пропустить, восстанавливая свою жизнь после начала кризиса COVID: из-за того, что вирус перемешал всем карты, Google пропустила выпуск Chrome версии 82. «Да кого это волнует?», — спросите вы. Ну, хотя бы пользователей FTP, или File Transfer Protocol. Во время пандемии Google отложила свои планы по убийству FTP, и теперь, когда буря немного успокоилась, Google недавно объявила о том, что возвращается к мысли об убийстве в Chrome версии 86, которая снова сократит поддержку протокола, и окончательно убьёт его в Chrome 88. (Mozilla объявила о похожих планах на Firefox, утверждая, что дело в безопасности и возрасте поддерживающего протокол кода.) Это один из старейших протоколов, который поддерживает мейнстримный Интернет (в следующем году ему исполнится 50 лет), но эти популярные приложения хотят оставить его в прошлом. Сегодня мы поговорим об истории FTP, сетевого протокола, который продержался дольше, чем почти все остальные.
Читать дальше →

Запускаем командную строку Linux на iOS

Reading time7 min
Views57K


А вы знали, что можно запустить командную строку Linux на устройстве iOS? Возможно, вы спросите: «Зачем мне пользоваться текстовыми приложениями на iPhone?» Справедливый вопрос. Но если вы читаете Opensource.com, то, вероятно, знаете на него ответ: пользователи Linux хотят иметь возможность работать с ним на любом устройстве и хотят пользоваться собственными настройками.

Но больше всего они жаждут решения сложных задач.

У меня есть семилетний iPad 2 Mini, который по-прежнему неплохо подходит для чтения электронных книг и других задач. Однако я хочу использовать его и для доступа к командной строке приложений с моим набором программ и скриптов, без которых не могу работать. Мне нужно окружение, к которому я привык, а также моя стандартная среда разработки. И вот как мне удалось этого добиться.
Читать дальше →

Доля Firefox упала на 85%, однако доходы руководства Mozilla выросли на 400%

Reading time9 min
Views63K


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

Недавно Mozilla объявила о том, что увольняет 250 сотрудников. Это четверть её штата, а значит, увольнение значительно уменьшит и выполняемый объём работ. Среди жертв отдел документации MDN (это документация по веб-стандартам, которая всем нравится больше, чем w3schools), компилятор Rust и даже сокращения в отделе разработки Firefox. Как и большинство людей, я хотел бы, чтобы у Mozilla всё было хорошо, но эти три проекта являлись почти всем тем, в чём, по моему мнению, и есть смысл Mozilla, поэтому подобные новости стали большим разочарованием.
Читать дальше →

Blacklight — инспектор конфиденциальности веб-сайтов

Reading time15 min
Views5K


Blacklight — это инспектор конфиденциальности веб-сайтов, выполняющий проверку в реальном времени.

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

Принцип работы Blacklight заключается в посещении каждого веб-сайта headless-браузером (браузером без графического интерфейса), в котором запущено специализированное ПО, созданное The Markup. Это ПО отслеживает, какие скрипты на сайте потенциально могут наблюдать за пользователем, выполняя семь тестов, каждый из которых исследует отдельный известный способ наблюдения.
Читать дальше →

Запуск Linux-приложений на Chromebook

Reading time4 min
Views14K


Появление Chromebook стало важным моментом для американских систем образования, позволив им покупать недорогие ноутбуки для учеников, учителей и администраторов. Хотя Chromebook всегда работали под управлением операционной системы на основе Linux (Chrome OS), до недавнего времени большинство Linux-приложений на них запустить было невозможно. Однако всё изменилось, когда Google выпустила Crostini — виртуальную машину, позволяющую запускать на Chromebook ОС Linux (бета).

Большинство Chromebook, выпущенных после 2019 года, а также некоторые более старые модели, способны работать с Crostini и Linux (бета). Узнать, находится ли ваш Chromebook в списке поддерживаемых устройств, можно здесь. К счастью, мой Acer Chromebook 15 с 2 ГБ ОЗУ и процессором Intel Celeron поддерживается.


(Don Watkins, CC BY-SA 4.0)

Если вы планируете устанавливать много Linux-приложений, то рекомендую использовать Chromebook с 4 ГБ ОЗУ и бо́льшим объёмом свободного пространства на диске.
Читать дальше →

Стартап Glide для создания мобильных приложений из Google-таблиц

Reading time9 min
Views41K


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

Например, если говорить о сайтах, то можно вспомнить то время, когда цена простейшего лендинга начиналась от нескольких тысяч долларов. Сегодня же можно бесплатно скачать готовый шаблон практически для любого сайта. Либо же воспользоваться одним из популярных конструкторов. И да, «создать сайт за 5 минут» – это именно то, что нужно большинству заказчиков.

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

И сегодня мы решили рассказать о проекте, который имеет все шансы открыть новый виток развития в этой сфере. Стартап Glide привлек к себе внимание возможностью создавать приложения на базе Google-таблиц для любой мобильной ОС. При этом «разработчику» не нужно иметь знаний кода и опыта в программировании.
Читать дальше →

Пионеры отрасли энергонезависимой памяти

Reading time15 min
Views7.2K

Чип флэш-памяти NAND Intel/Micron

Устройства энергонезависимой памяти (Non-Volatile Memory, NVM) — это электронные элементы хранения данных, предназначенные для чтения и записи, продолжающие хранить информацию после прекращения подачи питания на устройство. В их число входят устройства на основе магнитных дисков и отдельные типы полупроводниковых чипов. Полупроводниковые энергонезависимые устройства играют важную роль во всех аспектах цифровой вселенной — от ячеек хранения информации огромных банков данных в облаке до портативных персональных устройств, и составляют один из крупнейших сегментов полупроводниковой промышленности, оцениваемой в 400 миллиардов долларов.
Читать дальше →

Какие возможности появились у утилиты rdiff-backup благодаря миграции на Python 3

Reading time3 min
Views8.6K
В процессе миграции на Python 3 разработчики утилиты rdiff-backup усовершенствовали её, добавив много новых фич.



В марте 2020 года вышел второй крупный релиз утилиты rdiff-backup. Второй — за 11 лет. Во многом, это объясняется прекращением поддержки Python 2. Разработчики решили совместить приятное с полезным и доработали функционал утилиты.

Около 20 лет она верой и правдой служит Linux-сообществу — помогает делать бэкапы на локальных и удалённых машинах, скажем так… без лишней головной боли. Секрет прост: утилита позволяет делать бэкап только тех файлов, которые изменились с прошлого резервного копирования. Для более краткого обозначения этого процесса существует термин «инкрементальное резервное копирование».

Второе рождение rdiff-backup пережила благодаря команде энтузиастов, которую возглавили Эрик Зольф и Патрик Дюфресне из IKUS Software, а также Отто Кекяляйнен из Seravo.
Читать дальше →

Information

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