• Бот, понимающий смысл?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Если подход "в лоб", то делать поиск в присланном сообщении по словам, выдавать заранее готовые уточняющие вопросы, к примеру:
    - Хочу купить покемона, сколько будет стоить доставка?

    Ключевые слова: купить, покемона, сколько, стоить, доставка

    Покемон - это вещь в каталоге, значит можно показать варианты покемонов.
    Доставка - это действие, значит можно показать стоимость.

    Выдаем варианты кнопками:
    - Выбрать покемона
    - Стоимость доставки

    Если более правильно, то гуглите world2vec, тогда обученный бот уже будет понимать контекст, т.к. пример выше самый простой.

    Проблема 1 ваш бот не поймет повествование, пока не научится понимать его смысл, т.е. выделять один контекст из миллионов, который вы или другой человек сможете трактовать как правильный.

    Проблема 2 ваш друг сидящий рядом скажет что бот тупой т.к. на ваш вопрос, бот ответил бессмыслицу, которая понятна только вам, но не вашему другу.

    Проблема 3 это получить ответ от бота одинаково понятный вам и другу.

    Вот набросал, смотрите как это работает
    AWwZZbl.gif

    Окружающий мир и другие люди загоняют нас в рамки:
    - туда не ходи
    - здесь не трогай
    - где родился, там и пригодился
    - это не солнце, а луна
    - трава зеленого цвета, а не коричневая
    - и т.д. миллионы контекстов

    Каждый контекст - это вектор, кусок нашего опыта, весь набор контекстов определяет вашу личность.
    Чтобы вы были на одной волне с ботом, у вас должны быть похожие с ним вектора. Т.е. вам нужно создать такую среду для бота, чтобы он испытывал теже ограничения что и большинство окружающих вас людей.

    Попробуйте объяснить какому нибудь человеку из древнего африканского племени, что есть людей - это нехорошо, он не поймет вас, т.к. он вырос в другой среде, с абсолютно другими рамками и устоями.

    Создать такого бота, это тоже самое что вырастить ребенка, т.е. сложно, но вполне возможно.

    Начните с этого видео, чтобы понять что я имею в виду, когда говорю "создать среду".
    Ответ написан
  • Как вывести данные из firebase в android studio?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Можно найти уже готовые примеры с открытым кодом по ключевым словам: firebase example github и поковырять их, так будет быстрее, чем пытаться вникнуть своими силами. Либо как альтернатива попробовать Flutter, т.к. он проще чем Java/Kotlin и уже есть готовые примеры firebase с кодом (вкладка advanced внизу экрана).
    Ответ написан
    Комментировать
  • Как обстоят дела во flutter/react native с вызовом системных функций платформы?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Отталкивайтесь от существующих задач и решайте проблемы по мере поступления, не нужно пытаться решать то, что пока не существует.
    Ответ написан
    Комментировать
  • Сильно просел jss upwork Что делать?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Бояться не нужно, просто придется отправлять больше заявок чем обычно и работать пока JSS не вырастет снова.
    Ответ написан
    Комментировать
  • Имеют ли место реальные тенденции к вытеснению нативной мобильной разработки со стороны кроссплатформенных решений?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Краткий ответ - да. Говорю за Flutter, т.к. нативная разработка это долго и дорого, в штате нужно содержать минимум двух разработчиков чтобы была скорость и поддержка двух платформ android/ios. Конкуренты будут минимум на шаг впереди за счет использования кросс-платформенных решений, которые позволяют быть более гибкими и менее консервативными.

    Пример тому игровые движки, сейчас сложно представить более-менее качественную игру сделаную без игрового движка. Так и будет с приложениями, на рынке появился новый игрок - Flutter. Dart довольно приятный язык для разработки на Flutter, в отличии от Java и Kotlin. Про Swift ничего сказать не могу, на первый взгляд язык хороший, как минимум почти вытеснил Objective-C.

    Для native разработки нужна разная кодовая база, спустя несколько месяцев будет сложно найти в ios и android коде одинаковые места, это создает большую проблему для пользователей, т.к. некоторые фичи будут выходить на одной платформе раньше, чем на другой.

    Другая проблема - это back-end: если вы не хотите чтобы ваши пользователи испытывали дискомфорт, пока ваши разработчики в поте лица пытаются ввести фичи, которые уже интегрированы на другой платформе, то вам придется держать по две версии API для каждой платформы. Это на порядок усложняет разработку, связывает вам руки и замедляет ваши бизнес процессы и вы теряете время, деньги и пользователей, не прямо сейчас, а в долгосрочной перспективе, т.к. мобильный рынок - это не спринт, а марафон.
    Ответ написан
    Комментировать
  • Можно ли с помощью google play проверять верно ли установлена у игрока дата/время?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Для каких целей вы хотите использовать проверку времени и почему через google play?
    Ответ написан
    Комментировать
  • Почему контекстная реклама тупая?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Если бы контекстная реклама была сверхточной, стоило бы задуматься не следят ли за вашими мыслями.
    Ответ написан
    Комментировать
  • Какой из мейнстримовых игровых движков лучше оптимизирован для мобильных платформ в 2020?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Unity более молодой и гибкий движок и менее консервативный нежели unreal.
    Ответ написан
  • Upwork direct to local bank. Можно ли вывести на счёт физ. лица. Физ. лицо является самозанятым. Будет ли валютный контроль?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Если вы интересуетесь этим вопросом, значит суммы у вас пока еще маленькие и до них не будет дела валютному контролю, просто не парьтесь.
    Ответ написан
    2 комментария
  • Как найти удаленную работу Junior React разработчику без опыта?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Вакансии есть всегда и на любую работу, просто люди публикуют их там где считают нужным, к примеру у себя на сайте, либо вообще не публикуют по каким-либо причинам, поэтому вам нужно проявить инициативу и писать самому.

    Зеленому новичку нужна команда или наставник. Вы можете найти работу прямо в этом посте, для этого нужно научится искать возможности там, где другие их не видят.

    Мое сообщение может помочь найти вам работу, но для этого вы должны проявить инициативу. Что я вижу когда читаю ваш пост:

    1. Вопрос хорошо просматривают, в том числе потенциальные работодатели.
    2. Люди немного интересуются вами, спрашивают про код.
    3. Некоторые имеют постоянных заказчиков и могут предложить вам удаленную работу, на некоторые задачи, но пока сами этого не знают.
    4. Вы хотите найти работу, но проявляете мало для этого инициативы.

    - Просто покажите ваш код, чтобы люди оценили ваши скилы.
    - Скажите сколько вы хотите получать, не факт что цифра которую вы назовете будет правильной для вас или для работодателя, но тем самым вы заявите про намерение продавать свои знания, дальше можно договориться.
    - Какие перспективы роста вы рассматриваете, к примеру готовы ли вы изучать еще что-то помимо React, к примеру Vue.
    - Что вообще хотите от работы, быстрых денег, опыта, сложные задачи, ответственность, работу в команде.
    Ответ написан
    Комментировать
  • Не удалось подтвердить идентификатор?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    1. Скрин формы и ссылка на нее есть?
    2. 18 исполнилось?
    3. Паспорт ваш?
    4. Скан хорошего качества?
    5. Данные в паспорте совпадают с данными в google аккаунте: пол, ФИО, возраст?
    Ответ написан
  • Насколько плохая идея использовать Python для создания браузерных игр?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Для каждой задачи нужен свой инструмент. Python несомненно хороший язык, но его область применения ограниченна. Если хотите игру в браузере, то только JS. Но писать на чистом JS это самоубийство, чтобы сократить время разработки используйте Vue, он даст вам такую же лаконичность и гибкость как и Python, кроме того для Vue есть куча модулей, в том числе для работы с WebGL, но для простых игр лучше использовать canvas.
    Ответ написан
    2 комментария
  • Flutter vs Java (kotlin)?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Тоже стал недавно использовать Flutter, из плюсов компиляция сразу на 2 платформы.
    Ответ написан
    Комментировать
  • Каким образом лучше передавать параметры в активити?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Первый метод с использованием Intent отлично подходит, оптимизировать тут нечего, параметры парсятся за микросекунды.

    Второй метод использует парадигму ООП, что в свою очередь позволяет неявно передавать параметры, на мой взгляд это усложняет логику и отладку приложения.
    Ответ написан
    Комментировать
  • Насколько гибок Flutter SDK для работы со сложным дизайном?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Здесь есть примеры https://flutter.dev/showcase
    Ответ написан
    Комментировать
  • Что лучше для оптимизации игры:нарисовать внешность персонажей или дать эту работу коду?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Если хотите доделать игру и не забросить, детали такие как одежда оставьте на последнюю очередь. Когда вам покажется что игра завершена на 90%, на самом деле это будет 10%, значит можно выпускать, и остальное доделывать в процессе, оптимизации оставьте на последующие версии игры.
    Ответ написан
    Комментировать
  • Как считают позицию приложений в Appstore и Google Play?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Зависит от тысяч параметров, какие-то влияют на позицию приложения напрямую, какие-то косвенно, можно пофантазировать и вывести основные:

    1. ASO - пользователь находит приложение по ключевым словам
    2. Локализация - влияет на опыт пользователя, поймет ли пользователь как пользоваться приложением перед скачиванием и после
    3. Кол-во удалений / кол-во установок (за последний час/день/месяц) - означает что приложение которое нашел пользователь соответствует или не соответствует его ожиданиям, либо по какой-то причине выходит из моды, иначе Angry Birds все еще была бы в топах
    4. Рейтинг приложения - общее впечатление пользователя о приложении
    5. Конверсия приложения за последний час/день/месяц - чтобы максимизировать прибыль в текущий момент
    6. Последняя дата обновления - разработчик заботится об устранении ошибок, новых фичах
    7. Ответы на коменты - разработчик общается с аудиторией, тем самым средний рейтинг растет см. пункт 4

    Так или иначе Apple и Google заботит свой брэнд и опыт пользователя, возможно они стараются здесь и сейчас получить максимальную прибыль (пункт 5), но понимают что это игра в долгую, а значит все должны получить шанс выигрывать иначе холдинги с большими бюджетами не пускали бы маленьких к этому сочному пирогу. Поэтому империи умирают и их место занимают новые, вам же остается только создавать новые игры и приложения и искать новые ниши, которых бесконечное кол-во.

    Закон больших чисел и теория вероятностей вам помогут, чем больше попыток, приложений, оптимизаций, локализаций вы сделаете, тем выше шанс получить больше сладкого пирога.
    Ответ написан
    Комментировать
  • Upwork официально запрещает общаться вне их чата?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Upwork понимает что клиенты и фрилансеры в отдельных случаях хотят взаимодействовать напрямую, минуя разрешенные каналы, поэтому в ближайшем будущем Upwork будет создавать среду, которая предоставит интересные возможности для таких коммуникаций, это означает что будет интеграция с сервисами типа Slack, Github, Linkedin, почтовыми сервисами и прочими.
    Ответ написан
    Комментировать
  • Сколько предметов может хранить сервер в игре?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    К примеру мы знаем что палка будет в рюкзаке, либо валяется на земле и их может быть сколько угодно.
    Если игра трехмерная, то пусть для простоты координаты палки будут выглядеть как список из 3х точек XYZ

    Каждая точка в зависимости от точности, занимает разное кол-во памяти:
    float это 4 байта, для double 8 байт

    Возьмем к примеру меньшую точность float, чтобы сэкономить память, тогда координаты одной палки займут:
    XYZ *4 байта = 12 байт

    У палки есть id, пусть он будет integer 2 байта от 0 до 65536 (256 byte * 256 byte) т.е. разновидностей предметов в игре у вас будет максимум 65536, это не мало.

    Дано 100000 игроков
    Размер рюкзака 0-255 (максимум 256 предметов)
    Рюкзак это список предметов с их id, к примеру:
    id 1 = палка
    id 390 = лопата
    id 27 = яблоко
    будет выглядеть как: [1, 390, 27]

    Если все палки лежат у игроков:
    100000 * 256 * 2 байта (id палки) = чуть более 50 мегабайт

    Если все палки лежат на земле:
    100000 * 256 * 2 байта (id палки) * 12 байт (XYZ) = чуть более 600 мегабайт

    Можно сделать хак и описать координаты палок как квадраты на местности, к примеру у вас есть карта:
    16 * 16 километров = 256 км² (1000000 м²) каждый квадрат = 1 км²
    1000000 / 256 = каждый квадрат 62.5 x 62.5 метров
    / 256 = каждый квадрат 3.9 x 3.9 метра, как туалет в макдоналдс
    / 256 = 20 x 20 см

    В итоге чтобы запомнить в каком квадрате лежит палка мы уложились в 4 байта [255,255,255,255].
    id первого квадрата = [0,0,0,0]
    id последнего квадрата [255,255,255,255]
    Расположить ее на оси Z, чтобы не хранить высоту уже дело техники.

    Теперь если все игроки выкинут свои палки на землю, то это займет:
    100000 * 256 * 2 байта (id палки) * 4 байта (квадрат) ~ 205 мегабайт, если все держать в памяти, то с этим справится любой сервер за $5.

    Любые вопросы в комменты.
    Ответ написан
    Комментировать
  • Где в коде выполняется регистрация, а где логинка?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Проблема ООП это неочевидное поведение, пока не развернешь всю лапшу и унаследованные классы, не поймешь что и как работает, начтите с функции onStart

    Этот кусок обновит какие-то данные о пользователе в приложении в двух неочевидных случаях:
    1. если он уже зарегистрирован, то покажет к примеру его профиль
    2. если не зарегистрирован, то тоже что-то обновит, но неизвестно что, к примеру ничего
    FirebaseUser currentUser = mAuth.getCurrentUser();
    updateUI(currentUser);


    Этот кусок будет выполнятся только в одном случае, если пользователь еще не прошел верификацию, т.е. в данный момент логинится, ждет смску или что-то еще
    if (mVerificationInProgress && validatePhoneNumber()) {
        startPhoneNumberVerification(phone);
    }


    Регистрация, либо логин завершится в этом месте, если пользователь только что создан или зашел с существующим логином. В случае если пользователь уже логинился раньше и приложение его помнит, то до этого куска кода дело не дойдет.
    Log.d(TAG, "signInWithCredential:success");
    FirebaseUser user = task.getResult().getUser();
    // [START_EXCLUDE]
    updateUI(STATE_SIGNIN_SUCCESS, user);
    // [END_EXCLUDE]
    Ответ написан
    Комментировать