Обновить
61
0

Пользователь

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Недооценённый принцип квантового мира, без которого жизнь была бы невозможной

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


О каких законах, принципах и свойствах квантового мира обычно вспоминают люди, думая о физике элементарных частиц?

Кто-то, скорее всего, вспомнит принцип неопределённости Гейзенберга. Он гласит, что существует предел точности, с которой можно одновременно знать некоторые пары физических свойств частиц — например, положение и импульс. Другими словами, чем точнее измеряется одно свойство, тем менее точно может быть известно другое.

Говоря более формально, принцип неопределённости представляет собой одно из множества математических неравенств, накладывающих фундаментальное ограничение на произведение точности некоторых связанных пар измерений квантовой системы, таких как положение, x, и импульс, p. Такие парные переменные называются дополнительными или канонически сопряжёнными переменными. Принцип неопределённости, впервые введённый в 1927 году немецким физиком Вернером Гейзенбергом, утверждает, что чем точнее определено положение частицы, тем менее точно можно предсказать её импульс, исходя из начальных условий, и наоборот.
Читать дальше →

Как эффективно добавлять документацию при разработке продукта?

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

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

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

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

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

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

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

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


В предыдущих частях цикла статей (часть 1, часть 2) мы настроили подключение к IPv6-брокеру на VDS под управлением операционной системы CHR от Mikrotik. Подготовили туннелирование до устройств сети, которые как умеют, так и нет работать с VPN, используя PPTP, SSTP и статическую маршрутизацию. Уделили достаточно внимания обеспечению сетевой безопасности подключаемых к IPv6 пользователей.

Настало время перенести всё на Linux. При этом самая простая задача (конфигурирование клиента для подключения к брокеру) уже выполнена. В завершающей части цикла настроим туннелирование IPv6 до устройств домашней сети посредством старого доброго L2TP, а для работы мобильных устройств дополнительно организуем IKEv2-сервер. Чтобы лучше понимать происходящие процессы, рекомендуется ознакомиться с предыдущими двумя статьями, так как с целью исключения болтологии вводный материал повторяться не будет.
Читать дальше →

Простой ORM для sqlite3

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

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

Не бывало ли вам интересно, как работает изнутри такая идейно простая концепция? Благодаря чему достигается удобство работы? Сегодня мы напишем ORM самостоятельно и узнаем, какие инструменты python нам для этого понадобятся.
Читать дальше →

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

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

Технологический переход в индустрии видеоигр, случившийся в середине 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. В реальности всё интереснее, сложнее, и как водится, требовало от разработчиков недюжинной креативности. Сегодня поговорим об этой технологии.
Читать дальше →

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

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

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

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

Умные программисты пишут STUPID-код

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров54K
Умные программисты пишут STUPID-код, ведь они понимают, что неожиданно возникшая сложность может привести к провалу проекта.


▍ Страдание


На момент написания этой статьи на моих часах 21:30.

Этим утром я проснулся в хорошем, оптимистичном настроении, рассчитывая на прекрасный день, но теперь вымотан.

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

Старые кодовые базы как классическая литература

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

Сохранившиеся фрагменты греческих папирусов, источник

В языке и литературе работает известный принцип начитанности: чем больше человек читает хороших книг, тем больше у него словарный запас, шире кругозор. Развивается понятийный аппарат, сама собой улучшается грамотность без всяких учебников.

Применим ли этот принцип в обучении программированию?
Читать дальше →

Возможные векторы кибератак на новые французские цифровые удостоверения личности

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров9.9K
Больше года назад меня пригласили в закрытую программу баг-баунти с необычной мишенью для исследования: France Identité — новым французским цифровым ID. Сама по себе программа меня разочаровала, я бы сказал, что, вероятно, она не стоила моих усилий; впрочем, мне выплатили награду за несколько отчётов. С другой стороны, тема была для меня очень интересной, а техническая часть в конечном итоге сгладила негативные аспекты.

Для изучения предпродакшен-версии использовалась методика «чёрного ящика». Я получил «образец» французской ID-карты (carte d'identité), которая, естественно, не была связана с реальным гражданином. Однако я не получил PIN, поэтому не мог полностью изучить всю функциональность, реализованную в системе France Identité.

Ниже я расскажу о том, что обнаружил.

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

Наручные атомные часы стали ближе. Определение координат без GPS

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

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

В своё время атомные часы сделали возможным создание спутниковых систем навигации вроде GPS, которые опираются на сверхточные синхронизированные часы.

Но сейчас перед человечеством стоит скорее обратная задача: мы хотим обеспечить точную навигацию по местности без GPS, и для этого нужны ещё более точные атомные часы, чем для работы GPS. Зная скорость и направление движения любого объекта, часы нового поколения обеспечат позиционирование с точностью до метра/сантиметра (в зависимости от их точности, а также точности других датчиков). В общем, главная задача теперь — решить проблему зависимости от спутниковой навигации, которая не всегда доступна.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Зарегистрирован
Активность