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

    +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
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    insert(Alias, Tab, Val) ->
        ok.
    
    delete(_Alias, _Tab, _Key) ->
        ok.
    
    add_aliases(_) ->
        ok.
    
    remove_aliases(_) ->
        ok.
    
    check_definition(_Alias, _Tab, _Nodes, _Properties) ->
        ok.
    
    close_table(_Alias, _Tab) ->
        ok.
    
    create_table(_Alias, _Tab, _Properties) ->
        ok.
    
    delete_table(_Alias, _Tab) ->
        ok.
    
    first(_Alias, _Tab) ->
        '$end_of_table'.
    
    fixtable(_Alias, _Tab, _Bool) ->
        ok.
    
    last(_Alias, _Tab) ->
        '$end_of_table'.
    
    index_is_consistent(_Alias, _IxTag, _Bool) ->
        ok.
    
    init_backend() ->
        ok.
    
    info(_Alias, Tab, memory) ->
        0;
    info(Alias, Tab, size) ->
        0;
    info(_Alias, _Info, _Item) ->
        nobody_here_but_us_chicken.
    
    lookup(_Alias, _Tab, _Key) ->
        [].
    
    is_index_consistent(_Alias, _IxTag) ->
        true.
    
    load_table(_Alias, _Tab, _Reason, _CsList) ->
        ok.
    
    match_delete(_Alias, _Tab, _Pattern) ->
        ok.
    
    next(_Alias, _Tab, _Key) ->
        '$end_of_table'.
    
    prev(_Alias, _Tab, _Key) ->
        '$end_of_table'.
    
    real_suffixes() ->
        [].
    
    repair_continuation(Continuation, _MatchSpec) ->
        Continuation.
    
    select(_Continuation) ->
        '$end_of_table'.
    
    select(_Alias, _Tab, _Pattern) ->
        '$end_of_table'.
    
    select(_Alias, _Tab, _Pattern, _Limit) ->
        '$end_of_table'.
    
    
    semantics(_Alias, storage) -> ram_copies;
    semantics(_Alias, types  ) -> [set, ordered_set, bag];
    semantics(_Alias, index_types) -> [];
    semantics(_Alias, _) -> undefined.
    
    slot(_Alias, _Tab, _Pos) ->
        '$end_of_table'.
    
    sync_close_table(_Alias, _Tab) ->
        ok.
    
    tmp_suffixes() ->
        [].

    If /dev/null is fast in web scale I will use it. Is it web scale? Does /dev/null support sharding?

    Запостил: CHayT, 09 Июня 2021

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

    • SEO: неиронично пришлось запилить /dev/null storage backend из классического видео.
      Ответить
      • Проложил?
        Ответить
        • Разверни вопрос, я не понял.
          Ответить
        • А, ты эрланг с прологом спутал что ли. Чему вообще вас там учат в шестом училище...
          Ответить
          • «эрланг» - это R language? Не похоже.
            Ответить
            • А "prolog" это платная версия логов
              Ответить
              • А C++?
                Ответить
                • не знаю такого языка

                  у меня есть файлы с расширением cpp

                  я запустил "$ cpp myfile.cpp", мне выдалась какая-то портянка километровая

                  дурацкий язык, короче
                  Ответить
                  • У меня на компьютере какие-то странные файлы появляются с расширением «рус», не знаешь что это? Я в Киев поеду, меня на таможне не повяжут?
                    Ответить
                    • ха-ха, так это же по английскому написанок: "ПУК"

                      Думаю, это вирус какой-то прикалывается
                      Ответить
                      • Какие есть бесплатные антивирусы? У меня Windows XP.
                        Ответить
                        • https://club.cnews.ru/blogs/entry/luchshie_programmy_dlya_ochistki_i_optim izatsii_kompyutera

                          Советую такие

                          * CCleaner
                          * Carambis Cleaner
                          * Ускоритель Компьютера

                          Лучше поставить все сразу, так будет надежнее

                          Если не поможет, то обратись к профессионалу

                          https://cs7.pikabu.ru/images/big_size_comm/2018-04_1/1522754457119970860.jpg
                          Ответить
    • Это mock какой-то для тестов?
      Ответить
      • Нет, это для прода. Чтобы транзакционно генерить некие события, и при этом их не хранить.
        Ответить
        • Реально кто-то для прода на этом пишет?
          Ответить
          • На эрланге пишут скандинавы-телекомовцы
            Ответить
            • А когда нужно нанять нового работника, ему говорят, что на этом придётся писать? Или он охуевает после найма?
              Ответить
              • Это вопрос к Снауту, но я думаю, что человек, который идет в телеком примерно понимает специфику.


                А что такого страшного в эрланге?

                Кстати, внезапно

                Many companies are using Erlang in their production systems:

                • Amazon uses Erlang to implement SimpleDB, providing database services as a part of the Amazon Elastic Compute Cloud (EC2).

                • Yahoo! uses it in its social bookmarking service, Delicious, which has more than 5 million users and 150 million bookmarked URLs.

                • Facebook uses Erlang to power the backend of its chat service, handling more than 100 million active users.

                • WhatsApp uses Erlang to run messaging servers, achieving up to 2 million connected users per server.

                • T-Mobile uses Erlang in its SMS and authentication systems.

                • Motorola is using Erlang in call processing products in the public-safety industry.

                • Ericsson uses Erlang in its support nodes, used in GPRS and 3G mobile networks worldwide.
                Ответить
                • > что такого страшного в эрланге

                  Непривычность. Всё-таки это функциональщина с иммутабельностью и без циклов.

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

                            Ты вероятно захочешь разделить её на независимые куски, каждый из которых не шарит состояние с другими, а общается с ними только через месседжи (тогда смерть и перезапуск одного куска не приведет к смерти всей системы, не будет single point of failure)

                            Эрланг (насколько я могу судить) именно такой подход и пропагандирует: https://verraes.net/2014/12/erlang-let-it-crash/

                            Он противопостоявляется монолиту, где всё вместе работает в одном адресном пространстве, и шарит общие данные
                            Ответить
                            • показать все, что скрытоЗвучит как ObjC!
                              Ответить
                              • Вот если в ObjC каждый класс засандалить в отдельный процесс, и слать между ними месседжи (что уже сделано в ObjC) то будет оно:)
                                Ответить
                            • звучит как RabbitMQ + Node.js :)
                              Ответить
                              • так милениалы всегда изобретают то, что за тридцать лет до было известно
                                Ответить
                                • показать все, что скрытоНу жс наверное попроще выучить, чем Эрланг
                                  Ответить
                                  • > жс наверное попроще выучить, чем Эрланг

                                    Вообще не факт.
                                    Ответить
                                  • Ну они обычно так и говорят.

                                    Например:

                                    Зачем нам языки со статической типизацией?
                                    Скриптушню же проще выучить

                                    А потом насирают кривое хуёвое поделие частично статически типизированное, а то и вовсе компилятор
                                    Ответить
                                    • показать все, что скрытоНу зачем учить новый язык, если можно не учить
                                      Ответить
                                      • Джава мэн (๑˃ᴗ˂)ﻭ
                                        Ответить
                                        • показать все, что скрытоХочу на тебя посмотреть в такой же ситуации)
                                          Ответить
                                          • А что смотреть-то. Я и на йаже асинхронщину и DSLи писал в одной небезызвестной музыкальной конторе. Изучив N разных языков разных парадигм, начать писать на (N + 1)м куда проще.
                                            Ответить
                                            • показать все, что скрытовопрос не в том, проще ли, а в том, зачем

                                              большинству людей удобнее сидеть в рамках одной экосистемы

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

                                              а то, что на любом языке можно писать, как на фортране, не секрет ни разу
                                              Ответить
                                              • > вопрос не в том, проще ли, а в том, зачем

                                                Мне совсем ня интересно пилить CRUD'ы, например. А если держаться "экосистем", то кроме них перспектив особых нет.
                                                Ответить
                                          • Ну вообще у разных питухов разное совершенно отношение к изучению чего-то нового.

                                            Встречаются такие: "я выучил язык $FOO для небольшого пет-проекта"

                                            И такие: "у меня уже три года опыта на C#/ASP.NET, поздно мне другие технологии изучать"
                                            Ответить
                                            • показать все, что скрытоесли ты всё пишешь на js, то что странного, что берёшь/пишешь что-то ещё на js? это 99% удобнее, чем сношать js с тем же эрлангом
                                              Ответить
                                              • https://habr.com/ru/post/447250/
                                                напомню
                                                https://govnokod.xyz/_27464/#comment-621188

                                                Вполне сязывают
                                                -

                                                Вообще писать свое квадратное колесо далеко не всегда хорошо. Чаще всего это делается по глупости или незнанию, и лишь в очень особых случаях это имеет смысл
                                                Ответить
                                      • если цель - собрать их все (вдруг повезет и язык окажется хорошим), то да
                                        именно по этой причине джавамены плодят A-lang, B-lang, C-lang ... R-lang (keyspace 18/26)
                                        эволюция слепа
                                        Ответить
                              • RabbitMQ написан на эрланге.
                                Ответить
                                • > RabbitMQ написан на эрланге.

                                  Какой багор )))

                                  Вот так вот юзаешь кролика и даже не подозреваешь, что в нём таится эрланг.
                                  Ответить
                  • так, падажжи, ёпта, вот эти преимущества как-то хреново ложатся на sucksass story выше где все его юзают миллиардами для высокотехнологичных ЖПРСов

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

                    https://www.boyens-medien.de/fileadmin/_processed_/9/d/csm_umkleide_ONW2_2cd6eb85_a1df_4e66_a0e c_159cfb6d0030_c_f932daf81e.jpg
                    Ответить
                  • а я а я а я научился функциональному языку без циклов и с иммутабельностью сначала и теперь страдаю, когда нужно как-то формально о памяти рассуждать
                    Ответить
                    • А я а я пруф на коке в проде использовал однажды постоянно: https://github.com/k32/libtx/blob/master/theories/Storage.v#L401

                      Сейчас второй пилю, правда боюсь на параллельный алгоритм моих мозгов уже ня хватит.
                      Ответить
                      • P.S. Раз тут знатоки собрались, давайте посмеёмся вместе над кодом.
                        Ответить
                      • звучит и выглядит как задача под айрис
                        Ответить
                        • да, где-то год назад статья на похожую тематику была. правда, там программная логика не стоковая, а под ноды (анерис называется). наверное, можно за основу взять
                          Ответить
                          • "** Q: Why not iris/aneris?", а, увидел, но все равно немного не понял причину
                            Ответить
                    • Хвостовая рекурсия в чистых ФП-языках это по-сути своей и цикл, и мутабельность. В новом вызове функции в самой себе у тебя там могут быть другие значения переменных - вот тебе и "мутабельность". И совершенно очевидно, что можно делать цикл через хвостовую рекурсию.
                      Ответить
                • а чем If/Else эрлана отличается от If/Else С#?
                  Ответить
                • > А что такого страшного в эрланге?

                  Ничего. Очень простой и прагматичный язык, заточенный чисто под сетевое программирование. Коммъюнити адекватное и прошаренное. Попробуйте, он учится за пару недель.
                  Ответить
                  • Приведи список известных сайтов, написанных на Erlang.
                    Ответить
                    • Любой сайт, который ты смотришь с мобилки.
                      Ответить
                      • Чочо? Даже «ВКонтакте», «Facebook», «Википедия» и, блядь, «Говнокод»?
                        Ответить
                      • https://i.imgur.com/Kc0FKmY.png
                        Из обсуждений в "Matrix"
                        Ответить
                        • На coq с формальным пруфом отсутствия уняков.
                          Ответить
                        • Интересная гипотеза. Оба ника на «st», родной город на «Влади», так что второй может быть тульпой первого.
                          Ответить
                        • Рекомендуемые поисковые запросы:

                          вореции
                          какой пароль использовал падла
                          копипаста вован
                          1 с
                          lurk богиня
                          ucoz говно
                          webstorm купить
                          бесит когда люди в поезде постоянно жрут
                          мак ос говно
                          пишем ботнет на питон
                          виндовс 10 заебала с паролями
                          в 24 можно быть анимешником

                          *****

                          Какую рекламу можно подобрать по таким поисковым запросам?
                          Ответить
                          • Говнокурсы для похопэшников и питунистов например. Вот если кто-то например срет каким-то похопе-говном, можно ему рекламу с курсами пхп выдавать, типа "Тут тебя научат не говнокодить на PHP. Мы за PHP!"
                            Или хайрить еще можно. Если много хуйни на сишке отправляешь, можно предлагать работу писать прошивки на контроллеры.
                            Ответить
                        • Бтв, вступайте в чат.
                          Ответить
                  • > Коммъюнити адекватное и прошаренное

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

                В деревне Нижняя Кашицынка есть контора эрлангистов, куда часто попадают ничего не подозревающие люди. На моей практике хомо сапиенсы и хомо эмбеддусы въезжают в Erlang месяца за два. Джава мэны, конечно, сливаются.
                Ответить
                • А пыхоэректусов у тебя наверное и статистики-то нет, потому что они живут в параллельном пространстве, и с той конторой физически пересечься не могут
                  Ответить
                  • Знал одного 1С-ника, который переквалифицировался в разработчика TCP стека )))
                    Ответить
                    • в смысле стал в ядре TCP реализовывать?

                      Это очень необычно, как три белых гриба одновременно в лесу найти
                      Ответить
                      • > в смысле стал в ядре TCP реализовывать?

                        Уровнем повыше, вроде. Броадкомовское SDK вроде интегрировал. Но это всё равно пиздец хардкорная тема была.
                        Ответить
          • Почему бы и нет? Даже на жс прод пишут и ничего...
            Ответить
          • > Реально кто-то для прода на этом пишет?

            С большой вероятностью, говнокод на эрланге за тобой сейчас следит.
            Ответить
    • показать все, что скрытококой пролог )))
      Ответить
    • I am not using Win32 APi. My code is in native c,c++ Can't use GDI libraries ! – TechnoWings Inc- Rajesh
      Ответить
      • Ну пускай сисколы тогда дергает напрямую. Кусок GDI один хрен в драйвере расположен
        Ответить
        • Они ж недокументированные.
          Ответить
          • Если ты лезеш в нейтивапи, то ты либо мамкин хакер (и тогда тебя это не пугает) либо писатель дров, а им не следует пытаться рисовать что-то на экране через GDI.

            Пусть срут юзерспейс приложение и общаются через иоктлы
            Ответить
            • Мне почему-то кажется, что под native c/c++ он понимает тупо стандартную либу.
              Ответить
              • Я погуглил
                Там всё гораздо страшнее

                https://stackoverflow.com/questions/8542660/draw-on-desktop-using-visual-c


                I know that the drawing functions are available in GDI32.dll , but confused on how to integrate GDI32.dll with my vc code. can you suggest some good solution?


                В ответах тоже хорошо

                system("pause");
                Sleep(10)

                и блядский микс из крестов и няшечки
                Ответить
                • > integrate

                  Существующий синхронный код и правда сложно напялить на событийно-ориентированную модель...

                  Разве что в тред захуйнуть.
                  Ответить
                  • Это ты про линковку с GDI32.dll, получение контекста и рисование на нем?:)
                    Ответить
                    • Дык нельзя взять и нарисовать... Ну вернее можно, но оно потом испортится или винда подумает, что у тебя прога повисла.

                      Как минимум луп для разгребания событий нужен.
                      Ответить
                      • а, ну да: нужно сделать окно, и на нем рисовать запустив там лупа

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

                        ну или развернуться на весь экран, взять ddraw или direct2d, и срать уже монопольно
                        Ответить
                        • > ddraw

                          Бери вулкан, что мелочиться. Там тоже не надо окна создавать если на монопольный фуллскрин идёшь.
                          Ответить
                          • не совсем корреткное сравнение

                            ddraw это устаревший 2D API, очень простой.

                            Правильнее сравнивать вулкана с Direct3D, наверное..
                            Ответить
                            • Ну в вулкане ты тоже можешь софтом рисовать в битмапе, а потом вывалить её на экран... Шейдеры и алгебру учить не придётся.
                              Ответить
                              • А это не будет как примерно компьютером гвозди забивать?
                                Ответить
                                • Да в общем-то нет. Ты юзаешь 2D DMA по назначению.
                                  Ответить
                                  • Ну может)

                                    Я просто тока с ддроу особо и игрался

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

                                      Режима совсем без флипа там вроде и нет, хотя бы 2 буфера надо.
                                      Ответить
                                      • тогда я не понял, что такое "текущий буфер"

                                        я думал ты про тот, с которого прямо на экран изображение выводится

                                        Обычная схема это иметь два буфера, срать в один, потом менять их местами

                                        Это если в карте есть место на два буфера

                                        А если нет, то задний держать в памяти, а потом его битблтить

                                        но я хз у какой карты в 21-м веке памяти нет
                                        Ответить
                                        • > памяти нет

                                          Там её уже почти по 30 гигов на топовых...

                                          Текущий -- это тот, который тебе отдал свопчейн. Тот, который сейчас на монитор передаётся, он конечно не отдаст.
                                          Ответить
                                          • >не отдаст

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

                                              В общем там есть режим, в котором ты флипаешь буфера без ожидания, прям посреди кадра.
                                              Ответить
                                        • > если в карте есть место на два буфера
                                          https://www.youtube.com/watch?v=xZx0viOa0TA
                                          Ответить
                            • почму устаревший-то?
                              Ответить
                              • Потому что direct2d давно уже завезли
                                Ответить
                                • А он ещё работает, кстати? Или надо с собой дллку таскать?
                                  Ответить
                                  • ddraw работает: в system32 лежит, а вот SDK вроде бы нужно ставить отдельно (ну как и любое directx SDK, вероятно)

                                    А еще там есть такой лулз

                                    You must use LoadLibrary to explicitly link to Ddraw.dll and then use GetProcAddress to access the DirectDrawCreate function.
                                    Ответить
                                    • Им лень было либу для линковки запилить?
                                      Ответить
                                      • Я не знаю, почему так.
                                        Может быть это соль, чтобы ты не юзал старый API
                                        А может как-то связано с шимами...
                                        Ответить
                                • хм, почти что Йажа
                                  ID2D1Factory::CreateDxgiSurfaceRenderTar get
                                  Ответить
                  • показать все, что скрытоБормондяша, почему ты не спишь?

                    Твоя Хактебка
                    Ответить
    • Не отвечайте уёбкам. Читайте книги.
      Ответить
    • показать все, что скрытоРебята не стоит вскрывать этот код. Вы молодые, хакеры, вам все легко. Это не то. Это не Stuxnet и даже не шпионские программы ЦРУ. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте компилятор и забудьте что там писалось. Я вполне понимаю что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
      Ответить
    • Не отвечайте уёбкам. Читайте книги.
      Ответить

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