- 1
 
https://imgur.com/w4Dbg19
                                    Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
https://imgur.com/w4Dbg19
                                    наймите @нормальных программистов
+1
if number >= 0 and number <= 9 then
    string.format('00%d', number)
end
if number >= 10 and number <= 99 then
    string.format('0%d', number)
end
if number >= 100 and number <= 999 then
    string.format('%d', number)
end
                                    
+1
struct any
    {
        std::any _val;
        inline constexpr any() : _val{}
        {
        }
        inline constexpr any(undefined_t) noexcept : _val{}
        {
        }
        inline constexpr any(std::nullopt_t) noexcept : _val{}
        {
        }
        template <typename T>
        inline constexpr any(const T &val) : _val{val}
        {
        }
        inline any(const any &val) noexcept : _val{val._val}
        {
        }
        inline any(any &&val) noexcept : _val{std::move(val._val)}
        {
        }
        inline any &operator=(const any &val)
        {
            _val = val._val;
            return *this;
        }
        inline operator bool()
        {
            if (!_val.has_value())
            {
                return false;
            }
            auto type_index = std::type_index(_val.type());
            if (type_index == std::type_index(typeid(int)))
            {
                return std::any_cast<int>(_val) > 0;
            }
            else if (type_index == std::type_index(typeid(double)))
            {
                return std::any_cast<double>(_val) > 0;
            }
            else if (type_index == std::type_index(typeid(tstring)))
            {
                return std::any_cast<tstring>(_val).size() > 0;
            }
            else if (type_index == std::type_index(typeid(tstring_view)))
            {
                return std::any_cast<tstring_view>(_val).size() > 0;
            }
            else if (type_index == std::type_index(typeid(const char_t *)))
            {
                auto v = std::any_cast<const char_t *>(_val);
                return !v;
            }
            else if (type_index == std::type_index(typeid(std::nullptr_t)))
            {
                return false;
            }
            else if (type_index == std::type_index(typeid(bool)))
            {
                return std::any_cast<bool>(_val);
            }
            return true;
        }
        template <typename N = void>
        requires Arithmetic<N> any operator+(N n)
        {
            return any{std::any_cast<N>(this->_val) + n};
        }
        friend std::ostream &operator<<(std::ostream &os, const any &val_)
        {
            auto val = val_._val;
            if (val.has_value())
            {
                auto type_index = std::type_index(val.type());
                if (type_index == std::type_index(typeid(int)))
                {
                    os << std::any_cast<int>(val);
                }
                else if (type_index == std::type_index(typeid(double)))
                {
                    os << std::any_cast<double>(val);
                }
                else if (type_index == std::type_index(typeid(tstring)))
                {
                    os << std::any_cast<tstring>(val);
                }
                                    нужна помощь упростить этот ад.
+1
if(object)
    if(object->isSolid)
        event.isCancelled = true;
    ;else //<
        throw NullEventArgumentException("object == nullptr");
                                    Новый токен в C++ про который знает только 0.6% говнокодеров
+1
IT Оффтоп #47
#1: https://govnokod.ru/18142 https://govnokod.xyz/_18142
#2: https://govnokod.ru/18378 https://govnokod.xyz/_18378
#3: https://govnokod.ru/19667 https://govnokod.xyz/_19667
#4: https://govnokod.ru/21160 https://govnokod.xyz/_21160
#5: https://govnokod.ru/21772 https://govnokod.xyz/_21772
#6: (vanished) https://govnokod.xyz/_24063
#7: https://govnokod.ru/24538 https://govnokod.xyz/_24538
#8: (vanished) https://govnokod.xyz/_24815
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328	
#11: (vanished) https://govnokod.xyz/_25436
#12: (vanished) https://govnokod.xyz/_25471
#13: (vanished) https://govnokod.xyz/_25590
#14: https://govnokod.ru/25684 https://govnokod.xyz/_25684
#15: https://govnokod.ru/25694 https://govnokod.xyz/_25694
                                    
            #16: https://govnokod.ru/25725 https://govnokod.xyz/_25725
#17: https://govnokod.ru/25731 https://govnokod.xyz/_25731
#18: https://govnokod.ru/25762 https://govnokod.xyz/_25762
#19: https://govnokod.ru/25767 https://govnokod.xyz/_25767
#20: https://govnokod.ru/25776 https://govnokod.xyz/_25776
#21: https://govnokod.ru/25798 https://govnokod.xyz/_25798
#22: https://govnokod.ru/25811 https://govnokod.xyz/_25811
#23: https://govnokod.ru/25863 https://govnokod.xyz/_25863
#24: https://govnokod.ru/25941 https://govnokod.xyz/_25941
#25: https://govnokod.ru/26026 https://govnokod.xyz/_26026
#26: https://govnokod.ru/26050 https://govnokod.xyz/_26050
#27: https://govnokod.ru/26340 https://govnokod.xyz/_26340
#28: https://govnokod.ru/26372 https://govnokod.xyz/_26372
#29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
#30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
#31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
#32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
#33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
#34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
#35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
#36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
#42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
#43: https://govnokod.ru/26604 https://govnokod.xyz/_26604
#44: https://govnokod.ru/26627 https://govnokod.xyz/_26627
#45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
#46: (vanished) https://govnokod.xyz/_26646
#46: (vanished) https://govnokod.xyz/_26654
        
+1
public function isSpecial()
{
    $special_ids = array(
        2222,
        3028,
        3333,
        5555,
        5702,
        6666,
        6700,
        7654,
        7777,
        8451,
        11225
    );
    return in_array((int)$this->getId(), $special_ids);
    //return $this->getId() == 2222 || $this->getId() == 3028 || $this->getId() == 3333 || $this->getId() == 5555 || $this->getId() == 5702;
}
                                    
            https://github.com/wiistriker/govnokod_legacy/blob/master/modules/quoter/models/quote.php
Рекурсивный говнокод.
        
+1
from tkinter import *
from random import randint
f = randint(2, 10)
s = randint(2, 10)
r = f * s
def main_f():
    global f
    global s
    global r
    if r == int(inp.get()):
        ls.configure(text='да! Вы правы')
        f = randint(2, 10)
        s = randint(2, 10)
        r = f * s
        l.configure(text=f'сколько будет {f} * {s}?')
    else:
        ls.configure(text='нет, вы не правы')
        
        l.configure(text=f'сколько будет {f} * {s}?')
    
win = Tk()
win.title('math')
l = Label(win, text=f'сколько будет {f} * {s}?')
l.grid(column=0 , row=0)
ls = Label(win, text=' ')
ls.grid(column=0, row=1)
inp = Entry(win, width=10)
inp.grid(column=1, row=0)
but = Button(win, text='проверить', command=main_f, fg='red')
but.grid(column=2, row=0)
win.mainloop()
                                    третьиклассник решил выучить таблицу умножения
+1
from vk_bot.vk_config import GROUP_ID, TOKEN
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import random
from vk_bot.db_session import *
from vk_bot.__all_models import BugReport, Comment
import datetime
from vk_bot.vacancies import get_vacancies, ServerError
def main():
    global_init("feedback/feedback.sqlite")
    vk_session = vk_api.VkApi(
        token=TOKEN)
    vk = vk_session.get_api()
    longpoll = VkBotLongPoll(vk_session, GROUP_ID)
    bot_state = {}
    def send_msg(msg):
        vk.messages.send(user_id=event.obj.message['from_id'],
                         message=msg,
                         random_id=random.randint(0, 2 ** 64))
    for event in longpoll.listen():
        if event.type == VkBotEventType.MESSAGE_NEW:
            if event.obj.message['from_id'] in bot_state and bot_state[event.obj.message['from_id']]:
                state = bot_state[event.obj.message['from_id']]
                if state == 1:
                    send_msg('Спасибо, ваше мнение для нас очень важно.')
                    Comment().new(event.obj.message['from_id'], datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
                                  event.obj.message['text'])
                    bot_state[event.obj.message['from_id']] = 0
                elif state == 2:
                    BugReport().new(event.obj.message['from_id'], datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
                                    event.obj.message['text'])
                    send_msg('Спасибо за ваш отзыв, мы постараемся исправить проблему в ближайшем будущем.')
                    bot_state[event.obj.message['from_id']] = 0
                elif state == 4:
                    parameters = [r.strip() for r in event.obj.message['text'].split(',')]
                    try:
                        vacancies = get_vacancies(parameters[0], parameters[1])
                    except ServerError:
                        send_msg('Не удалось получить ответ от сервера, попробуйте позже')
                        bot_state[event.obj.message['from_id']] = 0
                    except Exception:
                        send_msg('Данные введены некорректно, попробуйте заново.')
                        send_msg('Формат: <должность>, <мин. зарплата>')
                    else:
                        if len(vacancies) == 0:
                            send_msg('По данным критериям ничего не найдено')
                        else:
                            vacancy_list = [f"{i}) {v['title']}, {v['salary']}" for i, v in enumerate(vacancies)]
                            send_msg('\n'.join(vacancy_list))
                if bot_state[event.obj.message['from_id']] == 0:
                    send_msg('1 - написать отзыв или предложение\n 2 - сообщить о неправильной работе сайта\n 3 - документация к api\n 4 - посмотреть список доступных вакансий\n иначе напишите сообщение и модератор вскоре на него ответит')
            elif event.obj.message['from_id'] not in bot_state:
                send_msg('1 - написать отзыв или предложение\n 2 - сообщить о неправильной работе сайта\n 3 - документация к api\n 4 - посмотреть список доступных вакансий\n иначе напишите сообщение и модератор вскоре на него ответит')
                bot_state[event.obj.message['from_id']] = 0
            else:
                key = event.obj.message['text'][0]
                if key == '1':
                    send_msg('Пожалуйста, поделитесь вашим мнением по поводу сайта.')
                    bot_state[event.obj.message['from_id']] = 1
                elif key == '2':
                    send_msg('Пожалуйста, максимально подробно опишите вашу проблему.')
                    bot_state[event.obj.message['from_id']] = 2
                elif key == '3':
                    send_msg('https://www.youtube.com/watch?v=dQw4w9WgXcQ')
                elif key == '4':
                    send_msg('Введите название должности и минимальную желаемую зарплату по образцу:<должность>, <мин. зарплата>')
                    bot_state[event.obj.message['from_id']] = 4
                else:
                    send_msg('Модератор вам скоро ответит, пожалуйста подождите.')
if __name__ == '__main__':
    main()
                                    
            Код бота поддержки.
Один из товарищей по проекту ничего в нем не делал, 
а потом чтобы его не выгоняли попросил дать ему хотя бы бота.
Вот результат.
Модели и вспомогательные файлы оставлять думаю не имеет смысла, все и так очевидно
        
+1
template <class... Args>
    void log(Args&&... args)
    {
        auto dummy = { (std::clog << args, 0)... };
        std::clog << std::endl;
    }
                                    новый printf на с++
+1
https://github.com/oskusalerma/trelby/issues/85
                                    
            Сорян за пост-ссылку, но я тут валяюсь под столом просто.
Есть тулза для написания сценариев (для чего только нет тулзы, правда?). Она опенсурсная и при этом выглядит не как говно. Но, когда начинаешь её щупать, ВНЕЗАПНО оказывается, что буквы кириллицы в ней тупо не набираются. Лезешь в FAQ, там лежит ссылка на issue из поста. А уже там просто сказка!
Короч, автор примерно в 2007 году сходил почитал спеку пдф, обнаружил, что "PDF spec is oriented towards Latin-1" и решил, что это даёт ему моральное право забить болт на Unicode, а заодно utf-8 и унтерменш, которые не осилили самый тривиальный сабсет латиницы.
В 2012-ом после, судя по всему, многочисленных недоумённых вопросов автор снова появился на горизонте с тикетом на гитхабе и объяснениями в духе "Unicode нет и не будет, потому что не для тебя моя черешня цвела". Цитата для понимания майндсета чувака: "That's how it was 5 years ago anyway when I last looked at it; maybe the spec has improved since then?" 
В общем, выглядело так, будто дядя устал и решил, что пора бы всю эту хуйню переложить на чужие хрупкие плечи, у нас тут опенсурс тем более и все дела.
Но, когда в 2015-ом году появился некий анон с предложением все починить и даже какими-то наработками, автор ему сказал, что иди сука гоняй тесты (видимо, руками, потому что CI настроить он тоже не смог) на всех платформах, а то, вишь, "the old "I'll do the fun bits and let others do the boring bits" strategy. Good luck with that."
Короч чуваки ещё немного поспорили с этим аутистом, после чего съебались в туман, а тулза так кириллицу и не поддерживает.
Смешно и грустно.