• JWT как убивать сессии?

    sarapinit
    @sarapinit
    Точу водой камень
    JWT не предполагает что его можно убить, предусмотрено только истечение токена по времени которое в нём зашито.
    Если вы хотите сами управлять временем жизни токена то вам нужен ReferenceToken.
    В этом сценарии вы даете клиенту только уникальный id токена. Полный токен хранится в вашей БД по этому ключу и вы можете полностью управлять его временем жизни.
    https://openiddict.github.io/openiddict-documentat...
    Ответ написан
    6 комментариев
  • Критерии реляционной бд?

    sarapinit
    @sarapinit
    Точу водой камень
    Это очень странно. Ваш преподаватель руководствуется каким-то своим определением реляционной бд. Классическое определение говорит что реляционная бд - бд использующая реляционную модель. А реляционная модель - модель описания данных которая поддерживает описание отношений (relations) между типами данных.
    Я могу описать, например, биологические виды реляционной моделью, у меня будут таблицы «семейства», «роды», «царства» и т.д. Таким образом я опишу структуру биологических видов, отношения между разными уровнями. Но я не буду описывать никакой процесс.
    Ваш преподаватель на какой-то своей волне. Попросите его дать определение реляционной БД и пример такой БД. И сделайте задание по аналогии. Переубеждать человека бессмысленно.
    Я бы посоветовал искать учителей, которые имеют реальный опыт работы в IT. А тех которые имеют опыт лишь в псевдоинтеллектуальном анонизме, обходить стороной и не давать портить себе мозг.
    Ответ написан
    Комментировать
  • Как отработает SQL-запрос с выражением в ORDER BY?

    sarapinit
    @sarapinit
    Точу водой камень
    Порядок чтения данных с диска не гарантирует порядок.
    Я думаю что:
    сначала произойдет считывание строк и вычисление col2/col1
    потом сортировка
    и результат запроса попадет в кэш БД в оперативке.
    Поэтому если запрашивать подряд, то будет возвращаться кэшированный результат.
    Но это не точно, потому что надо знать как внутри работает оптимизатор запросов, на исполнение запроса влияет статистика т.е. недетерминированная операция.
    Поэтому нужно измерять по месту производительность если это узкое место. А если нет, то особо не запариваться по таким мелочам.
    Ответ написан
    1 комментарий
  • На что сменить информационную нагрузку?

    sarapinit
    @sarapinit
    Точу водой камень
    Если вы считаете, что у вас избыток информации, то нужно искать отдых в деятельности с дефицитом информации.
    Спорт на самом деле неплохо помогает отключить мозг. Медитация помогает. Социальные танцы. Общение с людьми. Любая деятельность которая позволит перейти из сфокусированного режима работы мозга в рассеянный.5dd54dc9a9f62686811446.jpeg5dd54dd36b22f327386494.jpeg
    Ответ написан
    Комментировать
  • Ambiguous column name 'Number'? Что это?

    sarapinit
    @sarapinit
    Точу водой камень
    Потому что у вас в двух таблицах поле Number, а вы в запросе SELECT не указываете какое из них вам надо
    Ответ написан
  • Подчеркивает красным функцию ON?

    sarapinit
    @sarapinit
    Точу водой камень
    Имени 2й таблицы не хватает. С которой будет объединение
    Ответ написан
  • Будет ли эффективно секционирование в СУБД PostgreSQL в случае, если принцип разбиения таблицы на секции и критерий выборки не совпадают?

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

    Абсолютно правильное понимание.
    Одним из решений таких задач является введение избыточности: для ускорения выборки вы дублируете информацию в несколько таблиц и секционируете таблицу под конкретный запрос.
    Либо вы проводите какую-то дополнительную агрегацию или уменьшение данных и храните в отдельной таблице. Опять же под запрос.
    Либо вы делаете функцию партиционирования по нескольким полям, но это надо смотреть запросы. Будет работать только если фильтры запросов являются подмножествами друг друга
    Ответ написан
    Комментировать
  • Какой подход загрузки данных в Entity Framework 6 выбрать?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Это не взаимоисключающие вещи. Ленивая загрузка выполняется при обращении к свойству, если свойство еще не было загружено (она должна быть включена в настройках). Вы можете комбинировать эти подходы заранее загружая свойства с помощью жадной или явной загрузки для определенных запросов. Если свойство уже было загружено, то ленивой загрузке уже незачем работать. Главное понимать, как происходят запросы в БД при разных видах загрузки.
    Ответ написан
    Комментировать
  • Почему не применяются изменения модели в БД?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Скорее всего нужно указать целевой проект (куда будут писаться миграции) и стартовый проект (откуда будут браться настройки). Если у вас всё в одно проекте то пишите одинаковый:
    Add-Migration -Project MyAwesomeProject -StartupProject MyAwesomeProject -Name MyAwesomeMigration


    И еще если у вас postgresql, то нужно под него добавить пакет
    Ответ написан
    6 комментариев
  • На чём построена структура интернета и есть ли шансы положить мировую систему?

    sarapinit
    @sarapinit
    Точу водой камень
    Есть на эту тему доклад с конференции highload
    TL;DR;
    Некорректная настройка протокола BGP, может положить интернет. И некоторые сегменты уже от этого страдали.
    Ответ написан
    Комментировать
  • Стоит ли читать Герберта Шилда C# 4.0 или как выбрать актуальную, фундаментальную, полезную литературу для новичков в программировании?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Уберите Шилда (устаревший взгляд на язык). Уберите Троелсена (много лишнего, зачем вам wcf и wpf, только голову забивать). Возьмите книгу Адама Фримана по asp.net. И начинайте что-то писать. Можете взять еще какой-то общий справочник по языку, типа Албахари. Рихтера пока отложите.
    В процессе используйте не только metanit, но и документацию к asp.net и что угодно что поможет решить задачу
    Ответ написан
  • Как сделать чтобы таймер мог выполнять долгую работу?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Я использую такое решение, таймер ждет пока работа не закончится. На самом деле я просто выключаю его пока работа выполняется, а после завершения или исключения запускаю снова.

    public class TestWorker
    {
      private readonly Timer _timer;
      public TestWorker()   
      {
        _timer = new Timer(
          Callback, 
          null, 
          TimeSpan.FromSeconds(1),          
          TimeSpan.Zero);
      }
    
      private void Callback(object state)
      {
        try
        {
          //work imitation
          Thread.Sleep(5000);
        }
        finally
        {
          _timer.Change(
            TimeSpan.FromSeconds(1),    
            TimeSpan.Zero);
        }
      }
    }
    Ответ написан
    6 комментариев
  • Стоит ли читать эту книгу?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Если из этих книг выбирать, что читать 1м, то я бы сначала рекомендовал читать Албахари. Это более общая книга и она именно про язык C#, про синтаксис и ключевые концепции, как их использовать.
    CLR via C# Рихтера уже не совсем про C#, она рассказывает о CLR используя в качестве примера один из языков поддерживаемых CLR, т.е. C#. Эта книга больше про внутреннее устройство, она посложнее на мой взгляд. Там есть очень специфические разделы, которые вам могут не сразу (или никогда) не пригодится. Её стоит пробовать начинать читать, если не получается, то окладывать и пробовать позже. Она интересна с той стороны что Рихтер является консультантом Microsoft, некоторые из ключевых частей dotnet framework разрабатывал он. Интересно посмотреть внутреннее устройство, почему сделано так или иначе. Она становится интересной когда начинаешь задумываться о производительности, о блокировка, о многопоточности.

    Итого: читать обе, сначала Албахари, потом Рихтера. Отдельные темы Рихтера перечитывать по необходимости.
    И на этом не останавливаться, кстати. Дальше можно, например, взять книгу "Pro .NET Performance" если придется серьезно заниматься оптимизацией. Или еще какую. У меня например накопилось пара полок книг. И по C# и по смежным темам.

    PS
    А на работе у нас лежат: 3е издание CLR via C# и 4е издание CLR via C#, а также 3е издание C# in Depth и 2е издание C# in Depth. И если выйдут новые издания, мы их скорее всего купим тоже.
    Ответ написан
    2 комментария
  • Как реализуется поиск ключей по тексту?

    sarapinit
    @sarapinit
    Точу водой камень
    Начните с этого
    Полнотекстовый поиск mysql
    Ответ написан
    Комментировать
  • ENTITY FRAMEWORK Fluent API как запретить создавать запись если она уже есть?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Это происходит потому что в трекере изменений EF нет информации о Country в момент сохранения.
    Вам нужно "присоединить" существующие страны к контексту перед сохранением. Вот пример в официальных доках
    Ответ написан
    Комментировать
  • Как упростить переменную в C#?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    class Program
        {
            static string DoSomeMagic(string localData, params string[] base64Strings)
            {
                var sb = new StringBuilder(localData);
                foreach (var base64String in base64Strings)
                {
                    sb.Append(Encoding.ASCII.GetString(Convert.FromBase64String(base64String)));
                }
    
                return sb.ToString();
            }
    
            static void Main(string[] args)
            {
                var localData = string.Empty;
                localData = DoSomeMagic(localData, "Тут", "все", "значения", "будут", "совершенно", "разные");
            }
        }
    Ответ написан
  • Название для дипломной работы (корпоративаня сеть на cisco)?

    sarapinit
    @sarapinit
    Точу водой камень
    Проектирование корпоративной сети передачи данных ООО "Рога и Копыта"
    Ответ написан
    Комментировать
  • Что такое нормализация базы данных простыми словами?

    sarapinit
    @sarapinit
    Точу водой камень
    БД нужна чтобы хранить утверждения о состоянии информационной системы.
    Ситуацию в которой утверждений о состоянии какой-то части системы больше чем одно мы считаем дублированием информации. (У вас эта ситуация называется "избыточность").
    Если есть дублирование информации, то возможна ситуация когда утверждения могут противоречить друг другу. В этом случае БД неконсистентна и информационная система может работать некорректна.
    Нормализация БД - устранение дублирования информации в БД с целью достижения консистентности, в первую очередь. Нормальные формы - это шаги которые нужно пройти на пути к консистентности (делай раз, делай два ...)
    Побочным эффектом нормализации является уменьшение размера БД.
    В случаях когда производительность важнее консистентности, выполняют денормализацию БД (внесение избыточности) под определённые запросы, чтобы избежать объединений таблиц (JOIN).
    Ответ написан
    2 комментария
  • Публикация dot.net проектов?

    sarapinit
    @sarapinit
    Точу водой камень
    Есть официальное решение от MS - AzureDevOps, там какое-то количество ресурсов бесплатное.
    Есть TeamCity от JetBrains.
    Лично у меня есть положительный опыт использования AzureDevOps. Там есть много готовых тасков и интеграция с Azure, что в моём случае полезно. Про TeamCity подробно не знаю.
    Ответ написан
  • Яндекс и гугл продают доступ к кукам сторонним сайтам?

    sarapinit
    @sarapinit
    Точу водой камень
    Из популярных браузеров сейчас больше по этому поводу запаривается Firefox на мой взгляд. Там есть механизмы блокирования трекинга. Но вообще анонимность сохранить достаточно сложно, учитывая штуки типа EverCookie и Fingerprint.js
    Если интересно можете читать Кевин Митник. Искусство Быть Невидимым или раздел приватность на Хакере
    Ответ написан
    Комментировать