Archive for the ‘ Из практики ’ Category

Обновление

<br />
var d = new Date();<br />
d.setDate(1);<br />
d.setMonth(0);<br />
var diff = ((new Date()).getTime() &#8211; d.getTime()) / 1000 / 86400 + 1;<br />
diff = ~~diff;<br />
if(diff === 256) alert(&#8216;С днем программиста!&#8217;);<br />

<br />
if(date(&#8216;z&#8217;) + 1 === 256) echo &#8216;С днем программиста!&#8217;;<br />

А я обновил блог. При обновлении блога столкнулся с проблемой нехватки памяти для обновления WordPress. Немного погуглив, нашел решение: прописать настройки по использованию памяти для WordPress.

<br />
define(&#8216;WP_MEMORY_LIMIT&#8217;, &#8217;256M&#8217;);<br />
define(&#8216;WP_MAX_MEMORY_LIMIT&#8217;, &#8217;256M&#8217;);<br />

Вот это я записал в начало wp-config.php, но из-за какой-то ошибки хостинга должного воздействия этот код не возымел. Решение было простое как апельсин: перенес сайт на localhost, обновил на локале и перенес обратно.
Так что скоро выложу пару плюшек.

О vk

Сидел в офисе, жевал шоколадку и вертел в руках обертку и вдруг взгляд зацепился за что-то знакомое. На упаковке шоколадки указан адрес сайта: www.vk.ru. Естественно, побороть любопытство мне не удалось, и я обнаружил, что этот адрес занимает сайт кондитерской фабрики “Верность качеству”. Тогда мне стало интересно, и я посетил еще несколько домЕнных зон с тем же именем. Результат:

http://vk.com/ – соцсеть
http://vk.ru/ – кондитеская фабрика
http://vk.org/ – христианский летний лагерь
http://www.vk.net/ – закрытый ресурс, без www недоступен
http://vk.com.ua/ – поставщик промышленного оборудования
http://vk.de/ – занят чем-то непонятным
http://vk.pl/ – магазин по продаже кассовой аппаратуры

В принципе, покопать можно было и дальше: стран-то много, но меня еще работа ждала.

zoom в Safari

Сегодня столкнулся со странной ошибкой в поведении одного сайта в Safari на IPad. Во всех браузерах сайт отображался нормально, но только на IPad’е центральная часть улетала вправо почти на 100%. Дополнительная неприятность в том, что у меня нет IPad’а, а исправлять ошибку, которую я не вижу, я еще не умею. Пришлось качать себе MobiOne Studio с их эмуляторами и смотреть сайт через них.

Читать полностью

Чем опасен Ajax

Чем опасен Ajax

Случай из практики с моралью скорее для себя.

Занимаюсь сейчас поддержкой одного сайта на Битриксе. Сайт этот верстал и прогал изначально не я, а какой-то другой прогер. Сделал он все на совесть – сайт летал, относительно, конечно, потому что Битрикс. Там был каталог товаров с нафигацией на ajax и возможностью хождения без js, так как ссылки были рабочими. Но чувак не был знаком с history.pushState(), так как в то время эта технология только-только зарождалась. И вот клиенты стали негодовать – как же так, они ходят по каталогу, а кнопка “Назад” ведет не в предыдущую категорию? Пришлось ему убрать ajax. А тут у заказчика еще идея возникла: пусть карточки товара отображаются во всплывающих окнах. Сказано – сделано. Теперь все ссылки ведут на карточки товаров. Пустые. Не, ну правда – чего зря траффик гонять? А вот с этим пришлось разбираться мне, когда обнаружилось, что ссылки с выдачи Яндекса ведут на эти самые карточки товаров.

Поэтому я сделал некоторые выводы на будущее:
- сайт должен работать и без js
- если для навигации используется ajax, надо обязательно проверять, умеет ли браузер работать с history.pushState(). если нет – использовать обычную нафвигацию
- движок должен иметь возможность выдавать код только контента, чтобы не гонять хидер и футер при каждом запросе
Вроде бы логично, но не всегда эти три пункта выполняются. Так что будь осторожнее, когда столкнешься с ajax’ом.

Скрипт простого шифрования

Скрипт простого шифрования

В свое время, чистя html-файлы от вирусов, я наткнулся на забавный способ шифрования строк. Строки авторы вируса формировали с помощью чисел, причем все это выглядело примерно так: window[17795081..toString(36)](‘!’); Ну, с window все понятно, доступ к свойству объекта осуществляется с помощью квадратных скобок (в javascript так можно), а круглые скобки означают вызов метода. Но, блин, что за фигня там в квадратных скобках?!

Естественно, пришлось гуглить, чтобы удовлетворить свой интерес. Все, как всегда, оказалось просто.

Читать полностью

Ошибка в работе wmode transparent в Chrome

Ошибка в работе wmode transparent в Chrome

Сегодня впервые столкнулся с такой багой Хрома, что для флеша с заданным wmode=”transparent” фон становится черным. Во всем я винил плагин FlashControl, но, как оказалось, проблема именно в Хроме, а точнее, в его новых версиях (начиная с 16.0.912.63).
Решение оказалось простым и логичным: надо тегу object или embed добавить атрибут type=”application/x-shockwave-flash”. Почему последние версии Хрома отказываются отображать флеш нормально без атрибута – загадка.