Pull to refresh
33
0.6
ionicman @ionicman

User

Send message

«Who is who?» в мире li-ion. О производителях цилиндрических li-ion аккумуляторов

Level of difficultyEasy
Reading time12 min
Views4.4K

Хотелось бы рассказать про производителей цилиндрических li-ion аккумуляторов. Если про аккумуляторы Samsung, Panasonic, Sanyo многие знают, то что за Murata и Molicel, и куда пропали Sony, знают не многие. А уж про китайские EVE, Lishen, BAK, DMEGC и т.д. если вы и слышали, то вряд ли знаете кто получше, а кто похуже. Ну и на десерт всякие Литокалы и им подобные.

Читать далее

Часть вторая. Как я пытался засунуть gRPC в браузер — продолжение

Reading time5 min
Views3K

Предыдущая часть

Картина мира: почему браузер — главный блокер для «настоящего» gRPC

Если коротко, gRPC живёт поверх HTTP/2 и активно полагается на стримы. А в браузере до сих пор нет низкоуровневого API, который позволил бы JavaScript управлять HTTP/2‑стримами на том уровне, который нужен gRPC. Даже unary‑вызов в gRPC — это частный случай стрима: открыли поток, отдали запрос, забрали ответ, закрылись. Пока браузеры не дадут этот «рычаг», все WEB‑решения — это компромиссы разной степени изящности.

Чем это оборачивается на практике:

Нативные bidi‑стримы из браузера недоступны

Приходится конвертировать транспорт: HTTP/1.1 или WebSocket → что‑то «похоже на gRPC» → gRPC/HTTP2 на бэкенде

Добавляются прокси, адаптеры и слой совместимости, где теряется часть достоинств «чистого» gRPC

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании

Level of difficultyEasy
Reading time11 min
Views22K

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

Как автор курса «Python-разработчик» в Яндекс Практикуме, я часто разбираю подобные ситуации на своём YouTube-канале, где провожу открытые тестовые интервью с джунами. Всё, о чём я говорю, — это не абстрактные примеры, а реальные наблюдения и выводы, сделанные прямо в ходе этих собеседований. 

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

Читать далее

Часть 6: Производство платы – опыт работы с JLCPCB

Level of difficultyEasy
Reading time7 min
Views5.7K

Предыдущая часть

Часть 5: Алгоритмы – реализация и модель ошибок

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

План статьи: В этой части рассматривается практический процесс изготовления печатной платы нашего устройства.

Читать далее

Android. Glance Widgets. Начало

Level of difficultyEasy
Reading time6 min
Views1.3K

Android. Glance widgets.

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

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

Читать далее

Как я замену MAX'у искал, или «Matrix и XMPP на своем сервере для самых маленьких»

Level of difficultyEasy
Reading time15 min
Views54K

В свете небезызвестных событий в законотворческой области, столкнулся с необходимостью организовать канал для звонков внутри семьи, т.к. пользоваться звонками в популярных мессенджерах – значит быть подверженным угрозам со стороны мошенников и спонсировать терроризм, а звонить по мобильной сети с ее ужасным качеством связи (несмотря на все потуги операторов в VoLTE и прочие VoiceHD)  в 2025 году – какой-то моветон. А MAX на мои устройства устанавливаться отказался, не знаю почему, я даже не пробовал. Может быть потому что я слишком мало времени провожу в лифте и на парковке?

Что из этого получилось и как повторить — готов поделиться.

Читать далее

Знакомство с программным USB на CH32V003

Level of difficultyMedium
Reading time18 min
Views7.5K

Давно хотел сделать устройство с USB, но больше всего мне казалось интересным это использовать программное USB. И для микроконтроллера CH32V003 давно существует библиотека rv003usb, которая решает эти задачи. В этой статье можно было бы рассказать как делать простейшее USB-устройство на основе её, но эта библиотека заметно больше и предлагает, помимо самой библиотеки, несколько полноценных рабочих программ: загрузчик и программатор.

Изначально я думал написать статью после создания готового устройства, но пока им занимался столкнулся с тем, что информации получается много и она интересная, поэтому решил разбить это все на части. Это первая, ознакомительная. Я как всегда начал разработку с прототипов и сделал тестовые платы с USB, чтобы “прощупать почву” и про них сегодня будет разговор. Но ради интереса еще попробуем загрузчик и соберем программатор из этой же библиотеки.

Попробуем сделать свой Digispark!

Читать далее

Как мы обслуживаем 5 млрд карточек в сутки с задержкой меньше 1 мс

Level of difficultyMedium
Reading time8 min
Views40K

Меня зовут Ескендиров Мурат, я — архитектор сайта в Ви.Tech, IT-дочке ВсеИнструменты.ру. В этой статье расскажу, как мы строили сервис для выдачи карточек товаров, обрабатывающий до 5 миллиардов запросов в сутки, какие архитектурные решения приняли и с какими проблемами столкнулись в процессе. Расскажу, какие решения сработали, а какие до сих пор остаются нашей головной болью.

Сайт «ВсеИнструменты» имеет почти 20-летнюю историю, и, как это часто бывает, за это время он превратился из маленького сайта с парой сотен товаров на PHP, созданного «на коленке», в гигантский монолит с несколькими миллионами уникальных номенклатур.

Несколько лет назад перед сайтом встали в полный рост проблемы, характерные для многих компаний, выросших из «подпартного» стартапа (первый свой заказ компания «ВсеИнструменты.ру» получила во время лекции в МФТИ, тогда один из основателей для его оформления залез под парту) в многомиллиардную корпорацию:

Читать далее

RegExp с флагом /v: наборы, пересечения и юникод-свойства

Level of difficultyEasy
Reading time6 min
Views1.6K

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

Сегодня рассмотрим флаг регулярных выражений v в JavaScript. Флаг поддержан в современных движках и Node 20+, а для старых окружений есть транспиляция через Babel. Начнём с краткой ориентации где это уже работает и почему синтаксис отличается, а потом пойдём в практику.

Читать далее

Go по-прежнему полон проблем

Level of difficultyEasy
Reading time6 min
Views28K

Я уже больше десяти лет критикую Go, о чём высказывался в своих предыдущих статьях «Why Go is not my favourite language» и «Go programs are not portable».

Описанные в них проблемы языка бесят меня всё больше, и в основном потому, что их явно можно было избежать. Мир знавал решения и получше, но Go почему-то состряпали именно таким.

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

Читать далее

Геоданные в PostgreSQL: зачем нужен PostGIS и как он работает

Reading time11 min
Views7.9K

PostgreSQL известна как надежная и универсальная СУБД. Но если нужно хранить координаты, строить маршруты или анализировать границы районов, ее базовых возможностей уже не хватает. Здесь на помощь приходит PostGIS. Под катом разберемся, что умеет расширение и как его использовать.

Читать далее

JavaScript: хочу свой HTMLElement

Level of difficultyMedium
Reading time4 min
Views3.7K

Просто хочу строить свой DOM из своих кирпичей.
С преферансом и поэтессами...

Что мне это даст:

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

Читать далее

Надоело воевать с Git? Попробуй Jujutsu (jj), и вот почему он круче, чем кажется

Level of difficultyEasy
Reading time7 min
Views16K

Статья для разработчиков, которые устали от сложностей Git и хотят навести порядок в своих проектах. Я расскажу про Jujutsu (jj) — современную альтернативу, которая меняет подход к контролю версий. Без веток, без stash, без мучительных rebase -i — только чистая история и удобный workflow, который позволит вам фокусироваться на написании кода, а не на борьбе с системой. Готовые примеры и наглядная демонстрация возможностей внутри.

Читать далее

Топ-5 алгоритмов из курса матана, которые реально пригодятся в работе

Level of difficultyMedium
Reading time8 min
Views48K

Всем привет. Сегодня хочу затронуть тему матана, чтобы показать как его можно применять на реальных задачах. Думаю каждый, кто учил матан часто задавался вопросами: «Где это вообще пригодится?», «Зачем это нужно?», «Как это может помочь?» и т. д. Так вот, чтобы эти вопросы отпали раз и навсегда предлагаю свой топ-5 алгоритмов из курса матана с конкретными примерами их применения в работе.

Читать далее

P2P-мессенджеры нового поколения. Связь без интернета

Reading time3 min
Views102K

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

Читать далее

Docker изнутри: исчерпывающее руководство. Механизмы контейнеризации + примеры, эксперименты и реализация

Level of difficultyMedium
Reading time33 min
Views80K

Docker — не магия, а грамотное применение механизмов Linux. Разбираем инструмент, который пугает своей сложностью не меньше блокчейна. Показываем на пальцах как работают: Namespaces, Cgroups, OverlayFS – основные компоненты любого контейнера, и как стандарт OCI объединяет их в единую экосистему. Об этом и не только в статье.

Читать далее

Удобный софт для работы с файлами SQLite

Level of difficultyMedium
Reading time7 min
Views17K

Все мы любим SQLite. Это идеальный движок БД, компактная библиотека размером менее 1 МБ, быстрая, автономная и неубиваемая. Более того, это в принципе удобный способ хранения информации, поскольку СУБД выигрывает у файловой системы по скорости доступа, сжатию, функциональности полнотекстового поиска и т. д. Например, она вдвое быстрее файловой системы Ext4 под Linux.

SQLite — самая популярная в мире СУБД. Как рассказывалось в статье «Безумные и забавные факты о SQLite», в мире активно используется более триллиона (!) БД SQLite, это невероятное число. Просто она встроена во все смартфоны, браузеры, операционные системы и бесчисленное число других приложений.

Читать далее

Изучаем Go: руководство для JavaScript-разработчиков. Часть 2

Level of difficultyMedium
Reading time13 min
Views5.3K

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

Интерес к Go в JavaScript-сообществе тоже заметно вырос. Особенно после новости от Microsoft о том, что они переписывают официальный компилятор TypeScript на Go — и обещают ускорение до 10 раз по сравнению с текущей реализацией.

Эта статья — своего рода путеводитель для JavaScript-разработчиков, которые задумываются о переходе на Go или просто хотят с ним познакомиться. Я постарался структурировать материал вокруг ключевых особенностей языка, сравнивая их с привычными концепциями из JavaScript/TypeScript. И, конечно, расскажу о "подводных камнях", с которыми столкнулся лично — с багажом мышления JS-разработчика.

Читать далее

Паттерны современного Node.js (2025)

Level of difficultyEasy
Reading time14 min
Views17K

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

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

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

Читать далее

Про свёрла

Level of difficultyEasy
Reading time10 min
Views73K

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

Читать далее

Information

Rating
1,958-th
Registered
Activity