2018-02-20

【備忘録】Rで正規表現を使う

R で正規表現を使おうとするときいつも忘れてしまって、インターネット上を検索するのですがなかなか見つからないので、備忘録にしました。

検索でハマる原因は、最初に regexpr コマンドが見つかり、これを使おうとするからです。そうすると regexec を忘れてしまう。そう、ほとんどの場合、正規表現を使って下記のようなことをしたいのです。

> x <- "http://stat.umn.edu:80/xyz"
> m <- regexec("^(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)", x)
> m
[[1]]
[1]  1  1  1  8 20 21 23
attr(,"match.length")
[1] 26  7  4 12  3  2  4
attr(,"useBytes")
[1] TRUE

> regmatches(x, m)
[[1]]
[1] "http://stat.umn.edu:80/xyz" "http://"                   
[3] "http"                       "stat.umn.edu"              
[5] ":80"                        "80"                        
[7] "/xyz"                      

> 

参考サイト

  1. R: Pattern Matching and Replacement

 

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

2018-02-17

GPD Pocketを買ってしまいました

GPD Pocket は、昨年3月にクラウドファンディングサイト Indiegogo でプロジェクトが発表され、その目標額を達成して実現された、Shenzhen GPD Technology(深圳市中软赢科技术有限公司)社製のウルトラモバイルパソコン (UMPC) です。

モバイル PC にしては余裕があるスペックに加えて、Windows 10 だけでなく Ubuntu 16.04 LTS もサポートしているということで、とても注目していました。

[GPD Pocket の主な仕様]
OS Windows 10 Home 64bit 日本語(マルチ言語対応)
CPU Intel Cherry Trail Z8750 64bit Quad Core (Atom-X7 Z8750), 2.56GHz (MAX)
GPU Intel HD Graphics 405, 600MHz (MAX)
メモリ 8GB LPDDR3-1600
ディスプレイ 7.0インチ 解像度:1920 x 1200 / IPS 液晶(静電式タッチパネル)/ Gorilla Glass 3
ストレージ 128GB eMMC 5.1
スピーカー 内臓
マイク 内臓
I/O ポート 1x USB Type-C 3.0 / 1x USB Type-A 3.0 / 1x MicroHDMI / 1x 3.5mm ヘッドホンジャック
無線LAN/Bluetooth IEEE802.11 a/b/g/n/ac 2.4GHz & 5GHz準拠 / Bluetooth 4.1
入力デバイス キーボード(QWERTY, トラックポイント)
電源 内蔵リチウムポリマーバッテリ / バッテリー容量 7000mAh, 3.8V
バッテリー寿命 12 時間
外形寸法 180mm x 106mm x 18.5mm
本体質量 481g
備考 2017年12月製造 新リビジョン版:スリープ問題対応版・技適[R][T]印字版

出資者のレビュー記事が昨年6月末頃から出始め、Amazon.co.jp での取り扱いも昨年7月ごろから確認できていたのですが、はやる気持ちをなんとか抑えて様子見をしていました。年が明けてもう二月。レビュー記事が出揃い、初期不良も解決されているであろう今こそが買い時とばかり、Amazon.co.jp に注文したのでした。

昨晩帰宅後に開封し、まずはインストールされている Windows で動作確認をしようとしました。しかしプログラムの更新に時間がかかって、Contana の変なアクセントの日本語を聞いて操作を進めただけで、更新全てが終るのを確認する前に寝てしまいました。😂

今朝、GPD Pocket 上の Windows を使い始めて、非常に綺麗な(高精細な)画面に感動しました。今さらレビュー記事を書いても新鮮味に欠けますので、既に公開されているレビュー記事をまとめました。

GPD Pokect のレビュー記事(Linux 関連記事を除く)

  1. 【レビュー】ウルトラモバイルPC史上最高の完成度! 「GPD Pocket」自腹購入レビュー - 全要素のバランスが絶妙 | マイナビニュース [2017-08-01]
  2. 【Hothotレビュー】モバイラー待望のクラムシェル型UMPC「GPD Pocket」レビュー - PC Watch [2017-09-05]
  3. UMPCを忘れられないあなたへ 超小型パソコン『GPD Pocket』を日本でも | クラウドファンディング - Makuake(マクアケ) [2017-09-21]
  4. 7インチの極小ノートパソコン「GPD Pocket」と過ごした1ヵ月まとめ | GOODEGG.JP [2017-09-27]
  5. 7型液晶の超小型パソコンは用途がなくても欲しくなる - 日経トレンディネット [2017-10-17]
  6. 手のひらサイズのWindowsPC!「GPD Pocket」がついに届いた!購入した付属品など合わせて紹介するぞ! | むねさだブログ [2017-11-19]

Linux 移行に向けて

GPD Pocket は Ubuntu 16.04 をサポートしているという触れ込みだったので、なんら問題なく Linux をインストールできるだろうと軽く考えていたのですが、それは甘い考えだったようで、調べてみるとそれなりに注意しなければならないことがあるようです。備忘録として関連する記事をまとめました(ここは随時更新します)。

GPD Pokect に Linux(主に Ubuntu)をインストールする記事

  1. GPD Pocket/OS/Ubuntu - GPD Wiki
  2. Linux on GPD Pocket : GPDPocket
  3. Fedora 27 scripts : GPDPocket
  4. [GPD Pocket]GPDPocket向けにUbuntu系ディストリビューションをリビルドできるツール – BOOLEE STREET.net
  5. Ubuntu for GPD Pocket | Ubuntu for GPD Pocket
  6. Playing with Toys: Fedora Linux on the GPD Pocket [Final Update: 1/15/2017] | Photo Restorations by Tim G.
  7. GPD PocketにXubuntuを入れました :: 嶽内の里
  8. GPD Win/GPD Pocketにxubuntu 16.04をインストールする – Раздан-3
  9. GPD Pocket) 軽いと思うXubuntuに載せ替えた
  10. GPD-Pocket: Kapperのブログ 新館
  11. GitHub - e-minguez/gpd-pocket-fedora: Scripts and instructions to run Fedora 27 in the GPD Pocket

以前、ASUS TransBook T100HA を買った時に、大した準備もせずに Linux をインストールして、散々苦労してそこそこ使えるようにしたものの、未だに一部の機能が動いておらず、持ち歩いて活用することができていません(bitWalk's: ASUS TransBook T100HA と Ubuntu 17.10)。

今回買った GPD Pocket については、既にある Linux に関する情報をよく整理・咀嚼した上でインストールして、安心して持ち歩ける Linux Box にしたいと思っています。無事インストールした暁には本ブログで報告します。

 

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

2018-02-12

PowerShell on Linux であそぶ(1)

Microsoft 社がオープンソース化したコマンドラインツール PowerShell 6 は、Windows 用だけでなく Linux や OS X にも移植されています。

2003 年に新世代のシェルとして登場した Monad が PowerShell になり、Windows 7 以降は標準で搭載されるようになりました。しかしコマンドプロンプト cmd.exe が廃止されなかったこと、また PowerShell でないとできないという課題に直面しなかったことから、今や業務でしか Windows を使わなくなってしまった自分の PowerShell 習熟度は、使いこなせるレベルからは程遠い状態です。

しかし、Linux でも PowerShell が利用できるようになったこの機に、Linux における PowerShell の利用価値を探るために、PowerShell を Linux 上で学習しながら使ってみるというのは悪くないテーマです。早速、近所の丸善で Windows PowerShell 5 の参考書 [1]を買いました。

というわけで、しばらく Linux 上で PowerShell を使って学習しながら遊んでみようと思います。なお、PowerShell を Linux へインストールする方法は、参考サイト [2] を参考にしてください。

PowerShell 起動用アイコンをデスクトップに作成

最初に PowerShell を使いやすい環境に整えます。デスクトップ上に下図左側のアイコン群にあるような PowerShell アイコンを用意して、ダブルクリックすると端末エミュレータが開いて PowerShell が起動するようにします。

デスクトップ上のアイコンをダブルクリックして PowerShell を起動した例

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

  • OS: Fedora 27 (x86_64)
  • Desktop: Cinnamon 3.6
    • cinnamon-3.6.7-3.fc27.x86_64
  • powershell-6.0.1-1.rhel.7.x86_64
  • gnome-terminal-3.26.2-1.fc27.x86_64(端末エミュレータ)

端末エミュレータは、自分の好みで Gnome の端末エミュレータ (gnome-terminal) を使っています。

端末エミュレータ上で pwsh とタイプすると PowerShell が起動しますが、これだと自分の場合、PowerShell を使わなくなってしまうと思うので、専用の PowerShell 起動アイコンをデスクトップ上に作ります。

端末エミュレータ上から PowerShell を起動した例

デフォルトと PowerShell のプロファイル作成

通常は端末エミュレータのプロファイルを意識していないかもしれませんが、今回は通常の端末エミュレータと PowerShell 用とで使い分けたいので、とりあえず、現状の設定のままで二種類の名前をつけたプロファイルを用意しておきます。

端末エミュレータ (gnome-terminal) のメニューから「編集(E)」→「設定(F)」で開くダイアログウィンドウで「プロファイル」タブをクリックします。ここでは「新規(N)」で default(デフォルト)を作成し、「複製(C)」で PowerShell を作っています。

二種類の名前の端末エミュレータ用プロファイルを準備

PowerShell 用アイコンの準備

デスクトップに表示する PowerSHell のアイコンを準備します。ここではインターネット上から取得した適当な画像を /home/bitwalk/画像/PowerShell-256.png として保存しました。なお、著作権フリーで使用できる画像を本記事用には準備していませんので、あしからずご了承下さい。

デスクトップ用ファイルの作成

下記の内容を適当なテキストエディタで編集し、$HOME/デスクトップ 上に保存します。ここでは保存するファイル名を powershell.desktop としました。

powershell.desktop
[Desktop Entry]
Encoding=UTF-8
Name=PowerShell
Comment=PowerShell Terminal
Exec=gnome-terminal --profile=PowerShell
Icon=/home/bitwalk/画像/PowerShell-256.png
Keywords=shell;prompt;command;commandline;cmd;PowerShell;
Type=Applications
Categories=GNOME;GTK;System;TerminalEmulator;
Version=1.0
Type=Application

デスクトップ上には、最初、ファイル名のまま表示されています。これをダブルクリックすると下記のダイアログが表示されます。

作成されたデスクトップファイルを最初にダブルクリックした時に表示されるダイアログ画面

「安全性が確認されたものとする (T)」ボタンをクリックすると、デスクトップ上に指定された画像が表示され、次回からダブルクリックでの起動が可能になります。

PowerShell プロファイルの編集

デスクトップ上の PowerShell アイコンをダブルクリックして端末エミュレータを起動し、メニューからプロファイル PowerShell を編集します。「コマンド」タブでは「◻ SHELLの代わりにコマンドを実行する」のチェックボックスを選択☑し、コマンドに /usr/bin/pwsh を指定します。

プロファイル PowerShell の「コマンド」タブ画面

「色」のタブでは、Windows 上の PowerShell のデフォルトの配色に似せることも、好みに応じてできます。

プロファイル PowerShell の「色」タブ画面

「プロファイル PowerShell 編集」画面を閉じた後、最後「設定」ダイアログウィンドウ上で「新しい端末を起動する際に使用するプロファイル(P):」を PowerShell に設定して閉じて、端末エミュレータを終了します。

設定ダイアログ画面

PowerShell アイコンのダブルクリック

再度、デスクトップ上の PowerShell アイコンをダブルクリックして、端末エミュレータを開き、PowerShell が起動することを確認します。

PowerShell の起動例

PowerShell を具体的に使ってみるのは次回から。

参考サイト

  1. 日経BP書店|商品詳細 -  Windows PowerShell実践システム管理ガイド 第3版
  2. bitWalk's: Fedora で PowerShell を試す [2018-01-14]

 

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

2018-01-14

Fedora で PowerShell を試す

Microsoft 社がオープンソース化した PowerShell 6 の パッケージを、まだアルファ版の段階で Fedora にインストールしてみましたが、その時は正常に起動できませんでした [1]。ようやく正式版の PowerShell 6 がリリースされましたので [2]、あらためて試してみました。

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

  • OS: Fedora 27 (x86_64)
  • powershell-6.0.0-1.rhel.7.x86_64

[3] に従い、下記のようにしてインストールしました。

$ su
パスワード:
# rpm --import https://packages.microsoft.com/keys/microsoft.asc
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | tee /etc/yum.repos.d/microsoft.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   193  100   193    0     0    193      0  0:00:01 --:--:--  0:00:01   554
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
# dnf -y update
packages-microsoft-com-prod                     757 kB/s | 512 kB     00:00    
...
...
...
完了しました!
# dnf install powershell
メタデータの期限切れの確認は、0:09:18 時間前の 2018年01月14日 08時31分51秒 に実施しました。
依存性が解決されました。
================================================================================
 パッケージ    アーキテクチャ
                         バージョン        リポジトリ                     サイズ
================================================================================
インストール:
 powershell    x86_64    6.0.0-1.rhel.7    packages-microsoft-com-prod     49 M

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

総ダウンロードサイズ: 49 M
パッケージ展開後のサイズ: 49 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
powershell-6.0.0-1.rhel.7.x86_64.rpm            5.9 MB/s |  49 MB     00:08    
--------------------------------------------------------------------------------
合計                                            5.9 MB/s |  49 MB     00:08     
トランザクションの確認を実行中...
トランザクションの確認に成功しました。
トランザクションのテストを実行中...
トランザクションのテストに成功しました。
トランザクションを実行中...
  準備中           :                                                        1/1 
  インストール     : powershell-6.0.0-1.rhel.7.x86_64                       1/1 
  Running scriptlet: powershell-6.0.0-1.rhel.7.x86_64                       1/1 
  検証中           : powershell-6.0.0-1.rhel.7.x86_64                       1/1 

インストール済み:
  powershell.x86_64 6.0.0-1.rhel.7                                              

完了しました!
# exit
exit
$ pwsh
PowerShell v6.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /home/bitwalk>

端末エミュレータを起動して pwsh と入したところ PowerShell が起動しました。クロスプラットフォーム版 PowerShell にどのような利用価値があるのかは、おいおい調べていきます。

Linux 版 PowerShell (pwsh) の実行例

参考サイト

  1. bitWalk's: Fedora で PowerShell を試す - 失敗 [2016-11-11]
  2. PowerShell comes to MacOS and Linux. Oh and Windows too • The Register [2018-01-12]
  3. Installing PowerShell Core on macOS and Linux | Microsoft Docs

 

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

2018-01-06

Maximaであそぶ

Maxima は、LISP で記述された数式処理システムです。GNU GPL に基づくフリーソフトウェアであり、現在も活発に開発が続けられています。[Wikipedia より]

以前の記事 [1] で Maxima on Android を紹介しましたが、Maxima は Linux 上で利用できます。Maxima on Android に慣れるには、まず Maxima に慣れる方が、大きな画面とキーボードが利用できることから、より簡単だと思われます。ということで、早速 Maxima をインストールしてみました。

使用している環境は以下の通りです。

  • OS: Fedora 27 (x86_64)

Maxima のインストール

まず、maxima をキーワードにして、関連するパッケージを検索します。

$ su
パスワード:
# dnf search maxima
メタデータの期限切れの確認は、0:00:20 時間前の 2018年01月02日 08時57分50秒 に実施しました。
========================= 名前 Exactly Matched: maxima =========================
maxima.x86_64 : Symbolic Computation Program
========================== 名前 & 概要 の一致: maxima ==========================
maxima-src.x86_64 : maxima lisp source code
maxima-gui.x86_64 : Tcl/Tk GUI interface for maxima
maxima-runtime-ecl.x86_64 : Maxima compiled with ECL
maxima-runtime-gcl.x86_64 : Maxima compiled with GCL
wxMaxima.x86_64 : Graphical user interface for Maxima
maxima-runtime-sbcl.x86_64 : Maxima compiled with SBCL
maxima-runtime-clisp.x86_64 : Maxima compiled with clisp
============================= 概要 の一致: maxima ==============================
wannier90.x86_64 : Maximally-localised Wannier functions
nodejs-simple-is.noarch : Maximally minimal type-testing library
nodejs-simple-fmt.noarch : Maximally minimal string formatting library

wxMaxima をインストールする事で、Maxima 本体を含む関連するパッケージもインストールします。

この wxMaximaは、wxWidgets によるグラフィカルな Maxima のユーザーインターフェイスです。見映えのする数式表示と、メニューとダイアログを通じた Maxima へのアクセスを提供します。

# dnf install wxMaxima
メタデータの期限切れの確認は、0:01:00 時間前の 2018年01月02日 08時57分50秒 に実施しました。
依存性が解決されました。
================================================================================
 パッケージ               アーキテクチャ
                                      バージョン             リポジトリ   サイズ
================================================================================
インストール:
 wxMaxima                 x86_64      16.04.2-4.fc27         fedora       2.6 M
依存関係のインストール:
 gnuplot                  x86_64      5.0.6-5.fc27           fedora       824 k
 gnuplot-common           x86_64      5.0.6-5.fc27           fedora       643 k
 jsmath-fonts             noarch      20090708-12.fc27       fedora       123 k
 maxima                   x86_64      5.41.0-1.fc27          updates       22 M
 maxima-runtime-sbcl      x86_64      5.41.0-1.fc27          updates       12 M
 rlwrap                   x86_64      0.42-7.fc27            fedora       102 k
 wxBase3                  x86_64      3.0.3-5.fc27           fedora       1.1 M
 wxGTK3                   x86_64      3.0.3-5.fc27           fedora       5.1 M
 wxGTK3-webview           x86_64      3.0.3-5.fc27           fedora        64 k

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

総ダウンロードサイズ: 44 M
パッケージ展開後のサイズ: 180 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
(1/10): jsmath-fonts-20090708-12.fc27.noarch.rp  24 kB/s | 123 kB     00:05    
(2/10): wxBase3-3.0.3-5.fc27.x86_64.rpm         180 kB/s | 1.1 MB     00:06    
...
...
...
  検証中           : gnuplot-common-5.0.6-5.fc27.x86_64                   10/10 

インストール済み:
  wxMaxima.x86_64 16.04.2-4.fc27      gnuplot.x86_64 5.0.6-5.fc27              
  gnuplot-common.x86_64 5.0.6-5.fc27  jsmath-fonts.noarch 20090708-12.fc27     
  maxima.x86_64 5.41.0-1.fc27         maxima-runtime-sbcl.x86_64 5.41.0-1.fc27 
  rlwrap.x86_64 0.42-7.fc27           wxBase3.x86_64 3.0.3-5.fc27              
  wxGTK3.x86_64 3.0.3-5.fc27          wxGTK3-webview.x86_64 3.0.3-5.fc27       

完了しました!
# 

Maxima の実行例

下記に使用例をいくつか示しました。wxMaxima 上では [Enter] ではなく、[Shift] + [Enter] で入力します。

関数の定義

f(x) := x^3 - 1;

方程式の解

solve(f(x) = 0);

微分

diff(f(x), x);

不定積分

integrate(f(x), x);

定積分

integrate(f(x), x, 1, 2);

定積分の数値計算

romberg(f(x), x, 1, 2);
wxMaxima の実行例

グラフ表示の例として、媒介変数で定義したメビウスの帯を描画してみました。グラフはデフォルトで gnuplot 上に描画されます。

メビウスの帯 [4]

x: cos(2*t)*(r*cos(t) + 2);
y: sin(2*t)*(r*cos(t) + 2);
z: r*sin(t);
plot3d([x, y, z], [r, -1, 1], [t, 0, %pi], [grid, 10, 100]);
Möbius strip

参考サイト

  1. bitWalk's: Maxima on Android を試す [2018-01-01]
  2. Maxima Manual:
  3. Maxima - Wikibooks
  4. メビウスの帯 - Wikipedia
  5. Maxima入門 Maximaのインストールから簡単な数式、グラフ作成まで

 

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