• Как избавиться от попадания запроса в очередь, при использование nginx как кеша картинок?

    ayazer
    @ayazer
    Sr. Software Engineer
    в соотв. с RFC 2616 браузер ограничивает кол-во одновременных запросов к 1 серверу. И если хром дает одновременно выполнить 5-6 запросов, то у других браузеров лимит еще меньше. Так что проблема не в нджинксе.
    Ответ написан
    1 комментарий
  • Как транслировать потокое видео с экрана компьютера на веб-страницу?

    ayazer
    @ayazer
    Sr. Software Engineer
    вы переизобрели MJPEG. он используется во всяких системах видеонаблюдения т.к. из-за минимального кол-ва сжатия дает хорошие стопкадры. главный недостаток - по той-же причине потребляет огромное кол-во трафика (реально огромное, видео на 5-10 минут с фпс 20+ в этом формате будет занимать пару гб). Выше в комментариях советовали использвать вебртс. Так вот, на всякий случай - он тут нахрен не нужен. Но обратить внимание на H.264 который там используется можно. Что видео в mjpeg, что h.264 можно просто и без лишних телодвижений открыть в браузере как стрим. А нативная поддержка видеокодека в браузере будет работать быстрее чем рендер кадров джаваскриптом.
    Ответ написан
    4 комментария
  • Как задать Target framework на visual studio?

    ayazer
    @ayazer
    Sr. Software Engineer
    .нет кор не может таргетится на .нет фреймворк. это разные вещи. есть .нет стандард, и .нетовская библиотека совместимая с ним может быть без проблем собрана под .нет кор. Если такая возможность в студии и была, то скорее всего она означала мультитаргет на .неткор + нетстандард соотв. нужной версии .нет фреймворка. И в дальшнейшем ее выпилили чтоб не путать людей.

    Если нужно именно использование .нет фреймворка то надо создавать нет .нет кор проект, а просто десктоп/веб.

    Ну а вообще 4.6.1 совместим с нетстандартом2.0, потому их вполне реально использовать вместе, все популярные нюгеты уже давно имеют версии под все таргеты. Но если нет надобности/планов запускать все под линуксом (не через моно) - лучше везде использовать что-то одно.
    Ответ написан
  • Какие дипломы/сертификаты по C#, VisualStudio, ASP.MVC, web - можно получить?

    ayazer
    @ayazer
    Sr. Software Engineer
    MCSA: Web Applications (70-480/70-483 + 70-486)
    MCSD: App Builder = MCSA + 70-532/70-535/70-487/еще парочка менее интересных

    статус MCP получается навсегда, сертификации MCSD надо подтверждать раз в 3 (или 4?) года. но подтверждать проще, там надо будет только 1 сертификацию проходить (по крайней мере так было года 3-4 назад).

    сертификации на самом деле достаточно простые (хотя бывают достаточно спорные вопросы), но лучше дождатся акции когда в 80$ входит еще 1 попытка перездачи.

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

    все остальные сертификации - либо лютый треш на уровне "вспомните какие параметры в каком порядке надо передать в <название библиотеки>" / найдите пропущенную запятую в листинге в 50 строчек без какой-либо подсветки, либо проходятся не особо отвлекаясь от просмотра ютуба.
    Ответ написан
    Комментировать
  • Как разобраться с типами проектов .net core и где тут ARM?

    ayazer
    @ayazer
    Sr. Software Engineer
    То есть, насколько я понимаю, несмотря на то, что у меня выбрано приложение .net core, оно всё равно будет создано под целевую платформу .net framework? И, соответственно, будет работать только на винде?

    это было бы странно. нет, будет создан .нет кор проект.

    а что тогда во втором столбце, что еще за runtime?

    1 - сдк для разработчика, 2 - рантайм для клиента (на котором будет выполнятся приложение). если знакомы с той-же джавой то это JDK/JRE соотв.

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

    нет, для пишке нужен только рантайм

    Почему в .net core пошло разделение на x64 и x86

    ну это в принципе разные архитектуры. такое разделение везде

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

    если не использовать прекомпиляцию ngen-ом то пофиг. указывайте x64-x86 (для полного фреймворка) или версию неткора в качестве целевой платформы, все остальное - проблема .нета

    На компьютере x64 нужно установить SDK x86, чтобы писать под x86 архитектуру?

    нет

    Что мне необходимо установить и как правильно скомпилировать приложение при разработке на винде?

    с 2.1 версии неткор поддерживает ARMv7/v8. потому на пишку нужно установить .неткор рантайм нужной верии и под него компилировать на рабочей машине. все остальное - проблемы рантайма. Собственно именно для этих целей он и был нужен.
    Ответ написан
    3 комментария
  • Можно ли начинать разработку проекта на ASP.NET Core?

    ayazer
    @ayazer
    Sr. Software Engineer
    В принципе использовать можно, надо надо быть готовым что иногда вылазят проблемы которых ты не ожидал бы работая с .нет фреймворком. Для того-же серверлесса на амазоновских лямбдах можно пока использовать только .нет кор 1.1, а он под линуксом в некоторых ситуациях дико течет. в 2.0 проблему пофиксили, но официальный ответ амазоновского суппорта по поводу миграции на 2.0 - "в роад мапе нету, ничем не можем пока помочь". Причем докер контейнера с окружением который крутится в амазоновской лямбде нету только под .нет кор, для остальных языков можно спокойно его скачать и потестировать у себя локально. В итоге ждем ре:инвент в декабре, есть надежда что таки будет анонс. Опять таки, анализ дампов .нет кор приложения которое работает на линуксе - gdb/lldb в зубы и вперед. Никаких привычных инструментов.
    Ответ написан
    Комментировать
  • Как делать запросы sql файлу без СУБД?

    ayazer
    @ayazer
    Sr. Software Engineer
    самая обычная встраиваемая база это, ей для работы не нужен отдельный сервер т.к. вся необходимая информация хранится в одном файле. Причем скорее всего это SQLite, с драйверами для которого не будет никаких проблем. Чтоб проверить - можно скачать какой-то SQLite Manager и просто попробовать им открыть тот файл. Если не заработает - тогда уже надо будет садится и проводить детальный анализ.
    Ответ написан
  • Наследование об базового класса Object в c#?

    ayazer
    @ayazer
    Sr. Software Engineer
    если мы ничего явно не указываем - мы наследуем базовый Object. Если мы указываем какой-то класс - мы наследуем именно его (а он уже в свою очередь наследует базовый Object)
    Ответ написан
  • Как можно реализовать аналог msqrd в веб-приложении для изображений?

    ayazer
    @ayazer
    Sr. Software Engineer
    Слишком мало информации, но в любом случае пара дней - ну ОЧЕНЬ оптимистичная оценка. Я бы ее увеличил минимум до пары месяцев только на примитивный прототип.

    как вариант ( возможно не совсем правильный и оптимальный, но работающий):
    1. определение контуров (методы превитта/собеля)
    2. классификация контура (чтоб понять что это мы нашли, и какие варианты для "замены" потом можно использовать). Я бы тут смотрел в сторону персептронов/сверточных сетей (да, их еще нужно будет обучать)

    само собой обрабатывать изображение нужно будет на сервере (я бы предложил связку python + theano/tensorflow/skilean) Я никогда не работал с OpenCV, но возможно что в нем уже реализована часть нужного функционала (по крайней мере про выделение контуров точно должно что-то быть).

    после того как выйдет обучить нейросеть на серверсайде - можно будет попробовать перенести все решение на сторону браузера (алгоритмы выделения контура + нейросеть + коэфициенты которые мы получили после обучения ее на серверсайде).
    Ответ написан
    3 комментария
  • Поширить переменную по классам?

    ayazer
    @ayazer
    Sr. Software Engineer
    для этого есть Dependency Injections. Раз тег c#, то можно посмотреть на какой-то Ninject/autofac

    https://autofac.org/
    www.ninject.org
    Ответ написан
    1 комментарий
  • Как сделать выборку, (многие ко многим)?

    ayazer
    @ayazer
    Sr. Software Engineer
    не нужно тут выполнять 2 отдельных запроса, все можно достать одним же

    var products = from p in context.Products 
                                   join o in context.Orders on p.Order_Id equals o.Id
                                   where o.Id == <НОМЕР ЗАКАЗА>
                                   select p;


    АПД:
    LINQ запросы ленивые. Этот код просто построит запрос, но не будет выполнять его до момента пока на самом деле не понадобяться данные. Если нужно их передать в другой контекст - можно сразу сделать что-то типа .AsEnumerable() чтоб загрузить все данные в память.
    Ответ написан
    Комментировать
  • .NET неоправдано сжирает память?

    ayazer
    @ayazer
    Sr. Software Engineer
    1) алгоритмы сжатия изпользуют доп. память для генерации словарей. Размер словаря будет зависеть как от алгоритма сжатия, так и от данных которые надо сжать.
    2) для того чтоб освободить память от кучи хлама - можно сделать GC.Collect для инициализации сборщика мусора. В данном случае прийдеться делать GC.Collect(2), что достаточно дорогая операция.

    кроме того, следует помнить про нюансы сборки мусора для LOH. В отличии от SOH, для LOH не будет проводиться дефрагментация данных в памяти, а CLR будет просто пытаться переиспользовать освободившиеся куски. Потому вполне возможна ситуация когда память в куче вроде как есть, но CLR продолжает ее выделять для новых обьектов.
    Ответ написан
  • Когда использовать try и catch?

    ayazer
    @ayazer
    Sr. Software Engineer
    странно что никто не сказал что try-catch еще следует использовать когда мы не знаем как обрабатывать возникшую ситуацию, и нам надо просто вернуть управление выше по стеку.
    Ответ написан
    Комментировать