Pull to refresh
0
0
Send message

Бот для telegram с состоянием в СУБД и классификацией текста

Reading time7 min
Views15K
Т.к. мой классификатор из прошлого поста таки работает (впрочем, параметры «из коробки» не всегда удачны, потому я вынес возможность слегка настроить Conv1d-слои и скрытый слой) — я решил прикрутить его к боту. Да, запоздал я на этот хайп ) Кстати, заранее уточню, что прикрутить русский я пока таки не пробовал, хотя это не должно стать проблемой — в nltk поддерживаются нужные фичи, обучение word2vec концептуально не отличается от английского, да и предобученные модели вроде бы имеются.

Ну и сходу возникают вопросы:

  • под какие платформы его пилить — пока решил остановиться на telegram. В теории — конструкция позволяет легко дописать обертки для других платформ (как будто он кому-то понадобится )
  • как описывать «сценарий». Навелосипедил свою структуру с классами и сущностями поверх YAML
  • ну и неплохо бы хранить ботов/состояние в какой-нибудь БД

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments2

Как мы за 24 часа построили конструктор Telegram-ботов, а потом половину выкинули и переписали

Reading time9 min
Views43K
Все началось 20.06, когда я увидел в твиттере популярного блогера Варламов этот твит:

image
В тот же момент я подумал: ведь мессенджер вообще и Telegram в частности это идеальный способ взаимодействия с клиентом. Зачем нам приложение, чтобы доставлять последние новости если это можно просто прислать их в чат?

Зачем вам приложение для заказа такси, когда вы можете написать в чат любимому оператору такси «хочу такси в Домодедово от м. Южное через 35 минут» — и такси заказано. Зачем вам приложение для заказа из кафе, когда можно написать в чат «хочу двойной эспрессо и бейгл с осетром» — и осталось только послать свой адрес. Таких примеров использования чата может быть огромное множество.

В тот же день я написал небольшой пост в клубном новостном сообществе TJournal, где предложил в рамках предстоящего хакатона AngelHack написать продукт и создать демонстрационного бота: для подписки на новости и уведомления из этого сообщества. Через четыре дня Павел Дуров официально запустил поддержку ботов, а еще через две недели мы победили на AngelHack в номинации от IBM с проектом Leecero. Под катом большая история…


Читать дальше →
Total votes 40: ↑27 and ↓13+14
Comments17

Как плохо спроектированный UX у теста на коронавирус чуть не посадил нас на самоизоляцию, но дырка в безопасности спасла

Reading time3 min
Views40K

Это я, пишу скрипт по перебору параметров для POST запроса на gov.tr, сидя перед границей в Хорватию.

Как все начиналось


Мы с моей женой путешествуем по миру и работаем удаленно. Недавно переезжали из Турции в Хорватию (самая оптимальная точка, чтобы заехать в Европу). Чтобы не сесть на карантин в Хорватии, нужно иметь справку об отрицательном анализе на ковид, сделанном не позже 48 часов до въезда.

Выяснили, что относительно выгодно (2500 рублей) и быстро (всем результаты приходят в течение 5 часов) делают тест в аэропорту Стамбула, из которого мы как раз и вылетали.
Читать дальше →
Total votes 144: ↑143 and ↓1+187
Comments23

Диаграмма Вороного и её применения

Reading time25 min
Views125K
Доброго всем времени суток, уважаемые посетители сайта Хабрахабр. В данной статье я бы хотел рассказать вам о том, что такое диаграмма Вороного (изображена на картинке ниже), о различных алгоритмах её построения (за , — пересечение полуплоскостей, — алгоритм Форчуна) и некоторых тонкостях реализации (на языке C++).



Также будет рассмотрено много интересных применений диаграммы и несколько любопытных фактов о ней. Будет интересно!
Читать дальше →
Total votes 92: ↑89 and ↓3+86
Comments49

Построение диаграммы Вороного методом 'разделяй и властвуй'. Релаксация Ллойда

Reading time5 min
Views25K
image

Недавно, на хабрахабре была опубликована статья, целиком и полностью посвященная диаграммам Вороного. В статье автор подробно описывает алгоритм Форчуна, применяемый для построения Диаграммы Вороного за O(n*log(n)). Стоит отметить, что описание этого алгоритма не раз появлялось в рунете, в то время как о других алгоритмах (с той же асимптотикой) рассказано ровным счетом ничего. Данная статья исправляет это недоразумение, а также является отличным дополнением к уже опубликованному ранее материалу.

Ниже я расскажу о алгоритме 'разделяй и властвуй' построения диаграммы Вороного за O(n*log(n)), а также, основываясь на своем практическом опыте, о по-настоящему крутых штуках, в которых это применимо. Вообще, алгоритмы типа 'разделяй и властвуй' являются своего рода классикой программирования (думаю, про сортировку данным методом слышал каждый программист), хорошо параллелятся и легко читаются (если, конечно, знать основную идею алгоритма).
Total votes 34: ↑34 and ↓0+34
Comments5

Работа с базой данных из приложения

Reading time6 min
Views6.8K

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


Предполагается, что читатель немного знаком с паттернами Active Record, Data Maper, Identity Map и Unit of Work.


Проблемы и решения рассматриваются в контексте достаточно больших проектов, которые нельзя выкинуть и быстро переписать.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

Готовый клиентский модуль Google Pay

Reading time4 min
Views6.3K
Товарищи, представляю готовый модуль JavaScript для осуществления платежей с помощью Google Pay. Модуль предполагает использование в современной среде разработки npm с экспортами-импортами, однако, те, кто хочет чистого ES5, думаю, без труда смогут его переделать.

Ссылка на модуль. В коде есть нужная документация и комментарии. Здесь дам некоторые пояснения.


Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments14

Невесомый терабайт в кармане – будущее уже здесь? Изучаем возможности HyperX SAVAGE EXO

Reading time9 min
Views18K
Рынок твердотельных накопителей развивается семимильными шагами – если совсем недавно ещё не каждый мог себе позволить такое устройство в рабочую систему, то сегодня можно найти десятки совершенно разных моделей в любой ценовой категории. Объёмы контента растут с каждым месяцем – сейчас смартфоны даже среднего ценового диапазона умеют снимать высококачественное видео в разрешении 4K, не говоря уже о флагманах и профессиональных камерах, которые позволяют фиксировать самые важные моменты вашей жизни в режиме 4K 60fps. Можно даже сказать, что FullHD уже уходит в небытие, хоть и пока ещё достаточно популярен. Не прошло и 15 лет, как жёстких дисков объёмом 20 ГБ хватало для хранения важных данных. А сейчас на дворе уже и 14 ТБ диски можно приобрести – что делать, если надо оперативно перекинуть 500-800 ГБ файлов? Для этого есть несколько способов, поэтому сегодня разговор пойдёт не о привычных SSD для установки внутрь ПК или ноутбуков, а о портативном накопителе HyperX SAVAGE EXO, который стал первым этапом кампании по замещению внешних HDD. Дело остаётся лишь за временем. Но уже сейчас SAVAGE EXO способен завоевать внимание тех пользователей, кому часто требуется переносить много данных или запускать то или иное программное обеспечение прямо со своего переносного накопителя. А в конце данного материала мы подведём итоги конкурса ваших историй и озвучим победителей, которые получат флешки Kingston!


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments35

Курс MIT «Безопасность компьютерных систем». Лекция 1: «Вступление: модели угроз», часть 1

Reading time15 min
Views142K

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Total votes 23: ↑22 and ↓1+21
Comments10

10 книг по маркетингу и смежным тематикам, которые стоит прочитать дизайнеру

Reading time5 min
Views11K


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

Другими словами, бизнес сфокусировался на потребностях конечного пользователя, и дизайн стал здесь очень важным подспорьем. Дизайнер — творческий человек, но ничто маркетинговое не должно быть ему чуждо. Создать хороший продукт можно лишь в том случае, если его разработчики отлично понимают потребности того, для кого он предназначен. И без тесной связки «дизайн+маркетинг» здесь не обойтись. Сегодня мы публикуем подборку книг, которые мы сами считаем важными и интересными. Не все книги маркетинговые, но тематика большинства близка к этой сфере.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments0

Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации

Reading time6 min
Views249K

Предисловие


Об этом руководстве


Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.



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


Читать дальше →
Total votes 150: ↑130 and ↓20+110
Comments50

Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями

Reading time7 min
Views118K
Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.
Читать дальше →
Total votes 92: ↑78 and ↓14+64
Comments44

Интернет-магазин цветов, или как мы облажались на День Святого Валентина

Reading time8 min
Views40K
Праздники все прошли, прибыль и убытки подсчитаны. Настало время повествования. Эта история о том, как из-за технической ошибки интернет-магазин по доставке цветов потерял несколько сотен заказов и выручки в 1 миллион рублей на День Святого Валентина.
Читать дальше →
Total votes 110: ↑65 and ↓45+20
Comments158

«Цифровые государства»: с чего все началось

Reading time6 min
Views18K
Иллюстрация: Жан Гранвиль PD
Консалтинговая компания Deloitte в конце 2017 года выпустила доклад о технологиях в международном государственном секторе. Главный тренд на 2018 год — то, что исследователи называют symphonic enterprise. Эта концепция подразумевает достижение кумулятивного эффекта от внедрения государством и бизнесом таких технологий как, например, блокчейн и системы искусственного интеллекта. Цель — повысить эффективность работы всего «цифрового государства» — от взаимодействия граждан, госструктур и бизнеса до реализации базовых задач по электронному документообороту.

Сегодня мы расскажем, как появлялась концепция «цифрового государства» (ЦГ), поговорим о первых примерах отдельных систем и возможностях для их интеграции.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments19

Кто убил джуниора?

Reading time4 min
Views42K
Джуниоров много, вакансий не хватает



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

Лично мне повезло. Моей первой «настоящей» работой после колледжа в 2010 году стала должность «junior-разработчик приложений» в Колумбийском университете. В наше время сложно найти даже вакансию для джуниора. Люди, размещающие такие вакансии, завалены резюме. В то же время компании жалуются, что не могут найти хороших разработчиков уровня сеньора.

Но почему так происходит?
Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments428

Кто такой программист?

Reading time6 min
Views25K
О времена, о нравы. Сегодня в Тостере увидел тему, в которой человек признавался, что работая java-разработчиком он знает алгебру и геометрию на уровне 6 класса и просил посоветовать учебники. Этот запрос несомненно вызывает уважение — человек хочет учиться.

Начнём сначала. Я учился в хорошей физмат школе в 90-е годы. Читай между строк — по советской программе. На этом можно было бы и закончить, потому что далеко не все учились в хорошей физмат школе по советской программе, а значит я по определению страшно оторван от народа. И точно ничего не понимаю в жизни.

Да, кодить мы начали в третьем классе, и это был не Хогвартс
Читать дальше →
Total votes 86: ↑50 and ↓36+14
Comments211

Стратегия интернет-маркетинга

Reading time8 min
Views25K
Стратегия без тактики – это самый медленный путь к победе.
Тактика без стратегии – это просто суета перед поражением.
Сунь Цзы.


image

Холистический маркетинг включает себя:

  • Внешний маркетинг: коммуникации, продукт, каналы.
  • Маркетинг отношений: покупатели, партнеры, конкуренты.
  • Внутренний маркетинг: топ-менеджмент, отдел продаж, другие отделы.
  • Социальная ответственность: этика, право, общество.

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

image
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments1

О чем забывают 90% при написании заголовков секций у лендинга? Какие цены и скидки привлекают и помогают продавать?

Reading time6 min
Views18K


Наверняка видели десятки лендингов с заголовками секций в виде «Как мы работаем», «Чем мы лучше других», «Этапы работы», «Наши выгоды», «О нас», «О компании» и т.д. Без слез не взглянешь. Такие заголовки абсолютно не работают. Потому что вы пишите не оглавление книги для чтения, а текст, с помощью которого хотите продать продукт своим потенциальным клиентам. Для этого нужно использовать различные схемы и методики, которыми мы хотим поделиться.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments20

Свежая подборка ресурсов для маркетолога мобильных приложений: книги и блоги

Reading time6 min
Views22K


Оставаться хорошим маркетологом без постоянного самообразования немыслимо — банальная истина, о которой, тем не менее, часто забывают. А если вы занимаетесь продвижением мобильных приложений, то задача усложняется: не так легко найти проверенные источники с актуальной информацией, которую можно использовать на практике. Сегодня мы приготовили для вас пятничную подборку из 10 книг последних лет и 10 блогов, которые могут быть полезны маркетологу мобильных приложений.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments2

Анализ неявных предпочтений пользователей. Научно-технический семинар в Яндексе

Reading time9 min
Views19K
Анализ неявных предпочтений пользователей, выраженных в переходах по ссылкам и длительности просмотра страниц, — важнейший фактор в ранжировании документов в результатах поиска или, например, показе рекламы и рекомендации новостей. Алгоритмы анализа кликов хорошо изучены. Но можно ли узнать что-то ещё об индивидуальных предпочтениях человека, используя больше информации о его поведении на сайте? Оказывается, траектория движения мыши позволяет узнать, какие фрагменты просматриваемого документа заинтересовали пользователя.

Этому вопросу и было посвящено исследование, проведенное мной, Михаилом Агеевым, совместно с Дмитрием Лагуном и Евгением Агиштейном в Emory Intelligent Information Access Lab Университета Эмори.




Мы изучали методы сбора данных и алгоритмы анализа поведения пользователя по движениям мыши, а также возможности применения этих методов на практике. Они позволяют существенно улучшить формирование сниппетов (аннотаций) документов в результатах поиска. Работа с описанием этих алгоритмов была отмечена дипломом «Best Paper Shortlisted Nominee» на международной конференции ACM SIGIR в 2013 году. Позже я представил доклад о результатах проделанной работы в рамках научно-технических семинаров в Яндексе. Его конспект вы найдете под катом.
Читать дальше →
Total votes 47: ↑42 and ↓5+37
Comments8

Information

Rating
Does not participate
Date of birth
Registered
Activity