Home

Хочу порекомендовать программу для изготовления макетов пользовательских интерфейсов - Balsamiq Mockups. Хотя для этой цели разработано уже порядочно инструментов, однако подобный баланс простоты и мощности я вижу лишь второй раз (первый был Denim,  неустойчиво работающий и требующий для нормальной работы планшета. Ну и еще пожалуй Microsoft  Visio, с оговорками).

Процесс макетирования в Balsamiq Mockups сводится к перетаскиванию из библиотеки готовых control'ов и изменения их параметров (типа состояния, размера, текста и т.п.). Реакция на нажатия кнопок, ссылок и прочее реализована достаточно примитивно - просто на каждую ссылку вешаются другие файлы макетов, которые и загружается при переходе по ссылке. Для ускорения работы автор даёт простой совет - основной интерфейс сразу сохранить как картинку и затем использовать как фон во всех файлах проекта, накладывая поверх него только те control'ы, которые делают данную страницу уникальной (здесь важно что картинка сохраняется в виде ссылки, поэтому всегда можно её поменять и фон на всех страницах изменится автоматически).

Результат можно записать или в png или в xml (.bxml) файл. Последний момент позволяет любому желающему создать свой генератор кода из готового макета. Так и поступили, например, в случае с Napkee, который позволяет из этого .bxml нажатием пары кнопок создать js/css/html либо Flex (mxml) проект. Даже preview есть.

Сам проект реализован на Flex/Air (desktop и веб версии), набор control'ов в библиотеке стандартный, плюс еще есть IPhone-специфичные вещи.
Все элементы, текст и даже загружаемые картинки выглядят в стиле "небрежного наброска" - смотрится гармонично для макета. Рекомендую попробовать - очень удобная и интуитивно понятная штука.

Продолжаю публиковать свои заметки об организации CC...

За годы проведения фестивалей ENLiGHT (1995-1997) и Chaos Constructions (1999-2009), постепенно, к 2005-2006 году, сложились устойчивые принципы и подходы к организации и управлению, подходящие именно для наших условий.

Определили эти принципы, в основном, следующие факты:

  • Фестиваль некоммерческий (вырученные средства идут на компенсацию расходов прошедшего фестиваля) - нет возможности материально стимулировать организаторов (за редкими исключениями, которые не сыграли значимой роли) - все средства идут на аренду помещений и оборудования, охрану.
  • Фестиваль объединяет, в первую очередь, людей интересующихся информационными технологиями, организаторы по основному роду деятельности также работают в ИТ.
  • Фестиваль является неформальным мероприятием - по духу, стилю, атмосфере и условиям проведения
  • От большинства организаторов он требует лишь нескольких дней в году, но при этом с полной самоотдачей.
  • Фестиваль объединяет несколько тематик. Как правило, отдельно взятый организатор интересуется лишь одной или двумя.
  • Фестиваль является (2009 год) единственным крупным мероприятием такого рода в России/Союзе/СНГ (до 1000 посетителей и участников).
Читать дальше.. )

Tags:


В продолжение цикла заметок об организации компьютерного фестиваля Chaos Constructions, расскажу об использовании Google сервисов на CC'2009.

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

Конечно, полная замена была невозможна, в связи с нашей спецификой - у меня все было интегрировано в единую систему, что давало ряд преимуществ. После рассмотрения различных сервисов, по моей и [info]oldayn 'a инициативе остановились на Google. Причин несколько:
Далее... )

Tags:

Google Gears

  • Aug. 24th, 2009 at 3:36 AM

Попробовал поставить Google Gears. Это расширение для браузеров, позволяющее пользоваться, в частности, Google Docs в offline и синхронизировать изменения при появлении доступа в Интернет (есть API).
Выводы неутешительные - практически не работает. Периодически возникают ошибки (без названия). При отключении Интернета и попытке открыть синхронизированный ранее документ, браузер просто пишет что не находит веб страницу.
Кроме глюков - в документации написано, что оно должно уметь только с Docs работать, а для spreadsheets и presentations реализован лишь просмотр. Однако при попытке редактировать spreadsheet рядом с документом появилась надпись edited offline. Как это понимать - неясно.
Работоспособность проверялась на двух машинках - под Vista и под XP (и там и там FireFox 3.5). Проблемы одинаковые.
[info]oldayn  вот утверждает, что у него тоже были какие-то проблемы. Вдобавок, когда я сделал disable, оно мне в открытом документе зачем-то предложило скопировать его содержимое в clipboard и куда-нибудь сохранить, а то всё будет потеряно (я был online). Короче говоря, не советую.

Tags:

Видео с Assembly'2009

  • Aug. 17th, 2009 at 11:39 PM

Смонтировал и выложил видео с Assembly'2009 (8 минут, HD)

Tags:


На примере приложения показывающего прогноз погоды, захотелось попробовать, что представляет собой Google App Engine (а заодно - Python). Клиентская часть (реализация на Flex) достаточно примитивна - при выборе города посылается запрос к серверной части и та возвращает XML пакет с прогнозом на несколько дней, который показывается в виде текста и картинок. Текущий город запоминается у пользователя в SharedObject.

Более интересно поговорить о серверной части.

Задача для неё заключается в следующем:

Два раза в сутки мы должны забирать XML файл размером примерно 300 кб (прогноз по сотням городов на 4 дня), парсить его и помещать в базу данных. После чего отдавать клиенту данные для нужного города/даты. Достаточно важный момент - прогноз постоянно уточняется, поэтому если мы получаем данные за дату для которой они уже есть в базе, нужно их обновить.

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

Далее... )

Assembly'2009

  • Aug. 11th, 2009 at 1:16 AM


В прошлые выходные съездили с [info]alien____ на Assembly'2009 в Хельсинки.

Немного фото и пара слов )

Tags:

Twitter

  • Jun. 30th, 2009 at 4:58 PM

Поразбирался немного с Twitter'ом - захотелось вставить на сайт Chaos Constructions ленту (справа), в которой бы автоматически появлялись короткие сообщения связанные с CC. Как официальные, так и других людей, которые о фестивале пишут.
В принципе всё довольно несложно у Твиттера. Есть два основных формата запроса, представляющих интерес:

http://search.twitter.com/search.atom?q=chaos%20constructions
http://search.twitter.com/search.atom?q=from%3Achaos_construct

В первом случае получаем все сообщения всех людей, содержащие строку "chaos constructions" (любыми буквами).
Во втором - все сообщения опубликованные конкретно в ленте фестиваля chaos_construct (%3a - это двоеточие).
В принципе, там в запросах можно логические операторы использовать, но пока не нужно было.
По-видимому, выводятся только сообщения опубликованные в последние 10 дней.

Данные отдаются в виде XML (Atom).
Конкретно у меня дальше три таких фида парсятся, объединяются, сортируются по дате, исключаются дубликаты. Всё это происходит по крону раз в 5 минут, а в страницу вставляется уже статический HTML, чтобы не тормозило и не дёргать Twitter каждый раз.

UPDATE: Да, активность асоциальных элементов конечно предполагалась, но не так скоро :) Пришлось ограничить список несколькими человеками в сочетании с тэгом 'cc9'. Ну и далее будем подключать чужие твиттеры индивидуально.

Google App Engine - ассоциации

  • Jun. 18th, 2009 at 4:02 AM

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

Tags:


Всем, кто еще не знает, сообщаю: В этом году мы снова проводим Chaos Constructions! 

В Питере, в том же комплексе "ЕВРАЗИЯ", около метро Лесная. Даты - суббота и воскресенье 29 и 30 августа (включая ночь). На сайте (скоро будет переведён на pm) можно узнать подробности.

Как и в прошлом году, на данный момент основная помощь нам оказывается Sun'ом и Oyster'ом (UNNET).

Конкурсная программа похожа на прошлогоднюю. На данный момент добавлены 4k combined intro и ZX Music. Совершенно определенно появятся еще конкурсы, в том числе по итогам обсуждений с Sun'ом (напомню, в прошлом году они проводили Realtime Sun SPOT). Далее - Realtime Hardware Hack (где участники изучали микросхемы со стёртой маркировкой) был очень хорошо принят и, безусловно, мы проведем его снова. В точности повторять тоже самое не хочется, поэтому правила пока обсуждаются.

Есть ряд свежих идей, так что будет интересно. Кстати, вакансии для организаторов.

Готовьте конкурсные работы! На вопросы ответим - или здесь, или по E-Mail: info@cc.org.ru
Группа ВКонтакте: http://vkontakte.ru/club225689

Tags:


Набрел чисто случайно на одну страничку, вспомнил кусочек жизни.

Где-то в 1998-1999 годах мы с приятелем - Алексеем Пиялкиным (dragonfa) частенько бывали в институте Математики им.Стеклова (ЛОМИ) - примерно на углу Фонтанки и Невского он находится. Не то, чтобы нравилась математика (скорее наоборот :) , но там был Интернет, в то время не такой уж общедоступный, и Sun Classic. Как сейчас помню, взаимосвязь была прямая - чтобы настроить dialup, надо было на этот Sun Classic поставить Solaris 2.0 и скомпилить для него SunOS'овский slip (с ppp были какие-то непреодолимые проблемы).
Сейчас с удивлением вспоминаю, что я реально ставил GNU C, чего-то там в adb/gdb отлаживал. Ради любопытства даже на Sparc'овском ассемблере писал короткие программки,  конвейер заполнял nop'ами после переходов, с регистровыми окнами разбирался (в том же adb!). Просто не верится..

Поскольку весь этот процесс развлечения с Solaris'ом был очень небыстрым (а на Sun Classic'е с 24мб RAM - тем более), ходили мы туда регулярно. Пару раз домой шли пешком аж до Лесной-Гражданки.

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

Изучили просто нереальное количество документации, начиная с 1960-х. Сейчас, подозреваю, единицы имеют представление об архитектурах типа i432, AS/400, SWARD, Эльбрус (не тот, который E2K, а оригинальный). Мы всё пытались придумать архитектуру виртуальной машины, которая красиво легла бы на любую железку - с любым процессором, в том числе и несколькими. Тогда железки были слабоваты и производительность имела значение. Скажем, стековую архитектуру той же JVM (равно как и CISC'овскую у конкурентов - Dis) трудно было рассматривать всерьез, если предполагать, что оно должно работать как на RISC'ах, так и на CISC'ах (и еще VLIW был на подходе), плюс распараллеливаться на несколько процессоров (слово "ядро" не употребялось еще). В то время высокотехнологичные костыли в виде JIT'ов не достигли таких высот, как сейчас.
У нас предполагалось что-то типа регистровой машины с тэговой архитектурой (данные сопровождаются типом, операция частично определяется типами операндов) изначальной ориентированной на использование прекомпилятора. Ну а поверх предполагались объекты, мигрирующие между различной памятью, процессорами/кластерами взависимости от условий и доступности (все это считается средой со свойствами, а объекты стремятся оказаться в среде со свойствами подходящими именно им), capability based системой разграничения доступа, одноуровневой памятью.

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

Tags:


Обзавёлся маленькой Bluetooth клавиатурой для телефона. Называется Bluetooth HighScreen BK300 (она и под другими названиями продается - Луч-БТ, к примеру). Оказалось, что заставить её работать с Samsung i780 (WinMobile 6) не так просто, как хотелось бы, так что рассказываю:

1.Диск который идёт в комплекте в принципе можно выкинуть.
2.Берём драйвер Uniboard (там регистрация бесплатная). Выбираем версию для "Луч-БТ" / "Windows Mobile 6.0 ". Нас интересует два файла: MacCentre UniBoard 4.10 и Клавиатурный модуль для Луч-BT. Можно развлечься и поставить это через ActiveSync, но, надеюсь, вы тоже им не пользуетесь. Поэтому: распаковываем оба EXE'шника 7-zip'ом и получаем два файла: km_luchBT.cab и
uniboard.cab. Копируем эти файлы на устройство.
3.Устанавливаем uniboard.cab (это сам драйвер). Перегружаемся. Устанавливаем km_luchBT.cab (клавиатурный модуль).
4.Спариваем клавиатуру с телефоном (включаем клавиатуру сдвинув переключатель вправо, вводим код типа "0000")
5.Назначаем ком-порт (в тех же настроках Bluetooth). Выбираем свободный и убираем галочку "безопасное подключение" (важно!).
6.Идём в Настройки / Uniboard и выбираем там этот порт (там можно много чего настроить, только вот время засыпания ни на что не влияет..). Перегружаемся.
7.Запускаем "Uniboard ON". Вверху появляется иконка черная "RU". Всё - клавиатура должна заработать.

Если заработало - радуемся. Если нет - огорчаемся.


Tags:


Как-то я уже упоминал о разработанном мной приложении для ВКонтакта - "ВКонтакте на Карте". В продолжение этой темы хотел бы рассказать об одной ситуации. Думаю, это будет полезно знать тем, кто  планирует заниматься подобными разработками.

Итак, наша группа некоторое время назад разработала еще одно приложение - "Мои файлы" (в отличие от первого случая здесь я выступал не программистом, а PM, но в данном случае это неважно). Смысл приложения был в следующем - любой пользователь ВКонтакта, добавив его себе на страницу, мог закачивать свои файлы, а все остальные (кто зашел на его страничку с приложением) эти файлы видели и могли скачивать. Реализация - Flex/PHP/Postgres, хранение файлов - на Amazon S3.

Приложение было написано, устойчиво заработало и постепенно начало накапливать пользователей. Где-то около 2000 человек успели его себе добавить (без рекламы, просто самотёком - для тестирования этого было вполне достаточно) и вдруг, 14 апреля 2009, обнаружился провал в статистике.
Оказалось, что приложение исчезло у всех, кто его добавил. Перейдя на страничку с ним по прямому URL, я увидел сообщение о блокировке приложения администрацией ВКонтакта, чем был, говоря мягко, удивлён. На вопрос в группу тех.поддержки о причинах блокировки некоторое время не было ответа, но, после повторного запроса (подчеркну, что мои вопросы были вежливыми и корректными) сообщение о блокировке исчезло, а некто Иван Корнеев ответил, что пользователи приложения должны теперь добавить его себе заново (напомню, что это около 2000 человек).
При этом никаких пояснений относительно причин блокировки и каким образом пользователи приложения теперь получат доступ к своим файлам - не последовало. Я повторил вопрос туда же в группу, но ответа не получил. Выждав несколько дней, написал письмо на support AT vkontakte.ru (этот адрес указан у них в разделе "О сайте") с просьбой объяснить причину блокировки и удаления пользователей. Ответа на E-Mail не получил, но зато после этого обнаружил, что бесследно исчезла тема, в которой был задан исходный вопрос. Замечу, что соседний пустой топик с повторным вопросом остался - т.е. удалили конкретно ветку с исходным ответом упомянутого Ивана Корнеева. Стало ясно, что никаких пояснений я уже не получу.
Подчеркну, что в данном конкретном случае проблема даже не столько в том, что было потеряно 2 тыс. пользователей, сколько в отказе пояснить причину блокировки - соответственно, возникает неопределенность с будущими разработками.

Tags:

Монтаж HD видео

  • Apr. 18th, 2009 at 1:56 AM

HD видеокамеры (1280x720, 1440x720, 1920x1080) постепенно входят в нашу жизнь. Уже даже некоторые телефоны умеют снимать HD видео. Пришла вот и моя очередь. Отснял Nikon'ом D90 во время поездки в Венесуэлу около сотни коротких (секунд по 5..15) mjpeg видеофрагментов в 1280x720, 24p. Захотелось смонтировать из них что-то - минут примерно на пять.
Думал, всё будет просто. Ан нет. Adobe Premier CS3, также как Adobe Premier CS4 элементарно не в состоянии заимпортить больше пары десятков таких HD видео. Разнообразные "Run-time error", "System low memory" и прочее. Памяти 2гб RAM, много гб диска. Vista.
Причем, я даже еще ничего не начинал делать с этими файлами. И это софт, который является стандартом для серьезного видеомонтажа! Если несколько файлов  - всё работает (только preview тормозит).
В итоге придется изучать Sony Vegas Pro. Он все 120 файлов импортит и тормозит меньше, как ни странно (8.0c).
Update: результат можно посмотреть тут.

Tags:


Ездил в Венесуэлу и там, в Андах, на высоте около 3000м, в индейском посёлке, встретилась неплохая антикварная лавка. Наряду со всяким оружием (в т.ч. огнестрельном), посудой и прочим, были обнаружены кое-какие девайсы. Предлагаю заценить (кликабельно). Качество обусловлено условиями - там почти небыло света (ISO 6400, F3.5 :) Слева - электромеханическая пишущая машинка IBM, справа - компьютер TRS-80 фирмы Radio Shack.
Ещё девайсы.. )

Tags:

Как это было: PalmPilot

  • Mar. 15th, 2009 at 6:37 AM


(Из журнала PC Magazine, Июнь 1998 г.)

Tags:


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

Читать много текста )

Tags:


Click to enlarge!Попробовал почистить от шумов видео, снятое в полутьме на мыльницу с маленькой матрицей. Использовал NeatVideo - plugin для Virtual Dub (дополнительной операцией было поднятие Levels стандартным фильтром). Результат лучше, чем я ожидал (нажмите дважды на картинку, т.к. видно это только в оригинальном размере).

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

Tags:


В контексте обсуждения гугловской нереляционной базы BigTable на одном из форумов была упомянута статья "One Size Fits All": An Idea Whose Time Has Come and Gone  (перевод). Автор статьи разделяет обработку данных на outbound  - обработка данных после их сохранения (обычные реляционные СУБД) и inbound, где данные обрабатываются до их помещения в базу. В качестве примера применения вторых - потоковая обработка (с возможным сохранением) финансовой информации, а также информации с многочисленных RFID'ов/датчиков в реальном времени с помощью StreamBase.
Если необходимы агрегатные запросы (SUM, MAXи прочее), то, учитывая, что у потока нет границ, рассматривается некое временное окно, в рамках которого данные считаются конечными.

В задачах именно хранения предлагается использовать базы ориентированные на хранение столбцов (columns) , а не строк (rows). Грубо говоря, это усложняет (и замедляет) создание записи, но упрощает и ускоряет чтение/выполнение запросов. По идее, это также позволяет легко распределять базу между многими узлами, т.к. одна машина может обрабатывать запрос по одному столбцу, другая - по другому. В случае же хранения данных по строкам, как в RDBMS, для выполнения любого запроса нужен будет доступ ко всем строкам.

По-видимому, нас через некоторое время ждёт что-то сильно новое в области стандартов СУБД.
Реляционные базы больше не устраивают своими характеристиками, а что-то типа Bigtable слишком усложняет (по сравнению с RDBMS) решение наиболее распространенных задач.

Tags:

Перешёл с MSIE на FireFox

  • Mar. 3rd, 2009 at 12:48 AM

Годами использовал MSIE в качестве основного браузера (другими пользовался только как тестовыми). Несколько месяцев назад поставил MSIE8 beta, неделю-другую назад - MSIE 8 RC1. В обоих случаях столкнулся с очень нехорошими вещами - от частых падений всего браузера (в RC1 - отдельных табов) до каких-то совсем уже неясных проблем с tcp/ip вообще (вплоть до необходимости перезагружать Vista-у).  В результате поставил FireFox, перестал запускать MSIE. Несколько дней наблюдаю отсутствие вышеупомянутых проблем.
Чтобы дважды к этой теме не возвращаться  - примерно за  год работы под Vista наблюдаю её постепенное умирание (с XP ничего подобного никогда не было, но был вынужден перейти на Vista). Один за другим перестают работать различные мелочи. Наиболее серьезной потерей было прекращение работы Hibernate (у ноута гаснет экран после чего он бесконечно долго шуршит диском).

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

Tags:

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by Tiffany Chow