1. Assembler / Говнокод #25239

    +2

    1. 1
    2. 2
    3. 3
    https://www.researchgate.net/publication/325358150_cQASM_v10_Towards_a_Common_Quantum_Assembly_Language
    
    cQASM v1.0: Towards a Common Quantum Assembly Language

    The quantum assembly language (QASM) is a popular intermediate representation used in many quantum compilation and simulation tools to describe quantum circuits. Currently, multiple different dialects of QASM are used in different quantum computing tools. This makes the interaction between those tools tedious and time-consuming due to the need for translators between theses different syntaxes. Beside requiring a multitude of translators, the translation process exposes the constant risk of loosing information due to the potential incompatibilities between the different dialects. Moreover, several tools introduce details of specific target hardware or qubit technologies within the QASM syntax and prevent porting the code to other hardwares. In this paper, we propose a common QASM syntax definition, named cQASM, which aims to abstract away qubit technology details and guarantee the interoperability between all the quantum compilation and simulation tools supporting this standard. Our vision is to enable an extensive quantum computing toolbox shared by all the quantum computing community.

    Вот это я понимаю, а то вон там мелкософт какие-то говношарпы придумывает очередные:

    https://docs.microsoft.com/en-us/quantum/language/?view=qsharp-preview


    Нахер ваши шарпы с вашим сраным дуднетом и прочей такой хуйней, даешь Assembler.

    Запостил: j123123, 28 Декабря 2018

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

    • А то вот понапишут какие-нибудь анскиллябры каких-нибудь анскильно-заедушных компиляторов для квантовых процессоров, и хрен кто поймет, почему оно там тормозит. Потому что анскиллябры заедушные, ассемблера не видавшие
      Ответить
      • > In this paper, we propose a common QASM syntax definition, named cQASM, which aims to abstract away qubit technology details and guarantee the interoperability between all the quantum compilation and simulation tools supporting this standard.

        Хоть этот cQASM к сожалению не совсем настоящий ассемблер, а просто абстракция чтоб между разными квантовыми компьютерами код сделать переносимым, и настоящие Цари конечно же будут писать на платформозависимом квантовом ассемблере, это все ж лучше какого-то шарпоговна.
        Ответить
    • Я не против, в ассемблерах обычно препроцессор нормяльный, инсьрукции для повторения болклов кода, макросы годные и пепеменные времени копуляции ест. Например фасм:
      macro def  name, flags, lbl {
          local l
      l:
          db flags or (@f-$-1), name
      @@:
          dw prev_word
          prev_word = l
      lbl:
      }
      Можно даже со store и load модификать уже собранный код.

      Но всё же я за S" Forth", в нём можно когда угодно переклюсатся между копеляцией и интрепретацией.
      Ответить
      • Ну ладно, про Си и так понятно, можно и не спрашивать. А есть ли в говноплюсах переменные времени копуляции?
        Ответить
      • Можно на ассемблере даже написать интерпретатор шитого кода FORTH и потом из ассемблера перейти в интерпретатор шитого кода FORTH на котором можно написать транслятор ассемблера, и потом из FORTH переписать интерпретатор шитого кода FORTH на ассемблере написанном на FORTH в доме который построил Джек
        Ответить
    • вот станут программистом на квантовом комптютере
      и сломаю нахуй всю криптографию
      Ответить
      • Они же недерьминированые? Кванпуктеры ети.
        Ответить
        • как коты Шредингера
          Ответить
        • Обычные - тоже, только в них пишут говнокод и сводят вореятность недерьминирования к малому числу.
          Недерьмированность кванпуктеров позволяет как бы параллельно считать разную вычислюшню, что полезно.
          Ответить
    • не заебались дрочить на инструменты? Какой-нибудь условный слесарь не дрочит же на молоток. Почему программисты не решают задачи, а ебутся со своими язычками, фреймворками и прочей хуйней.
      Ответить
      • Да , нахуя нужны все эти > 9000 языков и 100500 фейлорков когда есть S" Forth" ?
        Ответить
        • Ебаный светильник, ну конечно! О том и речь! Ебать мой лысый череп.
          Ответить
        • Нахуя вообще нужны языки, если можно писать в опкодах процессора, без всех этих языков?
          Ответить
          • нахуя нужны опкоды если можно писать на микрокодах?
            Ответить
            • микрокоды не во всяком проце есть
              Ответить
            • В жопу микрокоды, достаточно сразу нужные электроны куда надо посылать.
              Ответить
              • на джаваскрипте
                Ответить
              • В жопу ваши электроны, настоящие цари создают свои неанскильные параллельные вселенные со своими царскими законами физики, в которых нет этих анскильно-заедушные электронов, от которых https://ru.wikipedia.org/wiki/Дробовой_шум
                Ответить
                • В жопу ваши законы физики, настоящие цари создают свои вселенные, где всё работает без анскилльно-заедушных законов.
                  Ответить
                  • В жопу ваших царей. Настоящие цари сгнили в своих вселенных.
                    Ответить
                    • Да что вы все "в жопу", да "в жопу". Может быть, лучше найти кого можно в пизду?
                      Ответить
                      • В жопу твою пизду.
                        Ответить
                      • В жопу и в пизду ваши жопы и пёзды. Царям не нужна жопа, и в еде и сексе они тоже не нуждаются. Цари работают на вечном двигателе и размножаются делением.
                        Ответить
        • Кстати, FORTH уже можно скомпилировать в FPGA-топологию?
          Ответить
          • нахуя нужны FPGA если можно собрать ASIC?
            Ответить
          • Написать на форте конпелятор в битстрим. Скомпилить им интерпретатор форта (в виде стейт машины). Профит.

            К сожалению фпга на ходу не реконфигурятся, так что весь потенциал форта так не раскрыть :(
            Ответить
            • Можно на FPGA написать FPGA которая может реконфигурироваться

              http://www.nedopc.org/forum/viewtopic.php?f=68&t=7884&sid=5ea2f9f78d5c13c361e6d231b52d7f23


              > As well as Marko and Damjan's Opencores one,
              > there is Reinoud Lamberts' "open source design for
              > an FPGA to be implemented on an FPGA".
              > Reinoud calls it the MPGA.
              > http://ce.et.tudelft.nl/~reinoud/mpga/README.shtml

              > Т.е. одно из решений добавления открытой структуры в закрытую архитектуру - это реализация на закрытой архитектуре программируемой открытой архитектуры, правда с избыточностью, т.к. прошивка для прошивки будет как бы эмулятором (с другой стороны FPGA уже является псевдо-хардверной эмуляцией через софтверное программирование микровычислителей - LUT-ов).


              > В связи с этим хочется предложить на всеобщее обсуждение идею переконфигурируемого компьютера "Морфеус", который может быть перепрограммирован пользователем (причём с этого же самого компьютера) путём записи некоторых значений в ячейки распределённой памяти (есть в Spartan-3 от Xilinx) для перестраивания сети, содиняющей вместе логические и арифметические блоки, включая умножители 18x18 (есть несколько в Spartan-3 от Xilinx) - пользователю для этого не нужна среда разработки от Xilinx, как и знание VHDL - всё будет делаться "над" конкретной физической реализацией - поэтому с некоторой избыточностью, что можно в той или иной степени скрыть путём использования очень большой FPGA (например Spartan-3 с 200 тысячами гейтов или даже больше).
              Ответить
              • Имхо, джве матрицы, которые могут переконфигуривать друг-друга, будут на порядок эффективнее. Да и проще.
                Ответить
                • Джва стека.
                  Ответить
                • Главное не оказаться в ситуации, когда обе матрицы разучились реконфигурировать друг-друга. Можно особый рекавери сделать на ASIC для этого(на каком-нибудь контроллере например), который бы какую-нибудь FPGA прошивал в аварийных ситуациях, чтобы ей уже можно было другую перешить.
                  Ответить
                  • Ну там флешка для старта всё равно же будет (техпроцесс у FPGA слишком тонкий и не умеет во встроенный флеш). Ребутнёшься с неё. Можно и джве для надёжности, чтобы у каждой матрицы своя была.
                    Ответить
            • Кстати, клеточный автомат (типа Conway's Game of Life) это тоже по-сути такая FPGA, там тьюринг-полнота есть, можно Game of Life написать на самой себе: https://youtu.be/xP5-iIeKXE8

              Есть даже специальный клеточный автомат для эмуляции на нем всяких диодов и логических элементов https://en.wikipedia.org/wiki/Wireworld и на нем можно свой проц даже написать https://www.quinapalus.com/wires11.html
              Ответить
            • > стейт машины
              Навіщо розмовляєте свинячою?
              Ответить
              • Написать на форте сборщик потока двоичных данных. Собрать им переводчка форта (в виде конечного автомата). Прибыль
                Ответить
                • > автомата
                  Ладно, "форте" - имя собственное, но эта "автомата" - мерзкий латинизм.
                  Ответить
              • >Навіщо розмовляєте свинячою?
                +1
                Ответить
      • > Какой-нибудь условный слесарь не дрочит же на молоток.

        Ну то молоток. Молоток ничем не улучшить. А вот какие-нибудь радиоэлектронщики любят пообсуждать, какой паяльник лучше брать, какую там паяльную станцию, и вот брать ли вот тот или тот осциллограф, и прочую такую хуету.
        Ответить
        • а уж автослесари так часами издят про машины и как их лучше ремонтировать
          Ответить
        • Это как господин bormand?
          Ответить
          • я пытался разговорить броманда на темму осцилябров (хочу себе купить) но он как-то не очень авктивен был

            посоветовал вроде китайский на усб
            Ответить
            • Понятно. Интересная тема, жаль, что нихуя в этом не шарю.
              Ответить
              • я тоже в ней слабоват, вот и хочу прокачаться)

                Смотреть на визуализацию колебаний очень интересно, это же как такой живой дебаггер или профайлер для электричества
                Ответить
                • Да, полностью согласен! А в принципе в чем специализируешься?
                  Ответить
                  • в софте. электроникой (даже скорее пока просто электричеством)) и лоулевелом интересуюсь в свободное время чисто для саморазвития
                    Ответить
                    • збс) а я сишкодрочер обыкновенный. Ничего интересного.
                      Ответить
            • Я могу поговорить на тему осциллябр в целом. Но про конкретные модели мало что знаю, поэтому за конкретными советами тебе лучше на спецфорумы.
              Ответить
        • > Ну то молоток. Молоток ничем не улучшить.
          Заедушные питушки программисты. Живут в своём мире и думают, что у них всё круче и высокотехнологичней.
          Молоток ничем не улучшить. Молоток ничем не улучшить? Вы слышали? Молоток ничем не улучшить...

          Во-первых, какой из множества видов молотков?
          Во-вторых, всегда можно предложить новый материал, который, например, не будет мяться от забиваемых гвоздей.
          В-третьих - сбалансировать плотности и распределение масс так, чтобы отдача была меньше, аэродинамика была лучше и т.д.
          В-четвёртых - форма ручки. Отливать точно по руке. Или сделать трансформирующуюся ручку для изменения формы молотка. Не помешает продумать момент, когда молотком особо не помашешь, либо гвоздь заглубили.
          Если молоток используется для редких работ, не требующих больших нагрузок - можно совместить ручку молотка и ручку для отвёртки с битами, чтобы меньше питушни с собой таскать.
          Кстати о массе: поиск наиболее эффективно работающего походного молотка с минимальной массой и удобной формой, возможность переиспользования в другом инструменте.
          И многое другое.

          Наколются своим жс и пердолются серверу в порты.
          Ответить
          • Тоже не понимаю этого снобизма. Почему молоток не улучшить, а ЯП улучшить?

            Во-первых работа молотком это дело безусловно более интеллектуальное, чем, например, изготовление вебсайтов на вордпресс.

            Во-вторых знакотки молотка не корчат из себя "экспертов по всем вопросам" и не рассуждают о программировании.

            А тутошняя публика почему-то считает себя в праве говорить про то, в чем она не разбирается.

            Когда вы последний раз гвоздь-то забили?
            Ответить
            • > Во-первых работа молотком это дело безусловно более интеллектуальное, чем, например, изготовление вебсайтов на вордпресс.
              Дыра в стене не лечится откатом на предыдущий коммит.
              И историю коммитов тоже не перепишешь: все будут смотреть на стену и помнить твой зашквар.
              Приходится думать прежде, чем стучать.
              Ответить
              • Это кстати то, за что я ненавижу реальный мир. Ни сендбокса, ни отката. Одна ошибка -- и ты проебал деньги или еще что

                Как они там живут?
                Ответить
              • > не лечится откатом
                Можно повесить что-нибудь на это место и выдать за фичу.
                Ответить
                • Джаваскриптеры так делают

                  Q: а почему у вас объекты создаются через function(), а this так странно себя ведет?
                  A: а потому что у нас прототип-ориентированное программирование, ты просто ничего не понимаешь
                  Ответить
                  • > а почему у вас объекты создаются через function()
                    Тут всё как в C++: конструктор - это специальная функция, на способ вызова которой налагаются ограничения.
                    Да и чисто математически конструктор - это отображение из декартова произведения областей определения аргументов в пространство значений сконструированного объекта. То есть функция.

                    > this так странно себя ведет
                    Здесь, кстати, прогресс идёт. Даже бароп об этом писал. В стрелочных функциях расово верный семантически правильный this.
                    Осталось сделать простой способ выразить object.method.bind(object), но не теряя возможности взять чисто object.method как в C++ без питоничного зашкваривания this-а объектом.
                    Ответить
              • А на гитхабе можно коммиты из истории удалять? Ну там конфиг с паролем залил.
                Ответить
                • разумеется можно, это же просто гит

                  софт ресет на до этого коммита, новый коммит и форс пуш
                  Ответить
                  • Разумеется нельзя. Это же интернет. Боты уже на 30 раз все забекапили.

                    Имхо, проще сменить этот пароль и забить.
                    Ответить
          • > Во-первых, какой из множества видов молотков?
            > Во-вторых, всегда можно предложить новый материал, который, например, не будет мяться от забиваемых гвоздей.
            > В-третьих - сбалансировать плотности и распределение масс так, чтобы отдача была меньше, аэродинамика была лучше и т.д.

            Где-то я уже это читал. https://habr.com/post/141477/

            — Как выяснилось, если сделать только один тип молотка, способный выполнять те же задачи, что и все виды молотков, тогда он будет не очень хорош для каждой из них. Забивать гвозди кувалдой не очень эффективно. И если Вы хотите убить свою бывшую девушку, то ничто не заменит молотка с круглым бойком.

            — Верно. Но если никто больше не покупает Универсальные Молотки и если Вы больше не продаете все старомодные типы молотков, то какие же молотки Вы продаете?

            — Вообще-то, мы не продаем никакие молотки.

            — Но…

            — Наши исследования показали, что людям совсем не нужен Универсальный Молоток. Всегда лучше использовать нужный тип молотка для работы. Поэтому, мы начали продавать фабрики молотков, способные создать любой молоток, какой Вам нужен. Все что Вам нужно — это укомплектовать фабрику рабочими, запустить механизм, купить сырье, оплатить расходы и — БАЦ — у Вас есть именно такой молоток, какой Вам нужен.

            — Но мне как-то не хочется покупать фабрику молотков…

            — Это хорошо. Потому что мы их больше не продаем.

            — Но Вы же только что сказали…

            — Мы обнаружили, что большинству людей не нужна целая фабрика. Некоторым людям, например, никогда не понадобится молоток с круглым бойком. (Может у них нет бывших девушек. Или они убили их ледорубом.) Поэтому, нет смысла кому-либо покупать фабрику молотков, которая может произвести любой тип молотка.

            — Да, похоже на то.
            Ответить
            • >>Почему я ненавижу фреймворки
              я знаю даже чувака который это написал, у него еще хуй в говне на аватарке
              Ответить
            • >Фреймворки

              --Здравствуйте, мне нужно забить гвоздь и я полагаю что мне нужно что-то тяжелое и железное. Где я могу приобрести руду чтобы сделать такую вещь?
              --Но вам не нужна руда, купите готовый молоток
              --В вашем молотке еще и гвоздодер, а он мне не нужен. Я не вижу проблемы в том, чтобы сделать небольшой железный кирпич под свою задачу.
              --Но гвоздодер полезен когда нужно вырвать гвоздь
              --Что за чушь? Зачем вырывать гвоздь? Всегда можно забить другой.

              []

              --Я сделал железный кирпич, и мне удалось забить гвоздь без всяких молотков. Причем в отличие от молотка, его не надо держать за ручку, я могу держать его как того требуют бизнес-задачи.

              []

              --Кажется что мне будет удобнее если я приделаю к нему палочку
              --Но ведь это ручка от молотка получится!
              --Причем тут молотки-то?

              []

              --Я посадил березовую рощу, нанял столяра, и он сделал мне ДеревяннуюПалку для МеталлическойШтуки, теперь мне вообще супер удобно. Кажется что ДеревяннаяШтука это просто тренд 2018
              --Но ведь это ручка! Деревянная ручка и молоток! Люди пользовались ими 500 лет назад уже!
              --Ой, иди нахуй, ты устарел.

              []

              --Мне понадобилось вытащить гвоздь.
              --Молоток с гвоздодером все еще продается!
              --Молоток-хуиток. Я отлично вынул гвоздь зубами без всей этой энтерпрайзной хуйни.

              []
              --Я проделал такую дырочку в железке и теперь ей удобно вынимать гвозди. Думаю что это МикроВынималкаГвоздей, тренд 2019
              --Да ведь это гвоздодер. И молоток.
              --Да ты заебал, старпёр сраный. Сиди в своем НИИ со своими молоткками и гвоздодерами которыми никто не пользуется. Инструменты каменного века, блядь. Почитай хабр, почитай SO, все только и говорят что о МикроВынималкеГвоздей
              Ответить
              • Настоящие Цари забивают и вырывают гвозди телекинезом, без всяких молотков и железных кирпичей, сделанных для анскиллябр заедушных
                Ответить
              • Какой гвоздь )))
                Ответить
              • --Здравствуйте, мне нужно забить гвоздь и я полагаю что мне нужно что-то тяжелое и железное. Где я могу приобрести руду чтобы сделать такую вещь?
                --Да нахуй тебе что-то железное, и зачем вообще что-то приобретать? Вон там у мусорки всякий строительный мусор валяется, соседи ремонт делали. Возьми там какой-нибудь кусок камня поувестсией, и забей им свой гвоздь. А то руда, делать еще что-то.
                --ОК, заебись.

                подбирает какой-то камень с мусорки, забил им гвоздь и потом этот камень выкинул нахуй, т.к. больше ему гвоздей забивать не надо, и вытаскивать гвоздей тоже не надо
                Ответить
                • https://dev.by/news/intervyu-s-krisom-kasperski-aka-mysch-h

                  > Одну текущую задачу сначала показали «плюсовику», спросив, сколько займёт её решение. Он сказал: «Здесь нужно писать могучий движок. Короче говоря, это проект на полгода». Его коллега-«сишник» поинтересовался: «А зачем?» Ведь поставленная задача укладывается в сотню строк кода! Ответ был ошеломляющим: «Ну и что, мы так и будем по сотне строк кода писать для решения частных задач, каждый раз, как они возникают? Нетушки, задачи надо решать раз и навсегда!».

                  > По моему глубокому личному убеждению, проблемы нужно решать по мере их возникновения. Писать программы на вырост с избыточным универсализмом нужно лишь очень хорошо предварительно подумав, ибо это из серии «Почему сегодня не делают корабли, летающие к звёздам?» Ответ прост: потому что корабль, построенный завтра, прибудет быстрее, а корабль, построенный послезавтра, еще быстрее. И их обоих обгонит корабль, построенный лет через пятьдесят, но когда он вернётся обратно, то обнаружит, что у человечества совсем другие проблемы».

                  Поэтому я за Си.
                  Ответить
                  • > Ведь поставленная задача укладывается в сотню строк кода!
                    А потом ты приходишь на новое место работы, а там файлы по несколько тысяч строк кода, реализующие с десяток таких "задач" каждый
                    Ответить
                    • А там, где пытались все эти задачи решить, написав один могучий движок - вообще нихуя не работает и никакие задачи не решаются толком т.к. рахитекторы запутались в своей собственной обобщенной хуйне из фабрик фабрик.
                      Ответить
                      • Прямо порочный круг из говнокода и говноархитектуры
                        Ответить
                      • ну ладно, stl отлично работает в огромном количестве проектов например

                        это лучше, чем каждый раз с ноля писать, например, map
                        Ответить
                        • > map
                          Да даже ссаный вектор или джвусвязный кольцевой список...
                          Ответить
                          • Кольцевой список любой олимпиадник за 10 минут напишет:)
                            Ответить
                            • Можно без зелёного. Там даже ни одного if'а нет в реализации attach/detach.
                              Ответить
                              • Зеленый, потому что нахуя писать одно и тоже?

                                А как без ифа? Прибавлять size % ?
                                Ответить
                                • Я не олимпиадник, но:
                                  // вставка item после pos
                                  item->next = pos->next;
                                  item->prev = pos;
                                  pos->next->prev = item;
                                  pos->next = item;
                                  
                                  // отцепление pos
                                  item = pos;
                                  pos->prev->next = pos->next;
                                  pos->next->prev = pos->prev;
                                  Ответить
                                  • Я тоже не олимпиданик, но разве нельзя как-то вот так?
                                    #define SIZE 42
                                    
                                    static char BUFFER[SIZE];
                                    
                                    void main() {
                                      unsigned char i = 0;
                                      while (1) {
                                        BUFFER[i] = 'x';
                                        i = ++i % SIZE;
                                      }
                                    }
                                    Ответить
                                • Некоторые случаи могут требовать свои особые реализации. Типа хуйни в https://govnokod.ru/23275

                                  И готовые реализации могут не подходить по каким-то критериям
                                  Ответить
                                  • готовые реализации иногда могут не подходить. Например, иногда не подходит printf
                                    Ответить
                                    • Иногда он не то чтоб не подходит, но даже не нужен. Например, в каком-нибудь говноконтроллере
                                      Ответить
                        • > ну ладно, stl отлично работает в огромном количестве проектов например

                          На всяких контроллерах весь этот STL сразу нахуй отправляется, потому что в хуй не всралось мне тащить всякие эксепшены и прочий крестомусор
                          Ответить
                          • >На всяких контроллерах
                            Так может быть с этого надо было начинать?

                            Вася пишет игры для вконтакте на джаваскрипте, си сразу отправляется нахуй, следовательно си -- говно и не нужно
                            Ответить
                            • Конечно же.
                              ПХП отлично работает в огромном количестве проектов например. На ПХП написан вконтакт и фейсбук. Кто ты такой чтоб критиковать ПХП?
                              Ответить
                              • Обсуждать ПХП имеет смысл сравнивая его с похожими скриптовыми языками (perl, ruby, groovy, python).

                                Странно сранивать PHP и C++.

                                Я совершенно не спорю с тем, что в контроллерах и ядрах операционок stl не нужен.

                                А еще там не нужен json, xml, rest, http, и много чего еще
                                Ответить
                                • > Я совершенно не спорю с тем, что в контроллерах и ядрах операционок stl не нужен.

                                  > А еще там не нужен json, xml, rest, http, и много чего еще

                                  В контроллерах как раз иногда пригождается json и http. Я json через sprintf генерил на контроллере для отправки на http сервер POST запросом.
                                  Ответить
                                  • кошмар какой, почему так тяжело?
                                    Ответить
                                    • Потому что там была хуйня которая принимала json через http. Если б я ту хуйню писал, я б конечно придумал свою хуйню для сериализаци в байтики
                                      Ответить
                                  • ЛОБОТОМИТЫ, ПОЖАЛУЙСТА, ПЕРЕСТАНЬТЕ ТОПТАТЬСЯ ВОКРУГ.
                                    Ответить
                    • Угу.

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

                        Зачем реализовывать, если можно скопипастить из стековерфлоу?
                        Ответить
                    • Хуже, когда в новом проекте нету нужного кода, который есть в старом. Надо было копировать на флешку.
                      Ответить
                      • Именно по этому у каждого уважающего себя пхпшника есть lib.php с нужными функицяими
                        Ответить
                        • functions.php
                          Ответить
                          • аааа
                            https://youkit.ru/creature/wp-functions-php

                            https://www.ostraining.com/blog/wordpress/functions-php/

                            function copyright_function_of_mine() {
                             global $wpdb;
                             $copyright_dates = $wpdb->get_results("
                             SELECT
                             YEAR(min(post_date_gmt)) AS firstdate,
                             YEAR(max(post_date_gmt)) AS lastdate
                             FROM
                             $wpdb->posts
                             WHERE
                             post_status = 'publish'
                             ");
                             $output = '';
                             if($copyright_dates) {
                             $copyright = "© " . $copyright_dates[0]->firstdate;
                             if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
                             $copyright .= '-' . $copyright_dates[0]->lastdate;
                             }
                             $output = $copyright;
                             }
                             return $output;
                             }
                            Ответить
                  • Это, конечно, сильное упрощение.
                    Бывают отличные API на плюсах, и полное дерьмо на сях, где автор запутался в собственных сполях, и у него на каждом углу по висячему поинтеру болтается.

                    У Криса (царство небесное) просто религиозная непереносимость плюсов (как и у Торвальдса), это не показатель, он предвзят
                    Ответить
                    • > У Криса (царство небесное) просто религиозная непереносимость плюсов (как и у Торвальдса), это не показатель, он предвзят

                      -- Говно воняет. Мне не нравится вид говна и его запах.
                      -- Ты просто неосилятор. У тебя религиозная непереносимость говна. Это не показатель, ты предвзят.
                      Ответить
                      • --Почему си++ говно?
                        --Потому что Крис так сказал
                        Ответить
                        • Я в этом и без Криса отлично убедился
                          Ответить
                          • Попробовав исползовать map в микроконтроллере?


                            Вася попытался написать сайт на си, и убедился что си -- дерьмо
                            Ответить
                            • > Попробовав исползовать map в микроконтроллере?

                              Нет. Попробовав почитать стандарт крестов, попробовав почитать реализацию стандартной библиотеки крестов, попробовав почитать boost и прочие убогие попытки метапрограммирования, и попробовав самому этим метапрограммированием позаниматься
                              Ответить
                              • зачем читать реализацию?
                                Ответить
                                • Чтоб понять, как мне придется ебаться с этим говном, чтоб самому свою реализацию написать
                                  Ответить
                                  • Ничего не понимаю.
                                    Ты читал исходные коды gcc и libc прежде, чем пользоваться сями?
                                    Ответить
                                    • Нет, сначала я научился пользоваться сями, потом заинтересовался и немного почитал коды gcc и libc. Иначе я б код gcc и libc не понял
                                      Ответить
                                      • То-есть чтобы не считать язык говном, ты должен сначала изучить его реализацию?
                                        Ответить
                                        • It's depends.

                                          В случае с крестами я хотел таким способом понять уровень трудоемкости создания тех абстракций на крестах, которые есть в стандартной библиотеке, и насколько это все читаемо. Мне не понравилось.

                                          Еще мне механизм обработки исключений не понравился, и RAII не понравилось, и RTTI. И много чего еще, о чем я могу долго рассказывать, но не буду.
                                          Ответить
                                          • Исключения и правда сомнительны, их можно не использовать.

                                            А что не так с RAII?
                                            Ответить
                                            • RAII это как раз не самое плохое из того что есть. Идея в том, что когда мы чего-то объявляем, оно в new автоматом выделяет память и как-то инициализирует что-то, когда область видимости переменной кончается - оно дергает delete и чистит говно. В целом подход нормален и имеет право на существование. Что мне не понравилось - что какая-то штука (деструктор) может вызываться неявно просто потому что переменная стала вне области видимости. Например, как эта хуйня будет работать если я выпрыгну через goto из блока, где область видимости существует? Деструкторы перед меткой goto вклинится? А что насчет setjmp-longjmp? А в каком порядке будет вызываться деструкторы для RAII хуйни, если RAII хуйни было много, и порядок вызова деструкторов имеет значение? Куча каких-то ебанутых ньюансов возникает.


                                              Мне больше нравится управлять ресурсами самому в явном виде, я тогда четко понимаю, какое там говно происходит и в каком порядке.
                                              Ответить
                                              • > Идея в том, что когда мы чего-то объявляем, оно в new автоматом выделяет память

                                                "new" совершенно не обязательнго для RAII же, нет?


                                                > какая-то штука (деструктор) может вызываться неявно просто потому что переменная стала вне области видимости

                                                Так в этом же и фишка: это позволяет не утечть
                                                Ответить
                                                • Ну, формально там ничего не является обязательным. Можно свое RAII на сишке накостылить, там ни new ни delete в самом языке нет.
                                                  https://govnokod.ru/24517
                                                  И есть даже GNU расширение, которое вызывает некое говно при выходе из скоупа https://govnokod.ru/25526

                                                  Повторюсь, RAII это не то что, что мне сильно не нравится
                                                  Ответить
                                              • Ну вот как раз эти моменты в Стандарте, ИМХО, реализованы очень хорошо.

                                                > Например, как эта хуйня будет работать если я выпрыгну через goto из блока, где область видимости существует?
                                                Все деструкторы вызовутся как надо.

                                                > А что насчет setjmp-longjmp?
                                                Не вызовутся — это слишком лоу-левельная фигня даже по меркам крестов.

                                                > А в каком порядке будет вызываться деструкторы для RAII хуйни, если RAII хуйни было много, и порядок вызова деструкторов имеет значение?
                                                Это мне больше всего нравится: деструкторы будут вызваны в порядке, строго обратном вызову конструкторов.
                                                https://ideone.com/YrPQo7

                                                >> Повторюсь, RAII это не то что, что мне сильно не нравится
                                                Ну ладно. Давайте ругать «крестовое метапрограммирование».
                                                Ответить
                                                • > Это мне больше всего нравится: деструкторы будут вызваны в порядке, строго обратном вызову конструкторов.

                                                  Вот кстати не думаю что это правильно. Может я хочу чтоб у меня деструкторы и конструкторы многопоточно запускались, работая одновременно. Или чтоб порядок был implementation-defined и компилятор на этом мог каким-то образом сэкономить пару тактов. Или еще хуйпойми как.
                                                  Ответить
                                                  • >многопоточно запускались, работая одновременно

                                                    то-есть ты хочешь, чтобы при выходе из обоасти видимости твоего говнообъекта запускались новые потоки?

                                                    Ты правда этого хочешь?!!!
                                                    Ответить
                                                    • А может у меня где-то так дохуя деструкторов для всякой хуйни вызвать надо, что надо как раз таки чистить многопоточно? А если потоки уже заранее запущены и находятся в остановленном состоянии, и им надо только дать приказ, чтоб они деструкторы начали вызывать?
                                                      Ответить
                                                      • Это валидный поинт, я бы добавил его в стандарт.

                                                        Однако, может оказаться, что очистку проще запустить на GPU, ведь у нас по сути одно и тоже действие.

                                                        Я бы встроил это в язык.

                                                        Так же может оказаться, что десктрукторы -- дело тяжелое, и лучше запускать их в облаке, например в AWS.
                                                        Я бы встроил в стандарт запуск деструкторов на AWS
                                                        Ответить
                                                        • > Однако, может оказаться, что очистку проще запустить на GPU

                                                          Ну, если GPU имеет прямой доступ к основной оперативной памяти, почему б и нет? Может там в деструкторах мы какие-то картинки рендерим
                                                          Ответить
                                                          • GPU обычно имеет такой доступ, все pci express устройства имеют.

                                                            Точнее, могут уметь
                                                            Ответить
                                                • >> Например, как эта хуйня будет работать если я выпрыгну через goto из блока, где область видимости существует?
                                                  > Все деструкторы вызовутся как надо.
                                                  Только если это не особый goto с https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
                                                  https://ideone.com/lpT99r
                                                  Ответить
                                                  • Шланг кстати не хочет это компилировать: https://godbolt.org/z/jK8Ap5

                                                    jump exits scope of variable with non-trivial destructor
                                                    Ответить
                                                    • Там же в другом ошибка. Ты ворнинг привёл.
                                                      Ответить
                                                      • Ворнинг-хуернинг, какая разница? Суть в том, что компилятор clang нихуя не может понять, вызывать ли ему деструкторы или нет для такого goto, хотя тут очевидно надо, учитывая что единственная валидная метка находится вне скоупа тех двух переменных. Ладно если б там я напихал много меток, и этот указатель-на-метку-goto мог быть и на метку внутри скоупа того говна, но ведь нихуя подобного нет.
                                                        Ответить
                                                      • Притом компилятор clang вроде как понимает что переменная с меткой указывает на область вне скоупа тех переменных, но при этом нихуя не компилирует. В том же GCC никаких варнингов и прочей хуйни вообще нет, и деструкторы тупо не вызываются при таком goto.

                                                        А когда просто обычный goto, все деструкторы вызываются как надо и никакой хуйни нет.
                                                        Ответить
                                          • > и RAII не понравилось
                                            Как так? «RAII» — это одна из немногих фишек крестов, которая сделана удобно и правильно.
                                            Ответить
                            • Ты будешь змиятся, но у них там SOAP во всяких DNLA и подобном говне для червей и ДоСа
                              Ответить
                        • А про «PHP» Крис ничего не говорил?
                          Ответить
                          • Крис был программистом, с чего бы ему интересоваться языком для веб-дизайнеров?
                            Ответить
                    • > Бывают отличные API на плюсах, и полное дерьмо на сях, где автор запутался в собственных сполях, и у него на каждом углу по висячему поинтеру болтается.

                      Бывают отличные API на %язык1%, и полное дерьмо на %язык2%
                      Ответить
                  • > поэтому я за си
                    Я вполне могу себя контролировать и решать конкретные задачи и на крестах. Поэтому ебал я вашу сишечку.
                    Ответить
                    • >Я вполне могу себя контролировать и решать конкретные задачи и на крестах

                      Решать конкретные задачи можно хоть на PHP, но это не значит что в PHP есть что-то хорошее.

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

                        Общеизвестно, что у рыжих нет души
                        Ответить
                      • > что-то хорошее
                        RAII и немного шаблонов в их изначальном предназначении. Ну и интерфейсы не надо велосипедить из говна и палок когда они понадобятся.

                        Вполне удобно и предсказуемо.
                        Ответить
                        • В "PHP" нет никакого "RAII", "шаблонов". А "интерфейсы" мне нахуй не всрались.
                          Ответить
            • https://bonkersworld.net/img/2019.12.02_hammer.png
              Ответить
      • Кстати оче даже дрочит

        Ему нравится использовать инструменты brigadier а не наколенное говно например
        Ответить
      • Они не дрочат, а выебываются.
        Ответить
    • Существует N языков.
      Нужно придумать общий язык, чтобы объединить их всех и лишить их воли.
      ...
      Существует N+1 языков.
      Ответить
      • Ничего, вот человечество вымрет, и будет 0 языков.
        Ответить
        • Все проблемы человечества решатся в этот день.
          Ответить
          • У человечества есть "PHP", именно поэтому я за человечество.
            Ответить
            • PHP прекрасен, прост и понятен, он не мешает решать серьезные бизнес-проблемы. Именно поэтому адекватный принципал инженер за пиэйчпи.
              Ответить
              • он не мешает решать серьезные бизнес-проблемы вроде вывода списка товаров на сайте
                Ответить
                • А можно еще фацебук написать.
                  Ответить
                  • Фацебук давно уже написан на Hack, Python, C++ и даже на OCaml.

                    на пыхе у них только сдыки для веб-мастеров
                    https://github.com/facebook
                    Ответить
                    • А гомоиконы у них есть там?
                      Ответить
                      • Это самое главное для конечного пользователя? Или никому ненужные влажные хотелки программиста?
                        Ответить
    • показать все, что скрыто
      * g o a t s e x * g o a t s e x * g o a t s e x *  
       g                                               g  
       o /     \             \            /    \       o  
       a|       |             \          |      |      a  
       t|       `.             |         |       :     t  
       s`        |             |        \|       |     s  
       e \       | /       /  \\\   --__ \\       :    e  
       x  \      \/   _--~~          ~--__| \     |    x  
       *   \      \_-~                    ~-_\    |    *  
       g    \_     \        _.--------.______\|   |    g  
       o      \     \______// _ ___ _ (_(__>  \   |    o  
       a       \   .  C ___)  ______ (_(____>  |  /    a  
       t       /\ |   C ____)/      \ (_____>  |_/     t  
       s      / /\|   C_____)       |  (___>   /  \    s  
       e     |   (   _C_____)\______/  // _/ /     \   e  
       x     |    \  |__   \\_________// (__/       |  x  
       *    | \    \____)   `----   --'             |  *  
       g    |  \_          ___\       /_          _/ | g  
       o   |              /    |     |  \            | o  
       a   |             |    /       \  \           | a  
       t   |          / /    |         |  \           |t  
       s   |         / /      \__/\___/    |          |s  
       e  |         / /        |    |       |         |e  
       x  |          |         |    |       |         |x  
       * g o a t s e x * g o a t s e x * g o a t s e x *
      Ответить
    • АААААААААААААААА!!!!!!!!!!!!!
      https://www.youtube.com/watch?v=TaxCIlNXsGU


      КАК ПЕРЕСТАТЬ ОРАТЬ?!
      Ответить
      • Ор выше гор
        Ответить
        • Ты послушал?
          Ответить
          • И даже посмотрел
            Ответить
          • Твоё любимое https://youtube.com/watch?v=r1G-qK4AbUU
            Ответить
            • Я не всё посмотрел, но кажется уловил суть.

              Чтобы не было SQL инъекции, нужно с помощью регулярного выражения удалить всякие каычки из HTTP запроса?
              Ответить
      • Ахах, там в рекомендованных выступление милфы островитянки логопеда!
        Ответить

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