воскресенье, 5 апреля 2009 г.

Утилита Site-Auditor – сбор данных о видимости сайта в поисковиках

По наводке друзей набрёл на интересную программу, при помощи которой можно легко собрать основные данные о текущем уровне оптимизации сайта. Имя ей Site-Auditor (домашний адрес: www.site-auditor.ru).

Утилита Site-Auditor позволят всего одним «мышедвижением» получить все необходимые данные из основных поисковых систем не только рунета, но и популярных поисковиков Google, Yahoo и MSN. Внешний вид окна программы приведен ниже.

На момент написания этого поста, на сайте была доступна версия 1.68. Одним из достоинств программы является её кроссплатформенность, так как написана она с применением технологии Flash. Всё что вам нужно – это иметь установленный flash player версии 8.0 или выше, и она будет одинаково работать как в Windows ОС, так и для MAC OS X и Linux систем.

Весь функционал утилиты сгруппирован по трём вкладкам: Экспресс-анализ, Подбор запросов и Видимость сайта.

В первом разделе собраны основные данные о текущем уровне оптимизации сайта. Среди них индексы цитирования, количество проиндексированных страниц, количество ссылок на этот сайт и многое другое. Кроме того, если на сайте будет обнаружен счетчик Рамблер Top100, утилита соберет данные о количестве посетителей и просмотренных страниц за последние 7 дней. Также умеет сможет распознать и счетчики ряда других статистических систем, о которых можно почитать на официальном сайте. Путём клика на выпадающем меню «Внешние сервисы» можно пользоваться рядом полезных инструментов, таких как WHOIS, Traceroute (RU) и Traceroute (COM), WayBack Machine и другими. Каждый раз, когда вы будете получать новые данные об уровне оптимизации сайта, программа будет сохранять их в истории запросов. Так открывается возможность наглядного просмотра данных во временной шкале и отслеживания тенденций развития сайта.

Сервис «Подбор запросов» позволяет составить семантическое ядро для исследуемых сайтов. Проще говоря, получить список поисковых запросов, которые пользователи задавали в поисковом сервисе Рамблер в течение прошедшего месяца и которые содержат слова, указанные в поле "Проверить запросы".

Вкладка "Видимость сайта" позволяет получить суммарный отчет о положении анализируемого сайта в результатах поиска Google, Яндекса и Рамблера.

Надеюсь, этого краткого обзора хватит, чтобы вас заинтересовать, так как мне утилита Site-Auditor очень понравилась, в частности, из-за количества различных опций и сервисов, а так же наглядных отчётов собранных в одном месте. Единственное, что следовало бы улучшить разработчикам данного программного чуда – это убыстрить работу, например, путём параллельного послания нескольких запросов на серверы поисковиков, а не последовательно на каждый из них по каждому из параметров, как сделано сейчас.

суббота, 28 марта 2009 г.

Коды основных символов HTML

Часто используемые
    неразрывный пробел
  короткий пробел
  длинный пробел
­ ­ мягкий перенос
— длинное тире
– короткое тире
… многоточие
« « левая кавычка елочка
» » правая кавычка елочка
© © (c)
® ® (R)
™ TM
Математические
± ± +-
× × умножить
≠ не равно
&lt; < <
&gt; > >
&le; <=
&ge; >=
&radic; квадратный корень
&sup2; ² квадрат, вторая степень
&sup3; ³ куб, третья степень
&frac14; ¼ 1/4
&frac12; ½ 1/2
&frac34; ¾ 3/4
&infin; бесконечность
Стрелки
&larr; стрелка влево
&uarr; стрелка вверх
&rarr; стрелка вправо
&darr; стрелка вниз
&harr; стрелка влево и вправо
&crarr; стрелка вниз, потом влево, как Enter
&lArr; стрелка двойная влево
&uArr; стрелка двойная вверх
&rArr; стрелка двойная вправо
Прочие
&amp; & амперсанд
&euro; ? евро
&prime; '
&Prime; ''
&middot; · точка на середине высоты строки
&oline; Надчерк
&deg; ° градус

jQuery Tabs. Ajax загрузка в один и тот же div контейнер

Эта статья будет полезна тем, кто использует такую мощную штуку как jQuery UI, в частности элемент интерфейса Tabs. jQuery Tabs позволяет в несколько строчек кода создавать удобный и быстрый набор вкладок на HTML странице.

Контент в каждой из вкладок может быть как статическим,так и динамически загружаемым при помощи ajax-а. Все доступные опции и методы этого элемента управления неплохо расписаны на официальном сайте jQuery, поэтому я углубляться не буду.

Приведу пример использования:

<div id="contacttabs">
  <ul>
    <li><a href="all.html"><span>Все контакты</span></a></li>
    <li><a href="friends.html"><span>Друзья</span></a></li>
    <li><a href="invisible.html"><span>Список невидящих</span></a></li>
    <li><a href="ignore.html"><span>Список игнорируемых</span></a></li>
  </ul>
</div>

<script type="text/javascript">
  $(document).ready(function() {
    $("#contacttabs").tabs({
      spinner: 'загрузка...'
});
  }
</script>

После загрузки страницы создастся четыре вкладки, содержимое, в каждую из них, будет загружено динамически ajax-ом. Все недостающие контейнеры, в которые загружать содержимое вкладок, jQuery создаст сам. Эта часть будет выглядеть приблизительно вот так (содержимое div-ов опущено для упрощения восприятия):

<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
...
</ul>
<div id="ui-tabs-16" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>
<div id="ui-tabs-27" class="ui-tabs-panel ui-widget-content ui-corner-bottom"></div>
<div id="ui-tabs-29" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>
<div id="ui-tabs-31" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>

Вкладок четыре, соответственно DIVов-контейнеров тоже четыре. У меня проблема возникла вот в чём. В данном конкретном примере, содержимое вкладок было одинаковым по структуре, но различным по смыслу. Появлялась ситуация, когда элементы HTML-страницы имеющие одни и те же ID-шники появлялись на разных вкладках.

В текущий момент времени пользователь видит только активную вкладку, и может взаимодействовать только с элементами, находящимися в контейнере выбранной вкладки. Все остальные имеют атрибут hidden. Это значит, что элементы загружены в DOM для каждой из вкладок, хотя и не видны в данный момент времени, и если обратиться по уникальному ID-шнику элемента на вкладке, то может возникнуть «коллизия», и селектор выберет совсем не тот элемент, который хотелось из активной вкладки.

Единственным выходом для меня было – подчищать содержимое контейнеров неактивных вкладок, дабы не возникало дублирование ID-шников. Такой опции в jQuery Tabs, я найти не смог, пришлось написать небольшой hook. Я навесил на событие select, возникающее в Tabs, в момент переключения активной вкладки, очистку всех неактивных контейнеров <div>.

<script type="text/javascript">
  $(document).ready(function() {
    $("#contacttabs").tabs({
      spinner: 'загрузка...',
      select: function(event, ui) {
        /*clear all divs content except active one*/
        fakes = ui.panel.parentNode.getElementsByTagName('div');
        for(i=0;i<fakes.length;i++){
          if(fakes[i] != ui.panel){
            fakes[i].innerHTML = '';
          }
        }
      }
    });
  });
</script>

И тогда всё заработало, как следует..

четверг, 5 марта 2009 г.

Смешные комментарии в коде

Насобирал отличную подборочку смешных комментариев в коде, думаю, программисты оценят свою же лирику (=


// sometimes I believe compiler ignores all my comments

// drunk, fix later

return 1; //returns 1

// Magic. Do not touch.

const int TEN=10; // As if the value of 10 will fluctuate...

//This code sucks, you know it and I know it. Move on and call me an idiot later.

doRun.run(); // ... "a doo run run".

try {
} finally { // should never happen
}

/* These magic numbers are fucking stupid. */

/* TODO: this is obviously not right ... this whole fucking module sucks anyway */

/* FIXME: please god, when will the hurting stop? Thus function is so fucking broken it's not even funny. */

//I am not sure why this works but it fixes the problem.

// I am not sure if we need this, but too scared to delete.

// I have to find a better job

// Remove this if you wanna be fired

if (case1) { // trivial
...
}
else { // we are screwed
/* fill in later */
}

if (/*you*/ $_GET['action']) { //celebrate

Замедляет ли Google Analytics сайт?

Если вы используете Google Analytics для отслеживания посещений на вашем блоге, то вы можете быть удивлены скоростью загрузки страниц, по-крайней мере в Европе точно заметно. Народ начал замечать, что в так называемые «часы-пик» использования Web-а код JavaScript от Google Analytics грузится на 97% медленнее по сравнению с обычной нагрузкой. Это справедливо для Европы. Для США такое падение в скорости тоже имеет место, но не такое заметное, разница составляет всего лишь 27%.

Чем это обусловлено – сложно сказать. Скорее всего, просто большинство серверов Гугла расположено не в Европе, и поэтому большое количество пользователей даёт такую усадку по скорости загрузки. Конечно, это не означает, что нужно перестать пользоваться этим прекрасным сервисом, и боятся за скорость загрузки вашего сайта. Всё это некритично.

Есть конечно и ряд других аналогичных некоммерческих сервисов для отслеживания посещений на вашем сайте. Сегодня один из моих друзей показал мне такую вещь как Woopra (http://www.woopra.com). На данный момент сервис находится в стадии бета-тестирования, но багов мной не было замечено, можно смело пользоваться. По возможностям сервис превосходит аналогичный GA (Google Analytics). Единственный недостаток – у них большая нагрузка на сервера и поэтому можно ждать около месяца пока ваш аккаунт утвердят. Что сразу бросилось в глаза – Woopra может отслеживать посещения и анализировать поведение пользователей вплоть до отдельного индивидуума, такого GA, конечно, не предоставляет.

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

вторник, 17 февраля 2009 г.

Free hosting

Несколько бесплатных зарубежных хостингов:

Оба, вроде, хороши, по отзывам пользователей. Но Awardspace частенько грешит долгими downtime, в отличии от Freehostia, у которой они гораздо реже и не так заметны. Оба хостинга предоставляют услуги без внедрения рекламы на ваши страницы, и вы можете свободно использовать PHP или Perl скрипты. Кстати, Freehostia даже предоставляет бесплатный план с уже предустановленным рядом скриптов, которые могут быть полезны новичкам.

В общем советую попробовать.

среда, 4 февраля 2009 г.

Оптическая иллюзия "Lilac chaser"

Иллюзия сочетает в себе три простых, общеизвестных эффекта:

  1. Когда происходит кратковременное событие в одной точке поля зрения, а в близлежащей точке имеет место схожее событие, мы воспринимаем это как движение из одной точки в другую. Это явление называют мнимым движением, или бета-движением, поскольку фактически никакого движения не было. Мнимое движение является основой движущихся неоновых вывесок, фильмов и видео. Мы видим движение поскольку устройство отображения информации (например, монитор) стимулируют рецепторы головного мозга (называемые рецепторами Рейхардта), отвечающие за расшифровку движений. Визуальными событиями в данной иллюзии являются исчезновение сиреневых кружков, а также дальнейшее появление зелёных послеобразов (см. далее).
  2. Когда исчезает сиреневый раздражитель, присутствующий в определённой области поля зрения в течение длительного времени (скажем, около 10 секунд), появляется зелёный послеобраз. Этот послеобраз остаётся в течение достаточно короткого промежутка времени, и в данном случае, "стирается" повторным появление сиреневого раздражителя. Появление послеобраза является следствием адаптации палочек и колбочек сетчатки. Цвет и яркость определяются соотношением активностей трёх типов колбочек. Под влиянием сиреневого раздражителя колбочки "устают". Когда раздражитель исчезает, усталость колбочек способствует тому, что активность, вызванная в них серым фоном, совпадает с таковой в состоянии покоя. Адаптация палочек и колбочек начинается сразу же после начала действия раздражителя, поэтому длительность послеобразов постепенно начинает расти. Обычно мы их не замечаем, поскольку изменяем положение глаз примерно 3 раза за секунду, и видимое изображение каждый раз попадает на новые, неадаптировавшиеся палочки и колбочки. В этой иллюзии, наши глаза сохраняют неподвижность, что вызывает нарастание длительности послеобразов, возникающих после прекращения действия раздражителя.
  3. Если в области периферического зрения, появляется размытый раздражитель, и при этом сохраняется неподвижность глаза, то раздражитель исчезает, даже если он всё ещё физически присутствует. Это явление называется затуханием Трокслера (Troxler's fading). Так происходит потому, что даже если наши глаза сфокусированы на точке и слегка двигаются, движения вне этой точки (в области периферического зрения) недостаточны для того чтобы сдвинуть сиреневые пятна на новые нейроны нашей зрительной системы. Эти послеобразы фактически перекрывают основные образы и все сиреневые пятна кажутся серыми, за исключением тех мгновений, когда появляются зелёные послеобразы.


Рекоммендую

Попробуйте надёжный хостинг от Scala Hosting