Альфа-код
153 subscribers
156 photos
18 videos
4 files
182 links
Канал с мемами об IT и всё такое :) Ссылка на канал: https://t.me/alfa_code

Мой блог:
https://t.me/sidredin_blog
Download Telegram
Как я его, hа
👍1👎1🤣1
👾Самое время собрать свою команду из IT-акул: Открыта регистрация на самый масштабный онлайн-хакатон в мире!

💸 40 млн рублей призового фонда:
— 1 млн рублей — для тех, кто займёт первое место
— 600 тысяч — второе
— 400 тысяч — третье

💼 20 актуальных задач от ведущих компаний страны: Газпромбанк.Тех, VK Tech, Kaspersky, АФЛТ-Системс (Группа «Аэрофлот»), Союзмультфильм, Авито, Итэлма.

14 дней на разработку решений

Принять участие могут:
✔️ граждане РФ и других стран от 18 лет
✔️ специализация: Front / Back / FullStack, Web-разработчика, UX / UI дизайнеры, Product / Project-менеджеры, Data Scientists, Data Engineers, аналитики и другие специалисты
✔️ местоположение — неважно, всё проходит онлайн

Других ограничений нет!

📅 Успейте зарегистрироваться до 18 сентября!

Регистрация по ссылке 👉🏻 https://i.moscow/lct?utm_source=sp&utm_medium=social&utm_campaign=iosgr/?erid=2VtzqvskcDx

📲 А больше новостей и подробностей — на нашем канале, подписывайтесь: https://t.me/leaders_hack
1👎1
Не плачь мама, что твой сын без работы. Пусть плачут те, чьи сыновья крутят опыт

(По мотивам статусов из "Одноклассников" и ВК)
👍41👎1🤣1
👎1😁1
Альфа-код
Photo
Скайнет пока отменяется

P.S.: Скрин не мой
👎1
👎1
"SQLite - это буквально база данных в одном файле. Но нет, давайте лучше сожжем 2ГБ оперативной памяти и запустим контейнер PostgreSQL только для того, чтобы хранить наш список покупок"

Люблю такие мемы. Когда делаю пет-проект, почему-то тоже сразу начинаю с постгре. Лучше упрощать максимально разработку MVP. Как Pieter Levels, который делает свои проекты на php и jquery - вот его статья о том, как он делает MVP
👍3👎1
Мы с ним как друзья в том фильме
🤣4👎1
И где-то рядом обязательно лежит .sql дамп с паролем от рута 😬

Типичный 🥸 Сисадмин
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2
Пхпшники, без негатива!

Я и сам из ваших
👎2
Точнее, из наших. Что-то я запутался, короче
👎2
😁3👎2
Про вайбкодинг. Основано на реальных событиях
🤣6👎2
Forwarded from Evgeniy Kuvshinov (Evgeniy Kuvshinov)
Всем привет! Давно не общались. Хочу объяснить причины долгого затишья и поделиться планами на будущее.

Почему было мало контента?
Последние несколько лет были посвящены трем большим жизненным проектам:

1. Семья: Рождение и воспитание двоих детей.
2. Дом: Полный цикл строительства своего дома (от земли до заселения). Пишу вам теперь из своего кабинета!
3. Работа: Карьерный рост до позиции Teamlead/TechLead/CTO, что отнимало все силы.

Совмещать это с ведением каналов было практически невозможно.

Что изменилось сейчас?
• Дети подросли и этот вопрос делигирован жене.
• Дом построен, есть даже отдельный кабинет.
• Я уволился, отдохнул и готов к новым вызовам.

Новые горизонты и идея для вас

Я возвращаюсь к созданию контента и хочу предложить вам поучаствовать в открытом некоммерческом проекте.

Идея: Совместными усилиями создать скелет фреймворка для построения API. Процесс разработки (планирование, код-ревью, митапы) я буду стримить на YouTube.

Зачем это вам?
• Получить реальный опыт работы в команде.
• Прокачать скиллы и добавить проект в портфолио.
• Принять участие в создание комманды с нуля и вместе набить шишек.

Ваше мнение?
Если вы готовы принять в этом участие и потратить свое время, поставьте, пожалуйста, ❤️ в ответ на это сообщение. Это поможет мне оценить интерес и подготовить детальный анонс.
Если вам интересна эта затея как зрителю то 👍

Спасибо, что вы со мной уже более 6 лет!
👎2👍1
🖥 UUID: Как создать уникальный ID без центрального сервера?

Начало 1980-х. Вы — разработчик в Apollo Computer. Ваша команда работает над NCS — одной из первых систем для распределённых вычислений.

Вам поручили решить важную проблему:

- У вас есть множество серверов в разных городах
- Каждый из них может регистрировать новых пользователей
- Каждому новому пользователю нужен уникальный ID во всей распределённой системе. Иначе при синхронизации или обращении по сети будет непонятно, о каком из них речь

На одной машине всё просто — даём каждому объекту порядковый номер: 1, 2, 3... Но если два сервера независимо дадут номер 1 своим объектам — получим коллизию

Начинаем думать.

————

Попытка 1: Центральный сервер со счётчиком

Самое очевидное решение — один сервер раздаёт ID всем остальным:

Машина A → Центр: "Дай ID"
Центр → Машина A: "Держи ID=1"

Машина B → Центр: "Дай ID"
Центр → Машина B: "Держи ID=2"


Выкатываем в прод. Работает идеально! Гарантированно уникальные ID, никаких коллизий.

Но через неделю начинаются проблемы:

- Центральный сервер упал — вся система встала
- Каждый запрос ID требует сетевого обращения — медленно
- При росте нагрузки центр становится узким местом

Для распределённой системы, где важна автономность узлов, это не подходит. Переделываем.

————

Попытка 2: Диапазоны для каждой машины

Хорошо, давайте заранее раздадим каждой машине свой диапазон ID:

Машина A: ID от 1 до 1,000,000
Машина B: ID от 1,000,001 до 2,000,000
Машина C: ID от 2,000,001 до 3,000,000


Это уже лучше — каждая машина действительно автономна!

Выкатываем. На первый взгляд работает.
Но потом выясняется:

- Машина A исчерпала свой диапазон, нужно запрашивать новый → опять зависимость от центра
- Машина B создала только 10 объектов из миллиона, остальные ID потрачены впустую
- Добавление новых машин требует центральной координации для выдачи диапазонов

Опять возвращаемся к центральной точке отказа. Это не то.

————

Попытка 3: Составные ключи

Может использовать комбинацию machine_id + local_counter?
Для machine_id можно взять MAC-адрес сетевой карты — он уникален глобально.

Машина A, объект 1: "A-1"
Машина A, объект 2: "A-2"
Машина B, объект 1: "B-1"


Это уже лучше — каждая машина действительно автономна!

Выкатываем.. И получаем пачку новых проблем:

- Машина перезагрузилась, забыла свой счётчик — получили коллизию ID
- На каждой машине нужно хранить своё состояние счётчика, это усложняет систему

Попытка 4: Время + ID машины

А что если вместо счётчика использовать текущее время?

timestamp + MAC-адрес

- Время монотонно растёт — коллизий на одной машине не будет
- MAC-адрес уникален глобально — коллизий между машинами не будет
- Не нужно хранить счётчик!

🟢Это уже очень близко к рабочему решению. Примерно так и работали ранние UID в Apollo

Но проблемы ещё остались: что если часы на машине сбросились? Или две операции произошли в одну микросекунду? На нагруженных системах это не редкость — при тысячах запросов в секунду коллизии по времени станут регулярным явлением.

————

Как же сложно! 😩
Вы сидите, смотрите на свои наброски и думаете: может проблема в самом подходе?

И тут к вам подходит коллега из команды криптографии 🎩

Вы излагаете ему свою боль, после чего он пожимает плечами и задумчиво произносит:

— Слушай, а зачем тебе гарантировать уникальность на 100%? Может, сделать вероятность коллизии настолько малой, что ей можно пренебречь?

...
...
???

Интересная мысль, давайте посчитаем!

Возьмём для ID 128 бит — это немного, в память влезет.

Сколько это вариантов?

2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456

Это 340 ундециллионов. Число настолько огромное, что его сложно осознать.

Коллега-математик, с которым вы ходите вместе обедать помогает с прочувствовать масштаб:

— Представь: 10 триллионов компьютеров (это больше, чем людей на Земле) генерируют по миллиарду UUID каждую секунду. Непрерывно. В течение 100 лет. Даже в этом сценарии мы истратим меньше одной миллионной доли всех возможных комбинаций.

Впечатляет! Но как быть с парадоксом дней рождения?
Обсудим это далее

#guide #uuid
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2
Курсор такой: Сам решууу
🤣4👎2
👎2
Выбор стратегии ветвления Git: анализ и практические рекомендации

Ваша команда тратит часы на разрешение конфликтов при слиянии веток? Или, может, вы только начинаете и не знаете, как организовать процесс? 🤨 Стратегия ветвления в Git — это не догма, а рабочий инструмент, и его выбор сильно влияет на скорость и качество разработки.

В свежей статье разбираем четыре основные стратегии:
• Git Flow — для строгого контроля версий
• GitHub Flow — для непрерывного развертывания
• GitLab Flow — разумный компромисс
• Trunk-Based Development — для зрелых команд с безупречной дисциплиной

Плюс практические критерии выбора: частота релизов, зрелость тестов, размер команды. Узнайте, какая модель снимет боль именно в вашем проекте.

🖥 Читать статью

📱 @dev_notes_ru

#Git #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1🤣1