Search
Write a publication
Pull to refresh
3
0
Дмитрий Куликов @DmitryKulikov

User

Send message

«Flaskr» — введение во Flask, разработка через тестирование (TDD) и jQuery

Reading time20 min
Views20K

Flask – это замечательный микро веб фреймворк, основанный на Python. Flaskr – это миниблог, который описан в официальном руководстве по Flask. Я продирался через это руководство больше раз, чем могу в этом признаться. Тем не менее, я хотел бы взять это руководство для следующего шага, добавив в него разработку через тестирование (test driven development) и немножко jQuery.

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

Сравнение аналитических in-memory баз данных

Reading time19 min
Views42K
В последние два месяца лета в управлении хранилищ данных (Data Warehouse, DWH) Тинькофф Банка появилась новая тема для кухонных споров.

Всё это время мы проводили масштабное тестирование нескольких in-memory СУБД. Любой разговор с администраторами DWH в это время можно было начать с фразы «Ну как, кто лидирует?», и не прогадать. В ответ люди получали длинную и очень эмоциональную тираду о сложностях тестирования, премудростях общения с доселе неизвестными вендорами и недостатках отдельных испытуемых.

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

Еще раз про обещания

Reading time13 min
Views36K

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


Общие сведения об обещаниях


Сначала несколько определений.


Обещания (promises) — это объекты, позволяющие упорядочить выполнение асинхронных вызовов.


Асинхронный вызов — это вызов функции, при котором выполнение основного потока кода не дожидается завершения вызова. Например, выполнение http-запроса не прерывает выполнение основного потока. То есть выполняется запрос, и сразу, не дожидаясь его завершения, выполняется код следующий за этим вызовом, а результат http-запроса обрабатывается после его завершения функцией обратного вызова (callback-функцией).


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


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

Каково оно учить JavaScript в 2016

Reading time10 min
Views349K


— Эй, я получил новый веб-проект, но, если честно, я не занимался веб-кодингом в течение нескольких лет, и я слышал, все немного поменялось. Ты же самый современный веб-разработчик, правда?

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
Читать дальше →

Пишем умный контракт на Solidity. Часть 1 — установка и «Hello world»

Reading time6 min
Views137K

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


Smart Contract & Gas


Если на пальцах, "умный контракт" — это некоторый код, живущий внутри блокчейна. Любой участник сети может его вызвать за небольшую плату. Эта плата и называется Gas, дословно "топливо". Зачем это нужно? Для защиты майнера от злоупотребления мошенником его ресурсов.


Немногие знают, но даже в биткоине есть возможность писать эти самые контракты, но в силу некоторых причин этим мало кто занимается. Одна из главных проблем — язык Script не Тьюринг-полный и написать что-то более менее серьезное непросто (чтобы вы понимали масштаб проблемы — нет даже возможности добавить цикл). В случае с Ethereum все чуть по другому, языки Тьюринг-полные, и есть риск, что кто-то напишет контракт вида


// Это псевдокод
foo = 0;
while (True) {
    foo++;
}

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

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

Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность

Reading time15 min
Views35K
image

Дмитрий Калугин-Балашов (Mail.RU)


Доклад у меня по базам данных In-Memory NoSQL. Кто знает, что такое In-Memory NoSQL база данных? Поднимите руки, пожалуйста… Как вам не стыдно? Зал по базам данных, и только половина знает, что это такое.

Если вы выбираете базу данных, ориентируясь на ее популярность, то так делать не надо. Как, вообще, выбираем базы данных?


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

Квантовое хеширование. Лекция в Яндексе

Reading time20 min
Views20K
Фарид Мансурович Аблаев — заведующий кафедрой теоретической кибернетики Казанского федерального университета. Приехав в московский офис Яндекса, Фарид Мансурович рассказал об алгоритмах, потенциально пригодных для запуска на квантовых компьютерах. Таких устройств пока очень мало, и они толком не освоены даже самыми передовыми компаниями. Но когда они начнут дешеветь, у специалистов уже будут наработки, позволяющие приступить к их использованию.


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

Лекции Техносферы. 1 семестр. Введение в анализ данных (весна 2016)

Reading time3 min
Views44K
Слушайте и смотрите новую подборку лекций Техносферы Mail.Ru. На этот раз представляем в открытом доступе весенний курс «Введение в анализ данных», на котором слушателей знакомят со сферой анализа данных, основными инструментами, задачами и методами, с которыми сталкивается любой исследователь данных в работе. Курс преподают Евгений Завьялов (аналитик проекта Поиск Mail.Ru, занимающийся извлечением полезных бизнесу знаний из данных, генерируемых поисковым движком и десктопными приложениями), Михаил Гришин (программист-исследователь из отдела анализа данных) и Сергей Рыбалкин (старший программист из студии Allods Team).

Лекция 1. Введение в Python


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


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

Что такое свёрточная нейронная сеть

Reading time13 min
Views272K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


Задача


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


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

Вызовы поискового облака. Лекция в Яндексе

Reading time18 min
Views7.5K
Интернет-компании выбирают и тестируют оборудование для дата-центров не только по номинальным спецификациям, поступившим от производителя, но и с учётом реальных продакшен-задач, которые будут выполняться на этом оборудовании. Затем, когда дата-центр уже спроектирован, построен и запущен, проводятся учения — узлы отключают без ведома сервисов и смотрят, насколько они подготовлены к подобной ситуации. Дело в том, что при такой сложной инфраструктуре невозможно добиться полной отказоустойчивости. В каком-то смысле идеальный дата-центр — это тот, который можно отключить без ущерба для сервисов, например для поиска Яндекса.


Руководитель группы экспертизы runtime поиска Олег Фёдоров был в числе докладчиков на большой поисковой встрече Яндекса, которая прошла в начале августа. Он рассказал обо всех основных аспектах проектирования дата-центров под задачи, связанные с обработкой огромных объёмов данных. Под катом — расшифровка и слайды Олега.

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time39 min
Views1.8M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

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

Почему выгорание истощает продуктивность (и как с ним бороться)

Reading time5 min
Views24K
image

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

Нереальность достижения цели без потери сил и времени — это ключевая идея нашей рабочей культуры. И создается ощущение, что слишком усердной работы не существует. 80-часовая рабочая неделя, проверка электронной почты в 3 утра, ночные сверхурочные ради запуска проекта — подобные поступки кажутся необходимыми и даже похвальными.
Читать дальше →

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 2: добавляем bootstrap, страницы и роутинг

Reading time21 min
Views84K

Разработка изоморфного приложения глазами моей жены


Это продолжение статьи про разработку изоморфного приложения с нуля на React.js. В этой части мы добавим несколько страниц, bootstrap, роутинг, концепцию Flux и ее популярную реализацию Redux.

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

Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженном проекте

Reading time12 min
Views39K

Аникин Денис (danikin, Mail.Ru)


Денис Аникин

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

Базы данных – это хранилище, более структурированное, чем файл, и обладающее рядом некоторых фич, которых у файла нет.



Там можно делать запросы, там есть транзакции, индексирование, таблицы, устойчивые, более-менее надежные хранилища. На самом деле, базы данных – это более удобно, чем файлы.

СУБД эпохи Интернета вещей

Reading time6 min
Views6.8K
Уникальная по своим возможностям СУБД HPE Vertica легко справляется с обработкой данных не только бизнес-транзакций, но также межмашинного взаимодействия и Интернета вещей, позволяя управлять миром умных устройств в реальном времени.



Глобальная экономика входит в эпоху Интернета вещей и массового межмашинного взаимодействия. Это значит, отмечает Дэвид Джонс, старший вице-президент и генеральный директор бизнес-подразделения HPE по управлению информацией и ее организации, что уже скоро, примерно к 2020 году, по всему миру придется обрабатывать данные от 50 миллиардов смарт-устройств и одного триллиона приложений ― всего около 44 Збайт. Нет сомнений, что прежние СУБД, ориентированные на обработку транзакционных данных, циркулирующих в традиционных бизнес-приложениях, не справятся с такой нагрузкой. На смену им приходят СУБД нового поколения, изначально рассчитанные на работу с большими объемами и потоками данных. Одна из них ― HPE Vertica, способная анализировать в реальном времени огромные объемы информации, получаемой от всевозможных «генераторов» данных — не только традиционных транзакционных систем, но также датчиков и устройств Интернета вещей, систем межмашинного взаимодействия, АСУТП, веб-сайтов и прочих источников.
Читать дальше →

Кластер Docker Swarm за 30 секунд

Reading time5 min
Views88K


В этом июне, в качестве лейтмотива конференции DockerCon мы видели демо, в котором 3-узловой Swarm-кластер был создан за 30 секунд используя набор инструментов для кластеризации Swarm, интегрированную в Docker Engine 1.12.


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


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

Строим свой full-stack на JavaScript: Клиент

Reading time12 min
Views31K

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

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

Видеозапись вебинара «Инструменты для работы Data Scientist»

Reading time1 min
Views5.1K


Вчера наша команда провела вебинар на тему «Инструменты для работы Data Scientist». В его рамках мы рассмотрели, кто такой data scientist и какими инструментами он пользуется. Поговорили о платформе FlyElephant и чем она может быть полезной для работы data scientist’а.
Смотреть видеозапись и презентацию

Использование autoencoder-ов для построения рекомендационной системы

Reading time7 min
Views5.8K
Как и во многих рекоммендационных системах у нас есть продукты, пользователи и оценки, которые выставляют пользователи (явно или не явно) продуктам. Наша задача предсказать оценки продуктам, которые ещё не оценил пользователь и тем самым предсказать те продукты, которые могут быть высоко оценены пользователями, или продукты, которые могут быть интересны пользователям. (В чем и состоит функция рекомендационой системы — найти продукты, которые могут быть потенциально интересны пользователю.)

Необходимо было разработать рекомендационную систему, которая бы:

  1. Была оптимальна с точки зрения скорости работы после обучения модели.
  2. Требовала бы минимальных затрат на обработку новых поступающих данных. Т.е. чтобы рекомендационной системе не требовалось бы полное переобучение или же дообучение после получения новых данных или же чтобы операции такого рода были бы минимальны (возможно, мы бы теряли в качестве работы, но при этом не требовалось бы существенных затрат на повторное построение модели).
Читать дальше →

Information

Rating
Does not participate
Location
Саров (Нижегородская обл.), Нижегородская обл., Россия
Date of birth
Registered
Activity