• Теоретический минимум *nix-based-систем для WebDev-падавана

    • Tutorial


    Помни: сила рыцаря-джедая — это сила Вселенной.
    Но помни: гнев, страх — это всё ведет на темную сторону Силы.
    Как только ты сделаешь первый шаг по темному пути,
    ты уже не сможешь с него свернуть…


    Добрый день, уважаемый галактический сенат! На связи снова Денис Мельский, и сегодня на повестке дня — определение теоретического минимума познания *nix систем для юного падавана web-мастерства.

    Хотелось бы начать с того, что все мы прекрасно знаем: на 67.4 % наши любимые интернеты крутятся на *nix-based-серверах, а в жизни среднестатистического web-разработчика в вакууме — так и на все 90 %.



    Для любителей пруфов — welcome.

    Т. ч. в нашем ремесле без знания *nix-систем никак. Давайте проведем экскурс в мир *nix и поймем, какими знаниями должен обладать юный падаван.

    Предлагаю рассмотреть три юниорских степени познания дзена управлением шайтан-машиной ака *nix-сервак на примере всеми любимой ubuntu.
    Читать дальше →
  • Vagrant, Python, Pycharm = (удобная, работа, Windows)



      Введение

      Django — широко известный и один из наиболее развитых фреймворков для веб-разработки. Django написан на Python и, следовательно, для работы с ним потребуется установленный интерпретатор Python. Это не представляет никаких проблем, если мы работаем в среде Linux. Однако события принимают совсем другой оборот, если приходится заниматься разработкой на Python под Windows.

      Для Windows есть готовые сборки Python, среди которых стоит отметить Enthought Python, Anaconda Python, PythonXY.
      Есть и более простые пути.
      Основной их недостаток по сравнению со «стандартным» Python в Linux — ограниченность набора библиотек, доступных для установки. В частности, в них не Django, и для его установки приходится совершать некие не совсем очевидные действия.

      Один из возможных вариантов решения проблемы — установка виртуальной машины с Linux на борту. Работа с виртуальной машиной, несмотря на простоту ее установки и настройки, привносит ряд неудобств.
      Так, виртуальная машина может оказаться довольно требовательной к ресурсам компьютера и временами работать медленно, создавая дискомфорт разработчику. Особенно сильно это раздражает, если торможение начинается в самый напряженный момент работы (а именно тогда это чаще всего и происходит!). Кроме того, даже на очень хорошем железе такое IDE, как PyCharm, работает в режиме далеком от того, который принято считать комфортным.

      Повысить быстродействие можно за счет установки только необходимых пакетов, отсутствия оконного менеджера и тому подобных проблем. Т. е., необходимо правильно сконфигурировать виртуальную машину. И в этом деле на помощь приходит Vagrant — утилита для создания полностью готовых рабочих окружений на основе виртуальных машин (VirtualBox, VmWare Player/Workstation). Vagrant не только устанавливает виртуальную машину, но и позволяет с легкостью создавать новые, используя текущую конфигурацию пользователя.

      В следующем разделе рассматривается установка и настройка рабочего окружения Vagrant для использования его в качестве удаленного Python интерпретатора для проектов PyCharm.
      Читать дальше →
    • Настройка групповых политик ограниченного использования программ в Windows 7


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

        Поскольку у меня стоит Windows 7 Professional, первой идеей оказалось использование AppLocker'a, однако быстро выяснилось, что работать в моей редакции винды он не хочет, и требует Ultimate или Enterprise. В силу лицензионности моей винды и пустоты моего кошелька, вариант с AppLocker'ом отпал.

        Следующей попыткой стала настройка групповых политик ограниченного использования программ. Поскольку AppLocker является «прокачанной» версией данного механизма, логично попробовать именно политики, тем более они бесплатны для пользователей Windows :)
        Читать дальше →
      • Заменит ли бекап антивирус?

          Любая система защиты, активно анализирующая поведение системы (антивирус, поведенческий анализатор, системы защиты от сетевых атак и т.д.) потребляют, и зачастую весьма активно, ресурсы защищаемой системы. Грубо говоря, защита подтормаживает работу приложений (и в случае неоптимальных настроек иногда весьма сильно). Естественно это не вызывает восторга и понятно стремление отказаться от такой защиты, заменив ее альтернативными мерами — ограничением прав, системой резервирования и т.д.

          Нельзя объять необъятное. Поэтому поговорим исключительно о резервном копировании как альтернативе антивирусу.

          Естественно, что крупные (и/или богатые компании) могут себе позволить многое, но в быту наиболее часто данные резервируются путем простого копирования по сети или на внешний носитель, синхронизации с хранилищем в облаке, использованием теневого копирования (что очень часто вообще преподносится как панацея) или путем использования NAS. Насколько это надежно в плане защиты от вирусов?
          Читать дальше →
        • Быстрый полнотекстовый поиск ElasticSearch

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

          • Скорость
          • Простота установки и настройки
          • Цена (желательно бесплатно и с открытым кодом)
          • Обмен информацией в формате JSON (по HTTP)
          • Масштабируемость (возможность распределения на несколько серверов)
          • Индексация в режиме реального времени
          • Multi-tenancy (гибкость в настройках под индивидуального пользователя)
          • Возможность переноса системы в облако

          Хочу рассказать вам о новом поисковом движке Elasticsearch, который полностью удовлетворяет всем этим требованиям. В статье будет краткое описание, ссылка на авторитетную презентацию, а также описание установки и работы с ним.
          Читать дальше →
        • UMTS в походных условиях и самодельная антенна на 2ГГц

            Для чего я это делаю


            Иногда мне приходится выезжать далеко за город и оставаться там несколько дней. Да тут вот и окончательно переезжать поближе к природе задумал к осени. Интернета не то чтобы хочется, он просто необходим для работы. Покрытие сетью 3G в отдалённых районах нашей области постепенно улучшается, но до идеала всё ещё как до Китая очень далеко. Встроенные антенны USB-«свистков» работают категорически неудовлетворительно. Потому я начал по привычке «колхозить»…

            Краткий обзор ситуации с 3G


            Подавляющее большинство готовых 3G-устройств работают только со своей встроенной антенной и никаких возможностей подключить внешнюю антенну не имеют. Тех, которые таковую имеют, во-первых, днём с огнём вечером разогнём не сыщешь, во-вторых, это подключение в подавляющем большинстве случаев ненадёжно и имеет плохие характеристики в плане ослабления/отражения сигнала и внесения дополнительных шумов. Название pigtail («поросячий хвостик»), принятое в отношении таких кабелей-переходников, очень точно описывает эту ситуацию.
            Качество встроенных антенн приемлемо для городской среды, где БСки натыканы через шаг. Для походных же условий такая условно-всенаправленная супер-укороченная антенна не годится совершенно.
            Однако многие 3G-модемы, даже не имеющие видимого разъёма для подключения внешней антенны, имеют точку подключения для антенны на своей плате, видимо, для диагностики. Зачастую на этой точке даже распаян разъём.
            Без «хирургического вмешательства», таким образом, не обойтись.

            Под катом большие картинки.
            Читать дальше →
          • Монтаж печатной платы: быстрый старт с нуля

              Если вы помните мой предыдущий пост, там было высказано желание разобраться, что и как можно добавить к понравившейся мне модели, чтобы DIY forever. Большое спасибо пользователям UseTi, Phmphx, lomalkin и в особенности n4k4m1sh1, которые поделились интересными идеями на эту тему в комментариях. Понятно, что для поставленных целей нужны два навыка, один из которых — монтаж печатной платы. А значит сегодня мы будем паять, с нуля.



              С полки детского магазина был взят очередной набор, конкретно этот.

              Итак, тестируем «Набор Юного электронщика». Получится ли с его помощью собрать рабочие конструкции с нуля не имея предварительных навыков, как это до того у нас получилось с механической моделью?
              Читать дальше →
            • От Python скрипта до WSGI приложения

              • Tutorial
              Появилась задача написать веб интерфейс управления устройством. Управлять устройством будет Raspberry Pi. Логика управления — python, соответственно и интерфейс хотелось бы python. Хочу поделится своим опытом.

              • 1. lighttpd mod_cgi и простой скрипт
              • 2. web.py на порту 8080
              • 3. WCGI интерфейс
              • 4. Простой сервер WSGI
              • 5. WSGI с использованием wsgiref
              • 6. WSGI c помощью flup
              • 7. web.py приложение с использованием flup
              • 8. Немного особенностей

              Читать дальше →
            • Организация виртуальной памяти

                Привет, Хабрахабр!

                В предыдущей статье я рассказал про vfork() и пообещал рассказать о реализации вызова fork() как с поддержкой MMU, так и без неё (последняя, само собой, со значительными ограничениями). Но прежде, чем перейти к подробностям, будет логичнее начать с устройства виртуальной памяти.

                Конечно, многие слышали про MMU, страничные таблицы и TLB. К сожалению, материалы на эту тему обычно рассматривают аппаратную сторону этого механизма, упоминая механизмы ОС только в общих чертах. Я же хочу разобрать конкретную программную реализацию в проекте Embox. Это лишь один из возможных подходов, и он достаточно лёгок для понимания. Кроме того, это не музейный экспонат, и при желании можно залезть “под капот” ОС и попробовать что-нибудь поменять.
                Читать дальше →
                • +39
                • 49.2k
                • 4
              • Ваш wi-fi расскажет мне, где вы живёте, где работаете и где путешествуете


                  Москва вайфайная

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

                  Пробы WiFi


                  Чтобы соединиться с уже известными сетями, которые не сообщают о своём присутствии, все ваши мобильные устройства отправляют пробные пакеты, чтобы найти известные им сети. Эти пакеты можно перехватить, когда телефон включается, или когда он отсоединяется от сети. Для этого используются обычные инструменты — airodump / tcpdump. Пример:

                  # airodump-ng -w wifi-dump wlan0
                  # tcpdump -n -l -e -r wifi-dump.cap |
                      grep 'Probe Request ([^)]'
                  


                  Вывод содержит время, MAC-адрес устройства и имя сети. Пример:

                  16:32:26.628209 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:50:ea:d6:aa:bb:cc
                      Probe Request (SUBWAY) [1.0 2.0 5.5 11.0 Mbit]
                  


                  То бишь, устройство 50:ea:d6:aa:bb:cc проверяло, есть ли сеть SUBWAY в пределах доступности.

                  Ну и что тут плохого?


                  Ну испускают они эти пакеты с именами сетей. Подумаешь.
                  Читать дальше →
                • Загрузочный сервер — как загрузочная флешка, только сервер и по сети

                    Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

                    Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
                    А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

                    Вот такое меню встречает нашу команду инженеров при загрузке с PXE



                    Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
                    Поехали!
                  • Изолирование приложения с IP-адресом из VPN другой страны на примере Steam

                    • Tutorial
                    Abstract: Изоляция приложения на уровне сети использованием network namespaces Линукса. Организация SSH-туннелей.

                    Традиционно, большая часть статьи будет посвящена теории, а скучные скрипты — в конце статьи. В качестве субъекта для экспериментов будет использоваться Steam, хотя написанное применимо к любому приложению, включая веб-браузеры.

                    Вместо вступления. Я просто покажу эту картинку:

                    147%… Что-то мне это напоминает. Впрочем, хабр не для политики.

                    Цена на игры в Стиме зависит от региона. Регион — от IP'шника. Есть желание иметь цены в рублях, а не в евро.

                    Для этого мы используем VPN через SSH с использованием tun-устройств, плюс network namespaces для изоляции приложения от всех остальных сетевых устройств.

                    Network namespaces


                    Традиционно, приложение, запускающееся даже с правами пользователя, имеет полный доступ в сеть. Оно может использовать любой сетевой адрес, существующий в системе для отправки пакетов.

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

                    Если у нас есть несколько интерфейсов (один из которых относится к VPN), то нет штатных методов сказать стиму, что надо использовать его, а не eth0/wlan0. Точнее, мы можем «завернуть» весь трафик в VPN, но это не всегда желательно. Как минимум — рост latency и снижение скорости (даже если VPN ведёт на супербыстрый сервер, увеличение latency, оверхед от туннеля и фиксированная ширина локального канала ставят TCP в положение, когда приходится резать скорость). Как максимум — одно дело «покупать через русский VPN», другое дело — пускать туда весь трафик. Меня совсем не прельщает использование VPN для получения защиты роскомнадзором от оппозиции и вольнодумства.

                    В этих условиях возникает большое желание оставить один на один конкретное приложение и заданный сетевой интерфейс. Один. Сконфигурированный для нужд только этого приложения.

                    Для решения этой задачи в Linux, уже довольно давно (аж с 2007 года) существует технология, называемая network namespaces, то есть пространства имён для сетей. Суть технологии: над сетевыми интерфейсами создаётся подобие «каталогов», в каждом каталоге может быть несколько сетевых интерфейсов и приложений. Приложение, оказавшееся в заданном сетевом пространстве имён, может использовать (и видит) только те сетевые интерфейсы, которые отнесены к этому пространству.

                    Картинка ниже поясняет происходящее:

                    Читать дальше →
                  • Штампуем окна: автоматизированное развёртывание виртуальных машин Windows на Hyper-V при помощи Vagrant (часть 2)

                      В предыдыщей части мы рассмотрели, для чего нужна автоматизация разворачивания ВМ Windows и как подготовить хостовую систему. Сегодня я хотел бы заострить внимание на технической реализации самой массивной части процесса, а именно — подготовке базового бокса для Vagrant.
                      Собираем коробочку
                      • +7
                      • 11.5k
                      • 7
                    • Бесплатные инструменты для VMware и Hyper-V

                        Сегодня мы хотим рассказать про 5 полезных freeware утилит, которые будут полезны в повседневной работе администратора виртуальных сред VMware vSphere и Microsoft Hyper-V. Все эти инструменты разработаны компанией Veeam, продукты которой фокусируются на задачах резервного копирования, построения отчетов и операционного мониторинга систем виртуализации на базе VMware и Hyper-V. Сегодня мы расскажем о:

                        • Veeam Backup Free Edition for VMware and Hyper-V
                        • Veeam ONE Free Edition for VMware and Hyper-V
                        • Veeam Extended Generic Report Library for Microsoft System Center
                        • Veeam Stencils for VMware и Hyper-V
                        • Veeam Management Pack for VMware

                        Итак, приступим:
                        Читать дальше →
                      • Как я перестал беспокоиться и полюбил Hyper-V Server

                          Как я перестал беспокоиться и полюбил Hyper-V Server

                          Недавно у меня появилась задача “вжиться в шкуру пользователя” и на деле проверить, как работается на бесплатном Microsoft Hyper-V Server 2012.



                          Да-да, бесплатный сыр есть не только в мышеловке, но и у Майкрософта. Если вы хотите виртуализовать сервера или хотя бы ваш старый ноутбук, но при этом не хотите платить дополнительные деньги за гипервизор, то Hyper-V Server — это то, что нужно попробовать. Почему? Во-первых, он по-настоящему бесплатен – все функции, включая даже «энтерпрайзные», доступны пользователям сразу и без каких-либо оговорок, во-вторых, он поддерживается и развивается большой компанией, и, в-третьих, это просто старый добрый Windows, хоть и немного обрезанный до Server Core.



                          Под катом вас ждет рассказ о том, как установить и настроить Hyper-V Server и элегантно обойти ограничения этой платформы при помощи Линукса.


                          Читать дальше →
                        • Человеческий парсер на Selenium WD



                            Начало


                            И вот пришла моя очередь покупать автомобиль. Как это делают ребята с работы я видел. Заходят на сайт и следят за предложениями, ну кто постарше покупает газету и просматривает объявления. Все это однообразно и отвлекаться на сиденье, исследование и нажатие по ссылкам не хотелось. Хотелось просто что бы кто то делал это за меня, таких людей не нашлось. Значит надо было заставить делать все это компьютер.
                            Читать дальше →
                          • Описание более 350 команд Линукс

                              На дигге была найдена интересная ссылка (PDF-версия) — описание более, чем 350 команд Линукс (на английском языке). Фактически представляет собой шпаргалку, где команды разбиты на категории. Отмечу, что это не простой список команд, а именно описание с применением. Чтобы не быть голословным приведу несколько примеров.

                              Читать дальше →
                            • NAS + SoftetherVPN = универсальный VPN сервер

                                Думаю не ошибусь, если предположу, что у любого пользователя периодически возникает необходимость получить доступ к какому-либо сетевому ресурсу (IP-камере, сетевому накопителю, компьютеру, холодильнику и т.п.) внутри домашней или офисной сети через Интернет. Ну и само собой этот доступ должен быть:
                                А) универсальный, т. е. с любого компьютера или гаджета;
                                Б) защищенный от несанкционированного доступа нежелательных лиц.

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

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


                                Читать дальше →
                              • 10 дистрибутивов Linux специального назначения

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

                                1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».


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