• Как правильно описать концепт системы?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Вопрос не очень понятен, самое главное, для чего вам концепт системы?
    Могу предположить, что вы хотели использовать такой документ, чтобы в максимально короткое время ёмко рассказать о вашей идее. Например, на коротком спитче, либо просто разместить в интернете страничку, чтобы скидывать ссылку заинтересованным людям. Некое подобие презентации.
    Если всё так, то нужно смотреть в сторону лендинг пейджей, там смысл как раз в том, чтобы заинтересовать потенциального покупателя (инвестора в вашем случае). Соответственно, нужно копать в эту сторону, литературы много.
    Тезисно:
    - Заинтересовать (заголовок, картинка, эмоция)
    - Описать проблему
    - Подтвердить выгоды
    - Закрыть возражения
    - Привести факты (и цифры)
    - Убедить оставить контакт

    Хотелось бы услышать, как было на самом деле, что получилось, что нет?
    Ответ написан
    Комментировать
  • Ноутбук начал притормаживать, как устранить проблему?

    Jeer
    @Jeer
    уверенный пользователь
    Винда десятка? Отключил сбор метрик и индексирование диска?
    Ответ написан
  • Какое бесплатное облачное хранилище можно использовать для ссылки на загрузку файла на моем сайте?

    Jeer
    @Jeer
    уверенный пользователь
    Яндекс диск
    Ответ написан
    Комментировать
  • Как разделить доли в ИТ-стартапе?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, накатал ответ отдельным постом Нормальная ли у меня теория по оценке вклада участников в стартап?
    Год прошёл, по какой формуле считали? ) И как получилось?
    Ответ написан
    Комментировать
  • Насколько рационально делать MVP версию продукта в формате мобильного сайта вместо моб приложения?

    Jeer
    @Jeer
    уверенный пользователь
    Не соглашусь с вариантом, что нет смысла делать мобильное приложение. Я практически всегда нахожусь за компом, поэтому лично мне удобнее открывать сайты. Но уже давно идёт перевес на то, что десктопные сайты не нужны. В первую очередь делается вёрстка мобильной версии. И в целом, обычным пользователям не хочется залезать в браузер и вбивать какой-то сайт в поисковике, им нужен значок на экране, на который можно нажать.
    Один раз видел: открываешь сайт, а там только один QR код на скачивание приложения с пометкой, что веб умер. Это, конечно, крайность, просто для информации )
    Насколько быстро этот процесс перетекания пользователей из сайтов в приложения - нужно смотреть статистику и динамику, у меня цифр нет.
    К вопросу о том, что мобильное приложение стоит огромных денег, а сайт чего, не стоит? Вроде как количество трудозатрат и зарплаты специалистов примерно одинаковые
    Ответ написан
    Комментировать
  • Есть ли сервисы для совместного создания приложений?

    Jeer
    @Jeer
    уверенный пользователь
    Нашли такой сервис? От себя могу дописать https://edu.iidf.ru/cofoundit/profile/selection_results
    Ответ написан
    Комментировать
  • Как серьезно заниматься роботехникой НЕ в университете?

    Jeer
    @Jeer
    уверенный пользователь
    Привет. Слово "робототехника" довольно расплывчато, какой смысл ты вкладываешь в него?
    Например, ты нужно построить робот танк для участия в соревнованиях. Как минимум нужно разбираться в механике, как считать ход шестерней, что такое редукторы, может захочешь дифференциал поставить, чем отличается шаговый двигатель от коллекторного или сервопривода, что использовать для поворота башни и т.д.
    Дальше, нужно сделать управление через интернет. У меня была задача на raspberry pi поднять node js вебсервер и установить связь по вебсокетом с другим сервером. Передача управления, плюс потоковое видео. Это уже чистая веб разработка, огромный пласт знаний, который вроде как к робототехнике не имеет прямого отношения, но вот в данном случае понадобилось.
    Если я соберусь строить дрон, самолёт или дирижабль - то там так же своя огромная сфера знаний про воздухоплавание, газы и т.д., которая вроде как не робототехника, но для конкретной задачи нужно во всём разобраться.
    Дальше, не знаю, чем не угодила ардуино - это микроконтроллер, который выполняет определённые задачи. Его удобно использовать для прототипирования, то есть вначале строишь своего робота на ардуино, разбираешься, что конкретно и как у тебя используется, после чего можешь под эту же задачу сделать свою плату. В схемотехнике тоже множество своих правил и это тоже огромный пласт знаний. Но если ты знаешь отдельно только схемотехнику, робота не построить.
    Если нужно сделать компьютерное зрение, то там тоже чистое программирование, которое к механике или другим областям совсем не относится, но в некоторых робо проектах оно необходимо.
    Надеюсь обрисовал картину в целом. Создавать что-то реально крутое можно, достаточно посидеть в интернете, посмотреть существующие проекты и выбрать что-то по своему вкусу, начинать пилить, параллельно глотая обучающие видео с ютуба по соприкасающимся темам.
    Могу порекомендовать канал Амперка на ютубе, у них и куча проектов и в целом развивающая инфа. По механике может быть достаточно даже лего обзоров от Кирилла Desert Eagle Lego Technic.
    Ответ написан
    8 комментариев
  • Как можно улучшить этот код(ревью)?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Насчёт архитектуры сложно, посмотрите паттерны, рекомендую сайт https://refactoring.guru/ru.
    Дублированного кода не должно быть. Вынести можно несколькими способами, после ознакомления с паттернами, подберёте наиболее вам подходящий.
    Магические текстовки - плохая практика. Замените хотя бы на константы, но лучше работайте с энумами.
    Насчёт code style так же верно заметили. У вас один метод именуется с большой буквы, в другом классе метод с маленькой буквы - это бросается в глаза и оставляет отпечаток, что сделано "тяп-ляп", лабораторная работа номер два.
    Есть спецификации языка, в которых описывается, как правильно внедрять новые фишки. На основе этого (или через боль поиска багов) внутри компаний формируются свои code style документы. Могу скинуть вам на почту свой документ, это очень полезная вещь
    Ответ написан
    6 комментариев
  • Как справиться с данной проблемой?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Говорю на шару, так как не вижу проекта и данных не хватает
    Скорее всего нужно в нугет пакетах добавить Microsoft.EntityFrameworkCore.SqlServer помимо уже подключённого Microsoft.EntityFrameworkCore.
    В startup.cs так же должен быть UseSqlServer, если вы работаете с базой MS SQL
    Ответ написан
    Комментировать
  • Фреймворки и проверка на валидацию/ошибки?

    Jeer
    @Jeer
    уверенный пользователь
    Если сделать новый голый проект, используя фреймворки типа реакт нод или вью, то ошибок не будет
    Неужели нельзя сделать сайт с фреймворком без ошибок? - можно, делайте
    Если вы нативным кодом допилите функционал до минимального функционала фреймворка - у вас будет много ошибок.
    Ответ написан
    Комментировать
  • Как обновлять данные через webSocket?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, из комментов я узнал, что вы пишете на пхп, поэтому с кодом помочь не могу. Но, тем не менее, смутило, что вы не смогли найти примеров в гугле. Забейте php chat websoket пример - результатов море.
    Обычно библиотеки по ним реализуют паттерн издатель-подписчик.
    Когда клиент устанавливает подключение с сервером по вебсокету, ему выдаётся некий идентификатор.

    Соответственно, на сервере хранится список установленных подключений.
    Далее с сервера вы можете отправлять сообщения либо по идентификатору какому-то конкретному клиенту, либо есть команда "отправить всем" - не важно сколько клиентов у вас подключено.
    У отправляемого сообщения есть тип сообщения (можно использовать один тип, отправляя json и далее его разбирать на клиенте) а клиенты в браузере подписываются на рассылку.

    Следующий вопрос, допустим, у вас у клиента1 открыт на экране список пользователей. Установлено соединение по вебсокету и вы подписаны на событие "изменение пользователя". Когда пользователь2 редактирует свой профиль или регистрируется в системе, до того, как запись попадёт в базу данных, вы эту запись отправляете в библиотеку с вебсокетами. Там делаете мгновенную рассылку на всех подключённых клиентов, событие "изменение пользователя" и либо айдишник пользователя, либо всю модель пользователя можно упаковать в json и отправить целиком.
    Далее на клиенте вы получаете это сообщение и обновляете данные на странице.
    Под такую логику подходят spa-решения, например, реакт или ангуляр, где можно держать один сервис пользователей, который будет выполнять роль прокси, либо забирать первым запросом доступные данные, либо отслеживать изменения по вебсокетам
    Ответ написан
  • Как реализовать аудиоплеер html & js?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Вам нужно гуглить html5 audio custom controls
    Есть куча примеров, в том числе в песочнице с открытой вёрсткой
    Ответ написан
    Комментировать
  • Есть ли варианты создания графики для тех, кто не может в рисование?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, я очень рекомендую книгу Графика на javascript Рафаэлло Чекко (даже если вы пишете не на js).
    Там очень грамотно описываются базовые подходы для отрисовки графики именно с точки зрения программиста
    Ответ написан
  • Какой курс по архитекторству лучше пройти?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Тут тема такая, основная фишка в том, что нет чёткого определения, что такое архитектор. У кого-то в компании аналогичная должность может называться и руководитель проекта, у кого-то тимлид, у кого-то архитектор. И соль в том, что любой вышестоящий начальник вкладывает в эту должность абсолютно разный набор функциональных обязанностей.
    Что могу посоветовать, надеюсь, это станет ответом на вопрос. Есть проект на гитхабе роадмап тимлида. Там есть прикольные картинки и, собственно, что вам нужно сделать:
    Первое, принять, что теперь за всё отвечаете вы лично. То есть, вроде как отдел кадров подбирает персонал, но всё равно именно вы набираете под себя команду и вы лично за неё несёте ответственность. Если вам задают вопрос по продукту - типа, что это за кнопка добавилась - ответ "я не знаю, это без меня добавили" неприемлем. Если вылетел баг на проде - то обосрались лично вы.
    Второе, после принятия ответственности, необходимо пройтись по всему дереву-снежинке и отметить, в каких областях у вас хорошо, а в каких провал. И из первого пункта тут вытекают разного рода решения, например планёрки (или скрам) для того, чтобы именно вы были в курсе, кто чем занимается. Код ревью и внедрение ci/cd, чтобы не вылезали баги на проде и так далее. Вот тут уже, если вы не разбираетесь в какой-то узкой области, можно взять какой-то курс. То есть, нет такого общего "курсы для архитекторов" - там вам воды в уши нальют, есть роадмап, по которому вам надо идти. И есть узкоспециализированные курсы под каждую область, где у вас провал, вот так.
    Третье, необходим баланс, вам нельзя замкнуть все процессы на себя. Есть правило автобуса (что будет с проектом, если вы не выйдете на работу?). Это очень полезное правило - процессы должны быть выстроены таким образом, чтобы вы могли спокойно уйти в отпуск и вам никто не звонил. Это тоже очень важная составляющая организации работы. Вообще авралов не должно быть, только штатные ситуации. Если вы решите поменять работу, чтобы не пришлось в последний день собирать документацию с айпишниками, логинами/паролями участвующих в вашем проекте виртуальных машин, так как должна вестись своевременная документация по ресурсам и используемому ПО. Вроде как про это никто заранее не говорил, но это ваша обязанность и вы отвечаете за такие вещи лично (повторюсь ещё раз о важности делегирования и отсутствия переработок)
    Ответ написан
    3 комментария
  • Как реализовать внешний поиск JS?

    Jeer
    @Jeer
    уверенный пользователь
    Если на сайтах не настроены политики CORS требуемым образом (разрешение на получение данных со сторонних доменов), то js-ом вы не сможете запросить с них информацию.
    Вам необходимо делать на своём сайте бекенд в роли прокси, то есть, ваш сайт делает запрос на ваш бекенд с поисковой фразой. А уже сервис бекенда обращается к разным сайтам, парсит, склеивает и что там ещё надо делает и отдаёт обратно ответ на ваш фронт
    Ответ написан
    Комментировать
  • Как вернуть string из дженерика c#?

    Jeer
    @Jeer Автор вопроса
    уверенный пользователь
    Какой же я молодец, гуглится быстрее, чем писал вопрос:
    if (typeof(T) == typeof(string))
    {
        return (T)(object)content;
    }
    Ответ написан
    Комментировать
  • Как разрешить айфрейму обращаться к переменным страницы?

    Jeer
    @Jeer
    уверенный пользователь
    Привет.
    страница открыта с десктопа, не сайт в интернете

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

    Если у вас разные домены на странице и в айфрейме, ответ - никак. Это политика безопасности.
    Если домены одинаковые (или хотя бы поддомены) то можно сделать.
    Надеюсь, я ответил.

    П.с. тут нужно смотреть на задачу. Либо у вас действительно какое-то "кулхацкерское" решение, либо вы копаете не в ту сторону.
    Ответ написан
    Комментировать
  • C# DataRow Select поиск по выражению с одинарной кавычкой, реально?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    В SQL кавычка экранируется кавычкой

    zapros += " NAME LIKE '%''%'";
    Ответ написан
    Комментировать
  • Есть ли другие длины и разновидности шлейфа для камеры RaspberryPI?

    Jeer
    @Jeer
    уверенный пользователь
    Меня умиляет малиновое сообщество с их волшебными ответами )
    Вам нужно гуглить переходник hdmi csi
    Вот первая ссылка с алиэкспресс, просто для примера, не разбирался.

    Вот тут, например, фоточки, как это будет выглядеть
    Ответ написан
    1 комментарий
  • Заполнение формы на стороннем сайте?

    Jeer
    @Jeer
    уверенный пользователь
    сторонние сайты не могут обмениваться информацией из-за безопасности.
    Копните в сторону расширений гугл хрома, возможно, получится сделать кастыльное решение.
    То есть, на сайте 1 расширение подписывается на нажатие на кнопку и сохраняет нужные данные в промежуточное хранилище. Это может быть IndexedDB, если не ошибаюсь или воркер - надо смотреть, есть ли там доступ с разных доменов.
    Затем, при заходе на сайт 2 (открыть можно принудительно) расширение должно проверить доступные данные и сможет заполнить поля ввода
    Ответ написан
    Комментировать