Search
Write a publication
Pull to refresh
198
0
Сергей Новоградцев @snipsnap

Java разработчик

Send message

Потоковая обработка данных при помощи Akka

Reading time5 min
Views40K
Привет, Хабр! Все привыкли ассоциировать обработку больших данных с Hadoop (или Spark), которые реализуют парадигму MapReduce (или его расширения). В этой статье я расскажу о недостатках MapReduce, о том, почему мы приняли решение отказываться от MapReduce, и как мы приспособили Akka + Akka Cluster на замену MapReduce.


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

Go как язык для обучения программированию

Reading time5 min
Views29K
tl;dr: Go достаточно многословный и строгий язык программирования с очень предсказуемой и стремительной кривой обучения, что делает его крайне удачной технологией для обучения программированию новоприбывших!

Я только приехал из штатов, после Google Code-In 2014 Grand Prize Trip, отдохнувший и веселый. Какое-то время думал написать отчет о том, чем призеры там занимались, как нас приняли в Mountain View и обо всем этом, но в какой-то момент понял, что все это совершенно бесполезно. Совсем недавно я по воле случая должен был помочь своему товарищу с домашкой по информатике (там было что-то вроде selection sort). Реализация требовалась на паскале, а я паскаль знаю очень плохо, как впрочем и другие неактуальные, по большей мере, языки программирования, вроде Ada.

В меня ударила молния и укусил гофер, после чего мое тело мутировало в какую-то кунг фу Go хренотень. Иными словами, я задумался о возможном потенциале моего любимчика среди новых технологий, Go, в качестве языка для обучения программированию новоприбывших (читай: школьников). Мне кажется, у Go есть все, что в принципе может быть нужно подобной программе и даже чуточку больше (например, в школе могли бы затрагивать тему параллельного, ни в коем случае не concurrent, программирования, которую не затрагивают, просто потому что FPS вообще не умеет гонять два куска кода одновременно). Под катом, собственно, мои мысли на этот счет. Кстати, пользуясь случаем, хочу передать привет divan0! Большое спасибо за твою просветительскую деятельность в тематическом хабе: Go действительно нуждается в огласке, ведь много людей до сих пор считают, что это какая-то страшная поделка уровня Plan9 из 80-х и к тому же, без обобщенного программирования (в каждой шутке есть доля шутки), а ты рассказываешь людям очень правильные вещи на понятном для них языке! Никакого дисклаймера не будет, но я настоятельно не рекоммендую воспринимать содержимое статьи абсолютно серьезно, ведь я человек, у которого есть целых два гофера: синий и розовый!
Читать дальше →

Организация «чистого» завершения приложений на Go

Reading time6 min
Views30K


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

TL;DR: github.com/xlab/closer GoDoc
Читать дальше →

5 экспериментов по визуализации данных

Reading time7 min
Views30K
Этой весной мы в лаборатории экспериментировали с самыми разными данными: характеристиками танков в игре World of Tanks, статистикой правильных и неправильных ответов на тренажёре ПДД, температурными рекордами в городах России, нарушениями в работе маршрутных такси Нижнего Новгорода, историей изменения цен на авиабилеты. Результатом экспериментов стали 5 наглядных интерактивных визуализаций:



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

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

Датчики и микроконтроллеры. Часть 3. Измеряем ток и напряжение

Reading time12 min
Views338K

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

Содержание


Часть 1. Мат. часть. В ней рассматривается датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассматриваются статические и динамические характеристики датчика.
Часть 2. Датчики климат-контроля. В ней рассматриваются особенности работы с датчиками температуры, влажности, давления и газового состава
Часть 3. Датчики электрических величин. В этой части я рассмотрю датчики тока и напряжения
Читать дальше →

Необычные летающие роботы на Unmanned Systems 2015

Reading time4 min
Views15K
image

На конференции в Атланте, посвященной дронам, все искали новинки в дизайне БПЛА. Ниже представлены несколько самых интересных инновационных и диковинных дронов, которые там были.
Читать дальше →

Почему Go обречён на успех (обновлено)

Reading time6 min
Views43K
TL;DR Golang был разработан специально для того, чтобы расцвести в больших проектах, которые пишут большие группы программистов разных уровней, и в мире нет такой группы больше, чем open-source сообщество.



Абсолютно всё в жизни основано на компромиссах — первый закон термодинамики доказывает это, и языки программирования тут не исключение. Компромиссы в Go не уникальны, но именно благодаря их удачному сочетанию, Go и случился. Законы физики также утверждают, что каждое действие порождает противодействие, и, с ростом популярности, также возрастает количество критики в адрес языка, иногда обоснованной, иногда не очень. Позвольте мне объяснить, почему я считаю, что эта критика не важна, и Go обречён на успех несмотря ни на что.
Читать дальше →

Примеры использования MongoDB в e-commerce (часть 2)

Reading time25 min
Views29K


[ Первая часть ]

В этом посте будет то, что не поместилось в первую часть. Это некоторые операторы, которые есть в aggregation framework и достаточно вольный перевод трех статей из раздела экоситема на сайте со справкой к MongoDB, описывающих некоторые случаи применения для интернет-коммерции.

Случаи использования разделены там на восемь статей, которые условно можно разделить на три группы. Мне показались самыми интересными для перевода три материала, связанные с e-commerce.

  1. Операторы в aggregation framework
  2. Каталог продуктов
  3. Корзина и управления остатками на складе
  4. Иерархия категорий

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

Олимпиада по программированию в LabVIEW. Решение команды-победительницы

Reading time8 min
Views16K
Компьютерные игры про танки являются одними из самых популярных в game-индустрии. История подобных игр насчитывает десятки лет, но популярность их не угасает. Тема танков и танковых сражений получает развитие не только в компьютерных играх, но и является предметом соревновательного процесса в программировании. Например, в 2012 году проходили соревнования по программированию Russian AI Cup — CodeTanks. Участникам предлагалось разработать искусственный интеллект управления танком. Спустя несколько лет подобное соревнование повторилось. Организатором выступила компания National Instruments, которая ежегодно проводит олимпиады по программированию в среде LabVIEW среди студентов и молодых ученых. Участникам олимпиады 2015 года предлагалось разработать алгоритм для автономного управления танком средствами LabVIEW (представление об этой среде программирования можете получить по ссылке: «LabVIEW — первое знакомство»). Данная статья посвящена описанию алгоритма танка-победителя от команды LabVIEWPortal.
Читать дальше →

Docker. Best practices на примере образа Oracle xe 11g

Reading time5 min
Views37K


Docker за последнее время стал очень популярен за счет своей производительности, отказоустойчивости и, главное, простоты.

Сегодня можно найти тысячи образов в hub.docker.com. За счет своей простоты в создании образов, буквально за пол часа можно начать вносить свой вклад.

Но многие забывают о best practices, и за счет этого docker hub наполнился огромным количеством не самых лучших образов.

В этой статье я хочу описать на сколько просто и полезно создавать образы используя Best Practices на примере.
Читать дальше →

LastPass взломан, меняйте ваш мастер-пароль

Reading time1 min
Views70K


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

Oracle Database In-Memory

Reading time3 min
Views12K
Данная статья подготовлена Алексеем Струченко, начальником отдела оптимизации СУБД и приложений компании «Инфосистемы Джет»

Вышедшая в июле 2014 года опция Database In-Memory является самой ожидаемой и самой обсуждаемой инновацией Oracle в семействе продуктов Oracle Database. За последние несколько месяцев сотрудники компании Oracle регулярно знакомили российское оракловое сообщество с особенностями новой опции.

На Oracle Day 2014 в Москве мне выпала честь дополнить теоретическую презентацию Игоря Мельникова (Oracle) по Database In-Memory практической демонстрацией. Эту демонстрацию в полном объеме показать не удалось – оказалось не так-то просто подключить проектор к ноутбуку, соединенному с демонстрационной базой. Поэтому я решил воспользоваться трибуной Habrahabr и все-таки донести суть демонстрации Database In-Memory до сообщества.
Читать дальше →

Почему Go превосходит посредственность

Reading time3 min
Views29K
В апреле 2001 Пол Грэм написал статью «Превосходя посредственность» («Beating the averages» — ориг).

Этот пост о том, почему Go, следуя статье, и есть то самое секретное оружие, которое должно быть у каждого стартапа.

Секретное оружие


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

Процитированный параграф описывает то, насколько важна большая скорость разработки для стартапа. И это логично, ведь стартапы всегда ограничены во времени и деньгах.
И достижение высокой продуктивности это именно то, где Go блистает.
Читать дальше →

Автоматизированное создание диаграмм в xkcd-стиле: из серьёзного в забавное

Reading time5 min
Views21K

Перевод поста Виталия Каурова "Automating xkcd Diagrams: Transforming Serious to Funny".
Скачать файл, содержащий текст статьи, интерактивные модели и весь код, приведенный в статье, можно здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Утром в понедельник я наткнулся на интересный вопрос, опубликованный в Mathematica Stack Exchange, с нехитрым заголовком — "создание графиков в xkcd-стиле". Из-за популярности веб-комиксов xkcd Рэндалла Манро (Randall Munroe), я ожидал, что люди добавят себе несколько закладок этой страницы и с десяток up-vote. Тогда я ещё не знал, как всё обернётся. Сложно предсказать вирусность какого-то мема, однако если удалось создать такой, то весьма здорово наблюдать, как растёт его популярность и как он распространяется в интернете. Через два дня этот пост имел уже более 100 тысяч просмотров, двести up-vote и 150 закладок; стали возникать ответы и схожие посты в других разделах Stack Exchange, в Twitter разразился небольшой ураган по этому поводу, появлялись обсуждения в Hacker News и reddit. Тут я приведу оригинал поста Amatya с примером изображения в xkcd-стиле:

«Я получил электронное письмо, на которое я захотел ответить с графиком в xkcd-стиле, но я не мог справиться с этим. Всё, что я рисовал, выглядело как надо, однако я не мог придумать такой команды для Plot Legends, чтобы сделать фрагменты текста плавающими. Может, есть какие-то идеи, как можно было бы создать графики в xkcd-стиле? Когда всё выглядит рисованным от руки и неточным. Думаю, рисование таких странных кривых в Mathematica должно быть трудным в реализации.»

Walking back to my front door at night

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

Python: вещи, которых вы могли не знать

Reading time8 min
Views314K
Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать далее

Литье пластмасс в силикон — доступное мелкосерийное производство в домашних условиях

Reading time8 min
Views361K
Многие из тех, кто печатает на 3D-принтере сталкиваются или с необходимостью получить партию моделей в короткие сроки, или скопировать удачно получившуюся деталь, или получить изделия с прочностными характеристиками, превосходящими таковые у пластиков для домашней 3d-печати.

3D-принтер далеко не всегда способен выполнить такие задачи, но отлично подойдет для создания единственного образца, или мастер-модели. А дальше на помощь нам приходят материалы производства компании Smooth-On, наверное, самого популярного производителя материалов холодного отверждения.

image

В этом обзоре мы сравним самые основные и популярные силиконы, полиуретаны и добавки к ним, кратко посмотрим на основные способы создания форм и изделий, подумаем, где это может найти применение и, наконец, создадим свою силиконовую форму и модель.
Перед написанием этого поста мы прошли трехдневный тренинг у официального дилера Smooth-On в России, чтобы разобраться во всех тонкостях литья в силикон.
Читать дальше →

Обработка русских текстовых данных в Azure Machine Learning

Reading time2 min
Views8.9K
Буквально только что закончился хакатон компании Microsoft по Azure ML. В процессе решения одной из задач потребовалась обработка русскоязычных текстовых данных, причём желательно внутри системы. В итоге, потратив ощутимое время на поиск решения, хочу им поделиться. Надеюсь, что это поможет кому-то сэкономить время и не биться головой в стенку зря.
Читать дальше →

Popcorn Time для порно

Reading time2 min
Views46K


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

Из истории развития технологий известно, что порноиндустрия традиционно находится на переднем краю научно-технического прогресса и неизменно в числе первых пробует все технические новинки, от онлайн-платежей до медиастриминга. Так вышло и с инновационной P2P-системой распространения видеофильмов Popcorn Time, которая предусматривает передачу фильмов по протоколу BitTorrent с возможностью почти сразу начать просмотр любого фильма в каталоге. Ею заинтересовалась порноиндустрия.
Читать дальше →

Предсказание курса акций с использованием больших данных и машинного обучения

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



Краткий обзор

Этот пост основан на статье, носящей название «Моделирование динамики высокочастотного портфеля лимитных ордеров методом опорных векторов». Грубо говоря, я ступенька за ступенькой реализую идеи, представленные в этой статье, используя Spark и Spark MLLib. Авторы используют сокращенные примеры, я же буду использовать полный журнал ордеров из Нью-Йоркской фондовой биржи (NYSE) (выборочные данные доступны на NYSE FTP), поскольку, работая со Spark, я могу легко это сделать. Вместо того, чтобы использовать метод опорных векторов, я воспользуюсь алгоритмом дерева решений для классификации, поскольку Spark MLLib изначально поддерживает мультиклассовую классификацию.

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

Предсказательное моделирование – это процесс выбора или создания модели, целью которой является наиболее точное предсказание возможного исхода.
Читать дальше →

DataArt.EDU, или 240 000 часов учебы без университетов

Reading time4 min
Views7.2K


«Жизнь проходит мимо, пока я тут сижу в проекте», — мысль, которая иногда посещает многих профессионалов. «Как бы синхронизировать всю кучу знаний, которая концентрируется у разных коллег?» — думает компания. Примерно такие мысли крутились умных в головах в DataArt четыре года назад, когда мы начали обучающую инициативу DataArt.EDU, которая так и называется до сих пор.

Толчком послужило желание коллег присоединиться к отраслевым направлениям в компании, менять проекты и технологии. В DataArt есть отличная возможность для неугомонных выбирать, в чем и на чем работать, углубляться в отраслевые направления. Как ответ на вопрос, где взять необходимые знания для старта, был создан наш DataArt.EDU.

Сегодня DataArt. EDU — разветвленная структура, в которую входят сразу несколько направлений: от корпоративного английского, семинаров, РМ-курсов до курсов для самостоятельного обучения. Не сразу начали отдельно учитывать, сколько же мы учимся, но даже уже учтенных часов — более 240 тыс.!

Ниже для примера — некоторые программы, входящие в DataArt. EDU.
Читать дальше →

Information

Rating
Does not participate
Location
Kassel, Hessen, Германия
Registered
Activity