Alex Code
142 subscribers
9 photos
19 links
Разработка, технологии, продукт, стартапы, управление и так далее
Download Telegram
Вчера 25 августа ОС Linux отметила очередной день рождения! 🥳

Поздравляем Линуса Торвальдса, всех активных и не очень участников Open Source сообщества и, конечно, нас с вами! 🎉
🎉10🔥3👍2
Python с JIT и настоящим параллелизмом

Этой осенью выйдет финальный релиз Python 3.13.
И он несёт в себе сразу две гигантские истории, о которых спорили многие годы, которые ждали десятилетия 🧙‍♂

В питон (здесь мы имеем ввиду реализацию именно CPython) наконец-то завезли встроенный JIT - just-in-time компилятор. Теперь наиболее востребованные участки кода могут компилироваться в машинный код под конкретную платформу и исполняться быстрее. Пока JIT не включен по умолчанию и требует специальной сборки питон и запуска с флагом --enable-experimental-jit. Разработчики говорят, что ещё есть какие-то минорные баги и прирост скорости не вау, но это первый шаг - в следующих версиях станет лучше.

Параллелизм - как много в этом слове 🚀 В питоне истинному параллельному исполнению кода (не путать с асинхронностью) в рамках разных потоков одного процесса всегда мешал GIL. Этот global interpreter lock даёт исполнять код только одному потоку, сколько бы у вас их не было. В версии 3.13 появляется возможность отключить GIL и больше никто не будет блокировать ваши многопоточные приложения. Опять таки изменение уж больно глобальное и включается не по умолчанию, а через отдельный бинарник - python3.13t.

Первый релиз кандидат Python 3.13 вышел уже 1 августа, так что можно пробовать и экспериментировать.

О других немаловажных изменениях можно почитать в Python 3.13 changelog.

До связи 🤟
👍7🔥3
Библиотека компонентов Mantine

Давно ничего из мира Frontend не обсуждали, а давайте сегодня

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

У всех в голове всплывает свой набор таких либ. У меня для React в голове возникают гиганты типа Material UI и Ant Design. Но не так давно я случайно наткнулся на Mantine.
Мне сразу приглянулся визуальный стиль - смотрю дальше 👀

Под капотом TypeScript 🦾, css-modules, активно используются CSS variables. Проект разбит на core и дополнительные пакеты - устанавливать можно только то, что действительно юзается в проекте.

Что еще есть - да почти все:
- темная / светлая тема и тотальная кастомизация цветов и темы в целом
- более обычных 100 компонент (кнопки, инпуты, селекты, слайдеры, табы, модалки и т.д.)
- Mantine UI - более 100 высокоуровневых компонент для быстрой сборки сайтов (карточки, карусели, готовые секции страниц, баннеры, комментарии и т.д.)
- Mantine Hooks - собственная библиотека различных хуков для реакт (use-media-query, use-clipboard и т.д.)
- Mantine Form - библиотека форм на хуках (c валидациями и прочими прелестями)
- Mantine Dates - все для работы с датами и временем на базе dayjs
- Mantine Charts - графики и диаграммы на базе recharts v2
- поддержка SSR с шаблонами для Next.js или Remix
- и даже встроенная поддержка право-левого интерфейса (RTL) есть!

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

Всем быстрой верстки!
До связи 🤟
👍12
Вот и прошел очередной 256-ой день в году, день программиста. Всех с праздником!

Такая молодая наша профессия уже успела внести неоценимый вклад в жизнь каждого:

🛜 Мы соединиили людей по всему миру благодаря интернету, email, соц. сетям и мессенджерам

🦾 На наших плечах зародились и выросли гигантские технологические компании, которые очень во многом определяют вектор развития всего человечества

🎮 На компьютерных играх, а так же коротких и длинных видосах выросли уже целые поколения

🧠 Наш неуёмный разум создает все более и более мощные системы ИИ, которые возможно очень скоро сыграют со всеми нами злую шутку...

Будем и дальше изменять мир к лучшем или просто творить just for fun!

До связи 🤟
🔥10🎉2👍1
Продолжаем активно искать к нам в команду толковых ребят с глубокими знаниями TypeScript и Node.js. Все основное под капотом собрано на картинке 👀

Вооружившись этим арсеналом, а так же слабоумием и отвагой разрабатываем суперапп для рынка Кафе & Ресторанов!

Подробнее на HH:
https://hh.ru/vacancy/106348216

Если интересно, то можно написать мне в личку - @a_s_rusakov.

До связи 🤟
🔥6👍1🤔1
Пагинация - основные способы и подводные камни

Пагинация — это метод разделения большого набора данных на порции. С точки зрения Frontend это всего лишь способ постранично вывести информацию. С точки зрения Backend пагинация скорее обязательна к использованию. Вместо передачи всего набора данных, сервер отправляет только малую часть, снижая нагрузку на БД и сеть, а так же улучшая общую пропускную способность и время отклика.

Если говорить о реализации, то выделяются 2 базовых способа:

1️⃣ Limit + Offset. Это самый распространенный метод пагинации, где используются параметры LIMIT и OFFSET из SQL-запросов (или аналоги из NoSQL БД). Например, SELECT * FROM users LIMIT 10 OFFSET 20 вернет 10 записей, начиная с 21-й. Этот подход очень прост в реализации. Основными недостатками являются: стремительное увеличение времени ответа с возрастание OFFSET и дублирование/пропуск части данных при их частом добавлении/удалении.

2️⃣ Курсорная пагинация, в которой обычно используется уникальный идентификатор последней полученной записи (курсор). Например, если сообщения в чате имеют строго возрастающие id, то запрос следующей порции сообщений получается через фильтрацию по id больше последнего загруженного (или меньше). Такой способ не начинает тормозить про отдаче 100500-ой страницы, а также стабильнее работает при частом создании/удалении данных.

Но дьявол кроется в деталях:

❗️При любом типе пагинации нельзя забывать про ограничения и дефолтное значение для параметра LIMIT. Без указания LIMIT многие БД будут отдавать все доступные данные... Чего вы явно не планируете для реально больших табличек 🤯

❗️Нельзя забывать про индексы в БД. Без индексов какую пагинацию не делай, а фильтрация и/или сортировка убьет любую скорость.

Используйте проверенные практики при реализации пагинации 🙏

До связи 🤟
👍6🔥4🤔1
Создатель Redis возвращется в проект!

Выложил на хабре перевод поста из блога Сальваторе Санфилиппо (оригинального автора in-memory db Redis). После 4.5 лет отсутствия Сальваторе решил вернуться к своему детищу и рассуждает о проблемах лицензирования, расколе в сообществе редис, нейронных сетят и LLM, RAG и векторном поиске и, конечно, о том, чем бы он мог быть полезен комьюнити и проекту в целом.

https://habr.com/ru/articles/878184/

Приятного чтения 😊
👍6🔥2🎉1
Переходим на Redis v8.0

Кажется, это первый за многие годы значимый релиз редиски! И вот почему:

История с лицензированием завершилась возвращением к "нормальной" Open Source лицензии - AGPLv3.

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

Наконец-то самые популярные доп. модули - такие как Search, Json, Bloom Filter - поставляются вместе с редисом из коробки. Это явный сдвиг парадигмы, в сторону более удобного и зрелого решения в духе "batteries included".

До связи 🤟
🔥8👍3🤯1