Задать вопрос
  • Как заставить антивирус не реагировать на мою программу как на вирус?

    @New_account Автор вопроса
    Сам вопрос задал сам и отвечу. Нужно скомпилировать питон-код в си-код, с помощью cython. А потом си-код скомпилировать в .exe. Информацию нашел здесь - python-3.ru/page/python-code-compile . Только там рассматривается способ компиляции в .pyd, но не суть важно. Ведь в интернете думаю есть инфа как скомпилировать си-код в .exe(Вот ссылка на туториал СИ в EXE - https://msdn.microsoft.com/ru-ru/library/bb384838.aspx ). Всем спасибо за ответы и потраченное на меня время. Надеюсь эта тема поможет не только мне.
    Ответ написан
    1 комментарий
  • Как заменить строку на цифры у оператора IN?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если передаваемый параметр - это CSV идентификаторов, то следует использовать
    SELECT *
    FROM `users`
    WHERE FIND_IN_SET(id, ?);


    Примечание 1. CSV не должен содержать никаких паразитных пробелов (а то любят всякие "украшатели" понатыкать пробелов после запятой).
    Примечание 2. Такой запрос - гарантированный фуллскан. Зато не будет инъекции.

    PS. В принципе этот CSV несложно довести до состояния JSON array (всего-то две скобки добавить) - тогда можно применить JSON_CONTAINS(), что может быть немного быстрее. А уж если переданный JSON распарсить на отдельные значения с помощью JSON_TABLE(), так ещё и от фуллскана избавимся (правда, версия сервера нужна достаточно свежая).
    Ответ написан
    2 комментария
  • Почему не работает регулярное выражение через new RegExp?

    zendor
    @zendor
    Нужно экранировать обратный слеш в строке:
    RegExp('^([\\+])?[\\d]+$');
    Ответ написан
    1 комментарий
  • Могу ли я добавить себе в портфолио сайт с курса?

    nickolyashka
    @nickolyashka
    Переделай контент, цвета и местами блоки и можно спокойно добавлять, как только число работ увелится смело удаляй старые работы.
    Ответ написан
    5 комментариев
  • Можете просто и доходчиво объяснить, что такое UV, карты нормалей, запекание?

    @FarNear
    Для какого игрового движка контент создавать будешь? (Или не под движок?)
    (для игр одно - это рендеринг в реальном времени и тут одни требования, для др. систем рендеринга другие требования)

    Тебе надо разобраться с основными понятиями комп. графики. (модель\меш, полигон, вертекс, edge, топология, ретопология, нормали, RGBA, каналы, маски, альфа и др)
    А вот когда с ними разберешься, можно посмотреть в сторону PBR (Physically-Based Rendering)(скорее всего контент "под него" будешь пилить)

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

    UV-map это проекция всех поверхностей 3d модели на плоскость (ведь сами текстуры то плоские)
    Вспомни бумажные модели (например куба)
    Вот такая развертка нужна чтобы построить куб из бумаги
    spoiler
    eea39eb602f327149c839ec5d56302b4.jpg

    А чтобы получить UV-развёртку куба, нужно не собрать куб, а разрезать и развернуть.

    Запекание (запекать можно много какие карты - Normal Map, AO и др)

    Normal Map Baking
    Вот есть у тебя модель ботинка (полигонов очень много) и тебе нужно перенести детализацию подошвы с этой самой модели ботинка, на более простую модель ботинка. (кто у персонажа подошвы ботинок разглядывает? Там ведь много полигонов не нужно)
    Ты запекаешь карту нормалей (Normal Map) и на ней создается изображение подошвы. (Информация перешла с высокополигональной модели на карту нормалей) затем ты накладываешь её на простую модель ботинка и вуаля!
    На почти плоской подошве появился псевдо рельеф
    Освещение в движке реагирует на эту самую Normal Map и создает видимость рельефа, для наблюдателя. Смотришь и кажется что подошва богата на детали!
    И так поступают со всей моделью.

    "И отличаются ли эти карты в зависимости от 3D пакета? Может в 3D MAX свои карты, а в Blender свои?" - нет ничем не отличаются. Все подобные крупные 3d пакеты похожи и не уступают друг другу.
    Но ты должен понимать что существуют специальное ПО для работы с текстурами. (MARI, Substance Painter и мн. д)
    (обойтись естественно можно и без них, но новичку будет одинаково сложно что с ними, что без них)

    "В одних источниках эти названия карт на английском, в других на русском" (там всё намного веселей!)
    Введи в поисковик "Texture map terminology confusion"

    Ищи статьи на русском где используется не перевод, а написание английских слов русскими буквами или просто где названия карт не переводятся.
    Ни в коем случае не русифицируй свои программы (так ты всё только испортишь)

    В зависимости от модели, от игрового движка или системы рендеринга тебе будут нужны разные "наборы" текстурных карт.
    В движках есть редактор материалов и он может намекнуть какие текстурки он "кушает"
    Например вот
    5a0ed3d153d39855990575.png
    (именно в этом редакторе там где написано Bump map пихают Normal map)

    Вот карты для "старого метода" (Для PBR используются некоторые другие карты и "парочка" карт отсюда - например Normal map)

    Diffuse maps - это просто текстура цвета объекта (без бликов и проч)
    Normal map - уже написал про неё (псевдо рельеф)
    Specular map – влияет на способность отражения материала (карта бликов)
    Glossiness\gloss map - эта текстура отвечает насколько размыты будут отражения
    Ambient occlusion map\AO map - эта текстура создаёт мягкое затенение модели (прямо на неё не направлен источник света)
    Emissive map\emission map\glow map
    5a0e671082a59675942102.jpeg
    - определяет где расположены "светяшки" на модели (собственно сама маска и есть Emissive map) - если у тебя святяшек нет на модели, то и карта эта не нужна.
    Displacement map - одна из многочисленных карт высот (выдавливает реальный рельеф на модели) - например морщины на лице можно "выдавить"

    Текстурных карт очень много и про остальные нет смысла писать. (Про PBR тем более)

    "Но мне нужна информация именно про Blender"
    Тысячи видео на многих языках мира, сотни страниц из статей и книг к твоим услугам!
    (Чтобы видео смотреть и понимать логику работы в программе, не нужно знать английский\японский\хинди - я например смотрел уроки на итальянском! И иногда слышал знакомые слова)
    Это касается не только блендера.

    p.s
    Помни о правиле 80\20 (80% практика, 20% теория) если наоборот значит всё будет плохо. Утонешь в теории (ты не знаешь как к ней правильно подступиться)

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

    CityCat4
    @CityCat4 Куратор тега Сетевое администрирование
    //COPY01 EXEC PGM=IEBGENER
    Что-то последнее время стало много вопросов на эту тему...

    Ну ладно, еще раз, как человек, уже больше года держащий дома самый настоящий серверный сервер (а не рабочую станцию, работающую сервером) выскажу свое мнение.

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

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

    К сожалению, плюсов не бывает без минусов :) Хотелось бы о них тоже поподробнее - не чтобы отговорить, а чтобы предупредить.

    - Цена, комплекутха, ЗиП. Новое серверное железо очень дорогое. Сервак за пол-лимона - это как здрассьте. "Для себя" обычно берут бу железо. Это довольно распространенный метод, так что существуют специальные конторы, торгующие бу серверным железом. Насколько оно старое? Обычно не моложе пяти лет. Почему пяти? В крупных конторах есть регламенты, по которым железо списывается по истечении определенного срока, обычно он пять лет. Списывается, независимо от состояния, даже если оно идеальное. Бу сервер можно прикупить за вполне приемлемые деньги (разумеется имея в виду, что винты нужно брать новые и не десктопные, а именно рейдовые). Комплектуху и ЗиП покупать можно в тех же конторах.

    - Размещение. Сервер обычно в серверном корпусе, который ставится в стойку. Добро, если у Вас есть стойка :) а иначе его нужно куда-то пристроить - а без стойки эта большая плоская хреновина будет весьма неудобной для резмещения (Лайфхак: у меня лежит на шкафу)

    - Шум. такого понятия как
    тихий серверный шкаф

    не существует. От слова совсем. Потому что шкаф - для серверной. Даже самый тихий сервер (а я подбирал именно по "тихости") даже при самых низких оборотах кулера (в BIOS - 4500 об/мин) - довольно заметно шумит. Кроме того, если температура повышается, сервер автоматически кладет на настройки BIOS и повышает скорость вращения кулеров - в итоге у меня сервер в людбое время устойчиво негромко гудит и периодически взвывает - потому что перегревается.

    - Комфортная температура. Для сервера и человека - она разная и поэтому запросто получится, что Вам придется выделить серверу отдельную комнату :D

    - Елестричество. Сервер жрет электричество. Круглые сутки, как дозорный в будке. Готовьтесь к повышению счетов от энергосбыта. Кроме того, сервер без упса будет падать при просадках - а в домах они не редкость. (У меня тоже нет упса :( )

    - Изнашиваемые части. Про ЗиП было уже сказано - так вот, не забывайте, что сервер содержит части, которые ломаются :) Кулеры, винты - все это нужно будет покупать :)

    - Интернет-канал. Для физиков как правило flat-rate не предоставляют (ну либо заломят, как с юрика), поэтому держать там нагруженный сайт Вы не сможете - он будет адово тормозить. Хотя обычный сайт работать будет (если пров дает белые IP).

    - Анти-вирус, анти-ддос, анти-спам, анти-все-остальное. Все это придется делать самому либо просто забить. Разумеется, профессиональному админу это сделать несложно.

    - Настройка, резервное копирование. Фактически повторение предыдущего пункта - спихнуть нее на кого, сами, все сами...

    - Изменить IP практически невозможно, уж не говоря о его регулярной смене.
    Ответ написан
    12 комментариев
  • Как выбрать случайный элемент из списка с учётом его веса?

    @Picknice
    Веб-программист (FULL STACK)
    Можно такой подход. Интересно критику почитать.
    var banners = [];
    // Генерируем тестовый массив баннеров
    for( var i = 1; i <= 5; i++ ){
    	banners.push( {
    		data: i,
    		w: Math.floor( Math.random() * 1000 ) + 1 // Вес баннера от 1 до 1000 к примеру
    	} );
    }
    console.log(banners);
    var wt = 0; // Сумма веса всех баннеров
    for( var i = 0; i < banners.length; i++ ){
    	var banner = banners[i];
    	banner.bound = wt += banner.w; // Определяем границу, которая зависит от веса
    }
    console.log(banners); // Проверить наглядно какие границы созданы
    // Генерируем число от 0 до wt
    var r = Math.floor( Math.random() * wt + 1 );
    for( var i = 0; i < banners.length; i++ ){
    	// Ищем какой баннер попал в полученное случайное число
    	var banner = banners[i];
    	if( r > banner.bound - banner.w && r < banner.bound ){
    		console.log('banner ' + banner.data); // В итоге при таком подходе вероятность выпадения более ценного баннера выше, главное чтоб вес был > 0, иначе баннер найден неправильно.
    	}	
    }
    Ответ написан
    8 комментариев
  • Как управлять вероятностями появления поста (рейтинг, сортировка, "рекомендованное")?

    hint000
    @hint000
    у админа три руки
    1. прочитайте вот этот вопрос Как выбрать случайный элемент из списка с учётом его веса? , там Николай Панаитов дал хороший, годный ответ, и это содержит 70% ответа на ваш вопрос.
    2. в качестве веса поста попробуйте:
    w=c+a*Log(1+лайков[пост])+b*Log(1+просмотров[пост])

    3. в этой формуле коэффициенты a>=0, b>=0, c>=0 - это "ручки регулировки" для вашего отбора. Чем больше a, тем сильнее влияние лайков, чем больше b, тем сильнее влияние просмотров, чем больше c, тем больше "равных возможностей для всех".
    Ответ написан
    6 комментариев
  • Как изменить скрипт, что бы после завершения опроса - он перенаправлял на сайт?

    @cloudz
    там где описаны действия при submit

    $('.submit').click(function(e){
      e.preventDefault();
      $('.quiz').remove();
      $(thanks).appendTo('.container');
      disableButtons=true;
      $('.navigation__btn').addClass('navigation__btn--disabled')
      document.location = "http://ya.ru"
    })
    Ответ написан
    2 комментария
  • Как проверить наличие элемента в многомерном массиве?

    0xD34F
    @0xD34F Куратор тега JavaScript
    А какая у вас может быть вложенность и количество элементов? Если только так, как вы показали - тогда вместо orderlist проверяйте orderlist[0][0]. Если заранее не знаете - сделайте метод, который проверит всё:

    const inArray = (arr, val) =>
      arr.some(n => Array.isArray(n) ? inArray(n, val) : Object.is(n, val));
    
    // или
    
    const inArray = (arr, val) =>
      arr.flat(Infinity).includes(val);
    Ответ написан
    2 комментария
  • В чем разница между & и &&?

    Rou1997
    @Rou1997
    Первый всегда проверяет оба условия на истинность, второй может и только первое проверить, для && достаточно ложности первого чтобы не проверять второе, для || - истинности первого, поэтому вторые слегка оптимальнее для быстродействия условий (if).
    Ответ написан
    1 комментарий
  • Как использовать text-overflov: ellipsis; для текста в несколько строк?

    Manyaka
    @Manyaka
    .block {
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
    Ответ написан
    Комментировать
  • Как через PHP обрезать изображение?

    twobomb
    @twobomb
    Через imagcrop так
    $im = imagecreatefrompng('example.png');
    $arr = [
    	['x' => 0, 'y' => 0, 'width' => 960, 'height' => 540],
    	['x' => 960, 'y' => 0, 'width' => 960, 'height' => 540],
    	['x' => 0, 'y' => 540, 'width' => 960, 'height' => 540],
    	['x' => 960, 'y' => 540, 'width' => 960, 'height' => 540],
    ];
    
    
    foreach($arr as $k=>$v){
    	$im2 = imagecrop($im, $v);
    	if ($im2 !== FALSE) {
    		imagepng($im2, "example-cropped$k.png");
    		imagedestroy($im2);
    	}
    }
    imagedestroy($im);
    Ответ написан
    3 комментария
  • Как сделать автоматическое увеличение textarea по высоте, по мере заполнения текста?

    SDmitriyS
    @SDmitriyS
    Javascript разработчик
    <textarea style="overflow:hidden;"></textarea>

    var textarea = document.querySelector('textarea');
    
    textarea.addEventListener('keyup', function(){
    	if(this.scrollTop > 0){
    		this.style.height = this.scrollHeight + "px";
      }
    });
    Ответ написан
    1 комментарий
  • Во flex контейнере текст не переносится на новую строку, что делать?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Ответ написан
    Комментировать
  • Как вписать в input, то что находиться в select ?Как сделать html select, только на JS?

    @prishelec
    Может вам подойдет вот это?
    <form action="/action_page.php">
      <input list="browsers">
      <datalist id="browsers">
        <option value="Internet Explorer">
        <option value="Firefox">
        <option value="Chrome">
        <option value="Opera">
        <option value="Safari">
      </datalist>
    </form>
    Ответ написан
    1 комментарий
  • У меня проблема с .htaccess, а именно с CSS, как решить?

    wisgest
    @wisgest
    Не ИТ-специалист
    добавлять к каждой ссылке "../", это просто не грамотно

    Кто такое выдумал?
    Ну ладно, добавьте в index.php
    <base href="/">
    Ответ написан
    1 комментарий