This media is not supported in your browser
VIEW IN TELEGRAM
Нефігова така анімація іконки burger menu.
Зазвичай всі пхають анімації абикуди, не розуміючи нащо, й чисто тому, що інші так роблять. Але тут це має сенс, бо це сайт ігрової компанії. Прикольно🙂
UPD: Важливий момент до речі, що вона програється на сайті всього один раз, а не постійно мерехтить в очах, програючись по колу.
Зазвичай всі пхають анімації абикуди, не розуміючи нащо, й чисто тому, що інші так роблять. Але тут це має сенс, бо це сайт ігрової компанії. Прикольно
UPD: Важливий момент до речі, що вона програється на сайті всього один раз, а не постійно мерехтить в очах, програючись по колу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Цікаво, як за допомогою #emoji виразити прізвище автора вірша 🤨 (Так, я ще той жартівник 😁 Проте вірш ще зі школи памʼятаю, бо саме він мені на екзамені трапився).
Взагалі emoji — штука доволі дивна, як на мене. Я проґавив їхнє глобальне пришестя, бо, мені здається, це завдяки айфону відбулося (хоча вікі пише, що гугл першим звернув на них увагу та інтегрував у GMail). А коли вони зʼявилися на андроїді, то я довго впирався та не хотів користуватися.
Річ у тім, що emoji містять у собі купу якогось непотребу, й одночасно там бракує багатьох важливих штук. У часи #ICQ я користувався найкращим чат-клієнтом — Miranda IM, і навіть тамтешні стандартні смайли (емотікони, точніш) були більш експресивні. Ну а краще за анімовані скайпівські, здається, досі ніхто нічого не зробив. У Microsoft взагалі зі смаком все в порядку, тож я emoji також їхні використовую, як ви давно зауважили.
Та мова не про це. Емодзі — далеко не перша спроба «стандартизувати» спілкування символами за останні роки, але найуспішніша. Наприклад, ще була iConji, яка проіснувала з 2010 до 2012.
Та мало хто знає (а ті хто знає, вже забули), що ще у 2004 зʼявилася така штука як Zlango👇
Взагалі emoji — штука доволі дивна, як на мене. Я проґавив їхнє глобальне пришестя, бо, мені здається, це завдяки айфону відбулося (хоча вікі пише, що гугл першим звернув на них увагу та інтегрував у GMail). А коли вони зʼявилися на андроїді, то я довго впирався та не хотів користуватися.
Річ у тім, що emoji містять у собі купу якогось непотребу, й одночасно там бракує багатьох важливих штук. У часи #ICQ я користувався найкращим чат-клієнтом — Miranda IM, і навіть тамтешні стандартні смайли (емотікони, точніш) були більш експресивні. Ну а краще за анімовані скайпівські, здається, досі ніхто нічого не зробив. У Microsoft взагалі зі смаком все в порядку, тож я emoji також їхні використовую, як ви давно зауважили.
Та мова не про це. Емодзі — далеко не перша спроба «стандартизувати» спілкування символами за останні роки, але найуспішніша. Наприклад, ще була iConji, яка проіснувала з 2010 до 2012.
Та мало хто знає (а ті хто знає, вже забули), що ще у 2004 зʼявилася така штука як Zlango
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Cіпласпластик
Цікаво, як за допомогою #emoji виразити прізвище автора вірша 🤨 (Так, я ще той жартівник 😁 Проте вірш ще зі школи памʼятаю, бо саме він мені на екзамені трапився). Взагалі emoji — штука доволі дивна, як на мене. Я проґавив їхнє глобальне пришестя, бо, мені…
Отож зустрічайте, піктографічне письмо моєї юності 😄
Zlango, створений ізраїльською компанією, як і #ICQ до речі, спочатку був плагіном для останнього, але згодом зʼявилася й окрема програма для телефонів. Чи може навпаки все було.
Так чи інакше, в Україні серед мобільних операторів Zlango тільки Київстар розповсюджував: там на djuice можна було майже на халяву завантажити це з WAP-сайту, а потім слати замість смс-ок — але у мене був JEANS😐
Ну а фішка програми, власне, була в тому, що ти друкуєш текстом своє повідомлення, а воно відповідні символи автоматом підставляє. І якщо з іншого боку у людини інша мова обрана, то вона символи ті самі отримує, а підписи відповідно мають транслюватися. Ну, принаймні така ідея була, але на практиці цього трохи складніше досягти, мені здається.
Фактично це чергова спроба знайти спільний знаменник для мов, і в історії людства таких вже безліч була. Та й взагалі цікаво спостерігати, як люди від піктограм та ідеограм до літер і назад туди-сюди постійно ходять.
А гугл-он ще вісім років тому стверджував, що їхня #ШІ-шка в Google Translate буцімто виробила свою проміжну мову.
Тож може зараз з LLM справа краще піде. Але гарантую, що скоро ще схожі спроби будуть. А може й вже є )
Zlango, створений ізраїльською компанією, як і #ICQ до речі, спочатку був плагіном для останнього, але згодом зʼявилася й окрема програма для телефонів. Чи може навпаки все було.
Так чи інакше, в Україні серед мобільних операторів Zlango тільки Київстар розповсюджував: там на djuice можна було майже на халяву завантажити це з WAP-сайту, а потім слати замість смс-ок — але у мене був JEANS
Ну а фішка програми, власне, була в тому, що ти друкуєш текстом своє повідомлення, а воно відповідні символи автоматом підставляє. І якщо з іншого боку у людини інша мова обрана, то вона символи ті самі отримує, а підписи відповідно мають транслюватися. Ну, принаймні така ідея була, але на практиці цього трохи складніше досягти, мені здається.
Фактично це чергова спроба знайти спільний знаменник для мов, і в історії людства таких вже безліч була. Та й взагалі цікаво спостерігати, як люди від піктограм та ідеограм до літер і назад туди-сюди постійно ходять.
А гугл-он ще вісім років тому стверджував, що їхня #ШІ-шка в Google Translate буцімто виробила свою проміжну мову.
Тож може зараз з LLM справа краще піде. Але гарантую, що скоро ще схожі спроби будуть. А може й вже є )
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1😁1
Cіпласпластик
Отож зустрічайте, піктографічне письмо моєї юності 😄 Zlango, створений ізраїльською компанією, як і #ICQ до речі, спочатку був плагіном для останнього, але згодом зʼявилася й окрема програма для телефонів. Чи може навпаки все було. Так чи інакше, в Україні…
Якась халепа з коментарями тут трапилася, але якщо комусь є, що сказати, то можна під попередній допис написати або під цей. Не соромтеся )
😁1
Мене аж тіпає, коли пишуть C/C++, поєднуючи дві різні мови, відмінні не тільки концептуально, але й синтаксично (так!). Щось я не бачу, щоб писали C/Objective-C або QBasic/Visual Basic десь у вакансіях.
З очевидних відмінностей є, наприклад, автоматичне приведення в сішці void-вказівниказ десяти у світі від цього не вмер.
Але у зворотному боці я також отримав декілька WTF-моментів. Наприклад, в C++ можна написати
і воно це схаває, бо в C++
Це з цікавого. Кажуть: «Майже будь-який код на C може бути скомпільований як C++» — проте не кажуть, що це ще не гарантує його коректність. Наприклад, в C🥱
Короч, між C та C++ ще безліч «прикольних» відмінностей. Аж на цілу пдф-ку назбиралося.
З очевидних відмінностей є, наприклад, автоматичне приведення в сішці void-вказівника
void*
до вказівника на будь-який інший тип, наприклад, int*
. А неявні касти в результаті приносять значно більше болю, ніж необхідність робити це явно. В Haskell немає неявних приведень типу, і жоден розробник Але у зворотному боці я також отримав декілька WTF-моментів. Наприклад, в C++ можна написати
int i = 0;
(i = 10) = 42;
і воно це схаває, бо в C++
operator=
повертає lvalue, але в C — ні, тож там це не спрацює. Це ж буквально один з пунктів, на які я жалівся у статті. Неприємно здивований.Це з цікавого. Кажуть: «Майже будь-який код на C може бути скомпільований як C++» — проте не кажуть, що це ще не гарантує його коректність. Наприклад, в C
sizeof('a')
повертає розмір int
, а в C++ — розмір char
Короч, між C та C++ ще безліч «прикольних» відмінностей. Аж на цілу пдф-ку назбиралося.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁1🤓1
Читав днями допис (до речі дуже подобається канал, рекомендую!), де чувак пише, як він підходить до завантажень відео з вебсайтів. А у мене як раз була подібна ситуація, коли я теж хотів щось злити з сайту, а там відоса як такого не було, і щось я не второпав, як це зробити.
Так ось я згадав, що то було. Дружина колись давно купила курс, який хоститься на сайті Gurucan (який, схоже, має росіянське коріння до речі), а ті прям хизуються своїм video content protection🙄
Короч. Чувак своїм дописом мене надихнув розібратися. І він мав рацію! Мені як не веб-девелоперу трохи складніше, але я посидів на вкладці Мережа в девтулах, познаходив там якісь лінки. Спочатку думав взагалі просто дампанути з девтулів сесію та парсити її, але згодом знайшов там виклики API. Після логіну прилітає токен, який можна потім просто передавати в куках разом з
Усі відоси розділені на шматки по 4 секунди й лежать на CDN, де також є
Написав все на #Nu (так, це мова в #Nushell) з використанням вбудованих засобів, тож єдина зовнішня залежність — це, власне,(жодних блядь jq!) . Дуже подобається, що все статично типізоване та компілюється, тож ще до виконання отримуєш пачку помилок.
І вкотре наголошую, в якому я захваті від передачі обʼєктів через пайп. Є, наприклад у мене команда з отакою сигнатурою:
Необовʼязковий параметр — це
Чому необовʼязковий? Бо натомість URL можна передати через пайп. І саме про це каже тип цієї команди, який можна читати так: якщо через пайп приходить
При цьому авжеж тепер ліва частина може бути аутпутом з іншої команди. За бажання структуру
Лайна в процесі також похавав. В якийсь момент мій код почав видавати отаку помилку:
І пиздець — ані туди, ані сюди. Причому це тупо в😵💫
Втім все одно я в захваті! Nushell — вогонь, причому він активно розвивається.
Так ось я згадав, що то було. Дружина колись давно купила курс, який хоститься на сайті Gurucan (який, схоже, має росіянське коріння до речі), а ті прям хизуються своїм video content protection
Короч. Чувак своїм дописом мене надихнув розібратися. І він мав рацію! Мені як не веб-девелоперу трохи складніше, але я посидів на вкладці Мережа в девтулах, познаходив там якісь лінки. Спочатку думав взагалі просто дампанути з девтулів сесію та парсити її, але згодом знайшов там виклики API. Після логіну прилітає токен, який можна потім просто передавати в куках разом з
User-Agent
, і все працює. Усі відоси розділені на шматки по 4 секунди й лежать на CDN, де також є
*.m3u8
плейліст, по якому воно їх і збирає. Я роблю те саме: завантажую всі шматки локально та комбіную їх ffmpeg
ʼом.Написав все на #Nu (так, це мова в #Nushell) з використанням вбудованих засобів, тож єдина зовнішня залежність — це, власне,
ffmpeg
І вкотре наголошую, в якому я захваті від передачі обʼєктів через пайп. Є, наприклад у мене команда з отакою сигнатурою:
def "api get" [url?: string]: [nothing -> record, string -> record] {
...
}
Необовʼязковий параметр — це
url
, щоб можна було викликати отак:api get https://some.domain/api/call
Чому необовʼязковий? Бо натомість URL можна передати через пайп. І саме про це каже тип цієї команди, який можна читати так: якщо через пайп приходить
nothing
, то команда поверне record
(але в цьому випадку треба вказати url
, що на жаль в сигнатурі не відображене), і якщо через пайп приходить string
, то також повертає record
. Жодні інші типи через пайп не прийматиме. Тож альтернативний виклик отакий:'https://some.domain/api/call' | api get
При цьому авжеж тепер ліва частина може бути аутпутом з іншої команди. За бажання структуру
record
, що повертається, також можна описати в типі, якщо вона заздалегідь відома.Лайна в процесі також похавав. В якийсь момент мій код почав видавати отаку помилку:
× Variable not found
╭─[~/megamodule/mod.nu:137:1]
137 │
138 │ ╭─▶️ api purchases | each {|p|
139 │ │ api course $p._id | download course
140 │ ├─▶️ }
· ╰──── variable not found
141 │
╰────
І пиздець — ані туди, ані сюди. Причому це тупо в
main
на верхньому рівні. Довелося коментувати код шматками, щоб докопатися до суті. Врешті виявилося, що десь в іншому модулі на хз якому рівні вкладеності я не перевірив одну зі змінних на null
перед використанням Втім все одно я в захваті! Nushell — вогонь, причому він активно розвивається.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👀1
Please open Telegram to view this post
VIEW IN TELEGRAM
👀1
Свій перший код на #BASIC я написав в шість років (А ви? Розкажіть, може?) на якомусь радянському клоні спектрума, хоча в ті часи цього ще не усвідомлював. Я був у «компьютерно-англійському» першому класі, проте, вже за півтора року він став звичайним, а інформатику нам перестали викладати. Свій же компʼютер у мене зʼявився аж за вісім років від першої написаної програми — коли мені було 14.
Жили ми доволі бідно, тож у мене не те що компʼютера не було, а навіть «денді», не кажучи вже про «сегу». Якийсь час був Brick Game aka «тетріс», який на жаль зник (найбільш ймовірно його спиздив сусід по поверху, мати-алкоголічка якого варила ширку для наркоманів).
Але потяг до компʼютерної тематики у мене з дитинства. Тож коли була змога, я ходив по друзях, у котрих вже були компи (дякую вам, до речі🥰 ) або хоча б приставки. Решту ж часу з розваг у мене були походи в компʼютерні магазини, де можна було подивитися на свіжі технологічні надбання, а також набрати прайс-листів, щоб скласти собі черговий (чи не щотижневий) конфіг своєї мрії. В деяких магазах мене навіть в обличчя вже знали 😁
А ще існувала радянська книжка «Энциклопедия профессора Фортрана» (росіянською звісно). У мене її не було, але мені друган давав почитати, тож я її мільйон разів прочитав, мабуть.
І короч в книзі була схема, яку можна було перенести на папір, вирізати та склеїти собі мале-е-е-енький паперовий компʼютер! Я це також неодноразово робив, уявляючи, як офігезно буде мати колись справжній.
Отже, це все був вступ. Я просто натрапив на сайт з паперовими (кольоровими!) моделями різних старих пристроїв, і мені згадалося ) Треба якийсь гештеґ на кшталт «дід знов забув про таблетки».
Жили ми доволі бідно, тож у мене не те що компʼютера не було, а навіть «денді», не кажучи вже про «сегу». Якийсь час був Brick Game aka «тетріс», який на жаль зник (найбільш ймовірно його спиздив сусід по поверху, мати-алкоголічка якого варила ширку для наркоманів).
Але потяг до компʼютерної тематики у мене з дитинства. Тож коли була змога, я ходив по друзях, у котрих вже були компи (дякую вам, до речі
А ще існувала радянська книжка «Энциклопедия профессора Фортрана» (росіянською звісно). У мене її не було, але мені друган давав почитати, тож я її мільйон разів прочитав, мабуть.
І короч в книзі була схема, яку можна було перенести на папір, вирізати та склеїти собі мале-е-е-енький паперовий компʼютер! Я це також неодноразово робив, уявляючи, як офігезно буде мати колись справжній.
Отже, це все був вступ. Я просто натрапив на сайт з паперовими (кольоровими!) моделями різних старих пристроїв, і мені згадалося ) Треба якийсь гештеґ на кшталт «дід знов забув про таблетки».
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8😁3❤1❤🔥1
Якось розмовляли з друганом про можливість зробити GUI/TUI для роботи з логами, зокрема в JSON-форматі.
І якщо ви досі не перейшли на #Nushell, як це зробив я, то вам може стати в пригоді його плагін для Neovim, що дозволяє наживо фігачити
І якщо ви досі не перейшли на #Nushell, як це зробив я, то вам може стати в пригоді його плагін для Neovim, що дозволяє наживо фігачити
jq
-запити. Не забудьте поставити зірочку на репу.GitHub
GitHub - kri4er/telescope-jq.nvim: Telescope plugin providing jq functionality for neovim
Telescope plugin providing jq functionality for neovim - kri4er/telescope-jq.nvim
🔥6👍3👀1
Зараз буде багато тексту.
Вчора раптом отримав інсайт щодо код-ревʼю, коли мені робили дизайн-ревʼю слайдів для презентації.
Я вже писав про це раніше, але передісторія така:
Робив програмістам-плюсовикам на роботі доповідь під назвою «Want to get better at C++? Learn other languages». Ну, не скажу, що ідея капець яка свіжа, але це те, в що я сам вірю: доволі складнувато, якщо взагалі можливо, стати професійним програмістом, коли ти нічого окрім C++ не бачив, бо знання мови хоч і важливе, але точно не на першому і навіть не на другому місці за пріоритетом. А серед плюсистів воно ж часто як: пишуть на плюсах, можливо навіть бачили Python, який зневажають, а решту взагалі ігнорують.
Потім треба було мені зробити пʼятихвилинний lightning talk вже на ширшу аудиторію, де і різних програмістів більше, та й інші тестувальники та ПМи присутні. Але моя тема масштабується на будь-що насправді, бо я особисто постійно вбачаю паралелі у всьому та намагаюся використовувати всі свої знання з різних сфер.
Так короч, я свої слайди трохи спростив та адаптував. По-перше, не хотів робити їх занадто технічними, а по-друге, хотів зробити свою доповідь більш легковажною та фановою.
А тут контора вирішила зробити публічне ревʼю презентацій від охочих. Я звісно одразу зголосився, бо люблю отримувати фідбек. І от дизайнерка сиділа та коментувала різні помилки та можливості покращити.
Наведу декілька прикладів своїх слайдів та коментарів на них:
Вчора раптом отримав інсайт щодо код-ревʼю, коли мені робили дизайн-ревʼю слайдів для презентації.
Я вже писав про це раніше, але передісторія така:
Робив програмістам-плюсовикам на роботі доповідь під назвою «Want to get better at C++? Learn other languages». Ну, не скажу, що ідея капець яка свіжа, але це те, в що я сам вірю: доволі складнувато, якщо взагалі можливо, стати професійним програмістом, коли ти нічого окрім C++ не бачив, бо знання мови хоч і важливе, але точно не на першому і навіть не на другому місці за пріоритетом. А серед плюсистів воно ж часто як: пишуть на плюсах, можливо навіть бачили Python, який зневажають, а решту взагалі ігнорують.
Потім треба було мені зробити пʼятихвилинний lightning talk вже на ширшу аудиторію, де і різних програмістів більше, та й інші тестувальники та ПМи присутні. Але моя тема масштабується на будь-що насправді, бо я особисто постійно вбачаю паралелі у всьому та намагаюся використовувати всі свої знання з різних сфер.
Так короч, я свої слайди трохи спростив та адаптував. По-перше, не хотів робити їх занадто технічними, а по-друге, хотів зробити свою доповідь більш легковажною та фановою.
А тут контора вирішила зробити публічне ревʼю презентацій від охочих. Я звісно одразу зголосився, бо люблю отримувати фідбек. І от дизайнерка сиділа та коментувала різні помилки та можливості покращити.
Наведу декілька прикладів своїх слайдів та коментарів на них:
👀1
Аніме… ми в компанії не використовуємо аніме… Краще прибрати й використати щось більш підхоже.
(Я опущу те, як у мене підгоріла дупця з «аніме»).
Але… що саме тут пасуватиме краще, ніж персонаж з мультфільму, який є автором цих слів? Цитата ж буквально двічі доводить правильність того, про що я розповідаю в презентації. По-перше, напряму: сам сенс цитати про це. А по-друге, на метарівні: мені треба було зробити слайди під презентацію, я не знав, що туди писати, а потім раптом збагнув, коли займався зовсім іншою справою — дивився «Аватара»
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6❤2👀1
Отож про що це я? А, ну так, про дизайн-ревʼю та про код-ревʼю.
Річ у тім, що у нас в компанії є шаблон для презентацій. Це, можна сказати, такий собі style guide, як у програмістів для коду.
І в цьому шаблоні шрифт доволі маленький, а я у своїх слайдах зробив великий. Дизайнерка каже:
І я абсолютно згоден з аналізом, але не згоден з висновками. Мені навпаки цікаво, чому в нашому шаблоні шрифт такий маленький за стандартом? Це ж спонукає людей писати занадто багато тексту або пхати нерелевантні зображення, щоб заповнити пустоти. При цьому дослідження ясно показують, що коли людям треба одночасно й читати багато тексту, і слухати доповідача, то вони обирають перше (а нащо тоді доповідач?).
Всі мої зображення були додані, щоб підкреслити якусь думку, а не тому, що було забагато вільного місця.
Презентація загалом була заточена під один конкретний пʼятихвилинний момент з конкретною цільовою авдиторією. Вона мала запамʼятовуватися та бути неформальною, бо суто для внутрішнього використання.
Я отримав й кілька вельми корисних порад звісно! Але загалом дизайнерка була настільки збентежена великим шрифтом, що не помітила інших «жахливих» порушень нашого стайл-гайду: що у мене взагалі немає bullet-списків, що на жодному слайді немає номера сторінки, назви компанії, копірайту, сьогоднішньої дати та іншого булшиту, який зазвичай пхають, що на жодному слайді, окрім першого та останнього, немає логотипа компанії, тощо. І що шрифт заголовка слайда менше за розміром, ніж шрифт змісту😁 (але виділений кольором).
Я розмірковував про все це, і раптом збагнув, що воно якось дуже відлунює мені код-ревʼю, до якого ми всі з вами звикли. В різних компаніях практика огляду коду також дуже відрізняється: від перевірки пробілів/табів до того, що хтось качає собі PR та перевіряє, чи коректно він працює.
Вочевидь, якщо можна автоматизувати форматування коду під стиль — варто його автоматизувати, тож це не має бути предметом код-ревʼю. Шкода, що зазвичай під цим розуміють лише на якому рядку дужка стоїть, а ось схему найменування речей так легко не автоматизуєш.
Чи є сенс в рамках ревʼю чекаутити собі код та запускати його? Ну, точно не щоразу. Я інколи це роблю для особливо критичних місць, але чисто тому, що частково виконую роль архітектора також, й буває чуйка підказує, що «щось тут не те».
Чи є користь від перегляду коду, не пірнаючи в контекст та не намагаючись зрозуміти логіку? Ну, дивлячись на те, як було зроблене дизайн-ревʼю — ні. Ба більше! Це може навіть зашкодити.
На жаль у мене немає остаточно сформованої думки з цього приводу. Але я вкотре здивувався, як якась одна подія спровокувала роздуми на іншу, відносно далеку тему🤔
Річ у тім, що у нас в компанії є шаблон для презентацій. Це, можна сказати, такий собі style guide, як у програмістів для коду.
І в цьому шаблоні шрифт доволі маленький, а я у своїх слайдах зробив великий. Дизайнерка каже:
дивіться, тут шрифт штучно збільшили, бо якщо зробити його таким, як в нашому стайл-гайді, то слайд стає занадто порожнім, а люди, мовляв, бояться занадто порожніх слайдів. Тож просто додайте якесь зображення.
І я абсолютно згоден з аналізом, але не згоден з висновками. Мені навпаки цікаво, чому в нашому шаблоні шрифт такий маленький за стандартом? Це ж спонукає людей писати занадто багато тексту або пхати нерелевантні зображення, щоб заповнити пустоти. При цьому дослідження ясно показують, що коли людям треба одночасно й читати багато тексту, і слухати доповідача, то вони обирають перше (а нащо тоді доповідач?).
Всі мої зображення були додані, щоб підкреслити якусь думку, а не тому, що було забагато вільного місця.
Презентація загалом була заточена під один конкретний пʼятихвилинний момент з конкретною цільовою авдиторією. Вона мала запамʼятовуватися та бути неформальною, бо суто для внутрішнього використання.
Я отримав й кілька вельми корисних порад звісно! Але загалом дизайнерка була настільки збентежена великим шрифтом, що не помітила інших «жахливих» порушень нашого стайл-гайду: що у мене взагалі немає bullet-списків, що на жодному слайді немає номера сторінки, назви компанії, копірайту, сьогоднішньої дати та іншого булшиту, який зазвичай пхають, що на жодному слайді, окрім першого та останнього, немає логотипа компанії, тощо. І що шрифт заголовка слайда менше за розміром, ніж шрифт змісту
Я розмірковував про все це, і раптом збагнув, що воно якось дуже відлунює мені код-ревʼю, до якого ми всі з вами звикли. В різних компаніях практика огляду коду також дуже відрізняється: від перевірки пробілів/табів до того, що хтось качає собі PR та перевіряє, чи коректно він працює.
Вочевидь, якщо можна автоматизувати форматування коду під стиль — варто його автоматизувати, тож це не має бути предметом код-ревʼю. Шкода, що зазвичай під цим розуміють лише на якому рядку дужка стоїть, а ось схему найменування речей так легко не автоматизуєш.
Чи є сенс в рамках ревʼю чекаутити собі код та запускати його? Ну, точно не щоразу. Я інколи це роблю для особливо критичних місць, але чисто тому, що частково виконую роль архітектора також, й буває чуйка підказує, що «щось тут не те».
Чи є користь від перегляду коду, не пірнаючи в контекст та не намагаючись зрозуміти логіку? Ну, дивлячись на те, як було зроблене дизайн-ревʼю — ні. Ба більше! Це може навіть зашкодити.
На жаль у мене немає остаточно сформованої думки з цього приводу. Але я вкотре здивувався, як якась одна подія спровокувала роздуми на іншу, відносно далеку тему
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👀1
Щойно дізнався від @dmytrish про таку крутецьку штуку як Kaitai Struct. Це декларативний парсер бінарних даних, який вміє генерувати код під різні мови, зокрема для C++ (а не C! 😌 ) .
Мені буквально нещодавно треба було запарсити віндовий
А Kaitai, схоже, генерує код під ES5 як раз, бо я не побачив там якогось свіжішого синтаксису. Доведеться знов дістати ту ініціативу зі скрині відкладених проєктів.
Мені буквально нещодавно треба було запарсити віндовий
ico
-формат в JavaScriptʼі, й у npmʼі авжеж є якісь готові ліби, але в тому середовищі, під яке я писав, дуже старий JS-рантайм (ECMAScript 5). Вручну все писати також впадлу.А Kaitai, схоже, генерує код під ES5 як раз, бо я не побачив там якогось свіжішого синтаксису. Доведеться знов дістати ту ініціативу зі скрині відкладених проєктів.
Please open Telegram to view this post
VIEW IN TELEGRAM
kaitai.io
Kaitai Struct: declarative binary format parsing language
Kaitai Struct is a formal language for binary format specification that can be compiled into parser code
👍3🔥1👀1
Cіпласпластик
А ще існувала радянська книжка «Энциклопедия профессора Фортрана»
Українською література теж існувала, як виявилося, але не у мене. Взагалі зараз замислився, чи були у мене вдома бодай якісь книжки українською, окрім підручників. І щось не пригадується 😢
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
SnC Museum Lab
Пропоную вашій увазі скан додатку до українського журналу "Однокласник №8, 1991", присвячений іграм для програмованих калькуляторів.
Додаток зветься "Еггог та інші таємниці"
Сканував сам. Скачати або погортати прямо на сайті можна з archive.org
https://…
Додаток зветься "Еггог та інші таємниці"
Сканував сам. Скачати або погортати прямо на сайті можна з archive.org
https://…
👍3❤1
Кому #ШІ-шку прям в телеграмі? Microsoft розробила офіційний телеграм бот для Copilot: так і називається, їй-богу — @CopilotOfficialBot. Якось працює, навіть доволі непогано, хоча просить номер телефона з ними зашарити.
Мене вразило не стільки те, що до телеграму прикрутили ШІ-шку у вигляді бота (бо самописних на ґітгабі вистачало й до того), скільки той факт, що Microsoft написала щось для Telegram.
Це як акт визнання існування останнього великими компаніями. Тобто серйозні справи вже пішли, серйозна гра. А значить, надалі ставатиме тільки гірше🙂 — час шукати, куди звідси ливати 🧐
Мене вразило не стільки те, що до телеграму прикрутили ШІ-шку у вигляді бота (бо самописних на ґітгабі вистачало й до того), скільки той факт, що Microsoft написала щось для Telegram.
Це як акт визнання існування останнього великими компаніями. Тобто серйозні справи вже пішли, серйозна гра. А значить, надалі ставатиме тільки гірше
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Microsoft Copilot
Your everyday AI companion, here to make life easier and talk about anything. Always here for you!
👏5👍2👀1
Media is too big
VIEW IN TELEGRAM
Мені трапився черговий «веббраузер»(?) — Kosmik. Цього разу маємо безкінечне полотно, на яке можна пхати різні зображення, PDF-ки, посилання, текст, наліпки тощо. Тобто в принципі те саме, що вже 20 років є у OneNote, тільки вебкліпер раніше був у браузері, а тепер навпаки браузер вбудований у програму. Хоча сама програма на електроні — тож теж браузер. А ще її можна запустити всередині звичайного браузера 😵💫 Kosmik ще й не зовсім безплатний до того ж.
Я потикався і бачу, що користуватися не буду, але сюди вирішив скинути. Тиждень був важкий, а я давно сюди нічого не писав — ще відписуватися почнете🙁
Я потикався і бачу, що користуватися не буду, але сюди вирішив скинути. Тиждень був важкий, а я давно сюди нічого не писав — ще відписуватися почнете
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁4🤔1😱1
Намагаюся частіше використовувати фічі останніх стандартів C++, зокрема ranges. Тож у мене доволі багацько коду на кшталт такого:
Але рядок швидко стає немаленьким завширшки, особливо з плюсовим синтаксисом, як ви можете собі уявити. А clang-format форматує код отак:
Тобто пайп ставить в кінці рядка, а наступний рядок починає під початком першого слова у виразі. Тут для краси
Для clang-format
Дратувало мене це — просто жах, але як так налаштувати його, щоб у мене око не тіпалося — хз. Вирішив спитати #ШІ, бо думав, може, пропустив якесь спеціальне налаштування на цей випадок. А ШІ-шка мені: «так ти просто коментар порожній в кінці рядка лишай»🤯
Тепер clang-format бачить, що між операндом та пайпом ще токен коментаря стоїть, і йому доводиться писати пайп з нового рядка )
Так, ШІ-шка цьому десь навчилася теж, але я сам щось не допетрав до такого рішення.
return mimeData->formats() | views::transform(toMimeSlice) | to<Clip::MimeContainer>();
Але рядок швидко стає немаленьким завширшки, особливо з плюсовим синтаксисом, як ви можете собі уявити. А clang-format форматує код отак:
return mimeData->formats() |
views::transform(toMimeSlice) |
to<Clip::MimeContainer>();
Тобто пайп ставить в кінці рядка, а наступний рядок починає під початком першого слова у виразі. Тут для краси
toMimeSlice
просто як функція передається, але насправді там могла бути лямбда на декілька рядків, і це зовсім неможливо стає читати.Для clang-format
|
— це просто бінарний оператор. Можна, мабуть, налаштувати, щоб він у довгих виразах починав рядок з нього, але тоді він це буде робити і для якогось +
, а мені так не подобається.Дратувало мене це — просто жах, але як так налаштувати його, щоб у мене око не тіпалося — хз. Вирішив спитати #ШІ, бо думав, може, пропустив якесь спеціальне налаштування на цей випадок. А ШІ-шка мені: «так ти просто коментар порожній в кінці рядка лишай»
return mimeData->formats() //
| views::transform(toMimeSlice) //
| to<Clip::MimeContainer>();
Тепер clang-format бачить, що між операндом та пайпом ще токен коментаря стоїть, і йому доводиться писати пайп з нового рядка )
Так, ШІ-шка цьому десь навчилася теж, але я сам щось не допетрав до такого рішення.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3😁1😭1🙈1