Задать вопрос
  • Нормально ли запускать пайтон скрипт по адресу http://localhost:8000?

    Aetae
    @Aetae
    Тлен
    То что на сервере на разных портах живёт множество программ и общаются меж собой - это нормально. Главное огородить их от внешнего доступа: обычно возможно указать на каком ip случшать порт, в таком случае достаточно указать локальный: 127.0.0.1:8000 вместо 0.0.0.0:8000 (слушать на всех) и извне никто на него попасть уже не сможет. Если же такой возможности нет, надо не забыть заблокировать этот порт файерволом.
    Ответ написан
    Комментировать
  • Как снимали в 4K в 2001 году?

    NeiroNx
    @NeiroNx
    Программист
    Пленка, такая штука есть для съемки качественного видео, вот на нее и снимали. У нее главная характеристика зернистость(насколько мелкие гранулы фоточувствительного вещества) - так вот эта зернистость дает разрешение больше чем 4К.
    Ответ написан
    Комментировать
  • Как снимали в 4K в 2001 году?

    xez
    @xez
    TL Junior Roo
    Никак.
    При этом ничего не мешает оцифровать аналоговое кино хоть в 100к.
    Ответ написан
    Комментировать
  • Как сделать эффект текста на кривой безье?

    @garbagecollected
    Математика трансформаций очень простая.

    Отрендерить текст на изображение можно используя
    https://opentype.js.org/

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

    Либо использовать эту же библиотеку для того, чтобы получить path data для каждой буквы.

    Если ваша трансформация сводится к аффинным преобразованиям, то можно рассчитывать координаты не каждой точки изображения буквы, а только точки, которые участвуют в path data. Таким образом трансформируя все точки path data вы получите такую же path data, используя которую вы начертаете шрифты в любом месте на любом изображении. Это может дать очень выгодный прирост к производительности (потенциально до 1000х раз). Кроме того, линии path data "рисуется" с правильным расчетом межпиксельного пространства, и вам не надо будет делать ресамплинг, как при работе с трансформированием изображений.

    Но рисовать шрифты по безье - это не всегда можно свести к аффинным преобразованиям.

    На верхней иллюстрации у вас используется искажение по оси X: skewX()

    Получить координаты каждой точки можно умножив матрицу с исходными точками на матрицу CTM.
    https://www.w3.org/TR/SVG11/coords.html#TransformM...

    Сама матрица CTM - это произведение матриц всех трансформаций. То есть, чтобы не умножать матрицу точек на матрицы каждой трансформации, сначала вычисляется произведение матриц всех трансформаций, которое называется CTM.

    По ссылке выше вы найдёте матрицы с формулами аффинных преобразований в двухмерном пространстве. Матрицы имеют вид (3х3) из которых 6 чисел значимые, 3 числа - статичные (всегда [0, 0, 1]).

    Для 3D-преобразований используются матрицы 4х4 из которых 12 чисел значимые, 4 числа - статичные (всегда [0, 0, 0, 1]):
    https://drafts.csswg.org/css-transforms-2/#mathema...

    Для расчета 3d-трансформаций с учетом перспективы используются матрицы 8х8.

    На нижней иллюстрации у вас используются трехмерные искажения.

    Про математику 3D искажении с перспективой можно прочитать тут
    https://www.cs.cmu.edu/~ph/texfund/texfund.pdf
    Там рассматриваются и формулы получения координат на плоскости и ресамплинг (чтобы, например, не было пикселизации шрифтов после трансформации).

    Для перемножений матриц можно использовать функцию

    const multiply = (a, b) => a.map((_, r) => b[0].map((_, c) => a[r].reduce((s,_,i) => s + a[r][i] * b[i][c], 0)));


    Рассчитать координаты безье можно функциями (соответственно, квадратичная и кубическая безьё):

    // [p0x, p0x] - are coordinates of origin point
    // [p1x, p1y] - are coordinates of single control point
    // [p2x, p2y] - are coordinates of destination point
    // T - is number of points that needs to draw the curve
    const quadratic = ([p0x,p0y], [p1x,p1y], [p2x,p2y], T = 60) => {
      const x = t => (1 - t)**2 * p0x + 2 * (1 - t) * t * p1x + t**2 * p2x;
      const y = t => (1 - t)**2 * p0y + 2 * (1 - t) * t * p1y + t**2 * p2y;
      return Array.from({ length: T+1 }).map((_, t) => [x(t / T), y(t / T)]);
    };
    
    // [p0x, p0x] - are coordinates of origin point
    // [p1x, p1y] - are coordinates of first control point
    // [p2x, p2y] - are coordinates of second control point
    // [p3x, p3y] - are coordinates of destination point
    // T - is number of points that needs to draw the curve
    const cubic = ([p0x, p0y], [p1x, p1y], [p2x, p2y], [p3x, p3y], T = 60) => {
      const y = t => (1 - t)**3 * p0y + 3 * (1 - t)**2 * t * p1y + 3 * (1 - t) * t**2 * p2y + t**3 * p3y;
      const x = t => (1 - t)**3 * p0x + 3 * (1 - t)**2 * t * p1x + 3 * (1 - t) * t**2 * p2x + t**3 * p3x;
      return Array.from({ length: T+1 }).map((_, t) => [x(t / T), y(t / T)]);
    };
    Ответ написан
    1 комментарий
  • Как зная только тип вызвать у него статическую функцию?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    RTFM: Type.GetMethod
    public class Foo
    {
        public static string Bar() => "Bar() is called";
    }

    var type = typeof(Foo);
    var mi = type.GetMethod("Bar", BindingFlags.Static | BindingFlags.Public);
    var r = mi.Invoke(null, []);
    Console.WriteLine($"Result: {r}");
    
    >> Result: Bar() is called
    Ответ написан
    2 комментария
  • Нужны ли опции доступности сайту?

    пожилых и т.д. с каждым годом всё больше, да и опции доступности не противоречат SEO и т.д.

    https://habr.com/ru/articles/335442/
    https://habr.com/ru/articles/347478/
    Ответ написан
    Комментировать
  • Какой тип данных у RegExp, TypedArray и других?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    А ведь и правда есть термин для них (но не тип, конечно): Well-Known Intrinsic Objects

    Если же вы спрашиваете как затипизировать что-то, что может быть "RegExp, Array, Function и другим" (и не указывая при этом каждый тип явно), то должен, наверное, подойти только object (не смог в доке TS найти отличается ли TS-тип object от базового JS-объекта; например, в TS есть явная типизация функций, но можно ли её заменить на object?). Но это максимально странная задача, которую явно надо решить каким-то другим способом.
    Ответ написан
    6 комментариев
  • На каком JS фреймворке сделан фронт wildberries.ru?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Какие есть профессии, схожие с игрой Turing complete?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Разработка процессоров же. Начните с темы ПЛИС/FPGA. Можете спокойно приобрести набор FPGA разработчика и начать проектировать и реализовывать в железе любую вычислительную архитектуру. Туториалов и курсов в сети полно. Если интересуют серьёзные платные курсы, то лучше что-то официальное от Xilinx/Altera (если они еще не прикрылись) - бюджет в районе от $5-10 килобаксов примерно, но точно не скажу - не слежу за темой. Вот, вроде нашел: https://plis2.ru/training.html
    Ответ написан
    2 комментария
  • Существует ли готовое решение для асинхронного обмена сообщениями по https?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, называется веб-сокеты.
    Ответ написан
    Комментировать
  • Honor 10 lite не работает фронтальная камера?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Я шар для гадания дома забыл, поэтому могу только посоветовать в сервис снести.
    Ответ написан
    Комментировать
  • Можно ли создать оригинальную веб-игру без кодинга?

    @tyxeo
    дальний знакомый Мурыча
    попробуй construct
    там вроде бы без кодинга визуально можно собрать игру
    других вариантов не встречал
    Ответ написан
    Комментировать
  • Какие существуют недорогие сервисы для проведения опросов и голосований?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Google Forms. Настраиваете доступ только для определённых гугльвских аккаунтов (или по ссылке, если не у всех есть или сложно собрать). В форме делаете обязательную авторизацию и возможность заполнить форму только один раз (опять же, если у всех есть гугльакк.). Конструктор простой, понятный, красивый. Потом результаты можно экспортировать в электронную таблицу и работать с ними. Ссылочку в qr-код пихаете, распечатываете, вешаете в подъезде и всё - Hi-Tech

    P. S. В форме можно прикрепить фото с подписью
    Ответ написан
    Комментировать
  • Допустима ли ссылка на сайт с пикантным контентом?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Если не нарушает пункты 5.2, 5.3, 5.4 правил, то формально, наверное можно. Неформально, скорее всего, нельзя. Но лучше спросить у Модератор Еще лучше - спросить у поддержки

    P. S. Как такая ссылка может относится к техническим вопросам? Вы хотите, чтобы мы порно сайт дебажили? Поддерживаю @sergey-gornostaev

    P. P. S. Хотя если здесь в поиске поискать по определённым словечкам, тут найдётся ~500 спам-аккаунтов, в описаниях которых не только ссылки есть, но и ещё чего похуже, но никого это не колышет
    Ответ написан
    5 комментариев
  • Не работает использование классов с MonoBehaviour?

    GavriKos
    @GavriKos Куратор тега Unity
    Потому что в принципе нельзя создавать наследников MonoBehaviour через new. Ошибку бы конечно увидеть еще, что там пишет, но это в принципе практика крайне ужасная. Наследники монобехов создаются через методы юнити - AddComponent, Instantiate и т.д.
    Ответ написан
  • Какой взять паяльник новичку?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Для новичка в пайке, а так же пайки лишь изредка в принципе пойдет любой дешевый или бюджетный небольшой мощности, со сменным жалами и, очень желательно, с регулировкой температуры. Самое важное в паяльнике - это мощность для ваших целей (для микрух маленькая мощность нужна, мощные - только для толстых силовых проводов на киловатты), регулировка температуры и универсальные сменные жала. Там в принципе у всех всё одинаковое (ну, самый хлам можно не учитывать). Для дома паяльная станция не нужна особо. Паяльные станции с классическим нагревом жала в принципе не отличаются от паяльника за 300-500 рублей - брать такую вообще нет никакого смысла. Разве что наличием регулировки температуры. А вот если приходится часто и много паять - то тут уже лучший вариант будет именно полноценная паяльная станция с индукционным нагревом жала (важно!), быстросъёмными жалами и сменными держателями (ручка-паяльник с проводом), точной регулировкой температуры, а так же паяльный фен с кучей разных насадок и тоже с точной регулировкой температуры. Есть варианты два-в-одном - тоже вполне удобные. Индукционным жалом можно с одинаковой легкостью паять как мелочёвку на минимальной температуре без опасения её сжечь так и силовые кабели. Быстросменные жала удобны тем, что можно прям в процессе пайки за считанные секунды перетыкнуть жало на более подходящее и продолжить работу. Плюс жала - это всё же расходник и со временем любое жало выходит из строя. Регулировка температуры - ну, тут понятно, есть разные виды припоя и у них разная температура плавления, а так же очень многие микрухи чувствительны к нагреву и паять их можно только низкотемпературным припоем. И, конечно же вытяжка - очень нужная и полезная для здоровья вещь.
    Ответ написан
    2 комментария
  • Как скачать аудиофайл с сайта, если он отсутствует в Network?

    @Everything_is_bad
    никак

    Может стили какие-то убрать/скрипты?
    если сайт делали нормально, то доступ будет только после оплаты.
    Ответ написан
    Комментировать
  • Как подключить питание CPU?

    @Drno
    PCI-E это не для процессора, а для видеокарты
    Вы не тот кабель используете
    Ответ написан
    5 комментариев
  • Как подключить питание CPU?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Федот, да не тот. Комплектный, да не для этого разьема. Либо восьмиконтактный, либо два четырехконтактных. Это рабем дополнительного питания проца, который раньше был четрыехпиновый, потом моща возросла - стал восьмипиновый (то есть просто два четрыехпиновых). Смотрите ключи - они обязательно должны совпадать. И в комплекте шнуров обязательно должен быть провод на питание, ничего прикупать не надо.
    Ответ написан
    3 комментария