среда, 19 декабря 2012 г.

В Киеве

Добрался до Киева. Тут мороз почище нашего, зато весь город очень нарядно выглядит (может за счет чистого белого снега на улицах)
Квартира досталась отличная, по цене ниже чем я снимал во Владике, но несравненно уютней и комфортней.
Из окна отличный вид, был бы, если бы его, как и во Владивостоке, не портили недостроенные многоэтажки.
А еще выяснилось, что 3G есть только у киевстара и только при заключении контракта на год... как то странно, такое ощущение что продавец меня напарил.

среда, 12 декабря 2012 г.

Поиск билетов

Не рекламы ради, а просто интересное наблюдение.
Для поиска билетов я чаще всего пользуюсь сайтом Eviterra/ Знаю, таких сервисов много, просто как-то увидел рекламный пост в блоге Темы Лебедева, начал пользоваться и привык. Причем часто просто нахожу Авиакомпанию которая предлагает наиболее низкий перелет и потом смотрю билет уже на ее сайте.
Хотя, иногда Eviterra может делать вещи, которые сайт какой-то одной компании вам не сделает:

  • Например когда на майские нам надо было купить билет из Хельсинки в Амстердам, а обратный и Парижа в Хельсинки. Eviterra подобрала нам билет на KLM туда, на Air France обратно (смешно - по оператором в обоих случаях все равно выступил FinnAir!). Билет получился дешевым - значительно дешевле чем отдельно на сайтах этих компаний покупать билет туда и отдельно обратно.
  • Если надо запланировать перелет с несколькими посадками - тут вообще без вариантов - все компании летают через свои хабы, на сайте одной компании-перевозчика вы такие варианты никогда не подберете.
Сегодня получилось вообще интересно - покупал билеты в Киев. Тот вариант который меня устроил - на  S7  из Петербурга в Киев с пересадкой в Москве. ОК, иду на сайт S7 - и тот же самый билет, на те же самые рейсы на родном сайте получился на 3000 дороже!
Это скорее исключение (раньше с такой серьезной разницей не сталкивался), но приятное.

ИТОГ

Пользуйтесь Eviterrа-ой!

PS Хоть пост и не рекламный, но от каких-нибудь бонусов от сайта eviterra не откажусь ;)

Как удалить всех пользователей в Liferay

Например в определенном Portal Instance.  Можно конечно штатно - через UI -  но если их много - то это займет много времени. К тому же удаление идет не напрямую - а сначала надо отключить, а только потом удалить.

Есть более просто решение -  Script панель в Control Panel -> Server Administration
Там можно вызвать относительно любой код используя различные сервисы  Liferay.

В частности - если надо удалить пользователей для какого-то определенного Portal Instance (companyId) можно использовать следующий  Script:

// get users

users = Packages.com.liferay.portal.service.UserLocalServiceUtil.getUsers(-1,-1);
companyId = xxxxx; // put companyid here
out.println(users.size());
count=0;

// enumerate all users 
for (var i = 0; i < users.size(); i++) {
    user = users.get(i);

  if (user.getCompanyId() == companyId) {
    // we cannot remove "default" user
    if (!user.isDefaultUser()) {
    Packages.com.liferay.portal.service.UserLocalServiceUtil.deleteUser(user);
    count++; // count removed users
    }
  }
}

out.println(count);

MySQL vs PostgreSQL на примере Liferay

Еще одно сравнение (что-то потянуло меня на них).
Некоторое последнее время пришлось плотно заниматься нагрузочным тестированием одного из проектов. Там у нас используется Liferay 6.1.0 CE и база данных MySQL 5.5
Так вот - в ходе тестирования под нагрузкой обратили внимание - что в какой-то момент времени распределение процессорного времени начинается не в пользу Liferay: мускул начинает отъедать 300% - оставляя Liferay только 100%.

Это показалось странным, так как обычно картина обратная - Liferay (вернее скорость процессора под него) является бутылочным горлышком - и именно Liferay в основном грузит систему - влияние базы минимально.

Более детальный разбор полетов позволил выяснить - что виноват во всем  Asset Publisher (Публиктор по русски) - а вернее те запросы к таблице  AssetEntry & co которые он генерит. Иногда запрос "вставал" на 15 секунд(!!!) - при том что записей у нас там примерно 25k

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

Честно пробовали тюнить  mySQL -  конфигурировать кеши, буфера и пр. Не помогло. Ну и , я конечно понимаю тюнинг базы данных когда  счет кол-ва записей идет на миллионы, но не десятках тысяч же!

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

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

Итак, в какой-то момент мы все-таки нашли время и провели эксперимент: запустили две одинаковые машинки на амазоне, поставили там один и тот же Liferay (со всеми портлетами и данными), на одном копию базы на  MySQL, на другом сделали миграцию данных на  PostgreSQL ( кстати, миграция данных средствами  Liferay  прошла на ура)

И стали смотреть.  MySQL работал как и ожидалось, а вот PostgreSQL  удивил.... дикими тормозами. То есть - главная страница могла открываться минуту!

Долго смотрели, пытались тюнить, конфигурировать - слабо помогало. В принципе выяснилось что проблема та же - большое количество запросов при отрисовке страницы, и большая выборка данных. Просто если MySQL на этом еще пролетал как-то - то  PostgreSQL вставал колом.

К тому же скорей всего сказалось то, что PostgreSQL более критичен к скорости дисковых операций - а у нас EC2 были подняты на "медленном" EBS - видимо это тоже внесло свою лепту.

Что делать?

После некоторых изысканий была найдена следующая бага: http://issues.liferay.com/browse/LPS-28364 - как раз про наш случай -  Asset Publisher на Liferay 6.1.0
После бекпорта фикса с 6.1.1 на 6.1.0, и исправления баги http://issues.liferay.com/browse/LPS-31539 (она же Asset Publisher can't handle the multilevel categories - кто использует 6.1.1 - обратите внимание - она там по прежнему есть) PostgreSQL полегчало несколько - страница стала открываться быстрее (заметно) - но общая скорость работы все равно далека от MySQL

И какие из этого следуют выводы?

По большому счету никаких. Нельзя сказать что MySQL быстрее чем  PostgreSQL только на данном специфическом примере. И нельзя сказать что Liferay быстрее на  MySQL  чем на PostgreSQL.
И понятно что любую базу можно оттюнить так - что она начнет работать значительно быстрее (хотя опять-таки, 25k записей - не та база которую надо тюнить)
И в вашем случае вполне возможно Asset Publsiher-ы вообще не используются, и вам проблема с их производительностью неважна. Или у вас такое железо, на котором  PostgreSQL просто летает.
Но для себя мы выводы сделали - менять основную базу, которую мы используем по умолчанию, с  MySQL на PostgreSQL  смысла нет. По крайней мере используя с настройками по умолчанию мы ничего не выиграем - а глядишь и проиграем.

понедельник, 10 декабря 2012 г.

Liferay vs BackBase


Какое-то время назад было необходимо сравнить Liferay  и BackBase.  Возможно результат этого сравнения окажется кому-то полезным.
Сразу оговорюсь - сравнение ни в коем случае не претендует на объективность - все-таки я слишком "заинтересованное" лицо, хотя я честно старался быть максимально объективным :)

Так же данное сравнение ни в коем случае не является официальной позицией компании Liferay  или EmDev -  в данном случае это мое личное, оценочное суждение.

Итак:
В красном углу рынка - портал Liferay: http://www.liferay.com
В синем углу:  портал BackBase: http://backbase.com/

Оба продукта входят в квадрант Гартнера по корпоративным порталам, правда Liferay уже два года как переместился в число лидеров, а BackBase просто ворвался в этот отчет - в 2009 его не было и в помине, в 2010-ом он попал в список нишевых игроков и теперь перешел в разряд в visionaries:
И Liferay  и BackBase входят в gartner quadrant


Основное отличие Liferay и BackBase (из которого вытекают многие отличия по конкретным пунктам):
1. Liferay это портал "широкого профиля" предназначенный для широкого спектра задач
2. BackBase - узкопрофильный портал для решения конкретной задачи (The Lean Portal в терминах самого backbase)

То есть если вам надо только публичный сайт для банка (банки - основная специализация BackBase) - возможно вы сможете выполнить внедрение быстрее и дешевле используя BackBase, если же вам необходимо общее решение ("общий фронт") не только для организации пользовательского портала, но и для организации работы back office  или например обслуживание клиентов через call-center (основные каналы обслуживания клиента - веб-сайта, офис банка, кол-центр) - сделать это средствами BackBase боюсь будет невозможно (ну или тяжело).

Отсутствие орг-структуры

Одно из существенных ограничений которое бросается в глаза при рассмотрении BackBase - это отсутствие возможности отображения орг-структуры компании в рамках портала (я о крайней мере не нашел). Структура пользователей в BackBase -  плоская. Пользователи могут быть только объединены в роли.

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

Организация  Intranet решений

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

 Liferay в свою очередь представляет решения как для построения интернет порталов, так и интранет решений.


Построение внешних сайтов:

Как мне кажется функциональность Liferay  и  BackBase  тут сравнима:

  • и там и там поддерживается создание мобильных версий;
  • и там и там поддерживается персонализация страниц;
  • и там и там поддерживается remote staging;
  • поддержка мультиязычности...
  • создание страниц, размещение виджетов (портлетов), настройка внешнего вида...
  • ну и вся стандартная функциональность присущая практически любой  CMS  системе.


Однако как мне видится - в данном направлении поддержка мобильных версий и персонализации выполнена в  BackBase лучше:

  1. Стандартные widget-ы BackBase уже поддерживают адаптацию для мобильной платформы. В Liferay такую адаптацию придется программировать (в виде специальной css) самостоятельно - Liferay только дает возможность определить тип платформы и задать некоторые специальные стили. То есть "из коробки" Liferay со стандартной темой не будет красиво адаптироваться под мобильные платформы. Однако как можно посмотреть на примере того же http://www.liferay.com - такое относительно несложно реализуется
  2. Персонализация в Liferay возможно путем задания прав доступа на отображение некоторых portlet-ов (widget-ов) на странице в зависимости от роли пользователя. Это не так удобно как в BackBase.  Мы в принципе продумывали реализации персонализации по группам пользователей (с включением пользователей в группы на основании бизнес-правил) - примерная оценка такой доработки 1-2 человеко-месяца - но опять-таки - в BackBase есть из коробки и удобно - в  Liferayнадо допиливать - ибо то что есть не совсем удобно

Однако тут есть существенное отличие - обе системы поддерживают portal instance - хостинг нескольких логических порталов одним приложением. Однако в BackBase нет понятия "сайта" в рамках одного портала - то есть один портал и есть один сайт - структура портала в данном случае получается "плоская".
В Liferay есть понятие сайта - сайт может быть как сайтом какой-то единицы орг-структуры, так и просто некоторый сайт не привязанный к орг-структуре. Тем самым можно создавать порталы объединяющие в себе различные сайты  и образующие единое информационное пространство. Обычно орг-структурой и сайтами орг-единиц мы отображаем "вертикальную" структуру организации, а сайтами (сообществами, проектами) - горизонтальную - когда например для решения какой-то задачи (проекта) мы организуем отдельный сайт и добавляем туда пользователей из различных элементов орг-структуры.

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

Интеграционные возможности:

С точки зрения поддерживаемых API - схожи: REST, SOAP, XML, J2EE, JSP, Spring, JMX and Hibernate, CMIS & WebDav - это все есть и в  BackBase  и в Liferay
Интеграция UI:  HTML5, CSS3, JSON, OpenSocial and various W3C standards   - тут тоже паритет
Package Existing Web Applications as a Widget :   возможность  встраивания внешних приложений в портал - в обоих системах поддерживается и  Server Side rendering (SSR) (в терминах Liferay - WebProxy),  и Client Side rendering (CSR) (в терминах LIferay - iFrame)
   
Интеграция с другими системами - хоть BackBase  и позиционируется как портал для банковских решений - информации о встроенной интеграции с какими либо существующими банковскими системами не указано.
На сайте Backbase есть список банковских партнеров (http://www.backbase.com/company/partners/) - однако насколько решения этих западных компаний применимы к российской действительности - вопрос спорный.

То есть в обоих случаях какую либо интеграцию с третьими системами придется реализовывать самостоятельно

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

SignleSignOn: Список поддерживаемых решений выглядит одинаково для обоих систем. И там и там он расширяем.
Агрегация публикуемого контента - и там и там поддерживается  CMIS, WebDav, RSS/Atom
Searching & Indexing: и там и там используется Lucene и Solr


Модель безопасности:

В обоих случаях назначение прав доступа происходит через роли.
Однако тут есть ключевое отличие - в BackBase структура пользователей (повторюсь опять) плоская - и как я говорил выше - в  Backbase нельзя отобразить структуру организации.
Тем самым - нельзя выдать какие-то права пользователю в рамках одной организации или сайта. Если пользователь Администратор - то он Администратор всего портала.
Так как в принципе нет сайтов (групп) то нельзя назначить права доступа только в контексте какой-то группы.

Workflow:

В BackBase есть встроенная поддержка Workflow - Backbase forms, однако поддержка Workflow  в  Liferay намного шире, мало того - она гибкая и позволяет подключать собственные решения.
Вместо использования стандартного Workflow Engine - Kaleo можно подключить (как например делаем мы) - Activiti полноценно реализующий стандарт BPMN 2.0.
Есть интеграция и с более серьезными  BPMS решениями -  Intalio & Bonita
В Workflow Liferay можно (в том числе используя онлайн графические редакторы с поддержкой стандартной нотации BPMN ) описать не только бизнес-процесс публикации какого-то контента - но и в принципе любые бизнес-процессы организации как состоящие из задач назначаемых пользователям, так и задач выполняемых автоматически - тем или иным сервисом).


Сообщество и экосистема

Существенное отличие (как мне кажется) между BackBase  и Liferay в том, что BackBase это "закрытая" система  а Liferay - это "открытая".
Приобретая BackBase вы получаете законченный продукт который вы в дальнейшем можете дорабатывать собственными силами или используя услуги партнера - системного интегратора. В какой-то мере вы попадаете в зависимость от них.

В Liferay за годы существования продукта было создано огромное сообщество и экосистема из компаний реализующих свои решения на базе Liferay, или интегрирующие свои продукты с  Liferay. Используя Liferay вы получаете все исходные коды - что позволяет вам в случае необходимости полностью "контролировать" продукт.
Вы можете использовать с Liferay не только решения и дополнения, поставляемые самой компанией Liferay, но и решения третих компаний (которые легко могут быть установлены через Liferay Marketplace - когда они там появятся :) ).

Для Liferay существует большое количество решений по интеграции со сторонними продуктами -  Alfresco, Nuxeo, JasperReports Server, Pentaho, Intalio, Bonita, Activiti, есть решение по организации кол-центра на базе Liferay.

ВЫВОДЫ

Сразу повторюсь - хоть я и старался быть крайне объективным - мое мнение может быть предвзято. К тому же я неплохо знаю Liferay - не сравнить со знанием BackBase.

Основное отличие как я и описывал выше - BackBase - нишевое решение решающее одну конкретную задачу - организацию внешнего сайта.
И тут у него есть ряд преимуществ перед Liferay - более простая сегментация контента под различные группы пользователей.

Однако отсутствие поддержки орг-структуры, плоская структура пользователей, отсутствие подсайтов, поддержки организации интранет-решений, ограниченная поддержка бизнес-процессов не позволяют говорить о BackBase  как о платформе по комплексному обслуживанию клиентов.

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

суббота, 8 декабря 2012 г.

Google Flight

Увидел сегодня на ленте новость: "Прикольные сообщения в Google Flights", думаю дай попробую - все-таки гугл - поисковый гигант - вдруг он и по дискаунтерам (типа того же RyanAir искать умеет - да еще с коннетами).

Выбираю "From" - Saint-Petersburg - LED - получаю "Sorry, flights from Russia not currently supported".

А жаль - было бы интересно - сможет ли гугл предложить что-либо круче аналогов которых уже много на рынке?

Ну и какие будут "прикольные" сообщения про Россию?
"Якутск" - не забудьте шапку, валенки и 10 литров водки в Duty Free - а то замерзнете нафик.

пятница, 7 декабря 2012 г.

Конец бесплатного Google Apps

Сегодня пришла новость что Google Apps больше не доступен бесплатно.
Честно говоря очень расстроен. Не мне учить Googlу  делать бизнес, но, мне кажется, у них весь бизнес строился с простых бесплатных средств которыми они привлекали массового клиента (начиная с простого, быстрого и естественно бесплатного поисковика который был просто глотком свежего воздуха по сравнению с перегруженным yahoo)
Собственно привлеча на свою сторону кучу "частников" они смогли стать интересными для "бизнеса".

Google Apps  использую давно. С какого-то момента перешел на Premium Account - на самом деле это случилось по недоразумению - для теста включил Premium - но забыл его отключить до окончания trial периода. А потом переход обратно на бесплатную версию стал невозможен, потому что бесплатная версия стала поддерживать только 10 пользователей.

Как по мне - платить 50$  в год за пользователя - жаба душит. Банально потому что я не использую ни одной из "enterprise"  фич - ну ок - использовал одну -  SSO  через SAML между Google Apps и Liferay - когда тестировал поддержку SAML 2.0 в  Liferay EE.

При этом - ограничение в 10 пользователей вполне разумное все-таки - то есть пока компания 2-3 человека - все равно с них много не возьмешь. А уж доросли до 10 - наверное и деньги зарабатывают, можно и платную версию вводить. Хотя я бы был рад увидеть градацию и возможность платить например 10$ за пользователя - не получая при этом доступ к дополнительным фичам (ну типа отдельные версии для  Small Business  и Enterprise )

Google теперь такой возможности не дает - и фиг знает как это отразится. Раньше наличие бесплатной версии было неоспоримым преимуществом по сравнению с Office 365 и LotusLive, а вот теперь фиг знает.

Итак - какие есть альтернативы:

Office 365

Сравнение планов тут: http://www.microsoft.com/en-us/office365/compare-plans.aspx
Hosted Email: 4$ за пользователя в месяц,
Small Business 6$  за пользователя в месяц (по сравнению с Hosted Email добавляется работа с файлами) - по сути дела по набору фич близко к тому что дает Google Apps.

Причем - Microsoft как раз вводит достаточно тонкую градацию - можно хорошо подобрать именно тот план который нужен.
И за Office 365 играет то, что Microsoft очень силен до сих пор на десктопах и Enterprise  мире - большинство рабочих мест по прежнему использует Windows + MS Office - и тесная интеграция с "облаком" играет на руку Microsoft.
Ну и глядишь, мобильники на Windows 8 все-таки подтянутся.

LotusLive

Вернее теперь IBM SmartCloud for SocialBusiness (ух как длинно)
Планы тут: http://www.ibm.com/cloud-computing/social/us/en/planspricing/ - правда без цен (вообще сайт IBM в этом плане какой-то совсем не понятный)
Но опытным путем вычислил что цена за IBM SmartCloud Engage - Advanced (а именно у этого плана стояла поддержка почты) составляет 10$ за пользователя (без скидок при оплате сразу за го - так же 120 и получается).
В прицнипе когда то работали с Lotus-ом и их средствами online meeting-ов - оооочень круто и мощно (по тем временам) - но.... IBM мне кажется как обычно смотрит на больших клиентов - не уверен что "мелким" - типа меня - это вряд ли будет интересно - и по цене и по сложности.

Что-нибудь еще?

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


четверг, 6 декабря 2012 г.

Владивосток - из "не изданного"

Улыбнитесь, ведь кому-то в 100 раз хуже чем вам
Несколько наблюдений о Владивостоке не вошедшие в предыдущие посты

Аэропорт

К саммиту построили новый терминал. Самое полезное - к нему пустили Аэроэкспресс. Штука как и в Москве - дико полезная - одна проблема - ходит не раз в полчаса, а раз в два часа. Потому, если ждать не охота - добро пожаловать на такси.
Такси официально стоит порядка 1500 рублей. Можно с таксистом договорится и за меньшую сумму. Но! Если вы думаете что заплатив 1300 вы сели и поехали - вы ошибаетесь. Таксист посадит вас и пойдет набирать еще таких же как вы за туже 1000 - 1500. От кол-ва людей это не зависит. Потому совет - едите один, хотите на такси? Найдите еще 2-3 таких же и едите за 400-500 рублей с носа. К сожалению других вариантов (разумных) кроме такси (и ожидания два часа Аэроэкспресса) нет. Кстати в аэропорт я уже ехал на нем - все понравилось. Расписание экпресса тут: http://www.vl.ru/transport/local/aeroexpress.html

Проживание

Цена на гостиницы во Владивостоке какая-то конская. Ну скажем так - конечно подешевле чем мы платили в Париже - но на уровне Амстердама - это точно. При том что качество как вы понимаете...
При этом - селиться в гостинице которая далеко от центра - есть свои минусы. Летом мы например заселились в Славянской - "первая речка" не так уж и далеко от центра - но добираться в любом случае было не удобно - пешком гулять не сильно захочется, город (кроме совсем центра) для этого не сильно предназначен, на общественном транспорте можно долго по пробкам стоять, на такси - да в те же пробки встанете.
Ну а в центре - цены. 5000 за номер за одного в Версале... при том что номера и на 3 звезды не тянут - ну это как-то перебор мне кажется.
Потому вариант - квартиры посуточно. Я платил 1900 рублей за квартиру в центре. Квартира не айс конечно - но зато в шаговой доступности от всех место что мне нужны были.
Правда при съеме надо учитывать не только расстояние по "горизонтали" - но и "по вертикали". У меня дом был практически на самом верху - и каждый день я проделывать привычные для местных упражнения - 100 метров вниз, 100 наверх.  И так несколько раз. По началу ноги даже болели - хотя я вроде и стараюсь держать себя в форме.
благодаря "холмистости" легко можно сделать вход на второй этаж
или случайно обнаружить что ваша квартира - в подвале - ниже входа в подъезд
вид с холмов

Город

Город хороший - мне все-таки определенно Владивосток понравился. Самое интересное, он "столичный". Я мог прочувствовать на себе - сразу после Владивостока поехал в Липецк. Сравнимый по размеру, не бедный город с развитой промышленностью и все такое. Но, Липецк и Владик - две большие разницы. Во Владике (ну может потому что я из центра и не вылезал) иногда и забывал что уехал из Питера.
графитти

Погода

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

Что смотреть, где гулять

Тут я не советчик, из за работы времени вообще не было  - получилось только в кампус на острове Русском выбраться.
Но уверен, особенно если есть кто знакомый местный - посмотреть много чего можно.
Набережная - пока я там был - открыли новую набережную в бухте "Золотой Рог" - но не могу сказать что мне понравилось - вид практически никакой, а "отреставрированные" заводские корпуса просто обшиты пластиком. Да и попасть на эту набережную - отдельная тема - для меня это было совсем не очевидно.
прям вдоль набережной идет действующая ветка ЖД
прогулка с видом на портовые краны
как из старого кирпичного здания сделать новое? обшить пластиком!
Выбираясь с этой набережной (для непосвященного в городскую географию задача тоже не тривиальная) наткнулся на "Артиллерийский" музей. Вообще-то он был закрыт, но узнав что я из Питера мужчина мне с удовольствием открыл и дал погулять. Экспозиция значительно меньше чем стоит в Питере - зато все экспонаты "боевые"
маленькая подводная лодка
японский танк
боевые раны

Зато набережная на Амурском заливе мне понравилась. Там конечно дует (ну или мне с погодой так повезло) - но хоть какой-то вид
закат над амурским заливом
море волнуется раз...
конечно же я не мог пройти мимо Непала
вид на город с залива

Зонтик я так и не купил, потому думаю у меня еще есть шанс сюда вернуться.
Тем более что я по прежнему остаюсь мэром на four square  в любимой "Корице"
 

Вышел Activiti 5.11

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

  • Избавились от дебильного инсталятора. В конце-концов у людей которые работают с Activiti не составит проблем самостоятельно скачать томкат и задеплоить веб-приложение. Это все что надо теперь что бы начать работать с activiti ( пока не посмотрел как настроить на свою базу)
  • В  Explorer встроили Modeler (приложение для рисования бизнес-процессов в web). Теперь можно прям в онлайн рисовать процессы, деплоить их и затем исполнять. Все это не покидая браузера, без переключения в  Eclipse или какие-либо еще desktop приложения
каталог смоделированых ("отрисованых") процессов
рсовать процессы можно теперь прямо в Explorer-е

  • Сам Explorer видимо серьезно доработан - заявлена возможность грузить собственные shape-ы (по крайней мере об этом говорил Tijs когда мы с ним общались по скайпу месяц назад), хранение моделей изменено с тупого хранения в файловой системе (надеюсь что теперь работа с моделями идет через некоторый унифицированный интерфейс), серьезно переработаны наборы атрибутов для shape-ов. То есть если раньше в Modeler-е можно было только рисовать (для исполнения процессы было необходимо допиливать в Eclipse-овом дизайнере), то теперь можно создавать вполне себе выполняемые процессы
  • Исправлено много ошибок. Мы с радостью обнаружили, например, что теперь в истории хранится связка между Call Activiti и созданным в ходе ее выполнения подпроцессом - раньше без этого невозможно было построить полное дерево выполнения процесса (что стало для нас критичным).
Подозреваю что много чего еще вкусного есть, что за первые часы экспериментов с новой версии мы не разведали.
Для тех кому интересно:

вторник, 4 декабря 2012 г.

Liferay и Solr

Зачем SOLR

Liferay использует для поиска (индексации и выполнения запросов) Lucene - это "стандартное" решение для организации поиска в мире java (возможно и не только).
Что такое SOLR? Если очень утрированно - то это тот же lucene - только обернутый серверной оболочкой, позволяющей дернуть его удаленно по http протоколу.
Одна их хороших особенностей Liferay (хотя иногда это вызывает проблемы) - это то, что работа с внешними системами осуществляется через некоторое унифицированное API, что позволяет менять реализацию или используемые системы. Например как раз "подсовывая" свою реализацию Workflow API мы смогли научить Liferay использовать для бизнес-процессов не штатный Kaleo (велосипед еще тот) - а Activiti.
Работа с поиском осуществляется ровно тем же способом: при необходимости что-то проиндексировать или выполнить поисковый запрос Liferay обращается через некоторое унифицированное  API к подсистеме поиска. По умолчанию подсистема поиска использует Lucene, однако можно подсунуть другую реализацию - в частности для Liferay "из коробки" есть поддержка SOLR - реализованная в плагине solr-web.
Итак - в каких ситуациях имеет смысл использовать  SOLR:

  1. Кластеризация. Если у вас Liferay  поднят в кластере - использование Lucene  приведет к ошибкам. Дело в том, что Lucene  по умолчанию хранит свои индексы на файловой системе - при этом лочит их. Если каждая нода будет использовать свою папку для индексации - то поиск будет просто неправильно работать - в одной ноде вы создадите какую-то статью, lucene этой ноды ее проиндексирует,  но в случае выполнения поиска на других нодах вы просто не найдете этой статьи - потому что другие lucene ничего об этом знать не будут. Если же вы попробуете все lucene натравить на одну папку - то одна из них залочив индексы не пустит другие. Штатное решение - вынос поиска на SOLR - в этом случае все ноды обращаются к одному SOLR серверу.
  2. Вынос поисковой нагрузки. Если в вашем случае на поиск ложится большая нагрузка - то можно вынести поиск на отдельный (иногда более мощный) сервер (который в свою очередь тоже может кластеризоваться).
  3. Дополнительные возможности отладки поиска. К SOLR вы сможете обратить в режиме runtime  и сформировав правильные запросы посмотреть - что именно он сохранил и как он ищет. С Lucene это несколько сложнее.
Если один из приведенных случаев - ваш - добро пожаловать к продолжению:

Настройка интеграции Liferay и SOLR

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

  1. Поставить и настроить SOLR  сервер.  Он может быть установлен как на отдельном физическом сервере или отдельном сервере приложений (достаточно обычного томката), так и на том же сервере что и сам Liferay (в его же tomcat)
  2. В Liferay установить (предварительно собрав если это требуется) модуль интеграции с SOLR - solr-web. В случае если у вас кластер - установку надо будет сделать на все ноды кластера.

Установка и настройка  SOLR сервера

  • Скачать и распаковать (в некоторую папку <zip>) дистрибутив SOLR. Для версии Liferay 6.1.0 гарантированно работает версия SOLR 1.4.1, гарантированно не работает 4-ая, и вроде как после танцев с бубном работает SOLR 3.x - но оно вам надо (с бубном танцевать)? В 6.1.1 возможно будет работать SOLR 3.5 -  но надо проверять.
  • Создаем папку где будет жить solr (например /opt/solr)
  • кидаем <zip>/dist/apache-solr-1.4.1.war в /opt/solr
  • копируем <zip>/example/solr/conf в /opt/solr/conf
  • Заменяем /opt/solr/conf/schema.xml на файл docroot/WEB-INF/conf/schema.xml из исходников solr-web (откуда их взять - смотри ниже)
  • Исправляем /opt/solr/conf/solrconf.xml (прописываем где лежит data - что бы не искать ее потом по всему серверу):
<dataDir>${solr.data.dir:/opt/solr/data}</dataDir>
  • Делаем папку /opt/solr доступной для чтения-записи пользователем, под которым запущен tomcat (ну или какой там у вас  app server используется)
  • Кладем в tomcat (например в тот же что используется и для  liferay  - например в /opt/liferay/tomcat-7.0.27) файл /opt/liferay/tomcat-7.0.27/conf/Catalina/localhost/solr.xml с указанием контекста:
<?xml version="1.0" encoding="utf-8"?>
    <Context docBase="/opt/solr/apache-solr-1.4.1.war" debug="0" crossContext="true">
    <Environment name="solr/home" type="java.lang.String" value="/opt/solr" override="true"/>
</Context>
  • В результате должен запуститься solr (смотрим логи)
  • Если все запустилось - то должен появится http://<hostname>/solr - можно даже побаловаться - поделать запросы

Установка и сборка solr-web

Исходники solr-web можно взять из svn liferay тут: http://svn.liferay.com/repos/public/plugins/branches/6.1.x/webs/solr-web/
Только учтите - что тегов для определенной версии Liferay для прагинов нет, потому надо просто смотреть по истории ревизию на дату релиза необходимой версии Liferay (для Liferay 6.1.0 это например 7 января 2012 года) и берите исходники по данное ревизии (для Liferay 6.1.0 это будет ревизия 97229)
Сборка и деплой штатными средствами plugins sdk. Из настроек - требуется только подправить url  показывающий на SOLR сервер - либо в исходниках до сборки в файле docroot/WEB-INF/classes/META-INF/solr-spring.xml либо уже после деплоя (проигнорировав ошибку первого деплоя портлета - так как он не сможет обратиться к SOLR) в файле webapps/solr-web/WEB-INF/classes/META-INF/solr-spring.xml
<bean id="com.liferay.portal.search.solr.server.BasicAuthSolrServer" class="com.liferay.portal.search.solr.server.BasicAuthSolrServer">
<constructor-arg type="java.lang.String" value="http://localhost:8080/solr" />
</bean>
Вот этот localhost и надо поменять на реальный url.

Как проверить что работает

Первое что надо будет сделать после настройки - это вызвать переиндексацию. Control Panel -> Server Administration -> Reindex all indexes
При этом в логах томката где установлен SOLR  сервер должно посыпаться куча логов.
Что бы проверить что  SOLR работает на каждой ноде надо выполнить какое-нибудь действие обращающееся к подсистеме поиска - создать какой-нибудь  веб-контент, просто открыть и сохранить пользователя. Если при этом идут логи в SOLR  сервере - с высокой долей вероятности все работает :)

Важные замечания

У нас в одном из проектов solr  стоял в том же томкате что и первая нода, сторая обращалась к нему. Когда обращение делалось по порту 80 ( и потом прокидывалось nginx-ом) - то на второй ноде плагин solr-web не заводился - команды к  SOLR  вызывали ошибки. Когда поменяли на работу по порту 8080 - стало нормально. Видимо  nginx как-то портил запрос.

Ооооочень желательно что бы /solr не был доступен снаружи для анонимных пользователей. Можно отрубать доступ внешним сервером (apache  или nginx), или разрешать доступ только с определённых ip (что бы доступ был только с нод кластера). Ну и следить что бы по порту 8080 тоже было не достучатся.

Перед тем как перейти на использование SOLR - зайдите на issues.liferay.com -  и посмотрите... дальше сами решайте - надо вам или нет.

Если вы используете solr-web для версии 6.1.0 - обратите внимание на такую замечательную багу  как LPS-25152 - мне больше всего нравится что у нее приоритет minor. На самом желе эта бага о том, что если вы поставили SOLR для Liferay 6.1.0 -  то в панели управления у вас будут показываться пользователи и организации для всех portal instance-ов... вот такой вот минорный косячок :) Бага исправлена в 6.1.1 - для 6.1.1 ее надо бекпортить



понедельник, 3 декабря 2012 г.

Как вы боретесь с дебиторской задолежнностью?

Очень в тему вышел вопрос (и комментарии к нему) на smartsourcing: http://smartsourcing.ru/questions/148

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

Вообщем наболело.

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

Ну и как это не печально - надо быть жестким с клиентами. Пока ты хороший и "входишь в положение" - люди почему-то этим активно пользуются :(

воскресенье, 25 ноября 2012 г.

Вышел Liferay 6.2 m2 (обзор без картинок)

Не успел написать обзор Liferay 6.2 m1 - как вышла новая версия "в разработке" - Liferay 6.2 m2
Новых фич нет, в основном это исправление багов (более 200!) - но я критичных багов и в прошлой версии не заметил.

"Официальный" анонс (если это применимо к версии в разработке) тут. Качать тут. Из значимых изменений:

  • Новый календарь включили в дистрибутив - теперь его не надо скачивать. Правда старый не удалили, а потому в меню "Добавить" по прежнему висит два "Календаря" - старый и новый. Кто из них кто - понять можно только методом тыка.
  • Исправили ошибки в PACL - лучше бы поскорей их исправили в 6.1 - что бы можно было наконец размещать свои портлеты в marketplace (PACL и Marketplace - вообще больная тема - но об этом отдельный разговор)
  • Какие-то критические ошибки в Hot Deploy.  У меня и версия 6.2m2 работала без проблем.
Вообщем ничего интересного - но если смотреть новые фичи, то качать надо конечно же новую версию . И приятно что процесс идет, ошибки исправляют.

четверг, 22 ноября 2012 г.

Презентации с Liferay Europe Symposium 2012

Для тех кто не смог присутствовать лично - стали доступны презентации с Liferay Europe Symposium 2012: http://www.liferay.com/web/europe2012/downloads

Из того что понравилось мне и было интересно:

Почему-то нет  PDF с презентациями Liferay 6.2 RoadMap  и реализованными фичами - может не хотят раскрывать планы, но про уже реализованые фичи я буквально сегодня уже писал.

среда, 21 ноября 2012 г.

Обзор Liferay 6.2.0 m1 с "картинками"

Как я уже писал в отчете по Liferay Symposium наиболее интересными были презентации посвященные версии 6.2. Тогда нам только показали новые фичи, а хотелось их попробовать. Правда совсем не хотелось тратить время на сборку из транка. Но, тихо и незаметно, без каких-либо анонсов Liferay выложила для скачивания версию Liferay 6.2.0 m1 (Milestone 1) - собственно говоря ту самую версию которую они на симпозиуме и показывали.
Итак - что же там есть:

Шаблонизация портлетов

Одна из самых интересных фич - применение шаблонизации портлетов. Дело в том, что при реализации проектов на Liferay много времени приходится тратить на кастомизацию внешнего вида стандратных портлетов. Наиболее часто используемый портлет на информационных сайтах - это  Asset Publisher ("Публикатор") - с его помощью например можно сформировать новостную ленту, список документов, да много чего - есть только одна проблема - данный портлет предоставлял только 4 опции по отображению списка: таблица, список зашаловков, список аннотаций и показ полного контента. А вот если нам надо аннотацию, но картинку слева а чтобы текст ее обтекал справа, да еще показывать новости по 4 в ряд, да выводить при этом источник новости..... ну примерно как мы делали на пресс-центре ДВФУ - вот тут начинались проблемы - хуками это победить не получалось.
Нам пришлось писать отдельный портлет - Velocity Publisher - но в версии 6.2 необходимость в нем (надеюсь) отпадет.
Итак - как оно работает? Теперь в Control Panel можно задать свой шаблон отображения для ряда портлетов (Asset Publisher в том числе) где при помощи Velocity или FTL описывается как отображать записи. При вызове редактора в комментариях подробно расписывается какими перменными можно оперировать в шаблоне - и дан пример - так что для первых шагов достаточно.
редактироние шаблона публикатора
Затем в конфигурации портлета (например того же Публикатора) указываете к использованию созданный шаблон
выбор шаблона отображения
И портлет начинает использовать ваш шаблон.
Правда не совсем понятно - как например получить "картинку" - например для  web-content-а это его small image -  а для документа - это "preview" или thumbnail. Такой функциональности в интерфейсе AssetRender-а (который используется в публикаторе) нет - а очень надо.

Папки для веб-контентов

В текущей версии 6.1 при большом кол-ве веб-контентов работать с ними становится неудобно - нет адекватного способа отфильтровать их по типу (структуре) или как-либо еще.
Конечно всегда можно разместить на какой-нибудь странице публикатор, в котором вытаскивать контенты в том же табличном виде по какому-либо критерию. Но хотелось бы иметь похожую возможность прямо в панели управления.
В 6.2 портлет работы с веб-контентом переделан и стал максимально похож на работу с файлами: есть возможность распихивать контент по папкам, есть возможность фильтровать по типам (структурам)
веб-контенты теперь можно распихивать по папкам

Корзина

Для некоторых (но не для всех - для сетевого контента нет например) объектов удаление теперь идет через корзину с возможностью последующего восстановления.
корзина с удаленными объектами

Новый календарь

Все прошлые фичи были.... скажем так - приятными - но не теми из-за которых сразу бы хотелось переползти на новую версию. Ну шаблоны только если - но для публикатора у нас и так есть свое решение. А вот календарь который показали на симпозиуме очень заинтерисовал.
Дело в том, что про календарь у меня переодически спрашивают, но тот календарь который есть сейчас в Liferay -  это так - только если показывать расписание группы какое-то, но никак не для планирования совместных встреч и митингов - потому что в нем не было ключевой информации.
Потому, новый календарь было основным из-за чего я и полез смотреть новую версию - какого же было мое удивление, когда разместив портлет "Календарь" на странице я увидел старый добрый убогенький календарь. Обманули???
Оказалось что новый календарь разработан в виде отдельного портлета. Пришлось отдельно его качать, собирать и ставить. С одной стороны это плохо - теперь в системе два календаря (они в меню "Добавить" так и показываются как два портлета с одинаковым именем - кто есть кто можно понять только методом тыка). Но с другой стороны - больше шансов сделать бекпорт этого портлета в 6.1 что бы не ждать 6.2 для начала его использования :)
В календаре все как и обещали (и как сделано например в Google Calendar):
новый календарь

  • Возможность приглашения участников в событие и отслеживание статуса (приняли / отказались);
  • При приглашении - возможность просмотреть доступность участника на назначенное время;
  • Резервирование ресурсов (переговорок, проекторов), для каждого ресурса так же есть календарь доступности;
  • Просмотр на сетке сразу нескольких календарей
Ну - вообщем уже более вменяемый календарь который позволяет теперь планировать встречи в самом Liferay
резервирование ресурсов


Остается надеяться что добавят export  в  ical  и подключение внешних календарей (этого пока не нашел).

Видит око да зуб неймёт

Пока искал календарь - заглянул в  marketplace -  в очередной раз убедился у его слабой пригодности (пока). Сначала порадовался толпе портлетов которуюон мне показал - вау, классно - все уже портировали на 6.2! Но оказалось что нифига - то что показывается в Marketplace не имеет ничего общего с той версией которая сейчас запущена. "Купить" то вы можете что угодно - но поставить - фиг - все портлета говорят что "не совместимы".
Ну и смысл мне показывать кучу портлетов для  Enterprise Edition - если у меня CE. Как я могу посмотреть что я могу поставить и использовать именно для текущей версии? Пока что эти вещи в Marketplace не реализованы. Надеюсь Liferay  все-таки этот совершенно новый функционал доработает "до ума"

Планы

Как говорили на симпозиуме - версия 6.2 планируется к релизу в третьем квартале 2013-ого года. Хорошо что они начали выкладывать "milestone" - версии - это дает возможность познакомиться с тем что нас ждет. Говорить о реальном переходе пока точно рано - принципиальных изменений я пока не видел - а они точно будут - это значит что будут изменения и в "ядре" системы - а не только в специфичных портлетах - и ставить такую систему в прод - да даже и в development пока однозначно рано.


понедельник, 19 ноября 2012 г.

Lappeenranta

Перед поездкой в Германию решили все-таки съездить, отметиться в Финляндии - а то не хорошо - виза - финская - а финских штампов в ней нет, как бы чего не вышло на границе.
Несколько уроков и наблюдений:
Всегда смотреть информацию об очереди на границе. Рассуждения что типа "сегодня рабочий день и никого быть не должно" не работают. Мы в итоге простояли два часа в Брусничном - хотя в Светогорске было свободно.

В плане обратной дороги очень полезен Макдональдс - там есть бесплатный wifi (посмотреть обратные пробки - обратно мы как раз поехали через Светогорск), бесплатный туалет (что для Финляндии редкость) и бесплатная парковка (правда до центра далеко - "целых" 15 минут).
C грибами в финляндии все нормально

чаепитие


Новый стандарт красоты


не гадить

суббота, 17 ноября 2012 г.

MacOS vs Ubuntu

Так получилось, что многие последние годы я работал на Ubuntu - наверное с версии 8.04 - ну или типа того. Просто для моих задач (а это была и в основном остается - разработка на Java) -  в  Ubuntu есть все что мне надо - и все это работает очень удобно. А надо мне не так и много: браузер, java, Eclipse  - все это есть  любой системе - а потому на передний план выходят критерии "второго" плана.
За что я люблю Ubuntu - ну и Unix  в целом (например сравнивая с виндой):

  • Безопасность. Ну хоть убейте - но в безопасность Windows я не верю.
  • Централизованное управление пакетами. Когда приходится иметь дело с Windows -  я всегда офигивал - что за любым софтом надо лезть в инет, искать, скачивать, запускать инсталяторы, каждый из которых выглядит по своему и задает свои вопросы... - после просто apt-get install .... 
  • Удобная командная строка.
Но - мой ThinkPad T400 поддерживал только 4 гига памяти, для разработки под Liferay этого маловато. А тут клиент предложил свой старенький MacBook Pro, который хоть и старенький - но позволял поставить 8 гигов, и так я переполз на MacOS.

А где же WOW?

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

Сравнение железа и производительности

Оно бесполезно. Слишком они разные по сути. Lenovo ThinkPad T400 - это по сути дела старый добрый надежный IBM, тот самый ThinkPad который мне не понравился за топорный дизайн когда он мне достался в первый раз (году в 2003-ем) и в который я влюбился после своего ThinkPad X60. Эта машина заслуженно получает приз "король антигламура" - хотя бы за матовую матрицу - чем нас так редко радуют производители.

MacBookPro - полная противоположность. Описывать не буду - все знают и видели.

По производительности сравнивать глупо - хоть проц примерно одинаковый и там и там, на MBP я поставил 8 гигов памяти и SSD винт - так что он у меня "полетел". Но по ощущениям - скорость работы и там и там должна быть одинаковой.

Поддержка железа

Одно из разочарований в MacOS было в неоправданных надеждах на лучшую поддержку железа. Фотопринтер Canon Selphy как не работал в Ubuntu, так и не заработал в MacOS - оказалось что драйвера для него есть только для старых версий - а для новых не обновили (хотя может сейчас уже вышли - надо проверить). Мой старый МФУ который работал на ура в Ubuntu - MacOS  yне аспознала в нем сканер... Так что по факту - в моем случае   Ubuntu оказалась даже лучше.

Установка

И там и там простая. Тут паритет.

Чем лучше Ubuntu

Ну понятно - MacOS  по умолчанию самая крутая и самая удобная ось в мире - это не обсуждается :) Потому будем смотреть, чем же именно мне убунту показалась лучше:

Файловый manager

Блин - ну почему так сложно сделать табы? Это же очевидно удобней чем плодить кучу окон! Нет - то что в Ubuntu у меня есть по умолчанию - в MacOS  мне надо покупать за деньги.
Говорят можно настроить какие-то скрипты что бы в  MacOS  можно было сделать на папке "Open in Terminal" -  я пока не осилил. В Ubuntu у меня это есть - и это одна из ключевых фич.

Manager архивов

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

Поддержка кодеков

В Ubuntu -  я просто говорю что согласен использовать проприетарный софт и подключить дополнительный репозиторий (система делает это сама) - и видеопроигрователь сам все скачает и поставит. Проблем с тем что что-то не проигрывается я не встречал. В MacOS я убил вечер лазая по инету и скачивая-устанавливая с различных источников разные кодеки - нафига мне это надо? В итоге закончилось тем что пришлось ставить вообще сторонний видео-проигрователь (MPlayer) - а родной в системе сделать нормальным видимо не под силу.

Установка дополнительного софта

Да, в MacOS появился  AppStore -  но там еще далеко не весь софт - ту же MySQL  вы там не найдете.
В Ubuntu  все (практически все) можно действительно поставить из Software Center.
При этом под Убунту куча всего бесплатного. Под MacOS он весь стоит денег. Тут примерно как Android vs iOS. Хотя - какой-нибудь специализированный софт больше шансов найти на MacOS

Работа с клавиатурой

Unity заточен на удобное управление с клавиатурой. У меня руки чаще на клаве чем на мышке - тачпаде - лично мне управление с клавы удобней.

Preview

 Стандартное приложение для просмотра файлов-картинок (будь то PDF  или jpeg) тупо не умеет переходить к следующей-предыдущей картинке. То есть - в macOS нельзя (по умолчанию - опять таки может где то есть программа которая так умеет) кликнуть на картинку в папке - а потом по стрелке вправо перейти к следующей. Либо у меня руки кривые

А что же  MacOS?

Ну, почитав мой отчет все подумают что в MacOS   все плохо - конечно это не так. Важные для меня плюсы:
В конце концов это Unix - можно уйти в командную строку и сделать то что тебе надо. Мне иногда так проще.

Skype & MS Office

В MacOS есть нормальный клиент Skype а не тот огрызок что доступен для  Linux ( 4.1 еще не пробовал). И есть полноценный  MS Office
И вот эти два свойства являются определяющими-  так получается что я все больше и больше отхожу от разработки. Для меня рабочими инструментами становится не Eclipse -  а  skype  и офис. 
В скайпе я могу шарить экран на нескольких пользователей ( у меня корпоративный аккаунт) - в Linux я этого не могу делать. Да - есть тот же Google Talk -  но я же не могу заставить клиентов его ставить - а скайп есть у всех.
Да, есть LibreOffice - если не брать в расчет  Impress - вполне себе приличный инструмент. Но клиенты присылают мне договора и ТЗ на согласование по прежнему в docx, и на сложных документах LibreOffice лажает. Банально едет нумерация разделов - что делает невозможным полноценное обсуждение "в пункте x.x договора вы указали..."

Да, можно запустить винду под VirtuakBox  и там офис - но это уже изврат. Про Wine я молчу.

Итог

Если бы моей основной работой по прежнему была разработка - я бы использовал Ubuntu. Однозначно. 
Но мне нужен скайп и офис - и потому боюсь моим следующим ноутом будет все-равно mac (как это ни странно).


Ubuntu 12.10 на ThinkPad T400

Решил тут обновить старенький ThinkPad T400 до последней убунты. И получил (что к сожалению для Убунты становится правилом) - после обновления системы слетел графический режим - показывалась какая-то кака вместо нормального экрана.

Но - что хорошо в убунту - так это документация. И то что даже со слетевшим xorg всегда остается командная строка. Покопавшись в вики https://help.ubuntu.com/community/BinaryDriverHowto/ATI нашел волшебную команду которая решила мои проблемы:

sudo apt-get remove --purge fglrx fglrx-amdcccle

После рестарта система (видимо задействовав обычный open source драйвер) стала работать нормально.

Вдруг кому пригодится

суббота, 27 октября 2012 г.

Кампус ДВФУ на о. Русский

Спасибо за саммит, дальше мы сами
Вчера вечером я уже "сидел на чемоданах" и обсуждал дальнейшие задачи для выполнения из Питера, как выяснилось что никуда я не полечу и надо зависнуть во Владике еще до среды. В качестве бонуса сегодня получилось погулять по новому кампусу ДВФУ на острове Русский, где недавно проходил саммит АТЭС - одна из показух нашей страны.Вообще я был немного растроен: пешком по новым мостам (Русский и Чуркин) пройти нельзя, на Русский просто так попасть тоже - нужен пропуск, в кампус тоже не попасть.
Это при том, что в кампусе уже заселяют общаги и там живут студенты. Студенты там живут, а обучение туда не перенесли - потому студенты каждый день ездят на специальных автобусах во Владик на учебу. Вот на таком автобусе мы и решили ехать.

За ночь мне "сделали" пропуск. Получилось так себе - потому охране на въезде в кампус мы его показывать не стали - а просто сказали что едем снимать репортаж для размещения на сайте. Естественно не проканало, но звонок "нужным" людям все-таки убедил охрану нас пропустить.

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

Такое ощущение что еще секунду назад тут были толпы людей а потом раз, и все "выключили"

Осталось загадкой история дерева посреди кампуса - оно там и росло и кампус "построили" вокруг него, либо его туда специально завезли?
Все фотографии можно посмотреть в альбоме G+:
https://plus.google.com/u/0/photos/118207798059588828520/albums/5803874588998749889

воскресенье, 21 октября 2012 г.

Свежие впечатления с Liferay Europe Symposium 2012

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

Причем для нас уже симпозиумы получаются настолько "не для бизнеса" - что в этот раз мы оба (и я и Андрей) забыли взять визитки... Очень показательно!

Лететь пришлось разными рейсами - я напрямую, Андрей через Москву. Выяснилась неприятная вещь - оказывается в Шарике (Шереметьево) не наливают ничего свыше 15-ти градусов :( В итоге не получилось соблюсти традицию (пусть и в режиме онлайн через skype) - и разогнаться текилой.
В этом году текила была одинокой.
Кстати за фотки сорри - фоткали только на Айпады, и хоть в третьем камера и лучше чем во втором (там ее можно считать вообще нет) - качество фотографий ооооочень далеко от идеала.

Кормили в Lufthanse хорошо - а вот вино оказалось совсем отстойным - первый раз не мог допить стакан красного вина (ну либо у меня со вкусом что-то не так)....

Аэропорт во Франкфурте - старый знакомый (в этом году уже был там пролетом в Марокко) - обычно расстраивает отсутствием бесплатного WiFi.  На самом деле это вообще какая-то труба - у нас мне кажется уже во всех аэропортах свободный WiFi: в Пулково так вообще отличный, в Домодедово есть - правда с доступом бывают проблемы. В Шарике вроде без проблем.... ну и далее по списку. А тут - WiFi есть - но только платный. Да и в принципе - с WiFi было плохо. В гостинице был - но не очень быстрый. На симпозиуме был плохой - местами вообще нельзя было страницу открыть. В публичных местах (где были) WiFi  встречался как исключение (у нас это кажется уже правило). Странно - вроде в Германии не должно быть проблем с коммуникациями - совершенно не ожидал таких проблем.

После приезда сразу попали на Community Pre-Party. Нас обоих по быстрому зачислили в Netherland User Group: меня потому что я был в Амстердаме в Koning Day, Андрея потому что был в оранжевой футболке

Ну и было классно встретить Яна & Co - старых знакомых еще с прошлого симпозиума. Ян как обычно был неподражаем, а голландцы оказывается до сих пор помнят как мы их дрюкнули в 2008-ом году :)
Кстати человек в черном посередине приехал из Гватемалы.
Так что у нас теперь есть вписка и в Гватемале :)

Доклады

Из докладов самыми интересными были:

  • Рассказ о том как Audi создавала интернет магазин на базе Liferay (вот вот выйдет в production);
  • Презентация Social Office -  я как-то пробовал его ставить - но не проперся - видимо надо будет попробовать еще раз.
  • 6.2 RoadMap и презентация фич уже сделанных в транке (об этом ниже);
  • Liferay Faces - об использовании JSF в разработке портлетов
  • Ligthing Talks - там вообще было много интересного - и о том как организовать Unit-Testing для Liferay,  и об системе  E-Learning и.... вообщем как будут опубликованы презентации дам ссылки.
  • Well-hidden Features of Liferay - тут вообще было не пробиться - народ стоял в проходах. Ну и надо признать что Olaf отлично рассказывает!
В остальном было либо рассказы о фичах которые мы давно знаем, либо описание use-case-ов которые нам (по крайней мере) были не интересны.

Liferay 6.2

Если кратко:
  • Релиз 6.2 CE & EE намечен на Q3 2012;
  • Планов огромное количество (хм - они могут потянуть и на 7.0) - но что реально будет сделано пока непонятно;
  • Из того что уже сделано (ну или в процессе):
  • Календарь - наконец-то нормальная реализация с приглашением участников, резервированием переговорок и пр. - вообщем все прям как в  Google Apps.  Даже не знаю - может попробуем его перетащить из транка в 6.1 - слишком уж вкусно
  • Применение шаблонов для различных портлетов (Asset Publisher, Blogs....) - ну у нас уже есть свой Velocity Publisher - хотя конечно лучше свой велосипед не изобретать - а использовать потом то что будет в ядре.
  • Работа с web-content-ом как с файлами - с папочками и пр. - приятно - но не критично
  • "Корзина" для удаляемых asset-ов - с возможностью восстановления - тоже приятная фича - но не могу сказать что для нас первоочередная.
Про остальное - да рассказывать бесполезно - могу сказать только что было весело - хотя и утомительно :) - это надо видеть и в этом надо участвовать. Какие-то фотки есть в Пикасе: https://plus.google.com/u/0/photos/118207798059588828520/albums/5800992909682273281

Liferay Community Award

Под конец было самое приятное - не могу не похвастаться - мне вручили Liferay Community Award -  приятно быть в числе 4-ех избранных :) (потом найду где-нибудь официальные фотки и заменю - iPAd конечно отстойно фотографирует)