• Правильно ли я разделяю FrontEnd и Backend?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Одного подхода нет, есть у вас конкретные задачи, под них подбераете решение (архитектуру), можно постоянно подготавливать фронтэнд на бэкенде, можно отдавать заранее подготовленный фронтэнд (в виде ХТМЛ или ЖС файлов пользователю) который потом будет собирать у себя в браузере более сложный вид продукта.
    ==
    Вам просто нужно определится как бы обмениваетесь данными между фронтэндом и бэкендом, обычно используют формат JSON (не обязательно).
    Сейчас часто распространена схема при которой - JS скрипты в браузере клиента грузят с бэкенда только JSON с данными и отображают эти данные в более сложных формах непосредственно в браузере.
    П. С.
    логику редиректов и всякого такого роутинга можно написать на самом фронтэнде, перехватывая запросы пользователя и специфичным образом их обрабатывая, запрашивая нужные данные с бэкенда через апи.
    Ответ написан
  • Кто подскажет ответ по ряду вопросов?

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

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

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    у тебя задача передать токен на сервер -> это можно сделать через использования куки, но так не делают. ТК куки тырят, куки не универсальны и привязанны к определенному браузеру (куки не могут использовать приложения), и куча других проблем, особенно связанных с масштабированием.
    Можно еще передавать токен вместе с каждым запросом в теле самого запроса ( пример: хттпс://адрес.ру/запрос?токен=токен)
    но тогда токен будет сохраняться в истории браузера, и это тоже может привести к некоторым проблемам с безопасностью (например если ты перешел по ссылке, и человек на другом сервисе видет вместе со ссылкой источника перехода токен пользователя, это будет гиганский фэил)
    вобщем наиболее подходящий способ -> передавать токен в каждом запросе вместе с хэдером, (тоесть передавать дополнительные параметры этого запроса минуя адресную строку)
    почитай подробнее про http headers например https://www.tutorialspoint.com/http/http_header_fi...
    Ответ написан
  • Какую БД использовать для мониторинга соц сетей?

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

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    данные о пользователе передаются или в виде параметра в ссылке, либо в виде заголовка запроса
    поэтому можно GET, POST /course/:courseUuid

    П. С.
    ни что не мешает лесону иметь и ГЕТ /courses/:courseUuid/:lessonUuid
    и GET /lesson/:lessonUuid
    типовой подход иметь унифицированный апи, с одинаковыми ПОСТ и ГЕТ (и добавочные запросы с низкой иерархией типа /lesson/:lessonUuid)
    Ответ написан
  • Есть ли разница между моделью Маккалока-Питтса и персептроном Розенблатта и какая?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    модель Маккалока-Питтса - это математическая модель
    персептрон Розенблатта - это физическая реализация модели.
    тоесть об одном и томже речь
    Ответ написан
  • Как привлечь деньги в стартап через ICO? Стоит ли?

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

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

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

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

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

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    что выгоднее вложить деньги в свое развитие или свое дело с окупаемостью через года или вложится в финансовую пирамиду с окупаемостью в 9 месяцев.
    Ну если ты из себя ничего не представляешь, работать не хочешь и в жизне для тебя важно просто срубить халявного бабла, наверно вложится в финансовую пирамиду будет отличный вариант.
    Я только не понимаю зачем тебе ждать 9 месяцев, если ты можешь просто бабки отнести например в какой-нибудь джойКазино, или там в форекс, сделать ставку и СРАЗУЖЕ получить тот же результат только без ожидания.
    П. С.
    Иногда поражаюсь в какие только сказки готов поверить человек, лиж бы не работать.
    Ответ написан
  • Какой язык программирования изучать, что-бы быстрее найти работу?

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    сильно не слежу за российским рынком, но замечал регулярно, подавляющее большинство заказчиков ->
    школьники которые заказывают всякую хрень типа скриптов для накрутки лайков, спама в сообщения, ставки казино, скандинавские аукционы, спам боты и тому подобное что можно причислить к категории - "шоб я ничего не делал, а бабло капало".
    сейчас вот на волне хайпа добавились -> разного рода проекты завязанные на майнинг.
    ====
    продавец помидоров, которого вчера осенило, что нужно разработать удобную CRM для себя, и затем ее масштабировать и продавать по миру, ЛИБО создать биржу помидоров, чтоб все помидорами торговали через его площадку)
    --------
    Так что втягивайся в разработку спам ботов, и никому не нужных бирж помидоров -> не прогадаешь.
    Ответ написан
  • В чем отличие рекомендательных систем от предсказания?

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

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    как вариант на более высоком уровне можно положить все входящие данные в Set (коллекцию содержащее множество уникальных элементов), и потом посчитать размер коллекции.
    код будет выглядеть в стиле:
    inputStringData
     .split(" ")
     .map(inputElement => inputElement.toInt)
     .toSet
     .size

    П. С.
    шаг с переводом строки ( .map(inputElement => inputElement.toInt) ) в тип Интэджер не обязателен, можно посчитать и разные строки, это лишь улучшает эффективность хранения промежуточного массива перед подсчетом
    Ответ написан