• 13 антисоветов разработчику, желающему написать хороший веб-сайт

      Привет, разработчики на хабре!

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

      1. Не проставляйте ключи!


      СУБД пишут умные люди. Некоторые из них даже получают за это деньги. Зачем подсказывать им, как устроены данные? Пускай догадываются сами из названий полей и самих данных. В крайнем случае, админы поправят профайлером.
      Читать дальше →
    • Ошибки конфигурирования nginx (или как правильно писать рерайты)

        Привет, хабралюди!

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

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

        Ошибка номер 1, самая фатальная.
      • Nginx 0.7 стал стабильным

          Как было написано сегодня в рассылке, ветка 0.7 стала стабильной. Процитирую слова Игоря о нововведениях:
          *) кэширование проксированных и FastCGI-серверов;
          *) директива try_files;
          *) поддержка выделений в регулярных выражениях в директивах location и server_name и ссылок на эти выделения во всех директивах, поддерживающих переменные, например, в директиве alias;
          *) два фильтра — XSLT и преобразования изображений;
          *) предварительная поддержка IPv6;
          *) nginx/Windows.

          Дополнил цитату ссылками на соответствующую документацию.
          Скачать nginx можно на странице http://sysoev.ru/nginx/download.html.
        • Боремся с "*** glibc detected ***"

            Привет, хабрасообщество!

            Хочу рассказать о небольшой проблеме, с которой сегодня столкнулся.
            Бывает, программа валится, выдавая строку, начинающуюся с "*** glibc detected ***" и сопровождающуюся большим количеством служебной информации. Дело в том, что в glibc есть собственный менеджер памяти, который в случае попытки освобождения невыделенной памяти начинает паниковать и думать, что порушились внутренние структуры менеджера памяти.

            Конечно, правильным путем решения тут будет отдебажить программу, найти ошибку и/или сообщить об этом разработчику. Но иногда результат нужен срочно, и нет времени заниматься этим. В этом случае можно попробовать переключить менеджер памяти glibc в другой режим, менее производительный, но более устойчивый к подобным ошибкам программистов. Сделать это можно так:

            MALLOC_CHECK_=0 /path/to/program


            Значение «0» заставляет полностью игнорировать подобные ошибки, «1» — выводить сообщения о них в stderr, «2» — завершать программу при обнаружении ошибки.
            Работает в Linux libc новее, чем 5.4.23 и GNU libc 2.x.