• Руководство разработчика Prism — часть 1, введение

    • Перевод
    • Tutorial
    Если вы разрабатываете приложения для XAML-based платформ, таких как WPF, Silverlight, Windows Phone, или Windows Store, то Prism, определённо, сильно поможет вам упростить их разработку. После создания нескольких проектов с использованием Prism, я убедился в работоспособности такого подхода и решил подготовить перевод официального руководства Prism. Итак, часть первая, что же такое Prism.
    Оглавление
    1. Введение
    2. Инициализация приложений Prism
    3. Управление зависимостями между компонентами
    4. Разработка модульных приложений
    5. Реализация паттерна MVVM
    6. Продвинутые сценарии MVVM
    7. Создание пользовательского интерфейса
      1. Рекомендации по разработке пользовательского интерфейса
    8. Навигация
      1. Навигация на основе представлений (View-Based Navigation)
    9. Взаимодействие между слабо связанными компонентами

    Prism является руководством, разработанным для того, чтобы помочь проектировать и создавать насыщенные, гибкие и легко поддерживаемые Windows Presentation Foundation (WPF) приложения, Silverlight Rich Internet Applications (RIAs), и программы под Windows Phone 7-8, а также Windows Store приложений. Используя паттерны проектирования, которые воплощают важные принципы архитектурного дизайна, такие как разделение ответственности (Separation of Concerns, SoC) и слабая связанность (Loose coupling), Prism помогает вам проектировать и писать приложения со слабо связанными компонентами, которые могут независимо развиваться и потом объединяться в одно целое с минимальными усилиями. Этот тип приложений известен как составные приложения.

    Читать дальше →
  • Кроссплатформенная разработка с помощью .NET, реактивного программирования, шаблона MVVM и кодогенерации

    Reactive MVVM and .NET Standard

    Сегодня платформа .NET является по-настоящему универсальным инструментом – с её помощью можно решать широчайший круг задач, включая разработку прикладных приложений для популярных операционных систем, таких, как Windows, Linux, MacOS, Android и iOS. В настоящей статье рассмотрим архитектуру кроссплатформенных .NET приложений с использованием шаблона проектирования MVVM и реактивного программирования. Познакомимся с библиотеками ReactiveUI и Fody, научимся реализовывать интерфейс INotifyPropertyChanged с помощью атрибутов, затронем основы AvaloniaUI, Xamarin Forms, Universal Windows Platform, Windows Presentation Foundation и .NET Standard, изучим эффективные инструменты для модульного тестирования слоёв модели и модели представления приложения.

    Материал является адаптацией статей "Reactive MVVM For The .NET Platform" и "Cross-Platform .NET Apps Via Reactive MVVM Approach", опубликованных автором ранее на ресурсе Medium. Примеры кода доступны на GitHub.
    Читать дальше →
    • +20
    • 17,1k
    • 7
  • Как работает метод главных компонент (PCA) на простом примере



    В этой статье я бы хотел рассказать о том, как именно работает метод анализа главных компонент (PCA – principal component analysis) с точки зрения интуиции, стоящей за ее математическим аппаратом. Максимально просто, но подробно.
    Читать дальше →
  • Анализ корреляций биржевых фондов за первую половину 2020

    UPDATE Анализ устарел минимум на полгода. Более свежий анализ на февраль 2021 здесь.


    На Московской Бирже торгуется сейчас 44 ETF и БПИФа. Это биржевые фонды, которые держат в себе готовые специализированные портфельчики и запакованные в stand-alone акцию (будто микросервис в докер-контейнере). Эту акцию можно купить, получив долю в общем портфеле.


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


    Корреляционная матрица
    Есть интерактивная версия матрицы (осторожно, трафик)


    Начнем сразу с результатов анализа биржевых фондов. В матрице выше — корреляции всех ETF и БПИФ, которые появились до января 2020. До 20-го года БПИФов было слишком мало, анализировать там нечего.

    Читать дальше →
  • Оценка премии опционов — аналитические формулы vs моделирование

    Введение


    На волне хайпа криптовалют проскакивают новости о торговле биткойном на мировых биржах CME и NASDAQ. Для меня это знаковое событие: руки корпораций, надувавших пузыри доткомов и ипотек, дотянулись и до золота шифропанков — криптовалют. А в арсенале этих самых корпораций мощный рычаг — производные финансовые инструменты, или деривативы.

    Находясь под впечатлением прочитанных не так давно историй взлетов и метаморфоз рынков деривативов — прежде всего, фьючерсных и опционных контрактов, я заинтересовался нетривиальным ценообразованием опционов. Мне открылось, что, хотя интернет полон рерайтов статей, толкующих знаменитую формулу Блэка-Шоулза, практических инструментов — web-сайтов, технологических программ или банальных руководств для программиста — не математика, по данному вопросу в интернете недостает. Пришлось вспомнить азы тервера и адаптировать строгие математические описания в популярном, понятном, прежде всего, мне самому, формате.
    Читать дальше →
  • Генетический советник для торговли опционами



    При торговле опционами одна из главных задач состоит в определении справедливой цены опциона. На основании нее можно понять какие опционы недооценены рынком, а какие переоценены в данный момент. Исходя из этого и принимаются решения о покупке или продаже конкретного опциона. В данной статье рассматривается опыт создания советника в основе которого лежит Генетический Алгоритм (ГА), позволяющего как раз автоматизировать процесс выбора опционов для продажи и покупки соответственно Советник, в отличие от торговых роботов (или Механических Торговых Систем — МТС), не производит сделок, он лишь дает рекомендации трейдеру, который уже самостоятельно принимает решение совершать сделку или нет.

    Для начала — пару слов о генетическом алгоритме:

    Подробно описывать генетический алгоритм не имеет смысла, поскольку эта тема хорошо представлена и на данном ресурсе и вообще на просторах Интернета. Остановлюсь только на основных моментах, которые необходимы для понимания концепции генетического советника в целом.
    Читать дальше →
  • Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

    Оглавление

    Часть 1 — линейная регрессия
    Часть 2 — градиентный спуск
    Часть 3 — градиентный спуск продолжение

    Введение


    Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

    Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
    Читать дальше →
  • Письмо начинающему изучать Data Science

    Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.


    Нейронные сети – это...

    Читать дальше →
  • Data Science: книги для начального уровня

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

      Ключевыми навыками для начинающих специалистов являются:

      • умение писать код (Python);
      • способность визуализировать свои результаты;
      • понимание того, что происходит «под капотом».

      На эти три категории разделены книги, которые специалисты Plarium Krasnodar подобрали для читателей с начальными знаниями в Data Science.

      Читать дальше →
      • +17
      • 58,7k
      • 8
    • Коммуникации как performance-зона работы тимлида

        Участники Saint TeamLead Conf назвали доклад Александра Зизы одним из лучших вероятно потому, что от навыков коммуникации тимлида зависит многое, а развиты они, как правило, не очень хорошо.

        Рассказ будет состоять из четырех смысловых блоков:

        1. Про коммуникацию. Коснемся того, что такое коммуникация, в чем основная проблема с коммуникацией, почему о ней так много говорят и пишут. Все ученые философы мира, начиная с Аристотеля пытаются решить эту задачу, но окончательного решения «взять и сделать» до сих пор нет.

        1. Высокоэффективные коммуникации: 4 типа позиционной коммуникации. Эта часть посвящена техническим вопросам, связанным с построением высокоэффективной коммуникации. Грубо говоря, что нужно делать в конкретной ситуации, для того чтобы коммуникация была эффективна.

        1. Мастерство: 4 уровня развития компетентности. Здесь поговорим про личное мастерство руководителя, который осуществляет свое управленческое воздействие через коммуникацию.

        1. План на три недели: ежедневник, домашние задания. Последний смысловой блок содержит трехнедельный план по прокачке коммуникационных навыков.




        Ниже вы найдете видео и текстовую версию этого выступления, но просто так посмотреть или прочитать его недостаточно. Надо постараться тут же начать применить подходы на практике, и Александр вас в этом убедит. Фактически это часть программы по развитию управленческих компетенций, по прокачке навыков тимлида с подробным руководством к действию и заготовкой для домашнего задания.
        Читать дальше →
        • +25
        • 11,7k
        • 7
      • Двадцать задачек (по безумной, восхитительной геометрии)

        • Перевод
        Предупреждение врача. Остерегайтесь этих головоломок. Побочные эффекты могут включать потерянное послеобеденное время, скомканные волосы и восклицания «А-а-а-х, вот как это делается» настолько громкие, что могут треснуть оконные стёкла.

        Несколько месяцев назад я наткнулся в твиттере на математические головоломки Катрионы Ширер. Они сразу меня увлекли: каждая головоломка такая осязаемая, ручной работы, словно просит её решить. И на каждую вы можете легко потратить час времени, а то и больше.

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

        Наслаждайтесь. И не говорите, что врач не предупреждал.
        Читать дальше →
      • Как создать своего бота без навыков программирования и подключить его к Яндекс.Алисе


          Как мы уже писали в своей первой статье, мы в Just AI специализируемся на технологиях искусственного интеллекта для понимания естественного языка (NLU). У нас есть своя платформа для разработки разговорных ассистентов, как текстовых, так и голосовых. Платформа имеет развитую функциональность для решения NLP-задач (кластеризация логов, поиск семантически близких фраз и др.) и собственный язык разработки (Just AI DSL). С использованием DSL команда лингвистов-разработчиков пишет код сценариев чатботов, интеграционные модули для связи с внешними системами, а также автотесты.

          В этой статье мы расскажем о созданном нами инструменте для разработки ботов под разные платформы, в том числе для Яндекс Диалогов, без знания DSL и навыков программирования.
          Добро пожаловать под кат
        • Джеб Кличко

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

            Расскажу, чему я учился у Кличко. Если вам этот рассказ пригодится, в любом виде – отлично. Программисты должны помогать друг другу.
            Читать дальше →
          • Git снизу вверх

            • Перевод
            У этого перевода не совсем обычная история. Системы контроля версий далеки от моих профессиональных интересов. Для рабочих проектов они мне требовались нечасто, причем, разные, так что, каждый раз, когда возникала такая необходимость, я заново вспоминала, как в них делается та или иная операция. А для личных проектов мне хватало возможностей Dropbox, хранящей историю версий файлов.


            Изображение из твиттера @girlie_mac

            Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года, подросшей дочке уже пора самой начинать использовать Git Git стал мейнстримом, если не сказать стандартом в современной разработке, а я с удивлением обнаружила, что перевода на русский этого чуда, полезного не только начинающим, но и продвинутым пользователям Git, до сих пор нет. Исправляю эту ситуацию.
            Читать дальше →
          • Суррогаты

              Бизнес не любит:

              1. 1С-Франчайзи, программистов 1С вообще, и почти все, что те делают;
              2. веб-программистов и компании, создающие и продвигающие сайты, и все продукты их работы;
              3. системы менеджмента качества и людей, которые занимаются их внедрением;
              4. бухгалтеров и бух.учет;
              5. экономистов со всеми их гигантскими экселевскими портянками;
              6. внутренние проекты развития, на которые без слез уже смотреть невозможно;
              7. Scrum и все эти доски, на которых неделями висят одни и те же стикеры;
              8. ТОС, после внедрения которого дефицитов и неликвидов становится еще больше;
              9. Контроллинг, который дает цифры позже, чем бух.учет;
              10. KPI, адекватность которого приходится доказывать самому себе каждый раз, когда приносят эти цифры;
              11. Системы мотивации, которые, как ни крути, «оклад+премия», хоть и названы модными словами, типа «грейд».

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

              При этом, как ни странно, бизнес любит:

              1. повышение прибыльности бизнеса за счет автоматизации;
              2. увеличение количества лидов и рост оборота за счет правильного продвижения;
              3. повышение качества процессов производства и бизнес-процессов;
              Читать дальше →
            • UX-дизайн: 50 вещей, которые вы наверняка забыли сделать

              • Перевод
              «Я не злюсь, я просто разочарован.»
              — PM

              image


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

              Представляем вам чеклист из 50 пунктов для самопроверки. Вот примерные подразделы:

              1. Логин и регистрация
              2. Первый опыт
              3. Важные детали
              4. Запуск
              5. Профиль
              6. Безумные потоки


              Читать дальше →
            • UI тесты: Cucumber + Selenide

              • Tutorial

              Часть 2


              Продолжение статьи о написании UI тестов на Cucumber с помощью Selenide. В первой части был разобран простейший пример smoke-теста для riskmarket.ru. В этой части апгрейдим тест до полноценного проекта с отчетами, поговорим о скриншотах, кастомных Condition, проаннотируем элементы, введем PageObject.


              Получившийся проект вполне можно использовать как фундамент для ваших UI тестов.


              Проект на гитхабе


              Видео исполнения теста на youtube



              Читать дальше →
              • +6
              • 24,2k
              • 2
            • Каково это — быть разработчиком, когда тебе сорок

              • Перевод
              Примечание от переводчика:

              Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



              Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

              Пару недель назад я наткнулся на твит, в котором была картинка, прикрепленная ниже, и он заставил меня задуматься о моей карьере.

              image

              Эти размышления привели меня туда, откуда все начиналось.

              Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

              Мир в 1997 году


              Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

              Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
              Читать дальше →
            • Игры, которые учат программированию



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

                У каждого есть возможность воспользоваться специально созданной для обучения школьников средой программирования Scratch, которую разрабатывают специалисты одного из самых престижных технических учебных заведений США и мира — Массачусетского технологического института. Или игрой Minecraft, за которую Microsoft год назад заплатила $2,5 млрд и с помощью которой, в том числе, планирует обучать детей программированию. Или обучающими играми, которые создают энтузиасты и добровольцы во всём мире.

                Препятствием для использования подобных ресурсов может быть неосведомлённость о их существовании или незнание языка. Действительно, англоязычных ресурсов и игр значительно больше. Но существуют и русскоязычные игры, обучающие программированию.
                Читать дальше →
              • 400 потрясающих бесплатных сервисов

                • Перевод

                Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

                И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



                A. Бесплатные веб-сайты

                • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
                • Bootswatch: Бесплатные темы для Bootstrap.
                • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
                • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
                • Strikingly: Конструктор веб-сайтов.
                • Layers: Создание сайтов на WordPress (new).
                • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
                • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
                Читать дальше →