• «Мінус 50000 рядків коду»: Meta переписала частину месенджера WhatsApp з C++ на Rust

    second-system effect

    це якщо «переписування» йде в напрямку додавання «фіч»,
    а є й в другий бік — коли «фічі» викидають, бо, як показала практика, вони були лише непотрібним оверкомплікейшеном...

  • Формальна верифікація для смертних

    Це прекрасно... як я то пропустив?...

    Але це треба «курити» не за один раз...
    Єдина заувага яка приходить в голову «сходу» для «непосвячених», «простих сметрних» той «модуль», то сприймається саме як абсолютне значення,
    а тут, все ж, мається на увазі обрізання старших бітів остача від ділення (remainder) на «максимальний_ансайнед+1» тобто те що, при інкрементах цілого значення відповідні значення в нашому ансайнеді «йдуть по колу», повторюються...

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

    Підтримав: Andrii Sevastianov
  • Андрій Карпати про програмування з Claude

    в житті взагалі дуже багато чого беззмістовного, якщо не все, але нічого — живеш собі і не питаєш «а це точно життя»?

    ключове слово, пропущене в цитаті: для дипломатичного «відбування»
    тобто не на всі такі події хочеш йти

    можна ще припахати їх стіл накрити замість ресторану

    дехто робить і таке «ви гості тут поможіть порозставляти столи, поки ми готуємося»))

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

    тобто часом це виглядає навпаки, що то все подія не для «брачующихся», а щоб «нагодувати/порозважати гостей», тобто «шоу» не для тих, в кого «радісна подія», а для тих, хто прийшли в гості...

    Іншими словами я наполягаю на праві існування альтернативних інтерпретації цих «ритуалів», а не лише на тих, які є «загальноприйнятою нормою»))

  • 3D-друк для ЗСУ: покроковий гайд, мій досвід та як не вигоріти

    «Прямо зараз» не актуально, але в загальному: не лишати 3д друковані з ПЛА штуки в авто, що на сонці влітку...

    Підтримали: Illya Reznykov, Volodymyr Polishchuk
  • Якість — це ілюзія, яку всі підтримують

    QA зазвичай знає, що реліз буде поганим. Знає за тижні.
    ...
    QA не блокує релізи. Він просто залишає свідчення.

    Звичайно, все знайдене повинно документуватися...

    А тоді (й не «тоді» а «регулярно») з «зацікавлених сторін» збирається «група якості» (включаючи QA, а в ідеальних умовах й замовника), й рів’ювають віднайдені айтеми, й вирішують які справді критичні, куди можна і треба приділити час, а на які можна «забити», там, де треба розібратися, кличуть відповідних розробників, або їхніх лідів (вони зарання в курсі, який буде топік, бо агенда озвучується ще в інвітейшені й тому люди можуть підготуватися й відповідати по суті, а не бравзати по коду пригадуючи «про що взагалі мова»), всі прийняті рішення документуюся (зокрема й коментарями, записом в Джиру), й от тоді справді «все під котролем», й все трекається, хто яке рішення прийняв, й нічого не втіче, автора кожного коментаря, й кожен джастіфікейшен видимі...

  • Плаваюча (рухома) крапка. Частини 1-2: ввідна, перші граблі

    6.02*10^23

    спочатку треба домовитися: ми пишемо на Луа чи на ЖС))

  • Плаваюча (рухома) крапка. Частини 1-2: ввідна, перші граблі

    то для тих, хто хоче знати як процики влаштовані )

    це окрема, й набагато ширша тема... якщо йти ще далі «в той бік» тоді треба починати з улаштування транзисторів квантової механіки... й, якщо нічого не пропускати, то дійти до IEEE754 років через 10...

    Підтримав: Mark Tsyrulnyk
  • Плаваюча (рухома) крапка. Частини 1-2: ввідна, перші граблі

    Це прекрасно, але бракує хліба та видовищ картинок))
    «посвячені», вони якби це вже й знають, а «непосвячені», їм «в’їхати» буде тяжко...

    PS. Квантові ефекти, це «помилки заокруглення» мікропроцесорів «Матриці» («симуляції» в якій ми живемо... як виявляється вже виросло покоління, що не бачили The Matrix, 1999))

  • Плаваюча (рухома) крапка. Частини 1-2: ввідна, перші граблі

    та ну, воно тоді стає вже «зовсім нецікавим» бо губиться «історичний звязок» з тими часами, коли тої кількості не знали (насправді починали з водню, який прийняли за 1, потім вже кисень, бо він реагує «багато з чим», і тоді вже вуглець) й тоді вже знаючи пропорції за масою в хімічних реакціях можна було «обчислити» всі решта елементів (а так, як про «дефект мас» тоді ще не було відомо, то теорія біла дуже гарна й струнка))
    Також й «Закон Авогадро» теж дуже допоміг визначити молекулярні маси газів...
    А як тільки ми робимо «просто» 6,02214076×10**23 то вся та краса губиться....

  • Чому шлях української молоді ніколи не був легким

    еліти того часу

    які такі «еліти»?
    хто їх призначив «елітами»?
    хіба не народ обрав президента й депутатів?

    чи мова про ті «еліти» що були директорами «совкових підприємств» і так далі?
    ну то їх же та ж совкова система й виховала, що то так й має бути.

  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    тільки я не зрозумів,
    то для того пана, отже «камера, банкінг, бравзер» + що ще? ))

    -------
    ми якось плавно повернулися до настроїв нашої розмови про комп в моєї тещі її фейсбучека в бравзері, та фоток, відео на «диску Д» в MX Linux XFCE))

    ... з тих пір я «відкрив америку» що XFCE «буває різне» й мені дуже пощастило що я одразу вгадав з дистрибутивом, бо є й такі, що треба витягувати індикацію батарейки та керування звуком окремо... а в мене вже все було «з коробки»))

  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    До бажання засунути-все-в-браузери, то напряму не стосується.

    звичайно, бажання «засунути-все-в-браузери» це лише «небажання» качати чергову аплікуху й роздавати їй пермішени :)

    камера, банкінг, бравзер. для більшості буденних юзкейсів мені цього достатньо :)

  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    а можна й по NFC з «фінансового» телефона
    все депендс на юзкейс...

    але в загальному, бавитися з аплікухами (як й «акції», «накопичення бонусів», які ще й «згоряють» тому біжи купляй ще, але бонусами не оплатиш всі 100% а тільки якийсь відсоток) то все маркетингова гра продавця...

  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    які дата? якщо мова про банківські аплікухи, то в мене для них взагалі окремий телефон...

    чи мова про ті дата, що кожна г@вноаплікуха хоче доступу до стореджа, геолокації, пристроїв поблизу?
    ну то ж навпаки встановлюючи побільше таких аплікух людина й збільшує ймовірність що ті дані буде стирено!

    PS. а про фейсбучек, то в бравзері можна поставити галочку «Desktop site» й воно чудово робе (доки розробники фейсбучека не придумали якусь хитрішу евристику)

  • Чому шлях української молоді ніколи не був легким

    а більшість у парламенті 1991 року мали комуністи («Група 239»)

    звичайно, а хто ж голосував саме за комуністів, а не за «РУХ»?...
    та ті ж самі громадяни України, які й не обрали Чорновола...

    тому всі «біди українців» вони собі обрали самі...

    Підтримав: Maxim Falchenko
  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    дуже цікаве спостереження: більшість юзкесів на телефоні в «простих смертних» це... соцмережі, які, втім цілком можна булоб й ганяти в існуючому бравзері...

    сторінки соцмереж детектять мобільний бравзер й нав’язують свою аплікуху лише «з маркетингових міркувань», щоб добратися до пермішенів ср@ти нотифікаціями й аплікуха залишалася помітною надсилаючи той спам...

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

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

    ну й окрема категорія — ті садисти розробники «додатку дах» (й ті ОСББ, що на то підписалися): вони знущаються над пенсіонерами, людьми з порушеннями зору та мілкої моторики рухів, примушуючи їх користуватися їхньою аплікухою на мобільному телефоні, при відсутності веб версії (для простих мешканців тільки «застосунок», вебадмінка для голови ОСББ)...
    ну але є надія, що коли «ЄС прийде, порядок наведе» й заставить криворуких розробників передбачити інтерфейси для людей з ураженнями зору, слуху, опорно-рухового апарату...

  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    крім перевірки індексів існує ще 1000+1 місць де можна спіткнутися

    саме так, вже згаданий (умовно) «бінарний пошук» не має змісту якщо масив не посортовано, але «факт посортованості» також міг би «подорожувати разом з типом» (тут криється більша безсмислиця: нема змісту сортувати масив якщо значення в ньому «бінарним пошуком» шукається тільки один раз)

    Для цього конкретного випадку ще треба враховувати scope того вектора — якщо десь з ним можливо код розпаралелиться то його довжина нп може змінитися поза блоком if () {} під час цього if

    Звичайно, й тоді мова повинна гарантувати, що тільки «цей потік» є овнером неперервно поки перевірка кондішена й прохід по масиву, тому привіт Rust))

    Якщо в цілому дивитися — частково щось потрохи з’являється в мп і для compuletime і для runtime.

    Так, й насправді доволі прості речі, які могли б з’явитися й набагато раніше, тут не треба «задофіга обчислювальних потужностей» й всякі лінтери, статік аналайзери то все робили вже давно, тільки незручно й заморочно...

    Звузити можливості щось запрограмувати так щоб можна було раз-і-назавжди все перевіряти під час compiletime, то накладе стільки restrictions що більшість почне від того відвертатися у конкретних використаннях по різним своїм причинам.

    Звичайно, але це дискусія десь в стилі дискусії між прихильниками «динамічних» мов vs прихильники статично типізованих...
    Воно розвязуване саме методом як в Пайтон додали тайпанотейшени (а в приведеному фрагменті на Agda я, чесно, не зрозумів взагалі нічого без чату GPT)

    Хоча сам рух на додаткову верифікацію правильний, але по можливості (imho).

    +100500, просто він не буде виглядати так, як то собі уявляють «учені».

    То само, як й з рештою, наприклад, «функціональне програмування» штук, де та сама ламбда/кложур/делегат — насправді речі дуже прості й інтуітивно, практично зрозумілі «простим смертним» без всієї отієї теорії «ламбла калькулус»... так само, як й легка й зрозуміла ідея послідовного виконання алгоритмів одразу понятно без заглиблення в теорію мови брейнфак «машин Тюрінга» (хоча деякі висновки з тих теорій, втім, корисні, але їх простіше прийняти на віру, ніж самому вивчити всі ті науково теоретичні доведення))

  • «Мінус 50000 рядків коду»: Meta переписала частину месенджера WhatsApp з C++ на Rust

    але й нема відповіді на те, чи справді новий «перевірятор» повторював архітектуру колишнього?

    втім як й того, яке це було «пререписування»? копіювання існуючих алгоримів «один в один» чи взагалі «все по новій»?

    Цитата «Rather than an incremental rewrite, we developed the Rust version of wamedia in parallel with the original C++ version.», тобто це може бути продукт з тією ж назвою й що робить то само, але іншим (ефективнішим) способом, відповідно й рядків й поменшало...

  • 1С забули? Є хто на заміну?

    так, так, бо лише 1Сник змушений залишатися й тій же екосистемі, в тому ж «домені знань» тому повинен то все знати про що мова, як то робиться й вміти...

    умовному <тут_назва_модної_мови_програмування>нику байдуже на «домейні знання» нашої бухгалтерії й він може скакати між проектами/канторами/фірмами й «кодити»...
    а 1Сник «так просто не спригне», особливо якщо не знає англійської...

    ...тому «українська 1С» повинна мати «українську мову програмування з українськими ключовими словами та доками», й тільки тоді люди будуть «прив’язані мовними ланцюгами» до «українського продукту» так само, як зараз вони «прив’язані мовними ланцюгами» до ворожої «1С» де вся документація й «мова програмування» на «опщепанятнам»

    Підтримав: S V
  • Ми в 6-12 місяцях від того, що модель робитиме більшість роботи розробників

    p.s. в компайлтаймі — по ідеї або відоме значення під час компіляції...

    або, коли я зробив «рантайм перевірку» ось так

    if( i < myVector.size() ){
    то для unsigned size_t i компілятор «вже мав би знати»: відтепер в {} усі звернення в рейнджі «до i» валідні без рантайм перевірки (доки ми прямо або опосередковано не зменшили myVector)... й умовний «алгоритм пошуку половинним діленням» де ми «можемо довести» що діапазон тільки звужується, вже ніколи не вилізе за межі, там рантайм перевірки звернень за індексом в такому кейсі вже непотрібні!
    ...
    Це вже, насправді, давно відома фішка але застосовно до типів, на прикладі того ж Тайпскріпта
    if( input instanceof String ){
    тепер всередині {} ми знаємо що input буде стрічкою...

    То само «під капотом» й роблять всякі «статік аналайзери» й їх треба «вмовляти» за допомогою опцій, або «спеціальних коментарів» (типу // cppcheck-suppress, //coverity[щосьтам]) там, де вони «туплять»...

    або «нулабл тайпс» всяких Котлінів:

    <pre>
    val name: String? = getName()
    name.length // матюки компілятора, так не можна
    
    if( name != null ){
        // а тепер можна, бо тип вже String без ?
        println(name.length)
    }
    

    А «в ідеальному світі» це все повинно було б бути частиною мови програмування «з коробки»!!! Тобто ці всі «фішки», то насправді прояви «одного й того самого»: інформації, що «подорожує разом з типами» й «апдейтиться по мірі виконаних операцій»).

    Оце власне й є «справжня користь», й тут ідея прекрасна (і навіть застосовна до «нормальних» мов без «костилів»), тільки реалізації покищо часткові... (або дуже екзотичні, як Agda).

← Сtrl 123456...23 Ctrl →