habrahabr
Ускорение роутера в Django в 51 раз

История началась с разбора использования ресурсов приложением, которое занимается проксированием. Обнаружили, что довольно много времени оно тратит на выбор маршрута (роута), и решили ускорить этот процесс. Описанная в статье оптимизация не требует каких-то особых вложений, усилий или условий, поэтому приведенный код можно забрать к себе и использовать без каких-либо чрезмерных вмешательств.РоутерКаждый раз, когда в приложение приходит очередной запрос, оно берёт в руки URL запроса (и иногда HT…

  • четверг, 20 июня 2024 г. в 00:00:16
habrahabr
Тест светодиодных ламп «Ваше Сиятельство»

Екатеринбургская компания «Энергомикс», прославившаяся выпуском батареек с немного провокационным называнием «Тест на правду», выпустила лампочки с не менее необычным названием «Ваше Сиятельство» и слоганом «Светодиодная лампа с честными характеристиками». Я протестировал и изучил все 24 модели лампочек этого бренда. В презентации этих ламп утверждается, что все характеристики на коробке полностью соответствуют реальным, используется IC-драйвер, а также то, что светодиоды нагружены на 80%.…

  • четверг, 20 июня 2024 г. в 00:00:14
habrahabr
Как мы создавали AmneziaFree, и боролись с интернет-цензурой в разных странах

Всем привет! На связи команда Amnezia. И если вы давно за нами следите, вы помните как мы были очень маленьким стартапом, который делал первые шаги по созданию более менее современного приложения с open source кодом, чтобы создавать VPN на собственном сервере. Мы понимали что подобное решение нужно, но еще не понимали на сколько нужно и что именно мы будем делать дальше.AmneziaFree.  НачалоНаверное, мы бы и дальше  оставались просто разработчиками self-hosted клиента, если бы не массовая блокир…

  • четверг, 20 июня 2024 г. в 00:00:13
habrahabr
Работа программистом в Германии: как пережить испытательный срок

Живу в Германии, работаю программистом в местной компании и хочу рассказать об одном из самых сложных и напряженных - по крайней мере, субъективно, - этапов работы - испытательном сроке (нем. Probezeit), о его особенностях, как формальных, так и неформальных и об отличие от российских реалий, с которыми мне довелось сталкиваться. Одним словом, если вы еще никогда не проходили испытательный срок на позиции разработчика junior'a, будь-то в Германии, России или какой либо другой стране, то это…

  • четверг, 20 июня 2024 г. в 00:00:12
golang
Ускоряем sync.Map на 73% за 40 строк кода

Данный способ - это всего лишь спортивный эксперимент, накиданный под вечер на коленке с целью что-нибудь исследовать.Задача была написать аналог sync.Map максимально приближенный по производительности к оригиналу, спортивного интереса ради.Давайте сразу к коду и бенчмаркам:package main import ( "hash/fnv" "sync" ) type bucket struct { data sync.Map } type FastSyncMap struct { buckets []*bucket } func NewSyncMap(bucketCount int) *FastSyncMap { buckets := make([]*bucket,…

  • четверг, 20 июня 2024 г. в 00:00:11
javascript
ng-container

ng-container в Ангулар - это структурная директива в Angular, которая позволяет создавать группы элементов без добавления дополнительного узла в DOM. Это полезно, когда нужно применить директиву или использовать условные конструкции или циклы *ngFor для группы элементов, но при этом не добавлять лишних тегов в разметку.ng-container не является компонентом и не создает своего собственного экземпляра, поэтому к нему не получится доступ через ViewChild или ContentChild. Он просто действует как ко…

  • четверг, 20 июня 2024 г. в 00:00:09
javascript
Новые методы появятся в Set JavaScript

Привет всем! Я Кирилл Мыльников, frontend разработчик компании Usetech. Сегодня хочу поделиться информацией о новых методах, которые скоро появятся в коллекции Set в JavaScript.Set был добавлен в стандарте ES2015, но всегда казался немного ограниченным. Работать с ним можно было только через добавление, удаление и проверку наличия элементов. Однако, при работе с несколькими коллекциями или сравнении их, приходилось писать дополнительные функции. Но теперь нам готовят новые методы, которые значи…

  • четверг, 20 июня 2024 г. в 00:00:08
javascript
Мощь AST в действии, или как переписать код 10 летней давности на ES6-модули и ничего не сломать

Всем привет! Меня зовут Кирилл и я работаю фронтенд-разработчиком. Я расскажу о том, как мы перевели несколько тысяч файлов, написанных на JavaScript, с легаси кода, который использовал goog.module, на новые ES6-модули с помощью построения и преобразования абстрактного синтаксического дерева.Эта статья будет полезна тем, у кого тоже возникла потребность в рефакторинге большого количества кода.Причины, почему мы решили переводить нашу кодовую базуВ нашем проекте мы используем Google Closure Libr…

  • четверг, 20 июня 2024 г. в 00:00:08
github
tencentmusic / supersonic

SuperSonic is the next-generation BI platform that integrates Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms.中文介绍 | Docs SuperSonic SuperSonic is the next-generation BI platform that integrates Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms. This integration ensures that Chat BI has access to the same curated and governed semantic data models as traditional BI. Furthermore, the implementation of both paradigms benefits from the in…

  • четверг, 20 июня 2024 г. в 00:00:06