среда, 11 апреля 2012 г.

A HREF. Выпуск 3

Разработка

Хостинг, виртуализация, облака

Научное

Бизнес

События

Прочее


Offtop

Новый раздел, здесь буду публиковать что-то вообще не связанное с работой. Не более 2-х ссылок за раз.

      понедельник, 2 апреля 2012 г.

      A HREF. Выпуск 2

      Разработка

      Хостинг, виртуализация, облака

      Научное

      Продуктивность

      среда, 28 марта 2012 г.

      A HREF. Выпуск 1

      Вступление


      A HREF - это новый раздел этого блога.

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

      Подсмотрев идею у link-блога addmeto.cc, я решил эти ссылки публиковать раз в неделю AS IS. В новостях Русофта такие выпуски я анонсировать не буду (кроме этого первого), поэтому если интересно получать выпуски оперативно подпишитесь на RSS ленту тега "href" этого блога.

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

      События

      • Отчет о конференции #MBLT12 - обзор конференции по мобильным технологиям от моб. приложений до коммуникаций, позже обещаю материалы и видео.

      Разработка


      Продуктивность, бизнес


      Прочее

      • Рекурсивный zip-архив - про квайны я давно знал, теперь придумали тоже самое для .zip .gz архивов, круто
      • Голографическая реальность - необычная модель построения и происхождения вселенной, которая спорна, но может быть со временем подтверждена опытами. Даже со своей институтской физикой я понял меньше половины :) но интересно.

      четверг, 15 марта 2012 г.

      Выпуск 8. Hello GIT!

      Очередной спец. выпуск.


      Hello GIT!

      Как я уже писал в новостях Русофта у нас построена вся инфраструктура для использования GIT вместо SVN.

      На GIT уже успешно переехал ЕИС, в ближайший месяц-два переедет PortalEngine (движок ЕИС).

      Ниже предлагаю части письма, которые я писал нашему ген. директору, когда обосновывал переход на GIT. Они ответят вам на вопрос "Зачем GIT, какой от него PROFIT?" (с нетехнической точки зрения). На многие технические вопросы для программистов я уже ответил в Вики.



      Git

      GIt - это система работы с исходным кодом (аналог используемого нами сейчас SVN). У неё есть важные технические отличия от SVN.

      Углубляться в них не буду. Главное, что они позволяют добавиться нескольких преимуществ в разработке:

      • Возможность изолирования изменения по одной или нескольким задачам (в т.н. "ветку"). При это над веткой может работать несколько человек, а по её готовности и проверке она "вливается" в основной код (основную ветку).
      • Что в свою очередь позволяет более гибко выпускать обновления и исправления на рабочем сервере. Сейчас нередко ситуация когда нужно выпускать очередное обновление, а какая-то одна задача тормозит процесс, но простым способом "выкинуть" её из текущего кода. С Git таких проблем нет. 
      • GIT упрощает Hot Fixes, когда на уже выпущенной на рабочий сервер версии есть ошибки и нужно внести изменения. С SVN часто бывало, что наша разработка уже ушла вперёд и просто так протестировать и выложить исправления мы не можем. С GIT это решается более просто.
      • GIT "поощряет" часты и маленькие "коммиты" (фиксацию изменений), в отличии от SVN где коммит часто у разработчика результат работы за день-два. Чем меньше коммит, чем проще в последующем анализировать историю при поиске ошибок и объединения изменений.
      • В GIT возможна организации различных хитрых подходов к разработке. Например, когда в production (рабочую) версию системы разработчики не могут сами внести изменения, а только через руководителя проекта. Он проверяет изменения и после этого подтверждаю их внесение. Для начала у нас будет коммунизм, но со временем я буду вводить некоторые "бюрократические" схемы.
      • GIT быстрее чем SVN, хотя для нас это не особо критично.
      • С GIT в случае падения сервера с репозиторием, мы сможем полноценно продолжить работу, ничего не потеряв (один из нас может "назвать" себя сервером и работать, как раньше).

      Чтобы перейти на GIT код ЕИС переписывать никак не нужно, но нужно поменять некоторые автоматические утилиты, которые мы используем при разработке и которые были завязаны на SVN:

      • сбор ядра Pe
      • обновление ядра в ЕИС
      • сбор обновлений для рабочего ЕИС



      P.S.

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

      понедельник, 5 марта 2012 г.

      Выпуск 7. PHP 5.4 released

      И так вышел релиз php 5.4.

      Список нововведений, несовместимостей и руководство по миграции можно посмотреть на сайте php.net, полный change log тоже доступен.



      Язык / интерпретатор

      Из наиболее интересных изменений в языке/интерпритаторе:

      Trait (типажи)

      Cм. мою статью на Хабре, я её также собираюсь обновить, так как в релизе появилось пару новых полезных возможностей).

      Dereferencing (разыменование)

      Появилось для array и объектов, проще объяснить на примере:


        //array
        function abc() {
           return array('year' => 2012, 'month' => 12);
        }
        $year = abc()['year'];

        //object
        ( new DateTime() )->format('d.m.Y H:i'); 
        //обратите внимание на скобки, без них так не сработает


      Тестовый сервер

      Для разработки нужд теперь можно поднимать тестовый веб-сервер, прямо из php command line. Хороший вариант для тех, кто ленится разворачивать у себя на Windows тестовую машину (для linux это проще).

      Не вздумайте использовать в production.

      Подробности в документации.

      Закопали наконец Выкинули magic_quotes и safe_mode.


      Короткая запись массива и хеш-массива

        $a = ['title' => 'Yo', 'tags' => ['rap', 'yo']]; 
        $b = array('title' => 'Yo', 'tags' => array('rap', 'yo'));
        $a === $b; // => true

      Closure с поддержкой $this, которые можно "перевешивать"

      Примерно как Function.prototype.apply, Function.prototype.call в php.
      Про это напишу подробнее когда-нибудь позже. Например, это позволит динамически "собирать" функциональность объектов.

      Пока см. manual.


      Стандартная библиотека

      Из наиболее интересных изменений библиотеки:

      • json_encode с флагом поддержки прямого unicode (без escape последовательностей, типа \u****,  теперь просто в UTF-8) - позволит ускорить обработку таких json в браузере и формирование на сервере
      • реализация объекта сессий (вместо набора кучи фукнций)
      • новые SPL классы (а вы ещё не знаете/не используете SPL? Срочно читать manual).

      Не совместимости

      Большинство заметит только пару новых reserved words и удаленые древние фукнции:
      session_is_registered(), session_register() и session_unregister().

      Полный список.


      Спасибо Вове А. за помощь в написании статьи.

      пятница, 27 января 2012 г.

      Выпуск 6. Короткий

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



      Продуктивность




      Программирование

      вторник, 13 декабря 2011 г.

      Выпуск 5. Поток, зона комфорта и алгоритмы сортировки

      В этот раз коротко.


      Ещё раз про поток

      Я уже упоминал поток раньше, вот вам ещё немного по этой теме:


      Git победил

      В непростом бою Git vs Mercurial для использования в проекте ЕИС победил Git.

      Причины: 
      • в данный момент - лучшая интеграция в PHPStrorm и многие другие инструменты для разработки,
      • хорошее руководство в виде GitHowTo и Pro Git.
      К Mercurial я по прежнему отношусь очень хорошо, во многих аспектах он лучше Git.


      Зона комфорта

      Не хочу пересказывать слова умных людей, вот вам две ссылки и цитата:

      <...> человек в своей зоне комфорта пребывает в бездействии по отношении ко всему новому, ко всему непривычному, к новому опыту, к новым знаниям, ко всему, что может вызвать хотя бы малейший дискомфорт <...>.
      Поэтому зону комфорта нужно расширять за счет огромнейшей зоны дискомфорта. Ведь именно в зоне дискомфорта лежат наши пока не достигнутые цели, пока необретенные знания, новый опыт и много-много всего другого.
       
      (Мария Евграшина, tim.com.ua) 
      Зона комфорта и бездействие от незнания
      Зона комфорта и точки бифуркации

      Развитие не возможно без преодоления трудностей!

      Алгоритмы сортировки

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

      Во-вторых, статья про один из самых молодых общих алгоритмов сортировки TimSort, обладающий хорошей скоростью. Он уже заменил классический Qsort в python и java. По сути TimSort является удачной комбинацией ранее известных принципов.


      Совет

      Как ускорить вход по ssh - заметка в вики.