Диджитализируй! – Telegram
Диджитализируй!
27.6K subscribers
461 photos
55 videos
11 files
531 links
Авторский канал Алексея Голобурдина о разработке ИТ систем и прочем важном

ПРАВИЛА — https://news.1rj.ru/str/t0digital/200

ЛАЙВ-КАНАЛ — @smthisgoingon

Дать много деняк — sterx@rl6.ru

Роскомнадзор: https://vk.cc/cJmDDB
Download Telegram
Кстати, если кому интересно, что я сейчас использую в качестве VPN — сервер mvps.net, при оплате выбирается Paymentwall и дальше оплата с Qiwi, работают российские карты.

В качестве софта — Outline, о котором говорил здесь. Скорость — отличная.

PS. Сейчас Outline уже блокируют некоторые операторы.
Работает Marzban. На Хабре есть статья о его настройке, гуглите. Если статья перестанет открываться без VPN, можно открыть её в startpage.com в анонимном режиме. Ссылку на статью не прилагаю, чтобы ничего не нарушать. Гуглится легко.
👍122🔥166😁2
Готовлю материал о чистой архитектуре на примере Django-проекта. Если есть вопросы по этой теме, напишите в комментах, постараюсь отразить в видосе:)
👍300🔥89109😁3
Любители FastAPI обижаются, что я тут говорю о Django.

Любителям aiogram передаём привет!

Ребятушки, чистая архитектура (ЧА) это про отделение важного от неважного, бизнес-логики от деталей вроде фреймворка, хранилища, внешних API и прочего мракобесия. Что это значит? Это значит, что фреймворк в этом контексте не-ва-жен. Представляете, как оно? Удивительно, согласен.

Почему тогда Django? А потому что я хочу. Идите нахрен вообще. Вот я хочу и делаю. Нюхните бебру! 😇

Если будет время и желание потом, оставив реализацию бизнес-логики, заменю Django на Fastapi и/или на Flask, чтобы как раз показать эту концепцию независимости от фреймворка.

От Django в реализации ЧА будет использовано немного? Да. И чо? Можно внедрять ЧА на большом джанго-монолите, переписывая его наиболее важные части, чтобы улучшить гибкость системы, её поддерживаемость, расширяемость, тестируемость быстрыми тестами и тд.

Более того, можно часть проекта делать с использованием Django-механизмов, джанговых форм, DRF, да хоть чёрта лысого, а важную-сложную часть системы делать по ЧА. Ой, епта, это ломает ваш мозг? Ну так почитайте немного, познакомьтесь с тем, как оно вообще устроено, что есть интересного в мире (раз, два, etc). Как минимум — CQS, когда запросы на чтение пишутся примерно как угодно. Как максимум — тупые круды ноль смысла проводить по ЧА, геморроя много, толку мало. Здравый смысл, а не дрочево на то, что урывками прочитали где-то в интернетах.

Охххх!
Люблю вас
😁242👍12438🔥2010
This media is not supported in your browser
VIEW IN TELEGRAM
69👍46😁7🔥62
Опчки, великолепные друзья из ДМК сделали нам промокоды на чёрную тяпницу!

30% на бумагу
t0digital_Black Friday 2023

40% на PDF
t0digital_Black Friday 2023_PDF

Предвосхищая вопрос — да, пробел в промокоде:)

Я тут сейчас читаю на Amazon Kindle Scribe (сделаю обзор на неё) и в очередной раз кайфую от возможности читать PDF — они, во-первых, не занимают физическое место, а то чёт моё цундоку, боюсь, стеллаж сломает:), во-вторых, не надо ждать доставку или ехать самому, в-третьих, PDF часто дешевле, в-четвертых, буржуйские книги заказать с доставкой сейчас вообще неоправданно сложно, в-пятых, несколько книг на одной читалке с собой взять в поездку — легко. Ляпота.

Бумажные тоже люблю, конечно. Хорошие книги хочу, чтобы были в бумаге. Иногда даже по оформлению могу что-то купить, бывает:) Но айтишное нередко один раз прочёл-впитал и пошёл дальше, незачем иметь физический экземпляр.

Кстати, у Любановича, который автор Простого Python, тут по FastAPI книга вышла в Oreilly;)
🔥89👍405😁2
Запустил отдельный канал по ррум. Буду писать о проекте там. Это книжный ресурс для тех, кто читает или хочет начать читать. Сейчас есть дизайн сайта, а реализацию буду делать на курсе и показывать весь процесс там, после чего проект будет жить своей жизнью, расти и развиваться:)

«Книги, которые нас формируют»

Вжух!

@rroom_io
🔥123👍406😁1
Amazon Kindle Scribe — лучшая электронная книга за мои 15 лет опыта с читалками на eink. Экран 10.2" с 300ppi и подсветкой, удобнейшая работа с PDF-книгами, рукописные заметки, продуманные особенности дизайна и ПО, беспроводные возможности соединения с внешним миром. Но главное — distraction free. Красота!

YouTube | VK | RuTube
👍131🔥469😁3
Диджитализируй!
Amazon Kindle Scribe — лучшая электронная книга за мои 15 лет опыта с читалками на eink. Экран 10.2" с 300ppi и подсветкой, удобнейшая работа с PDF-книгами, рукописные заметки, продуманные особенности дизайна и ПО, беспроводные возможности соединения с внешним…
В комментариях всё одно — 50К за книгу это дорого, средняя ЗП в России полторы копейки (во всём виноват Вован), копить десятилетия, бессмысленная трата денег, пойду удавлюсь где моя веревка жена тащи мыло.

Охххх:)

Ну, во-первых. Вот циферки Росстата. Если набраться мужицкой силушки и их открыть, то можно с неприятным ощущением узнать (у таких комментаторов ощущение будет именно что неприятное), что, оказывается, средняя ЗП по стране в 3 квартале 2023 года — 70 639 руб. Это чуть-чуть больше, чем полторы копейки. Даже чуть-чуть больше, чем стоит читалка в минималке сейчас на авито, 30 тыс. Ну да, надо подкопить или найти дополнителный источник дохода, нормально.

За август 2023го:
— в зажравшейся Москве средняя ЗП — 122 329 руб;
— незажравшаяся Чукотка получает всего-навсего 141 412 руб;
— в нищем Ямало-Ненецком АО выживают на 140 715 руб;
— в Ненецком АО едят сухари с водой — 116 939 руб;
— на Камчатке бесплатно нюхают воздух — 121 514 руб;
— в Магаданской области грустно грустят — 118 851 руб.

Нет, ну да, разумеется, Росстат всё врёт, это понятно, кругом обман, а жизнь боль, одно счастье верёвочка и мыльце. Что надо считать медиану (и там непременно 1.5 копейки и получится, да). А еще я говорил о том, как заработать те же 50 тыс руб здесь. Вот прям пачку вариантов накидал. Для самых унылых нытиков.

Во-вторых. Книги для меня — это инструмент повышения дохода. Это актив. Это то, что делает меня ценнее и позволяет зарабатывать больше. У тебя есть телефон за 100К+, но читалка за 50К это дорого? Всё нормально там в логике, противоречий незаметно:)?

Один подписчик из Ботаним устроился недавно в Авито. Он, кстати, курс мой проходил еще старый, но сейчас не об этом. Спросил его, цитирую: «Вот скажи, интересно твое мнение - можно было нормально пройти эти собеседы, не читая книжек? То есть просто на своей практике, на статьях в инете?» Его ответ, если сократить — нет, нельзя, и дальше пачка пояснений, почему именно нельзя.

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

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

Смотрел недавно про московских рестораторов фильм Минаева и обратил внимание на то, как говорят эти люди — там в большинстве случаев речь, которая явно сформирована в том числе книгами. Словарный запас, обороты, ёмкость, точность речи и тд. Это книги.

Есть такое мнение (по-моему, от Гоблина — значит, можете ему не доверять, кому он не нравится, мне пофик), что в Америке люди с большим доходом и бедняки говорят по-разному. То есть речь это яркий показатель дохода человека. Я думаю, что и у нас этот показатель работает, возможно, в меньшей степени, но тоже работает.

У Билла Гейтса есть раздел с книгами на его личном сайте, вот прям самая заметная ссылка в шапке, Books. И email-подписка, в которой он пишет о книгах. В духе «My recommendations for the holidays» — и 4 или 5 книг. Так чисто, на holidays почитать.

Большинство в широком смысле успешных людей читает. Неважно, считаете ли вы это занятие бестолковым, а траты на книги бессмысленными, или нет. Снег белый, зимой холодно. Как-то так. Это одна из целей @rroom_io — показать это. Будем работать:)
👍414🔥53😁362310
А вы знали, что pip requirements может быть вложенным? То есть один файл зависимостей для прода, второй для тестов и тестовый включает в себя зависимости прода и добавляет свои (pytest и прочие ништяки).

prod.txt содержит главные пакеты.

dev.txt это перечень пакетов для среды разработки, он включает всё, что есть в проде плюс в данном примере pytest:

-r prod.txt
pytest
Вжух!
👍194🔥50😁108🎉2
Какой сервис транзакционных email-писем вы используете? Отправлять письма с паролями, спасибами и прочим таким. Чёт unione пригрустил:)
11👍4
Кстати, мы тут сейчас поднимаем продакшн нашей LMS (готовим курс к запуску) и гоняем по сети всякие ключи-пароли и прочую конфиденциальную информулечку.

Чтобы ниггадяи её не спёрли, шифруем её с GPG. Ыыы!

Про GPG у меня был видос здесь. Если коротенько, это open source утилита шифрования и подписи данных. Ты генерируешь с GPG постоянную пару — приватный ключ и публичный ключ, твой собеседник генерит свою пару, и вы обмениваетесь публичными ключами (и только публичными, приватные остаются у вас). Информация шифруется публичным ключом собеседника и может быть расшифрована только с его приватным ключом.

И никакой коварный Павлентий не получит доступа к вашим данным!

После установки GPG — на докер-контейнер с Debian поставился с apt install gpg — генерим пару ключей:

gpg --gen-key

Указываем имя, email и пароль. По мейлу будет идентифицироваться эта пара ключей. Для примера, указали, alexey@yandex.ru.

Экспорт своего публичного ключа, чтобы отправить его собеседнику:

gpg --export --armor --output alexey.pub alexey@yandex.ru

В файле alexey.pub сохранился наш публичный ключ, который передаём собеседнику. Импорт публичного ключа собеседника из файла sergey.pub происходит так:

gpg --import sergey.pub

И всёёёё! И понеслась!

Зашифровать файл my-secret-information.txt ключом собеседника:

gpg --encrypt --sign -r sergey@yandex.ru my-secret-information.txt

Появится файл my-secret-information.txt.gpg — это и есть зашифрованный файл. Отправляем его собеседнику и он расшифровывает его командой:

gpg my-secret-information.txt.gpg

Вжух!
👍239🔥6212😁7
Давайте рассмотрим некоторые абстрактные поинты.

1) Врать в резюме — ништяк

2) Врать работодателям и делать свою работу за 2 часа в день, чтобы иметь возможность остальное время работать на другой работе или гонять лысого — ништяк

3) Менять работодателей хоть каждую неделю для роста ЗП — ништяк

Работают ли такие подходы? Пф, конечно. Вообще работает много интересных подходов.

Можно брать в долг и не отдавать. То есть устроился на работу в компанию, прозанимался у коллег и свалил в другую компанию, сливаясь от вопросов. Профит.

Можно тырить запчасти у рабочих ноутов или скрепки с рабочих столов.

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

Можно продавать конкурентам секреты со своей текущей работы.

Можно без палева хантить коллег в компанию конкурентов и зарабатывать на этом.

Можно... Да много чо можно. Гипотетически.

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

Приятно верить в то, что можно обустроить свою жизнь легко. Наврать в резюме, обмануть тут, там. Капитализм, не мы такие и так далее. Такой взгляд легко продаётся. Продать то, что для долгосрочного стабильного и большого успеха нужны соооовсем другие подходы, куда менее соблазнительные — сильно тяжелее.

Think about it!

https://youtu.be/4CJRM7j9qbM
👍21720😁168🔥4
Важно прислушиваться к мнению зрителей!
😁601🔥56👍1710🎉6
А вот у нас есть же здесь великолепные специялисты из всяких хороших компаний, расскажите мне-бурундуку, пжалста, а с чем связано в альфа-банке, в яндексе и в ряде других компаний ограничение на используемые в пароле спецсимволы? Вот восклицательный знак, видите ли, можно в пароле использовать, а вопросительный — нннет.

Чем меньше разных символов в пароле, тем он безопаснее, да?

Новоизобретённая криптография от супер-решателей алгоритмических задач поддерживает только восклицательный, но никак не вопросительный знак?

Вопросы собстна всё те же
😁112👍122
Если вдруг кто-то не знает, то получить текущую дату с таймзоной в Python уже давно (с 3.9) можно без pytz со стандартной либой:

from datetime import datetime
from zoneinfo import ZoneInfo

now = datetime.now(ZoneInfo("Europe/Moscow"))


Ляпота!
👍30343🔥2515😁7
Аааа вот в гошечке, вот в гошечке:) Пакет работы со временем вообще кайф.

Вот, например, измерение времени между двумя точками:

package main

import (
"fmt"
"time"
)

func main() {
start_time := time.Now()
sum := 0
for i:=0; i < 1_000_000; i++ {
sum++
}
fmt.Printf("прошло времени: %v", time.Since(start_time))
// прошло времени: 734.209µs

time.Sleep(1 * time.Microsecond)
}


Ы, каков! Обрати внимание на наличие в стандартной либе time.Since и его форматирование при выводе в строку — сразу красиво, не надо высчитывать нули самому сидеть. Или как интервалы задаются, через константы вроде time.Microsecond. Вах-вах.

И, конечно, это ещё не говоря о чисто-гошных приколдесах в духе select + time.After для ограничения максимального времени работы корутины. Хитры бобры!

Да, этот декабрь в Ботаним — месяц Go:) А в конце декабря стартуем DDD Хононова.
👍120🔥2410😁31
Ловите лайфхакушку.

Как гласят старцы, в питоне циклические импорты это косяк недоразумение, которое сигнализирует чаще всего о проблеме в коде — если два модуля импортируют друг друга, то надо подумать, кто виноват почему так случилось и кого бить как этого избежать (если 2 модуля так сильно связаны, то почему бы не сколбасить их в один модуль, например?).

Однако иногда импорт в одном из модулей нужен только для type hints и это не всегда сигнализирует о проблеме. Ну, кроме того, что код не работает из-за циклического импорта:)

Тогда тот модуль из двух, который импортирует зависимости только для типизации (class_a.py), можно написать так (class_b.py тут это второй модуль):

# class_a.py
from typing import TYPE_CHECKING

if TYPE_CHECKING:
from class_b import ClassB

class ClassA:
some_b_instance: "ClassB"

# class_b.py
from class_a import ClassA

class ClassB:
pass


Вот эта магическая константа TYPE_CHECKING принимает значение True только когда этот код проверяется тайп-чекером вроде mypy или pyright. В рантайме она False. И обратите внимание, что в type hint ClassB обёрнут в строку. Оборачивание в строку можно убрать, если добавить импорт from __future__ import annotations.

И так всё работает по красоте. Вжух!
👍199🔥363313😁7
tinypng — отличный быстрый бесплатный веб-сервис, жмущий PNG, JPG и WebP-изображения, значительно уменьшая их размер.

О способах сделать это кодом я рассказывал здесь и здесь, но если надо просто пожать картинку для, скажем, блога, чтобы загружалось быстрее — tinypng отлично подходит.
🔥67👍277😁2
Перевожу тут материалы курса из Notion в Obsidian и подключаю git. Удивился, что git из коробки на маке не умеет нормально отображать кириллические имена файлов. Чтобы это пофиксить, достаточно выполнить команду:

git config --global core.quotePath false


Кстати, да, на скрине видно название курса. Это будет МЯСО😂
🔥162👍42😁16116