Pull to refresh
504
191.3
Дмитрий Брайт @Bright_Translate

Переводчик

Send message

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

Reading time8 min
Views9.7K

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

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

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

2003–2023: Краткая история Big Data

Reading time17 min
Views18K
Когда, играя в ту или иную RPG, я оказываюсь в библиотеке, то обязательно перечитываю все книги на полках, чтобы лучше вникнуть во вселенную игры. Помнит кто-нибудь «Краткую историю империи» в Morrowind?

Большие данные (Big Data) и, в частности, экосистема Hadoop появились немногим более 15 лет назад и развились к сегодняшнему дню так, как мало кто мог тогда предположить.

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

Так что пристегнитесь и настройтесь на путешествие во времени вглубь 20 последних лет, поскольку наша история начинается в 2003 году в маленьком городке к югу от Сан-Франциско…

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

Читать дальше →

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

Reading time19 min
Views14K

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

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

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

Инженерия данных != инженерия ПО

Reading time13 min
Views5.9K

В последние годы мы видим, как инженерия данных всё больше сливается с индустрией DevOps. В обоих этих направлениях для доставки надёжных цифровых продуктов клиентам используется облачная инфраструктура, контейнеризация, CI/CD и GitOps. Это схождение в плане использования одного набора инструментов заставило многих думать, что инженерия данных не имеет значительных отличий от инженерии программного обеспечения. Как следствие, первая оказывается «несовершенной», поскольку дата-инженеры отстают с внедрением эффективных практик разработки ПО.

Но такая оценка ошибочна. Несмотря на то что в обработке данных и разработке ПО используется много общих инструментов и практик, между ними есть ряд существенных отличий. Игнорирование этих отличий и управление командой дата-инженеров по аналогии с командой разработки ПО является ошибкой. Так что цель данной статьи – подчеркнуть некоторые уникальные проблемы в инженерии данных и пояснить, почему в этой области иногда требуется особый подход.
Читать дальше →

Практическое руководство по реализации Observability в DevOps

Reading time11 min
Views20K

В ходе этой статьи мы развернём следующий стек инструментов Observability (наблюдаемости) Grafana:


Приступим!
Читать дальше →

Каково это: строить бизнес в разработке, когда тебе 40

Reading time8 min
Views22K
Кадр из фильма «Перекрёсток» (1986)

Я родился в 1981-м, так что в прошлом году мне стукнуло 40. Если верить Википедии, это первый год поколения Y (миллениалов). Миллениалов обычно ассоциируют с претенциозным характером, и в моём случае так оно и есть. Родители кучу раз говорили мне, как тяжело им приходилось работать и идти на жертвы, чтобы обеспечить для меня достойное образование. Из этого следовало, что мне следует как можно лучше учиться и усердно трудиться, что я и делал (спасибо вам за совет, мама и папа ✝). И вот чему я научился. Это моя история о росте, обязанностях и пределах.
Читать дальше →

Основные архитектурные шаблоны построения ПО

Reading time7 min
Views40K

Краткий обзор восьми наиболее востребованных архитектурных шаблонов с иллюстрациями:

Читать дальше →

Как НЕ надо строить надежные системы

Reading time12 min
Views21K


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

Считыватель показаний цифровых штангенциркулей VINCA

Reading time6 min
Views8.5K

Этот проект посвящён замене кабеля передачи данных VINCA DTCR-03 «RS232» для цифрового штангенциркуля на микроконтроллер ESP8266/ESP32 с поддержкой Wi-Fi.

Штангенциркуль VINCA DCLA-0605 поддерживает передачу данных на ПК только через проприетарный кабель. Можно, конечно, купить адаптер, но это не так интересно, поэтому я решил разобраться с принципом работы RS232 и реализовать собственное решение.
Читать дальше →

Светодиодная консоль для игры в Pong

Reading time7 min
Views3.3K

Появление игры Pong ознаменовало начало новой эры. И хотя это была не первая видеоигра, именно она породила ажиотаж в этой сфере развлечений. Впервые для потребителей это чудо игростроя стало доступно с момента релиза Magnavox Odyssey в 1972 году. Odyssey поставлялся с 12 играми, но настольный теннис (Pong) стал на тот момент самой популярной из них. Позднее в компании Atari доработали принцип виртуального настольного тенниса, выпустив тот самый Pong, который мы все помним и любим. В течение нескольких лет я даже был в некоторой степени одержим этой игрой. У меня была идея воссоздать её с использованием матрицы светодиодов. Эта идея показалась мне весьма занятной в плане реализации, и я решил создать такую вариацию, которая бы и отдавала дань корням, и несла в себе мои авторские штрихи.
Читать дальше →

Использование игрового ПК с Windows в качестве (Linux) Docker-хоста

Reading time11 min
Views11K


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

И недавно я столкнулся с одним таким сценарием, который для вас может показаться относительно типичным. Я занимаюсь разработкой под MacOS, но поскольку у моего MacBook Pro всего 16ГБ оперативной памяти, мне захотелось использовать свой игровой ПК, у которого её 32ГБ, в качестве удалённого Docker-хоста. Сколько нас хакеров, нердов и гиков в течение дня трудится (обычно) на ноутбуках MacBook, а после работы садится за кастомные ПК с Windows, чтобы пострелять пришельцев?

Тут вы можете подумать, что всё это довольно знакомо, а значит и поставленную цель достичь будет несложно. Как бы не так. Оказалось, что заставить Docker работать в качестве хоста локальной сети в Windows весьма проблематично – для этого придётся прибегнуть к ряду специфических приёмов.
Читать дальше →

Восстановление старого лампового радио Philips 353A 1956 года в бакелитовом корпусе

Reading time10 min
Views13K

Несколько месяцев назад я купил первое в своей жизни радио на электронных лампах — AM/FM-приёмник Philips 353A, который на данный момент является старейшим предметом в моей коллекции. Мне нравится электроника, и я уже давно хотел заняться реанимированием винтажной радиоаппаратуры, после того как начал смотреть некоторые YouTube-каналы вроде Mr Carlson’s Lab. Так что в этой статье я поделюсь с вами историей восстановления сего ретрочуда.
Читать дальше →

Компенсация подсветки телевизора

Reading time7 min
Views13K

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

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

Микроскоп из оптических головок от DVD-привода

Reading time4 min
Views20K

Небольшой и доступный проект по сборке лазерного сканирующего микроскопа на основе двух оптических головок и многофункционального инструмента “Analog Discovery”. Одно из преимуществ такого микроскопа в возможности выравнивания лазерного пятна относительно изучаемого образца с точностью до микрометра.
Читать дальше →

EspMon: мониторинг CPU и GPU с помощью T-Display S3

Reading time10 min
Views5.1K

Я любительница Fallout 4. Эту игру можно расширять бесконечно, поэтому мне до сих пор, даже спустя семь лет, интересно к ней возвращаться. Я постоянно что-то или в неё добавляю, или изменяю.

Когда у меня, наконец, появилась 2080ti, я смогла запустить её в 4К. Игра пошла настолько легко, что я решила нагрузить её вычислениями, добавив по всему ландшафту густой лес. В конце концов, я заметила, что карточка зашумела и начала потеть.

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

Разработка флешки с функцией самоуничтожения

Reading time7 min
Views41K

Ведь всем нам известно, что лучший способ сохранить данные в безопасности – это их уничтожить, не так ли?

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

Мой замысел – создать USB-накопитель, который косметически и функционально будет полностью идентичен типичной флешке, за одним отличием – при подключении стандартным образом он не будет показывать никаких данных.

А что разумный человек точно не станет делать, прежде чем подключать обычную флешку? Лизать пальцы!

Всё верно. Носитель будет оснащён скрытыми электродами, измеряющими сопротивление вставляющего его в устройство пальца. В обычном состоянии сопротивление пальца равно 1.5МОм, а вот во влажном около 500кОм. При загрузке такая флешка будет отображаться пустой, если сопротивление между парой электродов окажется выше заданного порога. Это не самое изящное решение, но, на мой взгляд, оно удачно балансирует между смехотворностью и функциональностью. Что же касается людей с гермофобией, то они могут смачивать палец под краном.
Читать дальше →

Как повысить безопасность приложений с помощью фабрик строк в psycopg

Reading time7 min
Views5.8K

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

Самодельный генератор Ван де Граафа

Reading time4 min
Views27K

Как любитель ядерной физики и ускорительной техники я всегда нахожусь в поиске новых источников высокого напряжения. Обычно таким устройством оказывается нечто на основе большого трансформатора, умножителя напряжения или их комбинации. Но существует и множество других методов генерации высокого напряжения, которые зачастую не учитываются и рассматриваются как устаревшие. Один из них – это старый добрый генератор Ван де Граафа, изобретённый ещё в 1929 году. О сборке подобного устройства собственными силами и пойдёт речь в данной статье.
Читать дальше →

Пособие по программированию модулей ядра Linux. Ч.7

Reading time25 min
Views14K

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

Пособие по программированию модулей ядра Linux. Ч.6

Reading time9 min
Views11K

Очередная часть последней версии пособия по созданию модулей ядра от 2 июля 2022 года. В ней мы познакомимся с понятием tty, представляющим альтернативу макросу print, напишем модуль для мигания светодиодами клавиатуры, а также разберем тему планирования задач с помощью тасклетов и очередей заданий.
Читать дальше →

Information

Rating
30-th
Location
Россия
Works in
Date of birth
Registered
Activity