Как стать автором
Обновить
6
0

Пользователь

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

DIY: Ваше собственное облако на базе Kubernetes (часть 1)

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

Мы очень любим Kubernetes и мечтаем чтобы все современные технологии поскорее начали использовать его замечательные паттерны.

А вы когда-нибудь задумывались о том чтобы построить своё собственное облако? Могу поспорить что да. Но можно ли это сделать используя лишь современные технологии и подходы, не покидая уютной экосистемы Kubernetes? Нам по опыту разработки Cozystack пришлось с ним как следует разобраться.

Да, вы могли бы возразить что Kubernetes для этого не предназначен и почему бы не использовать OpenStack для Bare Metal-серверов а внутри него запускать Kubernetes как положено. Но поступив так, вы просто переложите ответственность с ваших рук на руки OpenStack администраторов. Что добавит как-минимум ещё одну сложную и неповоротливую систему в вашу экосистему.

Зачем так всё усложнять? - ведь на данный момент Kubernetes уже имеет всё необходимое для запуска Kubernetes кластеров.

Читать далее
Всего голосов 43: ↑41 и ↓2 +39
Комментарии 10

Шпаргалка по рекомендательным системам

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

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

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

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

Неизвестно полезный CSS

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

CSS не отстаёт от JavaScript. Постоянно развивается. Классно же. Мне особенно радостно видеть, как старые задачи, которые я решал при помощи костылей, теперь можно сделать при помощи одного свойства.


Только многие фишки неизвестны широкому кругу разработчиков. Честно говоря, некоторые я сам узнал недавно. В любом случае так дальше нельзя. Надо исправлять ситуацию!


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


Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

Читать дальше →
Всего голосов 77: ↑76 и ↓1 +75
Комментарии 16

Как мне захотелось систематизировать виды тестирования

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

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

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 29

Применение преобразований PCA и t-SNE для снижения размерности данных

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

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

В этой статье мы рассмотрим методы снижения размерности данных, такие как: «Преобразование главных компонент» (PCA) и "t-SNE" (t-distributed Stochastic Neighbor Embedding). Оба метода обладают своими уникальными характеристиками и предназначены для разных типов данных и задач.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 1

Заметки об основах программной архитектуры

Время на прочтение 9 мин
Количество просмотров 18K
Это вводное руководство для архитекторов программного обеспечения. В настоящее время звание «архитектор» очень популярно во всем мире, но не существует настоящего руководства, как стать архитектором программного обеспечения.

1. Общая концепция архитектуры программного обеспечения
2. Архитектурные стили
3. Технология
4. Софт скиллз (принятие архитектурных решений, методы анализа рисков, навыки подачи материала, отношения с командой менеджеров, ведение переговоров, планирование карьеры архитектора)
5. Принципы проектирования
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 3

Как контролировать задачи в MODX Revolution — делаем TODO виджет для админки

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

В CMF MODX Revolution изначально не предусмотрена возможность ставить задачи и привязывать их к ресурсам. Такое дополнение я тоже не нашел, да и было интересно разобраться в создании виджетов, поэтому придумал решение, как можно быстро реализовать такой функционал на своем сайте. Собственно, в этой статье хочу им поделиться.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 8

(Микро)фронтенды и микросервисы с помощью Webpack

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

Привет! Меня зовут Максим, я фронтенд-разработчик компании Тинькофф, лид команды фронтендов, которые пилят международные проекты. Я работал как фронтом, так и бэкером — это дало мне релевантный опыт и в микрофронтендах в том числе.

Статья будет о фронтендах, но сначала предлагаю немного обсудить монолиты. Они бывают разные.

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 30

Как меняется рынок вакансий системных аналитиков: перспективы, скиллы, зарплаты

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

Коллеги из Chosy собрали цифры по рынку труда для системных аналитиков. Статью разобьем на три части: 

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

2. Покажем срез по международному рынку труда для системных аналитиков: какие зарплаты обещают специалистам в Грузии, Армении, Турции и ряде европейских стран.

3. Изучим, что предлагает аналитику российский рынок труда: средняя зарплата, финансовые ожидания работодателей и кандидатов, сколько в среднем публикуется вакансий за день и как это число изменилось за последний месяц. 

Бегу читать
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 7

Теория алгоритма, дающего смысл словам

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

Существующие алгоритмы работающие с о смыслом слов:

Векторное представление слов, GPT-3 - статистика

Алгоритм Леска - подбор значения многозначного слова по статистике встречаемости слов в предложении

Семантическая сеть - информационная модель предметной области, имеет вид ориентированного графа. Вершины графа соответствуют объектам предметной области, а дуги (ребра) задают отношения между ними. (см. рис. 1)

В других вариантах - по сути поиск закономерностей через нейросети.

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

Deepfake. Реализация технологии замены лиц в видео. Часть 1

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

Deepfake. Выбор архитектуры для реализации. Autoencoder vs GAN.

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

Как настроить SSH-Jump Server

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

Для работы с облачной инфраструктурой рекомендуется создавать SSH Jumpstation. Это позволяет повысить безопасность и удобство администрирования серверов. В этой статье мы расскажем, как настроить единую точку входа для подключений по ssh – SSH Jump Server. Для реализации выбраны два проекта с открытым исходным кодом.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 6

Изобретаем велосипед или пишем персептрон на С++. Часть 3

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

Изобретаем велосипед или пишем персептрон на C++. Часть 3


Реализуем обучение многослойного персептрона на C++ при помощи метода обратного распространения ошибки.



Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 0

std::atomic. Модель памяти C++ в примерах

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

Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

Читать далее
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 39

Хост KVM в паре строчек кода. Примеры на C++ и на Python от эксперта Timeweb

Время на прочтение 9 мин
Количество просмотров 12K
Привет!

Сегодня публикуем статью о том, как написать хост KVM. Мы увидели ее в блоге Serge Zaitsev, перевели и дополнили собственными примерами на Python для тех, кто не работает с языком С++.

KVM (Kernel-based Virtual Machine) — это технология виртуализации, которая поставляется с ядром Linux. Другими словами, KVM позволяет запускать несколько виртуальных машин (VM) на одном виртуальном хосте Linux. Виртуальные машины в этом случае называются гостевыми (guests). Если вы когда-нибудь использовали QEMU или VirtualBox на Linux, вы знаете, на что способен KVM.

Но как это работает под капотом?
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 9

Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP)

Время на прочтение 34 мин
Количество просмотров 86K
Два года назад я писал на Хабр статью про Yargy-парсер и библиотеку Natasha, рассказывал про решение задачи NER для русского языка, построенное на правилах. Проект хорошо приняли. Yargy-парсер заменил яндексовый Томита-парсер в крупных проектах внутри Сбера, Интерфакса и РИА Новостей. Библиотека Natasha сейчас встроена в образовательные программы ВШЭ, МФТИ и МГУ.

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

Для новостных статей качество на всех задачах сравнимо или превосходит существующие решения. Например с задачей NER Natasha справляется на 1 процентный пункт хуже, чем Deeppavlov BERT NER (F1 PER 0.97, LOC 0.91, ORG 0.85), модель весит в 75 раз меньше (27МБ), работает на CPU в 2 раза быстрее (25 статей/сек), чем BERT NER на GPU.

В проекте 9 репозиториев, библиотека Natasha объединяет их под одним интерфейсом. В статье поговорим про новые инструменты, сравним их с существующими решениями: Deeppavlov, SpaCy, UDPipe.

Всего голосов 57: ↑55 и ↓2 +53
Комментарии 25

9 ключевых алгоритмов машинного обучения простым языком

Время на прочтение 15 мин
Количество просмотров 81K
Привет, Хабр! Представляю вашему вниманию перевод статьи «9 Key Machine Learning Algorithms Explained in Plain English» автора Nick McCullum.

Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix использует его, чтобы рекомендовать вам фильмы на вечер. А Facebook использует его, чтобы предложить вам новых друзей, которых вы можете знать.

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

Эта статья познакомит вас с фундаментальными концепциями в области машинного обучения. А конкретнее, мы обсудим основные концепции 9ти самых важных алгоритмов МО на сегодняшний день.
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Комментарии 5

Синергия Graphviz и препроцессора C/C++

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

Это статья посвящена тому, как использовать популярный инструмент рисования графов Graphviz в кооперации с препроцессором C/C++ (далее просто препроцессор).


Ключевым моментом является то, что язык описания графов dot, который использует Graphviz, по своему синтаксису пригоден для обработки препроцессором. Так задумано разработчиками. Благодаря их прозорливости, мы при описании графов можем использовать следующие возможности (цитирую википедию по памяти):


  • замена соответствующих диграфов и триграфов на эквивалентные символы «#» и «\»;
  • удаление экранированных символов перевода строки;
  • замена строчных и блочных комментариев пустыми строками (с удалением окружающих пробелов и символов табуляции);
  • вставка (включение) содержимого произвольного файла (#include);
  • макроподстановки (#define);
  • условная компиляция (#if, #ifdef, #elif, #else, #endif);

Теперь продемонстрируем открывшиеся возможности на практике. В качестве примера возьмем граф из моей статьи о Медиастримере2, он на рисунке ниже.


Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 9

Прямая передача файлов между устройствами по WebRTC

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


Новый сервис WebWormHole работает как портал, через который файлы передаются с компьютера на другой. Нажимаете кнопку New Wormhole — и получаете код для входа. Человек с другой стороны вводит такой же код или URL — и между вами устанавливается эфемерный туннель, по которому напрямую передаются файлы. Очень просто и эффективно. Исходный код на Github.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 5

Программирование видео слоя в Raspberry Pi с использованием DispmanX API

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

В этой статье я хочу продемонстрировать использование DispmanX API одноплатных компьютеров Raspberry. DispmanX API предоставляет возможность создавать на десктопе Raspberry новые отображаемые слои. Слои висят над слоями. Их можно динамически создавать, удалять, перемещать, их можно масштабировать. При этом, сам видеоконтроллер будет их объединять и отображать на экране монитора. Интересно, что слои могут иметь альфа канал, и тогда, изображения всех слоев будут сами собой смешиваться. Так же, кроме 32-ти двухбитных ARGB слоев можно создавать, например, YUV420 слои, или слои других типов. В Raspberry по умолчанию уже есть два слоя. Самый нижний содержит изображение десктопа. Весь вывод через иксы идет в этот слой. И есть второй, самый верхний слой, в котором живет изображение курсора мыши.

Я покажу, как создавать новый слой, писать в него изображение и как его перемещать по экрану. Собственно говоря, на демо видео выше и показана работа такой программы. Здесь созданы четыре новых 32-х битных слоя ARGB. В каждый из слоев я записываю пикселы из заранее подготовленных битмапов. Мои битмапы это изображения облаков, солнца и воздушных шаров. Слои перемещаются по экрану с разной скоростью, нависая над самым нижним иксовым слоем.
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 6

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Зарегистрирован
Активность