Pull to refresh
@napa3umread⁠-⁠only

Программист

Send message

33 способа ускорить ваш фронтенд в 2017 году

Reading time20 min
Views85K

enter image description here


Вы уже используете прогрессивную загрузку? А как насчёт технологий Tree Shaking и разбиения кода в React и Angular? Вы настроили сжатие Brotli или Zopfli, OCSP stapling и HPACK-сжатие? А как у вас обстоят дела с оптимизацией ресурсов и клиентской части, со вложенностью CSS? Не говоря уже о IPv6, HTTP/2 и сервис-воркерах.

Читать дальше →
Total votes 87: ↑84 and ↓3+81
Comments39

Нейросетка играет в Доту

Reading time8 min
Views38K


Всем привет! На самом деле нейросетка играет не в привычную Dota 2, а в RussianAICup 2016 CodeWizards. RussianAICup — это ежегодное открытое соревнование по программированию искусственного интеллекта. Участвовать в этом соревновании довольно интересно. В этом году темой была игра похожая на Доту. Так как я уже какое-то время занимаюсь обучением с подкреплением, то мне хотелось попробовать применить это в RussianAICup. Главной целью было научить нейронную сеть играть в эту игру, хотя занятие призового места — это, конечно, было бы приятно. В итоге нейросеть держится в районе 700 места. Что, я считаю, неплохо, ввиду ограничений соревнования. В этой статье речь пойдет скорее об обучении с подкреплением и алгоритмах DDPG и DQN, а не о самом соревновании.
Но обо всем по-порядку
Total votes 46: ↑44 and ↓2+42
Comments63

Строгое определение понятий: объект, состояние, событие, бизнес-операция и бизнес- функция

Reading time11 min
Views17K
В текущей статье я определю следующие термины: объект, состояние, событие, операция, функция. Я расскажу о том, как можно представить себе их. В качестве мета-метамодели для моделирования мы возьмем теорию множеств, а не MOF. Почему именно ее? Потому что это единственный на сегодняшний день известный способ моделирования, который имеет математическую основу, границы применимости которого нам хорошо известны, достаточно широки и обоснованы.


Прошлые статьи вызвали оживленную дискуссию среди тех, кто использует для моделирования предметных областей инструменты ООП: языки ООП, нотацию UML. Несмотря на то, что я постоянно подчеркиваю, что объекты учета, о которых я веду речь, не моделируются средствами UML, и объясняю почему, тем не менее, вопрос об их моделировании методами ООП поднимается снова и снова. Наверно, мне надо еще раз рассказать, чем так плох ООП для моделирования предметных областей.
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments222

Что такое сознание

Reading time25 min
Views112K


Одним из самых главных научных вопросов Человечества, считается вопрос: «Что такое сознание?». Как Человек думает, принимает решения, как происходит мышление, анализ и интерпретация различных внешних раздражителей и т.д. Ответы на эти вопросы, а также что такое сознание, главный вопрос жизни, вселенной и всего такого под катом.
Total votes 26: ↑22 and ↓4+18
Comments165

Брутальное аниме для бородатых программистов

Reading time4 min
Views81K

Бытует мнение, что в груди даже самого сурового бородатого программиста бьётся большое и нежное сердце, в глубине которого всегда найдётся местечко для доброго аниме. Но в жизни бывают моменты, когда настроение не располагает к кавайности: код не прёт, баг не ловится, алгоритм криво работает, тимлид вставил за сорванный дедлайн. И тогда хочется посмотреть что-то суровое, брутальное, мужское. Что же, мир аниме очень разнообразен и может предложить произведения на любой вкус.
Total votes 51: ↑39 and ↓12+27
Comments200

Сложнейшая проблема компьютерных наук

Reading time12 min
Views19K
… это, конечно же, именование сущностей. И я говорю не только об именах переменных или новых технологий, нет. Мы не можем договориться даже о самых базовых терминах.

Тысяча диалектов


Знаете ли вы, что спецификация языка программирования С часто упоминает термин «объект»? Нет, это не объект в том понимании, как он описывается в ООП — объект в С определяется как «блок данных в среде выполнения, содержимое которого может представлять некоторое значение». В этом понимании объекта имеет смысл говорить о, например, «объекте типа char».

Термин «метод» достаточно распространён, но вы можете встретить программистов, которые будут говорить исключительно «функция-член класса». Язык программирования Java, поэтому, то ли имеет, то ли не имеет функций, в зависимости от того, кого вы об этом спросите. Термины «процедура» и «подпрограмма» иногда используются как аналог «функции», но в некоторых языках программирования (например, Pascal) процедура это совершенно не то же самое, что функция.

Даже в рамках одного языка программирования мы, бывает, путаемся.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments52

Разбор статистической языковой модели от Google — часть 1: векторное представление символов

Reading time8 min
Views15K
В этом году исследователи из Google Brain опубликовали статью под названием Exploring the Limits of Language Modeling (Исследование границ языкового моделирования), в которой была описана языковая модель, позволившая значительно снизить перплексию (с примерно 50 до 30) на словаре One Billion Word Benchmark.

В этом посте мы расскажем про самый низкий уровень этой модели — представление символов.


Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments2

Иллюзии мозга. Иллюзия «конца истории»

Reading time4 min
Views24K

Рисунок: Randy Mora

Иллюзия конца истории — очень интересный феномен, который проявляется у людей практически всех возрастов (исследование 2013 года проводили на выборке более 19 000 респондентов в возрасте от 18 до 68 лет). Суть этой иллюзии в том, что люди любого возраста считают, что их личность сильно изменилась в прошлом, но слабо изменится в будущем. Эффект очень стабильный и, повторим, проявляется в любом возрасте.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments21

Изменение рациона древних людей — одна из причин развития цивилизации

Reading time3 min
Views18K

Фрагмент наскальных рисунков из Сахары

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

Причем дело вовсе не в том, что люди плохо охотились или было мало животных, в особенности, если речь идет о регионах с мягким климатом. Современные исследования, проведенные антропологами в Ливийской пустыне, показывают, что уж в этом регионе было полно животных, птиц. Несколько тысяч лет назад здесь не было пустыни, вместо нее простиралась бескрайняя саванна с большим количеством озер и растительности. Здесь люди жили в очень благоприятных условиях.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments7

Нейросеть определяет тунеядцев по метаданным сотовой сети с вероятностью 70,4%

Reading time4 min
Views47K

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

Благодаря социальным сетям и метаданным сотовой связи специалисты получили удобный и достаточно точный инструмент для изучения общества. Некоторую информацию люди публикуют в соцсетях сознательно, а часть важных данных выдают непроизвольно. Скажем, анализ анонимных метаданных сотовой связи показывает трафик на дорогах, скорость движения автомобилей, образование пробок, пассажиропотоки общественного транспорта. Это довольно логичные варианты дата-майнинга. А вот группа учёных из Telenor Group Research, MIT Media Lab, Flowminder Foundation и Стокгольмской школы экономики нашла весьма нестандартный вариант. Исследователи доказали, что по логам сотовой связи можно предсказывать… занятость. Довольно точно определяются безработные и представители ещё 17 родов занятий.

По информации учёных, это первое в мире исследование такого рода, когда безработных или профессию человека вычисляют на индивидуальном уровне с помощью глубинного обучения по логам сотовой сети. Раньше исследователи пытались предсказать только общий уровень безработицы по мобильным данным, но не профессии конкретных людей.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments50

Математика биологических переключателей

Reading time8 min
Views9.1K
(продолжение. Предыдущая часть: «Автоматика из ДНК и белков: что у нее общего с электроникой?»)

image

Мы остановились на том, что лактозный оперон похож на логический элемент AND. Но откуда у него берутся цифровые свойства? Ведь оба входных сигнала (концентрации цАМФ и лактозы), вообще-то, аналоговые. Попробуем нарисовать входные функции лактозного оперона.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments11

Создайте свои собственные “Нейронные Картины” с помощью Глубокого Обучения

Reading time3 min
Views20K


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

Сегодня я собираюсь познакомить вас с тем как это делается. Прежде всего, убедитесь, что у вас обновленная копия Ubuntu (14.04 — та, что использовал я). Вам необходимо иметь несколько гигов свободного пространства на жестком диске и в оперативной памяти, хотя бы не менее 6 GB (больше оперативки для больших выводимых разрешений). Для запуска Ubuntu как виртуальной машины, вы можете использовать Vagrant вместе с VirtualBox.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments16

А MVC ли это?

Reading time6 min
Views25K
Добрый день!

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

За последние две недели, в беседах с десятком знакомых программистов я выяснил, что все представляют себе MVC совершенно по-разному. Доходит до диаметрально противоположных взглядов, но по какой-то причине, все настаивают, что это MVC и что он должен выглядеть именно так, и находятся в полной уверенности, что все его так и видят.
Читать дальше →
Total votes 95: ↑81 and ↓14+67
Comments47

Специалисты по информатике идут нехожеными дорогами

Reading time6 min
Views20K

Спустя десятилетия застоя, найдены новые короткие пути для задачи коммивояжёра


image

Не так давно команда исследователей из Стэнфорда и Университета Макгилла побили 35-летний рекорд по информатике на невообразимо малую величину – на четыре сотых триллионной триллионной триллионной доли процента. Прорыв – сделанный в классической для информатики задаче коммивояжёра – был слишком малым для какого бы то ни было практического значения, но он вдохнул новую жизнь в поиски улучшенных приближённых решений.

Задача формируется так: для набора городов, соединённых дорогами, необходимо найти кратчайший путь посещения каждого города с возвратом в точку старта. У решений задачи есть практические применения от сверления отверстий в печатных платах до управления расписанием задач на компьютере и упорядочивания свойств генома.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments13

Нейронные сети на JS. Создавая сеть с нуля

Reading time8 min
Views91K

КПДВ про нейронные сети


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


Но врожденные любознательность и энтузиазм довели меня до того, что я стал одним из разработчиков Synaptic — проекта фреймворка для построения нейронных сетей на JS с 3к+ звезд на GitHub. Сейчас мы с автором фреймворка занимаемся созданием Synaptic 2.0 с ускорением на GPU и WebWorker-ах и с поддержкой почти всех основных фич любого приличного NN-фреймворка.


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

Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments43

Порождение и выбор моделей машинного обучения. Лекция в Яндексе

Reading time11 min
Views22K
Применение машинного обучения может включать работу с данными, тонкую настройку уже обученного алгоритма и т. д. Но масштабная математическая подготовка нужна и на более раннем этапе: когда вы только выбираете модель для дальнейшего использования. Можно выбирать «вручную», применяя разные модели, а можно и этот процесс попробовать автоматизировать.


Под катом — лекция ведущего научного сотрудника РАН, доктора наук и главного редактора журнала «Машинное обучение и анализ данных» Вадима Стрижова, а также большинство слайдов.

Total votes 50: ↑49 and ↓1+48
Comments1

Вплетение нарратива в процедурные миры

Reading time17 min
Views16K
image

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

Теперь, когда эта часть мира Cogmind оформилась и близка к завершению, я хотел бы исследовать новую территорию, и порассуждать о том, как и зачем интегрировать элементы истории в жанр, традиционно небогатый на сюжет.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments24

Худой Scrum лучше доброго Agile

Reading time12 min
Views29K
Залп скосил 50 офицеров и 760 рядовых. Французы дрогнули, запаниковали и — обратились в бегство. «Тут дела наши пошли не вполне хорошо», — описывает этот момент битвы официальная французская депеша.

Келли Дж. Порох. От алхимии до артиллерии.

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

Пытаясь как-то спасти положение, активисты Scrum вспоминают, что Scrum — это же еще и framework. Объявляется новая стратегия: “Мы не только Scrum, мы еще и Agile! Мы используем best practices, берем из Scrum только самое лучшее, то, что подходит конкретно для нашей ситуации, а все остальное лишнее и необязательно”. А раз так — “Мы — молодцы и все делаем правильно”.


Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments16

GFDM и тензоры. Продолжение

Reading time8 min
Views15K
Сначала я хотел не углубляться в тензоры и описать их мимоходом, касаясь только используемого мной функционала. Однако я изменил свое мнение и решил рассказать больше. Добро пожаловать в многомерный мир.

Какие еще тензоры?
Total votes 16: ↑15 and ↓1+14
Comments10

Как избежать излишней сложности состояния приложения [перевод]

Reading time9 min
Views18K


Реализации Flux, такие как Redux, мотивируют нас уделять больше внимания проектированию состояния приложения. Оказывается, это нетривиальная задача. Это похоже на классический пример из теории хаоса, когда, казалось бы, безобидный взмах крыльев бабочки ведёт к далеко идущим последствиям. Ниже приведены советы, которые помогут вам лучше организовать состояние приложения.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments7

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity