Pull to refresh
0
0
Send message

Чистая архитектура в Python: пошаговая демонстрация. Часть 4

Reading time10 min
Views15K

Содержание

Сценарии (часть 3)


Git tag: Step09


Наша реализация ответов и запросов, наконец, завершена. И теперь мы можем реализовать последнюю версию нашего сценария. Сценарий корректно возвращает объект ResponseSuccess, но до сих пор не проверяет корректность входящего запроса.


Давайте изменим тест в файле tests/use_cases/test_storageroom_list_use_case.py и добавим ещё 2 теста. Полученный набор тестов (после фикстуры domain_storagerooms) выглядит следующим образом:

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

Как проходят уроки информатики в разных странах мира: 5 основных выводов

Reading time4 min
Views36K
Часто думают, что программирование — есть что-то сложное и недетское. Однако это, в принципе, играючи опровергает большое количество коммерческих компаний — от Apple (Swift Playground) и до Tynker, ориентированных на ребят от 5 лет. Ну или возьмем тот же Code.org — здесь вы можете найти курсы для детей 4+.

Но это все — про дополнительное образование. А что же происходит в это время в школах? Обучением детей начальной и средней школы программированию мы в нашей компании занимаемся уже почти 2 года и за это время прошли множество трансформаций и перечитали большое количество талмудов. И теперь хотим поделиться основными сделанными выводами…

image
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments237

Мультипротокольный бот через Microsoft Bot Connector REST API v3.0

Reading time3 min
Views9.8K
В этой статье я хочу описать простой пример работы мультипротокольного бота через Microsoft Bot Connector API — v3.0. На тему skype подобных ботов уже есть статьи на Хабре: «Как создать своего бота для Skype. Что не написано в документации» от and7ey и «Hello, Bot! Чат-боты – следующее поколение приложений?» от shwars. Но в первой идёт речь про работу через apis.skype и описанный там вариант не мультипротокольный, а во второй описана реализация через C#, а я в него не умею.

Кому и зачем нужна эта статья


Во-первых, «тому парню», который хочет сделать своего бота, но не умеет в C#, а умеет в REST.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments10

Четыре способа извлечения значений из скрытых полей в C#

Reading time4 min
Views38K
Добрый день. Не так давно на хабре проскакивала статья, в которой показывалась возможность обращения к закрытым полям объекта из другого экземпляра того же класса.

public class Example
{
  private int JustInt;

  // Some code here

  public void DoSomething(Example example)
  {
    this.JustInt = example.JustInt; // Вполне валидная строка, некоторых удивляет
  }
}

Почему бы не пойти дальше, и не забирать данные из скрытых полей иных классов?
Total votes 20: ↑18 and ↓2+16
Comments27

Шикарная панорама Марса от NASA

Reading time2 min
Views14K


До того момента, как человек попадет на Марс, остается еще какое-то время. Но если кто-то очень хочет побывать на поверхности Красной Планеты, то такая возможность уже есть. Речь идет о виртуальной реальности и панорамной съемке. Агентство NASA представило шикарную панораму Марса.

Угол обзора при этом — все 360 градусов, здесь уже нужно благодарить Curiosity, поскольку ровер способен фотографировать поверхность Марса и все окружение с очень широким углом обзора. Здесь собрано вместе 57 различных изображений, полученных Mars Hand Lens Imager (MAHLI), расположенного на конце манипулятора ровера.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments20

WTM (Waveform temporal memory) – модель нейронной сети для решения задачи адаптивного поведения

Reading time14 min
Views9.3K


Представляю на рассмотрение хабрапользователей модель нейронной сети, разработанную для решения задачи адаптивного поведения (и её подзадач: распознавания и прогнозирования последовательностей).
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments9

Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”

Reading time11 min
Views160K
Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых sentiment140 и tweet_viz), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис AlchemyAPI, но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в статье “Известий”, опубликованной 3 января.



В этой статье я немного расскажу о такого рода сетях и познакомлю с парой классных инструментов для домашних экспериментов, которые позволят строить нейронные сети любой сложности в несколько строк кода даже школьникам. Добро пожаловать под кат.
Читать дальше →
Total votes 82: ↑75 and ↓7+68
Comments48

Важнейшее из искусств: как мы реализовали проигрывание видео в Облаке Mail.Ru

Reading time9 min
Views19K


Некоторое время назад в Облаке Mail.Ru появилась возможность проигрывания видеофайлов. Уже в самом начале работы над этим функционалом мы решили, что будем разрабатывать этакий швейцарский нож: требовалась возможность проигрывать любые видеоформаты и функционирование на всех устройствах, где доступно Облако. Загруженные в Облако видеофайлы можно условно разделить на две категории: «фильмы/сериалы» и «видеоролики пользователей», которые люди снимают на телефоны и видеокамеры — для этого случая особенно характерно разнообразие форматов и кодеков. Без предварительной обработки просмотреть все это на любом устройстве невозможно, например, из-за отсутствия нужного кодека или же размер файла окажется слишком большим.

В этой статье я расскажу о том, как устроено проигрывание видеофайлов в Облаке Mail.Ru и каким путем мы шли, чтобы сделать воспроизведение в Облаке «всеядным» на вход и поддержать максимальное число устройств на выходе.
Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments39

Пример реализации методов обработки и распознавания изображений на Android

Reading time14 min
Views22K
Занимаясь разработкой приложений под ОС Android возникают интересные идеи, которые хочется попробовать, либо есть какой-то набор теоретических знаний и их хочется применить на практике, из совокупности этих факторов и возникла идея описываемого проекта.

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

Пример реализации представлен в виде Android приложения, а исходным изображением является скриншот текста, с введенным ключевым словом, для решения задачи применяются различные алгоритмы обработки и распознавания изображений.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments2

Параллельный парсинг большого количества HTML-страниц с помощью Apache Ignite (GridGain) в 200 строк кода

Reading time12 min
Views31K
Периодически у меня появляются задачи обработать большое количество файлов. Обычно это конвертирование из одного формата в другой: XSLT-трансформация, парсинг, конвертация картинок или видео. Для решения этих проблем я приспособил фреймворк GridGain In-Memory Data Fabric. Он дает возможность делать distributed computing, MapReduce, распределенные кэши и очереди, распределенную файловую систему в памяти, перемещение кода к данным, job stealing, ускорители для Hadoop и многие другие модные ныне вещи. И все это легко и под разные операционки. Вы легко можете все это пощупать под виндовс.

Попробую рассказать о своем опыте использования на примере простенькой задачи.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments14

Как вести секретную переписку. Часть 2

Reading time2 min
Views55K
В нашем блоге мы часто рассказываем о собственных кейсах — пишем о том, как бизнес работает с IaaS. Помимо этого мы обращаемся и к западному опыту в профильной сфере.

Например, мы рассказывали:


Сегодня мы продолжим знакомство с руководством одного из авторов The Intercept, который привел детальный разбор того, как вести переписку с использованием методов шифрования.

Читать дальше →
Total votes 25: ↑18 and ↓7+11
Comments16

Codesign.io – архитектура которая работает

Reading time4 min
Views9.1K
Привет, ребята. Меня зовут Павел, я сооснователь сервиса Codesign и отвечаю за его техническую составляющую. Codesign – это веб-сервис для создания и обсуждения обратной связи при работе над веб-сайтами, дизайн-макетами и презентациями. Если вам дизайнеры по-прежнему пишут правки по верстке сплошным текстом в письме, то пора завязывать и переходить на Codesign.

Мы запустили сервис 22 июля 2015 года и с тех пор набрали 3500 зарегистрированных пользователей, пережили запуск на ProductHunt, когда к нам зашло 10 000 человек за 36 часов, получили своих первых платных пользователей и обсуждаем получение финансирования от европейских (я живу в Италии) инвесторов. В этой статье я расскажу, как мы построили архитектуру сервиса и организовали процесс разработки.


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments18

NGINX как балансировщик нагрузки для MySQL или MariaDB Galera Cluster

Reading time6 min
Views25K
Данная статья является переводом оригинальной статьи с сайта Severalnines.

Nginx хорошо известен всем за свои расширенные возможности и эффективность в качестве прокси и/или балансировщика веб-приложений с низким потреблением памяти. Как правило, nginx используется на первой “линии обороны” веб приложений, чтобы распределять нагрузку на сервера бекенда, периодически проверяя их работоспособность. Данная технология довольно популярна для приложений, которым требуется повышенная отказоустойчивость.


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

Освоение специальности Data Science на Coursera: личный опыт (ч.2)

Reading time8 min
Views29K


Мы публикуем вторую часть поста Владимира Подольского vpodolskiy, аналитика в департаменте по работе с образованием IBS, который закончил обучение по специализации Data Science  на Coursera. Это набор из 9 курсеровских  курсов от Университета Джонса Хопкинса + дипломная работа, успешное завершение которых дает право на сертификат.

Читайте в первой части: О специальности Data Science в общих чертах. Курсы: Инструменты анализа данных (программирование на R); Предварительная обработка данных; Документирование процесса обработки данных.

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

Поисковые подсказки изнутри

Reading time11 min
Views27K


Ночная зала. Тысячи таинственных ликов в темноте, подсвеченных голубоватым свечением мониторов. Оглушительный треск миллиона клавиш. Подобные выстрелам автомата удары по клавишам «Enter». Зловещее стрекотание сотен тысяч мышек… Так, наверняка, играло воображение каждого разработчика высоконагруженной системы. И если его вовремя не остановить, то может выйти целый триллер или фильм ужасов. Но в данной статье мы будем гораздо ближе к земле. Мы кратко рассмотрим известные подходы к решению задачи поисковых подсказок, как мы научились делать их полнотекстовыми, а также расскажем о парочке уловок, на которые мы пошли, чтобы придать им скорости, но при этом не научить жадности к ресурсам. В конце статьи вас ждёт бонус — небольшой рабочий пример.
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments14

Поиск периодических элементов защиты Паспорта РФ с помощью преобразования Фурье: часть вторая

Reading time8 min
Views21K
Многие документы содержат защитные элементы, такие как голограммы, водяные знаки, гильош и т.д. В процессе сканирования таких документов возникает проблема — защитные элементы мешают системам распознавания (OCR). При разработке Smart PassportReader мы провели исследование, направленное на поиск и устранение подобных защитных элементов с изображений документов.



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

Как и в прошлый раз, для этого будет использоваться преобразование Фурье.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments2

BitTorrent Sync теперь без ограничений в бесплатной версии

Reading time2 min
Views47K
image

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

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

Что там изменилось?
Total votes 36: ↑31 and ↓5+26
Comments25

Что именно заставляет глубинное обучение и нейронные сети работать хорошо?

Reading time6 min
Views35K
Сейчас очень много статей, рапортующих об успехах нейронных сетей, в частности, в интересующей нас области понимания естественного языка. Но для практической работы важно еще и понимание того, при каких условиях эти алгоритмы не работают, или работают плохо. Отрицательные результаты по понятным причинам часто остаются за рамками публикаций. Часто пишут так — мы использовали метод А вместе с Б и В, и получили результат. А нужен ли был Б и В остается под вопросом. Для разработчика, внедряющего известные методы в практику эти вопросы очень даже важны, поэтому сегодня поговорим об отрицательных результатах и их значении на примерах. Примеры возьмем, как известные, так и из своей практики.
Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments42

Три причины развивать многоканальные видео кампании

Reading time2 min
Views1.5K
image

Видео – это наиболее сильный инструмент повествования и оставался таковым почти столетие. Рекламодатели поняли, что в мире множества экранов, видео может иметь то же эмоциональное влияние, сравнимое с влиянием полноценного телевизора.

Есть три причины, по которым маркетологи должны задуматься о многоканальных кампаниях.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

IBM сделает платформу NodeJS стандартом корпоративной разработки

Reading time2 min
Views26K
Вчера IBM официально объявила о покупке компании StrongLoop, которая с 2013 года осуществляет профессиональную поддержку NodeJS для корпоративных клиентов.

StrongLoop — один из лидеров в секторе корпоративного NodeJS. Заказчики оплачивают подписку на продукт StrongLoop Suite и получают набор инструментов для удобной разработки приложений с использованием программных интерфейсов к облачному бэкенду, отладки, мониторинга и др.

StrongLoop известна как один из самых активных участниц проекта NodeJS, она постоянно присылает патчи для реализации новых функций и улучшения популярной платформы.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments19

Information

Rating
Does not participate
Registered
Activity