Как стать автором
Обновить
-25
0.2
Илья @Arbane

Программист, руководитель

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

Async/await. Куда делся thread.  Инверсия асинхронности. Разоблачение мистификации

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

В прошлый раз мы разобрали пример, когда асинхронная операция использует дополнительный поток. Этот пример многим показался провокационным и даже вредным, что для меня выглядит достаточно странным. Насколько я понял основной претензией является то, что этот пример для многих как бы отрицает «экономное использование потоков», как это сформулировано например здесь-«metanit: Асинхронное программирование» .

Конечно, многие обиделись на меня за то, что я посмел возражать признанному авторитету, который вынес в заголовок своей очень известной работы фразу There is no thread (Там нет потока) ведь хорошо известно, что: «нет пророка в своем отечестве», и, видимо, быть не должно, но это все эмоции.

Давайте я покажу, как преобразовать мой пример, чтобы он продемонстрировал не только то самое «экономное использование потоков», но и откуда оно берется.

Читать далее
Всего голосов 13: ↑2 и ↓11 -9
Комментарии 23

Автомасштабирование рабочих нагрузок Kafka с помощью кастомных метрик

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

Автомасштабирование обеспечивает эффективность и надёжность приложения. Оно автоматически адаптирует ресурсы в соответствии с потребностями. В периоды пиковой нагрузки — увеличивает, в более спокойные периоды — уменьшает для снижения затрат. Эта гибкость особенно полезна для обработки непредсказуемого трафика: приложения остаются отзывчивыми и не используют ресурсов больше, чем необходимо. Перевели статью о том, как настроить Kafka Scaler на основе задержки подписчика (consumer lag).

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

Интеграция нативных SDK во Flutter-приложение

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

Мир мобильной разработки постоянно меняется. В поиске эффективных решений разработчики пошли по пути новых технологий и интеграций. Одним из самых ярких маяков на этом пути стал Flutter — набор инструментов пользовательского интерфейса от Google, который позволяет пользователям создавать нативно скомпилированные приложения для веб, mobile и desktop с единой кодовой базой.

Преимущество Flutter — в его возможности создавать приложения «похожие» на нативные. Это реально благодаря большому выбору настраиваемых виджетов, которые позволяют быстро создавать «нативные» интерфейсы. Но даже с такими широкими возможностями бывают случаи, когда приложениям Flutter необходимы определенные функции нативных SDK.

Читать далее
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 1

Рисуем эффект «Таноса» на Android (и не только)

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

Привет! Вопрос мобильным разработчикам: часто ли вам приходится работать с необычным UI? Если вы ответили утвердительно, то я по-доброму вам завидую. В своей повседневной практике мне в основном приходится работать со стандартным набором компонентов и их базовой настройкой. Абсолютно ничего не имею против, но хочется чего-то «эдакого»: кастомных компонентов, написанных с нуля, необычных анимаций и эффектов. Часто подобные вещи вызывают много споров (как среди разработчиков, так и конечных пользователей) а-ля «А на кой оно вообще надо», но лично для меня это ни что иное, как творчество. Кто-то красиво рисует, кто-то красиво поёт, а кто-то пишет красивые уникальные приложения, которыми интересно и приятно пользоваться. И мы, пожалуй, не можем обвинять авторов за бессмысленность «украшательств», как по-хорошему не можем судить художника за его работу.

К чему я – спросите вы. Я отвечу: настраиваю на нужный лад :) В рамках этой статьи мы коснёмся полезной темы и создадим что-то бесполезное в практическом смысле, но несомненно интересное и достаточно уникальное.

Уже интересно
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 9

Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях

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


Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы и шины данных, как читать схемы устройств и определять контроллеры дисплеев, какие дисплеи стандартизированы, а какие придётся реверсить самому и как быть с подсветкой. В практической части статьи мы подключим дисплей по протоколу MIPI DBI к RP2040 с использованием DMA. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 108: ↑106 и ↓2 +104
Комментарии 116

Аутентификация для WebSocket и SSE: до сих пор нет стандарта?

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

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

В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events, обсудим, какие нюансы могут быть, когда клиентская часть находится в браузере, и на что еще стоит обратить внимание, чтобы избежать неочевидных проблем.

А еще заодно поговорим про уязвимость Cross-Site WebSocket Hijacking (CSWSH) и в целом посмотрим на многие вопросы через призму информационной безопасности.

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

Merlion Framework или как упростить работу с временными рядами

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

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

Сегодня с вами участники профессионального сообщества NTA Ершов Дмитрий и Марков Никита.

В нашем мире время является незаметным четвертым измерением (или временным рядом), по оси которого, можно упорядочивать разные события.

Временной ряд — это набор данных, описывающих изменения какой‑либо переменной во времени.

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

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

Наноматериалы и нанотехнологии. Часть I

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

Компания Bayer (Германия 2007) запустила реактор мощностью 200 т/год многостенных углеродных трубок, но им пришлось ограничить производство. Многостенные трубки не нашли ожидаемого сбыта, они делались из графита, а не из графена, одного атомного слоя углерода.

Русский автор патента Graphetron Михаил Предтеченский придумал ключевую фразу: «Любым способом создается движущаяся в потоке углеводородного газа частица и на ней растет одностенная трубка». Если в технологии так, то этот патент, если нет, то другой. После этого в патенте можно ничего не называть и не раскрывать. В феврале 2010-го Юрий Коропачинский вместе с Олегом Кирилловым, Юрием Зельвенским и Михаилом Предтеченским создали компанию OCSiAl. Увидеть генератор Graphetron нельзя, он как камень Кааба закрыт занавесом. На сегодняшний момент OCSiAl (с Graphetron) единственный в мире промышленных масштабах производитель одностенных (однослойных) графеновых трубок (SWCNT).  Стремительно расширяются и области применения графеновых нанотрубок.

Для понимания свойств материальных тел на наномасштабном (от 1 до 100 нанометров) уровне необходимо иметь представление о соответствующих их свойствах на макроскопическом и мезоскопическом уровнях. Приставка нано – означает одну миллиардную (10–9) чего-либо, например, метра. Законы термодинамики в нашем мире играют ведущую роль, и она остается справедливой (сохраняется) для тел с нано размерностью, хотя свойства веществ при измельчении претерпевают существенные изменения.

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

0. Есть игра. (следствие нулевого закона термодинамики)
1. Вы не можете выиграть. (следствие первого закона термодинамики)
2. Вы не можете выйти в безубыток. (следствие второго закона термодинамики)
3. Вы даже не можете выйти из игры. (следствие третьего закона термодинамики)

Понятно, что исчерпывающее изложение вопроса в ограниченной по объему статье невозможно, но как ознакомительный ввод в проблему эта работа предлагается читателям

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

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

Технологичные продукты, с которыми систематически обманывают производители

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

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

Временами возникает чувство, что малоизвестные китайские бренды соревнуются друг с другом, кто круче «превознесет» продукт или придумает для него крутые характеристики. Но иногда обманывают очень изящно.

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

Если интересны детали – добро пожаловать под кат.

Читать далее
Всего голосов 150: ↑149 и ↓1 +148
Комментарии 91

Записываем экран и звук через расширение в браузере и сохраняем в NextCloud

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

Здравствуйте дорогие читатели.

В статье делюсь опытом создания расширения для Chromium и Google Chrome браузера.

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

Раньше я пользовался «условно бесплатными расширениями и программами для записи скринкастов», но в какой-то момент некоторые из них стали платными, и их удобства сошли на “нет”. А в некоторых оставались вопросы к безопасности данных и сложности с оплатой.

Возможно вы скажите - зачем мне расширение для браузера?! Ведь я могу взять ffmpeg с x11grab, приправить всё это bash-скриптом с использованием curl, и отправлять результаты в облако одной лишь командой в терминале! И возможно быстренько "перенесу" это решение под все операционные системы! И вы будете правы, но решение получится сложным. А если у нас есть под рукой браузер, то воспользуемся его возможностями (да, это странно - браузер для просмотра HTML-страничек, который записывает ваш экран).

Ссылка на готовое решение под катом.

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

Изометрическое Черчение в Inkscape

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

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

Очевидно, что нужен какой-то векторный редактор для быстрого и простого создания статической графики.

Редакторы 3D черчения как правило платные. При этом есть бесплатные программы для 2D черчения. В некоторой степенью работать на плоскости удобнее, чем теряться в 3D комнате.

В этом тексте представлены приёмы для 3D черчения в 2D редакторе Inkscape.

Читать далее
Всего голосов 20: ↑16 и ↓4 +12
Комментарии 40

Большой тест GPT4, GPT3.5, YandexGPT, GigaChat, Saiga в RAG-задаче. Часть 2/2

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

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

Особенностью эксперимента является в том, что оценку ответов делают обычные люди. Юристы.

Во второй части мы рассмотрим как и зачем делать локальные токензайзеры и попробуем запустить всё полностью на локальной машине с видеокартой 4090.

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

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

Разработка под Symbian: SDK

Время на прочтение 2 мин
Количество просмотров 4.3K
Речь пойдет о платформе Series 60, позже переименованной в S^1.

Это обзорная статья, если немного сумбурная — извините. Только-только исправил все ошибки в postinker elf2e32, её описание и ссылка на гитхаб — в конце статьи.
image
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 8

Мой вам подарок к Новому году или как наконец запустил то, что надо было давно запустить…

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

КДПВ


Немножко истории


Начну с истории вопроса.


Очень давно я написал Fresh IDE – навороченнoe IDE для программирования на ассемблере, а точнее на FlatAssembler.


Fresh IDE долгие годы меня полностью устраивал, поэтому я с перерывами выпустил 2 главные версии и начал просто его использовать, время от времени внося какие-то исправления и изредка новые функции.


Когда перешел полностью на Linux, оказалось, что Fresh IDE прекрасно работает под WINE, и я продолжил им пользоваться без угрызений совести. В процессе даже удалось исправить несколько багов WINE (вот, вот и вот).


Как бы то ни было, но я начал писать библиотеку для переносимости ассемблерных программ между Linux и Windows (и KolibriOS). Одновременно с этим задумался и над тем, чтобы сделать Fresh IDE переносимым. Из-за архитектуры библиотеки, огромная часть кода уже и так была переносимой. А точнее все, что не касалось GUI. К сожалению, GUI был полностью написан на Win32 API и его нельзя просто так перенести на другие платформы.


Поэтому и пришлось начинать все сначала. И третья версия Fresh IDE писалась почти с нуля.

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

Самописное решение или «коробка»: сравниваем два подхода к автоматизации service desk в молодых компаниях

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

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

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

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

Как я перестал бояться и вышел в Интернет со своей IPv6-сетью

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

Для личных нужд я использую bare-metal сервер от Hetzner, порезанный на виртуалки и, с недавних времен, VPS на HostHatch для мониторинга и резервирования. Также есть маленькая ВМка у TietoKettu (для ВПН, экспериментов и прочее).

Так как IPv4-адресов мало, то хостинги обычно дают дополнительные айпишки за дополнительные деньги, а вот IPv6-сети выделяют щедро. Изначально, я объединил все виртуалки, у которых был публичный IPv4-адрес в Wireguard mesh сеть, но потом когда выяснилось, что надо бы присоединить ещё одну ВМку, пришлось переделать mesh на IPv6-адреса и тут понеслось...

Сначала выяснилось что у HostHatch нет связности с ElmoNet (TietoKettu использует их адреса), после недели-двух бодания с техподдержкой HostHatch-a связность появилась. Однако недели две назад от них приходит письмо, о техобслуживании нод, где живут мои ВМки. И что вы думаете? После обслуживания туннель до этих ВМок так и не восстановился. В итоге, оказалось что обе вмки исчезли их IPv6-интернета. На этот раз связность починили только через 3 дня, хотя я создал срочный тикет.

В итоге, я перевёл туннели обратно на IPv4 и переключился на DN42, но в один выходной мне на глаза попалась статья на Reddit и я решил воскресить идею о "своем" куске Интернета. Масла в огонь подбавил Vultr, который наглухо заблокировал доступ на свои ресурсы (даже IP calculator) с Hetzner.

В одном из комментов, к вышеупомянутой статье, была ссылка на IPv6-сообщество в Discord. Я присоединился и стал задавать много вопросов в канале #asn-newbies.

Думаю, что кому-нибудь мой опыт и набитые шишки будет полезен. Если это так, то прошу под кат.

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

Производительность базового поиска в Ozon как культурный феномен

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

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

Читать далее
Всего голосов 81: ↑76 и ↓5 +71
Комментарии 87

Технология единого входа: как работает SSO

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

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

Казалось бы, что может быть проще, чем один вход для всех сервисов? Но за этой кажущейся простотой скрываются сложные технические детали.

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

Первые идеи SSO зародились в конце 1990-х, когда корпоративные сети стали более сложными, и потребность в централизованном управлении доступом стала очевидной. Это был период, когда организации начали искать способы упростить управление учетными записями для своих сотрудников.
В начале 2000-х было активное развитие технологий SSO. Организации начали внедрять SSO для упрощения доступа к корпоративным приложениям и ресурсам. Это также был период появления стандартов, таких как Kerberos, который лег в основу многих ранних реализаций SSO.
С развитием облачных технологий и мобильных устройств SSO начало получать ещё большее распространение. Возникли такие стандарты, как OAuth и OpenID, которые позволили SSO выйти за пределы корпоративных сетей и обеспечить интеграцию с обширным спектром внешних онлайн-сервисов и приложений.

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

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

Распознавание русского жестового языка: распознаём до 3+ жестов в секунду на обычном ПК без видеокарты

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

Привет!

Меня зовут Максим Новопольцев, я техлид RnD команды Центра развития технологий AI во благо общества, Sber AI. Мы занимаемся проектами, направленными на решение важных социальных и экологических задач, таких как сохранение биоразнообразия, создание инклюзивной среды, прогнозирование климатических рисков.

В этой статье я расскажу как и зачем мы создавали модель распознавания русского жестового языка и покажу, что из этого получилось.

Сегодня в России нет достаточного количества специалистов-переводчиков русского жестового языка (РЖЯ), с помощью которого общаются люди с ограничением слуха. По данным Всероссийского общества глухих, нехватка специалистов в этой сфере в России - около 4 тыс.

А между тем, глухие или неговорящие - достаточно большая группа людей, которая посещает государственные учреждения, ходит в магазины, банки и пр. По данным ВОЗ, более 5% населения мира, или 430 миллионов человек, имеют проблемы со слухом, а к 2050 г. с этой проблемой столкнется каждый десятый, или более 700 миллионов человек.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 11

Черная пятница в издательстве «Питер»

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

Добрый день, Хаброжители!

Настало время больших скидок, подробности внутри…
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 7

Информация

В рейтинге
2 202-й
Откуда
Россия
Зарегистрирован
Активность