Записи за месяц: July 2012

Про CSS

CSS – язык, который был создан для удобства разметки страницы, и за 15 лет разработки превратил простейшие задачи в Ад.

Попробуйте оформить с помощью CSS такие понятные вещи, как:
– элемент произвольного размера по центру страницы, который начинает уменьшаться, когда не влезает целиком
– заверщающий элемент (footer) произвольного размера, который находится после содержимого, а если содержимое меньше экрана – в нижней части экрана

Нет, это можно сделать! Существуют целые сайты, посвящённые “center vertically” или “sticky footer”, где приведены магические заклинания, которые для этого нужно произнести. (Правда, footer случайного размера так никто и не умеет делать иначе, чем через css-3).

…Когда-то у Каганова на сайте был конкурс на лучшее слово из трёх букв. Первая, вторая и третья буквы выбирались из списков. Казалось бы, почти все буквы в списках присутствовали, но – то в одной колонке “Х” нет, то в другой “Б” или в третьей “Я”. И за какое интересное слово не схватишься – ничего не составляется. Вот и CSS так же.

Кеширование рисунков в Опере

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

(читать дальше)

Проблема

Проведите небольшой эксперимент: откройте семь-восемь огромных (не меньше 2000×3000 пикселей) картинок в отдельных вкладках, и попереключайтесь между ними. Если не знаете, где такие взять, поройтесь на Danbooru — NSFW. Видите? Каждый раз, как вы переключаетесь на следующую вкладку, картинка медленно прорисовывается снизу вверх. Это заметно на “тяжёлых” рисунках, но происходит и на мелких, даже на одной и той же странице, когда вы скроллитесь вперёд-назад.

Дело в том, что у Оперы есть два кеша: медленный кеш на диске и быстрый в памяти. Когда вы переключаетесь на следующую картинку, предыдущая выбрасывается из кеша в памяти, и потом её придётся снова загружать с диска и распаковывать (картинки запакованы для уменьшения размера).

Но почему Опера выбрасывает картинки из памяти, хотя вы открыли всего-то 7 рисунков по 5 мегабайт каждый? Это же 40 мегабайт данных, а у вас несколько гигабайт оперативки!

На самом деле, в распакованном виде эти картинки занимают гораздо больше. Умножьте 2000 на 3000 и на 4 (размер пикселя) – получите 25 мегабайт. Такова “цена” одной картинки в памяти.

И всё-таки, даже семь таких картинок – это лишь 180 мегабайт. Однако Опера почему-то устанавливает размер кеша в памяти именно таким, – маленьким, – и спешит выкинуть лишнее, хотя в результате его придётся медленно перезагружать.

К счастью, размер кеша можно задать вручную.

Решение

  1. Откройте opera:config
  2. Найдите параметр “Cache\Figure“. По умолчанию в нём стоит 2Мб. Укажите что-нибудь вроде 1Гб (в килобайтах: “1048576”, а если памяти хватает, в 64-битной Опере можно и 2-4Гб). Сохраните настройки.
  3. Найдите параметр “UserPrefs\Automatic RAM Cache“. Отключите его.
  4. Перезагрузите Оперу

Снова попробуйте открыть несколько больших рисунков. Теперь они должны оставаться в памяти и появляться мгновенно, как только вы переключаетесь на вкладку с ними.

Если хотите, можно поднять и следующие параметры кеша:

  • Cache\Document – тоже до гигабайта-полутора
  • Disk Cache\BufferSize – до 100 мегабайт
  • Disk Cache\Size – до 200 мегабайт, или сколько места у вас есть на диске, где лежит кеш

Какой размер кеша выбрать и чем это грозит

Если у вас 32-битная Опера, не делайте общий объём Cache\Figure и Cache\Document больше гигабайта, сколько бы памяти у вас не было. В 64-битной Опере можно (и даже полезно) установить суммарный объём кеша до половины объёма вашей оперативки.

Но тогда другим приложениям не хватит памяти!
Чушь. Внимательно послушайте: в системе Windows приложения не делят память. Опера может “съесть” 8Гб оперативки, и при этом для других приложений вся память будет свободна!
Чудеса? За кулисами Windows поступает так: если программе нужна память, а свободной памяти нет, она временно “убирает” часть памяти Оперы на жёсткий диск, в файл подкачки. Потом, когда Опере опять потребуется эти данные, система их вернёт в оперативку.

Получается, данные всё равно будут грузиться с диска?
Только в том случае, когда другим приложениям не хватило памяти из-за Оперы. Это должно происходить редко.

Тогда почему в 32-битной Опере нельзя поставить больше гигабайта?
Сколько бы у вас не было физической памяти, виртуальной памяти у 32-битных приложений всего по 2 гигабайта. Когда она кончится, приложение умрёт. Если вы больше гигабайта отдадите на кеш, Опере совсем не останется памяти на всё остальное.

Почему в 64-битной Опере можно поставить больше гигабайта?
У 64-битных приложений гигантский объём виртуальной памяти. Можете отвести под кеш хоть терабайт, место всё равно останется.

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

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

Что, если у меня отключен файл подкачки?
Тогда, разумеется, постарайтесь не съесть всю доступную физическую память! Сделайте кеш поменьше.

Что, если у меня постоянно запущен отжирающий 75% памяти монстро-процесс?
Тогда, разумеется, постарайтесь уместить кеш в оставшиеся 25%! Вам не нужно, чтобы система постоянно загружала-выгружала память с диска, разрываясь между вашим монстром и Оперой.

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

Бонус: какими расширениями Оперы я пользуюсь.

Cowboy Bebop

Пока лежал в больнице, заставил себя заново начать смотреть Cowboy Bebop. В прошлый раз я его дропнул на середине, а дело было шесть лет назад, и, возможно, повлиял формат просмотра – анимкой из полузнакомых и не очень понятных личностей. Кроме того, за прошедшие годы я повзрослел, поумнел, и так далее.
Так вот, посмотрев Cowboy Bebop…

Посмотрев Cowboy Bebop………

Впрочем, я его не досмотрел, а дропнул на 19-какой-то серии, как только меня выписали! Свобода! Свобода от больницы временная и от Бибопа!

Картошкамоногатари

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

Картошкамоногатари

物語

По мотивам японских народных сказок Нисио Исина
Публикуется с сокращениями

(Читать)

Пришла пора рассказать вам о трактористе Сан-Саныче, истинное имя которого Acerola Orion Kissshot Heart And Blade I Drugie Slova Iz Angliyskogo Slovarya, но ни он, ни кто-либо ещё об этом не подозревают. Если говорить о том, когда же именно пришла эта пора, то пришла она в то время, когда пришла другая пора, а именно, пора закругляться со вступлением и переходить к главе первой, а я всё ещё не знаю, о чём буду писать.

Так вот, о картошке. В детстве я очень любил картофельное пюре. Мама готовила его редко, потому, что питались мы в основном рисом, потому, что рос я в семье чокнутых отаку и роллы видел чаще, чем пельмени, но зато каждый раз для меня был как праздник. Любовь к картофелю я пронёс сквозь всю свою подростковую жизнь, и когда стал постарше, заходя в супермаркет, непременно брал себе пару килограмм картофеля.
Этим летом мы поехали “на картошку”. Забегая вперёд, скажу, что хотя мероприятие так называлось, копать нам предстояло свёклу. В странах бывшего Советского Союза словами “на картошку” обозначают любое мероприятие, связанное с выездом бесплатной студенческой силы на поля. Таким образом, название совершенно не отражает сути.
Сойдя с поезда, мы добрались до картофельной базы (на которой, вопреки названию, теперь выращивали свёклу). Тут-то я и встретил Сан-Саныча. Он лежал на обочине дороги, лишённый всех сил. Если б я его так оставил, он бы умер. Я принёс ему поллитра, он выпил и воспрял духом, с тех пор я каждый день приношу ему поллитра, что избавляет меня от части зарплаты и прибавляет ему сил. За это он согласился считать меня хозяином.
– Я специалист… – сказал Сан-Саныч Oreola Atseon etc – Специалист по тракторам. Если встретите трактор, зовите меня. Весь спектр услуг. Изгоню, приручу, отведу домой. Особенно буду рад, если вы встретите мой собственный трактор.
Однажды мы встретили его собственный трактор, но это совсем, совсем другая история.

Так или иначе, первые полдня мы собирали свёклу, а потом сели на обед. Непочатые поля свёклы давили на сознание.
– Хочешь картошки? – спросил мой товарищ по институту, которого звали Федя ОБЕЗЬЯНА. Я лихорадочно кивнул головой. Федя протянул мне свёклу.
Свёкла. Её называют “картошкой русских крестьян”. До того, как к середине 19-го века завезённая Петром Первым картошка завоевала, наконец, популярность, в деревнях выращивали свёклу. Неудивительно, что эти два овоща можно спутать. Поэтому тогда я ничего не заподозрил и отказался. Свёклу у Феди ОБЕЗЬЯНЫ взяла Таня ЗМЕЯ.

Рекламная пауза. В блю-рей версии рассказа здесь будет совершенно ничем не спровоцированная эротическая сцена с Таней ЗМЕЁЙ. Смеем вас заверить, что хотя она и змея, все отличительные черты человеческой женщины у Тани присутствуют.

На следующий день, когда мы сидели, отдыхая, над вёдрами, Федя ОБЕЗЬЯНА опять подошёл ко мне:
– Много картошки накопал? – спросил он, оперевшись об лопату. И посмотрел прямо на меня.
В этот момент я понял.
До меня дошло.
Я увидел.
Его глаза сверкали безумием. Он смотрел на меня, как одержимый. Ему нужна была картошка. Не годилось ничего, кроме картошки. К сожалению, на этом поле была только свёкла, а картошке здесь было взяться неоткуда, но эти слова я, поперхнушись, удержал в своём горле, а взамен осторожно ответил:
– Прилично…
– Где она? – спросил Федя, и я почувствовал, что это тот вопрос, на который я не могу отказаться отвечать.
ГДЕ ОНА?!
Слова Феди звенели в моих ушах, переливаясь своими сумасшедшими интонациями. Лопата в руках Феди подрагивала, готовясь сорваться в воздух и рухнуть на меня, чуть только я попытаюсь увильнуть от ответа. Где она? Откуда взять картошку на поле свёклы?!
– Там, – кивнул я в сторону мешков. Федя медленно поднял голову и посмотрел вдаль.
– Хорошо, – медленно, одобрительно кивнул он. Обливаясь потом, я ждал, но содержимое мешков Федя ОБЕЗЬЯНА решил не проверять. Он неторопливо развернулся, и волоча за собой лопату, поковылял прочь. Я уже вздохнул было с облегчением, как вдруг он остановился.
Повисла тишина. Федя не поворачивался. Я ждал, затаив дыхание и глядя ему в спину.

– Сегодня вечером её поедим, – хитро сказал Федя, и у меня внутри всё съёжилось.
– Что поедим?
– Картошечку.
Федя обернулся. На его лице блуждало самое дикое из диких, самое сумасшедшее из сумасшедших выражений, какое мне доводилось видеть:
– Она ведь не пропадёт никуда до вечера?
Бросив это на прощание, он ушёл.

– Сан Саныч, нам нужна картошка!!
Я ворвался в обиталище единственного своего знакомого из местных жителей, который мог что-либо сделать в такой ситуации. Кстати сказать, обитал Сан Саныч Celeron Chocopie в здании школы. В здании старой школы. В разрушенном здании старой школы. В подвале разрушенного здания старой школы. В грязном, зассаном подвале разрушенного здания старой школы. В домике из картона. Он был большой художник, творческая личность и безработный.
– Успокойся, – остановил он меня рукой, – Объясни, в чём дело.
– Нам срочно нужна картошка!!
– Излагай по порядку.
– Один: нам. Два: срочно…
– Достаточно, теперь в случайном порядке.
Я рассказал ему всё про безумие Феди ОБЕЗЬЯНЫ, про наш разговор и про то, как если вечером на столе не будет картошки, случится что-то страшное. А где возьмёшь картошку посреди бескрайнего свекольного поля, которое мы, кстати, до конца этой недели должны собрать?
– Может быть, поблизости есть деревня? Может, кто-то из крестьян выращивает картофель? Сбегаем, выменяем на что-нибудь, купим, лишь бы успеть вовремя и успокоить Федю…
Но все мои надежды обрубило как канат ударом топора, когда Сан Саныч произнёс:
– Бесполезно.
– Как бесполезно? – открыл я рот.
– Бесполезно, – повторил Сан Саныч, – Потому, что картошка тут не при чём.
Я только заморгал:
– А что же при чём?
– Свёкла.

Свёкла.
Я шёл по просёлочной дороге, возвращаясь на базу, и вспоминал слова специалиста по тракторам. Совхоз “Путь капитализма” был основан в 1965 году. В этом году американцы переизбрали Линдона Джонсона, а Леонов совершил первый выход в открытый космос. Тогда совхоз назывался “Путь коммунизма” и занимались здесь, в основном, выращиванием картофеля. С тех пор прошло почти пятьдесят лет.
– Как думаешь, что у нас тут растили всё это время?
– Ка, – я запнулся, – ка, картошку?
– Картошку.
– Вот как.
Поля вокруг были полны свёклы. Её хорошо узнаваемые кусты поднимались над землёй покуда хватало видимости. Не оставалось ни малейших сомнений, что в этом году картошкой тут даже и не пахло.
– Тогда куда же она делась? Что случилось в последний год? Откуда вся эта свёкла? – я указал из окна.
– Откуда? Вот и помозгуй, что случилось, а я пока решу твою проблему с Федей.
– Ты добудешь картошку? Ты же сказал, что это бесполезно. Да и где ты её найдёшь в такой глуши?
Специалист по тракторам покачал головой:
– За кого ты меня принимаешь? На ужин будет картошка, зуб даю.

Рекламная пауза. В блю-рей версии рассказа здесь будет совершенно ничем не спровоцированная эротическая сцена с Марьяной УЛИТКОЙ, о которой прежде даже не упоминалось.

И вот, время близилось к ужину, а от Сан Саныча не было вестей. Наша группа из четырёх человек собралась вокруг костра, на котором висел котелок, где разогревалась вода для варки. Федя сидел слева от меня, и с каждой секундой мне становилось всё страшнее.
Что, если Сан Саныч не нашёл картофеля или не успеет вовремя? Как поведёт себя Федя, если картошки не принесут? Пожалуй, все вместе мы его удержим, но какую травму нанесём его сознанию?
– Картошка, – бормотал себе под нос Федя, поглядывая в мою сторону, – Люблю картошку.
Я тоже люблю – но не до такой степени, чтобы сходить с ума!
Наконец, вода закипела, и Федя повернулся ко мне. Сумасшествие исказило черты его лица, рука сжала вилку так, что заскрипела сталь.
– Ну что же, – проговорил он негромко и угрожающе, – Неси картошку.
Ком встал у меня в горле. Два других товарища молчали, выжидающе глядя на меня. Он их подговорил?
– С-сейчас, – пробормотал я, лихорадочно озираясь и ища спасения в сгущающейся темноте, – К-Картошка… Да-да, картошка.
И в этот момент, когда я уже думал, что придётся драться.
Из темноты выступил Сан Саныч.
В руках он держал картошку.

Она была как раз такой, какой и должна была быть – круглой, красной, с длинным хвостиком снизу.
Она была нарисована на листе бумаги.
Лист этот принадлежал книге, толстой, страниц в 600 – очевидно, тому из какой-то энциклопедии.
– Я говорил, что наш колхоз пятьдесят лет растил картошку? – спросил меня специалист по тракторам. Я кивнул.
– Я тебя спрашивал, что случилось?
Опять кивок.
Насмешливо, по слогам, тракторист ответил:
– Ни-че-го.
Над изображением картошки в книге, которую держал в руках мой знакомый тракторист, крупным шрифтом было напечатано название энциклопедической статьи: СВЁКЛА.
– Картошку здесь растят до сих пор.
– Но погоди…
Я смотрел, ничего не понимая, на статью “СВЁКЛА”, под которой красовался рисунок картошки.
Свёкла…
Картошка…
Свёкла…
Опять картошка…
Сан Саныч ткнул коротким толстым пальцем в раскрытую страницу, прямо в рисунок овоща, из которого мама всё детство делала мне сладкое пюре:
– Это – СВЁКЛА.
Он нагнулся и вытащил клубень из одного из мешков, в которые мы вот уже два дня сбрасывали выкопанные бугристые желтоватые плоды:
– Это картошка. Ты, пацан, умудрился дожить до своих лет и их путать. Чему вас там в городе учат?
И тут я вспомнил, как мама, открывая кулинарную книгу, говорила папе:
– Корица, кориандр – кто только названий повыдумывал! Да я картошку от свёклы не отличу!
– Ха-ха-ха-ха! – смеялся папа.
– Ха-ха-ха-ха! – смеялась мама.
Они и вправду не отличали картошку от свёклы.
И неправильно научили меня.

Бип, бип, – набрал я на следующее утро номер на своём мобильнике.
– Привет, мам. Я просто звоню сказать, что картошка – это на самом деле свёкла. А свёкла – это картошка. А вы с папой идиоты. Тебе всё понятно?
– Ха-ха-ха, ты раскусил нас? Это ещё ничего, вот когда ты узнаешь, что…
– Тихо! Не говори ему!
– Папа, не перебивай! Что, что я узнаю, мам?!
– Ничего-ничего, не волнуйся. Кстати, когда у тебя выпускной?
– Я УЖЕ В ИНСТИТУТ ПОСТУПИЛ!!
– Ага, значит, ловушка 52 не сработала…
– Это была ловушка 152.
– А мне кажется, 52.
– 52 это про то, что сморкаться надо в занавески.
– СМОРКАТЬСЯ ДЕЙСТВИТЕЛЬНО НАДО В ЗАНАВЕСКИ, МАМА!!
– Ха-ха-ха, эта ещё в порядке!
– ХВАТИТ НАДО МНОЙ ИЗДЕВАТЬСЯ.
В притворном гневе я бросил трубку. Из-за моей спины, точно из ниоткуда, возник тракторист Сан Саныч, и я воспользовался этим, чтобы у него уточнить – просто на всякий случай:
– Сморкаются ведь в занавески?
– Если в гостях, то да, – кивнул Сан Саныч.
Ну слава богу, хоть с этим не обманули.