Pull to refresh
28
0
Михаил @mmib

Пользователь

Send message

Watir: простой парсинг сложных сайтов

Reading time4 min
Views51K
imageКаждый, кто пишет парсеры, знает, что можно распарсить сто сайтов, а на сто-первом застрять на несколько дней. Структура очередного отмороженного сайта может быть сколь угодно сложной, и, когда дело касается сжатых javascript-ов и ajax-запросов, расшифровать их и извлечь информацию с помощью обычного curl-а и регекспов становится дороже самой информации.

Грубо говоря, проблема в том, что в браузере работает javascript, а на сервере его нет. Нужно либо писать интерпретатор js на одном из серверных языков (jParser и jTokenizer), либо ставить на сервер браузер, посылать в него запросы и вытаскивать итоговое dom-дерево.

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

Сейчас появились более продвинутые средства — xulrunner (crowbar) и watir. Первый — безголовый firefox. У crowbar есть даже ff-плагин для визуального выделения нужных данных, который генерит специальный парсер-js-код, однако там не поддерживаются cookies, а допиливать неохота. Watir позиционируется разработчиками как средство отладки, но мы будем его использовать по прямому назначению и в качестве примера вытащим какие-нибудь данные с сайта travelocity.com.

Читать дальше →
Total votes 79: ↑65 and ↓14+51
Comments74

Файлшаринг — ничего лишнего — ge.tt

Reading time1 min
Views1.4K
image
Сложно представить более простой сервис для файлшаринга в сети. Регистрация не обязательна, никакой рекламы, зашел на сайт, залил файл, получил короткую ссылку — все. Срок хранения — 30 дней. Ограничение — размер файла 2Gb, ну и конечно нельзя заливать противозаконные файлы — будут удалены при получении сервисом предупреждения.

Судя по описанию сервиса, бизнес модель будет построена по принципу фремиум — дополнительные возможности для платных аккаунтов.

Ge.tt
Total votes 69: ↑57 and ↓12+45
Comments54

Получение и вывод GPS координат на Arduino

Reading time3 min
Views84K
Однажды у меня возник интерес к GPS, а еще чуть раньше — к платформе Arduino. Поэтому со Sparkfun были заказаны, с разницей в пару дней, Arduino Duemilanove, GPS Shield и GPS приемник EM-406A.
Заказ пришел и частично лежал на полке, а недавно дошли руки до этого комплекта…

Собранный GPS Shield, подключенный к Arduino


Читать дальше →
Total votes 81: ↑74 and ↓7+67
Comments55

AmbilightUSB

Reading time3 min
Views40K

Привет, strangers!



Обновление проекта Лайтпак: Прокачан и открыт

Эта история о том, как сделать супер мега дешевую и простую ambilight подсветку для эвм. В роли дирижера будет выступать микроконтроллер ATtiny44, а в роли оркестра 4 RGB-светодиода.

Несколько картинок, дабы пробудить интерес:

  

Кому лень читать: полное описание в «картинках» (=
UPDATE: Добавлено видео http://www.youtube.com/watch?v=tdp1QeS_JCg
UPDATE2: в списке деталей уточнил название используемого микроконтроллера (ATTINY44-20SSU)
UPDATE3: добавлены фьюзы (дико извиняюсь, что забыл про них)
UPDATE4: исправлена принципиальная схема (v2.1.3)

Читать дальше →
Total votes 203: ↑200 and ↓3+197
Comments76

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views123K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →
Total votes 119: ↑116 and ↓3+113
Comments125

Открыта e-mail подписка на газету FOSS News. Розыгрыш поездки на FOSS Lviv 2011

Reading time1 min
Views398
imageПо просьбе многочисленных читателей, редакция газеты FOSS News открывает e-mail подписку. Оформив её по адресу — root.ua/podpiska-foss-news.html, Вы будете получать на указанный e-mail свежую pdf-версию (до 10 мб) газеты FOSS News. Также все подписчики станут участниками розыгрыша одного сертификата полной оплаты поездки на конференцию FOSS Lviv 2011 и замечательных «пингвинов». Розыгрыш будет проведён на December FOSS Meeting 2010 в Одессе.

FOSS Lviv 2011 намечено провести во Львове с 1 по 6 февраля (официальная часть — конференция) и Драгобрате (неофициальная часть — отдых на горнолыжном курорте в Карпатах).

Архив газеты FOSS News можно найти по адресу: root.ua/nashi-izdanija/gazeta-foss-news/arkhiv.html.
Total votes 37: ↑27 and ↓10+17
Comments9

Как подружить PHP с консолью Google Chrome

Reading time2 min
Views21K

Внимание

Статья содержит информацию об устаревшей версии PHP Console.

О новой версии PHP Console 3.0 читайте тут.


PHP Console 1.0





Речь пойдёт об одном чудном расширении для Google Chrome, которое позволяет проксировать вывод ошибок и дебаг сообщений из PHP в консоль Google Chrome, а также отображать их в виде всплывающих popup-уведомлений.
Читать дальше →
Total votes 115: ↑106 and ↓9+97
Comments42

Модерируемая коллекция кистей для GIMP

Reading time3 min
Views4.3K
Здравствуйте, хочу сегодня поведать вам об одном некоммерческом проекте.

Для тех, кто не в теме: существует опенсорсный графический редактор, который называется Gimp. Чтобы рассказать о нем, для простых людей был создан сайт, на котором были размещены уроки и описания этого редактора. Но речь пойдет не о самом сайте.

Редактор использует свой формат кистей. Пришла мысль о создании каталога, в котором можно было бы искать нужные кисти и быстро их скачивать.

В чем плюсы проекта для пользователей:
  • Отказ от системы «пакетов кистей». Человек будет скачивать только те кисти, которые ему интересны.
  • Подбор кистей по фильтрам и ключевым словам. То, что будет реализовано в GIMP 2.8 мы попытались реализовать на страницах сайта.
  • Удобный просмотр кистей. Пользователь видит кисть перед скачиванием. Может изменить цвет кисти и посмотреть ее в полном размере.
  • Перед скачиванием пользователь может опробовать кисть в действии. Порисовать ей в специальном графическом редакторе.
  • Скачивание со страниц сайта. Никаких тебе турбобитов, летитбитов и других файлообменников.
  • Рейтинг кистей. Сортировка кистей по качеству. Мы видим сколько раз кисть просмотрели, сколько раз ее скачали (показатель отказов), сколько раз ей подняли (в будущем и опустили) рейтинг. И в зависимости от этого, сортировать кисти по их качеству, а не дате добавления.
Читать дальше →
Total votes 67: ↑58 and ↓9+49
Comments28

Анонимность, доступная каждому

Reading time7 min
Views61K
imageВсем привет, давайте знакомиться.

Мы – Kebrum, сейшельская компания с русскими мозгами. Наш профиль – анонимность и безопасность в интернете, на данный момент мы запустили VPN сервис и не собираемся останавливаться на этом. Сначала расскажу коротко о сервисе для тех, кто не участвовал в бета-тестировании, а потом пару прохладных историй, как это полагается на Хабре.






Да, давайте знакомиться
Total votes 137: ↑112 and ↓25+87
Comments201

Готовим скриншоты для документации в GIMP (часть 2)

Reading time6 min
Views18K
В первой части статьи мы рассмотрели script-fu скрипты «Быстрая тень» и «Подрезать уголки» и пообещали показать, как красиво оформить скриншот фрагмента окна. Пришло время исполнить обещанное. Сегодня будем разбирать скрипт «Кадрирование с эффектом волны», который позволяет отсечь часть изображения по волнистым линиям, похожим на синусоиды.

Дополнительно мы рассмотрим, как можно собрать несколько скриптов в один для ускорения выполнения типовых действий над изображением.
Читать дальше →
Total votes 127: ↑118 and ↓9+109
Comments14

Распил стартапа. Калькулятор Деммлера

Reading time3 min
Views56K
Конечная цель любого стартапа — деньги. Будет ли это успешно работающий доходный бизнес или выгодная продажа более крупным игрокам рынка, зависит от каждой отдельной компании. Кто-то хочет получить свои миллионы от Гугла, кто-то и сам не прочь стать Гуглом. Конечно, важна идея, самовыражение, амбиции — не без этого. Но в итоге, если не верить, что стартап принесет миллионы, то и начинать не стоит. Поговорим о том, как же делить доли в стартапе между основателями компании.

Мы делили апельсин, много нас, а он один


В американской традиции стартапов принято брать в долю всех участников проекта, работающих с первого дня его основания. Отличный способ мотивации команды, скажу я вам. Но как делить баснословные доходы, если они таки будут? Самое первое, приходящее на ум — поделить поровну. Таким образом, если над стартапом работало пять человек, то каждому достанется по 20%. Справедливо? Не очень.

У американцев есть отличная поговорка про курицу и свинью «a chicken is involved with breakfast, but a pig is committed»: речь о яичнице с беконом на завтрак, для приготовления которого требуется некоторое усилие от курицы (снести яйцо и жить себе спокойно дальше), в то время как свинье придётся принести куда более существенную жертву. Так же и в бизнесе: некоторые участники проекта выполняют работу достаточно формально и потом наблюдают за результатами, другие же несут принципиально большие риски и вкладываются в дело сильнее.

Frank Demmler, профессор предпринимательства в бизнес-школе при Carnegie Mellon University, предложил следующий метод распределения долей в стартапе.
Читать дальше →
Total votes 81: ↑73 and ↓8+65
Comments54

PulseAudio, часть 1: управление из командной строки

Reading time11 min
Views149K

Одним из новшеств Ubuntu 10.10 стал переход с «голой» ALSA на PulseAudio. Ранее постилось много советов прибить и удалить его для решения проблем, однако теперь PulseAudio стабилен, с ним не шипят колонки ;), и он способен на такое, что не снилось Alsa :)

В статье я с самого начала расскажу что это такое и как оно работает, а так же:
  • Как переключить весь звук на USB-колонку на закрывая приложений (usb hotplug);
  • Как выбрать порт звуковой карты для вывода звука (колонки ноутбука/наушника, LineOut/Наушники);
  • Как выбрать профайл звуковой карты (маппинг физических портов: 5.1 или стерео+lineIn?);
  • Как управлять громкостью и усиливать тихий сигнал (!);
  • Как сделать Skype громче музыки?

И представлю своё решение, призванное упростить управление PulseAudio ;)
Любопытно!
Total votes 112: ↑106 and ↓6+100
Comments83

Feed Converter — читаем RSS-ленты в оффлайне

Reading time2 min
Views1.2K
image
Feed Converter представляет собой сервис по конвертации RSS и Atom лент в различные форматы для последующего их чтения в оффлайне с различных девайсов, таких как коммуникаторы, электронные книги etc.

Данный сервис уже светился на страницах хабра, пользователям оказался интересен, поэтому работа над ним продолжилась, хочется рассказать что в итоге получилось.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments33

Тест простоты числа регулярным выражением

Reading time3 min
Views12K
Я видел множество проблем, связанных с регулярными выражениями, но в прошлую пятницу, спасибо Крису и Шону я нашел одну регулярку, которая позволяет проверить, является ли данное целое число простым. Оригинальные статьи предлагали следующее регулярное выражение для определения простоты числа:

Читать дальше →
Total votes 104: ↑94 and ↓10+84
Comments31

Создание ознакомительного поискового движка на Sphinx + php

Reading time5 min
Views104K

Предыстория


Раньше для поиска по сайту мы использовали обычный fulltext поиск. Но в определенный момент он перестал нас устраивать и мы решили опробовать альтернативную технологию поиска: Sphinx. К сожалению, у сфинкса совсем нет русской документации, поэтому эта статья — аналог статьи Build a custom search engine with PHP, только на русском языке и для моего локального окружения (windows 7, mysql/php)
Статья состоит из 4 частей:
  1. Краткий рассказ про подготовку базы для поиска.
  2. Рассказ про первоначальную установку и настройку сфинкса
  3. Индексирование базы и тестовый поиск из командной строки
  4. Тестовый поиск из php

Читать дальше →
Total votes 82: ↑73 and ↓9+64
Comments59

Впечатляющие анимационные эффекты

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →
Total votes 262: ↑246 and ↓16+230
Comments78

Маленький анализ тенденций в оформлении кнопок «Add To Cart» («Положить в корзину»)

Reading time2 min
Views6.4K
В 2007 году, сайт «Get Elasic» опубликовал интересную подборку кнопок «Положить в корзину» из различных интернет-магазинов, сопроводив это некоторым анализом надписей и внешнего вида кнопок. Я решил, что будет полезным освежить эту тему. Было собрано более двухсот кнопок «Положить в корзину», в том числе с сайтов самых популярных онлайновых продавцов.
Читать дальше →
Total votes 63: ↑53 and ↓10+43
Comments39

Велосипед для ходьбы

Reading time3 min
Views38K
Считается, что велосипед изобрёл два столетия назад барон Карл фон Дрез. Казалось бы, изобрести что-то новое, связанное с этим видом транспорта — проблематично. Ведь уже были сделаны разнообразные версии: и с большими колёсами, двухколёсные, трёхколесные, для двух человек, с кроссовками вместо колёс, цирковые и.т.п. Но, то и дело появляются новые модели, новые идеи складных велосипедов, какие-то интересные концепты, в общем, люди ещё не до конца отошли от этой темы и всё ещё пытаются изобрести свой велосипед.

image

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

На этом, так называемом велосипеде, вы будете не сидеть, а стоять, и не крутить педали, а шагать.
Подробные объяснения и видео — под катом.

UPD: kaasnake сообщил ещё и про беговую дорожку на колёсах. Just for fun.

Читать дальше →
Total votes 68: ↑55 and ↓13+42
Comments72

Несколько других советов для PHP-разработчиков

Reading time3 min
Views9.8K
Навеяно вот этим.

Я решил вспомнить некоторые особенности PHP, связанные с производительностью.

Отмечу, что включил в свой небольшой список лишь то, что обычно вызывает удивление у junior developers, с которыми мне приходилось работать.
О банальных вещах, вроде «одинарные кавычки вместо двойных», думаю, знают все, поэтому постараюсь кого-нибудь удивить.

Результаты и выводы, сделаны на основании нескольких версий PHP, который крутятся на знакомых мне серверах, а именно 5.2.6 из Debian Lenny, 5.3.2 из Ubuntu, и 5.2.14 из dotdeb. Возможно, на других платформах, есть отличия.
Читать дальше →
Total votes 173: ↑149 and ↓24+125
Comments301

Information

Rating
Does not participate
Location
Донецк, Донецкая обл., Украина
Date of birth
Registered
Activity