Блог Обо мне Храню Читаю Ем 99  

страница № 115



Замыкания в PHP 5.3.0

В PHP 5.3.0 будут замыкания. Бог ты мой! Не прошло и 15 лет! Надеюсь, это будут действительно анонимные функции, хотя возможность замыкания сама по себе тоже значительное событие.

Напомню как сейчас обстоит дело в PHP с «анонимными» функциями. Сделаны они хаком, поэтому я их взял в кавычки. Каждый раз, когда вы вызываете create_function PHP создаёт функцию (в глобальной зоне видимости, других нет) «\0lambda_N», где N — номер по внутреннему счётчику PHP, а «\0» — символ с кодом ноль, чтобы пользователь не смог самостоятельно создать «анонимную» функцию с произвольным номером, иначе пришлось бы просматривать все фукции с определённым префиксом и искать в нём «дыры» в номерах.

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

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

темы: webdev, php
22.07 14:17
22.07 14:17


К вопросу о псевдоиностранных брендах

С сайта компании «Эленберг»:

Торговая марка Elenberg зарегистрирована в Англии в конце прошлого столетия, а уже в 2000 году впервые появилась на российском рынке. Elenberg — одна из самых динамичных торговых марок в Восточной Европе. Менее чем за 6 лет Elenberg завоевал уважение потребителей Украины, Белоруссии, Казахстана, Молдавии, стран Прибалтики. К январю 2006 года бытовая техника Эленберг была на полках более 3000 магазинов.
«Зарегистрирована в Англии». Не подкопаешься. Но список стран потребителей, где марка (якобы) завоевала уважание, конечно же, всё показывает.

(фирма Elenber по многочисленным свидетельствам принадлежит «Эльдорадо»).
21.07 14:46
21.07 14:46


Псевдоиностранные бренды

Цитата из статьи «Зачем создают псевдоиностранные бренды?» (речь идёт об отечественных брендах, которые позиционируются как иностранные):

В России на сегодняшний день уже существует множество псевдоиностранных брендов, среди которых особо стоит выделить такие: Akira (Япония), Bork (Германия), Vitek (Германия), «Л'Этуаль» и «Рив Гош» (Франция оба), чай Greenfield (Англия), Ralph Ringer, одежда Oggi и Savage — все это российские торговые марки, которые позиционируют себя как иностранные. И делают это успешно.
Я даже не знал, что Vitek и Savage позиционируются как иностранные. И знать не знаю что такое Akira и Oggi. Не подозревал, что Bork, «Л'Этуаль», «Рив Гош», Greenfield и Ralph Ringer — росскийские бренды. Например, я думал, что Bork — китайский бренд, а Ralph Ringer к какой-то стране вообще не привязывал.
21.07 12:30
21.07 12:30


Habr, WTF?

Хабр не устаёт меня удивлять всё снижающимся качеством статей и кода. Ну вот что это:
    if(strpos($name, 'fetchRowBy') === 0) {
      array_unshift($arguments, substr($name, 10));
      return call_user_func_array(array($this, 'fetchRowBy'), $arguments);
    }
Ещё бы регулярное выражение использовал, ей-богу!

темы: webdev, php
21.07 10:14
21.07 10:14


Тетрис на SED

Sed — это потоковый текстовый редактор. На вход ему подаётся файл и команды, которые определяют как файл должен быть модифицирован. Девушка под ЖЖ-ником Uuner написала на sed «Тетрис». Объяснить насколько это круто, трудно, если вы не знаете что такое sed.

Итак, в полку прибыло: Кто ещё что знает? Я помню раньше таких проектов полно было, но сейчас уже мало что помнится.
20.07 13:48
20.07 13:48


Opera File I/O

Вышел билд «Оперы» поддерживающий File I/O (файловый доступ из веб-приложения). Тег <video> и Canvas 3D, которые так же анонсировались, поддерживаются более ранними специальными билдами (в частности, <video> появился ещё восьмого ноября, год назад).

Тем не менее на «Хабре» какой-то ненаблюдательный товарищ анонсировал последние две технологии как нечто свежеобретённое, а про технологию File I/O написал буквально следующее:

Издревле повелось на Руси, что вэб-приложения имели очень ограниченный доступ к ресурсам дисковым компьютеров юзерских, что есть оправдано, с точки зрения безопасности. Это существенно ограничивало возможности Оперовских виджетов, которые и являются этими самыми вэб-приложениями. Но времена меняются, и с помощью системы File I/O теперь есть возможность безопасно работать с файлами на клиентском компе…
На Руси издревле имеется Scripting.FileSystemObject, доступный из IE, LiveConnect (позволяющий вызывать Java-методы доступа к файловой системы из JavaScript), встроенный в своё время в браузер от Netscape и XPCOM, встроенный в Mozilla (и в FireFox).

Три решения для доступа к файлам! Единственные, кто не имели интерфейсов для доступа к файловой системе — это «Опера» и «Сафари».

темы: webdev, opera
20.07 11:34
20.07 11:34


Надёжные CSS-хаки для браузеров

Итак, у нас, оказывается, есть надёжные CSS-фильтры для всех современных браузеров. О некоторых я уже писал, но перечислю все (стиль срабатывает только в указанном браузере):
<style type="text/css">
 /* только для Opera 9.50 и выше */
 noindex:-o-prefocus, tag { display: none; }

/* только для FireFox */
noindex:-moz-anylink, tag { display: none; }

/* только для FireFox http://bolknote.ru/2008/03/14/~1623/ */
@-moz-document url-prefix()
{
        tag { display: none }
}

/* только для Safari */
@media screen and (-webkit-min-device-pixel-ratio:0){
           tag { display: none }
}

xxx\:*, tag { display: none } /* только для IE */

</style>


темы: webdev, css, safari, opera, ff, ie
18.07 17:00
18.07 17:00


Скруглённые углы на чистом CSS для Opera 9.5, FF 1.5, IE 5, Konqueror и Safari3

Всё, надоело. Никто не использует VML и SVG? Почему все делают скруглённые углы только кучей картинок или через CSS3-свойства? В общем, представляю код, который работает для Opera 9.50 и выше (через SVG background), IE5.0 и выше (через VML), на FireFox 1.5, Safari3 и Konqueror (через свойства CSS3). Та-да:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- подключаем пространство имён VML для IE -->
<!--[if vml]>
	<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
	<style> v\:* { behavior: url(#default#VML); display: block; } </style>

<![endif]-->

<title>Скруглённые углы</title>

<style type="text/css">
	*    { padding: 0; margin: 0; }
	body { background: white; color: black; font: 12px Arial, sans-serif; }

	.rounded { margin: 100px auto; text-align: center; width: 50%; position: relative; padding: 10px; }

/*
Нижеприведённые background-image работает только в Opera 9.50 и представляет собой закодированный алгоритомом base64
код SVG-картинки:

<svg xmlns="http://www.w3.org/2000/svg">
<mask id="mask">
   <rect width="100%" height="100%" rx="10" ry="10" fill="white" stroke="black" stroke-width="2"/>
</mask>
<rect stroke="black" fill="white" stroke-width="4" mask="url(#mask)" width="100%" height="100%" rx="10" ry="10"/>
</svg>


В этой картинке подготавливается бакграунд со скруглёнными углами
*/
	noindex:-o-prefocus, .rounded-svg {
		background-image: url(data:image/svg+xml;base64,cюда нужно положить base64-кодированную картинку);
		border: none !important;
	}

	/* для разных браузеров указываем rounded corner через CSS3-свойство */
	.rounded-css3 {
		border: 1px solid black;
		-moz-border-radius: 1em;     /* mozilla 1.5 */
		-webkit-border-radius: 1em;  /* safari 3 */
		-khtml-border-radius: 1em;   /* Konqueror */
		border-radius: 1em;          /* CSS3 */
	}
</style>

</head>

<body >
	<!--[if vml]><v:roundrect class="rounded" strokecolor="black" strokeweight="1px" arcsize="0.25" ><![endif]-->
	<!--[if !vml]>--><div class="rounded rounded-css3 rounded-svg"><!--<![endif]-->
		<p>Вот эти ребята!</p>
	<!--[if !vml]>--></div><!--<![endif]-->
	<!--[if vml]></v:roundrect><![endif]-->
</body></html>
В коде есть несколько хаков. В частности, для «Оперы» я использую background, вставленный как SVG-изображение, через data URL. Поэтому приходится выключать border, иначе он закрывает края background. SVG закодировано в base64 (функция base64_encode в PHP), потому что оно занимает так меньше, чем в URL encoded.

Далее. Для IE включается VML, это, если кто не знает, появившаяся ещё до SVG технология построения векторных изображений. Более мощная, чем SVG, кстати. Весь VML включается через условные комментарии и другие браузеры этого безобразия не видят, в том числе их не увидит и валидатор (хотя ему и без VML тут есть на что поругаться).

Для остальных браузеров используются их префиксное свойство border-radius, которое включено в CSS3.

темы: webdev, css, ie, opera, safari, firefox, css3
18.07 16:08
18.07 16:08


Толстовки им. Лебедева

Купили две толстовки от студии Лебедева (Бирман, вот тут я могу обосновать почему я говорю «от»). Хорошие впечатления: удобные тёплые, очень удачно закрывает ладони, хорошо сидят и материал приятный. Интересный крой плеча (на фото видно).

Толстовки от Лебедева (106.51KB)

18.07 12:01
18.07 12:01


Куда пойти в Москве-4

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

Музей современного искусства (35.58KB)
Московский музей современного искусства
открыт каждый день с 12 до 20:00, кроме последнего понедельника месяца.
находится по адресам: Петровка, 25 (м. Чеховская), Ермолаевский переулок, 17 (м. Маяковская) и Тверской бульвар, 9 (м. Тверская)
билет — 100 рублей
тема: современное искусство



Музей мебели (38.46KB)
Музей мебели
открыт с 10 до 18:00 ежедневно, кроме понедельника
находится: ул. Таганская, д. 13, строение 3 (м. Таганское, м. Марксисткая)
билет — 40 рублей
тема: выставка отреставрированной мебели в обстановке своего времени



Орудия пыток (30.43KB)
Орудия пыток средневековья (фотографии из ЖЖ victorprofessor)
находится: ВДНХ, 11-й павильон
билет — 150 рублей
тема: иммитационная выставка орудий пыток



Подводный мир (37.05KB)
Подводный мир на ВДНХ (фотографии из статьи сайта «Минибанда»)
находится: ВДНХ, 11-й павильон
билет — 150 рублей
тема: обитатели подводного мира, рыбы и животные (крокодилы, черепахи, огромная жаба)

темы: museum, recreation
17.07 13:28
17.07 13:28


Что знают двое, знает и свинья

Интернет — чудесная штука. Есть теория, что все всех знают через шесть знакомых. Тётя Маня рассказала Рузалие, та — своему сыну Марату, тот — своему другу Игнату, тот — своему любовнику Панкрату, тот — своей подруге Насте и вот через какое-то время половина Рунета узнаёт что…

Всё всплывает. В Казани «навсплывало» в последние годы столько, что можно писать книгу. Последние вести с полей, касаемо планируемой в 2013 году Универсиады (слово-то какое, Бирман, тебя уже тошнит?)

Делается это так. в «ничейной» структуре заказываются те же, скажем, футболки с логотипом той же, скажем, универсиады. без предоплаты, но по сказочно вкусной для производителя цене. единственное но: оригиналы договоров, с синими печатями, всячески задерживаются, и у производителя на руках остаются только невнятные факс-копи документов, в том числе дающих право на использование символики. а потом за продукцией приезжает не заказчик, а обэп.

и в новостях на гтрк сратостан выходит бравурный сюжет о разоблачении еще одной пиратской шайки, организованные групперовщеги которой наживались на всенародной универсиаде, шлепая в подпольном цеху футболки с ее логотипом, не имея на то никаких разрешений, кроме пачки сомнительных подделок. готовая продукция изымается, дальше в одну структуру, силовую, идет акт об уничтожении особо опасного контрафакта, в другую, денежную, акт приемки выполненных работ от уже совсем другой фирмы…
Чего только не узнаешь из ЖЖ.
15.07 12:31
15.07 12:31


Кого волнует ваши красота и здоровье?

Спам пришёл. «Ваша красота+здоровье — наша проблема!». Звучит угрожающе.
15.07 11:17
15.07 11:17


Доставка воды: 19 л. versus 5 л.

Я не пью воду из под крана. Мне вполне достаточно, что за полгода у меня заметно сократилось количество волос (почему-то только на голове) и ухудшилось состояние кожи. Пить это вовнутрь страшно. В общем, воду мне возит «Утконос», вместе с остальными продуктами. Я заказываю бутыли по 5 литров.

Недавно я подумал, что заказывать воду по 19л (большие бутыли, которые заказывают в офис) наверняка выгоднее. По крайней мере, в Казани так и было. Нашёл в «Яндексе» несколько фирм по доставке воды… От 13 до 20 рублей за литр в 19 литрах против 7 рублей в пятилитровых бутылях!

Всё, что казалось логичным в Казани, в Москве не работает.
15.07 09:54
15.07 09:54


Зона .www

В свете обсуждения возможности регистрации доменов первого уровня, хочу заметить, что тот, кто первым догадается выкупить «.www» — озолотится. Интересно, «Яндекс» купит зону .ya? Смотрите как здорово:

wow.ya
money.ya
direct.ya
www.ya

темы: yandex
14.07 16:45
14.07 16:45


Ни посещаемости, ни денег.

Нет, ничего не изменилось. Залазим в статистику и получаем несколько региональных ресурсов на всю страну, у которых есть аудитория и деньги: екатеринбургский E1, новосибирские НГС и Электронный город, челябинский 74.ру и все! Потом резкий разрыв — у остальных нет ни посещаемости, ни денег.
Из интервью с Ларьяновским. Стоп-стоп, а как же AdMe.ru, к примеру, или там WebPark?
14.07 10:52
14.07 10:52

страница № 115

Евгений Степанищев (imbolk@gmail.com)
t=0.071