Pull to refresh
28
0
Череп @5kull_h4ck3r

User

Send message

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 2

Level of difficultyMedium
Reading time8 min
Views7.3K

Я продолжаю рассказывать, как HTML и CSS могут улучшить или ухудшить доступность интерфейсов. В своём рассказе я использую свой опыт и моего незрячего знакомого Ильи.


В этой статье будет: атрибут autofocus и его нюансы, паттерн «Skip-link» и идея Ильи об использовании его на практике, проблема использования одинаковых ссылок для одной новости, что не так с кнопкой «Наверх» и как вы спрятали список от скринридеров.


Давайте начнём!

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

«Окей, бумер» — как шутеры в ретро-стилистике потеряли самобытность

Level of difficultyEasy
Reading time8 min
Views15K

В последние лет 5 стали популярны «бумер-шутеры». Шутливое название по мотивам мемов про так называемых бумеров и зумеров относит нас к олдскульным шутерам от первого лица. И хоть жанр на пике популярности, а отдельные его представители крайне восхваляются игроками и прессой, у меня есть альтернативное мнение насчёт таких игр: не все они так хороши, как о них говорят.
Читать дальше →

Как и почему я писал для Флиппера на Си-с-классами

Level of difficultyMedium
Reading time8 min
Views12K
Мой Флиппер дошёл до меня больше полугода назад, но что-то под него написать я собрался только сейчас. Его API рассчитаны на язык С — а у меня с ним опыта не очень много. Но проблем с тулингом не возникло — у Флиппера есть своя система сборки, которая скачала мне нужный тулчейн и сгенерировала настройки для IDE.

А для написания кода я решил использовать всё же не C, а C++ — точнее, даже «Си-с-классами». На мой взгляд, затуманенный языками более высокого уровня, такой подход получился удобнее, чем писать на чистом C. Результат можно увидеть в моём репозитории, а в этой статье я попытаюсь описать, какие конкретные фичи языка я использовал, и как именно они мне помогли.

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

Как зловредные приложения могут скрывать работу с буфером обмена в Android 14

Level of difficultyMedium
Reading time8 min
Views7.5K

Вы когда-нибудь копировали в буфер обмена уязвимую информацию, например, пароли, номера кредитных карт, сообщения или личные данные? Если да, эти данные могут оставаться в буфере устройства достаточно длительное время. Доверяете ли вы буферу обмена и приложениям, получающим доступ к этим данным? В этой статье мы изучим Android Clipboard Manager и продемонстрируем необходимость более качественной защиты копируемых данных.
Читать дальше →

Управление Linux-сервером — самая ценная инвестиция

Level of difficultyEasy
Reading time6 min
Views80K

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

Сейчас это «древнее искусство» вновь стало актуальным. История идёт по кругу — всё старое возвращается в новом виде. Запуск сервера на своём хостинге стал хорошей альтернативой облакам. Этому есть ряд причин, которые мы не будем подробно разбирать, только повторим вкратце: безопасность, свобода, контроль над своими данными, экономия финансов.
Читать дальше →

Электромагнетизм и некоторые интересные явления и процессы

Level of difficultyEasy
Reading time12 min
Views18K
Картинка Freepik

Электромагнитные явления (молния, притягивающие свойства натёртого янтаря) люди наблюдали на протяжении всей истории, тем не менее упорядоченные научные знания впервые появились только около 200 лет назад, но, даже сейчас, несмотря на проработанность теории электромагнетизма, многие электромагнитные явления воспринимаются их изучающими несколько отстранённо, так как лежат за пределами непосредственного опыта, поэтому несложно понять, почему только в последние пару веков люди смогли связать воедино разнородные явления и создать более-менее стройную теорию.

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

Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си

Level of difficultyHard
Reading time17 min
Views16K

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


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

Итальянцы в России и не только. История Olivetti

Level of difficultyEasy
Reading time8 min
Views10K

Если бы у нас была возможность отправиться на машине времени в самое начало 90-х годов и включить телевизор, то мы слегка обалдели бы от транслируемых в эфире рекламных роликов. Реклама водки и сигарет, уникальные креативные приёмы из серии «вам пора, и вам пора с вентиляторным заводом заключать договора», подмигивающий Распутин, Лёня Голубков в неизменной майке-алкоголичке, и, конечно же, маскулинный полисмен, отбирающий у сексуальной блондинки незаконную пачку «Стиморола». Среди всего этого великолепия определённой скромностью и сдержанностью отличалась реклама компьютеров производства итальянской компании Olivetti. Да что там реклама — логотип Olivetti какое-то время украшал циферблат часов, демонстрировавшихся в эфире Первого канала перед программой вечерних новостей. Об истории этого удивительного бренда — наш сегодняшний рассказ.
Читать дальше →

Графика древности: легендарный Mode 7

Level of difficultyEasy
Reading time22 min
Views10K

Технологический переход в индустрии видеоигр, случившийся в середине 1990-х годов — от пиксельной графики игр прошлых лет к полигональной графике игр чуть менее прошлых лет — произошёл не одномоментно. Ему предшествовала эпоха экспериментов, когда разработчики придумывали разнообразные способы убедительной имитации трёхмерного изображения в рамках скромных вычислительных ресурсов. Изометрический движок Filmation и силуэтная графика в Tau Ceti на ZX Spectrum, технология масштабирования спрайтов Super Scaler компании Sega, рейкастинг в Wolfenstein 3D, BSP-дерево в Doom, воксельный ландшафт в игре Comanche — эти времена породили множество любопытнейших технологий, каждая из которых достойна отдельного рассказа.

В до сих пор звучащих отголосках так называемых консольных войн той эпохи (что круче — Sega Genesis или Super Nintendo?) часто можно услышать ещё одно название, которым уместно дополнить список выше — Mode 7. Мы не знаем, что это такое, если бы мы знали, что это такое, но обычно под этим подразумевается какое-то вращение или масштабирование объектов в играх, или же уходящая вдаль дорога, как в гоночных играх F-Zero и Super Mario Kart, или же карта мира, как во многих играх жанра JRPG. В реальности всё интереснее, сложнее, и как водится, требовало от разработчиков недюжинной креативности. Сегодня поговорим об этой технологии.
Читать дальше →

Легендарный Brown Sound на полевых транзисторах

Level of difficultyEasy
Reading time9 min
Views17K

Привет, Хабр! Brown Sound — это специфическое звучание электрогитары, ставшее визитной карточкой Эдди Ван Халена. Повторить уникальный звук великого гитариста пытались и пытаются многие. У каждого получается что-то своё.

Сегодня мы соберём и послушаем один из вариантов «дисторшна по ван-халеновски», используя интересную схему на полевых транзисторах с управляющим переходом (JFET).
А также поговорим об истории электрогитары.

Самые крупные DDoS-атаки нулевого дня на HTTP/2

Level of difficultyEasy
Reading time9 min
Views7.3K

В августе и сентябре злоумышленники развернули крупнейшие распределённые DDoS-атаки в истории интернета, эксплуатирующие известную уязвимость в ключевом техническом протоколе. В отличие от других серьёзных атак нулевого дня последних лет – например, Heartbleed или log4j – которые вызвали хаос повсеместным наплывом эксплойтов, более недавняя их форма, получившая название HTTP/2 Rapid Reset, привлекла пристальное внимание лишь нескольких инженеров.
Читать дальше →

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 2

Level of difficultyEasy
Reading time6 min
Views16K

На рубеже нулевых и десятых годов в Рунете всё чаще стали появляться образы «ностальгии по несбывшемуся Советскому Союзу». По альтернативным таймлайнам, где СССР не распался в начале 90-х, а продолжил существование и преуспел — или же имел более красивое и позитивное прошлое, нежели в реальности. Чем дальше, тем больше в этих образах было ретрофутуризма и технооптимизма, в то время как воинственность уходила на задний план. Это явление стало частью широкого понятия «советпанка» — его «светлой стороной», хотя была и тёмная. В прошлой части мы рассказали о зарождении неосоветской эстетики, теперь же поговорим о её становлении и бурном развитии в 2010-е — хотя не только.
Читать дальше →

Роль личности в науке: нашли бы мы теорию относительности без Эйнштейна?

Level of difficultyEasy
Reading time8 min
Views10K

Законы механики и всемирного тяготения Ньютона прекрасно описывают практически все земные явления, а также движения Луны и планет. В этом смысле Ньютон обеспечил прекрасный синтез двух ранее различных наборов явлений: земных и небесных. Однако, как и в случае со всеми теориями, сочетание экспериментальных результатов и концептуальных рассуждений в конечном итоге заставило отойти от теории тяготения Ньютона и заменить её общей теорией относительности (ОТО) Эйнштейна.

Со временем в теории Ньютона вскрылось в общей сложности три проблемы. Во-первых, концептуальная: согласно Ньютону сила тяготения между двумя телами была пропорциональна произведению инерционных масс тел. Таким образом, инерционная масса выполняла двойную функцию. В первую очередь она по определению, была мерой сопротивления объекта изменению скорости. А кроме того, инерционная масса была чем-то вроде «гравитационного заряда». Подобно тому, как электрический заряд определяет силу электростатических сил между двумя заряженными объектами, инерционная масса (она же гравитационный заряд) определяет силу соответствующей гравитационной силы. Именно по этой причине, как установил Галилей, все предметы падают на Землю с совершенно одинаковой скоростью. Причина такого двойного действия — полная загадка в контексте ньютоновской механики, но, по сути, тривиальное следствие эйнштейновской гравитации.
Читать дальше →

Личный сайт — на каждом телефоне

Level of difficultyEasy
Reading time6 min
Views34K


На Хабре нередко встречаются статьи о том, как запустить веб-сервер на старом смартфоне. В принципе, здесь ничего сложного, тем более что современные телефоны — это мощнейшие компьютеры с многоядерными CPU и гигабайтами оперативной памяти. Даже на самом стареньком смартфоне больше памяти (встроенная флэш-память), чем на промышленном сервере 20-летней давности, который ставили на профессиональный хостинг.

На любой современный (даже старенький) смартфон можно поставить веб-сервер, если проделать некоторые манипуляции, то есть рутануть телефон или установить Termux.

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

Прокачиваем вёрстку ARIA атрибутами. Атрибут aria-label

Level of difficultyEasy
Reading time8 min
Views11K


Cегодня я хочу рассказать про атрибут aria-label. В статье не будет заумных определений и бездумного копирования стандарта. Я хотел простым языком объяснить, какая польза от атрибута, а также передать свой практический опыт, чтобы вы могли его повторить. А получилось у меня или нет, решать вам.


Со вступительным словом всё. Давайте начнём!

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

Как начать работать с IPv6 там, где его нет (часть 2)

Level of difficultyMedium
Reading time8 min
Views13K

В настоящее время основным подходом к внедрению IPv6 является dual-stack, когда устройство одновременно настроено на функционирование обоих IP-протоколов. Это и понятно, ведь основная часть интернета работает на версии IPv4. Механизм 6to4 позволяет подключить ваше устройство IPv4 к брокеру, создав туннель в IPv6.

В первой части цикла статей показана настройка облачного маршрутизатора на routeros. В текущем материале продолжим раскручивать полученное решение, а затем перенесём соединение с брокером на Linux. Но сначала отдельно поговорим о сетевой безопасности подключаемого к IPv6 оборудования. Для понимания происходящих процессов рекомендуется ознакомиться с предыдущей статьёй, так как с целью исключения болтологии вводный материал повторяться не будет.
Читать дальше →

Получаем JTAG на iPhone 15

Level of difficultyEasy
Reading time6 min
Views15K

Месяц назад Apple выпустила iPhone 15 — свой первый смартфон с разъёмом USB-C. Предыдущие полтора года я занимался аппаратным хакингом iPhone, например, мы выпустили опенсорсный последовательный JTAG-адаптер для iPhone под названием Tamarin Cable. Компания Apple наконец-то перешла на USB-C, поэтому мне стало любопытно, можно ли сделать что-то подобное с iPhone 15. Я купил по предзаказу этот телефон, пару печатных плат и набор электронных компонентов.

Прежде всего нужно сказать, что это не уязвимость и не jailbreak, я просто исследую USB-C в iPhone 15 и развлекаюсь со взломом оборудования.
Читать дальше →

Дамп разделов TV-бокса на чипе RK3528

Level of difficultyMedium
Reading time10 min
Views23K

Заметил в продаже новенький TV-бокс H96 MAX M1 на чипсете Rockchip RK3528, с 4Гб памяти, новым 13-м Андроидом, и подозрительно дешевый. Зная, что на старых чипах Rockchip уже запускали Линукс, я решил заказать и попробовать.

Можете заметить разъёмы питания/USB/HDMI/AV... Как думаете, в чём подвох? Наверное на другом боку еще пара USB и слот для карты памяти, но нет - других разъёмов для вас нет. Сразу напишу - разработчикам такое покупать не стоит, это создаёт много проблем, но раз уж купил - то работаю с чем есть.

Для запуска Линукс первым делом надо получить оригинальный Device Tree, вытащив .dtb из boot или recovery раздела. Этим я и занялся. Rockchip устройств у меня еще не было и по отзывам у меня складывалось ощущение производителя, что не ставит палки в колёса разработчикам, но оказалось - это уже в прошлом.

Инструкции написаны для пользователей Линукс.

Читать далее

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views42K

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

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

Читать далее

Оскар Толедо: потомственный волшебник

Level of difficultyEasy
Reading time7 min
Views11K

Семья Толедо (пригород Мехико) и разнообразная техника их кустарного производства, в том числе компьютер, 1980 год

Оскар Толедо — пятикратный победитель программистского конкурса IOCCC, (Международный конкурс обфусцированного кода на С). Он интересен не только сам по себе, но ещё в контексте своей семьи. Это уникальные люди, которые скромно живут в пригороде Мехико и вообще не стремятся к известности. 25 лет назад они написали свою ОС, браузер и кучу софта для него.

Оскар Толедо — просто продолжатель семейного дела, которое началось примерно в 70-е годы прошлого века.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity