«Слежка за культурой», чат-боты в полиции и «отравление» кэша
IT-дайджест: главные новости октября 2024 года.
Иллюстрация: Оля Ежак для Skillbox Media
В этой подборке мы делимся актуальной информацией о состоянии Ruby on Rails и CSS, устраиваем батл между Linux и Windows, а также рассуждаем о пользе удалённой работы. А ещё вы сможете поиграть с интерактивным шариком и расплескать жидкий градиент.
Содержание
- Десять фишек Linux, недоступных в Windows
- Ruby on Rails в 2024 году
- Как нейросети пишут отчёты и меняют работу полиции
- Как звучат мелодии улиц и где их послушать
- На eBay приобрели утерянный язык программирования
- На что способен CSS в 2024 году
- Почему удалёнка — это перспективное будущее: взгляд экономиста Стэнфорда
- Мнение: как IT-индустрия обесценила грейды «джуниор», «мидл» и «сеньор»
- Необычные сайты, которые стоит посетить
- Интересное на Reddit
Десять фишек Linux, недоступных в Windows
Портал It’s FOSS выделил десять особенностей операционной системы Linux, которые отсутствуют или ограниченно представлены в Windows. Давайте их перечислим.
Тайлинг окон. В Linux вы можете расположить несколько окон в виде плиток, которые не будут перекрывать друг друга. Похожая функция есть в Windows 11, но она пока не настолько гибка.
Выбор рабочих сред. В то время как Microsoft сама определяет внешний вид системы, Linux предоставляет широкий выбор графических интерфейсов: Cinnamon, Plasma, GNOME, COSMIC, LXQt, XFCE и многие другие. Вы можете выбирать и менять их по своему усмотрению.
Внешний вид и оформление. Выбранные оболочки можно настроить по своему вкусу. Linux позволяет изменять практически всё, вплоть до конфигурационных файлов системы.
Виджеты. Linux позволяет добавлять на рабочий стол виджеты — от заметок и прогноза погоды до множества других полезных инструментов.
Встроенная поддержка языков программирования. Дистрибутивы 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:
- Ruby Weekly
- This Week in Rails
- Short Ruby
- Martian Chronicles
- Hotwire Weekly
- GoRails
- Write Software, Well
- Thoughtbot
- AppSignal
Читайте также:
Как нейросети пишут отчёты и меняют работу полиции
Полицейские из Оклахомы стали одними из первых в мире, кто начал использовать нейросети для составления отчётов о преступлениях. И, похоже, они в полном восторге. Например, сержант Мэтт Гилмор с псом Ганнером почти час разыскивал подозреваемых, фиксируя всё на камеру. Раньше для составления отчёта о произошедшем Гилмору требовалось бы 30–45 минут. В этот раз Мэтт решил загрузить запись в программу Draft One, работающую на основе ChatGPT. Всего через восемь секунд он получил черновик отчёта и поделился впечатлениями:
«Это лучший отчёт из тех, что я когда-либо делал, и он на 100% точен. Программа даже зафиксировала факт, который я сам не запомнил — упоминание другим офицером цвета машины подозреваемых».
Полицейские не любят составлять отчёты, и такие системы могут значительно облегчить им работу. Однако у прокуроров есть сомнения: сотрудники полиции часто дают показания в суде, и их слова могут повлиять на судьбу человека. Прокуроры не хотят услышать однажды на заседании оправдание: «Я не знаю, о чём речь, — это написал ИИ, а не я».
Полицейские Оклахомы пообещали пока не использовать чат-боты в особо важных уголовных делах. Однако их коллеги из других штатов уже активно применяют Draft One в своей работе.
На наш взгляд, пока не наступила предсказанная Рэем Курцвейлом точка сингулярности, нейросети остаются лишь инструментом — чрезвычайно полезным в умелых руках.
Читайте также:
Как звучат мелодии улиц и где их послушать
В некоторых городах США на улицах стоят микрофоны, фиксирующие выстрелы, на которые реагирует полиция. Эту систему называют ShotSpotter. Технолог Райли Вальц придумал аналог — Bop Spotter.
Вальц установил коробку на одном из столбов Сан-Франциско. Внутри находится старый смартфон на Android с микрофоном и приложением Shazam, работающим круглосуточно. Устройство питается от солнечных батарей и записывает звуки десятиминутными блоками. Затем оно подключается к Wi-Fi и отправляет файл на сервер, где запись разделяется на 20-секундные фрагменты и передаётся в API Shazam. Вальц ставит цель проекта — определить, какую музыку люди слушают в общественных местах:
«Это слежка за культурой. Я не ловлю преступников, речь идёт о ловле вибраций».
Если вам интересно послушать фрагменты, обнаруженные Bop Spotter, посетите сайт walzr.com.
Проект необычный, однако мы не уверены, что такая прослушка законна хоть в какой-либо стране. Поэтому для своего пет-проекта советуем вам придумать другую идею.
Читайте также:
На eBay приобрели утерянный язык программирования
Язык программирования MicroText для компьютера Commodore 64 исчез в 1980-х годах, и его исходный код считался утерянным. Однако недавно на интернет-аукционе eBay появилась дискета с файлами языка и всеми сопутствующими материалами. Лот приобрёл Кристиан Симпсон — энтузиаст ретроязыков программирования. Чтобы предотвратить повторную утрату, Симпсон опубликовал всё содержимое в интернете и рассказал об этом в видеоролике на своём ютуб-канале.
На что способен CSS в 2024 году
Подведены итоги опроса разработчиков о состоянии CSS, в котором приняли участие 9704 специалиста со всего мира. Известный блогер Джош Камо высказал интересную мысль:
«Мы будем вспоминать 2024 год как переломный момент между „классическим“ CSS и „новым“ CSS».
«Классический» CSS — это хорошо знакомый большинству разработчиков язык стилей. Его возможности были сильно ограничены, поэтому многие компенсировали эти недостатки с помощью библиотек, препроцессоров, инструментов и различных методологий вроде БЭМ.
«Новый» CSS вбирает в себя лучшие практики внешних инструментов. Например, среди разработчиков растёт популярность псевдокласса :has(), который позволяет выбирать элементы на основе их содержимого или дочерних элементов, что удобно для создания сложных и гибких селекторов без использования JavaScript. Посмотрим фрагмент кода:
Этот 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 позволяет каждому создавать хип-хоп-музыку, используя бесплатные аудио- и видеоматериалы из Библиотеки Конгресса США.
Читайте также:
А теперь немного необычного и бесполезного: на этом сайте можно бесконечно катать шарик, слушать щёлкающий звук и карканье вороны. Здесь можно покрутить типографический куб, а тут — насладиться жидким градиентом. А если захочется острых ощущений — можно «натравить» на себя лицехвата из вселенной «Чужого» и сделать фото на память.
На сайте Your Name In Landsat вы можете написать любое слово с помощью элементов земного ландшафта, запечатлённых на спутниковых снимках. Выглядит эффектно, ждём кириллицу.
Если ничего из вышеупомянутого вас не заинтересовало, предлагаем взглянуть на список языков программирования, названия которых состоят из одной буквы — от 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 году:
- Изучайте актуальный JavaScript 2024 года, а не устаревшие версии.
- Практикуйтесь в чистом JavaScript, а не только во фреймворках: это облегчит переход на любой из них.
- Освойте Chrome Developer Tools и учитесь писать код прямо в браузере.
- Читайте актуальные книги по ECMAScript 6: JavaScript Everywhere, Learning JavaScript Design Patterns, Secrets of the JavaScript Ninja, Eloquent JavaScript, Learning JavaScript, Programming JavaScript Applications и Speaking JavaScript.
- Рекомендуемые бесплатные онлайн-курсы: The Odin Project и freeCodeCamp.
Читайте также:
Участники сабреддита Linux Questions поделились программами, без которых они не могут обойтись:
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!