• Введение в React и Redux для бекенд-разработчиков



      Если вы как я долгое время считали, что JavaScript – это такой «игрушечный» язык на котором пишут анимашки для менюшек и падающие снежинки на форумах под новый год, а потом очнулись в 2016 году с мыслями WTF: react, flux redux, webpack, babel,… не отчаивайтесь. Вы не одиноки. Материалов по современному фронтенду в сети много, даже слишком много. Под катом еще одно альтернативное мнение о том, каково это учить JavaScript в 2016 году.
      Стань модным
    • Вступление в Реактивное Программирование, которое вы пропустили

      • Translation
      Ну что ж, вы решили выучить новую вещь, которая называется Реактивное программирование (Reactive Programming), а в частности — его имплементацию в виде Rx, Bacon.js, RAC или чего-то другого.
      Читать дальше →
    • Основы многопоточности в .NET Framework



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

          Посмотрите на это фото.



          Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

          Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

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

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



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






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




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


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

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



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

          image

          В данной статье я расскажу как в приложениях Augmented reality по найденому расположению объекта в сцене построить 3D-пространство. Для этого необходимо получить две матрицы – проекционную (GL_PROJECTION) и модельную (GL_MODELVIEW) для работы, например, в OpenGL. Делать это мы будем средствами библиотеки OpenCV.

          Недавно приходилось решать эту задачу, но ресурса, где просто поэтапно объяснялось как это сделать я не нашел (может плохо искал), а подводных камней в данной проблеме хватает. В любом случае, статья на хабре описывающая эту задачу не повредит.
          Читать дальше →
          • +59
          • 14.6k
          • 9
        • 24 недели Metro-дизайна для Windows Phone | #2 Процесс проектирования приложений для Windows Phone

          • Translation
          Сегодня я расскажу о процессе проектирования приложений Windows Phone, которым я пользуюсь. Хотя многое из этого представляет собой обычные этапы для процесса проектирования, я попытаюсь объяснить их именно с точки зрения дизайна приложений для Windows Phone. Пишите мне в твиттер, если у вас есть какие-либо замечания, вопросы, или оставьте комментарий в блоге.

          Эта статья покрывает процесс от начала и до конца, так что я буду рассказывать о высокоуровневых понятиях, а в ближайших статьях мы начнем более подробное изучение каждого из этапов. В следующей статье, например, мы начнем с придумывания идей и концепции — всё, что касается историй, эскизов, раскадровок и грубых (бумажных) прототипов.
          Читать дальше →
          • +40
          • 4.6k
          • 7
        • Нейронные сети. Часть 1. Основы искусственных нейронных сетей

            Доброго времени вам суток, уважаемое Хабрасообщество.

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

            UPD: данный текст в основном является обобщением из прочитанной литературы. Он не написан мною лично. По крайней мере эта часть.
            UPD2: Скорей всего продолжения данной темы не будет, так как хабрапользователь stepan_ovchinnikov, который является смотрителем данного блога, считает, что нет смысла писать здесь то, что можно прочитать из многочисленной литературы, которая есть по нейронным сетям. Так что извините.

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

            Эта статья предназначена для тех, кто либо вовсе не слышал о Shodan, либо слышал, но так и не понял, как им пользоваться. Подобных материалов на русском языке я не нашел, часть информации почерпнул тут, остальное добавил из личного опыта. Я приведу примеры использования «самого страшного поисковика интернета» по имени Shodan. Сервис разработан web-девелопером Джоном Мазерли (John Matherly) и ориентирован, прежде всего, на поиск устройств подключенных к интернету.

            Shodan опрашивает порты устройств и на основе полученных ответных баннеров делает выводы об устройствах и сервисах. Поисковик платный, годовая подписка обойдется в 20$, однако, попробовать его в действии можно и за так: после бесплатной регистрации доступно 50 результатов поиска. Историю создания и биографию автора найдете сами, если будет интересно, а пока перейдем к делу:
            Читать дальше →
            • +26
            • 214k
            • 9
          • App Studio – новая версия онлайн конструктора приложений от Microsoft



              Привет Всем!

              Представляю вашему вниманию новый инструмент от Microsoft «Windows App Studio» — конструктор для создания приложений. Сегодня расскажу о том, как обычному пользователю стало доступно создание приложений для Windows и Windows Phone. И немного о том чем этот инструмент может быть полезен разработчику.
              Читать дальше →
              • +22
              • 41.2k
              • 5
            • Обзор Windows­-приложений для наведения порядка в фотоархивах

                Задавшись вопросом найти все фотографии близкого человека, или разбирая фотки из похода, турпоездки и т.д. мы часто начинаем мониторить папки на компьютере. Однако, уже спустя час-другой многие бросают эту затею, пройдя меньше половины фотоархива и устав от поиска ненужных снимков среди сотен «Новых_папок_222» и десятков «DCIM».

                image

                Мы торопимся жить. Наши воспоминания складируются в папки, сливаются с флешек фотоаппаратов, синхронизируются cо смартфонов и… забываются. В этом обзоре постараюсь отметить сильные и слабые стороны приложений, доступных обычным людям с Windows, которые могут подарить нашим воспоминаниям вторую жизнь.
                Читать обзор
              • Публикуйте приложения в Windows Store и Windows Phone Store и выигрывайте призы

                  image

                  Если вы портируете уже существующее мобильное приложение или создаете новое, вы можете выиграть поездку на Formula 1 United States Grand Prix 2014, $10 000 на создание собственного современного уголка разработчика, принтер MarketBot 3D или смартфон Nokia Lumia 1520.
                  Читать дальше →
                • WPF: Что делать, когда свойство не поддерживает привязку

                  • Tutorial

                  Введение


                  WPF — замечательная технология, которую, не смотря на все ее недостатки, очень люблю. Тем не менее, часто приходится писать не разметку, а код, который помогает первой работать как надо. Хотелось бы этого избегать и писать чистый XAML, но до сих пор ни одно мое приложение сложнее простого не обходилось без различных хелперов (классов-помощников), написанных на C#. К счастью, есть распространенные случаи, где можно одним хелпером решить сразу группу проблем.

                  Речь ниже пойдет о привязке в обычных свойствах визуальных элементов, которые не являются свойствами зависимостей (dependency properties). Штатными средствами WPF этого сделать не получится. Ко всему прочему, мы не можем узнать об изменениях такого свойства, кроме как подписавшись на специальное событие, что противоречит шаблону MVVM. Такие события для каждого свойства могут быть свои. Самый распространенный пример — это PasswordBox и его свойство Password. Так у нас сделать не получится:

                  <PasswordBox Password={Binding OtherProperty} />
                  

                  Не будем вдаваться в подробности, зачем разработчики PasswordBox не разрешили привязываться к свойству пароля. Подумаем, что тут можно сделать.
                  Читать дальше →
                • События C# по-человечески


                  Невозможно, просто взять и вникнуть в этот глубокий смысл, изучая События (event) в просторах базового и, на первый взгляд, бесконечного C#.

                  Когда я изучал События (не в рамках .NET!), потратил много сил, чтобы, наконец-то, разобраться, как они устроены и должны конструироваться. Поэтому, я решил опубликовать свою методику понимания структуры пользовательского события, коим представляется ключевое слово event в С#.
                  Не буду цитировать и без того замученную MSDN, а постараюсь объяснить понятно и доступно.
                  Читать дальше →
                • Асинхронный JavaScript (книга)

                    image
                    Ответьте на три вопроса по JavaScript. Если какой-то из них вас затруднит, вам следует прочесть отличную книгу Тревора Бернхема (Trevor Burnham) — Async JavaScript. Всего 90 страниц, но здесь разобраны такие темы, как событийный цикл JavaScript, синхронность/асинхронность, однопоточность/многопоточность (воркеры), promises, fibers и еще много чего интересного.

                    Итак, что выдаст следующий код?
                    for (var i = 1; i <= 3; i++) {
                        setTimeout(function(){ console.log(i); }, 0);
                    };
                    

                    Ответ
                    4
                    4
                    4
                    Еще вопросы
                  • Теория относительности в картинках

                    • Tutorial
                    В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
                    Под катом много картинок (и ни одной формулы).
                    Читать дальше →
                  • Путешествия во времени и программирование 2: парадоксы


                      Эпоха путешествий во времени еще не наступила, а человечество уже давно пытается разрешить сопутствующие им парадоксы. Мы поговорим о самом очевидном из них: что же все-таки произойдет при вмешательстве в ход истории? Существует несколько вариантов того, как поток времени реагирует на действия путешественника из будущего. Эти модели можно увидеть в фантастических фильмах, о них все больше начинают говорить ученые, но какая модель ближе к истине — единого мнения пока нет. Мы только начинаем проникать в тайны времени, и еще не обладаем возможностью экспериментировать с перемещениями в прошлое. Что же можно прояснить в данном вопросе уже сейчас? Под катом нас ждет экскурсия по основам механики времени, мы порассуждаем о парадоксах, и проведем небольшой эксперимент. Да, это будет испытание виртуальной машины времени, построенной на основе алгоритма «Жизнь»!
                      Читать дальше →
                    • Основной цикл в Javascript



                      Все мы слышали про ajax и node.js. Они прочно обосновались уже не просто в словарном запасе, но и в наборе инструментов веб-разработчика. Ajax — асинхронное подтягивание данных с сервера на страницу, node — фреймворк с асинхронным IO. Но как в таком однопоточном языке, как Javascript, реализуется та самая асинхронность?

                      Вы, наверное, уже догадались из заголовка, речь пойдет об основном цикле («main loop»).
                      Читать дальше →
                    • Мои маленькие хитрости при онлайн-обучении на Coursera

                        Давайте пообщаемся на тему самообучения и прослушивания курсов на таком прекрасном ресурсе, как Coursera. Сегодня я предложу почтеннейшей публике описание своих маленьких хитростей, которые я использую при онлайн-обучении на этом приятной во всех отношениях площадке. Ведь с начала этого года я прослушал 10 курсов, по результатам обучения получил 7 сертификатов (на одном из курсов сертификатов не предлагалось, а 2 курса я не осилил). Думаю, что на основании этого опыта я уже могу кое-что обобщить и предложить некоторые советы.

                        Сразу предупрежу, что здесь не будет и слова, о том, как получать сертификаты без обучения при помощи всяких «стрёмных технологий». Я опишу только то, что я успешно применял в своём личном обучении, что позволило мне не только получить сертификаты с годными словами на них, но и значительно продвинуть собственный уровень знания в некоторых областях. Итак, далее мы более или менее подробно рассмотрим:

                        1. Специальные методы организации времени
                        2. Скачивание и хранение всех материалов в структурированной папке
                        3. Использование интеллект-карт для конспектирования
                        4. Таблица для расчёта итоговой оценки
                        5. Реализация решений на любимом языке программирования
                        6. Рыскание по форумам в поисках наводок на способы решения задач
                        7. Немного об английском языке

                        Если кому интересно, то прошу проследовать…
                        Проследуем...
                      • Создание Push Notification сервиса на основе WCF REST

                        В качестве вступления

                        Модель push-нотификаций является распространённой моделью для обмена сообщениями. Она подразумевает не получение информации по запросу, а немедленную её передачу отправителю при появлении этой информации на сервере.

                        Стандартный подход с ипользованием wsDualHttpBinding

                        Возможность создания push-механизма предоставляет и WCF. Этот фреймворк позволяет создать push-сервис с использованием wsDualHttpBinding контракта. Такой контракт позволяет для каждого запроса определить метод обратного вызова, который будет вызван при наступлении какого-либо события.
                        Если применить этот механизм к системе обмена сообщениями, то получим следующий алгоритм:
                        Читать дальше →