Как стать автором
Обновить
26
0.4

Making good things happen

Отправить сообщение

Глубокое обучение на R, тренируем word2vec

Время на прочтение10 мин
Количество просмотров23K
Word2vec является практически единственным алгоритмом deep learning, который сравнительно легко можно запустить на обычном ПК (а не на видеокартах) и который строит распределенное представление слов за приемлемое время, по крайней мере так считают на Kaggle. Прочитав здесь про то, какие фокусы можно делать с тренированной моделью, я понял, что такую штуку просто обязан попробовать. Проблема только одна, я преимущественно работаю на языке R, а вот официальную реализацию word2vec под R мне найти не удалось, думаю её просто нет.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии15

Сериал: Big Data — как мечта. 9-я серия: Почему IBM был вынужден купить «Алхимиков» за $100млн

Время на прочтение4 мин
Количество просмотров4.3K
В предыдущих сериях: Big Data — это не просто много данных. Big Data — процесс с положительной обратной связью. «Кнопка Обамы» как воплощение rtBD&A. Философия развития Big Data. В этой серии поговорим о лингво-аналитике высокоскоростных потоков неструктурированных текстов и сообщений соцмедиа и представим «Эврику» — наш ответ «Алхимикам».

Интернет, в своем нынешнем восприятии обществом, это связанный набор сообщений: личной переписки в мессенджерах, ссылки между статьями в СМИ, обсуждений в блогах, игровые чаты, тематические сериалы на Хабре, или, как преобразилось в мировоззрении новых поколений — ссылки на ответы поисковика после набора запроса «Чем сегодня заняться?»

Если приглядеться, то основа основ: Связи и Тематики. Про аналитику «связей» говорить не будем (это к АНБ, на чьи возможности по электронной слежке сегодня отказался покушаться даже «всемогущий Сенат США»). А вот Тематическая аналитика (что недавно получило свое название — Brand Analytics — в пресс-релизе между Facebook и DataSift, а в России существует уже 3 года в виде названия проекта) и связанные с ней разнообразные вкусности — прекрасная тема (!) для новой серии.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии2

Анализ данных на Scala. Считаем корреляцию 21-го века

Время на прочтение8 мин
Количество просмотров22K

Очень важно выбрать правильный инструмент для анализа данных. На форумах Kaggle.com, где проводятся международные соревнования по Data Science, часто спрашивают, какой инструмент лучше. Первые строчки популярноcти занимают R и Python. В статье мы расскажем про альтернативный стек технологий анализа данных, сделанный на основе языка программирования Scala и платформы распределенных вычислений Spark.

Как мы пришли к этому? В Retail Rocket мы много занимаемся машинным обучением на очень больших массивах данных. Раньше для разработки прототипов мы использовали связку IPython + Pyhs2 (hive драйвер для Python) + Pandas + Sklearn. В конце лета 2014 года приняли принципиальное решение перейти на Spark, так как эксперименты показали, что мы получим 3-4 кратное повышение производительности на том же парке серверов.
Подробности
Всего голосов 21: ↑20 и ↓1+19
Комментарии21

Новые экспериментальные операторы Си++

Время на прочтение2 мин
Количество просмотров27K
Так часто приходится писать такой код:
x = (y + 1) % 10;
x = (y + 1) * (z - 1);
x = (double)(f(y) + 1);


Так как у операторов + и — такой низкий приоритет, то приходится постоянно заключать их в скобки, а это приводит к глубокому вложенному коду, который сложно понять.
В Visual Studio 2015 RC добавлена пара экспериментальных операторов, названных операторы–головастики. Они позволяют добавлять и вычитать единицу без необходимости прибегать к скобкам.
x = -~y % 10;
x = -~y * ~-z;
x = (double)-~f(y);

Подробности
Всего голосов 74: ↑54 и ↓20+34
Комментарии58

Технологии Semantic Web

Время на прочтение2 мин
Количество просмотров29K
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.

Смотреть первые две части
Всего голосов 30: ↑26 и ↓4+22
Комментарии44

Печальное состояние сисадмина в эпоху контейнеров

Время на прочтение3 мин
Количество просмотров81K
Системное администрирование сейчас в печальном состоянии. Оно в хаосе.

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

Проблема в контейнерах, готовых виртуальных машинах (prebuilt VMs), а также в невероятном хаосе, который они создают, потому что в их концепции не хватает «доверия» и «обновлений».

Давайте взглянем на Hadoop. Судя по всему, никто не знает как собирать Hadoop с нуля; это просто огромная куча из зависимостей, необходимых версий и утилит сборки.

Ни одна из «замечательных» утилит не собирается традиционной командой make. Каждая утилита поставляется со своим собственным не переносимым и не совместимым c чем-либо «методом дня» для сборки.

И так как никто не умеет собирать вещи с нуля, то все просто скачивают бинарники со случайных веб-сайтов, часто даже без проверки цифровой подписи.
Читать дальше →
Всего голосов 141: ↑130 и ↓11+119
Комментарии99

Как я сделал так, чтобы мои статьи просмотрели 6.2 миллиона человек и подписалось 144,920 людей?

Время на прочтение15 мин
Количество просмотров36K


Эту статью нельзя пропустить, так как любой компании в интернете нужно уметь вести блог. Это небольшое 15-минутное руководство поможет вам понять, как можно собирать миллионную аудиторию за копейки.
Итак, начинаем:
15-минутное руководство по ведению Блогов, Онлайн-Маркетингу и Развитию
Перейду сразу к делу, поскольку мне нужно многим поделиться.
Читать дальше →
Всего голосов 28: ↑21 и ↓7+14
Комментарии12

Использование TPL Dataflow для многопоточной компрессии файлов

Время на прочтение4 мин
Количество просмотров21K
На небольшом примере я расскажу как используя библиотеку TPL Dataflow можно решить довольно не тривиальную задачу многопоточной компрессии файлов в течении 15 минут.
Подробности
Всего голосов 28: ↑28 и ↓0+28
Комментарии5

Паттерны проектирования на платформе .NET

Время на прочтение3 мин
Количество просмотров48K
Привет Хаброжители!
У нас вышла новинка — «Паттерны проектирования на платформе .NET»

image

Цель данной книги — показать, как изменились паттерны проектирования за это время, как на них повлияло современное увлечение функциональным программированием, и объяснить, каким образом они используются в современных .NET-приложениях. В издании вы найдете подробное описание классических паттернов проектирования с особенностями их реализации на платформе .NET, а также примеры их использования в .NET Framework. Вы также изучите принципы проектирования, известные под аббревиатурой SOLID, и научитесь применять их при разработке собственных приложений.
Книга предназначена для профессиональных программистов, которые хотят изучить особенности классических принципов и паттернов программирования с примерами на языке C# и понять их роль в разработке современных приложений на платформе .NET.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии28

Барьеры памяти и неблокирующая синхронизация в .NET

Время на прочтение7 мин
Количество просмотров58K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии18

Принципы Remote: как организовать удалённую работу

Время на прочтение10 мин
Количество просмотров25K
В моих руках книга «Remote» от 37signals. Это книга о том, что такое удалённая работа, о том, как использовать её преимущества и как сгладить недостатки. Книга очень пригодится предпринимателям, которые думают о полном или частичном переходе на удалённую работу. Но книга также пригодится и, собственно, удалённым сотрудникам (или фрилансерам), желающим работать эффективно. Предыдущие мои статьи были по книгам Getting Real и Rework.


Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии15

C# для системного программирования

Время на прочтение9 мин
Количество просмотров33K
От переводчика. Недавно на Хабре была опубликована статья «Будущее C#», описывающая новые фичи, которые, скорее всего, попадут в C# 6.0. Мне, как программисту .NET, эта статья очень понравилась, и я решил поискать дополнительную информацию о том, куда идёт C#/.NET. И вот, как будто прислушиваясь к моим новогодним пожеланиям, 27 декабря Джо Даффи (Joe Duffy) опубликовал в своём блоге статью «C# for Systems Programming», рассказывающую об исследовательском проекте под его руководством, направленном на создание нового языка и платформы на основе C#/.NET. Приятно впечатлённый статьей, я решил опубликовать её несколько вольный перевод на Хабре.

Вот уже на протяжении 4-х лет моя команда занимается проектированием и реализацией набора расширений для C#, предназначенных для системного программирования. В конце концов, я решил описать мой опыт по данной работе в серии постов, и данный пост является первым в этой серии.

Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии19

Книги и образовательные ресурсы по алгоритмической торговле

Время на прочтение7 мин
Количество просмотров97K


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

В нашем сегодняшнем материале — подборка книг, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. Для достижения наибольшей эффективности материала, мы приводим советы экспертов, которые занимаются алгоритмической торговлей на российском и зарубежных фондовых рынках.
Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии22

Интенсивность важнее тщательности

Время на прочтение6 мин
Количество просмотров97K
Недавно я прочитал интересную книгу Алана Пиза “Ответы в вопросах”. Помимо основного содержания про то, как правильно нужно задавать вопросы, чтобы получить нужные вам ответы, в книге есть вступление, в котором Алан рассказывает о своем пути к успеху. Уже с десяти лет он начал торговать резиновыми губками, а в восемнадцать лет стал лучшим агентом по продажам в компании по реализации постельного белья и кухонных принадлежностей. Неудивительно, что с таким богатым опытом он умел общаться с людьми и научился понимать, когда люди заинтересованы в его товаре, а когда хотят, чтобы он поскорее ушел.

Изучив жесты и позы клиентов, Алан Пиз написал книгу “Язык телодвижений”, которая разошлась сотней миллионов экземпляров и была переведена на 36 языков. В книге рассказывается о всевозможных жестах, позах, личном пространстве, о разнице в жестах различных культур и о том, как правильно пользоваться этими знаниями.

Когда Алану было одиннадцать лет, он продавал губки, чтобы собрать деньги на строительство клуба для скаутского отряда. Скаут-мастер, мудрый пожилой человек, поделился с Аланом секретом, который был назван Аланом “закон распределения вероятностей”. Это правило дословно:

Удача — это игра, чем дольше играешь, тем больше выигрываешь. И чем больше выигрываешь, тем более успешно играешь.



Читать дальше →
Всего голосов 112: ↑86 и ↓26+60
Комментарии53

Как перевести сайт целиком на постоянный HTTPS для всех

Время на прочтение6 мин
Количество просмотров44K

Шифруем всё подряд


Эра незашифрованного веба проходит, и это хорошо. В этой инструкции мы предполагаем, что на вашем сервере работает веб-сервер Nginx. И теперь мы сделаем так, чтобы все посетители сайта пользовались исключительно протоколом HTTPS. Кроме этого мы включим HSTS – это «HTTP Strict Transport Security», когда сайт не только поддерживает HTTPS, но и настаивает на его использовании.

Для этого есть множество способов, но я опишу метод под названием «HTTPS termination». Иначе говоря, мы поставим перед веб-сервером обратный прокси, который и будет обеспечивать HTTPS. Это получается проще и гибче, чем настраивать HTTPS только при помощи возможностей веб-сервера. Возможно, вам покажется контринтуитивным, что добавление ещё одного приложения в стек упростит вашу жизнь – но это действительно так.

Уточним, что данный рецепт подходит для серверов на базе Linux, на которых установлен Nginx.

То, что будет работать прежде всех остальных приложений в стопке – это HAProxy. Это в первую очередь приложение для балансировки – он умеет распределять приходящие запросы между разными физическими серверами. Много высоконагруженных сайтов используют его в этом качестве (тот же reddit), но в последней версии у него появилась возможность выполнять SSL termination. Он умеет устанавливать HTTPS-соединения от имени сервера.

Поэтому мы поставим HAProxy, скормим ему наши сертификаты SSL/TLS, поручим перенапрявлять все HTTP запросы на HTTPS, и покажем ему уже сам веб-сервер в качестве бэкенда.
Читать дальше →
Всего голосов 63: ↑49 и ↓14+35
Комментарии38

Реактивный мессенджер, или CQRS и ES вместе с Akka и Scala

Время на прочтение21 мин
Количество просмотров23K
В последнее время мы часто слышим о реактивном программировании и видим различные баззворды: message-driven архитектура, event-sourcing, CQRS. К сожалению, на Хабре об этом пишут довольно мало, поэтому я решил исправить ситуацию и поделиться своими знаниями со всеми желающими.

В этой статье мы узнаем об основных особенностях реактивных приложений, рассмотрим, как паттерны CQRS и EventSourcing помогут нам в их создании, а чтобы не было скучно, мы с вами шаг за шагом сделаем свой мессенджер с вебсокетом и акторами, соответствующий всем канонам реактивного программирования. Для реализации всего этого добра, мы будем использовать замечательный язык Scala вместе с не менее превосходной библиотекой Akkа, реализующей модель акторов. Еще, мы будем использовать Play Framework для написания веб-составляющей нашего приложения. Итак, приступим.

Статья предназначена для тех, кто уже знаком со Scala и слышал о модели акторов. Все остальные тоже приглашаются к прочтению, принципы реактивного программирования можно применять вне зависимости от языка и фреймворка.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии33

NFX — Ультраэффективная Бинарная Сериализация в CLR

Время на прочтение8 мин
Количество просмотров21K

Требования


В данной статье мы рассмотрим задачи переноса сложных объектов между процессами и машинами. В наших системах было много мест, где требовалось перемещать большое кол-во бизнес объектов различной структуры, например:

  • самозацикленные графы объектов (деревья с back-references)
  • массивы структур (value types)
  • классы/структуры с readonly полями
  • инстансы существующих .Net коллекций (Dictionary, List), которые внутренне используют custom-сериализацию
  • большое кол-во инстансов типов, специализированных для конкретной задачи


Речь пойдёт о трёх аспектах, которые очень важны в распределённых кластерных системах:

  • скорость сериализации/десериализации
  • объём объектов в сериализированном виде
  • возможность использовать существующие объекты без надобности “украшения” этих объектов и их полей вспомогательными атрибутами для сериализации

Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии40

Hadoop: быть или не быть?

Время на прочтение7 мин
Количество просмотров48K
Здравствуйте, уважаемые читатели!

Некоторое время назад у нас вышел перевод фундаментальной орейлевской книги о фреймворке Hadoop:



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

Поэтому мы решили опубликовать перевод статьи Ананда Кришнасвами, появившейся в блоге Thoughtworks еще в 2013 году, где автор пытается проанализировать, в каких случаях уместно использовать Hadoop, а в каких — излишне.

Надеемся, что материал покажется интересным, вызовет полемику, а Вы поделитесь Вашими впечатлениями о работе с Hadoop и поучаствуете в опросе.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии7

Микросервисы (Microservices)

Время на прочтение22 мин
Количество просмотров687K
От переводчика: некоторые скорее всего уже читали этот титанический труд от Мартина Фаулера и его коллеги Джеймса Льюиса, но я все же решил сделать перевод этой статьи. Тренд микросервисов набирает обороты в мире enterprise разработки, и эта статья является ценнейшим источником знаний, по сути выжимкой существующего опыта работы с ними.

Термин «Microservice Architecture» получил распространение в последние несколько лет как описание способа дизайна приложений в виде набора независимо развертываемых сервисов. В то время как нет точного описания этого архитектурного стиля, существует некий общий набор характеристик: организация сервисов вокруг бизнес-потребностей, автоматическое развертывание, перенос логики от шины сообщений к приемникам (endpoints) и децентрализованный контроль над языками и данными.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии45

Async/await в C#: подводные камни

Время на прочтение6 мин
Количество просмотров104K
Я бы хотел обсудить подводные камни, которые наиболее часто встречаются при работе с фичей async/await в C#, а также написать про то, как их можно обойти.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии46

Информация

В рейтинге
1 881-й
Откуда
Stockholms Län, Швеция
Зарегистрирован
Активность