Давайте вернемся к периодически затрагиваемой у нас теме машинного обучения и нейронных сетей. Сегодня речь пойдет об основных типах рекомендательных систем, их достоинствах и недостатках. Под катом — интересная статья Тоби Дейгла с кодом на Python,
Над катом — ссылка на большую презентацию нашего замечательного автора Сергея Николенко, чью книгу "Глубокое обучение. Погружение в мир нейронных сетей", написанную в соавторстве с Артуром Кадуриным и Екатериной Архангельской, мы просто не успеваем допечатывать. В презентации описаны основные типы рекомендательных систем и принципы их работы.
Уважаемые художники, креативщики и вообще творчески настроенные читатели. В Лондоне начинается городская галлерея искусства для всех желающих с конкурсом. Можно выставить свою работу прямо на витрину на остановках в центре Лондона. Нет ограничения по стране проживания конкурсанта. Единственное условие — работа должна быть ваша. Лучшая работа выигрывает 10,000 фунтов. Победители 5 категорий (дизайн, фотография, рисунок, иллюстрация, слово) получают по 1000 фунтов каждый. Почитать подробнее про условия конкурса и отправить свою работу можно здесь.
Дизайнеров принято считать творческими людьми, которые оцифрованными кистями визуализируют на экране Аймака всплески своего сознания. Наверно есть и такие, но я уверяю, что каждый третий дизайнер ежедневно занимается решением однотипных задач и начинает завидовать бухгалтеру, который разгадывает пасьянс, параллельно отвечая на сообщения в Одноклассниках.
Дизайнеры редко работают в одной компании больше 3–5 лет, а все потому, что внутри мы превозносим дизайн, как религию, а по факту рисуем серые прямоугольники и пытаемся вникнуть в суть комментариев заказчика. Это истощает, в первую очередь эмоционально. А дизайнер без эмоций — никто.
Мечты сделать что-то выдающееся погребаются под натиском типовых задач, которые провоцируют типовые решения. Они бесспорно работают, но работают больше на бизнес, чем на вас. Читать дальше ->
Давно мне не давал покоя тот факт, что пароли пользователей у меня в БД хранятся в открытом виде. Также очень неудобно было вручную добавлять/удалять пользователей и менять им пароли.
В результате, настроил связку proftpd + mod_sql + mod_sql_passwd c хранением паролей в виде md5 + salt, а также написал три скрипта для добавления, удаления и смены пароля пользователей.
Ввиду того, что на разных серверах у меня используется где-то PostgreSQL, а где-то MySQL, выкладываю описание настроек для обеих СУБД.
Сервера работают под управлением ОС ALT Linux Sisyphus. Читать дальше ->
Преподавание программирования – сложное и спорное дело. Однако подбор учебного материала не самое важное в этом. Важно то, как и кем это преподносится. Здесь не достаточно традиционных методик, да и инновационные тоже не всегда дают должный эффект. Почему? Давайте рассмотрим текущую ситуацию в сфере профессионального образования.
«Куда пойти работать?» – вопрос, неотвратимо возникающий после решения вопроса: «Куда пойти учиться?». Проблема в том, что задумываться об обоих вопросах нужно практически одновременно.
Хотя мне и удалось разобраться с классификацией интента, осталась более сложная задача — выцепить из фразы дополнительные параметры. Я знаю, что это делается с помощью тегов. Один раз я уже успешно применил sequence_tagging, но я не очень рад тому, что нужно держать словарь векторных представлений слов размером больше 6 гигабайт. Читать дальше ->
TL;DR: в этих сериях вы узнаете, как заставить React и Redux управлять SVG элементами для создания игры. Полученные в этой серии знания позволят вам создавать анимацию не только для игр. Вы можете найти окончательный вариант исходного кода, разработанного в этой части, на GitHub.
TL;DR: Обучение с подкреплением (RL) всегда было сложным. Не волнуйтесь, если стандартные техники глубинного обучения не срабатывают.
В статье Алекса Ирпана хорошо изложены многие современные проблемы глубинного RL. Но большинство из них не новые — они существовали всегда. На самом деле это фундаментальные проблемы, лежащие в основе RL с момента его создания.
В этой статье я надеюсь довести до вас две мысли:
Большинство недостатков, описанных Алексом, сводятся к двум основным проблемам RL.
Нейросети помогают решить только малую часть проблем, одновременно создавая новые.
Примечание: статья ни в коем случае не опровергает претензии Алекса. Наоборот, я поддерживаю большинство его выводов и считаю, что исследователи должны более чётко объяснять существующие ограничения RL.
В начале января на Всемирном экономическом форуме в Давосе были озвучены самые серьезные глобальные риски 2018 года. В четверку, сразу после рисков, связанных с экстремальными погодными явлениями, стихийными бедствиями и деградацией окружающей среды, вошли кибератаки. Сегодня они вызывают наибольшую озабоченность у предпринимателей в странах с развитой экономикой. Обеспокоенность кибербезопасностью обусловлена зависимостью людей от цифровых технологий. К 2020 году эксперты ожидают, что человечество будет пользоваться 20 млрд подключенных устройств, что безусловно расширяет возможности для кибератак. Сегодня CISO компании Bright Box Николай Агринский рассказывает о том, как избежать кибератак на свой подключенный автомобиль и как обезопасить клиентов автопроизводителей и автодилеров.
Как известно, в Unity нельзя было создавать трехмерные модели. Т.е. нативных средств и инструментов для редактирования трехмерных моделей в Unity нет, есть несколько встроенных объектов (куб, сфера и т.п.), но с ними невозможно, опять же, встроенными стредствами редактора выполнять такие манипуляции, как добавление (перемещение, вращение, удаление) вершин, ребер, полигонов, нельзя накладывать текстуры на отдельные полигоны, нельзя создавать фаски и выполнять вытягивание полигонов.
15 февраля 2018 года Unity Technologies в своем блоге разместила замечательную новость: начиная с версии Unity 2018 в редактор будут интегрированы инструменты ProBuilder. ProBuilder — это уникальный набор средств для построения двумерных и трехмерных геометрических форм с возможностью их дальнейшего редактирования и текстурирования. Читать дальше ->
Будут приведены примеры скриптов для обновления всех типов кастомных полей, доступных в Jira из «коробки», с таблицей, в которой указаны отличия работы рассматриваемых методов друг от друга.
В первой статье мы рассказали про наш первый опыт в маркетинге и продажах. В этой статье мы расскажем, почему маркетингом и продажами нужно заниматься самим, даже если вы всю жизнь изучали математику и программирование, а не полагаться на «гуру» с рынка, и какие минимальные действия в области маркетинга и продаж должна сделать компания-разработчик заказного ПО в наше время, чтобы быть прибыльной компанией и иметь возможность устойчиво развиваться. В этой статье не будет затронута тема раскрутки и продажи продуктов, мобильных приложений, игр и многого другого, так как опыт компании Maxilect в основном связан с заказной разработкой, и только в конце 2017 мы начали делать свои R&D разработки и вести работу со стартапами по модели Revenue Sharing.
Рассказ моего партнера Кирилла Антонова, который написал первую часть статьи, остановился примерно в конце 2016 — начале 2017 года. На тот момент мы уже успели наломать немало дров, наступили не на одни грабли, добились первых успехов, и пребывали в некоторой эйфории от того, что наконец-то начало получаться, мы росли, увеличивалась и прибыль, и пора было подумать о динамичном развитии в правильном направлении.
В самом начале осени 2016 года руководство поставило мне задачу подготовить техническую часть олимпиады по SQL. Обсудив ситуацию с коллегами, в том числе с бывшими, я был ткнут (ткнён?) в статью, где в декларативном стиле на SQL решалась задача по построению кратчайшего выхода из лабиринта. Собрав в одну кучку части запроса и запустив его на настоящей базе, я прошептал "магия!.." и понял, что олимпиаде быть.
Думаю, что типичный читатель Хабра на олимпиадах хоть раз да бывал, но скорее в роли участника, а не организатора. Я тоже бывал на разных, и мне всегда было удивительно, почему на одних олимпиадах интересно, а на других тоска смертная. Могу показать, как выглядит этот театр с другой стороны занавеса, и как я старался, чтобы эта олимпиада оказалась из тех, которые интересные. Интриги, скандалы, расследования — ничего этого не будет. Зато расскажу как готовились задания, что от них ожидали и что получалось в результате.
У нас было: 120 свободных часов саунд-дизайнера, 80 свободных часов Unity-разработчика, созданный прототип с одним уровнем и геймплеем (но без графики), новость о запуске Falcon Heavy c Tesla на борту, и желание тимлида — он же автор — сделать что-то новенькое. Читать дальше ->
Мы продолжаем пилить свой мини-дайджест. На этой неделе в зарубежных изданиях вышло несколько интересных статей о CRM-системах и о бизнес-процессах. Мы выбрали самые яркие и готовы их прокомментировать — как всегда, субъективно и с долей иронии.
PVS-Studio — это статический анализатор кода для поиска ошибок и потенциальных уязвимостей в коде программ на языке C, C++ и C#. Мы давно радуем читателей нашего блога проверкой открытых проектов и разбором найденных ошибок. Наши статьи имеют потенциал стать более интересными, так как анализатор научился проверять код встроенных устройств. Мы поддержали несколько ARM-компиляторов, про которые подробнее вы узнаете из статьи. Ошибки во встроенных устройствах и роботах могут быть более зрелищными, чем в прикладных программах. Ошибка во встроенном устройстве — это не просто падение/зависание программы или неправильная картинка. Это сошедший с ума Wi-Fi-чайник, который будет кипятить воду, пока она не выкипит и не сработает термопредохранитель. В общем, с ошибками в мире embedded-систем всё обстоит куда интереснее и страшнее. Читать дальше ->
Еще одна небольшая статейка попроще вдогонку.
Расскажу, как я рисую таблицы во Vue.
Компонентов-таблиц для Vue наделано немало. С различными возможностями.
И везде по-разному таблица собирается в template страницы или какого-то компонента.
Кэширование позволяет увеличивать производительность веб-приложений за счёт использования сохранённых ранее данных, вроде ответов на сетевые запросы или результатов вычислений. Благодаря кэшу, при очередном обращении клиента за одними и теми же данными, сервер может обслуживать запросы быстрее. Кэширование — эффективный архитектурный паттерн, так как большинство программ часто обращаются к одним и тем же данным и инструкциям. Эта технология присутствует на всех уровнях вычислительных систем. Кэши есть у процессоров, жёстких дисков, серверов, браузеров.
Ник Карник, автор материала, перевод которого мы сегодня публикуем, предлагает поговорить о роли кэширования в производительности веб-приложений, рассмотрев средства кэширования разных уровней, начиная с самого низкого. Он обращает особое внимание на то, где именно могут быть кэшированы данные, а не на то, как это происходит.
Мы полагаем, что понимание особенностей систем кэширования, каждая из которых вносит определённый вклад в скорость реакции приложений на внешние воздействия, расширит кругозор веб-разработчика и поможет ему в деле создания быстрых и надёжных систем. Читать дальше ->
Предлагаю вам сыграть в игру. Я даю вам квадратную сетку, на которой некоторые клетки закрашены, а некоторые могут остаться пустыми. Мы назовём её «шаблоном». Например, сетка может быть одним из таких шаблонов:
У вас есть стопка прозрачных пластмассовых листов, по размеру и форме совпадающих с сеткой, на которые нанесены узоры из чёрных точек:
Стоит заметить, что в каждом из этих узоров ровно по три точки, по одной точке в каждой строке и столбце. Шесть показанных комбинаций — это единственные сетки 3x3, обладающие таким свойством.
Ваша задача — собрать подмножество из прозрачных листов и наложить их на шаблон так, чтобы точки закрывали все закрашенные квадраты, но не попадали ни в один из пустых. Вы можете накладывать на любой из закрашенных квадратов несколько точек, но в целом нужно стремиться использовать как можно меньше листов. Чтобы было интереснее, я предлагаю сделать ставки: за правильное покрытие шаблона 3x3 я плачу 3 доллара, но вы должны мне заплатить по 1 доллару за каждый использованный лист. Выгодная ли это для вас ставка? Читать дальше ->