• Какой запрос быстрее отработает?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    1. ну вобще если железо позволяет, то паралельно будет быстрее работать.
    твердотельные диски в несколько потоков позволяют быстрее данные читать.
    2. встроенные механизмы работы БД как правило быстрее работают, чем собирать эту логику самому, Монго позволяет хранить "ссылочные" данные (которые при запросе сами загружаются из других таблиц).
    3. Плюс монги в том, что можно все ответы просто пихать в коллекции. Например у вас одна база с какими-то данными, а другая база данных с этими данными но уже организованная по другому принципу, в которой например находятся все ответы, все взаимосвязи и тд, попробуйте реализовать еще одну базу, с заранее подготовленной агрегаций всех необходимых данных.
    Ответ написан
  • Изучение математики через программирование, глупое решение?

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

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

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

    токены эти могут передаваться на сервер в запросе в качестве параметра:
    хттп://сайт.ру/данные.жсон?токен=ваш_токен

    но такой способ считается плохим тк токены остаются в истории браузера например (ну и гет запросы обрезают длинну возможной ссылки)
    наиболее подходящим способом считается передача токенов в заголовке запроса

    подробнее о токенах советую посмотреть тут: https://jwt.io/introduction/
    Ответ написан
  • Короче, школьник, 9 класс, Хочу быть программистом. Изучаю основы. Но с математикой и физикой ну очень туго. Что делать? Или универ не нужен?

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

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    все эти математические операции в циклах, очень хорошо оптимизируются самим железом, даже если вы отключите оптимизацию в компиляторе.
    поэтому самая дорогая операция - не предсказуемая, условный переход от случайных данных отлично подходит под это, процессор не сможет точно предсказать этот условный переход.
    ну а блокирующие операции эмулируются просто слипами.
    Ответ написан
  • CPU с тепловыделением TDP 95Вт и 0db (полностью бесшумное охлаждение). Реально?

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    а какая разница что важнее? одно без другого не может существовать.
    не впадайте в такие крайности, что более "дефицитным" для вас, то для вас выше будет ценно.
    Если у вас критически не хватает продвижение, тогда маркетинг для вас будет более ценен, если продукт дерьмо, то для вас будет важнее и дороже оцениваться работа по созданию продукта.
    мой ролик по теме:
    https://www.youtube.com/watch?v=9hTInj8R-DE
    Ответ написан
  • Как построить сотрудничество с партнером по проекту?

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    1. JS очень не эффективный по потреблению ресурсов язык (изза свой природы скриптового, динамически типизированного языка).
    2. Разрабы на свои сайты пихают всякое дерьмо, начиная от 25 сервисов статистики и трэкинга пользователей, заканчивая всякими сервисами обратных звонков, чатов, прыгающих кнопок, бесконечных библиотек, как сделать розовый переход на фоне и тд и тому подобное. Все эти библиотеки еще подтягивают еще по 50 сторонних библиотек, например ебанный джейквери, который нахер не нужен но его все равно все подряд подключают, потому что подавляющее большинство разрабов не могут, не умеют и НЕ ХОТЯТ делать экономичный и эффективный код.
    Ответ написан
  • База данных для хранения больших данных?

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    ты не можешь кэшировать работу логики приложения -> тк ты сталкнешся с тем что кэш не соответствует реальной модели данных, и это приводит к ошибкам в сервисе (погугли инвалидация кэша), в итоге чтоб тебе держать кэш корректным тебе нужно будет еще больше нагрузки проводить и сверять корректность кэша с данными в БД.
    так что про кэширование логики забудь, кэширую простые готовые ответы пользователю, не поболее того.
    1. Для гиганского ускорения (в тысячи раз) тебе нужно перенести модель и логику в оперативную память, а для этого забыть про всякие там ноды хуеды, а перейти на статически типизированные компилированные языки, и уже эту модель данных в памяти асинхронно сохранять в базу данных, тогда все летать будет.
    2. Для легкой и самое главное корректной разработки сервиса с большим количеством "событийных" зависимостей - желательно использовать "Функциональное реактивное программирование" (в гугле поищешь материалы почему и как это реализуется)
    Ответ написан
  • Достаточен ли объем знаний для работы на бирже?

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

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

    >знаю что плохо но что поделать
    вот с таким подходом тоже далеко не уехать.
    Ответ написан
  • Экскурс на русском языке: суть, настройка, и использование Docker?

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

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

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    технологии определяют по определенным "отпечаткам" (таким как рабочие заголовки, указание в мета тегах движков), можно специально подделать эти отпечатки, чтоб определялась другие технологии.
    Ответ написан
  • Kaggle, конкурс Titanic. Test Accuracy 0.87, лидерборд 0.75 почему?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    хех чувак, если бы обучающая и тестовая выборка были одинаковые, тогда можно было просто загрузить ответы из обучающей выборки в тест и не морочить голову, получив 100% верный результат.
    смысл конкурса, научится строить модель которая работает в ОБЩЕМ случае, для любых примеров данных.
    П. С.
    ты свою модель подгоняешь под свои тестовые данные, в итоге если результаты на других тестовых данных получаются сильно хуже - то это говорит лишь о том что ты переподогнал свою модель под свои тестовые данные, и она хуже работает в общем случае.
    Ответ написан