Код
#статьи

«Слежка за культурой», чат-боты в полиции и «отравление» кэша

IT-дайджест: главные новости октября 2024 года.

Иллюстрация: Оля Ежак для Skillbox Media

Десять фишек Linux, недоступных в Windows

Портал It’s FOSS выделил десять особенностей операционной системы Linux, которые отсутствуют или ограниченно представлены в Windows. Давайте их перечислим.

Тайлинг окон. В Linux вы можете расположить несколько окон в виде плиток, которые не будут перекрывать друг друга. Похожая функция есть в Windows 11, но она пока не настолько гибка.

Пример тайлинга окон в Linux-системе Pop! _OS с рабочим столом COSMIC
Скриншот: It’s FOSS

Выбор рабочих сред. В то время как Microsoft сама определяет внешний вид системы, Linux предоставляет широкий выбор графических интерфейсов: Cinnamon, Plasma, GNOME, COSMIC, LXQt, XFCE и многие другие. Вы можете выбирать и менять их по своему усмотрению.

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

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

В Linux есть виджеты для почти всех случаев жизни
Изображение: elkowar / GitHub

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

Языки сценариев. В большинстве дистрибутивов Linux по умолчанию доступна оболочка Bash, предоставляющая мощные возможности для автоматизации задач. С её помощью можно, например, легко создать скрипт для массового переименования файлов или анализа логов. WSL (Windows Subsystem for Linux) в Windows тоже даёт доступ к Bash, но не обеспечивает такой же глубокой интеграции с системой и производительности, как родная среда Linux.

Выбор файловой системы. Windows в основном использует NTFS, в то время как опытным пользователям Linux доступны различные варианты: BTRFS, ZFS, F2FS и многие другие.

Docker и контейнеризация. Для работы с Docker на Windows требуется виртуализация, и образы могут занимать значительный объём. Например, образ Ubuntu на Windows может весить 2–3 ГБ в зависимости от конфигурации, в то время как образ на Linux — всего 50–100 МБ. Такая разница в размере (в 20–60 раз) объясняется отсутствием дополнительного слоя виртуализации в Linux, что позволяет контейнерам напрямую использовать ядро хост-системы.

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

Менеджеры пакетов. Linux предлагает гибкие инструменты для установки и управления программным обеспечением, которые можно настроить под конкретные нужды пользователя. Например, в Linux есть APT для систем на базе Debian и DNF для Fedora. В Windows также есть различные менеджеры пакетов, такие как Chocolatey и Windows Package Manager (WinGet), однако они не так распространены и глубоко интегрированы в систему.

Мы в Skillbox Media любим Linux и считаем её мощной и современной операционной системой. Однако нам кажется, что авторы портала It’s FOSS слишком яро рассказывают о Linux, забывая, что аналогичную подборку преимуществ можно сделать и про Windows. Вот несколько примеров:

  • Windows обеспечивает лучшую поддержку игр и графических приложений, использующих набор программных интерфейсов DirectX.
  • Только на Windows доступна полноценная версия Microsoft Office, которая важна для многих бизнес-пользователей.
  • Windows обладает более обширной базой драйверов для различных устройств.
  • Windows предлагает более продвинутые инструменты для администрирования пользователей и устройств в корпоративных сетях, такие как Active Directory.

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

Ruby on Rails в 2024 году

Более 2700 разработчиков из сообщества Ruby on Rails в 106 странах поделились своими мыслями об используемых инструментах, фреймворках и рабочих процессах. Несмотря на периодические заявления о том, что «Ruby мёртв», результаты опроса доказывают обратное:

«Похоже, Ruby on Rails вступает в новую эру роста и энтузиазма. В этом году мы получили рекордное количество ответов за всю историю опроса!»

Большинство опрошенных проживает в США (40%), Германии (9%), Великобритании (9%), Бразилии (7%), Франции (6%) и Канаде (6%). Среди респондентов есть как самоучки, так и дипломированные специалисты. Джефф Казимир, исполнительный директор школы программирования Turing School, считает, что сейчас при поиске работы важен опыт:

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

Разработчики изучали Ruby on Rails разными способами: 24% писали собственное приложение, 21% смотрели обучающие видео, 16% работали с существующим продуктом, а 14% читали книги. Однако наиболее эффективными методами оказались создание собственного приложения (43%) и работа с существующим продуктом (27%).

75% опрошенных уверены, а ещё 19% согласны с тем, что Ruby on Rails остаётся актуальным в 2024 году. Разделяете это мнение? Тогда сохраните десять лучших блогов о Ruby on Rails:

Как нейросети пишут отчёты и меняют работу полиции

Полицейские из Оклахомы стали одними из первых в мире, кто начал использовать нейросети для составления отчётов о преступлениях. И, похоже, они в полном восторге. Например, сержант Мэтт Гилмор с псом Ганнером почти час разыскивал подозреваемых, фиксируя всё на камеру. Раньше для составления отчёта о произошедшем Гилмору требовалось бы 30–45 минут. В этот раз Мэтт решил загрузить запись в программу Draft One, работающую на основе ChatGPT. Всего через восемь секунд он получил черновик отчёта и поделился впечатлениями:

«Это лучший отчёт из тех, что я когда-либо делал, и он на 100% точен. Программа даже зафиксировала факт, который я сам не запомнил — упоминание другим офицером цвета машины подозреваемых».

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

Полицейские Оклахомы пообещали пока не использовать чат-боты в особо важных уголовных делах. Однако их коллеги из других штатов уже активно применяют Draft One в своей работе.

На наш взгляд, пока не наступила предсказанная Рэем Курцвейлом точка сингулярности, нейросети остаются лишь инструментом — чрезвычайно полезным в умелых руках.

Как звучат мелодии улиц и где их послушать

В некоторых городах США на улицах стоят микрофоны, фиксирующие выстрелы, на которые реагирует полиция. Эту систему называют ShotSpotter. Технолог Райли Вальц придумал аналог — Bop Spotter.

Вальц установил коробку на одном из столбов Сан-Франциско. Внутри находится старый смартфон на Android с микрофоном и приложением Shazam, работающим круглосуточно. Устройство питается от солнечных батарей и записывает звуки десятиминутными блоками. Затем оно подключается к Wi-Fi и отправляет файл на сервер, где запись разделяется на 20-секундные фрагменты и передаётся в API Shazam. Вальц ставит цель проекта — определить, какую музыку люди слушают в общественных местах:

«Это слежка за культурой. Я не ловлю преступников, речь идёт о ловле вибраций».

Если вам интересно послушать фрагменты, обнаруженные Bop Spotter, посетите сайт walzr.com.

Скриншот: Riley Walz / Skillbox Media

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

На eBay приобрели утерянный язык программирования

Язык программирования MicroText для компьютера Commodore 64 исчез в 1980-х годах, и его исходный код считался утерянным. Однако недавно на интернет-аукционе eBay появилась дискета с файлами языка и всеми сопутствующими материалами. Лот приобрёл Кристиан Симпсон — энтузиаст ретроязыков программирования. Чтобы предотвратить повторную утрату, Симпсон опубликовал всё содержимое в интернете и рассказал об этом в видеоролике на своём ютуб-канале.

В видео Симпсон рассказывает историю находки и демонстрирует язык MicroText
Видео: Retro Recipes

На что способен CSS в 2024 году

Подведены итоги опроса разработчиков о состоянии CSS, в котором приняли участие 9704 специалиста со всего мира. Известный блогер Джош Камо высказал интересную мысль:

«Мы будем вспоминать 2024 год как переломный момент между „классическим“ CSS и „новым“ CSS».

«Классический» CSS — это хорошо знакомый большинству разработчиков язык стилей. Его возможности были сильно ограничены, поэтому многие компенсировали эти недостатки с помощью библиотек, препроцессоров, инструментов и различных методологий вроде БЭМ.

«Новый» CSS вбирает в себя лучшие практики внешних инструментов. Например, среди разработчиков растёт популярность псевдокласса :has(), который позволяет выбирать элементы на основе их содержимого или дочерних элементов, что удобно для создания сложных и гибких селекторов без использования JavaScript. Посмотрим фрагмент кода:

.container:has(.highlight) {
    border: 2px solid #FF5733;
    background-color: #f0f0f0;
}

Этот CSS-код задаёт стили для контейнера, содержащего элемент с классом .highlight. Когда внутри элемента с классом .container появляется элемент с классом .highlight, контейнер автоматически приобретает оранжевую рамку и светло-серый фон.

Основные преимущества использования псевдокласса :has():

  • Реверсивность. Раньше для стилизации родительского элемента на основе его содержимого требовался JavaScript, так как CSS не мог «обращаться назад» к родителю. Теперь псевдокласс :has() позволяет CSS напрямую стилизовать родительский элемент.
  • Инкапсуляция стилей. Отказ от JavaScript позволяет хранить всю логику стилизации в CSS, что упрощает поддержку кода. Этот подход облегчает тестирование и корректировку, в то время как JavaScript требует дополнительной проверки логики и манипуляций с DOM.
  • Повышение производительности. CSS с псевдоклассом :has() работает эффективнее, чем аналогичный код на JavaScript. CSS применяет стили напрямую к DOM, в то время как JavaScript требует дополнительных циклов обновления и потребляет больше ресурсов из-за необходимости постоянно сканировать содержимое DOM для отслеживания изменений.

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

  • blur() — эффект размытия элемента, как будто вы смотрите через запотевшее стекло. Чем больше значение в пикселях, тем сильнее размытие. Пример: filter: blur(5px); размоет выбранный элемент на пять пикселей.
  • brightness() — регулировка яркости элемента. Чем больше значение в процентах, тем ярче элемент. Пример: filter: brightness(150%); увеличит яркость элемента на 50%.
  • contrast() — изменение контрастности элемента. Более высокое значение усиливает разницу между светлыми и тёмными участками. Пример: filter: contrast(200%); удвоит контрастность элемента.

Также часто используются значения для управления размером элементов:

  • min-content — устанавливает минимальный размер содержимого, при котором элемент может отображать своё содержимое без переполнения.
  • max-content — задаёт максимальный размер содержимого, позволяя элементу расширяться до размера самого длинного слова или строки.
  • fit-content — автоматически подгоняет размер под содержимое, не превышая доступное пространство.

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

Почему удалёнка — это перспективное будущее: взгляд экономиста Стэнфорда

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

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

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

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

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

Мнение: как IT-индустрия обесценила грейды «джуниор», «мидл» и «сеньор»

Инженер Тревор Ласн считает, что на современном IT-рынке разделение программистов на джуниоров, мидлов и сеньоров утратило смысл. Раньше статус сеньора значил больше, чем просто количество отработанных лет:

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

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

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

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

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

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

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

Необычные сайты, которые стоит посетить

Проект Citizen DJ позволяет каждому создавать хип-хоп-музыку, используя бесплатные аудио- и видеоматериалы из Библиотеки Конгресса США.

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

Скриншот: Shoya Kajita / Skillbox Media

На сайте Your Name In Landsat вы можете написать любое слово с помощью элементов земного ландшафта, запечатлённых на спутниковых снимках. Выглядит эффектно, ждём кириллицу.

Вот так можно написать слово Skillbox
Скриншот: NASA / Skillbox Media

Если ничего из вышеупомянутого вас не заинтересовало, предлагаем взглянуть на список языков программирования, названия которых состоят из одной буквы — от A+ до Z. Как посмотрите — сравните с нашим списком.

Интересное на Reddit

В сабе CompSci рассказали, как эффективно читать статьи по информатике:

«Не читайте всё по порядку. Начните с аннотации и заключения — если в статье нет выводов, можно не продолжать. Руководствуйтесь принципом PARC: проблема, подход, результаты, заключение. То есть обратите внимание на то, какую проблему пытается решить статья, какой подход используется, каковы результаты и к чему пришли авторы».

Представим, что вам нужно прочесть научную статью по информатике. Вот как можно применить принцип PARC для анализа содержания:

  • Проблема: исследование сосредоточено на повышении эффективности поисковых систем.
  • Подход: авторы предлагают новый алгоритм для ранжирования результатов поиска, который отличается от существующих.
  • Результаты: эксперименты показывают, что новый алгоритм повышает точность поиска на 20% по сравнению с действующими методами.
  • Заключение: разработанный алгоритм значительно улучшает качество и релевантность результатов поиска в интернете.

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

В сабреддите Computer Science пользователи собрали список терминов из информатики, которые звучат как названия магических заклинаний и способностей из фэнтезийных игр:

  • Огненная стена (firewall) — система защиты сети от несанкционированного доступа.
  • Виртуальная память (virtual memory) — метод управления памятью компьютера.
  • Единый источник истины (single source of truth) — принцип хранения данных в одном месте.
  • Сжатие без потерь (lossless compression) — метод уменьшения размера данных без потери информации.
  • Демон (daemon) — фоновый процесс в операционной системе.
  • Красно-чёрное дерево (red-black tree) — самобалансирующаяся структура данных.
  • ZIP-бомба (ZIP bomb) — вредоносный сжатый файл, способный вызвать отказ в обслуживании.
  • Отравление кэша (cache poisoning) — атака на DNS-сервер путём подмены данных в кэше.

Мы бы дополнили этот список такими терминами:

  • Дерево убийств (kill tree) — структура данных для управления процессами, требующими принудительного завершения.
  • Зомби-процесс (zombie process) — процесс, завершивший работу, но ещё не удалённый из таблицы процессов операционной системы.
  • Магический дым (magic smoke) — шуточный термин, описывающий «сгоревшие» или сломанные компоненты электронных устройств.
  • Призрачное чтение (phantom read) — аномалия в базах данных, при которой процесс читает неполные или некорректные данные из-за одновременного доступа другого процесса.
  • Ленивая загрузка (lazy loading) — техника оптимизации, при которой данные загружаются по мере необходимости, а не заранее.
  • Жадный алгоритм (greedy algorithm) — алгоритм, выбирающий на каждом шаге локально оптимальное решение в стремлении достичь глобального оптимума.

В сабреддите Software Development спросили, что изменилось за последние пять лет в разработке ПО. Многим понравился такой ответ:

«Пять лет назад я проверял кривой код джунов, которые не понимали требований. Теперь я проверяю кривой код, написанный ИИ, который тоже не понимает требований».

В сабреддите Learn JavaScript пользователь поделился рекомендациями по эффективному изучению JavaScript в 2024 году:

Участники сабреддита Linux Questions поделились программами, без которых они не могут обойтись:

  • Syncthing — утилита для синхронизации данных между устройствами.
  • KeePassXC — менеджер паролей.
  • Borgmatic — инструмент для управления резервными копиями.
  • Zpaq — мощный архиватор.
  • Vim — текстовый редактор.
  • Tmux — терминальный мультиплексор, позволяющий управлять несколькими сессиями в одном окне.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Фронтенд-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована