История карманных компьютеров в лицах. Часть 2

Продолжение поста ИСТОРИЯ КАРМАННЫХ КОМПЬЮТЕРОВ В ЛИЦАХ. ЧАСТЬ 1.
«Три медведя» приходят на рынок карманных компьютеров – IBM, HP, AppleComputer
23 апреля 1991 года был представлен HP-95LX.

Рисунок 1. HP-95LX
HP-95LX, как и AtariPortfolio, входил в число первых «настоящих» КПК, ведь он работал под управлением операционной системы MS – DOS3.22, а в комплект поставки входило множество предустановленных приложений. Среди них особое место занимал Lotus 1-2-3. Из «начинки» устройства стоит отметить 16 – битный процессор NECV20 (аналог Intel 8088) с тактовой частотой 5.37 Мгц. Монохромный дисплей с разрешением 240 х 128 имел довольно внушительные размеры – 4.8 дюйма. Присутствовали разъёмы PCMCIAи RS – 232. Размер ПЗУ составлял 1 Мб, а ОЗУ – 512 Кб.
В 1992 году IBMвыпустила устройство под названием Simon. Хотя детище IBM и относится скорее к коммуникаторам, чем к карманным компьютерам, думаю оно стоит упоминания в этом посте.

Рисунок 2. IBM Simon
Коммуникатор работал под управлением операционной системы Zaurus. Помимо стандартного мобильного телефона, в Simon также содержался календарь, адресная книга, мировое время, калькулятор, записная книжка, приложения для работы с электронной почтой и факсами, а также несколько игр. Все управление IBMSimon осуществлялось посредством сенсорного экрана.
В 1992 году тогдашний босс Apple Джон Скалли, рассказывая о новых разработках внутри компании, ввел новый термин personal digital assistant или просто PDA. Этот термин стал нарицательным, для всех последующих карманных компьютеров, в не зависимости от производителя.
В 1993 году был представлен карманный компьютер MessagePad H1000.

Рисунок 3. Apple MessagePad H1000
В начале разработки он планировался, как полностью переработанный компьютер с большим экраном, большим объемом внутренних ресурсов и полноценным объектно — ориентированным графическим ядром, то есть скорее как планшет, чем карманный компьютер.
Но ближе к выпуску курс разработки переменили и на рынок вышел уже карманный персональный компьютер. Его часто, по названию операционной системы, называли Newton.
Среди устройств серии Newton стоит также выделить MessagePad 120, построенный на RISC-процессоре ARM 610 с тактовой частотой 20 МГц и при емкости ОЗУ 1 Мбайт стоит 599 долл., а с 2-Мбайт ОЗУ — 699 долл. С памятью 2 Мбайт модель вероятно предпочтительнее, тем более что за лишние 100 долл. вы получаете не только дополнительное ОЗУ, но в придачу и 9 600-бит/с факс-модем и экземпляр программы PoketQuicken фирмы Intuit.
Работая от входящих в комплект четырех батареек типа AA, можно было выполнять вычисления с перерывами в течение 25 ч.

Рисунок 4. MessagePad 120 и MessagePad 2000
Не стоит забывать и про MessagePad 2000, который был полностью переработан по сравнению с предшественниками.
Оперативной памяти теперь стало 4 Мб. Разрешение экрана выросло вдвое — 480 х 320 против 320 х 240. Частота процессора выросла с 20 до 162 Мгц. К сожалению, с увеличением качества выросла и цена, которая теперь составляла 1000 долларов.

Рисунок 5. MessagePad 2000 с подключенной клавиатурой
Линейка Newton’ов выпускалась вплоть до 1998 года, но, к сожалению. за эти 6 лет не имела коммерческого успеха. Среди причин низких продаж называли и довольно высокую стоимость, и размеры устройств, которые не помещались в кармане брюк или пиджака, и плохое распознавание рукописного текста.
Рынок КПК, основным игроком которого были Apple, начал угасать. Лишь появление, незадолго до закрытия линейки Newton, нового устройства Palm Pilot, спасло и вдохнуло новую жизнь в КПК.
Palm стал у руля
Думаю, любой кто хоть чуть – чуть интересуется мобильными техногиями слышал про Palm-ы. Имя этих КПК стало нарицательным и прочно влезло в ассоциативный ряд с терминами PDA и наладонник.
Свое восхождение палмы начали в 1996 году, когда на рынок вышли устройства под названием Pilot. Это были PalmPilot 1000 и PalmPilot 5000, чей объем оперативной памяти, соответственно, равнялся 128 Кб и 512 Кб. PalmPilot 1000 был оснащен процессором MC68328 DragonBall с тактовой частотой 16 МГц. Все это богатство управлялось Palm OS.

Рисунок 6. Palm 1000
Главной фишкой подобных устройств являлось то, что все действия в этих КПК можно было выполнить с помощью нескольких прикосновений стилусом по сенсорному экрану. Кроме того система оказалась довольно нетребовательной к ресурсам, в отличии от конкурирующей Windows CE. Предел тактовой частоты в 100 МГц они преодолели только в 2002 году с выпуском Palm Zire 21.
Среди целого парка пальм выделю несколько интересный, на мой взгляд, моделей. Итак, начнем с Palm III. Годом его рождения является 1998, сразу после выхода он стоил около 400 долларов. В отличии от своих предшественников PalmPilot он мог отображать целых четыре оттенка серого, к тому же имел инверсную подсветку.

Рисунок 7. Palm III
Первоначально, оснащался 2 Мб оперативной памяти. Но существовали апгрейды вплоть до 8 Мб. Попытки увеличить память до 16 Мб не увенчались успехом из – за ограничения на работу с 12 Мб адресного пространства.
Для связи с внешним миром в устройстве были IrDA и COM – порт. С помощью подключаемого адаптера PalmConnect, реализовывалось подключение к наладоннику USB – разъема.
Питание Palm III, осуществлялось от двух батареек ААА.
Следующим девайсом вызывающим у меня интерес является Palm m100.
Ни процессор (Motorola Dragonball EZ (MC68EZ328) 16 MГц), ни оперативная память в этой модели не получила изменений по сравнению с предшественником.
Зато экран теперь умеет отображать до 16 градаций серого, а вес уменьшился до 125 г., по сравнению с 170 г. в Palm III.

Рисунок 8. Внешний вид Palm m100
Две батарейки ААА обеспечивали до 2 месяцев работы, а наличие СОМ – порта позволяло обеспечивать прямой экспорт данных в в Microsoft Word и Excel, а также Chapura PocketMirror (связь с Microsoft Outlook) и AvantGo (Web Channel Manager).
Перевалив рубеж двухтысячного года нельзя не вспомнить об одной из моделей начального уровня – Palm m130.
Среди главных особенностей данного наладонника стоит выделить наличие в бюджетной модели не просто цветного дисплея, а дисплея выполненного по технологии STN, поддерживающего отображение до 65536 цветов. Информация вполне различима даже на улице в солнечную погоду. К сожалению, разрешение не изменилось по сравнению со старшими моделями и составляет все те же 160х160 точек.
Присутствие такого хорошего экрана накладывает свой отпечаток на энергопотребление. Батарейки класса ААА, пришлось заменить на более емкие литий – полимерные аккумуляторы. Если верить производителю, срок жизни подобных аккумуляторов составляет 2 года. Одного заряда хватает на неделю нормальной работы (примерно час в день). Время полной зарядки составляет около двух часов.

Рисунок 9. Palm m130 с док — станцией
Наличие процессора Motorola DragonBall VZ33 с частотой 33 МГц, отнимало у пользователя возможность обновиться до более новой версии Palm OS 5.0, так как она работала только на ARM – процессорах.
Объем внутренней памяти составлял 8 Мб, которые можно было расширить с помощью карточек MMC/SD.
При покупке устройства вы получали не только сам КПК, но и док – станцию с USB – подключением.
Последним представителем славного семейства Palm, о котором я хочу вам рассказать, является Zire 72.

Рисунок 10. Zire 72s
Он вышел в 2004 году. Это было одно из первых устройств компании, которое имело встроенную камеру с разрешением 1,2 мегапикселя. Кроме камеры, устройство может похвастаться 32 Мб оперативки, процессором Intel PXA270 частотой 312 МГц, уже привычным пользователям разъемом для SD – карт и Bluetooth. Разрешение экрана составляло 320х320 точек.
В качестве операционной системы в устройстве была установлена PalmOS 5.2.8.
Не смотря на такое аппаратное богатство, программные возможности палмов оставляли желать лучшего, по сравнению с быстро развивающейся системой от одной малоизвестной фирмы Microsoft. Дурацкое лицензионное соглашение с Kodak, имеющей права на ядро системы, не позволяло Palm раскрывать сторонним разработчикам API для создания фоновых задач на уровне ядра. Так что многозадачность в системе простаивала и использовалась только при фоновом проигрывании музыки.
«Пока спектр возможностей ОС от Microsoft расширялся, PalmOS все стояла на одном месте. В течение долгого времени ожидался выход версии Palm OS 6 Cobalt, в которой разработчики собирались устранить большинство проблем, присущих предыдущей версии, в том числе планировались истинная многозадачность, переработанный графический интерфейс, поддержка экранов с высоким разрешением и т. д. Эта версия системы была готова в 2004 году и позднее даже была выпущена обновленная версия с номером 6.1, но, по неизвестной причине, ни одного серийного устройства под управлением Palm OS 6 Cobalt выпущено не было.»
С уходом с рынка КПК на PalmOS, мир карманных компьютеров фактически прекратил свое существование, уступив место смартфонам и коммуникаторам.
Впрочем иногда КПК все же проскальзывают на рынке, хоть и называются они иначе. К ним можно отнести такие устройства, как Ipod Touch и Galaxy S Wi – Fi.

Рисунок 11. Ipod Touch 5 и Galaxy S Wi – Fi
Надеюсь вам был интересен этот небольшой экскурс в прошлое. Пользуясь случаем поздравляю всех читателей с Новым годом. Удачи, здоровья и творческих успехов в 2013 году.-

ссылка на оригинал статьи http://habrahabr.ru/post/164469/

Дебри филогенетики — демонстрация и объяснение

Думаю многие ИТ-специалисты интересуются не только программированием, но и вопросами более земными и частенько их можно застать рассуждающими о происхождении человека, разума и т.д. Мы обратимся к самому началу — происхождению видов бактерий. И хотя там есть много узкоспециальных вопросов, сам принцип построения филогенетических деревьев не такой легкий, но захватывающий. О нем то мы и будем говорить.

Чуть ранее я написал статью Систематика прокариот — дальние родственники, где сообщил о грубых результатах и методе их получения. Он несколько не классический, но вполне укладывается в научную парадигму. Достаточно «жесткий» диалог с Davidov, который имел место быть в этой статье, может создать впечатление проблематичности метода о котором я говорю. Но мы потом сели и спокойно обсудили, и подвели некоторые итоги. Суть диалога представляет некоторый интерес и я его вначале частично опубликую.

А затем хочу продемонстрировать один наглядный пример построения дерева «происхождения видов» с помощью моего подхода (назовем его «детерминированный подход»). По сути метод можно обобщить, и тогда он не будет относится только к филогенетики и его можно использовать в других областях, когда нужно граф превратить в дерево, выкинув слабые связи.

Проблематика в диалогах

Диалог хоть и с коррекцией получился длинный. Но я бы рекомендовал его прочесть — он показывает разницу между моими взглядами и классическими взглядами в филогенетике. Главное противоречие у нас получилось в том, что считается, что нельзя найти более древние виды среди тех которые сейчас секвенировали, т.к. они современники (братья друг другу). Опровержение я попытаюсь дать в следующем разделе. В диалоге также видна разница между моим подходом (который я вкратце опишу в следующем разделе) и классическим. Если мой подход детерминированный и точный, то классический — это вероятностный. А уже из-за разных методов у нас и получаются разные противоречия в воззрениях — отсюда собственно и главное противоречие о нахождении более древних видов. На вероятностной основе это действительно нельзя никаким образом увидеть, но на детерминированной можно (правда с ограничениями, из-за недостаточности данных).

davydov: давайте с постановки задачи, чтобы потом не было сложностей.
я: ок
davydov: задачка такая: возможность восстанавливать эволюционные соотношения между отдельными видами бактерий. так?
я: термин эволюционные соотношения мне не нравится, под него можно подсунуть не то что надо
davydov: ок. давайте конкретнее тогда
я: Если говорить на бытовом уровне, то нужно понять как произошел организм, мог ли он произойти без того, чтобы до это не существал бы другой организм. В простейшем случае имеем организм А и организм Б, надо сказать какой из них предок

davydov: погодите, довольно странная задачка. Как более ли менее устроена эволюция? (очень упрощенно) есть некий универсальный общий предок — LUCA (last universal common ancestor) он себе живет и живет. тут бац, у него появились два потомка один начал менять в одну сторону, другой — в другую, прошло 2 миллиарда лет, и предка не осталось.
я: Изложу свою версию. Вначале есть множество РНК-нитей, они могут в разных комбинациях агрегироваться в один организм — так появляется первое поколение предков
davydov: допустим. РНК мир.
я: далее, они обмениваются различными РНК-нитями, которые эволюционируют в сторону чаще усложнения и отбираются в соответствии с пригодностью по функциональности. Этот начальный момент важен, потому, что сейчас суть эволюции не меняется. Дальше я согласен, что есть предки, которые затем умирают, но оставляют в своем геноме артефакты, по этим артефактам мы и можем судить, какие организмы более древние по своему составу
davydov: что значит более древние?
я: это означает, что например нить РНК достаточно консервативна и существовала в предках, и теперь её можно видеть в текущих видах без изменений, или с минимумом изменений
davydov: то есть древний означает «близкий к предковому состоянию», так?
я: да
davydov: хорошо. считается, что термин древний — не очень хороший термин, т.к. подразумевает время (а оно для всех ныне живущих одно и то же).
я: в том то и дело — нам важно именно время, точнее чтобы мы могли судить о этом времени

davydov: какое именно время?
я: Ну скажем время образования данной конкретной тРНК или белка
davydov: мы про виды сейчас.
я: да, но виды — это агрегаты РНК и белков (генетического материала), в виде может содержаться более древние РНК и более молодые, они образовались не в одно время
davydov: хорошо. то есть вас интересует, как давно появилась та или иная молекула, понял.
Но. Предположим, что вся эволюция генома — это мутации + дупликации + перестановки.
тогда получается, что все рнк произошли в момент t0.

я: ок, но утверждение, что «все рнк произошли в момент t0» мне не понятно
davydov: ну дело в том, что у нас нету почти никакой информации про мир до LUCA. поэтому все склонны изучать эволюцию уже после появления luca, я условно называю этот момент t0.
я: Хорошо, но тогда точнее сказать, что к моменту t0 существовало определенное множество РНК
davydov: ну хорошо, но просто это ещё совсем не было похоже на современный организм.

davydov: я сейчас скажу, с чем я совсем не согласен, мы потом попытаемся разобраться, прав я или нет. Почти все молекулы произошли так: (1) дупликация (2) дивергенция (то есть расхождение двух прежде идентичных копий). У LUCA согласно современным данным было всего лишь 29 белков, и наверное штук 30 других генов. Все остальные белки и гены возникли в результате геномных перестроек (в т.ч. дупликаций) и дивергенции
я: пока все ок
davydov: когда в результате дивергенции появляется что-то разумное (как с миоглобинами человека), оно попадает сначала под положительный (организмы с этим лучше выживают), а потом иногда под отрицательный (организмы без этого умирают) отбор, когда что-то находится под сильным отрицательным отбором (без этого легко сдохнуть), оно становится консервативным. пока все сходится с вами?
я: ага
davydov: отлично. так вот, большая часть молекул братья в плане происхождения. Был момент, когда они были мусорной днк, а до этого копией какого-то гена, а до этого ещё чем-то. А если все они братья, то вопрос о том, кто произошел раньше не имеет смысла, потому что у всех генов в сущности один предковый ген, который стал как-то там в водичке дуплицироваться, а потом дивергировать. Какой вопрос имеет смысл? — Это вопрос о том, в какой момент времени существовал предок кишечной палочки и обезьяны или вопрос о том, когда появились первые гены похожие на миоглобин. То есть последний (очень существенное слово) общий предок современных миоглобинов.

я: тут уже пошло что-то не понятное, попробую раскрутить. Скажем рРНК вначале существовала в примитивном виде, и рибосома работала но хуже, далее рРНК начала усложняться и это помогло рибосоме лучше работать. Так как же не имеет смысла какой вид имела рРНК вначале, а какой потом? И главное в какое время произошла положительная мутация?
davydov: положительные мутации происходили постоянно и отрицательные (но они не закреплялись) мы можем зафиксировать появление нового белка, например. Но не в том смысле появление, что его не было раньше,
а в том смысле, что у всех ныне живых организмов этот белок — потомок того самого
я: и что? не важно когда происходили изменения?
davydov: дело не в том, что не важно. дело в том, что вы этого не увидите.
я: мы можем зафиксировать каждую положительную мутацию и с какого состояния она произошла, это разнообразие есть в видах, и их нужно лишь правильно выстроить
davydov: вот допустим перед luca у нас была простая ррнк. потом 3 млрд лет назад произошла положительная мутация
а luca возник допустим 2 млрд лет назад (это неверно на самом деле, но допустим). Значит у всех потомков luca эта положительная мутация будет. так? а если она будет у всех, то вы не знаете, когда она появилась.
я: нет она будет не у всех, а только у тех, которые близки к luca
davydov: даже если есть те, которые ближе к luca, чем другие (что отдельный вопрос), то почему у тех, кто дальше, её уже нет? почему её не будет у тех кто дальше от luca?
я: Нет их дальше, потому что происходит дальнейшие положительные мутации
davydov: а почему у тех, кто «близко» тоже не происходят положительные мутации? их заморозили? 🙂
я: потому что мутации происходят не в отдельной функциональной единице (РНК, белок) а на всем множестве ДНК… и да там могут начать положительно изменяться другие части, но отдельные функциональные единицы будут заморожены
davydov: почему у одних «далеких» видов за n млрд лет произошло много мутаций, а у «близких» мало?
я: почему много/мало? одинаково, только в разных местах раз, и два потому что были не положительные мутации, а отрицательные и это не закреплялось в разных местах ДНК в целом
davydov: в общем идея в том, что «близких» к luca нет. а есть те, которые стали эволюционировать в одну сторону. есть те, которые стали в другую.
я: скажем вероятность положительной мутации тРНК достаточно мала. Если меняется нуклеотид в консервативной части, то будет отрицательная мутация — и для этой тРНК очень сложно найти положительную мутацию, поэтому виды начинаю дивергенцию, и по отдельным элементам они будут ближе к luca, а по другим нет.
davydov: согласен с последним. то есть вы сейчас сказали, что есть консервативные молекулы и неконсервативные.
мне кажется, у нас опять путаница. есть консервативные (похожие на luca) молекулы, но нету консервативных (похожих на luca) видов. правильно?
я: похоже все так
davydov: отлично. мы все ближе, ладно, завтра о задаче.
я: до завтра. хотя о степени консервативности видов можно говорить, как о совокупности наличия более близких к luca консервативных молекул. Вот видимо в чем разница у нас.

я: последнию мою фразу вчера видел: «хотя о степени консервативности видов можно говорить, как о совокупности наличия более близких к luca консервативных молекул. Вот видимо в чем разница у нас.»?
davydov: да, с этим я согласен. то есть если мы можем восстановить «предковое состояние» по большому числу генов (что само по себе задача довольно непростая), то для каждого конкретного вида мы сможем определить, насколько он близок к этому предковому состояния. я думаю, что большой разницы между разными видами не будет, но определенно есть, для кого эволюция шла чуть быстрее, есть те, для кого чуть медленнее. Интуитивно подозреваю, что полученная величина будет очень хорошо коррелировать с длиной каждой конкретной ветви (от корня) для каждого конкретного вида.

я: мы хотели поговорить о задаче!? Я говорю о идентичных тРНК — это такие тРНК, которые по своей последовательности полностью совпадают и не имеют мутаций в разных видах, родах и т.д. до типов и царств
davydov: постановка задачи — это тот биологический вопрос, на который мы ищем ответ.
я: Так вот на основании эти идентичных тРНК мы можем судить о относительном возрасте видов, родов (то о чем мы говорили выше)
davydov: одну секунду. мы кажется согласились с вами, что возраст всех видов один и тот же. незначительно различается скорость эволюции, и назвали это «консервативностью вида».
я: Да, это то что мы имеем сейчас… но судить мы можем о том, как они эволюционировали. Мы согласились с вами с тем, что мы сейчас взяли штаммы разных видов и сейчас их секвенировали, но не то что все виды появились в один момент. Так же?
davydov: ну, все виды являются потомками luca, какой момент мы будем брать за точку отсчета появления вида?
я: Мы это можем сделать лишь относительно, и судить об этом лишь на основании той информации которая у нас есть, поэтому все будет зависеть от того множества штаммов, которое мы рассматриваем. Тогда имея скажем 1000 штаммов нам надо их выстроить в виде последовательного временного развития. Начальная точка отсчета у нас появится скорее всего только в самом конце исследования. Вначале мы сможем лишь разделить эти 1000 штаммов на группы и не сможем сказать жили ли они параллельно или нет. Но те которые будут внутри группы будет означать, что они произошли где-то в одну эпоху
davydov: дело в том, что 1000 современных штаммов — это результат следующего процесса:
был один вид, он разделился на два, каждый из двух разделился ещё на два, …, и так 10 раз, в результате получаем 1024 штаммов. Все промежуточные значения утеряны, вы видите 1024 вида, а все предыдущие этапы вам неизвестны, потому что эволюция идет непрерывно.
я: это не совсем так, тут нам и помогут идентичные тРНК. Как отдельный вопрос.
davydov: просто вы пытаетесь найти промежуточные состояния, а среди современных штаммов их нет.
я: как же нет 😉 есть и это видно по консервативности
davydov: откуда? для них эволюция остановилась? Консервативности отдельных молекул, тогда как в других молекулах накопились отличия.
я: Ну, мы же уже говорили о этом
davydov: но видимо не до конца друг друга поняли. это ключевой вопрос. можно я приведу хорошую модель?
davydov: смотрите, у нас есть листовка. на ней напечатан текст. мы просим машинисток постоянно перепечатывать эту листовку на печатной машинке, а старые листовки при этом уничтожаем. машинистки довольно часто ошибаются, есть места, где ошибиться легко, есть места, где ошибиться сложно (консервативные и вариабельные участки). некоторые листовки вообще выбраковывают и не делают с них копий. мы даем одну листовку, приходим через год, у них на столе 1000 листовок с немного разным текстом. где-то длиннее, где-то короче и т.п. промежуточных листовок среди них нет.

я: ок, и что мы разве не можем вычислить последовательность замен. Можем. Задайте вопрос как? 🙂
davydov: мы можем для каждой группы листовок приблизительно оценить, когда была та (последняя) листовка, которая была прародителем этой группы. мы можем приблизительно восстановить предковые состояния для каждой группы.
мы можем дать оценку, что такое-то свойство появилось не позже чем тогда-то (но не точную оценку).
например, мы видим что все листовки начинаются со слова «Здравствуйте»
мы можем предположить, что первая листовка также начиналась со слова здравствуйте, но мы не знаем, что было за 10 листовок до первой. может она всегда начиналась со слова здравствуйте, а может быть это ошибка вкралась на одной из предыдущих типографий.

я: Не так
я: итак у нас есть 1000 листовок. И мы можем выделить 5 групп.

1. 250 листовок, со словами
«Здравствуй Миша, как дела? У меня все хорошо.»
2. «Здравствуй Миша, как дела? Я уезжаю.» — 150 листовок
3. «Здравствуй Миша, как дела? Мне скучно, но все хорошо.» 100 листовок
4. «Привет Миша, как дела? Мне скучно, но все хорошо.» 100 листовок
5. «Добрый день, Михаил, как дела? Я уезжаю.» 400 листовок

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

davydov: ну, допустим мы используем алгоритм neighbour joining. мы определим меру близости для каждой пары групп
потом объединим две самые похожие. потом присоединим к ним третью. потом четвертую. потом пятую. то есть мы можем «найти последнего общего предка» для каждой группы.
я: Так в чем же проблема?
davydov: мы также можем предположить, что в последнем общем предке всех существующих листовок был вопрос «как дела». (но вполне возможно, что в первой его и не было)
я: и что, то чего нет мы не анализируем
davydov: мы не можем определить время, когда возникла фраза «мне скучно, но все хорошо». мы можем дать только оценку, что это произошло не позже чем какой-то момент. и точно неверно говорить, что 2 произошла от 3. потому что они оба произошли от кого-то другого. и эта листовка уже давно уничтожена.
я: Мы не можем определить время в абсолютных цифрах — возможно, хотя и это можно но тут мы выходим за область биоинформатики.
davydov: согласен.
я: Можно говорить, что 2 произошла от 5 в том смысле, что мы рассматриваем только две информативные фразы. и эти фразы произошли в таком порядке вначале как у 2 а потом исказились как у 5
davydov: это не происхождение вида. это происхождение фразы.
я: ок, но эти фразы содержаться в какой то определенной листовке
davydov: да. и мы можем сказать, что мол в предке (столько-то поколений назад) её вероятно не было, а сейчас она есть. и появилась она где-то на огромном отрезке из точки а в точку б.
я: хорошо, не вижу противоречий. думаю мы о одном разными словами
davydov: отлично. мы научились определять момент появления гена. но мы по-прежнему не понимаю, что такое момент появление вида.
современные виды — это точки на ветвях эволюции. иногда эти ветви раздваиваются, но никогда не останавливаются, и нельзя выбрать такой-то возраст и сказать, что протеобактерии произошли тогда-то. потому что ни одной современной протеобактери тогда не было, были какие-то другие её предки.
я: но фразы фиксируются на листовках, хотя изучаем мы конечно эволюцию не листовок как материального носителя, а фраз
когда мы говорим о моменте появления вида, мы подразумеваем, что когда то существовала такая-то листовка, которая есть прообраз текущей и в которой содержалась такая же фраза
davydov: поскольку в реальности текст очень большой, то выбор конкретной фразы очень сильно повлияет на результат.
и вы скажете, что давайте называть проетобактериями тех, у кого есть такие-то гены. а я скажу, нет, давайте выберем другие гены. и у нас получатся существенные различия в результатах.

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

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

я: что-то вы меня запутали… с одной стороны, вы говорите что нельзя определить момент появления вида, с другой стороны говорите, что можно найти предка и время его жизни. Так если мы знаем время жизни предка — то мы знаем что момент появления вида находится на отрезки времени жизни предка — и нет тут противоречий.

davydov: время возникновения вида и время существования общего предка — это разные понятие.
знаете определения вида? для обезьян например, это возможность давать здоровое потомство.
так вот, возьмем последнего общего предка всех людей. вполне вероятно, что этот предок не может спариваться с современным человеком и давать здоровое потомство. значит он относится к другому виду. (и этот вид давно вымер)
это именно время появление последнего общего (для всех людей) предка, а не время, когда человек стал человеком.
так что время появления вида — это очень тонкий и сложный биологический вопрос.
я предлагаю вам другую формулировку задачи: введем функцию D(A, B), которая для видов A и B дает значение, которое тем больше, чем раньше разделились ветви эволюции видов A и B. То есть тем больше — чем раньше существовал последний общий (для A и B) предок. Последний — это важно, потому что первый общий предок, это всегда luca, и для любой пары видов будет одинаковое значение. задача — найти эту функцию.
я: задача упрощенная одной функции мало, но как первое приближение пойдет. И могу ввести эту функцию — это число совпадающих идентичных тРНК
davydov: отлично. давайте по-позже продолжим? мне кажется, мы уже очень близки к сути
я: ок

davydov: ок. теперь вопрос, как эту функцию выбрать. слушаю вас.
я: так вот, один из способ — я считаю прямой, это число функционально значищих идентичных последовательностей ДНК которые не мутируют от вида к виду, от рода к роду и тогда мы приходим к тому, о чем я говорил про тРНК — они как раз такие
все же остальные способы косвенные и не точные. ок?
davydov: значит, тут есть несколько тезисов. во-первых, я правильно понимаю, что вы утверждаете, что тРНК не мутируют?
я: нет, конечно они мутируют вообще, но они МОГУТ не мутировать от рода к роду
davydov: прекрасно. значит они всего лишь консервативны.
я: да, больше чем все остальное
davydov: не спорю. какую именно процедуру вы предлагаете на основе тРНК?
я: тот график, который я показывал в статье на хабре — показывает лишь число идентичных тРНК между родами.
davydov: давайте по пунктам. 1. вы берете ряд видов, интересующих вас, так?
я: я беру все штаммы, которые есть в NCBI (National Center for Biotechnology Information) в базе секвенированных штаммов (ncbi genomes). Формат файла там .fna. Есть еще другие файлы, которые указывают якобы где находятся тРНК — вот там есть проблемы, но я и устраняю.
davydov: каким образом?
я: Есть файл .frn — там имеется последовательность тРНК, которые имеются в данном организме по мнению ученных (скорее всего они пользуются бластом или чем то таким). Важно то, что у тРНК конец должен оканчиваться на CCA, я это перепроверяю, и отбрасываю все которые не имеют. Далее длина тРНК не может быть произвольной, она как правило находится в районе 70-100 нуклеотидов, меньшие и большие я тоже отбрасываю. Получаю примерно 20000 уникальных видов тРНК
davydov: (лучше «типов» тРНК, чтоб не путаться)
я: да
davydov: типом вы называете точную последовательность
я: потом проверяю по всем файлам .fna все 20000 тРНК — есть ли они там действительно и где. Да, точную — один в один
davydov: как вы это делаете? технически, поиск подстроки?
я: программно — да поиск подстроки
я: так вот потом группируем по родам и получаем граф, по этому графу можно судить о связях между родами. Этот граф зашумлен конечно и по хорошему можно разрядить эти связи
davydov: Во-первых, в чем проблема этого графа. хотя погодите. давайте с простого, я просто тРНК никогда не занимался, поэтому не знаю: сколько у одной бактерии разных тРНК?
я: 2-3 на каждую аминокислоту, т.е. порядка 60
davydov: правильно ли я понимаю, что существуют разные штаммы, а может и виды, у которых тРНК абсолютно идентичны?
я: таких очень мало — исключение из правила, и только в рамках одного вида
davydov: хорошо. полезно заметить, что для этих групп штаммов тРНК вообще не дает никакой информации.
я: кроме того, что они один вид 🙂
davydov: и нужно рассматривать более вариабельные последовательности. ок? ну иногда хочется смотреть и на штаммы, но редко.
davydov: дальше вопрос, существует ли пара видов, для которой вообще отсутствуют общие тРНК?
я: да, существуют. и их много, найти общие проблема, а не наоборот
davydov: значит, для них анализ тРНК такую функцию не даёт. это означает, что в условиях ограниченной выборки наша функция плохо работает на больших расстояниях.
я: на графе есть вершины, которые не связаны с остальными — да их можно отбросить, или рассматривать лишь отдельно от остальных, но там есть достаточно большой участок 70% родов которые так или иначе между собой связаны
davydov: хорошо. просто запомнить, как некоторое ограничения метода.
следующий вопрос: у нас есть три вида. У них такие тРНК
1: AAABBB
2: AAABBA
3: BBBAAA
несмотря на то, что 1 и 2 явно ближе, они будут казаться также далеки, как 3?

я: я не знаю, это проблема тех кто рассматривает тРНК с мутациями — против чего я возражаю
davydov: ну вы согласны с тем, что 1 и 2 ближе?
я: да, 1 и 2 ближе
davydov: но ваш метод этого не покажет (это гипотетическая ситуация, я понимаю, что на самом деле там скорее всего будут и другие тРНК, которые между 1 и 2 могут совпасть)
я: да, не покажет…
я: но в том то и дело, что в варианте с мутациями — вы демонстрируете на вырожденном состоянии, но таких нет среди 2000 геномов, которые мы имеем
davydov: допустим, да.

davydov: хорошо. есть ещё две вещи
одна из них состоит в том, что по-видимому, бывают процессы (изменяющие систему трансляции) которые приводят к резкому изменению тРНК, не обусловленную большим эволюционным расстоянием.
т.е. что-то меняется в рибосоме, и сразу кажется организмы намного дальше, чем они есть на самом деле (если смотреть по другим признакам) есть работа на эту тему, я вам, наверное, давал ссылку. тезис понятен?
я: «бывают процессы (изменяющие систему трансляции)» — это все равно, что поверить в революцию, а не в эволюцию

davydov: нет, ну понятно, что на самом деле происходит все не мгновенно.

davydov: итак, у нас есть ваш метод, у него есть определенные достоинства, определенные недостатки.
+ очень простой и воспроизводимый алгоритм.
+ маленькая вероятность ошибиться, практически невозможно не найти, очень
+ маленькая вероятность ошибиться. практически невозможно найти не то, почти всегда нужное находится. можно for fun ещё посмотреть blast’ом сколько вы реально упустили, но, думаю, немного.

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

я: все так. ну с этим можно жить 🙂
iakov.davydov: с этим можно, жить.

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

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

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

Пример нахождения предка среди современников

Чтобы можно было объять мы рассмотрим пример только на 5 родах:
1 Salmonella
2 Enterobacter
3 Citrobacter
4 Marinomonas
5 Oceanimonas

Если выделить их из общего графа, то мы получим:

Видим, что тут каждая вершина связана со всеми остальными. Ни о каком направлении эволюции тут говорить не приходится пока. Граф не ориентированный и показывает лишь силу связей (минимум-максимум). Здесь видно лишь то, что Salmonella, Enterobacter и Citrobacter — связаны между собой более сильно. Но говорит ли это о эволюционной близости хоть что-то? В общем-то пока нет. Но классическая филогенетика с этим смиряется.

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

Первое что мы можем сделать, это предположить, что у родов Marinomonas и Oceanimonas был один предок X2, а у Salmonella, Enterobacter, Citrobacter другой предок X1. Кроме того, окажется, что X1 предок X2. (это все рассчитывается, но у еще не достаточно формализовано, поэтому лишь демонстрация, хотя алгоритм можно сделать). И тогда получится следующий ориентированный граф:

Цифорки на связях теперь означают состав идентичных тРНК, были выделены 5 групп:
1. группа из 7 тРНК
2. группа из других 7 тРНК
3. группа из 53 тРНК
4. группа из 6 тРНК
5. группа из других 6 тРНК

Числа из 6 цифер — это ID одного тРНК. В одном месте указано 1(-12804), что означает состав группы 1, но за исключением тРНК с ID= 012804. С плюсом это композиция групп и отдельных тРНК. И тогда мы видим, что если предположить, что у предка X1 имелись все 5 групп и несколько отдельных тРНК, то прослеживая по связям разницу видим как происходила дивергенция, причем с 100% точностью (т.е. детерминировано). (как это делится на группы, я опускаю, алгоритм когда будет пойдет в научную статью (если такое случится) )

А теперь поищем может у нас есть такой предок среди современников? Посмотрев внимательно увидим, что да есть — это Citrobacter. И можем тогда перерисовать.

Так мы и нашли предка среди современников. (конечно, он предок не в полном смысле, но он тем не менее наиболее к нему близок по составу тРНК).

ссылка на оригинал статьи http://habrahabr.ru/post/164455/

Хабрасорсинг 2

Попробуем повоторить? С предыдущего хабрасорсинга прошло уже пара месяцев.
В этот раз предлагаю его преурочить к новогодним праздникам когда у многих синхронизировались выходные и возможно появилось желние в чем либо себя проявить.
Для меня предыдущий топик подарил пару контактов в “записную книжку” и возможность немного проявить себя в проекте zen comment.
Так же родилось ряд идей:
Кроссплатформенная игра mmo tower defense + netstorm в сеттинге steampunk — наброски мыслей
Сервис поиска единомышленников (не фриланс-биржа)

Предлагаю всем желающим откликнуться и предлагать как свои проекты так и изъявить желание поучаствовать в каком нибудь проекте.

Ну и конечно всех с наступающим.

ссылка на оригинал статьи http://habrahabr.ru/post/164465/

С 1 янврая 2013 года начнут выдавать Универсальные электронные карты

Уже завтра начинается выдача универсальных электронных карт. Карта УЭК обеспечивает идентификацию ее держателя для получения им доступа к государственным и муниципальным услугам и услугам иных организаций, получение государственных услуг в системе обязательного медицинского страхования (например, запись на прием к врачу), обязательного пенсионного страхования (например, получение информации о состоянии индивидуального лицевого счета в Пенсионном фонде России), получение банковских услуг.
На поверхность карты УЭК нанесены следующие сведения: Ф.И.О. гражданина, пол, дата рождения, образец подписи, фотография, номер карты, номер полиса обязательного медицинского страхования, страхового свидетельства обязательного пенсионного страхования.



С 1 января 2013 года карту будут выдавать гражданам России по заявлению, а с 1 января 2014 — всем гражданам России, кроме тех, кто отказался в письменной форме.

Цитаты из интервью с президентом федеральной уполномоченной организации «Универсальная электронная карта» Алексеем Поповым:

Удастся ли запустить систему с первого января?

Алексей Попов: Есть бородатые мифы про универсальную электронную карту. Первый как раз о том, что сроки могут перенести. К примеру, из-за того, что к работе с картой не готовы регионы. Могу сказать точно: никто ничего менять не собирается. Есть закон, в нем сказано, что с 1 января 2013 года в России начинается выдача электронных карт тем жителям страны, которые написали заявления на получение УЭК. А еще через год — всем остальным. Именно так и будет. Мы ведем мониторинг готовности регионов к запуску проекта. Новые данные вывешиваются каждую неделю по понедельникам на портале www.uecard.ru. Пользуясь случаем, прошу региональные СМИ активнее работать с этой информацией.

Какие услуги будут доступны?

Алексей Попов: Все те, которые жители страны сейчас получают в государственных и муниципальных ведомствах. С помощью карты можно платить налоги и штрафы, получать загранпаспорт и другие документы. Самое простое — с первого января можно будет зарегистрироваться в личном кабинете на региональном портале госуслуг. Сейчас для этого приходится заполнять анкету с персональными данными, ждать, когда по почте пришлют логин и пароль… С УЭК все проще. Поскольку в ней уже «зашита» электронная цифровая подпись, регистрация в личном кабинете будет происходить автоматически.
Другой пример — материнский капитал. С помощью УЭК его можно будет получить без единого посещения органов соцзащиты. Человек, используя универсальную карту, заходит на портал региональных госуслуг, заполняет нужные формы, заверяет их квалифицированной электронной подписью, которая также записана на УЭК, и получает деньги на свой счет в банке. В Волгоградской области материнский капитал таким способом уже выдают.
С первого апреля 2013 года карту можно будет использовать и вместо билета для проезда в транспорте. Правда, первое время только на пробных маршрутах.

Как персональная информация будет попадать на карту, если при выдаче ее там не было?

Алексей Попов: Допустим, человек сдал экзамен в ГИБДД. Он вставляет УЭК в любой банковский терминал и информация о полученных правах сразу записывается на карту. Чтобы избежать злоупотреблений, мы делаем запрос в ГИБДД, и если там подтверждают, что права действительно выданы, информация окончательно заносится на «пластик».

Полная версия интервью на сайте "Российская Газета"

Полезные ссылки:

Статья в Wiki
Информация по получению карты в Москве
Официальный сайт УЭК

Статьи на Хабре про УЭК:
Раскрыт облик Универсальной Электронной Карты
Электронные карты для граждан РФ
Есть вопросы по электронному ID гражданина РФ?

ссылка на оригинал статьи http://habrahabr.ru/post/164461/

Цена прикосновения

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

Жесты могут быть утомительными

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

Несколько лет назад я работал над проектом, в котором исследовал продвинутую рабочую станцию для военных кораблей американского флота. Это была рабочая станция с сенсорным управлением, которая использовала четыре отдельных монитора, общим разрешением более 4800 пикселей в ширину. Несмотря на то, что мы уделили пристальное внимание взаимодействию пользователей с системой, я до сих пор помню усталость в руках всякий раз, когда работал с консолью. Не такие экстремальные, как при работе с целой рабочей станцией, но схожие нагрузки можно заметить, работая с мобильными устройствами. Эта субъективная “стоимость” прикосновений к экрану устройства может негативно повлиять на то, как пользователи отнесутся к твоему приложению. Так что же мы можем предпринять, чтобы избежать этих ненужных жестов и движений?

Запоминай действия пользователя

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

Я нажал на иконку на своем домашнем экране. После того, как прошла заставка, мне было явлено две кнопки. Одна – для того, чтобы посмотреть расписание мероприятия, а вторая – чтобы узнать о других мероприятиях, казалось, никак не связанных с первым. Я начал думать, то ли приложение я скачал. Я нажал на кнопку расписания и начал изучать их дизайн.

Поначалу, я думал, что начальный экран так плохо спроектирован, потому что на нем будет отображаться реклама других мероприятий в виде кнопок. Затем я перезапустил приложение и мне пришлось еще раз нажать кнопку, чтобы увидеть расписание. Лишнее нажатие, еще один момент, когда пользователь может решить, что использовать это приложение слишком хлопотно. Почему мне приходилось повторять это действие каждый раз, когда я хотел использовать приложение? Идея просто распечатать расписание мероприятия стала казаться мне все более привлекательной.

Дай возможность пропустить шаг (особенно, когда списки или последовательности слишком длинны)

У твоего приложения может не быть физического аналога, как в предыдущем случае, но, скорее всего, в магазине приложений есть одно или два похожих приложения, на которые пользователь сможет легко перейти. Думай о каждом взаимодействии пользователя с приложением и о его стоимости. Посмотри на дизайн приложения и спроси себя: “Должен ли пользователь выполнять это действие?”

Как и многие, выросшие на видеоиграх Atari 2600, я скачал приложение для iPad, чтобы снова оживить в памяти те “классические” игры. Дизайнеры приложения предпочли отобразить каталоги игр в виде карусели, то есть, я должен был «свайпить» снова и снова, чтобы перемещаться между тридцатью играми. И я спросил себя, нравится ли мне крутить эту карусель, чтобы сыграть в ту или иную игру? Уверен, команде разработчиков казалось, что этот дизайн неплохо смотрится, но после продолжительного использования он становится обременительным. В обновленной версии приложения была добавлена возможность видеть список последних игр и отображать игры в виде списка от А до Я. Это значит, что теперь мне стало гораздо проще поиграть в Missile Command.

В каком-то смысле, это мне напомнило о классической игре Myst. Для тех, кто никогда в нее не играл (ее портировали на iPad), это был красивый 3D квест. В ее первой версии нельзя было свободно перемещаться. Вместо этого ты переходил от одной фиксированной точки до другой. Каждая сцена плавно переходила одна в другую по мере того, как ты перемещался. Эти ограничения диктовались технологиями своего времени. Каждое движение занимало несколько секунд и иногда приходилось пройти несколько таких сцен, чтобы добраться до интересующего места.

К счастью, гейм-дизайнеры поняли, что поскольку чувство новизны от игрового окружения быстро исчезает, пользователи захотят пропустить всю эту красоту и приступить, непосредственно, к игре. Так что они представили “zip-режим”, позволяющий игрокам пропускать промежуточные ходы. Что всегда казалось мне одной из лучших особенностей данной игры. Уверен, что QA- команда тоже так считает.

Карусель в приложений Atari — это как промежуточные ходы в Myst – поначалу забавно, но быстро утомляет. Как часто мы просим добавить то или иное взаимодействие, потому что оно кажется нам “клевым” или “веселым?” Какова стоимость данного взаимодействия? Как много прикосновений твой пользователь должен сделать, чтобы добраться до желаемой информации?

Используй возможности датчиков мобильного устройства для понимания сопутствующих факторов (таких как время, место, движение, уровни освещенности, уровни звука и т.д.)

Недавно я изучал еще одно приложение для мероприятий, и был удивлен количеством нажатий, которые нужно было сделать, чтобы добраться до расписания. Вместо того чтобы сделать узконаправленное приложение, конференция решила использовать решение на основе агрегатора. Я должен был нажать несколько раз, чтобы добраться до самой важной информации: расписания встреч. Лишние нажатия побуждают пользователей поискать “лучшее” решение в другом месте.

Так же, мы должны помнить, что наши мобильные устройства имеют множество датчиков, которые могут быть использованы для улучшения взаимодействия с пользователем. Это не обязательно должно быть что-то вроде геолокации. Это может быть просто информация о том, какой сегодня день.
Не так давно, я был на пятидневной конференции, и, несмотря на то, что ее мобильное приложение исправно показывало расписание мероприятий, оно не смогло автоматически указать текущий день. Так что каждый раз, когда я хотел посмотреть расписание, мне приходилось нажимать кнопку, чтобы получить корректную дату. И опять лишние нажатия. Сколько нужно строк кода и тестов, чтобы просто показать текущую дату и расписание?

“Круто выглядит!” никогда не должно мешать “Хорошо работает!”

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

ссылка на оригинал статьи http://habrahabr.ru/company/apps4all/blog/164457/