Pull to refresh
4
Anar Ibragimoff @ai91read⁠-⁠only

Инжир

Send message
И я, и я :-)

Мне было лет 6, или около. Отец заменил неразборную вилку от какого-то прибора (провод был поврежден). И отдал мне этот огрызок — мол если хочешь, можешь забрать себе как игрушку. Я сразу же сообразил задать уточняющий вопрос — если её вставить в розетку — из отрезанного конца посыпятся искры? Отец внимательно посмотрел на меня, немного подумал, и забрал «игрушку» :-)))
jin_x Cenzo
Увы, но статью не смогу. Сейчас нашел исходники — тихий ужас. Я был молод и горяч. Исходники такие же. :-) Проще реверсинжинерить как это делал Loiqig :-) А учитывая что прошло без малого 22 года (исходники середины 97-го), и отсутствие опыта ассемблера приблизительно с тех же времен — у меня уйдет не меньше суток-двух на вспомнить, и еще сутки на статью. Я просто не готов к такому подвигу (слишком много детей/домашних дел для этого).

Вот пример исходника колец ньютона
.286
.MODEL TINY
.CODE

org 100h

Start:
; MOV DX,3C8H
; OUT DX,AL
; INC DX

MOV AL,13h
INT 10h

; XOR CL,CL
;PAL:
; MOV AL,CL
;; AND AL,0111b
; SHL AL,4
; OUT DX,AL
; OUT DX,AL
; OUT DX,AL
; LOOP PAL

PUSH 0A000h
POP ES

REPEAT:
; MOV CX,200
MOV CL,0C8h
; XOR SI,SI
MOV dI,OFFSET ACTIVE
LOOP_Y:
PUSH CX
SUB CX,100
; MOV Y,CX
MOV bp,CX
MOV CX,320
LOOP_X:
PUSH CX
SUB CX,160
mov si,offset x_x1
; MOV X,CX
PUSH CX
CALL CIRCLE
; MOV DS:[dI],AL
xchg bl,al

; MOV CX,X
POP CX
CALL CIRCLE
; and al,00001111b
; or al,00000111b
; add al,15
; add DS:[dI],AL
; add al,DS:[dI]
add al,bl
and al,00000011b
mov bl,al
shl al,2
or al,bl
or al,00010000b
MOV DS:[dI],AL

INC dI

POP CX
LOOP LOOP_X
POP CX
LOOP LOOP_Y

; MOV SI,OFFSET D_X1
MOV Cl,4
MOVE:
; MOV AX,[SI] ;D_X1
lodsw
ADD [SI]-10,AX
; CMP WORD PTR [SI]-4,0
JGE DEC_X1
INC WORD PTR [SI]-2 ;D_X1
JMP SHORT END_D_X1
DEC_X1:
DEC WORD PTR [SI]-2 ;D_X1
END_D_X1:
; ADD SI,4
LOOP MOVE

; MOV SI,OFFSET ACTIVE
XOR DI,DI
; MOV CX,32000
MOV CH,7Dh
REP MOVSW

; MOV AH,01H
; INT 16H
; JZ REPEAT ;UNTIL KEYPRESSED
in al,60h
dec ax
jnz repeat

; MOV AX,03h
; INT 10h
RET

CIRCLE PROC NEAR
; SUB CX,X_X1
; MOV BX,Y_Y1
lodsw
sub cx,ax
lodsw
; mov bx,ax

add AX,bp ;Y
MUL AX
push ax
MOV AX,CX
MUL CX
POP DX
ADD AX,DX
SHR AX,11
RET
CIRCLE ENDP

X_X1 DW (0)
Y_Y1 DW (50)
X_X2 DW (50)
Y_Y2 DW (?)
D_X1 DW (09)
D_Y1 DW (0)
D_X2 DW (0)
D_Y2 DW (-11)
;X DW (?)
;Y DW (?)
ACTIVE DB 64000 DUP (?)
END Start



Ежели кто захочет покопаться, прикладываю архивчик работ:


Вот некоторые превьюшки из архива:
Огоньки. По-моему только ленивый не делал их. К сожалению на современном железе даже в эмуляторе все работает слишком уж быстро. Пришлось дополнительно замедлять внутри virtual box'а. Но даже это не помогает — смотрится хуже чем было на старых ламповых компах. Плюс рандом уже не тот (в качестве рандома используется мусор из памяти — теперь нет того мусора. Возможно то был мусор от qemm386, или еще какой).
fire2.com


fire3.com


fire4.com



Жизнь Конвея, куда ж без неё? :-)
life.com



Просто залипательный геометрический мусор.
shiza.com



Братья-близнецы с ротацией палитры.
hyper.com


water.com



Дыра — пытался повторить эффект из какой-то 4k-intro.
hole.com



Охтыж. Прям ностальгия. Помню эту демку. Я в те времена как-раз 128-байтниками развлекался. Она меня вдохновила на повторить.

Полез в архивы. Нашёл ту самую дискетку! :-)
Вот моя версия, анархия:
0000000000: B0 13 CD 10 B7 A0 53 53 │ 1F 07 BD 40 01 33 F6 B1
0000000010: C8 51 8B F9 8B CD 8B C1 │ 2D A0 00 F7 E0 50 8B C7
0000000020: 2D 64 00 F7 E0 5B 03 C3 │ B0 0C 80 FC 20 75 02 88
0000000030: 04 46 E2 E2 59 E2 DA BF │ 9E 7A FE C9 F3 AA BF C6
0000000040: ED B1 5F 51 AA 2B FD AA │ 2B FD 4F E2 F7 59 83 EF
0000000050: 0F AA 03 FD AA 03 FD 4F │ E2 F7 33 C0 49 03 D9 81
0000000060: FB 7A F8 77 0D 38 07 74 │ 09 C6 87 40 01 04 02 D9
0000000070: 89 07 E2 E9 B4 01 CD 16 │ 74 93 B8 03 00 CD 10 C3

gif-ка эмулятора
image


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

Вот еще пару работ которыми тогда гордился:
множество Мондельброта (ох, как я тогда радовался когда вместо 1 лишнего байта, после двух дней мучений придумал как сэкономить целых три байта, даже подпись влезла в конце файла):
0000000000: B0 13 CD 10 68 00 A0 1F │ BA C8 03 EE 42 32 C9 8A
0000000010: C1 EE 6E 6E E2 F9 BD 9C │ FF B9 C8 00 51 BA 50 FF
0000000020: B9 40 01 51 57 33 DB 33 │ FF 33 C9 52 8B C7 F7 E8
0000000030: 8B F0 8B C3 F7 E8 2B F0 │ C1 FE 06 5A 03 F2 52 8B
0000000040: C6 F7 E8 C1 F8 06 50 8B │ C7 F7 EB C1 F8 05 03 C5
0000000050: 8B D8 8B FE F7 E8 C1 F8 │ 06 5A 03 C2 5A 0A E4 75
0000000060: 06 49 80 F9 E0 75 C4 5F │ 88 0D 47 42 59 E2 B4 45
0000000070: 59 E2 A9 FE CC CD 16 B8 │ 03 00 CD 10 C3 00 41 73

image

кольца ньютона:
0000000000: B0 13 CD 10 68 00 A0 07 │ B1 C8 BF 80 01 51 83 E9
0000000010: 64 8B E9 B9 40 01 51 81 │ E9 A0 00 BE 70 01 51 E8
0000000020: 3A 00 86 D8 59 E8 34 00 │ 02 C3 24 03 8A D8 C0 E0
0000000030: 02 0A C3 0C 10 88 05 47 │ 59 E2 DB 59 E2 CF B1 04
0000000040: AD 01 44 F6 7D 05 FF 44 │ FE EB 03 FF 4C FE E2 F0
0000000050: 33 FF B5 7D F3 A5 E4 60 │ 48 75 AD C3 AD 2B C8 AD
0000000060: 03 C5 F7 E0 50 8B C1 F7 │ E1 5A 03 C2 C1 E8 0B C3
0000000070: 00 00 32 00 32 00 00 00 │ 09 00 00 00 00 00 F5 FF

gif
image


3d фонтан:
0000000000: B0 13 CD 10 B7 A0 53 07 │ BE 7E 01 B9 8C 00 C7 04
0000000010: 00 00 AD 89 3C AD AB AB │ 89 0C AD C7 04 60 04 AD
0000000020: E2 EC BE 80 01 B9 8C 00 │ 51 AD C1 F8 03 8B F8 AD
0000000030: AD C1 F8 05 05 64 00 81 │ C7 80 06 B9 40 01 F7 E1
0000000040: 03 F8 AD C0 E8 04 0C 01 │ 24 09 88 05 59 E2 D9 33
0000000050: FF B5 7D A5 89 54 FE E2 │ FA BE 7E 01 B9 18 01 AD
0000000060: C1 F8 04 01 04 7D 05 FF │ 44 FE EB 03 FF 4C FE AD
0000000070: E2 ED B4 01 CD 16 74 AA │ B8 03 00 CD 10 C3 41 73

gif
image
Хабр Каталог

Типа catalog.onliner.by, market.yandex.ru, idealo.de, но с блекджеком и всяким, для гиков.

Проблема: Вот понял я что надо бы купить домой роутер. Или телевизор. Или NAS. И это у меня впервый раз. Или последний раз изучал рынок лет десять назад. Я приблизительно знаю что я хочу, но надо что-то выбрать что актуально сегодня и имеет хорошее соотношение цена/качество. И светлое будущее. Я знаю технические параметры (2.4MHz+5MHz, OpenWRT), и… вот фиг его знает что взять.
После изучения вышеназванных catalog.onliner.by и прочих, можно сузить подходящие модели. Но это только то что подходит в теории, по заявленым производителем характеристикам.
После изученя форумов (4pda, ixbt, xda-developers, итп) можно выяснить нюансы каждого из вариантов — где-то можно накатить open-source прошивку и большое комьюнити разработчиков, где-то вообще ничего не надо делать и все прекрасно, где-то все красиво только в спецификациях, а на деле прошика глючная и стороннюю не поставить. Или можно обнаружить невзрачную по спецификациям, но реально «народный выбор» потому как «just works».
Отчасти это реализовано в обозначеных каталогах выше, но там проблемы с фидбеками от пользователей-гиков. Много фидбеков и обсуждений на профильных форумах.

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

Решение:
Хабр Каталог может стать объединением обоих миров.
— Фильтрация по техническим параметрам.
— Оценка каждой из заявленых фич пользователями. (в виде голосовалки или еще как, чтобы учитывалось не абсолютное, но отностиельное количесво голосов и тп.)
— Редактура фич продукта пользователями (исправление ошибок каталога, либо удаление/маркировка лишь номинальных фич)
— Обсуждение каждого продукта (например в виде форума с категориями для каждого продукта/семейства) — тут могут быть ветки с обсужденями модели, отзывы, прошивки, итп)
— Рейтинги типа «народный выбор», с интергацией в фильтрацию/поиск и реальная возможность влиять на них сообществом.

Да, возможно это будет yet another online catalog. Но может стать каталогом для гиков/технарей.
Facebook и Microsoft прям молодцы (странно что гугл тупит). Имея качественную распознавалку фейков, можно же использовать её для обучения сети генерирующей эти самые фейки. ;-)
Мне кажется в данном случае «overflow» лучше было бы перевести как «выход за границы». Лично я был сбит с толку заголовком — ожидал увидеть как браузеры не могут переварить огромные css, и из-за этого теряют данные dom'а. И первую четверть статьи не мог сообразить о чем вообще речь. Все-таки «переполнение» это больше про стек, буферы и массивы.
«Выход за границы и сокрытие контента».
IMHO.

Information

Rating
Does not participate
Location
Buchloe, Bayern, Германия
Date of birth
Registered
Activity