Archive for the 'toview' Category

Гениальная статья про программистов

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

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

Действительно. Как раз тот случай, когда “в теории между теорией и практикой не должно быть различий, а на практике…”. Далее автор описывает два граничных подхода: push и pull.

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

Это первый экстремальный подход. Разработка фреймворка ради самого фреймворка. Глаз радует структура и красота кода, но часто на практике не все работает так идеально как хотелось бы. И хорошо, если до осознание этого вообще доходят.

Это у нас гордые и способные программисты. Они, бывает, называют программистов, описанных выше “архитектурными астронавтами”. Почему? Да потому, что они ерундой какой-то занимаются, когда надо просто взять и написать код. И они умеют колбасить этот код тоннами, и делать это быстро. И этот код – работает.

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

А вот такие большинство флэшеров фрилансеров. Что уж тут, сам таким был, ога.

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

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

В общем, читайте дальше.

valyard.ru

Обновил свой старый добрый FWA Winner 2007го года. Боже, этот код писал я??!

Scala + Processing – интересный способ выучить новый язык

Выложил пост про интеграцию Scala и Processing в корпоративный блог.

Признавайтесь чья работа

Сегодня в одном из ТРЦ Капитолий видел новенькие мультитач панели. Вот такие:

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

В качестве контента флэш ролик. Сделан ужасно. Особенно убил большой векторный анимированный план этажей, который неимоверно тормозит при попытке что-то с ним сделать. Но главное, разработчики не удосужились убрать правый клик. В итоге первая панель (что на фотографии) там теперь стоит с двукратным увеличением (Zoom in), а вторая с сообщением о версии Flash плеера.

А теперь признавайтесь чья работа?!

Профайлер

Жан-Филипп Оклэр не перестает удивлять. Когда он написал об инъекции загружаемых SWF через изменение mm.cfg, я было подумал “о, можно какой-нить профайлер замутить или статистику собирать”. Вот, собственно, свой профайлер он и сделал. Позиционирует его как альтернативу платному Flash Builder Pro.

По видео выглядит очень интересно.

Наши последние мультитач проекты на Флэше

Наконец-то выложили видео проектов, над которыми мы трудились последние месяцы. На Флэше, как оказалось, можно делать не только социальные игры и баннеры.

1. Первая мультитач стена на Российском телевидении. Все кадры, как говорится, LIVE.

Какие наши годы – Multitouch wall from InteractiveLab on Vimeo.

2. Мультитач стол для Росавтодор с кружками, дорогами и кучей текста o.O

Росавтодор – multitouch table from InteractiveLab on Vimeo.

3. Навигационная стена для Yota Space с шестиугольниками, физикой и морем фана.

Yota SPACE – Multitouch wall from InteractiveLab on Vimeo.

Arduino

Arduino пришло! Будем экспериментировать.

Апдейт blooddy_crypto

Я как-то писал о супер библиотеке моего друга BlooDHounD, в которой реализованы разные полезные алгоритмы с огромным приростом скорости по сравнению с аналогами. Так вот, какое-то время назад у нее случился значительный апдейт, о котором вы сможете узнать на официальном сайте blooddy.by/ru/crypto/. И не забудьте зафоловить товарища, чтобы своевременно получать сообщения о новых апдейтах!

что новенького:

  • поправлены мелкие баги
  • по мелочам заоптимизированы текущие алгоритмы
  • для PNG8 появилась новая палитра LevelsPalette
  • перед PNG-сжатием картинки теперь проверяется на прозрачность не только флагом transparent, но и существованием прозрачных пикселей ( прозрачные картинки сжимаются медленнее )
  • добавлены SHA-1 и SHA-2 ( 224, 256 )
  • добавлена (де)сериализация JSON-данных

моя реализация JSON довольно сильно отличается от реализации в as3corelib. декодер всегда работает в “мягком” режиме, допуская не используемые в стандарте конструкции:

  • поддерживается значения undefined и NaN
  • строки можно оборачивать как в двойные кавычки, так и в одинарные
  • у строк кроме \u0000 поддерживается и \x00
  • ключи у объекта не обязательно должны быть строками: { key: “value” }
  • у массивов допускаются пустые элементы: [1,,,5,'asd']
  • количество нулей в начале числа не ограничивается 1
  • число может начинаться с точки: .5
  • число может быть записано в hex-виде: 0xFF

отличия энкодеров:

  • при попытки закодировать замкнутые на себе объекты, выбрасывается StackOverflowError
  • XML-объекты кодируются как string
  • Vector‘ы кодируются как массивы
  • вырезаются последние элементы массивов, если в них содержатся null или undefined
  • у экземпляров классов константы тоже кодируются. исключать их можно так же как и всё остальные поля: метатэгом Transient.
  • у экземпляров классов поля с пространством имён отличным от public игнорируются.

SHA правильно работает с UTF-8 в отличии от аналогов из as3corelib.

Новая версия git плагина под eclipse

Продолжая тему git, буквально только что зарелизилась новая версия EGit плагина для Eclipse.
Нужно будет поставить посмотреть, хотя список поддерживаемых команд git все так же удручает.

Все правильно написал.

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