Как стать автором
Обновить
26
Карма
0
Рейтинг

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

Немного фактов о python asyncio

Python *
Из песочницы
Всем привет! Хотелось бы поделиться опытом использования python asyncio. За полтора года использования в продакшене накопился некоторый опыт, общие приемы, облегчающие жизнь. Естественно, были и грабли, о которых также стоит упомянуть, ибо это поможет сэкономить кучу времени тем, кто только начинает использовать в своих приложениях asyncio. Кому интересно — прошу под кат.
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры 58K
Комментарии 18

Обзор курсов по Deep Learning

Блог компании New Professions Lab Data Mining *Big Data *Машинное обучение *
Привет, Хабр! Последнее время все больше и больше достижений в области искусственного интеллекта связано с инструментами глубокого обучения или deep learning. Мы решили разобраться, где же можно научиться необходимым навыкам, чтобы стать специалистом в этой области.

image
Читать дальше →
Всего голосов 52: ↑48 и ↓4 +44
Просмотры 68K
Комментарии 29

Webpack + React. Как уменьшить бандл в 15 раз

JavaScript *Node.JS *ReactJS *
image

Ясной инструкции по сборке webpack для продакшена я не нашел. Поэтому решил написать эту статью. Надеюсь, пригодится.
Существует множество сборщиков скриптов. Я выбрал для себя Webpack по таким критериям:

  • Гибкость настройки
  • Большое количество плагинов и лоадеров
  • Lazy loading
  • Использование es6 и es7 синтаксиса с помощью babel-loader

Читать дальше →
Всего голосов 47: ↑39 и ↓8 +31
Просмотры 53K
Комментарии 31

Змеиный фрукт или фруктовый Питон?

Python *Разработка мобильных приложений *
Recovery mode

Не библейская история



  1. И сотворил Google Android. Поселил его в саду мобильных платформ, дав ему жену — Java.
  2. И повелел Google Javе: создавай программы Androidу, красивые и быстрые, и Androidу сказал: не следует тебе брать других жен, кроме Javы. И запретил им вкушать плодов от древа познания фреймворков и языков программирования, дабы не сделались их программы медленными и неугодными пользователю.
  3. Хитрейшим же на том древе был древний змий — динамический Python. Долгое время наблюдал он за Androidом и, наконец, подстерег его прогуливающимся в тени деревьев. Тогда спросил хитрый Python Androidа: правду ли сказал тебе Google, не вкушать плодов от древа познания фреймворков и языков программирования, дабы не сделались твои программы медленными и неугодными пользователю?
  4. Точно так заповедовал мне всемогущий Google, ответил Android и прогаммы создает мне жена моя — Java.
  5. Обманул тебя Google, прошипел хитрый Python, ибо знает он, что в тот день, когда ты вкусишь плодов от древа познания фреймворков и языков программирования, прозреешь ты и потянутся к тебе другие разработчики и станут создавать программы, и появятся у тебя приложения такие же красивые и быстрые, как от жены твоей Java, и будут они кроссплатформенны!
  6. И сорвал Python плод от древа познания фреймворков и языков программирования и протянул Android`у, и тот ел.
  7. Имя того плода — Kivy.

Книга фреймворка Kivy (Глава 2, стих 1-7)

Читать дальше →
Всего голосов 36: ↑27 и ↓9 +18
Просмотры 32K
Комментарии 20

Pomp — метафреймворк для парсинга сайтов

Python *Программирование *
Из песочницы
С поддержкой asyncio и вдохновленный Scrapy.

Зачем еще один?


В первую очередь как инструмент для сбора данных, применяемый в моем хобби проекте, который не давил бы своей мощью, сложностью и наследием. И да, кто же будет сознательно начинать что-то новое на python2.x?

В итоге появилось идея сделать простой фреймворк для современной экосистемы python3.x, но такой же элегантный как Scrapy.

Под катом обзорная статья о Pomp в стиле FAQ.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 15K
Комментарии 15

Почему сложно программировать UI и как выглядит идеальный фреймворк

Блог компании Хекслет JavaScript *ReactJS *
Привет, Хабр!

Одна из сложных задач современной разработки — это программирование пользовательского интерфейса. С увеличением количества элементов сложность увеличивается нелинейно и совладать с огромным количеством вариантов, состояний и переходов становится практически невозможно. Фреймворки вроде Angular со своим двусторонним связыванием пытается решить эту проблему, но на фундаментальном уровне ничего не меняется.

Со-основатель, технический директор и главный учитель нашего образовательного проекта Хекслет Кирилл Мокевнин рассказывает про сложность программирования интерфейсов и каким образом можно совладать со сложностью если вы знакомы с одной базовой концепцией информатики. Заодно расскажет и покажет идеальный JS-фреймворк для программирования UI.

Читать дальше →
Всего голосов 28: ↑18 и ↓10 +8
Просмотры 21K
Комментарии 20

Как я повышал конверсию машинным обучением

Python *Data Mining *Машинное обучение *
В этой статье я попробую ответить на такие вопросы:
  • может ли один доклад умного человека сделать другого человека одержимым?
  • как окунуться в машинное обучение (почти) с нуля?
  • почему не стоит недооценивать многоруких бандитов?
  • существует ли серебряная пуля для a/b тестов?

Ответ на первый вопрос будет самым лаконичным — «да». Услышав это выступление bobuk на YaC/M, я восхитился элегантностью подхода и задумался о том, как бы внедрить похожее решение. Я тогда работал продуктовым менеджером в компании Wargaming и как раз занимался т.н. user acquisition services – технологическими решениями для привлечения пользователей, в число которых входила и система для A/B тестирования лендингов. Так что зерна легли на благодатную почву.

К сожалению, по всяким причинам я не мог плотно заняться этим проектом в обычном рабочем режиме. Зато когда я слегка перегорел на работе и решил устроить себе длинный творческий отпуск, одержимость превратилась в желание сделать такой сервис умной ротации лендингов самостоятельно.
Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Просмотры 21K
Комментарии 24

Изоморфные приложения. Взгляд в будущее с React

Разработка веб-сайтов *JavaScript *ReactJS *
Оригинал: React To The Future With Isomorphic Apps

Изоморфные приложения. Взгляд в будущее с React


В разработке программного обеспечения все часто возвращается на круги своя. Так, например, на заре развития Интернета серверы подгружали контент сразу же на сторону клиента. В последнее же время, с разработкой современных веб-фреймворков, таких как AngularJS и Ember, мы видим тенденцию к обработке запросов на стороне клиента и использованию сервера только для API. Однако, это далеко не единственная тенденция. Сейчас происходит медленное возвращение или, скорее, слияние этих двух архитектур.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 52K
Комментарии 14

Настоящие ассоциативные массивы в JavaScript

JavaScript *Программирование *
Туториал
Перевод
Использование литерала объекта, как простого средства для хранения пар ключ-значение давно стало обычным делом в JavaScript. Тем не менее, литерал объекта всё же не является настоящим ассоциативным массивом и по этому, в некоторых ситуациях, его использование может привести к неожиданным результатам. Пока JS не предоставляет нативную реализацию ассоциативных массивов (не во всех браузерах, по крайней мере), существует отличная альтернатива объектам, с нужной функциональностью и без подводных камней.
Читать дальше →
Всего голосов 57: ↑51 и ↓6 +45
Просмотры 57K
Комментарии 38

Kivy и Play Store

Python *Разработка игр *Разработка под Android *
Около года назад я поучаствовал в конкурсе Kivy App Contest 2014. Игрушка заняла одно из призовых мест (номинация «лучшая идея») и ко мне неоднократно обращались с просьбой выложить её на маркет. Я долго откладывал, но позавчера наконец созрел и потратив вечер — выложил. Оказалось всё совсем просто и я решил написать эту инструкцию для тех, кто, как и я, пишет на киви «в стол». Ну или тех, кто пишет на Питоне и не в курсе, что на нём можно легко писать андроидные приложения и даже выкладывать их в маркете. Инструкция рассчитана на таких же как я полнейших чайников в разработке под Android. Профессионалам можно здесь прекратить чтение, а можно поправить/дополнить в комментариях.
Читать дальше →
Всего голосов 33: ↑25 и ↓8 +17
Просмотры 47K
Комментарии 16

Как перевести сайт целиком на постоянный HTTPS для всех

Nginx *
Перевод

Шифруем всё подряд


Эра незашифрованного веба проходит, и это хорошо. В этой инструкции мы предполагаем, что на вашем сервере работает веб-сервер Nginx. И теперь мы сделаем так, чтобы все посетители сайта пользовались исключительно протоколом HTTPS. Кроме этого мы включим HSTS – это «HTTP Strict Transport Security», когда сайт не только поддерживает HTTPS, но и настаивает на его использовании.

Для этого есть множество способов, но я опишу метод под названием «HTTPS termination». Иначе говоря, мы поставим перед веб-сервером обратный прокси, который и будет обеспечивать HTTPS. Это получается проще и гибче, чем настраивать HTTPS только при помощи возможностей веб-сервера. Возможно, вам покажется контринтуитивным, что добавление ещё одного приложения в стек упростит вашу жизнь – но это действительно так.

Уточним, что данный рецепт подходит для серверов на базе Linux, на которых установлен Nginx.

То, что будет работать прежде всех остальных приложений в стопке – это HAProxy. Это в первую очередь приложение для балансировки – он умеет распределять приходящие запросы между разными физическими серверами. Много высоконагруженных сайтов используют его в этом качестве (тот же reddit), но в последней версии у него появилась возможность выполнять SSL termination. Он умеет устанавливать HTTPS-соединения от имени сервера.

Поэтому мы поставим HAProxy, скормим ему наши сертификаты SSL/TLS, поручим перенапрявлять все HTTP запросы на HTTPS, и покажем ему уже сам веб-сервер в качестве бэкенда.
Читать дальше →
Всего голосов 63: ↑49 и ↓14 +35
Просмотры 42K
Комментарии 38

Как попасть в топ на Kaggle, или Матрикснет в домашних условиях

Поисковые технологии *Python *Data Mining *
Из песочницы
Хочу поделиться опытом участия в конкурсе Kaggle и алгоритмами машинного обучения, с помощью которых добрался до 18-го места из 1604 в конкурсе Avazu по прогнозированию CTR (click-through rate) мобильной рекламы. В процессе работы попытался воссоздать оригинальный алгоритм Мактрикснета, тестировал несколько вариантов логистической регрессии и работал с характеристиками. Обо всём этом ниже, плюс прикладываю полный код, чтобы можно было посмотреть, как всё работает.

Рассказ делю на следующие разделы:
1. Условия конкурса;
2. Создание новых характеристик;
3. Логистическая регрессия – прелести адаптивного градиента;
4. Матрикснет – воссоздание полного алгоритма;
5. Ускорение машинного обучения в Python.
Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Просмотры 31K
Комментарии 21

Конференции для разработчиков c видео презентациями

Разработка веб-сайтов *
Для разработки надо идти в ногу со временем, и хорошее место узнать что-то новое и получить ценный опыт — концеренции и мастер классы. Я вот решил собрать некоторые значащие конференции и их видеоканалы с выступлениями. Старался не включать мелких конференций, слишком отдалённых от программирования (по PM и маркетингу), или не выкладывающих видео.

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

Понятно что у организаторов своя бизнес-модель и возможности, но хочется унифицировать и мотивировать организаторов относиться к докладам и их авторам с уважением, выкладывать видео со временем, синхронизировать со слайдами.
С видео Без нормального видео

Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 17K
Комментарии 30

Два с половиной приема при работе с argparse

Python *

Приемы, описанные здесь, есть в официальной документации к модулю argparse (я использую Python 2.7), ничего нового я не изобрел, просто, попользовавшись ими некоторое время, убедился в их мощности. Они позволяют улучшить структуру программы и решить следующие задачи:

  1. Вызов определенной функции в ответ на заданный параметр командной строки с лаконичной диспетчеризацией.
  2. Инкапсуляция обработки и валидации введенных пользователем данных.

Что там еще за пол-приема?
Всего голосов 28: ↑25 и ↓3 +22
Просмотры 31K
Комментарии 18

Как быстро создать опрос на вашем сайте с помощью форм Google?

IT-компании
Как быстро создать опрос на вашем сайте с помощью форм Google?Рано или поздно, практически все, у кого есть собственный сайт, сталкиваются с необходимостью создания форм обратной связи для сбора данных (проведения опросов) с посетителей сайта.

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

Есть несколько подходов в создании подобных форм:

• Формы можно сделать, используя теги HTML и завязать нажатие кнопки «Отправить» с отправкой введенных данных вам на email

• Можно сделать связку PHP+MySQL (или любой другой язык программирования и базу данных) и все введенные данные сохранять в базу данных для дальнейшей работы.

• Если ваш сайт сделан с использованием какой-нибудь популярной CMS (например, Joomla, Drupal или WordPress), то вы можете поискать в сети плагины, модули и компоненты, которые достаточно просто позволяют создавать формы

• А можно для создания форм обратной связи использовать бесплатные инструменты всем известного Google.Docs

И в этой статье я хотел бы показать как с помощью Google.Docs вы можете легко и быстро создавать всевозможные формы опроса для ваших сайтов.
Читать дальше →
Всего голосов 63: ↑48 и ↓15 +33
Просмотры 142K
Комментарии 16

Обратные сетевые эффекты — от чего умирают большие сети

Социальные сети и сообщества
Для успеха любой социальной сети жизненно важен сетевой эффект, который заключается в том, что ценность сети растёт с ростом количества участников. Согласно эмпирическому закону Меткалфа, полезность сети приблизительно равна половине квадрата численности участников. Тем не менее, сетевой эффект не является гарантией безоблачного существования крупной сети. Закон Меткалфа не помешал Facebook обойти Friendster и MySpace.

Сангит Пол Чодри — предприниматель, аналитик и бизнес-консультант из Сингапура — считает, что причиной смерти многих крупных сетей становятся так называемые обратные сетевые эффекты, из-за которых ценность сети не растёт, а уменьшается с ростом числа пользователей. Как они работают?
Читать дальше →
Всего голосов 32: ↑24 и ↓8 +16
Просмотры 35K
Комментарии 17

Читать книги на английском и учить язык легче с помощью WordMemo

Гаджеты Софт Изучение языков
Я хочу рассказать о некоммерческом сервисе wordmemo.ru, а также о связанной с ним программе WordMemo для устройств с ОС Android. Наш сервис предназначен для людей, которые хотят читать англоязычные тексты (например, художественную литературу). Сам я отношусь к тем людям, которым легко прочитать небольшие фрагменты “технической литеатуры”, а абзац из классики — невозможно. В основе сервиса, который мне очень помогает в этом деле, лежит «читалка» с возможностью смотреть переводы слов, выписывать их значения, и — самое важное! — тренажёрами, позволяющими эффективно заучивать выписанные слова. К примеру, для каждого незнакомого слова сохраняются контексты, в которых оно встречалось.
Главная идея сервиса состоит в том, что учить слова лучше всего не взятыми по отдельности, как в словарях, а в составе реальных предложений. Что-то вроде англо-русского разговорника и учебника, который вы создаете сами!
Читать дальше →
Всего голосов 55: ↑40 и ↓15 +25
Просмотры 109K
Комментарии 28

Проверка идеи боем: fake landing page

Управление продажами *
Из песочницы

Основная проблема любой идеи стартапа — никто не знает, нужно ли это вообще кому-нибудь или нет. Готовы ли люди изменить своё поведение, свои привычки и начать пользоваться новым продуктом? И главное — готовы ли они за него заплатить?



Десятки-сотни тысяч стартапов ежегодно запускаются, не зная ответа на этот вопрос. Это понятно — никогда нельзя быть абсолютно уверенным в успехе нового бизнеса. Тем не менее, существуют несколько методов проверки идеи — и все они с разной степенью могут предсказать будущее продукта. Один из самых эффективных методов — это разработка fake landing page.



Начнем «раскручивать» термин с конца. Landing page («посадочная страница») называют страницу сайта, на которую пользователь переходит по нажатию на рекламное сообщение. Обычно на этой странице кратко и полно описывается суть продукта, а так же размещается action button, например «Зайти», «Начать», «Узанать подробнее». Цель landing page — «взять на руку» человека, пришедшего извне по рекламе, быстро и четко объяснить, что здесь происходит, и показать один путь, куда двигаться дальше. Переход же на главную страницу сайта, как часто делают многие рекламодатели, обычно является серьезной ошибкой — большое количество информации, которая понятна уже постоянному пользователю, пугает новичка — и даже не надейтесь, что он найдет раздел «О нас» или «Что это?».



С появлением приставки fake — фальшивый, ненастоящий — проявляется сакральный смысл всей идеи проверки будущего стартапа на реальности. Мы создаем landing page для еще несуществующего продукта, «пригоняем» траффик посредством рекламного объявления и проверяем, как ведут себя наши потенциальные клиенты. Итоговым результатом является четкий ответ — сколько из всех, кто в принципе заинтересован предложенной идеей (нажали на рекламное объявление) готовы стать вашими клиентами (нажали на кнопку «Зайти» на fake landing page).


Дальше - конкретные шаги по созданию fake landing page
Всего голосов 73: ↑66 и ↓7 +59
Просмотры 36K
Комментарии 16

Не для денег: организация сообщества по интересам

Чулан
Здравствуйте, уважаемые хабрачитатели!
В этой статье представлены мысли и краткая выжимка своего опыта по поводу организации сообщества по интересам. Писалось на опыте создания и развития Уральского регионального стрелкового клуба – некоммерческого сообщества людей, увлеченных оружием, стрельбой и всем, что с этим связано.
Сообщество существует уже больше 4-х лет, мы регулярно проводим различные мероприятия – соревнования по стрельбе, фестивали, просто собираем народ. Клуб начинался на ровном месте 3-мя людьми, причем до этого даже не сильно знакомыми между собой. Сейчас у нас накоплена хорошая материальная база, позволяющая проводить соревнования по различным стрелковым дисциплинам, а главное – опыт, которым я хочу поделиться с уважаемыми читателями.
Все нижеизложенное – мое имхо, с удовольствием в комментариях почитаю про ваш опыт и отвечу на вопросы.

Вопросы организации


1. Организации сообщества делается не для денег, это делается для души. Это потребует от вас вложений как материальных, так и других – ваше время, силы и нервы. Мало кому удается зарабатывать на своем хобби, и здесь описан не этот случай.
2. Ваш профит – это общение с новыми, интересными людьми, которые настроены с вами на одну волну. Причем с людьми, с которыми в своей обычной жизни вы, скорее всего бы просто не встретились. Также это отличная возможность попробовать и развить свои менеджерские, лидерские и коммуникативные навыки.
3. Крайне желательно четко понимать, чего вы хотите добиться – миссия, стратегические цели, задачи. Исходя из этого, строить дальнейшее развитие вашего сообщества (клуба, объединения).
4. Все делается для людей. Если вы не сможете собрать и сплотить вокруг вашего дела единомышленников – то ничего не получится. Вас должно переть от вашей темы, и этим вы должны заражать окружающих.
5. Позаботьтесь о площадке, где вы будете общаться. Это можно делать на существующих ресурсах, но там вы напрямую зависите от факторов, на которые не имеете влияния (дурные модераторы, невозможность самостоятельного развития). Лучший вариант – это свой ресурс, на котором вы полноправные хозяева. На нем должна быть возможность создавать закрытые разделы для общения. После создания площадки сразу закрепите правила общения на ней и придерживайтесь их.
6. Старайтесь без реальной на то нужды не раздавать полномочия на модерацию, управление, доступ к закрытым ресурсам. Забрать что-то обычно бывает сложнее, чем дать.
7. Постарайтесь сделать так, чтобы в случае вашего внезапного ухода сообщество могло продолжить жить дальше. Как минимум оставьте учетные записи от всех нужных для работы вашего сообщества сервисов надежному человеку.
8. Все наработки, касающиеся договоренностей, контактов нужных людей необходимо хранить в месте, в котором они будут доступны организаторам.
Читать дальше →
Всего голосов 7: ↑3 и ↓4 -1
Просмотры 8.3K
Комментарии 21

Эффективные знакомства

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

1. Инструмент с циничным названием «С этой девушкой выбирают также:» «Не сложилось? Посмотрите эти анкеты:». Берем тех парней, кто написал этой девушке и показываем других девушек, которым они писали за последние пару дней. Предполагается, что людям нравится определенный типаж. Для слишком популярных анкет вводим понижающий коэффициент, чтобы не было засилья людей с модельной внешностью.

2. Интересы и группировка по степени совпадения в процентах, как музыкальные вкусы на last.fm. Собственно здесь, могут быть те же музыкальные или киношные вкусы. Не только на сайтах знакомств, например, в ЖЖ очень не хватает такой группировки по интересам.

Общая цель сводится к тому, чтобы пользователь находился в своем сегменте, в своем кругу общения, интересов и предпочтений. Как и в реальной жизни, только круг общения будет включать в себя значительно больше участников.
Всего голосов 86: ↑58 и ↓28 +30
Просмотры 5.1K
Комментарии 78

Информация

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