• Памятка пользователям ssh

      abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

      Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

      Оглавление:
      • управление ключами
      • копирование файлов через ssh
      • Проброс потоков ввода/вывода
      • Монтирование удалённой FS через ssh
      • Удалённое исполнение кода
      • Алиасы и опции для подключений в .ssh/config
      • Опции по-умолчанию
      • Проброс X-сервера
      • ssh в качестве socks-proxy
      • Проброс портов — прямой и обратный
      • Реверс-сокс-прокси
      • туннелирование L2/L3 трафика
      • Проброс агента авторизации
      • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
      Читать дальше →
    • Jii: конфигурация и масштабирование

        Привет всем хабровчанам, любителям Yii и Node.js. Давно небыло статей про Jii, но работа не стояла на месте и мне есть что рассказать!
        В этой статье мы рассмотрим способы конфигурирования приложения и запуск приложений как несколько процессов.

        Читать дальше →
      • М-м-м-м… Маршмэллоу: что нового в Android 6 и Android SDK

          Всем привет! Как вы все уже, наверное, знаете, шестая версия нашей ОС Android наконец получила официальное название: Android 6.0 Marshmallow. Предположений о том, как именно будет называться новая версия было много: и Milkshake, и Merengue, и M&M’s с MilkyWay. Кроме того, вышла финальная версия Android SDK, поддерживающая все новые возможности OS Android. О названии, инструментах для разработчиков, самых важных улучшениях и о том, что нас ждёт с приходом Android 6.0, сегодня и поговорим.


          Читать дальше →
        • Полная энергетическая автономия или как выжить с солнечными батареями в глубинке (часть 1. теоретическая)



            Все начиналось с того, что я приобрел участок земли в деревне, мимо которого не проходили электрические провода. «Ничего страшного, — подумал я. — Ведь по закону меня должны подключить к электросетям за 6 месяцев с момента заключения договора». Если бы я тогда знал, что мне придется освоить автономное энергоснабжение и окунуться в мир солнечной энергетики…

            image
            Как все начиналось
          • Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения

            • Tutorial


            В свете последних топиков, в том числе «Autodesk не будет продавать ПО попавшим под санкции компаниям», появляется ощущение, что маховик абсурда все сильнее раскручивается. Мы не будем осуждать в этом топике политические причины всего этого безобразия, а подумаем немного о том, что произойдет, если внезапно «выключат Google», причем неважно с какой стороны. Также предлагаю рассмотреть один из вариантов забрать себе накопленный контент, используя открытое ПО.

            Для начала давайте подумаем, что является наиболее ценным для большинства пользователей сервисов Google? В первую очередь, это личный контент, который хранится в облаке, почта и другие материалы. Во вторую очередь, это сервисы, которым нужно найти замену в кратчайшие сроки. Мы не будем рассматривать нужды профессиональных разработчиков под Android и корпоративные нужды.
            Создаем резервную копию
          • Как я попал в Топ AppStore с простым приложением курса валют

            Резюме


            Я хочу рассказать о том, как создал вполне заурядное и совсем не инновационное приложение, которое объективно стало лучшим в своём роде и даже некоторое время пребывало на самой вершине топа. Это не история успеха и не руководство к действию. Я просто хочу рассказать, как у меня получилось сделать самое популярное приложение в своём сегменте.
            Читать дальше →
          • Вещи

            • Translation
            Навеяно генеральной уборкой в доме. Жена хотела все повыкидывать, а я отчаянно сопротивлялся. Вопросы так и сыпались: «Ну зачем тебе старый, разобранный сидиром?», «Зачем тебе старые распечатки phrack, каких-то дизасмов и пр.?», «Зачем тебе старые джинсы и кросовки с дыркой?», «Зачем тебе коробки от ноутбука/телефона?». В итоге мы выкинули несколько огромных мешков хлама.

            А сегодня читал рсс ленту и наткнулся на эссе Пола Грэма. И решил перевести эссе умного человека. Наверняка мой перевод содержит множество опечаток, ошибок и неточностей. С удовольствием приму ваши замечания.
            Оригинал: www.paulgraham.com/stuff.html
            Paul Graham «Stuff»
            Читать дальше →
          • Универсальный web-GUI для произвольных RESTful сервисов

            Во многих компаниях, как и моей, есть много проектов и продуктов. И у продуктов бывают веб-интерфейсы, чтобы этими продуктами как-то манипулировать. В нашем случае это простенькие RESTful веб-сервисы, а поверх них ещё более простенькие веб-странички с формочками и кнопочками. Все эти веб-странички до того похожи друг на друга, что возникла мысль написать унифицированный продукт, который бы спрашивал сервер о поддерживаемых сервисах, и получал бы полное описание параметров к этим сервисам, так чтобы можно было нарисовать те самые простенькие формочки. То есть, веб-сервисы должны описывать себя, достаточно исчерпывающе, чтобы наш клиент мог построить GUI для них, и ничего не надо было бы делать руками. Как раз такая картинка гуглится по запросу «REST»:


            Читать дальше →
          • Exponential Backoff или как «не завалить сервер»

              При любом взаимодействии клиента и сервера мы сталкиваемся с необходимостью повторять запросы. Сетевое соединение может быть ненадежно, могут быть проблемы на сервере или любые другие причины, из-за которых необходимо повторить запрос. То же самое касается и взаимодействия backend-сервера с базой данных или любым другим хранилищем данных (другим сервисом).

              Мы сегодня поговорим об интервале повторов запроса. Через какой период времени после неудачного запроса можно его повторить? Давайте рассмотрим две стратегии: повтор через фиксированный интервал времени и экспоненциальное откладывание (exponential backoff). Мы увидим на симуляции, что при условии наличия большого числа клиентов повтор через фиксированный интервал может не дать серверу «подняться», а использование exponential backoff позволяет избежать этой проблемы.

              Вопрос интервала повторов становится важным при проблемах на сервере. Очень часто сервер способен выдержать нагрузку от клиентов, которые отправляют запросы в некотором «текущем» режиме, распределяя свои запросы во времени случайным образом. Если на сервере происходит отказ, все клиенты обнаруживают его и начинают повторять запросы через некоторый интервал. Может оказаться, что частота таких запросов превышает тот предел, который сервер может обрабатывать.

              Еще одним важным моментом является то, что клиент часто не может отличить проблемы на сервере от проблем с сетевым соединением на стороне клиента: если ответ на запрос не приходит в заданный интервал времени, клиент не может сделать заключение о том, в чем именно проблема. И поведение клиента (повтор запроса, интервал повтора) будут одинаковыми в обоих ситуациях.
              Читать дальше →
            • Работаем асинхронно в PHP или история ещё одного чата

              Меня очень радует, как бурно развивается PHP последние несколько лет. Наверное и вас тоже. Появляются постоянно новые возможности, удерживающие энтузиастов оставаться на данной платформе. Чего только стоит недавняя новость о релизе Hack.

              Наверняка кто-то прочитав даже заголовок этой статьи ухмыльнется и подумает: «Мсье знает толк в извращениях!». Споры о крутости того или иного языка никогда не утихают, но как бы там ни было, лично я для себя вижу не так уж и много условий смены языка, поскольку люблю выжимать все возможности, прежде чем радикально сменить весь стек. Недавно была публикация о создании чата на Tornado и мне захотелось рассказать о том, как похожую задачу я решал при помощи PHP.

              Предыстория

              В один прекрасный день решил я познакомиться с WebSockets. Меня заинтриговала технология, хотя не сказать бы, что она появилась только вчера, и это совпало с запуском одного чат-сервиса соционической тематики, который страдал массой недостатков. Это придало мне азарт принять участие в конкурентной гонке. Использование веб-сокетов выглядело принципиально новым и многообещающим решением.
              Читать дальше →
            • Начинаем работать с графовой базой данных Neo4j

              В нашем проекте возникла следующая задача — есть база с большим количеством товаров, на уровне сотен тысяч. У каждого товара есть сотни динамически создаваемых характеристик. Необходимо обеспечить быструю фильтрацию по товарам по набору различных характеристик. Время формирования ответа должно быть не более 0.3 секунды, нужно поддерживать сложную логику в стиле.

              (характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из AND\OR


              Типичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury

              Пример функционала

              У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
              Читать дальше →
            • Вы мне Javascript сломали

              • Translation
              Давным-давно

              Раньше все писали много отвратительного JS прямо на страницах, не вдумываясь, и это было очень плохо. Подозреваю, его и до сих пор так пишут, но это делают всё те же люди, которые ни блогов, ни хабра не читают, так что давайте мы не будем о них думать (потом нам, конечно, придётся оказаться с ними в одном проекте и — господи, нет, пожалуйста, только не это)

              Самое крутое, классное и волшебное, что было в JS — это то, что никто в больших организациях не хотел с ним иметь дела, оставаясь в своём спокойном мире прекрасно организованных слоёв абстракций из фабрик и волшебных фреймворков инъекций XML.

              И это было отлично для тех, кто, как я, хотел получать зарплату больших организаций, не залезая в слои отвратительных «лучших практик» и проблем с производительностью, возникающих из-за неконтролируемого страха давать доступ к базе данных хоть кому-нибудь, кроме DBA.

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

              Мы достигли расцвета JS

              С приходом jQuery наша жизнь стала ещё лучше, и мир вокруг стал собираться из маленьких переиспользуемых плагинов к jQuery. Наконец, мы достигли расцвета, когда пришёл NPM, и мы начали использовать более-менее работоспособную систему модулей для работы с автономными виджетами.

              Я представлял себе будущее, где я мог работать с отличными командами над отличным кодом из маленьких модулей и автономных функций и виджетов. Я даже думал, что нам удастся отвоевать контроль над кодом у корпоративных маньяков с их библиотеками, ОРМами, паттернами и практиками, и основанными на них фабриками фабрик сервисов.

              Мы следовали вменяемому процессу и делали отличные вещи из отличного кода, освободившись от оков мерзких корпоративных фреймворков.
              А потом вы всё сломали
            • Ещё +2Гб для вашего DropBox аккаунта. На сей раз, промо-акция DropBox и Three.com.hk



                Привет всем. И вновь я продолжаю описывать серию промо акций для обожаемого сервиса DropBox.

                Сегодня я вам расскажу, как получить ещё +2Гб. На сей раз, не надо будет ходить по разным сайтам, генерировать коды и писать левые данные. Сегодня будет всё проще.

                В прошлой статье +2Гб для вашего DropBox аккаунта. Промо-акция Samsung Бразилия, в самом конце, я писал, что есть ещё одна акция, которая проходит в Гонконге от оператора Three.com.hk. Так же, там было написано, что поучаствовать в данной акции не получится, так как там необходимо зарегистрироваться и жить в стране далёкой. Но как это устроить? Эту проблему мы обсуждали большой группой людей в конференции, но все наши попытки были тщетны, было понятно, что ничего не выйдет. Но как, же мы все ошибались!!!

                Итак (барабанная дробь), я представляю вам акцию от Three.com.hk
                Читать дальше →
              • Курс для тех, кто не боится UNIX и С

                  image
                  О том, что российские вузы выпускают специалистов, невостребованных рынком труда, говорят многие. Обычно, разговорами все и заканчивается. Очень мало компаний в России идут на контакт с высшими учебными заведениями. Но такие всё же есть.

                  В прошлом году специалисты SkyDNS и Айдеко подготовили и прочитали в Уральском федеральном университете (УрФУ) курс «Сетевое программирование в UNIX». Спецкурс предназначался для студентов математико-механического факультета УрФУ. «Мы анонсировали его как курс для тех, кто не боится UNIX и С», — рассказал Александр Патраков, ведущий разработчик компании SkyDNS.
                  Читать дальше →
                • GTD. Мифы, ошибки, заблуждения

                    GTD — заморское слово, чуждое русскому языку и мировоззрению. Нам сложно понять, зачем русской душе, привыкшей к широте и свободе, понадобилась эта заморская метода «для дрессировки офисного планктона». Почему нельзя просто делать дела без всех этих новомодных методик? Ведь очевидно, что время, которое мы будем тратить на приведение дел в порядок, организуя их в некую систему — это время потраченное зря. За то время, пока мы разбирали и раскладывали бумажки с надписями «сделать то-то к такому числу», можно было взять и сделать много чего. Надо просто взять себя в руки и начать делать дела, вместо разговоров о них!
                    Читать дальше →
                  • У одного из пользователей системы Bitcoin украли 25 тысяч «коинов» (примерно 300 тыс. долларов США)



                      Новая платежная система Bitcoin привлекает многих пользователей Сети, которые уже начали работать с этими «денежными» единицами. Система молодая, а проблемы уже начались — на днях один из пользователей заявил, что у него украли около 25 тысяч биткоинов, что по нынешнему курсу — около 500 тысяч долларов. Интереснее всего то, что даже создатели системы не могут сказать, действительно ли деньги украли, или пользователь их сам «увел» — особенности Bitcoin таковы, что проверить все это невозможно. Нильс Шнейдер, один из инициаторов проекта, утверждает, что сложная криптография системы действительно не оставляет возможности проверить, была ли кража на самом деле. В общем-то, странно как-то это слышать, тем более, от разработчиков.

                      Читать дальше →