Позднее Ctrl + ↑

Цитата о связи рыночной цены и производственных издержек

В эфире снова Марри Ротбард. На этот раз он объясняет нам, что цена продукта на рынке влияет на то, какими будут издержки на его производство, а вовсе не наоборот, как думают многие. Собственно, этих многих он сразу же и мочит (курсив из оригинала; многоточия — мои пропуски):

Strange as it may seem, a great many writers on economics have deduced... that costs determine price. The price of the good discussed above is 100 ounces per unit, allegedly because the cost (average money cost) is 100 ounces per unit. This is supposed to be the law of price determination «in the long run». It would seem to be crystal clear, however, that the truth is precisely the reverse. The price of the final product is determined by the valuations and demands of the consumers, and this price determines what the cost will be. If the consumers value the product mentioned above so that its price is 50 ounces instead of 100 ounces, as a result, say, of a change in their valuations, then it is precisely in the «long run», when the effects of uncertainty are removed, that «costs of production»... will equal the final price. We have seen above how factor incomes are at the mercy of consumer demand and fluctuate according to that demand. Factor payments are the result of sales to consumers and do not determine the latter in advance. Costs of production, then, are at the mercy of final price, and not the other way around...

In the real world of uncertainty it is more difficult to see this, because factors are paid in advance of the sale of the product, since the capitalist-entrepreneurs speculatively advance money to the factors in the expectation of being able to recoup their money with a surplus for interest and profit after sale to the consumers. Whether they do so or not depends on their foresight regarding the state of consumer demand and the future prices of consumers’ goods... [The error] comes from viewing the economy from the standpoint of an individual entrepreneur rather than from that of an economist. To the individual entrepreneur, the «cost» of factors is largely determined by forces outside himself and his own sales; the economist, however, must see how money costs are determined and, taking account of all the interrelations in the economy, must recognize that they are determined by final prices reflecting consumer demands and valuations.

Предыдущие цитаты из книги:

Бонусы списываем, копим?

Большинство супермаркетов постепенно перешли со скидок на бонусы. То есть ты покупаешь, и тебе какой-то процент потраченной суммы сваливается в виде «бонусов» на карту. И потом можешь их потратить в этом же магазине.

Бесит, что на кассе всё время спрашивают: «Бонусы списываем, копим?». Владельцев супермаркетов, конечно, можно понять. Кого невозможно понять, так это чудаков, которые предпочитают бонусы копить. Нахера их копить, блин? Если вам нравится раздавать бесплатные кредиты, так чего мелочиться, почему бы вам не основать сразу Банк Щедрости? Будет куча желающих воспользоваться вашими уникальными услугами.

Ясное дело, списываем.

Ссылка по теме: Вам сколько пакетов?

Темы оформления в Эгее 2.4

Так, ну первые баги беты новой Эгеи я починил — спасибо всем храбрым ребятам, кто рискнул поставить её. Теперь рассказываю про штуку с темами оформления.

Как в принципе работают темы в Эгее

С точки зрения ядра, всё, что идёт наружу (ХТМЛ, ЦСС и Джаваскрипт) — это «тема оформления». Чтобы отдать любую страницу, ядро готовит данные и отдаёт их в шаблон main.tmpl.php. Шаблон может использовать другие шаблоны, подключать стили и скрипты — это уже его заботы, ядру безразлично, как именно он генерирует страницу.

Есть только момент, связанный с наследованием. Ядро пытается использовать main.tmpl.php из папки вашей темы (/themes/yours/main.tmpl.php). Если файла нет, то берёт из родительской (допустим, из системной: /system/theme/main.tmpl.php). Когда main.tmpl.php вызывает, допустим, footer.tmpl.php, ядро, снова, сначала ищет такой файл в используемой теме, потом в её родительской и так по цепочке вплоть до системной темы.

Это позволяет делать одну тему на основе другой, переопределяя только то, что нужно. Ещё разные подробности о темах оформления есть в документации.

Что изменилось и почему

Ядро как раньше отдавало все данные в main.tmpl.php, так и сейчас отдаёт. Логика наследования тоже осталась прежней.

Но поменялась сама организация комплектных тем, и то, кто из них чего откуда наследует. Раньше в системной папке /system/theme/ лежала «Классическая» тема, то есть стандартная тема оформления Эгеи. Остальные темы лежали в /themes/*/ и наследовали от системной. Получалось, что любая ваша тема неизбежно наследовала от «Классической» и описывалась не в формате «хочу так», а в формате «хочу не так, как в „Классической“, а вот так». У «Классической», хоть она и весьма нейтральна, есть своё мнение по некоторым вопросам. При этом не опираться на неё совсем — невозможно, потому что в ней живёт вся логика фронтенда.

В новой версии «Классическая» тема переехала в /themes/classical/ и больше не претендует на основу всего. Системная же тема, живущая в /system/theme/, теперь выглядит совсем голой, это такая тема «без дизайна», но со всей логикой. Она навязывает вам намного меньше своей воли.

Теперь все комплектные темы (включая «Классическую») содержат по одному шаблону — layout.tmpl.php. В нём определён весь ХТМЛ-каркас темы. Все остальные шаблоны с мелочами определены в системной. При этом по-прежнему ничего не мешает в своей теме переопределить любой шаблон, как и раньше, просто новая конструкция помогает в большинстве случаев отделаться одним файлом.

Соответственно, чтобы создать свою тему, вам теперь не нужно в большинстве случаев вообще ходить в папку /system/theme/ и смотреть, как там что устроено. Вы просто копируете приглянувшуюся папку из /themes/, называете как вам нравится и меняете в ней всё по вкусу.

Как прикрутить свою старую тему к Эгее 2.4

Лучше переделать тему по новым правилам, но есть хак чтобы быстро воткнуть старую.

Темы, написанные для 2.3 оказываются несовместимы с 2.4 только потому, что они рассчитывали на другую иерархию, наследовали от старой системной или другой комплектной темы. Поэтому, если взять родительскую тему (темы?) из старой, то всё заработает. Если у вас не сохранился дистрибутив Эгеи 2.3, скачайте его.

Возьмите системную тему оформления из Эгеи 2.3 (папка /system/theme/) и положите новой в /themes/system_2_3/. Теперь откройте файл вашей темы theme-info.php. Используете ли вы какую-то другую тему из Эгеи 2.3 в качестве основы для своей с помощью поля based_on?

Если нет, то всё просто: значит ваша тема основана на системной теме Эгеи 2.3. Тогда в ваш theme-info.php допишите:

'based_on' => 'system_2_3',

Если да, то из дистрибутива Эгеи 2.3 вам нужно будет взять ещё и ту тему, на которой основана ваша. Предположим, это «Просторная». Тогда надо взять папку /themes/spacious/ из старого дистрибутива и положить в /themes/spacious_2_3/, а в вашей теме прописать так:

'based_on' => 'spacious_2_3',

Но это не всё. Сама-то «Просторная» из 2.3 основана на системной из 2.3, поэтому эту связь тоже придётся прописать. Зайдите в /themes/spacious_2_3/, откройте её theme-info.php и допишите там:

'based_on' => 'system_2_3',

Теперь вы восстановили всю иерархию зависимостей тем оформления, которая у вас была раньше.

Есть ещё одна проблема: в старых Эгеях использовалась фича ПХП под названием short_open_tag. Эта опция позволяет в качестве тега ПХП-кода использовать краткую форму <? ?> вместо длинной <?php ?>. В новой Эгее я от этого отказался, потому что от этого с какого-то перепугу отказался в последних версиях сам ПХП. Но темы, которые вы взяли из старого дистрибутива используют короткую запись. Соответственно, вам надо либо во всех файлах заменить <? (но не <?=) на <?php, либо, если вы используете более старую версию ПХП, которая ещё поддерживает short_open_tag, включить эту фичу в Эгее (для этого откройте .htaccess из корня и исправьте там в обоих местах short_open_tag off на short_open_tag on).

Почему это всё хак и лучше так не делать? Как минимум потому, что в новых темах много чего причёсано и появились радости типа затухания подсветки ссылок. Если вы воткнёте всё старое, то это потеряется. Ну и потеряется смысловая часть фронтенда, появившаяся только в новой версии, например, блок «Популярное», социокнопки, подсветка синтаксиса. Так что рекомендую потратить полчаса и переделать свою тему по новым канонам, чтобы она наследовала от новой «голой» системной.

Правильное время съёмки у фотографий

Я люблю, чтобы у фоток в метаданных было правильно прописано время съёмки. Но я никогда в жизни не полезу разбираться, как настраивать часы на фотике (да и если бы это было легко делать, я бы всё равно забывал). Вместо этого я фотографирую часы в поездках — благо, их полно на транспорте, да и на улицах многих городов — а потом корректирую время фоток по ним.

Правильное время съёмки у фотографий

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

Это секундное движение, а главное — оно не требует никакой дисциплины: время можно прописать в любой момент, когда понадобится. Вот я сегодня искал какую-то фотку из старой своей поездки, 2005 года, а там время неправильное. Быстро нашёл часы (благо, всякие табло я фотографировал всегда), всё подправил.

Прикольно, когда в каком-нибудь кадре попадаются часы случайно, а у тебя время кадра соответствует времени на этих часах, хотя ты и не по ним подкручивал:

Правильное время съёмки у фотографий

Да, конечно, фотик должен сам знать текущее время безо всякой настройки, как телефон. Но мой пока не знает.

Дискуссии по понедельникам: что хорошего в патриотизме?

Продолжаем рубрику «дискуссии по понедельникам». В понедельничных заметках разрешены комментарии. Я удаляю офтопик, мат не по делу, личные оскорбления, анонимные комментарии. Темы дискуссий — это темы моего блога: дизайн, технологии, музыка и жизнь.

В предыдущей серии: нумерация выходов из метро.

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

Что такое патриотизм? Как он помогает людям? Что было бы в жизни хуже, если бы патриотов не было? А что стало бы лучше, если бы стало больше патриотов? Вы считаете себя патриотом? Гордитесь своей родиной? В чём это выражается? Пытаетесь ли склонить к патриотизму своих детей, родственников, друзей? Могут ли вообще патриотические чувства возникнуть у человека без патриотического воспитания? Кстати, о родине: что считать родиной? На какую территорию распространяется патриотизм? Если я родился в СССР, то могу ли я считать Киев своей родиной? Или это не патриотично? Как быть патриоту, рождённому в 90-е в Симферополе?

Пишите всё, что думаете по этому вопросу.

Фильтерия: Lost in the Wild

Есть такой гениальный музыкант — Фильтерия, он пишет прекрасный олдскул-гоа. Оказывается, у него осенью новый альбом вышел (как всегда на Сантрипе), а я всё пропустил.

Люблю такое:

Одновременно налить сиропа и создать настроение полной обречённости, да ещё и с таким сказочным звуком — это уметь надо.

Вот ещё обзоры и обсуждение на «Сайньюсе»:

Filteria’s 4th album is the most impressive electronic [uptempo] album I have heard so far all year. I feel that Jannis challenged himself, and experimented the most with this album to date. It shows. The end result is a milestone in Psychedelic Goatrance, highly Recommended.

Кайфные названия треков

В старые времена почти все пситрансовые треки назывались как-нибудь про космос, наркотики или восточную мифологию — cейчас такой фигни стало меньше. Во все времена радовали остроумные, изобретательные или просто неожиданные названия. Вот некоторые кайфные (справа; слева исполнители):

Baal No Window
Kadasarva Trylon And Perisphere
The Misted Muppet Photos Of Ghosts
Digital Talk New Age Surf
Logic Bomb Sonic Algebra
Man With No Name Axis Flip
Hypersonic Dramatic Combo
Overend Show
Infected Mushroom Cream
Benza Duck And Cover
Troll Scientists Phone The Lab
Ananda Shake Banana Banji
Team 18 9+9
Analog Pussy Spooky Loops
Generator Man
Sabretooth Smooth Hound
Bio-Tonic Mexicosed Brains
Toï Doï Fusion Froide
Igor Swamp Stiff Manure
Sattel Battle 2 Step Chase
Fungus Funk F People
Cactus We Love Radio
Xatrik Play This Tune
Beat Hackers Notes Junky
Psytekk Closing The

Всякая длинная чушь:

Phi Everything Never Can’t Stop Us, Dude
We Can Go To Your Country
Slum Get Close Behind Men Only Of Pretense
Don’t Miss The Aimed Loot
Sneak, Beneath My Notice
Rhombus New Wave Saturday Night Chickens
Hydraglyph Dude, Where’s My Dignity

Самые крутые названия:

Cujorious One Speaker Bite Me
Derango Confusion is Next
Analog Pussy Audio Santo
Scorb Ipso Fvcto
Transwave My Dear Medical Assurance

Сами треки эти, кстати, по большей части тоже хорошие.

Ещё название исполнителя у Xerox & Illumination крутое.

А из своих названий я доволен этими:

Ninth Of Kin Skin Care
Soda
Too Keen
Ilya Birman Sundae on Monday

Бэкенд и админка

Хватит называть админку «бэкендом».

Бэкенд — это серверная сторона сайта (клиент-серверного приложения). А часть интерфейса, доступная только администратору — это админка. Бэкенд нужен и общедоступной части сайта, а у админки есть и фронтенд.

Эгея 2.4 бета

Готова бета новой Эгеи 2.4 (сборка v2821). Этот релиз посвящён докрутке, доделке и допилке многого из того, что раздражало в прошлых. Дочитайте эту заметку до конца (это не спам), прежде чем скачать и что-нибудь себе сломать.

Что нового? Главное:

  • Фоторама (четвёртая) теперь в комплекте, не надо больше мучиться с прикруткой и настройкой;
  • социокнопки теперь тоже в комплекте (используется скрипт Соушел-лайкс Артёма Сапегина с моим оформлением), в настройке просто включаешь галочку «показывать социокнопки», и социокнопки есть;
  • ссылки на популярные заметки блога под постами (как у меня в блоге уже давно);
  • подсветка синтаксиса кода с помощью «Хайлайта» Ивана Сагалаева (нужно завернуть код в тег <code></code>, и всё сработает само);

Второстепенное:

  • простая поддержка ретины: в заметках все картинки с названиями, заканчивающимися на @2x, будут вставляться уменьшенными вдвое (то есть если есть фотка 1536 на 1024, а файл называется photo@2x.jpg, то в ХТМЛ-коде будет img width="768" height="512"; чтобы сработало, размеры картинки должны быть чётными);
  • из поля названия заметки в поле текста теперь можно перейти просто энтером, как в почте — мелочь, а очень приятно;
  • кнопка Выход переехала подвал экрана Настройки; теперь в правом верхнем углу просто шестерёнка висит, очень аккуратно смотрится;
  • более внятные и систематизированные сообщения об ошибках в случае некорректных прав файлов на сервере — теперь движок чётко объяснит, каким файлам какие права надо поставить, если обнаружит, что у вас непорядок;
  • много разных оптимизаций (у кого много десятков черновиков — они перестанут тормозить);
  • защита от подбора пароля перебором вернулась;
  • причёсаны встроенные темы оформления (добавились всякие радости типа затухания ссылок при расховере).

Исправленные неприятности:

  • урлы Ютюба лучше определяются, всякий шлак после ? или # больше не мешает;
  • больше не используется short_open_tag, потому что новые версии ПХП его не поддерживают (уроды);
  • если инсталятор не сможет получить список баз данных, то он даст вам поле ввести название вручную (раньше приходилось выключать джаваскрипт, чтобы его обхитрить);
  • если сделать два черновика с одинаковыми названиями, потом было непросто отредактировать любой из них (детская ошибка была; вся инфраструктура была готова для разруливания таких конфликтов, но в ответственном месте я её не использовал);
  • некоторые очень старые заметки или комментарии могли не отображаться при некоторых конфигурациях ПХП;
  • при загрузке картинки в редких случаях они могли затирать собой ранее загруженные с таким же именем (простите);
  • иногда в ссылки попадал мусор вроде ?raw или ?page, по идее больше не должен;
  • размеры картинок в коде были прописаны исходя из размера файлов, но при этом в ЦССе был указан box-sizing: border-box, поэтому у картинок с рамками (например, картинки-ссылки) реальный размер оказывался на два пикселя меньше;
  • интерфейс вставки тегов фигово работал на Айпаде (спасибо Мурату Шидакову за фикс);
  • загруженные в заметки аудиофайлы не отображались объектиками под текстом, и их нельзя было удалить через интерфейс.

Одна из глобальных подкапотных переделок связана с упрощением системы тем оформления. Но вот тем, кто однажды преодолел сложности старой системы и создал себе свою тему, новая готовит новые сложности: старые темы с ней несовместимы. Есть грязный хак, который позволяет их быстро прикрутить, я про него напишу отдельную заметку. Отдельно напишу и о том, чем хороша новая система и как её использовать. А пока —

Если у вас используется ваша собственная тема оформления, пока не обновляйтесь до этой беты 2.4 (но если вы Артём Поликарпов, то приходи в скайп). Если же вы используете одну из стандартных тем, то всё окей. Они все адаптированы к новой системе, правда, в каких-то мелочах могли поменяться.

Как бы там ни было, сделайте бекап всей папки с движком, а то мало ли что. Убедитесь, что бекап вашей базы там тоже лежит в папке /user/backup/. Только после этого качайте бету и пробуйте. Чтобы обновиться, нужно, как всегда, заменить .htaccess, папку /system/ и все подпапки /themes/ новыми.

О подозрительных предметах сообщайте машинисту: ilyabirman@ilyabirman.ru.

Добавлено на следующий день: Баги с бесконечными редиректами у тех, у кого нет мод-реврайта; с недоступностью базы данных; с шорт-опен-тегом в index.php исправлены, по ссылке уже более новая сборка.

Добавлено 26 мая: Беты больше нет, есть финальная версия.

Ранее Ctrl + ↓