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 сообразит, как этого избежать, часы начнут работать неделю от аккумулятора.

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

(no subject)

Вычитал вот...

В кругу облаков высоко
Чернокрылый воробей
Трепеща и одиноко
Парит быстро над землей.
Он летит ночной порой,
Лунным светом освещенный,
И, ничем не удрученный,
Все он видит под собой.
Гордый, хищный, разъяренный
И летая, словно тень,
Глаза светятся как день.

("Стих № 2", П. И. Карпов. Творчество душевнобольных и его влияние на развитие науки, искусства и техники.)

Что-то это мне напомнило... А, вот что:

Вот воробей летит
и шевелит ногами.
А я его поймал
И отпустил руками.

Методическое указание: попытайтесь визуализировать
процесс полёта воробья.


Это уже необезяевщина, © 1997 Лайдер.

(no subject)

Вот говорят веб-два-ноль, веб-два-ноль. Что он нам, пользователям, даёт, по большому счету - это возможность тыкать пальцем в других таких же и давать оценку и собственные ценные указания: "и я так же", "а вот у меня!..", "нет, спешу не согласиться". Все эти блоги, фликры, ютюбы - одно сплошное комментирование всего всеми.

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

Комментарии слишком оторваны от комментируемого контента. На livejournal в блогах пишут, в основном, или конъюнктурный трёп, или используют его по прямому назначению: пишут дневник. То есть, комментарии событий дня. Редко кто производит и выкладывает сюда именно контент, продукт, вылизанный венец творчества, которым можно гордиться. Сама парадигма движущейся во времени "ленты" подчеркивает преходящесть, заставляет относится к собственным постам и постам других как к очень временной сущности. Эти сущности вымываются из коллективной памяти спустя день-два после опубликования.

Что было десять лет назад? У каждого была своя "страничка" с фотками, избранными примерами работ, списком хобби, etc. Каждый, кто приходил на неё, мог сразу же получить представление о человеке, срез его интересов на данный момент. Сейчас же эта возможность утеряна.
Имея LJ & Flickr, многие уже даже и не думают о заведении своей домашней странички.

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

Комментарии оторваны от контента. Digg чуть сближает контент и комментарии, так как изначально завязан на комментирование чего-либо уже созданного.

К чему это я?..

Что если пойти совсем другим путём, и не присасывать контент внутрь блоговращательных машин (публикация и комменты ссылок и фоток в digg, livejournal, flickr), а наоборот, принести сквозную возможность комментирования контента непосредственно ближе к тем местам, где этот контент создаётся?

Вот сфотографировал художник свою модель. Нарисовал автор свой рассказ. У него сейчас есть выбор: либо выкладывать это на свой сайт, таким образом, заморозив творчество в web'е, либо послать в livejournal, где его детищу сделают адекватный фидбэк (ну или кирдык). В первом случае получился продукт, но без обратной связи, а во втором - обратная связь, но без продукта (так как после пары дней висения во френд-лентах модель или рассказ протухнут и будут уже не актуальны).

Некоторые заводят себе движки комментариев на свои домашние странички, но это всё равно не то: каждый городит свой личный огород, и огороды двух друзей будут совершенно несовместимы между собой. А как же синдикация? Сквозная аутентификация? Еще какие-нибудь блага объединенного пространства комментариев (aka lj)?

Ничего этого нет. Страничка со своим движком комментариев - как подводная лодка; вне связи с внешним миром.

Так вот, зайдём другим путём. Принесем комментарии к контенту, а не наоборот. Все вышенаписанные банальности можете рассматривать как неуклюжую рекламу новой идеи: http://js-kit.com/

Сайт позволяет вставить возможность добавления комментариев к любой странице вашего сайта. Или к любой фотке. Одной строчкой HTML кода.

В основе идеи - попытка перетянуть одеяло внимания на контент, а не на комментарий контента.

Например, у меня есть небольшой FAQ на компилятор ASN.1. С использованием http://js-kit.com/ я одной строчкой добавил возможность любому добавить в FAQ свой вопрос и получить на него ответ.

http://lionet.info/asn1c/faq.html

Или, например, http://lionet.info/ipcad/, в котором народ уже начал делиться success stories.

Как подобные вещи можно решить в рамках livejournal или digg? Да никак - для этого требовалось вывернуть фокус наизнанку - убрать навязанную самоценность комментариев и восстановить примат контента над его критикой.

Ваши Комментарии? ;)