うずら技術メモ http://webmemo.uzura.work/ 30代からのwebエンジニア、うずらによる徒然なる個人的技術メモです。日々調べた事をメモに残しています。このRSSファイルは「メモ一覧」のフィードです。 ja http://blogs.law.harvard.edu/tech/rss Copyright : 2008 - 2018 uzuralife.com uzuranoie@gmail.com uzuranoie@gmail.com python 関数 http://webmemo.uzura.work/article/5366 三項演算子: x = "OK" if n == 10 else "NG"

## PHP関数との対応 ##
* sprintf: '{} {}'.format('hoge', 'fuga') #"hoge fuga"
*  in_array: if item in array:
* trim('/'): str.strip('/')
* explode(','): str.split(',')
* implode(','): ','.join(['aaa', 'bbb', 'ccc'])
* array_shift: myList.pop(0)


### ユニークな文字列


````
import uuid
secure_unique_id = uuid.uuid4().hex
````
### ver_dump
````
#!!!!!!!!!!!!!!!!
from pprint import pprint
pprint()
#!!!!!!!!!!!!!!!!
````

## 配列操作 ##
### 配列結合
list = ["A", "B", "C"]
list.extend(["D", "E"])
print list      # ["A", "B", "C", "D", "E"]
]]>
Sun, 01 Jul 2018 22:34:20 +0900 http://webmemo.uzura.work/article/5366
【引用記事】サーバ情報(OS,CPU,メモリ)を調べるコマンド http://webmemo.uzura.work/article/1864 RedHat 系 Linux で OS バージョンを調べたりするコマンドです。

$ cat /etc/redhat-release
$ cat /proc/version
$ cat /proc/cpuinfo
$ cat /proc/meminfo

手元の VMware 上の CentOS で実行した結果。

$ cat /etc/redhat-release
CentOS release 5 (Final)


$ cat /proc/version
Linux version 2.6.18-8.el5 (mockbuild@builder4. centos .org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Thu Mar 15 19:57:35 EDT 2007


$ cat /pro...
→ 続きを見る

引用元

http://d.hatena.ne.jp/maru_cc/20080206/1202293934
https://webkaru.net/linux/debian-version/
]]>
Fri, 15 Jun 2018 09:27:26 +0900 http://webmemo.uzura.work/article/1864
mac で pyenv 環境構築 http://webmemo.uzura.work/article/5387 brew doctor
brew update

### pyenv install
brew install pyenv
pyenv -v

### python install
pyenv install --list
pyenv install 3.*.* // 最新版を指定
pyenv global 3.*.*

### set bash env
export PYENV_ROOT="${HOME}/.pyenv"
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"

]]>
Tue, 12 Jun 2018 08:13:00 +0900 http://webmemo.uzura.work/article/5387
翻訳API http://webmemo.uzura.work/article/5385
https://cloud.google.com/translate/docs/
https://www.microsoft.com/ja-jp/translator/translatorapi.aspx

]]>
Fri, 25 May 2018 15:12:01 +0900 http://webmemo.uzura.work/article/5385
windows で文字化けしない mac でパス付き zip ファイル圧縮 http://webmemo.uzura.work/article/5383
https://github.com/macyarounanoka/mac-zip-windows

zipcloak コマンドを使う

分けての実行が面倒な場合はシェル書く
]]>
Thu, 17 May 2018 16:30:06 +0900 http://webmemo.uzura.work/article/5383
親を扶養する条件とリターン http://webmemo.uzura.work/article/5382 ※補足: 遺族年金は親の収入の対象外

=== 社会保険の扶養
* 親の年収が180万円未満
* 子の年収が親の2倍以上ある
* 親の年齢が75歳未満

=== 税法上の扶養
* 6親等以内の血族と3親等以内の姻族
* 親の年間の合計所得が38万以下であること
  + 年収目安: 親の年収158万円以下(65歳以上)
* 生計を一にする
  + →仕送りしていることの証明が必要

== ■メリット
* 節税: 13.4万 (※70歳以上・同居老親等以外)
  + 所得税: 48万 →9.6万(税率20%の場合)
  + 住民税: 38万 →3.8万(税率10%の場合)
* 親の健康保険額が無料

== ■デメリット
=== 介護保険の増額
* 年間5万程度増額
  + →無料になった「親の健康保険額」とざっくり相殺されると考える

== ■結論
年間4.5万+○○万のメリットが有る

* 税金上のメリット: 4.5万
  + 親を扶養に入れない場合の還付額: 2万円(私の場合)
  + 親を扶養に入れた場合の還付額 : 6.5万円(私の場合)
* 会社の扶養手当: ○○万×12 = ○○万

]]>
Wed, 16 May 2018 08:19:00 +0900 http://webmemo.uzura.work/article/5382
Nagios で AWS:EC2で nagios が host down になる件 http://webmemo.uzura.work/article/5381 ping 確認不要なので(https? のみ確認)、ping 確認非使用とする

参考→ https://blog.e2info.co.jp/2015/06/26/nagios_ping_icmp/
]]>
Tue, 15 May 2018 20:26:04 +0900 http://webmemo.uzura.work/article/5381
【引用記事】ClickheretoseeinEnglish. http://webmemo.uzura.work/article/2446





Click here to see in English.



 


 










...
→ 続きを見る

引用元

http://www.amazon.co.jp/gp/product/handle-buy-box/ref=dp_start-bbf_1_glance
]]>
Tue, 08 May 2018 08:12:02 +0900 http://webmemo.uzura.work/article/2446
【引用記事】ブラウザを指定して open コマンドで web ページを開く http://webmemo.uzura.work/article/5380 open -a Google\ Chrome http://hoge.com

引用元

http://kazuph.hateblo.jp/entry/2012/09/20/091710
]]>
Tue, 08 May 2018 07:06:03 +0900 http://webmemo.uzura.work/article/5380
Flask-Babel: i18n(国際化対応) http://webmemo.uzura.work/article/5375 * formのラベルなど(lazy_gettext): username = StringField(_l('Username'), validators=[DataRequired()])

## 手順 ##
* babel.cfg の定義に基づき、翻訳対象箇所を抽出する

````
pybabel extract -F babel.cfg -k _l -o messages.pot .
````

* 指定の言語の言語ファイルを作成する
    + 初回

````
pybabel init -i messages.pot -d app/translations -l ja creating catalog app/translations/ja/LC_MESSAGES/messages.po based on messages.pot
````
    + 更新時

````
pybabel update -i messages.pot -d app/translations
````

* 言語ファイルを編集する

````
vim app/translations/ja/LC_MESSAGES/messages.po
````

* コンパイルする

````
pybabel compile -d app/translations compiling catalog app/translations/ja/LC_MESSAGES/messages.po to app/translations/ja/LC_MESSAGES/messages.mo
````

]]>
Mon, 07 May 2018 07:49:40 +0900 http://webmemo.uzura.work/article/5375
プログラミング言語対決 http://webmemo.uzura.work/article/5379
portal.nifty.com/kiji/150203192687_1.htm
]]>
Fri, 27 Apr 2018 10:28:20 +0900 http://webmemo.uzura.work/article/5379
Flask-Babel: 現在の locale を取得する http://webmemo.uzura.work/article/5378 get_locale()
]]>
Tue, 17 Apr 2018 20:05:08 +0900 http://webmemo.uzura.work/article/5378
Python ポリシー http://webmemo.uzura.work/article/5377
$ python
Python 3.6.4 (default, Jan 21 2018, 22:59:58)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>

解説↓
https://qiita.com/IshitaTakeshi/items/e4145921c8dbf7ba57ef

]]>
Tue, 17 Apr 2018 19:59:22 +0900 http://webmemo.uzura.work/article/5377
global 変数の利用 http://webmemo.uzura.work/article/5376 ````
from flask import g

g.hoge = 'Hoge'
````

* template にて {{ g.hoge }}
]]>
Tue, 17 Apr 2018 09:10:34 +0900 http://webmemo.uzura.work/article/5376
migrate 手順 http://webmemo.uzura.work/article/5374 2. migrate script 作成

```
python manage.py db migrate -m "migrate message"
```

3. migrate 実行

```
python manage.py db migrate upgrade
```


]]>
Sun, 15 Apr 2018 00:06:41 +0900 http://webmemo.uzura.work/article/5374
辞書型からランダムに取り出す http://webmemo.uzura.work/article/5373 import random

dict = {
    'duck': 'quack',
    'rooster': 'cock-a-doodle-doo',
    'cuckoo': 'cuckoo',
    'crow': 'caw',
    'dove': 'coo',
    'chick': 'cheep',
    'owl': 'hoot',
}
key, value = random.choice(list(dict.items()))
`````
]]>
Wed, 11 Apr 2018 20:37:40 +0900 http://webmemo.uzura.work/article/5373
git に commit したくない設定(DB接続情報など)を分けつつ、環境ごとに設定ファイルを分けて、起動時に実行環境を指定する方法 http://webmemo.uzura.work/article/5372
## ディレクトリ構成 ##

````
├── run.py
├── config
│   ├── __init__.py
│   ├── dev.py
│   ├── local.py
│   ├── prod.py
│   ├── stg.py
│   └── test.py
├── app.py
│   └── __init__.py
└── instance
     └── config.py ※.gitignore に登録しておく
````

````
# app/__init__.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import argparse

app = Flask(__name__)
env_choices = ['local', 'dev', 'stg', 'prod']
parser = argparse.ArgumentParser()
parser.add_argument('-e', '--env', help='Operating environment',
                    type=str, choices=env_choices,
                    default='local')
args = parser.parse_args()
env = args.env
if env not in env_choices:
    env = 'local'

app.config.from_object('config.{}.{}Config'.format(env, env.capitalize()))
app.config.from_pyfile('config.py') #instance/config.py で上書き

db = SQLAlchemy(app)

if __name__ == '__main__':
    app.run()
````

````
# run.py

from flaskbird import app

if __name__ == '__main__':
    app.run()
````

## 起動時の環境の指定の仕方(prod環境の場合) ##

````
python run.py -e prod
````

### 参考
https://github.com/yoshiya0503/Flask-Best-Practices/wiki/07-%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
]]>
Wed, 11 Apr 2018 07:51:33 +0900 http://webmemo.uzura.work/article/5372
【引用記事】ssh agentをパスフレーズ省略に応用する方法(Mac) http://webmemo.uzura.work/article/5371
Host *
    AddKeysToAgent yes
    UseKeychain yes

引用元

https://qiita.com/onokatio/items/397a5899a0ec16c7e60a
]]>
Fri, 06 Apr 2018 22:06:35 +0900 http://webmemo.uzura.work/article/5371
【引用記事】JavaScriptでPHPのempty()のように空判定ができる関数 http://webmemo.uzura.work/article/5370  
 


 



JavaScriptでPHPのempty()のように空判定ができる関数

 
 


 JavaScriptにはオブジェクトや配列などの引数に与えた変数(値)が「 空 」かどうかを判定する関数がない。つまり、PHPで云うところの empty() や、Railsで云うところの blank? といったビルトインメソッドがないのだ。
ある変数について値が空かどうかという条件式は結構多用するので、ないならば作ってしまおう、ということでPHPの empty() 的な関数を自作してみた( 実際のソースは後述 )。...
→ 続きを見る

引用元

https://ka2.org/javascript-function-that-can-determine-whether-specific-value-is-empty/
]]>
Thu, 05 Apr 2018 09:48:34 +0900 http://webmemo.uzura.work/article/5370
【引用記事】x-forwarded-for は途中のプロキシのIP全て格納される http://webmemo.uzura.work/article/5369 知らんかった。



x-forwarded-for
HTTPヘッダの一つ。ロードバランサやプロキシを経由する時に 送信 元を判別するために利用。 アプリケーション層 の情報。
一般的なフォーマットは
X -Forwarded-For: client1 , proxy1 , proxy2


→ 続きを見る

引用元

http://christina04.hatenablog.com/entry/2016/10/25/190000
]]>
Wed, 04 Apr 2018 15:44:30 +0900 http://webmemo.uzura.work/article/5369