• Strace в Linux: история, устройство и использование


    В Unix-подобных операционных системах общение программы с внешним миром и операционной системой происходит через небольшой набор функций — системных вызовов. А значит, в отладочных целях полезно бывает подсмотреть за выполняемыми процессами системными вызовами.


    Следить за «интимной жизнью» программ на Linux помогает утилита strace, которой и посвящена эта статья. К примерам использования «шпионского» оборудования прилагаются краткая история strace и описание устройства подобных программ.

    Читать дальше →
  • Java 14: Record, более лаконичный instanceof, упаковщик jpackage, switch-лямбды и текстовые блоки

      UPD. Сегодня состоится долгожданный релиз Java 14 — и пусть она не LTS, — новых фич в ней достаточно. Java 14 релизнется в течение нескольких часов — но знакомиться с ней можно уже сейчас.



      В Java 14 достаточно изменений, как на уровне написания кода, так и на уровне API, GC и многих других подкапотных штук. Можно с некоторой уверенностью сказать, что если Вы знаете о каких-то суперфишках Kotlin или Python — не переживайте, с большой долей вероятности они скоро появятся в джаве. Во всяком случае, сегодняшний релиз содержит некоторые из них. Но — обо всём по порядку.
      Читать дальше →
    • Nuxt + Django + GraphQL на примере


      Предисловие


      Nuxt — "фреймворк над фреймворком Vue" или популярная конфигурация Vue-based приложений с использованием лучших практик разработки на Vue. Среди них: организация каталогов приложения; включение и преконфигурация самых популярных инструментов в виде Nuxt модулей; включение Vuex по-умолчанию в любую конфигурацию; готовый и преднастроенный SSR с hot-reloading'ом


      Django — самый популярный веб-фреймворк на почти самом популярном языке программирования на сегодняшний день — Python. Сами разработчики позиционируют проект как "Веб-фреймворк для перфекционистов с дедлайнами". Представляет из себя решение "всё в одном" и позволяет в кратчайшие сроки построить MVP вашего веб-приложения.


      GraphQL — язык запросов изначально созданный компанией Facebook. В статье будет говориться о конкретных реализациях протокола этого языка, а именно библиотек Apollo для фронтенда и graphene для бэкенда.


      О чем и для кого эта статья

      Читать дальше →
    • Flask-DJ: Django (mvc) структура для проекта на flask

      image


      Всем привет!


      Когда я впервые столкнулся с Flask, у меня сразу возник вопрос по построению архитектуры проекта.


      Прочитав пару статей на Хабре (https://habr.com/ru/post/275099/ и https://habr.com/ru/post/421887/), я вспомнил свой опыт создания проектов на Django, и решил сделать инструмент, благодаря которому не придется задумываться об архитектуре, но при этом можно будет использовать все возможности Flask.

      Читать дальше →
    • Фишеры icloud и где они обитают

      Внимание! Несмотря на то, что для работы над этой статьей я потратил не один десяток часов, но ты все еще можешь в ней поучаствовать.

      Если у тебя чешутся руки — попробуй осилить этот текст.

      История больше похожа на комикс, так как содержит более 50 изображений, поэтому аккуратнее, если ты с мобильного. А ещё — тут скорее всего нарушается 152-ФЗ, поэтому я не удивлюсь, если её удалят, так что читай быстрее. Эта история пока не имеет конца, но у нее есть начало…
      Читать дальше →
    • Интернет в Туркменистане: цена, доступность и ограничения



        Туркменистан — одна из самых закрытых стран мира. Не настолько закрытая, как, скажем, Северная Корея, но близко к тому. Важное отличие — общедоступный интернет, подключиться к которому гражданин страны может без особых проблем. Эта статья рассказывает о ситуации с интернет-индустрией в стране, о доступности сети, стоимости подключения и ограничениях, наложенных чиновниками.
        Читать дальше →
      • 19 марта запустится практический курс для системных администраторов Linux от Mail.ru Group


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

          Читать дальше →
          • +17
          • 7,5k
          • 3
        • Хрестоматийный случай одного гика

          Киберздоровье через призму Мармока


          image

          Марин Мокану, более известный как «Marmok» — один из самых популярных игровых видеоблогеров в СНГ.

          Его пример весьма показателен и, что самое главное, вполне характерен для любого человека, жизнь которого проходит за компьютером — вне зависимости от конкретного рода деятельности.
          Читать дальше →
        • Изучаем внутреннюю кухню ядра Linux с помощью /proc для быстрой диагностики и решения проблем

          • Перевод
          Данная статья касается современных линуксов. Например, RHEL6 с ядрами 2.6.3х — подойдёт, а вот RHEL5 с ядрами 2.6.18 (кстати, наиболее популярный в продакшне) — увы, нет. И ещё — здесь не будет описания ядерных отладчиков или скриптов SytemTap; только старые-добрые простые команды вида «cat /proc/PID/xyz» в отношении некоторых полезных узлов файловой системы /proc.

          Диагностика «тормозящего» процесса


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

          К счастью, система работает под управлением OEL6, т.е. на достаточно свежем ядре (а именно — 2.6.39 UEK2)

          Итак, приступим к диагностике.
          Подробности
        • Как мы писали фронтенд собственной панели управления хостингом: фреймворк и бэкдоры


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

            Сегодня наш фронтенд разработчик Артыш расскажет, как писал фронтенд этой панели: какой выбрали фреймворк, какой антипаттерн считаем хорошим тоном и как защищаться от бэкдоров, если пользуетесь готовыми библиотеками.
            Читать дальше →
          • Подкроватный хостинг: жуткая практика домашних хостингов


              «Подкроватный» хостинг — жаргонное название сервера, расположенного в обычной жилой квартире и подключённого к домашнему интернет-каналу. На таких серверах обычно размещался публичный FTP-сервер, домашняя страничка владельца и иногда даже целый хостинг для других проектов. Явление было распространено в ранние времена появления доступного домашнего интернета по выделенному каналу, когда аренда выделенного сервера в дата-центре была слишком дорогой, а виртуальные сервера ещё не были распространены и достаточно удобны.

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

              С появлением доступных облачных сервисов домашние сервера стали менее популярны, и сегодня максимум, что можно встретить в жилых квартирах — это NAS для хранения фотоальбомов, фильмов и бекапов.

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

              Читать дальше →
            • Электронный тест беременности из аптеки: как это работает

              Про загадочные полоски слышали наверное все. Для кого-то это шок, а для кого-то — долгожданная новость. Не поддаваясь на эмоции и не останавливаясь на том где я взял и на ком испытывал этот девайс, обратимся к сути процесса. Но вначале — немного химии.


              Традиционный тест


              При беременности в организме женщины вырабатывается гормон под сокращенным названием ХГЧ. Если сделать пи-пи на полоску с соответствующим реагентом (экскюзе муа, леди и джентльмены), то наличие гормона будет отображено как цветная полоска. Чем больше срок, тем выше уровень гормона и ярче полоска.


              Не буду смущать вас дальнейшими физиологическими подробностями и перейду к тому, что меня заинтриговало в этом устройстве, а именно то что оно электронное.


              Читать дальше →
            • [По докам] Flutter. Часть 4. Для веб-разработчиков

                Начинаем новую неделю с очередной интерпретации официальной документации Flutter в формате «вопрос-ответ». 4-я часть освещает в сравнительном стиле Flutter для веб-разработчиков. Она целиком посвящена вёрстке и вышла не такой объёмной, как предыдущие. Традиционно рекомендую всем интересующимся Flutter веб-разработчикам заглянуть под кат, чтобы понять, стоит ли пробовать этот фреймворк и сколько усилий это займёт.


                Читать дальше →
              • Лучшие плагины IntelliJ IDEA

                • Перевод


                Key promoter X


                Использование сочетаний клавиш вместо мыши может значительно повысить производительность. С таким количеством функций, которые предлагает IDEA, это может быть пугающим и трудным для изучения всех быстрых клавиш. К счастью, есть плагин под названием Key Promoter X, который может вам помочь.

                Идея проста: всякий раз, когда вы используете мышь для вызова команды в вашей IDE, появляется всплывающее окно, которое сообщает вам, каково сочетание клавиш для этого действия.
                Читать дальше →
              • Почему Вы должны попробовать FastAPI?

                image Лого взято из Github репозитория FastAPI


                FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


                FastAPI построен на базе Starlette и Pydantic.
                StarletteASGI микро-фреймворк для написания веб-приложений.
                Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

                Читать дальше →
              • Два часа и 3.5 доллара. Как я сделал простой сайт с визуализацией распространения коронавируса

                Все началось с того, что я не смог найти нормальной визуализации данных о распространении коронавируса. Вернее, был один сайт, показывающий динамику на карте и метрики по Китаю, но это как раз то, что меня меньше всего интересовало, мне интересна глобальная картина. Скажу честно, этот вирус меня пугает.
                Читать дальше →
              • 10 шагов к успешному Python-проекту

                • Перевод
                Материал, перевод которого мы сегодня публикуем, посвящён инструментам, которые позволяют оснащать Python-проекты средствами форматирования кода, тестирования, непрерывной интеграции и анализа зависимостей. Это помогает ускорить процесс разработки, способствует повышению качества, единообразия и безопасности кода. Предполагается, что у читателя этого материала уже есть некоторый опыт Python-разработки и проект на Python, с которым он, в ходе чтения, будет экспериментировать. Если такого проекта у вас нет — здесь можно узнать о том, как подготовить среду разработки и создать Python-пакет. Примеры, которые будут здесь приводиться, подготовлены с использованием macOS и Python 3.7.


                Читать дальше →
                • +27
                • 22,7k
                • 4
              • Функциональное программирование в JavaScript с практическими примерами

                • Перевод

                image


                Функциональное программирование (ФП) может улучшить ваш подход к написанию кода. Но ФП непросто освоить. Многие статьи и руководства не уделяют внимания таким подробностям, как монады (Monads), аппликативность (Applicative) и т. д., не приводят в качестве иллюстраций практические примеры, которые могли бы помочь нам в повседневном использовании мощных ФП-методик. Я решил исправить это упущение.


                Хочу подчеркнуть: в статье сделан упор на том, ЗАЧЕМ нужна фича Х, а не на том, ЧТО такое фича Х.

                Читать дальше →
              • Разработка чрезвычайно быстрых программ на Python

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



                Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
                Читать дальше →