Как стать автором
Обновить
0
1inuxoid @1inuxoidread⁠-⁠only

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

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

Боремся с RSI — обзор клавиатуры Truly Ergonomic 209

Время на прочтение7 мин
Количество просмотров81K
Truly Ergonomic 209


Говоря кратко, после пары десятков лет работы за компьютером я вдруг стал чувствовать на себе признаки «туннельного синдрома» (RSI). Более подробно изложено в лирическом отступлении.

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

Шло время, менялись конфигурации, оставалась лишь привычка дни напролет проводить за компьютером, с годами закономерно переросшая в профессию программиста. Тем временем, мой интерфейс понемножечку эволюционировал вслед за прогрессом — сначала я отказался от стрелочного блока клавиатуры, став покупать модели без его наличия (детская привычка гамать на цифровом блоке с выключенным NumLock взяла свое), затем та же участь постигла и цифровой блок, оставив вместо него лишь вертикальную дорожку Home'ов и PageUp'ов. Потом я и вовсе переполз на ноутбуки, несколько лет работая только на них.

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

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

Жило бы и дальше, если бы однажды вечером я вдруг не почувствовал довольно сильное жжение в левом запястье. Некие неприятные ощущения в кистях бывали и раньше, но значения этому не придавалось — мало ли, что там побаливает. Здесь же жжение было весьма назойливым, к тому же на следующий день оно повторилось к середине дня. Став замечать, пришел к выводу, что руки мои потихоньку кричат о помощи, а почитав материалы про RSI, понял — это признаки того самого туннельного синдрома, о котором так много говорят.

Проблему нужно было решать скорее, запускать болезнь чревато осложнениями. Изучив интернет (в частности, некоторые материалы на хабре), пришел к печальному выводу, что выбор эргономичных клавиатур не столь велик, как кажется. Если не рассматривать откровенно гиковские приблуды, остается шорт-лист из продуктов Microsoft, Kinesis и Truly Ergonomic. Microsoft Ergonomic Keyboard хороша тем, что ее легко купить в наших магазинах — больше я хорошего в ней не нашел. Да, клавиатура удобная, популярная, относительно недорогая. Однако она очень широка — правый ненужный мне блок клавиш ставит мышку слишком далеко от плеча, а это неудобство. Мультимедийные кнопки сверху это вообще за гранью добра. На легендарный Kinesis Advantage я периодически посматриваю с начала нулевых, и вот наконец-то могу его позволить ($300 с копейками, зависит от модели), однако все так же смущает ширина и уж слишком далекая от стандартов посадка клавиш — есть мысль, что периодически свитчить с нее на ноутбук в будущем станет большой проблемой. Выяснилось также, что Kinesis не доставляет в Россию, поэтому заказывать нужно через одного из их европейских реселлеров, но это просто к слову.

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

Как продвигать игру в AppStore: делюсь опытом на примере Wordrive

Время на прочтение13 мин
Количество просмотров35K
Хочу поделиться опытом по продвижению своей новой игры для iPhone/iPad — Wordrive.

Статья может быть полезна не только для продвижения iPhone-приложений, но любого мобильного или прикладного софта, потому что часть советов довольно универсальны. Многое из описываемого тут я в сети нигде не нашел. Надеюсь, это поможет пройти этот этап без типичных ошибок.

Итак, вот у вас готово приложение и оно появилось в AppStore. Первый поток людей на него направляется из iTunes/App Store, сам собой — за счет появления в «новинках». Рассчитывать на него нечего — он как пришел, так и уйдет через пару-тройку дней. За это время нужно делать все, чтобы о программе или игре стали писать в сети. Если программа за это время сможет собрать еще и интернет-аудиторию, то выйти в топы будет сильно проще. А чтобы ее собрать, к моменту запуска в App Store нужно уже много что сделать.

Читать дальше →
Всего голосов 109: ↑104 и ↓5+99
Комментарии89

«Offline first» подход к созданию веб-приложений

Время на прочтение5 мин
Количество просмотров20K
В этом году на конференции Full Frontal, оффлайн-приложения были популярной темой. Пол Кинлан сделал отличный доклад «Строим веб-приложения будущего. Завтра, сегодня и вчера» (вот его слайды), в котором он сравнивал ощущения пользователей от работы с 50 популярными мобильными приложениями для iOS и Android с ощущениями от веб-сайтов и приложений.

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

Обратите внимание! Я не рассматриваю вопросы кэширования ресурсов приложения — вы можете использовать App Cache или гибридное решение (вроде PhoneGap), это не принципиально [От переводчика: на Хабре есть подробная статья про особенности работы с Application Cache API]. Это руководство посвящено скорее тому, как спроектировать архитектуру веб-приложения для работы в оффлайн-режиме, а не тому, какие механизмы использовать для его реализации.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии7

Fronteers 2012 — лучшая конференция по клиентской разработке, часть 1

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


В этом году мне посчастливилось впервые посетить ежегодную (5-ю по счету), конференцию Fronteers #fronteers12, в Амстердаме.

Самая громкая клиент-сайд конференция в Европе, длилась 2 дня, 4-5 октября в стенах необычного кинотеатра Pathé Tuschinski.

Все доклады были на английском языке, в постоянном сопровождении Кристиана Хейлманна. Под катом ссылки на слайды и основные тезисы презентаций первого дня конференции.
Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии5

Хитрости Chrome DevTools

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


Илья Григорик из компании Google собрал подборку малоизвестных функций Chrome DevTools, которые можно использовать для оптимизации производительности. Илья также упоминает несколько сторонних плагинов и библиотек, полезных для разработчика, и многочисленные другие хитрости: например, возможность дебаггинга iOS-приложений или кода, исполняемого на подключённом Android-устройстве.
Всего голосов 36: ↑28 и ↓8+20
Комментарии14

Видео докладов с киевских хабравстреч

Время на прочтение2 мин
Количество просмотров13K
Я был на нескольких киевских хабравстречах. Вызвался там быть в качестве видео оператора. Все доклады, которые были прочитаны на этих встречах, были мной сверстанны или в виде видео или в виде слайдкастов.

image

Но, к сожалению видеозаписи/слайдкасты были довольно слабо представлены на самом хабре, ведь смысл видеосъемки был в том, чтобы те кто не был, могли услышать что там было. На мой взгляд, обойдены вниманием очень хорошие доклады. Хочу восполнить этот пробел и выложить по рейтингу просмотров все доклады с киевских хабравстреч, на которых я был.

Посмотреть все доклады
Всего голосов 35: ↑31 и ↓4+27
Комментарии8

ECMAScript Harmony и Node.js

Время на прочтение4 мин
Количество просмотров19K
Начну издалека. С браузеров. Новинками браузеростроения интересуюсь не так уж и часто, но вот однажды, со скуки, решил посмотреть, что javascript грядущий нам готовит и что с этого нам могут предложить современные браузеры. Речь идет, само собой, не о ECMAScript 5, а уже о ECMAScript 6 ECMAScript Harmony. Через пару минут серфинга я наткнулся на такую вот сводную табличку. Не самая актуальная — Chrome, например, довольно давно поддерживает Proxy. Само собой, разброд оказался еще тот. В браузере это использовать пока не реально.
В браузере. А на сервере? На сервере нет необходимости поддерживать зоопарк различных браузеров. Node.js использует V8 — тот же javascript движок, что и Chrome, соответственно, он должен поддерживать те же новые возможности языка.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии30

Пишем реализацию MVC для Backbone

Время на прочтение10 мин
Количество просмотров11K
image

Одним пасмурным утром я подумал, что было бы неплохо хорошенько прорефакторить один из моих старых проектов. Это некоммерческое легковесное приложение для кастомизации HUD в одном 3Д шутере. Писал я его 2 года назад, был горяч и неопытен. В результате куча отменного спагетти-кода, который, несмотря на все свои недостатки, делал своё дело. Став мудрее и опытнее, я решил полностью переписать приложение, дать ему новую архитектуру, упростить поддержку и обновление. Как это сделать? Ответ казался простым — использовать MVC, разделить на уровни и связать всё в единое целое. Так я столкнулся с проблемой выбора простого и эффективного фреймворка, который станет прочным фундаментом. После быстрого исследования я выбрал backbone.js. Очень понравился своей простотой и гибкостью. Можно просто открыть исходники и понять, как всё устроено и работает. Единственный нюанс, который не радовал — MV-паттерн. Размазывать логику по многочисленным views очень не хотелось, так родилась идея написать свой велосипед, который предоставит недостающие части головоломки. Плюс, создание чего-то нового — это всегда увлекательно и интересно. Недолго думая, я приступил к реализации контроллеров для backbone.
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии33

Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 1

Время на прочтение11 мин
Количество просмотров113K
(от 27 июля 2012)
При написании нативного веб-приложения легко начать чувствовать себя богом, способным работать просто с библиотекой работы с DOM (такой как jQuery) и горсткой сервисных плагинов. Вскоре возникает проблема в виде груды вложенных возвратных функций jQuery и разбросанных DOM-элементов без всякой структуры вместо приложения.

Короче, мы застреваем в спагетти-коде. К счастью, есть современные JS-фреймворки (библиотеки, задающие, кроме функций, правила организации кода --прим. перев.), помогающие поддерживать структуру и организованность в проекте, облегчающие ремонтопригодность в будущем.

■ Что такое MVC или, лучше сказать, MV*?


Эти современные библиотеки дают разработчикам простой путь к организации кода, используя вариации паттерна проектирования, известного как MVC (Model-View-Controller). MVC разделяет задачи в приложении на 3 части:
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии23

Почему python стал моим удобным инструментом для повседневной жизни, а ruby-нет

Время на прочтение1 мин
Количество просмотров5.6K
Я очень далёк от желания устраивать «cвященные войны» на тему языков программирования. Всё равно мы будем использовать те языки программирования, которые сочтём подходящими для своих задач. Когда я писал эту заметку, я предполагал, что она вызовет негативную реакцию. Меня она совсем не удивит.
Когда я впервые познакомился с ruby, я был приятно удивлён-элегантный и внятный синтаксис языка, мультиплатформенность и много всяких вкусностей.Но пользуюсь я до сих пор python, совсем не потому что python лучше чем ruby. Совсем по другим причинам.

Читать дальше →
Всего голосов 83: ↑32 и ↓51-19
Комментарии61

Власть над демонами или автозапуск в Linux

Время на прочтение5 мин
Количество просмотров353K
Для реализации автозапуска в Linux написано уже немало и на разных языках, но приходится искать, потому постарался свести большую часть тут. Здесь не рассказывается полностью весь процесс с нуля, но предоставлено достаточно информации и ссылок, чтобы сделать атоматический запуск программ в Linux реальностью.
Читать дальше →
Всего голосов 36: ↑27 и ↓9+18
Комментарии13

Обзор новых возможностей в playframework v2

Время на прочтение4 мин
Количество просмотров5.7K
Доброго времени суток всем. Хотел бы представить вашему вниманию небольшое описание новых возможностей Play 2. Речь в данной статье пойдет о play2 scala.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии37

Вышла версия Xcode 4.3.2

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

Кратко об изменениях (из описания в AppStore):

  • Включает в себя SDK для iOS 5.1 и MacOSX 10.7
  • Подписывание программ с помощью Apple Developer ID
  • Консольные утилиты устанавливаются из меню загрузоксм. примечания
  • Instruments, File Merge и другие утилиты теперь запускаются прямо из Xcode
  • Утилита миграции на ARC может преобразовывать код из retain/release и GC кода
  • Багфиксы и стабильность — как уж водится


Версия для Mac OS X Lion доступна бесплатно в AppStore. Версии для Snow Leopard, видимо, не будет.
Некоторые особенности релиза
Всего голосов 43: ↑33 и ↓10+23
Комментарии42

Пишем кеш с определенным временем хранения объектов с использованием java.util.concurrent

Время на прочтение4 мин
Количество просмотров21K
Не так давно, мне выпала задача, написать кеш, который сам себя чистит по истечению некоторого определенного времени. Требования к нему были следующие:
  1. Легковесность
  2. Потокобезобасность

В общем-то и все. До написания данной задачи с java.util.concurrent дела не имел. На мысль использования этого пакета меня натолкнул один мой коллега, у которого было нечто подобное, но не соответствовало тому функционалу который был нужен. Итак, начнем:

В качестве ключа будет выступать внутренний класс, который помимо прямого назначения будет определять он является «живым» или его можно удалить с кеша, так как время его существования подошло к концу:
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии24

Обзор свежих материалов, январь-февраль 2012

Время на прочтение12 мин
Количество просмотров1.9K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-декабрь 2011.


Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии9

Пост-продакшн для iOS приложения: как сделать качественную видео-презентацию

Время на прочтение3 мин
Количество просмотров2.8K
Я так подозреваю, что очень многие разработчики софта для iPhone/iPad будут просто счастливы прочитать этот пост.
Я уже давненько пользуюсь гаджетами фирмы Apple и регулярно просматриваю тематические ресурсы на предмет обзоров разных приложений. И если честно, меня очень раздражают видео-обзоры, которые сделаны не очень качественной камерой и явно видно, что деланы непрофессионально.
Конечно, когда бюджет разработки невелик, то вписать в статью затрат качественный видео ролик – это роскошь. Сегодня я расскажу, как сделать качественный видеоролик-презентацию приложения для айДевайсов.
Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии28

Хостинг на AWS (EC2, EBS, S3) для чайников

Время на прочтение4 мин
Количество просмотров138K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image
Читать дальше →
Всего голосов 101: ↑98 и ↓3+95
Комментарии62

Мастер-классы по профессиональному Javascript, AJAX/COMET, jQuery

Время на прочтение1 мин
Количество просмотров2.9K
Приглашаю уважаемых разработчиков к участию в мастер-классах по профессиональному Javascript-программированию, AJAX/COMET, оптимизации, jQuery.

Они пройдут — в Ярославле (24-25 сентября), Новосибирске (3-4 октября), Казани (9-10 октября), Минске(16-17 октября), Днепропетровске (23-24 октября), Одессе (30-31 октября) и Самаре (13-14 ноября).
Читать дальше →
Всего голосов 57: ↑46 и ↓11+35
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Cham, Zug, Швейцария
Дата рождения
Зарегистрирован
Активность