Почему в России не должно быть ничего бесплатного
сентября 17, 2009
Недавно столкнулся с такой проблемой. Есть программа, автоматизирующая определенные процессы и облегчающая жизнь пользователей. Конкретные функции приводить не буду, да и не в этом суть. Распространяется она абсолютно бесплатно, все нововведения, улучшения, развитие проекта идет за счет создателя. И каждый день находятся недовольные люди, которые пишут на мыло, в аське, еще где-то о том, что нужно добавить, что доработать, совершенно не понимая ни сути того, что сами предлагают, не представляя, как сложно это реализовать и каких затрат, в том числе и материальных, это потребует. С каждым днем таких пользователей становится все больше. И однажды терпение лопает. Переписываться со всеми и объяснять каждому надоедает...
На одном из форумов висела тема, с предложением купить аналогичную программу. Цена около 50 баксов. И что вы думаете, люди ее покупали. Хотя функционал был даже меньше, чем в первой (видимо тут сказывается психология человека, что если дорого, то значит качественно). В этой же ветке велось обсуждение, предлагались различные фишки, которые не мешало бы разработать, были пользователи, которые говорили, что им не нравится и чего, по их мнению, не хватает. Автор не терялся и сразу же называл цену, на которую программа станет дороже и объяснял почему. Недовольных пользователей резко поубавилось. Более того, все хвалили разработчика, людям нравилось, что им уделяют время, отвечают на вопросы, что программа раз в полгода обновляется.
Внимание, вопрос: почему при прочих равных так отличается поведение пользователей ? Почему люди не ценят то, что для них делается безвозмездно ? И прямо таки боготворить готовы того, кто забирает у них деньги, делая при этом минимум работ, со множеством ошибок и косяков... лишь бы отмазаться ?
Вот поэтому я уже давно не делаю никому и ничего бесплатно. Надо менять отношение к труду в нашей стране. Или, что лучше, работать с зарубежными заказчиками. Кстати, денег там раза так в три больше предлагают.
Дизайн сайта
июля 10, 2009
На сколько для вас важен дизайн сайта ? Для меня — не сильно. Видел много популярных проектов, сделанных на html еще в 99 годах и ранее. До сих пор работающих и до сих пор посещаемых (около 5 — 10 000 человек в сутки). Когда владельцев этих сайтов спрашивали, почему они не поменяют дизайн на более красивый и современный, то всегда получали в ответ «А зачем ?». Действительно, зачем ? Главной на сайте всегда останется информация. Если все оформлено без броских цветов и глаза не устают от чтения, то не нужно ничего менять. Наоборот, куча флеша, картинок, яваскриптов будут лишь мешать.
Другое дело сайты компаний, вот там можно как-то выделиться, ведь посетители таких сайтов не будут искать тонны информации, а скорее всего зайдут посмотреть на продукцию, вакансии или что-то еще. Или же какие-либо сайты, посвященные дизайну, фотошопу... там современный стиль даже приветствуется. Рекомендую посмотреть на подборку сайтов, сделанную на блоге shakin.ru. Есть чем полюбоваться.
Теперь другой вопрос, где вы заказываете дизайн ? Или вы предпочитаете делать все сами ? Так как речь в большинстве случаев идет о блогах (да да, они захватили интернет), то скорее всего вы используете готовые темы для wordpress или чего еще. Качаете их на сайте wpbot.ru, например. Кстати, это один из лучших сайтов у нас в рунете. Другие часто вставляют в темы ссылки... на знак «,» или «:», увеличивая тем самым себе показатели. Их трудно заметить (вот вам и свободная ниша, хороших сайтов с большой подборкой тем всего лишь около 5).
У меня другой подход. Обычно я иду в буржунет, где выбор тем в разы больше. Выбираю понравившеюся, перевожу, использую. Перевод тем достаточно легкое, но утомительное занятие. Хотя потратить один день на красивую тему не сложно. Зато в большинстве случаев вы получите практически уникальный дизайн (для рунета конечно). =)
Возвращаясь к теме нужен ли дизайн, приведу пример 2 блогов, близких по тематике: http://businesswithoutstress.com и http://homebusiness.ru с достаточно большой посещаемостью. Так что пусть самизнаетекто идет далеко со своими предложениями. Если на сайте нет интересной информации, то и никакой дизайн ему не поможет.
JQuery и немного AdSense магии
июня 4, 2009
Дети, кто из вас не знает, что такое JQuery ? Поднимите руки.
Ну а про Ajax я надеюсь вы слышали ? Нет ? Хм...
Сейчас, в эру веб два ноль, уже никого не удивишь отправкой данных без перезагрузки страницы, различными красивыми эффектами. К сожалению, я обратил внимание на ajax недавно. Можно сказать, не прошло и полгода. Но все же, я решил раз и навсегда разобраться с ним. Для этого пришлось написать один проект... Скажу лишь, что все оказалось не так сложно. Скорее даже легко.
А помогала мне в изучении библиотека JQuery. Почему именно она ? Честно ? Просто мне понравилось название и я решил начать с нее. =) Скачиваем последнюю версию с официального сайта — jquery.com. Подключаем в наш проект такой строчкой — <script language='JavaScript' src='/jquery.js' type='text/javascript'></script>. Готово.
Далее, разберемся как отправлять данные и не перезагружать страницы. Допустим у нас есть куча php скриптов, которые нам что-то возвращают через echo() или exit(). Нам осталось только правильно к ним обратиться. Создаем js файл. В нем пишем функцию, например, такую:
function main()
{
$.post(«main.php», { str: $(«#string»).attr(«value») }, function(data) {
$(«#answer»).html(data);
});
}
Метод post отправляет данные файлу main.php, а конкретно переменную str, равную, например, значению поля <input type='text' name='string'>. Функция возвращает результат и записывает его, например, в <div id='answer'></div>. Теперь осталось вызвать ее, скажем по клику — <input type='button' value='Отправить onclick='main();'>.
Это простейшая реализация конструкции с использованием JQuery. Вроде бы не сложно. Думаете это все, что я знаю ? Ага.
Я привел этот пример не для того, чтобы ознакомить вас с возможностями этой библиотеки, а чтобы показать, как это легко. Надеюсь, если вам будет интересно, вы найдете информацию в интернете.
Теперь к теме поста. Странно, но после того, как я вставил скрипт от Google AdSense, метод
$(document).ready( function { ... } ); перестал работать. Пришлось вызывать функцию через <body onLoad='function()'>.
PHP 4, stripos, strtotime, mb* и другое
июня 2, 2009
Вчера весь день провел адаптируя некоторые свои функции для PHP 4. Муторное это занятие. Особенно когда файл большой и нужно найти ошибочный кусок кода.
Выявились следующие проблемы:
1. Не работает stripos (возвращает позицию первого вхождения подстроки без учета регистра). Ну тут все понятно, стандартная strpos(strtolower($string), 'str') дело исправила.
2. Не правильно работает strtotime (преобразует текстовое представление даты в метку времени unix). Проблема была в том, что один из скриптов возвращает дату в формате день.месяц.год, а функция не воспринимает точки и поэтому возвращает −1. Простая замена «.» на «-» не принесла результатов, так как, оказывается, дата должна быть в формате месяц/день/год. Пришлось воспользоваться таким кодом:
function dt_str_to_date($value) {
$match = 0;
if( ereg('^([0-9]{1,2})[/|.|\\]([0-9]{1,2})[/|.|\\]([0-9]{2,4})$',
$value, $match) ) {
if( ($ret = strtotime(«{$match[2]}/{$match[1]}/{$match[3]}»)) ) {
return $ret;
}
}
return NULL;
}
Тем более, что проверки на правильность вводимых данных мне были не нужны. Теперь, тупо переставив день и месяц местами, я получил то, что нужно.
3. Нет различных mb* функций. Мне они нужны были для определения кодировки и переконвертирования. Пришлось ограничиться переводом из utf8 в cp1251 (iconv работает криво):
function utf8_win($s) {
$s=strtr($s,array(«\xD0\xB0»=>"Ю", «\xD0\x90»=>"ю", «\xD0\xB1»=>"А", «\xD0\x91»=>"а",
«\xD0\xB2»=>"Б", «\xD0\x92»=>"б", «\xD0\xB3»=>"Ц", «\xD0\x93»=>"ц", «\xD0\xB4»=>"Д",
«\xD0\x94»=>"д", «\xD0\xB5»=>"Е", «\xD0\x95»=>"е", «\xD1\x91»=>"╦", «\xD0\x81»=>"╗",
«\xD0\xB6»=>"Ф", «\xD0\x96»=>"ф", «\xD0\xB7»=>"Г", «\xD0\x97»=>"г", «\xD0\xB8»=>"Х",
«\xD0\x98»=>"х", «\xD0\xB9»=>"И", «\xD0\x99»=>"и", «\xD0\xBA»=>"Й", «\xD0\x9A»=>"й",
«\xD0\xBB»=>"К", «\xD0\x9B»=>"к", «\xD0\xBC»=>"Л", «\xD0\x9C»=>"л", «\xD0\xBD»=>"М",
«\xD0\x9D»=>"м", «\xD0\xBE»=>"Н", «\xD0\x9E»=>"н", «\xD0\xBF»=>"О", «\xD0\x9F»=>"о",
«\xD1\x80»=>"П", «\xD0\xA0»=>"п", «\xD1\x81»=>"Я", «\xD0\xA1»=>"я", «\xD1\x82»=>"Р",
«\xD0\xA2»=>"р", «\xD1\x83»=>"С", «\xD0\xA3»=>"с", «\xD1\x84»=>"Т", «\xD0\xA4»=>"т",
«\xD1\x85»=>"У", «\xD0\xA5»=>"у", «\xD1\x86»=>"Ж", «\xD0\xA6»=>"ж", «\xD1\x87»=>"В",
«\xD0\xA7»=>"в", «\xD1\x88»=>"Ь«, „\xD0\xA8“=>»ь", «\xD1\x89»=>"Ы", «\xD0\xA9»=>"ы",
«\xD1\x8A»=>"З", «\xD0\xAA»=>"з", «\xD1\x8B»=>"Ш", «\xD0\xAB»=>"ш", «\xD1\x8C»=>"Э",
«\xD0\xAC»=>"э", «\xD1\x8D»=>"Щ", «\xD0\xAD»=>"щ", «\xD1\x8E»=>"Ч", «\xD0\xAE»=>"ч",
«\xD1\x8F»=>"Ъ", «\xD0\xAF»=>"ъ"));
return $s;
}
Несколько выводов:
1. PHP 4 мертв, используйте PHP 5.
2. Обратите внимание на то, какой PHP стоит у вашего хостера, если не хотите проблем в будущем.