2016-06-27

Linux Standard Base (LSB) とはなにか (2)

LSB, Linux Standard Base とは、Linux の各ディストリビューションが備えるべき最低限の機能のセットを定めた標準仕様のことです [1]。以前 LSB について判りやすく取りまとめようと、「〜 はじめに」と称してほんのさわりを書き出したのですが、そのままなかば放置されてしまっていました [2]

Wikipedia に説明されていることは判るのですが [3]、具体的にまとめていこうと LSB のサイトを眺めても、どこから手を付けていけばよいかアイデアが出てきませんでした [4]。しかし、参考サイト [5] からアプリケーションが LSB に準拠しているかどうかをチェックするツール (lsb-app-checker) がダウンロードできるようになっているので、まずはどんなものか使ってみることにしました。LSB の specification(規格)のドキュメントも同じサイトからダウンロードできますが、おいおい見てみることにしましょう。

使用した環境は以下のとおりです。

  • PC: ASUS X200MA-B-BLUE
  • CPU: Celeron N2830
  • DRAM: 4GB
  • HDD: 500GB
  • OS: Fedora 24 (x86_64)

まず、参考サイト [5] から、sb-app-checker-local-5.0.0-3.x86_64.tar.gz をダウンロードして、展開します。

$ tar xvf lsb-app-checker-local-5.0.0-3.x86_64.tar.gz
./
./lsb-app-checker/
./lsb-app-checker/dbdata/
./lsb-app-checker/dbdata/IIndex_x86-64.gz
...
...

展開したファイルから lsb-app-checker/README を読むと、このプログラムを実行するには Perl が、RPM パッケージファイルをテストするには rpm2cpio が必要だとあります。dnf search コマンドで調べると、perl-Archive-RPM.noarch がヒットします。RPM パッケージファイルのテストがいつ必要になるかわからないので、とりあえずインストールしておきます。

$ dnf search rpm2cpio
google-chrome                                   1.5 kB/s | 3.4 kB     00:02    
Fedora 24 - x86_64                              7.0 MB/s |  47 MB     00:06    
Fedora 24 - x86_64 - Updates                    6.1 MB/s | 5.3 MB     00:00    
メタデータの期限切れの確認は、0:00:04 時間前の Sun Jun 26 16:48:25 2016 に実施しました。
================================ 一致: rpm2cpio ================================
perl-Archive-RPM.noarch : Work with a RPM

root ユーザになってインストールします。

$ su
パスワード:
# dnf install perl-Archive-RPM.noarch
メタデータの期限切れの確認は、0:26:53 時間前の Sun Jun 26 16:23:22 2016 に実施しました。
依存性が解決されました。
================================================================================
 Package                                  アーキテクチャ
                                                 バージョン        リポジトリ
                                                                           容量
================================================================================
インストール:
 perl-Archive-RPM                         noarch 0.07-12.fc24      fedora  24 k
 perl-B-Hooks-EndOfScope                  noarch 0.20-1.fc24       fedora  40 k
 perl-Carp-Clan                           noarch 6.04-21.fc24      fedora  30 k
...
...
 perl-namespace-clean                     noarch 0.26-2.fc24       fedora  35 k
 perltidy                                 noarch 20160302-1.fc24   fedora 400 k

トランザクションの要約
================================================================================
インストール  46 パッケージ

総ダウンロード容量: 3.1 M
インストールされる容量: 7.5 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
(1/46): perl-Archive-RPM-0.07-12.fc24.noarch.rp 232 kB/s |  24 kB     00:00    
(2/46): perl-MooseX-AttributeHelpers-0.25-1.fc2 899 kB/s | 131 kB     00:00    
...
...

インストール済み:
  perl-Archive-RPM.noarch 0.07-12.fc24                                          
  perl-B-Hooks-EndOfScope.noarch 0.20-1.fc24                                    
...
...

完了しました!
#

ディレクトリを bin へ移し、app-checker-start.pl を実行してみます。このツールは Web アプリケーションで、ポートを指定しないで実行すると使用可能なポートを選択してくれるようです。この例では 8889 が選択されます。

# cd ./lsb-app-checker/bin/
# ls
app-checker-start.pl  lsbappchk        lsbappchk.pl  lsbpkgchk
app-checker-stop.pl   lsbappchk-sh.pl  lsbappchk.py
# ./app-checker-start.pl
    The port '8889' will be used by the AppChecker web-UI server.
    If you want to change this, run ./app-checker-start.pl 

    Server started. Log file location:
    /home/bitwalk/ダウンロード/lsb-app-checker/log/app-checker-server.log.8889

    The start page should be opened in a browser shortly.
    If it doesn't open, you can load it at http://notepc:8889/

デフォルトのインターネットブラウザである Firefox が起動し、http://127.0.0.1:8889/ が表示されます。

Application Check のリンクをクリックします。

例として、Name のエントリに、'Fedora 24 bin' などと入力して、'Select Application Components...' のボタンをクリックします。

例として /opt 選択して 'finish' ボタンをクリックします。

'Run the Test' ボタンをクリックして待つこと…、残念ながら、この環境は貧弱すぎるのか、固まってしまって、更にしばらくどうしようか思案しているとログアウトしてしまいました。

繰り返すこと数回。ようやくこんな画面が出てきました。

この画面から LSB 5.0 に準拠している Linux ディストリビューションはまだ存在しない、ということだけは判りました。

とにかく、テストを実行すると負荷が掛かり過ぎるようです。もう少しパワフルなテスト環境を用意することを検討した方が良さそうです。次回は LSB について、もっと真面目にまとめてみます。

参考サイト

  1. LSBとは|Linux Standard Base - 意味/定義 : IT用語辞典
  2. bitWalk's: Linux Standard Base (LSB) とはなにか 〜 はじめに (2016/01/02)
  3. Linux Standard Base - Wikipedia
  4. Linux Standard Base (LSB)
  5. Download

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-06-23

【備忘録】PlotCanvas と横線 ─ wxPython

JavaFX で作っていたプログラムで、リソース不足 (OutOfMemoryError) に悩まされているため、結局同じことになるかもしれないと思いつつも、軽快に GUI が動く wxPython にプログラムを移植しています。python のプログラミングに不慣れなためハマった個所を備忘録としてブログ用のサンプルに書き換えて残しています。

今回は PlotCanvas に横線を引くサンプルです。

もともと JavaFX で作っていたプログラムで抱えていたリソース不足の一因は、チャート (LineChart) にありました。機能が単純なわりに、データポイントがインスタンスになるため結構なリソースを消費します。本ブログでは、JavaFX の LineChart についてはズーム機能の追加を重点的に紹介していました。実際はそれだけでなく、細かな機能を追加していましたが、紹介しきれていません。横線(あるいは縦線)を引く、というような単純な機能もその一つで LineChart に追加していましたが、wxPython の PlotCanvas でも、横線を引くのに、結局、機能の追加に迫られました。

そんなわけで、品質管理に使うようなトレンドチャートにリミット線を引く場合、というサンプルにして紹介します。

動作環境は次の通りです。

  • OS: Fedora 24 (x86_64)
  • python-2.7.11-5.fc24.x86_64
  • wxPython-3.0.2.0-10.fc24.x86_64
  • IDE: eclipse-pydev-5.0.0-1.fc24.x86_64
# -*- coding: utf-8 -*- 
import wx
import wx.lib.plot as plot

class XbarChart(plot.PlotCanvas):
    def __init__(self, parent, data, LSL, USL, gTitle, xLabel, yLabel):
        plot.PlotCanvas.__init__(self, parent, wx.ID_ANY, style=wx.SIMPLE_BORDER)
        self.SetFont(wx.Font(11, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
        self.SetFontSizeAxis(11)

        self.LSL = LSL
        self.USL = USL

        line = plot.PolyLine(data, colour='blue', width=1)
        marker = plot.PolyMarker(data, colour='blue', marker="circle")

        gc = plot.PlotGraphics([line, marker], gTitle, xLabel, yLabel)
        self.Draw(gc, xAxis=(0, len(data) + 1), yAxis=(4, 8))

    def _drawAxes(self, dc, p1, p2, scale, shift, xticks, yticks):
        super(XbarChart, self)._drawAxes(dc, p1, p2, scale, shift, xticks, yticks)
        
        # LSL, USL
        penWidth = self.printerScale * self._pointSize[0]
        dc.SetPen(wx.Pen(wx.Colour(255, 0, 0), penWidth))

        x1 = scale[0] * p1[0] + shift[0]
        x2 = scale[0] * p2[0] + shift[0]

        for spec in [self.LSL, self.USL]:
            y = scale[1] * spec + shift[1]
            dc.DrawLine(x1, y, x2, y)

class MyFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, wx.ID_ANY, "SPC", size=(600, 300))

        # X bar Chart
        data = [(1, 6.2), (2, 5.3), (3, 5.4), (4, 6.5), (5, 4.8),
                (6, 6.7), (7, 5.3), (8, 6.1), (9., 5.7), (10, 4.9),
                (11, 5.1), (12, 5.6), (13, 5.2), (14, 6.5)]
        lsl = 5.0
        usl = 7.0
        chart = XbarChart(self, data, lsl, usl, "X-bar Chart", "Lot", "Measurement")

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(chart, proportion=1, flag=wx.EXPAND, border=0)
        self.SetSizer(sizer)
        self.Layout()

class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None)
        frame.Show(True)
        return True

if __name__ == "__main__":
    app = MyApp(False)
    app.MainLoop()
    

実行例を以下に示しました。

 

参考サイト

  1. wxWidgets/wxPython: This is the repository for "Classic"

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-06-22

祝 Fedora 24 リリース

Fedora 24 がようやくリリース (GA, General Availability) になりました。"Workstation", "Server", "Cloud"の 3 つの版(フレーバー)が用意されています。6/22 の時点で日本語のサイトではまだリンクが修正されていないようです。iso ファイルのダウンロードは以下の英語サイトからどうぞ。

関連サイト

  1. 2016年6月22日 4度の延期を乗り越えて… Linux 4.5+GNOME 3.20の「Fedora 24」が正式リリース:Linux Daily Topics|gihyo.jp … 技術評論社 (2016/6/22)

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-06-19

【備忘録】Alfresco の Community 版を Linux で試す (2)

Alfresco は、企業レベルの規模のコンテンツマネジメントシステムで、Microsoft Windows と Unix 系オペレーティングシステムで動作するオープンソースのシステムです。高度なモジュール性とスケーラブルな性能を特徴として、コンテンツ・リポジトリ、ポータルサイトフレームワーク、CIFS インタフェース、ウェブアプリケーションを仮想化する Web コンテンツ管理機能、Apache Tomcat による統計サイト、Apache Lucene による索引、JBoss jBPM ワークフローといった機能があります。Alfresco は Java テクノロジを使って開発されています [1]

以前、当ブログで Alfresco を Linux にインストールする事例を紹介しましたが、月日が経っていますので、あらためて現バージョンを紹介します [2]

インストール (Linux)

ここでは、Alfresco の Community Edition のインストールを説明します。

使用した環境は以下の通りです。

  • PC: ASUS X200MA-B-BLUE
  • CPU: Celeron N2830
  • DRAM: 4GB
  • HDD: 500GB
  • OS: Fedora 24 (x86_64, Beta)

まずは、インストーラをダウンロードします。以下のサイトで必要事項を入力して「DOWNLOAD NOW」をクリックするとダウンロードの画面に進みますので、General Release 201605 以下の Linux をクリックして Linux 版のインストーラをダウンロードします。

GNOME 端末などのターミナル・エミュレータを起動し、カレントディレクトリをダウンロードした場所へ移動し、ダウンロードしたファイル (alfresco-community-installer-201605-linux-x64.bin) に実行権限を与えて起動します。

$ chmod +x alfresco-community-installer-201605-linux-x64.bin
$ ./alfresco-community-installer-201605-linux-x64.bin

インストール時の言語を選択するダイアログが表示されますので、日本語を選んで OK ボタンをクリックします。

インストーラが起動しますので、表示に従ってインストールを進めます。

搭載しているメモリが 4GB では足りないという警告がでますが、今回はインストールとちょっとした動作確認をするだけなので、構わず進みます。

インストールが終了し、Readme が表示され、Alfresco を起動します。少し時間がかかります。

waiting for server to start..... done
server started
/home/bitwalk/alfresco-community/postgresql/scripts/ctl.sh : postgresql  started at port 5432
Using CATALINA_BASE:   /home/bitwalk/alfresco-community/tomcat
Using CATALINA_HOME:   /home/bitwalk/alfresco-community/tomcat
Using CATALINA_TMPDIR: /home/bitwalk/alfresco-community/tomcat/temp
Using JRE_HOME:        /home/bitwalk/alfresco-community/java
Using CLASSPATH:       /home/bitwalk/alfresco-community/tomcat/bin/bootstrap.jar:/home/bitwalk/alfresco-community/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /home/bitwalk/alfresco-community/tomcat/temp/catalina.pid
Tomcat started.
/home/bitwalk/alfresco-community/tomcat/scripts/ctl.sh : tomcat started

Alfresco が起動されると、Alfresco のログイン画面がブラウザに表示されます。ブラウザのオートコンプリート機能のせいでしょうか、bitwalk のアカウントとパスワードが既に入力されています。いや、ひょっとしてアカウントが設定されているのかも、とログインをクリックしてみましたが、やはりログイン出来ませんでした。

気を取り直して、admin アカウントで、インストール時に設定したパスワードを入力してログインすると無事 Alfresco のダッシュボードが表示されました。

Alfresco の詳しい使い方については、他の紹介記事を参照してください [4]

二回目以降の起動

インストール後はサーバーが起動していますが、OS を再起動した場合、デフォルトの状態ではサービスは自動起動されません。マニュアルでサービスを起動するやり方を下記にまとめました。

GNOME 端末などのターミナル・エミュレータを起動し、カレントディレクトリを Alfresco をインストールしたディレクトリ (alfresco-community) へ移動し、./alfresco.sh start と入力します。

$ ls
Chromium               alfresco-community  rpmbuild      テンプレート  音楽
Desktop                data                tmp           デスクトップ  画像
JavaFXSceneBuilder2.0  glassfish-4.1.1     work          ドキュメント  公開
NetBeansProjects       lib                 workspace     ビデオ
R                      netbeans-8.1        ダウンロード  フォント
$ cd alfresco-community
$ ls
README.txt    amps        libreoffice            properties.ini  tomcat
alf_data      amps_share  licenses               scripts         uninstall
alfresco.ico  bin         manager-linux-x64.run  share.log       uninstall.dat
alfresco.log  common      modules                solr.log
alfresco.sh   java        postgresql             solr4

$ ./alfresco.sh
usage: ./alfresco.sh help
       ./alfresco.sh (start|stop|restart|status)
       ./alfresco.sh (start|stop|restart|status) postgresql
       ./alfresco.sh (start|stop|restart|status) tomcat

help       - this screen
start      - start the service(s)
stop       - stop  the service(s)
restart    - restart or start the service(s)
status     - show the status of the service(s)

$ ./alfresco.sh status
tomcat not running
postgresql not running
$ ./alfresco.sh start
pg_ctl.bin: another server might be running; trying to start server anyway
waiting for server to start..... done
server started
/home/bitwalk/alfresco-community/postgresql/scripts/ctl.sh : postgresql  started at port 5432
Using CATALINA_BASE:   /home/bitwalk/alfresco-community/tomcat
Using CATALINA_HOME:   /home/bitwalk/alfresco-community/tomcat
Using CATALINA_TMPDIR: /home/bitwalk/alfresco-community/tomcat/temp
Using JRE_HOME:        /home/bitwalk/alfresco-community/java
Using CLASSPATH:       /home/bitwalk/alfresco-community/tomcat/bin/bootstrap.jar:/home/bitwalk/alfresco-community/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /home/bitwalk/alfresco-community/tomcat/temp/catalina.pid
Tomcat started.
/home/bitwalk/alfresco-community/tomcat/scripts/ctl.sh : tomcat started
$ 

GUI で、PostgreSQL と Tomcat を起動/停止する場合は、manager-linux-x64.run を起動します。

$ ./manager-linux-x64.run

「Start All」ボタンをクリックすると関連するサービスが起動されます。

インターネット・ブラウザを起動後、http://localhost:8080/share/page/ へアクセスして、Alfresco へログインします。

 

コンテンツマネジメントシステム

コンテンツマネジメントシステム (content management system, CMS) とは、ウェブコンテンツを構成するテキストや画像などのデジタルコンテンツを統合・体系的に管理し、配信など必要な処理を行うシステムの総称です。

現在勤務している外資系企業では、Microsoft Sharepoint が利用できて、CMS の役割も担っています。Sharepoint の機能に大きな不満があるわけではありませんが、もし、自分が企業のインフラを運営するとすれば、お金をかけずに CMS を構築できる Alfresco は魅力的な選択肢になります。高い機能を求めなければ、お手頃の価格になった PC を使って、個人のネットワーク環境で CMS を常時稼働させるのも悪くはありません。ネットワークドライブに保存しっぱなしになっているファイルも CMS に移せば、ハードディスクの肥やしにせずにもっと有効に利用する道が開けそうです。やはり個人環境でも真面目に CMS の導入を検討したほうが良いのかもしれません。

関連サイト

  1. Alfresco - Wikipedia
  2. bitWalk's: 【備忘録】Alfresco の Community 版を Linux で試す (2014/6/9)
  3. Alfresco - ECMとBPM向けソフトウェア | Alfresco (日本語)
  4. 脱ファイルサーバ!!個人でも会社でも使えるOSSのドキュメント管理システム!その名も「Alfresco」! - Qiita

 

ブログランキング・にほんブログ村へ
にほんブログ村

2016-06-18

「Bluetooth 5」正式発表

Bluetooth は、2.45GHz 帯を使ったデジタル機器用の近距離無線通信規格の 1 つで、無線接続の状態を意識せずに常時接続したままでの使用に適しています。そのため、ノートパソコン等のマウス、キーボードをはじめ、スマートフォン、タブレットでの文字情報や音声情報といった比較的低速度のデジタル情報の無線通信を行う用途に採用されています。IEEE での規格名は、IEEE 802.15.1 です。現規格の最新版は Bluetooth 4.2 です [1]

iPhone で Bluetooth が利用できることを知っていましたが、音楽を聞く場合はイヤフォンを直接ジャックに挿しての使用で十分だったので、わざわざ Bluetooth を使って無線にしたいという欲求はありませんでした。

ところが、格安 PC (HP Stream 11-r016TU) を買って USB ポートの使用を節約するために、はじめて Bluetooth に対応したマウスを使うようになり、Bluetooth に対する興味を人並みに持つようになりました。それほどのニーズがあるわけでもないのに、家電量販店で Bluetooth レシーバーを衝動買いして、前述の PC につなげて音楽を聞きながら喜々としています。

さて、そんな Bluetooth の次世代の規格が発表されました。

IoT の普及に伴う Bluetooth 採用を狙って、通信速度の向上、通信範囲の拡大を図っています。

ちなみに、日本国内で Bluetooth 機器を利用するには、技術基準適合認定も受けたものでなければなりません [2]

関連サイト

  1. Bluetooth - Wikipedia
  2. 技適マーク - Wikipedia

 

ブログランキング・にほんブログ村へ
にほんブログ村