Pull to refresh
2
0
Send message

Сотворение мира за 20 минут на JavaScript, или минималистичная модель эволюции

Level of difficultyEasy
Reading time17 min
Views6.9K

Впервые про моделирование эволюции я прочитал в 13 лет в статье «Жить и умереть в компьютере» (Техника — Молодежи, №5 1993 год). Она произвела на меня столь неизгладимое впечатление, что я тут же загорелся идеей создать что-то подобное.

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

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

Запустить эволюцию

Современные форматы изображений или почему мы до сих пор на JPEG?

Level of difficultyEasy
Reading time5 min
Views4.6K

Формат JPEG появился в 1992 году и стал де-факто стандартом хранения фотографий в интернете. Спустя более 30 лет появляются всё более эффективные и продвинутые альтернативы: WebP, AVIF, JPEG XL и другие. Однако даже в 2025 году JPEG продолжает доминировать. Почему так происходит, несмотря на очевидные преимущества новых форматов? В этой статье мы проведем обзор форматов и разберёмся в причинах.

Читать далее

Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования

Reading time15 min
Views9.4K

В первой части мы разобрали, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.

Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.

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

Читать далее

Скрипт, который следит за тобой: автоматический аудит действий в Linux

Level of difficultyEasy
Reading time4 min
Views7.6K

Привет, Хабр! В данной статье хочу разобрать auditd - полезный инструмент аудита в Linux, который записывает каждое действие, а скрипт превратит логи в читаемые отчёты и алерты.

Linux-сервер без мониторинга активности пользователей — как дом с открытыми окнами. Проблемы, которые помогает решить auditd:

Несанкционированный доступ (кто и когда использовать, например, sudo)
Подозрительные команды (rm -rf, изменение прав, доступ к каким-либо файлам)
Расследование инцидентов (кто что натыкал перед падением сервера)
Соответствие корпоративным стандартам (возможно, ИБ требует логирования действий или вы любите контроль)

Решение: auditd + Python-скрипт для анализа и алертов.

Читать далее

Цифровая слежка: ищем человека, зная только его номер

Reading time5 min
Views32K

Всем привет! Сегодня разбираем, как найти человека, зная только его телефонный номер. В этом помогут социнженерия, геолокаторы, OSINT и ADINT и прочие доступные методы.

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

Читать далее

Как простой скан порта привел к награде в $500 от Google: «Обычные маршруты часто остаются неисследованными.»

Reading time3 min
Views6.3K

Привет!

Меня зовут Джебарсон Иммануэль, мне 19 лет, я исследователь безопасности и охотник за уязвимостями. Мне посчастливилось помочь обеспечить безопасность более 50 организаций, включая такие гиганты, как Oracle, eBay и Bosch.

В этой статье я расскажу, как простое сканирование портов в Google привело к вознаграждению в $500.

Читать далее

Security Week 2528: две уязвимости в утилите sudo

Reading time3 min
Views972

На прошлой неделе компания Stratascale опубликовала информацию сразу о двух уязвимостях в утилите sudo, повсеместно используемой в дистрибутивах на базе Linux для временного изменения набора привилегий пользователя. С помощью sudo можно выполнять команды от имени суперпользователя либо от имени любого другого пользователя в системе. Обе проблемы в некоторых случаях приводят к возможности выполнения локальным пользователем команд с привилегиями root, даже если у него нет на это прав. Уязвимости также являются следствием ошибок в логике работы sudo, которые оставались незамеченными достаточно долго: в одном случае два года, в другом больше 10 лет.

Читать далее

Слайдер с бесконечной плавной прокруткой на JavaScript

Level of difficultyEasy
Reading time5 min
Views5.8K

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

Приблизительный результат следующий:

Читать далее

Lokilizer — бесплатный инструмент для перевода приложений с двух языков на любые другие

Level of difficultyEasy
Reading time7 min
Views2.5K

Наш кейс: в приложении есть русский (наш нативный) и английский языки. Надо быстро и просто добавлять другие (по запросам от клиентов). В файлах с переводами был хаос: дублирование строк, конкатенация вместо плейсхолдеров, разный порядок строк в файлах переводов для ru/en, висячие пробелы и многое другое.

Я решил написать вспомогательный инструмент, который помог решить все эти проблемы. Сейчас мы добавляем новый язык буквально за 40 минут и 2$. Все получилось настолько хорошо, что решил причесать и выложить в open-source

Главная фишка: перевод на новые языки делается сразу с 2х языков (в нашем случае с ru и en) что на практике делает его супер-качественным

Читать далее

Плотнее, быстрее, дешевле: керамические накопители Cerabyte бросают вызов LTO

Reading time4 min
Views5.6K
image

Объемы данных растут стремительно: к 2030 году, по прогнозам, мир накопит 175 зеттабайт информации. Компании ищут способы хранить эти массивы надежно, компактно и без лишних затрат. Ленточные хранилища LTO десятилетиями были стандартом для архивов, но их ограничения — короткий срок службы, медленный доступ и высокие расходы на обслуживание — становятся всё заметнее. Немецкая компания Cerabyte предлагает альтернативу: керамические накопители, записывающие данные фемтосекундными лазерами. Их технология обещает большую емкость, высокую скорость и стоимость ниже, чем у LTO. Сейчас цель — стать конкурентом лент к 2030 году. В статье разберем, что за технология, какие у нее возможности и проблемы.
Читать дальше →

Я 10 лет искал причину головной боли, оказалось — чипсы

Reading time4 min
Views44K

Всем привет, хочу поведать свою историю, связанную со здоровьем и самочувствием. Почему Хабр? ну полагаю что она может кому‑то помочь тут, т.к. сам являюсь разработчиком, по 12 часов в день провожу за экраном монитора. Сам образ жизни, и питание наверное как у среднестатистического семейного человека моего возраста (сейчас мне 36).

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

Когда понял, что проблема не случайность а повторяется пару раз в месяц, решил обратиться к врачу. Обследование не выявило каких‑то значимых аномалий и был поставлен диагноз — гипертония 1й степени (легкая). В моменты головной боли врач прописал принимать Андипал (к слову спасибо ему за это, эта штука отлично купирует приступы головной боли, но побочно вызывает сонливость, что всё‑же лучше состояния, когда болит голова).

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

Читать далее

Деревья умеют выделять «дождеобразующие» вещества

Level of difficultyEasy
Reading time3 min
Views4.1K

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

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

Chiral monoterpenes reveal forest emission mechanisms and drought responses

Монотерпены (C10 H16), благодаря летучести (тот же скипидар активно испаряется) легко уносятся в атмосферу над деревьями, затем реагируют с гидроксильными радикалами и озоном, образуя частицы, вокруг которых легче собираются молекулы воды — получаются облака. А вода испаряясь в воздух, идёт от всей растительности. В итоге растения буквально создают сами себе испарения и помогают формировать из них облака.

Чем сильнее‑дольше засуха, тем больше монотерпенов испаряется и создаёт больше возможностей для формирования облаков.

Читать далее

Компьютерные сети для начинающих

Level of difficultyEasy
Reading time19 min
Views39K

Эта статья предназначена для тех, кто только начинает разбираться в IT и пока путается в терминах вроде IP, маски подсети, ISO, свичей, роутеров, TCP и UDP.

Мы разберём основы максимально простыми словами — без углубления в детали. После прочтения вы сможете увереннее общаться с коллегами и понимать, о чём идёт речь, когда говорят про сети.

Начнём с терминов, постепенно систематизируем знания и сведём всё к моделям OSI и TCP/IP.

⚠ Предупреждение для сениоров с чувствительной психикой: академические термины будут объяснены через простые аналогии.

Базовые термины

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

Link (линк) – это просто соединение между двумя компьютерами. Чаще всего — обычный провод: витая пара (рис. 1) или оптоволокно.

Читать далее

Универсальное языковое приложение. Часть 1: по-фразовый плеер с параллельными текстами и редактор субтитров

Level of difficultyEasy
Reading time3 min
Views2.6K

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

Всё началось с того, что я решил учить английский по параллельным текстам книги Хоббит, с возможностью одновременно слушать каждую фразу нажатием. Я сделал это в 2011 году как только узнал про возможности HTML5 управлять воспроизведением аудио.

Читать далее

Георгий Герганов, автор llama.cpp и звукового кейлогера

Reading time6 min
Views13K

Многие пользуются YouTube, Netflix, но не подозревают о ключевых опенсорсных программах типа ffmpeg, которые работают на бэкенде этих сервисов. Похожая ситуация с нейронками, где многие знают программу Ollama для локального запуска моделей на CPU. Но мало кто понимает, что это всего лишь простенькая оболочка вокруг опенсорсной библиотеки llama.cpp на С, которая и делает инференс. Автор этой библиотеки, талантливый разработчик Георгий Герганов, мало известен широкой публике.

Читать далее

Биолюминесценция и её эволюционные загадки: почему природа зажигает свет в темноте?

Level of difficultyEasy
Reading time7 min
Views2.5K

В глубинах океана, где солнечный свет не проникает, или в ночных лесах, где тьма скрывает всё, природа иногда зажигает свои собственные фонари. Биолюминесценция — способность живых организмов излучать свет — кажется чудом, которое одновременно завораживает и озадачивает. От мерцающих светлячков до глубоководных рыб с их сияющими органами, этот феномен встречается в самых разных уголках биосферы. Но почему эволюция создала эту способность? Как она возникла? И что биолюминесценция говорит нам о природе жизни и её изобретательности? Давайте погрузимся в этот светящийся мир, где биология переплетается с философией, а сияние живых существ становится метафорой нашего стремления понять Вселенную.

Читать далее

Нейроуловки для изучения английского: как запоминать слова без зубрежки

Level of difficultyEasy
Reading time9 min
Views17K

Привет! Меня зовут Маша Фадеева, я методист и преподаватель курсов английского в Практикуме. Знакомо это чувство, когда учишь-учишь список слов, а через неделю вспоминаешь от силы парочку? Это не лень и не плохая память — просто наш мозг не особо любит зубрёжку. Зато он отлично запоминает всё, что кажется ему важным, эмоциональным или необычным.

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

Читать далее

Как писать красивый и чистый код питонистам?

Level of difficultyEasy
Reading time6 min
Views8.1K

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

Читать далее

Введение в WebRTC

Level of difficultyMedium
Reading time15 min
Views6.1K

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

Читать 📞📞📞

Ходим в Интернет с отключённым IPv4

Level of difficultyMedium
Reading time14 min
Views72K

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

В этом посте я расскажу, как на помощь мне пришли Linux, WireGuard и Hetzner, благодаря которым я смог получить доступ ко всему Интернету через одно лишь соединение IPv6.

Читать далее

Information

Rating
6,104-th
Registered
Activity