Здесь пишу ИСКЛЮЧИТЕЛЬНО своё мнение.
Для связи - [email protected]
Бот для связи только по координатам - @Rus_ni_peace_da_bot
Сообщить о воздушной цели - @Yug_mopedi_bot
Я НИКОГДА НЕ ПИШУ ВАМ В ЛИЧКУ В ТЕЛЕГРАМЕ
Last updated 2 days, 12 hours ago
Цікаві, крінжові, смішні та подекуди лякаючі новини з усього світу.
Свій контент присилайте сюди - @boze_yake_konchene_bot
Співпраця — @vadym_toba
Last updated 23 hours ago
Єдиний офіційний канал Птахів Мадяра в Telegram. Канал за кляту війну.
Командир 414 окремого полку ОПУБАС ЗСУ Птахи Мадяра 🇺🇦
Банківські реквізити:
t.me/robert_magyar/12
#Мадяр
💬 МАДЯР🇺🇦Chat: t.me/+peIRQHgJijtjYWQy
Last updated 1 week, 2 days 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. ☝️
Дірява телега
Телеграм ламають як дурний. Приходить тобі лінка від когось з контактів “проголосуй за мою донечку” чи ще якась лабудень, клацаєш — і в тебе крадуть аккаунт. Викидають всі твої сесії, і навіть якщо ти логінишся з підтвердженням телефону — телеграм вважає, що сессія нова і не дає викинути взломщиків. А вони через секунду-другу, схоже, в циклі перевіряють, які є сесії, і викидають тебе. Дочекатися поки твоя сессія “подорослішає” не виходить.
А через кілька днів, напевно коли вони всім твоїм контактам відправлять спаму, вони забивають на цей акаунт, то можна залогінитися, дочекатися “дорослішання” і викинуть їх сесію.
Фантастичний юзкейс, правда? Телеграм, очевидно, робить з цим абсолютно нічого — сапорта ніякого нема, зробити нічого не можливо, твій акаунт не твій і взагалі йди в дупу. Встановлення пароля, я так розумію, допомагає від цього, але хто з людей, які клацають на раптову “проголосуй” його встановив?.. Хоча я оце думаю, що я б на якийсь bitly без передперегляду і з описом “блін, заціни шо постгрес творить” і сам би натиснув без проблем 🤣
Що в цій всій історії цікаво — це власне як вони акаунт крадуть? Я не розумію, яким чином натиснення на посилання дозволяє забрати акаунт в телеграмі? Ну це якось тупо, що це взагалі можливо? Візьміть може та й закрийте цю діру?
Ладно б це було щось супер-нове, так ні ж, кілька місяців вже відбувається. Пане Павєл, ну що за бардак у вас тут? 🙄
Прочитав кльову статтю про величезні преси, супер-цікаво. Історія про те, як німцям прийшлося робити преси на 20000 тон тиску і більше, через це в них були кращі можливості будувати літачки. А коли США після війни витратили майже 4 млрд доларів (в теперішніх грошах) на програму по їх побудові, вони одразу окупилися на здешевінні при виробництві B-52.
Більше того, пишуть, що якби не такі неймовірні преси (а вони висотою по кілька десятків метрів), то літаків із баками в крилах просто фізично не було б.
А тема продовжилася, коли Тесла замість збирання підрамників побудувала собі гіга-машину для відливання цілого підрамника за раз — економлячі на цьому купу грошей.
Короч, цікава стаття. І змушує в черговий раз задуматися, як же ж заплетена (будь-яка) індустрія — уряд (ну, військові) США ледве вмовив компанії будувати ці преси, бо боялися, що не буде достатньо попиту.
Лок-файли (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. Всіх хто не вважає що існування лок-файлу — тупня, оголошую носіями стокгольмського синдрому. 😁
Додивився подкаст Марка Андрісена і Бена Горовіца про створення графічного браузера (Mosaic, а потім Netscape) — я в принципі непогано знаю цю історію загалом, але деталі прям ну дуже цікаві, рекомендую. :) Але кілька моментів ретроспективно взагалі не очевидні.
Всі браузери на початку, в тому числі і перший, Тіма Бернерса-Лі (хоч і був створений на NeXTcube — який коштував $8k, тобто $19k в сучасних грошах), були текстовими: комп’ютери повільні, доступ в інтернет і того повільніший. Марк в той же момент працював в NCSA, де суперкомп’ютери і робочі станції SGI ($50k+ в грошах 92 року), і який був одним з головних вузлів інтернету — і там здавалося, що все стане швидким і графічним, і тому вони могли ментально собі дозволити робити графічний браузер. Я інтернет вперше побачив в середині 90-х, і це був IE 3, і тому lynx (який з’явився ще у 92, тобто до Мозаїки) здавався своєрідним жартом. 😁
Після універу — де створення браузеру було причиною прогулювати пари — Марк, як і всі нормальні люди, знайшов собі роботу і пішов програмувати. :) Знайшов, додавши оголошення, що шукає роботу, в About Мозаїки. 🤣 Трохи пізніше завдяки цьому оголошенню його познайомили з Джимом Кларком — якого якраз видавили із SGI. А Джим, я так думаю, шукав, як би вже купити яхту. 😁
Ідея створити комерційний браузер взагалі не була очевидною. Вони (Джим та Марк) спочатку рахували онлайн відео, потім думали зробити онлайн-сервіс для Нінтендо, потім ще якусь хрінь. Тобто думали над прикладними речами, не над інфраструктурою — але воно вочевидь не складалося, бо інфраструктура ще не була готова.
MSIE почався як ліцензія браузера компанії Spyglass, який, в свою чергу, почався як ліцензія NCSA Mosaic. Марк в подкасті кілька разів згадує відкритість Мозаїки, але це ж початок 90-х, опенсорс ще не дуже розвинений був, тому насправді це була пропрієтарна програма з опублікованим кодом. Вікіпедія ще каже, що Spyglass написали все з нуля, бо Мозаїку писали дикі студенти, її версії для різних ОС мали різний код і не завжди були сумісні, і взагалі. :)
Короч, цікава історія, все могло піти зовсім не тим шляхом.
Здесь пишу ИСКЛЮЧИТЕЛЬНО своё мнение.
Для связи - [email protected]
Бот для связи только по координатам - @Rus_ni_peace_da_bot
Сообщить о воздушной цели - @Yug_mopedi_bot
Я НИКОГДА НЕ ПИШУ ВАМ В ЛИЧКУ В ТЕЛЕГРАМЕ
Last updated 2 days, 12 hours ago
Цікаві, крінжові, смішні та подекуди лякаючі новини з усього світу.
Свій контент присилайте сюди - @boze_yake_konchene_bot
Співпраця — @vadym_toba
Last updated 23 hours ago
Єдиний офіційний канал Птахів Мадяра в Telegram. Канал за кляту війну.
Командир 414 окремого полку ОПУБАС ЗСУ Птахи Мадяра 🇺🇦
Банківські реквізити:
t.me/robert_magyar/12
#Мадяр
💬 МАДЯР🇺🇦Chat: t.me/+peIRQHgJijtjYWQy
Last updated 1 week, 2 days ago