Архив за 15 мая 2018 - 6

image

Steering behaviors помогают автономным персонажам реалистично двигаться благодаря применению простых сил, сочетание которых создаёт естественно выглядящее и импровизированное движение по окружению. В этом туториале я расскажу об основах теории steering behaviors, а также об их реализации.

Идеи, на которых построены такие поведения, предложены Крейгом Рейндольдсом; они не основаны на сложных стратегиях с использованием планирования пути или глобальных вычислений, а применяют локальную информацию, например, силы соседних объектов. Благодаря этому они просты в понимании и реализации, но в то же время способны создавать очень сложные паттерны движения.
Читать полностью »

Предыстория

Всем привет! Я хотел бы рассказать историю о страшных конфигах и как их удалось причесать и сделать вменяемыми. Я работаю над довольно большим и относительно старым проектом, который постоянно допиливается и разрастается. Конфигурация задается с помощью маппинга xml-файлов на java-бины. Не самое лучшее решение, но оно имеет свои плюсы — например, при создании сервиса можно передать ему бин с конфигурацией, отвечающий за его раздел. Однако, есть и минусы. Самый существенный из них — нет нормального наследования профилей конфигурации. В какой-то момент я осознал, что для того, чтобы поменять одну настройку, я должен отредактировать около 30 xml-файлов, по одному для каждого из профилей. Так больше продолжаться не могло, и было принято волевое решение все переписать.

Требования

  • Наследование и переопределение (или fallback). Должна быть возможность задать некий базовый профиль, унаследовать от него дочерние и переопределить или добавить в них те места, которые необходимо
  • Маппинг в java-бины. Переписывать по всему проекту использование конфигурации с бинов на проперти вида mongodb.directory.host не хотелось, использовать map-ы из map-ов тоже.
  • Возможность писать в конфиге комментарии. Не критично, но удобно и приятно.

Хотелось бы, чтобы конфиг выглядел примерно так:

Типичный DSL-скрипт на groovy

name = "MyTest"
description = "Apache Tomcat"

http {
    port = 80
    secure = false
}
https {
    port = 443
    secure = true
}

mappings = [
        {
            url = "/"
            active = true
        },
        {
            url = "/login"
            active = false
        }
]

Как я этого добился — под катом.Читать полностью »

image

Хватит тратить время на скучные академические фолианты! Изучение Computer Science может быть веселым и увлекательным занятием.

Владстон Феррейра Фило знакомит нас с вычислительным мышлением, позволяющим решать любые сложные задачи. Научиться писать код просто — пара недель на курсах, и вы «программист», но чтобы стать профи, который будет востребован всегда и везде, нужны фундаментальные знания. Здесь вы найдете только самую важную информацию, которая необходима каждому разработчику и программисту каждый день.
Читать полностью »

По подсчетам специалистов SEMI Silicon Manufacturers Group (SMG), в прошлом квартале поставки кремниевых пластин достигли рекордного показателя 3,083 млн квадратных дюймов. Это на 3,6% больше по сравнению с четвертым кварталом 2017 года и на 7,9% больше по сравнению с первым кварталом 2017 года.

Читать полностью »

Публикуем расшифровку видеозаписи выступления Алексея Гончарука (Apache Ignite PMC Member и Главный архитектор Grid Gain) на митапе Apache Ignite сообщества в Петербурге 29 марта. Загрузить слайды можно по ссылке.

Участников сообщества Apache Ignite часто спрашивают: «Сколько нужно узлов и памяти для того, чтобы загрузить такой-то объем данных?» Об этом и я хочу сегодня поговорить. Забегая вперёд: такое прогнозирование пока что является достаточно сложной, нетривиальной задачей. Для этого нужно немного разбираться в устройстве Apache Ignite. Также я расскажу, как упросить себе задачу прогнозирования, и какие можно применять оптимизации.
Читать полностью »

Открытая бесплатная трансляция конференции по тестированию — Heisenbug 2018 Piter - 1

Конференция: Heisenbug 2018 Piter
Дата: 17-18 мая 2018 года
Место: Санкт-Петербург, гостиница «Park Inn by Radisson Пулковская»
Посмотреть трансляцию онлайн можно по этой ссылке

Heisenbug 2018 Piter состоится уже послезавтра. Главный зал конференции будет бесплатно транслироваться на YouTube. Как попасть на трансляцию и что там будет, мы расскажем под катом.
Читать полностью »

image

Последние несколько лет мы все чаще слышим термин «Serverless» по отношению к облачным сервисам. Более того, в Европе наш собственный Voximplant часто называют «Serverless телефонией для разработчиков». Но ведь у нас есть серверы, и много! Откуда такое странное название и что именно имеют в виду те, кто его использует? Чтобы обобщить и собрать в одном месте информацию про «Serverless», организация с длинным названием «Cloud Native Computing Foundation» посвятила ей официальный документ, Swapnil Bhartiya его внимательно изучил и написал интересную статью (интересные статьи про linux и open source он пишет уже лет 15), а мы адаптировали перевод для Хабра. Кстати, в очередной раз обновляя холивар «зачем переводить для Хабра». Во-первых, по-русски, если перевод адекватный, читать быстрее и когнитивно менее напряжно. Даже с очень хорошим английским. Физиология, ничего личного. Во-вторых, если кто-то решил перевести статью — то она, скорее всего, того стоит. Если вы не эксперт в чем-то, можно смело пропустить 100 статей, вышедшие по интересной теме за последний месяц, а посмотреть только те две, что перевели для Хабра.
Читать полностью »

Напомним, в декабре 2016 года стало известно, что Sharp прекращает поставлять телевизионные ЖК-панели компании Samsung. В результате Samsung начала переговоры с компанией LG.

Переговоры затянулись, но в начале года стало известно, что LG отгрузит более 1 млн панелей телевизоров Samsung. Теперь же была опубликована свежая информация, согласно которой в прошлом году LG передала компании Samsung на тестирование 40-50 тыс. ЖК-панелей. Также было оговорено, что в этом году будет отгружено 1,52 млн дисплеев. Но финальное соглашение все еще не подписано, переговоры продолжаются, а поставки задерживаются примерно на год.

Читать полностью »

Рождение виртуального мобильного оператора: проект «Банка Тинькофф» - 1

Сегодня банки всё активнее «оцифровывают» клиентские сервисы и каналы коммуникации со своими клиентами: персонализируют обслуживание на основе данных клиента, внедряют дистанционные сервисы самообслуживания, чат-боты, виртуальные ассистенты, в том числе системы с элементами искусственного интеллекта (AI) и технологиями распознавания речи. Стремясь расширить спектр клиентских услуг, банки осваивают и новые для себя сферы деятельности. Один из примеров – технология мобильных виртуальных операторов связи (MVNO, mobile virtual network operator). Сейчас мы совместно с «Теле2» участвуем в проекте «Банка Тинькофф» по созданию виртуального оператора «Тинькофф Мобайл».
Читать полностью »

Сервисом Авито ежемесячно пользуется 32 миллиона человек. У нас публикуется более 400 тысяч новых объявлений в сутки, а обрабатывается 1,5 миллиона их различных версий. Чтобы контент на сайте был качественным и полезным пользователям, нужна модерация объявлений. И, конечно, у посетителей сайта должна быть возможность быстро решить любой возникший в процессе пользования Avito вопрос, обратившись в службу поддержки.

Разработка Авито ведётся в Москве, а сотрудники департамента клиентского сервиса и модерации работают в Санкт-Петербурге. Цель и тех, и других одна — делать использование сайта удобнее и проще для клиентов. Разработчики готовят новый функционал и развивают сервис, а сотрудники поддержки первыми узнают, если что-то идёт не так и принимают удар на себя. Иногда это ужасно тяжело. В этом посте я хочу рассказать о том, как мы в Авито синхронизируем работу команды разработки и службы поддержки и какие результаты это приносит.

Один день в роли сотрудника поддержки пользователей. Что это меняет? - 1

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js