Pull to refresh
16
0.1
Евгений Блохин @ebt

инженер-предприниматель

Send message

Рецепт разработки бота под Telegram

Reading time12 min
Views28K


Добрый день, уважаемые читатели Хабрахабра!

В этом топике я хочу поделиться с вами опытом разработки бота под Telegram за 4 дня. Этот бот переводит все голосовые сообщения, которые получает, в текст. Пытался сделать быстро, но качественно — подучил пару-тройку технологий. Постараюсь максимально подробно описать свой процесс преодоления ошибок и преград; доказать, что, даже не имея нужных навыков, запустить свой продукт не так-то и сложно.

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

Преамбула


И так, что же может сделать один программист за 4 дня?
Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments26

Решение проблемы понимания контекста искусственным интеллектом. Часть 1

Reading time5 min
Views12K


Понимание естественного языка является AI полной задачей. Одним из аспектов такого понимания является понимание контекста. В данной статье я объясню, какие виды контекста выделяет наша психика, как она работает с одним из видов контекста, и как мы этот процесс воссоздаем в нашей технологии искусственного интеллекта.

The trophy doesn't fit into the brown suitcase because it's too [small/large].
What is too [small/large]?
Answers:The suitcase/the trophy.
The Winograd Schema Challenge

В предыдущей статье описан наш подход к разработке ИИ и то, что нами уже сделано на настоящий момент. Напомню, что мы создаем ИИ путем прямого копирования структур и процессов психики человека.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments109

Как устроен парсер Python, и как втрое уменьшить потребление им памяти

Reading time12 min
Views49K
Любой, кто изучал устройство языков программирования, примерно представляет, как они работают: парсер в соответствии с формальной грамматикой ЯП превращает входной текст в некоторое древовидное представление, с которой работают последующие этапы (семантический анализ, различные трансформации, и генерация кода).

КДПВ

В Python всё немного сложнее: парсеров два. Первый парсер руководствуется грамматикой, заданной в файле Grammar/Grammar в виде регулярных выражений (с не совсем обычным синтаксисом). По этой грамматике при помощи Parser/pgen во время компиляции python генерируется целый набор конечных автоматов, распознающих заданные регулярные выражения — по одному КА для каждого нетерминала. Формат получающегося набора КА описан в Include/grammar.h, а сами КА задаются в Python/graminit.c, в виде глобальной структуры _PyParser_Grammar. Терминальные символы определены в Include/token.h, и им соответствуют номера 0..56; номера нетерминалов начинаются с 256.

Проиллюстрировать работу первого парсера проще всего на примере. Пусть у нас есть программа if 42: print("Hello world").
Читать дальше →
Total votes 122: ↑116 and ↓6+110
Comments68

Литий-ионные и литий-полимерные аккумуляторы: маркетинговые уловки и распространенные ошибки

Reading time7 min
Views101K
Неоднократно сталкиваюсь в статьях и комментариях (в статьях все же гораздо реже) с использованием неправильных данных или названий, которые впоследствии приводятся, как аргументы, хотя на самом деле они ошибочны изначально. И эти ошибки распространяются по всем ресурсам, включая Гиктаймс.

Этой статьей я бы хотел разъяснить некоторые моменты и провести своеобразный ликбез.
Читать дальше →
Total votes 66: ↑63 and ↓3+60
Comments70

Систематизация публикаций в web. Часть 2 из 3: Три шага к научной респектабельности

Reading time7 min
Views9.4K
«The future is already here — it's just not very evenly distributed.»
William Gibson


Данный цикл статей включает 3 части.
В первой части был проведен обзор статей на тему научной работы, опубликованных на habrahabr.ru, рассмотрено понятие индекса цитирования (h-index, индекс Хирша) и сделан вывод о необходимости навыков работы с наукометрическими базами данных для всех, кто встал на путь научной карьеры.
Во настоящей второй части рассмотрены три инструмента управления публикациями в web: 1) Scopus; 2) Google Scholar (Академия Google); 3) Research Gate.
В третьей части рассмотрен выбор стратегии научных публикаций в целях продвижения личного научного бренда. Примеры в статье рассмотрены для той научной области, которая знакома автору – Computer Science.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments8

Развернутый комментарий к статьям «Систематизация публикаций в web»

Reading time6 min
Views7.7K

Источник изображения


На днях Владимир Скляр (Vladimir_Sklyar) опубликовал два материала об академическом сегменте интернета: раз и два. Начал писать комментарий… и увлекся. В итоге пишу очень развернутый комментарий.


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


Несмотря на радость от прочтения материала, замечательный стиль и емкие обобщения (мне очень понравился раздел "В чем причина такого невнимания к этой важной составляющей научной работы?"), осталось ощущение колоссальной недораскрытости темы. На мой взгляд, Владимир затронул лишь самую верхушку айсберга. Дальнейший комментарий разделю на дополнения и уточнения.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments17

Open API Ivideon: первые шаги

Reading time8 min
Views15K

Как же быстро время пролетело: наш предыдущий пост вышел на Хабре 2 года назад. Когда молчишь так долго, ты либо мертв, либо усердно работаешь, чтобы в один момент взорваться новостями и поведать что-то стоящее.

Если вы не знаете, кто мы, то объясним в четырех словах: сервис видеонаблюдения через Интернет. За остальными подробностями отсылаем к самой первой статье.

Вот и в Ivideon занимались стоящим проектом – Open API. Да, это открытый API, позволяющий нашим клиентам и партнерам упростить и автоматизировать взаимодействие с нашим сервисом. И даже создавать новые продукты!

Проект пока что находится на стадии бета-тестирования, но вы, если желаете, можете попробовать API. Подробнее об этом расскажем в конце статьи.

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

WebTorrent: торренты через браузер. Без плагинов, чистый JavaScript

Reading time2 min
Views454K


Теперь для скачивания и просмотра фильмов с торрентов не нужен отдельный торрент-клиент. Также как и для раздачи файлов по протоколу BitTorrent тоже не нужен отдельный клиент. Достаточно обычного браузера, поддерживаются Chrome, Firefox и Opera (десктоп и Android).

Всё это благодаря WebTorrent — гибриду BitTorrent и WebRTC. Скачивание и раздача происходят прямо через сайт. Встроенный плеер начинает показ фильма, как только скачано несколько процентов.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments26

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

Adminer — веб-интерфейс для баз данных размером в один .php файл

Reading time1 min
Views83K


В свете недавнего поста про сравнение PostgreSQL и MySQL, в комментариях возникла проблема выбора удобного интерфейса для работы с постгресом. Я сам столкнулся с такой проблемой, решив поискать альтернативы всем известному phpMyAdmin / php*Admin, который считается стандартом у веб-мастеров.
Читать дальше →
Total votes 61: ↑56 and ↓5+51
Comments53

Использование веб-шрифтов, самый лучший способ (на 2015 год)

Reading time6 min
Views30K
Недавно я снова исследовал вопрос загрузки шрифтов, так как я хотел использовать локальную копию шрифта и сделать ее загрузку максимально быстрой и эффективной. Данный подход существенно отличается от того, когда вы используете TypeKit или шрифты Google и простые сниппеты «копировать/вставить».

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

1, 2, 3

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

Цели:

  1. Асинхронно загружать веб-шрифты
  2. Избежать сильного пересчета положения в макете
  3. Как можно быстрее загружать веб-шрифты
  4. Избежать загрузки шрифтов для возвращающихся посетителей


А теперь давайте попробуем добиться наших целей поэтапно:
Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments6

Snaql. Raw SQL в Python-проектах

Reading time3 min
Views21K
В последний год у меня появилось новое правило — каждые 3 месяца изучать новый язык программирования и его экосистему. На это есть несколько причин: новые парадигмы, концепции, инструменты, да и просто интересно что там, по ту сторону набившего с годами оскомину Python. Это простое правило позволило изучить за текущий год современные хипстерские Go, Clojure и Rust, проникнуться их идеями и best practices, что, кстати, очень положительно влияет на стиль и качество кода, когда я пишу на своём основном языке.

Рассматривая стек Luminus, я наткнулся на простую и в то же время шикарную, на мой вкус, библиотеку Yesql для организации SQL-запросов в проекте на Clojure и я не увидел чего-то похожего для Python (может плохо искал). Идея этой библиотеки простая — не морочьте себе голову, используйте обычные SQL-запросы, у вас есть возможность именования этих запросов и мапинга на соответствующие динамические функции. Всё это выглядит как набор микро-шаблонов с SQL и их рендер по какому-то контексту. Просто, эффективно, хочу такое у себя в проекте на Python.

Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments33

Технологическая сингулярность, как событие неизбежное

Reading time9 min
Views146K


Думаю, многие, читающие эти строчки, на сегодняшний день видят, что прогресс с каждым днем ускоряется. Еще в начале XX века многие не верили в самолеты и думали, что «завтра будет сегодня». Эта тенденция в обществе была всегда и наблюдается сейчас. Завтра будет сегодня. В принципе, это простое эмпирическое наблюдение, однако если сравнить то, что было год назад, и что есть сегодня, становится виден этот прогресс. Если бы наблюдатель провел такое наблюдение в начале XIX века, очевидный прогресс он вряд ли бы увидел, разве что попал бы в переломный момент. Сейчас же различные научные достижения, мелкие и большие, происходят каждый день. Интернет стал катализатором этого процесса. Свободный обмен информацией объединил ученых со всего мира и лишил одной из главных проблем — повторного изобретения, чем часто страдал прошлый век. Конечно, сейчас данная проблема наверняка сохраняется из-за секретности некоторых государственных программ, однако такие проекты — это капля в море тысяч энтузиастов. Разумеется, сейчас наблюдаются не лучшие тенденции государственного контроля, но я, пожалуй, буду обсуждать в макромасштабе и не буду разбирать такие детали.

Уже вот 49 лет как выполняется закон Мура, а Intel готовит нам новые техпроцессы и новые подходы. Разрабатываются параллельно квантовые компьютеры, ДНК-компьютеры, нейронные сети… Все это произошло буквально за 30 лет.

Все неизбежно указывает на дальнейшее ускорение прогресса и движение к некой точке — технологической сингулярности.
Под катом я рассмотрю некоторые возможные сценарии этого процесса.
Total votes 124: ↑97 and ↓27+70
Comments228

Дюжина логических задач с собеседований

Reading time2 min
Views316K
image

Не знаю, как у вас, но у меня любимая часть интервью — логические задачи.
Довелось пройти немало собеседований на вакансию разработчика, поэтому набралась небольшая коллекция.
Спешу поделиться с вами!

Некоторые задачи проще и широкоизвестные, другие заставляют хорошенько задуматься.
Ответы пока что публиковать не буду, надеюсь, вы сами сможете всё решить.
Предлагаю размять свой мозг…
Читать дальше →
Total votes 71: ↑55 and ↓16+39
Comments244
12 ...
17

Information

Rating
2,939-th
Location
München, Bayern, Германия
Registered
Activity