Pull to refresh
3
0
Michael Elin@vanelm

Consulting Network Engineer

Send message

Запускаем C++ SQL-движок в браузере: как парсить Excel, CSV и Parquet через WebAssembly (без сервера)

Level of difficultyEasy
Reading time4 min
Reach and readers8.7K

Современный фронтенд давно перестал быть просто "лицом" приложения. Мы переносим в браузер нейросети, обработку видео и криптографию. Но когда дело доходит до банальной аналитики файлов — например, локального парсинга тяжелого Excel или Parquet-файла и выполнения SQL-запросов по ним — мы часто упираемся в ограничения JS-библиотек или вынуждены гонять данные на сервер.

Команда r7-consult решила задачу радикально: мы взяли наш C++17 движок excel_loader, скомпилировали его в WebAssembly и получили возможность выполнять полноценный SQL по локальным файлам прямо в браузере.

В этой статье разберем архитектуру решения wasm-sqlite-database, посмотрим, как C++ код дружит с JS, и покажем, как превратить браузер в локальный ETL-инструмент.

Читать далее

Из Python в 1С

Level of difficultyEasy
Reading time13 min
Reach and readers8K

Работаю в ИТ с 2004 года. Пришёл осознанно в индустрию не за деньгами - по любви к технологиям и тишине, когда можно заставить машину делать нужные вещи. Начинал с настольных приложений на Delphi, бэкенд на Python, немного React. Сейчас Финтех.

История о том, как, работая тимлидом Python-команды, решился принять вызов на переход в сферу 1С и что из этого вышло.

Читать далее

Развернем n8n и postgres под проекты на серваке, подключим свой домен и настроим бекапы в s3

Level of difficultyMedium
Reading time4 min
Reach and readers8.9K

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

Погнали

IPsec, GRE, BGP и немного автоматизации для высокой доступности вашей сети

Level of difficultyHard
Reading time21 min
Reach and readers8K

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

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

В основу статьи легли вопросы и задачи, с которыми клиенты часто обращаются к командам Presale архитекторов и Professional services VK Cloud, когда они хотят построить надежное гибридное решение для своего бизнеса.

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

Читать далее

Python и паттерны GoF, часть 1: Singleton

Level of difficultyMedium
Reading time16 min
Reach and readers7.7K

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

Первым паттерном, который мы рассмотрим, разумеется, станет синглетон. Как только его по-русски не называют, кстати. Синглтон. Синглетон. Наконец, ОДИНОЧКА. Не, ну вы представляете, ОДИНОЧКА?! Покажите мне живого человека, который так говорит? Я ни одного за 30 лет использования паттернов GoF не видел.

Казалось бы, что о нём можно сказать разумного, доброго, вечного, а главное — нового? Паттерн довольно тривиальный, всего лишь способ создать объект класса, который нельзя инстанцировать более одного раза, а потом использовать этот объект везде, где нужно (часто в совсем разных местах). И довольно спорный во многих случаях. Особенно в Python, где я обычно не советую его использовать так, как в C++.

Читать далее

Визуализация диаграмм в VS code

Level of difficultyEasy
Reading time2 min
Reach and readers10K

Покажу как редактировать диаграмму на языке mermaid и видеть при этом визуализацию в VS Code.

Про синтаксис Mermaid и варианты диаграмм можно почитать отдельно, например, тут.

Примеры для тестирования брала из соседней статьи.

Читать далее

Вайбкодинг — не Вайб и не Кодинг

Level of difficultyEasy
Reading time8 min
Reach and readers17K

Привет Хабр! Понимаю, что постов на эту тему появляется всё больше, вижу как их количество растёт. Все они подходят к проблеме с разных сторон — я хочу показать свою.

Я фриланс-разработчик, 2 года опыта. В основном делаю телеграм-ботов и TG mini apps, иногда бывают заказы на лендинги, смарт-контракты и пентесты. Работаю на одной площадке — Кворк. Есть аккаунт на Fiverr, но там никто ни разу не писал, кроме мошенников...

Последние полгода я делаю проекты только при помощи LLM. Я почти не читаю код и не пишу его совсем — только логи иногда добавляю. Готов к летящим помидорам. Хочу рассказать о том, что я только вырос: в доходе, эффективности, доверии заказчиков. За эти полгода мой доход вырос почти в три раза, я нашёл двух стажёров, и дело идёт в гору — появились крупные заказы.

Но меня немного обескураживает, когда люди называют процесс разработки при помощи LLM «вайбкодингом». Я не могу назвать это ни вайбом, ни кодингом. Сейчас объясню почему.

Читать далее

Не делайте рефакторинг как дядя Боб. Я вас умоляю

Level of difficultyEasy
Reading time7 min
Reach and readers49K

Несмотря на то, что книга «Чистый код» привнесла в наш лексикон прекрасный термин, она также снискала и дурную славу. Это руководство от 2008 года представляет собой сборник принципов и исследований, которые «дядя Боб» (Uncle Bob, то есть Роберт Мартин) выработал за годы программирования.

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

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

Можно подумать...

Читать далее

Компилируем Python так, чтобы он работал везде

Reading time18 min
Reach and readers13K

Это история о том, как написать компилятор Python, генерирующий оптимизированные ядра и при этом позволяющий сохранить простоту кода.

Читать далее

Как выбраться из гравитации фреймворков

Level of difficultyEasy
Reading time9 min
Reach and readers7.3K

Команда JavaScript for Devs подготовила перевод статьи о том, почему веб-команды застревают на орбите фреймворков и забывают о возможностях самой платформы. Автор убеждён: браузеры развиваются быстрее, чем экосистемы вокруг них, а зависимость от React и других инструментов тормозит инновации. Пора снова смотреть на веб как на платформу, а не как на “внутренность” фреймворка.

Читать далее

5 промтов, которые сэкономили мне часы рутинной работы тестировщика

Level of difficultyEasy
Reading time4 min
Reach and readers14K

Всем привет! Я Катя, QA Tech Lead в MD Audit.

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

Список не про генерацию тест-кейсов или чек-листов — про это уже написаны километры текстов.

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

Читать далее

Docs as Code – Code as Docs – No Docs

Level of difficultyMedium
Reading time7 min
Reach and readers6.7K

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

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

Существует три класса задач, которые решает техническая документация:

1. Описать наши требования к системе и принятые решения

2. Описать текущее состояние системы

3. Объяснить пользователю, как работать (\разворачивать\эксплуатировать) с системой.

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

Второй тип документации — описание текущего состояния системы. Так как мы не хотим разрыва между описанием системы и самой системой, мы будем пытаться генерировать человеко-читаемое описание из кода и конфигурации. Назовем этот подход Code as Docs.

Третий тип — различные виды пользовательской документации. Эту форму документации мы постараемся минимизировать, сделав понятным наши интерфейсы и встроив подсказки прямо в процесс работы пользователя с системой. Назовем это подходом No Docs.

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

Читать далее

Собираем OpenWRT прошивку и ImageBuilder для нестандартного оборудования на основе dts

Level of difficultyMedium
Reading time5 min
Reach and readers9.9K

Привет Хабр! Меня зовут Алексей и я занимаюсь беспроводными технологиями. Не так давно я рассказывал, как собрать прошивку OpenWRT без image builder. В этой статье мы повысим планку и попробуем собрать и прошивку, и image builder для модели роутера с частичной поддержкой OpenWRT. Под частичной поддержкой я понимаю то, что для данной конкретной модели роутера поддержки нет, но она есть для платформы. Экспериментировать я буду с реальным устройством - это Wi-Fi 7 роутер, полученный от китайского производителя. Вместе с роутером производитель предоставил нам необходимую документацию и DTS файл. Заранее хочу предупредить, что производитель просил не раскрывать название модели и не тиражировать его DTS файл. Поэтому часть информации на скриншотах я заблюрирую.

Читать далее

Reactive Web Components: реактивность без фреймворка

Level of difficultyMedium
Reading time9 min
Reach and readers7.9K

После работы с React/Vue/Angular захотелось вернуться к основам, но с современными возможностями. Сделал RWC — библиотеку реактивных веб-компонентов.

Ключевые преимущества:
• Совместимость — компоненты работают в любом проекте
• Производительность (сигналы для реактивности) — точечные обновления DOM
• Простота — минимальный API, легко обучать команду
• TypeScript-first — типизация из коробки без костылей

Компоненты, написанные на RWC, можно встроить в React, Vue, Angular или даже legacy jQuery-проект. Никакого vendor lock-in.

Библиотека весит <10KB, компоненты работают в любом проекте.

Читать далее

Docker для самых маленьких: упаковываем Python-бота за 10 минут

Level of difficultyMedium
Reading time10 min
Reach and readers17K

Хватит запускать ботов кнопкой Run в PyCharm! Пора осваивать промышленные стандарты.
В этом туториале я простым языком объясняю, как работает Docker и зачем он нужен Python-разработчику. Мы возьмем простого Telegram-бота, напишем для него конфиг, настроим .dockerignore и запустим в изолированном контейнере. Идеально для тех, кто давно хотел разобраться с Докером, но боялся сложных инструкций.

Читать далее

Sipeed NanoKVM: что умеет крохотный кубик RISC-V для удаленного управления компьютером

Reading time8 min
Reach and readers20K

Есть такой класс гаджетов, который не нужен рядовому потребителю. Большинство, вероятно, даже не знает об их существовании. Речь, разумеется, об IP-KVM, предоставляющих доступ к устройствам ввода-вывода. Собственно, аббревиатура KVM расшифровывается как Keyboard Video Mouse. Главная задача — дать удаленный доступ по сети без использования средств операционной системы.

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

Читать далее

PPP-over-HTTP/2: развлекаемся с dumbproxy и pppd

Level of difficultyMedium
Reading time5 min
Reach and readers13K

В этой статье рассказано как подружить pppd и dumbproxy, получив в итоге PPP-тоннель внутри HTTP/2. Её можно одновременно рассматривать как руководство по настройке, журнал эксперимента, демо возможностей dumbproxy и просто пищу для удовлетворения любопытства.

Читать далее

Простой Python, автоматический Spark: минус Kubernetes, плюс продуктивность

Reading time13 min
Reach and readers8.3K

Установка и эксплуатация приложений Spark в облаке зачастую становятся препятствием для дата-инженеров (Data Engineer, DE): сложная работа с Helm-конфигурациями отвлекает внимание от анализа данных и замедляет подготовку среды. Но полностью отказываться от Spark зачастую нерационально, поэтому многие команды стремятся найти свое решение для обхода существующих сложностей.

Привет, Хабр. Меня зовут Юрий Орлов. Я руководитель команды разработки ML Platform в VK Tech. В этой статье я расскажу о том, как мы автоматизировали развертывание Spark в облаке и создали клиент на Python, который снижает требования к знаниям в области DevOps и Kubernetes, необходимым для начала работы со Spark.

Читать далее

Ищем ошибку в работе WiFi у платы ESP32-C3 SuperMini

Level of difficultyMedium
Reading time5 min
Reach and readers12K

Статья о небольшой эпопее с поиском ошибки в работе WiFi на плате ESP32-C3 SuperMini, с которой пришлось разбираться в процессе отладки кода прошивки для контроллера батареи АКБ (О контроллере батареи ИБП (вопрос к читателям Хабра) и О контроллере батареи ИБП (часть 2)).

Симптоматика проблемы с WiFi следующая: после включения питания и начала авторизации по WiFi плата ESP32-C3 SuperMini через какое-то время зависает, вплоть до срабатывания сторожевого таймера. Поиск решения проблемы в интернете не помог, но было замечено, что в эти моменты на плате очень сильно нагревается стабилизатор напряжения 3.3V, да так, что даже рука не терпит, тогда как при работе тестовых примеров (где WiFi работает нормально) такого эффекта не наблюдается.

Из-за этого решил копать именно в этом направлении.

Читать далее

SDR с высочайшим соотношением цены и качества за 75 долларов: Распаковка и всестороннее тестирование PLUTOSDR NANO

Reading time6 min
Reach and readers14K

Плата разработки программно-определяемого радио (SDR) PLUTOSDR NANO (далее именуемая SDR) является производной от ADALM-PLUTO, выпускаемой Analog Devices. Оба устройства используют комплексное проектное решение на основе радиочастотного трансивера AD9363 и ПЛИС ZYNQ7010, представляя собой мощные устройства программно-определяемого радио, которые могут предоставить пользователям широкий частотный диапазон и мощные вычислительные возможности. Ниже приведено краткое руководство по быстрому тестированию после распаковки, включающее этапы: проверка при распаковке, подключение устройства, тестирование основных функций и тестирование функций связи.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity