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

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

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

Что такое Архитектура

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

Существует множество определений термина "Архитектура ПО", от устаревших и неформальных до слишком абстрактных и претендующих на остроумие. К примеру, можно упомянуть сайт Института Программной Инженерии (SEI) Университета Карнеги-Меллона, в электронной библиотеке которого есть соответствующий документ.

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

Замени меня, нейросеть, замени меня полностью

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

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

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

Сравнение MicroK8s c Managed Kubernetes Clusters, K3s и Minikube

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

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

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

Введение в нейросети: что, зачем и как?

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

Это модное слово всё чаще используется в разговорной речи: обывателей плотнее окутывают угрозами бунта искусственного интеллекта и войны с роботами — с одной стороны, и рекламой нейросетевых продуктов — с другой. Отдельный котёл в аду — для тех, кто впаривает «курсы дата‑саентистов». А когда бедный юзернейм в поисках истины обращается к Гуглу своему любимому поисковику — то вместо простого ответа на простой вопрос, получает ещё больше вопросов — таких как тензорфлоу, сигмоида и, не дай Бог, линейная алгебра.

Как же нейросети рисуют картинки?
Всего голосов 58: ↑56 и ↓2+54
Комментарии25

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

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

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

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

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

Читать далее
Всего голосов 14: ↑2 и ↓12-10
Комментарии25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Компания 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.5K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение2 мин
Количество просмотров4.4K
Речь пойдет о платформе 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
1
23 ...

Информация

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