Обновить
150.59

Ненормальное программирование *

Извращения с кодом

Сначала показывать
Порог рейтинга
Уровень сложности

Развертываем peer-to-peer чат с голосом, видео, шарингом экрана, файлов и паролем

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

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

Что будет ниже:

Поиск open source решения для общения голосом, шаринга экрана, включения видео и чатов в режиме peer-to-peer, без лишних бекендов
Запуск этого решения в открытую в github pages
Заворачивание этого решения на приватный сервер
Простенькое закрытие доступа туды через basic http auth
Заключение с описанием некоторых замечаний и потенцевальных возможностей

Читать далее

KatWalk C2: ч.5: Учимся разбирать ARM в Ghidra (aka оверклокинг и багфиксинг)

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

"Что б они ни делали -- не идут дела. Видимо в прошивке багов дофига". Как я напомнил в прошлой статье (где я подготовил утилиты для перепрошивки сенсоров) -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.

Её исходный ресивер обновляет сенсоры с частотой в 86Гц, тогда как технически возможно разогнать до 133 Гц, получив ощутимо ниже задержки, но связь была нестабильной.

Давайте начнём погружение в сенсоры -- посмотрим, что за игра ghidra_11.0_PUBLIC установлена у меня в C:\Games, заглянем одним глазком в саму прошивку и поковыряемся там грязными патчиками, да исправим race condition плюс выкинем немного отладочных глюков. В общем, готовимся к погружению. В этот раз -- всё серьёзно.

Ныряем

Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности?

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

С момента выхода первой части статьи из рубрики «сам себе экосистема» прошёл уже практически год! За это время, мы успели с вами реализовать клиенты VK и YouTube, которые работают на Android 2.2+, а также на Windows Phone 8, написать небольшую 2D-игру с нуля весом менее 1Мб, которая работает практически везде и довести существующее приложение до ума, дабы оно работало даже на смартфоне с дисплеем 240x320! Но на дворе 2024 год, люди стремительно переходят из соц. сетей в продвинутые мессенджеры и уже сложно себе представить современного человека, который не пользовался бы «телегой» или даже «вайбером» в качестве основного средства общения. Поэтому я решил реализовать клиент Telegram на смартфоне 14-летней давности на базе официальной реализации MTProto от команды Telegram — TDLib. Сегодня мы с вами: узнаем новые причины мотивации вернуть в строй смартфоны прошлых лет, напишем на C# реле-сервер, который обрабатывает пакеты MTProto и кодирует их в простой текстовый формат датасетов, который можно моментально обработать даже при нестабильном GPRS-соединении на 21-летнем Siemens C60, а также узнаем о разработке миниатюрных Android-приложений на базе «голого» API-системы, которые не тянут за собой никаких зависимостей, в том числе и AppCompat/androidx. Интересно? Тогда жду вас под катом!
Читать дальше →

Супер-эффективная архивация — сжимаем все что угодно до 32 байт

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

Будем разрабатывать архиватор, который может сжимать данные любого размера и типа до 32 (38 с метаданными) байт. Рассмотрим достоинства и недостатки данного алгоритма, возможные способы улучшения его работы.

Распаковать

KatWalk C2: ч.4: поиграемся с прошивкой

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

Для тех, кто только подключился -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.

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

Давайте что-нибудь в нём пропатчим!

Диагональная ориентация как идеал расположения экрана

Время на прочтение2 мин
Количество просмотров15K

Свободное вращение нашей планеты происходит с наклонением. Причины этому заложены давно. Вероятно, около 4,5 миллиарда лет назад Земля столкнулась с планетой Тейя. Так у Земли появилась Луна и наклон орбиты в 22,44 °.

Поскольку Земля вращается вокруг своей оси с наклонением, это приводит к неравномерности распределения излучения Солнца. Говоря проще, именно из-за наклонения планеты мы испытываем смену времён года.

Если наклонение орбиты важно для жизни на Земле, то нужно ли применить наклонение в 23,44 ° для ориентации монитора?

Читать далее

[1 апреля] Масштабные изменения в C# 14.x и дальнейшие планы развития .NET

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

Масштабные изменения в C# 14.x и дальнейшие планы развития .NET

Пока разработка .NET 9 идет полным ходом, Microsoft приоткрыла нам завесу дальнейших будущих масштабных изменений в экосистеме .NET. Компания поделилась своим видением развития новой версии платформы .NET и C# в частности, которые мы обсудим в данной статье.

Читать далее

Как построить мастабу

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

Фараон, вышедший в далеком 1999 году был одной из первых игр, которые предлагали поэтапное строительство зданий. Да которые еще и требовали наличие разных ресурсов. Навскидку могу припомнить серию Settlers, Majesty и может еще парочку. После Цезарь III, исхоженного вдоль и поперек, где основным ресурсом при постройке зданий были монеты, это было действительно удивительно и ново. Особым удовольствием было наблюдать, как город живет своей жизнью в процессе постройки монументов, помню просто построил минимальную необходимую инфраструктуру для монумента и просто наблюдал как архитекторы жаловались на недостаток материалов, рабы бегали то на фермы, то на строительную площадку, торговцы периодически продавали кирпичи. Ну и остальной город, конечно, жил своей жизнью, можно даже забыть на какое время про отдельные части города, игра все равно не остановится, и тут понимаешь почему игра до сих пор остается одним из лучших градостроев: отличительная особенность серии — «баланс», баланс отточенный в мелочах. Восстанавливая эту часть игры, я не перестаю удивляться как это все было реализовано на тех аппаратных средствах, замечу, очень и очень небольших, 64Мб оперативки было далеко не у всех. Одним из нововведений монументов было то, что они были составными зданиями, отдельные части могли быть заменены на другие, что в общем давало возможность из одного набора текстур создавать разные по виду здания. Это сейчас кажется, что такой подход есть в любой игре, но в 99 такой механикой могли похвастаться немногие. Сначала я пытался восстановить оригинальный алгоритм отрисовки, но быстро понял, что столько if не осиливаю не только я, но и компилятор, пришлось велосипедить.

Malaria doesn't seem to be a problem here

Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»?

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


Моддинг-сцена с разработкой и портированием кастомных прошивок для Android-устройств существует вот уже более 10 лет. В основном, энтузиасты пытаются проапгрейдить свои устройства путем портирования более свежих версий Android, чем предлагает производитель девайса. Чего уж говорить, если Galaxy S III, которому уже 12 лет стукнуло, получил неофициальный апгрейд до Android 14. Порой мне в голову приходят различные, весьма странные моддерские мысли: например, почему бы не портировать на старенький смартфон… ещё более старую версию Android, дабы посмотреть «что будет». Казалось бы «портировал и портировал», но в процессе работы я столкнулся с множеством интересных нюансов и особенностей работы Android, о которых хотел бы рассказать и вам — моим читателям! Сегодняшняя статья будет в классическом «научпоп»-стиле без кода, зато с подробными объяснениями одной из техник портирования Android-прошивок путем патчинга скриптов для конфигурации системы и подмены Board-specific библиотек, дабы система «увидела» всё необходимое железо! Интересно? Тогда жду вас под катом!
Читать дальше →

KatWalk C2: ч.3: отрезаем провода

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

Итак, мы познакомились с платформой как пользователи. Посмотрели на связь игр с софтом. Софта с платформой. Пришла пора посмотреть как платформа общается со своими сенсорами: нужен ли нам провод до платформы вообще?

Теперь познакомимся с Bluetooth LE и узнаем, почему приходится писать свой приёмник а не просто полагаться на операционную систему.

Кабель? Нет, спасибо. Но как?

Почем бакалавриат для народа?

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

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

Узнать чем дело закончилось

Первый легендарный мобильный GPU: каким был PowerVR MBX Lite? Пишем игру-демку про «жигули» с нуля

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


Пожалуй, многие из вас помнят, какими были мобильные игры до и после выхода первого iPhone. В начале 2000-х годов, ещё до появления яблочного смартфона, игры для телефонов в основном были весьма интересными, но тем не менее, достаточно простенькими с точки зрения графики и реализации в целом. После запуска AppStore в 2008 году, на iPhone начали выходить самые разные красочные, невиданные раннее по уровню детализации и проработке 2D и 3D игры. Но появление таких игр — отнюдь не заслуга Apple, а относительной малоизвестной компании PowerVR (подразделение Imagination Tech), которая смогла разработать на базе видеочипа Dreamcast и внедрить один из первых действительно массовых мобильных 3D-ускорителей, имя которому — PowerVR MBX! Сейчас мы с вами привыкли, что почти любой дешевый смартфон может отрисовывать графику уровня PS3 в 1080p, а то и выше, но когда-то даже уровень PS2 был роскошью… Сегодня мы с вами: узнаем предысторию появления аппаратно-ускоренной 3D-графики на телефонах, рассмотрим такую фирменную фишку PowerVR, как тайловый рендеринг, а в практической части статьи нам поможет легендарный КПК Dell Axim X51v с MBX на борту, под который мы напишем 3D-игру «про жигули» с нуля! Интересно? Тогда добро пожаловать под кат!
Читать дальше →

KatWalk C2: ч2, подслушаем, подсмотрим и разнюхаем или как общаться с незнакомым железом на незнакомом языке

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

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

Однако, получение данных требует постоянно висящего приложения (на C#), и надо понять что же конкретно оно делает.

Давайте разберёмся как общаться с железом и избавимся от балласта!.. Переписав на Kotlin. Почему Kotlin? Потому что я на нем никогда еще не писал.

Погружаемся

Ближайшие события

Настоящий игровой роутер

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров22K
Гоняем GTA: Vice City на беспроводном роутере TP-Link TL-WDR4900.

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

Flowise: доступ к AI без кода

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

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

Как без единой строчки кода сделать чат-бот с доступом в сеть, или сервис для генерации изображений, анализа файлов, как встроить это всё в свой проект... Об этом и не только в обзоре Flowise.

Читать далее

Играем с KAT Walk C2. (часть 1: собственно, играем)

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

У меня есть дурная привычка: я играю в игры. Впрочем, понятие "играю в игры" довольно своеобразное.

Уже несколько лет как я обзавелся VR платформой от KAT VR. Согласно её внутренней статистики, я прошел на ней около 30 километров и сделал 40к шагов. Статистика, конечно, врёт и сильно, было гораздо, гораздо больше. Однако же да, на ней я играл гораздо меньше времени чем с ней.

Впрочем, обо всём по порядку.

Как я рабочую задачу автоматизировал, не написав ни строчки кода, с помощью AI-ассистента

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

AI-сервис Phind - ассистент по программированию для не программистов. Или как я автоматизировал свою рабочую задачу, не написав самостоятельно ни строчки кода.

Читать далее

Как я несколькими промптами создал торговый индикатор на Pinescript (TradingView)

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

Впечатления от использования бесплатного помощника генерации кода.

Я уже предпринимал попытки освоить Pinescript года 3-4 назад, когда только увидел всё многообразие торговых индикаторов в TradingView. И я точно помню своё ощущение бессилия, потому что толковых методичек я не нашел. А сегодня, через Ai-помощника смог сделать то что хотел - за несколько промптов, совершенно ничего не зная в языке и как эти индикаторы строятся. Согласитесь, очень странное впечатление, когда пишешь что-то, копируешь, вставляешь, и у тебя ещё и получается! Это ЭКСТАТИЧЕСКОЕ ощущение ?.

Читать далее

5 самых странных языков программирования: для чего они нужны и что на них можно написать

Время на прочтение25 мин
Количество просмотров18K

Согласно самым разным источникам, в мире существует от нескольких сотен до нескольких тысяч языков программирования. Правда, ЯП, с которыми реально имеют дело десятки и сотни тысяч человек, немного. Больше, конечно, нишевых языков, применяемых для решения узкого круга задач. Существуют ЯП для обучения разработчиков, а также проекты, созданные исключительно для развлечения. В статье — 5 наиболее странных языков из когда-либо созданных. Brainfuck, кстати, опустим, ведь его на Хабре и так регулярно вспоминают. Что же, поехали.

Читать далее

Три легенды из нулевых: оживляем, прошиваем, патчим и смотрим на культовые телефоны Siemens из начала двухтысячных

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

Друзья! А вы помните такие мобильные телефоны, как Siemens? Когда-то у всемирно известного консорциума, занимающегося выпуском различного силового оборудования и поездов, было собственное мобильное подразделение, которое успешно конкурировало в конце 90х и начале 2000х годов. Многие мои читатели «постарше» наверняка вспомнят, а то и сами владели такими легендарными моделями, как Siemens SL45, ME45, C55, C65, S65, S75! Но немногие знают, что в своё время эти девайсы были сродни современным Android-смартфонам с разблокированным загрузчиком: энтузиасты быстро смогли разобраться в алгоритме генерации ключей для загрузчика и начать делать патчи, которые фактически превращали «тормозной» телефон в почти настоящий смартфон с полноценной многозадачностью! Недавно мне подарили целых три телефона Siemens, которые носят статус культовых: Siemens C65, Siemens C75 и Siemens S75! Два девайса из трёх были в замечательном состоянии, но имели некоторые проблемы в аппаратной части. В сегодняшнем ностальгическом материале, мы с вами: вспомним о том, какие телефоны делали Siemens в своё время и на каких аппаратных платформах они работали, продиагностируем, проведем аппаратный ремонт и составим список самых частых болячек устройств на платформе S-Gold, рассчитаем ключи для загрузчика, пропатчим, накатим эльфпак и посмотрим, какой же была моддинг-сцена телефонов в нулевых! Интересно? Тогда жду вас под катом!
Читать дальше →

Вклад авторов