• RefluxJS — альтернативный взгляд на Flux архитектуру от Facebook

    • Translation
    От переводчика: посмотрев на ReactJS и вдохновившись его простотой, начал искать библиотеку, которая бы обеспечивала такой же простой обмен данными внутри моего приложения. Наткнулся на Flux, увидел примеры кода и пошел искать альтернативу. Набрел на RefluxJS, немедленно полюбил и пошел переводить официальную доку. Она написана как раз в стиле статьи, поэтому в первую очередь решил поделиться ей с Хабрасообществом. Перевод несколько вольный. Кое-где, если мне казалось, что что-то нуждается в дополнительном пояснении или примере, я не стеснялся.

    В переводе ниже в качестве перевода для термина Action из Reflux иногда используется термин «событие», а иногда — термин «экшен», в зависимости от контекста. Более удачного перевода мне подобрать не удалось. Если у вас есть варианты, жду предложений в комментариях.

    Обзор


    image image image image image

    RefluxJS — простая библиотека, обеспечивающая в вашем приложении однонаправленный поток данных, использующая концепцию Flux от Facebook.
    Читать дальше →
  • Переходим с STM32F103 на К1986ВЕ92QI. Или первое знакомство с российским микроконтроллером

    Введение


    В преддверии нового года я, как и многие россияне, активно следил за состоянием зарубежной валюты. Но не просто из-за собственного интереса, а из-за того, что на тот момент заканчивал свое устройство, которое требовалось показать на школьной и районной конференции. Так как в названии работы было такое слово как «бюджетное», то приходилось в презентации указывать стоимость каждого компонента, вплоть до резисторов и перемычек. Изначально, когда доллар стоил порядка 30 рублей, устройство и вправду было бюджетным. Как при домашней сборке, так и при конвейерной. Но когда цена доллара перевалила за 100 рублей, я решил, нужно искать альтернативу зарубежным компонентам.

    К этому моменту уже как несколько месяцев изучал работу микроконтроллеров STM32F100 и STM32F103, применяя их на практике в презентационном устройстве. От таких гигантов, как STM32F429, мне пришлось отказаться. Так как стоимость в 1800 рублей за корпус является заоблачной для «бюджетного» устройства, функционал которого только начал превосходить возможности AVR Atmega32.
    Читать дальше →
  • Анализ корзины покупателя средствами MS Excel и MS SQL Server

      image

      Если вы работаете в сфере торговли, то наверняка задача анализа корзины покупателя (Shopping Basket Analysis) будет вам интересна. Говоря простыми словами, данная задача сводится к тому, чтобы определить какие товары чаще всего покупаются вместе с другими товарами. Обладая этой информацией можно без труда увеличить объемы продаж, сделав выкладку товара в соответствии с результатами анализа, или реализовать систему рекомендаций покупателю при продаже товара.
      Читать дальше →
      • +3
      • 15.4k
      • 9
    • Ламповый усилитель



        Коротко, в основном фото (перезалил в хорошем качестве). Сразу скажу, что опыта и познаний в радиотехнике было мало, сделал много ошибок. Не являясь фанатичным любителем теплого лампового звука, для меня был интересен сам процесс сборки.
        Читать дальше →
      • RapidMiner – Data Mining и BigData у вас дома, быстро и без подготовки (почти)



          Пока маркетологи обмазываются BigData и бегают в таком виде на пресс-конференциях, я предлагаю просто скачать бесплатный инструмент с тестовыми наборами данных, шаблонами процессов и начать работать.

          Закачка, установка и получение первых результатов — минут 20 максимум.

          Я говорю про RapidMiner — опенсорсную среду, которая при всей своей бесплатности некисло «уделывает» коммерческих конкурентов. Правда, сразу скажу, что разработчики всё равно её продают, а в опенсорс отдают только предпоследние версии. Дома можно попробовать потому, что есть вообще бесплатные сборки со всей-всей логикой с всего лишь двумя ограничениями — максимальный объем используемой памяти 1 Гб и работа только с обычными файлами (csv, xls и т.п.) в качестве источника данных. Естественно, в малом бизнесе это тоже не проблема.
          Читать дальше →
        • Почему индийский аутсортинг обречен

            imageСовсем недавно в ходе обсуждения поста Опыт поиска работы на бирже Elance разгорелось горячее обсуждение способов конкуренции с индийцами и пакистанцами на площадках сайтов для фрилансеров. В продолжение этой темы публикую свой вольный перевод
            статьи Евгения Розинского о проблемах краудсортинга в Индии. По словам Евгения он имеет 15 летний опыт в этой области и знает о чём говорит. Это взгляд из США, со стороны работодателей. Статья была опубликована ещё в 2013 году, но проблемы которые в ней рассматриваются сегодня стали ещё более актуальными.

            Индийский ИТ-аутсорсинг стал бизнесом, который поставлен на поток. Бизнесом без каких-либо инноваций Единственным сомнительным плюсом которого является дешевизна. Но не миф ли это?

            Это не попытка написать научную статью или предсказать будущее. Это просто личное мнение, сложившиеся у меня на основе более чем 15 лет работы с различными поставшиками услуг в Индии и по всему миру. Не стоит рассматривать статью как попытку сформировать стереотип для каждого сотрудника страны с населением 1,2 миллиарда человек. На протяжении многих лет мне посчастливилось работать с блестящими индийскими инженерами и менеджерами, как в Индии, так и в США. Этой рецензией я пытаюсь описать индустрию аутсорсинга Индии в целом и отметить характерные проблемы с которыми мы сталкиваемся в качестве клиентов, а не людей, работающих там.

            Мои выводы и предположения базируются на том, что многие компании переходят к более гибким стратегиям разработки, в которых процесс принятия решений и способность адаптироваться является ключевой.
            Читать дальше →
          • 100 ресурсов для технологических предпринимателей

            • Translation


            На сегодняшний день существенное внимание уделяется советам для тех, кто занимается технологическими стартапами, но в большей степени нам бы пригодились ресурсы, сервисы и все, что помогает создавать, продавать и развиваться. Именно в этом и заключается суть нашей (дополненной и адаптированной) подборки – никаких советов, только инструментарий.
            Читать дальше →
            • +26
            • 46.4k
            • 3
          • Visual Studio Extensibility. Часть первая: MSBuild

            • Tutorial
            Привет Хабр, в этих статьях я попытаюсь осветить тему расширений Microsoft Visual Studio(а попутно ещё и MSBuild), т.к. эта сфера является крайне плохо документированной и вообще покрыта пеленой какой-то загадочности.


            Читать дальше →
          • Заполнение текстовых шаблонов данными на основе модели. Реализация на .NET с использованием динамических функций в байт-коде (IL)

            • Tutorial

            Пролог


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

            Сразу возник вопрос — как это реализовать? На ум приходили различные решения, начиная от задания в шаблоне неких константных значений, которые бы заменялись на данные модели, и заканчивая полноценными вьюхами Razor (сайт построен на MVC 5).

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

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

            Если вас интересует только шаблонизатор, ссылочки ниже:

            Исходные коды шаблонизатора (Genesis.Patternizer) и тестовой консоли в проекте на SourceForge: https://sourceforge.net/projects/open-genesis/?source=navbar
            Или в архиве одним файлом: Patternizer.zip

            Читать дальше →
          • «А что если», Event Sourcing

            Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
            Читать дальше →
          • Создаем автономный дрон на Intel Edison

            • Translation

            Мы продолжаем разговор о том, как самостоятельно сделать автономный летающий аппарат. В прошлый раз речь шла об элементной базе, механике и управлении, также мы оснастили свое устройство зайчатками разума на основе библиотеки OpenCV. Время двигаться дальше — нам нужно научить наш гаджет более тонким и замороченным вещам, другими словами — повысить его интеллектуальность.
            Во второй статье цикла наш коллега из Intel Paul Guermonprez предлагает сменить платформу и посмотреть, чего может добиться дрон на основе компьютера Intel Edison и главное — как это сделать. Ну а в самом конце поста предложение для тех, кто загорелся идеей воплотить все сказанное на практике. Уверяем вас, при определенных условиях получить бесплатно от Intel аппаратную платформу для экспериментов вполне реально!
            Читать дальше →
            • +23
            • 31.4k
            • 4
          • Построение масштабируемых приложений на TypeScript. Часть 1 — Асинхронная загрузка модулей

            Идея данной статьи родилась после тяжелого рабочего дня при 30 градусах в офисе и тяжких раздумий и холиваров на тему: «А как должно строиться современное веб-приложение?»

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

            О чем пойдет речь в данной статье? Я напишу (не)большое приложение на TypeScript, которое будет реализовывать модульную архитектуру, асинхронную загрузку модулей, абстрактную событийную модель и обновление состояния модулей по наступлению определенных событий. Эта статья будет выступать как бы дневником и журналом моих действий и размышлений. Моя личная цель — создать некоторый рабочий прототип, опыт создания которого я потом мог бы использовать в рамках реального проекта. Код будет писаться максимально аккуратно и близко к требованиям реальной разработки. Пояснения будут даваться так, будто это потом будут читать работающий под моим руководством джуниоры, которые вообще до этого никогда такие системы не писали.

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

            Итак, дав себе и сообществу эти обещания, включив AC/DC и собравшись с мыслями я приступаю.
            Читать дальше →
          • Почему в России почти нет гражданского/коммерческого высокотехнологичного производства?

              Статью с обзором ситуации с микроэлектроникой в России я закончил утверждением, что сейчас в России есть технические возможности для создания любых военных микросхем (если не считаться с ценой). Однако и в комментариях к той статье, и во многих других — всех больше волновал вопрос отсутствия (на уровне погрешности измерений) производства чисто-коммерческих (гражданских) высокотехнологичных продуктов. Этот вопрос волновал и меня, потому я постоянно мучил вопросами всех, кто так или иначе связан с высокими технологиями и бизнесом в России.

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

              Под катом попробуем разобраться чем отличаются «высокотехнологичные» компании от «низкотехнологичных», что нужно, чтобы высокотехнологичные компании могли рождаться и выживать, почему с софтом у нас лучше, чем с хардом, с чего начиналась кремниевая долина в США и можно ли её «скопировать», почему Китай всех рвет, а также — окинем взором все, что происходит в Сколково, Роснано, фонде перспективных исследований и приведут ли они к расцвету российских инноваций. Безусловно, я где-то могу ошибаться — буду рад дополнениям в комментариях.

              Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
              Читать дальше →
            • Must-read книги за 2014 год по ИБ и программированию

                Пока вся страна готовится к новому экономическому кризису, судорожно скупая всевозможные товары, продукты и недвижимость, мы предлагаем всем заняться саморазвитием, вложиться в себя. Ведь гречка с макаронами скоро будут съедены, но зато на новые харчи можно будет заработать, вложив время в самообразование. Сами понимаете, в непростые времена выгодно быть универсальным, неприхотливым и не болеющим. О последних двух качествах, возможно, поговорим отдельно, а сейчас обсудим ассортимент наиболее интересной литературы по информационной безопасности и программированию, опубликованной в 2014 году.

                Безопасность


                Тактика хакера: практическое руководство по тестированию на проникновение (The Hacker Playbook: Practical Guide To Penetration Testing)




                Книга написана в стиле планирования футбольной игры. Здесь подробно и пошагово разобраны проблемы и трудности, с которыми сталкиваются специалисты по безопасности, тестируя системы защиты. В частности, рассматриваются атаки на различные типы сетей, обход антивирусов и взлом систем безопасности. Автор книги — Питер Ким, специалист по IT-безопасности с многолетним опытом, CEO компании Secure Planet.
                Читать дальше →
              • Как делать простые анимации строительства в стратегических играх

                • Translation
                • Tutorial
                Во многих типах игр, не только стратегических, у вас есть участок земли, и на нём нужно что-то строить. Знакомая схема, не правда ли?

                image

                Как только вы перетаскиваете постройку из «магазина» на участок, она некоторое время строится. Обычно в это время там видна одна картинка, похожая на стройплощадку. Чтобы сэкономить память и бюджет, во многих играх нарисовано три таких «стройплощадки», под разные здания: маленькая, средняя и большая. Как только строительство закончено, стройплощадка превращается в готовое здание.

                Но что, если вы хотите более тонкие анимации, чтобы было видно, как здание постепенно растёт к небу?
                Читать дальше →
              • Продукты JetBrains по ценам прошлого года

                  Нас постоянно спрашивают: «Когда же будут скидки?». Отвечаем: «Скидки — есть!».

                  До 5 февраля на ВСЕ продукты JetBrains можно приобрести новую лицензию или обновить существующую со скидкой 40% от текущей цены.

                  На этот раз акция не международная, а только для жителей трех стран: России, Украины и Беларуси. Мы понимаем, что курсы валют сильно пошатнулись и изменили цены в последние месяцы, и надеемся, что наша акция как-то компенсирует это и позволит вам не экономить на производительности и качестве кода.

                  Как воспользоваться скидкой?
                  Читать дальше →
                • Быстрый голосовой набор на Asterisk

                    Статей по использованию сервисов распознавания речи в asterisk от Google и Яндекса на Хабре уже есть несколько. Но всегда хочется сделать что-нибудь свое и как-нибудь по-своему.

                    Так вот, хотелось сделать быстрый голосовой вызов абонентов из адресной книжки. Когда в организации работаешь с несколькими десятками человек, каждый день иногда забываешь и путаешь внутренние номера абонентов (а кнопок быстрого набора на всех не хватает). Поэтому просто надо, чтобы нажал кнопочку, сказал «Зина из третьего мобильный» и тебе отвечает Зина из третьего на своем мобильном.

                    Короткое видео с демонстрацией работы:


                    Читать дальше →
                  • Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

                    Содержание курса



                    Улучшение кода






                    Official translation (with a bit of polishing) is available here.




                    Постановка задачи


                    Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

                    Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



                    Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
                    Читать дальше →
                  • Асинхронная инициализация компонентов

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

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

                    Асинхронную логику я решил реализовывать через механизм async/await, а готовые к работе компоненты регистрировать в Unity.
                    Читать дальше →
                  • Интересное по хабу .Net за 2014 год

                      Мы с вами люди рабочие и зачастую не замечаем ничего что происходит за пределами нашей работы. Так и я, работая изо дня в день, знаю только про свой SpecFlow и смежные вопросы. Но ничего – по сторонам. Этим постом я хочу восполнить пробелы новостей в области .Net

                      Новости хаба .Net на Хабре занимают 33 страницы или 328 постов. Что говорит о том что новости появляются почти каждый день =) Посмотрим на самое интересное из них (на мой скромный взгляд). Ну и загляните под кат: до ката, конечно же, не все.

                      Доступен новый JIT: теперь с поддержкой SIMD
                      Как работает декомпиляция в .Net или Java на примере .Net
                      Microsoft раскрыла исходный код компилятора С#
                      Consulo: ~1000 коммитов, или как прошла осень
                      Под капотом у Stopwatch
                      Как тестировать код финализатора (c#). Послесловие: тест все-таки упал
                      Посмотреть на прочие статьи