Как стать автором
Обновить
1
0.1
Евгений @evgensenin

Веб-разработчик

Отправить сообщение

Моя б̶е̶з̶умная колонка: часть вторая // программная

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров5.8K

Привет, Хабр!

В прошлой статье я описал аппаратную реализацию своего голосового ассистента на базе бюджетного одноплатника Orange Pi Zero 2W с 4Гб оперативной памяти. Эту же статью хочу посвятить программной реализации данного устройства. Если стало интересно, то добро пожаловать под кат.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+52
Комментарии29

BananaNAS — портативный NAS из одноплатника

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

В статье рассказывается о разработке портативного NAS с двумя дисками NVME на основе одноплатного компьютера. Даётся небольшая теория работы контроллера PCIe, рассказывается о проблемах интеграции своего модуля дисков, а также приводятся детали дизайна и результаты тестирования.

Детали разработки
Всего голосов 14: ↑14 и ↓0+16
Комментарии45

Bcachefs: файловая система, которая не ест ваши данные

Время на прочтение5 мин
Количество просмотров6.7K

Именно этот слоган (с добавлением технологии COW) написан на сайте данной файловой системы. Хотя эта файловая система входит в состав ОС Linux уже более десяти лет, о ней написано достаточно мало. В этой статье я попробую по возможности это исправить.

Итак, Bcachefs - это файловая система с использованием технологии CoW нового поколения, которая призвана предоставить функции уже достаточно распространенных BTRFS и ZFS с более стабильной кодовой базой, большей скоростью и лицензией, совместимой с GPL.

Читать далее
Всего голосов 15: ↑11 и ↓4+10
Комментарии9

Как сделать и настроить свой CDN

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров11K
CDN (сеть доставки контента) представляет собой группу серверов, размещаемых в разных географических регионах с целью обеспечить быструю загрузку контента для пользователей из этих регионов. Чаще всего сети доставки контента используются для ускорения загрузки статических файлов: картинок, видео, скриптов, zip-архивов. Каждый из CDN серверов просто хранит одни и те же файлы, а пользователь получает их с ближайшего сервера.

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

Иногда может понадобиться настроить собственную сеть доставки контента. Давайте рассмотрим, для чего это нужно и как это сделать.


Это наша будущая CDN из 5 серверов, которая будет раздавать контент на весь мир
Читать дальше →
Всего голосов 27: ↑27 и ↓0+32
Комментарии13

Beego в Golang для начинающих

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров6.5K

Привет, Хабр!

Beego – это фреймворк для разработки веб-приложений на языке Go, ориентированный на быстрое развертывание и простоту использования. В его основе лежит идея создания полнофункциональных приложений с минимум усилиям на настройку и кодирование. Это достигается за счет широкого выбора инструментов, включая ORM, систему маршрутизации, интерфейс кмд и многое другое. Beego придерживается принципов RESTful и MVC.

Читать далее
Всего голосов 14: ↑12 и ↓2+16
Комментарии5

Раздача файлов на смартфоны без интернета. Опенсорсные альтернативы AirDrop

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров13K


Формулировка задачи. У нас есть настольный компьютер и мобильные устройства под Android. Задача простая — как быстро перебросить файлы с компьютера на телефоны и планшеты. Например, скачанные подкасты и HD-фильмы 1080p, файлы apk для установки, рабочие файлы с персоналки, бэкапы. Хранилище телефона можно использовать как резервный внешний диск или как «беспроводную» флешку, которая работает по Wi-Fi.

Конечно, можно это сделать через веб-сервисы Wormhole/PairDrop/FilePizza, через телеграм/вайбер или инструменты синхронизации ПК и смартфона, такие как syncthing. Да, это удобно и привычно. Но процесс можно 1) ускорить; 2) избавиться от подключения к интернету. То есть файлы будут передаваться напрямую между устройствами, как Apple AirDrop, только лучше.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+57
Комментарии68

Где взять коммерческий опыт для первой работы?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8K

В мире существует огромное количество онлайн-школ, которые предлагают освоить новую профессию и «войти в IT». Многие ребята, кто стремится изменить жизнь, заканчивают такие школы в надежде быстро устроиться на работу. Но как показывает практика, почти все выпускники сталкиваются с проблемой отсутствия коммерческого опыта. Но откуда ему взяться, если они только закончили курс? В этой статье я покажу решение данной проблемы.

Читать далее
Всего голосов 23: ↑17 и ↓6+12
Комментарии4

Запускаем privateGPT локально на WSL c поддержкой GPU Nvidia

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров7.4K

Приватный GPT - это готовый к производству проект искусственного интеллекта, который позволяет задавать вопросы о ваших документах, используя мощь больших языковых моделей (LLM), даже в сценариях без подключения к Интернету. 100% приватный, никакие данные не покидают ваше окружение выполнения в любой момент.

Запуск на Windows Subsystem для Linux (WSL) с поддержкой GPU может значительно улучшить его производительность. В этом руководстве я проведу вас пошаговый процесс установки PrivateGPT на WSL с использованием ускорения GPU.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии7

Полное краткое руководство по grammY — JS-библиотеке для создания Telegram-ботов

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров8.4K

Привет! Меня зовут Арсений, я сеньор фронтенд-разработчик. В этой статье хочу рассказать про основные механизмы библиотеки grammY и разобрать стартовый набор файлов бота, обработку ошибок, виды обработчиков событий, контекст обновлений, работу с разными видами клавиатур и многое другое. И все это — на реальных примерах.

В конце покажу, как задеплоить готового бота на сервере, чтобы он работал автономно и был доступен в любое время. Поехали!
Читать дальше →
Всего голосов 32: ↑32 и ↓0+33
Комментарии5

Использование Postgres и JSONB для хранения товаров, характеристик и цен

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров12K

Всем привет! Меня зовут Александр, в данное время я на фрилансе занимаюсь проектом по созданию очередного маркетплейса. В процессе работы мы столкнулись с далеко не новой проблемой организации хранения информации о товарах, имеющих различные характеристики и цену, зависящую от характеристик. На нашем проекте применяется принцип CQRS: запись осуществляется в Postgres, чтение происходит из OpenSearch, а данные между ними перемещаются по шине, реализованной на Kafka. Такой подход обусловил использование реляционной БД для решения несвойственной ей задачи.

Чтобы увидеть, почему эта задача не нак проста, как кажется с первого взгляда, представим, что в нашем каталоге есть футболки мужские всего с двумя атрибутами: цвет и размер. Мы хотим хранить товар с названием "Футболка Junior Developer", она представлена в синем, красном и зеленом цветах, и каждый цвет доступен в нескольких размерах. Добавляя немного сложности, представим, что цена конкретной футболки также варьируется в зависимости от цвета и размера. Как представить эту сущность в реляционной базе данных, с учетом того, что продавец футболки может в какой-то момент добавить новые атрибуты для своего товара, например, габариты упаковки для отправки (длина, ширина, высота)?

С одной стороны, можно использовать подход: Entity-Attribute-Value. Он позволяет гибко настраивать связи между сущностями, их атрибутами и значениями, сохраняя возможность динамического добавления новых атрибутов сущности. Однако у такого подхода есть свои недостатки. На них останавливаться не буду - в статье: "Замена EAV на JSONB в PostgreSQL" они приведены, также там есть сравнение по производительности и памяти EAV и JSONB.

Читать далее
Всего голосов 13: ↑10 и ↓3+9
Комментарии15

История про хранилище изображений. Или как велосипед спас от костыля

Время на прочтение7 мин
Количество просмотров14K


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

В статье расскажу, как мы разработали сервис, способный хранить миллионы фотографий и обслуживать тысячи запросов в секунду.
Поехали
Всего голосов 36: ↑36 и ↓0+36
Комментарии10

Информация

В рейтинге
3 687-й
Откуда
Ростов-на-Дону, Ростовская обл., Россия
Зарегистрирован
Активность