• Что есть и чего нет в Go. Часть 2

    • Translation
    Всем привет! Cегодня делимся заключительной частью перевода статьи «Что есть и чего нет в Go». Напоминаем, в первой части речь шла о элементах, которые есть в Go, сегодня же поговорим о том, чего в Go нет.

    Перевод данного материала подготовлен в преддверии старта нового потока по курсу «Разработчик Golang».



    Go создавался с оглядкой назад, и его базовая комплектация действительно хорошо составлена: у него есть сборка мусора, пакеты, функции первого класса, лексическая область видимости, интерфейс системных вызовов и неизменяемые строки, текст которых обычно кодируется в UTF-8. Но он имеет сравнительно мало фич и вряд ли будет увеличивать их количество. Например, у него нет неявных числовых преобразований, нет конструкторов или деструкторов, нет перегрузки операторов, нет значений параметров по умолчанию, нет наследования, нет дженериков, нет исключений, нет макросов, нет аннотаций функций и нет локального хранилища потока.

    Читать дальше →
  • Как я делаю скриншоты в Linux

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

      Читать дальше →
    • Захват видео с сетевых камер, часть 1

      • Tutorial
      Сетевые видеокамеры постепенно вытесняют аналоговые, хоть и стоят они сейчас гораздо дороже. Сетевые обладают рядом очевидных приемуществ:
      • нет необходимости в отдельном регистраторе или плате захвата;
      • помехоустойчивость;
      • простая интеграция в существующую сеть;
      • нет ограничения по расстоянию;
      • наличие камер высокого разрешения;
      • просмотр камеры прямо с самой камеры по http;
      • наличие всевозможных настроек;
      • и др.

      Нас интересует способ получения изображений с таких камер, для этого надо знать а как вообще они их передают? На наше счастье камеры используют существующие стандарты, а не то, что взбредёт в голову китайскому разработчику. Подавляющее большинство камер используют один или несколько способов передачи видео, это в основном Motion JPEG по HTTP, Motion JPEG по RTSP или H264 по RTSP. Также многие камеры могут передавать звук, но он нас не интересует сейчас.

      В этой статье я рассмотрю эти способы передачи изображений с сетевых камер, а также приведу пример захвата таких изображений всё на том же Python'е.
      Читать дальше →
    • Полезные плагины и советы по безопасности для WordPress



      Онлайн-маркетинг и ведение блогов не получили бы столь широкого распространения без таких систем управления содержимым (CMS), как WordPress.

      Считается, что WordPress — это самая простая и при этом многофункциональная CMS. С помощью нее все от любителей до крупных компаний могут создавать, публиковать, управлять и следить за веб-контентом.

      На сегодняшний день на WordPress работает примерно 76,5 миллионов блогов, или 27% всех страниц в интернете. Каждый день создается еще 50000 веб-сайтов (источник: WordPress).

      Из-за такого объема операций WordPress становится мишенью для злоумышленников. Взломщики проникают в систему, чтобы распространять вирусы, раскрывать данные или мешать работоспособности WordPress-сайта в целом.
      Читать дальше →
      • +17
      • 7.1k
      • 2
    • Bash-скрипты, часть 3: параметры и ключи командной строки

      • Translation
      Bash-скрипты: начало
      Bash-скрипты, часть 2: циклы
      Bash-скрипты, часть 3: параметры и ключи командной строки
      Bash-скрипты, часть 4: ввод и вывод
      Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
      Bash-скрипты, часть 6: функции и разработка библиотек
      Bash-скрипты, часть 7: sed и обработка текстов
      Bash-скрипты, часть 8: язык обработки данных awk
      Bash-скрипты, часть 9: регулярные выражения
      Bash-скрипты, часть 10: практические примеры
      Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

      Освоив предыдущие части этой серии материалов, вы узнали о том, что такое bash-скрипты, как их писать, как управлять потоком выполнения программы, как работать с файлами. Сегодня мы поговорим о том, как добавить скриптам интерактивности, оснастив их возможностями по получению данных от пользователя и по обработке этих данных.

      image
      Читать дальше →
    • Самые полезные приёмы работы в командной строке Linux

      • Translation
      Каждый, кто пользуется командной строкой Linux, встречался со списками полезных советов. Каждый знает, что повседневные дела вполне можно выполнять эффективнее, да только вот одно лишь это знание, не подкреплённое практикой, никому не приносит пользы.

      Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.

      image

      Перед вами – небольшой список полезных приёмов работы с командной строкой Linux. С некоторыми из них вы, возможно, уже знакомы, но успели их позабыть. А кое-что вполне может оказаться приятной находкой даже для знатоков. Хочется надеяться, что некоторые из них будут вам полезны и превратятся из «списка» в живые команды, которыми вы будете пользоваться каждый день.
      Читать дальше →
    • Экосистема разработчиков в Telegram

        Лого

        Многим уже известно, что в мессенджере Telegram помимо прямого общения между двумя людьми также реализованы другие полезные инструменты:

        • Каналы — некий симбиоз сообщений и списков рассылки, где автор или коллектив авторов обращаются к своей аудитории, но аудитория не может влиять на содержимое канала.
        • Группы — своеобразные чаты между большим количеством пользователей, где каждый участник является полноправным представителем сообщества и может влиять на повестку дня.
        • Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения, часто используются для интеграции c сервисами.

        На днях на просторах Github, наткнулся на список каналов, групп, ботов в Telegram, который пополняется непосредственно разработчиками, использующими этот проект совместной разработки. Под катом можно увидеть саму IT-подборку, из которой каждый сможет выбрать что-то интересное для себя.
        Читать дальше →
      • Тяжелое расставание с Net-Tools

        • Tutorial

        Не секрет, что Net-Tools пора на почетную отставку. Да, многим админам и мне в том числе, до условного рефлекса Павлова знакомы команды ifconfig, route, netstat. На первый взгляд нет причин что-то менять, а лучшее как всегда враг хорошего.




        Давайте узнаем почему Net-Tools уже не тот и как безболезненно с него перейти на iproute2 .

        Читать дальше →
      • Пример базы Keepass для сетевого администратора



          Все мы храним или хранили пароли от сетевых устройств в excel файлах. Бывает конечно и так, что хранить ничего не надо так как учетная запись на всех устройства одинаковая, надеюсь читатели поняли, что я говорю не про RADIUS или TACACS, а про ситуацию, когда учетная запись действительно одна.

          Когда запускаешь сеть, не всегда удается поднять какой-нибудь NCM для управления новым детищем. Когда у вас мало устройств и ограничены ресурсы, текстовый документ или таблица excel кажутся оптимальным средством хранения данных, но в глубине души мы все понимаем, что это не так.

          Хорошо если в вашей компании есть ресурсы и обозначен стабильный рост. В таком случае в какой-то момент вы разворачиваете приложение для управлению сетью. Но кто-то, в конечном итоге, так и остаётся на уровне «контролцэ-контролвэ», из-за отсутсвия ресурсов, а может и по другим причинам. Именно для этих людей данная статья. Я расскажу как уйти от excel, сделать хранение паролей более удобным и получить некоторую автоматизацию типовых телодвижений. Заметка: все описания для Windows окружения.
          Читать дальше →
        • Как работает Интерактивное и Цифровое ТВ от ОнЛайм

            Интерактивное ТВ и Цифровое ТВ, они же IPTV и DVB-C, имеют много общего, например, позволяют смотреть современное телевидение в отличном качестве. В то же время, они являются разными услугами, рассчитанными на разную аудиторию и предоставляющими разный подход к просмотру телевизора. В этом материале мы рассмотрим обе услуги и расскажем о том, как они работают, что у них общего и что их различает.


            Читать дальше →
          • Настройка ISCSI initiator в linux

              Abstract: как работает open-iscsi (ISCSI initiator в linux), как его настраивать и чуть-чуть про сам протокол ISCSI.

              Лирика: В интернете есть множество статей довольно хорошо объясняющих, как настроить ISCSI target, однако, почему-то, практически нет статей про работу с инициатором. Не смотря на то, что target технически сложнее, административной возни с initiator больше — тут больше запутанных концепций и не очень очевидные принципы работы.

              ISCSI


              Перед тем, как рассказать про ISCSI — несколько слов о разных типах удалённого доступа к информации в современных сетях.

              NAS vs SAN

              Существует два метода доступа к данным, находящимся на другом компьютере: файловый (когда у удалённого компьютера запрашивают файл, а какими файловыми системами это сделано — никого не волнует), характерные представители NFS, CIFS (SMB); и блочный — когда у удалённого компьютера запрашивают блоки с дискового носителя (аналогично тому, как их читают с жёсткого диска). В этом случае запрашивающая сторона сама себе делает на блочном устройстве файловую систему, а сервер, отдающий блочное устройство, знать не знает про файловые системы на нём. Первый метод называют NAS (network attached storage), а второй — SAN (storage area network). Названия вообще указывают на другие признаки (SAN подразумевает выделенную сеть до хранилищ), но так сложилось, что NAS — это файлы, а SAN — это блочные устройства по сети. И хотя все (?) понимают, что это неправильные названия, чем дальше, тем больше они закрепляются.
              Читать дальше →
            • UNetLab 1.0. Серьезный конкурент для GNS3

              • Tutorial
              Здравствуйте, коллеги! Не знаю почему эта новость до сих пор не появилась на хабре, но совсем недавно состоялся релиз новой версии UNetLab 1.0.
              image
              Новая версия содержит множество улучшений особенно в части веб-интерфейса. Я не буду расписывать что такое UNetLab и для чего он нужен, это уже сделали до меня и довольно неплохо.
              Читать дальше →
            • Универсальный скрипт переключения 2-х каналов интернета Mikrotik

              • Tutorial
              Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

              Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

              image
              Читать дальше →
            • SCT Error Recovery Control

                … или что такое на самом деле 'raid edition' для жёстких дисков



                Немного теории


                Существуют две стратегии поведения НЖМД при обнаружении ошибки:
                • standalone/desktop — пытаться прочитать до последнего. Это ощущается как «тормозящий винт», который всё-таки работает, если это единичный сбой, то «затупило, но прошло», плюс характерный перестук перекалибрующихся головок.
                • raid — отваливаться тут же. Это ощущается как «внезапно была ошибка диска но потом mhdd и т.д. НИЧЕГО НЕ НАШЁЛ ЧТО МНЕ ДЕЛАТЬ».
                Статегии очевидным образом различаются по предназначению — десктоп лучше протупит, но ошибку не выдаст, в рейде есть запасной винт, и терпеть минутные тормоза на чтении никто не имеет никакой возможности. Не получилось прочитать? Читаем с запасных винтов, помечаем весь винт как сбойный, начинаем ресинк, а диск потом отправят в утилизатор. Возможно, незаслуженно, но нечего икать на ответственной должности.

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

                Расшифровка названия


                Возможность управления поведением диска при ошибках называется очень и очень путанно: SCT ERC. Это расшифровывается как SCT Error Recovery Control. SCT в свою очередь название общего протокола SMART Command Transport. SMART в свою очередь расшифровывается как Self-Monitoring, Analysis and Reporting Technology, таким образом, полная расшифровка SCT ERC звучит так: Self-Monitoring, Analysis and Reporting Technology Command Transport Error Recovery Control (выдохнули).
                Читать дальше →
              • Нативное решение проблемы с дисками WD в Linux

                  Владельцы дисков WD серии Green сталкиваются с слишком частой парковкой головок. В этой статье было описано как решить проблему с помощью DOS-утилиты wdidle3 от поддержки WD. Со времен этой статьи прошло много времени, но проблема осталась. Да и сам метод решения с помощью DOS-утилиты не является гуманным.
                  В процессе решения этой проблемы наткнулся на программу idle3-tools, с помощью которой можно указать время парковки головок из Linux.
                  Читать дальше →
                • Памятка пользователям ssh

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

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

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

                    Наткнулся на неприятный подводный камень. Имеем систему с несколькими аплинками, и policy-routing, реализующий балансировку соединений между аплинками с помощью:

                    ip route replace default scope global
                    nexthop via 11.22.33.1 dev eth0 weight 1
                    nexthop via 55.66.77.1 dev eth1 weight 1


                    (Примерная инструкция здесь)

                    Проблема заключается в следующем — соединения периодически падают, причём никакой системы нет. Может простоять несколько часов, может упасть через 5-10 минут. Всяким http и torrent'ам это не мешает. В первом случае сессии обычно достаточно короткие, во втором реконнект проходит незаметно и без последствий. Но если мы работаем с ssh?
                    Читать дальше →
                  • Linux под нагрузкой. Высокопроизводительный шейпер

                      В прошлой заметке мы рассматривали некоторые аспекты тюнинга роутера под Linux, предназначенного для работы в условиях высоких нагрузок: Linux под нагрузкой. Маршрутизатор, NAT-сервер Теперь же речь пойдет о шейперах.
                      Читать дальше →
                    • Настройка работы сервера на CentOS с 2 шлюзами и балансировки между ними

                      Вместо вступления


                      За основу взята более ранняя прочитанная мной статья на Хабре, которой лично мне оказалось достаточно для понимания механизма policy routing в целом — и катастрофически мало для реализации этого типа маршрутизации на сервере компании. Было 2 серьезных подводных камня, над которыми пришлось работать самостоятельно, и которые нельзя оставить без внимания:

                      • Сохранение настроек в целом
                      • Перебивание настроек утилитой Network Manager


                      Свою статью я напишу в виде той инструкции, которую написал для будущих поколений айтишников в своей фирме — так что некоторые пункты из основной статьи буду приводить либо в неизменном, либо в пересказанном для себя виде. Их буду выделять курсивом. Для полного понимания того, что здесь написано, рекомендую ознакомиться с ней полностью.
                      Читать дальше →