Архив за 12 марта 2018 - 3

Не так давно React позиционировал себя как "V in MVC". После этого коммита маркетинговый текст изменился, но суть осталась той же: React отвечает за отображение, разработчик — за все остальное, то есть, говоря в терминах MVC, за Model и Controller.

Одним из решений для управления Model (состоянием) вашего приложения стал Redux. Его появление мотивировано возросшей сложностью frontend-приложений, с которой не способен справиться MVC.

Главный Технический Императив Разработки ПО — управление сложностью

Совершенный код

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

  • состояние всего приложения хранится в одном месте
  • единственный способ изменить состояние — отправка Action'ов
  • все изменения происходят с помощью чистых функций

Смог ли Redux побороть возросшую сложность и было ли с чем бороться?

Читать полностью »

Анонс смартфона Xiaomi Redmi Note 5 ожидается лишь через несколько дней, но источник уже опубликовал цены на все варианты этого устройства.

Ожидается, что смартфон Xiaomi Redmi Note 5 будет представлен 16 марта

Как утверждается, смартфон, во многом напоминающий модель Redmi Note 5 Pro, будет предложен в вариантах с 3, 4 и 6 ГБ оперативной памяти. Первый получит 32 ГБ флэш-памяти, два других — по 64 ГБ. Во всех случаях основой устройства служит SoC Snapdragon 636.

Читать полностью »

Каждый человек должен построить дом, вырастить сына, посадить дерево. Веб-программист — должен создать свою CMS.

Я не говорю, на чем она будет создаваться (PHP, ASP,...), это не имеет никакого значения.

Я не говорю, стоит ли это делать вообще, ведь многое уже создано ранее да еще и распространяется бесплатно.

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

Поэтому, сразу к сути.

1. Сайт строится на основе некой структуры (ВНЕЗАПНО!), группе страниц, организованных в виде дерева.

Но, общее количество таких страниц не означает, что только они и будут. Структура — только основание.

2. Заметка — мельчайшая частица информации для построения сайта. Лист для дерева :)

Зайдя на сайт без заметок, можно будет перемещаться между страницами (вся навигация строится автоматически на основе структуры, но это НЕ ЕДИНСТВЕННЫЙ способ организации навигации, о чем будет рассказано чуть ниже), и — как бы и всё.

3. ЛЮБАЯ страница строится на основе шаблона.
Шаблон — обычная HTML-страница с размещением в необходимых местах специальных меток (поля редактирования).

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

При выводе чего-либо (страницы структуры, заметки и прочего) выбирается соответствующий шаблон и формируется уже готовая страница.
Читать полностью »

Машинное обучение превратилось в модный термин, но при работе с большими объёмами данных оно уже много лет является жизненной необходимостью. Яндекс обрабатывает более 200 миллионов запросов ежедневно! Когда-то в интернете было так мало сайтов, что наилучшие из них помещались в каталог, а теперь за релевантность ссылок на страницы в выдаче отвечают сложные формулы, обучающиеся на новых и новых данных. Задача ложится на так называемые конвейеры, регулярные процессы, обучающие и контролирующие эти формулы.

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

Познаём Нирвану – универсальную вычислительную платформу Яндекса - 1

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

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

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

Компания Huami объявила о начале глобальных продаж носимого электронного устройства Amazfit Cor. Новинка представляет собой браслет для мониторинга физической активности пользователя. Он позволяет увеличить отдачу от занятий физкультурой и следить за состоянием пользователя во сне. Цена Huami Amazfit Cor равна $79.

На одной зарядке аккумулятора Huami Amazfit Cor работает 12 дней

Читать полностью »

ImageMagick — свободный и кроссплатформенный редактор для работы с графикой.
Он состоит из нескольких консольных утилит. Его возможностей не счесть, как звезд на небе.
В сети есть множество примеров, как пользоваться им. Но большинство из них для Linux или PHP. Для Windows же их кот наплакал. Настало время восполнить пробел.
Читать полностью »

Как создать веб-сервис, который будет взаимодействовать с пользователями в реальном времени, поддерживая при этом несколько сотен тысяч коннектов одновременно?

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

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

В конце статьи приведены полезные ссылки на инструменты разработки, тестирования и мониторинга.

Читать полностью »

I ВСТУПЛЕНИЕ

Из хаоса каким-то образом рождается порядок.
Некоторые об этом узнают из газет со значительным опозданием, а некоторые по горькому опыту на месте и в процессе создания этого порядка.
Михаил Булгаков.

Просматривая статьи, посвященные той или иной теме, связанной с созданием программного обеспечения, часто наблюдаю, вот какую картину: узкая тема раскрыта интересно и профессионально, но вот когда задеваются нюансы на стыке, по ту сторону от основного вопроса, чувствуются рассогласованность и провалы в общем понимании процесса производства информационных систем. Разрываются причинно-следственные связи. Иногда, непонимание внешнего окружения обсуждаемого вопроса, вносит искажения в основную тему, ну или по крайней мере, затушевывает некоторые важные моменты, достойные внимания. Когда же вступаешь с автором в полемику, становится очевидным, что для него вопросы, выходящие за рамки его наблюдений и опыта, абсолютно неважны. Он просто упомянул всуе сопредельную тему, а дальше, как говорится, уже не его проблемы. Второй нюанс, на котором я хочу заострить внимание – пренебрежение масштабами замысла. Ведь то, что хорошо для реализации малых проектов, смерть для больших и наоборот. Этот факт часто попросту сбрасывается авторами со счетов. А в результате идут баталии с критиками решения, в которых каждый как бы и прав, но только с точки зрения своей отдельностоящей колокольни. Сами же точки зрения никак не обозначаются сторонами дискуссии, а потому никак не учитываются.

Исходя из всего вышесказанного, мне показалось, что будет весьма пользительно собрать и описать структуру процесса производства программных продуктов (ну хотя бы основных вариантов), при этом не вдаваясь глубоко в специфические детали, а фабулу изложить в формате, предельно доступном для широкого круга лиц. Естественно данная публикация – это лишь мой взгляд на предмет.
Читать полностью »

В своё время, когда Samsung выпустила смартфоны Galaxy A8 и Galaxy A8+ вместо Galaxy A5 и Galaxy A7, мы предположили, что аналогичная судьба может постичь и модели линейки Galaxy J.

Пока этому прямого подтверждения нет, но сторонние источники действительно уже начали называть грядущие новинки Galaxy J8 и J8+. И если первый уже попадал в базу Geekbench, то теперь пришёл черёд второго.

Google открыла код для машинного поиска экзопланет по данным с «Кеплера» - 1
Фрагмент Солнечной системы (слева) в сравнении с восьмипланетной системой Kepler 90 (справа). Обнаруженная нейросетью Google экзопланета Kepler 90i с периодом обращения 14 дней отмечена оранжевым цветом

Исследователи находят всё новые применения нейросетям для обработки изображений. Теоретически возможности машинного обучения с подкреплением (DL) поистине безграничны, но когда смотришь на реальные достижения этих программ — среди них не так уж много действительно полезных на практике. Чаще всего нейросети достигают успеха в какой-нибудь игре, выдавая в качестве положительного стимула количественный результат в очках. Но какой смысл, что ваш ИИ научился отлично играть в Counter-Strike, если он не способен реализовать свои знания на практике и обезвредить настоящих террористов?

Но в отдельных случаях DL всё-таки используют не только для изучения самого DL, но и для решения практических задач, важных для человечества. Например, они используются в здравоохранении, квантовой химии и ядерной физике (везде даны ссылки на исследования Google). Теперь к этому списку присоединилась астрофизика. Инженеры из подразделения Google Brain нашли две новые экзопланеты, обучив нейросеть анализировать данные с космического телескопа «Кеплер». Хотя это всего лишь предварительные результаты после обработки 670 звёздных систем, но они доказывают применимость машинного обучения в данной области.

8 марта 2018 года разработчики Google выложили на GitHub исходный код программы для обработки данных с «Кеплера», программ обучения нейросети и выдачи прогнозов по самым перспективным звёздным системам.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js