2017/12/09

木村家の人々

昔見て、ものすごい衝撃的だった映画。”守銭奴”という言葉を覚えた映画。
今なら、もっと別の小銭稼ぎ方法があるかも。あと、今じゃもう放送できないのかな。
妻とみたが、妻にもまあまあ好評。
昔見た時は、たしか親と見ていて気まずかった記憶あり。。。

木村家の人々

2017/12/02

Pyenv + virtualenv のセットアップ手順 on AWS-EC2

AWSのEC2 RHEL7.4(Ubuntuの場合は、パッケージの部分だけ違う) に Pyenv+virtualenv をセットアップする手順

1.インストール


2.チェックとちょこっと設定
#切り替え可能なバージョンチェック
[ec2-user@ip-10-0-0-174 ~]$ pyenv versions
* system (set by /home/ec2-user/.pyenv/version)
#インストール可能なPythonバージョンを確認
[ec2-user@ip-10-0-0-174 ~]$ pyenv install -l
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1

  2.4.2
#新しいPythonのバージョンをインストール
[ec2-user@ip-10-0-0-174 ~]$ pyenv install 2.7.13
Downloading Python-2.7.13.tar.xz...
-> https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
Installing Python-2.7.13...
Installed Python-2.7.13 to /home/ec2-user/.pyenv/versions/2.7.13
#2.7.13が追加された。
[ec2-user@ip-10-0-0-174 ~]$ pyenv versions
* system (set by /home/ec2-user/.pyenv/version)
  2.7.13
#2.7.13をベースに、"testpy"という環境を構築する
[ec2-user@ip-10-0-0-174 ~]$ pyenv virtualenv 2.7.13 testpy
Collecting virtualenv
  Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
    100% |████████████████████████████████| 1.8MB 638kB/s 
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0
New python executable in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/bin/python2.7
Also creating executable in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/bin/python
Installing setuptools, pip, wheel...done.
Requirement already satisfied: setuptools in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/lib/python2.7/site-packages
Requirement already satisfied: pip in /home/ec2-user/.pyenv/versions/2.7.13/envs/testpy/lib/python2.7/site-packages
#"testpy"が追加された
[ec2-user@ip-10-0-0-174 ~]$ pyenv versions
* system (set by /home/ec2-user/.pyenv/version)
  2.7.13
  2.7.13/envs/testpy
  testpy
#開発用のディレクトリ"pyproject"のPython環境を"testpy"に変更する
[ec2-user@ip-10-0-0-174 ~]$ cd pyproject/
#今のバージョンは、2.7.5だが。。
[ec2-user@ip-10-0-0-174 pyproject]$ python -V
Python 2.7.5
#Pyenvで変更すると
[ec2-user@ip-10-0-0-174 pyproject]$ pyenv local testpy 
(testpy) [ec2-user@ip-10-0-0-174 pyproject]$ python -V
Python 2.7.13

バージョン2.7.13へと変更された。

Docker CE のセットアップ手順 on RHEL7.4 (AWS-EC2)

AWSのEC2 RHEL7.4 にDocker CEをセットアップする手順

1.インストール

2.チェックとちょこっと設定

#パーミッションがなく、sudoなしで操作できない。
[ec2-user@ip-10-0-0-174 ~]$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.32/containers/json: dial unix /var/run/docker.sock: connect: permission denied

#sudoなしで起動できるようにする
#グループを作るー以下の場合はすでに存在していた。
[ec2-user@ip-10-0-0-174 ~]$ sudo groupadd docker
groupadd: group 'docker' already exists
#dockerグループに追加する
[ec2-user@ip-10-0-0-174 ~]$ sudo usermod -aG docker $USER

このあと、ログインし直すと。。。
[ec2-user@ip-10-0-0-174 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[ec2-user@ip-10-0-0-174 ~]$ docker version
Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:41:23 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:49 2017
 OS/Arch:      linux/amd64
 Experimental: false

sudoなしで使える! インストール完了。

2017/10/28

CSVファイルを読み込んでlist型と辞書型に格納 - Python


  • Goal
    PythonでCSVファイルを読み込んで、List型と辞書型、集合型に格納する
  • How
    CSVモジュールのreaderメソッドを使う

    マスターファイルを作る。 テキストファイル menu.csv
     
    UDON001,500
    UDON0012,700
    SUSHI0123,1200
    TONKATSU001,2000
    RAMEN10,1000

  • Result
    (pytest2.7.13)~/pytest$ python CSVtoListDic.py 
    List
    [['UDON001', '500'], ['UDON0012', '700'], ['SUSHI0123', '1200'], ['TONKATSU001', '2000'], ['RAMEN10', '1000']]
    5
    Dic
    {'TONKATSU001': '2000', 'UDON001': '500', 'RAMEN10': '1000', 'UDON0012': '700', 'SUSHI0123': '1200'}
    5
    Set
    set(['TONKATSU001', 'UDON001', 'SUSHI0123', 'UDON0012', 'RAMEN10'])

    5

2017/10/22

GCP: Google App Engineにアプリーケーションをデプロイする方法 ー GAE/Py


  • 備忘メモ
    Google App Engine にデプロイするコマンド
    EC2上のUbuntu16.04からデプロイ
    APP.yamlファイルがあるディレクトリで実行すること


(pytest2.7.13) ubuntu@ip-10-0-0-253:~/pytest$ appcfg.py update --noauth_local_webserver -A "projectid" -V "version" .←Main.pyがあるディレクトリで流しているので。。。
  • 結果 --- これは何も更新されてないけど

    10:43 AM Application: (was: None); version:  (was: None)
    10:43 AM Host: appengine.google.com
    10:43 AM Starting update of app: , version: 
    10:43 AM Getting current resource limits.
    10:43 AM Scanning files on local disk.
    10:43 AM Scanned 500 files.
    10:43 AM Cloning 896 application files.
    10:43 AM Compilation starting.
    10:43 AM Compilation completed.
    10:43 AM Starting deployment.
    10:43 AM Checking if deployment succeeded.
    10:43 AM Deployment successful.
    10:43 AM Checking if updated app version is serving.
    10:43 AM Completed update of app: , version:

テキストファイルをRDBのテーブル(イメージは、品番マスターとか)風に使う - Python


  • Goal
    ChatBotが受信したテキストメッセージと、テキストファイル(CSV)をマッチングさせる。テキストファイルのままで、品番マスタの用に使って参照させる。
  • 準備
    マスターファイルを作る
    テキストファイル menu.csv
     
    UDON001,500
    UDON0012,700
    SUSHI0123,1200
    TONKATSU001,2000
    RAMEN10,1000
  • How
    1. unicodedata を使って、ひらがな・カタカナ・漢字判定と、全角・半角変換する
    2. lineでテキストファイルから1行取得して、比較を繰り返す
    3. 先頭からで一致したら抜き出す

  • 結果

    (pytest2.7.13) ubuntu@ip-10-0-0-253:~/pytest$ python testmatch.py
    UDON001,500
  • Thanks!!
    以下、参考にさせて頂きました。
    http://minus9d.hatenablog.com/entry/2015/07/16/231608


2017/02/17

文字列から日付へ変換 - SQL Server

  • Goal
    日付と時間の別々の文字列を、Datetime型に変換する。
    ”曜日, 月 日, 年” と ”時間:分:秒 AM/PM” をDatetime型に変換

    EX)
    As is
             Wednesday, February 15, 2017 と 1:25:22 PM
    To be
            2017-02-15 13:25:22.000

    文字列分解して無理矢理変換している。。。
    良い方法があったら教えて欲しい。
     
  • Source


2017/02/09

awk サンプル ファイル分割など

  • サンプル事例
    以下のファイルの文字列コントロールのサンプル
    1列目(名前)2列目(出身地)3列目(誕生日)4列目(男女 John Osaka 12/05/2000 M Mark Tokyo 12/10/2001 M Emily Akita 01/24/1998 W Sam Osaka 10/01/1988 M Toshi Osaka 11/01/2000 M 1.1列目 だけ抜き出し 2.if 条件付き分岐 大阪出身だったら名前だけ、それ以外は出身地を名前を表示 3.ファイルの分割 $4(男女)の項目をファイル名とし、出力ファイルを分割
  • Source

2017/02/08

XMLファイルからテーブルへのINSERT

  • Goal

    XMLファイルからテーブルの要素を抜き出して、INSERTしたい。
    SQLServer バージョン

  • How

    xqueryを使って実施。



2017/01/31

FTPで送られてくるXMLファイルをSQLServerに自動的にロードする

  • Goal

    FTPで送られてくるXMLファイルを自動的にSQLServerのテーブルにロードする。
    SQLServer上にテーブル名Logxmlを作成し、受信したXMLを1カラムにINSERTする。LogxmlテーブルのSQLは以下の通り。この後、必要に応じてXML形式のカラムからトリガーやTSQLなどで各要素・カラムの切り出しをする。



  • How

    PowerShellで実施。
    ターゲットのフォルダから対象のファイル名を取得して、Bulkインサートを行う。
    スクリプトは常駐させておいて、60秒間隔で起動。
    (本当はWMIでやりたいので、後日トライ予定)

2017/01/30

特定の文字の間の文字を切り出す - SQL


  • Goal
    文字列から特定の文字の間の文字を抜き出す
    (例)  1234567890123 Hello 0980 982134 1adfllkjasf から1つ目の空白と
       2つ目の空白の間の文字列を抜き出す。
       結果として、Helloだけを抜き出す。
  • Source


2017/01/28

BOM構成表情報を取得するAPI

  • Goal
    BOMPEXPL.EXPLODER_USEREXITを呼び出して、BOM_EXPLOSION_TEMPテーブルに出力させる。APEXのアプリから、EBSのBOM構成表を呼び出したりできる。
    INTENDED BILLの画面と同じ情報を引っ張ってこれる。

  • Sourceサンプル

2017/01/27

オラクル スケジューラー テンプレ

  • Goal
    DBMS_SCHEDULERパッケージを使って、PL/SQLブロックや、プロシージャのスケジュールを作る。Oracle Schedulerを使う。

  • Sourceサンプル
    Sample1 - PLSQLブロックを5時57分から23時57分まで、毎時間流す
    Sample2 - プロシージャを2時間おきに
    流す

  • 参考 Thanks!!
    Oracle Scheduler マニュアル

2017/01/17

日付から年と週番号を求める - ISO方式 / VB6の場合

  • Goal
    日付からISO8601方式での年+週番号(YY-WWのフォーマット)で出力する。
    ISO8601では、月曜日が週の始まりで、最初の木曜日を含む週が、その年の第1週として計算する。 

  • Sourceサンプル
    手順: 1. ターゲットの日付を含む週の月曜日を求めて、年を算出する
        2. ISO方式を考慮した週番号を算出する。
    想定結果(YY-WW): 2017/01/01(SUN) = 16-52
                                     2018/01/01(MON) = 18-01
                                     2019/01/01(TUE) = 19-01
                                     2020/01/01(WED) = 20-01
                                     2021/01/01(FRI) = 20-53
                                     2022/01/01(SAT) = 21-52
                                     2023/01/01(SUN) = 22-52



  • 参考 Thanks!!
    DatePart function - Microsoft Developer Network
    年月日から週番号 : 計算結果の確認用




     

2017/01/15

Monopoly DEAL モノポリー DEAL ー カードゲーム

最近、よくやるやつ。モノポリーほど時間がかからなくて、お金のやり取りとかがめんどくさくないカードゲーム版のモノポリー。全くルールは違っていて、交渉も必要ない。
ギリギリまで大逆転も可能で結構よくできていると思う。Deal Breaker とJust say no が、大富豪のジョーカーとスペード3返しみたいな感じで使えるのが私は好き。(よくわからん説明。。。。)

子供10才は可能。6才はまだ無理。我が家では、モノポリーよりは険悪にならずにプレイできる。

モノポリー ディール - Monopoly Deal

2017/01/12

.bash コマンドインデックス

.bash のコマンド集

1. which bash - bash の種類を確認
   #/bin/bash
   #この結果をスクリプトの一行目に表示す
   #!/bin/bash
2. cd - フォルダの変更
3. ls - フォルダの中身を表示
4. rm - ファイル、フォルダの削除
5. cp - ファイルのコピー
6. mv - ファイルの移動
7. mkdir - ディレクトリを作成
8. pwd - 現在のフォルダパスを表示
9. chmod - ファイル・ディレクトリのアクセス権限変更
10. tee - 標準出力+ファイル出力の同時出力
11. awk - 文字列コントロール/編集
12. xargs - 
標準入力から生成したコマンドラインを実行する

タスクマネージャをリモートデスクトップ上で起動

- Issue
  リモートデスクトップ接続中Ctrl+Alt+Deleteでタスクマネージャを起動できない。

 (知らずにしょーもない時間を潰す…)

- 対策
  1. Ctrl+Shift+Esc
  2. Run taskmgr
     Windows key + R -> taskmgr
  3. タクスバー上で右クリックする



- Thanks!
  
  How-to Geek - Six ways to open the windows task manager  

2017/01/05

SQL server ログファイルが大きくなる

- Issue
  SQL Serverのログファイルが大きくなる。特に、洗い替えの処理等を頻繁に行うような場合。




- 原因と対策
 Recovery modelの設定が原因。 Fullになっている。
 それをSimpleに変更する。
 (注)洗い替え処理なので、ロールバックが重要ではないので。。。