• UNIX-подобные системы содержат кучу костылей. Крах «философии UNIX»

      UPD от 2017-03-04: кто-то выполнил английский перевод. Обсуждение на Hacker News.

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

      Костыли в UNIX начали возникать ещё с момента появления UNIX, а это было ещё раньше появления не только Windows, но даже вроде бы Microsoft DOS (вроде бы, мне лень проверять, проверяйте сами). Если лень читать, хотя бы просмотрите все пункты, что-нибудь интересное найдёте. Это далеко не полный список, это просто те косяки, который я захотел упомянуть.
      Читать дальше →
    • Раскрываем возможности map в nginx

      map — мощная директива, которая может сделать ваши конфиги простыми и понятными.
      Возможно, это самая недооцененная директива, из за того, что не все знают всех её возможностей.
      Она в компактной форме помогает обрабатывать переменные, GET параметры, заголовки, куки и наборы бекендов (upstream).
      Попробую раскрыть её возможности хабрапользователям.
      Раскрыть возможности map
      • +91
      • 47,9k
      • 7
    • Как же работает этот загадочный HTC Dot View?

        В мире HTC существует такая штука, как Dot View. HTC Dot View — это весьма оригинальный чехол, который позволяет пользователям передовых моделей от HTC(линейки One) использовать свой девайс весьма нестандартным образом. Данный аксессуар был призван принести еще большую славу компании, и, кажется, со своей задачей он успешно справляется: многие люди делают свой выбор в пользу HTC One * и благодаря чехлу Dot View.

        Подобные аксессуары привлекают не только пользователей делать их многочисленные обзоры, но и мобильных разработчиков создавать нестандартные приложения, которые задействуют эти прикольные фичи. Стандартный набор возможностей Dot View от производителя(HTC) довольно богат: удобный плеер с промоткой треков, вывод всевозможных уведомлений «на точки» чехла и даже простые игры, напоминающие своими «большими пикселями» ушедшую «восьмибитную эпоху». Но проблема вот только в том, что официальный разработчик не предоставил не только API для использования, но даже ни малейшей инструкции на тему того, как же работает его детище Dot View. Это привело к тому, что энтузиастам пришлось разбираться самостоятельно в механизмах сопряжения чехла с девайсом, а исследователям — исследовать.

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



        Ну, и как же?
      • Узнаем параметр Generic-класса в Java

          Если вы не очень часто программируете на Java, то этот топик скорее всего будет для вас бесполезен. Не читайте его :)

          Недавно понадобилось решить следующую задачу: определить класс, которым параметризован generic-класс.

          Если кто-то сталкивался с подобной задачей, то наверное также сразу попробовал написать что-то вроде этого:
          public class AbstractEntityFactory<E extends Entity> {
            public Class getEntityClass() {
              return E.class;
            }
          }

          Увы, IDE либо компилятор сразу укажут вам на ошибку («cannot select from a type variable» в стандартном компиляторе): " E.class" — не является допустимой конструкцией. Дело в том, что в общем случае во время исполнения программы информации о реальных параметрах нашего generic-класса может уже и не быть. Поэтому такая конструкция в Java не может работать.
          Читать дальше →
        • Как можно снизить потребление оперативной памяти на VPS в 2 раза, ничего не меняя в настройках программ

            Взял VPS, построенный на OpenVZ. Поставил туда Debian Lenny и всякие программы (обычный LAMP, по сути). С точки зрения потребления ресурсов ничего почти не настраивал, вышло где-то 200М занятой оперативной памяти (сразу после старта).
            Написал ulimit -s 1024 в /etc/init.d/rc ближе к верху. Перезагрузился. Потребление памяти на VPS упало более чем вдвое, стало около 100М.

            Если у Вас VPS на Xen или аналогичных, то у Вас нет граблей, с которыми я тут боролся. Если на OpenVZ (Virtuozzo) со товарищи — у Вас, скорее всего, на VPS эти же грабли.

            В статье — почему и как это работает.

            Читать дальше →
          • Наконец о dvi можно забыть, или обратный поиск в pdf под Windows.

              Здесь рассказано, как настроить синхронизацию SyncTeX и SumatraPDF для работы прямого и обратного поиска в pdf под Windows. SyncTeX включен в дистрибутивы TeXLive 2008 и MikTex 2.7.

              P.S. Если что-то не работает, проверьте пути к программам у вас и в инструкциях.
              P.P.S. При использовании /include{} или /input{} указывайте расширение файла, иначе поиск не будет работать.
            • Удобный доступ к файлам на удаленных хостах

                На Хабре достаточно много разработчиков работают с файлами на удаленных хостах. На локальной машине запускается IDE, отладчик, все необходимое, а сами файлы находятся на сервере, где они регулярно бакапятся, автобилдятся, тестируются и так далее. Очень удобный рабочий вариант. Да я сам его использую.
                Единственная проблема, доставляющая неудобство — файлы все же находятся на другом компе, и доступ к ним не такой простой и прозрачный как к «своим».
                Под катом — как сделать такой доступ максимально удобным. Чтобы он запускался автоматом когда надо, а самое главное — чтобы не запускался, когда не надо!
                Читать дальше →
              • Три редкоиспользуемые оси в XPath

                  Основная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.

                  ancestor


                  Задача: получить атрибут id элемента-«прадеда» foo.

                  Обычно в таких случаях начинают рисовать лестницы:

                  ../../../@id

                  Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:

                  ancestor::foo[1]/@id

                  Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
                  Читать дальше →
                • Xen. Fedora 10 в качестве Dom0

                    Последняя версия из племени Fedora, штатно поддерживающая работу
                    в режиме Dom0, была за номером 8. Xen там был версии 3.1.2, а ядро для Dom0 — 2.6.21.
                    Хочется более новых версий всего софта, т.к. все уже довольно сильно устарело.
                    Главное устарел сам XEN — текущая stable версия за номером 3.3.1 датируется 05.01.2009, и там довольно много вкусностей.

                    Fedora 9/10 не поддерживают работу в режиме Dom0, то есть в них нет соответствующего ядра. Что делать? Я нашел довольно простой способ, который полноcтью покрыл мои потребности.
                    Читать дальше →
                  • Используем память разумно, или mod_wsgi на 256 мегабайтах

                      Какое-то время назад потребовалось перенести проекты с выделенного сервера на VPS. Для этих целей был выбран slicehost. В общем и целом контора нравится и готов её рекомендовать всем.

                      Случилась лишь одна проблема: начали приходить уведомления о слишком сильном использовании диска (чтение/запись). Долгое время проблема не находила решения из-за отсутствия времени, но это вылилось в непонятные отказы, сопровождавшиеся статистикой в >200% CPU usage. После долгих извращений, была найдена проблема, а затем и её решение.
                      Читать дальше →