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

    +1

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    * https://github.com/nwchemgit/nwchem/blob/8ac6bc6856d50954029cad01a751006851682398/src/nwpw/pspw/lib/psi/psi.F#L324
    
          subroutine psi_sort_f_orb()
          implicit none
    #include "errquit.fh"
    
    #include "bafdecls.fh"
    #include "psi.fh"
    
          logical value
          integer i,j,ii,jj,ms
          integer r1(2)
          real*8  ei,ej
    
          value = BA_push_get(mt_dcpl,npack1,'r1',r1(2),r1(1))
          if (.not. value) call errquit(
         >     'psi_sort_f_orb: out of stack memory',0,MA_ERR)
    
          do ms=1,ispin
    
            !*** Bubble sort ***
            do ii=1,ne(ms)
             do jj=ii+1,ne(ms)
               i = ii + (ms-1)*ne(1)
               j = jj + (ms-1)*ne(1)
               ei = dbl_mb(eig(1)+i-1)
               ej = dbl_mb(eig(1)+j-1)
    
               !*** swap ***
               if (ej.lt.ei) then
                 dbl_mb(eig(1)+i-1) = ej
                 dbl_mb(eig(1)+j-1) = ei
                 call Pack_c_Copy(1,dcpl_mb(psi1(1)+(i-1)*npack1),
         >                          dcpl_mb(r1(1)))
                 call Pack_c_Copy(1,dcpl_mb(psi1(1)+(j-1)*npack1),
         >                          dcpl_mb(psi1(1)+(i-1)*npack1))
                 call Pack_c_Copy(1,dcpl_mb(r1(1)),
         >                          dcpl_mb(psi1(1)+(j-1)*npack1))
               end if
    
             end do
            end do
    
          end do
    
          value = BA_pop_stack(r1(2))
          if (.not. value) call errquit(
         >     'psi_sort_f_orb: popping stack memory',1, MA_ERR)
          return
          end

    Сортировка пузырьком на фортране из пакета квантовохимических вычислений "NWChem"

    Запостил: j123123, 30 Ноября 2021

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

    • Тут еще какая-то хуйня прямо в "процедуру" инклудится. Я хуй знает, может это так принято делать в FORTRAN

      Нужно ли знать программистам программы для выполнения квантово-химических расчетов знать про существования более эффективных алгоритмов сортировки?
      Ответить
      • И там эта сортировка еще в трех функциях накопипащена.
        subroutine psi_sort_f_orb()
        subroutine psi_sort_virtual_CI(eig_eci)
        subroutine psi_sort_virtual()

        https://github.com/nwchemgit/nwchem/blob/8ac6bc6856d50954029cad01a751006851682398/src/nwpw/pspw/lib/psi/psi.F#L324
        https://github.com/nwchemgit/nwchem/blob/8ac6bc6856d50954029cad01a751006851682398/src/nwpw/pspw/lib/psi/psi.F#L973
        https://github.com/nwchemgit/nwchem/blob/8ac6bc6856d50954029cad01a751006851682398/src/nwpw/pspw/lib/psi/psi.F#L3791
        Ответить
      • https://github.com/nwchemgit/nwchem/blob/3ebfe1a6739e0d71a527731f7b198dbaa94adc60/src/nwpw/nwpwlib/linesearch/Order_Values.F

        Вот еще пузырек нашел один.

        https://github.com/nwchemgit/nwchem/blob/9e33aba9237fd5045c4cc5e9ddd62e747bcf0b99/src/nwpw/band/structure/band_structure.F#L1771

        и вот. Зачем мне писать вызывать какие-то функции сортировки? Лучше еще раз напишу пузырек
        Ответить
        • Вызов функции занимает как минимум 2*n+3 машинных команд (n - число аргументов функции) и лишняя память для стека вызовов. А во времена Фортрана экономили на каждом байтике. Хотя можно было сделать сортировку макросом тогда. В те времена вообще не знали как "правильно" писать код (что мы второй раз наблюдали в вебе с PHP, JS фреймворками, разной реализацией ООП в 2000-2010-е). Это когда ворвался бизнес с системами бухучета, стали программистов связывать по рукам и ногам строгой типизацией, ООП паттернами и пр
          Ответить
          • Да и писали наверное не "специально обученные" программисты, а математики, химики.
            Ответить
          • >Вызов функции занимает как минимум 2*n+3 машинных команд (n - число аргументов функции)
            Это в каком колконвеншене?
            Ответить
            • В любом (?). Я иду из таких соображений: при входе в функцию нужно n раз положить входной аргумент в стек вызова, 1 раз - положить выходной аргумент, 1 раз - положить адрес возврата, 1 раз - джампнуться в тело функции. (n+3) раза - вытолкнуть входные аргументы, выходной аргумент, адрес возврата из стека, джампнуться на адрес возврата. Еще 1 раз - записать в выходной аргумент результат. Получается 2n+7 машиноопов.
              Ответить
              • vanished
                Ответить
                • чего vanished то?
                  Ты вроде в этой теме рубишь
                  Ответить
              • В общем function call без оптимизаций на уровне ASM-а или компилятора недешевая штука. Не зря на них экономят при написании прошивок микроконтроллеров, заменяя inline-функциями или макросами. Ну или просто длинную портянку пишут.
                Ответить
                • Компиляторы могут заинлайнить функцию, хотя про фортрановские компиляторы не знаю.

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

                          по сути это как сказать
                          for(int i = 1; i < 100;i++) {
                           if (i == 42) doAll();
                           if (i == 17) doPetuh();
                          ////
                          }
                          Ответить
                          • Но тут не мы такие, задача такая. Если нужно обрабатывать разнородные элементы, то либо таблица вирт.методов, либо цепочка ифов - все одно непредсказуемо.
                            Ответить
                            • > задача такая

                              Ну можно попытаться локальность повысить -- отсортировать по типу, например, чтобы похожие объекты рядом лежали. Уже предиктору легче станет.
                              Ответить
                            • Именно потому я за Data-Oriented Design
                              Ответить
              • В call convention x64 можно вроде первые три аргумента сунуть в регистры, а не в стек.
                Ответить
                • Где-то 4, где-то 6, зависит от оси... Да и на 32-битках были fast call. А у RISC'ов это вообще во все поля, даже адрес возврата не в стеке.
                  Ответить
                  • Ну или так(с)

                    Я за вызовы BIOSа и DOSа: там все аргументы всегда через регистры.

                    >. Да и на 32-битках были fast call. А

                    На 32 было много разных колконвеншенов, но вроде на x64 стало более-ли-менее похоже всё
                    Ответить
                    • > более-ли-менее похоже всё

                      Ну по сути их два -- виндовый и все остальные.
                      Ответить
                      • Угу, System V который и Win, но они ппохожы очень

                        Пишут, что есть еще vectorcall какой-то
                        Это поди для SIMD питуха передавать?
                        Ответить
                        • > ппохожы очень

                          Нифига... они совсем разные. И оба мягко говоря нетривиальные.
                          Ответить
                          • А что разного и нетривиального? редзона и shadow?
                            Ответить
                            • Редзона и shadow, наборы регистров, требования по выравниванию...

                              Блин, да там по-моему вообще ничего общего нет кроме идеи "запихать несколько аргументов в регистры".
                              Ответить
                              • 1. Вилка для очистки у коллера
                                2. Активно используются регистры (ну в x64 их много)
                                3. Есть выравнивание стека
                                4. Ордер его вроде одинаковый
                                Ответить
                                • > ордер

                                  А я не помню ордер, если честно... Обычно регистров хватало на всё.
                                  Ответить
                                  • Ну да, обычно всё таки если тебе нужно передать 144 параметра куда-то, то они логично объединяются в структуру в коде, а структура уже через адрес передаеца
                                    Ответить
              • > n раз положить входной аргумент в стек вызова
                Если компилятор заранее его в нужном месте не разместил в процессе вычислений. Иногда смотришь дизасм и видишь: вычисление, вычисление, вот результат на стек упал, потому что регистры нужно освобождать, вычисления, опять в стек, вычисления и оп-па, вызов функции, а все аргументы уже по нужным регистрам и в нужном месте на стеке.

                > 1 раз - положить адрес возврата, 1 раз - джампнуться в тело функции.
                Если функция не заинлайнена. Интеловский компилятор фортрана вроде forceinline поддерживает.

                > вытолкнуть входные аргументы, выходной аргумент, адрес возврата из стека, джампнуться на адрес возврата
                Одно вычитание из указателя стека, не нужно каждому аргументу внимание уделять. Ну, и это может быть что-то вроде cdecl, а аргументы переиспользованы.

                С современными компиляторами слишком сильно считать такты не нужно, проще написать, посмотреть дизасм и поправить, если там ересь.
                Ответить
          • *2n+7
            Ответить
          • Фортран строго типизированный вроде
            Ответить
        • Энциклопедия профессора пхп
          else if (id.eq.3) then
                  itetra(1,1) = 2   +1
                  itetra(2,1) = 5   +1
                  itetra(3,1) = 3   +1
                  itetra(4,1) = 1   +1
          
                  itetra(1,2) = 2   +1
                  itetra(2,2) = 5   +1
                  itetra(3,2) = 3   +1
                  itetra(4,2) = 7   +1
          
                  itetra(1,3) = 2   +1
                  itetra(2,3) = 5   +1
                  itetra(3,3) = 0   +1
                  itetra(4,3) = 1   +1
          
                  itetra(1,4) = 2   +1
                  itetra(2,4) = 5   +1
                  itetra(3,4) = 0   +1
                  itetra(4,4) = 4   +1
          
                  itetra(1,5) = 2   +1
                  itetra(2,5) = 5   +1
                  itetra(3,5) = 6   +1
                  itetra(4,5) = 7   +1
          Ответить
          • Ты просто ничего не понимаешь в ма-те-ма-ти-ке.
            Ответить
          • Зато там комментарии красивые
            **************** Definitions of Cubes and Tetrahedrons *****************
            *                                                                      *
            *                                                                      *
            *     (011)------------(111)                    ( 3 )------------( 7 ) *
            *       +                +                        +                +   *
            *      /.               /|                       /.               /|   *
            *     / .              / |                      / .              / |   *
            *    /  .             /  |                     /  .             /  |   *
            *   /   .            /   |                    /   .            /   |   *
            * (001)------------(101) |      <====>      ( 1 )------------( 5 ) |   *
            *   |   .            |   |                    |   .            |   |   *
            *   | (010)..........|.(110)                  | ( 2 )..........|.( 6 ) *
            *   |   .            |   /                    |   .            |   /   *
            *   |  .             |  /                     |  .             |  /    *
            *   | .              | /                      | .              | /     *
            *   |.               |/                       |.               |/      *
            *   +                +                        +                +       *
            * (000)------------(100)                    ( 0 )------------( 4 )     *
            Ответить
            • Три дэ!
              Ответить
            • Абстракции virgin-а: class, module, macros, trait, interface, enum, template,...
              Абстракции chad-а: коммент выше
              Ответить
            • Когда ты ма-те-ма-тик, а не кодер, и не умеешь переводить в двоичную систему в уме.
              Ответить
        • Был у меня на собеседовании питух, который писал пузырьковую сортировку. Потому что не знал как в стандартной библиотеке "Си" отсортировать массив.
          Ответить
          • Сложный алгоритм, на самом деле. Надо думать в какую сторону пузырёк всплывает... Выборкой проще всего сортировать, наверное.
            Ответить
            • Он был на столько анскильный, что сказал, что будет писать пузырьковую, а сам написал выбором.

              А ещё был питух, который максимум в массиве нашел как sorted(arr, reversed=True)[0]
              Ответить
              • Это задел на будущее, вдруг ты сейчас скажешь «а теперь найди 5й по значению»
                Ответить
                • Ну да. Да и вообще теперь в этом массиве очень легко что-то найти. Так и представляю, что у этого чувака на столе всё аккуратно разложено и прибрано.
                  Ответить
                • Да, тоже k-ую порядковую статистику решаю сортировкой (в контексте Литкода, так лучше в тайминг уложишься). Можно конечно прикрутить heap и тогда получится алгоритм за O(n+k*log n). Но в языке для веб-документов есть только динамические массив и хэши (объекты). Ну и Map/Set добавили в ES6. heap нужно велосипедить.
                  Ответить
                  • Есть алгоритм за O(n)
                    Ответить
                  • А нельзя типа идти по массиву, записывать значение, и сравнивать его с каждым следующим?
                    Бдует O(n) же, не?
                    Ответить
                    • Если k=1 . С наивным решением будет O(k*n)
                      Ответить
                      • Будем надеяться, что у него массив интов
                        Ответить
                        • А если не интов, как это повлияет на количество обходов массива?
                          Ответить
                    • Для числовых значений можно попробовать
                      Math.max.apply(Math, массив)

                      Не знаю, правда, как такая питушня работает на практике для больших массивов - высчитывается быстрый максимум со скоростью прохода массива на сишке, или генерируется функция с питулионом аргументов.
                      Ответить
                      • Эм, а как можно найти точный максимум в массиве быстрее чем за время его полного обхода?
                        Ответить
                        • Если находим ElementType.Max, значит больше уже не найдём и можно не искать
                          Ответить
                          • А, ну такое работает для хорошо известного подмножества данных из большого типа, да.
                            Ответить
                        • Если считать астрономическое время, а не машинное, то можно разделить массив на кусочки, отдать считать разным потокам, а потом взять максимум из их результатов.

                          Но я о другом, я не про быстрый максимум, а наоборот про тормоза. Питушня вроде Math.max.apply(Math, массив) или Math.max(...массив), которая распихивает массивы по аргументам, выглядит подозрительно. Я бы не удивился, если бы мне сказали, что там честно копируют каждый элемент на стек или использует какую-то тормозную абстракцию. А это уже выходит O(N) по памяти вместо O(1) и увеличение константы по производительности.
                          Ответить
                • --Найдите первые пять самых жырных элементов этого тридцати мегабайтного массива
                  sorted(arr, reversed=True)[0]
                  sorted(arr, reversed=True)[1]
                  sorted(arr, reversed=True)[2]
                  sorted(arr, reversed=True)[3]
                  sorted(arr, reversed=True)[4]


                  --Спасибо, Шлёма, у нас есть для вакансия маляра
                  Ответить
              • Было бы смешно, если бы это был один и тот же человек
                Ответить
              • > А ещё был питух, который максимум в массиве нашел как sorted(arr, reversed=True)[0]

                Возможно он std-функцию max не знал. Но как при этом тогда не написать простой алгоритм compare-and-select...
                Ответить
                • Так кода больше
                  Ответить
                  • А ты на собесах питухам не даешь маны по языку подсматривать?
                    Ответить
                    • Нет. Но если питух не помнит сигнатуру, или точно знает, что такая функция/метод есть, но не помнит название, то я подсказываю.
                      Ответить
                      • По-моему это не оч честно. Я бы всё таки давал человеку IDE (чтобы он мог широебица по стандартной либе) и официальный референс по языку.

                        Гугл со стековерфлоу давать не нужно, конечно. А доку можно

                        ИМХО
                        Ответить
                        • В таких случаях я спрашиваю "Что ты хочешь найти? Давай подскажу". Во всех случаях то, что он попытался бы найти, нахуй не нужно ))
                          (задачи подобраны таким образом)
                          Ответить
                        • > официальный референс по языку
                          Можно ли cppreference считать «официальным референсом», если его редачат несколько членов Комитета?
                          Ответить
                          • Можно. Тем более что официальный стандарт вроде платный (но можно драфт надыбать)

                            cppreference всё таки сайт для осознанных петухов, если чел умеет им пользоваться, значит он всё таки хоть что-то может кмк
                            Ответить
                            • > платный

                              Какой маразм, блядь
                              Ответить
                              • а)) Ну блядь такой хуйни много, да.

                                Например когда Торвальдс делал прыщи, у него не было денег чтобы купить спеку POSIX , и он страдал))
                                Ответить
                                • Давайте «Конституцию» и «Уголовный кодекс» сделаем платным, хуле. Я понимаю книжку печатную купить - она денег стоит. Но pdf-ка то блядь?
                                  Ответить
                              • Всегда есть финальный драфт, который отличается от публикации заглавной страницей и, возможно, поправленной пунктуацией/грамматикой в тексте.

                                Платность стандарта вышла из-за решения публиковаться в ISO.
                                Ответить
                                • Зато купленным стандартом можно тыкать в морду при конфликтах. А драфтом только подтереться.
                                  Ответить
                                  • Какой Pay2Win :)
                                    Ответить
                                  • --Ты написал UB, и принес нам убытков на $999_000
                                    --Нет это не UB, это разработчик компилятора тупой еблан

                                    И тут конечно стандарт пригодица
                                    Ответить
                                    • - Ты тупой еблан, раз такой компилятор использовал
                                      Ответить
                              • >>>"Какой маразм, блядь"

                                Поэтому я за PHP. Заходишь на официальный сайт, и вся документация как на ладони.
                                Ответить
                                • Зашёл на официальный сайт.
                                  Увидел, что там празднуют добавление энумов и свойств только для чтения. В 2021 году.
                                  Ушёл с официального сайта.
                                  Ответить
                                  • Нахуя скриптоговну что либо "только для чтения"?
                                    Ответить
                                    • Скриптоговно говно.
                                      Ответить
                                    • Чтобы писать надёжный код. В скриптоговне (cmd, bash) такое действительно не нужно, но вот PHP - это уже язык высокого уровня более-менее общего назначения, на котором можно написать любую программу любой сложности.
                                      Да даже если сайтушня, что с того. Может быть сложное взаимодействие между модулями, где надо обеспечить надёжность и ссылочную прозрачность.
                                      Ответить
                        • Да можно и гугл со стековерфлоу дать, если объяснит, что там написано...
                          Ответить
                          • О, какт был собес в стартап на позицию JS-ера. Так на собесе не алгоритмические задачи, не даже стандартные задачки по ЖС на промисы, прототипы и пр. А: дан код функции (у меня были примеры на Джаве и TypeScript), скажи что может пойти с ним не так.
                            Ответить
                            • Меня на первую работу примерно так же собеседовали, только сишка была в примерах.

                              Что делает код, что с ним не так, как можно пофиксить?
                              Ответить
                              • А меня однажды спросили, почему наследовать квадрат от прямоугольника это плохая идея, если прямоугольник мутабелен
                                Ответить
                                • Ну а чё, обычное нарушение LSP. Квадрат не является мутабельным прямоугольником. А за иммутабельный, наверное, прокатит.
                                  Ответить
                                  • Да, примерно так. Зато иммутабельным является.

                                    Это был собеседование на галерный энтерпрайз сишарповый, так что вопос был в тему
                                    Ответить
                                • А вот на собесе фронтендерам в том же стартапе давали задачку: написать функцию определяющую равенство треугольников. Ну и по классике "0.1 + 0.2 === 0.3", "document.body.id = 2; document.body.id === 2", "напиши функцию sum(a)(b)" и т.д.
                                  Ответить
                        • > Гугл со стековерфлоу давать не нужно, конечно. А доку можно

                          Зависит от вопроса, конечно. Если речь идёт о питушне, которую надо всегда держать в голове наготове (как записывается цифра C в двоичной и восьмеричной системах - для битухов; какие могут быть питушни, кроме public и protected - для крестухов, какой формы скобки используются для задания объекта - для ветбухов), то да.

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

                        Получить работу сможет только человек, который не умеет гуглить, не умеет пользоваться документацией, не способен изучать что-то новое, а только умеет блестяще реализовывать пару заученных алгоритмов.

                        Такое собеседование эффективно только если нанимают человека, который будет каждый день писать модифицированную версию пузырька, чтобы не тратить время на пердолинг со стеком, и если кандидат не будет уметь писать сортировку пузырьком для float*, std::array<float> и int[] (для float[] уже не нужно) по памяти за 20 секунд, то компания будет терпеть убытки.
                        Ответить
                        • > А что может показать такое собеседование?

                          Примерное IQ или consciousness . Задача собеса - не выбрать подходящего кандидата (что определяется точно по результатам испытательного срока), а отсеять заведомо неподходящую массу из потока. Чем фильтров больше или они сильнее - тем конкурс сильнее. Пузырек для какого-нибудь FAANG слишком простой (если это не задачка для разогрева конечно). Это скорее вопрос на общую прогерскую эрудицию.

                          Там, где не надо поддерживать/оптимизировать сложные "велосипеды", алгоритмические задачи на собесах обычно не дают (или дают, но совсем простые типа flood fill-а и "переверни строку"). А вот неумение гуглить и неумение пользоваться документацией не в тему таких собесов. Если будешь писать велосипед на какой-нибудь split (если им можно решить задачу эффективно по времени/памяти), то можешь тупо в тайминги не уложиться. Да и лишний велосипед - лишняя нагрузка на сопровождение кода, на это тоже обращают внимание. Там массы и так отсеиваются на умении применять тонкости языка/фреймворка, понимании их кишков, или на fit-е с командой/руководителем (не все могут себя презентовать нетоксичным, заинтересованным да).
                          Ответить
          • В стандартной библиотеке "Си" нет способа отсортировать массив элементов с нетривиальным перемещением (скажем, на которые есть указатели снаружи, которые нужно обновлять). Вряд ли была такая ситуация, но всё же...

            И чего всех на пузырёк тянет? Потому что он "сложный" и поэтому наверняка "эффективный"?
            Ответить
            • А как бы тут помог пузырь? Он вроде стабильный, но остальное-то он подвинет.

              А тянет всех на него потому, что его интуитивно понять просто
              Ответить
              • > А как бы тут помог пузырь?

                Просто тем, что он кастомный и можно нужную логику прикрутить.
                Ответить
                • А нельзя обычному сортиру сунуть кастомного итератора который там чото куда-то двигает?
                  Ответить
                  • Нет. Там только начало, интервал, количество и компаратор.
                    Ответить
                    • Он их потом свапает чтоли?
                      Ответить
                      • Да. Если в терминах крестов, то он требует trivially copyable от сортируемых данных.
                        Ответить
                        • Ну тоесть можно просто взять кусочек памяти и покласть её в другоеместо, и она там будет работать, верно?

                          никакие двигательные конструкторы и прочая можно не вызывать?

                          А неужели нету либы где свапера можно передавать аргументом?
                          В бусте тоже нету?

                          Или я тупой и это нереализуемо?
                          Ответить
                          • Какой буст, какие конструкторы?
                            Мы про "Си" говорим и его qsort же:
                            > Потому что не знал как в стандартной библиотеке "Си" отсортировать массив.

                            В крестах всё просто и скучно.
                            Ответить
                            • Ну если речь про няшную, то разумеется там ничего само собой не подвиница, и надо указатели все врунчную обновлять

                              Я думал, Инью С++еров собеседует
                              Ответить
                  • Итератора? о_О Может имелось ввиду компаратора?
                    Ответить
                    • sort работает с итераторами же.

                      Сравнивать он и так умеет, там наверное можно и больше-меньше перегрузить.
                      А вот заставить его скопировать правильно нельзя: только swap куска памяти
                      Ответить
                      • А да. Мной забыто, что std::sort может сортировать не только массивы.
                        Ответить
                        • > Мной забыто

                          А у тебя "pronouns" какой? "They/them"? Вот bormand о себе в женском роде спокойно тут пишет.
                          Ответить
                          • Ну и так можно да. С "обезличенным" местоимением взяла привычку от знакомого фембоя, который старается никого не раздражать.
                            Ответить
                            • > Мной забыто
                              > старается никого не раздражать
                              Ответить
                              • Ну, есть сенситивные к Т* люди. Такое хотя бы позволяет не вываливать наружу тараканы в голове там где это не уместно, и при этом избегать masculine register.
                                Ответить
                                • Не сенситивные, а чувствительные. Ты, тупое говно среднего рода, специально так делаешь, потому что тебе это кажется «крутым», или от гормонов уже мысли спутались?
                                  Ответить
                                  • И не надоело тебе stalker-ить, чмо свитерское?
                                    Ответить
                                    • Ну вот больной на голову извращенец и показал свою агрессивную, поганую натуру. Жалкий токсичный лицемер.
                                      Ответить
                                      • Если у тебя проблемы с context switching и ты не умеешь по-умному презентовать свою повестку, это исключительно твои проблемы. Обтекай.
                                        Ответить
                                        • *запасается попкорном*

                                          Похоже что вы нашли друг друга...
                                          Ответить
                                        • Обтёк своим дерьмом на твоё лицо. Впрочем, зря я это сделал, ведь среди геев и прочих содомитов очень распространена копрофилия, боюсь что тебе такое даже по нраву.

                                          > context switching

                                          Это русский ресурс, так что всоси своё либеральное еблишко в трубочку или имей достоинство (если у педерастов-членодевок вроде тебя оно вообще есть) излагать свои мысли на русском языке. Когда ты вставляешь модные английские вставки, мне становится тебя жалко, как какого-нибудь инвалида или психически больного.

                                          К счастью я всегда понимаю, что быть тупой хуйнёй гормонной – это твой осознанный выбор, а не болезнь.
                                          Ответить
                                  • > Ты, тупое говно среднего рода
                                    Джлоджлечетвёрка подожгло стул и сломалось.
                                    Ответить
                                • При чем здесь указатель на параметр шаблона

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

                                    Или ты про "мною забыто?"
                                    Ответить
                                    • Лично я считаю, что человек, который вставляет английские слова в свою речь, чтобы повыёбываться, то такой человек хуже гниды вшивой. Либо просто ещё не вырос умственно, обычно школьники, изучая в вузе пайтон и делая пару лабораторок по скрапингу начинают выёбываться тем, что они программисты: подписываются на паблики ВКонтакте для программистов, сидят на говнокоде и так далее...
                                      Ответить
                                      • Раньше, к слову, аристократы французским любили выёбываться.
                                        Ответить
                                        • Ну это же криндж какой-то. Человек хочет что-то там о себе заявить, но до людей доходит только такое: «кудах-тах-тах, я начал учить английский и сейчас я всех этим заебу!». Я знаю о чём говорю, сам когда-то начал изучать «Nim».

                                          А аристократы не выёбывались: они просто плохо знали русский и он им был нахуй не нужен. Гувернантки и учителя все иностранцы, все книги на забугорном языке...
                                          Ответить
                                      • Шат свой mouth, бич
                                        Ответить
                                      • У меня в контроллерах нет никакого "скрапигна"
                                        Ответить
                                        • Есть вообще-то. Можешь его поцарапать и будет тебе скрапигн.
                                          Ответить
                                          • Цап-царапинг.
                                            Ответить
                                            • Помяукай.
                                              Ответить
                                            • говорите по-русски

                                              цап-царапанье

                                              откуда эти герундии?
                                              Ответить
                                            • > Цап-царапинг.

                                              underrated

                                              https://www.youtube.com/watch?v=qsYTaRi-Ebg
                                              Ответить
                                              • Что касается аналоговой питушни, давайте мы подождём, когда контроллер истратит байты на новые технологии по педераче цифрового сигнала, а потом мы его «цап-царап».
                                                Ответить
                                          • контроллер в бане лучше не ронять

                                            а то случится цап-царап в чьём-то туннеле
                                            Ответить
                                            • Контроллер в лапке -- это реально больно. Их действительно лучше не ронять...
                                              Ответить
                                              • > Контроллер в лапке
                                                – какие 90-е )))
                                                Ответить
                                                • > какие 90-е

                                                  Это avr'ка была, одна из последних микросхем с dip корпусом, которые дожили до наших дней...
                                                  Ответить
                                      • Может, просто в голову первое слово пришло.

                                        Когда кто-то другой разговаривает на этой смеси языков, всегда кажется, что это заносчивый тупой мудак, который хочет казаться моднее.
                                        Когда сам так начинаю разговаривать, понимаю, что просто слово быстрее вспомнилось из английского, вот и сказал.
                                        Ответить
                                    • Да нет, если серьезно, тут как всегда, две кжрайности. С одной - хорошилище на гульбище и пидор есть пидор. С другой - словосочетание "черный день" оскорбляет негров, а слово "автор" вместо "авторка" - феминисток.
                                      И куда тут отнести "мной забыто", Беларусь, каршеринг и т.п., не всегда понятно.
                                      Ответить
                                      • > Беларусь

                                        Киргизия, Туркмения, Татария, Башкирия, Молдавия, Днепропетровск, Семипалатинск, Алма-Ата, Тифлис, Гельсингфорс, Кампучия, Бирма, Острова Зелёного Мыса, Берег Слоновой Кости, САСШ.
                                        Ответить
                                        • И контрольный в голову: на Украине.
                                          Ответить
                                          • Забавляет, что приходит чувак, смотрит на вариант, который в быту чаще используют и говорит вещи уровня "НА похоже на руну, которой когда-то обозначали писюн, поэтому это нас оскорбляет". Пациент искренне верит, что "НА" - корень всех проблем, и надо бороться за "В" всеми силами. В следующей версии будут катить бочку на букву "Э" за извращённое написание, насмешку над важной славянской буквой и вообще калче аппроприэйшн.

                                            Иронично, что потом те же люди начинают смеяться над "жертвами российской пропаганды". Ребята, проснитесь, вы без причины прикопались к предлогу.
                                            Ответить
                                            • А может быть, расчёт идёт на обратный эффект.

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

                                              это не более чем система "свой-чужой"
                                              Ответить
                                              • Интернеты соединяют поребрики. Только напишешь один предлог, как набигут любители другого.
                                                Ответить
                                        • > Гельсингфорс
                                          >Днепропетровск
                                          Можно усилить.

                                          Вильно.
                                          Тифлис.

                                          Лемберг.
                                          Шттетин.
                                          Данциг.

                                          Кёнигсберг.
                                          Ниеншанц (Нюенсканс).
                                          Ответить
                                          • > Тифлис
                                            – повтор на первом игроке. Вы самое слабое звено, прощайте
                                            Ответить
                                            • Тьфу. Я его последним дописал при редактрировании. Пора спать ложиться.

                                              Кстати:

                                              Бреслау он же Вроцлав.
                                              Ответить
                                              • пфф, да там огромный кусок Польши, который когда-то был немецким, можно привести в пример

                                                вообще таких городов реально тысячи
                                                Ответить
                                                • > да там огромный кусок Польши, который когда-то был немецким, можно привести в пример

                                                  Ага. Почти все города которые были в подчинении разных странах будут называться по-разному.

                                                  Ещё: Черновицы

                                                  Кстати не пойму чего переименовали. Звучало же гораздо лучше. Идеальное чередование гласных и согласных.
                                                  Ответить
                                                  • > которые были в подчинении разных странах
                                                    – не только, совки любили от души попереименовывать (см. Кропивницкий, Сталино)
                                                    Ответить
                                                    • > от души попереименовывать (см. Кропивницкий)

                                                      По ссылке икануса там адок.

                                                      > Yelizavetgrad (1784) → Zinovyevsk (1924) → Kirovo (1934) → Kirovohrad (1939) → Kropyvnytskyi (2016)

                                                      Тоже неплохо:
                                                      > Yekaterinoslav → Novorossiysk (1797) → Yekaterinoslav (1802) → Dnipropetrovsk (Dnepropetrovsk; 1926) → Dnipro (2016)
                                                      Ответить
                                                  • > Ещё: Черновицы
                                                    > Кстати не пойму чего переименовали. Звучало же гораздо лучше. Идеальное чередование гласных и согласных.
                                                    Как по мне, было нормально, стало нормально. Не сказал бы, что стало хуже. Может, наоборот лучше. Стало меньше слогов - можно быстрее произнести и проще написать стихи (больше валидных кобенаций анапеста с питушнёй).
                                                    Ответить
                                                    • Не знаю. «вцы» звучит грубо и пошло.

                                                      «вицы» как-то мягче и мелодичнее.
                                                      Ответить
                                                • >вообще таких городов реально тысячи

                                                  Удобно для поджигания пшеко- хохло- бульбо- гиви- срачей.

                                                  > Сталино
                                                  Тьфу, новодел. Юзовка же.

                                                  Ответить
                                                  • я хотел написать Донецк, но смысл ты понял
                                                    Ответить
                                                  • > бульбо
                                                    – я не сильный знаток, но у них вроде областные центры при совке не переименовывали.
                                                    Ответить
                                                    • Достаточно начать с того, что никакие они не беларусы, а литвины.
                                                      Ответить
                                                      • на западе страны да, в Могилёве, Гомеле, Витебске вряд ли
                                                        Ответить
                                                        • Ну я тоже не сильно шарю. На ум приходит Бересть.

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

                                                          Но действительно с Украиной круче. От одного Лемберга пригорание.
                                                          Ответить
                                                          • > От одного Лемберга пригорание
                                                            – у кого?
                                                            Ответить
                                                            • >> Ну я тоже не сильно шарю.
                                                              >> пригорание
                                                              > – у кого?
                                                              У тех, кто тоже не сильно шарит. Чем образованней человек, тем меньше бугурта в интернетах.
                                                              Ответить
                                              • >Бреслау
                                                а еще он сделал Котлин
                                                https://habr.com/ru/company/jugru/blog/548408/
                                                Ответить
                                            • > прощайте

                                              https://youtu.be/KUyVtCEb0qk
                                              Ответить
                                          • Вильна.
                                            Виндава.
                                            Митава.
                                            Двинск.
                                            Ревель.
                                            Дерпт.
                                            Константинополь.
                                            Вятка.
                                            Ворошиловград.
                                            Фрунзе.
                                            Горький.
                                            Калинин.
                                            Загорск.
                                            Ленинакан.
                                            Сталинабад.
                                            Шевченко.
                                            Гурьев.
                                            Джамбул.
                                            Целиноград.
                                            Лютеция.
                                            Ответить
                                            • а как же Христиания и Новый Амстердам?

                                              а так же Ковно и мой фаворит:

                                              Братисла́ва (словацк. Bratislava [ˈbracislaʋa], прослушать (инф.)), до 27 марта 1919 года — Прешпорок или Пре́шпорек (Prešporok, Prešporek), Пре́сбург (нем. Pressburg [ˈprɛsbʊrk], прослушать (инф.)), По́жонь (венг. Pozsony), в Средние века — Истрополис (лат. Posonium, лат. Istropolis)
                                              Ответить
                                            • > Ревель
                                              О, хотел написать. Не смог вспомнить.

                                              А Орджоникидзе целых 2 штуки один Владикавказ, а второй где-то в/на Украине.
                                              Ответить
                                              • Дарю жидкость для розжига:

                                                https://en.wikipedia.org/wiki/List_of_city_name_changes

                                                Там не всё, нужно дорабатывать (особенно национальные названия).
                                                Ответить
                                                • > Дарю жидкость для розжига
                                                  Спасибо
                                                  > Berestie (historical Ruthenian name) → Brześć Litewski (Polish name) → Brest-Litovsk (Russian name since 19th century as transcribed from Polish) → Brest


                                                  Какие белорусы змагары литвины скучные. Всего один город. Я ждал хотя бы десяток.

                                                  А, хотя...
                                                  Mien'sk (Мѣньскъ) => Minskas
                                                  Horodno (Городно) => Gardinas

                                                  Минскас это супер!
                                                  Ответить
                                                  • Кстати, про Минск есть прикол.

                                                    Старое название его -- Меньск.

                                                    В 1919-м году язык беларусов был кодифицирован человеком по фамилии Тарашкевич.
                                                    За основу были взятые западные говоры беларусов, более архаичные, уходящие корнями во времена Великого Княжества Литовского, и город получил название Меньск.

                                                    Далее Тарашкевича расстреляли, а нарком БССР реформировал язык, взяв восточные говоры, испытавшие сильное влияние русского. Язык получился чуть ближе к русскому.

                                                    Старый вариант получил название "тарашкевица", а новый "наркомовка".

                                                    В Тарашкевице например есть слово Ангельшчына, а в наркомовке -- Англiя.

                                                    Тарашкевичевский Меньск превратился в наркомовский Miнск.

                                                    В конце 80-х слово "Меньск" стало символом такой вот "настоящей Беларуси", не засранной совком, примерно как ленинградцы любили называть свой город "Питер".

                                                    После установления режима Лукашенко в 1994-м году эта фишка стала снова актуальна, и Меньск (вместе с БЧБ флагом и гербом Пагоня) снова стал символом.

                                                    Группа NRM (находящаяся в ту пору в мягкой оппозиции к режиму) даже записала песню

                                                    https://www.youtube.com/watch?v=xKxIHqaS-3Q

                                                    В ней современный Минск, с горисполкомом и коллекторной улицей, противопоставляется Меньску "небесному", в котором готичные башни старых костелов, и который говорит с лирическим героем на его мове.
                                                    Ответить
                                                • Tskhinvali → Staliniri (1934) → Tskhinvali (1961)

                                                  В 2008 я видел срачи где доказывали что нужно писать не Цхинвалли, а Цхинвал.
                                                  Ответить
                                                  • одно по-грузински, другое по-абхазски
                                                    Ответить
                                                  • Подтверждаю, в 2008-м Цхинвали и Сухуми начали резко писать как Цхинвал и Сухум, чтобы порвать с прошлым. Вроде «-и» — это признак принадлежности Грузии.
                                                    Ответить
                                                    • >«-и» — это признак принадлежности Грузии.

                                                      Ага, очередное в/на.

                                                      Кстати как правильно Тбилис или Тифлиси? Или можно и так и так?
                                                      Ответить
                                              • Свердловск и Куйбышев тоже были не по одному.
                                                Ответить
                                                • А в Черненко и Андропов что-то переименовали или не успели?

                                                  Вот Набережным Челнам досталось, это я точно помню.

                                                  Edit: выходит что да.
                                                  13 сентября 1946 года город был переименован в Щербаков в честь партийного и государственного деятеля А. С. Щербакова, но в октябре 1957 года ему было возвращено историческое название Рыбинск. 23 февраля 1984 года город вновь переименован — уже в Андропов, в честь генерального секретаря ЦК КПСС Ю. В. Андропова (который одно время здесь жил и учился), а 4 марта 1989 года название Рыбинск снова было возвращено.

                                                  1806 - 1830 гг. - деревня Шарыпова; после 1830 г. - село Шарыпово; Черненко (1985-1988)
                                                  Ответить
                                            • > Горький
                                              Вот кстати почему от "Горького", "Свердловска" и "Ленинграда" обычно никакого бугурта нет, не важно, как называют?
                                              Ответить
                                              • > Вот кстати почему от "Горького" ... никакого бугурта нет

                                                На правду грех обижаться.
                                                Ответить
                                              • Потому что у русни нет префронтальной коры и новый город называют Новгород.
                                                Ответить
                                              • у кого нет бугурта, у жителя Новосиба? ты съезди в эти города и проверь
                                                Ответить
                                                • ОК, почему у жителей Новониколаевска бугурта нет?

                                                  Я не ездил в Беларусь, но крики отдельных поехавших были слышны за тысячи километров. Некоторые обвиняли в шовинизме и прочем тех, кто случайно писал "Белорусь".

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

                                I bought this laptop yesterday => I boht dis laptopem yesterdi (или: "dis laptopem I boht")
                                Ответить
                                • Немцы примерно так и переставляют слова: у них бывает и S-V-O, и O-V-S. Сохранившиеся падежи позволяют отличить дополнение от подлежащего.
                                  Ответить
                                  • А потом случается багор типа "бытие определяет сознание".
                                    Ответить
                                    • Да, в немецком случается такая же жопа, как в русском: винительный иногда совпадает с именительным.

                                      Чтобы выйти из положения, используют страдательный залог (пассив) или возвратный.

                                      Сознание определяется бытием.

                                      Сознание определено бытием.

                                      Ну почти как в реальном примере «мной забыто».
                                      Ответить
                            • Пидарасы, сэр/господин. ¯\_(ツ)_/¯
                              Ответить
                            • чтобы было понятно, о чем речь

                              Я вот скажу: "Питух they", и ты подумаешь, что меня зовут Зэй.
                              А на самом деле я they/them
                              Ответить
                              • > а на самом деле я they/them

                                Ок, примем к сведению.
                                Ответить
                                • А я beep/bop/boop, но при этом не делаю ни это, ни свои политические взгляды частями своей личности. В отличии от мерзотных педерастов-трапов, которым просто хочется внимания и анального сэкса (т.к. они извращенцы).
                                  Ответить
                                  • мя/мя/мя
                                    Ответить
                                    • Так, это оказывается чатики начала 2000х опережали своё время лет на 15 по использованию альтернативных местоимений?
                                      Ответить
                                    • Не корысти ради, а токмо волею пославшей мя царицы Тамары.
                                      Ответить
                                  • Хуясе заминусовали абсолютно верную цитату Джины Карано, которая незабвенно накормила жопоёбов говном прямо посреди инклюзивного твитора.
                                    Ответить
                                    • Джина Карано охуенная
                                      Ответить
                                    • Правду следует подавать так, как подают пальто, а не швырять в лицо, как мокрое полотенце.

                                      А говном и я могу накормить.
                                      Ответить
                            • Потому, что эти падежи часто конкурируют.

                              Сосни (кого?/чего?) хуйца
                              Ответить
                          • > Мной забыто

                            К слову, существует немало так называемых эргативных языков, для которых норма, что субъект действия стоит не в именительном падеже, а в одном из косвенных.

                            https://ru.wikipedia.org/wiki/Эргативные_языки
                            Ответить
                        • > std::sort может сортировать не только массивы.

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

                          Впрочем, не все алгоритмы поддержавают любые итераторы. Кому-то нужен рендом аксесс, и туда list не сунешь (но сунеш вектор, наприме)
                          Ответить
                          • Да, главное чтобы сортируемая коллекция была iterable, swappable (когда есть вообще возможность поменять местами любые 2 элемента коллекции) и ее элементы были comparable
                            Ответить
                            • но тока вот внятных интерфейсов там нет (заради перформанса), все на шаблонах, и если нужный тебе метод не поддерживается, то ты получишь феерическую ошибку компиляции

                              в 20 вроде как-то это пофиксить попытались концептами, но я не копеганен
                              Ответить
                              • То ли дело функциональщина. Ничего, кроме форвард итератора, не нужно *.
                                sort = lambda xs: sort([x for x in xs[1:] if x < xs[0]]) + [xs[0]] + sort([x for x in xs[1:] if x >= xs[0]]) if len(xs) else xs

                                _________
                                * Если насрать на слив перфоманса по некоторым аспектам.
                                Ответить
      • Пузырек один из самых простых в реализации. Может объем данных небольшой (до 64-128 элементов), поетому O(n*log n) сортировку не резон делать.
        Ответить
        • Сортировка выбором куда проще, и её можно дополнительно приспособить для частичной сортировки.
          Ответить
          • Возможно выбором сложно писать под квантовый комп? Двигать надо и т.п.
            Ответить
          • А у пузырька локальность хорошая.
            Ответить
        • Наверное, это первый алгоритм сортировки, который узнал в детстве. Поэтому он и кажется самым простым.
          Ответить
          • Логика пузырька когнитивно проще остальных сортировок, да. Вообще все классические алгоритмы O(n^2) такие.
            Ответить
          • > простой

            Да нифига... выбором интуитивнее. Там вообще думать не надо.

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

                Тоже O(n^2) как у пузыря, но воспринимается проще, имхо.
                Ответить
                • > свапаешь с нулевым

                  Так это. С началом текущего окна. Выбрал минимум - поставил в начало окна. После этого начало окна подвинул вперед и ищешь уже в нем минимум. И т.д. Для максимума аналогично но с концом окна (предположим что у нас ascending order)
                  Ответить
                  • Ну в выборке очевидно куда окно ползёт -- нулевой элемент зафиксировали, потом первый и т.п. В пузыре это неочевидно. Там думать надо.
                    Ответить
                    • Хз, по-моему пузырек настолько же очевиден в плане итераций.
                      Ответить
                      • Тебе, может быть, и очевидно, но вот в чём беда: ещё тебе очевидно, что нужно жрать гормоны и превращаться в бесполую человеческую абоминацию. Так что не суди что-то по себе, особенно касательно нормальных людей.
                        Ответить
                        • Че это у тебя так от JaneBurt горит? Влюбился чтоли?
                          Ответить
                          • JaneBugurt
                            Ответить
                          • Всё правильно, всё что там бурлит на твиторе должно оставаться на твиторе, нехуй сюда на грязных копытцах тащить.

                            Кстати, теперь ебучий Дорси - was/were, наняли главным уборщиком какого-то паки, который уже успел прославиться заявой, что все белые росисты.
                            Ответить
                            • В твиттере лолечку быстро б забанили за трансшейминг, кибербуллинг, нетолерантность и токсичность. Приходится на говнокоде бурлить
                              Ответить
                              • Давайте на говнокоде введем код оф кондакт.
                                Ответить
                                • Давайте. Предлагаю взять за основу Goatse и https://github.com/NyaaPantsu/nyaa/blob/dev/CODE_OF_CONDUCT.md
                                  Ответить
                                • А давайте вместо CoC внедрим CoQ и формально докажем, что ГК ему соответствует?
                                  Ответить
                              • Я отнюдь не лолечку имел ввиду.
                                А твитор действительно превратился в safe space для коммуняк, хоть целиком на вертолет грузи.
                                Ответить
            • у тебя синдром утёнка. Я вот о пузырьке узнал раньше всего, и мне он казался понятным
              Ответить
              • Х.з., выборку я напишу с первого раза. В пузырьке я скорее всего профакаплюсь с направлением. Ну разве что совсем квадратичную сложность сделать вместо "треугольной" и ходить по всему массиву всегда, не сокращая окно.
                Ответить
                • а силяние напишешь?
                  Ответить
                  • Не факт, могу запутаться в конце сливаемых стримов.
                    Ответить
                    • А я вот нихуя по памяти не напишу уже скорее всего. Последний раз я зазубривал алгоритмы перед собеседой
                      Ответить
                      • Дык не по памяти, чисто логически...
                        Ответить
                      • А я вообще никогда не готовилась к собесам... Зачем?
                        Ответить
                        • Чтобы их пройти, ну.

                          Правда бывает так, что спрашивают вообще другое:)

                          К счастью, я уже тыщу лет собесов не проходил. Возможно, я больше никогда в жизни не сменю работу
                          Ответить
                          • > чтобы их пройти

                            А надо? Тебе действительно хочется работать с людьми, которые требуют заучивать всякую хрень в духе списка stl алгоритмов?
                            Ответить
                            • А что плохого в знании ``<algorithm>``?
                              Что вообще надо спрашивать на собеседе, чтобы понять, что человек не мудак?
                              Ответить
                              • Если чел понимает фундаментальную идею про взаимодействие контейнера, итератора и алгоритма, то конкретику он всегда сможет подсмотреть в цппреференсе, имхо. Начерта эти списки заучивать?
                                Ответить
                                • ты веришь, что её можно понимать, но при этом не вспомнить ни одного алгоритма?

                                  Не нужно заставлять наизусть рассказывать все, но хотя-бы парочку
                                  Ответить
                                  • Ну для парочки алгоритмов подготовка и не нужна, верно?
                                    Ответить
                          • Ещё про сортировку пузырьком тут мне поговорите
                            Ответить
                • > я скорее всего профакаплюсь с направлением
                  Ходи в обе стороны! Получится Cocktail sort.
                  Ответить
              • Я способен исцелить многие симптомы. Правда, ценой значительного сокращения срока службы.
                Ответить
    • http://stonetoss.com/wp-content/uploads/2019/12/consenting-adults-comic.png
      Ответить
    • А у нас на работе оказывается есть SRE. Вот.

      Пытался понять чем отличаются от devops.
      https://i.ytimg.com/vi/uTEL8Ff1Zvk/maxresdefault.jpg

      Если я верно понял, что SRE могут быть черными судя по этой картинке, а девопс не могут
      Ответить
      • Судя по implements, DevOps - это интерфейс.
        Ответить
      • Если в DevOps нанять негров, то можно повысить статус до SRE. Profit!
        Я бы на твоем месте прямо сейчас уже бежал к директору по diversity за фондами.
        Ответить
        • У нас нет директора по diversity. У нас правда была diversity manager: специально обученная феминистка для вывода нас на американский рынок.

          Я узнал про SRE в нашей конторе, и это очень смешно: DevOps запускают наше говно на AWS, а SRE запускают его на нашем железе (on premises) посредством k8s, и гарантируют, что оно не упадет 99.6% времени.
          Ответить
          • > 99.6

            А что так хуёво? 1.5 дня в году сервис тупо валяется...
            Ответить
            • Фейсбук вон день лежал, а там явно перцы не глупее наших
              Или это только так кажется?

              Или в FB 2% крутых перцев, а остальные мамкины админы и мамкины же программисты как в "ООО Диджитал Софтвеар Солюшенс Сыктывкар"?
              Ответить
              • >>>"Фейсбук вон день лежал"

                Просто не надо было выёбываться и какие-то хэхэвээмы городить. Оставались бы на PHP - никаких проблем бы не было.
                Ответить
                • Вот у меня была домашняя страничка на "PHP", и никогда никогда не жаловался, что она недоступна
                  Ответить
                • > Просто не надо было выёбываться и какие-то хэхэвээмы городить.

                  Въебал плюс.

                  «PHP» — выбор профессионалов.
                  Ответить
                • Он не из-за «HHVM» лежал.

                  «Фейсбук» лежал, потому что они пожмотились купить нормальные готовые роутеры, а вместо этого нагородили софтроутеров из серверных компов.
                  Ответить
                  • И снова видим, что разработка супер-пупер-нитакого языка не помешала им обосраться на своей экономии. Что выбрали бы пользователи - ежедневное притормаживание на едва различимые 0.0000000000001 секунды или однократные 7 полновесных часов полной приостановки работы, с крахом завязанных исключительно на этой инфраструктуре "бизнесов"? Лучше бы на "нормальные готовые роутеры" и потратились.

                    P.S.: Мне-то вообще похуй на отключение Facebook, Instagram и WhatsApp; просто я наслышан про ноготочки, шоурумы, тортики на дому и прочее говно, и, по всей видимости, сочувствую таким "бизнесменам". САЙТЫ - ЭТА СЛИШКАМ СЛОЖНА, ПРОЩИ СТРАНИЧКУ В СТОГРАММЕ СОЗДАТЬ И ПАДПИЩИКОВ НАКРУТИТЬ.
                    Ответить
                    • P.P.S.: Что толку от хэхэвээмов, если клиентский код растёт, как тыква для "Книги рекордов Гиннеса"? Уже, блядь, ни восьми, ни шестнадцати, ни тридцати двух гигабайт оперативной памяти, ни 3G, ни 4G, ни LAN не хватает. Мне под Facebook iMac за миллион покупать? Или, может, квантовый компьютер?
                      Ответить
                      • P.P.P.S.: К слову, и некогда молниеносный "ВКонтакте" тоже зачем-то пошёл по этому пути. Помню, раньше каждому разделу соответствовал, в общем-то, не такой уже и большой JS-файл с лаконичным аккуратным кодом без зависимостей; теперь же и там каждая страница влечёт за собою три-четыре бандла-хуяндла.
                        Ответить
                  • >нагородили софтроутеров из серверных компов.
                    серьезно? нахуя-я??

                    По-моему железный вроутер во много раз крепче и надежнее серверного компа.

                    Я видел каких-то безумных питухов, которые на виртуалках разворачивали платные (лол) микроты и pfsense (платный веб интерфейс к фрибзде), но это от анскиллябрнусти
                    Ответить
                    • Снаут кидал ссылку на ПО их роутеров:

                      https://govnokod.ru/27701#comment677150

                      У них проблема курицы и яйца: база юзеров лежит на отдельной машине. Чтобы авторизоваться в админке их роутера, нужна работающая сеть.
                      Ответить
      • Какая дискриминация )))
        Ответить
      • слева чувиха голая О_о
        Ответить
        • В коричневой водолазке.
          Ответить
          • телесного в некоторых частях света цвета?
            Ответить
            • Странная картинка, конечно. Почему у белого чувака и негритянки получилась белая дочка-девопс?
              Ответить
    • Названы языки программирования, приносящие ИТ-шникам самые высокие зарплаты. Python в пролете
      Зарплаты программистов, использующих языки Rust и Go, оказались заметно выше в сравнении с доходами их коллег, пишущих на Python. Эксперты связывают это с нехваткой специалистов, знающих Go или Rust, и одновременно с переизбытком Python-программистов.

      Авторы исследования выяснили, что большая часть респондентов получает от $100 тыс. до $150 тыс. в год. Таковых набралось 34%. У 26% опрошенных зарплата варьировалась от $150 тыс. до $200 тыс. в год.

      Специалисты, пишущие на Rust, получают самую высокую зарплату – в среднем более $180 тыс. в год. Как сообщал CNews, именно Rust был признан самым любимым языком среди посетителей форума Stack Overflow – самого популярного в мире ресурса для программистов.

      На втором месте по уровню зарплат находятся те, кто программирует на языке Go. Их средняя зарплата, по данным O'Reilly, находится на отметке в $179 тыс. в год. Go, как и Rust, пользуется особым спросом у хакеров.

      например
      https://spb.hh.ru/vacancy/49709609
      Ответить
      • > Эксперты связывают это с нехваткой специалистов, знающих Go или Rust, и одновременно с переизбытком Python-программистов.
        А зачем, если ты контора, использовать Rust/Go и переплачивать редким питухам, когда C++/python хватит всем?
        Ответить
        • Не знаю.


          В википедии какой-то дурак написал, что go "может рассматриваться как попытка создать замену языкам Си и C++", хотя go это скорее замена питону
          Ответить
          • > go замена питону

            Ну что-то среднее между сишкой и питоном, имхо. Когда регистры ебать уже не надо, но и задача не особо прикладная.
            Ответить
            • > что-то среднее между сишкой и питоном
              – ну, в принципе, так можно сказать про 90% языков сегодня))
              Ответить
            • В смысле "не прикладная"? Что может быть более прикладным, чем например, terraform?

              Кмк, го это именно чтобы быстро и просто пистать прикладуху, при этом
              * иметь стат типизацию чтобы реже обсираца
              * иметь стат линковку, чтобы не иметь секса с окружением
              * иметь зафоршенный кодстайл чтобы не разводить зоопарк

              Всё.

              Как можно заменять сишку языком с GC и без динамической линковки?
              Как можно заменять плюсы языком без обобщенного погромирования?

              Замену сишки пытались сделать из D Rust
              Ответить
              • > го это именно чтобы быстро и просто пистать прикладуху

                – там в наличии вроде 0 production ready UI-фреймворков, я б про прикладуху не торопился
                Ответить
                • Лучше на «Nim» писать прикладуху, чем на ебаном «Go», который по своей сути является метастазой «РНР».
                  Ответить
                  • «РНР» по крайней мере тихо обслуживает миллиарды пользователей.

                    А «Govno» только щёки надувает.
                    Ответить
                • а бекенды и командлайн тулы рази не прикладухи?
                  Ответить
                  • По-моему что-то на грани системщины.
                    Ответить
                    • > Прикладная программа, или приложение, — программа, предназначенная для выполнения определённых задач и рассчитанная на непосредственное взаимодействие с пользователем.

                      Так что бекенд это не прикладуха, а командлайн тула – это прыщепердолинг.
                      Ответить
                    • бекенд вебсайта и тула для посылки REST запросов из конфига на json?
                      Ответить
                  • не знаю. в моём понимании, результатами прикладного программирования пользуются домохозяйки. но я могу некорректно воспринимать термин
                    Ответить
                    • Ну бекенд зачастую прикладные задачи решает.
                      Ответить
                      • Классификация прикладного программного обеспечения

                        https://spravochnick.ru/informatika/prikladnoe_programmirovanie/
                        – тут нет про домохозяек(
                        Ответить
                    • Мне казалось, что прикладное приложение во-первых работает в userspace, во-вторых является конечным продуктом (не библиотектой)

                      Например либа ffmpeg или драйвер мышки не прикладное приложение
                      А адоб иллюстратор или лабвью приклодные, хотя и не для домохозяек
                      Ответить
                      • ну, про домохозяек я хуйню написал

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

                          Но у языка еще ниша такая, что его в основном используют авторы тулов для всяких айти питухов, хотя есть бекенды для всяких веб приложений вроде тоже
                          Ответить
                  • короче,

                    мой поинт в том, что те задачи, которые сейчас решают на питоне, могут решать и на Го: будет тоже самое примерно

                    А те задачи, которые решают на си в 2021, трудно будет решать на Го
                    Ответить
                    • Хрен знает, го не особо пригоден для быстрой разработки и прототипов... Он же тупее и невыразительнее сраной джавы (хотя куда уж, казалось бы?)

                      Мне бы даже сайт на нём не хотелось писать, если честно.

                      Какую-то тулу или несложный системный сервер -- возможно.
                      Ответить
                      • Почему?
                        Ответить
                        • Ну потому что в прикладной задаче я хочу прикладной задачей заниматься, а не либы копировать и патчить...
                          Ответить
                    • Go это упрощенная сишка для питухов анскильных. Нахуй не нужно короче
                      Ответить
                      • Почему сишка? Почему не упращенная джавка?
                        Ответить
                        • Потому что жабка в байткод жабы конпелируется и ей нужен тяжелый говнорантайм, а Go конпелируется в нейтив. А еще его Кен Томпсон разрабатывал.
                          Ответить
                          • тогда это ейфория

                            эйфория умеет компилироваться в нативный код (через посредство сишки) и статически линковаться вроде
                            Ответить
          • > go "может рассматриваться как попытка создать замену языкам Си и C++"

            Ахаха, «да я же как Сишка».
            Ответить
            • Не может. Там говноGC
              Ответить
              • Ну так

                я и говорю, "go замена c/с++" мог написать только человек, который ни на си, ни на с++ никогда не писал
                Ответить
                • Если ты пишешь какую-то системную хрень где не важен пирфоманс -- докер-демона, тулу какую-нибудь и т.п., то гц там ну никак не будет мешать... А раньше это была область сишки как раз -- не тащить же джаву или питон с их ебическими рантаймом и зависимостями.

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

                    В общем ты меня убедил: go это замена сишки в тех местах, где тебе не важен перформанс (и занимаемое метсо лол)

                    а в каком месте она замена С++ без обобщпрограммр?

                    прямо даже решил говно выучить на этих выхах
                    Ответить
                    • У меня в контроллерах нет никаких "демонов", поэтому я за контроллеры.
                      Ответить
                      • Скучно у вас там.
                        Ответить
                      • init есть?
                        Ответить
                        • > init

                          Ну ты ещё systemd на контроллер притащи...
                          Ответить
                          • systemd-controllerd

                            А что такого в Init?
                            Ну пусть какой-то один юзерленд процесс будет, все равно ядру-то плевать: что он init, что хуинит

                            все равно демон же по сути
                            Ответить
                            • На многих дешёвых контроллерах нормальные "процессы" не сделать: там даже MPU не завезли, не то что MMU.

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

                              З.Ы. А чем там иниту заниматься?
                              Ответить
    • https://wordsandbuttons.online/so_you_think_you_know_c.html
      Ответить
      • And at this point, I only have to apologize. The test is clearly provocative and may even be a little offensive. I’m sorry if it causes any aggravation.

        Блядь, ебучий 21 год 21 века, даже шуточный психический тест ленчует негров. Пырните кто-нибудь его заточкой чтобы не зря этот абзац писал.
        Ответить
      • Баян это. Давайте я этот тест расширю

        Давайте я еще этот тест расширю. Вот например

        int32_t a = 1;
        a = a << 31;

        Чему равно a?
        1) 1
        2) -1
        3) -2147483648
        4) I don't know

        или вот

        uint32_t a = 1;
        a = a << 32;

        Чему равно a?
        1) 1
        2) 0
        3) 2147483648
        4) I don't know

        или вот

        int32_t a = -1;
        a = a >> 1;

        Чему равно a?
        1) -2
        2) 1073741824
        3) 0
        4) I don't know
        Ответить
        • Зойчем такие сложности?

          int32_t a = 1;

          Чему равно a?
          1) 1
          2) -1
          3) -2147483648
          4) I don't know
          Ответить
          • 1)
            Ответить
            • N2346, §7.20 Integer types <stdint.h>, 4
              For each type described herein that the implementation provides,
              276) <stdint.h> shall declare that typedef name and define the
              associated macros. Conversely, for each type described herein that
              the implementation does not provide, <stdint.h> shall not declare
              that typedef name nor shall it define the associated macros.
              An implementation shall provide those types described as "required",
              but need not provide any of the others (described as "optional").


              N2346, §7.20.1.1 Exact-width integer types
              1
              The typedef name intN_t designates a signed integer type with
              width N, no padding bits, and a two’s complement representation.
              Thus, int8_t denotes such a signed integer type with a width
              of exactly 8 bits.
              
              2
              The typedef name uintN_t designates an unsigned integer type
              with width N and no padding bits. Thus, uint24_t denotes such
              an unsigned integer type with a width of exactly 24 bits.
              
              3
              These types are optional. However, if an implementation
              provides integer types with widths of 8, 16, 32, or 64 bits,
              no padding bits, and (for the signed types) that have a two’s complement
              representation, it shall define the corresponding typedef names.
              Ответить
              • Ну тогда надо ставить вопрос про то, скомпилируется ли программа вообще, а не чему что равно
                Ответить
              • Какой Иезуит ))) Въебал плюс
                Ответить
          • 4. Вдруг там макросня какая-нибудь или int32_t это класс (хотя по стандарту вроде нельзя так называть).

            З.Ы. Или "а" русская, лол.
            Ответить
            • Я кок раз русскую а пару дней назад час дебажил на питоне )))
              Ответить
              • У меня когда-то была идея сделать шрифт, где все символы не-ASCII принудительно другого цвета, как смайлики сделаны.
                Но стало лень.
                Ответить
              • О-о-о-й, как мужик у тебя на аве залупнулси... Как кожа на елдаке.
                Ответить

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