Английский художник Бенедикт Радклифф создал эту невероятную скульптуру Тойоты Короллы в натуральную величину, используя только проволоку. Выглядит как компьютерный макет, но она настоящая!
(Под катом) ещё несколько фоток.
Несколько интересных "открытий" было совершено в борьбе за кроссбраузерность клиентской части нового чата. Два дня жесткого секса с кодом и гуглом выявили мои глубокие чувства к ослобраузерам ИЕ. В двух словах:
Задача: надо создать группу радиобатонов и поместить их в контейнер в документе.
Решение: тривиальное
for (var i=0; i<5; i++){
var rb = document.createElement("input");
rb.type = "radio";
rb.name = "group1";
holder.appendChild(rb);
}
всё хорошо и красиво, все плачут от счастья... пока в голову не приходит мысль на наши радиобатоны покликать. В ИЕах не кликается. Ваще.
Перекапывается код на предмет неточностей, несоответствия стандартам - всё вроде правильно. Поиски в гугле выявляют, что наш ненаглядный осёл, оказывается, не может некоторым динамически создаваемым элементам задавать name. Многие даже советуют забивать хер на DOM и херачить всё в innerHTML.
Более глубокие поиски дают (как обычно в нашем деле) некий грязный хак. Общая схема такова: ловим эксепшн вокруг кода с ИЕ-синтаксисом, в обработчике пишем код по стандартам для всех остальных браузеров:
...
try {
result = document.createElement("<input type='radio' name='group1'>");
} catch (e) {
result = document.createElement("input");
result.type = "radio";
result.name = "group1";
}
...
Ну из других мелких сюрпризов обнаружилось так же, что в Opera, оказывается, у document есть свойство all, что делает не логичным определение ослобраузеров по if (document.all) {/* some IE code */}.
Так же, хоть многие и утверждали, что в стандартах нет обработчиков события onload для img, обработчики всё-таки есть:
var img = new Image();
img.onload = OnLoadHandler;
img.src = "/path/to/image.jpg";
function OnLoadHandler(e) {
/* Image loaded */
}
Тут тоже есть интересные особенности:
1. задавать обработчик события необходимо раньше свойства src, т.к. в противном случае он не сработает, если картинка найдена в кеше (не уверен, возможно только для нашего любимого ИЕ);
2. не-ИЕ-браузеры передают в обработчик события параметр e (собственно наше событие), в котором есть ссылка на объект, породивший событие - e.currentTarget. Для ослобраузера сие не верно и надо брать window.event. В случае с картинками - в ИЕ оба параметры, увы, пусты, поэтому, чтобы определить, какая именно из картинок догрузилась, можно использовать задание ссылки на обработчик вида:
img.onload = function() {OnLoadHandler(this);}
Тогда в обработчик нам придёт сама картинка.
Ещё какие-то были интересности, но я уже не помню. Вспомню - напишу %)
- Камень мокрый: дождь
- Камень сухой: дождя нет
- Отбрасывает тень: солнечно
- Белый сверху: снег
- Камень не видно: туман
- Раскачивается: ветренно
- Прыгает вверх-вниз: землетрясение
- Камень пропал: торнадо
Говорят, что как бы ни ругали "пассивный" отдых, "шведские столы" в 6 подходов, бесплатный алкоголь в баре и лежаковый режим, хотя бы один раз в жизни это необходимо испытать каждому...
Взвесив романтику Питерских белых ночей в сравнении с поездкой в новую страну (понятно, вобщем, какую), подсчитав бабки и посоветовавшись с нашим любимым тур-оператором Наташей мы решили, что хотим в Турцию на ультра олл. Заранее мы не подсуетились, поэтому за 2 недели до начала отпуска начали рыскать по интернету в поисках удовлетворившего бы нас предложения и куда ещё остались путёвки. Оределяющими критериями были наличие бесплатных теннисных кортов и сауны. Судя по тому, что вы читаете этот пост, наши поиски увенчались успехом. Собрали пожитки, прыгнули в поезд и уже вечером следующего дня были в (Kaya Side 5*). Успели аккурат к окончанию ужина ;)
Был сегодня волею судеб в поликлинике 1, что на улице Московской. То ли за время длительного непосещения подобных заведений успел поотвыкнуть, то ли надежда на всеобщий культурный прогресс слишком сильно засела в мозгу... я оказался не готов к такому отношению. Наплевательство и хамство уже начиная от регистратуры, откуда добрая тётя просто выкинула конверт с моими документами, заорав, что не должна сама ничего открывать и чтобы я сам всё достал и подал. Достал, подал... Окна, как и во многих учреждениях того периода, почему-то сделаны очень низко и размером 40 на 40 см. с непрозрачной дверцей. Приходится сгибаться в 3 погибели и просовывать туда ухо, чтобы хоть что-то разобрать... Оттуда меня направили в некий кабинет некой заведующей, простояв в очереди в который, мне с недовольством дали понять, что нефиг мне было там делать и направили в другой, к другой заведующей. Тут вообще шоу. Ну то, что очередь ещё одну выстоял - даже не обсуждается. Зашёл. И дёрнул меня чёрт посетовать, что в регистратуре нахамили, направили не туда, куда надо... В ответ зав начала на меня наезжать, причём в довольно жёсткой форме. В регистратуре мне никто ничего не обязан говорить вообще. Я, оказывается, вообще не должен был туда обращаться, а должен был сам как-то догадаться про какие-то карточки и истории болезней. Я ничего не понимаю и вообще мне лучше помолчать.
Может я правда не в праве требовать от людей уважительного отношения? Всё понятно, зарплата маленькая, народу каждый день толпы, но, нельзя же даже с учётом этого вот так в цвет хамить людям, которые вобщем их же труд и оплачивают?! По всем коридорам развешены плакаты с рекламой болезней и призывами сдавать кровь и лечиться от всего и вся смолоду. Ну повесьте вы на входе один большой плакат для дебилов типа меня: 1. взять карточку в регистратуре, если нет карточки, завести новую у заведующей, каб. такой-то; 2. одеть бахилы. Нет бахил - купить в аптеке за углом; 3. по вопросам мед. страховки - кабинет такой-то; 4. льготники - каб. такой-то... И так далее. Люди сразу будут знать с порога, что если нет с собой страхового полиса, нет смысла высиживать часовую очередь, чтобы узнать об этом.
И уж точно, если с пациентами будут разговаривать так - такие учреждения долго не протянут. Хорошие специалисты не пропадут, а вот такое административное говно - просто выметут поганой метлой.
Повезло только с непосредственно с врачом, к которому я пришёл. Быстро, чётко, с ответами на вопросы и объяснением "для дебилов", что не так и что как должно быть.