Quantcast
Channel: aegif Labo Blog
Viewing all 244 articles
Browse latest View live

Alfreesco勉強会#27で Alfrescoの主要機能についての紹介発表をしました

$
0
0
こんにちは。そうまです。

昨日、弊社オフィスにて第27回Alfresco勉強会が開催されました。

今までのAlfresco勉強会では「Alfrescoに興味はあるけど触ったことがない」という方や、「とりあえずインストールしてみたけど、何ができるのか良くわからない」という方が多かったので、今回私は「0からわかるAlfresco」というタイトルで、Alfrescoの主要機能をデモを交えザックリ紹介する発表を行いました。

ところが、こちらのBlogエントリーでも書かれているように、今回は参加者にAlfrescoを実際に使われているか、Alfrescoを詳しく知っている方が多く「発表内容の選択を誤ったかな?」と発表中は冷や汗をかいていました。

幸いなことに、主要機能を網羅するようにデモを行ったため、今まで触ったことがない機能についてのご質問のきっかけになったり、各機能の詳細なご質問に対して実際にその機能の操作を行いながら回答することができたので、本来の狙いからはズレたものの発表の意味はあったようでほっと胸を撫でおろしています。



具体的に機能を把握してもらう狙いでデモを多用しましたので、スライドだけではあっさりとした内容となっていますが、今後Alfrescoを使ってみようと思っている方は参考にしていただけると幸いです。


最後に2つおしらせがあります。

おしらせ1:

次回のAlfresco勉強会は6月24日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

第28回Alfresco勉強会

もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。


おしらせ2:

2015年4月27日(月) 19時〜20時、Alfrescoの基本的な機能や使い方についての少人数セミナーを開催いたします。
詳細や申し込み、お問い合わせは以下のリンクからお願いします。

基礎からわかるAlfrescoセミナー

ご都合が合えば、こちらもぜひご参加ください。

Eating spaghetti: Spoon or not?

$
0
0
To help your fork twirl spaghetti, do you use a spoon?

I had always been told that using a spoon is bad manner, and that Italian people would never do it. I recently discovered that my Italian friend, on the opposite, thought that only the French did not use a spoon.


I decided to do some research, and posted a questionnaire to Reddit SampleSize. 300 persons participated (you too, feel free to fill the questionnaire right now!), which makes it the largest spaghetti&spoon research ever published!


62% of the respondents have never used a spoon when eating spaghetti, while 17% ALWAYS use a spoon.

Here is a map showing countries where people sometimes use spoons, the greener the spooner:



(Maps should be taken with a grain of salt. Countries with 9 respondents or more are: Australia, Canada, Japan, Germany, Netherlands, Sweden, UK, USA)

What if your neighbour uses a spoon?

Reactions range from "I don't care" and "It is normal" to "It's offensive and disgusting" and "They are filthy casual":


Northern Europe is rather spoon-tolerant, but other countries less so:


Spoon: Formal or informal?

There is an extremely surprising antagonism:
- 2% use a spoon only in informal situations,
- 9% use a spoon only in FORMAL situations!

Let's focus on the formal/informal divide. Apparently, the spoon is considered formal in Poland/Denmark, and to a certain extent in Germany and North America. It is considered rather informal in the rest of the world:



A fine Finn respondent concludes this way: "[Using a spoon] is the proper way, although knife and fork is considered normal around here." You read it right. "Knife". That might be the topic of my next article.

I have made the raw data available, public domain.

Zero-configuration CmisSync

$
0
0
We just developed a new feature in CmisSync: Zero-configuration

Until now, CmisSync users had to go through a 3-steps wizard to add each synchronized folder they need:



That's not needed anymore!

CmisSync can now figure out all of this when it is started for the first time, by contacting a management server. This management server knows what this user needs to sync where and with what synchronization settings.

That's right, the user does not have to do anything: Install, run, and you're done: Syncing starts immediately without a single click.

Benefits for the user:
  • Zero time taken,
  • Zero configuration mistakes,
  • All of the right folders synchronized at the right place.
Benefits for the I.T. department:
  • Less support calls from users,
  • Fine-tuned configuration,
  • Reproducible environments,
  • Controlled load on the servers.
Zero-configuration CmisSync requires Single Sign-On. To take advantage of Zero-configuration CmisSync, contact us.

    AlfrescoのZipダウンロード機能が文字化けで使えない場合の対処法

    $
    0
    0
    こんにちは。最近花粉症っぽい症状がぶり返しているおおたにです。同僚に聞いたところ、イネ科の花粉がこの時期に飛ぶらしいとのことで、近いうちにアレルギー検査をしてこの症状の原因を突き止めたいと思っています。

    さて、今回はAlfresco 4.2系以降で利用可能な「Zip形式でダウンロード」機能に関して起こりがちな問題と解決方法について説明します。


    「Zip形式でダウンロード」機能とは


    「Zip形式でダウンロード」機能は、複数のフォルダやファイルを一括ダウンロードする機能で、選択したフォルダもしくはファイルをZip形式で圧縮してダウンロードします。Alfresco 4.2において実装された機能で、現行のAlfresco 5でも利用することができます。




    Zip形式ダウンロードを行うとファイル名が文字化けして展開できないことがある


    とても便利な機能なのですが、Windows 7(もしくはそれ以前)においては、ファイル名が文字化けして展開できないことがあるという問題があります。MBCSのファイル名、例えば全角文字を含むようなファイル名のものを「Zip形式でダウンロード」でダウンロードしてみましょう。


    Archive.zipというファイルがダウンロードされるので、エクスプローラで開いてみます。すると、以下のように文字化けしてしまうことがあります。なお、Windows 8やMac, Linuxでは文字化けせず、Windows 7以前でのみ文字化けします。


    これは、Alfrescoが生成するZipファイルでは格納されているファイル名がUnicodeで記録されているにも関わらず、Windows 7以前ではファイル名をShiftJISとして認識しようとしていることに起因します。Mac等で生成したZipファイルをWindowsで開こうとすると文字化けすることがあるのと同じ問題です。


    2つのワークアラウンド


    この問題、既にAlfresco JIRAに報告されていますが、Alfresco側で手当てする予定は無いようなので、クライアント側で対処する必要があります。対処法としては以下の2つがあります。

    1. Unicodeファイル名に対応したアーカイバを利用する
     Zipファイルの展開にエクスプローラではなくUnicodeファイル名に対応したサードパーティのアーカイバ(7-Zip等)を利用することで、文字化けせず適切に展開することができます。

    2. Windowsの修正プログラムを適用する
     どうしてもMicrosoft謹製のエクスプローラで開きたいという場合は、各クライアントPCにこちらの修正プログラムを適用することで、Unicodeファイル名を適切に扱うことができるようになります。

    2.の修正プログラムを適用すると、先ほどのArchive.zipも文字化けせずに展開できるようになります。


    本記事は以上となります。ファイル一括ダウンロードを利用したいという方は是非お試しください。


    Alfresco勉強会#28 メタデータテンプレートの作り方について発表しました

    $
    0
    0
    こんにちは。てらしたです。

    昨日6/24に第28回Alfresco勉強会が開催され、Alfresco Shareのドキュメントリストに表示される属性情報を条件によって切り替えるためのカスタマイズ(メタデータテンプレート)について発表しました。
    せっかくカスタムモデルを作って属性情報を追加したのにコンテンツの詳細画面を開かないとその属性が見れないというのは不便、ドキュメントリストにも表示したい、といった要件を満たすためのカスタマイズです。
    Evaluatorの定義の仕方や使い方はメタデータテンプレートだけでなく、インジケータやアクションのカスタマイズをする場合も参考になると思います。


    今回の勉強会は私が知る限りたぶん過去最高に参加者が多く、質疑応答も今までで一番活発だったのではないかと思います。私の発表の中でも、参加者の方からの質問でメタデータテンプレートが検索結果画面のリストには効いていないという発見があったりしました(下調べ不足という話でもありますが・・・。すみません。)

    さて、次回のAlfresco勉強会は8月26日(水)です。次回もたくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

    第29回Alfresco勉強会

    こういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。そもそもAlfrescoって何ができるの?というところから教えてほしい、といった要望でもかまいません。もちろん発表も大歓迎です。

    Alfresco勉強会#28 でAlfresco 5.0の検索機能について紹介しました。

    $
    0
    0
    こんにちは。おおたにです。

    先日、弊社オフィスにてAlfresco勉強会#28が開催されました。当日の様子はこちらの記事にも書いてある通りですが、たくさんの方が集まり色々な質問が飛び交いました。発表は先ほどの記事のメタデータテンプレートと私の「Alfresco 5.0の検索機能をみてみよう」の2本立てでした。

    私の発表では、Alfresco 5.0で大幅に強化された検索機能の紹介と、その中でも特にファセット検索(検索結果の絞り込み)のGUI上での設定方法について紹介しました。簡単にフィルタを追加できるので、実際にAlfrescoを利用する際にも有用な機能かと思います。


    最後に、2点ほどお知らせをば。

    お知らせ1 : 
    次回、第29回Alfresco勉強会は2015/08/26(水)です。参加登録はこちらからお願いします。発表します、こういう話が聞きたいです等、どしどしフィードに書き込んでください。

    お知らせ2 : 
    2015/07/06(火)、弊社においてミニセミナー「パターン別ドキュメント管理のキーポイント 〜Alfresco, NemakiWareなどを例として〜」が開催されます。一概に文書管理と言っても目的に応じていくつかのパターンがあり、それぞれにおいて必要とされる機能やシステム導入時に考慮すべき事項が異なってきます。本セミナーでは、AlfrescoやNemakiWareと言ったECM製品を例にいくつかのパターンの文書管理の勘所を紹介しますので、ご興味をお持ちの方は是非ご参加ください!

    Alfresco Community 4.2.c〜fでIE11だとログインできない問題への対処方法

    $
    0
    0
    こんにちは、そうまです。

    今回はAlfresco Community 4.2.c〜fでIE11だとログインできない問題の対処方法についてまとめました。

    この「IE11でログインできない」問題は比較的有名ですので、ネット上で探してみると対処方法は見つかります。しかし、記載された対処方法のみを行った場合に別の問題が起きてしまうことがありましたので、今更感がありますがエントリーを書いてみました。
    なお、この問題は最新のAlfresco Community 5.0.xでは解消されています。

    1. login.get.html.ftlファイルの修正

    この問題について検索すると良く提案されている対策です。
    ログインボタンのid属性を削除すると、IE11でもログインができるようになります。

    <tomcat_dir>/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/guest/login.get.html.ftl
    57行目:
    <input type="submit" id="${el}-submit" class="login-button" value="${msg("button.login")}"/>
    <input type="submit" class="login-button" value="${msg("button.login")}"/>
    ただし、id属性を削ってしまった影響として、ログインボタンが以下のようにブラウザデフォルトのスタイルに変化してしまいます。

     2. login.cssの修正

    デフォルトのスタイルとなってしまったログインボタンをAlfrescoのスタイルとなるように修正しましょう。idでの指定ができなくなりましたので、以下のclassでスタイルを指定した記述を追加します。
    <tomcat_dir>/webapps/share/components/guest/login.css
    .form-fields.login .form-field input.login-button {
    background-color: #ffa028;
    border-color: #ffa028;
    border-style: solid;
    color: #FFFFFF;
    font-family: Open Sans Bold,Arial,sans-serif;
    }
    これで、元どおりのスタイルが適用されたログインボタンとなります。

    3. login.jsの修正

    1.2.の対処方法だけで修正ができているように見えるのですが、実はid属性を削除したことで、javascriptエラーが発生するようになっています。
    このエラーはブラウザをデフォルトの設定で使用している場合は表示されませんが、ブラウザでスクリプトのデバッグを行う設定となっていると、ログインボタンを押したときにエラーダイアログが表示されます。

    例えばIE11の場合、[インターネットオプション]-[設定]-[ブラウズ]で、「スクリプトのデバッグを使用しない (Internet Explorer)」のチェックを外すと、以下のダイアログが表示されます。

    Alfrescoを利用するだけであれば問題にならないかもしれませんが、Alfrescoでの開発の途中など、デバッグ有効にしているとログイン毎にダイアログが表示されて煩わしいため、これも対応しましょう。  

    <tomcat_dir>/webapps/share/components/guest/login.js
    90行目付近:
     this.widgets.submitButton.set("disabled", true);
     if (null != widgets.submitButton)
    {
    this.widgets.submitButton.set("disabled", true);
    }

    109行目付近:
     this.widgets.submitButton = Alfresco.util.createYUIButton(this, "submit", null, {
    type: "submit"
    });
     if (null != this.widgets.submitButton)
    {
    this.widgets.submitButton = Alfresco.util.createYUIButton(this, "submit", null, {
    type: "submit"
    });
    }

    なお、Alfrescoから利用されるのはlogin.jsをminifyしたlogin-min.jsですので、修正したlogin.jsからlogin-min.jsを作り直す必要があります。
     javascriptのminifyには様々なツールが提供されていますが、AlfrescoにはYUI Compressorが同梱されていますのでこれを利用します。
    $ cd <tomcat_dir>/webapps/share/components/guest/
    $ mv login-min.js login-min.js.orig
    $ java -jar ../../WEB-INF/lib/yuicompressor-2.4.7.jar login.js -o login-min.js

    これで、エラーも発生しなくなりました。

    Alfresco Community 5.0.dに続きAlfresco One Enterprise 5.0.1がリリースされた現在ですが、まだまだAlfresco Community 4.2系を継続利用する環境もあると思いますので、その際の参考になれば幸いです。

    Liferayのパーソナライゼーションについて

    $
    0
    0
    ナクラです。
    ひさびさにブログを書く事になりました。
    いつまで続けられるか分かりませんが
    今後は力の限り、Liferayの機能を紹介していきたいと思います。

    さて、今回のトピックは「パーソナライゼーション」です。
    Wikipediaなどを参考にすると、「パーソナライゼーション」とは、個人向けにカスタマイズを行うことを指すようです。
    ポータルの概念で捉えると、「ポータルにアクセスしたユーザ毎に、表示する内容をそのユーザ向けに変更すること」になります。
    Liferayでもいろいろな形でパーソナライズを行うための機能が用意されています。


    能動的パーソナライズと受動的パーソナライズ

    Liferayのパーソナライゼーション機能について見ていく前に、2つのパーソナライズ方針について整理しておきましょう。
    これを仮に「能動的パーソナライズ」と「受動的パーソナライズ」と呼ぶ事にします。
    「能動的パーソナライズ」の定義は「ユーザ自身が自分で、表示する内容を変更すること」です。例としては、個人のブログサイトが分かりやすいでしょう。ユーザがブログサイト上で自分でブログを書いたり、ページのレイアウトを変更したり、バナーを貼ったりといったことを行います。
     「受動的カスタマイズ」の定義は「ユーザの属性情報を元に自動で表示する内容を変更すること」です。
    この例としては、会員制キャンペーンサイトなどがあります。
    サイトにログインした会員に対して、会員の持っているポイント情報や、最近購入した商品、おすすめの商品など個別のユーザごとに表示するコンテンツが変わってくるものになります。

    それでは、Liferay上でこれらのパーソナライズの機能をどのように実現しているのか見ていきましょう。

    Liferayの能動的パーソナライズ

    Liferayでは能動的パーソナライズとして2つの機能が用意されています。
    1つ目は、個人用サイトの機能です。
    ユーザを作成した際に、ユーザ自身が管理者となった「プロフィール」という名前の公開サイトと「ダッシュボード」という名前の非公開サイトが自動的に作成されます。
    この個人用サイトではユーザがページやページの要素を設定できるため、非常に高い自由度があります。
    Liferayにログインすると、自分の名前が表示されています。
    その部分をクリックすると「プロフィール」と「ダッシュボード」が表示されます。
    クリックすると、それぞれ個人用のサイトが表示されます。

    個人用のサイトが表示されたら、その上で自由にポートレットを配置したり、コンテンツを表示したりできるようになります。

    2つ目は、ページのカスタマイズ機能です。Liferayではページを作成する際に、ポートレットをページの上に配置していくのですが、それはページのレイアウトに従って配置されます。
    以下の図は2列のレイアウトを表しています。

    Liferayではデフォルトで様々なレイアウトが用意されていて、3列のレイアウトや1段目を1列、2段目を2列にするといったレイアウトなども用意されています。
    ページのカスタマイズ機能はこのレイアウトの一部だけを、ユーザに解放し、そこだけは、ユーザが自由にポートレットを配置できるようにします。
    カスタマイズの設定はまず サイトの管理権限のあるユーザでカスタマイズ設定したいサイトのページにアクセスして、画面上部のドックバーから「システム管理」➡「ページの編集」をクリックします。


    ページの管理画面が表示されるので、カスタマイズ設定をするページをクリックします。
    ここではHomeのページを選択します。右側のメニューでページ毎に設定できる項目が表示されるので、その中にある「カスタマイズの設定」メニューをクリックします。そうすると以下のようなカスタマイズ設定の画面が表示されます。
     ユーザにカスタマイズを解放したいレイアウトのエリアのチェックボックスにチェックを入れて保存します。


    これで、Homeページを表示すると、カスタマイズを解放したレイアウトはユーザが自由にポートレットの追加や削除が可能になりますが、レイアウトを解放していない部分は固定になります。




    Liferayの受動的パーソナライズ

    Liferayでは受動的パーソナライズとして、アクセス権限管理機能が使えます。
    ポータルの一般的な機能として、ユーザの持つ権限によって、ポートレットやコンテンツに対してのアクセス権の設定が行えるので、これを利用してページに配置したポートレットを見せたり、見せなくしたりできます。この機能はユーザ毎に設定するわけではないので厳密に言うとパーソナライゼーションとは外れるのですが、サイトコンテンツの表示を見せたり、見せなくする方法としてはよく使われる方法です。
    本格的に受動的パーソナライズを行うにはルールエンジンと連携します。LiferayはDroolsといったルールエンジンと連携するプラグインが提供されています。(このプラグインはエンタープライズエディション専用のプラグインとなっています。)
    ルールエンジンを活用すれば、アクセス管理で行うよりも柔軟な形のパーソナライゼーションが可能となります。
    例えば、ユーザの住所の情報から、近くの地域で行われているイベントを抽出して表示するようなことが可能になります。
    ルールエンジンとの連携については、また将来のブログで紹介させていただければと思います。

    以上で、簡単ではありますが、Liferay で実現されているパーソナライゼーションについて見てきました。
    ポータル製品の性格上、一般的なCMSに比べてパーソナライゼーションについての機能は充実しているのがお分かりいただけたかと存じます。
    これらの機能を活用して、ダイナミックで魅力のあるサイトを構築してください。

    それでは、また次回のLiferay紹介でお会いしましょう!


    LiferayのLDAP連携

    $
    0
    0
    最近は涼しくなってきましたね。残暑はあるのでしょうか。暑さに弱いので、できればこのままいってもらいたいナクラです。
    今日はLiferayのLDAP連携について書きたいと思います。
    わたしも社内のご多分に漏れずMacを利用しているので
    LDAPとしてはOpenLDAPを利用します。
    OpenLDAPのインストールについては、こちらの記事を参考にしてください。

    さて、Liferayではユーザ情報としてはメールアドレスが必須になります。
    従ってLDAP側では メールアドレス付きのユーザを作成しておく必要があります。
    上記のリンクの記事を参考にOpenLDAPを入れていただいた場合、
    メールアドレス情報付きのユーザを作成するには、
    slapd.confファイルに
    include         /private/etc/openldap/schema/cosine.schema
    include         /private/etc/openldap/schema/inetorgperson.schema
    のような形で、cosine.schemaとinetorgpersion.schemaをインクルードする
    設定を追記してください。

    LDAP:ユーザの作成

    次には、LDAP上にユーザを作成していきましょう。
    今回はApache Directory Studioを使って作っていきます。
    まず、Apache Directory Studioを起動します。
    右下のConnectionビューの「New Connection」をクリックします。
    新しいコネクションを設定するウィンドウが開くので、コネクション名とホスト名、ポート名などを設定します。
    今回はコネクション名はsample_liferay、ホスト名はlocalhost、ポート番号は389とします。(ホスト名やポート番号は、実際にLDAPをインストール環境にあわせてください。)
    Nextをクリックすると、認証の設定画面に変わるので、
    Bind DN or user:の部分にはslap.confのrootdnの値を設定します。
    Bind passwordにはrootpwで設定した値(slappasswdコマンドで生成した値を入れている場合は、生成時に設定したパスワード文字列)を入力します。

    Finishをクリックします。
    右側のLDAP Browserビューに新しくコネクションが追加されます。
    まず、slap.confのsuffixに該当する組織を作成します。
    右クリックしてNew > New Context Entryと選択します。
    エントリ作成の画面が表示されます。
    Create entry from scratchにチェックが入っている状態で、Nextをクリックします。
    エントリのオブジェクトクラスを設定する画面が表示されるので、dcObjectを選択して、Addボタンを押します。
    同じようにしてorganizationUnitを選択してAddボタンを押して、項目に追加します。
    追加が終わったらNextボタンをクリックします。

    Distinguished Nameを設定する画面が表示されるので、slap.confのsuffixの設定と同じものを入力します。 (例 dc=aegif,dc=jp)

    Nextをクリックすると、次のような画面が表示されるので、ouに値を設定してFinishをクリックします。ouは組織名です。設定する値はなんでも構いません。

     次にユーザを作成します。先ほど作ったコンテクストエントリを右クリックして、New > New Entryと選択します。先ほどと同じようなエントリ作成の画面が表示されます。Create entry from scratchにチェックが入っている状態で、Nextをクリックします。
    エントリのオブジェクトクラスを設定する画面が表示されるので、inetOrgPersonを選択して、Addボタンを押します。
    NextをクリックするとRDNを設定する画面が表示されます。
    ここではLiferayに必要な情報を追加していきます。スクリーン名、メールアドレス、姓、名などを入れていきます。項目名は事前に利用するクラスによって使えるものが決まって来ます。
    Nextをクリックして、Finishをクリックします。

    これで、LDAP側にユーザが作成できました。
    次はLiferay側の設定をしましょう。

    LiferayのLDAP設定

    Liferayサーバを起動して、管理者でログインします。
    コントロールパネルに移動し、ConfigurationのPortal Settingsをクリックします。
    右側のメニューでAuthenticationをクリックします。
    LDAPタブを選択します。次の画面が表示されます。

     EnabledのチェックボックスとImport Enabledのチェックボックスにチェックを入れて、保存をクリックします。
    次にLDAP ServerのAddボタンをクリックします。
    サーバの追加画面が表示されます。
    Server Nameを入力し、
    Default ValuesにOpenLDAPにチェックを入れてReset Valuesをクリックします。
     これでOpenLDAPに則した項目マッピングがされるようになります。ただし、Connectionの部分は、自分の環境に合わせて設定が必要です。
     Base Provider URLはホストサーバのURLとポート番号、Base DNにはslap.confのsuffixの値、Principalにはrootdnの値、Credentialsにはrootpwに該当するパスワード文字列を設定します。
    これで設定はできました。一応、画面を下にスクロールして、User Mappingの項目を確認してください。LDAPサーバで登録したユーザ情報と項目がマッチするように設定されています。基本的にはデフォルトのままでOKですので、このままSaveボタンをクリックします。

    以上、で設定が完了しました。
    しばらくすると同期処理が走って、LDAPで作成したユーザがLiferay側にも作成されます。(デフォルトでは同期のタイミングは10分おきになっています。設定を変更したい場合はportal-ext.propertiesファイルに ldap.import.interval = XX と設定してください XXは任意の数字で分単位です)

    まとめ

    LiferayのLDAPサーバとの連携は非常に簡単です。
    既存のLDAPサーバを連携する場合は、LiferayのLDAP設定から始めてもらえれば大丈夫です。ユーザと同じようにして、グループの設定も可能です。
    Liferayの運用の場面で良くある話ですが、大量のユーザの追加をUIから行うのは大変なので、LDAP連携の機能を利用してユーザの管理を行うと作業が楽になるでしょう!



    Alfresco勉強会#29 ユーザのアクティビティを可視化してみる

    $
    0
    0
    こんにちは。錦織選手が全米オープンで初戦敗退と聞いて凹んでいるてらしたです。足のケガで出場できるかどうかも微妙だった去年が準優勝で、万全と言っていた今年が初戦敗退とはわからないもんですねぇ。

    さて、開催から1週間も経ってしまいましたが、先日29回目のAlfresco勉強会が開催されました。今回は弊社の戸谷がAlfrescoでのユーザアクティビティの可視化について発表しました。

    Alfrescoにはユーザがサイトに参加した、ファイルをアップロード/ダウンロードした、といった操作内容を記録して表示するためのアクティビティという機能があります。標準機能でも、アクティビティをダッシュレットに表示したり、日次でメールで通知したりすることができるのですが、それをもうちょっとわかりやすく可視化できたらおもしろいんじゃないか、という内容でした。

    具体的には、LogstashでAlfrescoのREST APIを叩いてアクティビティを取得 → Elasticsearchに登録 → Kibanaで見てみる、という話です。この内容を参考にして、収集するアクティビティや見せ方を色々応用していったらおもしろそうです。ご興味があればぜひ試してみてください。


    次回のAlfresco勉強会は10月28日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

    第30回Alfresco勉強会

    もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

    Enterprise API Hack night#1 に行ってきました!

    $
    0
    0
    コレステロール値に要観察の結果がでてしまった(前から出ていた?)ナクラです。

    先週、木曜日(9/3)に第一回Enterprise API Hack nightに行ってきました。
    正直な話、当日までこういうものがあるのは知らなかったのですが、
    弊社の自社開発チームのメンバが、「行きたいのに行けない」と言うので
    代わりにちょっと様子を見ようと気楽なノリでいってしまいました。

    さて、皆さんEnterprise APIってなんだと思いますか?
    私も全然こういう言葉に感度がなくて何なのだろうと思っていました。
    「Enterprise」は日本語に訳せば「企業」
    APIはApplication Programming Interfaceの略称ですので、
    企業向けアプリケーションソフトウェアのインタフェースということでしょうか。
    結局明確な定義はちゃんと理解できなかったのですが、
    最初の登壇者の事務局の加藤さんは
    B2BのAPIの普及を進めていきたいという話をされていたので、
    大まかな捉え方としては、B2B向けのAPIがEnterprise APIで問題なさそうです。
    とはいえ、公開APIの話もあったので、完全にB2Bに閉じたものでもないようです。

    さて、このHack Nightでは3つの講演がありました。それぞれ簡単に感想を書いていきたいと思います。

    講演1:ビジネスのデジタル化におけるAPI活用事例

    apigee(アピジーと読むらしいです)の清水さんが話されました。
    グローバルの世界では、今APIの活用がどんどんと進んでいるらしいです。
    Walgreens、AP通信社、SalesForce、Dell、BECHTELなどで行われているAPIの活用事例を紹介してくださいました。
    とくにBECHTELではipadを使った工事管理の事例で、Appleのipad事例にもなっているそうです。
    こういった大規模なAPI群を管理するためのAPIマネジメントプラットフォームが重要になってきているという話でした。(apigeeもこの分野を取り扱うソフトウェア(?)のようです)

    講演2:APIがNTTコミュニケーションズのサービスを変える!

    NTTコミュニケーションズの緒方さんが話されました。
    現在NTTコミュニケーションズでAPIの代理店向けのAPIが公開されはじめていて
    代理店のポータルシステムとNTTコミュニケーションの情報を管理するシステムとが連携して、
    ポータル側で契約情報や故障情報などがリアルタイムで確認できるようなことになっているそうです。
    APIの利用を促進するために、
    標準化ルールの設定、APIの管理、ニーズを捉えたAPIの作成が必要だと言う話をしていただきました。

    講演3:IoT/M2M分野におけるWeb APIの使い方とデモ 

    MOONGIFTの中津川さんが話されました。
    M2Mについて最近はmachine to machineでは無くmachine to cloud to machine
    M2C2Mになっているという話で、cloudの部分ではブラウザなどでアクセスして情報を閲覧したりできるような形になっているということでした。
    M2Mは利用目的によっていろいろな方法がとれるので、ネットワークの設計を慎重に検討して、最適なネットワークを選ぶことが大切だというお話でした。
    IoTのWeb APIの話では、大量のデバイスからデータを取って、データを蓄積するビックデータ型と
    ビーコン系のデバイスとスマフォを通信させてるスマートフォン型の利用方法があり、それぞれのメリットでメリットの話も聞けて、とてもためになりました。
    また、音声入力でチャットしたり、玄関の電球を灯けたりするデモも見せてもらいました。
    今更ながら、ラズベリーパイが欲しくなってしまいました!




    講演の後にはライトニングトークがあって、何人かの方が発表されていましたが、
    お酒が振る舞われた後だったので正直あまり覚えていません(汗)



    弊社もNemakiWareやCmisSyncなどAPIを活用した自社ソフトウェアがありますので、
    この流れにおいていかれないように、今後もEnterprise API Hack Night は「要チェックや!」と思いつつも、コミュニケーション力を高めていかないと、なかなかコミュニティに入り込めないなと、ひとしきり反省しながら帰りました。

    興味を持っていただいた方はツイッターで#entapihackのハッシュタグで検索してみてください。

    また次回参加したらブログに感想を書きたいと思います
    ではでは。

    LiferayのAudience Targetingでユーザーセグメントを定義して使ってみよう

    $
    0
    0
    こんにちは、最近自動車の運転を練習しているかわべです。カーシェアで早朝にちょこっと運転してパン屋さんでおいしいパンを買って帰り、家でゆっくり食べる、という夢があるのですが、先日練習したところどこにも駐車できずに疲れて帰ってきました。先は長そうです。

    さて、本日はLiferay社が開発しており、Marketplaceから無償で入手してインストールすることができるAudience Targeting(オーディエンス・ターゲティング)という機能について紹介したいと思います。日本語では「ユーザー解析」という名称に訳されている、複数のポートレットやフックから構成されるプラグインです。2回に分けて記事にしようと考えているので、前半である当記事では機能の説明、インストール方法、そしてユーザーセグメントの利用方法について説明したいと思います。

    Audience Targetingで何ができるようになる?

    デフォルトのLiferayの機能でも、ユーザーが所属する組織やサイト、割り当てられたロールなどによって特定のコンテンツやページを表示する/しないという制御をすることはできます。これは権限のないユーザーからコンテンツを保護するためのポータル製品としての機能と言えます。
    Audience Targetingを利用すると、ユーザーに最適なコンテンツを動的に表示させる更に細かいルールの適用が可能になります。例を挙げると、

    • 30代の男性ユーザーにはコンテンツA、40代の男性ユーザーにはコンテンツB、それ以外のユーザーにはコンテンツCを表示する
    • 午前6時から午前10時までにアクセスしたユーザーにはコンテンツEを表示する
    • コンテンツDを10回以上閲覧したユーザーをキャンペーンEの対象とし、登録フォームへの入力率を一般ユーザーと比較する

    などです。ポータルサイトとしての可能性が広がりそうな機能だと思いませんか?

    これらの表示ルールの一部は、EE版で提供されていたDroolsルールエンジンとポートレットを応用すれば以前から実現可能でしたが、Droolsではルール適用のためにスクリプトを記述する必要があり、そこに導入のハードルを感じた方もいるかもしれません。一方、Audience Targetingでは管理画面からのUI操作だけでルールが設定できるので、コーディング知識は必要ありません。

    それではインストールから順を追って使い方を見ていきましょう。以下ではLiferay Portal 6.2 EE SP12をTomcatバンドルでMacにインストールしたものを使用しています。

    Audience Targetingのインストール

    Audience Targetingに限った話ではありませんが、Marketplaceにあるプラグインをインストールするには方法が2つあります。
    • Liferayの起動中に管理者としてログインし、コントロールパネル→MarketplaceでLiferay.comのアカウントを紐付けて画面上から購入、インストールする
    • ブラウザでMarketplaceにアクセスし対象のプラグインを購入後、ダウンロードし、ダウンロードしたファイルをLiferayのdeployフォルダに配置する

    今回は後者の方法で進めます。Liferay.comに登録した自分のアカウントでAudience Targetingを購入(無料)し、プロフィールの「購入済アプリケーション」からダウンロードします。Audience Targeting EE.lpkgというファイルがダウンロードされます。Audience TargetingにはCE版も用意されているので、CEを利用されている場合はそちらを入手してください。
    deployフォルダはLiferayを展開したフォルダ配下に存在するはずなので、その中にこのファイルを置きます。と、ここで注意。
    通常、LiferayのプラグインはLiferayが起動していてもホットデプロイすることが可能ですが、Audience Targeting EE.lpkgはLiferayが停止しているときにdeployフォルダに入れ、その後Liferayを起動してください。
    そうしないとエラーログが出力されてデプロイに失敗してしまいます。
    また、これは試している中で気づいたことですが、deployフォルダにプラグインを入れて起動が完了した後、もう一度Liferayを停止→起動してください。そうしないとドックバーが一部無効になってしまうようです。(使えるようなら問題ありませんが、例えばコンテンツ追加のための「+」を押しても反応しなかったりしたら再起動しましょう。)

    起動と停止をするにあたり、ついでに停止中に<TOMCAT_DIR>/bin/setenv.shでJVMのメモリサイズ設定を確認し、デフォルト値のままになっている場合は値を大きくしましょう。Audience Targetingを使用する場合、最低でも"-Xmx2048m -XX:MaxPermSize=512m"を割り当てることが推奨されているようです。

    無事にインストールが完了すると、管理者としてログインした際にドックバーにシミュレータ用のボタンが追加されているはずです(クリックするとこんな風に左サイドペインが開きます)。


    また、システム管理→編集へと移動すると、「ユーザー解析」という項目が追加されています。次はここから操作を行い、ユーザーセグメントを追加していきます。

    ユーザーセグメントとは?設定方法は?

    名前から想像が付くとおり、ユーザーを特定の条件に従ってセグメント化したものです。このセグメントごとにコンテンツの表示ルールやキャンペーンが設定できます。今回は、保険会社の加入者向けポータルサイト「Aegif Demo Insurance」である範囲の年齢と性別を条件としたユーザーセグメントを作成するという例を試してみたいと思います。
    管理者としてログインし、対象サイトのシステム管理→編集→ユーザー解析へ移動すると、「ユーザーセグメントの追加」ボタンがあるはずなのでクリックします。すると、どのようなルールでユーザーセグメントを作成するか、画面から作成することができます。標準で用意されているルールは以下です。

    ソーシャル(Facebook連携ログインを利用する場合のみ有効。Facebookの各項目を使用した分類)
    • 学歴
    • 特定ページへの「いいね!」有無
    • 性別
    • つながり
    • 年齢

    振る舞い(Liferayポータル内で訪れたコンテンツによる分類)
    • 閲覧済みコンテンツ
    • スコア(タグのついたコンテンツの訪問回数を集計)
    • 閲覧済ページ

    ユーザー属性(Liferayに登録した属性などによる分類)
    • サイトメンバー
    • 性別
    • サイトロール
    • ユーザーグループ
    • ログインの有無
    • 組織ロール
    • 組織メンバー
    • 標準ロール
    • 年齢

    セッション属性(IPアドレスなどアクセス元による分類)
    • ロケーション
    • ブラウザ
    • OS
    • 時間
    • デバイス
    これらのルールはもちろん組み合わせて利用することが可能で、必要な項目をドラッグし、希望する設定値を追加するだけでOKです。今回は「21-35歳男性」というユーザーセグメントを以下のように作成してみました。


    ユーザーセグメントコンテンツディスプレイの利用

    このユーザーセグメントに当てはまる場合のみ特定のコンテンツが表示されるように、「ユーザーセグメントコンテンツディスプレイ」ポートレットをページに配置してみましょう。今回はTOPページに置いてみます。ドックバーの「+」(追加)をクリックし、対象のポートレットをページにドラッグします。


    右上の設定アイコンから、以下の条件で表示されるように設定して、保存します(日本語がいまいちだったので英語表示にしています)。
    • ユーザーが「21-35男性」のセグメントに当てはまる場合、「自動車保険へのリンク」というWEBコンテンツを表示する」
    • それ以外の場合、「保険見直しへのリンク」という別のWEBコンテンツを表示する

    ところで上の画面キャプチャからわかるように、セグメントは複数を同時に利用することが可能で、セグメントの「すべてに」または「どれか1つに」該当する場合、という設定をすることができます。更に「+」を押すとセグメントの判断を追加できるため、「AならA', BまたはCならB'、Dなら…」というような複雑な表示設定も可能です。また、表示させるコンテンツもWEBコンテンツだけに限らず、ドキュメントやブログ記事など他の種類にも対応しています。

    さて、それでは実際にユーザーセグメントが有効になっていることを確認してみましょう。以下3人のテストユーザーを作成し、Aegif Demo Insuranceに順番にログインしてみることにします。

    1. Boy Forty 40歳男性

    2. Boy Twenty-Five 25歳男性

    3. Girl Twenty-Five 25歳女性

    ちゃんと設定したユーザーセグメントに従ってコンテンツの表示がされました!
    また、いちいちそれぞれのセグメントに該当するユーザーで入りなおさなくとも、管理者など権限があるユーザはドックバーのシミュレータボタンをクリックすると「このユーザーセグメントに属するユーザーにはどういうページに見えるのか」というのを確認することができます。


    ユーザーセグメントリポート

    各ユーザーセグメントに当てはまるユーザーがどのコンテンツを閲覧したかを表示する機能も備わっています。システム管理→編集→ユーザー解析→ユーザーセグメントに移動し、それぞれのユーザーセグメントで操作→リポートを選択すると、「そのユーザーセグメントに当てはまるユーザーが閲覧したコンテンツ」を見ることができます。



    デフォルトでは1日に1度更新されますが、更新ボタンをクリックするとその都度更新されます。これもユーザーの動向を分析するために活用することができそうです。

    次回予告

    ユーザー分析にはまだ紹介できていない機能があります!後編として、ユーザーセグメントのタグ、そしてキャンペーン機能について近いうちに紹介したいと思います。

    セミナーのご案内

    10月15日(木)にaegifオープンソースセミナーを開催いたします。LiferayのパートではAudience Targetingなどを利用したユーザー行動分析について、デモを交えてご紹介する予定です。ご興味のある方はぜひこちらからお申込みください。

    Alfresco勉強会#30でJavaScriptのデバッグについて発表しました

    $
    0
    0
    こんにちは、かわべです。前回のLiferayに関するブログで、続きを書きます!なんて書いておいて、まだ書けていなくてすみません。必ずや近いうちに…。
    さて、今日は先日開催したAlfresco勉強会の振り返りブログを書こうと思います。なんと記念すべき第30回でした。

    Alfrescoとはそもそもどういうものか?という入門編から、先日弊社が開催したセミナでお話したアクティビティログ解析といった発展編まで、盛りだくさんな内容となりました。
    そんな中、私はAlfrescoのJavaScriptのデバッグについて発表しました。JavaScriptまわりの開発をしているとき、どういうふうにロガーを仕込むとどこにログが出力されるのか、ということがわかっていなくて苦しんだことがあるので、まとめてみました。カスタマイズをする場合には参考にしてみてください。


    次の勉強会は2016年1月27日(水)に開催します。以下のリンクからお申し込みいただけます。

    第31回Alfresco勉強会

    発表されたい方や、こんなテーマでの発表が聞きたいなどのリクエストがある方はぜひお気軽にconnpassのフィードに投稿してください。ご参加お待ちしております。

    LiferayのAudience Targetingで動的にユーザーセグメントを割り当ててみよう

    $
    0
    0
    こんにちは、かわべです。かなり日が空いてしまいましたが、LiferayのAudience Targeting(ユーザー解析)に関する記事の続きです。前編ではインストール方法とユーザーセグメントについて説明しました。今回は後編として、タグとスコアを利用した動的なユーザーセグメントの割り当て方法と、キャンペーンという機能について紹介していきたいと思います。

    ユーザーセグメントのタグとスコアとは

    前回の記事からの繰り返しとなりますが、ユーザーセグメントとはユーザーを特定の条件に従ってセグメント化したものです。その特定の条件に、対象となるコンテンツを何度閲覧したかという「スコア」という仕組みを使うことができ、ユーザーセグメントのタグを使用して対象となるコンテンツを設定します。

    具体的な使い方を見ていきましょう。引き続き、保険会社の会員向けポータルサイトにAudience Targetingを導入していくという設定です。ポータルにはすでに以下3名のユーザーがいるとします。

    1. Boy Twenty-Five
    2. Boy Forty
    3. Girl Twenty-Five

    今回はプロフィールに登録された性別や年齢によってユーザーセグメントを定義するのではなく、ユーザーが「海外旅行保険興味あり」というタグが設定されたコンテンツやページに3回以上アクセスすると、そのユーザーを「海外旅行保険興味あり」というユーザーセグメントに動的に割り当てることにします。結果を検証するため、「海外旅行保険興味あり」のユーザーには、ログイン後のトップページに海外旅行保険に関連するコンテンツを表示する設定を追加します。

    まずは「海外旅行保険興味あり」というユーザーセグメントを作成します。対象サイトのシステム管理→編集→ユーザー解析へアクセスし、「ユーザーセグメントの追加」をクリックします。名前は「海外旅行保険興味あり」、ルール「振る舞い」から「スコア」を追加し、スコアの値は「3」にして保存します。この数字が何度のコンテンツ閲覧でこのユーザーセグメントに割当てるかという値になります(1アクセス1ポイントです)。



    次は、閲覧すると「海外旅行保険興味あり」に1ポイント加算されるページを作成します。

    トップページにバナーをいくつか並べておき、

    真ん中の海外旅行保険のものをクリックすると、以下の海外旅行保険説明ページに遷移するようにします。


    このページには、「海外旅行保険興味あり」のタグを設定しておきます。ユーザーセグメントを作成するだけで同じ名前のユーザーセグメントタグが自動で作成されているはずなので、ページのカテゴリの設定から設定します。(このユーザーセグメントタグは通常のタグとは異なります。)


    今回はページに設定しましたが、他のコンテンツにも同じようにユーザーセグメントのタグを設定することができます。

    ユーザーセグメントの割り当て結果を確認するため、トップページにユーザーセグメントコンテンツディスプレイポートレットを配置し、「海外旅行保険興味あり」用のコンテンツ、当てはまらない場合のコンテンツを設定します。



    これで設定完了です。「海外旅行保険興味あり」ではないユーザーにとっては、トップページはこのように見えるはずです。


    Boy Twenty-Fiveとしてログインすると、確かにトップページはこうなっていますが、


    バナーのリンクをクリックして海外旅行保険説明ページに遷移し、「海外旅行保険興味あり」のスコアを追加することを3度繰り返すと…


    トップページのコンテンツが変わりました。Boy Twenty-Fiveが「海外旅行保険興味あり」のユーザーセグメントに振り分けられたことがわかります。

    Audience Targetingでは、このように動的にユーザーをセグメントに振り分けることもできるのです。

    キャンペーン

    最後に、Audience Targetingのもう1つの機能であるキャンペーンについて紹介したいと思います。

    キャンペーンでは特定のユーザーセグメントを対象として、一定期間コンテンツを表示させることができます。また、一部のアクションをユーザーセグメント別にトラッキングすることもできます。今回は「旅行保険見積もりフォームへの入力」をトラッキングしてみます。トラッキング対象とするためのフォームをWEBフォームポートレットで作成し、ポートレットのルック&フィールからポートレットのIDを確認しておきます。


    システム管理→編集→ユーザー解析へと移動し、「キャンペーンの追加」をクリックしてキャンペーンを追加します。対象とするユーザーセグメントは「海外旅行保険興味あり」のユーザーセグメントとします。キャンペーンの有効期間と優先度を入力します。

    キャンペーンにおける追跡対象のアクションとしては以下から複数を設定できます。

    • サイトページ
      • 参照

    • WEBフォーム
      • 参照/入力/送信

    • YouTube映像
      • 表示/バッファリング/再生(一部)/一時停止/再生(完了)

    • コンテンツ
      • 参照

    • リンク
      • クリック

    今回は先ほど作成したWEBフォームの入力をトラッキングするための設定だけを追加し、保存します。

    これでキャンペーンを作成することができました。

    キャンペーン関連のポートレットとしては、対象となるキャンペーンに当てはまる場合に特定のコンテンツを表示する「キャンペーン・コンテンツ・ディスプレイ」ポートレットがあります。今回は省略しますが、一定期間だけを対象として特定ユーザーセグメントにコンテンツを表示したいようなケースにはこちらが便利かもしれません。

    では、アクションのトラッキングについて確認してみましょう。Boy Twenty-Five、Boy Forty、Girl Twenty-Fiveという3ユーザーそれぞれで見積もりフォームのラジオボタンをクリックしてみます。入力をトラッキングできるかの確認なので、送信までは行いません。


    それぞれのユーザーで操作が終わったら、管理者としてログインしてキャンペーンのレポートを見てみます。トラッキング動作のレポートとキャンペーン・コンテンツ・ディスプレイポートレットによるコンテンツビューのレポートがありますが、今回関連するレポートは前者です。

    更新してからアクセスすると、

    このようなレポートが表示されます。フォーム入力が3回記録されていることを確認しましょう。また、内訳としてどのユーザーセグメントのユーザーによるアクションであるかということもわかるようになっています。キャンペーンがどれだけ想定通りに効果を発揮したか、ということを計測するためにこのレポートを役立てることができます。

    まとめ

    2つの記事でAudience Targetingの基本的な使い方はご紹介できたかなと思います。ポータルへのアクセスユーザーに対してよりパーソナライズされた情報を提供する機能として、ぜひ試して見てください。

    Alfresco勉強会#31でAlfrescoにウイルススキャンを実装する話をしました

    $
    0
    0
    こんにちは。おおたにです。

    先日、第31回Alfresco勉強会が開催されました。今回はいつもより参加者が少なかったこともあり、具体的なAlfrescoの利用方法や便利機能、設定項目など、様々な内容についてディスカッションが行われました。

    さて、今回の発表ですが、私が、「Alfresco 5.0にウイルススキャン機能を実装してみる」というタイトルでAlfrescoにアップロードされたコンテンツをウイルススキャンするようなカスタマイズについて発表しました。



    Alfresco自体はウイルススキャンのエンジンを持っていないため、ファイルアップロードのタイミングで外部のウイルススキャンを利用する必要があるのですが、 それらを実現するために必要な仕組みの説明と実際のデモをご覧いただきました。当日のスライドを見ると分かるのですが、ウイルススキャンを実装するために以下の仕組みを利用しました。
    • Policy(とBehaviour)
    • Transaction Listener
    • Action
    • RuntimeExec

    サンプルコードはBitbucketで公開しておりますので、是非お試しください。




    Alfresco勉強会#32 Alfresco Community 5.1.eの機能紹介

    $
    0
    0
    こんにちは。てらしたです。ご無沙汰しております。しばらく書いていなかった上に今回は他のメンバーがAlfresco勉強会で発表した内容の紹介という手抜きっぷりですがご容赦ください・・・。

    先日3月23日(水)に第32回のAlfresco勉強会が開催されました。発表は2つあり、1つは「AlfrescoのBulk Import toolのご紹介」(詳細はこちら)、もう1つはここでご紹介する「Alfresco Community 5.1.eの機能紹介」でした。

    5.1.eで新たに追加された機能としてShare UIからのモデル定義とスマートフォルダの機能を紹介してもらったんですが、個人的にはスマートフォルダで助かる場面は色々あるんじゃないかと思いました。Alfrescoにすでに入っているコンテンツを何らかの属性をキーに引っ張ってきて横断的に見たいってケースはそれなりにあるんじゃないかと思うんですよね。もともとWorkdeskというAlfrescoとは独立した別のアプリケーションを使えば実現できた機能ではあるんですが、Alfrescoの標準機能として使えるようになったのは大きいと思います(Workdeskは開発終了したみたいですし)。

    Share UIからのモデル定義も欲しかった人にはうれしい機能だと思うので、スマートフォルダも含めて詳細については以下の発表資料をご覧いただければと思います。


    次回のAlfresco勉強会は5月25日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

    第33回Alfresco勉強会

    もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

    Alfresco勉強会#32 Alfresco Bulk Import toolのご紹介

    $
    0
    0

    こんにちは。ご無沙汰しております、Aegifのそうまです。

    先日3月23日(水)に、弊社オフィスにて第32回Alfresco勉強会が開催され、そこで「Bulk Import toolのご紹介」という内容で発表させていただきました。

    「Bulk Import tool」は名前の通り、コンテンツをまとめてAlfrescoへインポートするツールで、以前はAdd onとして提供されていたのですが、現在(Alfresco 4.0以降)はAlfrescoの配布物に含まれておりインストールした直後から使えます。

    他のインポート手段に比べ比較的高速で、ファイルの複数バージョンを設定したり、メタデータを与えることが出来たりと手軽な割に便利なツールなのですが、Alfrescoを利用されていても意外と知らない方が多いように感じていましたので、今回紹介させていただきました。

    Alfrescoを使いはじめたり利用をしていく上で、これまで別の場所に蓄積されたコンテンツをAlfrescoへインポートする機会は多いのではないかと思います。その際に利用可能なインポートツールの1つとして参考にしていただけると幸いです。




    次回のAlfresco勉強会は5月25日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

    第33回Alfresco勉強会

    もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

    GitLab にプッシュすると差分が自社サイトに FTP されるようにしてみた

    $
    0
    0

    こんにちは、すぎもとです。

    普段は別のブログに書いていますが、今回は社内のシステム環境の話だったのでこちらにポストしてみます。

    Aegif のコーポレートサイトは静的サイトで構築されています。最近リニューアルしました。ところが記事の更新などがあったとき、マーケティングを担当にしている同僚が手で涙ぐましい修正をしていたことが判明しまして、JavaScript で一部の作業を自動化をすることにしたんですね。

    そうやって、やはり複数人が係わるようになると、編集→更新の流れをもう少し楽にしたいなという話が出てきました。まずは社内の Git リポジトリ環境(GitLab)にサイトのソースを置くことに。でも、ここまでやったら、プッシュしたら自動で本サイトに反映したいということになりますよね。

    Web サイトが置いてあるサーバは Git が使えないので、GitLab 側からFTPすることにしました。やったことは以下の通りです。

    GitLab のあるサーバは Ubuntu 14.04 です。まずは git-ftp を導入します。デフォルトでやってみたら最新が落ちてこなかったので PPA を追加して、apt-getします。

    # add-apt-repository ppa:resmo/git-ftp
    # apt-get update
    # apt-get install git-ftp

    つぎに GitLab が管理している Git リポジトリにカスタムのサーバサイドフックを作成し、プッシュされたときに FTP されるように設定します。

    GitLab の管理するリポジトリはサーバのローカルパスで言うと

    /var/opt/gitlab/git-data/repositories/aegif/CorporateSite.git 

    みたいな場所に保管されます。このリポジトリ直下に

    custom_hooks 

    ディレクトリを作成し、そのなかに post-receiveという名前でスクリプトを作成します。スクリプトは以下のような記述にしました。

    #!/bin/bash 
    cd /path/to/tempdir/CorporateSite
    git --git-dir=.git pull
    git --git-dir=.git ftp push --branch master --user XXXX --passwd xxxxx ftp://xxxx.jp:21/pathtodir

    このスクリプトのオーナーは git:git にしておき、実行権限を付けておきます(GitLabがキックするので)。なお Git コマンドを発行する行には上述の通り、 --git-dir=.git がないと怒られます。

    注意点としては、普通の Git リポジトリなら custom_hooks 内で直接 git ftp できてしまうんですが、 GitLab が使う Git リポジトリは bare リポジトリなので、いったんサーバのローカル環境でで別の場所に取得してしてそこから FTP します。

    ですので、サーバローカル内で手動 git clone を /path/to/tempdir/CorporateSite にしておきます。さらに FTP サーバ側に差分を送ることが出来るように、初回は手動で git ftp init をしてファイル群をアップロードしておきます。

    以後はプッシュされると差分だけが上がるようになります。今回はステージング環境は存在しなかったので、master から直接本番環境にあげてしまっています。 けっこう時間がかかることが予想できたので nohupで起動させて放置しておきました。

    nohup git ftp init --branch master --user XXXX --passwd xxxxx ftp://xxxx.jp:21/pathtodir > /path/to/git-ftp-log&

    初回アップロードは1時間くらいかかりました。その後、試しにテストファイルを手もとからプッシュして、自社サイトの更新を確認しました。

    こう書くとけっこう簡単に作業したか見えますが、思ったより時間がかかってしまいました。というのも git-ftp で出てくる記事が古いんですよね。おかげで、余計なライブラリとか入れちゃったり、bare リポジトリの存在をすっかり忘れて、アップロードできないと悩んだりして無駄に時間を費やしてしまいましたよ。

    今こそほとんどワンライナーで出来ちゃいますが、昔はそこまで簡単じゃなかったようですね。イマドキの Web サーバはサーバのほうに Git が入ってたりしますし、そもそもサイト自体も動的なことがおおかったりするわけで、 FTP で更新するというので情報が少ないのも仕方ないですね。

    今回、この試みで、うちの会社では技術者以外の同僚にも Git をつかってもらうことになりました。とりあえず GUI で使ってもらうべきだろうと SourceTree を入れてもらいましたが、 Mac 版と Windows 版でだいぶ構成が違ったり(更新担当者はどちらも使います)無償版でも無償ライセンスの登録が必要になっていたりと導入自体にハードルがあってなかなか大変。ひとまずはブランチなどを使わずに、「うっかり壊しても技術部門に相談してくれればもとに戻せるリポジトリ」みたいな扱いで master 直接プッシュでまずは運用をはじめてみました。

    この非技術者による Git 運用についてはまた軌道に乗ったらお伝えできたらと思います。

    Alfresco Community Edition 5.1をインストールしてみよう

    $
    0
    0
    こんにちは。おおたにです。

    先日、埼玉県幸手市にある権現堂堤というところに桜と菜の花を見に行きました。以前から一度は行きたいと思っていたのですが、実際に目にしたピンクと黄色の鮮やかなコントラストは想像以上でした。ちなみに権現堂堤は秋になるとたくさんの曼珠沙華が咲き誇り、こちらも壮観です。


    さて、ここからが本題なのですが、今回はAlfresco Community Edition 5.1のインストール方法について紹介しようと思います。AlfrescoはWindows / Mac / Linux向けにそれぞれインストーラを提供しているので、インストーラをクリックするだけでとても簡単にセットアップすることができます。

    なお、この記事で使用しているAlfrescoのバージョンはAlfresco Community Edition 201602 GAというものです。 記事執筆時点でのコミュニティ版の最新版となります。なお、このバージョンは内部的には5.1.eとナンバリングされているため、以後5.1.e(5.1系)と呼ぶことにします。

    これまで4.2.xや5.0.xと呼ばれていたバージョン番号が何故5.1から変わってしまったのか、正確なところは分かりませんが、5.1からalfresco(Alfrescoのコアリポジトリを提供するアプリケーション)とshare(AlfrescoのUIを提供するアプリケーション)のソフトウェアライフサイクルが独立したことに起因するのではないかと想像しています。

    まずはインストーラのダウンロードから


    というわけで、まずはインストーラをダウンロードします。目的のインストーラはCommunity file list 201602-GAからダウンロードできます。OSに応じたものをダウンロードしてください。このサイトではインストーラの他に、手動インストール用のモジュールなどもダウンロードできます。

    インストーラを実行しよう


    早速インストーラをキックしましょう。64bit版Windowsであればalfresco-community-installer-201602-win-x64.exeを実行します。以下、Windows版のインストーラに沿って見ていきます。

    まずは言語選択画面が表示されるので、インストーラの表示言語を選択して「OK」をクリックします。ここで選択するのはあくまでもインストーラの表示言語です。インストールされるAlfrescoの言語ではありません(ここでの選択に関わらず、Alfrescoの対応する全ての言語リソースがインストールされます)。


    続いて「次へ」をクリックします。


    次に、インストールの種類を選択します。ここでは「詳細設定」を選択して「次へ」をクリックします。


    必要なコンポーネントを選択して「次へ」をクリックします。各項目の内容は以下のとおりです。
    • Java : Java SE Runtime Environment 1.8。Alfrescoの起動に必要だが既にインストールされている場合は不要。
    • PostgreSQL : PostfreSQL 9.4.4。Alfrescoが利用するRDBMS。別にインストールされたRDBMSも利用可能だが、これを選択しておくとAlfresco専用にRDBMSを用意する上に構成も自動的に行われる。
    • LibreOffice : LibreOffice 4.4.5。オフィス系文書のコンテンツ変換やテキスト抽出に利用される。ひとまず選択したままでよい。
    • Solr1 : Apache Solr 1。基本的にはSolr 4を使うべきなので選択しないままでOK。
    • Solr4 : Apache Solr 4。検索に利用される。別途検索エンジンを用意しないのであれば選択したままにする。
    • Alfresco Office Services : SharePoint Protocol Support機能。AlfrescoがMicrosoft SharePointのフリをして、Alfresco上にあるオフィス系文書を直接MS Officeで開いたりAlfrescoに書き戻したりすることができる。不要であればチェックを外す。
    • Web Quick Start : Webコンテンツ管理モジュール。必要ならチェックを付ける。
    • Googleドキュメントの統合 : Google Docs連携モジュール。Alfresco上にあるコンテンツをGoogle Docsで開いたりAlfrescoに書き戻したりすることができる。不要であればチェックを外す。

    次に、インストールフォルダを選択して「次へ」をクリックします。


    データベースのポート番号を指定します。PostgreSQLを選択していた場合はデフォルトの5432番でOKです。


    Tomcatのポート設定を行います。Tomcatの前面にApache等のWebサーバを立てる場合はそのドメイン名を入力します。Tomcatの各ポートはデフォルトのままでよいと思いますが、Tomcatで直接80番にホストしたいとか、他のTomcatサーバと競合する等の場合はポート番号を変更します。日本語表示にするとAJPポートが下に切れてしまうのはAlfrescoの伝統です。というのは冗談で、デフォルトで8009番と入力されていて、もちろん変更することも可能です。


    続いて、LibreOfficeのポート番号を指定します。他のサービスとポートが競合しない限り、デフォルト設定のままでよいと思います。


    次に、FTPポートを指定します。デフォルトでAlfrescoサーバにFTPアクセスすることができ、そのポート番号を指定します。このFTPサーバ機能は、スキャナ等との連携や、初期データ登録、Windows Explorerを使ったAlfrescoへのアクセスなどに利用することができます。


    管理者アカウントのパスワードを入力します。デフォルトの管理者ユーザ名はadminです名前です。


    最後にWindowsサービスとして登録する際のスタートアップの種類を選択します。自動起動にしたい場合は「自動」を選択します。


    以上で設定は終わりです。「次へ」をクリックするとインストールが始まります。


    インストールが終わると以下のようなダイアログが表示されます。「Alfresco Communityを起動する」にチェックが入っていると、「終了」をクリックした後にAlfrescoサービスが開始されます。なお、Windowsの場合はAlfrescoは以下の2サービスからなっています。
    • alfrescoPostgreSQL : PostgreSQL(RDBMS)のサービス 
    • alfrescoTomcat : AlfrescoをホストするTomcatのサービス


    Alfrescoにアクセスしてみよう


    Alfrescoが起動したら、ブラウザで http://localhost:8080/share/ にアクセスしてみましょう。以下のダイアログが表示されたら、ユーザー名adminと先ほど設定したパスワードを入力します。


    正常にインストールされていれば、ログインに成功して以下のような画面が表示されるはずです。


    これでAlfrescoを利用する準備が整いました。

    うまく動かない場合は…


    うまく起動しない場合は以下の内容を確認してみてください。
    1. Alfresco起動設定の確認。Windowsの場合は <alfresco_dir>/tomcat/bin/alfrescoTomcatw.exe でJVMオプション等を確認/設定することができます。

    2.  ログの確認。以下のようなログがあります。
      • <alfresco_dir>/alfresco.log : Alfrescoアプリケーション(コアリポジトリ)ログ
      • <alfresco_dir>/share.log : Shareアプリケーション(UIアプリ)ログ
      • <alfresco_dir>/solr.log : Solrアプリケーション(検索エンジン)ログ
      • <alfresco_dir>/tomcat/logs/alfrescotomcat-stderr.log : Tomcat標準エラー出力ログ
      • <alfresco_dir>/tomcat/logs/alfrescotomcat-stdout.log : Tomcat標準出力ログ
      • <alfresco_dir>/tomcat/logs/catalina.log : Tomcatログ
      • <alfresco_dir>/tomcat/logs/localhost_access_log.txt : アクセスログ

    まとめ


    今回はAlfresco Community Edition 5.1のインストーラインストールを紹介しました。インストーラを使うと必要なモジュールのインストールと設定がとても簡単にできます。実際に利用する環境を構築するためには、要件に合わせた更なる設定とパフォーマンスチューニング等が必要になりますが、お試しで軽く使ってみようという程度であればインストーラでインストールしたもので十分かと思います。是非みなさんも試してみてください。

    なお、Alfresco Community Edition 5.1の新機能についてはAlfresco勉強会での発表がありましたのでこちらの記事が参考になります。後ほどこのブログでも紹介したいと思います。

    Liferay Portal 7 リリース!

    $
    0
    0
    こんにちは。ナクラです。
    先日のことですが、ついにとうとう全世界が待ちわびていた(?)Liferayの新バージョン
    Liferay Portal 7CE GA1 がリリースされました!

    前回のマイナーバージョンアップLiferay Portal 6.2.3が2015年4月だったことを考えると
    ほぼ丸1年、またLiferay Portal6.0のリリースは2010年3月だったので、そこから数えるとなんと6年ぶり(!)のメジャーバージョンアップとなります。

    詳しいことはこの記事に書かれていますが、
    新機能について、読めない英語を必死で読んで自分なりに簡単にまとめておきます。

    Java8に対応

    • 併せてTomcatも8に対応

    内部のモジュール化

    • OSGiプラットフォーム対応

    新しいフォーム作成画面

    • フォームのフィールドを設定するときに、複数列にしたり、フォーム画面を複数ページにまたがるように作成できる

    コンテンツ編集機能の強化

    • Liferay社謹製の新しいWYSIWYGエディタ(Alloy Editor)
    • Webコンテンツをフォルダ分けできるようになった
    • Webコンテンツのバージョン間の差分表示
    • テンプレートやコンテンツのサイト間共有 

    コンテンツへの地図情報の付加

    • Webコンテンツ、データリスト、文書ファイルに地図情報を付加できるようにフィールドを追加できる

    モダンなデザイン

    • 最近はやりのデザイン対応したサイトを作れる 

    ブログ、フォーラム、Wikiの改良

    ステージング機能の改善 

    • メニューから簡単にステージング設定ができる
    • 複雑なパブリッシュシナリオに対応

    画像ファイルの選択画面の改善

    • アップロードしたファイルの画像を見て選択できる

    ページロードの速度アップ 

    • 全体リフレッシュを避けて、部分描画でその部分だけをロード

    既存のアプリケーションの見映えの改良

    • Bootstrapを改良したLexiconフレームワークで見映えをよくした

    ナビゲーションメニューの改良

    • Dockbarにあったメニューが画面横に移動

    インフラの改良

    • 検索エンジンをLuceneからElasticSearchに置き換え
    • JAX-RS対応
    • デバイスマネージャ
    • 新コンフィグAPI
    • 新アップグレードフレームワーク

    まだまだ、いろいろと改良点はある(1750も!)みたいですが
    今後も機能追加をやっていくようですね。

    今回まとめた新機能についてはまた個別に詳しく紹介できればと思っています。

    最後に、新しくなったLiferayのトップ画面を紹介しておきます。
    すごくカッコ良くなってますね!





    Viewing all 244 articles
    Browse latest View live