Bite the Byte

Description
Соловйов здорової людини!

🌐solovyov.net
🐦twitter.com/asolovyov
🔴youtube.com/asolovyov

Архів каналу: solovyov.net/channel

Без реклами
Advertising
We recommend to visit

Здесь пишу ИСКЛЮЧИТЕЛЬНО своё мнение.

Для связи - [email protected]

Бот для связи только по координатам - @Rus_ni_peace_da_bot

Сообщить о воздушной цели - @Yug_mopedi_bot

Я НИКОГДА НЕ ПИШУ ВАМ В ЛИЧКУ В ТЕЛЕГРАМЕ

Last updated 6 days, 16 hours ago

Цікаві, крінжові, смішні та подекуди лякаючі новини з усього світу.

Свій контент присилайте сюди - @boze_yake_konchene_bot

Співпраця — @vadym_toba

Last updated 1 month ago

Офіційний канал головного редактора Цензор.Нет Юрія Бутусова

YouTube: youtube.com/c/БутусовПлюс

Стати спонсором:
https://www.youtube.com/channel/UCg7T647ROSeONOCHeNMBduQ/

Twitter: https://twitter.com/UButusov

Надіслати контент:
@feedbutusovplus_bot

Last updated 2 days, 8 hours ago

2 months, 2 weeks ago

Вчора прогулювався по вулиці і натрапив на випуск “Опівночних Балачок” про Golang Madness, про те, як в Го погано. Я люблю пнути Го як і будь-який інший свідомий не-луддит (вибачте, панове гограмісти, ви самі обрали своє життя), але… претензії якось такі поверхневі, що я образився за мову.

Чесне слово, fmt - погане скорочення? Ви взагалі C бачили? Чи очікуєте від старих сішників (буквально старих, наймолодшому із лідів проєкта — Робу Пайку — на момент релізу було 55 років), що вони почнуть давати назви на кшталт SingletonBuilderFactory та beginGeneratingDeviceOrientationNotifications? Чи може ти просто любиш Пайтон, який прям “золота середина”, за .format(), що не помічаєш import sys? 😁

Короч, більшість претензій рівня “в пайтоні індентація впливає на виконання” або “в ліспах скобка перед назвою функції”, дуже поверхнево. Соромно, пацани! І трохи смішно за переживання, що масив — обмеженої довжини. А як інакше, якщо ти хоч бути ефективною не-високорівневою мовою програмування?

Ладно, за згадку про абсолютно тупий підхід до форматування дат — не соромно. Я пам’ятаю в мене був іспанський сором за цю херню ще коли я перший раз з кимось Го обговорював в 2010 році, і нікуди воно не поділося. Замість використати сішну %d.%m.%y або джавну dd.MM.yy, вони вигадали нову неймовірну схему із використанням реальної дати як приклада (Jan 1 03:04:05 2006 GMT+7). Про це можна сказати дві речі: по-перше, використання реальних даних як мови для опису даних - відстій. Помилися в тих даних і напиши там 2024 — і не помітиш, і всюди буде 2024. По-друге, це теж поверхнева проблема, тому що strftime є як ліба і все, забудь про свої проблеми.

От спосіб хендлити помилки нікуди не дівся і він досі абсолютно кончаний. Погано в ньому і те, що if err ≠ nil захламляє код, і те, що він абсолютно неструктурний: errors.New(string) приймає рядок, який потім шо, як в коді визначити, яка це саме помилка? Так, ти сам собі можеш організувати структурні помилки, але в бібліотеках, які ти використовуєш, їх не буде, бо це не системна тема, і знач треба шо, в рядок дивитися? Як гограмісти вирішують як хендлити помилку — я не знаю. В джаві є різні типи в помилок, в кложі кожна помилка — несе структуровані дані, всі інструменти для роботи з цим є. Го? такоє…

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

Короч, те що конкаренсі в Го дуже легко робиться — це плюс, на відміну від інших мов — змушує всіх навчитися цим користуватися. Те, як воно зроблене, і те, що нічого ніхто не змінює і не покращує — це мінус. Ви можете спитати, а де краще? В Джаві краще, авжеж, всі ці ThreadPoolExecutor’и — це і є структурна конкаренсі. Писать не дуже зручно, трохи багатословно, але для того і придумали Кложу, щоб JVM було приємніше користуватися.

Висновки які взагалі? Го — прекрасна мова для написання невеликих програм, де не треба особливої бізнес-логіки, бо вона губиться за всіма if err'ами: консольні утіліти там, якісь невеличкі мікросервіси тощо. А для серйозної роботи є Clojure. ☝️

2 months, 2 weeks ago

Дірява телега

Телеграм ламають як дурний. Приходить тобі лінка від когось з контактів “проголосуй за мою донечку” чи ще якась лабудень, клацаєш — і в тебе крадуть аккаунт. Викидають всі твої сесії, і навіть якщо ти логінишся з підтвердженням телефону — телеграм вважає, що сессія нова і не дає викинути взломщиків. А вони через секунду-другу, схоже, в циклі перевіряють, які є сесії, і викидають тебе. Дочекатися поки твоя сессія “подорослішає” не виходить.

А через кілька днів, напевно коли вони всім твоїм контактам відправлять спаму, вони забивають на цей акаунт, то можна залогінитися, дочекатися “дорослішання” і викинуть їх сесію.

Фантастичний юзкейс, правда? Телеграм, очевидно, робить з цим абсолютно нічого — сапорта ніякого нема, зробити нічого не можливо, твій акаунт не твій і взагалі йди в дупу. Встановлення пароля, я так розумію, допомагає від цього, але хто з людей, які клацають на раптову “проголосуй” його встановив?.. Хоча я оце думаю, що я б на якийсь bitly без передперегляду і з описом “блін, заціни шо постгрес творить” і сам би натиснув без проблем 🤣

Що в цій всій історії цікаво — це власне як вони акаунт крадуть? Я не розумію, яким чином натиснення на посилання дозволяє забрати акаунт в телеграмі? Ну це якось тупо, що це взагалі можливо? Візьміть може та й закрийте цю діру?

Ладно б це було щось супер-нове, так ні ж, кілька місяців вже відбувається. Пане Павєл, ну що за бардак у вас тут? 🙄

3 months, 1 week ago
3 months, 3 weeks ago

Прочитав кльову статтю про величезні преси, супер-цікаво. Історія про те, як німцям прийшлося робити преси на 20000 тон тиску і більше, через це в них були кращі можливості будувати літачки. А коли США після війни витратили майже 4 млрд доларів (в теперішніх грошах) на програму по їх побудові, вони одразу окупилися на здешевінні при виробництві B-52.

Більше того, пишуть, що якби не такі неймовірні преси (а вони висотою по кілька десятків метрів), то літаків із баками в крилах просто фізично не було б.

А тема продовжилася, коли Тесла замість збирання підрамників побудувала собі гіга-машину для відливання цілого підрамника за раз — економлячі на цьому купу грошей.

Короч, цікава стаття. І змушує в черговий раз задуматися, як же ж заплетена (будь-яка) індустрія — уряд (ну, військові) США ледве вмовив компанії будувати ці преси, бо боялися, що не буде достатньо попиту.

3 months, 3 weeks ago

Лок-файли (yarn.lock, poetry.lock тощо) виглядають такою зайвою ідеєю, просто не можу змиритися з їх існуванням. Треба оновити пакет, редагую package.json, пишу туди ”@slack/web\-api”: “^6.12.1”, відправляю на CI, все здихає. Здихає, авжеж, бо там yarn \-\-frozen\-lockfile використовується, тобто типу “не оновлюй локфайл під час CI”. Логічно, логічно.

Не логічно тільки те, що він існує. Чому жаба змогла 20 років назад просто написати версії в pom.xml, а всі інші не змогли і тепер придумують файли з версіями залежностей поруч з файлом з приблизними версіями залежностей? Всі ці системи (жс, пайтон, го як мінімум) з’явилися після Мавена, що їм заважало просто вивчити prior art?

Ладно .deb стрьомний всередині, так він перший був, фактично — і RPM вже значно простіший, об’єктивно: вочевидь люди вчилися одне в одного. А з системами залежностей в програмувані якийсь кошмар. Не знаю, чи новий підхід до пайтона (маю на увазі uv etc) виправить ситуацію, бо вона найгірша з усіх… але не заздрю всім користувачам поцоватих рішень (десятиріччями поцоватих, доречі, ось що вражає).

P.S. Всіх хто не вважає що існування лок-файлу — тупня, оголошую носіями стокгольмського синдрому. 😁

4 months, 1 week ago
4 months, 2 weeks ago

Додивився подкаст Марка Андрісена і Бена Горовіца про створення графічного браузера (Mosaic, а потім Netscape) — я в принципі непогано знаю цю історію загалом, але деталі прям ну дуже цікаві, рекомендую. :) Але кілька моментів ретроспективно взагалі не очевидні.

Всі браузери на початку, в тому числі і перший, Тіма Бернерса-Лі (хоч і був створений на NeXTcube — який коштував $8k, тобто $19k в сучасних грошах), були текстовими: комп’ютери повільні, доступ в інтернет і того повільніший. Марк в той же момент працював в NCSA, де суперкомп’ютери і робочі станції SGI ($50k+ в грошах 92 року), і який був одним з головних вузлів інтернету — і там здавалося, що все стане швидким і графічним, і тому вони могли ментально собі дозволити робити графічний браузер. Я інтернет вперше побачив в середині 90-х, і це був IE 3, і тому lynx (який з’явився ще у 92, тобто до Мозаїки) здавався своєрідним жартом. 😁

Після універу — де створення браузеру було причиною прогулювати пари — Марк, як і всі нормальні люди, знайшов собі роботу і пішов програмувати. :) Знайшов, додавши оголошення, що шукає роботу, в About Мозаїки. 🤣 Трохи пізніше завдяки цьому оголошенню його познайомили з Джимом Кларком — якого якраз видавили із SGI. А Джим, я так думаю, шукав, як би вже купити яхту. 😁

Ідея створити комерційний браузер взагалі не була очевидною. Вони (Джим та Марк) спочатку рахували онлайн відео, потім думали зробити онлайн-сервіс для Нінтендо, потім ще якусь хрінь. Тобто думали над прикладними речами, не над інфраструктурою — але воно вочевидь не складалося, бо інфраструктура ще не була готова.

MSIE почався як ліцензія браузера компанії Spyglass, який, в свою чергу, почався як ліцензія NCSA Mosaic. Марк в подкасті кілька разів згадує відкритість Мозаїки, але це ж початок 90-х, опенсорс ще не дуже розвинений був, тому насправді це була пропрієтарна програма з опублікованим кодом. Вікіпедія ще каже, що Spyglass написали все з нуля, бо Мозаїку писали дикі студенти, її версії для різних ОС мали різний код і не завжди були сумісні, і взагалі. :)

Короч, цікава історія, все могло піти зовсім не тим шляхом.

We recommend to visit

Здесь пишу ИСКЛЮЧИТЕЛЬНО своё мнение.

Для связи - [email protected]

Бот для связи только по координатам - @Rus_ni_peace_da_bot

Сообщить о воздушной цели - @Yug_mopedi_bot

Я НИКОГДА НЕ ПИШУ ВАМ В ЛИЧКУ В ТЕЛЕГРАМЕ

Last updated 6 days, 16 hours ago

Цікаві, крінжові, смішні та подекуди лякаючі новини з усього світу.

Свій контент присилайте сюди - @boze_yake_konchene_bot

Співпраця — @vadym_toba

Last updated 1 month ago

Офіційний канал головного редактора Цензор.Нет Юрія Бутусова

YouTube: youtube.com/c/БутусовПлюс

Стати спонсором:
https://www.youtube.com/channel/UCg7T647ROSeONOCHeNMBduQ/

Twitter: https://twitter.com/UButusov

Надіслати контент:
@feedbutusovplus_bot

Last updated 2 days, 8 hours ago