Pull to refresh
0
0
Андрей @proof

User

Send message

Демо на Javascript от mr. doob

Reading time1 min
Views18K


Сегодня один из легендарных разработчиков на Flash/JS — mr. doob, выложил в своем блоге экспериментальное демо на JavaScript. Демо было создано в сотрудничестве с trace (постановка) и supersole (музыка).

Это нужно видеть. (Смотреть желательно в Chrome)

А так же можно заглянуть в исходники данного демо.

Всем приятного просмотра!

Многопоточность — как средство повышения эффективности

Reading time10 min
Views9.4K
Хорошей практикой в создании быстро реагирующего приложения является уверенность, что ваш пользовательский интерфейс требует минимального времени для обработки. Каждое потенциально долгое действие, которое может повесить Ваше приложение, нужно вывести в отдельный поток. Типичными примерами таких действий являются сетевые операции, которые несут в себе непредсказуемые задержки. Пользователи могут мириться с небольшими паузами, особенно, если вы информируете их о прогрессе, а вот застывшее на месте приложение не дает им выбора, кроме как закрыть его.

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

Заплати налоги — спи спокойно

Reading time2 min
Views1.8K
Навеяно этим.

Kаждый день десять мужчин собираются вместе в баре, чтобы выпить по кружке пива, и получают общий счет на $100. Они оплачивали свой счет так, как мы платим свои налоги, это выглядело примерно так: Первые четыре человека (самые бедные) не платили ничего. Пятый платил $1. Шестой платил $3. Седьмой платил $7. Восьмой — $12. Девятый — $18. Десятый (самый богатый) платил $59.
И тут начинается интересное

Shortcuts в windows

Reading time1 min
Views2.9K
Собрал все шорткаты из комментов к этому топику:

1. если выделить папку или файл и нажать F2 то включится редактирование имени, или если в проводнике нажать F4, то активным станет адресная строка
2. проматывать страницу вниз не скроллом и клавишей Page Down, а просто нажимая «space»
3. А Shift+Space — обратно
4. все действия Shift+… возвращает в обратном порядке(Ctrl+Tab,Ctrl+Shift+Tab; Alt+Tab,Alt+Shift+Tab...)
5. чтобы в эти самые «окна на таскбаре» попасть без мышки, можно нажать комбинацию Win+Tab
Читать дальше →

4GB оперативной памяти

Reading time3 min
Views4.5K


Довольно долго думал, в какой блог это запостить, и так и не придумал.
Описываемая проблема в своё время лишила меня массы нервных клеток, и в будущем (цены на оперативку падают) с ней будет сталкиваться только больше людей, поэтому я решил поделиться всем, что знаю.

Проблема проста: вы поставили в компьютер 4 гигабайта оперативки, но операционка не оценила вашей щедрости.
Читать дальше →

Shortcuts for Windows. Продолжение…

Reading time5 min
Views3.5K
Shotrcut
    Прочитав статью FrodoFrodo ― Shortcuts в windows, я решил дополнить её другими комбинациями клавиш и не только горячими. Привожу полный список того было в предыдущем топике со своими дополнениями.
Читать дальше →

Deploy приложения на RoR 4 с помощью Capistrano 3

Reading time16 min
Views63K

Представьте: Вы — веб-разработчик, который только недавно освоил Ruby on Rails. И тут Ваш первый проект подходит к стадии, когда его нужно выложить в интернет.
Вы, конечно, можете залить его на Heroku, но тамошние цены немного кусаются. Остается только купить VPS, настроить его и выложить проект туда.
«Что может быть проще? Найду какой-нибудь гайд, да следаю всё по нему» — подумаете Вы. Вот только гайдов, которые не просто выкладывают команды, но и объясняющие, что эти команды делают, — единицы, да и те используют уже устаревшую вторую версию Capistrano.

Поэтому я решил написать свой гайд, в котором постараюсь подробно рассмотреть:
  • Первичную настройку сервера
  • Установку и настройку nginx (с модулем PageSpeed), postgresql, redis
  • Установку rvm, rails
  • Настройку гема foreman для управления процессами Вашего приложения
  • Настройку сервера Unicorn
  • Настройку гема Capistrano (v3.1) для автоматизации деплоя


Я надеюсь, что этот гайд будет полезен не только новичкам, но и разработчикам со стажем.

Читать дальше →

7 паттернов рефакторинга толстых моделей в Rails

Reading time6 min
Views29K
Толстые модели сложны в поддержке. Они, конечно, лучше, чем контроллеры, захламленные логикой предметной области, но, как правило, нарушают Single Responsibility Principle(SRP). “Всё, что делает пользователь” не является single responsibility.
В начале проекта SRP соблюдается легко. Но со временем модели становятся де-факто местом для бизнес-логики. И спустя два года у модели User больше 500 строчек кода и 50 методов в public.
Цель проектирования — раскладывать растущее приложение по маленьким инкапсулированным объектам и модулям. Fat models, skinny controllers — первый шаг в рефакторинге, так давайте сделаем и второй.
Второй шаг

Ускоряем запуск Ruby on Rails используя набор патчей RVM railsexpress

Reading time2 min
Views7.4K
Эта статья для тех, кто хочет ускорить запуск рельс, а заодно ускорить работу интерпретатора ruby.
О том как установить RVM (Ruby version manager) уже написано много статей, поэтому я перейду сразу к делу.
Список патчей в RailsExpress для Ruby 1.9.3-p362
(это последняя версия руби на момент написания статьи)
Applying patch railsexpress/01-fix-make-clean.patch
Applying patch railsexpress/02-railsbench-gc.patch
Applying patch railsexpress/03-display-more-detailed-stack-trace.patch
Applying patch railsexpress/04-fork-support-for-gc-logging.patch
Applying patch railsexpress/05-track-live-dataset-size.patch
Applying patch railsexpress/06-webrick_204_304_keep_alive_fix.patch
Applying patch railsexpress/07-export-a-few-more-symbols-for-ruby-prof.patch
Applying patch railsexpress/08-thread-variables.patch
Applying patch railsexpress/09-faster-loading.patch
Applying patch railsexpress/10-falcon-st-opt.patch
Applying patch railsexpress/11-falcon-sparse-array.patch
Applying patch railsexpress/12-falcon-array-queue.patch

Читать дальше →

Книги, видео и другие материалы по разработке под iOS

Reading time4 min
Views114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →

Создание гемов — Руководство

Reading time3 min
Views9.9K
Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

Как же на самом деле надо создавать, развивать и публиковать свои гемы?

Современный подход заключается в использовании Bundler совместно с другими инструментами, такими, как Git, YARD и RSpec-2.
Читать дальше →

Page Visibility API и Visibility.js

Reading time7 min
Views21K
Кот Шрёдингера

Page Visibility API — новое API в JavaScript, которое позволяет узнать, видит ли пользователь ваш сайт или же он, например, открыл другой таб.

Каким образом это API может сделать наш Веб дружелюбнее и уютнее? Ну самое очевидное:
  • Сделать сайт более дружелюбным к пользователю, «поднять юзабилити». Например, отключать слайдшоу или ставить видео на паузу, когда вы переключаетесь в другой таб (например, вы смотрите видео на YouTube и вам приходит срочное эл. письмо).
  • Не потреблять лишних ресурсов. Выключать лишнюю логику, когда она не нужна, так как пользователь не видит сайт. Например, в фоновом табе отключать сложные JS-рассчёты или реже проверять новые сообщения по AJAX.
  • Считать более точную статистику. Например, не засчитывать пользователей, которые открыли ваш сайт в новом табе и закрыли его не просматривая.
  • Поддерживать новую технологию пререндеринга из Google Chrome, когда браузеру заранее загружает и рендерит указанную страницу, чтобы открыть её мгновенно. Например, в поиске Google первый результат выдачи будет отмечен на прередеринг.
  • Сделать эмулятор кота Шрёдингера (на иллюстрации), который отобразит живого или мёртвого кота только тогда, когда пользователь откроет загруженный в фоне таб.

Чтобы сделать работу с Page Visibility API более удобной, я (во славу Злых марсиан) разработал библиотеку Visibility.js. Она позволяет забыть о вендорных префиксах и добавляет «сахара» высокоуровневых функций, чтобы писать короткий чистый код (например, Visibility.every — аналог setInterval, но работает только, если сайт в открытом табе).

Милый пример видео-проигрывателя, который останавливает видео, когда страница становится невидимой (открывать в Google Chrome 13).
Читать дальше →

Избегаем распространенных ошибок в HTML5 разметке

Reading time8 min
Views120K
HTML5 Уважаемые хабровчане, представляю вам вольный перевод статьи Avoiding common HTML5 mistakes. Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.
Читать дальше →

Виджет выпадающих списков Chosen: реализуем динамическое добавление позиций

Reading time8 min
Views18K
По мотивам топика Chosen: сделай выпадающие списки более дружественными.

Довольно симпатичный виджет, иногда даже может быть полезен (допустим когда есть определенные требования к дизайну). Но в данный момент виджет не позволят добавлять позиции динамически, что возмутило товарища alexsrdk, да и меня тоже :) Сейчас попробуем это дело исправить.
Читать дальше →

Rails: Хватит отмазываться, начинаем BDD-ить!

Reading time9 min
Views32K

Кто здесь?


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

11:24:21 PM Michael: ну хз, надо пробовать
11:24:24 PM Michael: наверное так лучше
11:24:27 PM Michael: даже я думаю наверняка
11:24:36 PM Michael: но пока меня че-то останавливает
11:24:38 PM Michael: лень наверное :)

Знакомо? «Не хочется разбираться? Нет времени?» Тогда читаем дальше. В статье расскажу, как настроить свое любимое рельсовое окружении на разработку с подходом BDD и начать новую жизнь (опционально).
Поехали!

Кроссплатформенная разработка на мобильных устройствах

Reading time2 min
Views15K
Сравнение PhoneGap vs. Titanium vs. Rhodes

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

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

Встреча Ruby-сообщества с Джеймсом Голиком в Москве, 25-го октября

Reading time2 min
Views562
Как многие знают, в Москву для участия в конференции Highload++ по приглашению компании Оверсан приезжает известный Ruby-эксперт Джеймс Голик (James Golick). Цель визита — доклад “Масштабирование до тысяч и миллионов запросов: что работает, а что нет”, который Джеймс представит на конференции в понедельник, 25-го октября. Участие в Highload++ платное и не все интересующиеся Ruby смогут посетить это событие. Поэтому Оверсан вместе с RailsСlub решили организовать еще одну специальную встречу с Джеймсом и пригласить на нее всех желающих без каких либо ограничений.
Читать дальше →

Решение проблемы с вертикальной синхронизацией в видео на Ubuntu 10.04

Reading time2 min
Views48K
Этот топик я писал в песочницу, однако благодаря @BSDaemon, я получил инвайт еще до его (топика) публикации.
Продолжительное время Ubuntu я обходил стороной. Но недавно решил поставить. Все хорошо, красиво и вроде бы стабильно, но столкнулся я с одной неприятностью: при просмотре видео в полноэкрнном режиме, при ярких динамичных сценах, картинка будто бы делиться на части, и эти части не состыковываются между собой:

image
Сразу оговорюсь: у меня видеокарта GeForce, поэтому проблема, а также ее решение будет актуальна для пользователей видеокарт компании Nvidia. Подобный рассинхрон появляется только при включенном Compiz. По скольку Compiz меня радует не только красотой, но и удобством, отказываться от него я не собирался, вследствие чего стал искать решение.
Читать дальше →

Underscore.js — библиотека, которая так хороша, что должна быть вне закона

Reading time3 min
Views50K
Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
Go ahead, make my day

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity