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

индекс
265,61

Entropy — Неточный язык программирования

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

Суть этого языка в том, что в нем отсутствует детерминированность.

Каждый раз, когда мы обращаемся к каким-либо данным, они искажаются все больше и больше.

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

Сами понимаете, что подход к программированию в такой среде должен быть принципиально иным.
22 мая 2012, 15:08
81
soulburner 288,6

Мод для Minecraft, добавляющий микропроцессор



RedPower 2 PR5 теперь доступен.

Новый мод позволяет добавить в Minecraft микропроцессор (6502).
+5
22 мая 2012, 01:40
9
Sterhel 373,0

Пишем и оптимизируем Жизнь Конуэя на JS

Обновляя недавно дизайн своего хомяка, подумал – а не сделать ли мне какую-нибудь необычную страницу с 404-й ошибкой? Поскольку в детстве я был впечатлен Жизнью Конуэя (как возможно и многие из читателей), решил её на JS и реализовать.

Казалось бы, что сложного в Жизни: если у занятой клетки 2 или 3 соседа – она остается, если у пустой ровно 3 – рождается? В этой статье я расскажу о своей оптимизации алгоритма и отрисовки на canvas-е, некоторых не очевидных моментах целочисленной/бинарной арифметики в JavaScript.

Забегая вперед, конечный результат можно увидеть тут, исходники видны там же (да еще и по лицензии CC BY).
+61
21 мая 2012, 22:05
160
BarsMonster 270,7

Ассемблер: прячем несколько команд в команде из песочницы

image
Речь пойдёт о том, как можно спрятать «лишние» ассемблерные команды в обычном коде. Данный метод полезен для усложнения дизассемблирования кода, особенно, если генерацию «скрытых» команд автоматизировать.
Инструментарий: отладчик OllyDbg.

Странный странный код


Взглянем на следующий код, в котором скрыто намного больше команд, чем видно на первый згляд:
MOV EAX,1EBC031
MOV EBX,90DB3190
CMP EAX,EBX
JNE SHORT 0000009E
NOP
+116
18 мая 2012, 12:08
175
godAlex 17,0

Javascript BMP Parser

Вступление


Еще с появления скриптов для отображения PDF, извлечения информации с MP3 и декодировки H.264 меня очень заинтересовала тема чтения и работы с бинарными данными в JavaScript.

В этом посте хотелось бы рассказать про свои эксперименты и рассмотреть эти возможности на относительно простом примере «ручного» парсинга и отображения BMP-файлов (а заодно и освежить память о школьных временах работы с BMP на Паскале :) ).

Сразу хочу предупредить, что речь будет идти именно о написании JavaScript самостоятельно, а не его генерации с исходных кодов других языков с помощью какого-либо транслятора типа Emscripten.
+39
16 мая 2012, 20:31
124
RReverser 47,6

Графический «велосипед» по мотивам Turbo Vision (дела давно минувших дней) из песочницы

Относительно недавно, прочитав местную статью "Демо, которых никто никогда не видел", решил, что тоже стоит пролить свет на некоторые плоды своей программистской молодости.

Начиналось с этого:
image

+159
16 мая 2012, 19:51
68
WVitek 150,9

Использование синтезатора в качестве компьютерной клавиатуры

Недавно мне в голову пришла мысль: а нельзя ли, подключив синтезатор к компьютеру, набирать на нем текст? Я попробовал реализовать это, и у меня получилось. Моя программа считывает нажатия клавиш синтезатора и эмулирует нажатия клавиш обычной клавиатуры. В этой статье я расскажу, как это реализовать. Писать будем под Linux на C++ с использованием Qt.



+66
15 мая 2012, 17:04
58
Riateche 149,2

Бестиповое лямбда-исчисление, комбинаторы, Unlambda и числа Фибоначчи из песочницы

Далее пойдет рассказ о самом, на мой взгляд, хардкорном способе программирования.
Предмет поста непростой, путь будет долгим, а в качестве печеньки в конце я расскажу, как считать числа Фибоначчи на языке Unlambda.
+51
14 мая 2012, 16:23
92
lisyarus 6,0

Создание 1k/4k intro для Linux, часть 2

Не прошло и полгода! Как вы можете, поднапрягшись, вспомнить, в прошлый раз мы остановились на унынии и обещании нырнуть в ассемблер.
Ну что же, пацан сказал — пацан сделал. Из этого аляповатого нагромождения букв вы узнаете, как можно инициализировать OpenGL-контекст в GNU/Linux в какие-то 450 байт, высвободив ещё больше места для разворачивания таланта.

Под катом вы узнаете, как в один килобайт нарисовать что-нибудь такое:


Заинтересованные пристёгиваются и вдавливают педаль в пол, а глаз — в экран.
+101
14 мая 2012, 12:13
136
w23 117,0

Minecraft в Minecraft'e

Думаю, никому не нужно объяснять, что такое Minecraft. Простая, на первый взгляд, игра таит в себе огромные возможности. Особенно преуспели фанаты игры в строительстве различных механизмов. Был собран и калькулятор, и даже полноценный программируемый компьютер. Обсуждение таких машин непременно сопровождается комментариями вида:
Теперь надо собрать эмулятор PC в майнкрафте
И в нём запустить майнкрафт
Ждем когда в minecraft реализуют сам minecraft

Поздравляю, господа, дождались! В майнкрафте реализовали сам майнкрафт.

+66
5 мая 2012, 16:11
59
Ocelot 250,4