Search
Write a publication
Pull to refresh
395
196.5
Алексей Костенков @Erwinmal

Рептилоид

Send message

Как мы делаем самый читаемый блог на Хабре: от пресс-релиза к переводам книг и своему пикоспутнику

Reading time10 min
Views4.8K
Последние 5 лет мы первые на Хабре в рейтинге компаний.

Блог на Хабре постепенно привёл к запуску искусственного спутника Земли, интервью с Ромеро, рассказу про психиатрический диагноз и тому, что админ вышел из подвала

Мы торжественно запостили пресс-релиз про старт своего сотрудничества с Хуавей аж 25 марта 2016 года. И начали ждать оваций. Сначала прилетел один оваций на -1, почти сразу подтянулся второй, пост ушёл с главной, и про него все забыли.

В принципе, на этом история с Хабром могла бы и закончиться, но нам надо было рекламировать конференцию по новым компьютерным технологиям и защите компьютерных программ. Поэтому мы запостили второй раз, уже не надеясь на +200. Это был тот никому не нужный пост, который сейчас ушёл бы в раздел «Новости», но мы про такое не догадывались. В итоге блог начал набирать какой-то рейтинг в диапазоне [-2 .. +5].

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

А дальше внезапно выстрелил пост про то, чем обычный хостинг отличается от VPS. Прямо ликбез-ликбез, но уже +15 и несколько десятков тысяч просмотров (на 2022-й уже 40 тысяч). Рекорд!

В этот момент мы поняли, что писать нужно не про себя, а про интересные темы. Вторым успехом стала тема про Hyper-V против KVM. Так мы стали писать про технологии.

Главный вопрос, конечно, был в том, зачем писать про технологии и не про себя в своём блоге. Даст ли это что-то компании? Тогда мы нашли простое решение: баннер внизу поста. Каждая дочитка давала нам показ баннера ровно на нужную аудиторию.

Ну а дальше мы начали переводить книги, и это стало приносить реальную пользу сообществу — и огромную пользу нам.
Читать дальше →

Столичный термояд, или предновогодний стимпанк-трэш. Игра от Levelord x RUVDS

Reading time3 min
Views5.5K
Скажи-ка, дядя, ведь недаром
Москва, спалённая пожаром,
Французу отдана?


2 сентября (по старому стилю) 1812 года Москву охватил пожар. Он бушевал 4 дня и уничтожил около 70 % зданий. Нас учили в школе, что это сам Кутузов приказал спалить столицу. Но «правда в том», что точной причины никто не знает. Основная версия: Москву приказал поджечь тогдашний мэр московский градоначальник Фёдор Растопчин. Запасная версия: шоу в честь Сварога стало результатом инициативы снизу со стороны неравнодушных то ли горожан, то ли казаков.

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

Мы негодуэ от того, что уже 200 лет людям врут, и решили бережно воссоздать исторические реалии той эпохи в игре «Атомный Графъ». А помог нам в этом сам Ричард Грей — дизайнер уровней в нетленке Duke Nukem, также известный как Levelord (да-да, на Хабре можно найти и звёзд геймдева).

❒ Не хочу ничего читать — сразу к игре!
Ну ладно. Чуть-чуть может и почитаю

Космические системы становятся персональными, а серверы — космическими. Зачем RUVDS свой пико-спутник

Reading time8 min
Views15K

Вступление


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

Хостинг-провайдер RUVDS и компания «Малые космические системы» разработают спутник-сервер, размер которого составит 5 на 5 см. Об этом сообщили ТАСС в компании RUVDS.

Так вот, я ко-фаундер или как теперь стоит говорить соучредитель Малых космических систем и хочу вам рассказать подробнее о том, что это за спутник TinySat размером 5 на 5 см (Забыли ещё один размер — 5 × 5 × 5 см, так что речь о кубике, а не о квадратике).
Читать дальше →

Как мы в Slack используем Terraform

Reading time12 min
Views5.8K

В Slack всей своей инфраструктурой, опирающейся на AWS, DigitalOcean, NS1 и GCP, мы управляем с помощью Terraform. И хотя большая её часть работает на AWS, мы выбрали Terraform в противоположность их нативному сервису CloudFormation, чтобы использовать единый инструмент среди всех провайдеров сервисов. Это позволяет сохранить модель «инфраструктура как код» и механизм развёртывания универсальными. В статье мы разберём процесс развёртывания нашей инфраструктуры с помощью Terraform.
Читать дальше →

Генерация конвейеров обработки данных в Dataflow

Reading time13 min
Views2.9K

Эта статья посвящена всем практикующим специалистам по данным, заинтересованным в освоении запуска, стандартизации и автоматизации пакетных конвейеров данных в Netflix.

О Dataflow мы писали в статье под названием Data pipeline asset management with Dataflow. Та статья представляла подробное знакомство с одним из наиболее технических аспектов Dataflow, но сам этот инструмент толком не описывала. На сей раз мы оправдаем заявленное вступление, после чего сосредоточимся на одной из основных возможностей Dataflow — образцах рабочих потоков. Для начала же мы коротко разберём Dataflow в общем.
Читать дальше →

Огненный монстр AMD FX-9370 из 2013 года: что может в 2022 году, разгон, Cyberpunk, upgrade и другие приколы

Reading time9 min
Views17K

В 2013 году вышли самые горячие (до 220 Вт) и частотные (до 5 Ггц) процессоры AMD — FX-9000 серии. Немного ностальгии, интересных фактов и разгона ниже.
Как здоровьице, FX-9370?

УКВ FM-радиоприёмник на двух лампах

Reading time8 min
Views26K

Точнее даже на одной, потому что вторая служит выходным усилителем звуковой частоты.

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

Величайшие программисты 21 века. Джон-Движок Кармак

Level of difficultyEasy
Reading time9 min
Views53K

Джон Кармак вместе с тёзкой Джоном Ромеро стали родоначальниками игрового жанра FPS. На слабеньких 486SX, без видеокарт (!) они выдали настоящий 3D-шутер без лагов с эффектом присутствия, что стало бомбой для 1993 года — в эпоху пошаговых стратегий и отсутствия скроллинга. Казалось, тут вмешалась чёрная магия…

В принципе, примерно так и есть. В разработке Wolfenstein 3D, Doom и движка Quake Джон Кармак действительно использовал кучу нестандартных приёмов вроде конверсии указателей или выхода за границы объектов, чтобы в циклах получать доступ к другому объекту, который гарантированно идёт следом.

Уровень программирования Doom и Quake до сих пор считается непревзойдённым образцом хакерских оптимизаций, а сам Джон Кармак — эталон сверхэффективного разработчика. Благодаря высочайшему качеству программирования Doom стал феноменом, который изменил мир.
Читать дальше →

Моделирование возможностей связи комплекса Starlink

Reading time16 min
Views12K
starlink.sx v0.1 pre-pre-alpha

Прошло 18 месяцев с того момента, как я запустил свой проект starlink.sx, в первую очередь нацеленный на расширение моего понимания принципов работы комплекса Starlink от SpaceX, а также изучение возможностей его применения в Кении. В этой стране мой стартап – Poa Internet – предлагает доступный широкополосный доступ непривилегированным сообществам, используя фиксированный беспроводной доступ (FWA). Учитывая отсутствие хорошей оптоволоконной структуры в большей части Африки, использование Starlink в качестве транзитного соединения для распределения FWA выглядит вполне годным.

И хотя я ожидал, что это будет короткий проект на пару-тройку месяцев, судя по моему трекеру Loon вскоре стало ясно, что запуск низкоорбитального (LEO) комплекса на негеостационарной орбите (NGSO) сопряжён со множеством областей – не только с аэрокосмической инженерией, орбитальной механикой или беспроводными коммуникациями, но также с юридическими, финансовыми, регуляторными нюансами и прочим. Мне предстоял непростой путь.

Сегодня я выпустил v2.0 сайта, впервые предложив возможность моделирования потенциальных мощностей для обслуживания потребителей в выбранной стране.
Читать дальше →

Почему стоит использовать лимиты CPU в Kubernetes

Reading time8 min
Views9.6K

Эту статью я написал в противовес статье “For the love of god, stop using CPU limits on Kubernetes” (Ради всего святого, прекратите использовать в Kubernetes лимиты CPU).

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

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

Цифровое хомячество и цифровой минимализм — противоположные концепции и стили жизни

Reading time7 min
Views23K
Отбракованные фотографии на блошином рынке средней школы Фэрфакса, Калифорния. Иллюстрация из статьи про вещизм и скопидомство в Los Angeles Times (2014 год)

Имея в своём распоряжении петабайтные диски, появляется соблазн сохранять абсолютно всё. Все интересные фильмы и музыку, которые мы видели и слышали, семейные видео и фото. Прочитанные книги, написанный код. Письма, полученные и отправленные. Документы, мысли, заметки в Obsidian или Evernote (система типа «второй мозг»). Действительно, зачем удалять хоть один файл, если места хватает?

Противоположный подход — изначально ограничивать себя в потреблении информации, игр, фильмов, любого контента, чтобы не захламлять диск (и сознание) ненужной информацией. И хранить только самое лучшее, в минимальном количестве.
Читать дальше →

Работа с поверхностными и глубокими копиями в Python

Reading time19 min
Views14K

В этой статье объясняется, как делать копии списков Python, массивов NumPy и датафреймов Pandas при помощи операций получения срезов, списочного индексирования (fancy indexing) и логического (boolean indexing). Эти операции очень часто используются при анализе данных и должны рассматриваться всерьёз, поскольку ошибочные предположения могут привести к падению быстродействия или неожиданным результатам.

Python кажется простым, но всякий раз, возвращаясь к его азам, ты находишь новые для освоения вещи. Здесь на ум приходит известное изречение Эйнштейна:

«Чем больше я узнаю, тем больше понимаю, как много я ещё не знаю».
Читать дальше →

Пора закончить холодную войну между DevOps и разработчиками ПО

Reading time6 min
Views5.9K

Если бы нам довелось прочитать разговор в Slack между разработчиком ПО и инженерами DevOps, то он мог бы выглядеть примерно так:

Разработчик ПО: Это займёт кучу времени. «Мне нужно новое окружение для моего приложения».

Два часа спустя…

DevOps: Почему разработчики ПО думают, что я умею читать мысли!? «Ладно, а какие типы инстансов вам нужны?»

Час спустя (после обсуждения с командой…)

Разработчик ПО: «Мне нужен g3.8xlarge для тестирования новой функции визуализации».

На следующий день…

DevOps: «Хорошо, а в какой AZ он должен находиться? И ещё с какой группой безопасности он должен быть связан?»

Разработчик ПО: Они что, не знают всего этого сразу? «Любая AZ в us-west-1, группа sg-3164z279».
Читать дальше →

Безопасность и шифрование. Element/Matrix — достойная альтернатива Slack и Mattermost

Reading time6 min
Views45K

Сегодня многие ищут более удобный, дешёвый и безопасный вариант для корпоративных коммуникаций. К сожалению, Slack, Microsoft Teams и другие проприетарные решения не удовлетворяют требованиям по безопасности, а за коммерческие лицензии нужно платить. В качестве альтернативы часто смотрят в сторону бесплатного опенсорсного Mattermost. Но есть вариант получше.
Читать дальше →

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

Reading time6 min
Views4K

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

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

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

Новые клиенты появляются у нас каждый месяц; приложения становятся всё более и более сложными, усиливается бюрократия, а срочные ситуации, ранее возникавшие раз в месяц, теперь заставляют нас задерживаться на работе ежедневно.

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

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

Duke Nukem: Manhattan Project (2002)

Reading time5 min
Views4.9K

В 2002 году, пока всё прогрессивное человечество ждало выхода заявленной ещё в 1997 году игры Duke Nukem Forever, дабы скрасить ожидание, на рынке появился платфомер Duke Nukem: Manhattan Project. Игра была в целом хорошо встречена игроками и критиками. Duke Nukem: Manhattan Project является четвёртой в серии игр про Дюка Нюкема для ПК, а если брать все платформы, то аж десятой. Игра разработана компанией Sunstorm Interactive, известной серией симуляторов охоты Deer Hunter и выпуском дополнений для Blood, Shadow Warrior и самого Duke Nukem 3D. Так что люди знали, что делали, и эстетика Duke Nukem 3D тут чувствуется. 3D Realms продюссировала проект, а компания Arush Entertainment выступила в роли издателя.
Читать дальше →

Выжимаем все соки: PGO Оптимизация ядра Linux

Reading time9 min
Views13K

Сложность вычислительных задач и систем растёт с каждым днём. Для бизнеса ускорение кода даже на пару процентов даёт улучшение производительности, заметное снижение издержек и уменьшение задержки(latency). В первую очередь это касается мобильных и встраиваемых систем, высоконагруженных серверов, научных вычислений и 3D-графики. Так был разработан относительно перспективный и молодой метод оптимизации — Profile-Guided Optimization, далее просто PGO-оптимизация. Данный метод эффективно используют такие известные компании, как Google, Mozilla Foundation, Intel, Oracle, IBM и другие. Практически ни один современный веб-браузер не обходится без PGO-оптимизации.

Не так давно компанией Google был предложен набор патчей, включающий PGO-оптимизацию в ядре Linux. Мною был протестирован этот набор патчей в работе и доработан. Мне хотелось бы рассказать об этом методе оптимизации ядра Linux, о том, с какими трудностями можно столкнуться, и как их решить.

Если вас заинтересовала эта тема, вам интересно развитие технологий и тренды крупных компаний, то добро пожаловать под кат.
Читать дальше →

Как я сделал самый быстрый в мире файловый сервер

Reading time16 min
Views22K

Задача — среди множества файлов найти на диске конкретный и отдать его по HTTP с заголовками «content-encoding», «mime-type» и «content-lenght». И сделать это как можно быстрее — на локальном хосте, чтобы не уткнуться в физические барьеры. Нас интересует скорость ради скорости.

В качестве веб-сервера будем использоваться Kestrel, .NET 7 RC 1, minimal API и F#. Финальная, оптимизированная версия есть и для C#.
Читать дальше →

Создание IoT-приложения с использованием HTTP API

Reading time10 min
Views5K
Фото: kwan fung на сайте Unsplash

Уже несколько лет не снижается ажиотаж вокруг IoT-устройств. Эти устройства могут быть почти чем угодно: от будильника, показывающего погоду, до холодильника, сообщающего о ценах в ближайших продуктовых магазинах. Какой бы ни была реализация, для общения с источниками данных эти устройства используют API. Но как конкретно подключаются сообщения, данные и устройства?

В этом посте мы покажем пример проектирования и моделирования данных для IoT-устройства. Для этого будет использовано M5Stack — небольшое модульное IoT-устройство с экраном, и подключение к API Metropolitan Transportation Authority Нью-Йорка (MTA) для получения актуального графика движения поездов на разных станциях.
Читать дальше →

Обработка окон и вкладок браузера в Selenium PHP

Reading time15 min
Views11K

Один из распространённых сценариев работы с веб-приложениями заключается в открывании нового окна (или вкладки) браузера после выполнения пользователем определённого действия. Многие веб-разработчики используют HTML-тэг __blank, приказывающий браузеру при нажатии на ссылку открыть новое окно (или вкладку, это зависит от выбранных пользователем настроек). Работа с окнами в Selenium при помощи PHP может использоваться для автоматизации взаимодействия с окнами, вкладками и даже всплывающими окнами браузера.

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

В этой статье мы подробно рассмотрим применение Selenium для автоматизации взаимодействия с браузерами, вкладками и всплывающими окнами. Для демонстрации работы с окнами в Selenium PHP мы воспользуемся PHPUnit — фреймворком юнит-тестирования для PHP.
Читать дальше →

Information

Rating
17-th
Works in
Registered
Activity