[Из песочницы] История 13 места на Highload Cup 2017

Image


11 августа компания Mail.Ru Объявила об очередном конкурсе HighloadCup для системных программистов backend-разработчиков.


Вкратце задача стояла следующим образом: докер, 4 ядра, 4Гб памяти, 10Гб HDD, набор api, и нужно ответить на запросы за наименьшее количество времени. Язык и стек технологий неограничен. В качестве тестирующей системы выступал яндекс-танк с движком phantom.


О том, как в таких условиях добраться до 13 места в финале, и будет эта статья.

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

Платформа для сбора донатов за две недели – итоги антихакатона


В нашем антихакатоне победила команда студентов Высшей школы экономики – с решением для приема донатов за стриминг. Но лучше всех о проекте расскажет Максим Дьяков, основатель сервиса «ЯСтрим» – передаю микрофон автору.


Под катом немного метаний между ChromeApps и Electron, впечатления от пробы Yandex SpeechKit и вообще о разработке в формате антихакатона.

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

Искусственный интеллект для ритейла: продажники уровня Скайнет, отзывы уровня Бог

Пока мы смотрим, Apple и Google борются за создание ИИ, а Маск и Хокинг его опасаются, где-то рядом искусственный интеллект уже буквально входит в нашу жизнь с той стороны, где мы и не ждали. Как я, почитывая достаточно широко известный в относительно узких кругах сайт про венчурный бизнес и прочие стартапы, не ждал наткнуться на рекламный вполне себе анонс хакатона торговой сети «М-видео» на ту самую не самую ожидаемую от магазина, продающего утюги и плазмы тему: по разработке чат-ботов для ритейла и использованию искусственного интеллекта в рознице. Будучи, в какой-то мере, энтузиастом темы ИИ, я уже намылился читать, какое применение ему собрались найти в ритейле, но даже на сайте хакатона не удалось найти никакого развёрнутого описания идеи. Сообщается лишь, что десять команд будут бороться за призы, главный из которых, как я понимаю, даже не 150 000₽ как таковые, а получение от «М-Видео» подряда на доработку их идеи до коммерческого воплощения. image Тема хакатона сформулирована довольно размыто: «Агрегация отзывов на сайте» и «Помощник продавца по подбору товаров в магазине» — ни в оригинальной статье, ни на сайте самого хакатона я подробностей не нашёл. От этого стало только интереснее. Что будет делать ИИ-помощник продавца — искать нужные ему модели в базе, что часто занимает столько времени в магазине, когда интересуешься конкретной моделью бритвы? Зачем, например, нужен ИИ для агрегации отзывов на сайте, когда они уже и так жёстко каталогизированы? Только копнув немного Гугл по соответствующим запросам, я нашёл достаточно пищи для размышлений, которые позволили разогнаться моей фантазии уже не на шутку. ...Далее...

[Из песочницы] Простой WebScraping на R через API hh.ru

Доброго времени суток, уважаемые читатели


Не так давно преподаватель дал задание: cкачать данные с некоторого сайта на выбор. Не знаю почему, но первое, что пришло мне в голову — это hh.ru.


Далее встал вопрос: "А что же собственно будем выкачивать?", ведь на сайте порядка 5 млн. резюме и 100.000 вакансий.

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

Oracle фактически ликвидирует Sun

Избегайте этой ловушки, не следует придавать антропоморфные черты Ларри Эллисону.
Брайэн Кантрилл


Похоже, что в Oracle приняли решение окончательно избавиться от трудовых ресурсов, составляющих костяк Sun Microsystems. Массовые увольнения затронули около 2500 сотрудников, работающих над операционной системой Solaris, платформой SPARC и системами хранения данных ZFS Storage Appliance.





Это не рядовая трансформация — оптимизация, а настоящая бойня. По мнению создателя системы динамической отладки Dtrace Брайэна Кантрилла (Bryan Cantrill) на сей раз нанесен непоправимый ущерб, в результате потери 90% созидательных кадров подразделения Solaris, включая все руководство.

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

Как на Java c помощью КриптоПро подписать документ PDF



Привет! Я сотрудник Альфа-Банка и занимаюсь разработкой программного обеспечения со встроенными средствами криптографической защиты информации.

В данной статье хочу рассказать о следующих вещах:

  • преимуществах формата PDF в качестве документа с электронной подписью;
  • платформе Java, библиотеке itextpdf и СКЗИ КриптоПро CSP, как инструментах подписи;
  • о том, с какими трудностями пришлось столкнуться, о доработке itextpdf;
  • привести пример кода, выполняющего несколько подписей;
  • поговорить о целесообразности использования формата PDF в качестве документа с подписью.
Читать дальше →

[Из песочницы] Plugin for HANA Database project in Visual Studio

Я работаю по SCRUM-у в ASP .NET MVC-проекте, в котором HANA используется как база данных, а в качестве Source Control-а – TFS. На уровне базы данных преимущественно используем View (Calculation, Attributes and DB Views), а также Stored Procedure – для выполнения транзакционных запросов на сервер. После окончания каждого релиза у меня всегда возникал вопрос: «А что именно изменилось в этом релизе?» или «Кто какое изменение сделал?» В связи с этим я подумал: «Почему бы не трекать состояние объектов в TFS после каждого изменения?» В результате я решил создать плагин, который позволяет использовать Database-проект в Visual Studio (VS) и импортировать изменения, которые есть в базе данных. Так родилась идея создания данного приложения. Начинаем с простого и смотрим, какие прототипы есть у Microsoft. Как пример возьмем MS-SQL-сервер и Database-проект в Visual Studio и рассмотрим все возможности, которые у них существуют:
  1. Можно создать свою схему (использовать существующую) в MS-SQL и потом импортировать ее в Database-проект в Visual Studio (DB VS).
  2. Можно создать (изменить) объект в Database и трансформировать изменения в базу данных.
  3. Можно трекать изменения в Source Control (в моем случае в TFS).
  4. Таким образом, мы можем отслеживать все изменения, которые происходят в ходе разработки, а также их авторов.
Сразу говорю, что поддерживать все эти возможности очень непросто, тем более что в HANA существует такой вид объектов, как Graphic View: он создается в графическом виде и его никак не продемонстрируешь в Visual Studio (но тем не менее для этого типа объектов тоже нашелся подход, чтобы импортировать его в VS). Я пошел по простому пути. Рассмотрим каждую возможность по отдельности. ...Далее...

[Из песочницы] Получение текста запросов из SoapHttpClientProtocol

У .NET есть несколько вариантов создания SOAP клиента, одним из них является его генерация с помощью wsdl.exe. На выходе получаем файл (поскольку пишу я на C#, то генерировал cs, соответственно), основой которого является класс, унаследованный от SoapHttpClientProtocol. Подробнее тут.

С моей точки зрения, это достаточно удобный способ, к тому же сам клиент можно подразогнать с помощью sgen.exe (очень хороший пример). Тем не менее есть у него один очень серьезный недостаток — это отсутствие штатной возможности получения текста запроса/ответа. А это было бы крайне удобно при первичной отладке сервисов, разборе ошибок и, самое главное, при возможных разбирательствах со стороны, эти самые сервисы предоставляющей.

Впрочем, если очень хочется, то нужно сделать.

Основная идея

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

[Перевод] JavaScript: методы асинхронного программирования

Синхронный код на JavaScript, автор которого не стремился сбить с толку тех, кто этот код будет читать, обычно выглядит просто и понятно. Команды, из которых он состоит, выполняются в том порядке, в котором они следуют в тексте программы. Немного путаницы может внести поднятие объявлений переменных и функций, но чтобы превратить эту особенность JS в проблему, надо очень постараться. У синхронного кода на JavaScript есть лишь один серьёзный недостаток: на нём одном далеко не уехать. Практически каждая полезная JS-программа написана с привлечением асинхронных методов разработки. Здесь в дело вступают функции обратного вызова, в просторечии — «коллбэки». Здесь в ходу «обещания», или Promise-объекты, называемые обычно промисами. Тут можно столкнуться с генераторами и с конструкциями async/await. Асинхронный код, в сравнении с синхронным, обычно сложнее писать, читать и поддерживать. Иногда он превращается в совершенно жуткие структуры вроде ада коллбэков. Однако, без него не обойтись. Сегодня предлагаем поговорить об особенностях коллбэков, промисов, генераторов и конструкций async/await, и подумать о том, как писать простой, понятный и эффективный асинхронный код. Читать дальше →...Далее...

Сегментация лица на селфи без нейросетей

Приветствую вас, коллеги. Оказывается, не все компьютерное зрение сегодня делается с использованием нейронных сетей. Хотя многие стартапы и заявляют, что у них дип лернинг везде, спешу вас разочаровать, они просто хотят хайпануть немножечко. Рассмотрим, например, задачу сегментации. В нашем слаке развернулась целая драма. Одна богатая и высокотехнологичная селфи-компания собрала датасет для сегментации селфи с помощью нейросетей (а это непростое и недешевое занятие). А другая, более бедная и не очень развитая решила, что можно подкупить людей, размечающих фотки, и спполучить базу. В общем, страсти в этих ваших Интернетах еще те. Недавно я наткнулся на статью, где без всяких нейросетей на устройстве делают очень даже хорошую сегментацию. Для сегментации от пользователя требуется дать алгоритму несколько подсказок, но с помощью dlib и opencv такие подсказки легко автоматизируются. В качестве бонуса мы так же сгладим вырезанное лицо и перенесем на какого-нибудь рандомного человека, тем самым поймем, как работают маски во всех этих снапчятах и маскарадах. В общем, классика еще жива, и если вы хотите немного окунуться в классическое компьютерное зрение на питоне, то добро пожаловать под кат.

...Далее...


Последние посты