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

    0

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

    #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
    #47: https://govnokod.ru/26671 https://govnokod.xyz/_26671
    #48: https://govnokod.ru/26707 https://govnokod.xyz/_26707
    #49: https://govnokod.ru/26750 https://govnokod.xyz/_26750
    #49: https://govnokod.ru/26776 https://govnokod.xyz/_26776
    #50: https://govnokod.ru/26804 https://govnokod.xyz/_26804
    #51: https://govnokod.ru/26809 https://govnokod.xyz/_26809
    #52: https://govnokod.ru/26817 https://govnokod.xyz/_26817
    #53: https://govnokod.ru/26833 https://govnokod.xyz/_26833
    #54: https://govnokod.ru/26840 https://govnokod.xyz/_26840
    #55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
    #56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
    #57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
    #58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
    #59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
    #60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
    #61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
    #62: https://govnokod.ru/26999 https://govnokod.xyz/_26999

    Запостил: nepeKamHblu_nemyx, 05 Октября 2020

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

    • Добрый день.

      Этот оффтоп сгенерирован автоматически.

      Индекс оффтопов: https://index.gcode.space/.
      Зеркала Говнокода и полезные ресурсы:
      * https://govnokod.xyz/ (альтернативный Говнокод)
      * https://gcode.space/ (read-only зеркало Говнокода)
      * @GovnokodBot в «Telegram»
      * https://vorec.space/ (глоссарий Говнокода)
      Ответить
    • возник теоретический вопрос

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

      это вообще имеет смысл делать на уровне БД или выше?
      Ответить
      • показать все, что скрытоvanished
        Ответить
        • угу. и, если порядок определить невозможно, берём следующую метрику и т.д. до победного конца
          Ответить
          • Почему не сделать это в несколько запросов на нормальном императивном языке? Хочешь -- внутри СУБД в хранимке, хочешь -- снаружи, на C#, или что там у тебя?

            Если ты пиздец ссыш миллиона запросов, то загрузи все в память в удобном формате: кажется, что в современную память все матчи в мире влезут
            Ответить
            • а я ж не знаю. это норм? в идеале хотелось бы получить турнирную таблицу одним запросом.

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

              потом уже руками в логике делаем сортировку, при необходимости дёргая базу для доп информации

              я правильно понимаю?
              Ответить
              • Например да.

                Вон Борманд предлагает тебе один раз это пересчитывать после матча, и сохранять в денормализованном виде, то есть в виде уже готовой турнирной таблицы. Чтобы получать ее одним SELECT *
                Ответить
              • С другой стороны тут и запрос не такой уж и сложный. Колонки с "очками", "результатами матчей" и "количеством мячей" посчитать по турнирному окну да сделать order by.

                Х.з., я уже подзабыл SQL, (да и не знал его толком, лол).
                Ответить
                • а как ты себе видишь структуру?

                  вон есть две записи
                  Шинник -- Локомтив -- 2:3
                  Шинник: N очков
                  Локомотив: Z очков

                  Тебе придется отсортировать, найти одинаковые, сделать подзапрос с поиском результатом сорвневаний итд
                  Ответить
                • хм, ну не знаю

                  вот у команд одинаковое количество очков. и надо сначала посмотреть, как они играли друг с другом. и, например, учитывается правило выездного гола.

                  к примеру, команды А и Б сыграли на поле А 3-2 в пользу А, а на поле Б 2-1 в пользу Б

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

                      возьми какую-нибудь ЛЧ или чемпионат на 20 команд, там алфавитная сортировка не поможет

                      правда, в таких случаях, если все-все критерии не дают определить порядок, назначаются дополнительные матчи лол

                      реальную жизнь иногда очень тяжело наматчить в кампутир(
                      Ответить
                      • Ну вот видишь: даже на кампутир хер наматчиш, а ты хочешь на SQL.

                        Я бы на на клиенте субд посчитал
                        Ответить
                      • это зависит от регламента турнира, что там происходит
                        может, жребий, может, переигровки, а может проходит тот, кто Албания, а Занзибар соснулей - если турнир короткий, в нем нет времени на переигровки (+ как ты переиграешь группу, где все 4 команды сыграли 0-0 и имеют равенство по желтым и красным карточкам)
                        Ответить
                        • If one considers all possible outcomes (win, draw, loss) for all six matches in a group, there are 729 (= 36) outcome combinations possible. However, 207 of these combinations lead to ties between the second and third places. In such case, the ranking among these teams is determined as follows:[68]

                          Greatest combined goal difference in all group matches
                          Greatest combined number of goals scored in all group matches
                          If more than one team remain level after applying the above criteria, their ranking will be determined as follows:
                          Greatest number of points in head-to-head matches among those teams
                          Greatest goal difference in head-to-head matches among those teams
                          Greatest number of goals scored in head-to-head matches among those teams
                          Fair play points, defined by the number of yellow and red cards received in the group stage:
                          Yellow card: minus 1 point
                          Indirect red card (as a result of a second yellow card): minus 3 points
                          Direct red card: minus 4 points
                          Yellow card and direct red card: minus 5 points
                          If any of the teams above remain level after applying the above criteria, their ranking will be determined by the drawing of lots

                          в общем, старая добрая монетка
                          Ответить
                          • > drawing of lots

                            Лол. Там даже рандом есть.
                            Ответить
                            • конечно. а однажды он ещё и многое решил.

                              > чемпионат Европы по футболу 1968

                              > В полуфинале сборная СССР сыграла вничью 0:0 с командой Италии. Победителя определял жребий (подбрасывание монеты), который оказался неблагосклонным к капитану сборной СССР Альберту Шестернёву. Такого в истории футбола на высоком уровне больше не случалось.
                              Ответить
          • Х.з. я бы это сделал уже в слое, который над БД. Там и колонку с номером места несложно приделать.

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

              типа сделать отдельную таблицу и там хранить места команды после каждой игры?

              почему мне не очень нравится такой вариант: игры могут переноситься, а иногда и чёткого расписания тура нет (правда, это больше относится к другим командным видам спорта), потому круто было бы сказать: возьми матчи турнира с даты по дату и построй таблицу
              Ответить
              • Ну у тебя же результаты матчей не из воздуха берутся, их юзер вбивает. Ну вот в этой транзакции можешь и обновить колонку с местами. А потом во всяких вьюхах ты спокойно по ней будешь сортировать, не вдаваясь в детали. По-моему самое тупое и надёжное решение.
                Ответить
      • Зависит от бд
        В какой-то графовой мб сможешь и одним запросом утянуть
        Ответить
        • без примера тяжело.
          я из графовых знаю только GraphQL
          Ответить
          • Graphql это способ организовать апи типа odata
            Те ты из клиента пишешь квери а бек может твою таблицу собрать и из реляционной бд и из графовой
            У меня у самого нет опыта работы с графовой но бекендщики на работе рассматривали реализацию подобной структуры на графовой бд
            Ответить
            • я тоже с таким сталкивался

              типа был бэк классический
              и был миддлваре с графкьюел

              но подробностей не знаю

              (работало через жопу, но там свои причины были)
              Ответить
              • >работало через жопу
                Оно почти всегда работает через жопу потому что его делал фейсбук а у фейсбука графовая бд и оно в принципе не очень хорошо ложится на архитектуры где главная бд - реляционная
                Ответить
      • конкретно в этом примере - нет, смысла делать на уровне БД мало, лучше считать на беке и возвращать в БД для хранения денормализованный результат в виде "место" (по той причине, что даже в рамках большого турнира у тебя записей всего ничего, несложно их все выгрузить в память "сервлету", а вот динамики - много, сопровождать на беке эту динамику в виде правил подсчета козявок из носа при полнолунии - гораздо лучше, чем под каждый турнир свой собственный портяночный запрос писать).

        но если ты хочешь попрактиковать SQL, то вай нот, можно и на нём
        Ответить
        • > под каждый турнир

          Кстати да, это важный момент. Весело будет учитывать в запросе все вореции правил за последние 100 лет.
          Ответить
          • это всё же вряд ли

            есть соревнование с айди турнира, этапами и, как я теперь думаю, айди правил для каждого этапа

            потому в историю лезть не придётся для конкретного турнира
            Ответить
            • Ну вот захочешь ты посмотреть сводку победителей чемпионата за последние 30 лет. Удачной ёбли с SQL.
              Ответить
              • ну кстати для победителей (и, возможно, призёров) я бы наверное сразу сделал отдельную таблицу. эти данные часто в отчёты будут лететь.

                а так наверное соглашусь, если делать сурьёзные выборки, то стручок засохнет
                Ответить
        • Имеет ли смысл прикрутить какую-то выскоуровневую тулу, позволяющую бизнес-людям менять логику, без помощи программистов?

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

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

                с другой стороны, как адекватно хранить императивные правила в БД, я не знаю
                Ответить
                • > база кмк будет неконсистентна

                  Кстати, вспомни как Сёма жаловался на Али. Что там товары со скидкой криво сортируются, лол.
                  Ответить
                • исходные данные будут верны, а денормализованный "кеш" -- нет. его придется перестраивать.

                  >как хранить
                  ну вот я там ссылк на давал на тулы типа
                  https://docs.jboss.org/drools/release/5.2.0.Final/drools-guvnor-docs/html_single/#d0e47

                  от так
                  https://docs.jboss.org/drools/release/5.2.0.Final/drools-guvnor-docs/html_single/images/Chapter-Guvnor/template-rule4.png
                  Ответить
                  • какой императивный json )))
                    Ответить
                    • Иногда данные удобно надергать из OLAP куба. Язык запросов называется MDX.
                      Ты выбираешь, что ты хочешь видеть по оси X и по Y, и какую агрегацию и группировку делать.

                      Но это дохуя сложно, и тоже императивщину особо не выразишь
                      Ответить
                      • на самом деле реально можно взять json

                        {
                          "if":  {
                            "condition",
                            "true-clause",
                            "false-clause"
                          }
                        }


                        хранить json в базе, выгружать, преобразовывать в коньструкции используемого языка (если он такое позволяет конечно)
                        Ответить
                        • Почему бы не хранить там скрипт на нормальном языке? А не эту пародию на XSLT.
                          Ответить
                          • тоже подумал об этом

                            но это какой-то вендор лок (то есть мы завязываемся на условный Яuby)
                            Ответить
                            • Ну а так мы завязываемся на какую-то неведомую ёбаную хуйню, с которой все будут страдать. Зато все равны!

                              Какая политкорретность )))
                              Ответить
                              • подтверждаю
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • > 20 бизнес-аналитиков меняют бизнес правила раз в сутки

                                    Сколько бизнес-аналитиков нужно, чтобы бизнес-правила менялись раз в час?
                                    Ответить
                                  • ну почему

                                    всего лишь хранишь скриптушню в базе. а, если у тебя больмень серьёзное приложение, то встроенное двигло для скриптования там скорее всего уже и так есть

                                    надо будет побаловаться.

                                    swift + racket + coredata (или sqlite и голый sql для остроты ощущений)
                                    Ответить
                                    • > для остроты ощущений

                                      berkeleydb и няшную. Они ебашили NoSQL когда слова "мейнстрим" ещё не было.
                                      Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                                        • Ну к слову в berkeley db есть ACID. А в этих ваших монгах нету только пару лет назад завезли. И вообще там индекс по сишной(!) функции от value строить можно.
                                          Ответить
                                          • показать все, что скрытоvanished
                                            Ответить
                                            • The 3.x releases added a logging system for transactions and recovery, called "Transactional Data Store" (TDS).

                                              97-99 год где-то.
                                              Ответить
                                              • показать все, что скрытоvanished
                                                Ответить
                                                • Вот реально, зачем тебе все эти прослойки в виде "HTTP", "JSON", "REST", "SQL" и прочего говна, если ты можешь из кода на няшной получить через сокет няшную структуру, вставить её as is в базу и построить по ней индексы с помощью функций на няшной?
                                                  Ответить
                                                  • показать все, что скрытоvanished
                                                    Ответить
                                                    • > не все компиляторы могут одинаково выравнивать структуры

                                                      Опытный сишник пишет структуры так, что они не требуют выравнивания и/или прагма паков. Проверь.

                                                      > не у всех одинаковый байтордер

                                                      Это да, но умные дядьки специально для этого придумали "сетевой" порядок байтов и htons.
                                                      Ответить
                                                      • показать все, что скрытоvanished
                                                        Ответить
                                                        • > 33-х битная

                                                          Ну не, под такое уже хрен сделаешь. А с октетами и их производными всё просто - добиваешься натурального выравнивания для всех полей. И конпелятор не будет добавлять отсебятину.

                                                          Ну т.е. пара интов и 8 чаров у тебя на любой популярной платформе будут без паддингов.
                                                          Ответить
                                                          • >Ну т.е. пара интов и 8 чаров у тебя на любой популярной платформе будут без паддингов.

                                                            интов сколькибитных?


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

                                                              Да хоть 2, хоть 4, хоть 8. Приведи пример платформы, где эта структура будет не выровнена.

                                                              Но вообще для сетевого протокола можно задефайнить себе набор из u8, u16, u32 и u64 и из них составлять структуры. Тогда точно ничего никуда не поедет.
                                                              Ответить
                                                              • ну да, могут снизу доппадить пустым местом, но это не важно же

                                                                int1: 2byte
                                                                int2: 2byte
                                                                char[8]: 8byte
                                                                ПУДИНГ: 8byte

                                                                Чтобы следующая структура шла отдельно, И не надо было невыровнено чото делать
                                                                Ответить
                                                                • Ну да, можно тупо юзать инты/лонги парами, шорты по 4 штуки, чары по 8 штук. И никаких паддингов никогда не будет. Ну разве что на несуществующих 128-битных платформах.

                                                                  А правила такие, насколько я помню:

                                                                  1) Выравнивание примитива равно ему размеру: alignof(u32) == sizeof(u32)
                                                                  2) Выравнивание структуры или юниона равно max(alignof(fields))
                                                                  3) Оффсет каждого поля кратен его выравниванию

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

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

                                          З.Ы. Вроде и между процессами координация через shared memory была, но я могу ошибаться.
                                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • ну это ж гуй

                              оно всё равно где-то внутри себя правила хранит в каком-то формате
                              Ответить
                            • Предлагаю хранить там байткод. Тогда его и исполнить можно будет где угодно. И конпелировать из чего угодно.

                              З.Ы. Хотя не, write-only хуйня получается.
                              Ответить
              • > скидки

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

        Везёт. Я вот пытаюсь натянуть RAII на вулкан, а получается какая-то питушня. Нельзя взять и ёбнуть буфер пока видюха его юзает.
        Ответить
        • Хм... Деструктор запускает поток, который ждет освобождения буфера, а потом грохает его?
          Ответить
          • омг, пишешь на жаве?
            Ответить
            • Блядь, так это не шутка была? О_о
              Ответить
              • я тоже не понял
                можно же просто слип делать на 1с в деструкторе в цикле и проверять, зачем потоки какие-то, маразм
                Ответить
                • Ну так то да, если оно за 16мс успевает, то за секунду то точно управится.
                  Ответить
                • чтобы асинхронно
                  Ответить
                  • пока основной поток спит, видеокарте ничего не мешает же
                    Ответить
                    • ну дак целую одну секунду поток спит
                      для с++ это же наверное дохуя
                      Ответить
                      • Ну можно на заборчике спать, который видюха выставит. Тогда будет ровно сколько надо.
                        Ответить
                        • ну я имею в виду что за то время пока поток спит можно было бы числа Фибоначчи посчитать или еще какое-то говно
                          в браузере просто потоком пользуешься по очереди ты и браузер и всегда надо ему этот поток отдавать а самому себе шедулить исполнение на попозже
                          Ответить
                          • Считаешь числа Фибоначчи пока спишь? Перестань
                            Ответить
                            • Кто-то овец считает, кто-то котодевок, а он - числа фибоначчи.
                              Ответить
                              • показать все, что скрытоvanished
                                Ответить
                              • вот вы сначала смеетесь над js-никами а потом у вас сайты лагают
                                Ответить
                                • Крестухи пишут расчет Фибоначчи на рекурсивных шаблонах в компайл-тайме.
                                  А пока оно собирается, сидят на сайтах, которые лагают.
                                  Ответить
                                  • реально ли написать тетрис на шаблонах? Пока не пройдешь -- не скомпилируется
                                    Ответить
                                    • > тетрис на шаблонах

                                      std::tetris<std::left, std::left, std::right, ...>
                                      Ответить
                                    • Ты подал мне пару идей.
                                      Ответить
                                      • Формально доказать, что тетрис можно пройти?
                                        Ответить
                                        • Я не хочу убить полжизни на дурацкий челлендж с гк, спасибо. Нет, хотел считерить и запустить какую-нибудь игрушку из эрланговского parse transform'а. P.S. это и вправду легко сделать, можно хоть Doom запускать. Жаль, что он после Game Over не выходит с ненулевым кодом возврата. "Compiling!" обрело бы новый смысл.
                                          Ответить
                                    • и пакмана
                                      Ответить
                                  • Этот веб боится меня. Я видел его истинное лицо, сайты — продолжение срендереных скриптами строк, а скрипты заполнены телеметрией. И когда главный тред будут окончательно забит, то вся эта мразь начнёт тонуть... Когда скопившаяся грязь говнокода и фреймворков вспенится им до пояса, все крестухи и жавапидорасы посмотрят вверх и возопят: "Спаси нас!", а я прошепчу: "Нет".
                                    Ответить
                      • Можно и просто terminate(). Посмотришь секунд 5-10 на зависший рабочий стол, а потом всё норм. Прыщепроблемы, да.
                        Ответить
                      • Если тебя не устраивает, что для с++ это дохуя, то попробуй написать то же самое на «PHP».
                        Ответить
                        • Да всяко уже кто-то сделал биндинги для PHP...
                          Ответить
          • Скорее закидывает буфер в корзину. И когда выполненные команды проходят через заборчик, корзина очищается.
            Ответить
        • У меня получилось логично: осовбождаются только GDI битмапы, и их DC. а остальное все в памяти висит до конца.

          При выходе у меня релизится сначала сюрфейс, потом directdraw сам (ну вернее это CComPtr их релизит в своих деструкторах), и видимо ddraw сам следит, чтоб всё за собой почистиить

          Он даже мне ращрешение нормальное возвращает сам!
          Ответить
          • Ну в старых DX синхронное API было, там драйвер от тебя все сложности прячет, всё просто и логично. В DX12 и вулкане такой халявы больше нет.

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


              On IDirectDrawSurface7 interfaces, the default is DDFLIP_WAIT. If you want to override the default and use time when the accelerator is busy (as denoted by the DDERR_WASSTILLDRAWING return value), use DDFLIP_DONOTWAIT.

              Какая прелесть: карту называли графическим акселератором в моем детстве.. кто помнит 3dFX и Glide?
              Ответить
              • А вот кстати, если у меня в интеловскую интеграшку монитор не воткнут, то я могу назвать её акселератором?

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

        Out of order исполнение на три тыщи ядер и ещё кучу апаратных блоков. write-back кеши без протоколов когерентности. И 32 фронтенда, которые парсят твоё говно и набрасывают на этот вентилятор.

        Добро пожаловать в ад, грешники.
        Ответить
        • Эх молодёжь... В мои-то времена там не было кэшей.
          Ответить
          • Ну ты что, с кешами же веселее. Чтобы крестоблядская memory model мёдом не казалась.
            Ответить
          • Барьер картинки

            барьер.этапДоБарьера = ВыводКартинки
            барьер.доступДоБарьера = ЗаписьБлокомВыводаКартинки
            барьер.стараяРаскладкаКартинки = ОптимальнаяДляВывода

            ... случается раньше ...

            барьер.новаяРаскладкаКартинки = ОптимальнаяДляЗатенения
            барьер.доступПослеБарьера = ЧтениеБлокомЗатенения
            барьер.этапПослеБарьера = Затенение
            Ответить
          • До RTX я такими темпами не дойду, походу :(

            Но хотя бы кубик с текстурой нарисовал.

            Кстати, я про RTX же отвечал тебе?

            Там все модели пакуются в некую проприетарную acceleration structure, по которой RTX ядра смогут искать пересечения лучей с треугольниками. До кучи надо приложить таблицу всех шейдеров и всех ресурсов.

            Затем запускаешь команду vkCmdTraceRays. Она запускает ray generation shader, который начинает закидывать лучи в RTX топку. Найденные пересечения триггерят closest hit shader и miss shader, в которых ты пишешь какую-то свою обработку и можешь шедулить новые лучи для отражений/преломлений.
            Ответить
            • > Там все модели пакуются в некую проприетарную acceleration structure, по которой RTX ядра смогут искать пересечения лучей с треугольниками. До кучи надо приложить таблицу всех шейдеров и всех ресурсов.

              Спасибо, стало непонятнее. Чтобы из модели (подразумевается исходный vertex + index buffer?) получить пригодные для RTX треугольники в 3D, нужно пол-пайплайна пройти, включая недешёвые вещи такие как скиннинг. RTX полностью дублирует или заменяет его? Я вроде читал, что он вместе с растеризацией как-то уживается. Ладно, объяснять на пальцах графический пайплайн уже после D3D10 стало невозможно, так что придётся самому видимо читнуть про этот ваш вулкан. Надеюсь, там хоть не надо натягивать квадрики на экран.
              Ответить
              • > полностью дублирует или заменяет его

                Судя по тому, что он запускается как compute а не как graphics, походу заменяет. Но так то никто не мешает гонять паралелльно и compute и graphics.

                > исходный vertex + index buffer

                Да, как я понял, эти буфера as is идут в bottom level acceleration structure. А список инстансов и матрицы трансформаций идут в top level acceleration structure. А вот вершинных шейдеров, тесселяции и т.п. там не видно. Возможно в моделях надо грубые контуры описывать, а тонкую обработку пересечений уже в шейдере доделывать... Х.з., я просто обзорное описание читал.

                З.Ы. Кстати, у шейдеров сейчас есть возможность срать в буфер. Возможно, что надо прогнать всю верхнюю часть пайплайна в буфер, а потом скормить его в RTX.
                Ответить
              • > уживается

                Гипотетически, я могу прогнать нормальный пайплайн и получить (1) мешок треугольников до растеризации и (2) пиксельную маску всяких блестящих объектов, которые хотелось бы потрейсить. А потом уже построить acceleration structure из (1) и запустить ray generator для (2). Ну и смёржить результаты этих пайплайнов.
                Ответить
        • а как там это все синхронизируется?

          Из того, что ты писал: какой процент кода на сишечке, а какой процент кода на языке под GPU?
          Ответить
          • > как синхронизируется

            У нас были event, fence, semaphore и барьеры всех цветов и размеров...

            Ты наполняешь командный буфер командами и отправляешь его в очередь на gpu. Оно там в фоне начинает ебашить. В конце-концов сигналит тебе fence на котором ты можешь ждать.

            На сишке тыща строк была когда я нарисовал треугольник, на glsl ну с десяток.
            Ответить
          • На самом деле большая часть работы там не требует синхронизации т.к. тупо не пересекается по буферам. Но если пересекается - надо вставлять барьеры между шагами, чтобы gpu не перестарался и не начал юзать недорисованные и недозагруженные картинки (пример выше можешь глянуть).
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • Ну и есть немного гарантий на самом графическом пайплайне. Например что эффект такой же, как-будто все треугольники в пределах одного render pass'а рисовали именно в порядке отправки. Примерно как интел делает вид, что инструкции исполнялись по порядку. Иначе совсем пиздец был бы.
                Ответить
    • Идея для инженерного отдела, если ему нечем заняться:
      https://profi.ru/blog/kalendar-mezhdunarodnyx-dnej-oon-i-yunesko/
      Поздравлять со всякой хуетой, например 19 ноября - Всемирный день туалета
      Ответить
      • Можно запилить шикарный сервис с API, чтобы каждый мог сделать виджет «а какой сегодня праздник» на своем сайте. Ещё можно в рамках этого же апи реализовать скачивание базы с датами, чтобы работало в каких-нибудь оффлайн приложениях.

        Но лучше, наверное, было бы скраппить википедию, там не только важные праздники ООН, а ещё дни рождений всяких интересных персон
        Ответить
        • вы там дудл что ли придумали?
          Ответить
          • Скорее фреймворк для дудлов, чтобы каждый сайт мог быть не хуже, а то и лучше гуглеса
            Ответить
    • Почему 97% программистов 1С мало платят и так будет всегда

      Какой старый хрыч багор )))

      https://habr.com/ru/post/519152/
      Ответить
      • Программист называет себя Разработчиком

        Профессия «Разработчик 1С» появилась относительно недавно. Раньше так называли лишь чуваков из 1С, которые разрабатывали конфигурации. Остальные чуваки назывались «Программист 1С» и внедряли эти конфигурации.


        Да как смочь
        1С-девопсов еще притащите
        Ответить
        • Именно поэтому я за идентификацией себя как «Оператор ЭВМ по специальности использование конфигуратора 1С»

          А вообще это такой багор, в статье прямым текстом написано, что программисты на 1С это какой-то офисный планктон, который занимается не разработкой.

          Даже PHP программисты — это разработчики сайтов (в основном), даже JS программисты это не писатели скриптов или операторы браузеров, а разработчики; я никак не могу понять как человек становится 1С'ником и приобретает такую низкую самооценку с отсутствием амбиций.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Все у кого много бабок берут ms dynamics/sap/salesforce
              Там и работягам больше платят
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • > а почему?

                  А зачем им брать 1С? 1С это хуета, мы тут это уже научно доказали.

                  > И почему

                  Мазохисты, либо ну просто очень анскильные люди. Или просто не хотят высокую зарплату и что-то там решать сложное
                  Ответить
                  • >>>"1С это хуета"

                    Полностью согласен. Поэтому я за "PHP".
                    Ответить
                • >а почему?
                  Все эти три хуйни больше и гибче 1с и имеют базу знаний и спецов размером с целый мир
                  >И почему они не меняют вид деятельности?
                  Это легко так рассуждать сидя на говнокоде. В реальности люди делают кучу тупой хуйни по самым разным иногда оправданным причинам
                  >вот умеешь там мануал по языку прочитать, и массив отсортировать, то ты уже можешь получать больше, чем 39 тысяч
                  именно поэтому я ха js
                  Ответить
            • Потому что бизнес обычно отличается от наебизнеса. Что работает на 1С? Всякие госконторы и прочая питушня типа ИП «Пупкин В.В.», при этом сам 1С можно хуесосить часами, каждый раз находя что-то новое, чтобы обосрать)

              Я считаю, что если человек думает что-то типа: «Я хочу заниматься автоматизацией бизнеса, а буду делать это именно на 1С, потому что эту технологию создали в раш-ке и ей пользуются маленькие ИП и госконторки!», должен страдать.
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • А что такое завод?

                  Старый совковый ангар с маразматиком-директором и станками 45-го года, где ит-отдел на табуретках сидит?

                  Там да, на грани нищеты могут работать 3000 гречневых мужиков и 1С там скорее всего используют.

                  А на высокотехнологичном заводе техники Huawei ссали и срали на 1С )

                  Угадай где зарплата будет больше
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Нет, не верно́. Если рассматривать аналогию с таксистами, то в таксомоторной компании, которая развозит олигархов на лимузинах, зарплата будет больше, чем в ООО «Такси Скорость» где-то в провинции.

                      Но проблема в том, что компаний типа первой несколько штук на всю Россию, а вторых миллионы.

                      А лицензия на таксование из раш-ки, к сожалению, в других странах никому не нужна.
                      Ответить
        • показать все, что скрытоvanished
          Ответить
          • Настоящий, а не выдуманный специалист, Middle PHP Developer
            Ответить
    • Такой вопрос.

      Как сделать, чтобы в Apache директорию с сайтами (напр: /var/run/www/*) можно было писать от имени моего пользователя? А то постоянно раньше приходилось запускать консоль и всё остальное от имени www-data.
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Лол, на хабре статья попалась:

      1) fork() при ошибке возвращает -1
      2) kill() при -1 убивает все процессы текущего юзера (ну или вообще все кроме init если root)

      Какие грабли для любителей забивать на ошибки )))
      Ответить
    • это тупое говно не работает
      Ответить
    • показать все, что скрытоПетушоки, открываем YouTube.com и смотрим какие первые 3 видео у вас в рекомендации. У меня:
      https://www.youtube.com/watch?v=1PcdqsuMdgI
      https://www.youtube.com/watch?v=iFq6z3DKG6g
      https://www.youtube.com/watch?v=rl9r-p__oMg
      Ответить
      • > какие первые 3 видео у вас в рекомендации

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

            https://www.youtube.com/watch?v=MTYlZjl5gOA
            https://www.youtube.com/watch?v=j6KtQRbyH_g
            https://www.youtube.com/watch?v=HqxcJb5ydDw
            Ответить
            • а теперь то же самое, только про гуглдоки
              Ответить
              • nullptr
                Ответить
              • что-то ты долго к "сфотографируйте обе стороны карточки" идешь
                Ответить
                • мы на гк как-то определили, что это всё равно бессмысленно
                  Ответить
                  • > это всё равно бессмысленно

                    Чому? Это пин твой нахуй никому не нужен. А с двумя сторонами вполне оплатить что-нибудь можно.
                    Ответить
                    • речь про 3d secure, видимо
                      Ответить
                      • > речь про 3d secure, видимо

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

                      я процитирую эксперта (https://govnokod.ru/26809#comment560914)

                      gost 21.07.2020 03:07 # +2
                      Ну хуй знает, снять деньги она без пина не сможет, а в интернете двухфакторка нужна. Без двухфакторки только особо крупные конторы могут деньги снимать.
                      Плюс клиент сразу будет знать, что его карту спиздили, и сможет позвонить в банк.
                      Ответить
                      • «Сбербанк» позволяет до 1 тысячи рублей снять без двухфакторки.
                        Ответить
                      • > особо крупные конторы могут деньги снимать

                        Это не совсем так вроде, скорее крупные конторы могут себе позволить риски от работы без 3дс. Мелкий магазинчик из-за чарджбеков и штрафов за них может разориться нахуй и ещё банку останется должен.
                        Ответить
      • Какая-то дефолтная попса (ящитаю нечего гугл печеньками баловать).
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • https://www.youtube.com/watch?v=ow-gMD0n7XE
            https://www.youtube.com/watch?v=nAlTfKnlh8U
            https://www.youtube.com/watch?v=5qap5aO4i9A
            Ответить
        • У меня тоже без входа в профиль с youtube vanced. Вот что принесло https://youtu.be/X5d8bnvO2JQ
          Ответить
          • интересно, кто первым вымрет: дураки или толкинисты?
            Ответить
            • А это два множества?
              Ответить
              • Конечно, два. Множество дураков содержит в себе элементы множества толкинистов, но разность этих множеств непуста.
                Ответить
                • иногда по ночам произвольная толкинистка некоторое время содержит в себе элемент произвольного дурака
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Ну да, Галя, ну конечно я читал. Там эта, Дура Гудрон, тьфу блядь, Дол Гулдур. И действие происходит в Уругвае. А-а, точно, урук-хаи!

                      Да ты чо, я целый фильм посмотрел в переводе ёблина, давай уже ебаться!
                      Ответить
            • Что плохого бегать по лесу с топором и переворачивать кресты?
              Ответить
              • > переворачивать кресты
                - это чтобы почувствовать себя членом одновременно двух субкультур? какая находчивость )))
                Ответить
                • > переворачивать кресты

                  i++ заменять на ++i
                  Ответить
                • Тоже презираешь ламберсексуалов?
                  Ответить
                  • Ламберсексуал (англ. Lumbersexual), или дровосексуал

                    твою мать

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

                        Не знаю кто такие рейфаги. На лурке нашел только это:

                        Катаморфизмы, параморфизмы, зигоморфизмы, хистоморфизмы, препроморфизмы, анаморфизмы, апоморфизмы, футуморфизмы, постпроморфизмы, хиломорфизмы, крономорфизмы, синкрономорфизмы, экзоморфизмы, метаморфизмы, динаморфизмы алгебра и коалгебра Калвина Элгота наконец. Успех хиккующих выблядков / просто быдлокодеров типа рейфага или сисярп/джава-девелоперов, которые работают в Люксофте не будет тебя волновать и уже через пол года ты будешь получать такие гранты, что любой профессор будет течь при одном упоминании списка твоих публикаций.
                        Ответить
                    • Приведи реальные примеры ламберсексуалов.
                      Ответить
                      • Буратино?
                        Ответить
                      • http://cdn.pastemagazine.com/www/articles/gravity%20falls%20stanford.jpg

                        пойдёт?
                        Ответить
                      • гугли Древарх-Просветлённый
                        Ответить
                        • >> К апрелю 2012 года сменил 23 паспорта.

                          >> Вскоре Древарх Просветлённый решил выбирать имя в честь дней недели, а отчество — в честь месяца (к примеру, Среда Декабриевич), и тем самым менять паспорт каждый день. Однако работники ЗАГСа убедили его в невозможности подобных действий с технической точки зрения.
                          Ответить
                        • > Был трижды женат. От разных браков имеет 4 детей
                          - окда
                          Ответить
      • https://www.youtube.com/watch?v=4avdigfU1oI
        https://www.youtube.com/watch?v=hkwNjn3WhfQ
        https://www.youtube.com/watch?v=XLPxuqcEVso
        Ответить
    • DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.

      я считаю, это повод возмутиться
      Ответить
      • @MAKAKA

        а как там в Tcl/Tk нормально сделать exec внешней тулзы, чтобы оно вывод перехватило и не сходило от него с ума?
        Ответить
    • https://habr.com/ru/post/66701/

      было?
      я поиском не нашёл чот
      Ответить
      • а не дефекате-плюсплюс ли ты часом?
        Кстати, у него днюха в июле. я его хакнулд.
        Ответить
      • показать все, что скрытоvanished
        Ответить
      • «Если честно, люблю ваш сайт, захожу на него практически каждый день как например на айтихэппенс или баш(да, да, уже не торт). Желаю успехов в развитии.
        P.S Куда делся руби? Там было как помню 3-4 говнокода»
        Ответить
        • Это какого года коммент?
          Ответить
          • 10 августа 2009 в 15:51
            Ответить
            • Некоторые комментаторы из этого оффтопа на тот момент ещё даже не были зачаты...
              Ответить
    • показать все, что скрытоvanished
      Ответить
    • https://habr.com/ru/post/522524/

      какой релокейт )))
      Ответить
      • показать все, что скрытоvanished
        Ответить
      • релокейтиться в РБ, ну какой же дебил блядь
        Ответить
        • показать все, что скрытоvanished
          Ответить
        • > аз компания в лице технического директора позволяет себе такое поведение, то мне ничего не мешает трактовать это инцидент как… ммм… дайте-ка посмотрю на свой банковский счёт… Точно! Кидалово на бабло.

          ебический кретин

          кидалово на бабло - это кто-то присваивает себе твои финансы
          Ответить
          • > То есть меня, неплохого и опытного инженера, который в силу обстоятельств пошёл навстречу компании — облили говном и поставили в крайне неудобную ситуацию.

            > Жаль что опубликовать эту информацию раньше у меня не дошли руки. Просто они дрожали. И ещё глаз дёргался. Только сейчас я более-менее справился с тревожным расстройством и коробкой неврозов, которые мне достались всего после двух недель сотрудничества с героями статьи. Даже среди ночи уже не просыпаюсь. Почти. Ну что, вы всё ещё выгораете?

            пиздец неженка обиделась
            Ответить
            • >человек, который (почему-то) претендует на звание тимлида
              >Но издалека сотрудники TargetProcess не создавали впечатление безответственных мудаков
              >в местечковый Theranos
              >Видимо, мне просто не повезло выбрать самых никчёмных представителей индустрии для работы

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


                Тут у меня, наверное, нет комментариев. Видимо вот такой он, градус дискуссии профессионалов высокого класса. И ничего с этим не поделаешь.


                болтать не о коде запрещено.
                осуждаем.
                Ответить
                • опять эти мясные мешки со своей хуйней
                  нет чтобы как на говнокоде о coq, байтоебстве и петухах разговаривать
                  Ответить
                • > Что трудовой договор не подразумевает расторжения ранее определённого срока (так же именуемого испытательным);

                  да сука, абсолютно невозможно
                  Ответить
                  • > Все проще — автор советовался с Королем Разработки. Отсюда характерное «королевское» название статьи и пара подобных оборотов в статье

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

                      блядь, да они там все наглухо ебанутые, почище дам с ключами в лифтах
                      Ответить
                    • В таком смысле?

                      https://pbs.twimg.com/media/DPeR4TUXUAE2x89.jpg
                      Ответить
                      • Это местный долбоёб с «Хабра», который рагулярно набрасывает хомячью пафосные холиварные статейки, под которыми это самое хабрахомячьё самозабвенно срётся (не забывая Королю отсыпать плюсики). Филип чё-то там, который ещё обсуждаемого здесь долбоёба-релокатора на «Хабр» пригласил.
                        Ответить
              • у чувака бомбит, это очевидно
                и крендель он странный

                но и компания судя по всему ебучий случай

                чот хабр уже скатился до ebanoe.it
                Ответить
          • показать все, что скрытоvanished
            Ответить
      • Ебать, прекрасно всё! От релокейта из РФ в РБ и до долбоёба, который переехал в другую, сука, страну не просто без заначки на чёрный день/обратный билет (как вообще программист с «10+ годами индустриального опыта» может не иметь хоть каких-то резервных средств?!), но и с ёбанными долгами!
        Пиздец, что у таких людей в голове творится? Они вообще не умеют думать, как и на что будут жить через неделю?
        А на всё обоснованное недоумение по поводу его умственных способностей этот поц там в комментариях кукарекает про «оффер», охуеть. Будто «оффер» — это такой магический артефакт, который владельцу гарантирует счастливую жизнь на тридцать лет вперёд, благодаря чему можно без гроша в кармане и каких-либо планов на случай форс-мажоров (да блядь, кризис ебанул, революция вспыхнула, вирус прилетел — мало что ли в мире бывает ситуаций, когда ты можешь остаться без работы?) отправляться в увлекательное путешествие за 600 километров.
        Я хуею.
        Ответить
        • 600 километров — это примерно расстояние от Москвы до Минска. Столько он проехал на машине. А перед этим он ещё проделал порядка 2800 километров от Новосибирска до Москвы.
          Ответить
          • Пиздец.

            Я, кажется, понимаю, почему у него неврозы и «руки тряслись»: он просто регулярно голодал. Ведь чтобы поесть — это надо сначала купить/заказать еду, то есть что-то распланировать хотя бы на час вперёд. Очевидно, мозг этого человека-золотой рыбки на такое сложное планирование не способен, вот и имеем такую печальную ситуацию.
            Ответить
            • кстати, он уже был у нас в гостях недавно

              https://govnokod.ru/26896#comment570867
              Ответить
      • показать все, что скрытоvanished
        Ответить
    • В этом коде прекрасно всё.
      Ответить
    • Как-то тихо сегодня.
      Ответить
    • https://i.imgur.com/I3RgJia.png
      https://sovet--krk.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name _op=case&case_id=177508652&delo_id=15400 05

      Какой Warning: pg_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Pravosudie\sdp\program\connections\cl assPgSql.php on line 48 )))
      Ответить
    • https://twitter.com/TechnoEmpress/status/1311674779825471491
      Кто главнее: Царь или Императрица?
      Ответить
    • https://ebanoe.it/2020/10/04/healthjoy-accountant-rip/

      А я всё думал зачем в вузе безопасность труда преподают
      Ответить
    • https://habr.com/ru/post/522816/

      «Я точно не помню, но вроде я где-то читал, что ООП вправляет мозги. Что это позволяет писать грамотный красивый код. Возможно так. Но я почти в ООП не программирую и поэтому может это я так много кода пишу, а настоящий программист сделает более лаконичный код. Но вот хочу показать пример. Вот это интерфейс java...»
      Ответить
      • Кто сам не умеет, учит других.
        Ответить
      • ООП абстрагирует от необходимости представлять себе внутреннее устройство языка. А если представить (не дай бог!) то чел сразу поймёт, что на двух хуях усидеть не удастся. Либо ты сидишь на дилдо xxxl и пишешь "компактный код", пока из твоего ануса сочится кровь и гной, либо сидишь на тощем фаллосе небольшого размера, правда, с вибрацией и пишешь человекопонятный код.

        Выбор как всегда за вами :)
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • https://www.youtube.com/watch?v=xP5-iIeKXE8
      Охуенно, ящитаю.
      Ответить
    • https://habr.com/post/522816/
      Однозначно пост года на «Хабре»!
      > Структурное против ООП программирование
      Вот это вот — ООП программирование:
      import java.net.*;
      import java.io.*;
      
      public class Main {
      	public static void main ( String[] args ) {
      		URL url = null;
      		try {
      			url = new URL ( "https://www.google.com" );
      		} catch ( MalformedURLException e ) {
      			return;
      		}
      
      		String protocol = url.getProtocol ( );
      
      		IProtocol prot = null;
      
      		switch ( protocol ) {
      			case "http": prot = new Http ( ); break;
      			case "https": prot = new Https ( ); break;
      			default: return;
      		}
      
      		prot.connect ( url );
      
      		URLConnection conn = null;
      		try {
      			conn = prot.getConnection ( );
      		} catch ( IOException e ) {
      			return;
      		}
      
      		conn.setDoOutput ( true );
      
      	}
      }

      А вот это — структурное:
      #include <stdio.h>
      #include "conn.h"
      
      struct conn conn;
      
      #define HTTP_PROTOCOL       1
      #define HTTPS_PROTOCOL      2
      #define ERROR_PROTOCOL     -1
      
      static int get_protocol ( void ) {
      	return HTTP_PROTOCOL;
      }
      
      int main ( int argc, char **argv ) {
      
      	switch ( get_protocol ( ) ) {
      		case HTTP_PROTOCOL: init_http ( &conn ); break;
      		case HTTPS_PROTOCOL: init_https ( &conn ); break;
      		case ERROR_PROTOCOL: return -1;
      	}
      
      	conn.connect ( "www.google.com" );
      	char *data = conn.read ( );
      }

      Не путайте, а то могут и напутать!
      Ответить
      • Второй вариант короче.
        Ответить
        • Именно поэтому я за «структурное программирование».
          Ответить
      • @conn.connect ( "www.google.com" );

        Структурное, говоришь?..
        Ответить
      • показать все, что скрытоvanished
        Ответить
        • Да если б он просто думал — хуй бы с ним, мало ли на свете неразбирающихся людей?
          Но он жеж, питух эдакий, целую статью обучающую с этой ахинеей насрал!

          Кстати, оцени ясность мыслей и чёткость их выражения:
          >>> В этом случае будет больше кода и если сделать это таким способом, который приведу я, то вид кода будет нормальный. Но этот способ конечно же придумал не я, я его сам вычитал из книги когда-то. И так https и http. Чтобы это сделать, нужно создать интерфейс. И к этому интерфейсу присваивать нужный класс, в зависимости от типа протокола. Я точно не помню, но вроде я где-то читал, что ООП вправляет мозги. Что это позволяет писать грамотный красивый код. Возможно так. Но я почти в ООП не программирую и поэтому может это я так много кода пишу, а настоящий программист сделает более лаконичный код. Но вот хочу показать пример. Вот это интерфейс java.
          >>> Если статья понравиться, то я буду писать продолжение в будущем. Пока я ещё наверное плохо знаю ООП, чтобы написать больше примеров, но думаю, что если не заброшу ООП, то начинающим читателям будет интересно посмотреть отличия при написании в структурном и ООП-программировании.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Кстати, это ж не единственная его нетленка! Вот ещё знатная психоза:
              И вот пока я делал это у меня появилась идея, возможно ли добавлять
              код в середину секции кода? Оказывается можно, но во всех ли случаях?
              Пока что чтобы добавить код я использую уже подготовленные машинные
              коды. Если потом смогу, то сделаю транслятор ассемблера в машинных код,
              чтобы добавлять код было удобней. В моём случае надо указать смещение
              в секции кода и байты скопируются в нужное место. Также была проблема
              определённая: адресация в памяти. Я добавил в команде lea код, который
              сохраняет в структуру нужные данные, и если ты вставляешь новые операторы
              в секцию кода, то все смещения выстраиваются так, что указывают на данные
              в новых смещениях. Ну это не очень сложно, если вставил код, то секция кода
              увеличилась на столько же байт и все остальные секции после секции кода
              будут содержать уже новые смещения. Сделал так, чтобы были различия в том,
              куда ты вставляешь код, все смещения работают правильно. Потом появилась
              проблема в том что в адресации такой
              
              mov eax, [eax + eax + 0x100]
              
              Дело в том, что в такой адресации может быть ebp и указывать на стек, а не
              в другую секцию. Я решил сделать так, что если адрес указывает на секцию
              данных, то учитывать смещения при вставке кода, если же указывает на стек,
              то есть не на адрес в секции данных, то не учитывать смещения.

              https://habr.com/post/477590/
              Ответить
              • Задача интересная, но нетривиальная. Без трассировки или без исходников программы невозможно понять, куда будут вести указатели и нужно ли их фиксить. Инструкция lea часто используется вообще для арифметических операций над произвольными числами, а не для указателей.
                Ответить
              • Идея конечно интересная... Странно, что все генерят код в новые блоки памяти, а до вставки функций посреди кода никто не додумался.
                Ответить
                • В "PHP" не надо думать ни о каких блоках памяти. Поэтому я за "PHP".
                  Ответить
                • Когда линкуешь экзешник из объектных файлов, у тебя код вставляется «в середину», функции разъезжаются, и надо фиксить адреса. Но в объектных файлах каждый указатель помечен как фиксап (кроме разве что rip-адресов в пределах функции или абсолютных адресов), и линкер точно знает, что и как нужно пофиксить.

                  А в слинкованных экзешниках информация о фиксапах потеряна, поэтому для добавления кода экзешник нужно полностью дизассемблировать и с помощью реверс-инжиниринга понять, какие из констант нужно фиксить. В общем случае эта задача может не иметь решения.

                  Кстати, у «Борланда» был инкрементальный линкер (ilink32). Можно было слинковать часть модулей, а потом добавлять по одному. Он создавал в частично слинкованном экзешнике специальную секцию, в которой хранил список неисправленных фиксапов?
                  Ответить
                  • P.S. Прочитал про ILINK32. Нет, он не создавал специальную секцию. Он создавал отдельные файлы (linker-state files: pituh.ilc, pituh.ild, pituh.ilf, pituh.ils), в которых хранил фиксапы. Если ты потеряешь эти файлы, то уже не сможешь к экзешнику ничего прилинковать.

                    http://docwiki.embarcadero.com/RADStudio/Sydney/en/Technical_Details_About_ILINK32_and_ILINK64#Linker-State_Files
                    Ответить
          • А вдруг это сознательная диверсия, чтобы уменьшить конкуренцию?
            Ответить
    • Пятиминутка лингвистики:
      https://pbs.twimg.com/media/Ej_x8f9X0AQp0zt.jpg
      Ответить
      • показать все, что скрытоvanished
        Ответить
      • Новые элитные ЖК для московских вьетнамцев?
        Ответить
        • Те, кто может купить квартиры в элитных ЖК, живут где-нибудь в таунхаусах за городом. Квартиры там покупают, чтобы сдавать и иметь пассивный доход. Так что по факту жить в новых элитных ЖК может кто угодно.

          Допустим, аренда за 100 тысяч рублей в месяц. Заселятся 100 вьетнамцев и каждый будет платить по тысяче.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Элитные соседи
              Элитный запах
              Элитные тараканы

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

                «смарт-квартиры», конурки размером меньше, чем минимальная площадь жилых помещений, и жилыми помещениями соответственно не являющиеся; как производной от этого невозможность заключить адекватные договоры на поставку коммунальных услуг

                превращение помещений технического этажа в квартиры с прорубанием всех «нужных» дверей и прочих отверстий

                про самозахваты я молчу

                многоквартирники это в принципе зло, человейники это филиал чистилища, а иногда и ада
                Ответить
          • Зачем ста вьетнамцам снимать квартиру за 100, если можно за 10?
            Ответить
    • Эх, что-то мой пк-гробик совсем окирпичился(

      не может стартануть, вентиляторы запускаются и тут же останавливаются
      Ответить
      • Давно включал последний раз? Батарейку замени, у меня такая же проблема была недавно со старым.
        Ответить
        • вчера)

          ок, спасибо, попробую
          Ответить
          • Ну как, попробовал?
            Ответить
            • дык батарейку надо ж купить
              Ответить
              • 6990 рублей в re:store?
                Ответить
                • нет. я писал про пк-гробик

                  думаю, обойдётся в ~150 гривен, если такие продаются ещё, конечно
                  Ответить
                  • Если литиевая таблетка, то у нас такие продаются в «Фикс-прайсе» вообще за копейки.
                    Ответить
                  • > если такие продаются ещё

                    А куда они денутся то?
                    Ответить
                    • а вдруг там какой стандарт поменялся, я не сильно вообще по этим делам

                      задумался, что вообще в мою материнку встанет из более-менее нового
                      Ответить
                      • Наверняка у тебя есть подружки, которым ты можешь позвонить и попросить переустановить винду.
                        Ответить
                      • Видюха и SATA SSD точно встанут. M.2 SSD возможно тоже, если материнка не совсем древняя. Всё остальное - только из музея.

                        З.Ы. Хотя на видюху может питания не хватить, да и проц может "не раскрыть её потенциал", как любят писать во всяких обзорах.
                        Ответить
                        • asrock b75 pro3
                          Ответить
                          • > Supports 3rd and 2nd Generation Intel® Core™ i7 / i5 / i3
                            Ну это печально, конечно.

                            UPD: Это процессоры 2011-2012 годов, если что.
                            Ответить
                            • так собсно у меня пека как раз в 2012 году собран

                              но в целом, если в новые ААА не играться, то ничего там вроде менять и не нужно, кроме hdd на ssd
                              Ответить
                              • у меня прошлый стимбокс был собран где-то на год позже, а проц я купил самый дешевый за полторы что ли тысячи, рассчитывая со временем заменить его на 3570k или аналог.

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

                                А ты вообще какие компоненты апгрейдить собираешься?
                                Ответить
                                • хз, если честно

                                  думаю, что практичнее будет сделать полный апгрейд, включая мать, проц и БП, оставить можно только планки и жёсткий старый (только придётся покочевряжиться, чтобы склонировать системный раздел на новый ссд)

                                  всё зависит от того, поможет ли новая батарейка. мож там что-то другое сдохло за эти годы.
                                  Ответить
                                  • планки у тебя скорее всего DDR3. думаю, не имеет смысла апгрейдиться c компа из 2011 на комп из 2013 (условно, я не помню когда DDR4 завезли)
                                    Ответить
                                  • > планки

                                    Не оставишь, у тебя там DDR3. Мать + проц + планки почти всегда лучше пакетом менять.
                                    Ответить
                                  • > планки
                                    Не забудь проверить совместимость проца и версии «DDR». Ну и я бы посоветовал «DDR4» прикупить, конечно: по опыту с новыми процами память иногда боттлнечит.
                                    Ответить
                                    • > память иногда боттлнечит

                                      Именно поэтому я за XMP. Помнится, мы тут на ГК скоростью grep'а по линуксовым сырцам мерились. С XMP процентов на 20 быстрее было.
                                      Ответить
                                      • У меня она и так до предельных 1600 разогнана. Какой багор (((
                                        Ответить
                                    • спасибо всем за совет)

                                      тогда реально будет проще просто собрать новый пека как-то

                                      (этот кстати год назад уже брыкался в похожем духе; в итоге чудесным образом однажды вылечился; я ламер и ничего не понимаю, но возможно зарядились какие-то конденсаторы?)
                                      Ответить
                                      • Скорее отвалились какие нибудь контакты на микросхемах, окислились дорожки она плате или кремний окончательно деградировал, где был сразу не идеален.

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

                                          У этих материнок уже вроде нормальные стояли, которые не дуются. Китайцы наконец-то спиздили технологию до конца.
                                          Ответить
                                          • на БП ещё могут по идее накрыться

                                            год назад я его раскрывал, всё было ок, а щас надо снова смотреть
                                            Ответить
                                  • > поможет ли новая батарейка

                                    Вангую, что поможет. У меня z77 pro3 в углу валяется, она из того же поколения, что и твоя. И как раз точно такая же проблема была - вентиляторы включаются на секунду и всё отрубается. Воткнул батарейку от нового компа - всё заработало.
                                    Ответить
                            • Ну да, чтобы запустить "Skype", процессоры теперь нужны совершенно другие.
                              Ответить
                            • Для домашнего сервака под файлопомойку ещё нормально
                              Ответить
                            • Да ладно, у меня вот в углу валяется примерно такая же материнка с 3570k и 8 гиг памяти. Даже сейчас вполне юзабельно.
                              Ответить
                              • я тот самосборный стимбокс в результате обернул в RVZ02 и отцу в загородный дом отдал. и ничего, бегает, только шумит посильнее чем должен (я кроме продувания видеокарты ничего не делал, там скорее всего надо и прокладки менять, и сами вентиляторы), но отцу похуй, а я рад.
                                Ответить
      • показать все, что скрытоvanished
        Ответить
        • завтра погляжу

          p.s. пищать же скорее всего будет в любом случае, потому что не будет видеокарты?
          Ответить
          • Х.з., у меня без батарейки даже не пищал. Я вообще думал, что проц мёртвый уже.
            Ответить
            • я думал, сброс батарейки это достать её и вставить через пару минут

              ну в целом неважно, можно и то и то попробовать :)
              Ответить
          • показать все, что скрытоvanished
            Ответить
            • проц не помню)

              когда в своё время вынимал видеокарту, то комп не запускался. даже если и есть интеграшка, то вероятно она в уефи не врублена или в этом роде.
              Ответить
    • В продолжение темы о 2D на GPU.

      Оказывается, самая большая проблема 2D движков - это path'ы: шрифты, векторные карты, анимешные котодевки...

      На CPU эту проблему успешно решают с 80х годов. А вот GPU соснули. Им нужны либо значительная помощь со стороны проца (нарезка фигур на примитивы) либо извращения, которые убивают пайплайн (строим трафаретку, флашим кеш и раскрашиваем фигуру по трафаретке). И терафлопсы и тыщи ядер тут никак не помогают.
      Ответить
      • Так, и чем мы тебе можем помочь?
        Ответить
        • Переписать всё на PHP. Там нет никаких "GPU" и можно юзать GD и не париться.
          Ответить
          • и запускать на сервере, и передавать юзеру уже готовый рендер по вебсокету со скоростью 60 кадров в секунду
            Ответить
    • Перекат!

      https://govnokod.ru/27020
      https://govnokod.xyz/_27020/
      Ответить

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