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

    −2

    1. 1
    https://journal.tinkoff.ru/holidays-millions/

    Познакомьтесь с человеком, который ушел из ИТ и зарабатывает до 2 млн рублей на праздниках
    https://journal.tinkoff.ru/holidays-millions/

    Необычных заказов были десятки: например, мастер-класс по рисованию нефтью. Для него мы нашли пять литров нефти, хотя это очень сложно. Баррель нефти или больше — пожалуйста, только что вы с ней будете делать потом? Утилизировать ее самостоятельно невозможно. Еще нас просили привезти дрессированного медведя на самолете в Новосибирск, провести мастер-класс по созданию леденцов в виде пениса для девичника и мастер-класс по горловому минету.
    -------

    а вы готовы уйти из IT ради того, чтобы возить медведя в Новосбириск?

    MAKAKA, 14 Февраля 2021

    Комментарии (36)
  2. Куча / Говнокод #27252

    −1

    1. 1
    -

    Ня, кавай |B

    hormand, 14 Февраля 2021

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    let d="please like! "
    var c=d
    let x=s=>{for(let f=0;f<c.length;f++){eval(s)}}
    x("d=d+d")
    x("console.log(d)")

    На каком языке это получится сделать короче?

    prefix-not, 12 Февраля 2021

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

    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
    Объясните, как правильно разрабатывать в 2021 году
    
    Есть один продукт, состоящий из сайта, сервера и БД, связывающей их.
    Сайт на PHP, с микрофреймворком, устанавливаемым через composer, отображающий данные из БД
    Сервер - программа, слушающая порт из свой конфигурации и записывающая в БД
    
    Таковы потребности, что на один сервер может быть установлено одна и более изолированных копий этого продукта (сервер + сайт + БД), а серверов несколько.
    Сайты разделяют через виртуальные хосты nginx, сервера по портам, БД по имени.
    Может случиться такое, что нужно остановить сайт или сервер, оставив второе работать.
    
    Проблема в том, что развёртывание делается вручную переносом копий файлов, что доставляет страданий.
    На серверах за всё время образовался бардак в конфигурациях
    
    Что здесь нужно? Kubernetes, swarm, docker, docker-compose?
    
    Проблема в том, что никогда не приходилось внедрять такое самостоятельно.
    Смотрю в сторону docker-compose, но везде инструкции только для одного экземпляра продукта на одном сервере (или я чего-то не понимаю)
    
    Объясните, пожалуйста, по-хорошему, что делать в таком случае

    Крендель, 11 Февраля 2021

    Комментарии (18)
  5. C++ / Говнокод #27249

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    void setAreaPreScale(double scale)
    {
      if(scale == 1)
        setFrameSize(initialFrameSize.first, initialFrameSize.second);
      else
      {
        double widthPart = (1 - initialFrameSize.first) * (1 - scale);
        double heightPart = (1 - initialFrameSize.second) * (1 - scale);
        setFrameSize(initialFrameSize.first + widthPart, initialFrameSize.second + heightPart);
      }
    }

    требуется сделать отложенное масштабирование картинки, сначала рисуется (и скейлится методом setAreaPreScale) рамка с областью, в которую будет замасштабировано, затем отдельной кнопкой будет масштабироваться. в методе происходит рассчёт размера в пикселях рамки прескейла по параметру scale (отношение будущего масштаба к текущему). initialFrameSize на самом деле maxFrameSize, но авторский код сохранён

    gladijos, 11 Февраля 2021

    Комментарии (5)
  6. 1C / Говнокод #27248

    +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
    Запрос = Новый Запрос;
    	Запрос.УстановитьПараметр("Регистратор",              ЭтотОбъект.Отбор.Регистратор.Значение);
    	Запрос.УстановитьПараметр("НачалоПериода",            ЭтотОбъект.Отбор.Регистратор.Значение.МоментВремени());
    	Запрос.УстановитьПараметр("КонецПериода",             ЭтотОбъект.Отбор.Регистратор.Значение.МоментВремени());
    
    	Запрос.Текст = 
    	"ВЫБРАТЬ
    	|	ТаблицаСоставаДокумента.Склад,
    	|	ТаблицаСоставаДокумента.Номенклатура,
    	|	ТаблицаСоставаДокумента.Качество,
    	|	ТаблицаСоставаДокумента.ХарактеристикаНоменклатуры,
    	|	ТаблицаСоставаДокумента.СерияНоменклатуры
    	|ПОМЕСТИТЬ ВТ_Состава_Документа
    	|ИЗ
    	|	&ТаблицаСоставаДокумента КАК ТаблицаСоставаДокумента
    	|;
    	|
    	|////////////////////////////////////////////////////////////////////////////////
    	|ВЫБРАТЬ
    	|	СвободныеОстаткиОстаткиИОбороты.Склад,
    	|	СвободныеОстаткиОстаткиИОбороты.Номенклатура,
    	|	СвободныеОстаткиОстаткиИОбороты.Качество,
    	|	СвободныеОстаткиОстаткиИОбороты.ХарактеристикаНоменклатуры,
    	|	СвободныеОстаткиОстаткиИОбороты.СерияНоменклатуры,
    	|	СвободныеОстаткиОстаткиИОбороты.КоличествоНачальныйОстаток,
    	|	СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток
    	|ИЗ
    	|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
    	|			&НачалоПериода,
    	|			&КонецПериода,
    	|			Запись,
    	|			Движения,
    	|			НЕ Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.Продукция)
    	|				И НЕ Номенклатура.ВестиУчетПоСериям
    	|				И (Склад, Номенклатура, Качество, ХарактеристикаНоменклатуры, СерияНоменклатуры) В
    	|					(ВЫБРАТЬ
    	|						ВТ_СоставаДокумента.Склад,
    	|						ВТ_СоставаДокумента.Номенклатура,
    	|						ВТ_СоставаДокумента.Качество,
    	|						ВТ_СоставаДокумента.ХарактеристикаНоменклатуры,
    	|						ВТ_СоставаДокумента.СерияНоменклатуры
    	|					ИЗ
    	|						ВТ_Состава_Документа КАК ВТ_СоставаДокумента)) КАК СвободныеОстаткиОстаткиИОбороты
    	|ГДЕ
    	|	СвободныеОстаткиОстаткиИОбороты.Регистратор = &Регистратор
    	|	И СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток < 0";

    Проверка на отрицательные остатки.....

    timm00, 11 Февраля 2021

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

    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
    // foo.h
    namespace Xru {
    struct Foo {
        Foo();
    };
    }
    
    // foo1.cpp
    #include <foo.h>
    using namespace Xru;
    Foo::Foo() {}
    
    // foo2.cpp
    #include <foo.h>
    namespace Xru {
    Foo::Foo() {}
    }

    Вы пишите как 1 или 2?
    До меня другой коллега доёбуецца, что нужно как 2.

    3_dar, 10 Февраля 2021

    Комментарии (11)
  8. C++ / Говнокод #27246

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    struct Foo { Foo(int, int); };
    struct Bar { explicit Bar(int, int); };
    
    Foo f1(1, 1); // ok
    Foo f2 {1, 1}; // ok
    Foo f3 = {1, 1}; // ok
    
    Bar b1(1, 1); // ok
    Bar b2 {1, 1}; // ok
    Bar b3 = {1, 1}; // NOT OKAY

    А вы пишите explicit у коньструкторов? До меня коллега доёбуецца, что я не пишу.

    3_dar, 10 Февраля 2021

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function main() {
        var distance = parseInt(readLine(), 10);
        p((distance/40)*60)
    }
    let p=p=>console.log(p)

    Как-то так вот!

    prefix-not, 09 Февраля 2021

    Комментарии (25)
  10. Python / Говнокод #27244

    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
    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
    94. 94
    import datetime, random, time, os, vk_api
    import sqlite3 as sl
    from vk_api.exceptions import Captcha
    from vk_api.longpoll import VkEventType, VkLongPoll
    from functions import *
    from settings import *
    vk_session = vk_api.VkApi(token=token, api_version=5.126)
    longpoll = VkLongPoll(vk_session)
    vk = vk_session.get_api()
    now = datetime.datetime.now()
    
    for event in longpoll.listen():
        try:
            def send_msg(msg='', chat=False, prefix=True, attach=''):
                if chat:
                    vk.messages.send(chat_id=event.chat_id,message=msg,attachment=attach)
                else:
                    vk.messages.send(user_id=event.user_id,message=msg,attachment=attach)
        except Captcha:
            time.sleep(1)
            send_msg('Ошибка. Слишком частые запросы.')
        except Exception as e:
            time.sleep(1)
            send_msg(f'Неизвестная ошибка при отправке сообщения.\n{e}')
        try:
            if event.type == VkEventType.MESSAGE_NEW and event.to_me:
                user_get = vk.users.get(user_ids=event.user_id)
                first_name = user_get[0]['first_name']
                last_name = user_get[0]['last_name']
                if event.from_chat and event.chat_id and (event.message == '!meme' or event.message == '!мем'):
                    meme_create()
                    upload = vk_api.VkUpload(vk_session)
                    try:
                        a = upload.photo_messages(photos=os.path.dirname(__file__) + '/random_meme.jpg', peer_id=event.user_id)
                        send_msg(attach=f'photo{a[0]["owner_id"]}_{a[0]["id"]}',chat=True, prefix=False)
                    except:
                        send_msg("Ошибка. Попробуйте снова.")
                elif event.from_chat and event.chat_id and (event.message == '!info' or event.message == '!инфо'):
                    response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
                    soup = BeautifulSoup(response.text, 'lxml')
                    created = soup.find('ya:created').get('dc:date')
                    created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                    diff = datetime.datetime.now()-created1
                    modified = soup.find('ya:modified').get('dc:date')
                    modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                    send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''', chat=True)
                elif event.from_user and event.user_id and (event.message == '!info' or event.message == '!инфо'):
                    response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
                    soup = BeautifulSoup(response.text, 'lxml')
                    created = soup.find('ya:created').get('dc:date')
                    created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                    diff = datetime.datetime.now()-created1
                    modified = soup.find('ya:modified').get('dc:date')
                    modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
                    send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''')
                elif event.from_user and event.user_id and event.message == '!coin':
                    coin = 'Орёл' if random.randint(0, 1) == 1 else 'Решка'
                    send_msg(f'{coin}')
                elif event.from_user and event.user_id and (event.message == '!anek' or event.message == '!анек'):
                    send_msg(f'{get_anek()}', prefix=False)
                elif event.from_user and event.user_id:
                    con = sl.connect(os.path.dirname(__file__) + '/users.db')
                    count = 0
                    with con:
                                con.execute("""
                                    CREATE TABLE IF NOT EXISTS USER (
                                        user_id INTEGER NOT NULL PRIMARY KEY,
                                        name TEXT,
                                        permission_lvl INTEGER
                                    );
                                """)
                    with con:
                        data = con.execute("SELECT * FROM USER")
                        for row in data:
                            if event.user_id in row:
                                count += 1
                        if count == 0:
                            send_msg(f'''Привет, это сообщение отправлено автоматически.\nПока я добавляю информацию о тебе в базу данных, ты можешь ознакомиться с командами написав !help\nКоманд не так много, но в будущем их станет больше ;)''')
                            sql = 'INSERT INTO USER (user_id, name, permission_lvl) values(?, ?, ?)'
                            data = [(event.user_id, f'{first_name} {last_name}', 1)]
                            with con:
                                con.executemany(sql, data)
                if event.attachments:
                    print(
                        f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.message}\nattach: {event.attachments}\n")
                else:
                    print(
                        f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.text}\n")
        except Captcha:
            time.sleep(1)
            send_msg('Ошибка. Слишком частые запросы.')
        except Exception as e:
            time.sleep(1)
            send_msg(f'Упс. Произошла неизвестная ошибка.\n{e}')

    Каким образом можно улучшить этот ссаный говнокод?

    TupoyChel, 09 Февраля 2021

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