• Что лучше, развернуть фронтенд и бакенд на одном домене или разных субдоменах?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    находясь на едином домене, фронт и бэк беспричинно оказываются «связаны» как минимум общей точкой входа.

    Если их развязать, разместив на разных поддоменах, это позволит, например, независимо переезжать с сервера на сервер только бэку; или перенести статичный фронт на CDN, не трогая бэк.
    Ответ написан
    Комментировать
  • Что на сегодня лучше для нового проекта, GitLab vs GitHub vs bitbucket?

    @grinat
    В битбакете ci говно, маленький размер git lfs. В гитхабе есть github actions, но они так себе, cicrle ci и т.п. подрубаются только к открытым репам, зато там крутая интеграция с разными сторонними сервисами, хорошие инструменты для ревью, но оно бесплатно работает только с открытыми репами. В гитлабе хороший ci, большой халявный lfs, единственный минус, плохая интеграция со сторонними решениями. В общем если open source, то лучше всего хитхаб, если приватные репо, то гитлаб, битбакет говно.
    Ответ написан
    1 комментарий
  • Как работает WSUS?

    really4g
    @really4g
    А. Обновления имеют статусы: одобрено, не одобрено, отклонено.
    А0. Обновления есть обязательные, рекомендуемые, необязательные.
    А1. Одобрения проставляются вручную и автоматически по настроенным правилам. Происходит это довольно гибко, есть настроенное правило по умолчанию, в котором одобряются для всех выбранных продуктов обязательные обновления и обновления безопасности.
    Б. Обновления скачиваются только те которые одобрены.
    Теперь ответы
    1. Решать Вам, но если у появится ПК со старой версии ее как-то надо накатить, т.е. в итоге все равно скачать. Вы можете не устанавливать статус одобрено у обновления, тогда оно не будет качаться.
    2. По второму вопросу не подскажу ибо 10 не пользуемся.
    Подсмотрел на своём wsus, исходя из того что вам нужна 10 corp и ltsb выбрать следующие продукты на мой взгляд:
    Windows 10 ltsb, windows 10, windows 10 and later drivers, windows 10 and later upgrade & servicing drivers.
    3. Upgrade - это обновление, которое позволяет скачать пакет, включающий в себя средства по переходу на более свежую версию продукта. Утилиты.. надо завтра у себя на wsuse глянуть. Завтра коммент выложу.
    Утилиты в контексте wsus это Класс "Средства". У меня стоит галочка, но не могу сказать точно используется оно как таковое или нет.
    4. Драйвер как и любое обновление имеет одобрение или нет. Клиент wsus отсылает информацию на сервер в виде отчётов периодически, которые используются wsus для определения потребности в том или ином драйвере и/или пакетов обновления. Одобрите для установки скачает, поставит, не одобрите не будет качаться и соответственно клиент не будет знать, что есть какой-то драйвер.
    5. Новые пакеты не будут качаться, а старые останутся в базе. Есть механизмы чистки, с помощью этих механизмов происходит удаление неиспользуемых/устаревших пакетов
    6. Все в ваших руках - как я уже писал все зависит от того как одобряются обновления, если какое-то обновление что-то ломает всегда можно его найти в базе и изменить статус ( не устанавливать, не устанавливать и удалить с тех которые уже успели его скачать)
    К сожалению не дам конкретные источники которые бы Вам помогли, т.к. я со многими вещами разбирался сам, если будут вопросы задавайте, проще точечно помогать, когда уже есть какой-то опыт и что-то не получается.
    Ответ написан
    3 комментария
  • Почему материнская плата называется именно так?

    Ziptar
    @Ziptar
    Дилетант широкого профиля
    Ну для утилиты wmic, к примеру, она называется baseboard.
    Ответ написан
    Комментировать
  • Почему материнская плата называется именно так?

    @tormozedison
    Представьте себе самку любого млекопитающего, кормящую одновременно нескольких детёнышей - и станет понятно, откуда такая ассоциация.
    А так, это не единственное название. У "Агата", например, она зовётся "генплатой".
    Ответ написан
    Комментировать
  • Где зарегистрировать домен .io?

    @Ualde
    Если речь идет именно про .io, то рекомендую www.gandi.net/ — и проверен (куча отзывов на www.webhostingtalk.com/), и очень низкие цены (возможно и самые низкие).
    Ответ написан
    4 комментария
  • Какой движок выбрать для документации?

    wowgamr
    @wowgamr Автор вопроса
    Всем спасибо. Влюбился в Wiki.js ))
    Ответ написан
    1 комментарий
  • Образцовая реализация приложения на .NET Core?

    Ernado
    @Ernado
    Архитектор программного обеспечения
    Многие из проектов в этом списке можно взять брать в качестве образца релизации: https://github.com/dncuug/awesome-dotnet-core
    Ответ написан
    Комментировать
  • Есть перевод книги Building Web Applications with Visual Studio 2017 Using .NET Core and Modern JavaScript Frameworks?

    @denismaster
    npm install -g yo generator-aspnetcore-spa
    mkdir <dirname>
    cd <dirname>
    yo aspnetcore-spa


    Либо

    dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
    dotnet new angular


    Создаст скелет проекта на выбор, с любым популярным фреймворком.
    Ответ написан
    4 комментария
  • С каких пор появился фронтенд?

    @dmtrrr
    Backend developer
    В 2006 году появился AJAX, это сильно изменило мир фронтенда. Тогда и начался перелом.
    Ответ написан
    4 комментария
  • С каких пор появился фронтенд?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По пунктам:
    Почему в университете стало популярней разрабатывать сайты, ежели учить C++ и писать "толстые" клиенты.
    Потому что скриптовые языки дают существенно бОльшую скорость разработки чем C++ что собственно является главным аргументом. Разработчики стоят дороже железа условно.
    С++ остается в каких-то узко-специфических задачах со сложной математикой где производительности скриптовых языков не хватает. Писать на C++ интерфейс не актуально года с 2000 пожалуй что.

    Когда произошла точка перелома, что "тонкие" клиенты теперь популярней и почему? Хотя ведь мобильные приложения, это ведь тоже "толстый" клиент

    И мобильное приложение, и фронт сайта - могут быть и тонким и толстым клиентом, зависит от конкретного проекта.
    Это всегда баланс между бизнес-хотелками и затратами.
    Толстый клиент - лучше отзывчивость интерфейса, можно вынести часть нагрузки на железо клиента, дороже поддерживать (дорогие ios/android/angular/... разработчики, специфические проблемы синхронизации данных).
    Тонкий клиент - все наоборот :)

    UPD Если трактовать вопрос в стиле "почему веб более популярен чем десктоп":
    1. Как показывает практика любой софт который физически крутится у пользователя можно взломать и получить бесплатно. Если софт не лежит на торентах - скорее всего он никому не нужен.
    2. Многие сервисы сейчас продаются по модели ежемесячной-ежегодной подписки - это даёт существенно лучшие экономические показатели чем продажа платных обновлений.
    3. Интернет становится все более доступным и по географии и по $, все более быстрым.

    Все это делает модель SAAS и её наследников весьма привлекательным.
    Я бы сказал так - сейчас нужны какие-то ОЧЕНЬ веские причины не использовать SAAS.
    Ответ написан
    13 комментариев
  • Какова правильная последовательность вызова методов Web Api?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Маркер доступа (access token) вдается один раз. На стороне клиента сохраняется в sessiongStorage либо в cookies. Используется при каждом запросе к API. Как правило, передавать маркер доступа лучше через заголовки. При использовании HTTPS заголовки будут зашифрованы.

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

    Срок действия маркер доступа может должен быть ограничен. Срок действия зависит от условий использования и необходимой степени безопасности. Например, если маркер привязан к IP, то срок действия вполне может быть продолжительным.

    На стороне сервера, для проверки доступа можно сделать отдельный фильтр, примерно как показано в коде ниже:

    class ApiAccess : AuthorizeAttribute
    {
    
      public override void OnAuthorization(HttpActionContext actionContext)
      {
        if (actionContext == null)
        {
          throw new ArgumentNullException("actionContext");
        }
    
        if (!this.IsAuthorized(actionContext))
        {
          return;
        }
      }
    
      protected override bool IsAuthorized(HttpActionContext actionContext)
      {
        bool isAuthroized = base.IsAuthorized(actionContext);
    
        // логика проверки доступа
    
        IEnumerable<string> authItems;
        if (actionContext.Request.Headers.TryGetValues("Authorization", out authItems))
        {
          var auth = authItems.First().Split(' ');
          var token = service.GetToken(auth.Last());
          // ...
        }
    
        return isAuthroized;
      }
    }

    Фильтр добавляется к контроллерам WebAPI, где необходима проверка доступа:

    [ApiAccess]
    public class FileServerController : ApiController
    {
    
       // ...
    
    }

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

    let url = '/методAPI';
    let data = {}; // параметры запроса
    let headers = {
      'Authorization': 'ANYNAMEHERE ' + sessionStorage.getItem('token')
    };
    
    $.ajax({
      cache: false,
      processData: false,
      type: 'POST',
      url: url,
      contentType: 'application/json',
      dataType: 'json',
      data: JSON.stringify(data),
      headers: headers,
      success: (result) => {
        // успех
      },
      error: (x, textStatus, errorThrown) => {
         // ошибка
    
         // на сервер можно сделать исключение для плохих маркеров доступа
         // и проверить, если responseText содержит данный тип исключения,
         // то требовать у пользователя повторную авторизацию
        if (x.responseText) {
           let exception = JSON.parse(x.responseText);
           // AccessDeniedException - тип исключения в WebAPI, 
           // (скорее всего полное имя типа придется указывать)
           if (exception.ExceptionType == 'AccessDeniedException') { 
              // ...
           }
        }
      }
    });

    Что касается получения пользователем маркера доступа, то это можно сделать любым удобным способом. Например, показывать модальное окно для ввода логина и пароля, или перенаправлять на отдельную страницу.

    Если API используется через отдельный (независимый от API) сайт, который авторизует пользователей, то пользователя можно не привлекать к процедуре получения нового маркера доступа, сайт это может сделать сам и передать новый маркер своему пользователю.

    Если API используется в браузере, как есть, то маркер доступа можно передавать в параметрах запроса. Однако это небезопасно, т.к. данные будут в открытом виде.
    Ответ написан
    6 комментариев
  • Enterprise Library от Microsoft что дальше?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    стоит посмотреть в сторону bifrost
    Ответ написан
    4 комментария
  • Какой чипсет у роутера DAP-1155 REV.B1?

    @Dishair
    s0ci0pat - они не идентичны.

    CaptSmile - вы вводите людей в заблуждение, оп вшей ссылке d-link dap 1150 а не 1155 - будьте внимательны, у них разное железо - можно превратить свой роутер в кирпич.

    Chvalov - вы врядли сможете на сегодняшний день прошить dap 1155 прошивкой dd-wrt, dap 1155 имеет чип RTL8196C, пока что на него не вышло прошивки готовой.
    Есть информация по openwrt, https://forum.openwrt.org/viewtopic.php?id=31551
    Если сможете собрать из сырцов - отпишитесь, будет интересно )
    P. S. - Прошил свою dap 1155 rev A последней прошивкой от производителя - полет нормальный.
    Ответ написан
    Комментировать
  • Поиск программы для приведения музыкальной коллекции в порядок?

    dscmn
    @dscmn
    Beets — консольный менеджер на питоне. Кроссплатформенный. Поддерживает плагины. В том числе, есть плагин для фингерпринтинга.
    Ответ написан
    Комментировать
  • Поиск программы для приведения музыкальной коллекции в порядок?

    petrb
    @petrb
    А вы каким проигрывателем пользуетесь? Если iTunes вам не чужд, то вот ссылка на хабрапост «Приводим фонотеку в iTunes на нашем Mac OS в порядок».
    Правда у меня картинки не грузятся, но суть там не в картинках.

    Или же Вы специально не писали название проигрывателя, потому что не пользуетесь никаким из?
    Ответ написан
    2 комментария