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

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

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

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

      Вообще, охуительная статья! Отлично видно к чему приводит оверинжениринг и задействование всяких говноолимпиадников
      Ответить
    • Что не так?
      Ответить
      • Не так в чем? В том что контрольную сумму дополнительно считают внутри TCP внутри криптографического протокола?
        Ответить
        • Так я не понял, кто дебил? Телеграмовцы или автор комента? А вообще бывает и хуже, например, баг в пине wps.
          Ответить
        • Ну и что? На компакт-дисках, например, три слоя кода Рида-Соломона (это на дисках с файловой системой; на аудио-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");
        Ответить
        • https://github.com/vk-com/kphp-kdb/blob/ce6dead5b3345f4b38487cc9e45d55ced3dd7139/bayes/bayes-data.c#L654
          Ответить
          • Какая сишка сложная! Именно поэтому я за «PHP».
            Ответить
            • if (j == i + 7 + add) {
                        continue;
                      }

              мокака любит такой код
              Ответить
          • «is_domain_symbol» реализован не макросом, а анскилушной функцией. Говно неоптимальное!
            Ответить
            • наверняка там боттлнек
              Ответить
              • Тогда это говно:
                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
                Ответить
                • хахаха, охуенно
                  Ответить
                  • Code golf: вместо &(pv[i]) можно написа́ть (pv+i).
                    Ответить
                    • 0x70747468 можно собрать сдвигом на 8 и орированием с нужным символом
                      будет читаемнее
                      Ответить
                      • Что-то типа схемы Горнера для многочленов?
                        'h' | (('t' | (('t' | ('p' << 8)) << 8)) << 8)
                        Ответить
                • мне тут подсказывают из зала, что можно объебаться с алайнментом (не горя уж про байтордер)
                  Ответить
                  • Да, на x86 будет пенальти каждый раз, когда i не кратно четырём, а на ARM может вообще не работать. Но Царь считает, что архитектуры, на которых не работает, не нужны.
                    Ответить
                    • На самом деле не каждый раз, а чуть реже.

                      Если представить, что кеша нет, то пенальти будет при выходе за каждые 64 бита (бо ширина такая у контрорллера памяти)

                      А если с кешем, то наверное при выходе за границу кеш линии, это уже как карта ляжет.

                      Просто Интел гарантирует тебе наиболее мявные условия при выравнивании структуры по ее размеру, чтобы в эти считалки не играть


                      Кстати, арм починили

                      теперь можно говнокодить
                      http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html
                      Ответить
                      • Кстати, про байтордер: а на каких выживших платформах в 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»?
                        Ответить
                        • Пожалуй что спарки только. PPC вроде уже мало кому интересен.

                          А какой байтордер у человека?
                          Арабские цифры используют big endian
                          В русском языке тоже сначала идут мост сайнификант.

                          Есть где-то наборот?

                          Кто-то запишет наш год как "девятнадцать две тысячи"?
                          Ответить
                          • Ты в курсе, что арабы пишут числа в том же порядке, что и мы, хотя слова мы пишем слева направо, а арабы — справа налево? Выходит, что для арабов числа записаны в порядке little endian.

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

                              у меня-то постоянно подгорает от того, что на бумажечке у меня
                              "жопа", а если представить ее в виде инта в x86, то она "пажо"
                              Ответить
                              • Не «пажо», а «апож», как в «Хороших шутках».

                                Кстати, представь себе, какой багор на «Эльбрусах»: на том, что на архитектуре «SPARC», порядок big endian, а на том, что VLIW, порядок little endian.
                                Ответить
                                • я мыслил в терминах ворда. один ворд -- один слог.

                                  Эльбрусы же просто одинаково называются, по сути они разные совершенно

                                  https://ru.wikipedia.org/wiki/Багрино
                                  Ответить
                                  • показать все, что скрытоОни эльбурс потому что пидорашки вынимают из архивов старое провальное говно и выдают за собственную разработку. Важно понимать, что оставшиеся пидорашки настолько деградировали, что тупость и квадратно-гнездовой мосг не позволяет даже придумать тему для попила. Некоторым из них везет и их подогревают чертежами SPARC и VLVL80, некоторым - нет и их дилдоподобная ракета с говнореактором падает в холодную воду и тонет. Казалось бы продолжать не требуется, но национальная тупость русни не знает пределов и они этот реактор из холодной воды вытаскивают. КАБУМ!
                                    Ответить
                      • >> Кстати, арм починили

                        Круто! Уже на ARMv6 можно говнокодить (на нём собирали смартфоны ещё со вторым «Андроидом»). А вот на ARMv5 (который до сих пор используется в простых звонилках) говнокодить нельзя. Какой багор )))
                        Ответить
                    • Кстаи, в 8088 не было никакого пинальти
                      Именно потому я за IBM PC 5150
                      Ответить
                      • Только простые люди эту машину никогда не называли «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()? Охуенные там ДОКТОРА НАУК код пишут.
          Ответить
          • он не рееентерабельный в плюсах?
            Ответить
            • Ну да, это то ли 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)

              Но, очевидно, дуровским олимпиадникам на такие мелочи поебать, они же ДОКТОРА НАУК.
              Ответить
              • В жабе просто например syncrhonized реентерабльный
                https://ideone.com/LYBEDM
                потому мну и спросил

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

      Зато энтропия повышена
      Ответить
      • Ну а что, математик еще должен програмирование в деталях изучать? Его дело - формулы вывести и алгоритм написать, а адаптировать для разных систем, ui прикручивать и прочее - это уже действительно дело прикладников.

        А по теме - ну да, поверх TCP. То есть сейчас все это избыточно, а завтра? Может, там UDP добавят или вообще упакованы в HTTP-запросы, запрещенные протоколы обходить это вам не порты на роутере пробрасывать.
        Ответить
        • показать все, что скрытоНе фатк, что избыточно даже сейчас. Как я понимаю без изучения проктокола, эта CRC, про которую русята визжат, на сессионном уровне, т.е. контролирует целостность сегментов в том числе на рилеях.
          Ответить
        • > Отлично, только у нас вообще-то криптографический протокол с хэшами длиннее 16 байт, все эти ошибки — и даже более — будут отловлены на несовпадении SHA уровнем выше. Никакого смысла в CRC32 поверх этого — НЕТ.
          Ладно если б они туда вхуярили какого-нибудь Рида-Соломона, чтобы ошибки транспорта исправлять
          Ответить
          • Оффтоп: кто знает VPN с избыточным кодированием, который может компенсировать потери пакетов?
            Ответить
            • чем плох vpn по tcp?
              Ответить
              • Он может компенсировать потери пакетов?
                Ответить
                • Кусочек может, там же есть чексума
                  Целый пакет наверное нужно пересылать заново, но чем это хуже избыточности?
                  Ответить
                  • Тем что это не может компенсировать потерю пакета, очевидно. Какой еще кусочек? Битый пакет тебе не дойдет из-за ошибки контрольной суммы на L2.
                    Ответить
                    • Чем компенсация пакета посредством посылки избыточной информации лучше, чем пересылка ее по требованию?

                      В любом случае ты исправишь ошибку до попадания данных на протокол верхнего уровня.

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

                      L2 тут irrelevant, в одном TCP может быть много разных L2, в том числе и без чексуммы (в теории)
                      Ответить
                      • При потере пакета TCP резко сбрасывает скорость. Короче, ответь на вопрос.
                        Ответить
                        • TCP пересылает весь сегмент, потому и скорость проседает.
                          Чтобы эту проблему решить, можно уменьшить окно. Впринципе, современные ОС сами умеют это окно уменьшать, но пользователям MS-DOS и Windows XP приходится страдать.
                          https://blogs.technet.microsoft.com/netgeeks/2018/05/21/a-word-about-autotuninglevel-tcp-receive-auto-tuning-level-explained/


                          К счастью, таких пользователей давно уже нет.


                          Отвечаю:
                          Мне не известны такие VPN. Интуитивно кажется, что пересылка потерянного сегмента более выгодна, чем избыточность.

                          Так же кажется, что если бы избыточность была удобнее, чем пересылка сегмента, то давно была бы реализована в TCP.

                          Но возможно я просто не шарю
                          Ответить
                          • Мне вообще-то для планшета надо. А ты, пидор, похоже всё знаешь, да?

                            >Мне не известны такие VPN.
                            Вот так правильнее. Ты тупой хуй и нихуя не знаешь.

                            >Интуитивно кажется, что пересылка потерянного сегмента более выгодна, чем избыточность.
                            Я тебе пидору уже сказал, что TCP резко сбрасывает скорость при потере пакета.
                            Ответить
                            • Ты очень аргументировано и развернуто объяснил мне преимущество избыточности перед пересылкой сегмента и доказал, что эта проблема не решается с помощью изменения размеров окна.

                              Всегда приятно поговорить с экспертом

                              >Мне вообще-то для планшета надо.
                              Под управлением Джелли Бин?
                              Ответить
                              • а еще бывает
                                https://whitequark.org/blog/2011/09/12/tweaking-linux-tcp-stack-for-lossy-wireless-networks/
                                cp_frto (integer; default: 0; since Linux 2.4.21/2.6)
                                              Enable  F-RTO,  an enhanced recovery algorithm for TCP retrans‐
                                              mission timeouts (RTOs).   It  is  particularly  beneficial  in
                                              wireless  environments  where  packet  loss is typically due to
                                              random radio interference rather than intermediate router  con‐
                                              gestion.  See RFC 4138 for more details.
                                
                                              This file can have one of the following values:
                                
                                              0  Disabled.
                                
                                              1  The basic version F-RTO algorithm is enabled.
                                
                                              2  Enable  SACK-enhanced  F-RTO  if  flow uses SACK.  The basic
                                                 version can be used also when SACK is in use though in  that
                                                 case scenario(s) exists where F-RTO interacts badly with the
                                                 packet counting of the SACK-enabled TCP flow.
                                Ответить
            • Это чтобы новый роутер не покупать?
              Ответить
              • Как починить LED-лампочку самостоятельно: пошаговая инструкция

                Опять перегорела светодиодная лампочка? Не торопитесь ее выкидывать. CHIP расскажет, как самостоятельно в домашних условиях починить ее с помощью обычных подручных средств.
                Если у вас перегорела LED-лампочка, за которую вы отдали приличные 90-150 рублей, есть шанс, что вы сможете вернуть ее к жизни, причем сделать это совсем не сложно. CHIP расскажет, что для этого понадобится и как выполнить ремонт самостоятельно благодаря нашей пошаговой инструкции.
                Светодиодные или LED-лампочки в последнее время получили очень широкое распространение благодаря существенному падению на них цены. Но это не означает, что производители сумели найти более дешевую технологию изготовления ламп при той же надежности и долговечности. Как правило, в недорогих устройствах используются упрощенные схемы питания и более дешевые комплектующие. Именно поэтому срок службы таких светодиодных светильников может быть очень короток.
                Но, заплатив, к примеру, 90 рублей за LED-лампочку, все же мы рассчитываем, что она прослужит как минимум год. Тем обиднее видеть, как спустя 2-3 месяца после покупки лампа перестает подавать «признаки жизни». Виной тому, как многие уже догадались, бюджетное оснащение в компонентной части лампочки, в результате чего на светодиоды подается гораздо большее напряжение, чем необходимо и, как следствие, перегорание одного из 8 светодиодов. Т.к. эти элементы установлены по последовательной схеме, то выход из строя хотя бы одного приводит к выключению и всех остальных.
                В отличие от ламп с нитью накаливания и газовой экономной лампы, LED-лампочку можно починить, причем самостоятельно в домашних условиях. CHIP расскажет, как это сделать, не обращаясь к специалистам.
                Ответить
                • Если у вас есть вопросы по качеству и долговечности светодиодных ламп, вы можете задать их представителю компании-производителя в комментариях нашего специального анонса:
                  Все, что вы хотели знать о светодиодных лампах: эксперт отвечает на вопросы
                  Что потребуется для починки светодиодной лампочки
                  Ничего сверхъестественного из инструментов приобретать не придется. В каждой семье обычно есть паяльник, желательно, чтобы он был с тонким жалом. Вместе с ним обычно имеется припой и канифоль (либо флюс, содержащий припой), либо кислота для пайки. Также будут нужны и пинцеты — без них никуда.
                  Кроме этого, для комфортного проведения работ, желательно иметь держатель (третья рука), либо помощника, который придержит плату со светодиодами. Для быстрого разогрева платы со светодиодами мы рекомендуем использовать компактную газовую горелку. Она позволит быстро отпаять перегоревший светодиод и мгновенно припаять на его место старый. Купить газовую горелку можно в любом магазине табака и стоимость составляет около 350 рублей. Но, если вы не намерены сильно тратиться, подойдет и турбозажигалка.
                  Как починить LED-лампочку самостоятельно: пошаговая инструкцияНо главным компонентом нашего ремонтного набора является еще одна вышедшая из строя светодиодная лампа, желательно такого же типа. Именно она послужит донором запчастей для ремонтируемой лампочки. Т.к. обычно перегорает лишь 1 светодиод, то 7 других пригодятся вам для ремонта выходящих из строя устройств.
                  И да, после того, как вы почините лампочку, потребуется приклеить на прежнее место ее плафон, а значит нужно запастиcь и супер-клеем (или аналогичным прозрачным клеем для пластика).
                  Ответить
                  • Ремонт LED-лампочки: пошаговое руководство
                    Прежде, чем заняться разбором осветительного прибора отметим, что в большинстве случаев его основание и плафон выполнены из пластика, причем довольно вязкого, что обеспечит вам определенную безопасность при разборке — ничто не разобьется и не треснет. Но осторожность в работе нужно проявлять.
                    Итак, у вас имеется две вышедшие из строя LED-лампочки одного типа. Обе придется осторожно разобрать.
                    Снятие плафона с лампочки

                    Начать следует с отделения плафона от корпуса. Для этого возьмите короткий нож желательно не очень острый, чтобы не сделать лишних надрезов на пластике. Прилагая небольшие усилия, вставьте кончик в щель между плафоном и корпусом с наклоном к плафону. Пройдитесь так по периметру соединения несколько раз, постепенно углубляясь. Чтобы не пораниться, можете делать это в х/б перчатках с резиновыми вкраплениями.
                    Как починить LED-лампочку самостоятельно: пошаговая инструкцияКак только лезвие ножа войдет в щель достаточно глубоко, отделите плафон от основания. Теперь перед вами алюминиевая платформа со светодиодами и двумя подпаянными к ней проводами.
                    Как починить LED-лампочку самостоятельно: пошаговая инструкция На плате они обычно помечены плюсом и минусом. А один из проводов — плюсовой, имеет красную маркировку. Это необходимо запомнить, чтобы потом правильно подпаять все на прежние места.
                    Отсоединение контактов от платы со светодиодами

                    Для того, чтобы было удобней отсоединять провода от платы, ее желательно закрепить в держателе или попросить напарника. У вас в руках будет с одной стороны пинцет, в другой — паяльник.
                    Ответить
                    • Как починить LED-лампочку самостоятельно: пошаговая инструкцияЗаранее подцепите отпаиваемый провод пинцетом и коснитесь контакта жалом паяльника, предварительно смочив его канифолью. Отделив один провод, проделайте такую же операцию со вторым. Аккуратно выпрямите их и снимите плату со светодиодами с алюминиевого основания.
                      Извлечение сгоревшего светодиода

                      Как вы уже заметили, плата размещалась на алюминиевом основании, но надежный тепловой контакт с ним обеспечивала белая термопаста. Ее желательно оставить и на основании и с тыльной стороны светодиодной платы. Зачистить нужно лишь место на тыльной стороне под сгоревшим светодиодом. Его легко определить по черной отметине на желтом теле элемента.
                      Как починить LED-лампочку самостоятельно: пошаговая инструкцияЗакрепите пластину со светодиодами в держателе (или привлеките напарника), так, чтобы было достаточно места для подхода жала паяльника или газовой горелки.
                      Как починить LED-лампочку самостоятельно: пошаговая инструкцияВозьмите в левую руку пинцет, а в правую горелку. Поднесите пламя горелки на 2-3 с к тыльной стороне платы и в это время возьмите кончиками пинцета светодиод. Он должен легко отсоединиться. Первый этап сделан и нерабочий светодиод отпаян от платы.

                      Теперь повторите все предыдущие шаги, но с другой лампочкой-донором, чтобы снять нее рабочий светодиод.
                      Установка нового светодиода на плату

                      Еще раз закрепите пластину со светодиодами ремонтируемой лампочки в держателе (или привлеките напарника), так, чтобы было достаточно места для подхода жала паяльника или газовой горелки. Желательно, чтобы плата располагалась горизонтально.
                      Ответить
                      • Разместите на контактах платы, где будет установлен новый светодиод капельки флюса с припоем или просто аккуратно намажьте, например, зубочисткой контакты кислотой для пайки. После этого, разместите новый светодиод контактами, расположенными снизу, к соответствующим подготовленным местам на плате.
                        Важно! При размещении светодиода на плате необходимо учитывать его полярность. Большая площадка контакта — это минус.
                        Поднесите к тыльной стороне платы пламя горелки на 3-4 с, чуть прижмите светодиод сверху, чтобы он, при расплавлении припоя, надежно припаялся к плате.
                        Как починить LED-лампочку самостоятельно: пошаговая инструкцияПротрите ваткой со спиртом места контактов у нового светодиода, чтобы и избежать дальнейшего окисления и коррозии контактов платы.
                        Возвращение светодиодной платы на основание и ее подключение

                        Чтобы вернуть теплопроводный слой на тыльной стороне платы в исходное состояние, аккуратно размажьте пасту с соседних зон пластины. Установите плату на алюминиевое основание, продев в отверстие провода и слегка придавите пластину для плотного контакта.
                        Как починить LED-лампочку самостоятельно: пошаговая инструкция Как починить LED-лампочку самостоятельно: пошаговая инструкция
                        Припаяйте провода к контактам светодиодной платы соблюдая полярность, для удобства, закрепив предварительно в держателе или, если его нет, попросите подержать ее напарника, например, плоскогубцами.
                        Как починить LED-лампочку самостоятельно: пошаговая инструкцияТеперь самое время проверить работу обновленной лампы. Вкрутите ее в плафон, например, настольного светильника. Если все заработало, то можно приклеивать плафон.
                        Ответить
                        • Если лампочка не зажглась, значит есть проблемы с другим светодиодом, или с дросселем, расположенным в основании. Прозвонить светодиоды можно не отпаивая от базы, подав на соседнюю пару около 8 вольт (например, через маломощный блок питания с таким же постоянным напряжением или с помощью батарейки Крона с напряжением 9 вольт). Потребляемая мощность каждого светодиода составляет, как правило, 1 Вт.
                          Если все светодиоды в порядке, то возможно вышел из строя драйвер — своего рода блок питания для светодиодов, установленный под алюминиевой крышкой ближе к цоколю. Его можно также попробовать взять от лампочки донора.
                          Приклейка плафона

                          После испытаний и подтверждения работоспособности отремонтированной лампочки можно смело приклеивать на место ее плафон. Для этого аккуратно намажьте внутреннюю поверхность торца основания и плотно прижмите сферический плафон, подержите так пару минут и затем отложите собранную LED-лампочку в укромное место, чтобы дать клею затвердеть. Некоторые рекомендуют использовать силиконовый клей, чтобы было легче вскрывать лампочку для повторного ремонта.
                          Как починить LED-лампочку самостоятельно: пошаговая инструкцияИтак, вы смогли починить светодиодную лампочку своими руками, и у вас остались в запасе еще 6 светодиодов, с помощью которых есть возможность починить и другие устройства в будущем.
                          Ответить
                          • В игнор захотел?
                            Ответить
                          • ДМИТРИЙ СЕРЕНКОВ
                            месяц назад
                            В автомобиле «Аурус» из отечественного только кожа Рязанского кожевенного завода, в самолёте SSJ--100 отечественных компонентов чуточку больше, отечественный автопром без иностранцев буксует. Чтобы мы не делали у нас получается танк или ракета. Очередные клоуны нас учат здесь переделывать работу очередных отечественных рукожопов.Одни делают брак, другие учат как это брак переделывать, попутно повышая спрос на китайские сведодиоды. ЛОХОТРОН !!!!!
                            Ответить
        • > Может, там UDP добавят
          Может и добавят, а данные все равно хешем подаиывают же, он же обосреца, нет разве?

          если на то пошло, то надо тогда пилить два уровня своих протоколов

          * а-ля транспорт поверх udp
          * а-ля прикладной

          хуль все в каучу то
          Ответить
        • Формулы, которые он вывел, тоже особо не работали. Так что у чувака флеш-рояль.

          Кстати, проект, на котором всё это происходило, намедни окончательно накрылся, так что не чокаясь.
          Ответить
          • так может быть он был в первую очередь мудак, а уже потом математик?
            Ответить
            • Не буду излишне наговаривать, но в целом такой вариант я тоже исключать бы не стал
              Ответить
          • >намедни окончательно накрылся
            Как говорится, лишь бы не из-за меняне только из-за меня.
            Ответить
            • Накрылся он не из-за него и даже, как ни странно, не из-за меня, а из-за того, что пейсатые стартаперы ожидаемо откусили больше мацы, чем смогли проглотить.
              Ответить
          • Что накрылось?
            Ответить
    • Я так понял, русьня, копротивлявшаяся за математику, сама у себя и отсосала?
      Ответить
      • Дуров написал говнокод => математика не нужна

        Сема
        Ответить
        • Математики пишут говнокод по определению, т.к. не программисты.
          Ответить
          • Я знаю многих программистов, которые пишут говнокод
            Ответить
            • Откуда?
              Ответить
              • По работе сталкивались, например.
                Я сам лет до двадцати пяти тоже любил писнуть говнеца
                Ответить
            • А есть математики, которые не программисты и не пишут говнокода?
              Ответить
              • https://sun3-12.userapi.com/c854532/v854532675/13c1f2/NcQcPOk2pQ4.jpg
                Ответить
                • на 119 строчке очень круто!
                  Ответить
                • Красота.
                  Единственное - глобальная область видимости засирается этими константами, но, возможно, просто язык по-другому не умеет.
                  Ответить
                  • А может быть, константы имеют самостоятельное значение и используются за пределами функции, как, например, число «пи»?
                    Ответить
                    • Тогда непонятно, зачем их объявлять перед функцией, в которой используются, да еще и после комментария, относящегося к функции.
                      Хотя, конечно, не зная, сказать сложно: вот там k от g зависит и все такое. Так что, наверное, действительно не зря.
                      Ответить
                • Оптимизировал:
                  float rayleigh_phase_func(float mu)
                  {
                  	return
                  		(1. + mu*mu)
                  	/ //-------------------
                  		(5.33333333333333333333333333333 * PI);
                  }


                  И вообще, тут говно в том что в функции считается говно с дабл числами, а сама функция принимает и возвращает float. На всяких контроллерах бывает так, что аппаратно реализованы операции с плавучкой для float но не для double так что надо это говно еще пофиксить

                  float rayleigh_phase_func(float mu)
                  {
                  	return
                  		(1.f + mu*mu)
                  	/ //-------------------
                  		(float)(5.33333333333333333333333333333 * PI);
                  }

                  ибо нехуй

                  https://godbolt.org/z/wZHufW
                  Ответить
                  • Компилятор c -funsafe-math-optimizations может еще всякой хуитени понаделать сделав умножение вместо деления https://godbolt.org/z/kpbap5 но в любом случае переделывание хуйни из дабла в флоат имеет смысл, пушо нет этих инструкций cvtss2sd cvtsd2ss которые "Convert one single-precision floating-point value in xmm2/m32 to one double-precision floating-point value in xmm1" и "Convert one double-precision floating-point value in xmm2/m64 to one single-precision floating-point value in xmm1."
                    Ответить
                    • Если добавить ключик -mno-sse2, то вместо cvtss2sd/cvtsd2ss будут обычные инструкции fld.
                      Ответить
                    • А, понял, речь не об избавлении о cvtss2sd/cvtsd2ss, а о том, что генерируется длинный код.

                      А как тебе такой вариант?
                      #define FLOAT_PI (float)(M_PI)
                      float rayleigh_phase_func(float mu)
                      {
                      	return 
                      		(1.f + mu*mu) * 3.f
                      	/ //-------------------
                      		(16 * FLOAT_PI);
                      }
                      Ответить
                      • Ну вообще норм, компилятор с опцией -funsafe-math-optimizations должен соптимизировать.
                        По поводу "(16 * FLOAT_PI)" - FLOAT_PI умножать на 16 норм т.к. 16 это степень двойки, и умножение на степень двойки для флоатов означает лишь изменение экспоненты, но вообще для более общего случая лучше умножать double константу на некоторую хрень, а уже потом кастовать в float, чтоб точность не проебывалась из-за этой хуйни
                        Ответить
                        • Лучше вообще всё считать в дабле или даже в лонг дабле, а только в самом конце обрезать до флоата.
                          Ответить
                          • Если в компилтайме, то да. А если в рантайме, то почему б тогда не принимать-возвращать дабл? Ну и считаться оно будет дольше
                            Ответить
              • Есть.
                Например учительница математики начальных классов
                * математик
                * не программист
                * не пишет говнокода
                Ответить
                • > которые не программисты, пишут код и не пишут говнокода?
                  Ответить
    • показать все, что скрытоЕсли этот ваш инстаграм такое говно, то почему из-за него сдохло 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 ;(
          Ответить
          • Транссишник.
            Ответить
          • Пару лет назад она была мальчиком, и может быть писала на С++.
            Уточни у нее
            Ответить
            • Я думаю любой, кто училса на прогера, писал кипятком на "C++".
              Ответить
              • Именно поэтому я за «PHP».
                Ответить
              • Как минимум, писал system("pause");
                Ответить
                • Подтверждаю.

                  А всё потому, что начинать обучение крестовиков в «Visual Studio» — маразм чистой воды. «VS» — это крайне мощный и сложный инструмент, использовать который правильно и эффективно тоже нужно учиться, причём долго. Учить студентов/школьников крестам в «Visual Studio» — это всё равно, что выдавать только что поступившим в автошколу башенный кран.
                  Ответить
                  • А всё потому, что начинать обучение программированию с «С++» — маразм чистой воды. «С++» — это крайне мощный и сложный инструмент, использовать который правильно и эффективно тоже нужно учиться, причём долго.

                    Учить студентов/школьников итерации по циклам в «С++» — это всё равно, что выдавать только что поступившим в автошколу башенный кран.
                    Ответить
                    • Ну это уже другой вопрос. «system("pause")» и в «C» есть.
                      Ответить
                      • Но почему не научить их CTRL+F5?

                        Кстати, кроме шуток, на чём нужно учить программировать детей? Обычных? А будущих программистов?
                        Ответить
                        • > Но почему не научить их CTRL+F5?
                          А хуй знает. Наверное, в методичках такого нет.

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

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

                          Ну а когда этап «учебных» языков будет пройден, а уже совсем взрослые детишки определятся с направлением своей профессиональной деятельности (профильные 10-е, 11-е классы, 1 курс института) — то тут только «C». Обучить хорошего, годного профессионального программиста можно исключительно на «C» — см. «Joel on Software».
                          Ответить
                          • > Наверное, в методичках такого нет.
                            Всегда хуею с такого. Это как пыхоёбы до сих пор учат вырезать кавычку из GET запроса для борьбы с SQL инъекцией, так школоло учат писать system("pause").

                            Неужели нету среди учителей ни одного человека, не являющегося полным дебилом?

                            >черепашки
                            Дейкстра считал, что визуализировать ничего не надо:) Но он конечно говорил о более старших ребятах.

                            Я бы всё же взял в качестве "детского" языка (для детей 7-8 лет) basic или даже python. Если ребенок умеет складывать небольшие целые положительные числа, знает алфавит, и умеет читать (обычно умеют к концу первого класса), то можно учить чему-то типа

                            print("Как тебя зовут?")
                            name = input()
                            print("Привет, ", name)


                            А потом конечно надо Pascal по причине его строгой, статической типизации, явного отделения интерфейса от реализации, функции от процедуры, передачи по ссылке от передачи копированием, указателя от объекта и пр, чтобы алгоритмы и структуры отложились на подкорке.

                            Разводить поносную кашу в неокрепшем мозгу посредством JavaScript и PHP конечно не нужно, иначе ты потом никогда не объяснишь ему чем стек от кучи отличается и сколько бит в байте.

                            Про си я тоже согласен, но возможно параллельно надо изучать что-то функциональное (хаскель?).

                            Си можно мешать с асмом для понимания архитектуры CPU и OS, а функциональщину для математики.
                            Ответить
                            • > Неужели нету среди учителей ни одного человека, не являющегося полным дебилом?
                              Дык в России с учителями полнейший пиздец. Средний возраст там уже за пятьдесят (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» и ещё парочка. Весьма полезно, как по мне.
                              Ответить
                              • Говорят, сейчас новый ФГОС подъехал (федеральный государственный образовательный стандарт). Теперь без педагогического образования в школу не берут.

                                Какого-нибудь учёного со степенью и кучей изобретений и патентов не возьмут работать в школу, если у него нет корочки по педагогической специальности. А какого-нибудь дебила, который в педулище учился на тройки или вообще купил диплом, возьмут.
                                Ответить
                                • А пойдет-ли ученый работать в школу?

                                  Учить студентов -- прикольно, на пятом курсе они могут очень крутые штуки делать.

                                  А какой интерес учить детей?
                                  Двадцать лет к ряду подтирать им сопли, и учить сортировке пузырьком?
                                  Ответить
                                  • Зачем работать в какой-то говношколе мне тоже непонятно, но школы, как и ученики, бывают разные, и работать с призерами национальных и международных олимпиад может приносить куда больше удовольствия если ты любишь детей
                                    Ответить
                                    • Вроде, Стертор работает в школе
                                      Учит паскалю мальчиков в мужской гимназии

                                      >работать с призерами национальных и международных олимпиад

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

                                    Вообще, я считаю, что у человека могут быть сильно разные предпочтения в аудитории. Одним интересно написать в бложик для всех или курсы для профессионалов, которые сами пришли, сами заплатили, и готовы слушать, другим - объяснять коллегам, третьим интересны уже взрослые магистранты, кому-то по душе читать только ставшим на взрослые рельсы младшекурсникам, кому-то - с азартом вливать новые знания самым умным на свете и всё отрицающим старшеклассникам, кому-то - вести от начала до конца младших школьников и быть тем, благодаря кому человек потом выберет его предмет как занятие всей жизни.
                                    Ответить
                              • Можно перевести питон на русский:)

                                Но вообще дети вполне себе учат английский со второго класса в специальных школах (а программисту все таки стоит учить английский как можно раньше), так что может быть классу к третьему вполне могут знать слова типа "print" и "input".

                                Если такая жопь со студией, то нахуй студия вообще?
                                Ставьте DosBox и учите Turbo Pascal.

                                >«Haskell», «Prolog», «Ruby» и ещё парочка.
                                Да, такая идея есть:

                                * один асм (пусть хоть под реальный режим, хоть под спектрум)
                                * один скриптовый (python, ruby, perl)
                                * один с рефлексией, gс и стат тупизацией (java, C#)
                                * один логический (prolog)
                                * один функцыональный
                                * и си
                                :)

                                но это конечно уже в институте
                                Ответить
                                • > Если такая жопь со студией, то нахуй студия вообще? Ставьте DosBox и учите Turbo Pascal.
                                  Ну дык я про то и говорю. Вместо изучения языка происходит параша в стиле «откройте меню свойств проекта, во вкладке "Компоновщик" выберите раздел "Система" и установите значениеблаблабла», а потом появляется куча дебилов, для которых «компиляция» — это нажатие кнопки F5. Обучать языку надо в простом, лёгком текстовом редакторе с элементарной подсветкой синтаксиса: «Notepad++», «Sublime», «Atom», «Vim», тысячи их.
                                  Ну и разумеется, когда студент освоил язык хотя бы на базовом уровне, можно и нужно переходить в мощные IDE — потому что, как ни крути, но сейчас это главный инструмент программиста. И умению правильно их использовать тоже необходимо учить.
                                  Ответить
                                  • Справедливости ради, я тоже путал IDE (синенькую) и компилятор в турбопаскале, думал что компиляция это ctrl+F9, но где-то через пол года нас научили делать это в командной строке, и я даже понял, что писать можно в edit.com

                                    А почему нету Visual Studio Pizdjuk Edition, чтобы там была одна большая кнопка "PLAY" и всё, специально для детей?

                                    Или небось уже есть такая?
                                    Ответить
                                    • Хз, видимо, Майки не считают это рентабельным.

                                      А вот для студентов они рекомендуют «Visual Studio Code»: https://visualstudio.microsoft.com/ru/students/. Я, кстати, в нём иногда пишу хелловорлды, но как-то он мне не заходит — видимо, слишком хипстерный.
                                      Ответить
                                      • Как там у Visual Studio Code с поддержкой "C"?
                                        Я думал, он для скриптушшни
                                        Ответить
                                        • Там ставится все что хочешь с помощью расширений
                                          Ответить
                                          • Понятно. Как в Vim, Eclipse, и Emacs.

                                            Дети, поставьте эти восемь плагинов, настройте эти четыре файла, и ...
                                            Ответить
                                            • «Vim» и «Emacs» — это то самое прыщеговно из 70-х, для использования которого нужны четыре руки и педали? А чтобы из них выйти, нужно подглядывать в учебник?

                                              А «Eclipse» — тот самый монстр, который на i7 с кучей в 16 гигов работает вполне сносно?
                                              Ответить
                                              • Зато в VSCode тебе будет охуенно удобно
                                                https://code.visualstudio.com/docs/cpp/customize-default-settings-cpp
                                                Ответить
                                  • А «PascalABC» для обучения детей не подойдёт?
                                    Ответить
                                    • Подойдет, его вроде бы так и используют, кстати.

                                      Есть еще такая тема
                                      https://d3nmt5vlzunoa1.cloudfront.net/pycharm/files/2015/10/tasksolved.png
                                      Ответить
                                    • Он для этого и создавался.
                                      Ответить
                                      • Но это только в раш-ке

                                        А как учат будущих доландов кнутов в америкаш-ке?
                                        На жабе, питоне и еще какой-нить хуйне?
                                        Ответить
                                        • Хз, я с тамошней системой образования не знаком.
                                          Немного погуглил, нашёл сайт какого-то крутого университета: http://www.cs.columbia.edu/education/undergraduate/. Там куча каких-то программ, я самую первую выбрал, https://mice.cs.columbia.edu/c/d.php?d=237:
                                          CS core curriculum
                                          The core of the Computer Science curriculum for SEAS CS majors is built with
                                          the following eight courses. These courses provide the foundation for the
                                          tracks and the advanced courses. Note: ENGI W1006 is a prerequisite for the major.
                                          1. Intro to CS and Programming in Java (COMS W1004) or Honors Intro to CS (COMS W1007)
                                          2. Data Structures in Java (COMS W3134) or Honors Data Structures and Algorithms (COMS W3137)
                                          3. Advanced Programming (COMS W3157)
                                          4. Discrete Mathematics (COMS W3203)
                                          5. Linear Algebra (MATH 2010, APMA 3101, or APMA 2101)
                                          6. Computer Science Theory (COMS W3261)
                                          7. Fundamentals of Computer Systems (CSEE W3827)
                                          8. Probability and Statistics (STAT 4001 or IEOR 4150)

                                          Как Спольски и жаловался — учат жабе.

                                          Ну и я вижу, как математике учат только в рашке™. Какой багор )))
                                          Ответить
                                          • Я плохо знаю свынячу мову. В каком из пунктов установка «Питона» на «Windows»?
                                            Ответить
                                          • Отвратительное говнище: учить CS в джаве.

                                            Добро пожаловать в самый вербозный замусоренный семантически говноязык, чтоб вы сноля ничего не могли сами написать, а толкьо тупо копировали всё, как бабуины

                                            Чтобы вы нихуя не понимали в управлении памятью, к вашим услугам GC, работа с объектами только через указатель (неявно!) и динамические типы данных из коробки.
                                            Ответить
                                            • А я всегда копирую код со «Stackoverflow» и теку.
                                              Ответить
                                              • Ну кроме шуток.

                                                пассаль
                                                program MyFirstPro;
                                                begin
                                                   writeln('hello');
                                                end.


                                                барсик
                                                print "hello"


                                                путхон
                                                print("hello")


                                                Джава.
                                                public class MyFirstApp {
                                                    public static void main(String[] args) {
                                                        System.out.println("Hello world");
                                                    }
                                                }


                                                Сколько надо когнитивных сил, чтобы понять, что тут написано, когда ты второй день изучаешь программиорование?
                                                Ответить
                                • > программисту все таки стоит учить английский как можно раньше
                                  Программиста нужно погрузить в английский и его пользу как можно раньше. Иначе какой толк учить это говно, когда ридна мова из самой души прёт, а для буржуйской питушни нужно делать ментальные усилия, смысла в которых не видишь?
                                  Без пересмотра программы будет только хуже: программист возненавидит чужой язык раньше, чем начинает ненавидеть сейчас.
                                  Ответить
                                  • > в английский и его пользу
                                    Ну это вообще главный принцип хорошего образования (см анекдот про глобус и презерватив).

                                    Ученику должно быть интересно, он должен понимать нахуя он что-то учит.

                                    Одно дело изучать геометрию ради геометрии (это тупо, скучно, и непонятно зачем).
                                    А другое дело изучать ее, чтобы написать арканоид:)
                                    Ответить
                          • >Потому что если первым «настоящим» языком, с которым познакомится ребёнок, будет какой-нибудь «PHP» или «JavaScript» со слабой типизацией — на выходе мы получим классического оператора шаблонизатора с необратимым повреждением мозга.
                            Неправда, мозг мне повредили еще до того как я выучил js
                            Ответить
                            • Ну для больных разумом «JavaScript» идеально подходит, тут не поспоришь.
                              Ответить
        • Предупреждать надо, что в результатах поиска. А то я тоже погуглил, меня чуть не вырвало. Автор подборки про секретные операторы «Перла» предупредил, что НЕ надо гуглить «гоатсе», я и не гуглил «гоатсе», спасибо ему.
          Ответить
          • А мне «Гугл» выдал результаты без блока с картинками, просто ссылки.

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

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

              Ещё это... «typicalmacuser» тоже лучше не гуглить.
              Ответить
              • Спасибо, я сейчас пойду всё это гуглить...
                Ответить
              • > «meatspin»
                Как ни прочитаю, все время в голове играет "You spin me right 'round, baby, right 'round like a record, baby..."
                Ответить
                • А у меня не только играет, но ещё и перед глазами крутится оно самое. В душу запало!
                  Ответить
                  • Як цуп цоп ещё подойдёт.
                    Ответить
                    • Ну вот, теперь к концерту в моей голове прибавилось аниме с луком.
                      Ответить
                      • Сейчас разбавим чем-нибудь, чтобы перебить.

                        «bizalta»:

                        https://youtu.be/qlF4XsXfGrc

                        https://youtu.be/lY9A816bPCI

                        «E777»:

                        https://youtu.be/n3sfoRy_UbI

                        https://youtu.be/vRzFV3gvHIk

                        «ThejohnramborockyIP»:

                        https://youtu.be/CXB13vxXSMg

                        https://youtu.be/xkkyR-LJJaw

                        «Enjoykin»:

                        https://youtu.be/Bb_CP7SMwFM

                        https://youtu.be/diLV_LkZK8w
                        Ответить
                        • Так вот теперь сиди, и слушай
                          Ответить
                        • Ещё был великолепный «TheAlexunder7772008», но его пидорасы ютубные удолили. Теперь только по всяким mp3-помойкам разбросаны несколько охуительных треков.
                          Ответить
                          • Некто под ником «poehavshiy» кое-что спас:
                            https://www.youtube.com/channel/UCzV1cH-6uX6F_9cUz_6fuxw

                            https://youtu.be/gPZ48iiQSdY
                            Ответить
                    • Кстати, «Тиккурила» «Ievan polkka» написана по мотивам мелодии «Смоленский гусачок»:
                      https://youtu.be/odArfKsuaAw
                      Ответить
                    • Гомосексуалист, отчего ты такой тупой и вероломный?
                      Почему вернулся - взял грех на душу?
                      Ответить
          • Пищдец. Я погуглил по картинкам - нихуя не понял (это же не удивительно?), потом прочитал текстовое определение.
            Ответить
            • Вилимо, у тебя запрещено показывать содержимое такого характера.
              Ответить
        • Блин, я только сейчас задумался, а что значит "t-shirt"?
          Ответить
          • А о том, что значит «T-Mail», не задумывался?
            Ответить
            • Пидарасы! Пиларасы повсюду!!!
              Ответить
            • зашел на сайт тмыла -- там какая-то пыхоблыдятипа про друпал

              А был когда-то прилинчый человек
              http://web.archive.org/web/20010708050835/http://t-mail.spb.ru/

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

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

        А в нашей школе в 1997-м году никакой локальной сети не было, а модем был только в кабинете директора (и то, когда речь заходила о модеме, о нём говорили с таким пафосом, как будто о самолёте).
        Ответить
        • В моей школе в 1997-м году вообще не было компьютеров, и информатики тоже не было.
          Еслиб не дворец пионеров (или, как он тада уже назывался, дворец творчества юных) я бы компьютер только по видику видал бы.


          Но кстати, так было не везде. В некоторых школах информатика была чуть-ли не с конца 80-х
          Ответить
          • Зато никто из наших одноклассников не сидел за взлом компьютерных сетей.
            Ответить
            • У меня бывший одноклассник сел за обнос квартиры. Делал, дурак, ремонт, и подрезал кошелек. А в квартире были камеры (богатая была квартира).

              Но это, конечно, было уже далеко после школы
              Ответить
              • Ну вот, как пацан сел за реальную кражу, а не за какое-то позорное ботанство.
                Ответить
                • Да. На зоне хоть сможет объяснить пацанам, за что чалится.
                  Ответить
                  • А Митник, небось, и задачу про два стула решить не сможет.
                    Ответить
        • вот блядь, люди во втором классе
          http://robotoved.ru/wp-content/uploads/2017/03/informatics_in_ussr1-905x509.jpeg
          почему у меня так не было?

          небоюсь, элитная какая-нить школа, с матануклоном
          Ответить
          • У нас в восьмом классе была информатика только потому, что это был эксперимент (у наших предшественников информатика начиналась в девятом).
            Ответить
            • А интересная хоть была?

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

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

                  Мы во дворце писали примерно такое же (помню, программу для расчета стоимости пирога и программу "дождик" -- по экрану расходились круги).

                  Во вторник была теория.
                  В среду надо было в тетрадке сделать задание
                  В четверг -- практика. Задание вбивалось в комп в классе, и конечно не сразу компилировалось
                  Ответить

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