Как стать автором
Обновить
216.54

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

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

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

Птичий язык (пятничное)

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

Стоим мы как-то раз в курилке с коллегами, обсуждаем новый полис в GOAP и планируем расход задач на неделю, пару тасок решили кинуть в обезьянку, две ноды вернуть из ада депрекейта и настроить для работы с новым бт, а одну вернуть мастеру - пусть сам свои фланкинги ковыряет, раз уж он их и заимплементил, а еще две сжечь, а еще надо выделить время, чтобы покопать TSA, потому что новый GD сломал пару вейтов, и теперь хуман ходит не в тот ковер. Еще одну придется собирать из г..на и палок частей других нод, потому что дизайнеру нужно вчера, а времени на инвестигейт нет, покрасим её в фиолетовый, чтобы в билд не пробралась. А программеры с соседнего проекта, не аишные, смотрят на нас круглыми глазами и иногда посмеиваются. И вот я сажусь заполнять таски в jira, и понимаю чему удивлялись мои коллеги, потому что придется все эти короткие термины разжевать в таске. Давайте я дам названия терминов, а вы их попробуете объяснить сами, до раскрытия спойлера? Интересный должен игродевовский квиз получиться :) КДПВ просто прикольная, C++ тут нет.

C++ тут нет
Всего голосов 12: ↑11 и ↓1+14
Комментарии9

Обратная связь, творящая чудеса

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

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

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

Читать далее
Всего голосов 24: ↑23 и ↓1+32
Комментарии37

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024

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


Друзья! А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может! Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 50: ↑45 и ↓5+56
Комментарии52

И целых 20 ядер мало

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

Если вы посмотрите на общую раздутость современного софта, загружаемые 100 гигабайтные игры, ежегодную Nvidia X090 дающую +20% год от года, и 20-ядерные процессоры, то со стороны может показаться, что оптимизация производительности неважно чего, будь то игры или другой софт, казалось бы, утратила свою актуальность. В эпоху безнаказанной производительности аппаратной части можно расплескивать хоть половину этой мощи, и пользователь этого даже не заметит. Это все может и верно, если вы не делаете игру. Почему же тогда на этих двадцати ядрах, фризит и тормозит (хорошо что не вылетает часто) игра выпущенная два года назад?

Почему тормозит я вам не скажу: возможно разработчики, которые делали её (на не самом новом движке, надо сказать) просто делали игру и не задумывались о рядовых игроках, которые сидят на пятилетнем железе, хотя даже пятилетнее железо уделывает приставки текущего поколения. Возможно это другая причина - когда твоя рабочая машина с 64 гибайтами оперативки и 4080 на борту тянет редактор, то беспокоиться об игроках можно начинать после патча первого дня.

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

Налево пойдешь проца не хватит...
Всего голосов 58: ↑58 и ↓0+76
Комментарии52

Истории

Компилятор за выходные: наконец-то ассемблер

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

Продолжаем разговор об игрушечном компиляторе мной придуманного простейшего языка wend. На этот раз мы добрались до определённой вехи: наконец-то будем генерировать не питоновский код, а ассемблерный.

Ну а когда оно заработает, предлагаю решить задачу: как сэмулировать побитовые операции and-not-xor-or при помощи четырёх арифметических.

Читать далее
Всего голосов 22: ↑22 и ↓0+27
Комментарии8

Два слова о процедурной графике

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

Среди многочисленных демосценерских конкурсов, которые традиционно входят в программу различных demo party, незаслуженно недооценённым, на мой взгляд, является конкурс процедурной графики (procedural graphics). Смысл этого специфического вида компьютерного творчества — формирование статичного изображения при помощи короткой программы. Стандартные ограничения на размер — 4кб, 1кб, 256 байт.

Связана недооценка, думаю, с тем, что конкурс одновременно не вполне понятен как тем, кто любит демки (поскольку процедурная графика статична), так и тем, кто любит картинки (т.к. процедурная графика не позволяет нарисовать что хочешь). И всё же, его популярность хоть и медленно, но растёт.

Первые работы во многом были вызваны интересом к теме трассировки лучей (raytracing). Сам по себе алгоритм довольно простой, но требует много вычислений, поэтому работы стали возможны, когда распространились компьютеры с, во‑первых, достаточно высокой производительностью и, во‑вторых, с достаточным количеством отображаемых цветов (или, хотя бы, градаций серого). Я порылся на pouet и нашёл одну из первых работ в категории «procedural graphics» — Digital Phantasy by EG:

Читать далее
Всего голосов 50: ↑50 и ↓0+69
Комментарии21

Культурно-независимый тест интеллекта повышенной сложности

Уровень сложностиСложный
Время на прочтение2 мин
Количество просмотров2.7K
Виктор Серебряков (17 октября 1912 — 1 января 2000) был одним из первых членов Mensa.

Менса (лат. Mensa — «стол») — крупнейшее и старейшее общество людей с высоким коэффициентом интеллекта; некоммерческая организация, открытая для всех, кто сдал стандартизованные тесты на IQ лучше, чем 98 % населения. Тест должен сдаваться в присутствии наблюдателей.



Это «культурно-независимый тест интеллекта повышенной сложности».
Тест для измерения высокого IQ (до 160 баллов) был изобретен выдающимся английским исследователем интеллекта Виктором Серебряковым.
Текст программы для Windows разработан на языке Flat Assembler. Это я :)
Но что важно — дана экзешник!

splushka.narod.ru/IQ-fasm.zip
Читать дальше →
Всего голосов 12: ↑3 и ↓9-5
Комментарии25

Сам написал, сам полетал: как и зачем я разработал 3D-игру с нуля под компьютеры из 90-х в 2024 году?

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


Осторожно: Несмотря на кажущуюся сложность статьи о разработке целой 3D-игры с нуля, я постарался систематизировать и упростить материал так, чтобы понятно было любому заинтересованному читателю, даже если вы далеки от программирования в целом!

Статьи о разработке инди-игр — это всегда интересно. Но разработка чего-то абсолютно с нуля, без каких-либо движков или фреймворков — ещё интереснее! Почти всю свою жизнь, буквально с 13-14 лет меня тянет пилить какие-нибудь прикольные 3D-демки и игрушки. Ещё на первом курсе ПТУ я написал небольшую демку с 3D-вертолетиками по сети и идея запилить какие-нибудь прикольные леталки не покидала меня по сей день! Спустя 6 лет, в 22 года я собрался с силами и решил написать небольшую аркадную демку про баталии на самолетиках, да так, чтобы работало аж на видеокартах из 90-х — NVidia Riva 128 и 3DFX Voodoo 3! Интересно, как происходит процесс разработки игры с нуля — от первого «тридэ» треугольника, до работающей на реальном железе демки? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 81: ↑79 и ↓2+103
Комментарии30

Запускаем 64-битную библиотеку в пространстве WOW64, часть 1

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

Приветствую всех!

Сегодня я вам представлю свои наработки по способу инжекта 64-битных DLL библиотек в процессы WOW64, сам который считал невозможным. Любителей потрогать внутренности Windows приглашаю под кат.

Зайдем поглубже
Всего голосов 8: ↑8 и ↓0+10
Комментарии8

Как управлять миром шестиугольных призм на GPU

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


Недавно я реализовал очень необычную задумку — демонстрацию Minecraft-подобного движка с игровой логикой, выполняющейся полностью на GPU.


Как и зачем я это сделал, и как дошёл до жизни такой, я поведаю в этой статье.


Внимание, в статье есть много скриншотов!

Читать дальше →
Всего голосов 42: ↑42 и ↓0+52
Комментарии26

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One

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

В своей жизни я обожаю как минимум три вещи: это C# (как и .NET в целом), интересное железо и одноплатные компьютеры. В Embedded-системах на Linux обычно принято писать код на C/C++ для решения чувствительных к производительности задач и интерпретируемых Lua/Python для быстрого прототипирования, которые стали популярны в встраиваемых устройствах сравнительно недавно. Однако о нативной разработке под одноплатники на C# практически ничего не слышно и я решил исправить это недоразумение! В сегодняшнем материале: рассмотрим, какие платформы .NET нам доступны на одноплатниках, научимся работать с GPIO и SPI в юзерспейсе, а также напишем практическое приложение, которое реализовывает драйвер дисплея и выводит на экран определенное изображение.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+39
Комментарии36

Фрагмент множества Мандельброта с анимация

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров3K
Впервые я прочитал о фракталах больше 40 лет назад, классе в пятом-шестом, в журнале «Техника — молодежи». Помню, там была изображена снежинка Коха. Слово «фрактал» происходит от латинского «дробный», так как у этих математических фигур дробная размерность.
«Облака — не сферы, горы — не конусы, береговые линии — не окружности, древесная кора не гладкая, молния распространяется не по прямой» — писал Бенуа Мандельброт — первооткрыватель самого известного фрактала, названного в его честь — множества Мандельброта.


Фрагмент множества Мандельброта для примера
Читать дальше →
Всего голосов 19: ↑19 и ↓0+31
Комментарии23

Решаем задачу уровня «Невозможно». Сжатие хаотического бинарного кода. Суперпозиционные системы счисления

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

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

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

Читать далее
Всего голосов 18: ↑3 и ↓15-10
Комментарии28

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

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

Загрузка es-модулей в браузерные приложения

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

Мне тут на днях попеняли, что, мол, я не в курсе, "что из esm до сих пор нельзя собрать бандл без транспиляции". Ну что я могу сказать... я действительно не в курсе :) На мой взгляд, es-модули придумали как раз для того, чтобы загружать по мере необходимости JS-код непосредственно в браузер, и собирать модули в бандлы - это, ну... как гладить кошку против шерсти.

Я понимаю, что традиции / привычки / требования бизнеса / обратная совместимость / корпоративная этика и т.п. говорят о том, что код для браузерных приложений должен поставляться в бандлах и точка! Тем не менее, в некоторых случаях (малые приложения, быстрое прототипирование, распределённая разработка) сборка бандлов является излишней и код в браузер можно и нужно загружать непосредственно в виде es-модулей.

Читать далее
Всего голосов 8: ↑8 и ↓0+10
Комментарии15

Универсальный запуск

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

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

Представьте себе исполняемый файл, который без изменений и пересборки самостоятельно запускается на Windows, Linux, FreeBSD и MacOS.

Заинтриговал?

Читать далее
Всего голосов 8: ↑8 и ↓0+10
Комментарии5

Творим дичь с помощью инструментов веб-разработки

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

Или что будет если заставить очень опытного разработчика заниматься не своим делом. Думаю после этой статьи термин «overqualified» заиграет для вас новыми красками.

Читать далее
Всего голосов 40: ↑40 и ↓0+51
Комментарии15

Нереальная локализация

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

Давно хотелось раскрыть интересную тему локализации ПО, но так чтобы не повторяться и не цитировать прописные истины.

Поэтому рассказываю как локализовать обычное корпоративное Java-приложение на..  несуществующие фантастические языки: Клингонский и Р’льех.

Погрузиться
Всего голосов 19: ↑19 и ↓0+22
Комментарии21

Забытый порт 3c0, или видят ли камеры иллюзии

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров5.7K
Вы видите желто и синих цвета? Но у меня черно-белые изображение. Сам монитор черно-белые. Монохромное изображение — чёрно-белые компьютер монитор. У меня он был! Нет у меня желто и синих цвета.
А они есть в глазу! Но не только. Они есть в фотоапарата! Фотоапарат решил что желтый и синий цвета.
Снимок от фотоапарата.



Но нужно по порядку. 2004 год, 20 лет назад! Я читаю программирование видеоадаптеров.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+34
Комментарии21

Эти айфоны ещё будут жить: пишем и деплоим свои приложения из XCode на старые iPhone

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

Согласно политике Apple, компания чётко разграничивает время жизни тех или иных версий iOS. Обычно, уже через 3-4 года определенная версия iOS считается устаревшей и публиковать новые версии приложений с её поддержкой больше нельзя. Однако в ходу всё ещё «старые», но по настоящему трушные и любимые многими «пятёрки», «четвёрки», а среди коллекционеров — и «тройки»! Способ, о котором я расскажу в статье, раскопали ещё «олды», однако он позволяет запускать и отлаживать «хоумбрю» приложения на старых айфонах, потенциально принося им новую жизнь с кастомными приложениями! Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 27: ↑25 и ↓2+32
Комментарии19

Enlarge your BASHUI for free! Как увеличить потенциал производительности?

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

Выдалась свободная минутка и я решил потрогать немного свой bashui. Там еще трогать не перетрогать но обо всем по порядку. Тех кто не знаком с bashui прошу сюда. А в этой статье я решил затронуть злободневную тему повышения потенциала производительности на примере своего bashui.

Увеличить потенциал
Всего голосов 3: ↑3 и ↓0+5
Комментарии1

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