Как стать автором
Обновить
-2
0

Пользователь

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

Жаргон функционального программирования

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


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии113

APEIGAMING — нужно больше золота! (Часть 7)

Время на прочтение3 мин
Количество просмотров6.7K
image

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

Одним из самых неоднозначных решений, который нам довелось принять, была операция под кодовым названием “Спарта”, которая вызвала большое количество разночтений и споров. Основной идеей было разгрузить менеджеров организации, путем создания особой буферной зоны, где начинающие игроки могли бы вариться “в собственном соку”, соревнуясь, показывая результаты, проводя естественный отбор между собой и формируя сложившийся коллектив, которому комфортно тренироваться друг с другом. За первые несколько месяцев через руки наших управленцев прошло около 2000 игроков, желающих начать свой карьерный рост в организации, если учесть, что с каждым соискателем нужно было проводить личные беседы, которые иногда могут затягиваться на несколько часов, то нетрудно подсчитать, сколько бы времени все это заняло. Поэтому “Спарта” была логичной вехой развития APEIGAMING и абсолютно правильным шагом.

Всего голосов 6: ↑6 и ↓0+6
Комментарии4

Терагерцевый сканер МТИ читает закрытые книги и запечатанные письма

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

Фото: AP Photo / Akira Suemori

Исследователи из Массачусетского технологического института и Технологического института Джорджии разработали терагерцевый сканер, который позволяет читать книги, не открывая их. Это нужная вещь для оцифровки хрупких фолиантов, которые могут повредиться при листании страниц. Кроме того, технологию можно использовать для чтения писем в запечатанных конвертах, например.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии55

Кейс OZON.ru: Как сделать тарификацию доставки прозрачной и управляемой

Время на прочтение5 мин
Количество просмотров8.9K
image
Инфографика в посте сделана на R по реальным данным из Тарификатора.

Вы сталкиваетесь с тарификацией доставки, когда делаете заказ в интернет-магазине. Тарификатор — IT-система, которая говорит каким способом товар доставят, на какие посылки разобьется корзина, сколько стоит доставка и когда привезут заказ. Тарификатор собирает информацию со склада и служб доставки, перерабатывает и выдает результаты покупателям интернет-магазина на сайте.

Цена за доставку товара для покупателя интернет-магазина редко совпадает с ценой, которую транспортная компания возьмет с самого магазина. Захотели вы привезти книги с помощью DHL в Новосибирск. OZON.ru выставит вам конкурентную цену за доставку — 500 руб. При этом DHL за эту доставку выставит OZON.ru счет на 1000 руб. Это кажется странным, но такова реальность, которую диктует рынок.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии18

Применение нелинейной динамики и теории Хаоса к задаче разработки нового алгоритма сжатия аудио данных

Время на прочтение12 мин
Количество просмотров11K
В данной публикации я хотел бы представить ряд идей и опыт практического воплощения элемента теории Хаоса — фрактального преобразования в проекте разработке нового алгоритма сжатия аудио данных.

Чего вы не найдёте здесь:

  • Сложных уравнений. Цель данной публикации является представление идей и видение задачи. И как любое видение оно во многом абстрактно;
  • Каких либо генераторов фрактальных изображений. Такие изображения выглядят интересно, но мня интересуют реальные задачи.

Что вы найдёте здесь:

  1. Краткий обзор применения фрактальных преобразований к задаче сжатия данных с потерями;
  2. Необычная интерпретация фрактальных преобразований;
  3. Ссылки на реальный код компрессора и декомпрессора аудио данных посредством фрактальных преобразований (декомпрессор представлен в форме плагина для аудио плейера Winamp);
  4. Описание нового формата для хранения сжатых аудио данных с пятью уникальными свойствами, отличающими новый формат от многих хорошо известных индустриальных аудио форматов.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии51

Пять видов систем крафтинга в играх

Время на прочтение9 мин
Количество просмотров36K
За последние годы крафтинг развился от редкоприменимой механики ролевых игр до практически повсеместного дополнения ко всем последним новинкам индустрии. Сегодня он используется не только в почти любой RPG, но также в шутерах от первого лица, экшн-играх, симуляторах вождения и даже в системе присвоения значков пользователям Steam.

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


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

WaveNet: новая модель для генерации человеческой речи и музыки

Время на прочтение5 мин
Количество просмотров39K
Наша облачная платформа Voximplant — это не только телефонные и видео звонки. Это еще и набор «батареек», которые мы постоянно улучшаем и расширяем. Одна из самых популярных функций: возможность синтезировать речь, просто вызвав JavaScript метод say во время звонка. Разрабатывать свой синтезатор речи — на самая лучшая идея, мы все-таки специализируемся на телеком бэкенде, написанном на плюсах и способном обрабатывать тысячи одновременных звонков и снабжать каждый из них JavaScript логикой в реальном времени. Мы используем решения партнеров и внимательно следим за всем новым, что появляется в индустрии. Хочется через несколько лет отойти от мема «Железная Женщина» :) Статья, адаптированный перевод которой мы сделали за эти выходные, рассказывает про WaveNet, модель для генерации звука (звуковых волн). В ней мы рассмотрим как WaveNet может генерировать речь, которая похожа на голос любого человека, а также звучать гораздо натуральнее любых существующих Text-to-Speech систем, улучшив качество более чем на 50%.

Мы также продемонстрируем, что та же самая сеть может использоваться для создания других звуков, включая музыку, и покажем несколько автоматически сгенерированных примеров музыкальных композиций (пианино).
Очень много интересного
Всего голосов 47: ↑47 и ↓0+47
Комментарии20

44 наиболее популярных проекта на Product Hunt за лето 2016

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


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

Ниже показаны 44 наиболее популярных проекта, появившихся на Product Hunt за лето 2016 года, каждый из которых набрал более 1 000 голосов. Надеемся, вы найдёте в этом списке много того, что поможет вам подготовиться к творческому, продуктивному и волнующему вас сезону «погружения в работу». Получайте удовольствие.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии4

Обзор возможностей инструмента Adobe Captivate

Время на прочтение2 мин
Количество просмотров15K
Adobe Captivate — это программа для создания и редактирования интерактивных обучающих курсов, с возможностью демонстрации ПО, записи видео-уроков, создания симуляций программ, разработки проверочных тестов и тд.

Курс, сгенерированный на Adobe Captivate, можно выгружать в разных форматах. В своей работе я чаще всего использую форматы: *.html, *.exe и scroom 1.2 для загрузки курсов в систему Moodle и на иные платформы типа eFront.

Инструмент не требует установки дополнительного ПО на машины пользователей, что является несомненным плюсом.

Для создания симуляций программ, Captivate позволяет использовать правую и левую кнопку мыши и нажатия клавиш, что очень удобно при обучении пользователей, без допуска оных к «боевому» стенду. Для демонстраций программ возможна запись в реальном времени. Созданные с помощью Captivate скринкасты занимают намного меньше места, чем полноценные записи с экрана.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии6

Блокчейн-стартап Mass Network предложит пользователям откат в криптовалюте за просмотр рекламы с декабря

Время на прочтение3 мин
Количество просмотров7.5K
Проект Mass Network — ещё одна попытка оживить рынок интернет-рекламы, только на этот раз с блокчейном в роли укола адреналина. Авторы стартапа хотят подкачать стремительно сдувающийся пузырь онлайн-адвертайзинга, платя пользователям за просмотр рекламного контента и право сбора и обработки их персональных данных — причём мгновенно.



Сейчас пользователи зачастую сами того не желая отдают крупным игрокам приватную информацию о своём поведении в интернете. По идее, взамен они должны получать релевантную и полезную коммерческую информацию, но на практике рекламодатели по-прежнему ведут раскрутку практически вслепую, из-за чего их целевой аудитории достаётся только навязчивая и почти всегда бесполезная реклама. Более 90% американцев считают, что утратили контроль над доступом к своим персональным данным и уверены в том, что рекламные компании используют их по собственному усмотрению.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии10

Будущее сайтов: автоматическая сборка на базе ИИ и не только

Время на прочтение7 мин
Количество просмотров27K
Наш технический директор* верит, что искусственный интеллект будет создан ориентировочно к середине этого века, и лет через пятьдесят с большой вероятностью будет достигнута около-сингулярность с виртуализацией, ИИ и вот этим всем.



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

Прелесть вот в чем: запуск конструктора сайтов с нейросетью и алгоритмическим дизайном** — дело не пятидесяти, а всего пары лет. Это будущее, которое можно пощупать уже сегодня.
Ведь не все хотят делать себе сайты сами
Всего голосов 40: ↑34 и ↓6+28
Комментарии43

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

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


Введение


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


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


Задача


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


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

Batch Normalization для ускорения обучения нейронных сетей

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

В современном мире нейронные сети находят себе всё больше применений в различных областях науки и бизнеса. Причем чем сложнее задача, тем более сложной получается нейросеть.


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


В какой-то момент, знакомясь с представленным в 2015 году методом Batch Normalization от компании Google мне, для решения задачи связанной с распознаванием лиц, удалось существенно улучшить скорость работы нейросети.



За подробностями прошу под кат.

Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии3

Как развивать дизайн-мышление

Время на прочтение3 мин
Количество просмотров39K
Данный пост будет интересен начинающим веб-дизайнерам, графическим дизайнерам, а также тем, кому важно уметь правильно оценивать качество вашей работы. Текст является переводом данной статьи.

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

Заранее благодарю, если укажете на какие-то неточности перевода, если таковые заметите. А вот, собственно, сам материал автора.


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

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

Вот только вопрос в том, как же развить это самое дизайн мышление?

Простая стратегия.
Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии2

Логика сознания. Часть 3. Голографическая память в клеточном автомате

Время на прочтение10 мин
Количество просмотров29K
Ранее мы описали клеточный автомат, в котором могут возникать волны, имеющие хитрый внутренний узор. Мы показали, что такие волны способны распространять информацию по поверхности автомата. Оказалось, что любое место автомата может быть, как приемником, так и источником волн. Чтобы принять волну в каком-либо месте, достаточно посмотреть, какой узор получается в нем в момент прохождения волны. Если этот узор запомнить и впоследствии воспроизвести в том же месте, то от этого узора распространится волна, повторяющая на своем пути узор исходной волны.

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

Автомат, который мы описываем обладает памятью. Точнее, памятью обладают все его элементы. Память элемента специфична. Единственное, что видит элемент автомата – это узор, составленный из активности своих соседей. Единственное, как элемент может отреагировать на тот или иной узор – это либо самому стать активным, либо, наоборот, выключиться. Память элемента – это набор запомненных им узоров с указанием, как на них реагировать: включаться или выключаться.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии75

Оптимизация на примере. Имитационный отжиг против муравьиного алгоритма. Часть 1

Время на прочтение11 мин
Количество просмотров28K
Всем доброго времени суток. Недавно прочитал статью про имитационный отжиг на примере задачи коммивояжера. Картинка до и после оптимизации вызвала интерес. Чем-то подобные вещи заманивают.Также в комментариях заметил, что людям было бы интересно посмотреть на сравнение с другими видами оптимизации.


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

Организация кода в Go

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

Зависимости. Дженерики. Они часто звучат в списке проблем в Go сообществе, но есть одна проблема, о которой вспоминают довольно редко — организация кода вашего пакета.


Каждое Go приложение, с которым я работал, похоже, имеет свой ответ на вопрос "Как я должен организовать код?". Некоторые приложения засовывают всё в один пакет, в то время, как другие группируют логику по типам или модулям. Без хорошей стратегии, которой придерживаются все члены команды, вы рано или поздно увидите, что код сильно разбросан по многочисленным пакетам. Нам нужен некий стандарт для дизайна кода в Go приложениях.


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

Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии8

Разбираемся в Go: пакеты bytes и strings

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

Перевод одной из статей Бена Джонсона из серии "Go Walkthrough" по более углублённому изучению стандартной библиотеки Go в контексте реальных задач.


В предыдущем посте мы разобрались, как работать с потоками байт, но иногда нам нужно работать с конкретным набором байт в памяти. Хотя слайсы байт вполне подходят для многих задач, есть немало случаев, когда лучше использовать пакет bytes. Также мы рассмотрим сегодня и пакет strings, так как его API практически идентичен bytes, только он работает со строками.


Этот пост является одним из серии статей по более углублённому разбору стандартной библиотеки. Несмотря на то, что стандартная документация предоставляет массу полезной информации, в контексте реальных задач может быть непросто разобраться, что и когда использовать. Эта серия статей направлена на то, чтобы показать использование пакетов стандартной библиотеки в контексте реальных приложений. Если у вас есть вопросы или комментарии, вы всегда можете написать мне в Твиттер — @benbjohnson.

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии11

Angular 2 Beta, обучающий курс «Тур героев» часть 4

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

Часть 1 Часть 2 Часть 3 Часть 4


Сервисы


Тур героев развивается, и мы ожидаем добавление новых компонентов в ближайшем будущем.


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

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

Уменьшаем размер публикуемых npm модулей

Время на прочтение6 мин
Количество просмотров8.2K
По умолчанию npm публикует в registry весь модуль целиком. За исключением явно указанных в .gitignore файлов. Это отбрасывает зависимости, но все равно позволяет куче не очень нужных файлов просочиться в опубликованное. После чего благодарные пользователи ждут, пока все это скачается. Для grunt, кстати, ждать придется порядка 6 мегабайт. А он такой обычно не один.

Я решил разобраться, как измерить размер своих модулей после публикации и, по возможности, этот размер уменьшить. В качестве примера буду использовать модуль check-more-types, который содержит всего несколько файлов. Плюс юнит тесты и документацию, которая собирается в README markdown файл.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии8

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность