• Как улучшить алгоритмическое мышления?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    прорешай 1000 задач с олимпиадного программирования (желательно с повышенной сложностью), и все прийдет само
    Ответ написан
  • Как ограничить вызов API тремя запросами в секунду?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    на АККА есть так называемый circuit breaker (реализующий этот подход) (на пхп вроде нет акка)
    суть такая, есть посредник, который следит за исполнением запросов, через этот посредник отправляются все запросы, и он следит за их исполнением (в случае ошибок, пересылает заново, и тд).
    Также например при обращении к нему этот посредник начинает считать количество обращений в течении одной секунды-> после 3х обращений, начинает через паузы в 1 секунду например отправлять дальше запросы)
    как только, обращений меньше одного в секунду, счетчик сбрасывается.
    В целом такой подход позволяет например по 3 обращений моментально делать, и только потом включать паузы, а также следить за исполнением этих запросов, без необходимости реализации такой логики непосредственно в самих вызовах.
    Ну и конечно если у тебя такие потребности, то пора уже про пхп забыть)
    Ответ написан
  • Что делать когда коллеги уровнем ниже?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Ну это неизбежно, мир такой какой он есть, он не совершенен и ты вынужден работать с тем что есть, большинство разработчиков которые доступны вашей компании скорее всего посредственности. Важно даже имея посредственных разработчиков, создавать стоящий, конкурентоспособный продукт.
    Ну а куда ты думаешь уйти где такого не будет? Это везде, включая топовые компании (у которых слишком сложные и большие продукты, чтоб быть во всех деталях высокого качества).
    Ответ написан
  • Как связать обороты в минуту и шим?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Ну как, как -> если документации нет тогда подаешь частоту, замеряешь результат вращения, подаешь другу частоту, замеряешь еще один результат. Собираешь статистику, строишь модель взаимосвязи, может линейная, может не линейная, нужно разбираться, в любом случае у тебя будет грубая модель, которую можно только вместе с ПИД регуляцией использовать, для задания начальных значений.
    Ответ написан
  • Что выбрать Macbook Pro 15 TB 2016 или 2017?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    1. Mid 2016 или 2017? Почему?
    более современное железо - кабилейк и новая видюха, дают существенную прибавку в скорости, ну и ссд в 2017 моделе быстрее 2016 модели, ну и сам понимаешь 2016 году - это первая пробная модель, 2017 - уже обкатанная модель с доработанными ошибками особенно с батареей.
    Ответ написан
  • Чем отличается автоматическая классификация от распознавания образов?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    теоретически можно конечно сказать, что например классификация - это выбрать из предоставленных классов.
    а распознавание, это вобще понять есть там, что-либо из представленных классов или НЕТ.
    грубо говоря при классификации - фотографий на кошку и собаку, все фотографии будут классифицироваться как кошка или собака, даже если на фото, унитаз.
    при распознавании, типа есть ответ -> что походу на фото ни кошки ни собаки нету.
    но это на первый взгляд, на самом деле даже такая разница нивелируется, если мы расширяем классификацию не на "кошка/собака", а на "кошка/собака/прочее", тогда опять задача распознования сводится к задаче классификации (хотя она изначально и была такой).
    Сегментация это часть классификации, более того например "нейрон" в нейросети, это небольшой классификатор, поэтому абсолютно любую задачу решаемую с помощью нейросетей, можно называть задачами классификации.
    А можно пойти дальше, и показать что любой метод фактически базируется на классификации (сигналов в нейросети, узлов в деревьях, вероятностей в статистических методах и тд)
    Ответ написан
  • Какой язык в данный момент востребованный?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    обьективно -> JS
    субьективно -> являясь самым ужасным
    Ответ написан
  • В чем смысл запускать на Х-ядерном процессоре более Х потоков?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    да эффективность падает при переключении потоков, НО для нас важно исполнение задач именно параллельно, например ты ведешь мышкой по экрану - это отдельный процесс, который работает и должен работать параллельно.
    опятьже нужно понимать что один поток не может выполняться эффективно изза задержек -> как уже упомянули одни из самых длительных задержек при обращении к сети или жесткому диску, пока данные оттуда придут, можно переключить задачу, без потери производительности.
    при этом следует помнить что например поступление данных из оперативной памяти тоже имеет свои задержки, и если и пока очередная порция данных из оперативной памяти поступает, тоже можно переключиться на процесс в котором данные уже поступили и тд.
    Ответ написан
  • Конкретный метод протестировать идею стартапа дешево и быстро- кто знает?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    ну ты конечно можешь какие-то опросы делать и тд. НО реально пока у тебя нет продукта, все равно все эти "тестирования", не значат ничего. Ты вынужден будешь делать сам продукт, другое дело что это может быть пробный начальный прототип чтоб только проверить как все работает и людям дать потыкать.
    Иногда делают виртуальные прототипы, в которых нет функционала, а только эмуляция функционала, тоесть можно им попользоваться, но там только интерфейс эмитирует штатную работу.
    Ответ написан
  • Нейроная сеть на бумаге?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    ну вот на пальцах например:
    у тебя фотография эта делится например на 9 секторов
    в каждом из них есть состояние например 1 или 0 (на состояние секторов ты не влияешь, а только оцениваешь)
    допустим данные с этих секторов считывает один нейрон - после того как он считал состояние всех секторов он должен делать вывод - круг это или квадрат
    этот вывод он делает на основе так называемой "решающей функции".
    допустим решающая функция такая - если сумма всех значений всех секторов больше 5 - значит это квадрат если меньше то это круг (решающие функции могут быть сложнее, но важна сама суть поиска решений)
    и суть такая ->
    на сами входящие значения ты не можешь влиять, поэтому чтоб влиять на результат, ты можешь перемножать на определенный коэффициент входящие значения, и варьируя коэффициент умножаемый на входящее значение ты подгоняешь результат "решающей функции" под требуемый результат. Подгонка эта происходит через процесс называемый обратное распространение ошибки.
    на входе 8 единиц (круг), в начале коэффициенты например равны единицы - сумма всех входящих значений умноженных на коэффициент - равна 8, ты проверяешь, соответствует она твой схеме (при которой круг это значения меньше 5) - нет 8 больше 5, значит ты понижаешь немного значения коэффициентов (обычно изменяют значения не сразу на необходимую величину а на небольшое значение, называемой лернинг рейтом) например на 0.1 (есть много других схем изменения коэффициентов), но вот из-за того что ты показываешь примеры с кругом и квадратом, то повышая на 0.1 значения активировавших нейрон входящих сигналов то понижая, у тебя выходит нужная схема, при которой при входе 8 секторов с единицами, 1 центральный ноль, у тебя сумма с коэффициентами выдает в ответе 4.8 например, что соответствует кругу, а значит коэффициент для всех входящих значений равен 0.6
    П. С.
    сама смысловая связь между каким-то классом, и значением больше 5 или меньше 5 - делает баесовская функция в нейроне, здесь же мы эти значения задали самостоятельно.
    Ответ написан
  • Какие существуют подходы для парсинга больших данных?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    обычно если запрос блокирующий, то на него накладывают разные ограничения, чтоб сервак хоть как-то отвечал, и не было длительных блокировок, лучше не пытаться обходить эти ограничения (тк они достаточно разумные)
    ПХП - это скриптовый язык, не вполне для анализа больших данных, используте его для формирования обработки задач в других продуктах, например apache spark
    Ответ написан
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    чувак, исходи из текущих задач -> сам МЛ очень широченная область, возьми какую-нибудь задачу, начти ее разбирать для начала используя язык который тебе привычнее.
    Потом уже глядишь другой язык переключишься, несколько языков использовать нет проблемы, путаться ну да будешь немного, ну постепенно выберишь и язык который тебе будет удобнее для работы с с анализом данных, и это не только питон и С++
    Ответ написан
  • Как правильно оценить стоимость своей работы?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    не правильно Дядя Федор, ты себестоимость своего труда считаешь.
    Даже если у тебя 500 рублей в час -> ты не учитывал накладные расходы, на поиск и обработку заказа (даже если тебе чувак сам написал), на тестирование, на всякие согласования и консультации, на сдачу / приемку. Ты не учитываешь что у тебя из переговоров только какая-то часть получается заказов (соответственно ты тоже должен это включать в расчет цены), и потраченное время на других потенциальных заказчиков тебе тоже кто-то должен возмещать, иначе ты с голоду помрешь при такой калькуляции что сейчас у тебя есть.
    но это все "себестоимость" - реальная цена труда - это столько за сколько ты можешь его продать (а это уже продавать нужно уметь), и я тебе говорю, можно продавать раз в 10 дороже чем ты это делаешь сейчас,
    пойми -> ты продавал продукт (в виде бота), а не 1 час программирования.
    Вобщем мой совет тебе обратится такой "желающий" за 500 рублей бота получить, говори ему сразу например 20 тысяч -> и пускай валит кулем, если нет столько бабок за разработку -> значит не дорос еще ботов покупать, пускай за 500 рублей себе конфеток купит.
    Тебе не нужно гнаться за КАЖДЫМ заказчиком, выставляй ценник от 20 тысяч например за пару дней работы, откажись от 90% заказчиков-нищебродов, и начни нормально работать. У кого есть бабки они тебе оплатят и больше за разработку, лучше работать 1 день в месяц с достойным заказчиком, чем весь месяц с какими-то нищибродами (которые изза 500 рублей еще торговаться будут).
    П. С.
    Сейчас фантастическое количество людей которые хотят например себе получить интернет-сервис, или там какого-нибудь бота за "500 руб", это неадекватные больные на всю голову люди, которые не ценят ни чужой труд, ни результаты этого труда, с ними даже разговаривать нельзя. Они вообще ко всем лезут, стучатся в лички, начинают уговаривают и тд. Посылай их сразу нахер.
    Ответ написан
  • Upwork или Офис - с чего лучше начать?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    90% айтишных компаний занимаются темже самым фрилансом (некоторые даже на томже апворке).
    если у тебя есть хоть какие-то мало мальские качества продавца -> то идти во фриланс.
    заработок будет в разы выше за тотже самый обьем работ, а все эти сказки что в офисе как-то сильнее уровень растет - полная хрень.
    Надо быть конченым дебилом, чтоб отказаться от 3-5 раз выше ставки ради бесплатных печенек, кофе.
    твой уровень зависит от тебя и от того чем ты занимаешься, а не от твоих коллег (более того в интернете десятки тысяч потенциальных коллег есть, какой смысл замыкаться на ком-то, кто например сидит на против?)
    Ответ написан
  • Ответ в REST API?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    привет брат поразуму, всегда также делаю и считаю глупостей вначале передавать код 200 (все оке), а потом еще в ответе писать {статус: "все оке"}

    с другой стороны полно недалеких разрабов, которые не знают как работать с заголовками - и если у тебя какой-то массовый сервис для дебилов, то возможно им нужно дублировать и в теле инфомацию, но я не понимаю как ты для них продублируешь инфу в ответе если например сервак упал, или там 404 выдал.
    хотя я за чистоту апи, чтоб служебной информации в ответе не было, вся служебная информация чтоб в заголовках ппередавалась.
    С другой стороны АПИ должно быть понятным и очевидным без документации, поэтому лучше передавать не просто массив, а именнованный данные.
    Пример:
    запрос гет хттп://юзер/1
    ответ {имя: "вася", возраст: 18}, а не {["вася", "18"]}
    Ответ написан
  • Связанные ресурсы REST API?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    нет какой-то жесткой спецификации.
    оба варианта подходят, и несколько вариантов тоже подходят)
    Ответ написан
  • Использовать Python или искать более подходящий инструмент?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    скала конечно может повысить эффективность работы скрипта, НО скорее всего сам по себе язык не решит именно проблемы потребления ограниченных ресурсов. Вам при обработке ваших данных нужно сменить подход, возможно использовать потоковую обработку данных, посмотреть в сторону Спарк, или мапредьюс движков (как уже говорили выше).
    Ответ написан
  • Почему БигДата делается на Scala?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    проблема с эффективность использования ресурсов в питоне
    тк это динамически типизированный язык.
    Джава / скала - статически типизированный языки.
    При статической типизации ниже гибкость, но выше эффективность работы с данными, при динамической наоборот.
    Скала позволяет сочетать в себе плюсы динамической типизации (благодаря автоматическому выводу типов), и сохранять высокую эффективность работы.
    Есть еще и другие детали, например если говорить за SPARK -> который на скала реализован, зная скала, ты уже знаешь спарк, тк там практически такойже апи для работы с коллекциями, все что тебе нужно для того чтоб твой код работал на спарк кластере, заменить название коллекции которую ты обрабатываешь с например Array[MyClass] на RDD[MyClass], и грубо говоря - весь твой код без изменений будет обрабатываться на спарк кластере, само собой такого нет и не будет в питоне, там тебе нужно будет осваивать дополнительный апи.
    Ответ написан
  • Задержки доступа к различным устройствам (кэш, оперативка, ssd, hdd, net), скажите где найти?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    было исследование гугла и знаменитая табличка задержек, которая примерно выглядит вот так:
    I70LhMdXxwI.jpg
    но она уже устарела, и за последние 10 лет уже и эти данные немного поменялись, например задержки и работа в сети сильно ускорилась
    Ответ написан