habrahabr
Как небольшой «тюнинг» Talos Linux увеличил производительность NVMe SSD в 2.5 раза

ПредысторияНедавно я начал готовить очередной Kubernetes кластер на Bare Metal серверах для одного из наших проектов дабы съехать с Google Cloud и снизить расходы на инфраструктуру примерно в 4 раза, получив при этом в 4 раза больше ресурсов vCPU/RAM/SSD (да и производительность сетевых дисков в облаках оставляет желать лучшего).В качестве ОС я решил взять горячо мной любимую Talos Linux, которая позволяет очень просто развернуть Kubernetes-кластер на любом окружении, легко обновлять его компон…

  • четверг, 24 октября 2024 г. в 00:00:12
habrahabr
SOLID на котиках

Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим…

  • четверг, 24 октября 2024 г. в 00:00:11
habrahabr
Переходим с STM32 на GD32

Микроконтроллеры STM32 и GigaDevice GD32 часто сравнивают из-за схожей архитектуры и совместимости. GD32 является своеобразным «клоном» STM32, использующим такое же ядро ARM Cortex-M. Основное отличие между ними — это цена, так как GD32 обычно дешевле, что делает его привлекательным для проектов с ограниченным бюджетом. Однако несмотря на схожесть, существуют различия в характеристиках и уровне поддержки, которые могут повлиять на выбор между этими двумя семействами микроконтроллеров. Различи…

  • четверг, 24 октября 2024 г. в 00:00:10
golang
Паттерны многопоточности в Go

Привет! Ты читаешь эту статью, а значит интересуешься Go и хочешь прокачать свои навыки в многопоточности. Наверняка ты уже знаком и активно пользуешь примитивы многопоточного программирования (горутины, каналы, мьютексы). В этой статье я постараюсь рассказать о том как их компоновать в самые популярные паттерны для поддержки масштабируемости и удобства сопровождения будущих систем.Почему же многопоточность так важна? Сегодняшние приложения должны быть быстрыми и отзывчивыми, а для этого нужно …

  • четверг, 24 октября 2024 г. в 00:00:08
golang
Сравнение двух функций в Go с указателями и без

Меня часто спрашивают, почему указатели лучше? Шёрт побери, вот почему!Описание функций меняющих местами значения переменных: 1. Функция с указателями: func swapValues(first, second *int) { fmt.Println("Перед:", *first, *second) temp := *first *first = *second *second = temp fmt.Println("После:", *first, *second) }Эта функция использует указатели на целые числа (*int). При вызове функции передаются адреса переменных, что позволяет функции изменять реальные …

  • четверг, 24 октября 2024 г. в 00:00:06
golang
Развлекаемся с итераторами в Go

Релиз версии Go 1.23 добавил поддержку итераторов и пакет iter. Теперь можно перебирать константы, контейнеры (map, slice, array, string) и функции. Сначала создание итератора показалось мне неудобным, хотя в то же время его использование выглядело простым.Моя проблема с подходом к итераторам в Go заключается в том, что их нельзя «связывать» так,как это можно делать в JavaScript:[1,2,3,4] .reverse() .map(e => e*e) .filter(e => e % 2 == 0) .forEach(e => console.log(e)) Р…

  • четверг, 24 октября 2024 г. в 00:00:06
javascript
Циклические импорты на фронтенде

Хочу рассказать о том, какие проблемы при разработке создают циклические зависимости на фронте. И рассмотрим способы решения зависимостей и их обнаружение.О проблемеРекурсивные зависимости на фронтенде могут возникать если модули ссылаются друг на друга напрямую или косвенно.Когда возникает циклическая зависимость (рекурсивная зависимость) при сборке, сборщик (будь то Webpack, Vite или любой другой инструмент) не будет бесконечно выполнять сборку. Вместо этого он попытается разрешить зависимост…

  • четверг, 24 октября 2024 г. в 00:00:04
javascript
Как Vercel микрофронтенды внедрила

Основной веб-сайт Vercel, некогда являвшийся единым крупным сайтом Next.js приложение, обслуживающее как посетителей нашего веб-сайта, так и панель управления для входа в систему. Но по мере того, как компания Vercel росла, в этой системе появились возможности для совершенствования. Время сборки росло, управление зависимостями становилось все более сложным, а рабочие процессы требовали оптимизации. Незначительные изменения привели к полномасштабным сборкам, повлияв на изолированную разработку и…

  • четверг, 24 октября 2024 г. в 00:00:03
github
Guovin / TV

📺IPTV电视直播源更新工具🚀:包含💰央视(付费)、📡卫视、🏠广东、🌊港·澳·台、🎬电影、🎥咪咕、🏀体育、🪁动画、🎮游戏、🎵音乐、🏛经典剧场;支持自定义增加频道(含图标);支持组播源、酒店源、订阅源、线上检索;每天自动更新两次,结果可用于TVBox等播放软件;支持工作流、Docker(amd64/arm64)、命令行、软件界面多种部署/运行方式 | IPTV live TV source update tool IPTV电视直播源更新工具 自定义频道菜单,根据模板频道,自动获取并更新最新的直播源接口,测速校验后生成可用的接口文件 默认结果包含:📺央视频道、💰央视付费频道、📡卫视频道、🏠广东频道、🌊港·澳·台频道、🎬电影频道、🎥咪咕直播、🏀体育频道、🪁动画频道、🎮游戏频道、🎵音乐频道、🏛经典剧场 具体频道 📺央视频道: CCTV-1, CCTV-2, CCTV-3, CCTV-4, CCTV-5, CCTV-5+, CCTV-6, CCTV-7, CCTV-8, CCTV-9, CCTV-10, CCTV-11, CCTV-12, CCTV-13, CCTV…

  • четверг, 24 октября 2024 г. в 00:00:01