Word2vec является практически единственным алгоритмом deep learning, который сравнительно легко можно запустить на обычном ПК (а не на видеокартах) и который строит распределенное представление слов за приемлемое время, по крайней мере так считают на Kaggle. Прочитав здесь про то, какие фокусы можно делать с тренированной моделью, я понял, что такую штуку просто обязан попробовать. Проблема только одна, я преимущественно работаю на языке R, а вот официальную реализацию word2vec под R мне найти не удалось, думаю её просто нет.
Dan @excoder
Making good things happen
Сериал: Big Data — как мечта. 9-я серия: Почему IBM был вынужден купить «Алхимиков» за $100млн
4 мин
4.3KRecovery Mode
В предыдущих сериях: Big Data — это не просто много данных. Big Data — процесс с положительной обратной связью. «Кнопка Обамы» как воплощение rtBD&A. Философия развития Big Data. В этой серии поговорим о лингво-аналитике высокоскоростных потоков неструктурированных текстов и сообщений соцмедиа и представим «Эврику» — наш ответ «Алхимикам».
Интернет, в своем нынешнем восприятии обществом, это связанный набор сообщений: личной переписки в мессенджерах, ссылки между статьями в СМИ, обсуждений в блогах, игровые чаты, тематические сериалы на Хабре, или, как преобразилось в мировоззрении новых поколений — ссылки на ответы поисковика после набора запроса «Чем сегодня заняться?»
Если приглядеться, то основа основ: Связи и Тематики. Про аналитику «связей» говорить не будем (это к АНБ, на чьи возможности по электронной слежке сегодня отказался покушаться даже «всемогущий Сенат США»). А вот Тематическая аналитика (что недавно получило свое название — Brand Analytics — в пресс-релизе между Facebook и DataSift, а в России существует уже 3 года в виде названия проекта) и связанные с ней разнообразные вкусности — прекрасная тема (!) для новой серии.
Интернет, в своем нынешнем восприятии обществом, это связанный набор сообщений: личной переписки в мессенджерах, ссылки между статьями в СМИ, обсуждений в блогах, игровые чаты, тематические сериалы на Хабре, или, как преобразилось в мировоззрении новых поколений — ссылки на ответы поисковика после набора запроса «Чем сегодня заняться?»
Если приглядеться, то основа основ: Связи и Тематики. Про аналитику «связей» говорить не будем (это к АНБ, на чьи возможности по электронной слежке сегодня отказался покушаться даже «всемогущий Сенат США»). А вот Тематическая аналитика (что недавно получило свое название — Brand Analytics — в пресс-релизе между Facebook и DataSift, а в России существует уже 3 года в виде названия проекта) и связанные с ней разнообразные вкусности — прекрасная тема (!) для новой серии.
+3
Анализ данных на Scala. Считаем корреляцию 21-го века
8 мин
22K![](https://habrastorage.org/files/011/469/e83/011469e830514f2584d20474bc88a8e5.png)
Очень важно выбрать правильный инструмент для анализа данных. На форумах Kaggle.com, где проводятся международные соревнования по Data Science, часто спрашивают, какой инструмент лучше. Первые строчки популярноcти занимают R и Python. В статье мы расскажем про альтернативный стек технологий анализа данных, сделанный на основе языка программирования Scala и платформы распределенных вычислений Spark.
Как мы пришли к этому? В Retail Rocket мы много занимаемся машинным обучением на очень больших массивах данных. Раньше для разработки прототипов мы использовали связку IPython + Pyhs2 (hive драйвер для Python) + Pandas + Sklearn. В конце лета 2014 года приняли принципиальное решение перейти на Spark, так как эксперименты показали, что мы получим 3-4 кратное повышение производительности на том же парке серверов.
+19
Новые экспериментальные операторы Си++
2 мин
27KПеревод
Так часто приходится писать такой код:
Так как у операторов + и — такой низкий приоритет, то приходится постоянно заключать их в скобки, а это приводит к глубокому вложенному коду, который сложно понять.
В Visual Studio 2015 RC добавлена пара экспериментальных операторов, названных операторы–головастики. Они позволяют добавлять и вычитать единицу без необходимости прибегать к скобкам.
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);
+34
Технологии Semantic Web
2 мин
29KТуториал
Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.
![](https://habrastorage.org/files/7c0/7dd/608/7c07dd608b244488be3b8adbe650cc62.png)
![](https://habrastorage.org/files/7c0/7dd/608/7c07dd608b244488be3b8adbe650cc62.png)
+22
Печальное состояние сисадмина в эпоху контейнеров
3 мин
81KПеревод
Системное администрирование сейчас в печальном состоянии. Оно в хаосе.
Я не говорю про олдскульных админов, они знают как управлять системами и контролировать обновления.
Проблема в контейнерах, готовых виртуальных машинах (prebuilt VMs), а также в невероятном хаосе, который они создают, потому что в их концепции не хватает «доверия» и «обновлений».
Давайте взглянем на Hadoop. Судя по всему, никто не знает как собирать Hadoop с нуля; это просто огромная куча из зависимостей, необходимых версий и утилит сборки.
Ни одна из «замечательных» утилит не собирается традиционной командой make. Каждая утилита поставляется со своим собственным не переносимым и не совместимым c чем-либо «методом дня» для сборки.
И так как никто не умеет собирать вещи с нуля, то все просто скачивают бинарники со случайных веб-сайтов, часто даже без проверки цифровой подписи.
Я не говорю про олдскульных админов, они знают как управлять системами и контролировать обновления.
Проблема в контейнерах, готовых виртуальных машинах (prebuilt VMs), а также в невероятном хаосе, который они создают, потому что в их концепции не хватает «доверия» и «обновлений».
Давайте взглянем на Hadoop. Судя по всему, никто не знает как собирать Hadoop с нуля; это просто огромная куча из зависимостей, необходимых версий и утилит сборки.
Ни одна из «замечательных» утилит не собирается традиционной командой make. Каждая утилита поставляется со своим собственным не переносимым и не совместимым c чем-либо «методом дня» для сборки.
И так как никто не умеет собирать вещи с нуля, то все просто скачивают бинарники со случайных веб-сайтов, часто даже без проверки цифровой подписи.
+119
Как я сделал так, чтобы мои статьи просмотрели 6.2 миллиона человек и подписалось 144,920 людей?
15 мин
36KПеревод
![](https://habrastorage.org/files/802/122/39d/80212239d2344c6a9b0356f163f28bb3.jpg)
Эту статью нельзя пропустить, так как любой компании в интернете нужно уметь вести блог. Это небольшое 15-минутное руководство поможет вам понять, как можно собирать миллионную аудиторию за копейки.
Итак, начинаем:
15-минутное руководство по ведению Блогов, Онлайн-Маркетингу и Развитию
Перейду сразу к делу, поскольку мне нужно многим поделиться.
+14
Использование TPL Dataflow для многопоточной компрессии файлов
4 мин
21KНа небольшом примере я расскажу как используя библиотеку TPL Dataflow можно решить довольно не тривиальную задачу многопоточной компрессии файлов в течении 15 минут.
+28
Паттерны проектирования на платформе .NET
3 мин
48KПривет Хаброжители!
У нас вышла новинка — «Паттерны проектирования на платформе .NET»
![image](https://habrastorage.org/files/f2f/6c8/0ae/f2f6c80ae47f432994d4dbe155161943.jpg)
Цель данной книги — показать, как изменились паттерны проектирования за это время, как на них повлияло современное увлечение функциональным программированием, и объяснить, каким образом они используются в современных .NET-приложениях. В издании вы найдете подробное описание классических паттернов проектирования с особенностями их реализации на платформе .NET, а также примеры их использования в .NET Framework. Вы также изучите принципы проектирования, известные под аббревиатурой SOLID, и научитесь применять их при разработке собственных приложений.
Книга предназначена для профессиональных программистов, которые хотят изучить особенности классических принципов и паттернов программирования с примерами на языке C# и понять их роль в разработке современных приложений на платформе .NET.
У нас вышла новинка — «Паттерны проектирования на платформе .NET»
![image](https://habrastorage.org/files/f2f/6c8/0ae/f2f6c80ae47f432994d4dbe155161943.jpg)
Цель данной книги — показать, как изменились паттерны проектирования за это время, как на них повлияло современное увлечение функциональным программированием, и объяснить, каким образом они используются в современных .NET-приложениях. В издании вы найдете подробное описание классических паттернов проектирования с особенностями их реализации на платформе .NET, а также примеры их использования в .NET Framework. Вы также изучите принципы проектирования, известные под аббревиатурой SOLID, и научитесь применять их при разработке собственных приложений.
Книга предназначена для профессиональных программистов, которые хотят изучить особенности классических принципов и паттернов программирования с примерами на языке C# и понять их роль в разработке современных приложений на платформе .NET.
+23
Барьеры памяти и неблокирующая синхронизация в .NET
7 мин
58KВведение
В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
+61
Принципы Remote: как организовать удалённую работу
10 мин
25KВ моих руках книга «Remote» от 37signals. Это книга о том, что такое удалённая работа, о том, как использовать её преимущества и как сгладить недостатки. Книга очень пригодится предпринимателям, которые думают о полном или частичном переходе на удалённую работу. Но книга также пригодится и, собственно, удалённым сотрудникам (или фрилансерам), желающим работать эффективно. Предыдущие мои статьи были по книгам Getting Real и Rework.
![](https://habrastorage.org/files/039/010/cfb/039010cfbd9b44ca95bb82e303d2c37c.png)
![](https://habrastorage.org/files/039/010/cfb/039010cfbd9b44ca95bb82e303d2c37c.png)
+13
C# для системного программирования
9 мин
33KПеревод
От переводчика. Недавно на Хабре была опубликована статья «Будущее C#», описывающая новые фичи, которые, скорее всего, попадут в C# 6.0. Мне, как программисту .NET, эта статья очень понравилась, и я решил поискать дополнительную информацию о том, куда идёт C#/.NET. И вот, как будто прислушиваясь к моим новогодним пожеланиям, 27 декабря Джо Даффи (Joe Duffy) опубликовал в своём блоге статью «C# for Systems Programming», рассказывающую об исследовательском проекте под его руководством, направленном на создание нового языка и платформы на основе C#/.NET. Приятно впечатлённый статьей, я решил опубликовать её несколько вольный перевод на Хабре.
![](https://habrastorage.org/getpro/habr/post_images/79c/2de/f7a/79c2def7a39835eb12156c3feeece0e5.jpg)
Вот уже на протяжении 4-х лет моя команда занимается проектированием и реализацией набора расширений для C#, предназначенных для системного программирования. В конце концов, я решил описать мой опыт по данной работе в серии постов, и данный пост является первым в этой серии.
![](https://habrastorage.org/getpro/habr/post_images/79c/2de/f7a/79c2def7a39835eb12156c3feeece0e5.jpg)
Вот уже на протяжении 4-х лет моя команда занимается проектированием и реализацией набора расширений для C#, предназначенных для системного программирования. В конце концов, я решил описать мой опыт по данной работе в серии постов, и данный пост является первым в этой серии.
+23
Книги и образовательные ресурсы по алгоритмической торговле
7 мин
97K![](https://habrastorage.org/files/557/06f/1ed/55706f1ed7604f93b535a22533bc4be4.jpg)
Алгоритмическая торговля — интересная область, которая позволяет ИТ-специалистам применить свои технические знания на фондовом рынке и извлечь из этого ту или иную выгоду. В нашем блоге мы неоднократно рассматривали различные темы, связанные с созданием торговых роботов, но недостаточно внимания уделяли теоретическим вопросам, с которыми сталкиваются начинающие трейдеры.
В нашем сегодняшнем материале — подборка книг, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. Для достижения наибольшей эффективности материала, мы приводим советы экспертов, которые занимаются алгоритмической торговлей на российском и зарубежных фондовых рынках.
+33
Интенсивность важнее тщательности
6 мин
97KНедавно я прочитал интересную книгу Алана Пиза “Ответы в вопросах”. Помимо основного содержания про то, как правильно нужно задавать вопросы, чтобы получить нужные вам ответы, в книге есть вступление, в котором Алан рассказывает о своем пути к успеху. Уже с десяти лет он начал торговать резиновыми губками, а в восемнадцать лет стал лучшим агентом по продажам в компании по реализации постельного белья и кухонных принадлежностей. Неудивительно, что с таким богатым опытом он умел общаться с людьми и научился понимать, когда люди заинтересованы в его товаре, а когда хотят, чтобы он поскорее ушел.
Изучив жесты и позы клиентов, Алан Пиз написал книгу “Язык телодвижений”, которая разошлась сотней миллионов экземпляров и была переведена на 36 языков. В книге рассказывается о всевозможных жестах, позах, личном пространстве, о разнице в жестах различных культур и о том, как правильно пользоваться этими знаниями.
Когда Алану было одиннадцать лет, он продавал губки, чтобы собрать деньги на строительство клуба для скаутского отряда. Скаут-мастер, мудрый пожилой человек, поделился с Аланом секретом, который был назван Аланом “закон распределения вероятностей”. Это правило дословно:
![](https://habrastorage.org/storage2/50e/c08/cf2/50ec08cf22e9c6df538e4bc90df49872.png)
Изучив жесты и позы клиентов, Алан Пиз написал книгу “Язык телодвижений”, которая разошлась сотней миллионов экземпляров и была переведена на 36 языков. В книге рассказывается о всевозможных жестах, позах, личном пространстве, о разнице в жестах различных культур и о том, как правильно пользоваться этими знаниями.
Когда Алану было одиннадцать лет, он продавал губки, чтобы собрать деньги на строительство клуба для скаутского отряда. Скаут-мастер, мудрый пожилой человек, поделился с Аланом секретом, который был назван Аланом “закон распределения вероятностей”. Это правило дословно:
Удача — это игра, чем дольше играешь, тем больше выигрываешь. И чем больше выигрываешь, тем более успешно играешь.
![](https://habrastorage.org/storage2/50e/c08/cf2/50ec08cf22e9c6df538e4bc90df49872.png)
+60
Как перевести сайт целиком на постоянный 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, и покажем ему уже сам веб-сервер в качестве бэкенда.
+35
Реактивный мессенджер, или CQRS и ES вместе с Akka и Scala
21 мин
23K![](https://habrastorage.org/getpro/habr/post_images/a9a/e33/f74/a9ae33f74e48115db1befc5d1185f328.jpg)
В этой статье мы узнаем об основных особенностях реактивных приложений, рассмотрим, как паттерны CQRS и EventSourcing помогут нам в их создании, а чтобы не было скучно, мы с вами шаг за шагом сделаем свой мессенджер с вебсокетом и акторами, соответствующий всем канонам реактивного программирования. Для реализации всего этого добра, мы будем использовать замечательный язык Scala вместе с не менее превосходной библиотекой Akkа, реализующей модель акторов. Еще, мы будем использовать Play Framework для написания веб-составляющей нашего приложения. Итак, приступим.
Статья предназначена для тех, кто уже знаком со Scala и слышал о модели акторов. Все остальные тоже приглашаются к прочтению, принципы реактивного программирования можно применять вне зависимости от языка и фреймворка.
+20
NFX — Ультраэффективная Бинарная Сериализация в CLR
8 мин
21KТребования
В данной статье мы рассмотрим задачи переноса сложных объектов между процессами и машинами. В наших системах было много мест, где требовалось перемещать большое кол-во бизнес объектов различной структуры, например:
- самозацикленные графы объектов (деревья с back-references)
- массивы структур (value types)
- классы/структуры с readonly полями
- инстансы существующих .Net коллекций (Dictionary, List), которые внутренне используют custom-сериализацию
- большое кол-во инстансов типов, специализированных для конкретной задачи
Речь пойдёт о трёх аспектах, которые очень важны в распределённых кластерных системах:
- скорость сериализации/десериализации
- объём объектов в сериализированном виде
- возможность использовать существующие объекты без надобности “украшения” этих объектов и их полей вспомогательными атрибутами для сериализации
+14
Hadoop: быть или не быть?
7 мин
48KПеревод
Здравствуйте, уважаемые читатели!
Некоторое время назад у нас вышел перевод фундаментальной орейлевской книги о фреймворке Hadoop:
![](https://habrastorage.org/files/768/945/619/768945619ee34c5786e0b5e71914dd6f.jpg)
В настоящее время редакция оказалась перед непростым выбором, перевести ли новое 4-е издание этой книги, либо допечатать уже имеющееся.
Поэтому мы решили опубликовать перевод статьи Ананда Кришнасвами, появившейся в блоге Thoughtworks еще в 2013 году, где автор пытается проанализировать, в каких случаях уместно использовать Hadoop, а в каких — излишне.
Надеемся, что материал покажется интересным, вызовет полемику, а Вы поделитесь Вашими впечатлениями о работе с Hadoop и поучаствуете в опросе.
Некоторое время назад у нас вышел перевод фундаментальной орейлевской книги о фреймворке Hadoop:
![](https://habrastorage.org/files/768/945/619/768945619ee34c5786e0b5e71914dd6f.jpg)
В настоящее время редакция оказалась перед непростым выбором, перевести ли новое 4-е издание этой книги, либо допечатать уже имеющееся.
Поэтому мы решили опубликовать перевод статьи Ананда Кришнасвами, появившейся в блоге Thoughtworks еще в 2013 году, где автор пытается проанализировать, в каких случаях уместно использовать Hadoop, а в каких — излишне.
Надеемся, что материал покажется интересным, вызовет полемику, а Вы поделитесь Вашими впечатлениями о работе с Hadoop и поучаствуете в опросе.
+14
Микросервисы (Microservices)
22 мин
687KОт переводчика: некоторые скорее всего уже читали этот титанический труд от Мартина Фаулера и его коллеги Джеймса Льюиса, но я все же решил сделать перевод этой статьи. Тренд микросервисов набирает обороты в мире enterprise разработки, и эта статья является ценнейшим источником знаний, по сути выжимкой существующего опыта работы с ними.
Термин «Microservice Architecture» получил распространение в последние несколько лет как описание способа дизайна приложений в виде набора независимо развертываемых сервисов. В то время как нет точного описания этого архитектурного стиля, существует некий общий набор характеристик: организация сервисов вокруг бизнес-потребностей, автоматическое развертывание, перенос логики от шины сообщений к приемникам (endpoints) и децентрализованный контроль над языками и данными.
Термин «Microservice Architecture» получил распространение в последние несколько лет как описание способа дизайна приложений в виде набора независимо развертываемых сервисов. В то время как нет точного описания этого архитектурного стиля, существует некий общий набор характеристик: организация сервисов вокруг бизнес-потребностей, автоматическое развертывание, перенос логики от шины сообщений к приемникам (endpoints) и децентрализованный контроль над языками и данными.
+29
Async/await в C#: подводные камни
6 мин
104KПеревод
Я бы хотел обсудить подводные камни, которые наиболее часто встречаются при работе с фичей async/await в C#, а также написать про то, как их можно обойти.
+34
Информация
- В рейтинге
- 1 881-й
- Откуда
- Stockholms Län, Швеция
- Зарегистрирован
- Активность