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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #include <iostream>
    #include <tuple>
    using namespace std;
    
    int main() {
        int a = 5, b = 6;
        tie(a, b) = make_pair(b, a);
        cout << a << " " << b << endl;
        return 0;
    }

    https://ideone.com/9gzogv

    Запостил: guestinxo, 21 Октября 2018

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

    • <?php
       
      $a = 5;
      $b = 6;
      list($a, $b) = [$b, $a];
      echo "$a $bn";
      Ответить
      • Какая-то хуйня с обратными слешами на хузе
        Ответить
        • Типа защита от SQL-инъекции?
          Ответить
          • Ответить
          • Кстати, а xyz опенсурсный?
            Ответить
            • Да, но ценности вся эта "WordPress"-помойка не представляет.
              Ответить
            • Да, но я давно не пушил в гитхаб
              Ответить
              • А куда ты пушил?
                Ответить
                • Коммитил только локально.
                  Ответить
                  • > коммитил локально
                    Поэтому я за "svn". Там такой хуйни нет.
                    Ответить
                  • А так можно? Я давно так хотел. А можно иметь разные коммиты? Типа несколько коммитов на локалхосте объединить в один в инете.
                    Ответить
                    • https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
                      Ctrl-F squash
                      Ответить
                    • А еще можно взять коммиты из апстрима, посквошить их и пушнуть обратно (с ключиком --force). Если тебе повезло, и твои коллеги уже понаделали поверх них других коммитов, то можно отхватить очень много лулзов (и немного пиздюлей)

                      В svn так нельзя, и потому я против svn
                      Ответить
              • Инньо, что за хуйня с ошибками 500?
                Ответить
                • "WordPress".
                  Ответить
                  • "PHP".
                    Ответить
                    • "MySQL".

                      Серьёзно, тайм-аут может быть из-за того, что скрипт долго ждёт ответа от базы.
                      Ответить
                • Ебучий хостинг
                  Ответить
                  • Именно поэтому я за "localhost".
                    Ответить
                  • А сколько нормальный стоит? Виртуалка за евро не лучще будет?
                    Ответить
                    • "Chipcore" предлагает отдельный физический сервер всего за 1 890 рублей в месяц.
                      Ответить
                      • И сколько из ни ты готов дать?
                        Ответить
                      • Какие параметры?
                        Ответить
                        • "Intel i3 4ГБ 2x1000ГБ SATA".
                          Ответить
                          • Какие-то дополнительные квоты накладываются? Например, я могу загружать проц на 100% круглосуточно?
                            Ответить
                            • Можешь, так как это полностью, единолично твой физический сервер. Их не ебёт, что ты на нём делаешь.
                              Ответить
                              • Не с чем сравнивать, но кажется нормальная цена за такое. Только нужно придумать как его использовать на всю силу, а не только хостить 1 единственный сайт на "PHP".
                                Ответить
                                • Если это "иньо", то попробуй сначала digitalocean или виртуалку за евро.
                                  Ответить
                                • А потом твой говнокод взломают а через него поломают всё остальное. Нормально настроить сервак ты все равно не сможешь.
                                  Ответить
                              • А по трафику ограничения есть? А то всякое бывает...
                                Ответить
                                • Сто мегабит в секунду безлимитно.
                                  Ответить
                            • На VPS обычно тоже можно (ты можешь загрузить на 100% виртуальный процессор твоего контейнера, а реальный процессор физического сервера тебе супервизор не даст загрузить полностью).

                              Но всё-таки на VPS ограничения бывают. На OpenVZ ты не можешь загрузить свой драйвер ядра. На OpenVZ ты делишь I/O (обращения к диску) с другими пользователями, поэтому если будешь слишком интенсивно обращаться к файлам, тебя попросят умерить свой пыл. Но ресурсы процессора и оперативной памяти вроде разделяются нормально.

                              На KVM изоляция получше, чем на OpenVZ. Там можно и файлами хрустеть круглые сутки, и свои драйвера ядра ставить.

                              На FreeBSD jail изоляция хуже. Получше, конечно, чем на shared-хостинге, но много чего придётся делить.
                              Ответить
                              • Лучше заплатить и ни с кем не делить ресурсы.
                                Ответить
                              • KVM это как в VMWare ESX?
                                Ответить
                              • OpenVZ это говно а не VPS
                                Ядро там общее

                                >>jail
                                это вообще изоляция ресурсов, а ядро и ОС те же самые же, примерно как докер
                                Ответить
                • По моим наблюдениям ошибки 500 посыпались, когда Иньо добавил подгрузку новых комментариев в рилтайме. Подозреваю, что причину нужно искать где-то здесь. Возможно, СУБД забивается тяжёлыми запросами.
                  Ответить
                  • Иньо, запушь, чтоле?
                    Ответить
                  • Может, только инструментов диагностирования такой херни хостинг не предоставляет.
                    Ответить
                    • mysql log slow queries?
                      не-а, не слышал

                      Это к вопросу о том зачем программисту уметь в прыщи
                      Ответить
                      • А если у него shared хостинг?

                        Хотя даже в этом случае можно замерить время выполнения запросов через phpmyadmin или посредством простенького скрипта.
                        Ответить
                        • Надо знать какие запросы замерять. Впрочем, можно добавить логирование в движок (если конечно там не mysql_query посреди шаблона) а потом сделать explain

                          у mysql говеный оптимизатор и говеный explain, но даже там можно что-то понять
                          Ответить
    • NB. поэтому я за J:
         a =: 5
         b =: 6
         'a b' =: b, a
         echo a, b
      Ответить
    • А с бо́льшим количеством элементов можно проделать подобное?
      Ответить
      • //https://ideone.com/Akzgzs
        
        #include <iostream>
        #include <tuple>
        using namespace std;
        
        int main() {
            int a = 6, b = 5, c = 2;
            tie(a, b, c) = tuple<int, int, int>(c,a,b);
            cout << a << b << c;
            return 0;
        }
        Ответить
        • > tuple<int, int, int>

          make_tuple, так типы явно выписывать не надо. Впрочем, говорят, скоро можно будет писать просто tuple(c, a, b).
          Ответить
          • > скоро
            уже https://en.cppreference.com/w/cpp/utility/tuple/deduction_guides


            Потому что
            https://en.cppreference.com/w/cpp/language/class_template_argument_deduction#User-defined_deduction_guides
            Ответить
    • Так а в чём проблема, собственно? Разумеется кроме того, что обычно лучше использовать swap для этой цели?

      Офигенная же тема для компараторов
      return tie(id, name, country) < tie(id_, name_, country_);


      P.S. Я за "OCaml"
      let a, b = 5, 6 in
      let a, b = b, a in
      Printf.printf "a = %d, b = %d\n" a b ;;
      и, конечно, "Common Lisp"
      (let ((a 5) (b 6))
        (rotatef a b)
        (format t "a = ~a, b = ~a" a b))
      Ответить
      • Кстати, std::tuple не гарантирует standard-layout
        Ответить
      • >P.S. Я за "OCaml"
        Так нечестно, там a и b - это не те a и b... Там ведь в каждом let cвоя область видимости, правильно?
        Вот в питоне можно
        a,b = 5,6
        a,b = b,a
        print(a,b)
        Ответить
        • >>> a,b = 5,6
          >>> (c,d) = (a,b)
          >>> [e, f] = [c, d]
          >>> g, h = {e,f}
          >>> {i, j} = {g, h}
            File "<stdin>", line 1
          SyntaxError: can't assign to literal
          >>> a,b,c,d,e,f,g,h
          (5, 6, 5, 6, 5, 6, 5, 6)
          Ответить
        • > Там ведь в каждом let cвоя область видимости, правильно?

          Ну a и b не модифицируются inplace, разумеется, просто локально переименовываются. Я бы сказал, что это фича. Каждый let видит предыдущее окружение в правых частях присваиваний.

          Вот в хацкеле это бы круто зациклилось, там можно написать
          let (a, b) = (b, a) in printf "a = %d, b = %d\n" a b
          и долго наблюдать, как ничего не происходит.
          Ответить
    • Как лучше:
      tie(bormand, HACTEHbKA)
      или
      make_pair(bormand, HACTEHbKA)
      или
      tuple(bormand, HACTEHbKA)
      ?
      Ответить

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