Вы уже используете прогрессивную загрузку? А как насчёт технологий Tree Shaking и разбиения кода в React и Angular? Вы настроили сжатие Brotli или Zopfli, OCSP stapling и HPACK-сжатие? А как у вас обстоят дела с оптимизацией ресурсов и клиентской части, со вложенностью CSS? Не говоря уже о IPv6, HTTP/2 и сервис-воркерах.
Программист
Нейросетка играет в Доту
Всем привет! На самом деле нейросетка играет не в привычную Dota 2, а в RussianAICup 2016 CodeWizards. RussianAICup — это ежегодное открытое соревнование по программированию искусственного интеллекта. Участвовать в этом соревновании довольно интересно. В этом году темой была игра похожая на Доту. Так как я уже какое-то время занимаюсь обучением с подкреплением, то мне хотелось попробовать применить это в RussianAICup. Главной целью было научить нейронную сеть играть в эту игру, хотя занятие призового места — это, конечно, было бы приятно. В итоге нейросеть держится в районе 700 места. Что, я считаю, неплохо, ввиду ограничений соревнования. В этой статье речь пойдет скорее об обучении с подкреплением и алгоритмах DDPG и DQN, а не о самом соревновании.
Строгое определение понятий: объект, состояние, событие, бизнес-операция и бизнес- функция
Прошлые статьи вызвали оживленную дискуссию среди тех, кто использует для моделирования предметных областей инструменты ООП: языки ООП, нотацию UML. Несмотря на то, что я постоянно подчеркиваю, что объекты учета, о которых я веду речь, не моделируются средствами UML, и объясняю почему, тем не менее, вопрос об их моделировании методами ООП поднимается снова и снова. Наверно, мне надо еще раз рассказать, чем так плох ООП для моделирования предметных областей.
Что такое сознание
Одним из самых главных научных вопросов Человечества, считается вопрос: «Что такое сознание?». Как Человек думает, принимает решения, как происходит мышление, анализ и интерпретация различных внешних раздражителей и т.д. Ответы на эти вопросы, а также что такое сознание, главный вопрос жизни, вселенной и всего такого под катом.
Брутальное аниме для бородатых программистов
Бытует мнение, что в груди даже самого сурового бородатого программиста бьётся большое и нежное сердце, в глубине которого всегда найдётся местечко для доброго аниме. Но в жизни бывают моменты, когда настроение не располагает к кавайности: код не прёт, баг не ловится, алгоритм криво работает, тимлид вставил за сорванный дедлайн. И тогда хочется посмотреть что-то суровое, брутальное, мужское. Что же, мир аниме очень разнообразен и может предложить произведения на любой вкус.
Сложнейшая проблема компьютерных наук
Тысяча диалектов
Знаете ли вы, что спецификация языка программирования С часто упоминает термин «объект»? Нет, это не объект в том понимании, как он описывается в ООП — объект в С определяется как «блок данных в среде выполнения, содержимое которого может представлять некоторое значение». В этом понимании объекта имеет смысл говорить о, например, «объекте типа char».
Термин «метод» достаточно распространён, но вы можете встретить программистов, которые будут говорить исключительно «функция-член класса». Язык программирования Java, поэтому, то ли имеет, то ли не имеет функций, в зависимости от того, кого вы об этом спросите. Термины «процедура» и «подпрограмма» иногда используются как аналог «функции», но в некоторых языках программирования (например, Pascal) процедура это совершенно не то же самое, что функция.
Даже в рамках одного языка программирования мы, бывает, путаемся.
Разбор статистической языковой модели от Google — часть 1: векторное представление символов
В этом посте мы расскажем про самый низкий уровень этой модели — представление символов.
Иллюзии мозга. Иллюзия «конца истории»
Рисунок: Randy Mora
Иллюзия конца истории — очень интересный феномен, который проявляется у людей практически всех возрастов (исследование 2013 года проводили на выборке более 19 000 респондентов в возрасте от 18 до 68 лет). Суть этой иллюзии в том, что люди любого возраста считают, что их личность сильно изменилась в прошлом, но слабо изменится в будущем. Эффект очень стабильный и, повторим, проявляется в любом возрасте.
Изменение рациона древних людей — одна из причин развития цивилизации
Фрагмент наскальных рисунков из Сахары
Когда современному человеку рассказывают о древних людях, живших тысячи лет назад, многие представляют себе полуживотных, которые питаются при помощи ногтей и зубов. Но, оказывается, уже около десяти тысяч лет назад мало кто из людей питался сырым мясом. Более того, некоторые представители популяции древних людей ели больше овощей и зерновых, чем мяса.
Причем дело вовсе не в том, что люди плохо охотились или было мало животных, в особенности, если речь идет о регионах с мягким климатом. Современные исследования, проведенные антропологами в Ливийской пустыне, показывают, что уж в этом регионе было полно животных, птиц. Несколько тысяч лет назад здесь не было пустыни, вместо нее простиралась бескрайняя саванна с большим количеством озер и растительности. Здесь люди жили в очень благоприятных условиях.
Нейросеть определяет тунеядцев по метаданным сотовой сети с вероятностью 70,4%
Индикаторы использования сотовой связи офисными сотрудниками, безработными, пенсионерами, учителями и студентами. Например, нейросеть определила для офисных сотрудников такой специфический индикатор, как большая длительность исходящих звонков
Благодаря социальным сетям и метаданным сотовой связи специалисты получили удобный и достаточно точный инструмент для изучения общества. Некоторую информацию люди публикуют в соцсетях сознательно, а часть важных данных выдают непроизвольно. Скажем, анализ анонимных метаданных сотовой связи показывает трафик на дорогах, скорость движения автомобилей, образование пробок, пассажиропотоки общественного транспорта. Это довольно логичные варианты дата-майнинга. А вот группа учёных из Telenor Group Research, MIT Media Lab, Flowminder Foundation и Стокгольмской школы экономики нашла весьма нестандартный вариант. Исследователи доказали, что по логам сотовой связи можно предсказывать… занятость. Довольно точно определяются безработные и представители ещё 17 родов занятий.
По информации учёных, это первое в мире исследование такого рода, когда безработных или профессию человека вычисляют на индивидуальном уровне с помощью глубинного обучения по логам сотовой сети. Раньше исследователи пытались предсказать только общий уровень безработицы по мобильным данным, но не профессии конкретных людей.
Математика биологических переключателей
Мы остановились на том, что лактозный оперон похож на логический элемент AND. Но откуда у него берутся цифровые свойства? Ведь оба входных сигнала (концентрации цАМФ и лактозы), вообще-то, аналоговые. Попробуем нарисовать входные функции лактозного оперона.
Создайте свои собственные “Нейронные Картины” с помощью Глубокого Обучения
Нейронные сети могут делать много разных вещей. Они могут понимать наши голоса, распознавать изображения и переводить речь, но знаете ли вы, что еще они умеют рисовать? Изображение сверху демонстрирует некоторые сгенерированные результаты применения нейронного рисования.
Сегодня я собираюсь познакомить вас с тем как это делается. Прежде всего, убедитесь, что у вас обновленная копия Ubuntu (14.04 — та, что использовал я). Вам необходимо иметь несколько гигов свободного пространства на жестком диске и в оперативной памяти, хотя бы не менее 6 GB (больше оперативки для больших выводимых разрешений). Для запуска Ubuntu как виртуальной машины, вы можете использовать Vagrant вместе с VirtualBox.
А MVC ли это?
Сегодня я хочу поделиться с Вами мыслями относительно архитектуры информационных систем, в частности, разнообразных подходов к распределению логики, данных и отображения, традиционно причисляемых к MVC.
За последние две недели, в беседах с десятком знакомых программистов я выяснил, что все представляют себе MVC совершенно по-разному. Доходит до диаметрально противоположных взглядов, но по какой-то причине, все настаивают, что это MVC и что он должен выглядеть именно так, и находятся в полной уверенности, что все его так и видят.
Специалисты по информатике идут нехожеными дорогами
Спустя десятилетия застоя, найдены новые короткие пути для задачи коммивояжёра
Не так давно команда исследователей из Стэнфорда и Университета Макгилла побили 35-летний рекорд по информатике на невообразимо малую величину – на четыре сотых триллионной триллионной триллионной доли процента. Прорыв – сделанный в классической для информатики задаче коммивояжёра – был слишком малым для какого бы то ни было практического значения, но он вдохнул новую жизнь в поиски улучшенных приближённых решений.
Задача формируется так: для набора городов, соединённых дорогами, необходимо найти кратчайший путь посещения каждого города с возвратом в точку старта. У решений задачи есть практические применения от сверления отверстий в печатных платах до управления расписанием задач на компьютере и упорядочивания свойств генома.
Нейронные сети на JS. Создавая сеть с нуля
Нейронные сети сейчас в тренде. Каждый день мы читаем про то, как они учатся писать комментарии в интернете, торговаться на рынках, обрабатывать фотографии. Список бесконечен. Когда я впервые посмотрел на масштаб кода, который приводит это в движение, я был напуган и хотел больше не видеть эти исходники.
Но врожденные любознательность и энтузиазм довели меня до того, что я стал одним из разработчиков Synaptic — проекта фреймворка для построения нейронных сетей на JS с 3к+ звезд на GitHub. Сейчас мы с автором фреймворка занимаемся созданием Synaptic 2.0 с ускорением на GPU и WebWorker-ах и с поддержкой почти всех основных фич любого приличного NN-фреймворка.
В итоге оказалось, что нейронные сети — это несложно, они работают на достаточно простых принципах, которые несложно понять и воспроизвести. Самая трудная задача — это обучение, но для этого почти всегда пользуются готовыми алгоритмами, а скопировать их не очень сложно.
Доказать это просто. Ниже в статье реализация нейронной сети с нуля без каких-либо библиотек.
Порождение и выбор моделей машинного обучения. Лекция в Яндексе
Под катом — лекция ведущего научного сотрудника РАН, доктора наук и главного редактора журнала «Машинное обучение и анализ данных» Вадима Стрижова, а также большинство слайдов.
Вплетение нарратива в процедурные миры
Уже в течение трёх лет я веду блог разработки моего нового roguelike-проекта. Истории игры в нём уделено довольно мало обсуждений, что отражает её малую информативную роль и важность в процессе разработки альфа-версии. На самом деле за посредственной и избитой научно-фантастической историей 7DRL, изложенной в версии для гейм-джема, последовал перезапуск проекта в 2013 году, и первое растягивание сроков разработки произошло только из-за воплощения уникальной детализированной истории. Всё, происходившее позже, тем или иным образом служит для поддержки нарратива.
Теперь, когда эта часть мира Cogmind оформилась и близка к завершению, я хотел бы исследовать новую территорию, и порассуждать о том, как и зачем интегрировать элементы истории в жанр, традиционно небогатый на сюжет.
Худой Scrum лучше доброго Agile
Залп скосил 50 офицеров и 760 рядовых. Французы дрогнули, запаниковали и — обратились в бегство. «Тут дела наши пошли не вполне хорошо», — описывает этот момент битвы официальная французская депеша.
Келли Дж. Порох. От алхимии до артиллерии.
Формирование Scrum команды всегда сопряжено со многими трудностями. Почти все справляются с тем, чтобы изменить порядок рабочего процесса и начать проводить некоторые из необходимых по Scrum событий. Но получить от этих формальных изменений видимую пользу и начать действительно менять рабочий процесс удается меньшинству. В результате у команды формируется следующее мнение о Scrum: “Мы без толку тратим время на митинги. Scrum не работает. Нужно что-то менять”.
Пытаясь как-то спасти положение, активисты Scrum вспоминают, что Scrum — это же еще и framework. Объявляется новая стратегия: “Мы не только Scrum, мы еще и Agile! Мы используем best practices, берем из Scrum только самое лучшее, то, что подходит конкретно для нашей ситуации, а все остальное лишнее и необязательно”. А раз так — “Мы — молодцы и все делаем правильно”.
GFDM и тензоры. Продолжение
Как избежать излишней сложности состояния приложения [перевод]
Реализации Flux, такие как Redux, мотивируют нас уделять больше внимания проектированию состояния приложения. Оказывается, это нетривиальная задача. Это похоже на классический пример из теории хаоса, когда, казалось бы, безобидный взмах крыльев бабочки ведёт к далеко идущим последствиям. Ниже приведены советы, которые помогут вам лучше организовать состояние приложения.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity