Category: техника

Category was added automatically. Read all entries about "техника".

Swift, Apple Watch, and dynamic Graphs

Поробовал я попрограммировать под Apple Watch на досуге. На Swift'е. Свифт очень даже ничё так. Похож на OCaml чем-то. Например, константы определяются через let, переменные через var. Но константы дутые: внутри них можно менять всё, что там меняется.

Swift, определённо, шаг в правильную сторону. Программировать было, в основном, приятно. Впрочем, XCode традиционно раздражал своими тормозами и подсказками.

Сделал приложение, которое показывает динамический график, движущийся со плавностью в 30fps в эмуляторе. Заодно разобрался, как сделать так, чтобы анимированные гифки были с нормальными цветами, а не все в дизере. Для этого надо сначала со всех кадров собрать палитру, затем её в дальнейшем и использовать. В итоге workflow выглядит так: обычным QuickTime'ом делается скринкаст, затем обрабатывается скриптом, делающим из .MOV → .GIF.



Исходники приложения здесь: https://github.com/vlm/ExampleWatchGraph (см. в сторону WatchKit Extension — это именно то, то выполняется на часах).

Проблема с часовым API заключается в том, что там всё через ж всё в Apple-стиле. Например, чтобы нарисовать что-то динамическое на экране, надо 30 раз в секунду:
  1. Создать графический контекст заданного заранее размера. Потому что вычислить размер WKInterfaceImage, в который вставлять будешь получившийся битмап, нельзя. Размер интерфейсного элемента можно задать (set), но не опросить (get).
  2. Нарисовать, что нужно, через CoreGraphics (Quartz 2D) — это лёгкая часть.
  3. Превратить контекст в .PNG, и уже этот .PNG разместить на WKInterfaceImage. См. здесь: https://github.com/vlm/ExampleWatchGraph/blob/master/ExampleWatchGraph%20WatchKit%20Extension/GraphPainter.swift#L117


В итоге вся батарейка на часах тратится на то, чтобы эти .PNG запаковывать и распаковывать. Как только Apple сообразит, как этого избежать, часы начнут работать неделю от аккумулятора.

Ну или я что-то не понял.

Samsung SGS III micro-review

Сходил посмотреть на Galaxy SGS III, как обещал Кузьме.

Что ж. Неплохой телефон. Как-то работать можно, в отличие от более слабых андроидов. Но какое-то невероятное количество мелких странностей немного напрягает. Сравниваю с iPhone 4.

  • Пикселы видны. В отличие от iPhone 4 , пикселы на этом самсунге почему-то заметны.
  • Если нужно отредактировать url в браузере, замучишься на него нажимать. Курсор становится на нужную позицию раза с третьего, или даже с пятого. Если при этом пытаешься убрать курсор из location, ткнув на контент, то контент сразу кликается. В эпле для этого нужно два клика: один клик убирает режим редактирования, второй начинает интеракцию с контентом. После многолетней работы с Mac OS X этот режим кажется логичнее.
  • Система допускает пустые экраны с приложениями. То есть, если иконок слишком много, их можно организовать на нескольких экранах и переключаться между ними. Но возможны и пустые экраны. Нет, не говорите что возможность вставить пустой экран — это фича. Это левота какая-то.
  • При попытке скроллинга, когда контента уже нет, девайс не даёт никакого фидбэка. Ну как же, патент-то у эпл! Можно ругать эпл за это. Но перед этим я посмотрел на Windows phone, и там они эту задачу как-то решили, хотя выглядит чуть иначе, чем у iOS. А тут нет — просто скроллинг жёстко утыкается в лимит и всё. Как будто просто этот кусок кода выдрали с корнем и ничего взамен не придумали.
  • Пинч-ту-зум есть, всё как у людей. На тилт-ту-зум посмотреть подзабыл.
  • Пока сидишь в меню выбора приложения, экран яркий. Переключаешь в браузер или ещё куда — экран тускнеет и становится менее контрастным. Что за фича?
  • Скорость обновления экрана неконсистентна — то она в районе 30fps, когда переключаешь приложения. То она спускается до 15fps, когда листаешь фотки. То есть, заметны дёргания. Причём, не в сервисной хрени, а в что ни на есть мультимедиа-приложении, где именно плавность скроллинга является главным фактором эргономики.
  • Дико неконсистентные UI между приложениями. Это несколько утомляет. На эпл-платформе всё-таки больше единообразия.

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



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

    Хотите более чёткого разбора, где ещё у андроида интерфейсные проблемы? У нас такого навалом! http://www.androidpolice.com/2012/09/18/ux-things-i-hate-about-android/

    Ретроспектива про Ульяновский центр микроэлектроники УЦМ

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

    Ага, конечно! Вот что говорит бывший директор УЦМ в 87-92 годах, А. Г. Рыжевский:
    <...>
    Партия сказала мне своё «надо» довольно резко. Заявлено было так: либо я еду в Ульяновск, либо меня рекомендуют на должность второго секретаря обкома партии в Бухару. А уж этот вариант меня не вдохновлял совсем.

    Идея Центра микроэлектроники с самого начала тоже меня не вдохновляла. Он был слишком многоплановый. В нём были достаточно перспективные направления, но были и достаточно «дохлые», которые, на мой взгляд, вообще не должны были развиваться. Но поскольку в постановлении ЦК записано было всё в комплексе, я обязан был всё это выполнять.

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

    В то время мы жили в одной стране, а на самом деле их было две. Одна страна — это оборонная промышленность и всё, что с ней связано. (И оттуда практически ничего не ушло в гражданские отрасли.) И была гражданская промышленность, которая работала на отбросах того, что оставалось в нашей стране. Всё основное — ресурсы, деньги, люди — уходило в «оборонку» и само себя съедало.

    Ульяновский центр микроэлектроники должен был восполнить этот пробел и поставлять для гражданских министерств то, что они не могли получать в электронной (читай: оборонной) промышленности. Те цифровые микросхемы, которые мы должны были начать производить, по идее, надо было получать из «оборонки». По качеству они уступали тем же американским, но производство их было налажено, и ничего не надо было изобретать. (Соотношение качества было такое: американцы делали, предположим, 100 микросхем, и из них 70 получалось годных, а мы делали тысячу, и из них годных получалось 3.) Такой ценой достигался паритет, он действительно был. А так как ценообразование фактически было волевое, то это никого особенно не волновало.

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

    Зап. 28.1.2002 г. Ист: «Антология жизни 1980–1990 гг.», Демочкин Г. А.

    Предсказания про Apple

    Обещал отслеживать предсказания про Apple — выполняю.

    > Например, в следующей ревизии iPad появится front-facing camera: под неё в железе уже и дырка есть, и по логике должна быть. Скорее всего выйдет к крисмасу, или по крайней мере в районе января.

    Выполнилось: даже две камеры.
    Не выполнилось: вышла весной, а не зимой, и достать почти невозможно. aznakai пришлось пилить до Тахо чтобы один айпад забрать. В Тахо они были в одном месте, ближе к Долине — болт.

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

    Выполнилось: Белый iPhone появился. К весне или весной — это не суть важно, на мой взгляд. Когда я делал предсказание, белый iPhone многие уже заочно похоронили.

    > Дело в том, что тринашка уже и так набита почти под технологическую завязку, а из-за лицензионных граблей они не могут перейти на Core i5/i7 на ограниченном пространстве. Есть очень небольшая вероятность, что придумают что-то с AMD или поставят какой-то совсем странный интеловский чип, но это я не считаю за существенный апгрейд.

    Вау, действительно поставили Core i5/i7, и действительно странный чип — про sandy bridge + Intel HD Graphics 3000 было неизвестно [мне] на момент предсказания. Но не к июню, а раньше. Не ожидал.

    > [к июню] на 13" модели сделают SSD 128g дефолтом.

    Ждём июня. Скорее всего не выполнится.

    Короче, хреновый из меня предсказатель — всё очевидно и так было.

    P.S. gliv в том треде таки купил MacBook Air 11", а aznakai — MacBook Air 13".

    AAPL

    Новый MacBook Air 11.6", представленный сегодня эплом, является первым девайсом, который может конкурировать с PowerBook 12" 2005 года выпуска.

    По размеру и весу PowerBook 12" оставался непревзойдённой машинкой неприлично долгое время. MacBook Pro 13" был гораздо тяжелее (и больше!), а предыдущая MacBook Air была недоделкой, которая постоянно перегревалась, после чего у неё отпадали процессорные ядра. К тому же, она стоила серьёзных денег, особенно с SSD.

    Несмотря на то, что своим PowerBook G4 12" я очень доволен, всё-таки некоторые тормоза при проигрывании H.264 и плохая поддержка рабочего места разработчика для iPhone сделали своё дело — я скрепя сердце вынужден переходить с PowerPC на Intel.

    Теперь забавы ради посмотрим, как соотносится технология 2005 года с технологией 2010:

    PowerBook G4 12"MacBook Air 11.6"
    ПроцессорPowerPC G4 1.5 GHzIntel Core 2 Duo 1.4 .. 1.6 GHz
    Шина166 MHz800 MHz
    Память1.25 GB2..4 GB
    Дисплей1024x768, Anti-glare1336x768, Glossy
    Диски100 GB 2.5" IDE HDD64..128 GB (SATA?) SSD
    ПримочкиМодем, Ethernet, FireWire, Line In, DVD  Камера, поддержка 27"/30" внешнего монитора
    БатарейкаЗаменяемая, 1.5—3 часаНеснимаемая, 5 часов
    Цена$2400 тогда, ~$240 сейчас$999..$1399


    Модем, Ethernet, FireWire, Line In и DVD я за последние несколько лет использовал всё реже и реже, и на настоящий момент практически свёл использование их к нулю. А вот без внешнего монитора жить не могу. Поэтому по примочкам текущий Air уделывает PowerBook.

    Счастье — пришло.

    Если я его таки куплю, это будет первый апгрейд, который принесёт уменьшение номинальной тактовой частоты (1.4 GHz vs 1.5 GHz).

    Конкурс!

    Этот пост вообще-то должен был попасть в ru_ucdesign. Но я не дождался, пока модераторы меня в нём авторизуют. А без авторизации нельзя — сиськоспам всех достал, очевидно.

    Ну так вот. Дохлое комьюнити какое-то, этот ru_ucdesign. Давайте попробуем разнообразить. Ежели кто имеет доступ к ru_ucdesign — сделайте кросспост или форвард сюда (Upd: сделали).

    Конкурс!


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

    Что настройки значат — не суть важно1, предлагаю чуть-чуть фантазию проявить, где это не очевидно.

    Спасибо!

    P.S. Я к этому приложению никакого отношения не имею. Просто хочу катализировать креатив чуть-чуть. Те, кто говорит "я забесплатно работать не буду", могут продолжить бесцельно торчать в ЖЖ. В смысле, пусть отдыхают. Давайте чуть более позитивно на вещи смотреть.



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

    asn1c in iPhone

    Вдогонку к блогпосту про копирайты: http://lionet.livejournal.com/31952.html

    Мой копирайт появился в iPhone.

    Когда я год назад смотрел туда, его ещё там не было. А сегодня sidentdv говорит: «смотрел копирайт на iphone, там вписан asn1c by Lev Walkin». А мы с oleyka вчера как раз ей iPhone купили, вместо сломанного девчачьего Самсунга. Так я полез в Settings → General → About → Legal, и действительно, сидит копирайт мой, с BSD лицензией.

    Приятно.

    P.S. Вот выгонят меня из JS-Kit, пойду на интервью куда-нибудь. Будут просить код написать — а я им в ответ:
    На интервью со зв
    …или нет, не так…
    — Клоуны, лицензию в своём иПхоне почитайте для начала!

    (no subject)

    Привёз домой 22-дюймовый монитор для Ольки, генератор постоянного напряжения и осциллограф, поставил рядом с машиной на дороге и позвал Ольку похвастаться. В этот момент включаются спринклеры для травы и заливают монитор напрочь. Воду из монитора слил (буквально!), поставил сушиться. Остальным приборам вроде не досталось.