• 50 цитат о программировании всех времён

    • Перевод
    Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

    49. Lisp — это не язык, а строительный материал.
    — Alan Kay

    48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
    — Edward V Berard
    Читать дальше →
  • Миникрафт в 252 символа

    • Перевод
    В продолжении популярного цикла статей о том, что 30 строк джаваскрипта достаточно каждому, предлагаю Вашему вниманию перевод статьи Мэтью P01 Генри о его последней работе:


    Итак, Мэтью пишет:
  • Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

      Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
      Вы заказчик. Как убедиться, что работа выполнена качественно?
      Как оценить качество вёрстки?

      Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

      Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.

      Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

      Итак что же это за список?

      Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

      История обновлений:
      • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
      • 2015/08/10: актуализирован список исключений для CSSLint
      • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
      • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
      • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
      • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
      • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
      • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
      • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
      • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


      Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
    • Drupal + Git submodules: рецепты

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

      Наиболее полезным этот пост будет для тех кто, имея скромный опыт работы с гитом, попал на Drupal-проект где используются подмодули. (Именно так я познакомился с подмодулями и именно такой статьи мне в то время очень не хватало.)
      Читать дальше →
      • +19
      • 11,9k
      • 6
    • Тюнинг MySQL — thread_cache_size

        Параметр thread_cache_size играет немаловажную роль в производительности нагруженного MySQL-сервера. В некоторых случаях можно увеличить производительность на 30-50%.

        Этот параметр указывает количество тредов, уходящих в кеш при отключении клиента. При новом подключении тред используется из кеша, что позволяет экономить ресурсы при больших нагрузках.
        Читать дальше →
      • Google Analytics для сбора ошибок JavaScript

          image
          Не так давно на Хабре была статья про навороченный стартап, заточенный на сбор ошибок JavaScript. Далеко не всегда нужно столько возможностей, но оказалось, что многие просто не знают про старый бородатый способ с Google Analytics. Про него я и попытаюсь кратенько рассказать.
          Читать дальше →
        • Уязвимость связки PHP+nginx с кривым конфигом

            Summary


            Announced: 2010-05-20
            Credits: 80sec
            Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




            Background


            Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

            location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
                include fastcgi_params;
            }
            

            Читать дальше →
          • Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

            • Tutorial
            Увы, но этот способ перестанет работать с 27-го июня 2015, т.к. Google отключает функцию sms-оповещений для календаря.
            support.google.com/calendar/answer/45351?hl=ru

            Важно! SMS-оповещения будут отключены 27 июня
            С 27 июня 2015 года вы больше не будете получать SMS-оповещения от Google Календаря. Функция SMS-оповещений была внедрена ещё до широкого распространения смартфонов. Однако современные мобильные устройства позволяют получать оповещения в более удобном формате и даже в офлайн-режиме.
            Для просмотра оповещений вы можете использовать приложение календаря, которое было установлено на смартфоне по умолчанию, либо скачать Google Календарь для Android или iPhone. Подробнее об оповещениях…
            Примечание. Это изменение не коснется пользователей Google Apps for Work, Education и Government.




            Хочу поделиться с Харбра-обществом полезным, с моей точки зрения, лайвхаком: уведомления по SMS о новой почте в ящике Gmail. Реализуется это небольшим скриптом, который живет и работает в Google Drive (бывшие Google Docs).

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

            Напоминание: Тема письма @ дата и время

            Подробности реализации, как всегда, под «катом».
            Подробности
          • MySQL Query Cache

              В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
              Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
              Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
              Читать дальше →
            • Руководство по оформлению HTML/CSS кода от Google

              • Перевод

              От переводчика


              С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

              Введение


              Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

              Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

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