Pull to refresh
0
Василь Бєляєв @VXPread⁠-⁠only

C#, C++, Lua

Send message

Distr. Обзор полезных программ, опоздавший на 16 лет

Reading time8 min
Views69K
Информационные технологии — это индустрия Иванов, не помнящих родства. Примерно раз в пять лет набор железа и программ меняется кардинально, а бывшие фавориты отправляются на свалку истории. Сейчас, в эпоху облачных систем, софт, сервисы и данные просто проваливаются в никуда. Если не верите, попробуйте запустить старый смартфон с восьмилетней Android 2.3 и установить хоть что-нибудь полезное из магазина приложений. Разработчики широким жестом отключают миллионы не способных толком функционировать без сети устройств, пользователи теряют пароли от облачных кубышек, бизнесмены готовятся сделать новую ставку то ли на дип лернинг, то ли на блокчейн, и не помнят, что говорили лишь вчера.

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

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

Древности: Ericsson T39 и ранний мобильный интернет

Reading time11 min
Views21K
Мобильный телефон Ericsson T39 появился в продаже в 2001 году, и это было то еще время. Тогда, если вам повезло, это мог быть ваш первый мобильный телефон. Мне повезло меньше, у меня был T20 — тоже с модным на тот момент флипом, в меру компактный, с единственным встроенным развлечением в виде игры Erix (была еще одна, но та была скучная). Как обычно компенсируя недостаток годных железок, лет пять назад я выписал из Италии бэу Ericsson T39m в полном комплекте. Сегодня расскажу про него.

Мобильный телефон в начале двухтысячных (а если вы совсем мажор, то и в конце 90-х) — это была новая эпоха в стране, где было еще много артефактов эпохи старой, в которой даже стационарный телефон был доступен не всем. 17 лет спустя мобильные устройства изменились кардинально. У смартфона на Android и этого старого Эриксона вроде бы меньше общего, чем у современных ноутбуков и старых. Но на самом деле все обстоит ровно наоборот. Ericsson T39 — один из первых телефонов со встроенным интернетом. И совместимость у этой модели с современными сетями и софтом куда лучше, чем у старых компьютеров.
Читать дальше →

Google Public DNS тихо включили поддержку DNS over TLS

Reading time4 min
Views101K


Внезапно, без предварительного анонса, на 8.8.8.8 заработал DNS over TLS. Ранее Google анонсировал только поддержку DNS over HTTPS.

Публичный резолвер от компании CloudFlare с IP-адресом 1.1.1.1 поддерживает DNS over TLS с момента запуска проекта.

Зачем это нужно


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

C DNS over TLS/HTTPS запросы посылаются внутри зашифрованного тоннеля так, что провайдер не может подменить или просмотреть запрос.

А с приходом шифрования имени домена в сертификатах X.509 (ESNI) станут невозможны блокировки через DPI по SNI (Server Name Indication, специальное поле, в котором передается имя домена в первом TLS-пакете), которые сейчас применяются у некоторых крупных провайдеров.

Как это работает


На порт TCP:853 выполняется TLS-подключение, при этом проверка сертификата резолвера происходит с использованием системных корневых сертификатов, точно так же, как HTTPS в браузере. Это избавляет от необходимости добавлять какие-либо ключи вручную. Внутри тоннеля выполняется обычный DNS-запрос. Это создает меньше накладных расходов по сравнению с DNS over HTTPS, который добавляет HTTP-заголовки к запросу и ответу.

К сожалению, на текущий момент только в Android 9 (Pie) поддержка DNS over TLS встроена в системный резолвер. Инструкция по настройке для Android 9.

Для остальных систем предлагается использовать сторонний демон, а системный резолвер направлять на localhost (127.0.0.1).

Настройка на macOS


Разберем настройку DNS over TLS на последней версии macOS, на примере резолвера knot
Читать дальше →

Светодиодные лампы Diall из магазина Castorama

Reading time4 min
Views33K
Светодиодные лампы собственных брендов сетей магазинов часто оказываются лучшими по соотношению цена-качество. В сети строительных магазинов Castorama продаются очень дешёвые лампы собственного бренда Diall, имеющие гарантию 5 лет.
Я купил и протестировал 46 моделей этих ламп.

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

Вычисляем по IP: как бороться со спамом в социальной сети

Reading time19 min
Views41K
Спам в социальных сетях и мессенджерах — это боль. Боль и для честных пользователей, и для разработчиков. Как с ней борются в Badoo, рассказал Михаил Овчинников на Highload++, далее текстовая версия этого доклада.


О спикере: Михаил Овчинников работает в Badoo и последние пять лет занимается антиспамом.

В Badoo зарегистрировано 390 миллионов пользователей (данные на октябрь 2017). Если сравнивать размер аудитории сервиса с населением России, то можно сказать, что в нашей стране по статистике каждых 100 млн человек охраняет 500 тысяч полицейских, а в Badoo каждые 100 млн пользователей защищает от спама всего один сотрудник Антиспама. Но даже такое небольшое количество программистов способно защитить пользователей от разных неприятностей в интернете.

Samsung анонсировала дисплей нового поколения

Reading time3 min
Views32K


Samsung пригласила двадцать своих самых крупных корпоративных клиентов в отель «Марриотт» в Шеньчжене на эксклюзивную презентацию своих новых технологий. Тем не менее, китайские инсайдеры не дремлют, произошли утечки, и мы теперь можем посмотреть на то, чем нас собираются радовать ближайшие 2-3 года.


Самой интересной новинкой стал радикальный дизайн нового Galaxy S10. В его дисплее фронтальные камеры и датчики будут скрыты под экраном, оставляя снаружи только одно маленькое отверстие (и даже его нельзя будет различить, если смартфон отключен). Это позволит достичь того, чтобы экран занимал до 99,5% фронтальной панели, и избавиться от «прекрасной» брови, которую с подачи iPhone X теперь встраивают в свои смартфоны почти все производители.

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

Кризис ожирения сайтов

Reading time30 min
Views123K
Примечание переводчика: визит под кат этого поста означает большие объёмы потреблённого трафика. И это иронично, если учесть поднятую тему. Но всё сразу встаёт на свои места, если помнить, что в оригинале это было выступление в прошлом ноябре в Сиднее длиной почти в час. Чтение поста занимает куда меньше времени. В форме видеозаписи (1280×720) речь занимает два гигабайта. Пост же занимает всего лишь 12 МиБ. Рекомендуется просмотр на широких мониторах.



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

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

Electron это Flash для десктопа

Reading time5 min
Views60K
Почему в настольном приложении Slack, скорее всего, есть драйвер для работы игрового контроллера Xbox и чего, действительно, плохого в использовании Electron для построения настольных приложений.

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

Программист на больничном

Reading time10 min
Views268K
— Куды? – грозно спросила бабка, встав спиной к двери.

— Куды надо. – передразнил неопрятный парень, с красными глазами, взъерошенными волосами и в черной футболке с надписью «Король и Шут».

— Ну-ка, не пущай его! – встала со скамейки другая бабка. – Ишь, вумные, без очереди лезут! Мы тут с шости утра стоим!

— Не стоите, а сидите. – ответил парень. – Дайте пройти, я по делу.

— Знаем мы, по какому ты делу! – вступила симпатичная девушка лет тридцати. – Только спросить?

— Да что с вами такое, а? – возмутился парень. – Работаю я здесь! Я – программист!
Читать дальше →

Cogear.JS – современный генератор статических сайтов

Reading time3 min
Views23K

Привет, Хабр!


Хочу представить вниманию хабровчан генератор статических сайтов с открытым исходным кодом, написанный на Node.JS, в основе которого лежит Webpack.


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


image

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

Почему Windows 95 подвисала при форматировании дискеты?

Reading time4 min
Views102K
Рэймонд Чен отвечает на известную шутку:
— Папа, покажи, какая винда многозадачная!
— Сейчас, сынок, только дискету доформатирую...

Кто же целыми днями форматирует дискеты? Оказывается, многие гики только этим и заняты. (Вообще-то, можно покупать дискеты уже отформатированными, только тссс!) Но почему Windows 95 подвисала при форматировании дискеты?

Всё дело в совместимости с MS-DOS.

Как мы видели немного раньше, MS-DOS в Windows 95 выступала как слой для старых 16-битных драйверов. Несмотря на то, что в итоге операции ввода-вывода обрабатывались 32-битной файловой подсистемой, все они проходили через 16-битный код, чтобы 16-битные драйверы, TSR и подобные обработчики видели «нормальные 16-битные операции» и работали в привычном им окружении.

В 16-битном мире форматированием занималось программное прерывание 13h, и многие программы использовали этот факт, перехватывая прерывание так, чтобы получать управление при форматировании дискеты. Так делали некоторые TSR, программы для бэкапов (программы для бэкапов, разработанные для Windows 3.0, включали в себя 32-битные драйверы под Windows 3.x, называемые VxD, для отслеживания операций с дискетами). Но это объясняет не всё. В конце концов, Windows 95 прогоняла весь дисковый ввод-вывод, а не только форматирование дискет, через 16-битный код. Почему же форматирование дискет так существенно влияло на систему?

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

Какую роль играла MS-DOS в составе Windows 95?

Reading time5 min
Views59K
MS-DOS в составе Windows 95 использовалась для двух целей:
  • Она служила загрузчиком.
  • Она выступала в качестве слоя совместимости с 16-битными драйверами.
Когда Windows 95 стартовала, сначала загружалась специальная версия MS-DOS, именно она обрабатывала ваш файл CONFIG.SYS, запускала COMMAND.COM, который выполнял ваш AUTOEXEC.BAT и в конце концов выполнял WIN.COM, который в свою очередь начинал процесс загрузки 32-битного менеджера виртуальных машин VMM.

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

Программа WIN.COM начинала загрузку того, что большинство людей называют собственно «Windows». Посредством копии MS-DOS она загружала менеджер виртуальных машин, считывала файл SYSTEM.INI, загружала драйверы виртуальных устройств, затем выключала EMM386 (если таковой был) и переключалась в защищённый режим. «Настоящая Windows» с точки зрения большинства людей — именно защищённый режим.

В защищённом режиме драйверы виртуальных устройств творили свою магию. В числе их действий было вытаскивание всего состояния MS-DOS, перевод его в состояние 32-битной файловой подсистемы и отключение MS-DOS. Все дальнейшие файловые операции направлялись в 32-битную файловую подсистему. Когда программа обращалась к int 21h, ответственной за обработку оказывалась 32-битная файловая подсистема.

Здесь вступает в игру вторая роль MS-DOS. Видите ли, программы и драйверы MS-DOS любили встраиваться в глубины операционной системы. Они могли заменять обработчик прерывания 21h, они могли патчить код системы, они могли заменять низкоуровневые дисковые обработчики int 25h и int 26h. Они могли также творить умопомрачительные вещи с прерываниями BIOS типа int 13h, ответственного за работу с дисками.

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

Code of Conduct: почему разработчики ядра Linux угрожали удалить свой код — разбираемся в конфликте

Reading time4 min
Views62K
В сентябре совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC). По задумке авторов, он должен был решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков.

Некоторые программисты назвали это попыткой излишнего регулирования и начали угрожать удалить написанный ими код из ядра Linux. Подробнее о ситуации — далее.

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

1155 vs 2011. В бой идут одни старики

Reading time13 min
Views60K
В 2017 году AMD в очередной раз приоткрыла ящик Пандоры, выпустив на рынок mainstream процессоры с количеством ядер больше четырёх, при этом с производительностью на ядро хотя бы сравнимой с современными процессорами Intel при равных частотах. Полного паритета не вышло, но полутора-двукратного разрыва в зависимости от типа нагрузки, как во времена FX-ов, уже нет. В синтетике производительность ядер Ryzen примерна равна производительности ядер Ivy Bridge (3xxx). Ход оказался довольно таки сильным, так что синей команде пришлось спешно выпускать шестиядерники на обновлённом 1151. К чему это я? А собственно к тому, что с прошлого года шести и более ядерные процессоры с быстрыми ядрами перебрались в потребительский сегмент из узкой HEDT ниши. Кроме всего прочего это значит, что массовое ПО наконец всё же начали оптимизировать под многоядерные многопоточные CPU.

Что такое современный массовый 6-8-ядерный процессор? Это частота 3.5-4.5GHz, относительно быстрая межъядерная шина той или иной архитектуры, двухканальная память DDR4 с частотой 2.4+ GHz. При этом ядра того же Ryzen рекордов производительности на такт не бьют. А что если… вместо современной и достаточно дорогой платформы взять старую 2011 платформу Intel, благо сейчас предложение списанных серверных процессоров линеек E5 v1 и v2 под этот сокет явно превышает спрос? Тем более предприимчивые китайцы, увидев такую ситуацию, оперативно освоили массовый выпуск материнских плат под эту платформу, а остальные комплектующие, процессор с памятью, стоят на вторичном рынке сравнительно недорого да и старению особо не подвержены. Пропускная способность регистровой DDR3 памяти пониже будет на один канал, чем у DDR4, но зато и каналов памяти на этой платформе четыре.

Платформы Ryzen у меня под рукой нет, поэтому будем сравнивать имеющиеся конфиги, все относящиеся к поколения Ivy Bridge. В общем-то сравниваются малосравнимые в своё время (по крайней мере по цене) платформы, но время всех уравнивает.

Простая работа со Steamworks

Reading time9 min
Views46K


Unity, C#, Steamworks.NET и Facepunch.Steamworks


Введение


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

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

Сложно заполнить этот пробел в знаниях, потому что, несмотря на подробную документацию возможностей Steam, трудно понять, с чего начать в этом огромном хранилище документов и как связаны между собой его отдельные части. Кроме того, основные обсуждения платформы Steam проходят в закрытом форуме, доступном только для подтверждённых платформой через Steam Direct или реферальную ссылку Valve разработчиков. То есть для начинающих поиск ответов на простые вопросы может оказаться сложной задачей.

Поэтому я решил написать высокоуровневый обзор для людей, которые только начинают разбираться в том, как заставить Steam работать с их играми. В частности, я подробно рассмотрю Steamworks SDK, программную библиотеку Valve, предоставляющую доступ к таким аспектам, как мастерская (Workshop), таблицы лидеров (Leaderboards), достижения (Achievements) и так далее.

Steamworks хорошо задокументирована компанией Valve, но документация написана с точки зрения человека, использующего нативную библиотеку C++ и уже имеющего представление о том, как все эти функции пересекаются. Если это не ваш случай, то так даже лучше! Ниже представлено объяснение для другого человека, который пишет игру на языке более высокого уровня и просто хочет обеспечить простую интеграцию со Steamworks (а это возможно, я гарантирую!). Конкретнее, этот пост предназначен для людей, использующих в той или иной форме C#, а в идеале — работающих в игровом движке Unity.
Читать дальше →

«Керосинка» против «Патриотов»: как американские военные программисты научились правильно округлять

Reading time3 min
Views40K
11 февраля 1991 года Patriot Project Office получил израильские данные о дефекте в ракетной системе Patriot. Они нашли, что если система работает 8 часов, она начинает мазать на 20%. Они прикинули, что после 20 часов работы система начинает промахиваться настолько, что перестанет быть способной захватывать, отслеживать и поражать баллистические ракеты. Американские военные не приняли во внимание всю важность открытия, заявив, что система предназначена для портативных и краткосрочных защитных операций и что никто никогда не будет использовать систему больше 8 часов.

16 февраля был выпущен Bug Fix, но чтобы его внедрить во все единицы боевой техники, требовалось время, ибо война.

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

25 февраля в Дахране (Саудовская Аравия) в казарму в гости к американцам прилетела баллистичекая ракета "керосинка" (она же Р-17, она же Scud). 28 убито 96 ранено, потому что ЗРК «Патриот» промахнулся из-за программной ошибки.

26 февраля Bug Fix был доставлен в Дахран.



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

Исправляем ошибки своими руками, или баг, который «никого не колышет»

Reading time8 min
Views54K
Недавно я уже поднимал волну о баге TCP стриминга камер, но тогда я её катил исключительно на китай. А проблема куда как шире. Для себя я проблему решил, страждущим выкладываю прошивки с фиксом.

А теперь садитесь поудобнее, я поведаю вам об этом баге подробно.
Читать дальше →

Познакомьтесь с анархистами, самостоятельно делающими лекарства

Reading time15 min
Views146K

«Уксусный коллектив четырёх воров» – сеть анархистов, опирающихся на технологии, и бросающих вызов гигантам фарминдустрии при помощи самостоятельно изготовленных лекарств




Впервые я познакомился с Майклом Лофером, когда он швырялся в аудиторию хакерской конференции HOPE (Hackers on Planet Earth), проходящей раз в два года в Нью-Йорке, лекарствами на тысячи долларов.

«Кто-нибудь из присутствующих переживал анафилактический шок, не имея доступа к эпинефрину?» – спросил Лофер у аудитории. Поднялось несколько рук, и Лофер швырнул одному из поднявших руку людей изготовленную в домашних условиях EpiPen [похожее на шариковую ручку устройство для самостоятельных инъекций адреналина / прим. перев.]. «Это одно из первых сделанных нами устройств, — сказал он. – Используйте его с умом».

Немного позлорадствовав насчёт того, как Мартин Шкрели из племени фармацевтических гигантов поднял цены на препарат дараприм, необходимый для людей, страдающих от ВИЧ, с $13 до $750, Лофер посерьёзнел. «Прошло два года, но несмотря на всё произошедшее, стоимость препарата дараприм не поменялась», — сказал он. Он залез в карман и достал пригоршню белых таблеток. «Думаю, надо раздать ещё немного», — сказал Лофер, и швырнул дараприм в аудиторию.
Читать дальше →

Newtoo — разработка полноценного браузерного движка с нуля в 2018?

Reading time4 min
Views52K
image

Привет! Меня зовут Дмитрий Козичев.

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

Мой движок называется Newtoo.

Что за Newtoo


Итак, Newtoo. Зачем я его создал?

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

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

Идеология Newtoo — показать страницу быстрее, чем остальные.

Как Newtoo работает быстрее


Как я говорил ранее, основные браузерные движки развиваются не первый год. Те ошибки, которые были допущены на начальных стадиях разработки остаются в проекте до конца. Самый яркий пример этому — умные указатели в C++ — это еще более сложный синтаксис, большой оверхед при работе, создании и удалении умных указателей. Кроме того, есть очень много типов умных указателей и нужно знать, какой когда использовать, ведь у каждого есть свои сюрпризы ньюансы. Посмотрите на этот файл из WebKit. Когда видишь такой код, синтаксис умных указателей, пытаешься успокоится и дышать ровно, но такого рода код — это весь вебкит с ног до головы. В моем движке нет таких недостатков.
Читать дальше →

Как я взломал Steam. Дважды

Reading time4 min
Views121K
Привет, Хабр! Сегодня я расcкажу за что же Valve заплатила наибольшие баунти за историю их программы по вознаграждению за уязвимости. Добро пожаловать под кат!


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

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity