• Анализ и оптимизация React-приложений

    • Translation
    Люди, вроде меня, которые борются за высокую производительность сайтов, часто тратят на это много времени. Поэтому сейчас я собираюсь раз и навсегда решить проблему низкого быстродействий веб-ресурсов, интерфейс которых написан на React. А именно, я предлагаю всем, кто это читает, сегодня же прекратить пользоваться React.



    Автор материала, перевод которого мы сегодня публикуем, конечно же, шутит. Здесь речь пойдёт о том, как оптимизировать производительность React-приложений. Кстати, прежде чем начать, подумаем о том, зачем вообще нужна оптимизация сайтов. Пожалуй, можно сказать, что нужна она для того, чтобы сайтом могло бы пользоваться больше людей, чем до оптимизации.
    Читать дальше →
    • +30
    • 13.6k
    • 4
  • Ликбез по запуску Istio

    • Translation


    Istio Service Mesh


    Мы в Namely уже год как юзаем Istio. Он тогда только-только вышел. У нас здорово упала производительность в кластере Kubernetes, мы хотели распределенную трассировку и взяли Istio, чтобы запустить Jaeger и разобраться. Service mesh так здорово вписалась в нашу инфраструктуру, что мы решили вложиться в этот инструмент.


    Пришлось помучиться, но мы изучили его вдоль и поперек. Это первый пост из серии, где я расскажу, как Istio интегрируется с Kubernetes и что мы узнали о его работе. Иногда будем забредать в технические дебри, но не сильно далеко. Дальше будут еще посты.

    Читать дальше →
  • Из хаоса в порядок, или «создаем структуру проекта в Unity и не только...»

    • Tutorial
    При создании нового проекта он такой чистый, понятный, нет лишнего хлама… он пуст. Чем дольше идет разработка, тем больше в нем появляется лишнего мусора, непонятных папок, файлов, иногда туда могут попасть префабы для других проектов и вся организация летит в Тартар.

    Выясняется что организации никогда не было, проекту три года, порядок наводить уже поздно, работать не удобно и вообще…

    Добро пожаловать в хаос, вы оказались именно тут потому что:

    • никогда не задумывались зачем нужна структура проекта в Unity
    • в ваших проектах вечный бардак и вы хотите от этого избавиться
    • в поисках новых способов организации
    • потеряли надежду навести порядок в своем проекте

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



    Добро пожаловать под кат.
    Читать дальше →
  • 10 причин [не] использовать k8s

      Сегодня мы поговорим про Kubernetes, про грабли, которые можно собрать при его практическом использовании, и про наработки, которые помогли автору и которые должны помочь и вам. Постараемся доказать, что без k8s в современном мире никуда. Противникам k8s также предоставим отличные причины, почему не стоит на него переходить. То есть в рассказе мы будем не только защищать Kubernetes, но и ругать его. Отсюда в названии появилось это [не].

      Эта статья основана на докладе Ивана Глушкова (gli) на конференции DevOops 2017. Последние два места работы Ивана так или иначе были связаны с Kubernetes: и в Postmates, и в Machine Zone он работал в инфракомандах, и Kubernetes они затрагивают очень плотно. Плюс, Иван ведет подкаст DevZen. Дальнейшее изложение будет вестись от лица Ивана.


      Читать дальше →
    • Где больше платят программистам. Сравниваем 22 страны

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

        В этой статье 22 страны сравниваются по следующим параметрам:

        1. Зарплаты программистов
        2. Налоги
        3. Стоимость жизни (аренда жилья, коммунальные услуги, продукты, транспортные расходы)
        4. Развитость рынка IT
        5. Социальное обеспечение
        Читать дальше →
      • Дизайнер игр: модель для сборки



          Привет, меня зовут Александр Мишулин, я работаю креативным директором в Allods Team, подразделении Mail.Ru Group, которое занимается разработкой клиентских игр. Под термином «креативный директор» может скрываться многое. В моем случае это руководство направлением игрового дизайна в Allods Team, в первую очередь – на проекте Skyforge. Достаточно часто нам задают вопросы «Что такое дизайнер игр?», «Как им стать?», «Что вы ждете от кандидата в дизайнеры?», и сегодня я хотел бы ответить на часть таких вопросов и рассказать об этой профессии.
          Читать дальше →
          • +44
          • 55.2k
          • 9
        • Вирусы. Вирусы? Вирусы! Часть 2



            Как и обещал в прошлой части, продолжим рассмотрение вирусных движков. На этот раз речь пойдет о полиморфизме исполняемого кода. Полиморфизм для компьютерных вирусов означает, что каждый новый зараженный файл содержит в себе новый код вируса-потомка. Чисто теоретически, для антивируса это должно было бы означать настоящий кошмар. Если бы существовал вирус, который в каждом новом поколении на 100% менял бы свой код, причем по настоящему случайным образом, никакой сигнатурный анализ не смог бы его детектировать.

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

              Мы ― небольшой коллектив (30 человек) который ведет один немаленький и достаточно успешный проект. У нас, как и у многих IT-фирм, были проблемы с документацией, планированием и организацией нашей работы. Вот уже полгода для коллективной работы мы используем Google Wave, который помог значительно продвинуться в решении вышеперечисленных проблем. И это несмотря на то, что продукт даже еще не в бета-версии.
              Читать дальше →
            • Как я ставил AndroidOS на iPhone3G (краткая история-инструкция)


                После того, как стало известно, что энтузиасты смогли запустить Android на iPhone2G, а потом и на 3G, я решил непременно попробовать проделать тоже самое над своим iPhone 3G.

                Начал я по инструкции на сайте idroidproject.org. Я прошел все круги ада из той инструкции, а именно:
                • Хождение по посторонним сайтам типа marvell.com в поисках файлов драйверов
                • Скачивание кучи разных файлов из разных мест, переименование, перемещение этих файлов туда-сюда
                • Хождение на айфон через ssh и выполнение загадочных действий типа
                  ioreg -l -w 0 | grep '"Calibration Data" =' | cut -d '<' -f2 | cut -d '>' -f1 | xxd -r -ps - zephyr2_cal.bin
                • Даунгрейд прошивки до 2.2.1, потому как предыдущие шаги были бессмысленными на 3.1.3! (потоки нецензурной брани)
                • Монтирование образов прошивки, внесение туда собранных непосильным трудом файлов
                • Компилирование openiboot из исходников
                И прочие ужасные вещи.

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

                Итак, нам понадобятся:

                Читать дальше →
              • Компьютер вашей мечты. Часть 2: Реальность и фикция

                  Продолжению быть!
                  Часть 1


                  Задачи поставлены, и вроде бы самое время перейти к чтению различных обзоров и тестов, но…
                  С чего начать? В какую сторону вообще смотреть?
                  image

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

                  • Tutorial
                  Пользовательское соглашение или как его еще принято называть Соглашение об использовании сервиса, является ключевым документом, на котором строится юридическая защита интернет-сервиса.

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

                  Особую актуальность вопросы защиты интернет-сервиса приобретают в связи с принятием так называемого «антипиратского закона», которым возлагается ответственность на информационного посредника за размещение или предоставление доступа к материалам, нарушающим интеллектуальные права третьих лиц. Закон вступает в силу с 01 августа 2013 г., в связи с чем пользовательские соглашения и схему взаимодействия с пользователем необходимо привести в соответствие с ужесточившимися требованиями.
                  Читать дальше →
                • Легкий способ публикации картинок в FCKeditor + IMCE + Lightbox2

                    Drupal очень гибок, именно поэтому он нравиться мне. Любую проблему можно решить несколькими путями.

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

                    В качестве редактора я выбрал FCKeditor, в качестве загрузчика картинок и браузера файлов IMCE.

                    Теперь о самой проблеме.


                    Представим, что вы загрузили картинку на сервер, создали её thumbnail и теперь хотите вставить этот thumbnail в ваш пост. Thumbnail при клике на него должен открывать картинку в оригинальном размере, используя для этого модуль Lightbox2.

                    Делать вручную — неудобно и долго.
                    На страницах drupal.ru я нашел решение. Решение заключалось в правке FCKeditor. Так что при каждом обновлении пришлось бы заново править все эти файлы.
                    Поэтому я решил написать свой велосипед, маленький и не очень гибкий. Но подходящий для моего сайта.
                    Читать дальше →
                  • 10 юзабилити-преступлений, которых вы не должны совершать

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

                    Преступление #1: В формах метки не связаны с полями ввода


                    crime1
                    Использование атрибута «for» позволит пользователям кликать по метке, для выбора соответствующего поля формы. Это особенно важно для чекбоксов и радиокнопок — увеличить область клика.
                    Читать дальше →
                  • «Китайский» способ умножения

                      Случайно наткнулся в сети на такой ролик:



                      Очень удивился, а потом сел и разобрался. Всё просто и похоже на умножение столбиком. Сначала рисуем пересекающиеся группы линий для обоих чисел. Для каждого разряда рисуется одна группа из линий. Количество линий совпадает со стоящем в этом разряде числом (если в разряде будет стоять ноль — можно нарисовать пунктирную линию чтобы не потерять разряд). А затем по диагоналям подсчитываем кол-во пересечений и собираем результат. Способ по сравнению с умножением в стобик получается более наглядным, на мой взгляд.

                      Правда умножать им длинные числа и числа, в разрядах которых много девяток, как заметили в коментариях, не очень удобно — слишком уж много линий. :)
                    • Хорошо ли живется сисадминам?

                        «Строили мы строили, и, наконец, построили!» (с)
                        Готовы результаты исследования рынка труда системных администраторов. Сами админы кропотливо заполняли анкеты с вопросами о работе. зарплате и специализации. На основании полученных данных родилось вот такое исследование.
                        Актуальность — ноябрь 2009.
                        Под катом — текущее состояние рынка труда сисадминов, средние зарплаты по городам, уровень безработицы среди ИТ-специалистов, а также секретные данные о том, что нужно изучать, чтобы больше зарабатывать :)
                        Читать дальше →
                      • Вкусные гаджеты для Google Wave

                          image
                          Не так давно удалось раздобыть инвайт на Google Wave (еще раз спасибо gxcreator). Вещь разносторонняя и многообещающая, о чем уже неоднократно писалось/говорилось, особенно в плане коллективной работы — поддержка ботов и гаджетов. Информацией о наиболее интересных представителях последней группы я бы и хотел поделиться.
                          Читать дальше →
                        • О размерах Вселенной

                            Очень интересное видео, которое показывает какие мы крошечные в нашей Вселенной. По порядку показывает размеры некоторых планет и звезд.
                            И в пример приводится диаметр красного гиганта он составляет 28 * 10^8 км. Трудно представить этот размер? Ну на примере, если вы летите на самолете со скоростью 900 км\ч то вам бы пришлось пролететь 1100 лет, чтобы облететь эту звезду по окружности.
                          • Теория покупки из-за рубежа

                              Преамбула


                              Примерно месяц назад решил наконец купить себе нетбук, через интернет. Почему именно через интернет? Да просто решил получить опыт покупки, на будущее, плюс немного сэкономить. Информацию о покупках из-за рубежа собирал в своем личном блоге (ссылку по понятным причинам не даю) как с Хабра, так и с других ресурсов. Преимущественно она касается покупки через eBay, но в целом верна для любого онлайн-магазина.
                              Читать дальше →
                            • Твинботы: первый опыт

                                imageВот тут человек рассказывает о первом опыте путешествия твинбота по городу.

                                Твинбот — это примитивный робот, который добирается из пункта А в пункт Б с помощью окружающих людей. Сам он может двигаться только вперед, а направление зависит от того, куда его повернут. Цель робота указана на прикрепленном к нему флажке.

                                Читать дальше →