• Как мы делаем скриншоты страниц

      Привет!

      Это наша первая статья на хабре, и в ней мы хотели бы рассказать вам о том, как мы делаем для своего сервиса красивые скриншоты страниц и как к этому пришли, на какие грабли наступали.

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

         
      Читать дальше →
    • Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

        К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
        Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

        Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

        Читать дальше →
      • Megafon 3G modem + linux модифицирует sudoers

          Купил модем E173, на встроенной памяти скрипт установки, требует права рута. Совершил ошибку, дал молча права. Позже вижу, что команда sudo не требует пароля. Решил посмотреть скрипт установки. Вот его часть:

          grep -v «MobilePartner.sh» /etc/sudoers >/tmp/${TEMPFILE} 2>&1
          DELETECOMMENT=«delete requiretty for hw_mobile»
          REQUIRETTY=`grep "${DELETECOMMENT}" /tmp/${TEMPFILE}`
          if [ «x${REQUIRETTY}» != «x» ]
          then
          REQUIRETTY=`echo "${REQUIRETTY}" | awk -F ',' '{printf $2}'`
          else
          REQUIRETTY=`grep «requiretty» /tmp/${TEMPFILE}`
          if [ «x${REQUIRETTY}» != «x» ]
          then
          sed -i «s/${REQUIRETTY}/# ,${REQUIRETTY},${DELETECOMMENT}/g» /tmp/${TEMPFILE} 2>/dev/null
          fi
          fi# Shashank: Defect fix AJ2D13470: Begin
          echo -e «ALL ALL=(ALL) NOPASSWD:ALL» >> /tmp/${TEMPFILE}