• Настройка сетевого стека Linux для высоконагруженных систем

    • Translation

    Сетевой стек — одна из самых запутанных вещей в Linux. И не только из-за сложности некоторых концепций и терминов, но и из-за изменения смысла некоторых параметров в разных версиях ядра. В этой статье приведена информация для ядра 2.2 и выше, а также, там где это возможно, указано различие между версиями вплоть до 5.5.

    О том как изменять параметры ядра, описываемые здесь, можно прочитать в статье Linux Kernel Tuning for High Performance Networking: Configuring Kernel Settings.

    Читать далее
    • +26
    • 7.1k
    • 6
  • Обеспечение безопасности базы данных PostgreSQL

    • Translation

    Базы данных — это Святой Грааль для хакеров, поэтому их необходимо защищать с особой тщательностью. Это первая из серии статей, в которых мы дадим обзор best practice в обеспечении безопасности баз данных. Мы начнем с одной из самых популярных СУБД с открытым исходным кодом, PostgreSQL, и рассмотрим несколько уровней безопасности, о которых стоит задуматься:

    Читать далее
  • «Галоп пикселя — часть первая» — базовые понятия, этапы взросления, прикладные упражнения

    • Tutorial


    «Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
    «Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
    «Галоп пикселя», часть III — Анимация (линк)
    «Галоп пикселя», часть IV — Анимация света и тени (линк)
    «Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)

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

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

    Материал разделен на несколько публикаций в виду объема текста и изображений. Каждая статья имеет свою степень сложности, однако, все из них наглядны и могут быть использованы как руководство к действию.


    Лопатить пиксели
  • Изучение data science c нуля: этапы и вехи

      В соответствии с концепцией спирального подхода к обучению, о которой писал ранее, привожу поэтапный план освоения data science. План составлен так, чтобы каждый этап делал учащегося в той или иной степени лучше подготовленным к выполнению реальных задач. Такой подход вдохновлен идеологией Agile в том смысле, что сколько бы времени вы не уделили обучению и в какой бы момент не остановились - у вас будет наиболее востребованный набор знаний, из возможных к освоению за такое время.

      Читать далее
    • Физкультура для программиста, есть ли хороший выход?

      У меня никода не было мотивации заниматься физкультурой. Даже в детстве я предпочитал спорту киберспорт. С началом профессиональной деятельности поменялся только характер запускаемых программ. Спортивным стало программирование. И, как полагается профессиональному спортсмену, я продолжал хорошо питаться. Все поменялось когда мне стукнуло 25. Я поменял свое отношение к физическим нагрузкам - я стал их просто ненавидеть, они стали моим приговором. При росте 175 и весе в 120 кг я заимел гипертонию с аритмией. Выполнение обычных бытовых дел выматывало так, что на работу сил оставалось все меньше и меньше. Впереди начали маячить серьезные проблемы со здоровьем. Как я за 10 лет нашел выход из этой ситуации? Да никак. Подробности под катом.

      Читать далее
    • Собираешься работать в кибербезопасности? Прочитай это

      • Translation
      Автор статьи — Брайан Кребс, известный журналист в сфере информационной безопасности.

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



      Практически каждую неделю мне приходит минимум одно письмо от читателя, который просит совета, как начать карьеру в сфере ИБ. В большинстве случаев соискатели спрашивают, какие сертификаты им следует получить или у какой специализации самое светлое будущее.
      Читать дальше →
      • +18
      • 17k
      • 6
    • Простой зомби-шутер на Unity

      Всем привет! Скоро стартуют занятия в первой группе курса «Разработчик игр на Unity». В преддверии начала курса прошел открытый урок по созданию зомби-шутера на Unity. Вебинар провёл Николай Запольнов, Senior Game Developer из Rovio Entertainment Corporation. Он также написал подробную статью, которую мы и предлагаем вашему вниманию.



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



      Дисклеймер №1: данная статья рассчитана на новичков. Если вы собаку съели в Unity, то она может показаться вам скучной.

      Дисклеймер №2: для прочтения этой статьи вам потребуется хотя-бы базовое знание программирования. Как минимум, слова «класс» и «метод» не должны вас пугать.

      Осторожно, под катом трафик!
      Читать дальше →
    • Создаем интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 2

      • Tutorial


      Первая часть тут


      Продолжаем разработку нашего интернет магазина. В этой части будет:


      • нормальная загрузка картинок по статическим адресам
      • генерация хлебных крошек на клиенте
      • страница товара
      • шапка
      • рабочая кнопка купить с синхронизацией товаров между вкладками (и сессиями)
      Читать дальше →
    • Как выбрать усилитель сотовой связи и мобильного интернета

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

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

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

      Принцип работы усилителя сотовой связи


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

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

      image
      Читать дальше →
    • Шесть задачек для Front-End разработчика

      • Translation

      1. Форма кредитной карты


      Клёвая форма кредитной карты с гладкими и приятными микровзаимодействиями. Включает форматирование чисел, проверку и автоматическое определение типа карты. Она построена на Vue.js, а также полностью адаптивная. (Посмотреть можно здесь.)

      image

      credit-card-form

      Чему научитесь:

      • Обрабатывать и валидировать формы
      • Обрабатывать события (например, при изменении полей)
      • Разберетесь как отображать и размещать элементы на странице, особенно данные кредитной карты, которая поверх формы
      Читать дальше →
    • Профилирование и отладка Python

        Некоторое время назад я рассказывал о «Профилировании и отладке Django». После выступления я получил много вопросов (как лично, так и по email), с парой новых знакомых мы даже выбрались в бар, чтобы обсудить важные проблемы программирования за кружечкой отменного эля, со многими людьми я продолжаю общаться до сих пор.



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


        Welcome!
      • Введение в эксплоитинг и реверсинг (уже не с нуля) с использованием IDA FREE и других бесплатных инструментов

        • Translation
        • Tutorial
        Привет, Хабравчане.

        Для тех кто не знает, совсем недавно Рикардо начал новый курс, который посвящен реверсингу и эксплоитингу. Это продолжение предыдущего оригинального авторского курса, который закончился на 67 главе. Я узнал про курс сразу, так как Рикардо подписал меня на свою рассылку КрэкЛатинос. После появления этой новости я сразу побежал искать папочку с английским переводом и очень обрадовался когда нашел его там. Над английским переводом постарался человек под ником Fare9, за что ему честь и хвала. Также я хочу передать привет и сказать спасибо Ильфаку Гильфанову за его прекрасный инструмент, которым пользуются в каждой стране. Перед ним я снимаю шляпу и делаю низкий поклон.
        Читать дальше →
      • Где брать аудио для разработки игр и других коммерческих проектов? Библиотеки со звуками природы

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

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

          Читать дальше →
          • +15
          • 7.2k
          • 2
        • 15 книг по машинному обучению для начинающих

            Сделал подборку книг по Machine Learning для тех, кто хочет разобраться, что да как.
            Добавляйте в закладки и делитесь с коллегами!

            Книги по машинному обучению на русском


            1. «Математические основы машинного обучения и прогнозирования» Владимир Вьюгин.

            О чем

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

            2. «Верховный алгоритм» Педро Домингос.

            О чем

            Книга, благодаря которой даже ничего не смыслящие в математике и статистике люди поймут, что такое алгоритмы машинного обучения и каково их применение в жизни. Профессор Педро Домингос рассказывает о пяти основных школах Machine Learning и о том, как они используют идеи из различных областей научного знания — нейробиологии, физики, статистики, биологии, — чтобы помогать людям решать сложные задачи и упрощать рутину с помощью алгоритмов.
            Читать дальше →
          • Нейросети и глубокое обучение: онлайн-учебник, глава 6, ч.2: недавний прогресс в распознавании изображений

            • Translation

            В 1998 году, когда появилась база MNIST, требовались недели для обучения самых передовых компьютеров, достигавших гораздо худших результатов, чем сегодняшние, на получение которых при помощи GPU уходит менее часа. Поэтому MNIST уже не является задачей, раздвигающей границы возможностей технологий; скорость обучения говорит о том, что эта задача хорошо подходит для изучения данной технологии. Тем временем, исследования идут дальше, и в современной работе изучаются гораздо более сложные для решения задачи. В данном разделе я кратко опишу некоторые примеры текущей работы, связанной с распознаванием изображений при помощи нейросетей.

            Этот раздел отличается от остальной части книги. В книге я фокусировался на предположительно долгоживущих идеях – обратном распространении, регуляризации, свёрточных сетях. Я пытался избегать результатов, считающихся модными на момент написания, чья долговременная ценность представлялась сомнительной. В науке подобные результаты чаще всего оказываются однодневками, быстро исчезают и не оказывают долговременного влияния. Учитывая это, скептик сказал бы: «Разумеется, недавний прогресс в распознавании изображений можно считать примером такой однодневки? Через два-три года всё поменяется. Так что эти результаты наверняка будут интересны небольшому числу специалистов, конкурирующих на переднем плане? К чему вообще их обсуждать?»
            Читать дальше →
          • Пишем telegram-бота на python с помощью библиотеки telebot часть 2

            • Tutorial
            Всем привет! Это вторая часть статьи, в которой я посвящу время запросам и серверам telegram. Если кто-то еще не видел первую часть, то рекомендую её почитать. В третьей части скорее всего будет описана работа с базами данных. Ну и если у вас опять возникли вопросы, то пишите мне в телеграм: dimagorovtsov

            Что такое message?


            Наверное многие, кто писал бота по моей предыдущей статье задались вопросом, что такое message и почему к примеру, чтобы отправить сообщение мы должны указать message.chat.id в параметрах функции send_message? Для того, чтобы узнать это давайте выведем message в консоль:

            @bot.message_handler(commands=['start'])
            def start(message):
                print(message)

            Теперь когда мы вводим команду /start, наш бот присылает огромное кол-во информации. Все, что мы сейчас получили — это ответ в формате json. Json — это простой формат для хранения структурированных данных. Все выводится в формате: 'ключ': значение. Давайте посмотрим на то, что получил я:
            Читать дальше →
            • +5
            • 63.9k
            • 4
          • Дорожная карта математических дисциплин для машинного обучения, часть 1

            • Tutorial

            Вместо предисловия


            Допустим, сидя вечерком в теплом кресле вам вдруг пришла в голову шальная мысль: «Хм, а почему бы мне вместо случайного подбора гиперпараметров модели не узнать, а почему оно всё работает?»
            Читать дальше →
          • Объяснение задачи на Python с собеседования

            • Translation
            Салют, хабровчане! В преддверии запуска нового потока по курсу «Web-разработчик на Python» хотим поделиться новым полезным переводом. Поехали!



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

            def f(x, l=[]):
                for i in range(x):
                    l.append(i * i)
                return l
            >>> f(2)
            >>> f(3, [0, 1, 2])
            >>> f(3)


            Вопрос: Что выведет этот код?
            Читать дальше →
          • Нейросети и глубокое обучение, глава 3, ч.1: улучшение способа обучения нейросетей

            • Translation

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

            Среди техник, которым мы научимся в этой главе: лучший вариант на роль функции стоимости, а именно функция стоимости с перекрёстной энтропией; четыре т.н. метода регуляризации (регуляризации L1 и L2, исключение нейронов [dropout], искусственное расширение обучающих данных), улучшающих обобщаемость наших НС за пределы обучающих данных; лучший метод инициализации весов сети; набор эвристических методов, помогающих выбирать хорошие гиперпараметры для сети. Я также рассмотрю и несколько других техник, чуть более поверхностно. Эти обсуждения по большей части не зависят друг от друга, поэтому их можно по желанию перепрыгивать. Мы также реализуем множество технологий в рабочем коде и используем их для улучшения результатов, полученных для задачи классификации рукописных цифр, изученной в главе 1.
            Читать дальше →
            • +18
            • 11.9k
            • 2