Pull to refresh
0
0
Чабан Александр @beleberda

User

Send message

Улучшаем производительность HTML5 canvas

Reading time 10 min
Views 38K
В последнее время мне везет натыкаться на интересные статьи для перевода. На этот раз – статья на HTML5Rocks о производительности HTML5 canvas. Автор пишет о некоей стене, в которую упираются разработчики при создании приложений. Какое-то время назад в нее уперся и я при портировании старой-доброй игры на canvas.

К сожалению, графики в оригинале вставлены через iframe. Я мог бы сделать снимки и разместить их изображения, но сам автор позиционирует графики актуальными и такими, которые будут обновляться, потому я просто разместил на них ссылки. Приятного чтения!


image
  1. Вступление
  2. Тестирование производительности
  3. Предварительно отрисовывайте в виртуальный canvas
  4. Группируйте вызовы
  5. Избегайте ненужных изменений состояния
  6. Отрисовывайте только разницу, а не весь холст
  7. Используйте многослойных canvas для сложных сцен
  8. Избегайте shadowBlur
  9. Различные способы очистить экран
  10. Избегайте нецелых координат
  11. Оптимизируйте анимации с помощью 'requestAnimationFrame'
  12. Большинство мобильных реализаций canvas – медленные
  13. Заключение
  14. Ссылки



Вступление


HTML5 canvas, который начинался, как эксперимент компании Apple, – наиболее широко распространенный стандарт для 2D режима непосредственной графики в интернет. Многие разработчики использую его в широком круге мультимедиа проектов, визуализаций и игр. Как бы то ни было, с ростом сложности приложений, разработчики нечаянно натыкаются на стену производительности.
Читать дальше →
Total votes 116: ↑113 and ↓3 +110
Comments 42

Репозиторий с задачами на Ruby

Reading time 2 min
Views 7.9K
Недавно начал изучать Ruby. Несмотря на большое количество туториалов и мануалов, отсутствие официальной документации несколько замедляет процесс обучения.(Официальная документация все-таки существует — спасибо Kane). Но тем не менее, идея от этого не теряет ценности.

Чтобы получше освоить синтаксис языка, многие советуют решать задачи из спортивного программирования. Это позволяет набить руку в максимально кратчайший срок.
Нашелся отличный сайт с ejudge — acm.mipt.ru с интерпретатором Ruby. Но при решении задач(особенно на незнакомом языке), постоянно присутствует ощущение, что может быть это можно было сделать как-то иначе — легче, быстрее, удобнее.
Читать дальше →
Total votes 30: ↑23 and ↓7 +16
Comments 29

Для изучающих Ruby

Reading time 1 min
Views 2.7K
Недавно на github была создана организация — Habraruby(в ее состав пока входят 2 человека, надеюсь, что это число значительно вырастет). Изначально ей принадлежал один репозиторий с задачами с сайта acm.mipt.ru. Но в виду того, что решающих людей мало, а сами задачи нетривиальны, я решил открыть еще один репозиторий с задачами с сайта spoj.pl

Во-первых, в отличие от задач МФТИ(коих около 400, если я не ошибаюсь), на spoj более 9 тысяч задач. Не стоит, наверное говорить, что и уровень многих из них приемлем для начинающих. Правда, условия на английском, но думаю, что это не беда.

Повторюсь, для чего это все нужно — для тех, кто только начал изучать Ruby, или только познакомился с синтаксисом, часто необходимо читать простой код. Обычно, все доступные исходники на Ruby связаны с RoR и являются бесполезными для начинающих. И как раз в роли такой базы несложного для понимания кода будет служить репозиторий.
Для маститых рубистов это просто шанс поделиться опытом и может быть почерпнуть что-то новое даже для себя. В любом случае, каждый сможет найти что-нибудь для себя.
Total votes 46: ↑42 and ↓4 +38
Comments 23

Трюки со специализацией шаблонов C++

Reading time 4 min
Views 107K
imageСпециализация шаблонов является одной из «сложных» фичей языка с++ и использутся в основном при создании библиотек. К сожалению, некоторые особенности специализации шаблонов не очень хорошо раскрыты в популярных книгах по этому языку. Более того, даже 53 страницы официального ISO стандарта языка, посвященные шаблонам, описывают интересные детали сумбурно, оставляя многое на «догадайтесь сами — это же очевидно». Под катом я постарался ясно изложить базовые принципы специализации шаблонов и показать как эти принципы можно использовать в построении магических заклинаний.

Ознакомиться с заклинаниями
Total votes 47: ↑45 and ↓2 +43
Comments 61

Ускоряем загрузку рельс

Reading time 2 min
Views 1.7K
Несмотря на заголовок, речь пойдет скорее о руби, чем о рельсах. Поэтому я решил разместить этот перевод в блоге руби.

Последние релизы MRI Ruby показывают значительное замедление при подключении файлов.

Например, наше средненькое рельсовое приложение при загрузке делает require около 2200 раз — это где-то совсем в правой части графика. Совсем никуда не годится. На 1.9.2 приложение стартует за 20 секунд, а на 1.9.3 уже 46. Слишком медленно!
Читать дальше →
Total votes 77: ↑75 and ↓2 +73
Comments 23

Создание фреймворка для Canvas: объекты и мышь

Reading time 4 min
Views 8K


Среди вопросов на счёт Canvas чаще всего звучали вопросы по внутренностям фреймворков — как понять, что мышка находится над элементом, как это реализовано в фреймворках. В топике мы реализуем подобный Canvas фреймворк на базе AtomJS.

Читать дальше →
Total votes 80: ↑73 and ↓7 +66
Comments 16

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity