• Разработка javascript приложений на базе Rx.js и React.js (RxReact)

    • Tutorial
    rxreactlogo

    React.js позволяет очень эффективно и быстро работать с DOM-ом, активно развивается и с каждым днем набирает все больше популярности. Недавно открыл для себя концепцию реактивного программирования, в частности, не менее популярную библиотеку Rx.js. Данная библиотека выводит на новый уровень работу с событиями и асинхронным кодом, которого в UI логике javascript приложений предостаточно. Пришла идея объединить мощь данных библиотек в одно целое и посмотреть что из этого выйдет. В этой статье вы узнаете о том как удалось подружить Rx.js и React.js.
    Читать дальше →
    • +21
    • 37k
    • 9
  • Философия программирования — трёхнаправленное программирование

      Программирование рассматривается как процесс создания компьютерных программ. Слово процесс в этом определении не лишнее. Обычно рассуждают в духе «посмотрите, какую замечательную структуру данных можно описать на данном языке программирования». Философия программирования подразумевает оглянуться по сторонам, да и в глубь копнуть.

      Собственно разделение на кодирование, и создание алгоритмов это уже специфика, сначала идёт жизнь, то есть человек опирается на некую мысль вроде «напишу-ка я фреймворк с такими-то свойствами». И вот это начальное направление это вопрос философии. Проблема в том, что часто жена программиста лучше его самого знает, на философском уровне, что он делает и почему. Элементарные философские категории: мышление, сознание, обусловленность программисту неведомы. И это странно, если сравнить способность программиста мыслить, например, читая статьи по функциональному программированию или алгоритмам поиска, вперемешку со статьями видных русских или европейских философов, окажется, что собственно навык мышления у программистов развит не меньше, а то и больше. Вот только язык программиста очень богат пока он рассуждает о паттерн-матчинге и жалок и органичен когда ему надо выйти из своей песочницы, оторваться от IDE и файлового менеджера.
      Читать дальше →
    • Assembler в 30 строк на Excel

        В заголовке порядок слов не перепутан.



        Живет в Венгрии юный программист Адам Кишш. Он участвует в чем-то типа онлайн-олимпиады KöMaL. Для решения заданий по информатике предлагается использовать несколько обычных языков программирования: С, С++, Python и некоторые другие. В одном из заданий требовалось написать Сапер и бота для игры в него. Такая задача очень легко решается средствами табличного процессора — того же Excel, например, и пачки макросов. Однако же, макросы использовать нельзя. Адам выкрутился необычным способом: реализовал в книге Excel простенький виртуальный компьютер, который программируется на Ассемблере — Excembler.
        Читать дальше →
      • DOM-а хватит на всех, или как помирить ReactJS с тем фактом, что сторонние библиотеки меняют его DOM

        Современные JavaScript фреймворки, и ReactJS не исключение, обычно требуют эксклюзивного доступа к DOM и им очень не нравится, когда кто-то без их ведома этот DOM меняет. Проблема в том, что существует огромное количество сторонних библиотек (например, плагины jQuery), которым необходимо в их подконтрольном поддереве что-нибудь да вропнуть, анвропнуть, перенести в другое место и т.д. Обычно в таких случаях мы видим в консольке нечто подобное:

        image

        К счастью, эта проблема довольно легко и быстро решается. В этом посте я попробую изложить решение пошагово, но, если вам неинтересно, или вы спешите, просто поскрольте вниз к ссылке на гист с готовым решением. Итак, начнем.
        Читать дальше →
        • +32
        • 16,9k
        • 3
      • Мысли вслух о разработке javascript-приложений на примере небольшого Line Of Business фреймворка

        • Tutorial
        Привет, Хабр!

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

        Тема SPA-приложений и javascript-приложений в целом не нова, но нам не удалось найти даже на платных ресурсах основательных руководств по разработке приложений. Они являются скорее рассказом о той или иной MV*-библиотеке, чем примером для подражания. При этом не рассматриваются примеры разбиения по слоям, построения иерархий наследования и тонкостей наследования в javascript и т.д.

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

        Мы считаем, что данная статья будет полезна:

        1. Front-end разработчикам, у которых уже есть небольшой опыт, но хочется вырасти.
        2. Back-end разработчикам, которым в какой-то момент пришлось начать заниматься js-разработкой и которые чувствуют некую неуверенность при работе с javascript.
        3. Верстальщикам, которые начали заниматься js-разработкой и хотели бы прокачать свои навыки.



        Чтиво получилось весьма объемистым, но надеемся, что настолько же полезным.
        Читать дальше →
        • +5
        • 18,3k
        • 8
      • VPN в каждый дом



          Всем привет! Желание сделать VPN сервер максимально простым в установке и удобным в использовании назревало уже давно. За основу я взял L2TP/IPsec, эта технология нативно поддерживается всеми устройствами и в отличии от PPTP не вызывает проблем при подключении через сотовых операторов.

          tl;dr
          Для установки нам потребуется машинка с Ubuntu 14.04 на борту и «белым» IP-адресом, любой VPS подойдет. Достаточно ввести эту волшебную строчку:
           curl -sS https://raw.githubusercontent.com/sockeye44/instavpn/master/instavpn.sh | sudo bash 

          и через несколько минут у вас будет рабочий VPN с управлением через браузер (httр://ip-address:8080/) или консоль (instavpn -h).
          Читать дальше →
        • А если нет ментора?

            На просторах интернета встречается множество вопросов типа: «Как стать программистом?» и «Кто бы из опытных программистов захотел стать моим наставником, а я уж потом, когда научусь, отработаю?».

            Ответов множество и все они правильные, только на практике срабатывают не всегда, не для всех и не совсем так, как хотелось бы. А какая-то доля, на первый взгляд, самых правильных ответов может даже навредить.

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

            Тем, кто находится в системе (ученикам, студентам, «мажорам» или тем, кто уже работает в области IT) читать строго не рекомендуется.


            Осторожно, много психо-логики!
          • Ускорение загрузки Windows for fun and profit

              image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

              Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
              Под катом много однообразных картинок и немножко унылого текста
            • Насколько крепка дружба между Java и С внутри Dalvik VM?

              В данной статье попытался очень подробно описать свои шаги при исследовании кода андроида и его выполнения в Dalvik VM. Мне было очень интересно узнать ответы, на вопросы:

              • Как выглядит код, генерируемый С? (с позиции ARM)
              • Как выглядит код, генерируемый Java?
              • Как и где происходит выполнение кода?

              Поэтому данная статья разбита на 3 части.

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

              Читать дальше →
            • Законно ли чтение корпоративной электронной почты?

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