Поездка до дома оказалась тем еще приключением.. 30 часовой перелет с тремя пересадками, в том числе один трансатлантический (10 часов в самолете, а кондоровцы за просмотр фильмов с медиацентра требовали 10 евро, не то что иберия). Суммарно получилось все 60 часов без сна, так как вылет тоже посреди ночи, не поспишь. В Пунта-Кане, Доминикане, оказалось дофига русских (не зря сюда чартеры возят пактеников), а аэропорт оказался самым забавным — все гейты и часть залов ожиданий накрыты соломенными крышами:
Нас бекпкеров набралось 11 человек, кто ехал таким замысловатым маршрутом (зато самым дешевым). Половину длинного перелета в итоге проболтал с немкой, живущей в Эдинбурге, переводчицей) А до Москвы рейс оказался полупустым, так что наконец-то удалось три часа поспать. А вот в Москве и начались неприятности — как оказалось, Перу относится к странам с «плохим рейтингом», не говоря уже про мой внешний вид, так что на таможне мне переворошили весь рюкзак (буквально, даже грязное белье), проверили экспресс-тестом на наркотики. В итоге докопались до безобидного, купленного в dute-free чая из листьев коки и каких-то конфет в виде коричневых мягких брусочков — и ладно бы просто изъяли, я спокойно доехал бы до вокзала и упал в поезд. Но нет, бюрократическая машина, и они оформляли этот чай все 3 часа, записывая акты изъятия, взвешивая этот чай и т.д. В итоге опоздал на поезд, пришлось выкупать следующий (сдать предыдущий билет в аэропорту так же возможности нет), еще -3000 рублей. Чай отправили на экспертизу, буду ждать результатов (объем для личного пользования, так что ничего особо серьезного).
Догадайтесь, что сделал на следующее утро штатный милиционер в поезде? Правильно, тоже самое (обычно они просто досматривают по карманам). Люби Россию, блджад! Самое забавное, что оба они досматривают лишь подозрительных граждан — но кто ж доверит перевозку наркоты подозрительным гражданам? Или еще попадаются идиоты с дредами, которые таскают с собой косяки в карманах (потому что даже с этими досмотрами я вполне мог найти 5-10 мест где его заныкать, если бы хотел). Комедия.
Ну да не суть, главное что доехал) Впервые попал в зиму, снег вижу впервые за 4 года — с тех пор как в первый раз уехал в Таиланд.
4-х месячный трип окончен, +3 страны, новый континент. Почти все время в Андах — мне весьма понравилось жить в городах на 1500-2000м. Южная Америка оказалось не такой уж дорогой, как все пугали, и не такой опасной. В целом, трип получился годный, жаль пришлось досрочно заканчивать — при таком курсе рубля деньги исчезают слишком быстро (( Альтернатива для зимовок? Вряд ли. Вариант для иммиграции? Очень даже. Последняя неделя в Перу получилась хороша на треки, хотя в целом страна трешовая (разве что еда лучше):
Планы на будущее — отрабатывать долг, реализация пары новых проектов, апгрейд старых. А именно — фриланс (ура, уже есть один небольшой заказ) + с одеском, «пикабу для онямэ» (решил делать на пыхе, ибо буду еще пару месяцев разбираться с монгой, а скрипт мне потом еще понадобится — а может и на продажу пойдет) + бурж sf, коммьюнити вокруг storyfinder + очередная сессия работ над топсапой. Как минимум до мая-июня никуда особо выбираться не буду (разве что по мелочи), так что все пучком.
Сегодня впервые сделал 3+ часа продуктивного времени (а сейчас уже все 5) — засел за скрипт для объединении стат нескольких сайтов с LI (мой мелкоскрипт показывал только текущие данные, а монстра вроде LiViewer ставить и тем более платить не хотелось). Например, за последние 30 дней максимальная посещаемость у меня была 2 марта, 4406 посетителей и 22094 просмотра. В итоге получилось что-то вроде этого:
Есть поддержка стат под паролем, БД разумеется не нужна, только файлу sites.dat дать права на запись. Простой как валенок скрипт (это я к тому, что не надо придираться к плохой структуре — я писал в первую очередь для себя и максимально просто и быстро). Подобные этому скрипты (обычно конечно они куда сложнее) я с удовольствием делаю на заказ.
Сегодня у нас «вебдев для самых маленьких», а именно — оформление разной статистический информации графиками. Задача: есть некоторые события (регистрация пользователей, появление сообщений, поисковый запрос и т.д.), логирующиеся в MySQL, требуется наглядно показать динамику (сколько событий в день/месяц/час), вроде такого:
Для начала нужно добавить в таблицу события поле `time_added`, тип TIMESTAMP, значение по умолчанию — CURRENT_TIMESTAMP. Не нужно даже ничего менять в php-коде — в это поле будет автоматически добавляться время добавление записи, а в phpmyadmin он будет выглядеть вполне читабельным значением вроде «2014-03-07 18:22:27» (в отличие от записи timestamp-а в int поле). Затем делаем выборку из таблицы:
//Получаем метку даты 30 дневной давности о оформляем его в удобовариемый mysql-ем вид
$last30d=date("c",strtotime("-30 day"));
//Делаем выборку событий из базы старше нужного
$res=mysql_query("SELECT COUNT(*),time_added FROM wordstat WHERE time_added>’$last30d‘ GROUP BY DAY(`time_added`)");
while($row=mysql_fetch_array($res)){
$key=date("Y-n-d",strtotime($row[‘time_added’]));
$days[$key]=$row[‘COUNT(*)’];
}
//Сортируем массив в нужном порядке
ksort($days);
Не так уж сложно, как видите) Точно так же можно подсчитывать число событий в месяц или год. Следующая задача — построить график по этим данным. Можно конечно использовать какую-нибудь php-gd библиотеку, или даже самостоятельно всё написать, но зачем, если есть готовые либы? Я использую JS-библиотеку Google Charts, обладающую просто безграничными возможностями, главное в нём разобраться.
И вауля, график готов. Кастомизировать его можно как угодно, мне больше нравится такой вид, а не дефолтный. Как я уже писал, возможности у библиотеки богатые (это ж гугл), документация весьма обширная, но её надо читать и вкуривать, и далеко не всё получается как надо (я например не могу настроить сетку внутри графика).
Задача решена. Да, возможно в MySQL можно задать такой запрос, который выдаст данные в уже нужном отформатированном виде. Уже перед самой публикацией понял, что я дичайше накосячил (до этого просто выбирал все записи из БД и фасовал их по дате в массив), и при более-менее значительных данных скрипт будет либо падать от нехватки памяти, либо очень очень долго думать. Отсюда вывод — не верьте всему тому, что написано в интернете) Гугл и stackoverflow быстро выдали мне нужное решение, описанное выше (там только SQL-запрос сменился). Хотя я пока еще использую старое ресурсоемкое решение, так-как мне нужно много более подробной информации, а не только динамика. Наверняка там и в других местах можно реализовать более удобно и правильно, например метод передачи данных между php и js.
PS. Я люблю собирать разнообразную статистику и анализировать её. Правда, не всегдя я делаю это наглядно — просто лень заморачиваться, можно ведь просто таблицу значений вывести) Но когда это публичная статистика, хочется навести красоту, а потом уже сам привыкаешь к такому удобству, и начинаешь делать так везде.
Исходный код оформлен в Pastebin, но для совместимости был скопирован со страницы для печати, вместе со стилями (только javascript-оформление не заработало, поэтому слегка криво подсвечен второй кусок кода)
Помните я говорил о создании фейковой студии под сапу? Небольшие продвижки таки есть — подобрал название (читаемое, но не слишком запоминающиеся), зарегал домен, нашел «трастовый» хостинг (петерхост… ох уж эта их панелька родом из 2000-х), и даже на скорую руку состряпял одностраничный сайтик.
Но ведь надо соответствовать образу дизайн-студии, не так ли? Вот меня и понесло — простенький первоначальный дизайн доделал и переверстал div-ами (до этого все сайты верстал таблицами), потом подогнал под XHTML 1.0 Strict, в полном соответствии со стандартами — контент в одном месте, оформление — в другом. Все значения — относительные, резиновая верстка, кроссбразуерность вплоть до мобильных платформ, и даже с отключенными стилями сайт вполне читаем. Но мне конечно было проще — я предпочитаю минимализм, а не верстку тремя десятками картинок, фонов и попиксельной расстановке элементов.
Затем — как управлять сайтом, генерировать стандартные страницы и т.д. (на заметку — можно сделать двуязычный сайт, страниц в два раза больше). Использовать готовые движки желание не было никакого, либо слишком мощные (WP, Drupal), либо слишком много дописывать (GetSimple). Пришлось писать еще и CMS, причем MVC — шаблон, данные и логика раздельно, а не собраны в одну кучу, как это у меня обычно бывает. А где хранить данные? Это же простенький сайт, БД подключать резона нет, значит на файлах. А раз файлы, то неплохо бы изучить работу с XML, как наиболее удобную. Даже шаблон, стили и часть кода засунул в XML-файл, вся cms поместилась в три файла 🙂 Кстати, финт ушами — оказывается, ЧПУ удобней делать не вручную (настраивая в .httaccess отдельные правила), а вордпресс-способом — все запросы отсылаются в index.php, а там уже разбирается REQUEST_URI и показывается нужная страница.
В итоге у меня сейчас довольно удобный универсальный движок (универсальный для программиста, а не для пользователя «нажал кнопку появился форум»), весьма недурственный шаблон для сайта, и добавилось немного дополнительных знания по верстке и программированию (особенно в части «как грамотно написанный код облегчает работу»).
И теперь идея сайта под сапу мне кажется кощунственной))) И все больше склоняюсь к мысли допиливания CMS, и перевода на неё своих небольших сайтов (а заодно будущих), и скорее всего публикации в открытом доступе. А сам сайт использовать как вполне реальную студию, только работающую над своими проектами — в том числе этой cms, шаблонамии и прочим (халявные ссылки!). А уж извлечь пользу думаю получится. Так что скоро думаю список «Моих проектов» пополнится 🙂
Первоапрельский АГС-апдейт прошел мимо.. Все меньше и меньше за ними слежу, домены суспендятся пачками, чистых ГС в сапе осталось всего несколько штук, да и то приносят копейки.
——————————
МТС жжот — теперь у меня 2-мбитка, хоть и с ограничениями по трафику)
Так-как у линкфида слишком заковыристое апи, к тому же по умолчанию отключенное, используем старый добрый способ парсинга данных «в лоб»:
(если вы не видите код — у вас отключен яваскрипт. Исходный код)
Все довольно просто — отправляем сайту данные авторизации (логин:пароль), получаем Cookies, и загружаем следующую страницу, используя ранее полученные куки. Парсим ответ, получаем чистые данные — если нужно. Первоначальный скрипт мне скинул ленивый программист, правда у меня он почему-то не заработал и пришлось его переписать и дополнить. Если вы планируете часто использовать подобный скрипт — то лучше сохранить куки в файл и использовать уже оттуда, а авторизовываться лишь когда это необходимо. К примеру, чтобы постоянно не разлогиниваться с сапы, я вручную выставил время жизни кук на много лет вперед — так гораздо удобней.
Зачем вообще может пригодится подобный скрипт? К примеру, вы можете залогиниться в той же сапе и автоматически добавить несколько десятков/сотен своих сайтов. Если вы залогинитесь в яндексе, то лимит запросов у вас повышается (хотя ограничение остается), к тому же у яндекса достаточно сервисов, добавление информации в которые не требует ввода капчи 🙂 Да и вообще на любые сервисы, где нет капчи при авторизации — различные партнерки, вконтакте, соц. закладки и прочие полезные ресурсы. К сожалению, так же действуют спамеры — комменты отправляются аналогичным POST запросом (и зачем я это сказал..).
Можно отправлять запросы без авторизации — регистрация LI счетчика, добавление в аддурелку рамблера (когда там не было капчи) и т.д. Чтобы вручную не возиться с исходным кодом, можете воспользоваться парсером HTML форм от Jeck.ru. Можно вообще не отправлять запросов, а сразу парсить страницу — ключи с вордстата, кейворды со статистики LI — там все таки более реальные данные (к сожалению, кто-то обнаглел и эту страницу закрыли), выдачу с Яндекс.Блогов (там есть замечательная ссылка на полный текст записи — не надо мучиться с очищением текста, сразу готовый контент) и еще много много сайтов, к которым может приложить руки сеошник со знанием php 🙂
Но будьте аккуратны с хранением cookies — зная их, можно полностью управлять вашим акком на сайте. Это кстати и являлось целью XSS-атак — встроить на страницу яваскрипт, дождаться, пока на неё зайдет админ, получить его куки, вручную вставить их себе — и вауля, вы авторизованы как администратор. Это уже потом, когда заместо надписей «Defased by Вася» стали пихать ссылки, а потом и сапу, начали в срочном порядке закрывать эти баги и отфильтровывать такие ссылки (а они были даже на яндексе). Так-что осторожнее)
—————-
Тестовый сателлит от Сайтуса проиндексировался, 100 страниц из 400 (хотя тут сам виноват, совсем забыл сделать сайтмап). Хотя выглядит он как говно (но может это мне так повезло с тематикой — сериалы), попробую сделать из других категорий. Мой новостной на старом домене выглядит нормально (даже читабельно), только не индексируется совсем — видимо дело в домене, он хоть и старый, но наверное успел попасть в черный список. Лучше буду делать на новых 🙂 Поднимать тИЦ этому хламу рука не поднимается.
Оказывается, у меня уже 3 сайта-сервиса: анализ сайтов + генерация сайтмап (тИЦ 110, класс), получение ссылки на скачивание видео с ютуба (посещаемость 100/500 в день, иногда непонятные всплески до 400/1600) и конвертер книг для iPod (полгига книг обработано). И у всех стабильная посещаемость, полезность для посетителей и плюшки для меня. С доходом к сожалению довольно туго (у всех 1-2 страницы в индексе), но и трат кроме как на их создание особо нет, ресурсов они много не потребляют, гигантских баз не требуют. Сейчас думаю, как же эти сервисы можно улучшить, а главное — увеличить число страниц в индексе — чтобы хоть как то получить с них доход 🙂 Кстати, какие еще сервисы можно создать?
Мерчант такой мерчант.. Как оказалось, техническая реализация довольно проста, если пользоваться правильным мануалом, а вот бюрократическую машину пройти — совсем другой вопрос.. Уже во второй раз отклоняют заявку. Так что введение автоматической оплаты в TopSape опять откладывается на несколько дней.
Каждый, у кого больше 3 сайтов, начинает думать о рациональном способе проанализировать все сайты. 1-2 сайта можно проверить напрямую у поисковиков/сервисах, но когда сайтов штук 5, это начинает уже слегка надоедать, особенно после АПов. Поэтому создаются специальные скрипты или сервисы, которые и показывают все пузомерки сайтов (или списка сайтов). Но мне почему то не попадалось нормальных серисов для массовой проверки, или же у них были какие то траблы, поэтому мне постоянно приходилось писать их самому)
Этим скриптом я пользуюсь в данный момент. Может быть, данных не так много, но для моих целей — необходимый и достаточный минимум) Скрипт показывает тИЦ, PR, индекацию в Яндексе, индексацию в Гугле, среднюю посещаемость в день за последние 7 дней. Я этот скрипт использую для анализа своих полу-сдл, блога, проектов, некоторых сателлитов.
Вот так он выглядит:
Думаете, я собираюсь продавать скрипт? Хех, да нафига оно мне нужно ))) Забирайте так:
Да, и еще.. Скрипт предоставляется «как есть», все баги — ваши проблемы. Модифицировать можете как угодно, продавать тоже — больше половины функций — не мои, я даже не знаю, как они работают)