Кстати недавно эту тему тоже изучал, могу дать пару советов:
1) если компьютер используется без UPS, то для быстрого восстановления раид-массива можно включить cохранение битовых карт (write-intent bitmap) — суть в том что перестраиваться будут только помеченные как «несохронизированные» области:
mdadm --grow --bitmap=internal /dev/md0
Желательно ещё этот файл вынести во внешний файл, правда проверяйте вывод /proc/mdstat — у меня на убунте из-за бага с внешним файлом не заводится…
2) Для ускорения синхронизации можно подправить параметры ядра (пока не поменял этот параметр 3 тбайтный массив синхронизировался почти 2 дня):
Ну это понятно, это называется «динамические классы», __get же срабатывает для не инициализированного свойства (isset($a->b)==false). Делать из php строгие неизменяемые классы конечно тоже не надо.
Вообще программируя на JavaScript и ActionScript очень часто посещает голову мысль «вот здорово если бы в php было бы также»… Но у каждого языка свои плюсы и свои минусы)
Во всём можно найти плюсы, согласен с вами магические методы __get и __set также могут найти своё применение. Лучше всего для разработчика когда есть и то и другое, то есть можно задать как традиционный getter/setter так и магический __get/__set для несуществующих свойств.
Так в текущем языке по одной простой причине — так проще разработчикам, выкинуть очередной недофункционал с помощью костыля (тот же __get, __set), чем менять синтаксический анализатор и вычищать потом кучу багов.
Кинуть исключение логично, ну или как минимум warning и вернуть null. Вы рассуждаете с точки зрения текущего функционала php. Я же говорю о том что можно реализовать.
Можно ещё упомянуть, что когда php был маленький, то для работы с массивами сначала были безпрефиксные функции типа sort(), usort(), count()… По мере развития php они придумали префиксы array_, однако они не стали ломать обратную совместимость.
Что вы хотели сказать постом, что PHP развивается? Да в PHP много несостыковок, вызванных очень бурным развитием от простого скрипта для сборки шапки-футера маленького сайта, до мощного ООП языка.
Хотя согласен, данный пример функция явно символизирует нескоординированность разработчиков, учитывая что обе эти функции появилмсь в php 4.0.6
Логин может быть любой почтой, пароль произвольный. Режим параноика нужно включать только если вы используете один пароль на разных сайтах.
Хотя для безопасности было бы неплохо указать номер телефона и/или email для восстановления, т. к. гугл при доступе из другой страны будет подозревать тогда во взломе, и спрашивать номер телефона, и тогда логина и пароля будет недостаточно. Ну и совсем безопасно — включить двухфакторную авторизацию.
Дело не в тормозах, а в том, что DirectX вывод (какой-нибудь 5-ой версии) вовсе не поддерживается из-за чего получается «чёрный экран» Типичный пример — NFS 4 — в windows XP он не запускается (хотя вроде есть неоф. патчи), а в win98 нет поддержки виртуалкой d3d.
Есть только одно НО: ускорение в VMWare работает только начиная с Windows XP (имеется в виду гостевая ось), а очень старые игры могут не работать уже и в XP.
Как минимум нужно при этом сделать об этом уточнение, кроме того, указать, что используется jQuery (соответственно надо подключить).
В любом случае код крайне неудачный, так как заставит на стороне клиента перестроить всё DOM-дерево, и возможно что-то перестанет работать, если к элементам были привязаны события или свойства.
Лучше уж тогда так, с событием инициализации:
$(function(){ $('body').append('...html...'); });
// хотя скорее prepend('...html...'), т. к. вставить надо в начало...
Спасибо! Хотя не понял причём тут «сложная маска»? В качестве маски в статье используется изображение, и оно может быть каким угодно сложным. Кроме того для работы метода не требуется включённый JavaScript (по крайней мере в браузерах где есть поддержка SVG).
Судя по консоли Firefox, внешние изображения не грузятся по соображениям «безопасности»:
Попытка нарушения системы безопасности: содержимое «http://paulzi.ru/habr/svg-alpha/out.svg» не имеет права загружать данные из paulzi.ru/habr/svg-alpha/mask.jpg.
Как хранить маску — решать вам. Хотите, используйте растровую маску, хотите — используйте всю мощь SVG для отрисовки маски (фигуры, полигоны и многое другое), хотите с помощью JavaScript — ничто вас здесь не ограничивает. Я показал лишь пример, что применять лучше — зависит от задач. Если у вас есть большая картинка с прозрачным фоном, на котором аккуратно вырезан человек — тут «геометрии» в маске мало. А если нужна просто аватарка вырезанная в форме «звезды», то конечно выгоднее использовать векторную маску.
На сколько я знаю, в VML нет аналогов SVG Mask, поэтому наложить растровый альфа-канал не получится, максимум что можно сделать — это использовать векторную маску. Поправьте меня если я не прав.
1) если компьютер используется без UPS, то для быстрого восстановления раид-массива можно включить cохранение битовых карт (write-intent bitmap) — суть в том что перестраиваться будут только помеченные как «несохронизированные» области:
Желательно ещё этот файл вынести во внешний файл, правда проверяйте вывод /proc/mdstat — у меня на убунте из-за бага с внешним файлом не заводится…
2) Для ускорения синхронизации можно подправить параметры ядра (пока не поменял этот параметр 3 тбайтный массив синхронизировался почти 2 дня):
либо так в ubuntu:
Вообще программируя на JavaScript и ActionScript очень часто посещает голову мысль «вот здорово если бы в php было бы также»… Но у каждого языка свои плюсы и свои минусы)
Что вы хотели сказать постом, что PHP развивается? Да в PHP много несостыковок, вызванных очень бурным развитием от простого скрипта для сборки шапки-футера маленького сайта, до мощного ООП языка.
Хотя согласен, данный пример функция явно символизирует нескоординированность разработчиков, учитывая что обе эти функции появилмсь в php 4.0.6
Хотя для безопасности было бы неплохо указать номер телефона и/или email для восстановления, т. к. гугл при доступе из другой страны будет подозревать тогда во взломе, и спрашивать номер телефона, и тогда логина и пароля будет недостаточно. Ну и совсем безопасно — включить двухфакторную авторизацию.
В любом случае код крайне неудачный, так как заставит на стороне клиента перестроить всё DOM-дерево, и возможно что-то перестанет работать, если к элементам были привязаны события или свойства.
Лучше уж тогда так, с событием инициализации: