Pull to refresh
4
0

Wanna more? No, TinyML

Reading time 6 min
Views 6.5K
TensorFlow *
Sandbox

TinyML, ИИ && Микроконтроллеры

На фото изображен микроконтроллер нового поколения с аппаратным обеспечением для ИИ, Eta Compute.

Что в нем есть хорошего? А плохого? Ответ на оба вопроса - читайте далее, и сможете узнать и понять как применять новое поколение микроконтроллеров, и причем тут еще какое-то TinyML.

Понять далее
Total votes 11: ↑8 and ↓3 +5
Comments 7

Постоянный ток в доме. Риски, которые никто не замечает

Reading time 5 min
Views 91K
Energy and batteries DIY
Tutorial

Постоянный ток с каждым днём завоёвывает всё новые рубежи в каждом доме. К кому то он приходит со светодиодными лентами, кому то с DIY и Arduino. Время идёт, и вот уже вчерашние любители без страха и упрёка начинают делать мощные аккумуляторные сборки и запитывать бытовую технику напрямую от солнечных панелей. За кадром остаётся главный нюанс - безопасности. Ведь токи и напряжения выросли вместе с игрушками, а о последствиях почти никто не задумывается.

Читать далее
Total votes 195: ↑187 and ↓8 +179
Comments 545

Реальные проекты и джоб-офер для лучших выпускников: стартуют 4 бесплатных курса по разработке, тестированию и DevOps

Reading time 2 min
Views 4.8K
Parimatch Tech corporate blog JavaScript *.NET *DevOps *

Податься на обучение можно до 29 октября. 

Parimatch Tech Academy открывает набор на четыре образовательные программы. За несколько месяцев студенты получат базовые знания об IT-разработке, тестировании или DevOps и смогут перенять опыт ведущих экспертов рынка. А лучшим выпускникам предложат трудоустройство.

Кандидаты могут выбрать один курс из четырех вариантов:

Читать далее
Total votes 5: ↑4 and ↓1 +3
Comments 0

Я не могу спроектировать архитектуру своего интернет-магазина или как я пишу «под клиента»

Reading time 3 min
Views 6.9K
Website development *Programming *.NET *Development for Windows *

В этой статье я расскажу про свою проблему с доработкой сайта под клиентов...

Читать!
Total votes 19: ↑5 and ↓14 -9
Comments 15

Еще один пост о синхронизации в Vulkan

Reading time 21 min
Views 3.6K
Programming *C++ *Working with 3D-graphics *Game development *
Translation

Так, я наиграл в Fire Emblem: Three Houses уже порядка 160 часов в течение последней пары недель, думаю пришло время вновь побыть интернет-экспертом.

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

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 0

ZFS: архитектура, особенности и отличия от других файловых систем

Reading time 19 min
Views 44K
VK corporate blog Configuring Linux *System administration *Data storage *

Я, Георгий Меликов, являюсь контрибьютором проектов OpenZFS и ZFS on Linux. Также я занимаюсь разработкой IaaS в команде облачной платформы Mail.ru Cloud Solutions. Хотя в продакшене нашего подразделения мы и не используем ZFS, но хозяева подкаста SDCast пригласили меня рассказать именно о нём. Из выпуска и родилась эта статья, а вот тут можно послушать аудиоверсию.

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

Читать далее
Total votes 73: ↑72 and ↓1 +71
Comments 65

Современные накопители очень быстры, но плохие API это не учитывают

Reading time 11 min
Views 14K
VDSina.ru corporate blog API *Data storage *Data storages *Data storaging
Translation


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

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

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

Вот самые распространённые примеры таких заблуждений:

  • «Вполне нормально скопировать память здесь и выполнить эти затратные вычисления, потому что это сэкономит нам одну операцию ввода-вывода, которая была бы ещё более затратной».
  • «Я проектирую систему, которая должна быть быстрой. Поэтому она должна находиться в памяти».
  • «Если мы разобьём эти данные на несколько файлов, то выполнение будет медленным, поскольку возникнут паттерны произвольного ввода-вывода. Нам нужно оптимизировать выполнение под последовательный доступ и осуществлять считывание из одного файла».
  • «Прямой ввод-вывод очень медленный. Он подходит только для очень специализированных областей применения. Если у тебя нет собственного кэша, ты обречён».

Однако если изучить спецификации современных NVMe-устройств, то мы увидим, что даже в потребительском классе это устройства с задержками, измеряемыми в единицах микросекунд, и пропускной способностью в несколько ГБ/с, поддерживающие несколько сотен тысяч произвольных IOPS. Так в чём же нестыковка?
Читать дальше →
Total votes 46: ↑42 and ↓4 +38
Comments 40

Кунг-фу стиля Linux: великая сила make

Reading time 8 min
Views 20K
RUVDS.com corporate blog Configuring Linux *System administration *
Translation
Со временем Linux (точнее — операционная система, которую обычно называют «Linux», представляющая собой ядро Linux и GNU-инструменты) стала гораздо сложнее, чем Unix — ОС, стоящая у истоков Linux. Это, конечно, неизбежно. Но это означает, что тем, кто пользуется Linux уже давно, нужно было постепенно расширять свои знания и навыки, осваивая новые возможности. А вот на тех, кто начинает работу в Linux в наши дни, сваливается необходимость освоить систему, так сказать, за один присест. Эту ситуацию хорошо иллюстрирует пример того, как в Linux обычно осуществляется сборка программ. Практически во всех проектах используется make — утилита, которая, запуская процессы компиляции кода, пытается делать только то, что нужно. Это было особенно важно в те времена, когда компьютеру с процессором, работающим на частоте в 100 МГц, и с медленным жёстким диском, нужно было потратить целый день на то, чтобы собрать какой-нибудь серьёзный проект. Программа make, судя по всему, устроена очень просто. Но сегодня у того, кто почитает типичный файл Makefile, может закружиться голова. А во многих проектах используются дополнительные абстракции, которые ещё сильнее всё запутывают.



В этом материале я хочу продемонстрировать вам то, насколько простым может быть файл Makefile. Если вы способны создать простой Makefile, это значит, что вы сможете найти гораздо больше способов применения утилиты make, чем может показаться на первый взгляд. Примеры, которые я буду тут показывать, основаны на языке C, но дело тут не в самом языке, а в его распространённости и широкой известности. С помощью make можно, средствами командной строки Linux, собрать практически всё что угодно.
Читать дальше →
Total votes 50: ↑41 and ↓9 +32
Comments 20

Мой маленький Kubernetes: настраиваем тестовый кластер в VirtualBox

Reading time 13 min
Views 27K
Microservices *Kubernetes *
Tutorial

За последние пару лет мне довольно часто приходилось сталкиваться с Kubernetes, однако обычно это всегда происходило с позиции разработчика. Посмотреть список подов, их статусы, логи и т.п. В общем, ничего сложного.

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

Обычно изучение Kubernetes стоит начинать с minikube - консольной утилиты, которая умеет быстро создавать кластер из одного узла с использованием VirtualBox. Это самый лучший вариант для быстрого старта.

Но есть и другой вариант. Можно взять VirtualBox, создать несколько виртуальных машин, например, с Ubuntu Server и настроить небольшой кластер Kubernetes прямо на своём домашнем компьютере.

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

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

Осторожно, трафик! В статье очень много скриншотов.

Читать далее
Total votes 17: ↑15 and ↓2 +13
Comments 33

Как построить диаграмму на Python

Reading time 6 min
Views 18K
SkillFactory corporate blog Python *Programming *Lifehacks for geeks
Tutorial
Translation

Каждый, кому хоть раз приходилось строить диаграммы в draw.io или Google Diagrams, помнит всю утомительность и медлительность этого процесса. Сегодня делимся с вами материалом, в котором шаг за шагом показывается, как можно строить красивые архитектурные диаграммы с помощью Python. Главное удобство — встроенные узлы для обозначения сервисов и языков программирования. Только код и никакой мыши.
Приятного чтения!
Total votes 37: ↑37 and ↓0 +37
Comments 11

Как генерируются UUID

Reading time 7 min
Views 73K
VK corporate blog Programming *Designing and refactoring *Algorithms *IT Terminology
Translation

Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений.

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать дальше →
Total votes 70: ↑69 and ↓1 +68
Comments 39

Enum и switch, и что с ними не так

Reading time 4 min
Views 8.1K
Programming *.NET *
Sandbox

image


Часто ли у вас было такое, что вы добавляли новое значение в enum и потом тратили часы на то, чтобы найти все места его использования, а затем добавить новый case, чтобы не получить ArgumentOutOfRangeException во время исполнения?

Читать дальше →
Total votes 16: ↑10 and ↓6 +4
Comments 18

Трюки с SQL от DBA. Небанальные советы для разработчиков БД

Reading time 22 min
Views 29K
VK corporate blog High performance *PostgreSQL *SQL *
Tutorial
Translation

Когда я начинал свою карьеру разработчика, моей первой работой стала DBA (администратор базы данных, АБД). В те годы, ещё до AWS RDS, Azure, Google Cloud и других облачных сервисов, существовало два типа АБД:

  • АБД инфраструктуры отвечали за настройку базы данных, конфигурирование хранилища и заботу о резервных копиях и репликации. После настройки БД инфраструктурный администратор время от времени «настраивал экземпляры», например, уточнял размеры кэшей.
  • АБД приложения получал от АБД инфраструктуры чистую базу и отвечал за её архитектуру: создание таблиц, индексов, ограничений и настройку SQL. АБД приложения также реализовывал ETL-процессы и миграцию данных. Если команды использовали хранимые процедуры, то АБД приложения поддерживал и их.

АБД приложений обычно были частью команд разработки. Они обладали глубокими познаниями по конкретной теме, поэтому обычно работали только над одним-двумя проектами. Инфраструктурные администраторы баз данных обычно входили в ИТ-команду и могли одновременно работать над несколькими проектами.
Читать дальше →
Total votes 76: ↑72 and ↓4 +68
Comments 38

Как реализованы JIT-компиляторы

Reading time 17 min
Views 12K
VK corporate blog High performance *Programming *System Analysis and Design *Compilers *
Translation

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

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

Небольшое примечание:

Я часто буду описывать поведение оптимизации и утверждать, что она, вероятно, есть и в каком-нибудь другом компиляторе. Хотя я не всегда проверяю, есть ли эта оптимизация в другом JIT (иногда всё неоднозначно), но если знаю точно, то укажу на это. Я также приведу примеры кода, чтобы показать, где может быть применена оптимизация, но это не точно, ведь приоритет может быть отдан другой оптимизации. Могут быть и какие-то общие упрощения, но не больше, чем в большинстве подобных постов.

Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Comments 1

Исследование одного неопределённого поведения

Reading time 18 min
Views 6.5K
C++ *
В статье исследуются возможные проявления неопределённого поведения, возникающего в c++ при завершении не-void функции без вызова return с подходящим значением. Статья носит больше научно-развлекательный характер, чем практический.

Кому не нравится весело скакать по граблям — проходим мимо, не задерживаемся.
Читать дальше →
Total votes 37: ↑33 and ↓4 +29
Comments 5

Регистрируем свой ИТ-бизнес в Сингапуре: what should I do?

Reading time 9 min
Views 3.3K
IT-emigration
Recovery mode
image

Здравствуйте, коллеги!

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

Именно поэтому планируемую изначально вторую часть заголовка «What can I do» (автор Алан Силсон, исполняет группа Smokie) пришлось переделать на «What should I do», так как «могу» и «должен» — глаголы совершенно разные, причём второй является гораздо более правильным в контексте темы статьи, чем первый. За всё остальное, включая практическую полезность материала, точность приводимых фактов и алгоритмов действия, я несу полную ответственность перед читателями.

Читать дальше →
Total votes 16: ↑10 and ↓6 +4
Comments 6

Браузерная ленивая загрузка изображений (атрибут loading)

Reading time 6 min
Views 24K
Website development *HTML *Browsers
Translation


Поддержка встроенной ленивой загрузки изображений и iframe пришла в веб!
Начиная с Chrome 76 версии, вы можете использовать новый атрибут loading для ленивой загрузки ресурсов без необходимости писать для этого дополнительный код или использовать стороннюю JavaScript-библиотеку. Давайте рассмотрим детали.
Total votes 17: ↑16 and ↓1 +15
Comments 13

Основы компьютерных сетей. Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)

Reading time 26 min
Views 284K
System administration *IT Infrastructure *Cisco *Network technologies *
Tutorial

Приветствую всех читателей. Пришло наконец время поговорить о протоколах, находящихся на нижних уровнях. В этой статье будут разобраны протоколы канального, сетевого и транспортного уровней. Присаживайтесь поудобнее и читайте на здоровье.
Читать дальше →
Total votes 46: ↑42 and ↓4 +38
Comments 10

Строим свой full-stack на JavaScript: Клиент

Reading time 12 min
Views 30K
JavaScript *Designing and refactoring *Node.JS *
Tutorial

JavaScript на клиенте быстро меняется: библиотеки, фреймворки, упаковщики быстро появляютcя и сменяют один другой. Но несмотря на это, многие ключевые операции одинаковы для любого клиентского приложения. А в современных фронт-энд фреймворках, при всем их разнообразии, есть много общего.

Читать дальше →
Total votes 26: ↑20 and ↓6 +14
Comments 9
1

Information

Rating
3,608-th
Registered
Activity