golang
Есть ли Singleton в Golang?

Давайте начнем с определения из Википедии.“Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.”“Единственный экземпляр некоторого класса” означает что нет возможности написать код, в котором объект может быть скопирован или создан еще каким-либо способом.В этом посте про "гарантирующий".Рассмотрим общеизвестную реализац…

  • вторник, 5 декабря 2023 г. в 00:00:20
javascript
TypeScript: infer и conditional types. Продвинутый TS на примерах

Привет, Хабр! Меня зовут Андрей, я Frontend разработчик. О статьеПродолжаем погружаться в продвинутый TypeScript. В этой статье рассмотрим conditional types, посмотрим на реализацию с примерами, узнаем какую роль играют ключевые слова extends и infer. Перед прочтением данной статьи рекомендую ознакомиться с базовыми понятиями и возможностями языка, в этом вам поможет одна из моих прошлых статей: TypeScript и все что тебе нужно в разработкеСтатья предназначена для тех, кто хочет научиться увере…

  • вторник, 5 декабря 2023 г. в 00:00:18
javascript
Atomic CSS здорового человека. UnoCSS

Продолжение перевода статьи «Reimagine Atomic CSS» двухлетней давности одного из членов команды Vue core Anthony Fu, автора UnoCSS, в которой рассматривается уже сам UnoCSS. Часть первая.Введение в UnoCSSUnoCSS — мгновенный (instant) атомарный CSS‑движок с максимальной производительностью и гибкостью.Все началось с нескольких случайных экспериментов во время моих национальных праздников. С мыслью о том, что все делается по требованию (on‑demand), и гибкостью, которую я ожидаю как пользователь,…

  • вторник, 5 декабря 2023 г. в 00:00:17
javascript
О JavaScript и WebAssembly

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-проект # это не обя…

  • вторник, 5 декабря 2023 г. в 00:00:17
javascript
Google и Yandex SEO оптимизация для SPA приложений

Оба поисковика утверждают, что что-то уже могут по индексированию SPA приложений. В статье показаны результаты проведенного эксперимента по индексации чистого SPA вебсайта.Результат: Google - хорошо, Yandex - не очень.SPASPA приложения получают данные и отображают их на странице асинхронно, через AJAX запросы. В связи с чем, для индексации таких сайтов поисковик должен понимать JavaScript и грузить и обрабатывать не только основной HTML страницы, как он это делал много лет, но и сопутствующие …

  • вторник, 5 декабря 2023 г. в 00:00:16
javascript
Улучшаем возможности PM2 с помощью дополнительных модулей автоскейлинга и мониторинга

Всем привет. Сегодня я бы хотел рассказать о том, с какими трудностями пришлось столкнуться при работе с менеджером node.js процессов PM2, и как нам пришлось расширить его возможности для того, чтобы его было можно использовать эффективнее.Как известно PM2 — это менеджер процессов с открытым исходным кодом позволяющий кластеризировать приложение и гибко распределять нагрузку между ядрами процессора. Многие используют его в своих продакшен решениях благодаря его возможностям, но в последнее вре…

  • вторник, 5 декабря 2023 г. в 00:00:15
github
go-gost / gost

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…

  • вторник, 5 декабря 2023 г. в 00:00:01
habrahabr
Проект «Селенит». Часть 3: Диапазонный полосовой фильтр

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

  • понедельник, 4 декабря 2023 г. в 00:00:24
habrahabr
Создаем I2C Master Controller на Verilog. Пишем HDL код

Закончив в предыдущей статье описание того, как должны осуществляться атомарные операции и каким образом осуществляется выполнение команд я бодро перешел к написанию HDL-кода. Пришлось разобраться с тем, как организовать FSM, как организовать считывание и выставление данных на шине.   Весь этот процесс перехода от идеи и результатов моделирования к написанию кода — я и хотел бы описать в данной статье.  Всем интересующимся — добро пожаловать под кат! =) Дисклеймер. Перед началом повествова…

  • понедельник, 4 декабря 2023 г. в 00:00:23