Архив

Архив раздела ‘Разработка и кодинг’

Отзыв о p-host.com.ua

5 Февраль 2010

Прошла всего неделя моего знакомства с хостингом p-host.com.ua, но я уже получил массу впечатлений за свои 20 баксов.


Вам понравится :) не переживайте
P-host.com.ua (10:11:17 27/01/2010)

0. Клюём на клёвый Пиар:
http://www.karman.com.ua/blog/3/entry-37-konkurs-hoster-goda-2009/
Конкурс «Хостер Года 2009″, в котором догадайтеськто победил?
Читать далее…

Почему не работает srand и mt_srand (PHP)

- О боже мой, они убили Кенни!
- Сволочи!
«Южный парк»

Псевдо/случайные числа

Случайные числа широко используются из соображений безопасности практически в каждой CMS. Вопросам получения случайных чисел посвящено уйма диссертаций и прочих научных трудов. Но вот на практике все решается простым вызовом функции php rand() или mt_rand(), в качестве результата отдающих случайное число (точнее псевдослучайное, но для простоты этот факт опустим)
Читать далее…

UNStats – статистика сайта для себя

29 Май 2009

Наконец дошли руки внедрить статистику для мониторинга собственных проектов. Внешних систем статистики существует множество, но они либо недостаточно детализированы, либо не имеют удобных и нужных мне отчетов. Прежде всего для SEO и для ежедневного мониторинга.

Читать далее…

Выражения должны быть регулярными

Как и утренний стул. Так по крайней мере заявляет мой доктор.

Итак, время от времени нам (а говорю я про песочницу веб-программистов), приходится работать с регулярными выражениями. И если это не банальная проверка e-mail, шаблоны для которой есть уже во всех приличных библиотеках, а что-то посерьезней, то приходится изрядно повозиться.
Конечно если вы не знакомы с основами, то рекомендую прочитать пост который подготовил Archick о основах – регулярные выражения php.

А учитывая то что в последние пару недель я снова пиратствую, можете ожидать от меня интересных постов по теме.

Кстати по теме, ловлю себя на мысли что чаще всего использую группы символов с исключением, вида [^...]. Т.е. группа символов, включающая все символы кроме тех что указаны вместо троеточия.

Например вот это

/блаблабла ([^"]+) блаблабла/

в вольном переводе означает:

Боец, собери все отсюда и до забора первой кавычки и принеси сюда.

10 Советов: как делать почтовые рассылки

16 Июль 2008

Делая почтовые рассылки, не забывайте:

1) Прописывать from и return-path.
Ваш SMTP (MTA) должен возвращать недоставленные письма на этот адрес. С пояснением о причине недоставки. Лучше вычищать кучу недоставленных писем из ящика, чем иметь жалобы клиентов. Адрес должен существовать, поскольку некоторые сервера проверяют его работоспособность.
При отправке через PHP mail(), адрес from указывается через дополнительный параметр -f sendmail.

2) Следить за заголовками писем.
Фильтры (SpamAssassin в частности) не любят поддельных X-Mailer. На баллы SpamAssassin влияют Message-ID и boundary, поскольку как правило они зависят от почтового клиента. Компоненты Indy (Delphi), к примеру, имеют boundary давно занесенный в черные списки.
А X-Powered-By с PHP – не лучшая строка в headers ваших писем.

3) Не стоит делать рассылку одновременно большому количеству адресатов на одном хосте (например, пару тысяч писем на mail.ru за один заход)

Читать далее…

Оптима’s RSS

feed-icon-28x28.pngСделал себе RSS-канал новой музыки что выкладывает в локальный доступ провайдер. Дабы не караулить новинки на сайте. Со списком url’ов, чтоб сразу в качалку.

Конверсия парсера. Нефиг ему пылиться.

Будет интересно только клиентам Оптимы:

I, Parser. Как я пиратствовал. Я, Парсер

На днях увлеченно вспоминал опыт годичной давности по парсингу сайтов разработке информационных баз в сети Интернет. В общем пиратствовал.

На этот раз все прошло существенно быстрее и комфортнее.

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

Набор включает:
1. Человека с прямыми руками и со знанием PHP и регулярных выражений.
2. Сервер или локальную машина с апачем+пхп+mysql, подключенную к безлимитному каналу.
3. Скрипт загрузки индекса необходимых страниц и скрипт загрузки самих страниц.
4. Парсер, вытаскивающий нужные данные из выкачанной кучи мусора.
5. Красивый шаблон для оформления результатов. Excel, xml, csv или html.
6. Ну и какой же пират, без попугая-матершинника и черной повязки на глаз.

В выборе железа – предпочтительнее локальная машина или выделенный сервер. У шаред хостингов – масса ограничений. Особенно у дешевых. Вешать это все дело на крон – занятие крайне неблагодарное. Проверено.

При загрузке данных все решается просто – через curl. Пока админы пьют пиво – качаем все в один поток, с одного IP, без refferer, с простым User agent. А пока они допьют – все ихнее золотишко уже у нас. Хе-хе.

Пункты 3 и 4 комбинируются по ситуации. Все скрипты можно объединить в один большой цикл с одновременной выкачкой-парсингом. Если база маленькая то лучше так и поступить.

Самое трудоемкое во всем этом – написать регулярное выражение и исправить в нем все ошибки. Дальше – дело техники.

И… соблюдайте копирайт! :)

Трансляция RSS. Технические вопросы

Созданный прежде RSS поток начал транслировать на открытые платформы.

Уже при эксплуатации потока появилось неожиданное ограничение. Информации на вход RSS-потока подается больше, чем тот может экспортировать. Экспорт выставлен в 30 записей (кто сказал, что робот не может подавиться?) и 6 часов обновления. Поначалу казалось этого будет хватать с запасом. Но специфика подаваемой информации оказалась таковой, что несколько дней ее может не быть вообще, а потом создается сразу пол сотни записей.

Поэтому придется в скрипт добавлять отложенную публикацию, публикуя посты с задержкой для роботов. Ну и для приличия. Ведь 50 постов за 2 секунды, а потом трое суток молчания – это как-то… ненормально.
Лучше реже, но регулярно ;)

А результат трансляции – обнадеживающий. Как никак – внешние ссылки на внутряки по низкочастотке. Чувствуется, как Гугл зашевелился, находя трансляции. Но на все нужно время…

И как оказалось, удобных открытых платформ для трансляции, вроде beta.ya.ru, можно пересчитать на пальцах. Но это уже другая история.

P.S. Да, да, проще купить ссылок на сапе :)

Красота кода и структуры

17 Февраль 2008

…красота кода и структуры – разговор отдельный.

С одной стороны красота это по большей части ООП-шные рюшечки с тоннами формальных деклараций и тормозящий код.

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

И компромисс – где-то посередине. И поиск его – весьма мучительное занятие.

RSS старт. Google sitemap – на очереди

17 Февраль 2008

This is a valid RSS feedRSS-канал (фида, лента, эрэсэс – нужное подчеркнуть) – создана, запущена в автоматическом режиме и опубликована.

Хотя у меня до сих пор недуомение по поводу необходимости замены html specialchars (&,>,<,’,»)  самих html tags внутри xml. Модуль работает с стандартным пространством имен RSS 2.0 плюс dc. Намеренно пропустил разве что проработку атрибутов enclosure, это пока незачем. Валидатор светит зеленым и это хорошо.

Есть большая надежда в то что лента повлияет на оперативность включения новых страниц. Во всяком случае в самых ближайших планах – google sitemap. Хотя кто придумал так называть список страниц сайта? Это определенно siteindex, а не sitemap. Поскольку карта на то и карта, что должна содержать структуру. В данном случае – сайта. Ведь в простейшем случае все эти sitemap’s – только список страниц тупому роботу, который почему-то кладет на под полку большую часть страниц.

С точки зрения движка, создание карты индекса сайта это а) один простой SELECT и форматированый фильтрованый вывод в XML и б) опрос модулей о их виртуальных страницах, что уже на порядок сложнее. И сложнее не столько в техническом плане, сколько в организационном. Код и структура – должны быть красивыми.

Но красота кода и структуры – разговор отдельный…