Путь Fullstack
16 subscribers
114 photos
3 videos
6 files
50 links
Download Telegram
Еба. Взял первое место. Видимо не зря несколько бессонных ночей прошли.
Но я немного слил на презентации и документации, но блин я их сегодня ночью делал.
Короче ваще супер, прям кайф. Но нужно мне проект дорабатывать, а то на районе я солью, а я хочу победы.

У меня есть запись с моей презентации. Чуть позже ее сюда скину. А сейчас СОН, ура!
❗️Гайд по Python для гигачадов❗️

Если вы используете Python, то бывают случаи когда вам нужно держать несколько версий.

Для таких случаев существуют различные утилиты. Я использую pyenv. Он простой и кроссплатформенный.

Установка:
Windows (pyenv-win):
1. PowerShell (от админа): Разрешите выполнение скриптов:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

2. Установка: Выполните команду:
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

3. Переменные окружения: Проверьте, что пути к .pyenv\pyenv-win\bin и .pyenv\pyenv-win\shims добавлены в ваш PATH и находятся выше путей стандартного Python.

Arch Linux:
1. Установка:
sudo pacman -S pyenv

2. Настройка: Добавьте в конец ~/.bashrc (или ~/.zshrc для Zsh)
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

3. Применение: Перезапустите терминал или выполните source ~/.bashrc

Ubuntu / Debian:
1. Зависимости: Обязательно установите пакеты для сборки Python:
sudo apt update && sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

2. Установка: curl https://pyenv.run | bash
3. Настройка: Добавьте те же строки, что и для Arch, в ваш конфиг shell (~/.bashrc).

Работа с pyenv:
Список доступных версий для установки:
pyenv install --list
Установка конкретной версии:
pyenv install 3.12.12
Список уже установленных версий:
pyenv versions (текущая отмечена звездочкой *)
Установка глобальной версии (для всей системы пользователя):
pyenv global 3.12.1
Установка локальной версии (только для текущей папки/проекта):
pyenv local 3.11.5 — создаст файл .python-version в папке.
Проверка текущей активной версии:
python --version или pyenv version

Это позволяет быстро переключаться между версиями Python или устанавливать их для каждого проекта индивидуально!
В общем гайс. Сейчас у меня очень плотный график, стараюсь делать как можно больше годноты.
Еще мы тут с ребятами сделали вот такого бота для теста знаний по Python. Покликать его можно здесь.

Хочу добавить что бот еще в бетке. И функционал не дописан до конца, но уже активно его дорабатываем.
Так же приглашаю вас в чат по Python, где мы обсуждаем много интересного и делимся своим опытом.
Короче... Хз зачем но я опять всю ночь делал какую-то херню.
На этот раз любители Arknights Endfield оценят.
Вашему вниманию: Первый русскоязычный сайт для отслеживания круток в Arknights Endfield «endfieldpass.site»

А теперь реклама:
Переведён на множество языков, в отличие от конкурентов, имеет ускоренную обработку круток. Удобный, интуитивно понятный интерфейс. Простота в использовании: скопировал -› вставил. Поддержка сохранений в гугл и Яндекс драйв. Наглядность, и умные алгоритмы подсчета. Огромные планы на расширение. Полный open-source

И это всё я сделал за 1 ночь...
Крч крутая штука, пользуйтесь и распространяйте endfieldpass.site
1👍1🔥1
Вот думаю как его распространять... Мб залить на форумы типа реддита / хабр?
Все. Залил. Жду оценок в комментариях (если они вообще будут). Пофиксил кучу багов. Доделал, улучшил пулл круток. Добавил импорт ОРУЖЕЙКИ (первый в сообществе, и я этим горжусь😁). Очень сильно улучшил визуал. Вообще соска получилась

https://endfieldpass.site/
🔥1
Хз. Мб из архива историй обновлений превратить этот канал в чуть-чуть большее. Попробую новую рубрику. Гайды
🧨 Почему dict.get() иногда хуже, чем KeyError
user.get("name") как тихий убийца логики

Многие пишут так:

name = user.get("name")


И думают: *«кайф, код не упадёт»*.
Ага. Не упадёт. Он тихо сломает смысл, и ты узнаешь об этом уже в проде, по крикам пользователей.

---

🤔 Что делает get()?

dict.get(key) возвращает:

- значение, если ключ есть
- None, если ключа нет (или твой default)

То есть вместо нормального сигнала “данных нет” ты получаешь валидное значение (None), которое дальше спокойно течёт по коду.

---

🐞 Пример скрытого бага

def greet(user):
name = user.get("name")
return f"Привет, {name}!"


Если "name" отсутствует, получаем:

> Привет, None!

И это даже не ошибка. Это просто позор.

А если дальше ожидается строка:

name = user.get("name")
print(name.strip().title())


Получишь:

> AttributeError: 'NoneType' object has no attribute 'strip'

И самое мерзкое: упадёт не там, где причина, а там, где уже поздно и больно.

---

❗️Почему это опасно

1️⃣ Логика ломается молча
2️⃣ Тесты могут не поймать, потому что None иногда “прокатывает”
3️⃣ Появляются фантомные состояния (“пользователь без имени”, хотя такого быть не должно)
4️⃣ Баг превращается в лотерею: то работает, то нет

---

Как правильно?

🔹 Если ключ обязателен, пусть падает сразу

name = user["name"]  # KeyError = быстро и честно


🔹 Если ключ необязателен, укажи осознанный default

name = user.get("name", "Unknown")


🔹 Если `None` может быть реальным значением, `get()` подставит тебя
Нужно различать “нет ключа” и “значение None”:

_sentinel = object()

name = user.get("name", _sentinel)
if name is _sentinel:
raise KeyError("Missing 'name'")


---

📌 Итог
get() это не “безопасность”. Это отложенная ошибка.

- обязательное поле → user["key"]
- необязательное → get(..., default)
- важно отличать “нет ключа” от None → sentinel
Блять ну че за уебки сидят в яндекс. Просто конченные твари.

Пытался прикрутить яндекс диск. Сначала все было нормально, потом перестала работать синхронизация с диском (2 скрин). Потом они затребовали подтвердить акк через гос услуги. И вроде бы ничего сложного. Только блять нихера у них не работает. С гос услуг вылетает хз какая ошибка. А с сервиса что невалидный токен (он бл правильный).

Я пишу в поддержку. А они мне "Ситуация сложная, подожди 3 часа". И конечно же всем похуй прошло уже 14 часов, всем похуй.

И вот как бл тут нормально с диском коннектиться. Я уже и у gpt спросил и что только не делал. Ничего не получается, а мне даже не говорят почему.

Крч мораль такова: Яндекс - контора пидорасов, минус реп
Ладно. А теперь к хорошим новостям. Сейчас я заливаю новое обновление. И чтобы никто не воспользовался "побитой" версией я добавил вот такую плашку. Круто да? (кто этим вообще пользуется..)
1👍1🔥1
Все крч залито по красоте. Таймер истечет ровно в 4 утра, тогда все само откроется. А я спать пошел
В общем сейчас я буду занят полноценно CyberDeck, сдача уже скоро так что нужно поторопиться.

Что касаемо EndfieldPass. Скорее всего он закроется, т.к времени на разработку нет, есть достаточно много сильных конкурентов, и нет рекламы. Он до конца оплаты хостинга просуществует, но дико сомневаюсь что буду продлевать. Оплачен до 09.03.2026, так что пока есть можете пользоваться если кому то нужен (очень сомневаюсь)
🔥1
Ура. Я сделал новый проект. И это статистика репозиториев на гитхабе. Ранее я уже делал гайд на статистику профиля и другую херню, но они к сожалению оба закрылись. Но сейчас я написал оригинальную проверку репозиториев.

https://github.com/Overl1te/Repo-Inspector
Что он делает? Сканирует репозиторий и проверяет соотвествует ли он стандартам качества github, и на основании этого выносит обьективную оценку. Помимо этого он так же выдает простую статистику языков, звезд, форков и тд. Я приложил скрины, можете с ними ознакомиться.

И самое главное, конечно же это динамичные svg доступные по api. Я повзаимствовал технологию у github-readme-stats.
Кстати, я добавил к нему генератор этих svg, они получились очень гибкими.

Описывать весь его функционал можно очень долго, лучше сами ознакомьтесь https://github.com/Overl1te/Repo-Inspector.

Немного о технической части. Сайт хостится на github pages и имеет встроенную проверку и генератор: https://overl1te.github.io/Repo-Inspector/
А api я повесил на vercel (кстати очень просто, удобно и быстро): https://repo-inspector.vercel.app/ (выдает 404, т.к это чисто бэк)
Все это грамотно связал и добавил github actions.

Сейчас буду форсить эту шнягу на хабре (ну пытаться). И жду ваших оценок)

Фоточки:
5🔥1