Задать вопрос
  • Где найти материалы по обнаружению патологии в мед.изображении на языке C#?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача распознавания образов (а именно так звучит на самом деле постановка) имеет очень мало отношения к C#.
    Я-бы советовал автору вообще забыть про C# а искать сверточные (convolution) нейронные сети которые ищут в картинках нечто знакомое на любых (на всех языках разработки). Когда стоит такая амбициозная задача - то нужно вообще забыть про язык и мыслить категориями математики и известрых алгоритмов НС.

    Задача сразу скажу - сложная. И на 99% - кастомизируемая. Тоесть вы не найдете готовых шаблонов или походов к решению. Вы будете почти все делать самостоятельно. Особенно в части обучающей выборки и методики обучения. И в части выбора качества модели.

    С высокой вероятностью вы найдете примеры похожих решений на Python/OpenCV.- Ваша задача будет заключаться в поиске полезного что можно почерпнуть из готового метода. И уже потом адаптировать под C# что можно из этого стека. Но опять-же ... C# здесь совершенно вторичен.
    Ответ написан
    1 комментарий
  • Можно ли заставить нейросеть заставить избегать определенных состояний?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нейросеть - это функция с множеством входов и множеством выходов.

    Краткий ответ - да можно. Если при обучении вы будете указывать отсуствие этих состояний.

    Более полный ответ - зависит от архитектуры сети. Например сеть Хопфилда не то что избегает а скорее наоборот
    притягивается к нужному числу состояний. В этом ее суть. Как ее заставить что-то избегать я не знаю. Скорее
    это вопрос философии и определений чем вопрос математики.

    Вот если автор конкретизирует свой вопрос на примере - то тогда наверное можно что-то обсудить.
    Ответ написан
    Комментировать
  • Смена названия месяца?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все разработчики раз в жизни сталкиваются с календарными расчетами. И прежде чем решать что делать с 31 января - задайте себе вопрос - а что за дата будет опубликована? Дата сервера? Дата клиента? Это могут быть разные даты. Вспомним что люди живут в разных часовых поясах.

    Поэтому задача смены января на февраля - это игрушка. Это не настоящая задача. И надо обсуждать ее чуть более глубоко.
    Ответ написан
    Комментировать
  • Как хранить переменные в кэше, а через 3 часа их сбрасывать и запрашивать новые данные?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Технически, выгодно установить redis или memcached и класть данные туда и запрашивать оттуда с указанием времени жизни для каждой записи (expiration = 10800 seconds)
    $ redis-cli ......
    set key ${city_id} ...... ex 10800
    Ответ написан
    1 комментарий
  • Как реализовать нейросеть с неограниченным количеством входных данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы не хотел быть медведем который оказывает медвежьи услуги. Но индексирование например
    текстовых документов в некоторых системах текстового поиска - предполагает хеширование токенов.
    Там 18-20 битный хеш. И ограниченное число токенов в индексе документа изначально. Но это не мешает
    системам текстового поиска нормально работать. Погрешность есть - но небольшая. Особенно
    когда вы указываете 2-3 токена для поиска и результат поиска можно еще фильтрануть.

    Вот. Это была лирика.

    Но что-то мне подсказывает что техническое задание недостаточно проработано. Я объясню свою
    мысль. До обучения выборка должна быть разделена на две части. Обучающую. И контрольную.
    И на этом этапе можно сделать подсчет фичей.

    Это - требование. Иначе как ты сделаешь контрольную проверку что твоя модель - добротная
    и заходит в критерии приёмки?

    Вообще нейросеть это пока не система реального времени. Поэтому не надо требовать от нее мгновенных
    ответов пока она еще находится в процессе обучения. И не надо ставить задания типа сделайте
    мне "хоть какую угодно НС" которая на выходе выдает "ЧТО угодно".
    Ответ написан
  • Переквалификация из админа в программисты?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1. Какой шанс попасть на Джуна в 35? (это с расчётом что мне год-два учиться) Если шансы небольшие, то как обстоят дела с фрилансом, есть смысл?
    2. За сколько примерно времени можно обучиться до уровня Junior, если я буду тратить по 20 часов в неделю? Или этого совсем мало?
    3. Что выбрать - Frontend или Backend? Какие специалисты более востребованы и кому легче найти работу? Насколько важно знание математики в backend'е?

    По поводу шансов. Если ты был на производстве и уже писал вспомогательные скрипты на Python и они работали - то у тебя даже больше шансов чем у выпускника школ или курсов. По крайней мере надо подумать как улучшить твоё резюме чтобы оно смотрелось как резюме дев-опса. У тебя есть опыт. А это - самый сильный аргумент при собеседовании. По крайней мере тебе надо рассказать чем ты занимался и описать пару кейсов-проблем где ты участвовал и как фиксил.

    Сколько времени обучаться - я не знаю. Тут может от 1 месяца до нескольких лет. Я-бы не стал делать какие-то ставки на время обучения. Тут важет факт захода в новую должность. Подучишся параллельно. Мы все учимся задним числом. Тоесть заходим на проект почти нулями и догоняем в процессе. Это нормально. Когда забегает менеджер и спрашивает - "так кто знает Scala/Hadoop" - я поднимаю руку хотя я ее нихрена не знаю в полом объеме но у меня есть в себе ожидания того что я могу быстро догнать те пункты которых еще не хватает.

    Кстати друг рассказывал. Аналогичная ситуация в гейм-деве. Никто не спрашивает 100% объема знаний фичей С++. Это реально сложно знать все. Зато интересуются например знаешь ли Unreal Engine. И второе в данном кейме перевешивает первое. Тоеть знания языка были вторичны.

    Что выбрать - Frontend или Backend. Честно скажу что мне бекенд интереснее. Там - много ресурсов. Как говорил мой шеф - процессорА-винчестерА-стриммерА. Там - можно широко применять знания алгоритмов и структур данных и эти знания сцуко РАБОТАЮТ. Во фронтенде - нужно в первую очередь знать как работают современные стандарты верстки и знать JS. Лично меня разработка на современном фронте вгоняет в депрессию. Эта чехарда фреймворков .. эти React/Angular/Vue и все постоянно меняется. Ты пытаешся зацепиться за какую-то концепцию или занния ... но сами фронтовики эти знания разваливают и переключаются на что-то новое каждые 2-3 года. Вобщем упаси бог от таких революций. Мне фронт был понятен лет 20 назад когда это был html+css+js и в том виде как его делают сейчас сложно все знания собрать и систематизировать.

    По поводу математики. В большинстве проектов (8 из 10) ябы сказал что тебе хватит школьной математики. Никто звезд с неба не хватает и большая часть приложений электронной коммерции использует 4 математические операции и расчет процентов. Я лично знаю десяток синьоров-помидоров которые даже и не помнят что такое синус или среднее квадратическое отклонение ряда, но нормально себя чувсвтуют и зарабатывают. Вобщем финансовая арифметика базируется на очень простой математике. Если что-то и будет сложнее - то оно как правило завернуто в коробочку фреймворка или либы. Вот сейчас даже ML с нейросетями продают как библиотеки к python и я готов спорить на виски что мамкины-питонщики даже понятия не имеют как оно работает под капотом. Когда я учился мы изучали что такое многслойная НС и как она учится а когда курсы готовят МЛ-ликов - они дают им просто коробочные названия технологий и дают сами коробочки.

    Есть ли смысл начать с фронта, и далее по ходу дела учить бекенд? Однозначно да.
    Ответ написан
    1 комментарий
  • Как обойти ошибку печати линукс минт?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно дейстовать как делают сисадмины. Собрать сначала все сведенья. Что за линукс? Минт - это просто маркетинговое название. Для фикса проблемы - ничего пока нет. Нужна модель-версия ядра с точностью до билдов (uname -a). Потом обновить всё. Вообще всё. (apt update && apt upgrade). Потом посмотреть версию модель принтера и версию дров принтера (lp, lpadmin, lpstat). Вот иди по ключевым словам в гугл и копай.

    С подшивкой всей этой информации сюда приходи.

    P.S. На командный пункт меня доставьте...
    Ответ написан
    Комментировать
  • Как поменять 2 функции в один класс?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть две функции и класс сервис. Для упращения функцию сервиса буду называть ФС. Так вот обе функции одинаковые до момента использования ФС в функциях. Как быть в таком случае? Делать абстрактный класс и абстрактную функцию, где будет вынесен общий алгоритм. А в абстрактной функции сделать вызов функции. Это нормальная идея или нет?

    Здесь - недостаточно информации. Можно начать с того что нет даже оснований для ООП.
    Есть просто какая-то функция которая висит в космосе. Ты можешь ее просто объявлять функцией.
    ООП не запрещает функции.

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

    Иначе получается битва телепатов. Мы тут мним твой исходник каждый в своём языке.
    Ответ написан
    Комментировать
  • Как превратить подстроку вида "min ( a, b )" в "a min b"?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Поскольку случай - очень простой, то он решается шаблоном. Но если вместо а или б может быть
    тоже выражение - тогда нужно определять свою грамматику. Например:
    min ( min(a,b) , min (c,d) )
    Тогда умные дядьки-теоретики берут язык описания грамматик. EBNF типа. И пытаются
    свой новояз описать в терминах например EBNF https://en.wikipedia.org/wiki/Extended_Backus%E2%8...
    Описывают что такое число. Какое оно. Отрицательное? Вещественное? Экспоентциальное?
    Короче надо описать вообще все что может быть. Описывают функцию минимума.
    Потом по этой грамматике создают парсер. Программно. И парсер на выходе выдает
    дерево. Где корень - это вся грамматика а на листиках будут висеть числа. Или терминалки не помню
    как они это называют. И вот когда ты уже получил это чортово дерево - можно ПРИСТУПАТЬ ко второй
    части задачи - а именно к транформации в инфиксную форму. Но ты сначала реализуй хотя-бы первую
    часть.

    Это все теория и она требует погружения. Я думаю что эта задача и ей подобные в частных случаях
    решаются проще. Если например твой язык поддерживает регулярки - то перечисли макс. число
    вариантов что будут на входе и выбери через матчинг подходящий. Это - быстрее.
    Ответ написан
    Комментировать
  • Почему падает no such column?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта команда - опциональная.
    CREATE TABLE IF NOT EXISTS users
    тоесть она могла и не выполнятся. А если она не выполнялась - то очевидно что существует другая таблица users.

    Давайте смотреть что в этой другой таблице. Автор неужели ты не мог логгирование добавить? Этож просто. Хоть бы знали работал ddl или нет.
    Ответ написан
    Комментировать
  • Существует ли способ проверить является ли заданная строка корпоративным email или нет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задача - вообще не про регулярки.

    Нужна база корпоративных почтовых доменов. Поищите в открытом доступе. Сейчас есть много источников.
    Я в пиратской бухте находил антиспам стоп-листы и целые базы различных больших данных частными адресами.
    В учебных ресурсах по биг-дате может быть. Поищите на kaggle.

    Приготовтесь к тому что данные будут грязные и нужна будет какая-то очистка.
    Ответ написан
    Комментировать
  • Как вычислить центр дуги окружности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Задачу можно решать многими способами. Например. Рассмотрим векторы образованные центром O(ox,oy) и точками A(ax,ay), B(bx,by). Их сумма по правилу паралеллограмма даст нам направление для биссеткрисы угла
    которая образована AOB. Уравнение биссектрисы будет известно.

    Решаем пересечение этой прямой с окружностью и получаем искомый центр дуги.

    Что в этой задаче плохо. В этой задаче - "ленивый" автор который не удосужился придумать названия для точек и заставил всех придумывать свои нелепые названия или писать словами.

    Что еще плохо. В этой задаче на самом деле не одна а две дуги. Но мы каким-то образом должны догадаться что речь идет о малой дуге. Об этом - тоже надо сообщать. Это раздражает.

    На будущее - оформляй задачи как в задачнике.
    Ответ написан
    1 комментарий
  • Как программно декодировать 4-QAM сигнал в диапазоне звуковых частот?

    mayton2019
    @mayton2019 Автор вопроса
    Bigdata Engineer
    QAM4 - можно рассматривать как QPSK, которую в свою очередь можно рассматривать как 2xBPSK, т. е. как два независимых сигнала Cos и Sin одинаковой частоты и амплитуды, но сдвинутых по фазе. Иными словами, решить систему уравнений вида sin+cos=A. В любом случае вы вычисляете точку на созвездии, а затем принимаете решение, какой именно из 4 фиксированных эта точка является.

    Да. Я решил умножать измеряемый сигнал скалярно на синусоиду и косинусоиду. Для простоты Это будет
    вектор кратный периоду семплов. Причем максимально большой чтоб не делать лишних расчетов.
    И максимально маленький чтоб не превышать половину (или меньше) импульс модулирующего.
    В результате получим набор звездочек. Они будут прыгать и плавать по комплексной плоскости и дальше
    надо будет угадывать что есть что.

    1) Маркировать начало передачи или иным образом синхронизировать такты (фронт волны).
    2) Детектировать условия среды передачи. Зная отправленный и имея принятый синхросигнал, можно определить параметры среды и определить корректирующие коэффициенты для дальнейшего приёма. В данном случае, это будет нулевая фаза и амплитуда.

    Я думал так. Пускай QAM фазы кодируют 00,01,10,11 биты соотвественно. Тогда пилот-тон будет длинной последовательностью (3 секунды) фазы 00 после которой любое изменение будет означать начало передачи.

    Если в пилоте фаза 00 сместится с 45 градусов допустим на 130 - мне будет пофиг. Я просто буду считать ее
    началом отсчета. Вычту из всех фаз 130. Ф1 = 130 градусов.

    Далее. Если звезды будут дрейфовать или поворачиваться по кругу мне придется на ходу подстраивать
    эту фазу Ф1. Вот как ее подстраивать я еще не придумал.

    UPD: Не туда закинул. Модератор перекинь пожалуйста в комментарии.
    Ответ написан
    Комментировать
  • Это синтаксический сахар или есть какая-то существенная разница?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В Java Language Spec - Глава 10.2 https://docs.oracle.com/javase/specs/jls/se19/jls19.pdf
    Ответ написан
    Комментировать
  • Как убрать binlog mysql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для начал посмотри что в них внутри. Вот как тут пишут https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlo...
    Может это и не ты накрутил а просто новая версия прикладного софта работает. Что-то обновляет интенсивно.
    Ответ написан
    Комментировать
  • Для чего нужна Java, что можно на ней конкретно написать и стоит ли вообще ее учить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Согласно рейтингам tiobe и renmonk Java стабильно кувыркается где-то на 4 месте в рейтинге популярных языков разработки. Рейтинг Редмонка собирается из двух рейтов популярности (кажется количество вопросов в стековер и количество проектов на гитхабе. Ну или может как-то сложнее ХЗ).

    Первым трем местам в этом анализе я-бы не сильно доверял. Там постоянно идет ротация то JavaScript выскакиевает то C то Swift но ситуация каждый год - новая. Вот сейчас там висит Python... Наверное девопсы подсуетились. И сайентисты.

    В чем сила Java сегодня? Ну во первых в большом объеме легаси кода который уже написан и работает. Java сегодня занимает нишу COBOL в банках и финансовых организациях. И если вы хотите средний достаток, (машина дом, vacation) - то идите спокойно в java и будет кусок хлеба.

    Во вторых в толстом репозитарии бесплатных библиотек на все случаи жизни.
    Например я уже 2 года не пишу на Java ничего ради денег. Но в некоторых скриптах на Scala/Databricks я спокойно подключаю Java-библиотекие (всякие sftp клиенты, json/xml парсеры) и все это нормально интегрируется и работает. И слоган про wrote-once - это не шутка. Это правда работает и в доказательство - целый репозитарий таких либ на mvnrepository.com. Они будут совместимы c Kotlin/Groovy/Scala короче со всеми JVM-based языками.

    Лично я считаю Java как язык слишком многословным. Многие вещи можно короче запрограммировать. Но это просто моё ИМХО. При игры - ничего не скажу. Не знаю. Но вот на Kotlin что-то пишут под Андроид.

    И вообще программист должен больше выбирать род деятельности (фронт или back или железо и микро-контроллеры) а языки учить всю жизнь. Вот так. Вы всю жизнь - студент.
    Ответ написан
    4 комментария
  • Как обозначается НЕ делимость на число?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если 7 не делится на 2 то можно написать:

    7 ≠ 0(mod 2)
    Ответ написан
    Комментировать
  • Что подкрутить в redis что бы ускорить его работу??

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это очень хорошие цифры. Пол-миллиона GETs в секунду.
    GET: 585052.62 requests per second
    Возможно у вас нет проблем с redis. Посмотрите в другие части системы. Действительно-ли БД и прочие сервисы отдают данные так быстро?
    Ответ написан
    Комментировать
  • Как преобразовывать тип данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ремарка по поводу этого кода.
    void division(){
            int divi = static_cast <float> (a) / b;
            if(b != 0){
                cout << divi;
            }
        }

    В расчетах с floating point результат деления 0.0/0 вполне себе определен. Это неопределенность (NaN) и она вполне себе легальна в домене вещественных чисел. Или бесконечность разных знаков (Inf) если только знаменатель равен нулю. По неясным причинам автор отвергает этот результат.
    Более того в ответе будет напечатано

    cout<<"Деление:";

    и тишина. Неясно отработал метод или нет. Это дефект приложения.

    Как бороть такую проблему. В целых числах - никак. Нет легального способа. Я обычно делаю Optional
    std::optional<int> safe_div(int x, int y) {
       .....
    }

    Опционал - это коробочка в которой либо лежит число либо не лежит. Вызывающая сторона соотв
    обязана исполнить протокол вскрытия этой коробочки. Проверить что она непустая.

    Или можно попробовать монаду Either где можно указать причину ошибки.
    Не знаю есть ли это в С++ но должно быть. Во всех нормальных языках должно быть.

    Float/Double - это коварные типы данных. Они доставляют немало хлопот для bigdata. И с ними надо быть
    аккуратными. Главное правило - кастинг из floating point в целые числа в общем случае не работает. Нужно
    думать над отработой исключений всегда. Тоже самое касается диапазонов. Они коварны. И можно терять
    занчимые разраяды на конверсиях. Ответственность за эти действия ВСЕГДА лежит на программисте.
    Ответ написан
    Комментировать