Pull to refresh
1inuxoid @1inuxoid read-only

User

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

Gadgets Periphery
Truly Ergonomic 209


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

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

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

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

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

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

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

Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Views 42K
Comments 109

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

IT-companies
Хочу поделиться опытом по продвижению своей новой игры для iPhone/iPad — Wordrive.

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

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

Читать дальше →
Total votes 109: ↑104 and ↓5 +99
Views 20K
Comments 89

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

Website development *JavaScript *Development of mobile applications *
Translation
Tutorial
В этом году на конференции Full Frontal, оффлайн-приложения были популярной темой. Пол Кинлан сделал отличный доклад «Строим веб-приложения будущего. Завтра, сегодня и вчера» (вот его слайды), в котором он сравнивал ощущения пользователей от работы с 50 популярными мобильными приложениями для iOS и Android с ощущениями от веб-сайтов и приложений.

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

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

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

CSS *JavaScript *HTML *


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

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

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

Хитрости Chrome DevTools

Client optimization *Google Chrome
Tutorial


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

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

МУК corporate blog Habr
Я был на нескольких киевских хабравстречах. Вызвался там быть в качестве видео оператора. Все доклады, которые были прочитаны на этих встречах, были мной сверстанны или в виде видео или в виде слайдкастов.

image

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

Посмотреть все доклады
Total votes 35: ↑31 and ↓4 +27
Views 12K
Comments 8

ECMAScript Harmony и Node.js

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

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

JavaScript *
image

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

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

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

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

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


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

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

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

Читать дальше →
Total votes 83: ↑32 and ↓51 -19
Views 5.4K
Comments 61

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

Configuring Linux *
Для реализации автозапуска в Linux написано уже немало и на разных языках, но приходится искать, потому постарался свести большую часть тут. Здесь не рассказывается полностью весь процесс с нуля, но предоставлено достаточно информации и ссылок, чтобы сделать атоматический запуск программ в Linux реальностью.
Читать дальше →
Total votes 36: ↑27 and ↓9 +18
Views 330K
Comments 13

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

Development for iOS *Development for MacOS *

Кратко об изменениях (из описания в 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, видимо, не будет.
Некоторые особенности релиза
Total votes 43: ↑33 and ↓10 +23
Views 7.5K
Comments 42

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

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

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

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

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

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


Читать дальше →
Total votes 69: ↑66 and ↓3 +63
Views 1.9K
Comments 9

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

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

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

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

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

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

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

Information

Rating
Does not participate
Location
Cham, Zug, Швейцария
Date of birth
Registered
Activity