Куча говна / Говнокод #27464 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 CHayT, (Updated )

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

  • SEO: неиронично пришлось запилить /dev/null storage backend из классического видео.
    Ответить
    • Нет, это для прода. Чтобы транзакционно генерить некие события, и при этом их не хранить.
      Ответить
          • А когда нужно нанять нового работника, ему говорят, что на этом придётся писать? Или он охуевает после найма?
            Ответить
            • Это вопрос к Снауту, но я думаю, что человек, который идет в телеком примерно понимает специфику.


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

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

              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) то будет оно:)
                              Ответить
                            • так милениалы всегда изобретают то, что за тридцать лет до было известно
                              Ответить
                                • > жс наверное попроще выучить, чем Эрланг

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

                                  Например:

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

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

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

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

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

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

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

                                          И такие: "у меня уже три года опыта на C#/ASP.NET, поздно мне другие технологии изучать"
                                          Ответить
                                          • если ты всё пишешь на js, то что странного, что берёшь/пишешь что-то ещё на js? это 99% удобнее, чем сношать js с тем же эрлангом
                                            Ответить
                                                • В смысле вы не пользуетесь фреймворками, китами, и SDK?:)
                                                  Ответить
                                    • если цель - собрать их все (вдруг повезет и язык окажется хорошим), то да
                                      именно по этой причине джавамены плодят A-lang, B-lang, C-lang ... R-lang (keyspace 18/26)
                                      эволюция слепа
                                      Ответить
                              • > 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
                  Ответить
                • а я а я а я научился функциональному языку без циклов и с иммутабельностью сначала и теперь страдаю, когда нужно как-то формально о памяти рассуждать
                  Ответить
                    • P.S. Раз тут знатоки собрались, давайте посмеёмся вместе над кодом.
                      Ответить
                      • да, где-то год назад статья на похожую тематику была. правда, там программная логика не стоковая, а под ноды (анерис называется). наверное, можно за основу взять
                        Ответить
                        • "** Q: Why not iris/aneris?", а, увидел, но все равно немного не понял причину
                          Ответить
                  • Хвостовая рекурсия в чистых ФП-языках это по-сути своей и цикл, и мутабельность. В новом вызове функции в самой себе у тебя там могут быть другие значения переменных - вот тебе и "мутабельность". И совершенно очевидно, что можно делать цикл через хвостовую рекурсию.
                    Ответить
              • > А что такого страшного в эрланге?

                Ничего. Очень простой и прагматичный язык, заточенный чисто под сетевое программирование. Коммъюнити адекватное и прошаренное. Попробуйте, он учится за пару недель.
                Ответить
                • Приведи список известных сайтов, написанных на Erlang.
                  Ответить
                    • Чочо? Даже «ВКонтакте», «Facebook», «Википедия» и, блядь, «Говнокод»?
                      Ответить
                      • Интересная гипотеза. Оба ника на «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++ он понимает тупо стандартную либу.
            Ответить
              • > integrate

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                            В общем там есть режим, в котором ты флипаешь буфера без ожидания, прям посреди кадра.
                                            Ответить
                              • А он ещё работает, кстати? Или надо с собой дллку таскать?
                                Ответить
                                • 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
                                      А может как-то связано с шимами...
                                      Ответить
  • Ребята не стоит вскрывать этот код. Вы молодые, хакеры, вам все легко. Это не то. Это не Stuxnet и даже не шпионские программы ЦРУ. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте компилятор и забудьте что там писалось. Я вполне понимаю что данным сообщением вызову дополнительный интерес, но хочу сразу предостеречь пытливых - стоп. Остальные просто не найдут.
    Ответить

Добавить комментарий для DypHuu_niBEHb Отменить ответ

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8