spryt: странствующий вебмастер об авторе | контакты | реклама на блоге

Архив рубрики ‘скрипты’

Дома

10 марта, 2015

Поездка до дома оказалась тем еще приключением.. 30 часовой перелет с тремя пересадками, в том числе один трансатлантический (10 часов в самолете, а кондоровцы за просмотр фильмов с медиацентра требовали 10 евро, не то что иберия). Суммарно получилось все 60 часов без сна, так как вылет тоже посреди ночи, не поспишь. В Пунта-Кане, Доминикане, оказалось дофига русских (не зря сюда чартеры возят пактеников), а аэропорт оказался самым забавным — все гейты и часть залов ожиданий накрыты соломенными крышами:

Пунта Кана Аэропорт

Нас бекпкеров набралось 11 человек, кто ехал таким замысловатым маршрутом (зато самым дешевым). Половину длинного перелета в итоге проболтал с немкой, живущей в Эдинбурге, переводчицей) А до Москвы рейс оказался полупустым, так что наконец-то удалось три часа поспать. А вот в Москве и начались неприятности — как оказалось, Перу относится к странам с «плохим рейтингом», не говоря уже про мой внешний вид, так что на таможне мне переворошили весь рюкзак (буквально, даже грязное белье), проверили экспресс-тестом на наркотики. В итоге докопались до безобидного, купленного в dute-free чая из листьев коки и каких-то конфет в виде коричневых мягких брусочков — и ладно бы просто изъяли, я спокойно доехал бы до вокзала и упал в поезд. Но нет, бюрократическая машина, и они оформляли этот чай все 3 часа, записывая акты изъятия, взвешивая этот чай и т.д. В итоге опоздал на поезд, пришлось выкупать следующий (сдать предыдущий билет в аэропорту так же возможности нет), еще -3000 рублей. Чай отправили на экспертизу, буду ждать результатов (объем для личного пользования, так что ничего особо серьезного).

Догадайтесь, что сделал на следующее утро штатный милиционер в поезде? Правильно, тоже самое (обычно они просто досматривают по карманам). Люби Россию, блджад! Самое забавное, что оба они досматривают лишь подозрительных граждан — но кто ж доверит перевозку наркоты подозрительным гражданам? Или еще попадаются идиоты с дредами, которые таскают с собой косяки в карманах (потому что даже с этими досмотрами я вполне мог найти 5-10 мест где его заныкать, если бы хотел). Комедия.

Ну да не суть, главное что доехал) Впервые попал в зиму, снег вижу впервые за 4 года — с тех пор как в первый раз уехал в Таиланд.

Деревня

4-х месячный трип окончен, +3 страны, новый континент. Почти все время в Андах — мне весьма понравилось жить в городах на 1500-2000м. Южная Америка оказалось не такой уж дорогой, как все пугали, и не такой опасной. В целом, трип получился годный, жаль пришлось досрочно заканчивать — при таком курсе рубля деньги исчезают слишком быстро (( Альтернатива для зимовок? Вряд ли. Вариант для иммиграции? Очень даже. Последняя неделя в Перу получилась хороша на треки, хотя в целом страна трешовая (разве что еда лучше):

Huaraz

Планы на будущее — отрабатывать долг, реализация пары новых проектов, апгрейд старых. А именно — фриланс (ура, уже есть один небольшой заказ) + с одеском, «пикабу для онямэ» (решил делать на пыхе, ибо буду еще пару месяцев разбираться с монгой, а скрипт мне потом еще понадобится — а может и на продажу пойдет) + бурж sf, коммьюнити вокруг storyfinder + очередная сессия работ над топсапой. Как минимум до мая-июня никуда особо выбираться не буду (разве что по мелочи), так что все пучком.

Сегодня впервые сделал 3+ часа продуктивного времени (а сейчас уже все 5) — засел за скрипт для объединении стат нескольких сайтов с LI (мой мелкоскрипт показывал только текущие данные, а монстра вроде LiViewer ставить и тем более платить не хотелось). Например, за последние 30 дней максимальная посещаемость у меня была 2 марта, 4406 посетителей и 22094 просмотра. В итоге получилось что-то вроде этого:

li_stat

Есть поддержка стат под паролем, БД разумеется не нужна, только файлу sites.dat дать права на запись. Простой как валенок скрипт (это я к тому, что не надо придираться к плохой структуре — я писал в первую очередь для себя и максимально просто и быстро). Подобные этому скрипты (обычно конечно они куда сложнее) я с удовольствием делаю на заказ.

Скачать скрипт

Вот такие новости пока что =) Всем добра!

Шериф

Делаем наглядную статистику событий по дням (PHP + Google Charts)

7 марта, 2014

Сегодня у нас «вебдев для самых маленьких», а именно — оформление разной статистический информации графиками. Задача: есть некоторые события (регистрация пользователей, появление сообщений, поисковый запрос и т.д.), логирующиеся в MySQL, требуется наглядно показать динамику (сколько событий в день/месяц/час), вроде такого:

post_stat

Для начала нужно добавить в таблицу события поле `time_added`, тип TIMESTAMP, значение по умолчанию — CURRENT_TIMESTAMP. Не нужно даже ничего менять в php-коде — в это поле будет автоматически добавляться время добавление записи, а в phpmyadmin он будет выглядеть вполне читабельным значением вроде «2014-03-07 18:22:27» (в отличие от записи timestamp-а в int поле). Затем делаем выборку из таблицы:

  1. //Получаем метку даты 30 дневной давности о оформляем его в удобовариемый mysql-ем вид
  2. $last30d=date("c",strtotime("-30 day"));
  3.  
  4. //Делаем выборку событий из базы старше нужного
  5. $res=mysql_query("SELECT COUNT(*),time_added FROM wordstat WHERE time_added>’$last30d‘ GROUP BY DAY(`time_added`)");
  6. while($row=mysql_fetch_array($res)) {
  7.         $key=date("Y-n-d",strtotime($row[‘time_added’]));
  8.         $days[$key]=$row[‘COUNT(*)’];
  9. }
  10.  
  11. //Сортируем массив в нужном порядке
  12. ksort($days);

Не так уж сложно, как видите) Точно так же можно подсчитывать число событий в месяц или год. Следующая задача — построить график по этим данным. Можно конечно использовать какую-нибудь php-gd библиотеку, или даже самостоятельно всё написать, но зачем, если есть готовые либы? Я использую JS-библиотеку Google Charts, обладающую просто безграничными возможностями, главное в нём разобраться.

  1. <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  2. <script type="text/javascript">
  3.  
  4. // Load the Visualization API library and the piechart library.
  5. google.load(‘visualization’, ‘1.0’, {‘packages’:[‘corechart’]});
  6. google.setOnLoadCallback(drawChart);
  7.    // … draw the chart…
  8.  
  9. function drawChart() {
  10.  
  11.     // Create the data table.
  12.     var data = new google.visualization.DataTable();
  13.         data.addColumn(‘date’, ‘Дата’);
  14.     data.addColumn(‘number’, ‘Запросов’);
  15.     data.addRows([
  16.     <?
  17.     foreach($days as $day=>$count) {
  18.                 $date=strtotime($day)*1000;
  19.                 echo "[new Date($date), $count],\n";
  20.     }
  21.     ?>
  22. ]);
  23.         var options = {‘title’:‘Поисковых запросов, в день:’,
  24.         ‘width’:900,
  25.         ‘height’:200,
  26.         ‘legend’:{‘position’:‘none’},
  27.         ‘titleTextStyle’:{‘fontName’:‘Georgia’,‘fontSize’:20,‘bold’:false},
  28.         chartArea: {width: ‘100%’},
  29.         vAxis: {textPosition: ‘in’,minValue: 0},          
  30.     };
  31.  
  32.     // Instantiate and draw our chart, passing in some options.
  33.     var chart = new google.visualization.AreaChart(document.getElementById(‘chart_div’));
  34.     chart.draw(data, options);
  35. }
  36. </script>
  37.  
  38. <div id="chart_div" style="width: 900px; height: 200px;"></div>

И вауля, график готов. Кастомизировать его можно как угодно, мне больше нравится такой вид, а не дефолтный. Как я уже писал, возможности у библиотеки богатые (это ж гугл), документация весьма обширная, но её надо читать и вкуривать, и далеко не всё получается как надо (я например не могу настроить сетку внутри графика).

Задача решена. Да, возможно в MySQL можно задать такой запрос, который выдаст данные в уже нужном отформатированном виде. Уже перед самой публикацией понял, что я дичайше накосячил (до этого просто выбирал все записи из БД и фасовал их по дате в массив), и при более-менее значительных данных скрипт будет либо падать от нехватки памяти, либо очень очень долго думать. Отсюда вывод — не верьте всему тому, что написано в интернете) Гугл и stackoverflow быстро выдали мне нужное решение, описанное выше (там только SQL-запрос сменился). Хотя я пока еще использую старое ресурсоемкое решение, так-как мне нужно много более подробной информации, а не только динамика. Наверняка там и в других местах можно реализовать более удобно и правильно, например метод передачи данных между php и js.

PS. Я люблю собирать разнообразную статистику и анализировать её. Правда, не всегдя я делаю это наглядно — просто лень заморачиваться, можно ведь просто таблицу значений вывести) Но когда это публичная статистика, хочется навести красоту, а потом уже сам привыкаешь к такому удобству, и начинаешь делать так везде.

Исходный код оформлен в Pastebin, но для совместимости был скопирован со страницы для печати, вместе со стилями (только javascript-оформление не заработало, поэтому слегка криво подсвечен второй кусок кода)

Верстка это наше всё

5 апреля, 2010

Помните я говорил о создании фейковой студии под сапу? Небольшие продвижки таки есть — подобрал название (читаемое, но не слишком запоминающиеся), зарегал домен, нашел «трастовый» хостинг (петерхост… ох уж эта их панелька родом из 2000-х), и даже на скорую руку состряпял одностраничный сайтик.

Но ведь надо соответствовать образу дизайн-студии, не так ли? Вот меня и понесло — простенький первоначальный дизайн доделал и переверстал div-ами (до этого все сайты верстал таблицами), потом подогнал под XHTML 1.0 Strict, в полном соответствии со стандартами — контент в одном месте, оформление — в другом. Все значения — относительные, резиновая верстка, кроссбразуерность вплоть до мобильных платформ, и даже с отключенными стилями сайт вполне читаем. Но мне конечно было проще — я предпочитаю минимализм, а не верстку тремя десятками картинок, фонов и попиксельной расстановке элементов.

Затем — как управлять сайтом, генерировать стандартные страницы и т.д. (на заметку — можно сделать двуязычный сайт, страниц в два раза больше). Использовать готовые движки желание не было никакого, либо слишком мощные (WP, Drupal), либо слишком много дописывать (GetSimple). Пришлось писать еще и CMS, причем MVC — шаблон, данные и логика раздельно, а не собраны в одну кучу, как это у меня обычно бывает. А где хранить данные? Это же простенький сайт, БД подключать резона нет, значит на файлах. А раз файлы, то неплохо бы изучить работу с XML, как наиболее удобную. Даже шаблон, стили и часть кода засунул в XML-файл, вся cms поместилась в три файла 🙂 Кстати, финт ушами — оказывается, ЧПУ удобней делать не вручную (настраивая в .httaccess отдельные правила), а вордпресс-способом — все запросы отсылаются в index.php, а там уже разбирается REQUEST_URI и показывается нужная страница.

В итоге у меня сейчас довольно удобный универсальный движок (универсальный для программиста, а не для пользователя «нажал кнопку появился форум»), весьма недурственный шаблон для сайта, и добавилось немного дополнительных знания по верстке и программированию (особенно в части «как грамотно написанный код облегчает работу»).

И теперь идея сайта под сапу мне кажется кощунственной))) И все больше склоняюсь к мысли допиливания CMS, и перевода на неё своих небольших сайтов (а заодно будущих), и скорее всего публикации в открытом доступе. А сам сайт использовать как вполне реальную студию, только работающую над своими проектами — в том числе этой cms, шаблонамии и прочим (халявные ссылки!). А уж извлечь пользу думаю получится. Так что скоро думаю список «Моих проектов» пополнится 🙂

Первоапрельский АГС-апдейт прошел мимо.. Все меньше и меньше за ними слежу, домены суспендятся пачками, чистых ГС в сапе осталось всего несколько штук, да и то приносят копейки.

——————————
МТС жжот — теперь у меня 2-мбитка, хоть и с ограничениями по трафику)

PHP автоматизация: авторизация в LinkFeed

19 марта, 2010

Так-как у линкфида слишком заковыристое апи, к тому же по умолчанию отключенное, используем старый добрый способ парсинга данных «в лоб»:


(если вы не видите код — у вас отключен яваскрипт. Исходный код)

Все довольно просто — отправляем сайту данные авторизации (логин:пароль), получаем Cookies, и загружаем следующую страницу, используя ранее полученные куки. Парсим ответ, получаем чистые данные — если нужно. Первоначальный скрипт мне скинул ленивый программист, правда у меня он почему-то не заработал и пришлось его переписать и дополнить. Если вы планируете часто использовать подобный скрипт — то лучше сохранить куки в файл и использовать уже оттуда, а авторизовываться лишь когда это необходимо. К примеру, чтобы постоянно не разлогиниваться с сапы, я вручную выставил время жизни кук на много лет вперед — так гораздо удобней.

Зачем вообще может пригодится подобный скрипт? К примеру, вы можете залогиниться в той же сапе и автоматически добавить несколько десятков/сотен своих сайтов. Если вы залогинитесь в яндексе, то лимит запросов у вас повышается (хотя ограничение остается), к тому же у яндекса достаточно сервисов, добавление информации в которые не требует ввода капчи 🙂 Да и вообще на любые сервисы, где нет капчи при авторизации — различные партнерки, вконтакте, соц. закладки и прочие полезные ресурсы. К сожалению, так же действуют спамеры — комменты отправляются аналогичным POST запросом (и зачем я это сказал..).

Можно отправлять запросы без авторизации — регистрация LI счетчика, добавление в аддурелку рамблера (когда там не было капчи) и т.д. Чтобы вручную не возиться с исходным кодом, можете воспользоваться парсером HTML форм от Jeck.ru. Можно вообще не отправлять запросов, а сразу парсить страницу — ключи с вордстата, кейворды со статистики LI — там все таки более реальные данные (к сожалению, кто-то обнаглел и эту страницу закрыли), выдачу с Яндекс.Блогов (там есть замечательная ссылка на полный текст записи — не надо мучиться с очищением текста, сразу готовый контент) и еще много много сайтов, к которым может приложить руки сеошник со знанием php 🙂

Но будьте аккуратны с хранением cookies — зная их, можно полностью управлять вашим акком на сайте. Это кстати и являлось целью XSS-атак — встроить на страницу яваскрипт, дождаться, пока на неё зайдет админ, получить его куки, вручную вставить их себе — и вауля, вы авторизованы как администратор. Это уже потом, когда заместо надписей «Defased by Вася» стали пихать ссылки, а потом и сапу, начали в срочном порядке закрывать эти баги и отфильтровывать такие ссылки (а они были даже на яндексе). Так-что осторожнее)

—————-

Тестовый сателлит от Сайтуса проиндексировался, 100 страниц из 400 (хотя тут сам виноват, совсем забыл сделать сайтмап). Хотя выглядит он как говно (но может это мне так повезло с тематикой — сериалы), попробую сделать из других категорий. Мой новостной на старом домене выглядит нормально (даже читабельно), только не индексируется совсем — видимо дело в домене, он хоть и старый, но наверное успел попасть в черный список. Лучше буду делать на новых 🙂 Поднимать тИЦ этому хламу рука не поднимается.

Оказывается, у меня уже 3 сайта-сервиса: анализ сайтов + генерация сайтмап (тИЦ 110, класс), получение ссылки на скачивание видео с ютуба (посещаемость 100/500 в день, иногда непонятные всплески до 400/1600) и конвертер книг для iPod (полгига книг обработано). И у всех стабильная посещаемость, полезность для посетителей и плюшки для меня. С доходом к сожалению довольно туго (у всех 1-2 страницы в индексе), но и трат кроме как на их создание особо нет, ресурсов они много не потребляют, гигантских баз не требуют. Сейчас думаю, как же эти сервисы можно улучшить, а главное — увеличить число страниц в индексе — чтобы хоть как то получить с них доход 🙂 Кстати, какие еще сервисы можно создать?

Мерчант такой мерчант.. Как оказалось, техническая реализация довольно проста, если пользоваться правильным мануалом, а вот бюрократическую машину пройти — совсем другой вопрос.. Уже во второй раз отклоняют заявку. Так что введение автоматической оплаты в TopSape опять откладывается на несколько дней.

Скрипт анализа сайтов

14 ноября, 2008

Каждый, у кого больше 3 сайтов, начинает думать о рациональном способе проанализировать все сайты. 1-2 сайта можно проверить напрямую у поисковиков/сервисах, но когда сайтов штук 5, это начинает уже слегка надоедать, особенно после АПов. Поэтому создаются специальные скрипты или сервисы, которые и показывают все пузомерки сайтов (или списка сайтов). Но мне почему то не попадалось нормальных серисов для массовой проверки, или же у них были какие то траблы, поэтому мне постоянно приходилось писать их самому)

Этим скриптом я пользуюсь в данный момент. Может быть, данных не так много, но для моих целей — необходимый и достаточный минимум) Скрипт показывает тИЦ, PR, индекацию в Яндексе, индексацию в Гугле, среднюю посещаемость в день за последние 7 дней. Я этот скрипт использую для анализа своих полу-сдл, блога, проектов, некоторых сателлитов.

Вот так он выглядит:
analiz.gif

Думаете, я собираюсь продавать скрипт? Хех, да нафига оно мне нужно ))) Забирайте так:

Скачать (4кб)

Да, и еще.. Скрипт предоставляется «как есть», все баги — ваши проблемы. Модифицировать можете как угодно, продавать тоже — больше половины функций — не мои, я даже не знаю, как они работают)

Андрей «Spryt» Гиацинтов


Email: me@spryt.ru

Youtube канал:

Путешествия:

Сейчас: Москва, Россия
Посещенные страны:
открыть все | закрыть все

Посмотреть на Google.Maps

Как найти идею для сайта

Рубрики:

Итоги(202) Я(72) Блоггинг(52) Заработок(51) Философия(45) Таиланд(44) Бред(40) Путешествия(33) Georgy(21) Малайзия(18) Сателлиты(17) вебдев(16) Колумбия(15) SEO(14) Непал(13) Мои проекты(12) Чианг Май(10) Филиппины(8) Индонезия(8) Домены(7) Шри-Ланка(7) Ява(7) Бангкок(7) Борнео(6) Фондовый рынок(6) Краби(6) Эквадор(6) Камбоджа(5) Турция(5) Самуи(5) Лаос(5) Паттайя(5) скрипты(5) Кордильеры(4) Гаджеты(4) Cameron Highlands(4) Буржунет(4) Гонконг(3) Каталоги(3) Обзоры блогов(3) Велотрип(3) Вьетнам(3) Бредовые идеи(3) Helambu trek(3) Россия(3) Покхара(3) Вокруг Аннапурны(3) Сингапур(2) деревня(2) Катманду(2) Визы(2) Фотография(2) Куала-Лумпур(2)

Архив:

Поиск по блогу:

SEO анализ сайта:

anseo.ru
Версия для компьютера | Переключить на мобильную версию