Как стать автором
Обновить
370
215.5
Алексей Костенков @Erwinmal

Рептилоид

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

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

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


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

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

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

Тестируем PCIe в новом Raspberry Pi 5

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

Если вы ещё не в курсе, то недавно было объявлено о выходе Raspberry Pi 5.

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

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

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

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

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

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

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

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

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

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

Читать далее

Самые ностальгические мобильные игры. Часть 2: почему затонула Java и взлетели «сердитые птички»?

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

Сейчас мобильные игры — неотъемлемое явление современной жизни; тем удивительнее думать, что их история насчитывает лишь четверть века. В прошлой части мы рассказали о появлении первых мобильных игр и первых хитов из их числа: «змейке» от Nokia, Bounce и других. Теперь пора поговорить о том, как ранние мобильные игры прошли непростой путь от WAP-игр до Java и далее до первых игр для смартфонов, чьё многообразие может сравниться разве что с ассортиментом игр под PC и наиболее популярные приставки.
Читать дальше →

Испытания 5 отечественных автомобильных аккумуляторов в корпусе D23. Часть 1: лечим разбалансировку

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

Привет, Хабр! Вы думали, что в новых аккумуляторных батареях не бывает разбалансировки? — Бывает, причем у большинства. И это не признак брака или подделки, а особенность технологии, которую необходимо учитывать.
Читать дальше →

Извлечение текста из файлов PDF при помощи Python

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

▍ Введение


В эпоху больших языковых моделей (Large Language Model, LLM) и постоянно расширяющейся сферы их применений непрерывно растёт и важность текстовых данных.

Существует множество типов документов, содержащих подобные виды неструктурированной информации, от веб-статей и постов в блогах до рукописных писем и стихов. Однако существенная часть этих данных хранится и передаётся в формате PDF. В частности, выяснилось, что за каждый год в Outlook открывают более двух миллиардов PDF, а в Google Drive и электронной почте ежедневно сохраняют 73 миллионов новых файлов PDF (2).

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

Катализаторы

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

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

Простой аналоговый синтезатор MFOS Noise Toaster

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

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

10 рекомендаций по VS Code для повышения продуктивности

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров55K
Visual Studio Code остаётся наиболее предпочтительной IDE среди разработчиков. Причём этот редактор всё чаще используют именно начинающие программисты. Источник: survey.stackoverflow.co/2023

А вы знали, что 73% разработчиков по всему миру используют один редактор кода? Так и есть. Результаты проведённого в 2023 году опроса Stack Overflow показали, что VS Code является самой популярной средой разработки.

И мы все знаем почему — он очень крут!

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

Япония — родина мобильного гейминга

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

Мобильные игры были с нами всегда. Мы привыкли к тому, что в нулевых были чёрно-белые «Нокии» и «Сименсы», на которых были простенькие чёрно-белые игры. Мы все прекрасно помним, как появлялись первые телефоны с цветными экранами и полифонией — потихоньку они умнели, становились ярче и громче. Появлялись модели с выходом в Интернет (кто из нас не попадал на кругленькую сумму, просаживая весь трафик, качая очередные заставки на экран и игры?). В конце концов мы обменивались скачанными играми по ИК-порту. Однако мобильный гейминг начинался вовсе не со «Змейки»…
Читать дальше →

Большинство оконных приложений — это недоработанные real-time приложения

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

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

Я программирую уже давно. Под давно я имею в виду не один десяток лет работы. Надеюсь, это достаточно долго. За это время мой опыт в основном заключался в программировании для современных платформ вроде Linux, Windows, macOS для десктопных и серверных архитектур процессоров. Недавно я участвовал в создании MIDI-движка для систем значительно меньшей мощности.

Вскоре после начала я столкнулся с проблемой, которая требовала обеспечить невозможность переполнения очереди событий ввода. По сути, эта задача сводится к тому, чтобы каждый обработчик событий не выполнялся дольше некой максимальной продолжительности времени. Затем меня осенило! Я уже слышал это раньше — «максимальная продолжительность времени», так как занимаюсь разработкой систем, работающих в реальном времени.
Читать дальше →

Почему ты не можешь просто начать меньше есть? (Не)очевидные факторы аппетита

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

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

Читать далее

Жирный гитарный дисторшн ProCo RAT

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

Привет, Хабр! Знаете, какую педаль перегруза использовали Джеймс Хетфилд и Кирк Хэмметт в дебютном альбоме Металлики «Kill `Em All»? Пользовались ею и Дэвид Гилмор, и Крист Новоселич из группы Нирвана, да и сам Курт Кобейн. И многие другие.

Сегодня мы изучим и соберём педаль, которая успешно продаётся в течение 46 лет. Не только по той причине, что через неё играли знаменитости, но и потому, что она действительно создаёт настоящий классический дисторшн.
И всё-таки, чем дистршн отличается от овердрайва?

Форматирование текста на C++ старым и новым способом

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

Форматирование текста на C++ можно реализовать несколькими способами:

  • потоками ввода-вывода. В частности, через std::stringstream с помощью потоковых операций (таких как operator <<);
  • функциями printf, в частности sprintf;
  • с помощью библиотеки форматирования C++20, в частности std::format / std::format_to;
  • с помощью сторонней библиотеки, в частности {fmt} (основа новой стандартной библиотеки форматирования).

Первые два варианта представляют старые способы. Библиотека форматирования, очевидно, является новым. Но какой из них лучше в плане производительности? Это я и решил выяснить.
Читать дальше →

Правда ли, что при расширении Вселенной энергия не сохраняется?

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

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

Любому наблюдателю из любой части Вселенной покажется, что все галактики, кроме ближайших друг к другу (связанных гравитацией), удаляются со скоростями, в среднем пропорциональными их расстоянию от наблюдателя. Хотя объекты не могут двигаться быстрее света, это ограничение действует только для локальных систем отсчёта и не ограничивает скорости рецессии космологически удалённых объектов – в данном случае между ними появляется дополнительное пространство.

Космическое расширение является ключевой характеристикой космологии Большого взрыва. Математически оно может быть смоделировано с помощью метрики Фридмана-Леметра-Робертсона-Уокера, где оно соответствует увеличению масштаба пространственной части метрики пространства-времени Вселенной (которая определяет размер и геометрию пространства-времени). В этих рамках стационарные объекты со временем разбегаются друг от друга, поскольку пространство расширяется. Это представить ещё сложнее, но в рамках этой метрики можно принять эквивалентное расширению Вселенной описание, при котором пространство не расширяется, а объекты просто раздвигаются друг от друга.
Читать дальше →

Робототехнические манипуляторы с компьютерным зрением

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

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

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

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

Простой способ компрометации приватных ключей при помощи SSH-Agent

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

Введение


Однажды я просматривал видео из закладок и решил запустить AASLR: Leveraging SSH Keys for Lateral Movement Хэла Померанца. Примерно на середине видео я захотел начать заново и открыл заметки, чтобы документировать полученную информацию, потому что это был очень интересный материал, которого я не видел раньше. Воспользовавшись этой информацией как фундаментом, я начал искать другие способы применения утилиты ssh-agent и решил создать демо в своей домашней лаборатории. В этом посте я расскажу о своих открытиях.
Читать дальше →

Почему на новые SSD ставят вентиляторы. Термотроттлинг

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров17K
ineo M.2 2280 SSD Rocket Heatsink с вентилятором, источник

Динамический термотроттлинг — функция современных SSD, когда контроллер специально замедляет/приостанавливает свою работу, чтобы снизить температуру ячеек памяти NAND. Он делает это ради сохранения данных, чтобы накопитель не перегрелся и не сработали контуры отключения питания.

С каждым поколением PCIe пропускная способность линий PCIe обычно удваивается. В PCIe 4.0 скорость SSD приближалась к теоретическому максимуму 8 ГБ/с. Сегодня SSD PCIe Gen 5.0 x4 разгоняются до 10−14 ГБ/с, при этом сильно нагревается контроллер (неудивительно, что эти микросхемы вообще долго не живут).
Читать дальше →

СУБД Redis и её автор antirez, программист и фантаст

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


Сальваторе Санфилиппо aka antirez — итальянский программист, проживающий в Катании (на острове Сицилия). Провинциальное местонахождение не мешает звезде IT-индустрии: он известен на весь мир как автор СУБД Redis. 46-летний antirez входит в число самых авторитетных и талантливых программистов-одиночек с хакерским бэкграундом.

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

Информация

В рейтинге
8-й
Работает в
Зарегистрирован
Активность