Pull to refresh
0
0
Send message

Apple M1 — разбор с точки зрения аппаратной безопасности

Level of difficulty Easy
Reading time 11 min
Views 9.2K
Давным-давно, в далёкой-далёкой яблочной компании зародилась идея создать собственный процессор для ноутбуков. И вот, спустя годы, Apple презентовала свой десктопный процессор M1.


В этой статье мы сосредоточимся на разборе безопасности процессора M1 от Apple. Компания всегда уделяла значительное внимание информационной безопасности своих устройств, особенно мобильных. Это не значит, что iPhone или iPad нельзя взломать. Нет, можно, конечно, вопрос лишь в цене. Просто цена взлома iOS существенно выше, чем взлома устройств на других ОС.
Читать дальше →
Total votes 46: ↑39 and ↓7 +32
Comments 8

Портретная гармонизация изображений

Level of difficulty Medium
Reading time 8 min
Views 2.3K

Привет! В данной публикации команда RnD CV из SberDevices познакомит вас с нашим подходом к решению задачи повышения степени реалистичности портретных изображений (по-научному — портретной гармонизации изображений). Мы не только расскажем о задаче портретной гармонизации, но и представим архитектуру нейронной сети, которая прекрасно решает эту задачу. В конце статьи будут представлены примеры работы нашей модели и получившиеся метрики.

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

Электроника для начинающих: собираем датчик направления магнитного поля. Пробуем лазерный метод изготовления

Level of difficulty Easy
Reading time 3 min
Views 12K

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

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

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

К вопросу о ESP32

Level of difficulty Easy
Reading time 11 min
Views 18K

Решил я приобщиться к модным трендам и купить себе (для побаловаться) платку на ESP32, тем более и повод выдался неординарный - на сайте одной из российских фирм, торгующих Arduino, обнаружился модуль ESP32 lolin32 OLED по цене ниже, чем на Aliexpress. Пнп: не знаю, будет ли это рекламой, но вот ссылка на модуль https://iarduino.ru/shop/boards/wemos-esp32-oled.html, а фирму вы узнаете сами. Не то, чтобы мне было очень жалко 1200-990=210 рублей, но возможность получить платку сразу, без ожидания посылки дорогого стоит. Пнп: кстати, если заказывать доставку до пункта выдачи, то даже получается чуть дороже, хотя и быстрее, чем из Китая - всего 3 рабочих дня. Но можно съездить в "столицу нашей Родины город-герой Москва" и получить заказ на следующий день, что я и сделал. Не очень понятно, зачем я это все совершил в пятницу, потому что в выходные с платой возится так и не начал, но охота пуще неволи.

Тем не менее, на следующей неделе приступил к освоению платы. Для начала включил плату в USB порт - экран засветился и появилась надпись, заявляющая о любви к ESP - начало неплохое. Нужно установить среду разработки программ, и я решил поступить, как нормальный самодельщик, тем более что мне это рекомендовали на сайте фирмы продавца - скачать Arduino. Читатели, испытывающие непреодолимое отвращение к этому термину, могут далее себя не мучить, все остальные могут нажать на транспарант ниже.

Читать далее
Total votes 28: ↑24 and ↓4 +20
Comments 36

Ory Kratos — коробочный SSO

Level of difficulty Medium
Reading time 9 min
Views 5.9K

Ory Kratos - современный cloud native сервер идентификации с поддержкой PassKeys, MFA, FIDO2, TOTP, WebAuthn, с возможностью управления профилями, схемами пользователей, входом через внешние сервисы, регистрацией, восстановлением аккаунта, с поддержкой passwordless входа. Написан на Go, headless, API-first.

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

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

Память как у пингвина: Работа памяти в Linux

Level of difficulty Easy
Reading time 20 min
Views 36K

Что такое память и какие они бывают в Linux? Как с ней взаимодействовать? Каковы её особенности?

Как реализована память в ядре Linux? Как с ней работать?

Что такое кластеры, откуда в ядре Linux грязные и чистые страницы - читайте в этой статье!

Читать далее
Total votes 101: ↑97 and ↓4 +93
Comments 56

Полезные материалы и инструменты для погружения в Flask: выбор сотрудников Selectel

Reading time 4 min
Views 7.2K

Часто Python-разработчики выбирают Flask в качестве «быстрого старта» для создания веб-приложений. Он прост в использовании и имеет много преимуществ перед другими фреймворками — например, легкий синтаксис, удобные шаблоны и инструменты для гибкой настройки сайтов.

Однако у начинающих могут быть трудности в работе с фреймворком. Чтобы свести их к минимуму и помочь с погружением в Flask, наши коллеги собрали полезные материалы. Сохраняйте подборку в закладки и делитесь своими вариантами в комментариях.
Читать дальше →
Total votes 27: ↑23 and ↓4 +19
Comments 6

Что для вас Linux? Или как устроен запуск процессов

Level of difficulty Medium
Reading time 15 min
Views 37K

Как бы вы ответили на вопрос, что такое операционная система?

Скорее всего, вы легко сможете ответить на этот вопрос человеку далекому от IT, но подобный вопрос вам может задать, например, HR - в попытке переманить вас в какой-нибудь Facebook или Google. С одной стороны, ответить на этот вопрос очень легко и в интернете можно найти много определений, но относится ли, например, конфигурация DNS и файл /etc/resolv.conf к ОС ? Или в какой области памяти работает ОС - в памяти с безграничными возможностями для кода, называемой kernel space, или все же в лимитированной user space?

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

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

Обезличенный вызов делегатов в C#

Level of difficulty Medium
Reading time 10 min
Views 5.6K

Как говорится: сидел, никого не трогал, программировал на C#, и тут родилась «хитрая» нужда. В рамках одного из своих проектов мне понадобился механизм обезличенного вызова делегатов, который бы позволил организовать их универсальные хранение и вызов. Также, главной целью разработки являлся уход от необходимости вызова методов конкретных экземпляров объектов через рефлексию (рефлексия используется только на этапе инициализации), что в конечном счете сильно увеличило производительность.

Обезличенный вызов делегата - вызов делегата с известным количеством параметров, но с неизвестными типами параметров, где каждый тип параметра представлен базовым классом Object. Пример: Action<string, int> преобразуется в Action<object, object>.

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

SQL миграции в Postgres. Часть 2

Level of difficulty Medium
Reading time 17 min
Views 8.7K

В первой части мы рассмотрели базовые операции, такие как добавление новых атрибутов, создание индексов и ограничений и т.д.

Эта статья посвящена двум более сложным миграциям:

- обновление большой таблицы
- разделение таблицы на две

Рассмотрим подходы, которые позволяют провести миграции с минимальным простоем для приложения.

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

Linux на esp32s3

Level of difficulty Medium
Reading time 12 min
Views 24K

Вопрос о том, можно ли загрузить линукс на микроконтроллерах Espressif я
впервые услышал в 2015, в период бума esp8266. Тогда мой ответ на него
был: "нет, не это ядро и не на этом железе". Но прошло 8 лет и ответ
изменился на "да, и у меня есть рабочий пример". Дальше рассказ о том,
как это произошло.

Читать далее
Total votes 150: ↑149 and ↓1 +148
Comments 18

Conc: новая библиотека для управления конкурентностью в Go

Reading time 3 min
Views 6.4K

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

Как указывает автор библиотеки в своей статье, он часто сталкивается с подобными проблемами и связанными с ними ошибками при работе с горутинами, что побудило его создать свою библиотеку conc.

Давайте посмотрим, на что она способна.

Читать далее
Total votes 17: ↑14 and ↓3 +11
Comments 10

Пришло время пересмотреть структуру проектов на .NET

Level of difficulty Easy
Reading time 11 min
Views 15K

C релизом .net 6 у нас появился новый упрощенный подход для быстрого создания сервисов  Minimal APIs. Эта статья появилась потому, что с новым подходом появились новые вопросы, связанные с организацией кода внутри проекта.

Это — немного вольный перевод статьи "Maybe it's time to rethink our project structure with .NET 6" от Tim Deschryver про подход к созданию сервисов с помощью Minimal APIs, который может помочь нам сделать архитектуру приложения более чистой, простой и легкой в поддержке и развитии.

Читать далее
Total votes 16: ↑13 and ↓3 +10
Comments 24

Расчет транспортного потока на основе YOLOv5 и DeepSORT на базе Deepstream

Level of difficulty Easy
Reading time 7 min
Views 6.5K

Хотим сохранить ваше время и нервы с задачей по подсчету трафика на перекрестках.

Ярослав и Никита – наши CV-инженеры, поделились решением, которое всего за 4 шага поможет подойти к релизу с минимальной потерей времени и денег.

Статья будет полезна начинающим CV-инженерам, продуктологам, владельцам IT-продукта, маркетологам и проджект-менеджерам.

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

Полное руководство по модулю asyncio в Python. Часть 8

Reading time 24 min
Views 11K

Перед вами восьмая часть (1234567) перевода руководства по модулю asyncio в Python. Здесь вы найдёте разделы исходного материала с 20 по 22.

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

Полное руководство по модулю asyncio в Python. Часть 4

Reading time 12 min
Views 14K

Сегодня, в четвёртой части (перваявтораятретья) перевода учебного руководства по модулю asyncio в Python, представляем вашему вниманию разделы оригинала №8 и 9.

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

Flamingo, Go ahead! или Как реализовать DDD в Go?

Reading time 7 min
Views 5K

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

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

Концепция предметно-ориентированного проектирования, она же DDD (Domain Driven Design), описанная Эриком Эвансом, активно используется при построении информационных систем для предприятий. Не стоит пересказывать основные принципы DDD, благо, помимо книги самого Эванса, они описаны в большом количестве статей. Нам важно другое. Эти принципы гораздо проще реализовать в своей информационной системе, если они поддерживаются фреймворком.

Для .Net, например, есть ASP.NET Boilerplate (https://aspnetboilerplate.com/), полностью реализующая все компоненты DDD – Entity, Value, Repository, Domain Service, Unit of Work и еще много всего. Но мы для одной из своих внутренних информационных систем используем Go. 

Мы решили использовать фреймворк Flamingo, распространяемый под лицензией MIT. Он разработан немецкой компанией AOE GmbH в 2018 году и к настоящему моменту “дорос” до версии 3.4 и до 331 звезды на Github. Flamingo используется в информационных системах аэропортов Окланда, Франкфурта и Хитроу, а также в T-Mobile.

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

У вас нет причин использовать alpine для python-проектов

Reading time 9 min
Views 9.9K

По мотивам моего доклада на PyCon "Контейнеризация Python без боли". На своей практике я постоянно сталкиваюсь со спорами какой базовый образ лучше использовать для проектов: alpine или debian. Аргументы есть и у той, и у другой стороны, но мне это настолько надоело, что я решил сам разобраться и наконец-то поставить точку. В конце концов "В наше время верить нельзя никому, даже себе. Но мне - можно." (с)

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

RISC-V набирает популярность: Европа, Китай, РФ, далее — везде

Reading time 4 min
Views 22K

Архитектура RISC-V активно развивается, в первую очередь — благодаря своей открытости и независимости. На ее основе можно разрабатывать практически любые решения, чем и занимаются некоторые компании из ряда стран, включая Китай, Россию, а теперь и Европу. Дело в том, что в ЕС выделяют около 270 млн евро на развитие экосистемы RISC-V. Инициатива получила название EuroHPC JU. Подробности о проекте и перспективах архитектуры в Европе и мире — под катом.
Читать дальше →
Total votes 67: ↑62 and ↓5 +57
Comments 44

Как мы внедряли полнотекстовый поиск

Reading time 4 min
Views 5.6K

Раньше я работала на проекте N, где главной бизнесовой сущностью было событие. Это событие имеет свое название и еще несколько полей.
Когда-то нам пришел запрос от юзеров: событие у нас в системе называется, например, "событие от Ивана Ивановича", а они пытаются вбить в поиск "иван иванович рассказал про X" и не получают никаких результатов.
Данная проблема решается с помощью полнотекстового поиска. Вопрос в том, как его реализовать.

Читать далее
Total votes 6: ↑4 and ↓2 +2
Comments 12

Information

Rating
Does not participate
Location
Ставрополь, Ставропольский край, Россия
Registered
Activity