Собрал ссылки на различные наборы примеров и шаблонов дизайна приложений и сайтов под 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

10 января 2011

Несколько лет назад появился 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 разработчик, не испорченный архитектурой 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: если вы из Омска, ретвитните плиз.

Google App Engine

28 января 2010

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

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

GridGain

29 января 2009

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

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

Допустим у нас стоит задача: нужно собирать неструктурированные html данные и извлекать из них структуру, или, точнее, информацию, т.е. система Text Mining/Information Extraction.

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

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

jar с винтом

25 ноября 2008

Java, как язык — ничего особо выдающегося. Да даже тот же C# внешне выглядит приятней, что уж говорить о многих динамических языках. Хотя, если насчет самого синтаксиса Java, то тут тоже наметилась тенденция, уже есть вполне неплохие JRuby, Groovy, Scala и Clojure, выбирай по вкусу.

Так вот, хоть как язык Java и проигрывает, но она имеет за плечами огромный набор библиотек, для решения почти всех востребованных задач. Я бы даже выразился так:

На каждую хитрую задачу найдется свой jar с винтом.

ну может не всегда именно jar, а скорее технология, протокол, спецификация, но суть в общем такая.

У всех остальных все хуже. Там или узкая заточенность под одни нужды (RoR), или единая линия партии (.Net), или просто полный хаос.

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

Поэтому нравится java или нет, но... но чаще всего выбирать и не из чего.

P.S.: Хотя, если честно, есть тут один минус: это то что привыкнув к этому все стараются делать «через жаву», что не всегда верно, но это уже издержки производства.

Map Reduce

16 сентября 2008

map reduce harvesters
Подход mapreduce сейчас, с ростом объемов вычислений, стал очень популярен, но все упоминания какие то туманные, надо разложить все по полочкам. Начну с того что напомню о такой штуке как «закон Амдала». Он описывает ограничение роста производительности вычислительной системы с увеличением количества вычислителей, т.е. как мы можем ускорить вычисление увеличивая количество компьютеров в кластере. В общем то тут все интуитивно понятно. Читать далее »»

Я не знаю EJB и JSF

6 августа 2008

Как то так сложилось что при моем примерно 7-летнем опыте коммерческой разработки на Java я почти не имею опыта в EJB. Хотя это первое что спрашивают на собеседовании, я ведь проверял не так давно. Самое интересное, кстати, в том что многие собеседователи после кучи вопросов по опыту в EJB/WebSphere/JMS/пр., о том как это все им важно и пр., рассказывая о своих проектах, говорят что на практике все их проекты разрабатываются без какого либо EJB и прекрасно работают по Tomcat, а WebSphere получается лишь для веса. Возможно и потому что не серьезно сейчас предлагать решение без WebSphere/WebLogic + Oracle.

А мне всегда как то хватало связки Spring + Hibernate + Tomcat/JBoss, что в сущности дает тоже самое, но удобнее. Список можно продолжить добавив еще как минимум Acegi, AspectJ, и прочие решения умеющие хорошо и удобно решать свою отдельную задачу, многие легко взаимозаменяемы и дают очень неплохой синергетический эффект.
Читать далее »»

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

Чаще всего такие решения принимают когда поддержка текущей программы становится слишком дорогой, т.к. со временем изменения становятся все дороже и дороже. Ну и в итоге цена изменений становится совсем высокой и компания вынуждена выкинуть текущий продукт, и переписать все заново.
Читать далее »»