Навколо розробки
160 subscribers
47 photos
1 file
361 links
Привіт, мене звати Дмитро, колись я зробив цей канал щоб ділитися в ньому цікавинками та корисностями, частково це, сподіваюся, вдається
Download Telegram
Не знайомий з паном Євгенієм, але дуже класно і зрозуміло пише про повсякденні важливі речі, ось тут - приклад ситуації XY, яка, буває виникає при вирішенні робочих питань
XY problem

Час від часу зустрічаю ситуацію, коли хтось приходить з питанням як щось зробити без пояснення того яку проблему він чи вона намагається вирішити. Після двох-трьох уточнючих питань з’ясовується, що початкову проблему можна вирішити кардинально іншим шляхом. В такого типу питань є навіть загальноприйнята назва XY Problem:

The XY problem is asking about your attempted solution rather than your actual problem

Помічати такі питання за собою і за іншими, це одна з soft-skill навичок, яку можна легко опанувати не виходячи з дому.

Далі вигаданий приклад діалогу з таким питанням:

— як зробити декілька паралельних запитів в react-query?
— […поснює як це зробити…]. А для чого тобі це?
— у мене є API, щоб дістати інфо про користувача і мені треба для кожного повідомлення на форумі показати телефон автора цього повідомлення.
— давай краще в API, яке повертає список повідомлень, додамо потрібні тобі поля і тоді тобі взагалі не треба буде робити паралельні запити. Тим паче, що ми вже так повертаємо імʼя автора.
— точно! піду зроблю це на бекенді!
Channel name was changed to «Навколо розробки»
Всім привіт! Якщо ви хочете щось намалювати в ретро стилі, чи зробити таку собі презентацію наче як з кінця 80-х минулого сторіччя (або ще кучу всього), ось додаток: https://internet-janitor.itch.io/decker
Трішки поклацав - інтерфейс як на маку 1984 року, результат - також ніби як з того самого маку, однозначно в букмарки, буде чекати свого часу;)
Чи є щось спільне у вашого інтернет браузера з мушкою дрозофілою?
Виявляється, що так - блум фільтр, який дозволяє відповісти чи можливо елемент є у колекції, чи він точно не в колекції. Браузер може використовувати такий фільтр для того, щоб перевіряти веб адреси, чи вони у списку зловмисницьких. Якщо можлива небезпека - то ще виконає запит кудись за уточненням. А мушка дрозофіла за допомогою блум фільтра знає точно, що якийсь запах для неї точно новий, а якийсь - вона уже мабуть зустрічала раніше.

Дуже коротке і зрозуміле пояснення концепції блум фільтру з візуалізацією тут: https://www.jasondavies.com/bloomfilter/
Про мушку тут: https://www.pnas.org/doi/10.1073/pnas.1814448115
За цим посиланням, https://clig.dev/ - шикарний та доволі стислий посібник по побудові інтерфейсів командного рядка. Класно, що перша частина - принципи (Philosophy of command line interfaces), а друга - безпосередньо практичні поради (Guidelines). Дуже багато посилань на інші джерела якщо хочеться ще більше зануритися в історію та деталі.
Збережу тут, в нагоді точно стане рано чи пізно🤗
Дуже сильно грубо кажучи, сучасна програмна інженерія - це або про інтенсивні обчислення, або про інтенсивну роботу з даними (а поміж цими екстрмумами - суміш одного з другим у різних пропорціях та ще й з суміжними дисциплінами комп'ютерних наук, але ключовим частіше за все як раз є або дані, або обчислення).
І от якщо ви хочете робити інженерію даних, яка зараз у тренді та дуже актуальна, то ось вам шалена підбірка ресурсів - https://github.com/DataEngineer-io/data-engineer-handbook.
Тут перелічені книжки, спільноти, ютюб канали, розсилки, лінкедіни, телеграм канали, твіттер, інстаграми і тіктоки (дожилися🙄), наведені посилання на компанії, курси та сертифікації що стосуються інженерії даних. Можна знайти на будь-який смак та потребу. В мене тільки одне питання до сучасного світу - коли це все встигати просто продивитися🤯, там книжок тільки з півтора десятки!
Ось тут за посиланням (https://www.inngest.com/blog/python-errors-as-values) коротенький текст, який узагальнює кілька підходів до обробки помилок в Python:
1) класичний спосіб, коли функція піднімає помилку і перериває потік виконання
2) спосіб як у Go, коли значення, яке повертає функція - завжди кортеж, де можлива помилка - останній елемент
def get_user(user_id: str) -> tuple[User | None, Exception | None]
3) спосіб як у Rust, коли функція повертає обʼєкт обгортку. Навіть бібліотека для цього є - https://github.com/rustedpy/result, та й виглядає симпатично
def get_user(user_id: str) -> result.Result[User, Exception]
4) підхід запропонований авторами - повертати юніон результату та помилки:
def get_user(user_id: str) -> User | Exception


До першого підходу, доволі класичного, більшість звикла, це найбільш популярний варіант , 2 і 3 підходи - концептуально дуже подібні, та, в принципі, часом зустрічаються в Python додатках.

Четвертий варіант - цікавий. Юніони - це популярно, але в іншому вигляді. Звичне та розповсюджене використання юніона це
def get_user(user_id: str) -> User | None
що тотожно опціональному типу, коли функція повертає результат, який може бути None типом.
Повертати помилку в юніоні - виглядає більш гнучко та інформативно, при цьому не так багатослівно як з кортежами і обгортками, проте функція не тільки інформує, що обʼєкт не знайдено, але ще й підказує чому. І це без try/except=) Що ж, це ще одна опція, тож маємо варіанти на будь-який смак;)
По ділу сказано:)
На днях Rust-ентузіасти у лиці команди Astral Software написали у своєму блозі про uv, черговий інструмент для екосистеми Python, написаний на Rust - https://astral.sh/blog/uv
Якщо коротко - прирости швидкості у визначенні та встановленні залежностей колосальні (від 7 до 115 разів!)
Як то водиться, поки що uv у стадії розробки, і для ваших важливих речей краще користуватися перевіреними рішеннями, в котрих фокус на стабільності та сумісності (я про умовний pip).
Але - у Astral Sofrware амбіційні цілі, роудмап та, начебто, непогано все поки виходить, тому можна стежити та (можливо) експериментувати в очікуванні нових версій uv та інших корисностей.
Якщо матимете 20 хвилин на вихідних - ось цікава стаття про зліт і падіння операційної системи os/2, і, заодно, про взаємовідносини між Microsoft та IBM:
https://arstechnica.com/information-technology/2019/11/half-an-operating-system-the-triumph-and-tragedy-of-os2/
🙂
ByteByteGo-Big-Archive-System-Design-2023.pdf
60.2 MB
Доволі відомий автор, що пише про дизайн систем, Alex Xu в свому пості на linkedin написав, що безкоштовно віддає The Big Archive for System Design - 2023 Edition (PDF)
Всередині наступні теми:
🔹 Netflix's Tech Stack
🔹 Top 5 common ways to improve API performance
🔹 Linux boot Process Explained
🔹 CAP, BASE, SOLID, KISS, What do these acronyms mean?
🔹 Explaining JSON Web Token (JWT) to a 10 year old Kid
🔹 Explaining 8 Popular Network Protocols in 1 Diagram
🔹 Top 5 Software Architectural Patterns
🔹 OAuth 2.0 Flows
🔹 What does API gateway do?
🔹 Linux file system explained
🔹 18 Key Design Patterns Every Developer Should Know
🔹 Best ways to test system functionality
🔹 Top 6 Load Balancing Algorithms
🔹 Top 12 Tips for API Security
🔹 𝐀𝐧𝐝 100+ 𝐦𝐨𝐫𝐞

Забрав собі і ділюся з вами
Хтось тут є, хто не грав в doom або принаймні не чув про цю канонічну гру? Тривалий час в тренді було запускати «думчик» на всьому підряд - на калькуляторах Texas Instruments, смарт-годинниках та навіть на якихось побутових приладах. А от нещодавно дослідники з Гуглу та університету Тель-Авіву змогли за допомогою AI моделі згенерувати ігрове відео, фактично - запустили doom на моделі AI:) На жаль, це поки що не повноцінна симуляція ігрового рушія, але дуже впевнена спроба. Якщо так далі піде, то через N років ви будете грати в 3d гру, яку вам на ходу буде промальовувати яка-небудь нейронна мережа у фотографічній якості.
В Arstechnica про це написали, і підібрали доволі цікавий заголовок. Посилання нижче, всім вдало закінчити тиждень і гарних вихідних!
https://arstechnica.com/information-technology/2024/08/new-ai-model-can-hallucinate-a-game-of-1993s-doom-in-real-time
Якщо не пробували copilot, то ось як раз хороша нагода - тепер він безкоштовний для VS Code, все, що потрібно - акаунт на github. Варто спробувати - чудес не очікуйте, але в цілому розраховуйте на непогану доповнювалку-підказувалку
https://code.visualstudio.com/blogs/2024/12/18/free-github-copilot
AI не забере роботу інженерів з розробки програмного забезпечення, будемо сподіватися🙂
https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/
Давненько не писав сюди, тож сподіваюся у всіх все гаразд!
На днях натрапив на новину про Notepad у Windows - тепер в ньому з’являться функції форматування тексту, і можливість використання ШІ. Але цікаве інше - як базовий додаток однієї з найрозповсюдженіших операційних систем фактично конкурує з нашим улюбленим Grammarly. Так, тепер прямо в блокноті, наприклад, можна обрати стиль і тон тексту (ну круто ж) - а це було однією з ключових фіч Grammarly. Що будуть робити в компанії, які наступні кроки щоб втриматися в еру LLM? Побачимо, може вони вдало використають той 1 млрд доларів, який ось недавно залучили у якості фінансування.

Новина від Тома Воррена:
https://www.theverge.com/news/677474/microsoft-windows-notepad-bold-italic-text-formatting-markdown-support