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

    Комментарии (110) 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

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

                                                Вообще писать свое квадратное колесо далеко не всегда хорошо. Чаще всего это делается по глупости или незнанию, и лишь в очень особых случаях это имеет смысл
                                                Ответить
                                                • Глупости, почти всё, что у нас есть, это NIH
                                                  Ответить
                                                  • В смысле вы не пользуетесь фреймворками, китами, и SDK?:)
                                                    Ответить
                                      • если цель - собрать их все (вдруг повезет и язык окажется хорошим), то да
                                        именно по этой причине джавамены плодят 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 С#?
                  Ответить
                  • Значение возвращает.
                    Ответить
                  • Это expression, т.е. oн ведёт себя скорее как тернарник.
                    Ответить
              • > А когда нужно нанять нового работника, ему говорят, что на этом придётся писать? Или он охуевает после найма?

                В деревне Нижняя Кашицынка есть контора эрлангистов, куда часто попадают ничего не подозревающие люди. На моей практике хомо сапиенсы и хомо эмбеддусы въезжают в 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
                                  Ответить
                  • Бормондяша, почему ты не спишь?

                    Твоя Хактебка
                    Ответить

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