2016-11-28

PlayOnLinux を試す

PlayOnLinux は Linux 上で Wine を使って Windows のゲームなどのインストールを簡単にするためのアプリケーションです [1]

Wine は、Windows 向けのアプリケーションを Linux 上で動作させるため、オープンソースで Windows API を実装した Windows 互換レイヤーです [2]

Linux 上で Windows のゲームをしたいとか、どうしても Windows のアプリケーションを Linux 上で動作させたいといった強い動機がなかったので、Wine に触れることが無くなってしまっていたのですが、Fedora でも PlayOnLinux のパッケージを利用できることを知ったので試してみました。なお PlayOnLinux については、参考サイト [3] に詳しい紹介がされています。

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

  • OS: Fedora 25 (x86_64)
  • Wine: wine-1.9.22-1.fc25.x86_64 と関連パッケージ
  • PlayOnLinux: playonlinux-4.2.10-9.fc25.x86_64

PlayOnLinux のインストール

端末エミュレータを起動して、root 権限で次のようにタイプしてインストールします。私の環境の場合、既にインストールされているパッケージのせいでインストールできなかったので、パッケージの依存性を解決するため、--allowerasing オプションを付加しました。

$ su
パスワード:
# dnf install --allowerasing playonlinux
Failed to synchronize cache for repo 'Dropbox', 無効化。
メタデータの期限切れの確認は、1:27:39 時間前の Sun Nov 27 18:01:50 2016 に実施しました。
依存性が解決されました。
================================================================================
 Package                  アーキテクチャ
                                  バージョン                     リポジトリ
                                                                           容量
================================================================================
インストール:
 ImageMagick              x86_64  6.9.3.0-3.fc25                 fedora   170 k
 ImageMagick-libs         x86_64  6.9.3.0-3.fc25                 fedora   2.2 M
 bzip2-libs               i686    1.0.6-20.fc24                  fedora    46 k
  ...
  ...
 playonlinux              x86_64  4.2.10-9.fc25                  fedora   2.3 M
  ...
  ...
(途中省略)
  ...
  ...
ダウングレード済み:
  gnutls.x86_64 3.5.5-2.fc25             gnutls-c++.x86_64 3.5.5-2.fc25        
  gnutls-dane.x86_64 3.5.5-2.fc25        gnutls-devel.x86_64 3.5.5-2.fc25      
  gnutls-utils.x86_64 3.5.5-2.fc25      

完了しました!
#

PlayOnLinux の起動

GNOME のアクティビティ メニューから「アプリケーションを表示する」を選んで、PlayOnLinux のアイコンをクリックして起動できますが、悲しいかな UTF−8 化されていてもやっぱり日本語環境には優しくなくて、インストール可能なアプリケーションの一覧の画面までたどり着けませんでした。

そこで、端末エミュレータ上で以下のようにデフォルトロケール export LANG=C を設定して PlayOnLinux を起動しました。

# exit
exit
$ export LANG=C;playonlinux
Looking for python... 2.7.12 - wxversion(s): 3.0-gtk3
selected
[main] Message: PlayOnLinux (4.2.10) is starting
[clean_tmp] Message: Cleaning temp directory
[Check_OpenGL] Message: 64bits direct rendering is enabled
[Check_OpenGL] Message: 64bits direct rendering is enabled
[POL_System_CheckFS] Message: Checking filesystem for /home/bitwalk/.PlayOnLinux/
[main] Message: Filesystem is compatible
[install_plugins] Message: Checking plugin: Capture...
[install_plugins] Message: Checking plugin: ScreenCap...
  ...
  ...
  ...

起動したら Install ボタンをクリックします。

しばらく待つと、インストール可能なアプリケーションの一覧が表示されます。

Windows アプリケーションのインストール

ここでは Development で Notepad Plus Plus (Notepad++) をインストールしてみます。Notepad Plus Plus を選択し、右下の Install ボタンをクリックします。

すると、PlayOnLinux Wizard なるダイアログ画面が表示されるので、Next ボタンを押して次へ進みます。

三番目のダイアログ画面で PlayOnLinux Installation Wizard になるのですが、画面上の文字列が溢れているためか、下の Next や Cancel のボタンが見えなくなってしまっています。

しかし、前のダイアログ画面で Next ボタンがあった辺りに、このダイアログ画面でもマウスのポインタを持っていってクリックすると次の画面に進みます。

次のダイアログ画面で Download the program を選択して Next ボタンをクリックすると、インストーラのダウンロードが始まります。

NotePad++ のインストーラが起動しますので、ダイアログに従ってインストールを進めます。

インストールが終了して(Plugin Manager の設定後)Notepad++ が起動します。

Windows のアプリケーションをインストールしてしまえば、アクティビティから「アプリケーションを表示する」を選んで、PlayOnLinux のアイコンをクリックして起動しても使い物になります。インストールした Windows のアプリケーションは PlayOnLinux の画面から起動することができるからです。

まとめ

マルチバイトの言語環境固有の問題なのでしょうか、PlayOnLinux を利用するにはちょっと工夫が必要になります。それでも Linux 上で利用したい Windows のアプリケーションがあり、PlayOnLinux のリストに収録されていれば、インストール/アンインストールの管理が簡単な PlayOnLinux を利用する価値はあるように思います。

参考サイト

  1. Home - PlayOnLinux - Run your Windows applications on Linux easily!
  2. WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X
  3. WindowsのゲームをLinuxで楽しむ PlayOnLinux | OSDN Magazine [2008-3-13]

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

2016-11-27

Fedora 25 リリース

Fedora 25 が、米国時間 11 月 22 日にリリースされました。遅くなってしまいましたが、今回のリリースの特徴をまとめました。Fedora 25 のラインナップには,デスクトップ向けの Fedora Workstation、サーバ向けの Fedora Server、そしてクラウドに最適化した Fedora Atomic がありますが、ここではデスクトップ向けの変更を中心にまとめています。

デスクトップで変更を実感できるものは、GNOME の新機能がほとんどになりますが、今後、新機能を確認して特筆すべきものについて個々に紹介していきたいと考えています。

ディスプレイサーバ
GDM (GNOME Display Manager) が、X11 の代わりに Wayland をデフォルトで使用するようになりました。
Gnome 3.22: Karlsruhe [5]
GNOME 3.22 が採用され、以下の機能が追加されました。
  • Flatpak: アプリケーションが必要とするコマンドやライブラリを SandBox に含めて提供するフレームワーク
  • 複数のファイル名を一度に変更する
  • 写真をソーシャルメディアと共有
  • 「ソフトウェア」アプリケーション(パッケージのインストール、更新などを管理する GUI ツール)の改善
  • ファイルアプリケーション Files (nautilus) の改善
  • Files (nautilus) でバッチファイルのリネーム [6]
  • キーボード設定のリデザイン
  • dconf エディタのリデザイン
  • その他多数…
  • Firefox 49
    Firefox 49 が採用されています [7]
    インプットメソッド
    ibus-libpinyin を使用しているユーザーは Ctl + Shift + d で、記憶されている過去に入力されたフレーズが消去されます。
    新しい国際化(多言語化)パッケージ
    フォント
    • adobe-source-serif-pro-fonts
    • oflb-coval-fonts
    • astigmatic-grand-hotel-fonts
    • typetype-molot-fonts
    ライブラリ
    • sharpfont
    • libXfont2
    • nodejs-os-locale
    • nodejs-y18n
    IBus Typing Booster 多言語サポート
    IBus Emoji(絵文字)入力 [8]

    参考サイト

    1. Fedora 25 Release Notes (CC BY-SA 3.0)
    2. Fedora 25がリリース ―GNOME 3.22をサポート,Waylandがデフォルトに:Linux Daily Topics|gihyo.jp … 技術評論社 [2016-11-24]
    3. Waylandがデフォルトとなった「Fedora 25」リリース | OSDN Magazine [2016-11-24]
    4. 「Fedora 25」 正式リリース | Think IT(シンクイット) [2016-11-25]
    5. GNOME 3.22インストール | 主な追加機能・変更点 | 普段使いのArch Linux [2016-10-16]
    6. Nautilus 3.22 Adds Batch File Renaming, Native Compression Features - OMG! Ubuntu! [2016-08-31]
    7. Firefox 49.0 リリースノート [2016-09-20]
    8. bitWalk's: 今度の Fedora 25 では絵文字が使えるらしい [2016-09-30]

     

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

    2016-11-20

    Python と SQLite3

    Python では、バージョン 2.5 から標準ライブラリに含まれる sqlite3 モジュールで SQLite のデータベースを利用できるようになっています [1]。Python から SQL 文を実行することで、プログラム的には非常に柔軟にデータベースを操作することができるようになります。

    以前、本ブログで sqlite3 のコマンドを紹介しましたが [2]、今回は Python から SQLite のデータベースを操作する例を紹介します。

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

    • OS: Fedora 25 beta (x86_64)
    • Python: python-2.7.12-7.fc25.x86_64

    ここで紹介する例は、DBOnlineSQLite入門 › データの追加と削除 › データの更新 [3] で使われている例をベースにして、Python から操作したかのように焼き直しています。あらかじめご了承ください。

    データベースの作成とデータの追加

    データベースの作成とデータを追加する例を示しました。

    # -*- coding: utf-8 -*-
    import os
    import sqlite3
    
    db_name = "test01.db"
    db_file = os.path.join(os.environ['HOME'], "tmp", db_name)
    conn = sqlite3.connect(db_file)
    cur = conn.cursor()
    
    sql = "create table staff(id integer, name text, unit text, flag text);"
    cur.execute(sql)
    
    sql = "insert into staff(id, name, unit, flag) values (?, ?, ?, ?);"
    users = [
        (1, 'Satoh', 'Sales', 'Yes'),
        (2, 'Mori', 'Office', 'No'),
        (3, 'Yamada', 'Office', 'Yes'),
        (4, 'Asada', 'Tech', 'Yes'),
        (5, 'Noguchi', 'Sales', 'No')
    ]
    cur.executemany(sql, users)
    conn.commit()
    
    sql = "select * from staff;"
    for row in cur.execute(sql):
        print(row)
    
    conn.close()
    

    実行例を示します。

    (1, u'Satoh', u'Sales', u'Yes')
    (2, u'Mori', u'Office', u'No')
    (3, u'Yamada', u'Office', u'Yes')
    (4, u'Asada', u'Tech', u'Yes')
    (5, u'Noguchi', u'Sales', u'No')
    

    データの更新

    これは特定のレコードのデータを更新する例です。レコードを決めて更新するのではつまらないので、name フィールドが 'Yamada' であるレコードを探し、'Yamaoka' に変更するようにしました。しかし、合致するレコードは(あるとしても)一つしかないという前提でコーディングしています。

    # -*- coding: utf-8 -*-
    import os
    import sqlite3
    
    db_name = "test01.db"
    db_file = os.path.join(os.environ['HOME'], "tmp", db_name)
    conn = sqlite3.connect(db_file)
    cur = conn.cursor()
    
    user = ('Yamada',)
    cur.execute('select * from staff where name = ?', user)
    result = cur.fetchone()
    
    if isinstance(result, tuple):
        sql = "update staff set name = ? where id = ?;"
        user_swap = ['Yamaoka', result[0]]
        cur.execute(sql, user_swap)
        conn.commit()
    
        sql = "select * from staff;"
        for row in cur.execute(sql):
            print(row)
    else:
        print result
    
    conn.close()
    

    実行例を示します。

    (1, u'Satoh', u'Sales', u'Yes')
    (2, u'Mori', u'Office', u'No')
    (3, u'Yamaoka', u'Office', u'Yes')
    (4, u'Asada', u'Tech', u'Yes')
    (5, u'Noguchi', u'Sales', u'No')
    

    Python の sqlite3 モジュールの使い方については、参考サイト [4] に判りやすくまとめられていましたので、参考にさせていただきました。

    参考サイト

    1. 11.13. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 2.7.x ドキュメント
    2. bitWalk's: sqlite3 のコマンド [2016-10-02]
    3. データの更新(UPDATE文) - SQLite入門
    4. Pythonでsqlite - Qiita [2016-05-12]

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

    2016-11-19

    RStudio が version 1.0 になっていました

    RStudio は R 用の統合開発環境 (IDE) です。ずいぶんと長い間バージョンが 0.9 台のままだったのですが、ふと RStudio のサイトを見てみると、RStudio 1.0.44 が 11/1 にリリースされていました [1]

    RStudio には Desktop 版と Server 版があり、それぞれ無料のオープンソース版と有償版が提供されています。Windows、MacOS および Linux (Ubuntu, Fedora) に対応したバイナリおよびソースがダウンロードできるようになっています [2]

    以下は Fedora 25 beta (x86_64) 上での Desktop 版 (Free) の実行例です。

    参考サイト

    1. RStudio Release Notes – RStudio
    2. Download RStudio – RStudio
    3. RStudio Adds SparklyR Support [2016-11-09]
    4. IBM, Cloudera join RStudio to create R interface to Apache Spark | Computerworld [2016-09-28]

     

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

    2016-11-13

    【備忘録】dpkg の使い方

    dpkg は Debian の .deb の拡張子を持ったパッケージをインストール、削除し、そしてパッケージの情報を得るために使われる低水準のツールです。Debian のパッケージの仕組みを理解し、ゆくゆくは自分で deb パッケージを作れるようにするには dpkg コマンドの理解は必須であると考え、コマンドの主な内容をまとめてみました。

    ところが…、いろいろなサイトを調べて見ると、いわゆる Debian の man ページに記載されていない内容があり、少々混乱しています。ことによったら Ubuntu などによる拡張があるのかもしれないと思いましたが、当の Debian 上の dpkg コマンドでも使えるアクションだったりもします。今のところ Debian 系のディストリビューションに関して未熟なためなのか、単なるバージョンの違いかどうかを特定できなかったので、ひとまず必要最低限の機能だと思われるものだけまとめてみました。

    Synopsis

    dpkg [option...] action
    

    Action

    主なアクションは以下のとおりです。

    Action説  明
    -i, --install package-file...パッケージ package-file... をインストールします。パッケージのインストールは次のステップで行われます。
    1.新しいパッケージのコントロールファイルを抽出します。
    2.異なるバージョンの同じパッケージが既にインストールされている場合は、古いパッケージの prerm スクリプトが実行されます。
    3.パッケージで指定されていれば、preinst スクリプトを実行します。
    4.新しいファイルを展開します。同時に古いファイルのバックアップもします。
    5.新しいインストールの前に異なるバージョンの同じパッケージが既にインストールされている場合は、古いパッケージの postrm スクリプトが実行されます。
    6.パッケージを設定します。詳細は --configure を参照。
    --unpack package-file...パッケージを展開します。
    --configure package...|-a|--pending展開されているパッケージ package-file... を設定します。-a あるいはパッケージ名の代わりに --pending が指定されている場合は、すべての展開されていないパッケージあるいはまだ設定されていないパッケージが設定されます。
    -r, --remove package...|-a|--pendingパッケージ package-file... をアンインストールします。-a あるいはパッケージ名の代わりに --pending が指定されている場合は、展開されていないすべてのパッケージあるいは /var/lib/dpkg/status で削除マークがつけられているものをアンインストールされます。パッケージのアンインストールは次のステップで行われます。
    1.prerm スクリプトを実行。
    2.インストールされたファイルを削除。
    3.postrm スクリプトを実行。
    -?, --help簡単なヘルプメッセージを表示します。
    --versiondkpg のバージョン情報を表示します。

    Options

    主なオプションをまとめました。

    オプション説  明
    -B, --auto-deconfigure削除するパッケージに依存しているパッケージの設定を自動的に取り消します。
    --no-act, --dry-run, --simulate実行されるべき処理をすべて行うが、いかなる変更も書き込まない。これは一切変更を行わずに、指定したアクションによって何が起こるかを確認する際に用いられます。
    -R, --recursive指定したディレクトリを再帰的に検索し、*.deb というパターンにマッチする通常ファイルすべてに処理を行います。
    -Gインストール済のパッケージのバージョンの方が新しければ、パッケージをインストールしません。
    -E, --skip-same-versionすでに同じバージョンのパッケージがインストールされている場合、パッケージをインストールしません。
    --no-debsigパッケージの署名を確認しません。

    参考サイト

    1. dpkg(1) - Linux manual page
    2. Man page of dpkg

     

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

    2016-11-12

    Debian で PowerShell を試す

    Microsoft 社がオープンソース化した PowerShell [1] の CentOS 用のパッケージを Fedora にインストールしてみましたが、PowerShell を正常に起動できませんでした [2]。それに懲りずに、今度は公開されている Ubuntu 14.04 用のパッケージを Debian にインストールしてみました。

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

    • OS: Debian 8.6 (amd64)
    • powershell_6.0.0-alpha.12-1ubuntu1.14.04.1_amd64.deb

    まだ、Debian のパッケージマネージャの詳しい使い方をおぼえておらず、ローカルに保存した deb パッケージを、依存性解決しながらインストールする方法がよくわからないのですが、dpkgapt-get を組み合わせれば出来そうでしたので、下記のようにしてみました。

    $ su
    パスワード:
    # dpkg -i powershell_6.0.0-alpha.12-1ubuntu1.14.04.1_amd64.deb
    以前に未選択のパッケージ powershell を選択しています。
    (データベースを読み込んでいます ... 現在 165544 個のファイルとディレクトリがインストールされています。)
    powershell_6.0.0-alpha.12-1ubuntu1.14.04.1_amd64.deb を展開する準備をしています ...
    powershell (6.0.0-alpha.12-1ubuntu1.14.04.1) を展開しています...
    dpkg: 依存関係の問題により powershell の設定ができません:
     powershell は以下に依存 (depends) します: libcurl3 ...しかし:
      パッケージ libcurl3:amd64 はまだインストールされていません。
     powershell は以下に依存 (depends) します: libunwind8 ...しかし:
      パッケージ libunwind8 はまだインストールされていません。
    
    dpkg: パッケージ powershell の処理中にエラーが発生しました (--install):
     依存関係の問題 - 設定を見送ります
    man-db (2.7.0.2-5) のトリガを処理しています ...
    処理中にエラーが発生しました:
     powershell
    # apt-get install powershell
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています                
    状態情報を読み取っています... 完了
    powershell はすでに最新版です。
    以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれません:
    以下のパッケージには満たせない依存関係があります:
     powershell : 依存: libcurl3 しかし、インストールされようとしていません
                  依存: libunwind8 しかし、インストールされようとしていません
    E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)。
    

    apt-get コマンドで依存するパッケージも自動的に読み込んでインストールしてくれるものと期待していましたが、そうはならなかったので、依存するパッケージも明示してインストールしてしまいます。

    # apt-get install powershell libcurl3 libunwind8
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています                
    状態情報を読み取っています... 完了
    powershell はすでに最新版です。
    以下のパッケージが新たにインストールされます:
      libcurl3 libunwind8
    アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
    1 個のパッケージが完全にインストールまたは削除されていません。
    310 kB 中 0 B のアーカイブを取得する必要があります。
    この操作後に追加で 786 kB のディスク容量が消費されます。
    続行しますか? [Y/n] y
    以前に未選択のパッケージ libcurl3:amd64 を選択しています。
    (データベースを読み込んでいます ... 現在 166042 個のファイルとディレクトリがインストールされています。)
    .../libcurl3_7.38.0-4+deb8u5_amd64.deb を展開する準備をしています ...
    libcurl3:amd64 (7.38.0-4+deb8u5) を展開しています...
    以前に未選択のパッケージ libunwind8 を選択しています。
    .../libunwind8_1.1-3.2_amd64.deb を展開する準備をしています ...
    libunwind8 (1.1-3.2) を展開しています...
    libcurl3:amd64 (7.38.0-4+deb8u5) を設定しています ...
    libunwind8 (1.1-3.2) を設定しています ...
    powershell (6.0.0-alpha.12-1ubuntu1.14.04.1) を設定しています ...
    libc-bin (2.19-18+deb8u6) のトリガを処理しています ...
    # exit
    exit
    $ 
    

    端末エミュレータを起動して powershell と入力しましたところ一応動きました。詳しいことはおいおい調べていきます。

    参考サイト

    1. MicrosoftがPowerShellをオープンソース化しLinuxやOS Xにも提供…Bash on Windowsとの差別化は? | TechCrunch Japan [2016-08-19]
    2. bitWalk's: Fedora で PowerShell を試す - 失敗 [2016-11-11]

     

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

    2016-11-11

    Fedora で PowerShell を試す - 失敗

    Windows PowerShell とは、Microsoft 社が Windows 用に開発した高機能なコマンドライン方式のシェルおよびスクリプト実行環境で、Windows 7 以降のオペレーティングシステム (OS) には標準で搭載されています。この PowerShell がオープンソース化されて他の OS 上でも試せるようになりましたので、遅ればせながら Fedora でも試してみました [1]。なお、あらかじめお断りしておきますが、今回はうまくいきませんでした。

    参考サイト [2] の下の方に、各 OS のビルド済みのパッケージをダウンロードできるリンクがあります。そこに CentOS 7 用の rpm のリンクがありますので、今回はそれを Fedora へインストールしました。

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

    • OS: Fedora 25 (64-bit, beta)
    • powershell-6.0.0_alpha.12-1.el7.centos.x86_64.rpm

    ダウンロードした PowerShell の rpm パッケージの中身を見てみると、/opt 以下にインストールされることが判ります。起動コマンドはパスが通っている /usr/binpowershell のようです。

    $ rpm -qlp powershell-6.0.0_alpha.12-1.el7.centos.x86_64.rpm
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.CSharp.dll
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.CodeAnalysis.CSharp.dll
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.CodeAnalysis.VisualBasic.dll
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.CodeAnalysis.dll
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.Management.Infrastructure.Native.dll
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.Management.Infrastructure.dll
    /opt/microsoft/powershell/6.0.0-alpha.12/Microsoft.PackageManagement.ArchiverProviders.dll
    ...
    ...
    /opt/microsoft/powershell/6.0.0-alpha.12/sosdocsunix.txt
    /usr/bin/powershell
    /usr/local/share/man/man1/powershell.1.gz
    

    root 権限になり dnf コマンドでインストールします。

    $ su
    パスワード:
    # dnf install powershell-6.0.0_alpha.12-1.el7.centos.x86_64.rpm
    メタデータの期限切れの確認は、0:50:38 時間前の Fri Nov 11 16:48:31 2016 に実施しました。
    依存性が解決されました。
    ================================================================================
     Package       アーキテクチャ
                             バージョン                       リポジトリ       容量
    ================================================================================
    インストール:
     powershell    x86_64    6.0.0_alpha.12-1.el7.centos      @commandline     39 M
     uuid          x86_64    1.6.2-34.fc25                    fedora           61 k
    
    トランザクションの要約
    ================================================================================
    インストール  2 パッケージ
    
    合計容量: 39 M
    総ダウンロード容量: 61 k
    インストールされる容量: 121 M
    これでいいですか? [y/N]: y
    パッケージをダウンロードしています:
    uuid-1.6.2-34.fc25.x86_64.rpm                   173 kB/s |  61 kB     00:00    
    --------------------------------------------------------------------------------
    合計                                             29 kB/s |  61 kB     00:02     
    トランザクションの確認を実行中...
    トランザクションの確認に成功しました。
    トランザクションのテストを実行中...
    トランザクションのテストに成功しました。
    トランザクションを実行中...
      インストール  : uuid-1.6.2-34.fc25.x86_64                                 1/2 
      インストール  : powershell-6.0.0_alpha.12-1.el7.centos.x86_64             2/2 
      検証中        : powershell-6.0.0_alpha.12-1.el7.centos.x86_64             1/2 
      検証中        : uuid-1.6.2-34.fc25.x86_64                                 2/2 
    
    インストール済み:
      powershell.x86_64 6.0.0_alpha.12-1.el7.centos    uuid.x86_64 1.6.2-34.fc25   
    
    完了しました!
    # exit
    exit
    $ 
    

    端末エミュレータを起動して powershell と入力しました。結果は、下記の通り NG でした😢。

    参考サイト [3] によると、結局のところ、Fedora 用に PowerShell のソースをビルドし直した方が良さそうです。.NET の環境を整えるか、Fedora 用の手軽なパッケージが見つかれば再挑戦してみようと思います。

    参考サイト

    1. Microsoft、「PowerShell」をオープンソース化し、LinuxとOS X版を提供 - ITmedia ニュース [2016-08-19]
    2. GitHub - PowerShell/PowerShell: PowerShell for every system!
    3. Fedora RPM · Issue #1882 · PowerShell/PowerShell · GitHub

     

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

    2016-11-08

    スクショって何?

    会社のメールに「スクショ」なる語があって、なんのことかわかりませんでした。

    Google で検索してみると「スクリーンショット」に関わる検索結果がズラズラっと出てきた。そうだったのか…。

    Wikipedia によると、

    スクリーンショット、スクリーンキャプチャ、スクリーンダンプとは、コンピュータのモニタもしくはその他の視覚出力デバイス上に表示されたものの全体または一部分を写した画像のこと。略して、スクショとも呼ばれる。

    あやうくメールを出した人に「スクショ」ってなんですかと聞いてしまうところだった。聞くは一時の恥~とは言うものの、やはり恥ずかしい。おぼえておこう。

    参考サイト

    1. スクリーンショット - Wikipedia

     

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

    2016-11-07

    OS/2 Warp の後継 ArcaOS

    OS/2(オーエス・ツー)は、DOS (MS-DOS および PC DOS) の後継として IBM とMicrosoft との共同で開発された、パーソナルコンピュータ用の 16/32 ビットのオペレーティングシステム (OS) です。

    参考サイト [1] によると、OS/2 オペレーティングシステム向けのソフトウェアやドライバ、サービスなどを開発する Arca Noae が OS/2 コミュニティイベント Warpstock 2016 にて、OS/2 Warp の正当後継となる Blue Lion こと ArcaOS のデモストレーションを公開したそうです。

    OS/2 は、ついに一度も使ったことのない OS なのですが、参考サイト [2] にあるように、性能が良いのに当時の PC 向け OS 市場の覇権争いに敗れてしまった OS だったのです。参考サイト [3] によると ArcaOS はオープンソースではなく有償の 32bit 用 OS になるようですが、netlabs にある OS/2 向けのオープンソースの資産も利用できるとのことです [4]

    今の Windows 10 が、Microsoft が切り開いた Windows NT の世界のひとつの完成形だとすると、あらためて ArcaOS を評価することで新たな PC の使い道が見えてくるかもしれません。

    参考サイト

    1. OS/2 Warpの正統後継「ArcaOS」がようやくお目見え - PC Watch [2016/11/7]
    2. OS/2 - Wikipedia
    3. 蘇る「OS/2」、新名称は「ArcaOS」に--年内リリースに向け徐々に詳細が判明 - ZDNet Japan [2016/06/01]
    4. netlabs.org - Homepage
    5. 技術再発見 - OS/2 --- Windowsのライバルだった本格的なマルチタスクOS:ITpro [2006/07/12]

     

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

    2016-11-05

    ドン・キホーテがキーボード着脱式で約 2 万円の Windows タブレットを発売

    2 万円の Windows タブレットがドン・キホーテ(ドン・キホーテプライベートブランド【情熱価格】)から 11 月 11 日に発売開始されるそうです。

    仕様の概略は Intel Atom Cherry Trail 1.44GHz クアッドコアプロセッサ、2GB RAM、32GB ROM、Micro SD カードスロット、Micro USB 端子、Micro HDMI 出力端子を搭載し、Wi-Fi b/g/n、Bluetooth v4.0 に対応、キーボードドック側には USB-A 端子が 2 つ付属、タブレットの筐体サイズは 259.5 × 179.3 × 19.52mm、質量は 580g、キーボードドックの質量は 600g とのことです。

    格安 PC に Linux をインストールすることを趣味としている自分としては、なんとも魅力的な商品です。どうしよう…、本当に悩ましいです。

    参考サイト

    1. ニュースリリース (PDF)
    2. ニュース - ドン・キホーテがキーボード着脱式で約2万円のWindowsタブレットを発売:ITpro

     

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

    2016-11-04

    【備忘録】Swing / JFileChooser のウィンドウアイコンの変更

    JavaFX が利用できるようになった Java で GUI アプリケーションを作成する場合、Swing を使うことはもう無いだろうと思っていました。しかし、その考えは甘かったようです。

    業務で手間がかかる仕事を一部スクリプト化・自動化して手間を軽減して時間も節約したいのですが、客先でインストールしたサーバでの作業であるため、利用できる環境は Java 7 だけという状況に遭遇したのです。

    Java 7 では JavaFX 2.x が利用できるはずですが…、あれっ、JavaFX 8 用に作ったプログラムをコンパイルし直してもうまく動いてくれませんでした。何か気を付けなければならなかったことがあったような気がしましたが、それを思い出せず時間もなかったので、確実に動作するように Swing で GUI 部分を組むことにしました。

    簡単なユーティリティプログラムみたいなものですが、将来的にはお客さんも使う可能性があったので、GUI デザインの妥協はできません。そこで気になったのが、JFileChooser のアイコンです。アプリケーションのメインウィンドウに使用しているアイコンをそのまま継承してしまっています。カスタマイズする方法が判らなかったので調べてみると Stack Overflow にピッタリな例がありましたので転用しました [1]

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

    • OS: Windows 7 Enterprise (64-bit)
    • Java SE Development Kit 7 Update 80 (64-bit)
    • IDE: NetBeans IDE 8.2 (Build 201609300101)

    下記に該当する部分のみを示しました。なお、imgFolder は ImageIcon 型の変数で、フォルダアイコンを定義しています。

        // directory selection
        private String chooseDirectory(String dir, JTextField txf) {
            JFileChooser chooser = new JFileChooser(new File(dir)) {
                @Override
                protected JDialog createDialog(Component parent) throws HeadlessException {
                    JDialog dialog = super.createDialog(parent);
                    dialog.setIconImage(imgFolder.getImage());
                    return dialog;
                }
            };
    
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int selected = chooser.showDialog(this, "Select Directory");
    
            switch (selected) {
                case JFileChooser.APPROVE_OPTION:
                    File file = chooser.getSelectedFile();
                    dir = file.getAbsolutePath();
                    txf.setText(dir);
                    break;
                case JFileChooser.CANCEL_OPTION:
                    break;
                case JFileChooser.ERROR_OPTION:
                    break;
                default:
                    break;
            }
            return dir;
        }
    

    参考サイト

    1. swing - How to change default java icon in JFileChooser - Stack Overflow

     

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

    2016-11-03

    【備忘録】sqlite3 で attempt to write a readonly database エラー

    Linux で sqlite3 を使っていたらすぐに判ったことだったと思うのですが、Windows 上での操作で出たエラーでしたので、もしやデータベースが壊れたかと焦ってしまいました。

    Windows 2008 サーバ上で稼働している、とあるシステムが使っている SQLite のデータベースを一部更新するため、コマンドプロンプト上で sqlite3 を起動して、SQL の update 文を実行した時に下記のエラーが出たのです。

    SQL error: attempt to write a readonly database.
    

    Administrator アカウントでインストールしたシステムが使っている SQLite のデータベースを、管理者権限を持つ別のアカウントで操作しようとしたこと、要するに permission が無かったことがエラー発生の原因です。しかしそのことを認識するのに時間がかかってしまいました。

    今回は permission をあれこれ変更することせずに Administrator でログインし直すことであっさり問題解消でした。しかし、Administrator アカウントであれこれデータベースを操作するのは安全とは言えません、なんとかしないと…(これは別な問題です)。

    SQLite は、データベースがファイルとして存在するので簡単にデータベース環境を構築して利用することができますが、サーバ・クライアントモデルのデータベースに比べると、更新処理の競合の対処については弱い処理系であると言われています。そのため稼働しているシステムのデータベースを手作業で一部更新するときは、いつも怖々と SQL 文を実行しています。しかし、ジャーナリングファイルシステムが備わっているようですから、SQL 文をひとつひとつ手作業で実行するぐらいであれば、競合が原因でデータベースが壊れることを恐れる必要はあまりないのかもしれません [1][2]

    参考サイト

    1. SQLite - SQLiteの同時書き込みを解決する現実的な方法は?(5099)|teratail
    2. パフォーマンスを追求するためのSQLite設定 | ITハンドブック

     

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