みやみや

2月 152018
 

Raspberry Pi Zero W に入れた Raspbian 4.9 に、自宅と会社の Wifi 設定を入れたメモ

環境

下記の 2 つのアクセスポイントへ接続すると仮定する

  • 自宅アクセスポイント
    • SSID : SSID_HOME
    • PASS : PASSPHRASE_HOME
  • 会社アクセスポイント
    • SSID : SSID_CORP
    • PASS : PASSPHRASE_CORP

設定コマンド

wpa_passphrase を使って暗号化する

設定ファイルを確認

考察

以上で設定は終わりだが、気持ち悪いので /etc/wpa_supplicant/wpa_supplicant.conf でコメントアウトされている生パスワードは手作業で消した

2月 152018
 

出張でマレーシアに行きます

以前は Global Wifi を借りていたけど、今のスマホで 500MB 制限は厳しいと思い、4GByte/8day の SIM を Amazon 経由で購入して、MR04LN という NEC の Wifi ルーターに刺しました。

今回買った SIM は日本で接続確認ができ、出張期間が 4 日間なので、前日の今日設定を終えました。
 ※Global Wifi だと現地で接続試験なので、繋がらなかったら死ぬw

設定で躓いたのは、なんかつながらないなーと思っていたけど、資料に PC からルーターの設定画面を開いて何度かデータローミングの On/Off を繰り返したらできることがあるとあったので、やってみたらできました(これでいいのか?w)

とりあえず次の物を持っていこうと思います(という備忘録)。

  • パスポート
  • パスポートのコピー
  • 電源変換アダプタ

  • Kindle Paper White
  • 海外 SIM を刺した Wifi ルーター
  • モバイルバッテリー

(ノシ・ω・)ノシ 慣れてないから心配だー

12月 312017
 

多くの人がやっているので特に目新しくはないですが、個人のメモとして残します。

やること

Windows Subsystem for Linux(以下、WSL) に google-home-notifier をセットアップして、何かを喋らせる

WSL とは?とかなら

こちらとてもわかり易いので、読んでセットアップまでしちゃいましょう!

Node.js のセットアップ

apt の向き先を日本のリポジトリに向けて、必要なパッケージをインストール

nodebrew と Node.js のセットアップ

確認(2017/12/31 現在の表示)

必要なサービスの起動と自動起動化

google-home-notifier のインストール

動かしてみる

example.js という例がついているので、下記部分を修正後に保存する

起動させる

メッセージの最後に例が表示されるので、コピペでそのまま実行してみると「へろぉ~ぅ ぐ~ぐる ほ~む」と話ししてくれるはず

12月 312017
 

経緯

1年ぐらい前にこういう商品を買っていました

大掃除しているときに出てきて買ったのを思い出したのですが、使っていなかったので使えるようにしたいと思います

環境の作成

6 年ほど前だと大変だったようですが、今は rpm を作ってくださっている方がいました。感謝!

https://github.com/displaylink-rpm

私の環境は Fedora 27 なので、26 の SRPM を取得してビルドしてみます
ということで、SRPM のビルド環境を作ります

ビルド

下記サイトより、fedora-26-displaylink-1.5.0-1.src.rpm をダウンロードします

  • https://github.com/displaylink-rpm/displaylink-rpm/releases

マクロの設定が必要なようなので、.rpmmacros を作ります

内容

ビルドに必要なパッケージを入れます

ビルド

成功したら ~/rpmbuild/RPMS の下に RPM ファイルが作成されているので、早速インストール

その後、再起動させてケーブルを挿したら認識しました。

参考

12月 172017
 

経緯

SharePoint でマスタを考える時って、まずは参照列を検討すると思うんですが、
この参照列が使いにくいなーっとずっと思ってました。

例えば、参照先のアイテムを

  • リスト毎に変えたい
  • フラグで表示・非表示を切り替えたい
  • ある時期以降に表示したい
  • ある時期以降に非表示にしたい

とかしたいじゃないですか。

次に検討するのが選択肢列だと思うのですが、マスタではないですよね…

先々月頃、ぜんぜん違う事を調べてる時にふと集計値列を使う方法を思いつきました。
SharePoint 大好き芸人の方々は、きっとこうやってるんだな… やっと気づいたYO!!

忘れそうなのでブログにアウトプットしておこう

環境

  • プラットフォーム: SharePoint Online
  • 利用リスト
    • 部署マスタ: 参照列で参照するリスト
    • 社員名簿: 部署マスタを参照する列を保有するリスト

いままで

  • 参照列を使う

  • 選択肢列を使う

参照列を使うと、参照列として表示したくない部署は部署マスタから削除するしかない(と思っていた)。

選択肢列を使うと、社員名簿リストに設定を持ち、社員名簿の各アイテムにデータを持ってしまうため、例えば部署の名前が変わった時等に、全てのデータを洗い替えする必要が出てくるので、メンテナンス性が超絶悪い。

集計値列を使う

参照列の参照先を集計値列にすることで、表示を変えられることに気づいた。
下図は、部署マスタの活性化列が「はい」のアイテムだけを社員名簿の所属部署として表示させる例。

  • 集計値列を使う

これにより、参照列として表示する部署は、活性化列が「はい」のアイテムだけとなる。
なんだよ… フィルターできるじゃないか!

さらに応用

現実的には、部署マスタや商品マスタなどには「xxxx年xx月xx日~xxxx年xx月xx日まで使用する」という期限がある。
先ほどのように、集計値列の数式に期間を入れようと思うところだが、数式に TODAY や ME などの動的な値は使えない。
こういう時こそ Microsoft Flow の出番。

  • 集計値列と Microsoft Flow を使ったフロー
    1. 毎日 0 時に動作する
    2. 部署マスタを取得
    3. 今日が開始日と終了日の間なら「活性化」を「はい」に、期間外なら「活性化」を「いいえ」にする
    4. 3 をアイテム分繰り返す

実際に設定したのは次の通り

Flow は経験が少ないので恥ずかしいところだけど、取り敢えず内容を解説(自分で後から見直せるように)

1. 毎日0時に実行する

毎日0時に本当に動くか確認してないけど、多分こんな感じでしょう?

2. 変数を初期化する

このフローで使う変数を定義する

3. 部署マスタの取得

Site Address は察してください(サイトのアドレス入れるだけ)

↑ この画像を取る時に気づいたんだけど、詳細オプションから絞り込みとかできるんだねー

4. 部署マスタのアイテムを繰り返し処理

繰り返し処理では、変数をセットして判定を行い、今日が開始日と終了日の間なら「活性化」を「はい」に、期間外なら「活性化」を「いいえ」にする

1つづつ説明、変数 StartDate をセット
開始日(内部列名:StartDate)が空値の時は最小値をセットすることで、開始日に値がない時には開始日に制限がないということなる
※ここで気づいたけど、変数名と内部列名を一緒にして説明書きづらい…

同様に変数 EndDate をセット

最後に期間内なら「活性化」を「はい」に、期間外なら「活性化」を「いいえ」にする

最初の判定が見切れてるので下記に転載
セットした変数 StartDate と EndDate を現在時刻 utcNow() と比較しています

考察

やりたい事はだいたい行けそうな気がする

しかし、恐らく次に要望で出るのは、過去データを残しつつ(表示しつつ)、登録・修正時には新しいデータで行いたいということだけど、これは今のところ、マスタの Title も表示して JSLink で表示を書き換えるぐらいしか思いついていない

参考 URL

11月 052017
 

SharePoint で選択肢列と参照列を PowerShell で付け替える(3/3)

前回の続きです
下記手順の 3 番目、参照列の作成を行います

  1. 選択肢列の値を使い、参照列元のリストを作成する
  2. 手順 1 で作成したリストを使い、参照列を作成する
  3. 選択肢列の値を参照列に移行
  4. 選択肢列の削除

環境

前回で移行するリストはこのようになっています最初に作っていた

  • リスト名: 選択肢列と参照列を付け替える
    列名 内部列名 種類
    目的地 Title 1 行テキスト
    乗り物 vehicle 選択肢 車 , バイク , 自転車 , 船 , 飛行機
    おやつ snack 選択肢(複数選択可能) ポテトチップス , アポロ , じゃがりこ , チップスター , ハイレモン , かっぱえびせん
    乗り物 relVehicle 参照列 「乗り物マスタ」リストのアイテム
    おやつ relSnack 参照列(複数選択可能) 「おやつマスタ」リストのアイテム

1. 選択肢列の値を使い、参照列元のリストを作成する

こちらは済です

2. 「選択肢列と参照列を付け替える」に参照列を作成

こちらは済です

3. 選択肢列の値を参照列に移行

大雑把に手順を書くと次の感じ

  1. 既存データの取得
  2. 選択肢列と同じ値の参照列データを作成
  3. 更新者と更新日を変わらないようにする
  4. 更新
11月 022017
 

前回の続きです
下記手順の 2 番目、参照列の作成を行います。

  1. 選択肢列の値を使い、参照列元のリストを作成する
  2. 手順 1 で作成したリストを使い、参照列を作成する
  3. 選択肢列の値を参照列に移行
  4. 選択肢列の削除

環境

このリストは最初に作っていた

  • リスト名: 選択肢列と参照列を付け替える
    列名 内部列名 種類
    目的地 Title 1 行テキスト
    乗り物 vehicle 選択肢 車 , バイク , 自転車 , 船 , 飛行機
    おやつ snack 選択肢(複数選択可能) ポテトチップス , アポロ , じゃがりこ , チップスター , ハイレモン , かっぱえびせん

 

このリストを前回作った

  • 選択肢列から作成される参照元リスト(マスタリスト)
    列名 生成されるリスト名 リストのタイトル
    乗り物 乗り物マスタ vehicleMst
    おやつ おやつマスタ snackMst

 

今回はこの列を作成する

  • リスト「選択肢列と参照列を付け替える」に追加される参照列名
    列名 内部列名 参照リスト名
    乗り物 relVehicle 乗り物マスタ
    おやつ relSnack おやつマスタ

1. 選択肢列の値を使い、参照列元のリストを作成する

こちらは済です

2. 「選択肢列と参照列を付け替える」に参照列を作成

手順的には、この辺りを注意して参照列を作りました

  1. 列定義 XML を作成
    既存の選択肢列を取得し、複数選択が許可されていたら Type を LookupMulti にして、 Mult を TRUE にする

  2. 参照列の追加
    内部列名を強制するように、AddFieldInternalNameHint を付ける

つぎはデーターの移行だなー
楽しみだなー

11月 012017
 

選択肢列を参照列に入れ替える時にはどうするのか?
それは我々に永遠の課題である(嘘

当初は選択肢列で作っていたが、運用していくとマスタ化したくなり、参照列に変更したいということがあるのではないでしょうか。
但し、参照列にするとアイテムを残し続けないといけないカルマを背負うため、上手く先を見越さないと「xxxxx (使用禁止)」とか「xxxx (yyyy.mm.dd まで使用)」とかいう超絶ダサいマスタになっていき、未来永劫、裏でコソコソ言われるので気をつけましょう(言い過ぎ
 #参照列にフィルタリングする方法があれば教えてください… orz

さて、選択肢列を参照列に置き換える時は、恐らく次の手順な感じになると思う

  1. 選択肢列の値を使い、参照列元のリストを作成する
  2. 手順 1 で作成したリストを使い、参照列を作成する
  3. 選択肢列の値を参照列に移行
  4. 選択肢列の削除
    #実際は非表示列にして、動作確認後に削除するというのが良いかと思う

上記手順の 1 ~ 3 を PowerShell でやってみようと思う

今回は「1. 選択肢列の値を使い、参照列元のリストを作成する」を行う

環境

SharePoint Online に次のリスト準備

  • リスト名: 選択肢列と参照列を付け替える
    列名 内部列名 種類
    目的地 Title 1 行テキスト
    乗り物 vehicle 選択肢 車 , バイク , 自転車 , 船 , 飛行機
    おやつ snack 選択肢(複数選択可能) ポテトチップス , アポロ , じゃがりこ , チップスター , ハイレモン , かっぱえびせん

 

  • 選択肢列から作成される参照元リスト(マスタリスト)
    列名 生成されるリスト名 リストのタイトル
    乗り物 乗り物マスタ vehicleMst
    おやつ おやつマスタ snackMst

1. 選択肢列の値を使い、参照列元のリストを作成する

マスタリストの作成は以前に詳しく紹介しているのでそちらを参考にしてください。

マスタデータの作成では、リストの列情報にある選択肢列の値の分データを作成、更新予約を行い、最後に一気に ExecuteQuery で更新しています。

あとは、もう一つの選択肢列「おやつ」を使って「おやつマスタ」リストを作成するために、上記のコードの 21 ~ 26 行目を変更してもう一度実行します。

実際に使うコードの時は、外部ファイルから次のようなオブジェクトを作成できるようにして、繰り返し処理を加えても良いとは思う。