Как стать автором
Обновить
0
0
Андрей @proof

Пользователь

Отправить сообщение

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

Время на прочтение1 мин
Количество просмотров18K


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

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

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

Всем приятного просмотра!
Всего голосов 110: ↑106 и ↓4+102
Комментарии64

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

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

В этом уроке мы создадим загрузчик картинок, который иллюстрирует данную ситуацию. Мы будем заполнять ListView пиктограммами изображений, загруженных из сети. Созданный асинхронный процесс, загружающий изображения в фоновом режиме, будет ускорять наше приложение.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии19

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

Время на прочтение2 мин
Количество просмотров1.7K
Навеяно этим.

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

Shortcuts в windows

Время на прочтение1 мин
Количество просмотров2.7K
Собрал все шорткаты из комментов к этому топику:

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
Читать дальше →
Всего голосов 118: ↑103 и ↓15+88
Комментарии138

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

Время на прочтение3 мин
Количество просмотров4.3K


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

Проблема проста: вы поставили в компьютер 4 гигабайта оперативки, но операционка не оценила вашей щедрости.
Читать дальше →
Всего голосов 63: ↑46 и ↓17+29
Комментарии163

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

Время на прочтение5 мин
Количество просмотров3.3K
Shotrcut
    Прочитав статью FrodoFrodo ― Shortcuts в windows, я решил дополнить её другими комбинациями клавиш и не только горячими. Привожу полный список того было в предыдущем топике со своими дополнениями.
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии87

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

Время на прочтение16 мин
Количество просмотров63K

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

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


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

Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии33

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

Время на прочтение6 мин
Количество просмотров29K
Толстые модели сложны в поддержке. Они, конечно, лучше, чем контроллеры, захламленные логикой предметной области, но, как правило, нарушают Single Responsibility Principle(SRP). “Всё, что делает пользователь” не является single responsibility.
В начале проекта SRP соблюдается легко. Но со временем модели становятся де-факто местом для бизнес-логики. И спустя два года у модели User больше 500 строчек кода и 50 методов в public.
Цель проектирования — раскладывать растущее приложение по маленьким инкапсулированным объектам и модулям. Fat models, skinny controllers — первый шаг в рефакторинге, так давайте сделаем и второй.
Второй шаг
Всего голосов 38: ↑35 и ↓3+32
Комментарии27

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

Время на прочтение2 мин
Количество просмотров7.3K
Эта статья для тех, кто хочет ускорить запуск рельс, а заодно ускорить работу интерпретатора 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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии14

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

Время на прочтение4 мин
Количество просмотров114K
«Хочу программировать под iPhone — говори, что почитать...»
Любимая девушка


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

Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
Читать дальше →
Всего голосов 105: ↑99 и ↓6+93
Комментарии58

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

Время на прочтение3 мин
Количество просмотров9.8K
Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

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

Современный подход заключается в использовании Bundler совместно с другими инструментами, такими, как Git, YARD и RSpec-2.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии12

Page Visibility API и Visibility.js

Время на прочтение7 мин
Количество просмотров20K
Кот Шрёдингера

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

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

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

Милый пример видео-проигрывателя, который останавливает видео, когда страница становится невидимой (открывать в Google Chrome 13).
Читать дальше →
Всего голосов 97: ↑95 и ↓2+93
Комментарии49

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

Время на прочтение8 мин
Количество просмотров120K
HTML5 Уважаемые хабровчане, представляю вам вольный перевод статьи Avoiding common HTML5 mistakes. Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.
Читать дальше →
Всего голосов 145: ↑132 и ↓13+119
Комментарии92

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

Время на прочтение8 мин
Количество просмотров18K
По мотивам топика Chosen: сделай выпадающие списки более дружественными.

Довольно симпатичный виджет, иногда даже может быть полезен (допустим когда есть определенные требования к дизайну). Но в данный момент виджет не позволят добавлять позиции динамически, что возмутило товарища alexsrdk, да и меня тоже :) Сейчас попробуем это дело исправить.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии16

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

Время на прочтение9 мин
Количество просмотров32K

Кто здесь?


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

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 и начать новую жизнь (опционально).
Поехали!
Всего голосов 88: ↑77 и ↓11+66
Комментарии38

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

Время на прочтение2 мин
Количество просмотров15K
Сравнение PhoneGap vs. Titanium vs. Rhodes

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

Рассматриваемые в этой статье разработки все построены на web-технологиях и могут быть использованы web-разработчиками, которые хотят применить свой опыт в мире мобильных приложений.
Читать дальше →
Всего голосов 41: ↑28 и ↓13+15
Комментарии21

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

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

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

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

image
Сразу оговорюсь: у меня видеокарта GeForce, поэтому проблема, а также ее решение будет актуальна для пользователей видеокарт компании Nvidia. Подобный рассинхрон появляется только при включенном Compiz. По скольку Compiz меня радует не только красотой, но и удобством, отказываться от него я не собирался, вследствие чего стал искать решение.
Читать дальше →
Всего голосов 94: ↑73 и ↓21+52
Комментарии62

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

Время на прочтение3 мин
Количество просмотров49K
Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
Go ahead, make my day
Всего голосов 177: ↑163 и ↓14+149
Комментарии51

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность