2019年8月25日日曜日

WiFiを掴んだら勤怠打刻 を自宅で試そうとした

メルカリラスクルの記事で、勤怠管理を「個人スマートフォンでWifi接続したら打刻」として記事がありました。

家でもできるのかな、と思ってやってみました。

MACアドレスの接続はわかる

ただし、離脱したかどうかは分かりません。

Wi-FiルータはAternという機種です。ルータを設定したあとにネットワーク上からhttp://aterm.me/ から認証して設定ページに入れます。



ログを見るには、「情報」→「通信情報ログ」とします。

時刻、address assigned, IPアドレス, MACアドレス、というログがあります。どの機器にいつアドレスが割り振られたかは分かりますが、いつ途切れるか記録されていないようです。



定期的にMACアドレスの接続を確認する→離脱が判る


snmpコマンドを試してみましたがPPPoEルータではこのコマンドは使えないのでは??と。(あまりわかっていません)

とりあえず、1つずつIPアドレスにpingすれば確認できそうです。つまり、流れとしては

・MACアドレス→IPアドレスの組合せを上記ルータページ  http://aterm.me/index.cgi/log_mainをスクレイピングする。

・各IPアドレスに対して反応を見る→使っているなら反応あり、在室。反応なければ不在とする。

ということをすれば良さそうですね。本当は1分単位で勤怠をつけるのが労働基準法に沿っている気がしますが、15分毎に動作すればよいのではないでしょうか。

※IPアドレスの割り振りは24時間有効ということで、別の機器を同じIPで振り分けることはなさそう。

世の中のWEB勤怠システム


製品版ならどうなのかな、と思って少し調べてみると、内容はいろいろありそうですが価格的には

・初期費用 5万円〜20万円(無料トライアルのところも)
・月額 数百円 /ユーザ

でした。初期費用が無料トライアルというのは概ね大手企業の系列のサービスですね。ソニーとか日本電気とかリクルートとか。

カードリーダーと読み込むクラウドだけ作っておけばよいからそれなりに低価格でできるんでしょうね。とか思ったりして。

2019年8月19日月曜日

LAMPメモ

Ubuntu, Apache2, MySQL, Pythonの組合せでWebアプリを動かしてみたいのでメモ。

https://linux.keicode.com/servers/lamp.phpのとおりにTaskselで一括設定。
Pythonを有効にしてtest.pyが見れるところまで。
return str とするとflaskと同じように表示できるようです。

アクセスログは /var/log/apache2/access.log

sudo apt update
sudo apt upgrade
sudo apt install tasksel
sudo tasksel install lamp-server
sudo service apache2 restart

として、localhostを開くとApache2 Ubuntu Default Pageが出る。

止めるには
sudo service apache2 stop

sudo /etc/init.d/apache2 start
でも開始できる。
httpd をインストールして
/etc/init.d/httpd start でも可能?です。
違いはhttps://okwave.jp/qa/q1237460.htmlにかいてあるが、RedHat系では・・・という差です。

TODO


・~/name/ とやらないようにしたい
・.hatccessの設定方法
・アクセスログの読み方がよくわからない。Mozilla, Chrome, Safariの3つの情報がある

2019年8月17日土曜日

tmuxのメモ

ubuntu16.04,  tmux 2.1
ubuntu20.04 tmux 3.0

(バージョンを見るときは $ tmux -V )

※赤くハイライトしている部分は個人的に重要だと思っていて、よく使うものです。
---

tmuxとは

  • terminal multiplexer (マルチプレクサ)
  • 1つのウィンドウで複数のターミナルを管理できます。
  • 便利ですが、少し学習が面倒です

tmux便利だと思うところ

  • ターミナルを1つにまとめられること
  • ウィンドウを閉じても、ログアウトしても再開できること(tmux -a で再開)

tmux不便なところ

  • デフォルトではかなり使いにくい(→configファイルを書く)
  • コピーペーストは、右クリックしながらでないとできない
  • マウスではスクロールが大きくできない
    • バーが出てこないのでマウスでは移動し辛い。
    • 対応策→viの移動を使う。
      • 『マウスカーソルを動かす』、または『 C-b, [ 』 でコピーモードに。viの移動が使えるようになる
        • Ctrl d / u / f / bで半画面下/上/ 1画面下/上
        • C-b のときはPrefixをかぶるので2回押さないといけない

インストール

$ sudo apt install tmux

用語

  • Prefix・・・コマンド入力を開始するキー。デフォルトはCtrl+b 。押しづらい。
  • クライアント(=セッション)・・・ターミナルに相当
  • ウィンドウ・・・ターミナルの中の画面
  • ペイン・・・ウィンドウを分割したもの

コマンド

※ $ ...  はターミナルでのコマンド。 $ なしは tmux上でのコマンド
※ C-b, a  は  Ctrl-b のあとに a  の意味
※ a[ttach] は a でも attach でも同じ の意味

$ tmux  起動

C-b, d tmuxから抜ける。デタッチ

$ tmux a[ttach] 前回デタッチしたところから起動

$ tmux a[ttach-session] -t num セッション番号numを起動

$ tmux ls   立ち上がっているクライアントを確認できる

$ tmux kill-session -t num  セッション#num を消す

$ tmux kill-server  全セッションを消す

C-b, ?  コマンド一覧を表示
C-b, "  ペインを上下に分割
C-b, %  ペインを左右に分割
C-b, ↑↓←→ カーソルを上下左右のペインに移動する
C-bを押したまま↑↓←→ ペインサイズ変更 (=ペインの端をマウスドラッグ)
C-b, Altを押したまま↑↓ 同上
C-b, o  ペインを移動する(ローテーション)
C-b, z  カレントペインが最大になる(C-b, z/o で戻る)
C-b, x  ペインをkill(=C-d ,  $ exit)
C-b, &  ウィンドウをkill

paneを別windowを移動させるときは

C-b, : でコマンドモードに入る
:join-pane  [-s src-pane] [-t dst-pane]  

今いるペインをwindow[1]に送る  

join-pane -t :1

: が必要なので注意

https://unix.stackexchange.com/questions/14300/moving-tmux-pane-to-window/14301


こちらでもできそう
https://askubuntu.com/questions/824496/how-do-i-access-tmux-session-after-i-leave-it

tmuxターミナルの下側のバーの意味


こんなの→[1] 0:bash*ZM

[1]  Session num
0: Window num
bash Window name
* current window
- previous window
Z one pane is maximized
M Marked pane

Marked pane については
・-s to join-pane, swap-pane and swap-window のデフォルトのターゲットになる
・C-b m で On/Offできる
あまり使えていない。
https://superuser.com/questions/1056977/uppercase-m-at-the-right-of-window-name-in-tmux

コピーペースト

マウスでドラッグ, コピー

(set -g mouse on を.tmux.confに記入すること)
SHITFキーを押しながらドラッグ右クリック ※先にドラッグできない


viモードでコピペ

(set-window-option -g mode-keys vi を .tmux.confに記入すること)

C-b, [  コピーモードに入る。viの操作で移動できるようになる。
→ Spaceでドラッグ開始。
→ Enter でクリップボードにコピー、通常モードに戻る

ペースト
C-b, ] 
※コマンドをコピーすると

xclipをインストール
.mux.confに下記を記入
bind -t vi-copy y copy-pipe "xclip -sel clip -i"

マウスで上の画面を表示しようとするとコピーモードに入ります。移動はviのコマンド: gg(先頭へ) G(末尾へ) C-u (半画面上へ) C-d (半画面下へ)が使いやすい。

ペインを別ウィンドウに移動する

C-b, :pane-join -s :0 -t :1

とすると、Window0のアクティブペインが、Window1のアクティブペインの下に移動します。
https://unix.stackexchange.com/questions/14300/moving-tmux-pane-to-window

使い勝手をよくするため、 .tmux.conf にオプションを書く

.tmux.conf
をホームに置いて、オプションを書く。


方法1. 再読み込みコマンド(再起動は不要)
$ tmux source-file ~/.tmux.conf

方法2. tmux kill-serverで全て消してから再起動する

.bashrcが反映されないとき

tmuxに入るとbashrcの内容が反映されないということがあります。bash_profileを使うからなので、.bash_profile の末尾に 
. ~/.bashrc 
と入力する。これでpash_profileからbashrc を呼び出してくれる。

https://stackoverflow.com/questions/9652126/bashrc-profile-is-not-loaded-on-new-tmux-session-or-window-why

.tmux.confの例

シンタックスハイライト

set -g default-terminal "screen-256color"

日時表示を右下のバーに

set -g status-right "#[fg=cyan]%Y/%m/%d %H:%M %A"

とすると、

fontはcyanで、2020/02/22/ 12:00 土曜日 のように表示されます。

マウスを使えるようにする(>2.1)

set -g mouse on

デフォルトではマウスで操作できないので、できたほうが嬉しいです。tmux2.1からこの書き方になったようで、以前の書き方をコピペすると unknown option: mode-mouse というエラーが出たりします。

新しいウィンドウ、ペインをHOMEではなくカレントディレクトリで開く 参考

bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"

my .tmux.conf

# When create new window, use current directory
bind c new-window -c '#{pane_current_path}'
bind '"' split-window -c '#{pane_current_path}'
bind % split-window -h -c '#{pane_current_path}'

# vi key-bind in copy mode
set-window-option -g mode-keys vi

set -g mouse on
set-option -s set-clipboard on
set-option -g default-command bash
set -g default-terminal "screen-256color"
set -g status-fg white
set -g status-bg black
set -g status-right "#[fg=cyan]%Y/%m/%d %H:%M %A"


画面コマンドチートシート

2019年8月8日木曜日

【e+より】退会済みのお客様へのメール誤配信のお詫び

このメールが届いたのは今日(2019/08/08)で、そもそも自分がいつ退会したのかも覚えていないのですが、最終のメールは2016年12月でした。おそらくその頃に退会したのでしょう。2年以上も保持していた、ということでしょうか。すみやかに削除させていただきます、というのは・・・・。いずれにしてもきちんとして欲しいものですね。

--ここから引用--

━━━━━━━━━━━━━━━━━━━━━━━【e+より】退会済みのお客様へのメール誤配信のお詫び━━━━━━━━━━━━━━━━━━━━━━━
8/8(木)にお送りしました「【e+より】便利になったイープラスアプリを利用してみませんか?」という件名のメールについて、一部退会済みとなっているお客様にも、誤ってメールを配信してしまっておりました。この度はご迷惑をおかけいたしまして誠に申し訳ございません。
退会済みのお客様の個人情報については、退会後も一定期間弊社内で保持させていただいておりましたが、本メールを配信後、すみやかに削除させていただきます。
今後このようなことのないよう、十分注意して参りますので何卒、ご容赦くださいますようお願い申し上げます。
この度はご心配とご迷惑をおかけいたしまして誠に申し訳ございませんでした。重ねてお詫び申し上げます。


※本メールは送信専用のため、直接返信いただいてもお問合せには答えできませんのであらかじめご了承ください。
イープラス

2019年8月3日土曜日

日誌2019年8月

2019/08/03

RealForceのキーボードの2個目を買いました。注文から2ヶ月待ちましたけど・・・品薄なんですね〜。しかし、発注かけて納期が判明したときにはキャンセルできなくなっているというyahooショッピングのシステムには辟易しました。先に納期を聞いておきましょう、ということですね。「入荷次第発送」という表記には気をつけましょう。

Pythonや各種コマンドのスニペットを書き散らしてきたのですが、これらをまとめたりするのはどうしたら良いんでしょう・・・と思っています。アクセスが全くないものは消していいかな、とも思います。

2019/08/04

モニタを大きくするか、ずっと悩んでいます。24インチから27インチにしたいけど、そこまで自分が活用できていないので。目に優しい画面って何なんでしょう・・・。

2019/08/06

cronの設定が上手くてきていないというか、ubuntuを再起動したときにどうなるかが不明なのですが。これはcrondが生きてるかを確認すればよいということかな。


2019/08/08

CRONのログを見ようと思って、Pythonを動かしているのでsyslog | grep python としていたら

org.debian.apt[1054]: /usr/lib/python3/dist-packages/aptdaemon/worker/pkworker.py:35: PyGIWarning: PackageKitGlib was imported without specifying a version first. Use gi.require_version('PackageKitGlib', '1.0') before import to ensure that the right version gets loaded.

というよく分からないエラーが出ていました。debianのホストに繋いで?何かしようとしているようですが・・・。少し調べてみたいですが、いまいち辿り方がわかりませんね。

2019/08/11

tmuxというターミナル分割アプリケーション、マルチプレクサというらしいですが、を使おうとしています。が、何がいいのかいまいちわかりません。まず移動がしにくすぎるのですが。これはキーバインドを何とかするとそれでいいのかしら。自分の使い方ではあまり恩恵が受けられないのかも。

2019/08/16

大きめのマウスが好きなのですが、最近減ってきている気がします。おそらく、amazonで中国メーカーの安くてそれなりに良いマウスが増えてきているから、バリエーションを増やすと採算が合わなくなるんでしょうね。と推測。


2019/08/18

CRONが動かない理由がやっとわかりました。エラーをファイル出力してみないとわかりませんね。勘に頼って確認しているようでは・・・。大規模なファイルを操作できるようになりたいものです。

2019/08/19

Rを使ってみたいけど、Windowsでは文字コードが解決できないことが多くて使えないんですよね〜。かといって自宅のUbuntuで使っているかというと微妙ですけど。アカデミックな人たちの残している情報はRで書いてあるのが多いので使えると(せめてPythonに移植できると)嬉しいんですけど。

2019/08/25

adsenseを付けようとしているのですが、できないです、他のbloggerにはつけているんですけど、サイトを登録っていうのがどうもできなくなったようですね。


2019年8月2日金曜日

matplotlibでA4サイズにセットする

Python matplotlibでグラフを描くとき、あとでA4サイズで出力したい、というときに便利な技です。

fig = plt.figure(figsize=(11.69, 8.27))

とすると、横11.69インチ、縦8.27インチに設定できますが、これがA4相当です210mm × 297mm)


import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
fig = plt.figure(figsize=(11.69, 8.27))
plt.plot([1,2,3,4], 'o')
plt.show()



PDFファイルとして保存します。

#set path
pp = PdfPages("pdf_test.pdf")
# save and close
pp.savefig(fig)
pp.close()



こちらが保存したPDFファイルのプロパティです。Paper SizeはA4になっています。