Диджитализируй!
27.5K subscribers
476 photos
57 videos
11 files
539 links
Авторский канал Алексея Голобурдина о разработке ИТ систем и прочем важном

ПРАВИЛА — https://t.me/t0digital/200

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

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

Роскомнадзор: https://vk.cc/cJmDDB
Download Telegram
Если вдруг кто-то не знает, то получить текущую дату с таймзоной в 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.

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

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

git config --global core.quotePath false


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

Вот вам глава «Углублённый Python» курса по питону одной большой компании!

Как создавать функции и классы и работать с list, set, dict — это вам не хрен моржовый, а углублённый Python😂

А что тогда неуглубленный, такой вот, поверхностный Python, что в него входит? print и всё?

Чёт как-то я не удивлен, что с такими углублёнными познаниями на собеседы-то не зовут негодяйские эйчары:)))
😁292👍43🔥1676
Forwarded from IT-Helpers 🧠
Меня всегда радовал в человеке дух предпринимательства. Я считаю что за людьми, которые постоянно хотят создавать что-то новое - будущее!

Бытует мнение, что "предпринимательская жилка" есть не у многих, я этот тезис не разделяю. Я считаю, что если человек достиг определенного уровня в своём деле - это "дело" можно смело превращать в бизнес.

В этом мое мнение сходится с автором канала Диджитализируй, Алексеем. Мы поговорили и подняли различные вопросы в сфере ИТ и не только.

Приятного просмотра:

https://youtu.be/CPKlILIYLw8

@IT_Helpers
👍10320😁5🔥4
Листаю тут книжку по инфобезу. Забавное примечание:)

ПРИМЕЧАНИЕ. Если вы пишете или переписываете низкоуровневое приложение с нуля, всегда выбирайте язык Rust вместо С или С++. Rust — это новый язык программирования, который может выполнять низкоуровневые задачи так же хорошо, как С и С++, но, в отличие от них, Rust безопасен по памяти. Таким образом, при использовании этого языка проверка границ больше не потребуется, а переполнение переменных для создания потенциальных уязвимостей становится невозможным. По мнению создателя браузера Mozilla (Firefox), 73% уязвимостей только в стилевом компоненте браузера никогда бы не возникли, если бы он был написан на Rust, а не на С/С++. Даже одно это проектное решение может очень сильно сократить поверхность атаки, что сводит на нет все приемлемые деловые аргументы, которые могли бы оправдать написание новых приложений на С, когда доступен Rust. «Но мы умеем программировать на С» является недопустимой причиной не изучать и не использовать Rust.
🔥212😁79👍49196
Оказываецца, в Safari-плагине vim-раскладки (Vimari) можно листать вкладки с w и q. Вот. Как-то я недавно узнал, а до этого негодовал, что gt и gT не работают, как в хромовском Vimium.
👍62😁13🔥542
А чтоооо это у нас тут под ёлочкой, а это «Хардкорная веб-разработка» зарелизилась!

Все, кто ждал курс. Ребята, девушки, я с вами:) Курс вышел. Мне хотелось успеть до праздников, чтобы вы могли на выходных начать его проходить. Запускаемся.

Видео о курсе

41 глава и 798 уроков. Записаны пока не все главы, курс будет пополняться, но возможно и вместе с этим дорожать, текущая цена 100 тысяч рублей.

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

Посмотрите видео о курсе и если готовы — залетайте!
🔥262🎉85👍57177
В хлопотах тут упустил, что Диджтализируй удостоен награды «Золотой Соер 2024»! Юхууу, вот это да!

Большое спасибо всем, кто голосовал и большое спасибо Соеру! По такому поводу надо нам надо бахнуть совместный подкаст:)
164🎉125🔥31👍21😁6
This media is not supported in your browser
VIEW IN TELEGRAM
Телеграм работает всё лучше, всё надёжней, Павлентий докручивает, оптимизирует, фигачит и днём, и ночью, всегда фигачит, только когда бицуху качает, тогда не фигачит, а так всегда фигачит!

ЗЫ. Реакции то есть, то нет — верхний элемент попапа.
😁161👍3295🎉2
Хм. И действительно?!
😁587👍4229🎉20🥰5
Диджитализируй!
Телеграм работает всё лучше, всё надёжней, Павлентий докручивает, оптимизирует, фигачит и днём, и ночью, всегда фигачит, только когда бицуху качает, тогда не фигачит, а так всегда фигачит! ЗЫ. Реакции то есть, то нет — верхний элемент попапа.
Нууу и вот и ладненько, нууу и вот и что же ж тут поделать, ну вылезло малость, щас Павлентий протеин доест и всё поправит, может быть, однажды, хотя и так сойдёт-то, чего ж уж!

CSS is awesome! Нативный клиент телеграмушки:)
😁170👍145🔥5🥰2
Media is too big
VIEW IN TELEGRAM
DDD = ♥️
но это неточно

А завтра в Ботаним стартуем «Командная строка Linux» Шоттса!
😁124🔥22👍11🥰54
Диджитализируй!
Кстати, Fleet на Kotlin, то есть на JVM = Java Virtual Machine. Вот что S0ER пишет по поводу джавы, и я-таки с ним солидарен:) Я собстна не топлю за Fleet, просто тема зашла. Так-то вот я Zed жду, интересно потыкать. Helix интересен. А работаю в nvim.
Оооо, zed заопенсорсили!

https://zed.dev/blog/zed-is-now-open-source

Кто не в курсе — это редактор, которого я очень жду. Его делают те, кто делал Atom и Tree-sitter — на Rust и с приоритетом на максимальную отзывчивость и скорость. Вот прям новый редактор и вот прям без унылого электрона, представляете?

А какие тексты на сайте? «Когда вы перемещаете курсор или вводите символ, вы должны видеть пиксели при следующем обновлении дисплея — каждый раз. Даже небольшие паузы накапливаются в течение дня и создают ненужный стресс.»

А? А? Каково?

Последний раз тыкал его осенью 2022го. Пошёл смотреть, как там оно сейчас!
👍159🔥5914😁42
Forwarded from neovich
Забавно читать комменты от плюсовиков, что unsafe-Раст ничем не отличается от Плюсов.
В младших классах школы у нас были уроки природоведения и учительница использовала их для научпопа. Однажды она рассказала нам, что есть люди без нервов и они совсем не чувствуют боли. Нам сразу захотелось стать такими людьми, но учительница нас вразумила — люди, не чувствующие боли, долго не живут, потому что не знают, что у него рука находится в кипятке, нога неестественно вывернута и сейчас сломается, а голова давно уже отрублена.
Нервная система и боль защищают человека от тупых необдуманных действий.
Так вот, Плюсы — это язык без нервной системы. На Плюсах можно творить что угодно — прыгнуть в смертельный кульбит с переломом позвоночника, нарезать руку по кусочкам, засунуть голову в микроволновку, предварительно запихав кучу вилок в одно место. Плюсы об этом даже не пикнут. Плюсы — это динозавр, пожирающий свой хвост и балдеющий от этого увлекательного процесса.
Раст язык нового поколения, это первый язык с нервной системой, здесь при любом опасном шевелении Раст начинает орать, что так делать низзя!
И тут выходит плюсовик на сцену и заявляет, что он на Расте сможет засунуть член в мясорубку и прокрутить в фарш.
И действительно, всё это эффектно исполняет на публику, обколовшись предварительно с ног до головы unsafe-блоками.
Да, на Расте можно самоубиться. Но в отличии от Плюсов: 1. Ты будешь об этом знать. 2. Ты будешь целенаправленно этого хотеть.
👍386😁139🔥1049🥰6
Кто поставил оба компонента Спутника, у того интернет работает!
😁389🔥5028👍114