Давайте начнем с определения из Википедии.“Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.”“Единственный экземпляр некоторого класса” означает что нет возможности написать код, в котором объект может быть скопирован или создан еще каким-либо способом.В этом посте про "гарантирующий".Рассмотрим общеизвестную реализац…
Привет, Хабр! Меня зовут Андрей, я Frontend разработчик. О статьеПродолжаем погружаться в продвинутый TypeScript. В этой статье рассмотрим conditional types, посмотрим на реализацию с примерами, узнаем какую роль играют ключевые слова extends и infer. Перед прочтением данной статьи рекомендую ознакомиться с базовыми понятиями и возможностями языка, в этом вам поможет одна из моих прошлых статей: TypeScript и все что тебе нужно в разработкеСтатья предназначена для тех, кто хочет научиться увере…
Продолжение перевода статьи «Reimagine Atomic CSS» двухлетней давности одного из членов команды Vue core Anthony Fu, автора UnoCSS, в которой рассматривается уже сам UnoCSS. Часть первая.Введение в UnoCSSUnoCSS — мгновенный (instant) атомарный CSS‑движок с максимальной производительностью и гибкостью.Все началось с нескольких случайных экспериментов во время моих национальных праздников. С мыслью о том, что все делается по требованию (on‑demand), и гибкостью, которую я ожидаю как пользователь,…
Hello world! На днях я баловался с WebAssembly и получил довольно неожиданные результаты, которыми и хочу с вами поделиться в этой небольшой заметке. Хорошо, если вы знаете JS/Node.js и хотя бы слышали о WASM и Rust. Я использовал следующие инструменты: Chrome 119.0.6045.199 Node.js 20.9.0 Rust 1.74.0 VSCode 1.80.2 Начнем с создания Node.js-проекта: # основная директория mkdir js-wasm cd js-wasm # директория с JS-кодом mkdir js-code cd js-code # инициализируем Node.js-проект # это не обя…
Оба поисковика утверждают, что что-то уже могут по индексированию SPA приложений. В статье показаны результаты проведенного эксперимента по индексации чистого SPA вебсайта.Результат: Google - хорошо, Yandex - не очень.SPASPA приложения получают данные и отображают их на странице асинхронно, через AJAX запросы. В связи с чем, для индексации таких сайтов поисковик должен понимать JavaScript и грузить и обрабатывать не только основной HTML страницы, как он это делал много лет, но и сопутствующие …
Всем привет. Сегодня я бы хотел рассказать о том, с какими трудностями пришлось столкнуться при работе с менеджером node.js процессов PM2, и как нам пришлось расширить его возможности для того, чтобы его было можно использовать эффективнее.Как известно PM2 — это менеджер процессов с открытым исходным кодом позволяющий кластеризировать приложение и гибко распределять нагрузку между ядрами процессора. Многие используют его в своих продакшен решениях благодаря его возможностям, но в последнее вре…
GO Simple Tunnel - a simple tunnel written in golangGO Simple Tunnel GO语言实现的安全隧道 English README 功能特性 多端口监听 多级转发链 多协议支持 TCP/UDP端口转发 反向代理和隧道 TCP/UDP透明代理 DNS解析和代理 TUN/TAP设备 负载均衡 路由控制 准入控制 限速限流 插件系统 Prometheus监控指标 动态配置 Web API Web UI 概览 GOST作为隧道有三种主要使用方式。 正向代理 作为代理服务访问网络,可以组合使用多种协议组成转发链进行转发。 端口转发 将一个服务的端口映射到另外一个服务的端口,同样可以组合使用多种协议组成转发链进行转发。 反向代理 利用隧道和内网穿透将内网服务暴露到公网访问。 下载安装 二进制文件 https://github.com/go-gost/gost/releases 安装脚本 # 安装最新版本 [https://github.com/go-gost/gost/releases](h…
На заре зарождения радиотехники безмятежный покой мирового эфира нарушался, разве что, электромагнитными волнами, порождёнными грозовыми разрядами. Современный эфир такой безмятежностью уже не обладает, он наполнен огромным количеством сигналов, как естественного, как и искусственного происхождения. Радиоприёму на любительских КВ-диапазонах мешает буквально вся городская среда: базовые станции сотовой связи, мощные лампы уличного освещения, соседние компьютеры, гаджеты и т.д. Ослабить влияни…
Закончив в предыдущей статье описание того, как должны осуществляться атомарные операции и каким образом осуществляется выполнение команд я бодро перешел к написанию HDL-кода. Пришлось разобраться с тем, как организовать FSM, как организовать считывание и выставление данных на шине. Весь этот процесс перехода от идеи и результатов моделирования к написанию кода — я и хотел бы описать в данной статье. Всем интересующимся — добро пожаловать под кат! =) Дисклеймер. Перед началом повествова…