developer blog

451 degrees Fahrenheit

Валидация DOM HTML в реальном времени

August 15th, 2008 by pilot | 4 Комментария »

Во время web 2.0 валидность документов стандартрам w3.org xhtml, html, css является неотемлемой частью любого проекта

Осообенно трепетно к этому относятся заказчики за пределами СНГ

Валидатор от w3.org, конечно хорошо, но как всегда хочеться большего.

В нашем случае “большее” - это живой валидатор в реальном времени, автор живого валидатора (Validator.nu) Henri Sivonon взял Hixie’s Live DOM Viewer, и на его основе собрал свой парсер DOM.

Получилось я вам скажу очень даже неплохо.

livedomvalidation


Раздел Uncategorized

Html DOM parser на PHP

August 11th, 2008 by pilot | 4 Комментария »

Очень полезный класс для разборки DOM модели веб документа с селектора в  jQuery стиле.

Это просто незаменимая вещь если вы любитель обдирать чужие сайты )). А вообще одно из основных применений - это к примеру брать котировки валют прям со страницы банка и тд.

Почему собственно PHP Simple HTML DOM Parser:

  • Написан на PHP5+ и позволяет легко управлять HTML
  • Поддерживает не валидный HTML
  • Поиск тагов в HTML с селекторами в jQuery стиле
  • Может разложить все содержимое HTML в строку

Скачать последнюю версию с Sourceforge.

Онлайн документация.

Небольшой пример, как извлеть HTML элемент:


// Create DOM from URL or file$html = file_get_html('http://www.google.com/');


// Find all images
foreach($html->find('img') as $element)
  echo $element->src . '<br>'; 

// Find all links
foreach($html->find('a') as $element)
  echo $element->href . '<br>';

Раздел php

Второе обновление в системе плагинов Symfony

August 10th, 2008 by pilot | Комментировать »

Разработчики не перестают удивлять скоростью реакции на фидбеки от комьюнити. Вот очередная серия доработок к системе плагинов:

  • Появилось новое поле для описания плагина. Это поле не зависит от версии плагина и будет выводиться на главном табе “Plugin Information”.
  • Каждый плагин можо связать с ORM, который он использует. Первоначально это свойство задавалось автоматически основываясь на имени плагина и некоторых “таинственных” характеристиках. Теперь это поле может задать разработчик. С этого момента информаци о используемом ORM в плагине станет более достоверной.
  • Добавлен полезный инструмент для тестирования README файла перед созданием PEAR пакета. Для проверки заходим на страницу проверки валидности Markdown. На этой же странице вы найдете и шпаргалку по разметке Markdown.

Читать дальше →


Раздел Symfony

Очередной Symfony camp, пройдет в Голландии

August 9th, 2008 by pilot | Комментировать »

symfonycamp_logo

Ежегодная встреча сообщества symfony состоиться 12-13 сентября в Dutch Open Projects (DOP), что в Голландии.

Мероприятие начнется с тренинга по symfony 1.1, предствляет Nicolas Perriault (менеджер релиза symfony 1.1).

Докладов не так много, и на мой взгляд как-то маловато для такого мероприятия, вот список некоторых из них:

  • Обучающие уроки от Yahoo! (Dustin Whittle)
  • Производительность symfony (Fabian Lange) - это интересно
  • symfony и Doctrine vs Propel (Jonathan Wage, главный разработчик Doctrine)
  • Библиотеки интерфейса пользователя от Yahoo (Dustin Whittle)
  • Плагины и как создавать свои собственные (Lambert Beekhuis)
  • Генерация Админ панели (Ian Christian)
  • symfony 2.0

Кто созрел, регистрируется, и потом рассказуется всем нам как там было хорошо ))


Раздел Symfony

100 презентаций с Open Source Convention

August 5th, 2008 by pilot | 3 Комментария »

Прошедшая 21-25 июля самая большая конференция по open source в Portland, Oregon собрала более 2500 профессионалов. Были представлены проекты на Linux, PHP, Perl, Python, Ruby, Java, Mobile, Databases, Desktop Applications, Web Applications, Administration, Security, People, Business.

На офф сайте доступно 100 презентаций (все на английском языке), вот некоторые из них:

Море интересных презентаций, просто глаза разбегаются


Раздел Conference

Symfony, у плагинов появился новый дом!

August 1st, 2008 by pilot | 1 Комментарий »

Плагины в symfony - это самый простой способ внести свой вклад в развитие фреймворка symfony. Плагины легко пишуться, пакуются, устанавливаются и они могут переписать все что угодно в фреймворке.

Но существующаю система работы с плагинами не может ответить на вопросы:

  • А есть ли плагин который добавляет “вот такую штуку” ?
  • А поддерживает ли мой любимый плагин новую версию symfony 1.1?
  • А совместим ли плагин с Doctrine?
  • А какие самые популярные плагины?
  • Как я могу помочь доработать плагин?

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

Читать дальше →


Раздел Symfony

Pushup the web, не забываем обновляться

July 29th, 2008 by pilot | Комментировать »

Давайте дружно попросим пользователей наших сайтов незабывать обновлять их браузеры! Для этого нам поможет Pushup.

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

pushuptheweb1

Юзер сможет либо сразу пойти и обновиться либо попросить напомнить ему об этом позже, время напоминания указывается в опциях скрипта.

На сегодняшний момент Pushup поддерживаетpushuptheweb

Установка

В хидер страниц (на которых будет напоминание) добавьте:

<link rel='stylesheet' type='text/css' href='css/pushup.css' />
<script type='text/javascript' src='js/pushup.js'></script>

Скачать Pushup 1.0.0


Раздел Software & Tools

Список команд symfony 1.1 в сравнении с symfony 1.0

July 28th, 2008 by pilot | Комментировать »

Команды в symfony 1.1 изменились и теперь используют синтаксис пространства имен. Пока что трудно сказать стало ли от этого все хорошо или нет. Старый набор команд так же работает ввиде алиасов на новые имена команд.

Таблица старых и новых команд: 

Old task name New task name
————————– —————–
clear-cache cache:clear
clear-controllers project:clear-controllers
disable project:disable
downgrade [Not implemented]
enable project:enable
fix-perms project:permissions
freeze project:freeze
init-app generate:app
init-batch [Not implemented]
init-controller [Not implemented]
init-module generate:module
init-project generate:project
log-purge log:clear
log-rotate log:rotate
plugin-install plugin:install
plugin-list plugin:list
plugin-uninstall plugin:uninstall
plugin-upgrade plugin:upgrade
propel-build-all propel:build-all
propel-build-all-load propel:build-all-load
propel-build-db propel:build-db
propel-build-model propel:build-model
propel-build-schema propel:build-schema
propel-build-sql propel:build-sql
propel-convert-xml-schema propel:schema-to-yml
propel-convert-yml-schema propel:schema-to-xml
propel-dump-data propel:data-dump
propel-generate-crud propel:generate-crud
propel-init-admin propel:init-admin
propel-init-crud [Not implemented]
propel-insert-sql propel:insert-sql
propel-load-data propel:data-load
sync project:deploy
test-all test:all
test-functional test:functional
test-unit test:unit
unfreeze project:unfreeze
upgrade project:freeze

Раздел Symfony

Пара полезных плагинов для wordpress

July 25th, 2008 by pilot | 1 Комментарий »

По работе часто пишем плагины для блогов на движке wordpress.org, большенство из них защищены копирайтами заказчиков и нашими собственными )), но есть и те которыми хотелось бы поделится со всеми.

Складываем их на

blog-ware-com

Плагины:

1. Google maps in posts
Думаю, что название говорит само за себя, с этим плагином вы можете добавлять карту к себе на сайт. Подобных плагинов много, но почему-то у всех чего-то да не хватает, вот и постарались собрать все вместе.

screenshot2

Читать дальше →


Раздел Wordpress

Сравнение 9-ти способов обфускации email адресов

July 25th, 2008 by pilot | Комментировать »

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

Silvan Mühlemann занялся этим вопросом, создал 9 разных email ящиков, защитил их 9 способами, разместил их на популярном сервере, чтоб их хорошенько проиндексил google, подождал (всего, ничего) 1.5 года и вот он результат…

obfuscation_methods

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

В итоге следующие 3 метода оказались самыми надежными:

1. Изменение нарямую через CSS

<style type="text/css">
span.codedirection { unicode-bidi:bidi-override; direction: rtl; }
</style><p><span class="codedirection">moc.etalllit@7raboofnavlis</span></p>

2. Использование метода CSS display: none

<style type="text/css">
p span.displaynone { display:none; }
</style>
<p>silvanfoobar8@<span class="displaynone">null</span>tilllate.com</p>

3. ROT13 - кодирование
Закодировать email в ROT13 можно с помощью тулзы rot13 либо php функцией str_rot13 и после декодировать с помощью Javascript

<script type="text/javascript">
document.write("<n uers=\"znvygb:fvyinasbbone10@gvyyyngr.pbz\" ery=
\"absbyybj\">".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode
((c<="Z"?90:122)>=(cc=c.charCodeAt(0)+13)?c:c-26);}));
</script>silvanfoobar's Mail</a>

Из 3х мне больше всего понравился 2й способ, как наиболее простой в реализации.


Раздел Software & Tools

« Предыдущие Записи