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

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

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

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

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

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

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

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



        Ну, и как же?
      • Оптимизируем Vista

          Предисловие

          Сколько сотен раз слышал, как Windows Vista ругают за ее медлительность, «глючность», несовместимость, неудобство и прочее. Признаться честно, я и сам до недавнего времени был, мягко говоря, не в восторге от Vista, пытался ее использовать но потом от нее отказался.



          Но два месяца назад по работе пришлось вплотную столкнуться с Vista, и я заинтересовался » а как можно заставить ее работать хорошо? И вот, по прошествии двух месяцев, хочу поделится с вами своим опытом и надеюсь получить и от вас полезные советы. Если вы

          Уверен, многие из вас уже столкнулись или еще столкнутся с необходимостью использовать Vista, поэтому данная статья будет интересна и тем, кто эту ОС не используют. Кстати, далее будет совет, как использовать Windows Vista легально в течении 120 дней!

          Надеюсь, вы оцените мою статью — я потратил на ее написание почти половину своего выходного :) Понятно, что для кого-то ниже написанное покажется «детским лепетом», кто-то всё это уже знает, но почему-то не делает. А кто-то почерпнет полезную для себя информацию.

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

          UPD спустя час: удивительно, как любят ставить минусы топикам про Vista, где ее не «опускают»! А то что это полезная многим статья про все более широко распространяющуюся ОС — видно некоторым начхать :(
          UPD спустя четыре часа: спасибо за позитивную оценку статьи, жду большего количество полезных дополнений к ней :)
          UPD спустя почти неделю :) ускоряем копирование в Висте! Наконец-то однокилобайтный ярлык не удаляется по 30 секунд :) Пуск->Панель управления (не классическая)->Программы->Включение или отключение компонентов Windows. Снимаем галку «Удаленное разностное сжатие». Ура.

          Думаю над продолжением статьи, уже есть наработки :)
          Читать дальше →
        • Узнаем параметр 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тью покрыл мои потребности.
                      Читать дальше →