Отново online

Posted by Асен on June 20th, 2011

Минаха години от последният път когато писах в този сайт, почти две. Не че нямаше за какво да пиша, и време се намираше, но не счетох че е нужно да го правя. Мисля, че е време да започна отново да драсвам по някой ред за нещата които ме вълнуват.

Много неща се промениха, реших за старт да сменя и дизайна. Намерих тази красива и безплатна тема, доста ми допада. Може би трябва да накарам някой дизайнер да ми нарисува нещо по-уникално, това за сега е крайно неналожително.

По-принцип не съм голям фен на безразборното споделяне на информация, особено лична, така че не очаквайте да прочетете тук какво съм вечерял ;)

Ще се включа ли в Ипотпал?

Posted by Асен on October 25th, 2009

Много хора ме попитаха това, аз много се колебаех дали да го направя.
От една страна имам доста работа по проекти които имат по-висока стойност, от друга страна колегата Виктор е толкова ентусиазиран, че не мога да му откажа.

Затова отговорът е да, ще участваме и тази година. Не ми пука много за наградата, макар че е по-голяма тя пак не си струва толкова продължително оптимизиране.

Засега не съм направил много, съвсем скоро започнах да спретвам едно ипотпал сайтче, но все още е далеч от оптималния си вид. Колегата е много надъхан и вече е създал цяла фамилия сайтове, предвождани от ипотпал-а, този домейн на кирилица определено ще е интересен за развиване.

Все още не знам на какво ще наблягаме тази година, но със сигурност ипотпал съдържанието ще е много богато.

Надявам се да няма недостойни постъпки, времето ще покаже.

Пожелавам успех на всички участници!

“SEO Състезанието” на Web-Tourist

Posted by Асен on August 1st, 2009

Отдавна не съм поглеждал към Google както го правех преди, а бяхме неразделни ;)
Просто напоследък обръщам внимание на други неща, не съм забравил моя стар приятел…

Забелязах (всъщност ми казаха, нямаше да забележа даже), че  е започнало ново SEO състезание/игра. През мисълта ми премина идеята да се включа, но веднага след като прочетох правилата изчезнаха всички подобни мисли.

Като участник в миналогодишното състезание, което беше със сравнително разумни правила, очаквах сегашното да е още по-добре формулирано. И макар, че зад тези състезания винаги стои тактика за облагодетелстване на спонсора, то сегашното изглежда много сбъркано и според мен няма да има положителни резултати.

Практиката показва, че колкото по-голяма свобода имат участниците в такива състезания, толкова по-добри проекти се получават, хората са мотивирани да покажат какво могат, и спонсорите или организаторите получават много качествени линкове.

Правилата на състезанието/играта говорят и за духа в които ще се проведе:

  • Разрешени домейни: Поддомейни от типа wt-user.seo-battle.com – като човек с доста опит (понякога горчив) с домейни знам, че ако някой ти дава безплатно да ползваш домейн/поддомейн, това означава, че ще работиш благотворително за неговия домейн/поддомейн. Мисля че още тук всички които се занимават със SEO сериозно са се отказали. Наистина така участниците ще получат равен старт, но на каква цена.
    Дори и спонсора не печели с това правило, защото дори и да запази всички линкове от всички участници след играта, те пак са от един основен домейн. Google разглежда отделните поддомейни като отделни сайтове, но определено 60-80 еднотипни сайта от един родителски домейн и от едно IP изглеждат по-скоро като спам.
  • Хостинга ще бъде предоставен от нас. Нямате право да хоствате друг хост освен предоставеният от наспо време на миналото състезание в един форум четох, че се обсъждаше как спонсора би спечелил ако купи сайтовете на първите няколко в класирането, за да запази съдържанието и връзките от тях. Това е така, но да е задължително да развиваш и оптимизираш сайт на домейн който не е твой, и на хостинг който не е твой… нямам думи.
  • Линкване между участващите поддомейни е строго забранено – разбира се, така вече няма да има съмнение че сайтовете ще изглеждат като спам. Не е лошо като идея, за да се разчита само на собствени умения, а не на подкрепа от други състезатели, но е много далече от реалния свят.
  • За да регистрирате дадена статия като ваша и за да е защитена от кражба я запишете тук…. Всеки, който наруши правилото ще бъде дисквалифициран. – всички уникални статии в една база данни, ще стане добър и силен сайт след играта ;)
  • Забранява се копирането на информация от БГ сайтове – това ми звучи като “Нямаме нужда от дублирано съдържание”. А какво става ако това е част от тактиката на някой участник? Никой не е казал, че копирането е кражба или е неморално. Има начини да се използва информация от други източници без да се нарушават моралните норми.
  • Задължително да има линкове към сайтовете на спонсорите във вида – разбираемо, но три еднакви линка, в един и същ ред на всички поддомейни… да кажем че аз не бих го направил.
  • Разрешени програми са само adsense или easytrader – значи не може да се ползва Notepad :P

Ключовата дума ми харесва. Търсене в интернет задава точно темата на сайтовете и намалява безмислиците които се раждат при оптимизиране за несъществуваща дума.

Макар и доста да критикувам правилата, смятам че тези състезания са добра идея и възможност да се изпробват високо-рискови техники. Разбира се, не и при толкова забрани ;)

Няма да коментирам наградите, не мисля че е необходимо.

PHP: Как да накараме бот да ни счупи сайта?

Posted by Асен on June 11th, 2009

Днес видях нещо което ме изуми! Един обикновен идексиращ бот (на търсеща машина) затри съдържанието на цял сайт, докато се е опитвал да индексира админ панела, при това без да вижда какво има вътре тъй като има логин система за администраторите. И всичко това заради малък пропуск в php кода.

Ето и по-дългият вариант на историята.

Един клиент ми се обади и се оплака, че сайта му е хакнат. Аз гледам, няма нищо в базата данни от съдържанието на сайта. В лога на сървъра се вижда как един бот се е опитвал да влезе в админ панела, но е получавал 302 редирект към страницата за вход. Никой друг не се е опитвал да влезе.

Какво се е случило на този далечен сървър???

След кратко разсъждение стана ясно, че има двама виновници. Първият е програмиста който е писал системата, а вторият е собственика на сайта който просто е инсталирал toolbar на търсеща машина на браузера си.

Проблема в кода може би може да бъде срещнат в повечето сайтове написани на php. Ето го и въпросното бъгче:

if (!isset($_SESSION['Admin'])){
header(“location:login.php”);
}

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

Във въпросния код функцията header() казва на браузера  да се пренасочи към страницата за вход, но не казва на сървъра да спре изпълнението на текущата страница. Т.е. ако аз нямам права да изтрия дадена статия (например), но имам адреса чрез който може да се изтрие, след като го посетя ще видя страницата искаща парола, но сървъра ще изпълни и изтриването. Гадно а?

А как бота е разбрал адресите които трябва да се посетят за изтриване на съдържание от сайта? Отговора е още по-смешен и от php кода. Администратора, който има инсталиран toolbar на търсещата машина, без да знае е дал тези адреси на бота, като е влезнал да администрира сайта си.

Това отново повдига в съзнанието ми въпроса колко лична информация събират големите търсачки за нас, без дори да се замислим, че сме им позволили.

Извода за програмиста (който вероятно няма и да разбере какво е направил) е, че трябва да окаже на съвръра да спре да изпълнява команди ако има пренасочване, ето така:

if (!isset($_SESSION['Admin'])){
header(“location:login.php”);
exit(0);
}

Също така да се научи да използва robots.txt.

Извода за клиента е, че е по-добре да плати веднъж много пари за стабилен софтуер, отколкото да мине тънко и да го хакне тарсачка, преди да реши да даде много пари за отстраняването на проблема :D

Erlang

Posted by Асен on June 6th, 2009

Наложи ми се да търся информация за езика Erlang за да направя един проект за университета. Но се оказа че за този език цялата информация е на английски и е сравнително трудно да се намери на едно място.

Езика има добра документация, но иска доста ровене из нея за да се разбере добре Erlang.

Публикувам тук информацията която събрах и преведох. Не съм програмирал на този език, така че малки неточности са възможни ;)

История

Разработването на Erlang е започнало през 1986 г. в лабораторията за компютърни науки на Ericsson. Той е проектиран с ясна цел: „да осигури по-добър начин за програмирането на телефонни приложения”. По това време конвенционалните езици за програмиране не можели да се справят с проблемите с които се сблъскват телефонните приложения. Налагало се софтуера да се справя с десетки хиляди паралелни процеси и да може да бъде променян докато работи, за да не спират телефонните услуги докато се извършват обновления. Софтуера също така трябвало да работи в реално време строго за определени операции, и не толкова точно за други.

Основната задача на езика била да се справя с проблеми като:

§ Обработването на много паралелни задачи

§ Действия които да се изпълнят в точно определено време или за определено време

§ Системи които да се разполагат на няколко компютъра

§ Взаимодействие с хардуер

§ Много големи софтуерни системи

§ Сложна функционалност като взаимодействие между различни системи

§ Непрекъсната работа в продължение на години

§ Поддръжка на софтуера без да се спира системата

§ Да реагира добре при грешки в хардуера или софтуера

Когато Erlang се появил имало сравнително малко области където се изисквал софтуер който да работи непрекъснато. Но с нарастването на популярността на Интернет и на нуждата от предоставяне на постоянна възможност за достъп до него нараснали и проблемите които Erlang може да реши. Например, създаването на огромен уеб сървър, с динамично обновление на кода, обработващ милиони заявки на ден е сходно със създаването на софтуер, който да управлява телефонните разговори.

От началото Erlang е създаден като инструмент който да върши работа. Често нови функции били добавяни в езика за да се справи с определен проблем и функции които не се използвали били премахвани. Процеса на работа бил толкова бърз, че много от добавянията и премахванията на елементи от езика дори не били записвани.

Предназначение, тип, особености

Erlang е функционален език, създаден за писането на програми които работят постоянно. Използват се паралелни процеси за да се структуира програмата. Процесите нямат споделена памет и комуникират чрез несинхронизирано предаване на съобщения. Процесите в Erlang са много леки и пренадлежат на езика, а не на операционната система.

Езика има механизми които позволяват промяната на кода на програмите докато те работят. Има механизми и за реализирането на системи които никога не спират.

Повечето програми написани на Erlang ще вървят по-бързо ако се изпълняват на многопроцесорни машини.

Типове данни

Erlang има няколко различни типове данни. Всяка частица данни, независимо от какъв тип е се нарича терм.

Number

Има два типа числа: цели (integer) и с плаваща запетая (float).

Освен стандартните означения на числата има и две специфични за Erlang означения:

$char – връща ASCII стойността на знака
Например:

2> $A.
65

В примера $A връща ASCII стойността на знака А

base#value – където base е базата на бройната система на числото, а value е неговата стойност. Базата трябва да е цяло число от 2 до 36.
Например:

1> 2#101.
5
2> 16#1f.
31

Atom

Atom е константа с име. Атома трябва да е обграден с единични кавички ( ‘ ) ако не започва с малка буква или съдържа специални символи.

Примери за atom:

hello
phone_number
'Monday'
'phone number'

Atom-ите много приличат на дефинирането на символични константи в С. Но в Erlang тяхната стойност е самият atom. Т.е. ако се напише команда която е просто atom ще се изпише самият atom.
Пример:

1> hello.

hello

Reference

Това е терм който е уникален за цялата система. Създават се с erlang:make_ref(). Могат да бъдат сравнявани за еднаквост.

Port Identifier

Идентификатор на Erlang порт.

Портовете се създават с функцията open_port() и са средство за комуникация с програми извън системата на Erlang. Когато се създаде порт, Erlang програмата може да комуникира чрез него изпращайки и получавайки поредица от байтове.

Erlang процеса който създава порта се нарича негов собственик и цялата комуникация от и към порта трябва да минава през него. Ако собственика на порт прекрати съществуването си порта се затваря.

Синтаксис за отваряне на порт:

Port = open_port(PortName, PortSettings)

Pid

Идентификатор на процес.

Функциите spawn(), spawn_link() и spawn_opt(), които се използват за създаването на процеси, връщат стойност от този тип.

Boolean

В Erlang няма boolean тип. Вместо него се използват аtom-ите true и false за да се означават boolean стойности.

Пример:

1> 2 =< 3.
true
2> true or false.
true

Структури от данни

Bit Strings (Binaries)

Тази структура от данни се използва за да пакетира поредица от битове и да ги разположи в паметта. По този начин могат да се съхраняват големи количества данни в сравнително малко памет.

Синтаксиса е <<E1,…,En>> като Еi е сегмент от bit string-a. Еi е стойност, като може да съдържа и информация за размера и типа и.

Примери:

Bin1 = <<1,17,42>>.
Bin2 = <<"abc">>.

Fun

Това са анонимни функции (обекти). С помощта на тази структура функции без име могат да се дефинират директно в израз или като параметър към друга функция.

Пример:

1> Hypot = fun(X, Y) -> math:sqrt(X*X + Y*Y) end.

2> Hypot(3,4).

5.00000

Tuple

Това е съставен тип данни, който съдържа фиксиран брой терми.

{Term1,…,TermN}

Всеки терм в tuple се нарича елемент, броят на елементите се нарича размер на tuple-a.

За разлика от структурите в С, tuple в Erlang нямат име, нито пък елементите им имат имe. Затова е честа практика да се поставя atom като първи елемент на tuple-a, който описва за какво служи tuple-a. Така кода става много по-четлив. Tuple структурите могат да бъдат вложени.

Пример (създаване на tuple):

F = {firstName, joe}.

Пример (извличане на стойност от tuple):

1> element(2,F).

joe

Съществуват много вградени функции за различни операции с tuple. Например element(), setelement(), tuple_size().

List

Това е съставен тип данни, който съдържа променлив брой терми.

[Term1,...,TermN]

Всеки терм в list се нарича елемент, броят на елементите се нарича дължина на list-а.

Първият елемент от list-а се нарича глава на list-a, всичко останало се рарича опашка. Опашката може да бъде друг list. Всъщност синтаксиса на list е по-кратък вариант на:

[Term1|[...|[TermN|[]]]]

Елементите на list-а могат да бъдат от различни типове.

Пример:

1> L1 = [a,2,{c,4}].
2> [H|T] = L1.
3> H.
a
4> T.
[2,{c,4}]

String

String-овете се ограждат с двойни кавички ( “ ), но не са тип данни в Erlang.

Например string-a “hello” е кратък запис на [$h,$e,$l,$l,$o], което е [104,101,108,108,111].

Два стринга записани един до друг са съединяват по време на компилиране.

Record

Това е структура от данни с фиксиран брой елементи. Елементите имат имена и е сходна на структурите в С.

Record не е истински тип данни за Erlang. По време на компилиране record се преобразува в един или повече tuple.

Пример (деклариране на record):

X = #person{name=Name, age=Age}.

Пример (създаване на record):

-record(person, {name, age}).

Пример (извличане на стойност на поле):

1> X#person.name

Name

Управляващи конструкции

If

if

Guard1 ->

Expr_seq1;

Guard2 ->

Expr_seq2;

end

Всяко условие (Guard1, Guard1) в if оператора се проверяват едно по едно. Когато някое условие се оцени на true се изпълняват изразите след него. Резултата който връщат изразите е резултат на if оператора.

Ако нито едно условие не бъде оценено на true възниква грешка. Ако е необходимо, за последно условие може да се постави true, и така ако всички други не се изпълнят то ще се изпълни.

Case

case Expression of

Pattern1 [when Guard1] -> Expr_seq1;

Pattern2 [when Guard2] -> Expr_seq2;

end

Изразът (Expression) се сравнява с различните шаблони и при успех се изпълняват съответните изрази. Стойността която връщат изпълнените изрази е стойността която ще върне case оператора.

Ако няма съвпадение на сравняваните шаблони възниква грешка по време на изпълнението на програмата.

Function Calls

Тъй като Erlang няма цикли за постигане на цикличност се използват функции в комбинацията с операторите if и case.

С помощта на функции и рекурсия могат да се реализират повечето видове цикли на Erlang.

Пример за цикъл for реализиран на Erlang:

for(Max, Max, F) -> [F(Max)];

for(I, Max, F) -> [F(I)|for(I+1, Max, F)].

Send

Erlang е създаден за паралелно програмиране и потока на изпълнение на програмата зависи от съобщенията които процесите си разменят.

Expr1 ! Expr2

Тази команда изпраща стойността на Expr2 като съобщение на процеса определен от Expr1. Expr1 може да бъде pid, atom(име) или tuple. Ако се използва atom и не бъде намерен процес със съответното име възниква грешка.

Receive

Получава съобщение изпратено от друг процес със send (!) оператора.

receive
    Pattern1 [when GuardSeq1] ->
        Body1;
    ...;
    PatternN [when GuardSeqN] ->
        BodyN
end

Ако не бъде получено съобщение което да отговаря на някой от шаблоните изпълнението на процеса се прекратява докато не се получи подходящо съобщение.

Вход/Изход – съхраняване на информация

Erlang ами много модули които реализират различни начини за комуникация със системата му. Най-използваните са: asn1, crypto, gs, inets, jinterface, megaco, public_key, ssh, ssl, wx, xmerl, erl_interface.

Има възможност и за реализирането на всякакви други видове комуникация с устройства чрез байтови потоци.

Езика има модули които реализират всички възможни операции с файлове които операционната система поддържа.

Интересни функции за работа с файлове и директории в модула file:

change_group, change_owner, change_time, close, consult, copy, del_dir, delete, eval, format_error, get_cwd, list_dir, make_dir, make_link, make_symlink, open, position, Pread, pwrite, Read, read_file, read_file_info, read_link, read_link_info, Rename, Script, set_cwd, Sync, Truncate, Write, write_file, write_file_info

Erlang има ODBC модул, който предоставя интерфейс за комуникация с релационни SQL бази данни.

Езика има и модул mnesia, който е система за управление на бази данни и е подходящ за телекомуникационни приложения.

Mnesia има способностите необходими за да се справя с проблемите за които е създаден Erlang.

Някой от най-важните и атрактивни качества на Mnesia са:

· Релационно-обектен хибриден модел на представяне на данните, който е подходящ за телекомуникационни системи.

· Специално създаден DBMS език за заявки.

· Таблиците могат да бъдат съхранявани както на диска, така и в паметта.

· Таблиците могат да бъдат разположени на различни машини.

· Групиране на серия от операции към таблица.

· Програмите могат да бъдат писани без знание къде точно се намират данните.

· Много бързо търсене в реално време.

· Може да бъде преконфигурирана без да бъде спирана.

Компилатори/Интерпретатори

Програмите на Erlang трябва да бъдат компилирани до обектен код. Компилатора генерира файл с обектния код и той се изпълнява от абстрактна машина наречена BEAM.

Компилатора може да генерира и директно изпълним файл.

Обектния код трябва да бъде зареден в системата на Erlang, което се прави от сървър. Кода се зарежда по два начина: когато е необходим или по предварително зададен начин.

Системата на Erlang позволява промяна на кода докато тя работи. Това става за всеки модул по отделно.

Кода на всеки модул може да съществува в два варианта в системата: текущ и стар. Когато модул се зареди за първи път той е текущ. Ако нов вариант на модула се зареди, кода от предния вариант на модула става стар, а новия вариант става текущ.

Ако трети вариант на модула се зареди сървъра ще изтрие стария вариант, третия вариант става текущ, а предишният текущ става стар.

SEO конференция 2009

Posted by Асен on April 11th, 2009

Вчера присъствах на най-интересното събитие за първата половина на 2009 година.

Изключително много се зарадвах, че някой се е сетил да организира SEO конференция. Огнян и компания създадоха изключително интересни лекции и допринесоха много за популяризацията на SEO-то в България.ogginimg_0895

Жалко, че с колегата Виктор Шапилов не бяхме в най-изгодната позиция за снимки, но за сметка на това вече могат да се намерят достатъчно такива в Интернет.

Най-интересни за мен бяха лекциите на Огнян и Георги Георгиев. Просто защото онлайн магазините са огромна част от проектите върху които работя.

Тъй като досега не съм участвал активно в българските SEO среди за първи път добих представа колко хора се интересуват от оптимизация за търсачки. За момент дори се замислих дали да не се занимавам повече със SEO и не толкова с програмиране ;)

Скоро трябва да бъде публикуван и видео запис на конференцията, иска ми се да прегледам някои моменти отново.

Отново поздравявам организаторите за страхотно свършената работа. Ще се радвам да има още много събития на тема SEO.

Отново PR ъпдейт

Posted by Асен on April 2nd, 2009

Както и предният път и сега PR-а на много сайтове продължи да пада. Време беше.

Имаше тенденция на постоянно покачване през 2008 и тази година нещата се връщат към нормалното.

Почти всички мои сайтове са отбелязали спад, което не е никак изненадващо след като почти не им обръщам внимание. Тази година определено няма да е годината на Google в моя живот и не смятам да му слугувам ;)

Личният ми блог падна от PR3 на PR2, вероятно ако пиша по-често и само на една тема ще се задържи на по-високи стойности.

Интересното е, че въпреки спада в PR-а трафика от Google изобщо не намалява, дори се покачва. По ясен сигнал че Google PR няма почти никаква тежест при класирането в SERP няма накъде.

New World Order Ahead!

Posted by Асен on March 20th, 2009

Интересно клипче което е на английски. На тези които незнаят английски мога само да кажа да го научат, няма друг начин да получат свободен достъп до информация.

A Must-Watch

Please Circulate Far and Wide

The link to send people is: www.davidicke.com/content/view/21125

SEO състезанието завърши

Posted by Асен on March 1st, 2009

Днес завърши SEO състезанието в което участвах. Ключовата дума беше avtorentacar. Състезанието продължи 6 месеца, имаше награден фонд от 3000 лв. и беше спонсорирано от rent.bg.

Първо искам да честитя на победителя Огнян, който през цялото време държеше първото място и победи всички ни :)

Аз и Виктор завършихме на второ място.  Едно много трудно удържано второ място, защото разчитахме главно на съдържание и по-малко на линкове.

Тактиката през цялото време беше да се създаде сайт с добра вътрешна структура, и богат на съдържание. Тъй като нямаме огромно количество приятели с развити сайтове нямаше как да разчитаме предимно на връзки.

Може би ако бяхме купили връзки резултата би бил по-добър, но решихме че инвестицията не би се възвърнала и няма смисъл, а и трябваше да спазваме Google Webmaster Guidelines .  Радвам се, че постигнахме тази позиция с бюджет от около 50 лв. с които купихме няколко домейна.

В началото имах късмета да купя домейна avtorentacar.com и това беше голямо предимство за участието ми. Когато го регистрирах бяха свободни и всички други домейни с ключовата дума, но реших да не хвърлям толкова пари. Може би грешка, ако бях взел всички домейни щеше да ми е доста забавно ;)

За радост спаменето по форуми и социални мрежи продължи само първият месец.

Малко след старта изникна въпроса, след като разчитаме главно на съдържание, откъде да идва това съдържание? Писането всеки ден може да е доста изморително, а писането на смислени неща ми изглежда невероятно.  Тогава дойде идеята за английска версия на сайта, а малко по-късно идеята да се публикуват безплатни статии на английски. Това е едно евтино решение, тъй като статии на английски има много. Но съдържанието не е уникално, което е проблем.

Щом има проблем има и решение. Реших да сложа малки кутиики с части от други статии във всяка статия. Нещо като “препоръчани статии” които се сменят автоматично. Това свърши работа за известно време. Около 2-3 месеца Google приемаше съдържанието за уникално и ни докарваше доста трафик за ключови думи от статиите, макар че сайта беше маркиран като български на Webmaster Tools. И тези статии станаха основната част от съдържанието. Публикуваха се в интервали от 38 мин.

Намерихме и информация за голямо количество rent a car фирми по целия свят. Бяхме направили специален каталог който всеки ден добавяше малко фирми към себе си. Автоматична и прекрасна функция. Google обича да вижда адреси и телефонни номера.

Идва и най-хубавата част. Получих писмо от американска фирма за автомобили и камиони и те искаха да купят контекстуални връзки в няколко от статиите. Тази неучаквана печалба покри разходите за домейни няколко пъти :P

Но малко по късно трафика от Google към тези статии спря. Извода е, че рано или късно Google се усеща ако има дублирано съдържание от други сайтове. Дори и то да е променено и разширено както бях направил аз.

Макар да спря да ни докарва трафик, Гугълбота запази интереса си към сайта.

Веднага след междинната награда стана нещо неочаквано. Паднахме с 60 позиции, а не бяхме правили нищо с което да го причиним. По-точно не бяхме правили нищо изобщо. След кратко ровене в баклинковете открихме и причината. Някой беше купил линкове към нас от сайт(ове) баннати за продажба на линкове.

Доста неприятно. Не разбрах кой беше, но имам подозрения. Няма да коментирам тази постъпка, ще коментирам само нашите действия.

Решихме да изчакаме да  видим какво ще стане. Мина 1 месец и нищо не стана. Тогава на колегата му дойде идеята да пишем на Google за проблема и на другия ден бяхме отново на първа страница.

Доста бърза реакция от страна на Google и потвърждение за чистата история на сайта.

В оставащото време до края на състезанието нищо не се случи. Огнян си държеше първото място, а ние се занимавахме с всичко останало, но не и състезанието. През последните седмици много играчи се активизираха и имахме сериозен проблем със задържането на втора позиция. Привършиха ни линковете а и не купихме. Все пак удържахме позицията до края, час и половина по-късно icat2006.org ни измести.

Имаше идея да използваме автоматичен превод на статиите за да имаме повече съдържание на български, но се радвам че не го направихме. Не съм фен на подобни похвати, съдържанието би било напълно безсмислено за човек.

Резултата от състезанието за нас е малка печалба, но поне печалба :)

Резултата за спонсорите е много добро класиране за ключовите думи rent a car. Но вероятно ще загуби огромна част от линковете към него и ако не продължи да оптимизира сайта си (да купува линкове) най-вероятно ще падне надолу. За мен ще е интересно как ще го оценява Google през следващите няколко месеца.

Смятам че това ми е първото и последно участие в СЕО състезание. Беше интересно, но продължителността и огромния спам носят доста негативи. С вложените усилия бих могъл да направя доста по-смислен и печеливш сайт.

Бъдещето на състезателният сайт е неясно. Може да го поддържам и да продавам линкчета ;)

Plugin против спама в WordPress блоговете

Posted by Асен on February 28th, 2009

От много време се мъчех да трия спам коментари. Независимо на какъв език са блоговете ми спама е константа.

В блогове на български преобладава руският спам, а в английските е съсредоточен целия спам на света.

Както повечето хора, аз неискам да блокирам дадени държави или думи в коментарите. А и това би премахнало само малка част от спама в блоговете на английски.

Скоро се натъкнах на един прекрасен plugin, които използва JavaScript и кукита да определи дали коментара е от човек или робот, тъй като роботите рядко поддържат JavaScript.

Става дума за WP-SpamFree:
http://www.hybrid6.com/webgeek/plugins/wp-spamfree

След като го открих спама като с магия изчезна. Дори показва колко коментара са изтрити.

За съжаление една малка част от хората изключват Javascript-a или кукитата на браузерите си, но съм на мнение, че сайтовете трябва да се правят за нормални хора, а не за параноици на тема сигурност ;)


Copyright © 2012 Асен Сотиров, ДевСпел ООД
Theme by Correos masivos