Эти правила писал не я,
с автором лично не знаком
(и вообще не знаю, кто он),
но точку зрения полностью разделяю.
- Нужно ТЗ.
- Нет, без ТЗ я не смогу сказать, сколько это будет стоить, и возьмусь ли я.
- ТЗ — это не только название того, что надо сделать.
- Да, обязательно надо указать срок.
- Очень прошу, НАВСЕГДА ЗАБУДЬТЕ фразу «чем быстрее, тем лучше».
- «Как сможете» — это тоже не срок. Я смогу через пять лет. Вряд ли Вас это устроит :-)
- На фразы по аське «сейчас отошлю новый заказ» — я могу зарычать.
- У меня проверка почты настроена на каждые 10 минут. Ни одного шанса пропустить письмо.
- Фразу «Послал новый заказ» следует писать после отсылки, а не до
- Если заказ не требует выполнения в течение часа, зачем напоминать об ответе на письмо каждые 5 минут? Я отвечу при первой возможности. Когда-нибудь было по-другому?
- Каждый ответ «Нормально» на вопрос «Ну, как там дела?» удлиняет срок присылки готового заказа примерно на 30 секунд и портит заказчику карму.
- Требование другого ответа на вопрос «Ну, как там дела?» удлиняет срок присылки готового заказа на 5 минут минимум и портит заказчику карму.
- Карма некоторых заказчиков уже похожа на решето
- Я беру деньги за свое время, а не только за объем работы.
- Мое время стоит не дешевле времени других специалистов моего уровня.
- Я не умею читать мысли.
- Я НЕ УМЕЮ ЧИТАТЬ МЫСЛИ.
- Если заказчик о чем-то думал, но умолчал — это не «фрилансер накосячил », а платная доделка.
- Изменения в ТЗ после отсылки заказа — это не « фрилансер накосячил », а платная доделка.
- Посредники — чаще всего, зло.
- Если посредник забыл передать фрилансеру какие-то детали — это не «фрилансер накосячил», а платная доделка.
- Дорого — не заказывайте.
- Дорого — не заказывайте.
- ДОРОГО — НЕ ЗАКАЗЫВАЙТЕ.
- Вы ДЕЙСТВИТЕЛЬНО надеетесь меня убедить в том, что «это стоит дешевле, потому что это сущий пустяк»?
- Почему бы в таком случае не сделать самостоятельно?
- Это не первый мой заказ. И даже не сотый. Может, хватит уже торговаться?
- Да, иногда я не беру заказы, просто потому что они мне не нравятся.
- Без этого заказа я не умру с голоду.
- Если принимает заказ третья сторона, комментарии посредника меня не интересуют.
- Не интересуют.
- НЕ ИНТЕРЕСУЮТ.
- Кстати, сколько таких заданий посредник сам сделал? Ну-ка ссылочку на портфолио.
- «Все неправильно!!!!!» — это не претензия. Это истерика.
- Идеальный формат для претензий — «Исправить строку 4 на странице 16, вместо “а” поставить “б”».
- Да, я работаю не только с Вами
- А также у меня полно знакомых фрилансеров моего профиля.
- Поэтому если Вы подтвердили мне заказ и продолжаете искать «где подешевле», Вы можете попасть в черный список у кучи народу. И здорово испортить себе карму.
- Нет, я не могу прислать готовый заказ сегодня, если срок послезавтра.
- Нет, я не круглосуточно в онлайне. Я, как и все homo sapiens’ы, ем, сплю и хожу в туалет. И делаю это в соответствующих местах, а не перед монитором.
- Нет, я не выполняю заказы по программированию, если я психолог. И наоборот тоже.
- Не выполняю. Не выполняю. Не выполняю.
- В принципе, конечно, могу и выполнить, мне не жалко. А за последствия не боитесь?
- Если мы с Вами когда-то работали, это не повод для душевных излияний по аське в три часа ночи.
- Я не проверяю чужие работы.
- Я не дорабатываю заказ по замечаниям левого человека, проверившего мою работу.
- Если мне еще раз в 2 часа ночи придет SMS «отправил новый заказ на мыло» — я отправлю Ваш мейл в блек-лист.
- Прежде чем звонить мне с вопросами, прислал ли я то, что требовалось, проверьте почту и прочитайте новые письма.
Учитывая то, что недавно этот партнер (якобы случайно) нарушил достигнутые между нами договоренности, нам присланная статистика показалась заниженной. Я начал думать, как можно посчитать количество переходов, если информер – это яваскрипт, который отрабатывается на стороне клиента.
Несколько строк кода – и переходы по внешним ссылкам считаются нашим сервером!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // подключаем jQuery <script src="http://code.jquery.com/jquery-latest.js"></script> // подключаем класс для работы с base64 <script src="http://www.zavtra.com.ua/jscripts/base64.js"></script> <script> // при загрузке документа... $(document).ready(function(){ // получить массив все ссылки, которые содержат текст "xxx.yyy" в аттрибуте href var x= $("a[href*='xxx.yyy']"); // для каждой найденной ссылки... jQuery.each(x, function() { // url - это старый адрес закодированный по Base64 url = Base64.encode($(this).attr("href")); // назначаем новый аттрибут href: адрес PHP-скрипта на нашем сервере, // и в качестве строки запроса - полученный в прошлой строке урл $(this).attr("href", "http://www.zavtra.com.ua/go2un.php?" + url); }); }); </script> |
Рецепт первый – блоги
Для продвижения основного сайта я создал блог на Blogspot. Почему именно там? Почему не на своем хостинге?
Во-первых, потому что хотелось, чтобы блог и сайт висели на разных айпишниках. Где-то читал, что ссылки с сайтов, которые висят на одном айпиадресе с основным, учитываются меньше, чем с сайтов, разнесенных по разным уголкам сети.
Во-вторых, заметки с блогохостингов очень быстро попадают в поисковый индекс. Иногда – в течение нескольких минут. В то же время, если бы блог магазина был сам по себе, то пришлось бы потратить немало сил и на его продвижение, чтобы он стал регулярно посещаться ботами поисковиков.
В третьих, также роль играет то, что на блогохостинге тебя могут найти другие пользователи этой службы, стать подписчиком…
В четвертых, на блогохостингах (ЖЖ, Ли.Ру) можно создавать сообщества. Путем перелинковки блога с сообществом, сообщества с другим сообществом или основным сайтом, я надеюсь прибавить ТИЦ и ПР. Кроме того, если писать хорошо (и главное – не только рекламу товаров, а и то, что интересно пользователям) вполне реально найти постоянных читателей, и, как следствие, – посетителей основного сайта.
В общем, чем больше блогов разных и клевых – тем лучше!
Но писать надо везде только эксклюзивный контент! Если будете тупо кросс-постить одно и тоже сообщение в несколько блогов – результат если и будет, то скорее всего негативный.
Есть у меня сайт, который замечательно индексируется Гуглом. На сайте порядка 150 тысяч страниц, и если поставить сквозную ссылку – то на ссылочная масса продвигаемого сайта возрастет очень резко.
А поисковики такого не любят. Ибо как-то неестесственно смотрится, что до определенного дня на сайт было, условно, 10 ссылок, а за сутки добавилось 99990 новых… Поэтому я решил кормить Яшу и Гугля «с ложечки». Для этого пришлось написать небольшой скриптик. Вряд ли он вас устроит в том виде, в котором я его публикую здесь, но идея должна быть понятна.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?php // в качестве идентификатора страницы, на которой будет размещена ссылка, // используем md5-хеш строки запроса $page = md5($_SERVER['REQUEST_URI']); // количество ссылок, которые будут добавляться в течение дня $maxLinksPerDay = 100; // количество ссылок, которое будет добавляться на 1 страницу $linksPerPage = 1; // "клей" нужен если ссылок на странице больше 1 $glue = ', '; // временных массив для хранения ссылок до их вывода $linksToDisplay = array(); // Для начала проверим, имеются ли ссылки, которые уже // добавлены на запрашиваемую страницу. $mresult = @cms_query("SELECT `".$_CONFIG['sql_pref']."Links`.`Link` FROM `".$_CONFIG['sql_pref']."LinksPages` LEFT JOIN `".$_CONFIG['sql_pref']."Links` ON `".$_CONFIG['sql_pref']."Links`.`LID` = `".$_CONFIG['sql_pref']."LinksPages`.`LID` WHERE `".$_CONFIG['sql_pref']."LinksPages`.Page = '{$page}'"); if (mysql_num_rows($mresult) > 0) { // если есть - сохраним их во временный массив while ($mline = mysql_fetch_object($mresult)) { $linksToDisplay[] = $mline->Link; } } else { // если ссылок нет - проверим, сколько ссылок уже добавлено за сегодня $mresult = @cms_query("SELECT COUNT(id) AS Count FROM `".$_CONFIG['sql_pref']."LinksPages` WHERE Created = CURDATE() GROUP BY Created"); $mline = mysql_fetch_object($mresult); if ($mline->Count < $maxLinksPerDay) { // Если меньше, чем разрешено в настройках, добавим новые $mresult = @cms_query("SELECT LID, Link FROM `".$_CONFIG['sql_pref']."Links` ORDER BY `Times_used`, RAND() LIMIT 0, $linksPerPage"); if (mysql_num_rows($mresult) > 0) { while ($mline = mysql_fetch_object($mresult)) { $mmresult = @cms_query("INSERT INTO `".$_CONFIG['sql_pref']."LinksPages` (`Page`, `LID`, `Created`) VALUES ('{$page}', '{$mline->LID}', CURDATE())"); $mmresult = @cms_query("UPDATE `".$_CONFIG['sql_pref']."Links` SET `Times_used` = `Times_used` + 1 WHERE LID = {$mline->LID}"); $linksToDisplay[] = $mline->Link; } } } } // Выводим то, что насобирали :-) if (count($linksToDisplay) > 0) echo join($glue, $linksToDisplay); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | CREATE TABLE `Links` ( `LID` int(11) NOT NULL auto_increment, `Link` varchar(255) NOT NULL, `Times_used` int(11) NOT NULL, PRIMARY KEY (`LID`), KEY `Times_used` (`Times_used`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; CREATE TABLE `LinksPages` ( `id` int(11) NOT NULL auto_increment, `Page` varchar(64) NOT NULL, `LID` int(11) NOT NULL, `Created` date NOT NULL, PRIMARY KEY (`id`), KEY `Page` (`Page`), KEY `Created` (`Created`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; |
1 2 | s1# cd /usr/ports/www/zend-framework s1# make install clean |
dbForge Studio for MySQL
- приятный, удобный интерфейс;
- удобные инструменты для отладки;
- русская версия dbForge Studio for MySQL бесплатна для частного некоммерческого использования.

Свежие комментарии