1. Куча / Говнокод #25999

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    https://habr.com/ru/post/472970/
    
    Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля
    
    в Full самая наркомания, с точки зрения сетевика: длина,
    sequence number, причем НЕ ТОТ, что в основном MTProto,
    тело, CRC32. Да, всё это поверх TCP. Который предоставляет
    нам надежный транспорт в виде последовательного потока байт,
    никакие последовательности не нужны, тем более контрольные
    суммы. Окей, мне сейчас возразят, что в TCP 16-битная
    контрольная сумма, так что искажение данных случается.
    Отлично, только у нас вообще-то криптографический протокол
    с хэшами длиннее 16 байт, все эти ошибки — и даже
    более — будут отловлены на несовпадении SHA уровнем выше.
    Никакого смысла в CRC32 поверх этого — НЕТ.

    Ебать дебилы

    Запостил: j123123, 27 Октября 2019

    Комментарии (284) RSS

    • > тут Серьезная Математика в основе, придумывали явно Крутые Люди (два математика-призера ACM), а не кто попало. Цель — пустить пыль в глаза — достигнута.

      > Больше всего жопа раскаляется от того, что они навертели кучу абстракций, а потом забили на них болт, и обложили кодогегератор костылями
      > В результате, сначала от доки лётчик.jpg
      > Потом от кода джекичан.webp

      Вообще, охуительная статья! Отлично видно к чему приводит оверинжениринг и задействование всяких говноолимпиадников
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Не так в чем? В том что контрольную сумму дополнительно считают внутри TCP внутри криптографического протокола?
        Ответить
        • показать все, что скрытоvanished
          Ответить
        • Ну и что? На компакт-дисках, например, три слоя кода Рида-Соломона (это на дисках с файловой системой; на аудио-CD на один слой меньше).
          Ответить
          • Ты о чём? В «CIRC» два независимых кода Рида-Соломона. Но, внезапно, там они нужны, и используются для обеспечения возможности коррекции как ошибок в единичных битах (пылинки, ошибки считывателя), так и похеренные куски дорожки в несколько тысяч бит (царапины). А в телеге эта дополнительная контрольная сумма нахуй не нужна, и добавлена она исключительно потому, что какой-то малолетний дебил-олимпиадник решил, что «CRC32» звучит круто и неплохо бы его куда-нибудь всунуть.
            Ответить
    • Ебать, пиздец. Очередной пример «продукта» (говна), написанного «олимпиадниками» (программистами, специализирующимися на написании write-only говна).
      Ответить
      • Ёб твою мать…
        boolean fixCaption = !TextUtils.isEmpty(message) &&
            (media instanceof TLRPC.TL_messageMediaPhoto_old ||
             media instanceof TLRPC.TL_messageMediaPhoto_layer68 ||
             media instanceof TLRPC.TL_messageMediaPhoto_layer74 ||
             media instanceof TLRPC.TL_messageMediaDocument_old ||
             media instanceof TLRPC.TL_messageMediaDocument_layer68 ||
             media instanceof TLRPC.TL_messageMediaDocument_layer74)
            && message.startsWith("-1");
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Какая сишка сложная! Именно поэтому я за «PHP».
            Ответить
            • if (j == i + 7 + add) {
                        continue;
                      }

              мокака любит такой код
              Ответить
          • «is_domain_symbol» реализован не макросом, а анскилушной функцией. Говно неоптимальное!
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • Тогда это говно:
                if (pv[i] == 'h' && pv[i + 1] == 't' && pv[i + 2] == 't' && pv[i + 3] == 'p') {

                Тут же четыре сравнения вместо одного!

                Смотрите, как надо:
                if (*(uint32_t *)&(pv[i]) == 0x70747468) {


                https://ideone.com/UzyM7j
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • Да, на x86 будет пенальти каждый раз, когда i не кратно четырём, а на ARM может вообще не работать. Но Царь считает, что архитектуры, на которых не работает, не нужны.
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • Кстати, про байтордер: а на каких выживших платформах в 2019 году используется big endian или смешанный порядок?

                        «ARM» позволяет переключать байтордер, но в «Андроиде» выбрали little endian.

                        «Windows NT» тоже на всех платформах использовала little endian, даже на «MIPS», «PPC», «Alpha», «Itanium», «ARM», где можно было выбирать порядок байтов.

                        Сходу гуглится big endian в «Линуксе» и в «Солярисе» на «PPC». Где ещё? «Линукс», «Солярис», «AIX» на «SPARC», «IBM z», «Power ISA», «AVR32»?
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Ты в курсе, что арабы пишут числа в том же порядке, что и мы, хотя слова мы пишем слева направо, а арабы — справа налево? Выходит, что для арабов числа записаны в порядке little endian.

                            У немцев little endian для двухзначных чисел: двадцать пять они произносят как fünf und zwanzig (пять и двадцать). Для более длинных чисел у них PDP-endian middle endian: две тысячи сто двадцать пять будет звучать примерно как две тысячи сто пять и двадцать.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • Не «пажо», а «апож», как в «Хороших шутках».

                                Кстати, представь себе, какой багор на «Эльбрусах»: на том, что на архитектуре «SPARC», порядок big endian, а на том, что VLIW, порядок little endian.
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • показать все, что скрытоОни эльбурс потому что пидорашки вынимают из архивов старое провальное говно и выдают за собственную разработку. Важно понимать, что оставшиеся пидорашки настолько деградировали, что тупость и квадратно-гнездовой мосг не позволяет даже придумать тему для попила. Некоторым из них везет и их подогревают чертежами SPARC и VLVL80, некоторым - нет и их дилдоподобная ракета с говнореактором падает в холодную воду и тонет. Казалось бы продолжать не требуется, но национальная тупость русни не знает пределов и они этот реактор из холодной воды вытаскивают. КАБУМ!
                                    Ответить
                      • >> Кстати, арм починили

                        Круто! Уже на ARMv6 можно говнокодить (на нём собирали смартфоны ещё со вторым «Андроидом»). А вот на ARMv5 (который до сих пор используется в простых звонилках) говнокодить нельзя. Какой багор )))
                        Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • Только простые люди эту машину никогда не называли «5150». Даже в книжках Питера Нортона она называется «PC1» (чтобы отличать от «XT», от «PCjr» и от клонов).
                        Ответить
    • https://github.com/ton-blockchain/ton/issues/31
      > Николай Дуров - дважды доктор математических наук, а так же дважды олимпиадник мира. И у него много друзей олимпиадников, работающих в Телеграмме. Так что это не код убогий, а просто ТЫ СЛИШКОМ ТУПОЙ, чтобы понять гениев программирования

      > Ты завидуешь Николаю и его команде. Николай дважды ДОКТОР математических наук и в его команде тоже много крутых олимпиадников. Сделай свою бинарную схему и я посмотрю на неё, представь свой криптографический протокол. Ты сможешь написать С НУЛЯ систему баз данных. которые будут держать один из самых высоконагруженых сайтов в Рунете? У тебя могут быть аргументы: 1) Зачем делать бинарную схему. если есть Google Protobuf или Apache Thrift? 2) Зачем делать протокол если есть Signal? 3)Зачем делать транслятор из PHP в С++. если есть HHVM? 4) Зачем писать движки баз данных если есть много разных NoSQL - решений? А я тебе отвечу так: ты знаешь Игоря Сысоева? Он создал лучший веб сервер NGINX, хотя в его время уже был Apache Web Server, но он сделал велосипед и смог его улучшить и теперь самые крупные международные IT компании используют его решение. Недавно он продал свою компанию и заработал кучу долларов. А если тебе не хватает математических знаний, то это ещё один плюс признания таланта Брата Павла Дурова - Николая Дурова и его команды: Лопатина, Смирнова, Левина, Вальтмана.

      Бгггг XDDD
      Ответить
      • https://github.com/ton-blockchain/ton/blob/master/blockchain-explorer/blockchain-explorer.cpp#L301-L357
        .
            if (command == "status") {
              HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                td::actor::create_actor<HttpQueryStatus>("blockinfo", opts, prefix, std::move(promise)).release();
              }};
              response = g.wait();
            } else if (command == "block") {
              HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                td::actor::create_actor<HttpQueryBlockInfo>("blockinfo", opts, prefix, std::move(promise)).release();
              }};
              response = g.wait();
            } else if (command == "search") {
              if (opts.count("roothash") + opts.count("filehash") > 0) {
                HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                  td::actor::create_actor<HttpQueryBlockInfo>("blockinfo", opts, prefix, std::move(promise)).release();
                }};
                response = g.wait();
              } else {
                HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                  td::actor::create_actor<HttpQueryBlockSearch>("blocksearch", opts, prefix, std::move(promise)).release();
                }};
                response = g.wait();
              }
            } else if (command == "last") {
              HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                td::actor::create_actor<HttpQueryViewLastBlock>("", opts, prefix, std::move(promise)).release();
              }};
              response = g.wait();
            } else if (command == "download") {
              HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                td::actor::create_actor<HttpQueryBlockData>("downloadblock", opts, prefix, std::move(promise)).release();
              }};
              response = g.wait();
            } else if (command == "viewblock") {
              HttpQueryRunner g{[&](td::Promise<MHD_Response*> promise) {
                td::actor::create_actor<HttpQueryBlockView>("viewblock", opts, prefix, std::move(promise)).release();
              }};
              response = g.wait();

        промис-хуемис блядь
        Ответить
        • Так, блядь, минуточку.

          class HttpQueryRunner {
           public:
            HttpQueryRunner(std::function<void(td::Promise<MHD_Response*>)> func) {
              auto P = td::PromiseCreator::lambda([Self = this](td::Result<MHD_Response*> R) {
                if (R.is_ok()) {
                  Self->finish(R.move_as_ok());
                } else {
                  Self->finish(nullptr);
                }
              });
              mutex_.lock();  // <===========================
              scheduler_ptr->run_in_context_external([&]() { func(std::move(P)); });
            }
            void finish(MHD_Response* response) {
              response_ = response;
              mutex_.unlock();
            }
            MHD_Response* wait() {
              mutex_.lock();  // <===========================
              mutex_.unlock();
              return response_;
            }
          
           private:
            std::function<void(td::Promise<MHD_Response*>)> func_;
            MHD_Response* response_;
            std::mutex mutex_;
          };
          // ...
          response = g.wait();


          То есть они два раза из одного треда вызывают std::mutex::lock()? Охуенные там ДОКТОРА НАУК код пишут.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Ну да, это то ли UB, то ли дедлок.
              The expression m.lock() shall be well-formed and have
              the following semantics:
              Requires: If m is of type mutex, timed_mutex, shared_mutex, or
              shared_timed_mutex, the calling thread does not own the mutex.

              (§ 33.4.3.2/6,7)

              [ Note: A program may deadlock if the thread that owns
              a mutex object calls lock() on that object. If the implementation
              can detect the deadlock, a resource_deadlock_would_occur error
              condition may be observed. —end note ]

              (§ 33.4.3.2.1/4)

              Но, очевидно, дуровским олимпиадникам на такие мелочи поебать, они же ДОКТОРА НАУК.
              Ответить
        • показать все, что скрытоvanished
          Ответить
      • показать все, что скрытоvanished
        Ответить
        • показать все, что скрытоКогда говорят, что русня не может в сети, это подразумевает, что русня не может в слои OSI.
          Зато может сплотиться вокруг нацианального пидера, затянуть пояса и экономить на чексуммах.
          Ответить
        • --Винни, зачем ты ешь дерьмо?
          --А кто ты такой? А что ты понимаешь? Это делали Гениальные Олимпиадники, Доктора Наук. Ты завидуешь Николаю и его команде. Николай дважды ДОКТОР математических наук и в его команде тоже много крутых олимпиадников. Николай Дуров - дважды доктор математических наук, а так же дважды олимпиадник мира. И у него много друзей олимпиадников, работающих в Телеграмме. Так что это не код убогий, а просто ТЫ СЛИШКОМ ТУПОЙ, чтобы понять гениев программирования
          Ответить
      • показать все, что скрытоvanished
        Ответить
    • На одном проекте тоже сталкивался с типа математиком. Чувак посидел несколько месяцев, выкатил едва рабочий код на С++, который пришлось ещё править, чтобы заработало на всех платформах. При любых попытках узнать, как что-то работает или почему что-то не работает, посылал всех в пдф собственного авторства, состоявший на 90% из километровых write-only формул.

      Зато энтропия повышена
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоЕсли этот ваш инстаграм такое говно, то почему из-за него сдохло 20 пидорашек в ленинграде, а русня с этим ничего поделать не может несмотря на все духовные скрепы?
      Ответить
    • Нас заметили:
      https://twitter.com/Roniakia/status/1199014164229971970

      Даже скриншотят:
      https://pbs.twimg.com/media/EKPBw6wWwAAPwh8.jpg
      Ответить
      • @Roniakia
        Frontend dev, 25 y.o., t-girl. Former streamer, twitch partner. Also cosplayer. Also also love

        Я сначала подумал, что «t-girl» — это что-то связанное с «Телеграмом». А потом погуглил. Какой багор )))
        Ответить
        • Хех, вот всё круто. Но frontend dev ;(
          Ответить
          • Транссишник.
            Ответить
          • показать все, что скрытоvanished
            Ответить
            • Я думаю любой, кто училса на прогера, писал кипятком на "C++".
              Ответить
              • Именно поэтому я за «PHP».
                Ответить
              • показать все, что скрытоvanished
                Ответить
                • Подтверждаю.

                  А всё потому, что начинать обучение крестовиков в «Visual Studio» — маразм чистой воды. «VS» — это крайне мощный и сложный инструмент, использовать который правильно и эффективно тоже нужно учиться, причём долго. Учить студентов/школьников крестам в «Visual Studio» — это всё равно, что выдавать только что поступившим в автошколу башенный кран.
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Ну это уже другой вопрос. «system("pause")» и в «C» есть.
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • > Но почему не научить их CTRL+F5?
                          А хуй знает. Наверное, в методичках такого нет.

                          > Кстати, кроме шуток, на чём нужно учить программировать детей? Обычных? А будущих программистов?
                          Сложный вопрос, конечно. В принципе, для детей есть туева хуча систем, ориентированных на наглядную демонстрацию базовых концепций программирования: всякие там «черепашки LOGO», «Scratch» и прочие подобные штуковины. При помощи такого ПО школьникам младшего возраста популярно объясняют понятия потока управления, ветвления, циклов, переменных — в общем, всего того, о чём операторы шаблонизаторов имеют крайне смутное представление.

                          Для обучения более старших школьников же нужен язык с сильной и, в идеале, явной типизацией. Как ни странно, лучше всего под такие критерии подходит незабвенный «Pascal». Почему я так настаиваю на сильной типизации? Потому что если первым «настоящим» языком, с которым познакомится ребёнок, будет какой-нибудь «PHP» или «JavaScript» со слабой типизацией — на выходе мы получим классического оператора шаблонизатора с необратимым повреждением мозга. Об этом, кстати, ещё дедушка Джоэль писал, если мне память не изменяет. Такие убогие операторы, в силу детской травмы, просто неспособны будут воспринимать понятие типа — потому что в основе их представлений о языках программирования будет лежать слабая хуета.

                          Ну а когда этап «учебных» языков будет пройден, а уже совсем взрослые детишки определятся с направлением своей профессиональной деятельности (профильные 10-е, 11-е классы, 1 курс института) — то тут только «C». Обучить хорошего, годного профессионального программиста можно исключительно на «C» — см. «Joel on Software».
                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • > Неужели нету среди учителей ни одного человека, не являющегося полным дебилом?
                              Дык в России с учителями полнейший пиздец. Средний возраст там уже за пятьдесят (https://vogazeta.ru/articles/2019/4/11/teacher/7071-sredniy_vozrast_pedagogov_v_rossiyskih_s hkolah_prevyshaet_50_let) — много такие дамы преклонного возраста, чуть ли не при Сталине жившие, понимают в «Visual Studio»? Вот и приходится им работать по методичкам, которые пишут маразматики (недавно слышал историю про методичку, в которой 12.45 предлагали округлять до 13 — мол, сначала округляем до 12.5, а потом уже до 13 — и всем было похуй).

                              С Питоном хз, кстати. Не уверен, что дети 7-8 лет (1-3 классы) знают хотя бы английский алфавит.

                              Да, функциональщину с асмом тоже надо. У нас, кстати, был курс, на котором вкратце поясняли за несколько характерных представителей своих ниш: «Haskell», «Prolog», «Ruby» и ещё парочка. Весьма полезно, как по мне.
                              Ответить
                              • Говорят, сейчас новый ФГОС подъехал (федеральный государственный образовательный стандарт). Теперь без педагогического образования в школу не берут.

                                Какого-нибудь учёного со степенью и кучей изобретений и патентов не возьмут работать в школу, если у него нет корочки по педагогической специальности. А какого-нибудь дебила, который в педулище учился на тройки или вообще купил диплом, возьмут.
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • Зачем работать в какой-то говношколе мне тоже непонятно, но школы, как и ученики, бывают разные, и работать с призерами национальных и международных олимпиад может приносить куда больше удовольствия если ты любишь детей
                                    Ответить
                                  • Раньше шли. В школах платили больше, чем в вузах. В основном шли преподавать те, кто попал под сокращение, так что надо было быстро найти хоть какую-то работу.
                                    Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • Прямо сейчас пруфы не выложу, но у нас несколько институтских преподавателей совмещали работу в вузе с работой в школе. Хотя, может быть, у них просто в школе было больше часов, чем в вузе.
                                        Ответить
                                  • Если мы говорим о сортировке пузырьком и учёном, то либо программист настолько упорот, что работает в науке вместо зашибания тонн денег в фирмах, либо это учёный, который настолько упорот, что ему нравится использовать программирование не как повседневный инструмент автоматизации, а для интереса. То есть человек уже настолько нестандартен, что представить, что ему ещё нравится после работы с мозгонапрягающим контентом пойти в школу и рассасывать там элементарщину - раз плюнуть.

                                    Вообще, я считаю, что у человека могут быть сильно разные предпочтения в аудитории. Одним интересно написать в бложик для всех или курсы для профессионалов, которые сами пришли, сами заплатили, и готовы слушать, другим - объяснять коллегам, третьим интересны уже взрослые магистранты, кому-то по душе читать только ставшим на взрослые рельсы младшекурсникам, кому-то - с азартом вливать новые знания самым умным на свете и всё отрицающим старшеклассникам, кому-то - вести от начала до конца младших школьников и быть тем, благодаря кому человек потом выберет его предмет как занятие всей жизни.
                                    Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • > Если такая жопь со студией, то нахуй студия вообще? Ставьте DosBox и учите Turbo Pascal.
                                  Ну дык я про то и говорю. Вместо изучения языка происходит параша в стиле «откройте меню свойств проекта, во вкладке "Компоновщик" выберите раздел "Система" и установите значениеблаблабла», а потом появляется куча дебилов, для которых «компиляция» — это нажатие кнопки F5. Обучать языку надо в простом, лёгком текстовом редакторе с элементарной подсветкой синтаксиса: «Notepad++», «Sublime», «Atom», «Vim», тысячи их.
                                  Ну и разумеется, когда студент освоил язык хотя бы на базовом уровне, можно и нужно переходить в мощные IDE — потому что, как ни крути, но сейчас это главный инструмент программиста. И умению правильно их использовать тоже необходимо учить.
                                  Ответить
                                • > программисту все таки стоит учить английский как можно раньше
                                  Программиста нужно погрузить в английский и его пользу как можно раньше. Иначе какой толк учить это говно, когда ридна мова из самой души прёт, а для буржуйской питушни нужно делать ментальные усилия, смысла в которых не видишь?
                                  Без пересмотра программы будет только хуже: программист возненавидит чужой язык раньше, чем начинает ненавидеть сейчас.
                                  Ответить
                          • >Потому что если первым «настоящим» языком, с которым познакомится ребёнок, будет какой-нибудь «PHP» или «JavaScript» со слабой типизацией — на выходе мы получим классического оператора шаблонизатора с необратимым повреждением мозга.
                            Неправда, мозг мне повредили еще до того как я выучил js
                            Ответить
                            • Ну для больных разумом «JavaScript» идеально подходит, тут не поспоришь.
                              Ответить
        • Предупреждать надо, что в результатах поиска. А то я тоже погуглил, меня чуть не вырвало. Автор подборки про секретные операторы «Перла» предупредил, что НЕ надо гуглить «гоатсе», я и не гуглил «гоатсе», спасибо ему.
          Ответить
          • А мне «Гугл» выдал результаты без блока с картинками, просто ссылки.

            Именно поэтому я против «Гугл».
            Ответить
            • Я по глупости перешёл по какой-то из ссылок.
              Ответить
          • А я знал и всё равно погуглил.
            Ответить
          • Что же с тобой будет, если ты футанари загуглишь...
            Ответить
            • По контексту догадываюсь, что лучше не гуглить.

              Меня ещё знающие люди предупредили, чтобы я не гуглил «2girls1cup», «lemonparty», «meatspin», «bluewaffle».

              Ещё это... «typicalmacuser» тоже лучше не гуглить.
              Ответить
          • Пищдец. Я погуглил по картинкам - нихуя не понял (это же не удивительно?), потом прочитал текстовое определение.
            Ответить
            • Вилимо, у тебя запрещено показывать содержимое такого характера.
              Ответить
        • Блин, я только сейчас задумался, а что значит "t-shirt"?
          Ответить
        • Итак, кто из уважаемых посетителей сайта "Frontend dev, 25 y.o., t-girl"?
          Ответить
          • Мамой клянусь, не я!
            Ответить
            • Какой хуй )))
              Ответить
              • https://youtu.be/J97Cdp4aA0c
                Ответить
              • «Привĕт! ŏчäрőвäтĕльнåя милåя кőшēчкå . Хŏчў пŏзнäкőмитĉя для ćвőбŏдных взåимŏтнőшēний, с пäрнĕм. Для вĕćĕлőгő őтдыхå дẏшőй и тēлőм.
                ĕсли вдрўг нĕ отвĕчäю, мĕня можно ўвидĕть ввĕдя в гẏглĕ VaPamiza тåм мы смŏжем пőŏбщäться»
                Ответить
          • «Stertor»
            Ответить
            • Это не «Stertor». Это Александр Усачёв, который с недавних пор стал подписываться Александрой Усачёвой. Пишет на жопоскрипте. Одно из последних мест работы — БЦ «Cherry Tower».
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Жизнь жестока. Мне с моими предпочтениями в программировании суждено стать Елизаветой.
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Нет. Какой такой Елизар? Приходил, пока меня не было?

                      P.S. А, понял, почему меня вдруг называют Елизаром. Я же про Елизавету написал (специально взял рандомное имя), а её "реверс-инженирнули".
                      Ответить
                  • Не беспокойся, твои хардкорные крестовые этюды на квантовом уровне пропечатали твою бороду в ткань Мироздания. Теперь если и станешь Елизаветой, то только с бородой.
                    Ответить
                    • Зато можно будет съездить на «Евровидение»!
                      Ответить
              • нет, блять, это «Stertor».
                Ответить
        • > «t-girl»

          Вот к чему это ваше прахрамиравание приводит
          https://i.kym-cdn.com/photos/images/original/001/585/019/f04.jpg
          Ответить
        • показать все, что скрытоvanished
          Ответить
        • Добавим остроты: @Roniakia/@Lazercore зовут Саней (и в мужском образе, и в женском).
          Ответить
    • показать все, что скрытоvanished
      Ответить
      • >> В 1980 году Митник совершает свой первый взлом — школьной локальной сети.

        А в нашей школе в 1997-м году никакой локальной сети не было, а модем был только в кабинете директора (и то, когда речь заходила о модеме, о нём говорили с таким пафосом, как будто о самолёте).
        Ответить
        • показать все, что скрытоvanished
          Ответить
        • показать все, что скрытоvanished
          Ответить
          • У нас в восьмом классе была информатика только потому, что это был эксперимент (у наших предшественников информатика начиналась в девятом).
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • Домашку задавали на написание программ. Например, задавали программу, которая проводит викторину на знание какой-нибудь фигни (ну типа как тест на знание ПДД). Твоя программа должна посчитать баллы и выдать виртуальный приз (показать что-нибудь на экране).

                В восьмом классе у нас были «Агаты» без жёсткого диска. 5-дюймовых дискет, да ещё и отформатированных под «Агат» (у него физический формат заголовка сектора не совпадал с «IBM PC»), почти ни у кого не было. Нужно было за урок успеть набрать с тетрадки программу и показать преподавателю, пока компьютер не завис (судя по всему, у этих «Агатов» были дохлые конденсаторы, поэтому работали они нестабильно).
                Ответить
      • grigory oster, он же gost?
        Ответить

    Добавить комментарий