gram news
Hello World channel avatar

Hello World

@hw_code

Be so good that you cannot be ignored. And then, go one step beyond.

ProjectsENProgramming

1,539subscribers

Open the Channel

Latest posts

  • Hello World

    27 Jan 2025, 19:19

    Image from a post by Hello WorldImage from a post by Hello WorldImage from a post by Hello World
    8,5708532Open in Telegram
  • Hello World

    11 Sept 2024, 20:32

    https://nixos.org
    nixos.orgNix & NixOS | Declarative builds and deploymentsNix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative and reliable systems.
    9,53031111Open in Telegram
  • Hello World

    11 Sept 2024, 17:08edited

    докер и микросервисы это залупа конченая, а фирмы которые это используют просто страдают “shiny new framework syndrome”.Change my mind.
    Image from a post by Hello WorldImage from a post by Hello World
    9,340239221Open in Telegram
  • Hello World

    29 Aug 2024, 14:26

    Мда, если даже здесь всё не так однозначно... Ладно, вот вам ещё один спорный тезис. Кто-то в обсуждениях заметил, что некоторые программерские инструменты будто бы специально сделаны сложными в использовании. Например, те же СУБД (почему-то не люблю это слово).
    7,750411Open in Telegram
  • Hello World

    29 Aug 2024, 14:25

    Мда, если даже здесь всё не так однозначно... Ладно, вот вам ещё один спорный тезис. Кто-то в обсуждениях заметил, что некоторые программерские инструменты будто бы специально сделаны сложными в использовании. Например, те же СУБД (почему-то не люблю это слово). Postgres — это, конечно, мощно, но если у вас тоже возникал вопрос: почему бы не использовать MySQL или даже sqlite, то вы не одиноки. На примере того же Левелса можно отметить, что его сервера выдерживают большой наплыв пользователей, несмотря на использование самых простых инструментов, таких как sqlite. Я, честно говоря, вообще не уверен знает ли он, что есть асинхронная обработка реквестов и т.д. (интересно, как оно на пыхе там?).Можно долго спорить, но у каждого инструмента есть свои причины для использования. Если ваш проект используют всего трое человек (вы и ещё два фаундера), возможно, не стоит стремиться "сделать всё
    7,050921Open in Telegram
  • Hello World

    28 Aug 2024, 21:12

    4,880poll6Open in Telegram
  • Hello World

    28 Aug 2024, 21:11

    Я в последнее время часто сижу в Твиттере. Там собралась большая техническая тусовка: люди постоянно создают новые проекты и стартапы, зарабатывают деньги и делятся опытом. После выхода того самого интервью с Лексом Фридманом и Питером Левелсом (ну про Фридмана-то вы наверняка слышали?), там активно обсуждают, нужно ли действительно "вылизывать" свои приложения, делать тесты и писать код "как надо", а не как хочется. Питер высказывался о том, что все эти TDD, Vercel, крутые базы данных и прочее — не так уж и важны. Он буквально на коленке создал вирусные AI-проекты, которые приносят огромные деньги. Инди-хакеры тут же подхватили эту идею и начали постить, мол, да, надо пушить в продакшен сразу, тесты не нужны, вообще всё не нужно — хочу и пушу говнокод прямо в мастер. "Что вы мне сделаете?" Поэтому мне интересно, что вы думаете по этому поводу:
    Image from a post by Hello WorldImage from a post by Hello World
  • Hello World

    15 Aug 2024, 09:29

    Вот бывает такая фигня, работаешь в своем бранче, никого не трогаешь, но тут надо тесты писать. Написал, запускаешь nox, показывает что coverage 99% где то в совсем другой части проекта, никак не связанной с твоим кодом. Начинаешь вопрошать мол как оно попало
    Image from a post by Hello WorldImage from a post by Hello World
  • Hello World

    13 Aug 2024, 08:41

    В каком то из давних интервью меня попросили предсказать вывод следующего Python-кода:class A: passclass B: value = 1class C: value = 3class D(A, B, C): def __str__(self): return str(self.value)print(D())Эту проблему на тот момент я не мог решить, но я ее запомнил и вернулся к ней только недавно. Ключ к решению этой задачи лежит в понимании т.н. Method Resolution Order (MRO) в Python. MRO определяет порядок, в котором происходит поиск базовых классов при обращении к методу или атрибуту.💡 В данном случае D наследуется от A, B и C. Но когда мы печатаем D(), атрибут value берётся из класса B! Почему?
    3,81014611Open in Telegram
  • Hello World

    8 Aug 2024, 14:15

    Вот бывает такая фигня, работаешь в своем бранче, никого не трогаешь, но тут надо тесты писать. Написал, запускаешь nox, показывает что coverage 99% где то в совсем другой части проекта, никак не связанной с твоим кодом. Начинаешь вопрошать мол как оно попало в master? Стягиваешь master, запускаешь nox и показывает зеленый билд... Меняешь бранч, показывает что проблема все таки есть. Снова в master обратно, и уже и там показывает что все плохо. Но ведь это все уже в мастере, вот как так? А github actions который у нас там подвязан в CI/CD тоже показывает зеленый билд 🥲Я эти тесты на одном месте крутил. Особенно если их писал не я. Это конечно не часто случается, но когда проект содержит десятки тыщ строк кода, может случиться и такое.
    3,200533Open in Telegram
  • Hello World

    30 Jul 2024, 14:27

    Наконец то норм фронтэнд на питоне? А мне только недавно зашел Next.js...https://x.com/jeremyphoward/status/1818036923304456492https://fastht.mlНадо попробовать на досуге.
    fastht.mlFastHTMLModern web applications in pure Python
    3,3908211Open in Telegram
  • Hello World

    15 Jun 2024, 09:12

    ща из калифорнийской комы выползу...
    Image from a post by Hello WorldImage from a post by Hello World
    3,77015321Open in Telegram
  • Hello World

    23 Feb 2024, 19:35edited

    🚀 Привет! Давненько не заглядывал к вам сюда, дел было много, как всегда. Недавно наткнулся в твиттере на обсуждение Groq. Парень там хвалит эту штуку, говорит, что у него время респонса офигенное, и в целом не уступает даже ChatGPT. А я решил спроектировать клиент для использования их API, и самое крутое – без необходимости закрытого ключа!Хотя pylint, правда, решил подкинуть мне немного головной боли и отказывается работать. Видимо, я мог пропустить мелкий косяк где-то. Хотя вроде бы все работает без нареканий.Если интересно, вот ссылка на мой проект: GitHub - Dartrisen/groq
    GitHubGitHub - Dartrisen/groq: groq clientgroq client. Contribute to Dartrisen/groq development by creating an account on GitHub.
    4,27092Open in Telegram
  • Hello World

    31 Dec 2023, 21:02

    Хотел чет еще вкинуть по логгированию или юнит тестам, но увы не успел. Итоги подводить не буду, сами для себя думаю уже все это сделали. Так что, без лишний предисловий, с нг. 🥳
    6,84016Open in Telegram
  • Hello World

    18 Dec 2023, 10:01

    Ну и напоследок еще один немаловажный момент, связанный с датаклассами. Иногда нам в таком классе нужна чисто классовая переменная (сори за масло масляное, cls var). Рассмотрим на примере с датаклассами и без.Создание переменной классаБез датакласса мы бы написали такclass User: cvar: float = 0.5def __init__(self, user_id: int, name: str) -> None: self.user_id = user_id self.name = nameИспользуя датакласс мы бы написали такfrom typing import ClassVar@dataclass class User: cvar: ClassVar[float] = 0.5
    7,43032Open in Telegram
  • Hello World

    17 Dec 2023, 19:53

    Дрочим датаклассы v 2.0 💅💅Приветствую, дорогие читатели! Ваш любимый шизоид снова выходит на связь. В этом посте мы закончим разбирать датаклассы (надеюсь). В прошлом посте я не осветил такой интересный вопрос, как "зачем же все-таки они нужны?". Поясняю: вам необходимо создавать датаклассы в первую очередь для хранения и управления данными (как и следует из их названия). Либо, если вы хотите упростить себе задачу и писать меньше кода, воспользовавшись автоматической генерацией некоторых методов: __init__, __repr__, etc.У нас в проектах это много где используется, в основном для упрощения управления и хранения различного рода данных.Исключение аргументов из __init__Рассмотрим пример, когда нам нужно убрать аргумент из инициализатора, например user_id, который нам должен генерироваться автоматически. Для этого в аргумент добавим init=False.import randomdef my_super_ultra_id_
    2,79011421Open in Telegram
  • Hello World

    16 Dec 2023, 14:45

    Недавно наткнулся на целый пак интересных репозиториев.https://github.com/codecrafters-io/build-your-own-x#build-your-own-3d-rendererWhat I cannot create, I do not understand — Richard Feynman.Данная цитата отлично отражает суть данных репо. Самый лучший способ разобраться в чем-то, это написать свою версию этого "чего-то".Тут собрано множество отлично написанных гайдов, как с нуля создать множество различных технологий. Я например нашел там концепт имитации докера, написанный на питоне:https://github.com/tonybaloney/mockerКроме того, там есть много других языков и фишек, от написания своих баз данных, до написания OC или компилятора.@hw_code
    GitHubGitHub - codecrafters-io/build-your-own-x: Master programming by recreating your favorite technologies from scratch.Master programming by recreating your favorite technologies from scratch. - codecrafters-io/build-your-own-x
    2,37015Open in Telegram
  • Hello World

    13 Dec 2023, 20:15

  • Channel photo updated

    13 Dec 2023, 19:49

  • Hello World

    13 Dec 2023, 19:04edited

    Дрочим датаклассы 💅🏻Долго мучился с вопросом, что делать с длинными постами. Не вижу смысла писать короткие примеры типа "почему плохо совать [] в дефолтный аргумент в функции". За годы тут я выработал отвращение к повторяющимся скучным постам в блогах, бесконечным вопросам в комментах вроде "бро, контент будет? или снова репост старого поста?" и т.д. Хорошо, что в тг теперь можно использовать нормальный inline code markdown. Поэтому здесь я заканчиваю предисловие, и мы начинаем.Зачем нужны датаклассы?Базовая фишка датаклассов - красивое представление объекта при выводе через print. Например, класс User:class User: def __init__(self, user_id: int, name: str) -> None: self.user_id = user_id self.name = nameuser = User(user_id=1111, name="@hw_code") print(user) на экран вылезет что-то в духе: <__main__.User object at 0x0000021492214BD0> Таким образом, нет необходимости писать
    2,7303491Open in Telegram