• Сети для начинающего IT-специалиста. Обязательная база

    Примерно 80% из нас, кто заканчивает университет с какой-либо IT-специальностью, в итоге не становится программистом. Многие устраиваются в техническую поддержку, системными администраторами, мастерами по наладке компьютерных устройств, консультантами-продавцами цифровой техники, менеджерами в it-сферу и так далее.


    Эта статья как раз для таких 80%, кто только закончил университет с какой-либо IT-специальностью и уже начал мониторить вакансии, например, на должность системного администратора или его помощника, либо выездного инженера в аутсорсинговую фирму, либо в техническую поддержку 1-й/2-й линии.


    А также для самостоятельного изучения или для обучения новых сотрудников.


    За время своей трудовой деятельности в сфере IT я столкнулся с такой проблемой, что в университетах не дают самую основную базу касательно сетей. С этим я столкнулся сначала сам, когда, после окончания университета, ходил по собеседованиям в 2016 году и не мог ответить на простые (как мне сейчас кажется) вопросы. Тогда мне конечно показалось, что это я прохалтурил и не доучил в университете. Но как оказалось дело в образовательной программе. Так как сейчас, я также сталкиваюсь с данным пробелом знаний, когда обучаю новых сотрудников.


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


    Именно поэтому я решил собрать основные темы в одну статью и объяснить их как можно проще «на пальцах».

    Читать дальше →
  • Загружаем и храним в Google Drive файлы любого размера бесплатно. Баг или Фича?

      Недавно я нашел странную особенность в Google Drive. Определенная последовательность действий в Google Drive веб интерфейсе приводит к тому, что каждый может загрузить файлы любого объема в свою учетную запись и при этом не потратить ни одного байта на их хранение.

      Конечно, я сразу решил сообщить об этом в Google через программу BugHunter. Но, к моему сожалению, потратив неделю на общение со специалистами Google мне так и не удалось убедить их, что это баг. Сотрудник не смог воспроизвести этот баг и я получил ответ, что «это не баг, а фича» и меня отправили в RTFM. В конце концов Google просто закрыл тикет и перестал отвечать на мои письма.

      Так как переписка с Google зашла в тупик, я решил публично рассказать о этой «фиче» и, возможно, наконец привлечь внимание сотрудников Google к этой проблеме или хотя-бы понять, что я делаю не так. Ниже под катом история переписки с Google и proof of concept.
      Читать дальше →
    • Имитируем сетевые проблемы в Linux

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

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


        Читать дальше →
      • Апокалипсис грядёт

          Есть такая проблема — в 2038м году количество секунд с начала эпохи Unix Time перевалит за величину signed int и исчезнет. Это как проблема 2000 года, только намного сложнее, потому что для неё нужно менять типы данных.

          Так вот… в MySQL уже четырнадцать с половиной лет висит просьба починить функции UNIX_TIMESTAMP и FROM_UNIXTIME, которые не могут обрабатывать даты после 19 января 2038го. Это функции конвертации даты в Unixtime и наоборот.

          Проверить это достаточно просто: попробуйте вот этот запрос.

          select unix_timestamp('2038-01-20');
          Читать дальше →
        • Коронавирусы: от SARS к 2019-nCoV

            image

            Disclaimer: Я высказываю свое субъективное мнение на базе доступных данных. Мнение профессиональных вирусологов и эпидемиологов может отличаться от моего. В любой непонятной ситуации обращайтесь к материалам ВОЗ.

            Привет, коллеги. Чем больше роюсь в данных по вспышке коронавируса 2019-nCoV, тем меньше мне нравится происходящее, с учетом предыдущих вспышек аналогичных вирусов. Предлагаю пробежаться по истории прошлых эпидемий и попробовать спрогнозировать дальнейшее течение.
            Читать дальше →
          • Шпаргалка для сисадмина по SELinux: 42 ответа на важные вопросы

            • Перевод
            Перевод статьи подготовлен специально для студентов курса «Администратор Linux».




            Здесь вы получите ответы на важные вопросы о жизни, вселенной и всем таком в Linux с улучшенной безопасностью.

            «Важная истина, что вещи не всегда являются тем, чем кажутся, общеизвестна…»

            ―Дуглас Адамс, Автостопом по Галактике

            Безопасность. Повышение надежности. Соответствие. Политика. Четыре Всадника Апокалипсиса сисадмина. В дополнение к нашим ежедневным задачам — мониторингу, резервному копированию, внедрению, настройке, обновлению и т. д. — мы также отвечаем за безопасность наших систем. Даже тех систем, где сторонний провайдер рекомендует нам отключить усиленную безопасность. Это похоже на работу Этана Ханта из “Миссия невыполнима”.
            Читать дальше →
            • +23
            • 16,9k
            • 3
          • Single RAN: «ужимаем» БС без ущерба производительности


              Базовая станция после запуска выглядела бы примерно так, если бы не Single RAN

              Дословно Single RAN расшифровывается как «Single Radio Access Network» – единая сеть радиодоступа. Чтобы понять, что это, нам придется вернуться на десятилетия назад, в эпоху первых мобильных сетей. К примеру — D-AMPS, с которой начинал в 90-е годы, в частности, «Билайн».

              Тогда все было очень просто. Один стандарт связи D-AMPS, один диапазон частот – 800MHz, одна базовая станция, которая создает покрытие. Казалось бы, все замечательно! Однако емкость стандарта D-AMPS невелика, дополнительный функционал кроме голоса практически отсутствует, и очень скоро операторы переходят на стандарт GSM, который сразу был доступен уже в 2 диапазонах частот: 900MHz – для максимального покрытия, и 1800MHz – для максимальной емкости сети.
              Читать дальше →
            • Структуры данных для самых маленьких

              • Перевод
              James Kyle как-то раз взял и написал пост про структуры данных, добавив их реализацию на JavaScript. А я взял и перевёл.

              Дисклеймер: в посте много ascii-графики. Не стоит его читать с мобильного устройства — вас разочарует форматирование текста.


              Читать дальше →
            • Скрытая активация камеры браузерами: Большой Брат или технологический просчёт?

                image


                Всем привет!


                Меня зовут Вадим, и я один из технических консультантов и, по совместительству, системный администратор "РосКомСвободы".


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


                Заранее прошу прощения, если кому-то не нравится формат а-ля "журнал }{akep в нулевые". Пишите — исправлюсь.

                Читать дальше →
              • Введение в SSD. Часть 1. Историческая



                  Изучение истории дисков — начало пути к пониманию принципов работы твердотельных накопителей. Первая часть нашего цикла статей «Введение в SSD» проведет экскурс в историю и позволит наглядно понять разницу между SSD и его ближайшим конкурентом — HDD.

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

                  Отдельное внимание следует обратить на единицу измерения вместимости накопителей: исторически сложилось, что десятичные приставки, такие как кило- и мега-, в контексте информационных технологий подразумевают как десятая и двадцатая степень двойки. Для исключения путаницы были введены двоичные приставки киби-, меби- и другие. Разница этих приставок становится заметной с увеличением объема: покупая диск на 240 гигабайт, вы можете сохранить на нём 223.5 гибибайта информации.
                  Читать дальше →
                • Установка tftp сервера на CentOS 8 или RedHat 8

                  • Tutorial
                  Сегодня статья будет маленькая. Вообще, на мой взгляд всё довольно просто, но поскольку CentOS8 вышел недавно, гайдов на него мало, а конкретно про tftp под CentOS я видел в Интернете много откровенно вредных советов, поэтому постараюсь задать трэнд на исправление ситуации прямо с момента выхода новой версии. Итак, приступим (к набору тёх жалких пяти команд, которые нам нужны). Для начала установим все требующиеся пакеты:
                  Читать дальше →
                • Создаём библиотеку по последнему слову техники

                    Привет, Хабр. Это статья о том как написать Hello world по последнему слову техники.


                    В конце мы получим hello world библиотеку которая:


                    • Использует typescript
                    • Заботится о codestyle
                    • Генерирует доку
                    • Проводит тесты
                    Читать дальше →
                    • +10
                    • 6,4k
                    • 8
                  • Ssh-chat

                      Привет, Хабр. Console chat отличная вещь, но для фронтендеров, а что если вы хотите такой же, но для бэкэнда. Если да, то эта статья для вас. Но какой инструмент часто используют в бэкенде? Правильно ssh, так что представляю sshchat.

                      Читать дальше →
                    • Подборка @pythonetc, август 2019



                        Новая подборка советов про Python и программирование из моего авторского канала @pythonetc.

                        Предыдущие подборки


                        Если у экземпляра класса нет атрибута с заданным именем, то он пытается обратиться к атрибуту класса с тем же именем.

                        >>> class A:
                        ...     x = 2
                        ...
                        >>> A.x
                        2
                        >>> A().x
                        2
                        Читать дальше →
                      • Глючный код на Python: 10 самых распространенных ошибок, которые допускают разработчики

                        • Перевод

                        О Python


                        Python — это интерпретируемый, объектно-ориентированный язык программирования высокого уровня с динамической семантикой. Встроенные структуры данных высокого уровня в сочетании с динамической типизацией и динамическим связыванием делают его очень привлекательным для БРПС (быстрой разработки прикладных средств), а также для использования в качестве скриптового и связующего языка для подключения существующих компонентов или сервисов. Python поддерживает модули и пакеты, тем самым поощряя модульность программы и повторное использование кода.

                        О данной статье


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

                        Имея это в виду, в этой статье представлен «топ-10» тонких, трудных для обнаружения ошибок, которые могут допустить даже продвинутые разработчики Python.
                        Читать дальше →
                      • Что нам стоит Git настроить!

                        • Tutorial

                        Дарова, хабр! (ничего оригинальнее не придумал)

                        Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

                        Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

                        Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
                        Читать дальше →
                      • Бревно в глазу: какие уязвимости есть у систем видеонаблюдения

                          image

                          Найти кусочек земной поверхности, не попадающий в поле зрения какой-либо камеры, становится всё сложнее, если говорить о более-менее крупных городах. Кажется, ещё немного, и настанет то самое светлое будущее, в котором преступники не смогут скрыться от бдительного правосудия, а люди заживут счастливо и беззаботно, ведь ещё в 2009 году в 95% случаев Скотланд-Ярд использовал записи камер видеонаблюдения в качестве доказательства вины убийц. К сожалению, эта утопия далека от реальности. И не в последнюю очередь потому, что камеры наблюдения имеют уязвимости. Поговорим о том, какие уязвимости наиболее часто встречаются в системах видеонаблюдения, обсудим их причины и рассмотрим способы сделать эксплуатацию таких устройств безопаснее.
                          Читать дальше →
                          • +13
                          • 12,4k
                          • 4
                        • Говорим о DevOps на понятном языке

                            Трудно уловить главное, говоря о DevOps? Мы собрали для вас яркие аналогии, ударные формулировки и советы от экспертов, которые помогут дойти до сути даже неспециалистам. В конце бонус – собственный DevOps сотрудников Red Hat.



                            Термин DevOps возник 10 лет назад и прошел путь от хэштега в Твиттере до мощного культурного движения в мире ИТ, настоящей философии, поощряющей разработчиков быстрее добиваться результатов, экспериментировать и двигаться вперед методом итераций. DevOps стал неразрывно связан с понятием цифровой трансформации. Но как это часто бывает с ИТ-терминологией, за десяток лет DevOps успел обрасти множеством определений, трактовок и заблуждений на свой счет.
                            Читать дальше: DevOps на понятном языке
                          • Как я библиотеку для сервиса «Яндекс.Музыка» писал

                            Введение


                            Обо мне


                            Всем привет, я обычный учащийся по специальности "техник-программист". С детства увлекаюсь компьютерами, с класса 7-го начал познавать само программирование. Являюсь владельцем подписки на Яндексу Музыку уже больше года и в целом доволен сервисом (правда сейчас в плейлисте дня сплошные повторы).


                            Предыстория


                            Уж не помню точно, из-за чего я решил поискать официальную документацию API данного сервиса, вроде бота хотел для Telegram написать, но столкнулся с тем, что её нет… Спустя некоторое время наткнулся на issue в репозитории yandex/audio-js. Там ребятки задают точно такой же вопрос, как и я: "А где API?". Не многие горят желанием слушать музыку через браузер, они хотят приложение, но приложения под Linux тоже нет! Интегрировать к своему любимому плееру невозможно!


                            Тут я загорелся идеей сделать это. Естественно, мне нужно как-то работать с сервисом, городить костыли вокруг веб-приложения не вариант. Я понимал, что имея такой сервис, имея мобильные приложения и приложения под Windows (из Microsoft Store) просто невозможно не иметь своё внутреннее API для взаимодействия. Я оказался прав!


                            Обязательно к прочтению перед основной частью


                            Я отдаю себе отчёт в том, что, изучая их непубличное API я роюсь в чужих грязных вещах. Ниже будут описаны различные спорные моменты, решения разработчиков и в целом то, как это написали, как они этим пользуются. Местами я был просто шокирован, но я уверен, что если они так сделали, то на это были свои причины! Не будем забывать, что это никто не должен был видеть. Так же хочу сказать, что всё написанное ниже моё мнение. Вы можете с ним согласить или нет.

                            Читать дальше →
                          • Кое-что об inode

                            Периодически, с целью переезда в ЦРС собеседуюсь в разных крупных компаниях, в основном Питера и Москвы на должность DevOps. Обратил внимание, что во многих компаниях (во многих хороших компаниях, например в яндексе) задают два сходных вопроса:

                            • что такое inode;
                            • по каким причинам можно получить ошибку записи на диск (или например: почему может закончиться место на диске, суть одна).

                            Как часто бывает, я был уверен, что эту тему знаю хорошо, но как только начал объяснять — обозначились провалы в знаниях. Чтобы систематизировать свои знания, заполнить пробелы и больше не позориться, пишу эту статью, может еще кому пригодится.

                            Начну «снизу», т.е. с жесткого диска (флешки, SSD и прочие современные штуки отбросим, для примера рассмотрим любой 20 или 80 гиговый старый диск, т.к. там размер блока 512 байт).

                            Жесткий диск не умеет адресовать свое пространство побайтно, условно оно разбито на блоки. Нумерация блоков начинается с 0. (называется это LBA, подробности тут: ru.wikipedia.org/wiki/LBA)


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