other_letter: Обязательно напишу небольшую статью.
Если есть еще идеи - можем списаться (например через телеграм), я все учту и потом сделаю готовую инструкцию на хабре.
Ваш вариант с сип-ом очень нравится. Можно поднять свой астериск сервер и разговаривать через linphone и переписываться через какой-нибудь chatsecure, опять же через свой xmpp сервер.
С блэкбери и правда - сложнее. Аппаратов нужно много, и привези их "оттуда" быстро - проблематично.
ирония в том, что я написал эту статью, после того, как увидел этот вопрос на тостере) но автору вопроса нужен многопользовательский чат, и ему этот вариант с богом вряд ли подойдет)
Евгений Привалов: Евгений, font-size по-умолчанию 100%, так? 100% от родительского элемента.
Если я правильно понимаю, вы делаете font-size у родителя (footer) 540%, а у .copyright вообще не указываете или указываете 100%, то размер шрифта для .copyright рассчитывает от размера родителя и div *:not(.copyright) в данном случае смысла не несет.
Семён Семёнов:
Вариант 1: скан должен загрузиться на сервер (это к программе для работы сканера) и потом браузер поджирает его (тут можно сделать веб-сокеты или банальный long-polling запрос). Я не совсем понял, как тут замешан "профиль пользователя", но такой вариант позволит просто реализовать загрузку "со сканера в браузер".
Вариант 2: Работа с оборудованием в браузере. Chrome например позволяет работать с девайсами и с файлами. Chrome либо считывает сам со сканнера либо берет файл из директории. Дальше с помощью JS вы передаете отсканированное изображение (например в base64) на нужную вкладку (например, как вы сказали "Профиль пользователя")
QuickJoey: Про REST за последний месяц было пара статей на Хабре. Делать REST имеет смысл, если API будет публичным (т.е. если ваше приложение будет давать публичный доступ к данным). REST это круто, но не панацея.
Про скриптовой язык - да может быть и другой, на ваш вкус.
В вашем случае будет одна процедура на одно действие. Самая большая сложность - сделать качественную и удобную архитектуру API. А дальше обычно все идет по накатанной. Для каждого логичного действия - отдельный файл. Можно объединять процедуры.
Можно логин/разлогин сделать вместе, можно отдельными методами API.