Search
Write a publication
Pull to refresh
14
0
Сергей Федоров @svfedorof

Предприниматель

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.

Читать дальше →

Не отвлекайте пользователя зря

Reading time2 min
Views728
Одной из идей, описанной Джефом Раскином в книге «Интерфейс: новые направления в проектировании компьютерных систем» является то, что разработчики программного обеспечения должны ценить всю информацию, вводимую пользователем и не отвлекать его по мелочам.

Ведь пользователь сконцентрирован на выполнении своей работы и, чем сложнее выполняемая им работа, тем он более сконцентрирован. Любое сообщение (информационное или сообщение об ошибке) выводит его из этого состояния, а для того, чтобы вернуться в рабочее состояние пользователю требуется определенное время.
Читать дальше →

Результаты Open Source Awards 2010

Reading time3 min
Views2.4K
Open Source Awards 2010Open Source Awards — это конкурс, целью которого является поощрение, поддержка, признание и награждение Open Source-проектов.
Лучшие Open Source-проекты были определены с учётом голосов посетителей ресурса и рейтингов, выставленных жюри конкурса.
Packt Publishing не имеет никакого влияния на определение финалистов и победителей конкурса.
Победители Open Source Awards

«От хорошего к великому» (в цитатах) — Часть 2

Reading time6 min
Views20K
imageКак и обещал, выкладываю вторую часть цитат, выделенных маркером во время прочтения одной из лучших (с моей точки зрения) книг о бизнесе — книги Джима Коллинза «От хорошего к великому».

См. также (первая часть).

***

Собрание руководителей Pitney в начале года — это обычно 15-минутное обсуждение результатов прошлого года, почти всегда превосходных, и два часа обсуждения «неприятных вещей», которые могут помешать росту компании в будущем.

***


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

Читать дальше →

Кейс «Проектирование веб-сервиса бронирования билетов». Бизнес-анализ. Описание предметной области

Reading time2 min
Views16K
Параллельно с описанием бизнес-процессов, контекста и профилей заинтересованных лиц необходимо изучать предметную область. Основными инструментами здесь являются словарь терминов (который лучше составлять совместно с экспертом предметной области) и диаграмма сущностей, которая изображает, какие есть сущности, и какие между ними есть взаимосвязи.

IV. Описание предметной области


Законодательные ограничения

— Зрителю должно быть больше 14 лет (для сделкоспособности).
— Необходимо дополнительное пользовательское соглашение, в котором пользователю будет необходимо дать согласие на использование его персональных данных.
— В соглашении также должно быть указано, что услуга бронирования предоставляется безвозмездно.

Словарь терминов

Диаграмма сущностей

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


Читать дальше →

MODx Revolution. Итоги. Часть 1

Reading time6 min
Views9.5K
Три с половиной месяца прошло со дня релиза MODx Revolution. Думаю никто не будет спорить, что версия 2.0 была очень сырой и для использования на реальных проектах была не готова. На русскоязычных сайтах о MODx я видел много критики и скептицизма. Что-то вполне заслужено, а что-то из-за отсутствия подробной документации. На данный момент доступна версия 2.0.4-pl2, по которой, на мой взгляд, уже можно подвести итоги: Правильно ли разработчики выбрали направление и инструменты для развития и стоит ли отказаться от MODx Evolution (1.x) и переходить на Revo? В данной статье я постараюсь подробно рассказать об основных особенностях новой системы, которые сам для себя только открываю.

Читать дальше →

Человеческий фактор или «соглашения не работают»

Reading time4 min
Views3.7K
Представьте ситуацию. Вы со своей командой, после очередной итерации, обсуждаете слабое покрытие кода тестами и решаете что с понедельника текущего момента все пишут тесты как для нового кода, так и для всплывающих багов. Это кажется разумным (кто-то вспоминает последний неудачный деплой), все поддакивают и довольные расходятся с мыслью, что ну вот теперь то у нас точно все будет отлично. Приходит время следующего собрания на котором во время вопроса «а как у нас с тестированием» большинство отводит глаза. Результат ясен, все осталось по старому.

Можно конечно попытаться вычислить тех кто этого не делает, выяснить почему так происходит, провести воспитательную беседу) и это даже поможет на какое-то время. А потом пройдет время и все станет по прежнему. Причем те люди которые следуют соглашениям по данному вопросу, в другом вопросе могут делать все по своему и наоборот.

Читать дальше →

Создаем landing page: чек-лист для новичков

Reading time3 min
Views51K
Если вы эксперт по разработке пользовательских интерфейсов и юзабилити, если количество разработанных вами лэндингов больше 10, если вы уже прочитали сотню статей по этой теме с рекомендациями профессионалов — наш пост не для вас. Он скорее для тех, кто только начинает…



В последнее время мы создаем много целевых страниц, поэтому составили для себя небольшой список вопросов, на которые обязательно нужно ответить перед тем, как считать страницу готовой к выходу в большой Интернет. В этих вопросах нет ничего нового, они просто помогают собрать в одном документе все советы по разработке landing page, которые есть в сети, и не упустить ничего важного.

Читать дальше →

Кейс «Проектирование веб-сервиса бронирования билетов». Бизнес-анализ. Описание существующих бизнес-процессов (AS-IS)

Reading time2 min
Views31K
После того как стало понятно, в какой ситуации мы находимся и кто является основными агентами, необходимо описать бизнес-процессы, которые требуют автоматизации или изменения. Это поможет понять, что и в какой последовательности происходит, в применении к данному кейсу — как в общем происходит покупка билета и бронирование?

III. Описание процесса в графической форме


В виде диаграмм бизнес-процесс можно описывать с помощью различных нотаций: ARISVAD и EPC, IDEF0, BPMN и др. Нотаций много, у каждой есть свои достоинства и недостатки, в рамках этой статьи эта тема не затрагивается.

Основной плюс использования диаграмм — наглядность. Основные минусы — сложно изображать все возможные варианты ветвлений и долго вносить изменения.


Посещение кинотеатра без предварительного бронирования билетов (в нотации VAD)


Читать дальше →

Вышел Spree 0.30.0

Reading time1 min
Views1.6K
Intro: Spree — мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Спустя 5 месяцев напряжённой работы вышел первый релиз Spree, работающий на Ruby on Rails 3.0.

Основные изменения — структурные:
  • расширения стали gem'ами, да и сам движок стал набором из нескольких gem'ов: spree_core, spree_auth, spree_api, spree_dashboard, spree_promotions, spree_sample
  • для настройки конкретного магазина больше не нужен site_extension, теперь все настройки можно сделать прямо в Rails.root
  • из способов развёртывания исключен «Vendor mode», т.к. благодаря Bundler больше нет необходимости клонировать исходники Spree в директорию проекта, даже если Вы используете edge-версию или свой собственный форк

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

Официальные примечания к релизу

Об экономии денег в проекте

Reading time4 min
Views13K
Однажды мне на глаза попалось исследование о том, какую цену предлагают наши конкуренты за те же самые услуги и работы, что и мы. И эти данные были неприятными: мы были заметно дороже. Чтобы сохранить заказы и удержать позиции, нам были нужны перемены.

Забегая вперед, скажу, что в итоге мы перестроили свою работу. Причем, не только понизив издержки, но и повысив зарплаты программистам. Как – читайте под катом.
Читать дальше →

Пять лучших способов завалить IT-стартап. Вредные советы

Reading time6 min
Views6.5K
«Хватит работать на дядю! Пора собрать команду правильных людей и заработать миллион!»

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

Миллиона я, конечно, не заработал, но опыта накопил изрядно — по крайней мере мои нынешние проекты обеспечивают какой-никакой доход.

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

Конечно, существует еще много грабель, на которые не ступала нога человека — но, возможно, этот сеанс черной магии с последующим разоблачением поможет кому-то избежать конкретно этих.

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

Читать дальше →

Обзор свежих материалов, сентябрь 2010

Reading time5 min
Views829
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель, май-июнь, июль, август.



Читать дальше →

Jaconda — виртуальный офис для компаний и удаленных команд

Reading time3 min
Views1.8K
image Jaconda – это больше, чем групповой чат.

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

Удалённым командам нужно заниматься проектом и продуктивно общаться, а не разбираться с дурацкими программами. Так и появилась Джаконда.

Мы запустили сервис в 2009 году с одной целью: сделать работу через интернет продуктивнее работы в офисе.
Читать дальше →

Cargo — платформа для портфолио

Reading time4 min
Views27K
Cargo

В моём предыдущем хабратопике несколько человек просили рассказать подробнее про Cargo, как оказалось хабра-сообщество еще с ним не знакомо, что же — распишу всё по шагам и с картинками.

Cargo — это платформа (CMS) для веб-публикаций и организации сообществ, в настоящее время находящаяся в стадии разработки и тестирования. Она полномочна для создания различных творческих сообществ в сфере образования, дизайна, исследований, и концептуального искусства.

Читать дальше →

Как уместить полный рабочий день в 3 часа

Reading time3 min
Views9.7K

Вступление


C системой Аллена меня познакомили около двух лет назад. Начинал пользоваться вариантом Васи Кислого с помощью HTC Touch Pro, но глючность девайса сильно мешала освоить систему, а сам «Успеватель» не давал необходимого уровня понимания. С GTD пришлось на время расстаться.

С того момента многое изменилось. Количество дел и задач, требовавших внимания, значительно увеличилось. Как и уровень ответственности за неудачные или запоздалые решения. Необходимость в помощнике стала настолько значительной, что приводила к реальному эмоциональному дискомфорту.

Попытки вести мобильную версию системы в Nokia E63 с помощью «Активных заметок» привели к покупке книги Дэвида Аллена, переработке статьи В. Кислого, приобретению стабильно работающего, хоть и старенького HTC P3400 (а потом и более современного продукта от HTC) и введению бумажной, физически ощутимой части этой системы.

Итогом переработки стала строгая вариация за моим авторством на тему Дэвида Аллена в обработке Васи Кислого. Благодаря ей, работа стала занимать не больше 3-х часов в день. Но за это время я успеваю сделать действительно много.

Следуя этим принципам, я прихожу на работу к 11-12 часам, работаю плотно и не отвлекаясь до 15 часов. В 15 часов ухожу в зал потаскать железки, прихожу в офис к 17-30, прорабатываю за полчаса все накопившееся с 15 часов. И еду домой.

Пока я не разобрался и не адаптировал под себя систему Аллена, мой рабочий день не ограничивался 8 часами в офисе. Приходилось работать еще вечером дома.

Кому интересно, прошу под кат.
Читать дальше →

Рабочий день за 3 часа. Инструменты GTD

Reading time4 min
Views15K
Начало здесь.

Накопители



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

  1. Вне человека — хаотичная.
  2. В накопителе — хаотичная, но собранная в одном месте.
  3. В человеке, его записях, файлах — отсортированная.


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

По факту, так и есть в обычной жизни, просто это скрывается за вроде бы упорядоченным поступлением данных. Всем нужно, чтобы именно на их запрос ответ был дан, как можно раньше. Как можно раньше был выполнен именно их заказ. Немедленно, сейчас!

Многие знают, что за такими запросами стоит не действительно срочная потребность, а сумбурность мысли. Человек не всегда может осознать, к какому же сроку ему нужны те или иные данные? Зачастую, они кричат «срочно!» только потому что им хочется , а не потому что они действительно нуждаются.

Чтобы справиться с хаосом, Дэвидом Алленом был придуман простой инструмент — накопитель.
Читать дальше →

HipWay и HipClub: запуск, получение инвестиций, розыгрыш 37-ми книг REWORK

Reading time3 min
Views7.6K
15 апреля мы рассказывали о запуске каталога необычных путешествий HipWay в этом посте. Как и обещали, расскажем о дальнейшей судьбе HipWay, и о новом сервисе – HIPCLUB.

За время, прошедшее с предыдущего поста, события развивались стремительным образом. Самая главная новость – HipWay удалось привлечь инвестиции. Это был долгий и сложный процесс, но в итоге был сформирован пул из нескольких инвесторов из Америки и Европы, которые проинвестировали в проект более пятисот тысяч долларов.

Под катом мы рассказываем обо всем более подробно, а также разыгрываем 37 книг REWORK среди людей, зарегистрировавшихся на новом сервисе по ссылке с Хабрахабра.
Читать дальше →

Rework по-русски — краткий обзор

Reading time2 min
Views36K
Привет, хабрадрузья!
Как уже обсуждалось здесь, на русском языке вышла книга 37 signals «Rework».
Хотел бы поделиться с вами своим мнением относительно неё.
image
Эту книгу ждали многие. В их числе был и я. Rework произвел на меня впечатление еще в англоязычном варианте. Оставалось узнать, насколько он хорош в русскоязычном.
Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity