• Современный PHP без фреймворков

    • Translation
    • Tutorial


    У меня есть для вас непростое задание. Когда в следующий раз начнёте новый проект, постарайтесь обойтись без PHP-фреймворка. Я не собираюсь перечислять недостатки фреймворков, и это не проявление синдрома неприятия чужой разработки: в этом руководстве мы будем использовать пакеты, написанные разработчиками нескольких фреймворков. Я всецело уважаю инновации в этой сфере.

    Читать дальше →
  • Делаем адаптивный HTML, добавляя одну строку в CSS

    • Translation
    image

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

    И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
    Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

    Рассмотрим все подробнее.
    Читать дальше →
  • Простая валидация формы без JS

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

    Давайте попробуем собрать стандартную форму, которая будет включать в себя: Имя, E-Mail, Телефон, Ссылку на сайт и допустим Ваш рост, чтобы поэксперементировать с числовым полем.
    Читать дальше →
  • Продолжаем ускорять блог на WordPress — PHP7, ESI в Varnish, XtraDB, эффективное сжатие и отключение лишнего

    • Tutorial
    В своей предыдущей статье по оптимизации сайта на WordPress я рассказал об очень эффективном подходе к оптимизации за счёт кэширования страниц. В результате чего для незалогиненных пользователей время ожидания страницы клиентом (исключая время на установление TLS-сессии) сократилось с 820 мс до 30 мс (этот и все последующие замеры проводились с сервера, расположенного в том же городе, что и мой VDS), что, согласитесь, является отличным показателем. Однако, для залогиненных пользователей генерация страницы происходила по-прежнему долго — в среднем 770 мс на сервере. В этой части я расскажу о том, как я сократил это время до 65 мс, при этом полностью сохранив работоспособность пользовательского функционала.

    Целью этой и предыдущей статей является моё желание показать возможность оптимизации сайтов не только на WordPress, а вообще любого веб-приложения. Поэтому я использую такое количество инструментов, и так детально разбираю их конфигурацию. Если же Вам просто нужно ускорить WordPress — установите плагин WP Super Cache. Если Вас, как и меня, интересуют технологии, позволяющие оптимизировать любой сайт, а также Вам интересно, что стоит учитывать при разработке веб-приложений, рассчитанных на высокие нагрузки — прошу под кат, но только после прочтения первой части — дорабатывать я буду ту же систему.
    Читать дальше →
  • Очень шустрый блог на WordPress при помощи связки nginx + PHP-FPM + MariaDB + Varnish

    В данной статье я расскажу о том, как я заставил свой блог на WordPress летать за счёт грамотного кэширования, сжатия и другой оптимизации серверной и клиентской сторон. На момент написания статьи характеристики VDS следующие:
    CPU: 1 x 2GHz
    HDD: 10Gb
    RAM: 512Mb
    OS: Debian 8 x64

    Схема работы системы выглядит следующим образом:

    image
    Читать дальше →
  • 9 секретов онлайн-платежей. Часть 4: правильная платежная форма – залог успешной оплаты

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

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

      По итогам семи лет работы на рынке электронной коммерции и на основании опыта сотен клиентов, специалисты нашей компании PayOnline, которая занимается организацией онлайн-платежей, выделили семь ключевых моментов, на которые нужно обратить внимание каждому владельцу интернет-магазина, принимающего платежи по банковским картам онлайн.
      Читать дальше →
    • Собираем грабли Electron.js или десктопные JS-приложения на практике

      image

      Electron — система позволяющая создавать кроссплатформенные приложения используя одни только веб-технологии, такие как HTML, CSS и конечно, JS.

      Нужно отметить, что разработка на Электроне очень во многом отличается от обычного браузерно-серверного приложения на Node. О чем и будет эта статья.
      Читать дальше →
    • Amelisa. Оффлайн и реалтайм движок для React и Mongo


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




        Читать дальше →
      • Повышаем отказоустойчивость системы на nodejs

          Отказоустойчивость системы на nodejs
          3 года назад я поверил в будущее nodejs и начал кампанию по имплементации этого языка в самые “проблемные” сервисы нашего проекта. У нас все получалось — нагрузка падала, стабильность повышалась. Но все же были грабли, о которых захотелось рассказать.

          Это не исчерпывающее руководство к действию, просто я делюсь своим опытом, если вы профи в nodejs можете дописать в коментах свои рекомендации, на которые я с удовольствием сошлюсь в статье.
          Читать дальше →
        • С 0 до 1. Разбираемся с Redux

          Когда вышла версия 1.0 Redux, я решил потратить немного времени на серию рассказов о моем опыте работы с ним. Недавно я должен был выбрать “реализацию Flux” для клиентского приложения и до сих пор с удовольствием работаю с Redux.

          Почему Redux?


          Redux позиционирует себя как предсказуемый контейнер состояния (state) для JavaScript приложений. Редакс вдохновлен Flux и Elm. Если вы раньше использовали Flux, я советую прочитать, что Redux имеет с ним общего в разделе "Предшественники" новой (отличной!) документации.

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

            Привет, Хабр! Многие уже знают о моей страсти к попытке собрать самое лучше, что может быть полезно для веб-разработчиков или веб дизайнеров. И шрифты — не исключение. Программное обеспечение для работы со шрифтами постоянно развивается. Количество дизайнеров желающих опробовать себя в типографике растет с каждый днем. А сегодня я хочу представить вам их наработки — 30 потрясающих бесплатных шрифтов, которые мне удалось собрать за последний год.

            Polar



            Polar

            Читать дальше →
          • Три стадии развития любой услуги или что общего у McDonalds и IBM Watson

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



              Итак, что же это за стадии такие, нетерпеливо спросите вы? Предлагаю не спешить с ответом и попробовать вывести их самим, на основе знаний о мире и простых размышлений.
              Стадии развития, примеры из жизни, применение знаний и выводы...
            • Идея для подарка коллегам: кружка веб-разработчика

                Прочитав как-то в начале года пост «Шпаргалка по С++11 для печати на кружке» загорелся сделать себе такую же кружку-шпаргалку, но по теме веб-разработки, которая мне ближе. Долго руки не доходили и тут в преддверии Дня программиста захотелось «подарить» себе её.


                Читать дальше →
              • Опыт применения Google Apps for Business

                Каждая компания на определенном этапе развития становится перед вопросом организации и последующей автоматизации своего документооборота. Хотим поделиться нашим опытом использования решений Google — Drive (Docs), Calendar и Contacts.

                image
                Читать дальше →
              • Использование принципов психологии для роста конверсии сайтов. Часть 4: Закон Фиттса

                • Translation
                Часть 1
                Часть 2
                Часть 3
                Часть 5

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

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

                Теоретически, это означает, что для того чтобы вызвать рост CTR (click-through rate) достаточно увеличить цель (в разумных пределах) и поместить ее возле ожидаемого положения курсора мыши.

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

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

                Лекции о визуальном мышлении и разнообразные рецепты улучшения «перевариваемости» информации уже успели набить оскомину. Собственно, почему комиксы?

                image

                Читать дальше →
              • 404 пост



                  Этот пост знаковый для нашего блога. По счёту он, ни много ни мало, четыреста четвёртый. В честь этого мы решили написать о том, как нами был когда-то использован мощный потенциал страницы 404 на Одноклассниках. А заодно составили небольшую подборку необычных и интересных страниц с других сайтов.
                  Читать дальше →
                • Стартап шаг за шагом: будущее онлайн-образования



                    Всем привет!

                    Мы — молодая команда, пытающаяся предсказать, что будет следующим шагом в онлайн-образовании, и более того — пытаемся этот самый шаг сделать.

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

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



                      Мы продолжаем цикл статей о том, как построить стартап, где рассказываем о каждом шаге на собственном примере. В первой статье мы рассказали о том, как придумать идею, теперь поговорим о команде.
                      Читать дальше →
                      • +11
                      • 35.1k
                      • 8
                    • MMO на WebRTC

                        image

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

                        image

                        Такая организация имеет свои неоспоримые достоинства, например синхронизация игровых состояний клиентов на сервере, простота в реализации и почти фиксированные задержки до пользователя. Там где есть плюсы, обычно обитают и минусы — это ограниченная пропускная способность сервера и довольно большие задержки, если клиент находится далеко от вашего сервера. Как с ними бороться подробно написано в блоге 0fps.net и есть возможность эти проблемы довольно эффективно решать оставаясь в любимой «звездочке» — купить больше серверов, но что делать если вы студент вы ограничены в финансах и горизонтальное/вертикальное масштабирование для вас не вариант?
                        Как же быть?