Habr.com

Syndicate content Хабр
Updated: 21 min 27 sec ago

[Из песочницы] 5 причин посетить EPAM INSIDER в Казахстане

1 hour 51 min ago


19 октября Алматы впервые примет одну из самых больших и важных конференций EPAMEPAM INSIDER Kazakhstan. Это попытка соединить растущие амбиции и IT-потенциал Казахстана с опытом лидеров индустрии: создать открытую платформу для обмена успешными практиками, реальными кейсами, новыми технологиями и решениями.

Главные спикеры EPAM INSIDER Kazakhstan сформулировали 5 причин, почему стоит принять участие в главном IT-событии Казахстана.
Читать дальше →

[Перевод] Как освещение влияет на геймдизайн и игровой опыт

Wed, 10/16/2019 - 21:32


В ожидании PS5 и Project Scarlett, которые будут поддерживать трассировку лучей, задумался об освещении в играх. Нашел материал, где автор объясняет, что такое свет, как он влияет на дизайн, меняет геймплей, эстетику и экспириенс. Все с примерами и скриншотами. Во время игры на такое не сразу обращаешь внимание.
Читать дальше →

Длинная история путеводителя — как я 5 лет писал сервис для умных пешеходных маршрутов

Wed, 10/16/2019 - 21:15

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


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


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

[Из песочницы] Эра плоских потолочных микрофонов

Wed, 10/16/2019 - 20:26
Первопроходцем направления потолочных микрофонов был Shure со своей новинкой, которая и по сей день остается на первых строчках по релевантности и применимости – MXA910. Далее появился Sennheiser с моделью первого поколения TeamConnect Ceiling и следующим обновлением с переходом на цифровую передачу аудио сигнала по Dante — TeamConnect Ceiling 2.
Спустя некоторое время, когда начались жаркие споры кто же лучше, объявился не менее известный производитель ClearOne со своими моделями потолочных микрофонов.


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

AI-пицца: как мы использовали две рекуррентные нейросети

Wed, 10/16/2019 - 20:24
Тема нейросетей будоражит сердца разработчиков, учёных и маркетологов уже не первый год, а кого-то даже не первое десятилетие. Но все мы знаем, что частенько под проектами на основе нейронок прячется простая биг дата и маркетинговый булшит, раздутый на фоне кликбейтного заголовка. Мы постарались избежать такой истории и разработали проект нейропиццы, основанный на исследовании молекулярной сочетаемости ингредиентов, анализе 300 тыс. рецептов и чистого творчества. Под катом вы можете узнать детали и найти ссылку с открытым кодом на GitHub.



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

Однажды в Dodo Pizza решили провести эксперимент: систематизировать и структурно описать то, что во всём мире считается хаотичным и субъективным – вкус. Искусственный интеллект, помог найти самые сумасшедшие сочетания ингредиентов, которые, несмотря на свою необычность, оказались вкусными для большинства людей.

Я и мой коллега выступили в качестве специалистов по нейросетям от МФТИ и Сколтеха в этом необычном проекте. Мы разработали и обучили нейросеть, способную решать задачу генерации кухонных рецептов. В ходе работы было проанализировано более 300 000 рецептов, а также результаты научных исследований на тему молекулярной сочетаемости ингредиентов. На основе этого ИИ научился находить неочевидные связи между ингредиентами и понимать, как они сочетаются между собой и как наличие каждого из них влияет на сочетаемость всех остальных.
Читать дальше →

Откуда взялся Волшебник из «Обыкновенного чуда»

Wed, 10/16/2019 - 20:24
Первый был полукровкой — русская мама и папа-еврей. Внешне он был типичным евреем — брюнет, с большим носом и грустными еврейскими глазами.



Он был очень неправильным евреем.

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

Когда он прорывал оборону Екатеринодара в марте 1918 года, был сильно контужен, и эта контузия до конца жизни напоминала ему о белогвардейском прошлом тремором рук.

Больше он никогда не воевал.

После Гражданской он немного актерствовал, а потом ушел в журналистику.

Его звали Евгений Львович Шварц.



Второй был чистопородным казаком — родился в станице Каменской, где его богатый отец был одним из самых уважаемых и авторитетных станичников. Николай Чуковский описывал его так: «Он был казак, и притом типичнейший — белокурый, румяный, кудрявый, похожий лицом на Кузьму Пруткова, с чубом, созданным богом для того, чтобы торчать из-под фуражки с околышком».



Он был очень неправильным казаком.

В то время как подавляющая часть его станичников искренне презирала «голоштанных пролетариев», он всем сердцем поверил в Революцию, и, как в песне — «хату покинул, пошел воевать». В отличие от Шварца, которого сразу выбили, этот Гражданскую хлебнул полной ложкой. Читать дальше →

Can I haz? Ударим программированием на типах по дженерикам

Wed, 10/16/2019 - 19:01

Привет, Хабр.


В прошлый раз мы описали Has-паттерн, обрисовали проблемы, которые он решает, и написали несколько конкретных инстансов:


instance HasDbConfig AppConfig where getDbConfig = dbConfig instance HasWebServerConfig AppConfig where getWebServerConfig = webServerConfig instance HasCronConfig AppConfig where getCronConfig = cronConfig

Выглядит неплохо. Какие тут могут возникнуть сложности?



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


instance HasDbConfig DbConfig where getDbConfig = id

Они позволяют нам легко писать отдельные тесты или вспомогательные утилиты, не зависящие от всего AppConfig.


Это уже скучновато, но таки продолжим. Легко представить, что некоторые интеграционные тесты проверяют взаимодействие какой-то пары модулей, и мы всё ещё не хотим зависеть от конфигурации всего приложения целиком, так что теперь нам надо написать шесть инстансов (по два на тип), каждый из которых будет сводиться к fst или snd. Например, для DbConfig:


instance HasDbConfig (DbConfig, b) where getDbConfig = fst instance HasDbConfig (a, DbConfig) where getDbConfig = snd

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


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

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

[Перевод] Встречайте Big Data Tools: поддержка Spark и Zeppelin-ноутбуков в IntelliJ IDEA

Wed, 10/16/2019 - 18:45
У нас отличные новости. Мы рады объявить о выходе Big Data Tools — нового плагина для IntelliJ IDEA, который обеспечивает интеграцию со Spark и поддерживает редактирование и запуск Zeppelin-ноутбуков. Теперь вы можете создавать, редактировать и запускать Zeppelin notebooks прямо из IDE. Плагин предоставляет умную навигацию, автодополнение, инспекции и быстрые исправления, а также рефакторинг кода внутри ноутбуков.

Что уже поддерживается

  • Просмотр, создание и удаление ноутбуков
  • Помощь при написании Scala-кода
    • Автодополнение
    • Рефакторинг Rename
    • Экстракт переменной, метода или параметра
    • Переход к декларации
    • Поиск использований

  • Создание и удаление параграфов
  • Запуск параграфов
  • Просмотр вывода параграфов
  • Поддержка базовой визуализации

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

Если вам не терпится увидеть Big Data Tools в действии, посмотрите это короткое видео:


А лучше попробуйте плагин сами! Как это сделать, читайте далее.
Читать дальше →

[Перевод] Эдвард Сноуден: поле битвы — шифрование

Wed, 10/16/2019 - 18:25
«Без шифрования мы потеряем всю конфиденциальность. Это наше новое поле битвы.»
— Эдвард Сноуден


Эдвард Сноуден — бывший сотрудник ЦРУ и осведомитель, автор книги “Личное дело”. Он президент совета директоров Фонда «Свобода прессы».

«Если интернет-трафик не зашифрован, любое правительство, компания или преступник, могут заметить это. Они украдут его копию и ваши данные сохранятся у них навсегда».

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

Сейчас мы переживаем величайший в истории кризис компьютерной безопасности. И все же, правительство США вместе с правительствами Великобритании и Австралии пытаются подорвать важность шифрования. Шифрование — единственный метод для надежной защиты информации в мире. Если они преуспеют в своем деле, наша общественная инфраструктура и частная жизнь будут под угрозой.
Читать дальше →

Стажировка в ABBYY: компания, с которой можно на «ты»

Wed, 10/16/2019 - 17:07
Всем привет! В этом посте я хочу рассказать вам о моей летней стажировке в ABBYY. Постараюсь осветить все моменты, которые обычно интересны студентам и начинающим разработчикам при выборе компании. Надеюсь, что кому-то данный пост поможет определиться с планами на следующее лето. В общем, поехали!



Для начала расскажу немного о себе. Меня зовут Женя, на момент подачи заявки на стажировку я заканчивал 3 курс МФТИ, Факультет инноваций и высоких технологий (сейчас может быть известен как Физтех-школа прикладной математики и информатики). Мне хотелось выбрать компанию, в которой можно получить опыт работы в области компьютерного зрения: картинки, нейронные сети и вот это вот все. Собственно, с выбором я не прогадал – ABBYY действительно для этого отлично подходит, но об этом позже.
Читать дальше →

Sberbank AI Journey. Как мы учили нейросеть сдавать экзамен

Wed, 10/16/2019 - 16:52

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




В рамках конференции AI Journey мы решили провести конкурс на разработку алгоритма, который сможет сдать экзамен не хуже человека. Участникам предоставляются тестовые варианты заданий, которые можно использовать для валидации решений и для обучения. Мы как сотрудники Сбера не можем претендовать на призовой фонд, но тем не менее попробовали решить эту задачу и хотим рассказать о том, как мы это сделали. Спойлер — аттестат мы получили.


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

Первые полгода в роли тимлида: как не сойти с ума, если кажется, что все плохо

Wed, 10/16/2019 - 16:24


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

Мне казалось, что я должна быть супертимлидом с первого дня Читать дальше →

[Перевод] Дизайн цвета загадочных миров Dead Cells

Wed, 10/16/2019 - 16:13
Кто: Гвенаэль Массе, художник студии Motion Twin
Привет, меня зовут Гвенаэль Массе, мы с Тома Вассё — единственные художники инди-студии Motion Twin. Среди прочего, передо мной была поставлена задача создания дизайна фонов Dead Cells. Надеюсь, что информация о моём производственном процессе может кому-нибудь пригодиться.

Давайте приступим. Фундамент художественного стиля Dead Cells основывался на трёх столпах: насыщенной цветовой палитре, кельтской архитектуре и теме алхимии.

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

Благодаря этому игрок лучше понимает происходящее, а значит, и быстрее реагирует на потенциально смертельные источники опасности. И это замечательно подходит к такой активной игре, которой мы стремились сделать Dead Cells.

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


Комплементарные палитры, используемые в закрытом уровне (Toxic Sewers)


Палитра из близких цветов, использованная на открытом уровне (Promenade of the Condemned)
Читать дальше →

Почему надо создавать модули для nginx

Wed, 10/16/2019 - 16:11
Nginx — это веб-сервер, который решает десятки бизнес-задач, гибко настраивается, масштабируется и работает почти на всех ОС и платформах. Список функций, возможностей и решаемых проблем из коробки можно расписать в небольшой брошюре. Но порой, ряд бизнес-задач можно решить, только разработав собственные модули для nginx. Это модули, которые ориентированы на бизнес и содержат некоторую бизнес-логику, а не только обобщенное системное решение.



Вообще все в nginx — это модули, которые когда-то кем-то были написаны. Поэтому писать модули под nginx не только можно, но и нужно. Когда это необходимо делать и зачем, расскажет Василий Сошников (dedokOne) на примере нескольких кейсов.

Поговорим о причинах, которые побуждают писать модули на C, об архитектуре и ядре nginx, анатомии HTTP-модулей, о C-модулях, NJS, Lua и nginx.conf. Это важно знать не только тем, кто разрабатывает под nginx, но также тем, кто использует nginx-конфиги, Lua или другой язык внутри nginx.

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

[Из песочницы] Современный метод измерения импульсной характеристики и нелинейных искажений

Wed, 10/16/2019 - 15:28
В 2000 году профессор Пармского университета Анджело Фарина предложил оригинальный метод одновременного измерения импульсной характеристики и нелинейных искажений с помощью гармонического сигнала экспоненциально изменяющейся частоты (далее ESS – exponential sine sweep).

Для получения этих характеристик необходимо записать воздействие ESS-сигнала на испытуемое устройство и найти взаимную корреляционную функцию записанного сигнала с исходным ESS-сигналом, но промодулированным по амплитуде (подробнее об этом можно узнать в публикациях А.Фарина).
Читать дальше →

[Из песочницы] SSEGWSW: Server-Sent Events Gateway by Service Workers

Wed, 10/16/2019 - 15:01
Привет!

Меня зовут Саша и я работаю архитектором в Тинькофф Бизнес.

В этой статье хочу рассказать о том, как преодолеть ограничение браузеров на количество открытых долгоживущих HTTP-соединений в рамках одного домена при помощи service worker.

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


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

Суперинфекции 2: рубикон проблем, фиаско технологий и новая надежда

Wed, 10/16/2019 - 14:36

(c) Phage therapy

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

За почти век существования антибактериальных препаратов многие болезни практически забылись. Так, с 1947 г. считается, что Yersinia pestis, чумную бактерию, виновницу смерти 150 млн человек, удалось победить. И главным средством первого этапа лечения стали антибиотики.

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

[Перевод] Создание собственных синтаксических конструкций для JavaScript с использованием Babel. Часть 1

Wed, 10/16/2019 - 14:30
Сегодня мы публикуем первую часть перевода материала, который посвящён созданию собственных синтаксических конструкций для JavaScript с использованием Babel.


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

Распознаём дату и время в естественной речи

Wed, 10/16/2019 - 14:02


Задача

Привет, Хабр! Увлёкся я навыками для Алисы и стал думать, какую пользу они бы могли принести. На площадке много разных прикольных игр (в том числе мои), но вот захотелось сделать рабочий инструмент, который действительно нужен в голосовом исполнении, а не просто копирует существующего чат-бота с кнопками.


Голос актуален тогда, когда либо руки заняты, либо нужно выполнять много последовательных операций, особенно на экране телефона. Так возникла идея навыка, который по одной команде выделяет из текста указание на дату и время и добавляет событие с этим текстом в Google Calendar. Например, если пользователь скажет Послезавтра в 11 вечера будет красивый закат, то в календарь на послезавтра в 23:00 уходит строка Будет красивый закат.


Под катом описание алгоритма работы библиотеки Hors: распознавателя даты и времени в естественной русской речи. Хорс — это славянский бог солнца.


Github | NuGet

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

Popular content


Who's online

There are currently 0 users and 0 guests online.