Google App Engine

28 января 2010

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

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

Поисковая ниша

18 января 2010

Пообщался на днях, в очередной раз, с человеком пишушим свой поисковик, убийцу яндекса и гугла вместе взятых :) Я попытался донести что рынок поиска, в текущем виде, занят, по крайней мере от посягательства со стороны небольших команд. Есть Гугл как основной гигант, есть куча игроков рядом с ним поменьше, и есть несколько тысяч совсем незаметных поисковиков, вертикальных, узкоспециализированных, экспериментальных и пр. Даже мелочь, конечно, имеет своих посетителей, но все равно тут делать нечего, лишь гиганты могут методично вычищать свои алгоритмы, нанося небольшие, малозаметные штрихи в общей картины. Время больших мазков давно прошли. И занять тут значительную долю не получится, даже вкладывая миллиарды в маркетинг, в Bing я слабо верю. Это никому не нужно, даже пользователям, как ни странно это звучит.

Единственный заметный результат дает «структуризация веба», а точнее структурированный и полноценный ответ на его основе. В идеале как у Вольфрама. Вольфраму более менее удалось лишь потому что они выбрали очень специфичную, узкую, и изначально структурируюмую область, в которой, к тому же, они давно сидели. Конечно же продвижения есть и остальных, и у Гугла, и у Яндекса, и особенно мне нравится как это получается у Нигмы. При этом охватить сразу всё, дать ответ на любой вопрос, им слишком трудоемко, на приборах почти не заметно, а ROI совсем плохой.
Читать далее »»

Google: Designs, Lessons and Advice from Building Large Distributed Systems:

И еще видео (которое фиг просмотришь нормально) примерно на ту же тему от Facebook:
High Performance at Massive Scale – Lessons learned at Facebook (может кто-то сможет перезалить его на YouTube или Google Video?)

Spring + VMWare

14 августа 2009

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

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

PwC о Semantic Web

21 июня 2009

Встретил хороший отчет PriceWaterhouseCoopers по поводу Semantic Web, где идет речь о способах хранения и обработки корпоративных данных. Заинтересовало именно то что там идет речь не только о semantic web как таковом, но о внутреннем использовании этих технологий, для хранения и обработки данные.

Все о том что для сложноструктурированных данных классический подход (со всеми нормальными формами) не всегда работает. Т.е. иногда создать отдельную таблицу в БД под каждый тип сущности и установить связи просто не реально, ну например сколько их будет в случае большого магазина, например Озона? С десяток категорий с совершенно разными товарами, где общих полей мало, лишь поля цены, названия и пр. В общем в любом случае приходится придумывать что-то универсальное. Так вот, чтобы не изобретать свой велосипед, можно посмотреть в сторону технологий Semantic Web.

Что есть полезного:

  • RDF – чрезвычайно простой и универсальный формат, а именно структурированеи в виде графа (и RDF это не XML)
  • OWL – язык для структуризации, описания предметной области, в том числе вывода неявной информации, зависимостей, связей и пр.
  • SPARQL – язык запросов к rdf данным

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

PS а отчет советую прочитать

При редактировании объекта через форму есть потенциальная уязвимость в системе, т.е. даже если мы в самой форме не указали внутренние поля (id, role, и пр) то хакер всегда может передать их в запросе сам. Конечно ему нужно знать какие поля есть в объекте, что бы передать для них значения, но это отнюдь нас не защищает. Некоторые интересные поля можно найти перебором по словарю.

Так вот, я к тому что Spring предоставляет возможность указать какие поля позволено менять извне. И при формировании объекта, из переданных в POST значений, будут заполненны лишь определенные поля.
Указывается все очень просто:

protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
        super.initBinder(request, binder);
        binder.setAllowedFields(new String[] {"title", "content"});
}

По хорошему, в зависимости от ролей пользователя, нужно менять список доступных для редактирования полей. Админу разрешить менять вообще все (это по умолчанию), а остальным указать что можно.

Одной из фич Struts Framework, помимо MVC для веба, была библиотека тегов Tiles, идущая с ним. Тайлы много что могут, но главное что они помогают сделать наследования страниц. Да, так же как объекты, в корневом определяем базовые методы, а в предках что то переопределяем и добавляем новое.
При этом эта библиотека может использоваться и отдельно от Struts, она прекрасно интегрируется в Spring Framework.
Вот без тайлов как может выглядеть структура JSP страницы?

[инклюд хидера]
[тело страницы]
[инклюд футера]

Ну вроде так ничего сложного, типичный PHP стиль. А теперь допустим в хидере у нас что то меняется, например картинка раздела, подключается дополнительный css, JavaScript или еще что то. Вот тут все и начинается: в хидере пишется страшная логика охватывающая весь проект, которая, в зависимости от адреса, начинает что то включать/выключать, при инклюде передаются различные параметры, чтобы все это работало и т.д. Немного неудобно получается.
Читать далее »»

Web 2.0

5 июня 2006

После книги «Решение проблемы инновации» посмотрел через эту призму на текущие тенденции в Web. В Web-разработка многие сейчас носятся с идеями инноваций, хотя большинство из всего этого авторы назвали бы поддерживающей инновацией, которые по его мнению не так доходны.
Многие высказанные в книге идеи можно развить в области ИТ, да и сами они (авторы) неоднократно рассуждали про инновации в различных сферах ИТ, но я сейчас хочу остановится лишь на одной из них.
Читать далее »»

Для чтения RSS я пробовал много разных вариантов, как кучу дестопных программ, так потом и онлайновые. Десктопные отмелись как только количество фидов доросло до уровня, когда утренняя загрузка всех фидов тратила от 10 мегабайт. Потом начались эксперименты с онлайновыми.

Рекомендованный всеми BlogLines меня почемуто сразу не привлек, не помню правда уже почему. Остановился на NewsGator‘е, этот имел кучу косяков, как например неотключаемые иконки к фидам, которые грузились с сайтов-источников, и в результате чего у меня браузер открывал пару сотен коннекций к этим сайтам, в общем что те сайты получали кучу бесполезного трафика, что я запрашивал у них непонятно что и зачем. И это на каждое обновление страницы… Или еще там есть JavaScript, который при томже каждом открытии, вводил в ступор Firefox, секунд на 15-20. Есть подозрение, что это именно он подгружал иконки, и пока они не подгрузятся все висело :(

Но был в NewsGator’е один плюс: кнопочка «Mark All Posts On This Page As Read«. Обычно я пролистываю список сообщений, открываю заинтересовавшие в новой вкладке, а дойдя до конца страницы нажимаю эту ссылку. Все остальные, которые я пробовал, почемуто не предоставляют такой функциональности. Почему? В чем сложность? В основном приходится помечать галочкой все сообщения на текущей странице, а потом нажимать «Удалить». Неудобная операция получается.

Сейчас перешел на News Alloy, может потому что нашими людьми сделан :) Так вот в нем сбоку панель управления висит, которая позволяет всего за два нажатия («выделить все» и «удалить») делать эту операцию. Еще бы эта панелька всегда успешно доезжала до низа, было бы совсем хорошо, а так, обычно, застрянет на середине страницы и выбирай команды из меню.

Еще нужно то, что я вообще не встречал: пометка фида тегами или лейблами как в гмейле, чтобы один фид мог лежать в нескольких категория. Не отдельная запись, на основе ее тегов, а весь фид, чтобы можно было установить все это при добавлении. К примеру есть у меня блоги о веб, есть на русском есть, на англиском. Мне бы удобней было в начале прочитать те что на русском, а лишь потом остальные. А иногда не важно какие читать, это когда в папке «Веб» и так всего несколько новых постов. Есть подозрение что Rojo умеет такое, но он меня послал на этапе импорта OPML, в котором за несколько лет уже накопилось много битых адресов. А чистить мне их лень :) Rojo такое не переварил, сказал лишь чтобы я убрал все с плохими адресами и мы помахали друг другу ручкой.

Online шифрование

4 апреля 2006

Вот сервис для таких параноиков как я: infoencrypt.com
Позволяет Online шифровать текст. Использует Blowfish. Все элементарно, зашифровав можно посылать любой англоязычной домохозяйке, наверное разберется как расшифровать (тоже используя этот сервис).

Я вот для такого ставил пару раз PGP, но както не получалось использовать, потому что получателю для прочтения придется поставить PGP, что не всегда удобно. А тут открыл страницу и все.

Сделано, собственно мною, по совету другого такогоже параноика :) Небольшой скрипт на Python и простенький дизайн, но пару вечеров съело :(

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

Планирую сделать русскоязычную версию, но только домен .ru жаба душит покупать для такой мелочи. Думаю пойдет ли для этого поддомен ru.infoencrypt.com или нет?