February 27th, 2008

moose, transparent

знак на ассемблере

(эта запись будет интересна только программистам)

Расс Кокс рассказывает о супероптимизации - технике поиска самого быстрого куска кода путем полного перебора инструкций процессора (конечно, это работает только для очень коротких кусков кода). Любопытный пример там - самое быстрое воплощение функции знака (-1, 0 или 1 в зависимости от знака аргумента) на ассемблере 80x86. До такого вручную действительно додуматься нелегко:

cwd
neg ax
adc dx, dx

Здесь начальный аргумент лежит в ax, значение помещается в dx. Работает следующим образом: сначала cwd расширяет знак ax в dx, после чего в dx лежит -1, если аргумент отрицательный, а иначе 0. neg ax меняет знак ax, но это на самом деле неважно, а важно то, что эта инструкция помещает в флаг carry единицу, только если аргумент был ненулевой.

Наконец adc dx, dx складывает dx с самим собой, добавляет carry от второй инструкции, и помещает результат в dx. В результате выходит:

- если ax<0, то dx вначале -1, carry равен 1, результат равен -1*2+1 = -1 (во как!)
- если аx=0, то dx вначале 0, carry равен 0, результат 0*2+0=0
- если ax>0, то dx вначале 0, carry равен 1, результат 0*2+1=1

Красиво!
moose, transparent

статус апдейт

Полторы недели без кофе, полет нормальный.

Ломки как таковой пока не было, и наверное не будет. Но зато открыл для себя заново, что такое сонливость, и что такое, когда неудержимо клонит спать. Забавно: я искренне считал, что кофе на меня более не действует, но, видимо, это было не совсем так. От каждой конкретной чашки мне я действительно не чувствовал себя нисколько бодрее, и не было ни легче, ни тяжелее уснуть после нее; но вместе эти шесть семь ежедневных чашек кофе создавали взвинченность, которая держалась все время и спадала только с трудом. Обычно мне нужно было не меньше десяти минут, чтобы уснуть, а иногда были проблемы с этим; сейчас я проваливаюсь в сон за минуту.

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

Иногда пью чай, специально себя в этом не ограничиваю, но чаще раза в день обычно не выходит. Кофе ни в каком виде пока.
moose, transparent

чуть-чуть об английском

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

"И - не знаю, насколько это полезный совет - существительное вообще стоит воспринимать вместе с артиклем. Т.е. артикль это не отдельное такое слово, которое неизвестно, когда надо, когда не надо - а просто вот есть "a flight", а есть "the flight", почти что разные слова, в разных ситуациях употребляются, и когда пишешь существительное, из того, как ты его используешь, сразу вытекает, какая версия подходит. Если что-то, что раньше не упоминалось, новое, скорее всего с "а", если что-то уже известное из предыдущих слов, или контекста, или уникальное по природе, скорее всего с "the". Если во множественном числе и не знакомое, или если одно из многих исключений и фиксированных выражений, к которым постепенно привыкаешь, то без артикля. Это решение принимаешь, когда о слове думаешь, а не постфактум пытаясь расставить артикли."

Добавлю: стоит стараться развивать в себе внимание к этому. При чтении (например, своих же предложений), слово с неправильным артиклем или без артикля должно ощущаться, как что-то неверное, выбивающееся из ряда, мешающее. Можно сказать себе: слово без артикля просто так не может быть, оно должно этот статус "заслужить". Если нет веских на то причин, у него должен быть артикль, иначе это грубая ошибка.