1. C++ / Говнокод #27774

    0

    1. 1
    2. 2
    3. 3
    4. 4
    const boost::escaped_list_separator<char> els("\\"s, " \n\t"s, "\"");
    
    boost::replace_all(src, "\"", "\"\\\"");
    const boost::tokenizer tok(src, els);

    els не умеет в keeping quotes хнык хнык

    digitalEugene, 30 Октября 2021

    Комментарии (0)
  2. C# / Говнокод #27773

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private List<OutputData> AddSomeSpecialStateToFoo(
                List<OutputData> foos,
                IDictionary<Guid, SomeSpecialState> fooStates)
            {
                foreach(var foo in foos)
                {
                    foo .State = fooStates.FirstOrDefault(x => x.Key == cam.FooId).Value;
                }
    
                return foos;
            }

    Митируем листы и юзаем словарь правильно.

    LozorcevDiyosha, 29 Октября 2021

    Комментарии (9)
  3. JavaScript / Говнокод #27772

    0

    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
    interface Something {
        r: number;
        g: number;
        b: number;
        toString: () => string;
    }
    
    function main() {
        const something = {
            r: 11.0, g: 12.0, b: 13.0, toString() {
                return "Hello " + this.b;
            }
        };
    
        const iface = <Something>something;
        print(iface.toString());
    
        print("done.");
    }

    Интерфесы для абстрактых обьектов.. а ваш говно компилятор может так?

    ASD_77, 28 Октября 2021

    Комментарии (24)
  4. Куча / Говнокод #27771

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Щас продукты перетекают в сервисы, разработка ПО делится на фронт и бэк, всякие аджайлоскрамы со спринтами, 
    ретро и бэклог-ревью, автотесты, проверить работает ли код можно на лету. 
    
    А как выглядела работа у разработчиков ПО в начале 10-х, 00-х, 90-х? 
    Как контролировали выполнение задач? 
    Насколько часто переключались на проверку работоспособности кода?
    Как тестили приложения с GUI (десктоп, игры всякие)? 
    Какие задачи давали на техническом интервью кандидатам?

    JaneBurt, 27 Октября 2021

    Комментарии (394)
  5. Куча / Говнокод #27770

    0

    1. 1
    Давайте флудить и троллить ;-)

    Давайте флудить и троллить ;-)

    bot_batbot_batbot, 27 Октября 2021

    Комментарии (6)
  6. bash / Говнокод #27769

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #!/usr/bin/env bash
    
    URL=https://foo.bar/baz.zip
    PATH=/home/foo/bar/baz.zip
    
    wget -O "$PATH" "$URL"

    И только потом до мена дошло…

    ISO, 26 Октября 2021

    Комментарии (12)
  7. C++ / Говнокод #27768

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    auto DivisibleBy = [](int d)
        {
            return [d](int m) { return m % d == 0; };
        };
     
        if (ranges::any_of(v, DivisibleBy(7))) {
            std::cout << "At least one number is divisible by 7\n";
        }

    https://en.cppreference.com/w/cpp/algorithm/ranges/all_any_none_of

    digitalEugene, 26 Октября 2021

    Комментарии (73)
  8. bash / Говнокод #27767

    −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
    #!/bin/bash
    
    status=$(xinput list-props 11 | grep 'Device Enabled' | tail -c 2 | tr -d '\n')
    
    echo "Current TB status: $status"
    
    if [[ $status = "0" ]]
    then
        xinput enable 11
        echo "Enabled touchpad!"
    else
        xinput disable 11
        echo "Disabled touchpad!"
    fi

    Как вам мой скриптик?

    JloJle4Ka, 25 Октября 2021

    Комментарии (232)
  9. Куча / Говнокод #27766

    −1

    1. 1
    IT Оффтоп #131

    #101: https://govnokod.ru/27511 https://govnokod.xyz/_27511
    #102: https://govnokod.ru/27518 https://govnokod.xyz/_27518
    #103: https://govnokod.ru/27526 https://govnokod.xyz/_27526
    #104: https://govnokod.ru/27534 https://govnokod.xyz/_27534
    #105: https://govnokod.ru/27544 https://govnokod.xyz/_27544
    #106: https://govnokod.ru/27552 https://govnokod.xyz/_27552
    #107: https://govnokod.ru/27554 https://govnokod.xyz/_27554
    #108: https://govnokod.ru/27557 https://govnokod.xyz/_27557
    #109: https://govnokod.ru/27581 https://govnokod.xyz/_27581
    #110: https://govnokod.ru/27610 https://govnokod.xyz/_27610
    #111: https://govnokod.ru/27644 https://govnokod.xyz/_27644
    #112: https://govnokod.ru/27648 https://govnokod.xyz/_27648
    #113: https://govnokod.ru/27652 https://govnokod.xyz/_27652
    #114: https://govnokod.ru/27659 https://govnokod.xyz/_27659
    #115: https://govnokod.ru/27665 https://govnokod.xyz/_27665
    #116: https://govnokod.ru/27671 https://govnokod.xyz/_27671
    #117: https://govnokod.ru/27675 https://govnokod.xyz/_27675
    #118: https://govnokod.ru/27685 https://govnokod.xyz/_27685
    #119: https://govnokod.ru/27701 https://govnokod.xyz/_27701
    #120: https://govnokod.ru/27703 https://govnokod.xyz/_27703
    #121: https://govnokod.ru/27710 https://govnokod.xyz/_27710
    #122: https://govnokod.ru/27728 https://govnokod.xyz/_27728
    #123: https://govnokod.ru/27729 https://govnokod.xyz/_27729
    #124: https://govnokod.ru/27730 https://govnokod.xyz/_27730
    #125: https://govnokod.ru/27732 https://govnokod.xyz/_27732
    #126: https://govnokod.ru/27733 https://govnokod.xyz/_27733
    #127: https://govnokod.ru/27737 https://govnokod.xyz/_27737
    #128: https://govnokod.ru/27742 https://govnokod.xyz/_27742
    #129: https://govnokod.ru/27747 https://govnokod.xyz/_27747
    #130: https://govnokod.ru/27755 https://govnokod.xyz/_27755

    nepeKamHblu_nemyx, 23 Октября 2021

    Комментарии (701)
  10. Куча / Говнокод #27765

    +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
    waiting_for_data(info, {Driver,Socket,Data},
                     #state{socket=Socket, driver=Driver, driver_mod=DriverMod, peer=Peer, control=Control, list=List} = State) ->
        %% The meat of the whole project: process a function call and return
        %% the data
        try erlang:binary_to_term(Data) of
            {{CallType,M,F,A}, Caller} when CallType =:= call; CallType =:= async_call ->
                {ModVsnAllowed, RealM} = check_module_version_compat(M),
                case check_if_module_allowed(RealM, Control, List) of
                    true ->
                        case ModVsnAllowed of
                            true ->
                                WorkerPid = erlang:spawn(?MODULE, call_worker, [CallType, RealM, F, A, Caller, Socket, Driver, DriverMod]),
                                ?log(debug, "event=call_received driver=~s socket=\"~s\" peer=\"~s\" caller=\"~p\" worker_pid=\"~p\"",
                                     [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), Caller, WorkerPid]),
                                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
                            false ->
                                ?log(debug, "event=incompatible_module_version driver=~s socket=\"~s\" method=~s module=~s",
                                     [Driver, gen_rpc_helper:socket_to_string(Socket), CallType, RealM]),
                                waiting_for_data(info, {CallType, Caller, {badrpc,incompatible}}, State)
                        end;
                    false ->
                        ?log(debug, "event=request_not_allowed driver=~s socket=\"~s\" control=~s method=~s module=~s",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), Control, CallType, RealM]),
                        waiting_for_data(info, {CallType, Caller, {badrpc,unauthorized}}, State)
                end;
            {cast, _M, _F, _A} = Cast ->
                handle_cast(Cast, State),
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            BatchCast when is_list(BatchCast) ->
                [handle_cast(Cast, State) || Cast <- BatchCast],
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            {abcast, Name, Msg} ->
                _Result = case check_if_module_allowed(erlang, Control, List) of
                    true ->
                        ?log(debug, "event=abcast_received driver=~s socket=\"~s\" peer=\"~s\" process=~s message=\"~p\"",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), Name, Msg]),
                        Msg = erlang:send(Name, Msg);
                    false ->
                        ?log(debug, "event=request_not_allowed driver=~s socket=\"~s\" control=~s method=~s",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), Control, abcast])
                    end,
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            {sbcast, Name, Msg, Caller} ->
                Reply = case check_if_module_allowed(erlang, Control, List) of
                    true ->
                        ?log(debug, "event=sbcast_received driver=~s socket=\"~s\" peer=\"~s\" process=~s message=\"~p\"",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), Name, Msg]),
                        case erlang:whereis(Name) of
                            undefined -> error;
                            Pid -> Msg = erlang:send(Pid, Msg), success
                        end;
                    false ->
                        ?log(debug, "event=request_not_allowed driver=~s socket=\"~s\" control=~s method=~s",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), Control, sbcast]),
                         error
                end,
                waiting_for_data(info, {sbcast, Caller, Reply}, State);
            ping ->
                ?log(debug, "event=ping_received driver=~s socket=\"~s\" peer=\"~s\" action=ignore",
                     [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer)]),
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            OtherData ->
                ?log(debug, "event=erroneous_data_received driver=~s socket=\"~s\" peer=\"~s\" data=\"~p\"",
                     [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), OtherData]),
                {stop, {badrpc,erroneous_data}, State}
        catch
            error:badarg ->
                {stop, {badtcp,corrupt_data}, State}
        end;
    
    %% Handle the inactivity timeout gracefully
    waiting_for_data(timeout, _Undefined, #state{socket=Socket, driver=Driver} = State) ->
        ?log(info, "message=timeout event=server_inactivity_timeout driver=~s socket=\"~s\" action=stopping",
             [Driver, gen_rpc_helper:socket_to_string(Socket)]),
        {stop, normal, State};
    
    waiting_for_data(info, {DriverClosed, Socket} = Msg, #state{socket=Socket, driver_closed=DriverClosed} = State) ->
        handle_event(info, Msg, waiting_for_data, State);
    
    waiting_for_data(info, {DriverError, Socket, _Reason} = Msg, #state{socket=Socket, driver_error=DriverError} = State) ->
        handle_event(info, Msg, waiting_for_data, State).

    Срочно требуется учитель литературы, чтобы объяснить, что хотел сказать автор.

    CHayT, 22 Октября 2021

    Комментарии (37)