Обновить
0
0

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

Отправить сообщение

Использование Grab:Spider для парсинга сайтов

Время на прочтение4 мин
Охват и читатели19K
Всем привет!

Я активный пользователь open-source фрэймворка Grab (itforge уже писал о нем здесь и здесь) и 1/2 проекта GrabLab (который занимается собственно коммерческой эксплуатацией фрэймворка). Т.к. парсим сайты мы часто, помногу и задания как правило совершенно не похожи друг на друга, хотелось бы поделится своим опытом в вопросе построения типичного парсинг проекта.

Немного про инструментарий который помогает мне в работе

В качестве рабочего браузера я использую FireFox с плагинами HttpFox (анализировать входящий/исходящий http трафик), XPather (позволяет проверять xpath выражения), SQLite Manager (просмотр sqlite таблиц), код набираю в emacs, где активно использую сниппеты (YASnippets) для часто встречающихся конструкций.

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

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

Django Gmap v3 Widget — геолокация с поиском, сохранение координат и адреса в JSONField

Время на прочтение6 мин
Охват и читатели10K
Привет. Была поставлена задача реализовать геолокацию (google maps v3) для пользователей в одном из проектов на django, хочу поделиться своим решением.

Необходимый функционал:

  1. Вывод карты с маркером текущего положения, возможность перемещать маркер (dragged), ставить по click событию
  2. Поиск по адресу (autocomplete)
  3. Сохранение как координат, так и самого адреса (если он имеет место быть)

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

60+ средств для разработки мобильных приложений

Время на прочтение19 мин
Охват и читатели151K
Появилось желание сделать свое приложение — быстро дешево и максимально полезно. Начал собирать информацию о современных инструментах разработки. Чтобы не потерять, а так же получить отзывы, мнения, комментарии и вообще любую полезную информацию, оформил в виде статьи.
Планирую использовать некоторые инструменты, и позже написать по ним более развернутый обзор. Итак, встречайте

1. Appmakr
appmakr.com
Платформы: iOS
Стоимость: free-$999, FREE- if you submit yourself to your own app store
Дополнительные услуги: Бесплатный доступ к ресурсам сайта.
Описание: Appmakr.com — веб-приложение, которое поможет вам создать приложения для айфона быстро и просто.
Замечания: Если вы не знаете как создать приложение для айфона, вы можете запросить помощь по телефону.
Владельцы могут размещать рекламу в своих приложениях и зарабатывать на ней.
Читать дальше →

Как добавить динамизма в Python 2.7?

Время на прочтение4 мин
Охват и читатели4.5K
Вам когда-нибудь хотелось добавить поле в класс dict? Вы мечтаете написать action.name.len() вместо len(action.name)? Вы хотите добавить гибкости любимому Python-у? Вам говорят, что это невозможно? Тогда давайте погрузимся в некоторые детали объектной модели Python!
Читать дальше →

Способы улучшения звучания инструментов используя технологию Layering

Время на прочтение3 мин
Охват и читатели22K
Статью попросил запостить хабрапользователь istinspring т.к. у него не хватает кармы. Если вам понравилась статья, не забудьте его плюсануть, он ещё много таких написать может.

В этой “пилотной” статье постараюсь как можно доступнее изложить основную концепцию, и приведу пару mp3 фрагментов в качестве примеров. Если эта тема окажется интересной, вполне возможно опишу некоторые моменты более детально.

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

Дело в том, что в современной электронной музыке применяют такой прием как Layering. Т.е. наслоение. Другими словами каждый инструмент создается послойно, позволяя получить уникальный тембр с огромным потенциалом для различных вариаций и экспериментов.

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

Правильная клавиатура для информационных терминалов

Время на прочтение2 мин
Охват и читатели6.5K
Интерфейсы приложений для информационных сенсорных экранов (столов, терминалов, киосков) обычно делают по аналогии с интерфейсами сайтов или мобильных приложений. Практика показывает, что это не правильно.
Читать дальше →

Понимаем декораторы в Python'e, шаг за шагом. Шаг 2

Время на прочтение12 мин
Охват и читатели246K

И снова доброго времени суток всем читателям!
Спасибо, за проявленый интерес к первой части перевода, надеюсь, вторая вас так же не разочарует.


Итак, в первой части данной статьи мы совершили базовое знакомство с декораторами, принципами их работы и даже написали свой вручную.
Однако, все декораторы, которые мы до этого рассматривали не имели одного очень важного функционала — передачи аргументов декорируемой функции.
Что ж, исправим это недоразумение!
Читать дальше →

Практика использования интерактивного прототипа на этапе коммерческого предложения

Время на прочтение2 мин
Охват и читатели11K
Интерактивные прототипы сложных информационных систем (в нашем случае это система электронного архива), как известно, могут использоваться на разных стадиях разработки, например:
  • на этапе сбора требований для фиксации требований, проработки концепции и логики интерфейса, согласования их с заказчиком;
  • на этапе проектирования для постановки задач программистам;
  • на этапе реализации в качестве образца для программистов;
  • на этапе тестирования для проверки соответствия реализованной системы согласованному с заказчиком прототипу.

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

Как раскрыть мощь HTML5 Canvas для игр

Время на прочтение8 мин
Охват и читатели40K


Браузеры, поддерживающие HTML5, и платформа HTML5 для Windows 8 Metro сегодня становятся серьезными кандидатами для разработки современных игр.

Благодаря canvas, у вас есть доступ к аппаратно-ускоренной поверхности, на которой вы можете отображать контент вашей игры и с помощью некоторых трюков и ухищрений вы сможете достигнуть великолепной производительности рендеринга до 60 кадров в секунду. Подобная непрерывность действительно важна в играх, так как чем плавнее игра (анимация), тем лучше чувствует себя игрок.

Цель данной статьи — дать вам несколько подсказок, как выжать максимум мощности из HTML5 Canvas. Статья состоит из двух основных частей [вы читаете первую]. David Rousset скоро опубликует вторую часть.

В статье я буду показывать ключевые идеи на одном и том же примере — это эффект 2D-туннеля, который я написал для Coding4Fun-сессии на TechDays 2012 во Франции.
Читать дальше →

Любителям музыки посвящается, или делаем интернет-радио «по-взрослому»

Время на прочтение10 мин
Охват и читатели9.4K
Приветствую хабрапользователей!

Эта интереснейшая история о том, в чем правовые отличия работы в России Гугла и Яндекса, как можно практически в одиночку делать коммерческий продукт, при этом совершенно не зная Unix-системы, и даже, в общем-то, плохо понимая работу Windows, но очень любя музыку, и как не разориться на рекламе в интернете. Также мы развеем несколько известных мифов по поводу создания и работы своей радиостанции)

Под катом — семь кругов ада и все мои мытарства в мире прекрасного (музыки, разумеется) со всеми подробностями и некоторым количеством фотографий.
Читать дальше →

Звезды мирового фронтенда

Время на прочтение5 мин
Охват и читатели29K
В любой профессии есть тонкая прослойка людей, которые являются действительно высококлассными специалистами. Не исключение и область фронт-енд разработки — здесь также есть выдающиеся личности. К их мнению прислушиваются, за ними следят в блогах и социальных сетях и читают их книги. В процессе своей работы они рождают различные оригинальные решения или техники, которые мгновенно расходятся по миру веб-разработки и остаются актуальными не один год. Они создают удобные онлайн-сервисы для верстки, пишут полезные js-библиотеки, совершенствуют браузеры, пропагандируют веб-стандарты и оказывают непосредственное влияние на их развитие. Они могут называть себя front end engineer, front-end developer, web developer, web designer, UI Designer, browser compatibility expert или просто css lover, но для большинства из нас они — звезды мирового фронт-енда, которые делают интернет таким, каким мы его знаем. На Хабре довольно часто появляются обзоры интересных решений, техник и новостей из мира веб-разработки с указанием западных авторов, однако далеко не все знают что-нибудь о них кроме имени. Мне захотелось вкратце рассказать для широкой публики о некоторых из этих товарищей.


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

Face.com API определяет возраст по фотографии

Время на прочтение1 мин
Охват и читатели38K
В Face.com API добавлена функция определения возраста. Интерфейсы Face.com API используются многими приложениями, в том числе фейсбуковскими Photo Finder и Photo Tagger. «Яндекс» как один из акционеров Face.com использует их API на «Яндекс.Фотках».

API показывает минимальный и максимальный возраст, а также среднюю оценку.

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

Дачный интернет

Время на прочтение4 мин
Охват и читатели40K
Необходимость быть подключенным к интернет постоянно, даже на отдыхе за городом, уже давно не роскошь, а насущная необходимость. В статье описывается путь получения стабильного мобильного интернета на отдельно взятой подмосковной даче. В предверии лета материал может кому-то показаться интересным.

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

Сервис для более эффективного пополнения запаса английских слов

Время на прочтение2 мин
Охват и читатели50K
Добрый день!

Я хочу представить небольшой сервис, который создан, чтобы помочь в эффективном пополнении словарного запаса для английского языка:

image

Если коротко, работает он следующим образом.

1. Вы загружаете текст, который хотите прочитать. Это может быть URL статьи из интернета, книга или статья в pdf, doc, txt, ps или субтитры.

2. Система строит статистику слов и отображает слова, отсортированные по частоте употребляемости в тексте. Предварительно к словам применяется лемматизация (т. е. слова make и made будут считаться идентичными).

3. Вы отмечаете знакомые слова, а также слова, которые надо изучить.

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

А теперь чуть подробнее

10 миллионов хитов в день с WordPress на сервере за $15

Время на прочтение1 мин
Охват и читатели17K
Английский разработчик Эван Лейт (Ewan Leith) опубликовал пошаговую инструкцию, как поднять виртуальный микросервер на Amazon, Linode или другом облачном хостинге, который сможет крутить блог WordPress и выдерживать 10 миллионов хитов в сутки (отчёт составлен с помощью Blitz.io), при этом будет стоить всего пятнадцать долларов в месяц.

Инструкция описывает, как последовательно установить Ubuntu 11.10 (Oneiric), MySQL, PHP с PHP FPM, APC и модулем MySQL, Nginx с конфигурацией для WordPress, ну и сам WordPress. После этого сервер работает ещё довольно медленно, но всё меняет установка W3 Total Cache и Varnish, которые вместе с Nginx способны сотворить настоящее чудо.

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

Python threading или GIL нам почти не помеха

Время на прочтение7 мин
Охват и читатели25K
Наверное всем, кто хоть раз интересовался Python, известно про GIL — его одновременно и сильное и слабое место.
Не мешая однопоточным скриптам работать, он ставит изрядные палки в колеса при многопоточной работе на CPU-bound задачах (когда потоки выполняются, а не висят попеременно в ожидании I/O и т.п.).
Подробности хорошо описаны в переводе двухгодичной давности. Побороть GIL в официальной сборке Python для настоящего распараллеливания потоков мы не можем, но можно пойти другим путем — запретить системе перебрасывать потоки Python между ядрами. В общем пост из серии, «если не нужно, но очень хочется» :)
Если вы знаете про processor/cpu affinity, пользовались ctypes и pywin32, то ничего нового не будет.
Читать дальше →

Использование Deferred объектов в jQuery 1.5

Время на прочтение6 мин
Охват и читатели37K
Deferred объекты появились в jQuery 1.5. Они позволяют отделить логику, которая зависит от результатов выполнения действия от самого действия. Для JavaScript Deferred объекты не новы, они уже были в MochiKit и Dojo, но с изменениями логики jQuery ajax от Julian Aubourg, внедрение Deferred объектов было неминуемо. С Deferred объектами несколько callback могут быть связаны с результатом задачи и любые из них могут быть привязаны к действию даже после начала его выполнения. Выполняемая задача может быть асинхронна, но не обязательно.

Deferred объекты теперь встроены в $.ajax() таким образом вы будете получать их автоматически. Обработчики теперь могут быть связаны с результатом следующим образом:
// $.get, ajax запрос, он асинхронный по умолчанию
var req = $.get('foo.htm')
   .success(function( response ){
      // что-нибудь делаем с ответом
   })
   .error(function(){
      // делаем что-нибудь если запрос провалился
   });
 
// это выполнится перед тем как $.get() будет выполнено
doSomethingAwesome();
 
// Делаем что-то ещё перед завершением запроса
req.success(function( response ){
   // делаем  что-то ещё с ответом
   // он будет выполнен когда запрос завершится, а если запрос завершен, то будет вызван немедленно
   // если запрос уже был выполнен
});

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

Google выпустила финальную версию языка программирования Go 1

Время на прочтение1 мин
Охват и читатели6.6K
Вчера стало известно о том, что поисковый гигант выпустил финальную версию языка программирования Go 1, анонс о котором появился в 2009 году. Загрузить бинарные дистрибутивы языка для Linux, FreeBSD, Mac OS и Windows можно здесь. Язык выпущен под лицензией BSD.

Язык Go1, согласно команде его разработки, представляет из себя «попытку объединить скорость разработки динамических языков, таких как Python, с производительностью и безопасностью компилируемых языков, таких как C или C++» Справедливости ради, один из инженеров Google, занимающихся новым языком, признаёт, что экосистема языка ещё развита недостаточно — отсутствует IDE и набор поставляемых библиотек не очень большой, но, тем не менее, компания активно работает над улучшением ситуации.

Узнать подробности

Ответ на Python vs Ruby

Время на прочтение2 мин
Охват и читатели36K
Пользователь eyeofhell недавно написал статью Python vs Ruby.
Знатный холивар получился. Не могу не поддержать. Сначала думал написать в комментарии — но ответ вышел слишком объемным.

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

Создание соединительных стрелок для блочных элементов используя canvas

Время на прочтение2 мин
Охват и читатели15K
arrows_for_blocksЗдравствуйте!

Недавно появилась необходимость сделать простое иерархическое дерево для web страницы (структура организации). Блоки получились неплохие, но когда пришло время соединить все стрелками, возник вопрос – как? Решение было два: рисовать стрелки в .png или же использовать спецсимволы.

Но хотелось чего-то более быстрого, удобного, современного – т.е. просто указать: стрелка от блока А к блоку Б. Уже к вечеру была написана небольшая библиотека, позволяющая реализовывать задуманное…
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность