Category: Программирование

Примеры дизайна мобильных приложений

Собрал ссылки на различные наборы примеров и шаблонов дизайна приложений и сайтов под iOS/Android. Может быть кому-то тоже будет интересно.

http://pttrns.com и http://mobile-patterns.com
Набор скриншотов приложений, по разным темам (примеры списка друзей, примеры отрисовки календаря и т.д.)
http://www.androidpatterns.com
Подробное описание способов взаимодействия пользователя с приложением. С примерами, плюсами/минусами. На примере Android'а
http://www.tappgala.com
Коллекция красивых мобильных приложений
http://www.apptas.com
Набор скриншотов, в основном iOS приложенией, но есть и для Mac OS X
http://www.makebetterapps.com/
Подробный разбор приложений, но, к сожалению, на немецком языке 🙁
http://cssiphone.com, http://www.mobileawesomeness.com и http://www.refinedmobile.com
Примеры сайтов рассчитанных под мобильник
http://www.appsites.com
Это уже примеры сайтов для мобильных приложений (в смысле на которых продают эти приложения). Наверное тоже будет полезно

JavaScript vs. Google Webtoolkit

Несколько лет назад появился Google Webtoolkit, для меня в тот момент это казалось прорывной технологий. Главная идея была в том чтобы писать код web приложения, или его части, на Java, который потом компилируется в HTML + JavaScript. В чем было преимущество? В том что для java в то время уже была создана очень мощная система поддержки разработки: интеллектуальная среда разработки, средства рефакторинга, юнит тестирование с кучей дополнений, автоматический анализ кода и code coverage, документирование и пр. и пр. Да до сих пор тут нет ей равных. Ну и сам язык, с понятным синтаксисом, типизированный (в данном случае это было плюсом) и пр.

А вот в JavaScript тогда не было ничего. FireBug только появлялся, jQuery не было. Отладка была лишь за счет alert'ов. Серьезный процесс разработки на этом не построишь.

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

А в прошлом году происходил какой-то фантастический рост использования JavaScript. Появились тысячи библиотек. Благодаря jQuery код писать становится на порядок проще, появились средства разработки (IDEA стала ничуть не хуже работать с HTML/JavaScript/CSS), firebug вырос, и пр. Теперь все совсем наоборот, разработка на JavaScript стала гораздо проще чем на GWT, разрабатывать действительно быстрее и результат получается качественней. Есть, конечно, еще куча вещей которые нужно сделать, но уже вполне неплохо. И как минимум позволило ему стать лидером прошлого года, помимо возросшей востребованности.

Я в данном случае не эксперт, но похоже как-то так. А вы что скажете? Вырос ли javascript до уровня серьезной разработки? Какие полезные инструменты порекомендуете? И в каких случаях есть смысл использовать gwt?

Ищу java/groovy разработчика в Омске

Нужен серьезный Java разработчик, не испорченный архитектурой Enterprise приложений, понимающий как разрабатывать легковесные web-приложения для массового пользователя.

Что хочется увидеть:

  • Java и Groovy
  • Проекты Spring Source:
    • Core
    • MVC
    • Grails
    • Security
    • Integration
    • RabbitMQ
  • Проекты Google:
    • Appengine
    • Webtoolkit
    • Android
  • NoSQL вообще и MongoDB конкретно
  • Web:
    • jQuery
    • Comet/WebSockets
  • Общее ориентирование в текущих трендах, западном интернете и пр.

Это общий набросок требований, чтобы было о чем разговаривать, все знать не нужно.
По деньгам: 30-70 т.р. Тоже ориентировочно.

Пишите мне, с парой слов о себе, на igor@artamonov.ru

ps: если вы из Омска, ретвитните плиз.

Spring-Data

Вчера беседовал с Марком Полаком из SpringSource и узнал что они сейчас занимаются, помимо прочего, проектом Spring Data. Это будет некий ORM. Так что, во-первых, все недовольные Hibernate и пр. могут иметь ввиду. А во-вторых эта штука делается и для NoSQL решений, что для моих проектов очень интересно.

Стабильное решение будет не скоро, проект в самом начале пути, нет ни плана, ни майлстоунов, ни объявлений, но есть надежда что выкатят летом-осенью следующего года. Ну а сейчас, говорит, уже работает для Neo4J и MongoDB.

Там, кстати, Gitorius. Так что можете поучаствовать, если хочется использовать пораньше, ну или можно найти что-нибудь другое, интересное вам: http://git.springsource.org/

VMForce

VMWare только что показали презентацию своего VMForce, платформу для приложений внутри SalesForce, на основе Spring Framework.

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

А вообще вот презентация (это не то что было на официальном представлении, но суть передает):

Да, все идет к этому, к SaaS, PaaS, Enterpise 2.0, интеграции приложений под одним зонтом и пр. Мы собственно сейчас занимаемся тем же самым, посмотрим кто кого 🙂 VMForce что-то реальное собирается показать во второй половине года, мы надесь тоже.

P.S. Но суть презентации я не понимаю, хоть убей, что они хотели сказать то? Все сводилось к лозунгу что «Java может работать в облаке». И чо? Кто-то разве сомневался? Не объяснили ни зачем это нужно бизнесу, ни зачем это нужно вендорам, ни что вообще хотят сделать. И вообще трансляция была полуработающая 🙁 Такое ощущение что им срочно нужно было хоть что-то сказать, но времени на полноценную подготовку не было.

Google App Engine

Погоняв Google App Engine пару месяцев расскажу о впечатлениях от него.
Платформа несомненно интересная, и будет очень полезна startup'ам, т.к. позволяет сосредоточится на решении своих конкретных задач, отдав все что не является конкурентым преимущество на откуп платформе и её сервисам.

К сожалению прям вот взять любой сайт и запустить его на GAE не получится, нужно делать именно под него, на Python или JVM, и нужно хорошо понимать как это работает. Я смотрел лишь связку Python + Django. Многие преимущества Django тут отсутствуют (например знаменитая админка django), но тем не менее результат получается очень быстро и вполне качественно. Для JVM есть многообещающий Gaelyk, ну и куча прочих framework'ов.
Continue reading

Swarm DPL

Нашел интересный прототип фреймворка для распределенных вычислений: Swarm-DPL

Основная идея в том что код выполняется как можно ближе к данным, и даже больше, он постоянно мигрирует между разными машинами, старясь быть ближе к ним, без остановки основного вычислительного алгоритма. В общем это continuations с переносом состояния между нодами. Это в пику подходу map-reduce когда у нас именно данные гоняются между нодами. Код все таки меньше места занимает, должно быть быстрее, это не гигабайты данных по сети гонять.

Рекомендую посмотреть презентацию:

Swarm: Distributed Computation in the Cloud from Ian Clarke on Vimeo.

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

Spring + VMWare

Наверное все в курсе произошедшей на этой недели покупки SpringSource компанией VMWare. Меня, например, это сильно удивило, совсем не ожидал. Судя по прессрелизу все ради того чтобы обосноваться в нише cloud computing. Ну в общем да, на уровне инфраструктуры виртуализации у VMWare все хорошо, даже очень, а вот в остальном видимо решили докупиться (к тому же виртуализацией как таковой сейчас занялись очень многие, надо идти дальше, предлагать платформу).

И я их наверное начинаю понимать, cloud computing это довольно специфичная область. Continue reading

GridGain

GridGain — платформа для реализации cloud вычислений. На мой взгляд очень серьезная платформа, вполне стабильная (если это имеет значение то версия, например, уже 2.1.0) имеет открытый код, на java, интегрируется с огромным количеством внешний систем. В отличие от пока академического Apache Hadoop здесь уже все более практично. А разобраться и запустить можно за пару часов, в отличии от...

Самый известный, наверное, подход к cloud вычислениям это mapreduce, и он прекрасно здесь организован. А так как этот mapreduce не всем понятен, да и не всегда нужен полностью, то здесь помимо него предлагается своя реализация java.lang.concurency.ExecutorService который разбрасывает переданные вычисления по кластеру.
Continue reading