Software Engineer в UBER
  • Онлайн-додаток для малювання okso.app (та що з ним робити)

    Дякую за фідбек

    Так, я планую додати (feedback.okso.app/feedback) підтримку інших шрифтів також.

    Стрілки вже є готов. В Menu > Preferences > Tools є перелік додаткових форм/shapes, серед яких є Прямокутник, Овал та Стрілка.

    Локалізацї також в плані, треба буде додати

  • Онлайн-додаток для малювання okso.app (та що з ним робити)

    Дякую за ідеї!

    Додав конвертацію фріхенда в фігуру в роадмап 👍🏻

    Про FPS то зараз найбільша проблема для мене. Пробую вирішити...

  • Онлайн-додаток для малювання okso.app (та що з ним робити)

    Так, згладжування ліній працює круто завдяки perfect-freehand (тут є демка цієї ліби)

    Також так, редагування кожного об'єкта то зручно. Весь малюнок/скетч — це звичайний JSON (наприклад файл data-structures.okso). Та над об'єктами того JSON-у вже проводити маніпуляції.

    Дякую за ідеї!

    • Масштабування із збереженням пропорцій вже можливе якщо зажати Shift і тягнути
    • Групування — так, це в планах, треба буде зробити 👍🏻
    • Редагування кривих — це теж гарна ідея, але наразі із perfect-freehand кривими це не дуже вийде, треба буде новий Curve Shape додати
    • Розшарювання малюнку — це теж цікава ідея і вона в плані. Прикольно б було ще розширити скетч, вставити картинку, наприклад, в блог, та щоб при апдейті малюнку в okso.app всі зображення в блогах теж оновилися автоматично.
    • конектори між об‘єктами зараз є у вигляді стрілок, але так, вони не конфігуруються — це цікаво було б додати
    • І так, дійсно, для маленьких об‘єктів хендли пропадають (мені здається якщо сильно збільшити малюнок, то вони можуть з’являтися, але так, цей флоу можна покращити
    Підтримав: Andy W
  • Онлайн-додаток для малювання okso.app (та що з ним робити)

    Конкретних планів зараз немає, але виглядає доволі цікавим написати статтю про імплементацію, корнер-кейси з перформансом (якщо мені ще вдасться їх вирішити), переваги Progressive Web App, як хендлити апдейти в React стейті якщо вони дуже часті і в реал-таймі (наприклад як оновлення стейту компонентів під час руху курсора), та інше...

    А зараз, якщо коротко, то технічно проект використовує наступне:

    • TypeScript
    • react (поки що 17-й)
    • @tldraw/core — SVG canvas
    • perfect-freehand — гарні ліні при малюванні від руки (digital ink), тут є прикольна демка
    • @state-designer/react — прикольна штука, спробував хендлити стейт додатку, як стейт-машини
    • idb-keyval — зручний враппер для роботи із IndexedDB
    • browser-fs-access — враппер для доступу к файлам
    • workbox-core — для PWA
    • baseui — як оснонвий стайлінг фреймворк
    • react-icons — дуже багато різних іконок
    • @radix-ui/react-dropdown-menu — непогане спливаюче меню із можливістю мати під-меню
    • webfontloader — зручний пакет, дозволяє кастомні фонти підгружати та чекати, поки вони будуть доступні
    • ...
    Підтримав: Oleksii Nedashkivskyi
  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Да да, на rednuht там крутые примеры с генетическим алгоритмом 👍🏻

    По поводу парковки машинок без единой аварии. Да, таких геномов в примерах вот здесь trekhleb.dev/...​tion/?parking=automatic нет. Как в конце статьи, «наказание» за столкновение (уменьшение значения фитнесс-функции при столкновении) реализовано не было, поэтому при обучении машинки «думают», что аварии — это вполне ОК и даже не пытаются их избегать. Это один из следующих логичных шагов, которые можно заимплементить.

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Да, в статье я как-раз упомянул про альтернативное решение использовать нейронную сеть вместо линейного уравнения, чтобы решение лучше адаптировалось к новым условиям парковки. И так же в статье указано, что с линейным уравнением способность к обобщению — малая. Поэтому тут могу только ещё раз подтвердить правоту вашего комментария.

    Не согласен с Вами по поводу того, что обучение нейронной сети и генетический алгоритм — это разные истории. Технически, нейронную сеть можно обучить (подобрать нужные коэффициенты) с помощью генетического алгоритма (вместо использования back propagation). Возможно это будет неэффективно и сработает для простых нейронных сетей, но технически — это должно быть возможно.

    Підтримав: Beaver Green
  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Единственное что не совсем понятно — как генетический алгоритм подходит под эту задачу?

    Генетический алгоритм может подойти к задачам, связанным с оптимизацией. В данном примере с машинами мы пытаемся оптимизировать случайный геном (например, геном 1010011...100) и шаг за шагом, методом «генетически умных» но все-таки «проб и ошибок», пытаемся перейти от случайного генома, к геному, близкому к идеальному для конкретной задачи парковки (например, к геному 11100010...110).

    Вариант «перебора вариантов» в реальности нам явно не подойдет... решить задачу ДО того, как ехать
    А сенсоры на машине как раз не очень помогут — потому что мы СНАЧАЛА рассчитаем идеальный маршрут алгоритмом — а только потом будем ехать.

    Процесс оптимизации случайного генома и преобразования его в близкий к идеальному происходит шаг за шагом, методом «генетически умных» но все-таки «проб и ошибок». Именно этот пошаговый процесс я имею в виду, когда пишу, что генетический алгоритм именно «обучается». Из поколения в поколение происходит симуляция парковки (тысячи раз) и только более-менее успешные в данном поколении машины продолжают свое существование в следующих поколениях, путем «спаривания» и «рождения» более сильный «детей».

    Поэтому алгоритм не решаем задачу до того, как ехать и не рассчитывает идеальный маршрут сначала. Он решает ее во время езды тысяч индивидуумов.

    А вот уже после «проб и ошибок» (после обучения) тысяч паркующихся индивидуумов мы получим оптимизированный геном. И вот как раз оптимизированный геном должен парковать автомобиль за один раз (без проб и ошибок), с первой попытки, без соударения с соседями. Возможно вы это и имели в виду — не процесс обучения, а процесс применения уже оптимизированного генома к реальной жизни?

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    В данной имплементации машина не знает, где находится парковочное место. Машина оперирует исключительно показаниями датчиков и ее «мозг» (линейное уравнение) перемещает машину в каком-то из направлений. «Удачное» это направление (близко к парковочному месту) или «неудачное» (далеко от парковочного места) определяет фитнес-функция в конце жизни каждого поколения. Чем ближе машина оказалась к парковочному месту, тем выше фитнес-функция. Далее, производится селекция (спаривание) автомобилей с наилучшими показателями фитнес-функций.

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    В данной версии симулятора стартовая позиция фиксированная. Эту позицию можно ментально воспринимать как «ок, я довез авто до стартовой парковочной позиции, поровнял задние колёса, а дальше — сама»

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Попробуй зажать «SPACE» + «D» в ручном режиме парковки. Там и гидроусилитель будет и поворот колес.

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Дуже тішуся, що вдалось зацікавити 😀👍🏻

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Спасибо за отзыв, Антон! Да, статья действительно получилась longread-ом. В следующий раз, возможно, есть смысл разбить подобный материал на серию более компактных статей (типа «часть 1/3», «часть 2/3» и т.д."

  • Изменение размеров изображения с учетом его содержимого в JavaScript

  • Генерируем странные кулинарные рецепты с помощью TensorFlow и рекуррентной нейронной сети (пошаговая инструкция)

    Это нельзя готовить ⛔️

  • Как я работаю: Алексей Трехлеб, Front-end Engineer в Uber

    Радий, що стаття змотивувала! Успіхів із Гітхабом!

  • Как я работаю: Алексей Трехлеб, Front-end Engineer в Uber

    На онсайте на одной из 5 сессий (1 час) разбирали детали того, как я выполнил тестовое задание. Тестовое («домашнее») задание было фронт-эндовое, его надо было выполнить после скрининг интервью. Его проверяли до приглашения на онсайт, но на онсайте его нужно было по сути «защитить» и прямо при интервьюерах улучшить/расширить. Остальные же сессии были довольно общими без сильной привязки к фронтенду.

  • Как я работаю: Алексей Трехлеб, Front-end Engineer в Uber

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

    Підтримав: Yuri Maksimov
  • Как соцсеточки счастье рушат

    1. Понять свою уникальность, понять кто ты, развивать это,
    2. перестать сравнивать себя с другими и примерять на себе чужие жизни,
    3. осознать, что лента в соцсетях — это рафинированная выжимка, ограниченная и неполная картина реальности,
    4. понять, что за все нужно платить свою цену в виде времени, а его у тебя 24/7 (красивая «картинка» в ленте чего-то человеку стоила)
    5. понять, что нельзя успеть все; из 5-ти категорий «семья», «карьера», «спорт», «сон», «друзья» — сфокусируйся на 3-х (фокус можно периодически менять)

    ... дальше — профит

  • Как я работаю: Алексей Трехлеб, Front-end Engineer в Uber

    Да, мне кажется в таком случае (когда человек решает свою «задачу-боль») он является своего рода экспертом в этой области и знает потребность «рынка» лучше. Плюс это помогает держать мотивацию в тонусе.

    Підтримали: Mykolai Miasnikov, Andrii Kuznietsov
  • Как я работаю: Алексей Трехлеб, Front-end Engineer в Uber

    Мне самому интересно!

← Сtrl 12 Ctrl →