xaker
В коде многих приложений для iOS и Android нашли ключи для AWS и Azure

Многие популярные приложения для iOS и Android содержат жестко закодированные, незашифрованные учетные данные для облачных сервисов, включая Amazon Web Services (AWS) и Microsoft Azure Blob Storage, предупреждают в Symantec. В результате пользовательские данные и исходный код уязвимы перед потенциальными злоумышленниками.

  • четверг, 24 октября 2024 г. в 00:00:16
habrahabr
Quake 2 на нашем RISC-V, или как мы поднимали старый Radeon на FPGA

Всем привет! Меня зовут Александр Разинков, я разрабатываю системный софт в компании YADRO. В этом посте я расскажу о стресс-тестировании нашего RISC-V-кластера с помощью… Quake 2! Почему «квейк»? RISC-V активно развивается как основная application-платформа в мире, и игры — это хороший способ проверить возможности ядер, драйверов GPU и экосистемы в целом. В некоторых важных аспектах игры дают значительно большую нагрузку, чем стандартные программные тесты, особенно на память и интерконнект.В х…

  • четверг, 24 октября 2024 г. в 00:00:15
habrahabr
Запускаем Yolo на пятирублёвой монете или Luckfox Pico Mini

Размер платы немного больше пятирублёвой монетыВ данной статье речь пойдет про использование платы Luckfox Pico Mini. Я расскажу про особенности, её настройку, а также о том как запускать на ней нейронные сети для детекции объектов с камеры (Yolov8). Всё дальнейшее повествование опирается на желание автора использовать устройство для обработки изображений нейронными сетями в реальном времени (или почти). При этом обработка изображений не может работать изолированно от других устройств общей сис…

  • четверг, 24 октября 2024 г. в 00:00:14
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