• Как обезопасить программу С# от взлома?

    MANAB
    @MANAB
    Разрабатываю на C#: Web, Desktop, Gamedev
    По хорошему ответ на вопрос в заголовке - практически никак и торренты с ломаным софтом этому аргумент.
    Т.к. непонятно что защищать и от чего, то непонятно и что советовать, слишком много всего и обязательно что-то упустишь.
    Задам вопрос по другому - почему неподходит выполнять команды на сервере и получать результат? Соответственно получится аутентифицировать и авторизовать пользователя, проверить оплату/баланс и отдать или нет результат.
    Даже если же это on-prem решение по типу игр или фотошопа все равно какие то важные моменты можно вынести на свой сервер, без которых невозможна работа локально.
    Ответ написан
    Комментировать
  • Как обезопасить программу С# от взлома?

    mayton2019
    @mayton2019
    Bigdata Engineer
    C# позволяет линковаться с нативным кодом написанным на С++ или ассемблере.
    Напиши парочку ключевых функций на С++ и это сильно обломает потенциального
    школьника.
    Ответ написан
    2 комментария
  • Как обезопасить программу С# от взлома?

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

    Но я просто пытаюсь угадать что и от чего ты пытаешься защитить.
    Ответ написан
    Комментировать
  • Можно ли писать div вне body?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    Вы можете написать любую херню. Однако браузер обязан как-то интерпретировать страницу, чтобы ее отрисовать. И он постарается исправить ваши ошибки (случайные или намеренные) и каким-либо образом страницу попытается отрисовать.

    Но если вы спрашиваете про стандарты, то нет. Вне body никаких тегов быть не должно.
    Ответ написан
    Комментировать
  • Можно ли писать div вне body?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега HTML
    Это так.
    Браузер прожуёт довольно страшную хрень, которую напишет разработчик, но есть ровно ноль причин её писать сознательно.
    Ответ написан
    1 комментарий
  • Как удалить объект из массива?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const index = arr.findIndex(n => n.id === id);
    if (index !== -1) {
      arr.splice(index, 1);
    }

    или, если нужен новый массив:

    const newArr = arr.filter(n => n.id !== id);

    Если же id имеют не уникальные значения, то создание нового массива остаётся без изменений, а модификация существующего может выглядеть так:

    for (let i = arr.length; i--;) {
      if (arr[i].id === id) {
        arr.splice(i, 1);
      }
    }

    или так (да, reduceRight используется не совсем по назначения, как и оператор &&):

    arr.reduceRight((_, n, i, a) => n.id === id && a.splice(i, 1), null);

    или так:

    let countDeleted = 0;
    
    for (let i = 0; i < arr.length; i++) {
      arr[i - countDeleted] = arr[i];
      countDeleted += arr[i].id === id;
    }
    
    arr.length -= countDeleted;

    или так:

    arr.splice(0, arr.length, ...arr.filter(n => n.id !== id));
    Ответ написан
    Комментировать
  • Для чего нужен главный врапер?

    criticalsomethoughts
    @criticalsomethoughts
    UI\UX Developer, Project Manager
    зачем в body все содержимое еще оборачивают в див? разве нельзя все те же значения задать для боди?

    Возможно wrapper который шел после body был нужен для элементов анимированного смещения контента. Обычно такой применяется на десктопном или мобильном меню, когда вы нажимаете на бургер(меню => открыть), слева\справа вылезает блок меню, который двигает контент.

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

    Как правило, страница лендинга должна состоять из смысловых блоков, wrapper(иногда container) очень часто центровщик, либо обертка для стилизации внутреннего контента.
    Будет лучше, если вы научитесь грамотно применять тэги для глобальной компановки контента: не важно лендинг это или крупный сайт. В итоге ваша структура в лучшем случае должна выглядеть так
    html
      head
      body
        header
             nav
        main
            section                                                                        
            aside
        footer
           nav

    Вы можете заменить все теги кроме html, head, body на div, но почему бы сразу не сделать правильно, wrapper у вас будет находится в любом месте в body, для логической связки контента. Допустим глобальный wrapper это центровщик контента, а header__menu-wrapper- может быть оберткой под ваш блок меню.
    Ответ написан
    2 комментария
  • Как сделать PickUp систему в Unity?

    @p4p
    Зависит от того как работает твоя камера/рука/персонаж. Можешь сделать предмет дочерним к камере/руке и все.
    Ответ написан
    Комментировать
  • Как посмотреть скрытую информацию на сайте?

    vabka
    @vabka Куратор тега Веб-разработка
    Если на сайте нет никакой кнопки типа "показать целиком", то нельзя.
    В таком случае с сервера изначально будет приходить только часть от номера.
    Ответ написан
    Комментировать
  • Как в Vue решается вопрос глобального контроля состояния компонентов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как всегда стоит посмотреть документацию, прокрутите ниже и увидите рекомендуемые либы.

    Паттерн шины событий можно использовать с помощью внешней библиотеки, реализующей интерфейс эмиттера событий, например mitt (opens new window)или tiny-emitter (opens new window).

    Глобальное управление состоянием, например с помощью Vuex (opens new window).

    https://v3.ru.vuejs.org/ru/guide/migration/events-...
    Ответ написан
    2 комментария
  • Мне кажется или Map странно себя ведёт?

    @Scream034
    Новичок в разработке
    Это происходит потому, что в JavaScript массивы и объекты являются ссылочными типами данных, а не примитивными. Когда вы создаете массив key и добавляете его в Map, вы сохраняете ссылку на этот массив в качестве ключа. При попытке получить значение из Map по ключу [1, 2], вы создаете новый массив [1, 2], который уже не равен массиву key, сохраненному в Map. Поэтому вы получаете
    undefined. Верно объяснил?
    Ответ написан
    1 комментарий
  • Как во Vue 3 добавить default value для input?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Редактируйте через инпут локальное значение:

    const filters = reactive({});

    <input v-model="filters.search">

    За которым установите наблюдение - там будут ваши debounce и отправка в стор:

    watch(
      () => filters.search,
      debounce(search => store.commit('setFilters', { search }), 1500)
    );

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

    watch(
      store.state.filters,
      val => Object.assign(filters, val), { immediate: true }
    );

    https://jsfiddle.net/xs40j5o1/
    Ответ написан
    Комментировать
  • Как сделать мини консольную игру?

    Adler_lug
    @Adler_lug
    Ну так и в чем вопрос? Создаете консольное приложение, а дальше все на Console.WriteLine, Console.ReadKey и множестве if-else или switch-case пишете логику.
    Ответ написан
    Комментировать
  • В каком виде, хранятся записи в БД, подобные постам в соц.сетях?

    Stalker_RED
    @Stalker_RED
    что-то по лучше, чем MySQL
    а что получше - феррари, карьерный самосвал или метро?
    Феррари вроде как быстрее, но не может перевезти 500 тонн за один рейс. Карьерный самосвал перевезти может, но расход горючки сумасшедший. А у метро фича - гоняет без пробок, но только там, где рельсы заранее проложили.

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

    Целиком в БД сохраняют с тегами HTML, или Объектом JSON

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

    Тяжелые медиа, типа видеороликов, вы довольно скоро вынесете в отдельное хранилище, как только заметите что у вас этих одинаковых роликов тысячи, и неплохо бы к ним дедупликацию прикрутить.
    А как хранить эмоджи - практически не важно.
    Ответ написан
    Комментировать
  • В каком виде, хранятся записи в БД, подобные постам в соц.сетях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Современная соц-сеть - это уникальная софтварная архитектура которая строилась индивидуально.
    Вряд-ли вы сможете ее просто повторить имея mysql/php/nginx.

    VK/Facebook имеют свои технологии кеширования контента в основном построенные на материализации
    страниц. Базы данных обычно - не-реляционные. Модель проектируется так чтобы не было joins между
    таблицами. И активно используются очереди сообщений. Вот в соц-сети Linked-In это было настолько
    важно что даже был создан отдельный программный продукт который сейчас называют Apache Kafka.

    Активно используются горизонтальное масштабирование. Сеть наращивает мощности просто путем подключения
    новых адресов в dns с балансом по географии, и запуска новых web-nodes и новых дисковых реплик хранилищ для картинок и текстов постов.

    Поэтому вопрос в каком виде хранятся записи - тут не важен. Тут важно чтоб кеши обновились синхронно с событием поста например.
    Ответ написан
    7 комментариев
  • Почему функция JS так странно себя ведет?

    Какая функция? Попробуйте ответить на этот вопрос, не читая дальше и вы все поймете.

    Если не понятно - читайте дальше:

    Очевидно вы про функцию user_list_product_count, которая у вас ничего не возвращает - вот вы и получаете undefined. Где return-то в функции?

    Если же вы про return item.quantity;, то он из анонимной фукнции внутри forEach вполне себе возвращает число. Только ведь вы его никуда не читаете...
    Ответ написан
    1 комментарий
  • Как число 10 разложить на 1 2 3 4 5 6 7 8 9 10?

    @kyzinatra
    Если хочешь выпендриться, то сделай вот так:
    console.log(Array.from({length: 10}, (a, i) => ++i).join(" ")) // 1 2 3 4 5 6 7 8 9 10
    Ответ написан
    Комментировать
  • Как добиться такого результата?

    Комментировать
  • Как скрыть блок на html, не убирая код из страницы?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    а что, хтмл комментарии уже отменили?
    <!-- всякая дичь, не обязательная к показу -->
    Ответ написан
    2 комментария
  • Нормально ли комментировать верстку?

    Mesuti
    @Mesuti
    Нет смысла в таких комментариях.
    Вместо них лучше указывать интуитивно понятные классы. (+БЭМ)

    Комментарии лучше ставить там, где с первого взгляда не понятно что происходит.
    Ответ написан
    1 комментарий