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

    +1

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

    #29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
    #30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
    #31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
    #32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
    #33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
    #34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
    #35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
    #36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
    #37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
    #38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
    #39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
    #40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
    #41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
    #42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
    #43: https://govnokod.ru/26604 https://govnokod.xyz/_26604
    #44: https://govnokod.ru/26627 https://govnokod.xyz/_26627
    #45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
    #46: (vanished) https://govnokod.xyz/_26646
    #46: (vanished) https://govnokod.xyz/_26654
    #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

    Запостил: nepeKamHblu_nemyx, 25 Августа 2020

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

    • Доброй ночи.

      Этот оффтоп сгенерирован автоматически.
      Индекс оффтопов: https://index.gcode.space/.
      Зеркала Говнокода и полезные ресурсы:
      * https://govnokod.xyz/
      * https://gcode.space/
      * @GovnokodBot в «Telegram»
      Ответить
    • Ну, вроде работает.
      Ответить
      • А если кто-то перекатит вручную, то петух это учтёт?
        Ответить
        • Нет, учитываются только оффтопы, находящиеся в мозгах перекатного петуха (все они выводятся в «индексе оффтопов»). Туда они попадают либо после автоматической публикации, либо после ручной правки мозгов оператором петуха.
          Ответить
          • gost, ты дампы базы на нгк чем делаешь? pg_dump?
            Ответить
            • Да, вся обвязка «NGK» есть на «Гитхабе».
              #!/bin/bash
              LOG_FILE="$(realpath db_dump.log)"
              dump_name="ngk_$(date '+%Y%m%d_%H%M%S')"
              echo "DB dump begin at $(date '+%Y-%m-%d %H:%M:%S'), dumping to $dump_name.zip..." >> $LOG_FILE
              
              pushd db_dumps >/dev/null
              pg_dump -F t ngk > "$dump_name.dump"
              zip -q -6 "$dump_name.zip" "$dump_name.dump"
              rm -f "$dump_name.dump"
              # Remove the old dumps
              ls -tp | grep -v '/$' | tail -n +4 | xargs -I {} rm -- {}
              popd >/dev/null
              
              echo "DB dump end at $(date '+%Y-%m-%d %H:%M:%S')." >> $LOG_FILE
              echo "" >> $LOG_FILE
              Ответить
              • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                Ответить
                • Да она в прыщах не особо актуальна, имхо. Это больше для виндовых батников у которых окружение расшаренное.
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
                • ого, первый раз на моей памяти кто-то заюзал pushd и popd
                  Ответить
              • Блядь, только что заметил, что если в pwd нет папки db_dumps, то эта поебота молча удалит все (кроме трёх последних) файлы из текущей директории. Какой анскилл )))
                Ответить
                • > только что заметил

                  Заметил, когда уже удалило?
                  Ответить
                  • Какой багор )))

                    К щщастью нет, просто проснулся, проверил «НГК», вчитался в скрипт и всё понял.
                    Ответить
                    • У меня был скрипт который случайно удалял себя если обрабатывать было нечего. Был.

                      Ну в общем-то свою задачу он выполнил перед этим, заново не пришлось писать.
                      Ответить
                      • whte_rbt.obj
                        Ответить
                      • Это сообщение самоуничтожится через 4...3...2...

                        Мне кажется, ты его даже выкладывал
                        Ответить
                        • Я не мог его выложить. У меня не было бекапов. Хотя кусок по памяти - возможно.
                          Ответить
                    • Там был цикл по *.zip и basename от найденных файлов. Кто ж знал, что шелл оставляет маску как есть если ничего не нашёл.
                      Ответить
    • Схема БД перекатного петуха:
      class OfftopCategory(Base):
          __tablename__ = 'offtop_categories'
      
          id = Column(Integer, primary_key=True, autoincrement=True, index=True)
          name = Column(String, nullable=False)
          code = Column(String)
          # rww: dirty hack to shut up the type checker
          offtops: List['Offtop'] = relationship('Offtop', back_populates='category', uselist=True, order_by='asc(Offtop.index)')  # type: ignore
      
      
      class Offtop(Base):
          __tablename__ = 'offtops'
      
          id = Column(Integer, primary_key=True, autoincrement=True, index=True)
          post_id = Column(Integer, nullable=False, index=True)
          visible_num = Column(Integer, nullable=False)
          index = Column(Integer, nullable=False, index=True)
          category_id = Column(Integer, ForeignKey('offtop_categories.id'), nullable=False, index=True)
          category = relationship('OfftopCategory', back_populates='offtops')
          vanished = Column(Boolean, nullable=False, default=False)
          auto_offtop = Column(Boolean, nullable=False)
          welcome_comment_id = Column(Integer)  # 'Добрый день. Этот оффтоп был сгенерирован автоматически.'
          perekat_comment_id = Column(Integer)  # 'Перекат! https:// ...'
          comment_list_id = Column(Integer, nullable=True)
      
          PREVIOUS_OFFTOPS_LIMIT = 30  # Rough estimate to fit in 2000 characters
      
      
      class User(Base):
          __tablename__ = 'users'
      
          id = Column(Integer, primary_key=True, autoincrement=True)
          gk_id = Column(Integer, nullable=False, unique=True)
          username = Column(String, nullable=False, unique=True)
          password = Column(String, nullable=False)
          auth_cookie = Column(String)
          last_login = Column(Float)
      Ответить
      • Каждый час петух делает следующее:
        1. Для всех пользователей из users проверяет, не просрочена ли кука, если просрочена — обновляет. Последняя полученная кука используется для всех дальнейших операций.
        2. Получает количество комментариев в последних оффтопах из каждой категории:
        categories: List[OfftopCategory] = session.query(OfftopCategory).options(eagerload(OfftopCategory.offtops)).all()
        last_offtops = {cat.offtops[-1].post_id: cat.offtops[-1] for cat in categories if len(cat.offtops) > 0}
        last_offtops_info = ngk.get_posts_info(last_offtops.keys())

        3. Все переполненные оффтопы помещаются в отдельный список offtops_to_perekat:
        offtops_to_perekat: Iterable[Offtop] = [
            last_offtops[post_id]
            for post_id, info in last_offtops_info.posts.items()
            if info.comments_count >= config.OFFTOP_COMMENTS_LIMIT
        ]

        4. Для каждого оффтопа из offtops_to_perekat публикуется новый оффтоп и два комментария (перекатный и приветственный).
        Ответить
      • алхимия шоль?
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • Доделал mvp

      Показывать боюс
      Ответить
      • Давай, заливай на «Гитхаб», а мы будем показывать пальцами и смеяться!
        Ответить
        • На гитхаб вряд ли

          А ссылка вот

          https://vorec.space

          Багрепорты приветствуются
          Ответить
          • WCyQg3ItPuHsptBI
            Ответить
            • Пошла жара!
              Ответить
              • Рекомендую обернуть запрос на «NGK» в "одинарные кавычки", потому что без них поиск идёт полнотекстовый и неточный. Также попрошу учесть, что поиск на «NGK» регистронезависимый, а то могут и не учесть.
                Ответить
              • Ещё рекомендации:
                1) Ограничить частоту ручных проверок (по нажатию кнопки) до одной раз в секунду, например;
                2) Выдавать пользователю access_token (который сейчас в куках), чтобы можно было аутентифицироваться без прохождения проверки по комментарию.
                Ответить
                • Да, для проверок надо будет где-то поставить лимит, правда, пока не сильно понимаю, в каком месте и как (по ип?)

                  > Выдавать пользователю access_token (который сейчас в куках)
                  - тогда его придётся хранить в локалсторадже, а мне как-то подсознательно не хочется. Или ничего страшного не произойдёт?

                  А, кроме этого, в чём будет профит? Токен живёт неделю, часто перелогиниваться не нужно вроде
                  Ответить
                  • Лучше всего сделать тротлинг по IP, иначе скриптушок напишет скриптик, и будет тебя им ебать, а ты будешь ебать ГК, и будет грустно.
                    Ответить
                    • > а ты будешь ебать ГК
                      «NGK», а не «ГК», но не суть.
                      Ответить
                  • > в каком месте и как (по ип?)
                    По privateToken в /check, наверное. Записывать, когда с таким токеном последний раз проверяли, и если это было меньше, чем N секунд назад — отправлять 404.

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

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

                      Было бы круто такое фильтровать на уровне nginx, но я не знаю, можно ли.

                      > Нет, просто выдай его мне на руки, я смогу записать его себе в менеджер паролей
                      - так, ты его себе запишешь, а мне как надо делать? Типа будет отдельно получение токена и отдельно логин по паре юзернейм/токен?
                      Ответить
                      • Хм, думаю, лучше всего будет действительно по IP лимитировать (действительно, возможно даже через «nginx»). Так и ограничение будет, и боты не смогут засрать какого-нибудь пользователя, чтобы он не смог залогиниться.

                        > - так, ты его себе запишешь, а мне как надо делать? Типа будет отдельно получение токена и отдельно логин по паре юзернейм/токен?
                        Ну вот насколько я вижу, сейчас ты с /link выдаёшь publicTokenString и privateTokenString, а потом /check получает privateTokenString и проверяет, запощщен ли комментарий с соответствующим publicTokenString. Я предлагаю:
                        0) Сохранять результаты успешной проверки (чтобы уже проверенный privateTokenString не проверять);
                        1) После успешного логина напечатать пользователю его privateTokenString;
                        2) В дальнейшем на /#/login дать возможность ввести не ник, а сразу privateTokenString. После нажатия кнопки «Проверить» этот токен так же, как сейчас, отсылается на /check (минуя /link), в ответ пользователю ставится кука access_token.
                        3) Предусмотреть возможность удаления privateTokenString для случаев, когда его спиздили, например.
                        Ответить
                        • Тут нюанс в том, что privateTokenString генерируется однажды для конкретного запроса на /link, как и publicTokenString, то есть, он не реюзается. А private он только потому, что его не видно в UI :)))

                          И с пользователями они никак сейчас не связаны, только с запросами на линк юзернейма с гк
                          Ответить
                          • А, ну тогда можно добавить просто добавить в таблицу пользователей колонку «пароль» и не пердолиться.
                            Ответить
                            • Там есть пароль уже, я его случайным образом генерирую.

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

                          limit_req_zone $binary_remote_addr zone=voreclimit:10m rate=5/s;
                          
                          limit_req zone=voreclimit burst=5 nodelay;


                          Знатоки nginx, скажите, этого достаточно?
                          Ответить
              • Добавил IP твоего сервера в вайтлист «Cloudflare», если будешь менять — напиши на [email protected]. Без вайтлиста «Cloudflare» может начать капчу показывать или ещё как-нибудь чудить, хотя это и маловероятно.
                Ответить
          • fnGiMtgqzDcG0yil
            Ответить
          • IYAf1trmWKOlkNRw
            Ответить
          • Давай пока обосру сервер. Это же твоя VPSка?

            * ssh на 22 порту: заебут брутом
            * нет hsts preload
            * нет DNS CAA
            * TLS 1.0 и 1.1, старые шифры. В результате хуёвая оценка на SSLabs
            * нет http/2
            * нет заголовка для вечного кеша статики, хотя статика явно имеет хешевое имя
            * ошибка в JS консоли
            Ответить
            • Мне половину из того, что ты написал, придётся гуглить, но я учту, спасибо.

              > ошибка в JS консоли
              - это внутри axios вроде, пока не разбирался
              Ответить
          • > https://vorec.space/#/term/Питушня

            > Синоним "Хуйня"

            Не соглашусь
            Ответить
            • Так добавь определение
              Ответить
              • Есть идея добавить возможность указания синонимов
                Ответить
              • Кстати, gostinho, как и guest8, не смогут добавить определения, потому что это аккаунты, за которыми сидят много людей, а потому они в ЧС

                Я ж правильно помню?
                Ответить
                • gostinho за что?
                  Ответить
                • Всё верно.
                  Ответить
                • У всех *inho, ЕМНИП, пароль 123. Иньо поправит, если что не так.
                  Ответить
                • Вдогонку:
                  bopmand:123
                  vvkir:123
                  0_14sun:123
                  124_14sun:123
                  4_14sun:123
                  KPblM_HAIII:123
                  exception:carme
                  grammar-nazi:carme
                  kapmadpo4ep:carme
                  guestnho:321
                  nudop:1010
                  lev_glandau:123
                  kir_rik:govnokod
                  firefred:govnokod
                  vaceknt:govnokod.ru
                  OlegYch:govnokod.ru
                  6a9lhuct:1100
                  6bik:1100
                  AnalBoy:ololo
                  CnEPMOBOP:ololo
                  ggrr:qwerty
                  inkanus_gray:ihkanus
                  KAPABAH:1100
                  kohcojlbhblu_nemyx:nep
                  qpjli-oc:1100
                  romocekcyajluct:gomo
                  Sers:123
                  SharpRazor:qwerty
                  zhigolo:zhigala
                  cmepmop:str
                  Ответить
                • По-моему лучше пока убрать ЧС и действовать по обстановке. Насрут - удалишь и внесёшь.
                  Ответить
                  • Ну, кстати, или так, да. Не то чтобы на ГК было так сложно зарегать новую файку…
                    Ответить
                    • Вот именно.
                      Ответить
                    • Ну можно кстати стаж файки проверять. Типа если зареган меньше месяца и нет комментов - иди нахуй.
                      Ответить
                      • Не чтобы на ГК было так сложно заранее нарегать тысячу-другую фаек…
                        Ответить
                        • Если заранее не нарегал - влом будет месяц ждать.
                          Ответить
                  • У меня руки пока не дошли сделать админку.

                    Думаю, как запилю, так и уберу.

                    С раковых аккаунтов пока всё равно никто не сидит
                    Ответить
                    • > У меня руки пока не дошли сделать админку.
                      Действуй по методу Страйко: DELETE FROM records WHERE records.user_name = 'nacpaJl';
                      Ответить
                      • Хорошо, что ef вроде сам везде добавляет on delete cascade )

                        Кстати, прямые ссылки работают, можно использовать в разговоре
                        https://vorec.space/#/term/Скриптушня

                        В ссылках в названиях также могут содержаться пробелы, пока не определил степень потенциального багра, чтобы решить, переделывать или нет
                        Ответить
                        • Плюсик въебать всегда можно вместо пробела. Даже если руками писать.
                          Ответить
                          • У меня плюсик сейчас работать не будет (
                            Ответить
          • Какой-то багор с пейджером, при 20 записях (а это одна полная страница) показывает две страницы.

            Что-то перемудрил.
            Ответить
            • Ошибка на 1?)
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Петрухин Алексей Владимирович, тел. 24-81-08. Позвоните, расскажете, как результаты. Спросите его о хвостиках в массивах...

                  https://www.gamedev.ru/flame/forum/?id=122958
                  Ответить
                  • Ничего не понял, переведи на «ГК».

                    Где основные срачи про эти хвостики проходили?
                    Ответить
                    • Короче, если тебе нужен массив на N, ты делаешь массив на N+1, чтобы если ты случайно объебался, то ничего бы не сломалось.
                      Ответить
                      • Да это я понял, мне хочется срачей почитать. Тема, которую CHayT кинул, слишком остывшая. Видимо, к тому времени уже нахрюкались все.
                        Ответить
                        • А ты напиши там что-нить, и тема запустица.

                          Например: "ну строки сишные мы же терминируем нулом, почему не терминировать им массив?"

                          Кстати, в субъективной сишечке (если я не путаю) NSArray терминировался нилом.. но это не точно
                          Ответить
                          • По этому я за Нил
                            Ответить
                            • По берегу Нила
                              Шли три крокодила:
                              Данила, Пахом и Федот.
                              Ответить
                          • Ну хвостики - это хорошая тема. Можно даже пирфоманс поднять убрав лишние проверки.
                            Ответить
                          • >>> Тема в архиве.
                            :-(.

                            > почему не терминировать им массив?
                            Кстати, динамический массив, терминированный нулевым значением — это довольно-таки распространённая ебола в «WinAPI». Реальный пример:
                            typedef struct _FILE_DIRECTORY_INFORMATION {
                              ULONG         NextEntryOffset;
                              ULONG         FileIndex;
                              LARGE_INTEGER CreationTime;
                              LARGE_INTEGER LastAccessTime;
                              LARGE_INTEGER LastWriteTime;
                              LARGE_INTEGER ChangeTime;
                              LARGE_INTEGER EndOfFile;
                              LARGE_INTEGER AllocationSize;
                              ULONG         FileAttributes;
                              ULONG         FileNameLength;
                              WCHAR         FileName[1];
                            } FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;

                            В конце этой структурки приделывается строка длины FileNameLength, а &FileName[0] служит указателем на её начало.

                            UPD: Тьфу, задумался, перепутал, это не то. Реальный реальный пример забыл.
                            Ответить
                          • dave
                            Каждый раз выделяя память массиву мы должны пожертвовать немного
                            места для духов, чтобы они не гневались и не ломали программу.
                            Ответить
                          • QByteArray всегда* к внутреннему преставлению добавляет нолик на случай, если мы захотим взять сишную строку.

                            *если не подсунуть свои данные в fromRawData
                            Ответить
              • Угу, арифметику надо повторять, обратно в третий класс
                Ответить
          • Словарик
            http://govnokod.ru/26478
            Ответить
          • >https://vorec.space

            Нужно было отдельным тредом сделать тему.

            А то я заебался искать.

            Добавьте пужулуйста статью про Глето́ны:
            https://govnokod.ru/17843#comment268335
            Ответить
            • Красота.

              Щас добавим

              А ты сам чего не?)
              Ответить
            • https://vorec.space/#/term?v=Глетоны
              Ответить
              • zgohK3ZmV56b13Hf
                Ответить
                • а зачем ты добавляешь ссылки отдельным определением?

                  там же можно оставить ссылку на пример
                  Ответить
                  • В пример я хуйню сделал а отредачить не получается. По этому хуйнул в определение
                    Ответить
                    • ок

                      я запишу фича-реквест: редактирование примеров)
                      Ответить
    • показать все, что скрытоvanished
      Ответить
    • О релокации и об удалёнке:
      https://pbs.twimg.com/media/EgWdQJfWsAAhuAf.jpg
      Ответить
    • О сложностях работы с устройствами ввода:
      https://pbs.twimg.com/media/EglPIABWsAcwq_o.jpg
      Ответить
    • А о чём этот сайт?
      Ответить
    • Нажал «Ctrl+Y» в «Идее», она меня спросила, что я имею в виду: «Redo» или «Delete line». Вот это заебись охуенно, одобряю!
      Ответить
      • небось плагин и ли кимап стоит какой-нить типа emacs? Так то из коробки это реду вроде
        Ответить
    • Купил я себе беспроводную клавиатуру и заметил что после простоя первое нажатие клавиши не регистрируется, зато раскладку клавиатуры на ноутбуке имеет точно такую же
      А за какие клавиатуры вы? Мембранные/механические? проводные/беспроводные?
      Ответить
      • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

        http://www.rapoo.com/product/461
        Ответить
        • Ебать, я себе тоже rapoo купил, но попроще
          Ответить
        • > в слип уходит

          Да все равно бага это. Микроконтроллеры из слипа почти мгновенно выходят, ты не успеешь клавишу отпустить даже если у него тактовый генератор был отключен. USB разбудить тоже миллисекунды.

          Ленивые китайцы прошивку писали, вот и теряет нажатия.
          Ответить
          • а у тебя беспроводная клавиатура? Какую бы ты купил?
            Ответить
            • > беспроводная клавиатура

              Зачем? Зачем? Только провода, только хардкор. Я даже беспроводные наушники выбирал чтобы с проводом работать могли.

              > какую бы ты купил

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

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

                  Надень их задом наперёд. Если баланс перевернётся - значит с техникой. Если нет - значит пора к врачу уши промывать.
                  Ответить
                  • А, если с техникой, то это считается браком и гарантийным случаем?
                    Ответить
                    • да
                      Ответить
                    • Для беспроводных это 100% брак. Для проводных попробуй в другой разъём, может не до конца воткнулись и контакты неправильно соединились.

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

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

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
        • ну естественно она в слип уходит. у меня беспроводной комплект от rapoo третий год, краска начала стираться, а в остальном очень мжвячне.

          http://www.rapoo.com/product/461
          Ответить
      • Лол блдя я тоже позавчера купил клаву, такую:
        https://www.dns-shop.ru/product/28e1dc31f1c63330/klaviatura-a4tech-bloody-b820r/

        до этого стояла какая-то китайская sven за 300р
        Ответить
    • Блядь, для недавнего срача установил свежую «Идею» и начал копаться в «Котлине»… Теперь не могу остановиться. Дока у «Коко» охуенная.
      Ответить
    • https://pbs.twimg.com/media/EgvMuXTXYAAd7pr?format=jpg&name=medium
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Я рисовал лабиринты.
        Ответить
        • Я рисовал уровни типа как в принце персии, и еще такие игры, где надо кубик кидать и ходить
          Ответить
          • { Вы случайно не middle game developer ? }
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • фу блять, опять эта ма-те-ма-ти-ка
                Ответить
              • Подтверждаю. И хотя физика для меня довольно близка, от 3D-графики начинает болеть голова: постоянные прыжки из одной СК в другую (в особо тяжёлых случаях — из декартовой в полярную, из полярной в цилиндрическую, из цилиндрической обратно в декартову и всё на одной строке рассуждений) дезориентируют и утомляют.
                Ответить
                • Переход из полярной в декартову — фигня. Есть ещё углы поворота (Эйлера), описывающие произвольное вращение тела в 3D (у ракетчиков и у самолётчиков эти углы называются углом крена, углом тангажа и углом рыскания). А в нелинейной механике твёрдого деформируемого тела всё считают в деформированных косоугольных координатах, там ещё приходится переходить от материальных координат к неподвижным и обратно (см. подходы Эйлера и Лагранжа).
                  Ответить
                  • > углы эйлера

                    Забыл как страшный сон когда разобрался с кватернионами. Эти углы очень неудобно кобенировать.
                    Ответить
                    • > углы эйлера
                      Блядь, синус на косинус на минус свинус на косинус плюс косинус на синус на косинус на свинус…
                      Ответить
                      • Именно поэтому я за кватернионы.

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

                А на самом деле будешь пилить UI, обвес вокруг готового двигла да скрипты для NPC.

                З.Ы. Или вообще хуйню под фейсбук да мобилы.
                Ответить
      • my dick / your dick
        Ответить
      • Помню, когда был мелким пиздюком (лет четыре-пять, кажется), развлекался тем, что переписывал старые газеты. И вот что из этого теперь получилось…
        Ответить
        • из тебя получился бы хороший джава энтерпрайз программист
          Ответить
      • Я карты из марио в тетрадку зарисовывал.
        Ответить
    • https://habr.com/post/517228/
      > Минкомсвязь предложила обязать дата-центры передавать данные о своих мощностях в Роскомнадзор
      > Минкомсвязь планирует обязать операторов центров обработки данных (ЦОД) предоставлять в Роскомнадзор текущую техническую информацию об эксплуатируемых системах, включая количестве стойко-мест, параметрах электроснабжения, уровня загрузки коммутационного оборудования, доступные и используемые вычислительные мощности, параметры систем хранения данных (СХД), виды предоставляемых услуг и тарифов.

      > le1ic
      > Вам же наднесь обещали второй пакет мер поддержки IT бизнеса. Получите, распишитесь )
      Ответить
    • Блядь, кто вообще придумал эту поеботу с «AppData»? %AppData%\..\Local, %AppData%\..\LocalLow, %AppData%\..\Roaming… Говно.
      Ответить
      • Кто придумал недобраузеры ставить не в «Program Files», а в %AppData%\..\Local?
        Ответить
        • Это чтобы лучше слышать тебя браузер могла поставить даже домохозяйка без административного аккаунта. Но да, говнище ёбанное.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • В том, что если ты не админ на данной тачке, то нахуй тебе что-то ставить?
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Ну если ты ему доверяешь проги ставить, то зачем ты ему ограниченную учётку сделал?
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • > Что такое "проги ставить"?

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

                        Серьзно, что бы ты предложил в ситуации с ребенком.
                        Допустим, у меня стоят все обновления и антивирь, и большинство вирусов мне не страшно (меня никто не хочет сломать спецаиально итд).

                        И есть ребенок/гость/хуйзнаеткто.
                        Я не могу давать ему админские права, иначе он случайно сломает систему или зайдет в мою учетку (или прочитает оттуда файлы).

                        Однако, я не хочу каждые 15 минут бегать к нему, когда он захочет запустить очередную игру.

                        Кажется, что установка говна в домашнюю папку -- самое верное решение, да еще и удобное тем, что я могу потом ёбнуть профиль вместе со всем говном

                        Что не так?
                        Ответить
                        • > плохие новости, чувак
                          Именно. И да, именно поэтому я за «SRP» и «AppLocker».

                          > Я не могу давать ему админские права, иначе он случайно сломает систему или зайдет в мою учетку (или прочитает оттуда файлы).
                          У меня для тебя тоже плохие новости: если ребёнок/гость/хуйзнаеткто может запускать на твоей системе произвольные исполняемые файлы — у него по факту уже есть максимальные права. 0day «local privileges escalation» на винде появляются чуть ли не каждый месяц. Свежачок, например: https://www.helpnetsecurity.com/2020/08/07/zero-days-windows-print-spooler/. Но это бы не было так печально, если бы не тот факт, что практически каждая установленная программа повышает риски таких уязвимостей в разы. Примечателен пример «Стима», который несколько месяцев (!) отказывался патчить повышение до NT AUTHORITY\SYSTEM: https://habr.com/post/462479/.
                          Так что увы, де-факто любой виндовый аккаунт равен локальному администратору.
                          Ответить
                          • Я же написал
                            >меня никто не хочет сломать спецаиально итд

                            Если у меня на компе захочет посидеть J Random Hacker, то я ему виртуалку подниму, и за свой комп не пущу.

                            В прыщеядре тоже бывают дыры, но никто не говорит же "давайте всем рута, потому что даже не рут всё равно сломает"
                            Ответить
                            • А ты так уверен, что очередной XXXGovnoCryptXXX не попытается в автоматическом режиме проэксплуатировать какое-нибудь подобное говно?
                              Ответить
                              • откуда у меня GovnoCrypt дома?:)

                                Есть разные случаи"безопасности".
                                В одном случае мы доверяем ОС, и считаем, что она не ломается, потому что пользуется ею ребенок, она не торчит в наружную сеть, итд.

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

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

                                Во втором случае вообще нужно делать отдельный инстанс ОС.
                                Я бы хакера не пустил по ssh под обычным пользователем даже на openbsd.

                                Но я говорю про первый случай
                                Ответить
                                • > откуда у меня GovnoCrypt дома?:)
                                  А у тебя все дети приучены не брать конфетку у чужих людей скачивать приложения исключительно из Надёжных Источников и никогда не попадают на говнодорвеи по запросам «скачать дока2 бесплатно»?

                                  Вон, Борманд умную вещь сказал:
                                  >>> Рандомное говно в домашней папке слишком много прав имеет, на самом деле. К примеру, оно может шариться по твоей локалке. Может писать на флешки. Может через какую-нибудь дыру в сервисах, коих тысячи, повысить себе привилегии до админских. Куча софта тупо не готова к атакам изнутри.

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

                                    Они его сксачают, запустят, и оно сломает винду через " дыру в сервисах, коих тысячи"
                                    Ответить
                                    • > Они его сксачают, запустят
                                      И получат красивое окошко «обратитесь к администратору», потому что из «Загрузок» ничего запускать нельзя.

                                      Ну да, это потребует от тебя дополнительной работы. Но если (абстрактному) тебе важны данные на общей пеке — это, как ни печально, необходимое зло.

                                      Стоит отметить, что конкретно тебя я ни к чему не призываю, потому что каждый сам должен оценивать ценность своих данных и сколько он готов вложить труда в их защиту.
                                      Ответить
                                      • Я могу обеспечить безопасность на "B" разрешив пользоватлю сидеть от пользовтаеля (не админа) и запускать что угодно.

                                        А могу обечпечить на B+ не разрешив ему запускать ничего, кроме спец белого списка

                                        А могу обеспечить "A" собрав отдельный комп внутри отдельного VLAN без доступа к локалке
                                        Ответить
                                        • > отдельного VLAN без доступа к локалке

                                          Кстати многие роутеры сейчас умеют в гостевой wifi, поэтому с этим проблем особо нет, любая домохозяйка справится. Ну и физический порт тоже можно закинуть в эту гостевую сеть вроде.
                                          Ответить
                                        • > отдельный комп внутри отдельного VLAN без доступа к локалке
                                          Именно поэтому я за «Air Gap».

                                          Так вот, если ты будешь настраивать на «B» — у тебя всё будет заебись. А вот если тебе понадобится обеспечивать «B+» — программы, пишущие себя в аппдату, будут тебе активно и сильно мешать. И это хуёво.
                                          Ответить
                            • > "давайте всем рута, потому что даже не рут всё равно сломает"
                              А я и не предлагал всем раздавать админа. Наоборот: если тебя действительно волнует безопасность ПК — стоит грамотно настроить «SRP» и «AppLocker».

                              Ну а всякое говно, которое ставится в аппдаты, этому активно мешает. И это хуёво*.

                              * Попрошу заметить, что «SRP» и «AppLocker» — это больше корпоративные инструменты, поэтому не надо писать, что, мол, они нинужны.
                              Ответить
                              • Так я начал с того, что давать пользоватлю ставить себе говно в домашнюю папку без админских прав это ХОРОШО


                                Это не понижает безопасность (потому что он всё равно может запустить говно с рабочего стола)
                                Ответить
                                • Нет. Это понижает безопасность потому, что ставящееся в аппдаты говно мешает правильно настраивать «SRP» там, где это нужно. Поэтому это хуёво.
                                  Ответить
                                  • >настраивать «SRP»
                                    Напоминаю, что речь о домашнем компе.

                                    Если мы запрещаем вообще запуск любых .exe кроме тех, что уже стоят в "program files", куда записи нету, то тогда конечно пользователю не надо давать никаких прав на установку.

                                    Но обычно это не так. Обычно у него есть права запустить kitty.scr.exe с рабочего стола. А значит позволив ему установить что-то в AppData мы не делаем хуже
                                    Ответить
                                    • > А значит позволив ему установить что-то в AppData мы не делаем хуже
                                      Я тебе про архитектуру — ты мне про конкретного пользователя.

                                      Вот у меня свой комп есть, я на нём единственный пользователь и творю что хочу. У меня все права есть. Следует ли из этого, что управление правами нинужно вообще?
                                      Ответить
                                      • >Я тебе про архитектуру — ты мне про конкретного пользователя.
                                        Я не очень понял эту фразу.

                                        >Следует ли из этого, что управление правами нинужно вообще?
                                        Я считаю, что нужно. Я не сижу под рутом на прыщах, мне самому спокойнее и удобнее срать в домашнюю папку.

                                        И на винде я бы тоже не сидел под админом, если бы там было нормальное sudo
                                        Ответить
                                        • > sudo

                                          Эм, кстати а в чём вообще суть этого фетиша с "sudo команда" на каждый чих? Бесполезные буковки и вбивания пароля, имхо.

                                          Либо сидишь под юзером либо sudo su под админа.
                                          Ответить
                                          • во-первых пароль запоминается, его не нужно каждый раз вводить
                                            во-вторых можно в одном терминале su
                                            и наконец есть мерзкий pkxec

                                            На пинде этого нет
                                            Если ты не админ, то ты вынужден будешь перелогиниваться, или юзать пиздопротивный runas
                                            Ответить
                                            • Дык ты сиди под админом с uac. Без физического доступа uac не обойти вроде. По сути то же sudo, можно даже запрос пароля включить если тебе мало просто кнопки "ок".
                                              Ответить
                                              • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                а вынуждены они были потому что половина программ срала в "program files", и еще потому, что не было нормального sudo.

                                                Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                Ответить
                                                • А что там ебстись то? Тыкай в инф или что там у тебя, uac спросит пароль админа (по сути su). То же самое со сменой ip через гуйню. Сосноль с правами админа тоже запускается в пару кликов и ввод пароля.
                                                  Ответить
                                                  • показать все, что скрытоvanished
                                                    Ответить
                                                    • > uacа у тебя не будет

                                                      Проверял?
                                                      Ответить
                                                      • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                        Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                          • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                            Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                        • Проверил тебе в HKEY_LOCAL_MACHINE\Software\WOW6432Node, проверь
                                                          Ответить
                                                    • Ну вот специально для тебя ребутнулся в винду и создал ограниченного юзера.

                                                      Run as administrator на cmd и т.п. спрашивает пароль админской учетки и потом всё прекрасно работает. Свойства сети менять тоже можно без проблем, если админский пароль знаешь.
                                                      Ответить
                                                • Даже если ты залогинился админом, в «Windows» при включенном «UAC» этого может оказаться мало. Может понадобиться запустить «cmd» с повышенными («elevated») правами, например.
                                                  Ответить
                                                  • Господи, "запуск от имени админа" это же и есть элевейшен.

                                                    Просто для обычного юзера запрос элевейшена требует пароля админа. А для админа - просто кнопку ок по-умолчанию.

                                                    И все кнопки в панели управления вроде точно так же работают.
                                                    Ответить
                                                    • Ох уж этот «Майкрософт» и его фирменный перевод…
                                                      Ответить
                                                    • Я так понимаю, свинья хочет сказать, что некоторые программы/скрипты могут не явно требовать elevated прав (в манифесте или через «runas»), а просто отказываться запускаться в неэлевированном окружении. Например, если ты натравишь CreateProcess() из не-elevated приложения на исполняемый файл с «level="highestAvailable"», то получишь ERROR_ELEVATION_REQUIRED.
                                                      Ответить
                                                      • Ну highestAvailable это всё-таки какой-то извращённый софт, который частично может работать под юзером. Типа окошек в панели управления, где можно посмотреть но нельзя поменять. Такие проги обычно умеют uac по ходу работы пинать когда он им реально понадобится.
                                                        Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                                • uac это мерзкий кастыль, сделанный ровно потому, что все вынуждены были сидеть под админом

                                                  а вынуждены они были потому что половина программ срала в program files, и еще потому, что не было нормального sudo.

                                                  Ну вот я сижу под юзером, и захотелось мне обновить драйвер. Или поменять IP. И пиздец: мне проще залогиниться второй раз, чем ебстись с runas
                                                  Ответить
                                          • Я где-то слышал, что это чтобы ты всегда видел, что вводимая команда опасна и может применить к тебе патч Бармина (не то чтобы лайт-версия патча Бармина на ~ была так уж менее эффективной…). На сколько это помогает — судить не берусь.
                                            Ответить
                                            • Кто-то реально читает команду потому что sudo мешает её исполнить сразу? Да и кеш пароля всю эту пользу обесценивает.

                                              Это как сообщения в mc/far, которые никто не читает и на автомате жмёт энтер.
                                              Ответить
                                              • > Кто-то реально читает команду потому что sudo мешает её исполнить сразу?
                                                Не, типа ты видишь (или, ещё лучше, вручную вводишь) впереди команды слово «sudo» и понимаешь, что дальше будет опасно. Ну типа как значок «Не влезай, убьёт».

                                                > Это как сообщения в mc/far, которые никто не читает и на автомате жмёт энтер.
                                                Эх, вспоминаю, как я не прочитал сообщения «apt» и остался на системе с удалённым libc6…
                                                Ответить
                                                • > видишь

                                                  У меня в рутовом профиле был красный mc и красный root в приглашении ко вводу. Вот их я реально видел.
                                                  Ответить
                                                  • Ладно, похуй.

                                                    Ну я за что купил — за то продаю. Сам-то я под рутом обычно сижу :-).
                                                    Ответить
                                                    • Не ну я под рутом сижу только если реально надо. Но с sudo в каждой сраной команде я никогда не пердолюсь.
                                                      Ответить
                                                      • Подтверждаю. Когда перешёл на «публичные ключи» — вообще перестал пароли вводить, держу в «WinSCP» две вкладки: рута и обычного юзера, когда надо что-то поадминить — подключаюсь к первой, когда просто логи проверить — ко второй.
                                                        Ответить
                                                • ну так пользовался бы дальше семеркой, в чем проблема?
                                                  Ответить
                        • Да забей, это просто режим параноика.

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

                          Я бы просто отдельный комп собрал ему. И пусть сам его чинит, если какое-нибудь говно скачает. Все права есть.
                          Ответить
                          • Да, отдельный инстанс ОС это более безопасно, но мы говорим про общую ОС.
                            Ответить
                    • «Поставить» подразумевает засирание реестра всяким говном.

                      Существуют «портативные программы», которые не срут в реестр.
                      Ответить
                      • так в современных виндах у меня есть своя веточка реестра, и я туда сру
                        мне не нужны для этого админские права
                        Ответить
            • > В чем гавнище?
              1. В неконсистентности. Одна параша стоит в «Program Files», другая — в «Program Files (x86)», третья — в «%AppData%», четвёртая — в «%AppData%\..\Local».
              2. В безопасности: в общем и целом, исполняемые файлы в папках, в которые юзер может записывать данные, — говнище. Я не так давно в обсуждении «SRP» за это пояснял.
              Ответить
              • > В неконсистентности.
                Прыщи очень неконсистенты: одни настройки баша лежат в /etc/profile, другие в ~/.bash_profile

                >исполняемые файлы в папках, в которые юзер может записывать данные, — говнище
                А как ты предлагаешь ставить программы?
                Звать админа каждый раз?
                Ответить
                • > Прыщи очень неконсистенты: одни настройки баша лежат в /etc/profile, другие в ~/.bash_profile
                  Ну и чо, теперь надо брать всё говно из прыщей? Прыщавое говно не становится неговном просто потому, что так сделали в прыщах.

                  > А как ты предлагаешь ставить программы?
                  > Звать админа каждый раз?
                  В каком сценарии? У меня вот личный комп есть, я сам себе админ.
                  Ответить
                  • >Ну и чо, теперь надо брать всё говно из прыщей?
                    То есть наличие домашней папки ты считаешь говном?

                    >В каком сценарии?
                    Я жеж описал же: есть семейный комп, на него заходят гости и дети, например.
                    Ответить
                    • > То есть наличие домашней папки ты считаешь говном?
                      Домашней папки, в которой находятся исключительно конфиги и неисполняемые данные? Конечно нет.

                      > Я жеж описал же: есть семейный комп, на него заходят гости и дети, например.
                      Тогда нужно смотреть, какие на этом компе есть данные и насколько они ценны. Если там только игры да кинцо — я бы всё оставил как есть, с антивирусом и стандартными пользовательскими аккаунтами без ограничений.
                      А вот если в твоём акке лежат условные (!) ключи для доступа к прод-серверу «Гугла», то в таком случае я бы рекомендовал грамотно настроенный «SRP» и запрет на запуск любых скачанных исполняемых файлов.
                      Ответить
                      • Окей, берем вариант с кинцом (я бы не стал серьезные секреты харнить на компе, к которому у всех доступ есть).

                        И вот ты предлагаешь
                        >с антивирусом и стандартными пользовательскими аккаунтами без ограничений.
                        То есть ровно то, с чего мы начали: ребенок или гость сидит под пользователем, ставит себе игры в домашнюю папку, и не может сломать мой аккаунт

                        Если ко мне в гости придет хакер, то он взломает эту систему конечно, но они ко мне не ходят
                        Ответить
                        • В такой ситуации у тебя всегда будет ненулевой шанс того, что очередной скачанный ребёнком красивая-картинка.jpeg.exe таки окажется достаточно умён для того, чтобы проэксплуатировать очередной зиродэй и наебнуть тебе всю систему. Или там у гостя окажется флешка с хитрым червиём.
                          Конечно, если ты рагулярно делаешь бэкапы на изолированную систему и не хранишь на общем ПК важных данных, то на этот шанс можно спокойно забить.
                          Ответить
              • /lib
                /lib/i386-linux-gnu
                /lib/x86_64-linux-gnu
                /lib32
                /lib64
                /libx32
                /usr/lib
                /usr/lib/i386-linux-gnu
                /usr/lib/x86_64-linux-gnu
                /usr/lib32
                /usr/libx32
                Ответить
      • Ну local/roaming это остатки идеи о юзерах, которые садятся за рандомную тачку и там работают.
        Ответить
        • Я бы даже сказал «ошмётки».

          Меня просто заебало постоянно искать, куда очередное говно положило свои говноконфиги и говноданные: в «Local», в «Roaming», в «Документы», в «%userprofile%», в «ProgramData», в «Program Files» (привет, «Steam»!) или ещё куда-нибудь. Ёбанная неконсистентность.
          Ответить
        • показать все, что скрытоvanished
          Ответить
          • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
            Ответить
            • да как раз в тот -- в домашнюю папку
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
            • Это всё потому что проги криво написаны и не в тот каталог сохраняют.
              Ответить
          • Это чтобы от работы отмазываться? Типа я простаиваю, потому что у меня профиль копируется?
            Ответить
            • Во многих говноконторках бывает так, что планктон включил комп с утра, и ушел пить кофе, пока он грузится.
              Ответить
    • class Trie {
          private val prefixes: MutableMap<Char, Trie> = LinkedHashMap()
          private var elementExists = false
      
          private fun createTrieFor(c: Char): Trie =
              this.prefixes.getOrElse(c, {
                  val newTrie = Trie()
                  this.prefixes[c] = newTrie
                  return newTrie  // Именно поэтому я за «return this.prefixes[c] = Trie()»
              })
      
          private fun findTrie(str: String): Trie? {
              var curTrie: Trie? = this
              str.forEach { curTrie = curTrie?.prefixes?.get(it) ?: [email protected] null }
              return curTrie
          }
      
          fun add(str: String) {
              var curTrie = this
              str.forEach { curTrie = curTrie.createTrieFor(it) }
              curTrie.elementExists = true
          }
      
          fun contains(str: String) =
              this.findTrie(str)?.elementExists ?: false
      
          fun delete(str: String) {
              this.findTrie(str)?.elementExists = false
          }
      }
      
      fun main() {
          val trie = Trie()
          trie.add("Hello")
          trie.add("World")
          println(trie.contains("Hello"))     // true
          trie.delete("World")
          println(trie.contains("World"))     // false
          trie.delete("non-existent")
          println(trie.contains("GoodBye"))   // false
          println(trie.contains(""))          // false
          trie.add("World")
          println(trie.contains("World"))     // true
      }

      Начал кукарекать. Ко-ко-котухи, поясните за идиоматичность, пожалуйста.
      Ответить
      • Автомат?
        Ответить
      • показать все, что скрытоvanished
        Ответить
        • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

          > тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
          Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

          > и что нулл сейфити работает
          Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
          Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
          • Спасибо, getOrPut() почему-то не заметил и долго удивлялся отсутствию аналога «std::map::try_emplace».

            тут, как мне кажется, императивщина понятнее функциональщины, но это не точно
            Пожалуй, да. Я изначально там обычный цикл с «break» и написал, но в add() очень уж красиво получилось впилить forEach, решил последовать старому совету про то, что когда в руке молоток, всё вокруг кажется гвоздями.

            и что нулл сейфити работает
            Угу, смарткасты мне понравились (их ещё «Идея» зелёненьким подсвечивает, круто).
            Ответить
    • https://sun9-29.userapi.com/crffTnEBfY8bcsE7xhymzpnVYdtHR66odgl-pg/bhAA_wK9Kek.jpg
      Ответить
      • Именно поэтому я против «фреймворков».
        Ответить
      • это жаба и сраный эпигон её пых

        Кстати, "реально нужный код" скорее всего выглядит так

        public interface AbstractManagerFactoryAdapterProvider<T, R> {
            T getAbstractFactoryForManager(R manager);
        }
        Ответить
    • > Два больших питона пробили потолок на кухне у австралийца
      > Житель Брисбена вернулся домой и заметил огромную дыру в потолке. Практически сразу он обнаружил и виновников разрухи: на полу свернулись два ромбических австралийских питона, сообщает CNN.
      Ответить
    • https://habr.com/ru/news/t/468743/#comment_20670507
      Ответить
    • Пишут, что женщин выдумал Карл Линней
      https://pbs.twimg.com/media/Eg2tQ15WAAMY-Er?format=png&name=900x900

      Мне это не очень понятно: а до него одни мужики только были?

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

      Страйко, у тебя там всё хорошо? Напор, может, снизить?
      Ответить
      • А вдруг Страйкер продал говнокод мейл.ру
        Ответить
      • > Страйко, у тебя там всё хорошо?

        Напиши мне в #1
        Ответить
      • Ну и похуй. Ты же на 404 проверяешь?
        Ответить
        • Нет, не похуй… А вдруг из-за меня ГК ляжет?

          Да, проверяю.
          def check_vanished(session: requests.Session, post_id: int) -> VanishCheckResult:
              try:
                  r = session.get(f'http://govnokod.ru/{post_id}', params={'format': 'ajax'}, timeout=config.HTTP_TIMEOUT)
              except requests.RequestException:
                  L.exception(f'Exception while checking {post_id}:')
                  return VanishCheckResult.CANNOT_CHECK
              if r.status_code == 200:
                  return VanishCheckResult.NOT_VANISHED
              elif r.status_code == 404:
                  return VanishCheckResult.VANISHED
              else:
                  return VanishCheckResult.CANNOT_CHECK  # 500, etc
          Ответить
          • Зачем тебе столько кода?
            def check_vanished(session, post_id):
                try:
                    r = session.get(f'http://govnokod.ru/{post_id}', params={'format': 'ajax'}, timeout=config.HTTP_TIMEOUT)
                    return r.status_code == 404
                except:
                    L.exception(f'Exception while checking {post_id}:')
                    return False
            Ответить
            • Привычка возвращать подробные ошибки.
              Ответить
      • Ладно, похуй, грузить оффтопы буду раз в 15 секунд, а целиком на ваниш проверять раз в 4 часа. Не то чтобы оффтопы ванишились так часто…
        Ответить
        • Нет, не похуй. Что мы будем 4 часа делать? Хрюкать?
          Ответить
        • Проверять часто имеет смысл только последний оффтоп (от которого зависит перекатывать ли). Остальные можно реже.
          Ответить
          • Точно, спасибо. Завтра перепишем.
            Ответить
    • Блядь, какое же это ваше «Systemd» говно. Беру ман: https://www.freedesktop.org/software/systemd/man/systemd-analyze.html#; читаю:
      Example 11. Show leap days in the near future
      
      $ systemd-analyze calendar --iterations=5 '*-2-29 0:0:0'
        Original form: *-2-29 0:0:0
      Normalized form: *-02-29 00:00:00
          Next elapse: Sat 2020-02-29 00:00:00 UTC
             From now: 11 months 15 days left
             Iter. #2: Thu 2024-02-29 00:00:00 UTC
             From now: 4 years 11 months left
             Iter. #3: Tue 2028-02-29 00:00:00 UTC
             From now: 8 years 11 months left
             Iter. #4: Sun 2032-02-29 00:00:00 UTC
             From now: 12 years 11 months left
             Iter. #5: Fri 2036-02-29 00:00:00 UTC
             From now: 16 years 11 months left

      Проверяю:
      [email protected]:~# systemd-analyze calendar --iterations=5 '*-2-29 0:0:0'
      systemd-analyze: unrecognized option '--iterations=5'


      Охуеть, блядь.
      Ответить
      • так другая версия же небось.

        софт нужно выпускать каждые 2 недели, и менять его итерфейс без обратной совместимости
        Добро пожаловать в 2020, чувак

        Зачем тебе аналлайз? Медленно грузица?

        Именно по этому я за последователюную загрузку как сами знаете где
        Ответить
      • Хм, а почему оно раз в 4 года срабатывает? Звезда же вместо года, должно каждый...
        Ответить
    • https://sun9-60.userapi.com/EayNXFjUmfza-Z1ELPMNNJ2eVz7eOBuENzey1A/pOWkEZK2eUE.jpg
      Ответить
    • https://habr.com/ru/company/postuf/blog/517214/
      Ответить
      • #ДуровДно
        Ответить
      • показать все, что скрытоvanished
        Ответить
      • И сиди потом на бутылке, подбирай пароль на скрытые аккаунты, которых у тебя нет. Тут та же проблема, что с трукриптом. Всё это работает только в цивилизованных странах.
        Ответить
        • Тебя будут пытать с бутылкой в жопе, чтобы ты ввёл пароль на скрытый акк, которого нет.

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

          Кстати, редкие проблески разума в комментариях малолетние дебилы адепты «Диджитал Резистанс» (это которые копротивлялись блокировке «Телеги» путём пускания из окон бумажных самолётиков) нещадно минусуют:
          zenkov –6
          > А будет вынужден, потому что его пытают, его шантажируют, на него давят.
          
          Если у вас ценная информация, не храните её на смартфоне и не знайте наизусть (в полной мере).
          Всё остальное это игры в шпионов и баловство. Ну и пользоваться проприетарным сервисом беглого
          российского нувориша получающего средства от российской и арабской олигархии, такой себе вариант
          для хранения данных из-за которых вас могут пытать. Максимум подходит договориться где бить мусоров,
          да и то опыт гонконгский показывает, что ну так се, если мусор внутри ячейки.
          Ответить
          • Выход на "митинги" без чёткого представления, что ты там будешь делать и как будешь спасать свою жопу или жопу товарищей в случае чего, в принципе есть игра в шпионов.

            Какие "революции", такие и "революционеры"
            Ответить
            • > игра в шпионов
              Игра в «бутылочку».

              https://ru.wikipedia.org/wiki/Бутылочка
              >>> «Буты́лочка» — игра для преимущественно подростковой или молодёжной компании.
              Ответить
              • Да, на фотке прям преимущественно подростковая или молодёжная компания изображена.
                Ответить
                • Я такое целовать не буду!
                  Ответить
                  • Даже после бутылочки-другой?
                    Ответить
                    • Хорошая причина отказаться от употребления бутылочек в общем-то
                      Ответить
                      • Кстати, а что будет если бутылочка на мужика укажет?
                        Ответить
                        • Не знаю.

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

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

                          >>> на которого укажет горлышко бутылки (или ближайшее лицо противоположного пола)
                          Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
                  • Я такое целовать не буду!
                    Ответить
          • > не знайте наизусть

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

        Все эти попытки добавить в «Телегу» пятое колесо второе дно выглядят как приделывание нанотинановой дужки к старому китайскому сторублёвому навесному замку.
        Ответить
      • Ага, на клиенте дополнительные учётки будут замаскированы, а Дуров сольёт всю инфу на стороне сервера.
        Ответить
    • #ifdef __CUDACC__
      _NODISCARD _To _Bit_cast(const _From& _Val) noexcept {
          _To _To_obj; // assumes default-init
          _CSTD memcpy(_STD addressof(_To_obj), _STD addressof(_Val), sizeof(_To));
          return _To_obj;
      }
      #else // ^^^ workaround ^^^ / vvv no workaround vvv
      _NODISCARD constexpr _To _Bit_cast(const _From& _Val) noexcept {
          return __builtin_bit_cast(_To, _Val);
      }
      #endif // ^^^ no workaround ^^^

      ^^^ туда ^^^ / vvv сюда vvv
      Ответить
      • показать все, что скрытоvanished
        Ответить
        • >>> Obtains the actual address of the object or function arg, even in presence of overloaded operator&
          Гы-гы.
          Ответить
          • Надо теперь добавить перегрузку которая оверлоадит даже addressof.

            И std::real_address_of чтобы ее обойти.
            Ответить
            • Напомнило «МТС» с его «АОН», «АнтиАОН», «СуперАОН»…
              Ответить
            • в платных версиях компилятора можно сделать такой оператор, который нельзя обойти

              но в обычных версиях нет
              Ответить
          • постой

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

            Стесняюсь спросить, а каков юзкейс переопределения взятья адреса?
            Ответить
            • ДСЛи пилить, наверное. Какой-нибудь пул объектов, перегруженный амперсанд у которых возвращает ID/номер/серию паспорта.
              Ответить
              • ну и звездочку тоже тогда перегрузить? чтобы вместо адреса был номер ячейки в массиве-пуле?

                Думаю я, что надо быть крутым чуваком, что ты такая чудесная абстракция не протекла
                Ответить
              • Можно брейнфак запилить на операторах. Как раз вроде унарных хватает.

                & * - ~ ! -- + ++ --
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • Ну да, можно. Вон в бусте деление как конкатенацию для путей юзают.
                    Ответить
                    • ужас)
                      Хотя так-то кресты же начали с того, что сдвиг стали юзать как пхание в стрим
                      Ответить
                      • Ну красиво же: home / dir / filename
                        Ответить
                        • А это вообще шикарно:
                          http://govnokod.ru/11549
                          http://govnokod.ru/18440
                          Ответить
                        • ну такое)

                          Я против тупорогих ослоёбов из жабы, где вообще ничего не переопределено (кроме плюса у строки), но я не очень верю в DSLи тоже: чтобы пользовать DSL из языка, нужно оч хорошо знать язык, на котором он написан. Иначе будешь тупить
                          Ответить
                        • > красиво же: home / dir / filename

                          Однозначно лучше операторов сдвига для cin / cout.
                          Ответить
                          • Подтверждаю. Сдвиги для cin/cout — это классический пример того, как какую-то функциональность ввели просто потому, что это было круто, точно так же, как и std::vector<bool>. О том, что на практике это окажется говном несусветным, никто не подумал.
                            Ответить
                            • std::cout << 2 << 3; // какой багор )))
                              Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • Результат ожидаемый, но заставляет немного напрячь головной мозг:
                                  https://ideone.com/sQbVcy

                                  Спойлер: 23 будет.
                                  Ответить
                              • Сишный оператор сдвига сам по себе опасен.

                                Я предпочитаю его в скобки брать. Хватит с меня багров с проёбом приоритетов.

                                К тому же там любезно разложены разные UB.

                                Это тот случай когда простые shr/shl лучше ебаных значков.
                                Ответить
                          • > Однозначно лучше операторов сдвига

                            Это да. Самое противное поведение там для uint8_t аля unsigned char.
                            uint16_t a;
                            uint8_t b;
                            
                            std::cout << a; // это число
                            std::cout << b; // а это мусор
                            Ответить
                            • А что выведет? Символ по UNSKILL-коду?
                              Ответить
                              • Да, символ, по аналогии с char.
                                Ответить
                                • >uint8_t
                                  Подло. С char как-то ждёшь подвоха, а uint8_t совсем подло.
                                  Ответить
                                  • А всё потому что аналог хаскелевого newtype сразу не завезли. Чтобы получался новый тип, а не просто алиас для старого как в typedef/using.
                                    Ответить
                                    • Так это же подляна.

                                      Какое отношение имеет восьмибитный беззнаковый октет uint8_t к минимально адресуемой единице памяти?

                                      Которая может быть и не октетом.

                                      Зачем тогда весь цирк с CHAR_BIT и UCHAR_MAX?
                                      Ответить
                                      • Ну сейчас в крестах можно enum class юзать чтобы сделать свой числовой тип. У него по-умолчанию не будет операторов. И ты сможешь всё настроить сам.

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

                                        Но багры со старыми типами уже никогда не исправить.
                                        Ответить
                                        • enum class похож на паскалевские перечисления: они тоже в число не кастятся и операторов у них нет. К сожалению, в оригинальном «Паскале» не было перегрузки операторов (но в «FPC» уже можно перегрузить), поэтому пользовались перечислениями в особых случаях.
                                          Ответить
                                • Вот в «Паскале» всё сделали правильно: там тип byte — это число, тип char — это символ, преобразования между byte и char нужно выполнять явно (вызывая соответствующие функции).

                                  А в «Си» решили смешать две точки. Зачем? Зачем?
                                  Ответить
                                  • Да. Сишный char и его signed/unsigned версии это злобный ужас.

                                    Даже без этих крестобагров, которые во многом логичное следствие сишных проёбов.
                                    Ответить
                                    • Причём в крестах их три. Независимо от положения переключателя про знаковость чара.
                                      Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • Потому что «C++», как и «Си», очень хорошо соответствуют духу английского языка. Нужно просто запомнить, что «Sean» читается как «Шон» и не думать об этом.
                                Ответить
                              • Потому что uint8_t это алиас для unsigned char, для него невозможно сделать отдельную перегрузку. А все 3 версии char'а они решили вывести как символ.
                                Ответить
                                • А на «PDP-10», где char девятибитовый (т. е. нонет, а не октет)?

                                  А на DSP, где char может быть 16- или 32-битным?
                                  Ответить
                                  • А на них просто не будет uint8_t. Будет только 18-битный uint_least8_t.
                                    Ответить
                                    • Как всё сложно. Именно поэтому я за «PHP».
                                      Ответить
                                • >Потому что uint8_t это алиас для unsigned char.

                                  Сукапиздецблять.
                                  Именно поэтому я за «printf» и «putchar».
                                  Ответить
                                  • Т. е. сначала хотели сделать по-нормальному, введя uint8_t, int8_t и т. п. Потом с нуля переписывать ядро конпелятора никто не захотел, сделали по-быстрому хуяк-хуяк-в-продакшн, установив алиасы. А потом синюю изоленту и скотч в виде алиасов решили узаконить в стандарте.

                                    Так?
                                    Ответить
                                    • Сначала были ебучие char, short, int, long и long long с implementation-defined длиной.

                                      Потом до чуваков дошло, что в мире уже давным-давно все протоколы с октетами и все байты восьмибитные и каждая либа и прога всё равно дефайнит себе u8 и u16 для удобства.

                                      Вот они и добавили в стандарт uint8_t, uint16_t и т.п. Но не вводить же новые типы, хуйнули их алиасами на старые. А для платформ, где типов такой длины вообще нет или они тормозят, оставили uint_fast8_t и uint_least8_t.
                                      Ответить
                                      • а майки уже успели наплодить много своих хороших типов к тому моменту
                                        Ответить
                                        • Не, все эти DWORD'ы точно такие же алиасы, как и uint32_t. Это не новые типы.
                                          Ответить
                                          • это деталь реализации же)

                                            я имел ввиду, что вот я пишу под пинду

                                            у меня есть int
                                            а есть int32_t
                                            а есть DWORD
                                            и это лулзлово
                                            Ответить
                                            • > деталь реализации

                                              Вообще говоря нет, это часть интерфейса. К примеру, ты не можешь сделать отдельные перегрузки функций для DWORD и для uint32_t.
                                              Ответить
                                              • однако я не могу передать 4х байтовый инт туда, где в сигнатуре указан DWORD.

                                                Это скомпилируется, но будет идеологически неверно

                                                или верно? или можно считать, что int32 это всегда всегда DWORD?

                                                >отдельные перегрузки функций
                                                в няшной вроде бы и нет перегрузок как таковых
                                                Ответить