• Распространенные ошибки начинающего HTML-верстальщика

    • Tutorial

    Привет, читатель! Я верстаю сайты с 2011 года. Как и большинство верстальщиков того времени, я учился самостоятельно по видео-урокам. За это время, я не раз ошибался с выбором позиционирования блока, выбором тега для элемента и конечно, с названием классов. В этой статье я хочу поделиться своими ошибками.

    Читать дальше →
  • Использование AJAX-обработчика WordPress



      WordPress, будучи одной из самых популярных CMS в мире, снабжен подробной документацией, а точнее, даже двумя. В связи с чем ни в коем случае не стоит воспринимать этот текст как описание неких “best practices” и уж точно никто не заставляет слепо следовать описанному. Статья — просто быстрый ответ на вопрос «как?!» (следующий абзац) и подробное описание всего, что нужно знать чтобы заставить WordPress отвечать на AJAX-запросы (вся остальная статья).

      Кратко


      Традиционно для AJAX-запросов нужно две вещи: скрипт на сервере (бекенд), который будет отвечать на запросы, и скрипт на клиенте (фронтенд), который будет эти запросы делать. WordPress позволяет делегировать функции на обращение к специальному URL, по которому находится обработчик запросов.

      Итак, работает это, «WordPress-way», вот так:

      1. На бекенде с помощью функции admin_url получаем ссылку на обработчик AJAX-запросов и передаем ее во фронтенд одним из способов. Именно к этой ссылке мы будем делать наши запросы.
      2. На бекенде регистрируется хук с функцией для обработки некоего экшена. Назовем этот экшен, например, get_posts.
      3. Фронт-енд делает запросы к URL-у из пункта 1, передавая имя экшена. Например, ?action=get_posts.
        На бек-енде, если на экшен зарегистрирован хук, выполняется заданная нами функция.


      Вот так вот просто. Теперь подробнее.
      Читать дальше →
      • +6
      • 41.6k
      • 5
    • Чему мы научились, разрабатывая backend

        imageРазработка Parallels Access потребовала создания геораспределенного сервиса, позволяющего безопасно устанавливать связь между компьютерами и мобильными клиентами пользователей в различных точках земного шара. Команда, которая над ним трудится, хочет поделиться полученным опытом в форме цитат, чтобы облегчить участь тем, кто только планирует создание своего клиент/серверного продукта, и погрузить в ностальгию профессионалов, имеющих за спиной дюжину успешных проектов:
        Читать дальше →
      • Let's Encrypt объявил о кросс-сертификации от IdenTrust


          На сайте проекта Let's Encrypt появилась информация, что 19 октября 2015 удостоверяющие центры «Let's Encrypt Authority X1» и «Let's Encrypt Authority X2» получили кросс-подписи от IdenTrust. Теперь сертификаты выпущенные Let's Encrypt стали доверенными для всех основных браузеров. Проверить это можно, зайдя на страницу, защищенную первым сертификатом Let's Encrypt: helloworld.letsencrypt.org. Если ваш браузер не выдает предупреждения, значит, считает сертификат этого домена доверенным.
          Читать дальше →
        • 300 потрясающих бесплатных сервисов

          • Translation


          Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



          A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

          • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
          • Bootswatch: Бесплатные темы для Bootstrap.
          • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
          • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
          • Strikingly.com Domain: Конструктор веб-сайтов.
          • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
          • Withoomph: Мгновенное создание логотипов (англ.).
          • Hipster Logo Generator: Генератор хипстерских логотипов.
          • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
          • Invoice to me: Бесплатный генератор счета.
          • Free Invoice Generator: Альтернативный бесплатный генератор счета.
          • Slimvoice: Невероятно простой счет.

          Читать дальше →
        • JavaScript и Nginx = nginScript, а HTTP2 в придачу


            Дело было вечером, делать было нечего, но голова рукам покоя не давала и хотелось чего-то для души… А для души захотелось чего-то новенького, эдакого необычного.

            Я, как и многие из хабровчан, люблю новинки. Релиз нового софта — это как праздник. Новые фичи, новые возможности… Новые способы забивать гвозди и кататься на велосипедах. Новые велосипеды… В общем можно придумать кучу аллегорий и метафор. А про что это я? Ах да, про Nginx, HTTP2 и JavaScript. Чем они связаны, спросите вы? А тем, что в последней версии Nginx (1.9.5) добавили много интересных плюшек, а именно:

            • добавили протокол HTTP2 и удалили модуль SPDY (нафиг старое барахло)
            • интегрировали прямо в nginx модуль ngx_http_js_module и создали свой диалект JavaScript

            Го под кат, расскажу детали.
            Читать дальше →
          • Microsoft добавил средство сбора телеметрии в Windows 7/8/8.1

              Сегодня на MS Windows 7 и 8.1 прилетели обновления KB3080149 и KB3075249. Телеметрическая информация передаётся на следующие сервера:
              vortex-win.data.microsoft.com
              settings-win.data.microsoft.com

              Передача осуществляется через TCP по порту 443 с использованием SSL.
              Для параноиков людей, беспокоящихся о несанкционированной передаче информации Microsoft (далее возможно и третьим лицам), предлагаю добавить сервера в список исключений маршрутизатора, а следующие строчки в файл hosts (%windir%\System32\drivers\etc\hosts):
              127.0.0.1 vortex-win.data.microsoft.com
              127.0.0.1 settings-win.data.microsoft.com
            • NGINX изнутри: рожден для производительности и масштабирования

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

              Инфографика Inside NGINX сверху вниз проведет вас по азам устройства процессов к иллюстрации того, как NGINX обрабатывает множество соединений в одном процессе. Данная статья рассмотрит всё это чуть более детально.
              Поехали!
            • NGINX — История перерождения под Windows

                Раз уж тут у нас «неделя» nginx, например тут или тут, то попробую и я внести свою, так сказать, лепту. Речь пойдет про nginx 4 windows, а именно про более-менее официальную сборку для этой пропритарной, некоторыми не очень любимой платформы.

                Почему Windows. Все просто, в корпоративном секторе Windows на сервере, да и на рабочих станциях — нередко обязательная программа. И от этих требований к платформе, например в ультимативной форме озвученных клиентом, никуда не денешься.
                И раз уж имеем Windows, но не хочется мучиться с IIS, apache и иже с ними, если хочется использовать любимые инструменты, а nginx однозначно к ним относится, то приходится иногда мириться даже с некоторыми ограничениями на этой платформе. Вернее приходилось…

                Хотя нужно заметить, что даже с этими ограничениями, nginx даст фору практически любому веб-серверу под windows по многим факторам, в том числе по стабильности, потреблению памяти, а главное производительности.

                Спешу сразу поделится хорошей новостью — больше ограничений, критичных к высокой производительности, при использовании nginx под windows практически не существует, и последнее из критичных, с высокой долей вероятности, тоже скоро отпадет. Но по порядку…

                Здесь описаны известные проблемы nginx 4 windows, а именно:

                • Рабочий процесс может обслуживать не более 1024 одновременных соединений.
                • Кэш и другие модули, требующие поддержки разделяемой памяти, не работают под Windows Vista и более поздними версиями в связи с тем, что на этих версиях Windows включена рандомизация адресного пространства.
                • Хоть и возможен запуск нескольких рабочих процессов, только один из них реально работает.

                Я немного изменил порядок, т.к. именно в такой последовательности я разбирался с этими ограничениями, так сказать отсортировано «исторически».
                Читать дальше →
              • (Не)безопасный frontend

                  Интро


                  Не так давно я выступал на конференции FrontendConf 2015 (РИТ++) с темой данной статьи. И при подготовке доклада начал искать информацию, а кто вообще выступал на данную тему и что есть в Сети на данный момент.

                  Оказалось, что информации совсем немного, более-менее можно было бы отметить доклад mikewest.org/2013/09/frontend-security-frontendconf-2013 от Mike West из компании Google, но какой-то «непентестерский» взгляд и уж совсем мало материала. И www.slideshare.net/eoftedal/web-application-security-in-front-end где тема раскрыта более детально, но выступление 2011 года. А за 4 года технологии и атаки на месте не стояли.

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

                  О чем вообще разговор?


                  А действительно, о чем тут вообще можно разговаривать? Говоря про взломы и безопасность невольно приходят в голову тезисы — слили базу, получили доступ к выполнению команд ОС на сервере, прочитали чужую переписку. Но это все — server side код. А что ж может «нагородить» фронтэндер? Главная опасность, конечно же, в обходе атакующим SOP — Same Origin Policy, главной политики безопасности браузеров, которая регулирует работу в разных Origin. Но не только, давайте разбираться.

                  Читать дальше →
                  • +62
                  • 54.7k
                  • 4
                • WSGI/Rack для PHP

                    Исторически сложилось, что скрипты на PHP запускаются при каждом HTTP-запросе. Запускаясь, скрипт проводит какую-то инициализацию (например, устанавливает соединение с СУБД), после чего анализирует запрос и формирует ответ. Однако, всем прекрасно известно, что в мире Python и Ruby принят другой подход: веб-приложения на этих языках загружаются в память единовременно вместе с веб-сервером (или сервером приложений). Взаимодействие сервера приложений со скриптом осуществляется при помощи стандартных интерфейсов WSGI и Rack. Такой подход, безусловно, не лишён недостатков, главный из которых, пожалуй, связан с резким ростом накладных расходов при размещении большого числа сайтов на одном сервере, однако, обладает и важным преимуществом: инициализация производится лишь однократно, затем скрипт лишь отвечает на входящие HTTP-запросы.
                    Читать дальше →
                  • CSS GuideLines, часть 2. Комментирование кода

                    • Translation
                    • Tutorial


                    В каждом проекте есть определенные нюансы и тонкости, которые помнят далеко не все, и худшее, что может случиться с разработчиком — это работа с кодом, который писал не он. Даже запоминание тонкостей своего собственного кода является возможным только до определенной степени, не говоря уже о чужом коде. Именно поэтому CSS надо комментировать.
                    Читать дальше →
                  • CSS GuideLines, часть 1. Синтаксис и форматирование

                    • Translation
                    • Tutorial


                    Введение


                    CSS не идеален. Поначалу кажется, что он прост в освоении, но работая над реальным проектом вы столкнетесь со многими проблемами. Мы не можем изменить то, как работает CSS, но мы можем изменить тот код, который мы пишем.
                    Читать дальше →
                  • 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).
                      Читать дальше →
                    • Ловцы молний. Необычные эксперименты с грозой

                      • Tutorial
                      Добрый день, уважаемые читатели Хабра.

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

                      image

                      Меня всегда вдохновляла красота и мощь молний. Сила тока в разряде молнии достигает 10-300 тысяч ампер, а напряжение — от десятков миллионов до миллиарда вольт. Мощность разряда — от 1 до 1000 ГВт. Вот было бы хорошо «приручить» эту энергию!

                      Хочу предупредить, не повторяй это дома! Я соблюдаю особую осторожность и хорошо знаю природу электрических явлений. Помни, поражение молнией смертельно.
                      Читать дальше →
                    • Разоблачение 12 юридических заблуждений о программах для ЭВМ



                      Заблуждение / опасная привычка На самом деле … Наш совет прост:
                      1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

                      Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
                      − от соблюдения набора критериев, установленных законом;
                      − от необходимости документально доказать факт создания программы и свои права на них.

                      Неоформленный SOFT закон не охраняет.

                      Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
                      То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

                      Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
                      Оформляйте много хороших и разных документов при создании программ для ЭВМ:
                      — договоры с авторами;
                      — договоры с подрядчиками;
                      — технические задания;
                      — протоколы совещаний и тестов;
                      — соглашения между соавторами;
                      — авторское свидетельство;
                      — сертификат признания интеллектуальной собственности;
                      — спецификация РИД;
                      — свидетельство о регистрации программы для ЭВМ (Роспатент).
                      Читать дальше →
                    • Спать мало, но правильно?

                        Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
                        Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
                        Читать дальше →
                      • Готовим Debian к переводу часов 26 октября 2014 года

                        Приближается 26 октября 2014 года — день, когда в 2 часа ночи в большинстве регионов России в очередной (и как снова обещано в последний) раз часы буду переведены на час назад. Кроме того, в некоторых регионах происходит смена часового пояса. Ознакомиться подробно где и что меняется можно в Федеральном законе от 21.07.2014 № 248-ФЗ «О внесении изменений в Федеральный закон „Об исчислении времени“.

                        В этом посте я хочу акцентироваться на вопросе приведения в актуальное состояние данных о часовых поясах в Debian.
                        Читать дальше →