うずら技術メモ http://webmemo.uzura.work/ 30代からのwebエンジニア、うずらによる徒然なる個人的技術メモです。日々調べた事をメモに残しています。このRSSファイルは「メモ一覧」のフィードです。 ja http://blogs.law.harvard.edu/tech/rss Copyright : 2008 - 2019 uzuralife.com uzuranoie@gmail.com uzuranoie@gmail.com オブジェクト・配列を変更しても更新されない(変更が検出されない) http://webmemo.uzura.work/article/5440
配列の変更は push() pop() shift() unshift() splice() sort() reverse() を使う

オブジェクトン変更は
objectの変更は Vue.set(), this.$set() を使う
]]>
Tue, 16 Jul 2019 09:55:32 +0900 http://webmemo.uzura.work/article/5440
【引用記事】アマゾン眺めてたら、マグアイアーズの http://webmemo.uzura.work/article/5439 ゴールドクラスカルナバプラスペーストワックスG7014
が2689円で売ってますね
アルティメットペーストワックスG18211が3481円
名前だけだとカルナバプラスのが高そうですが、
本元のダイレクト価格がゴールドクラスが$16.99
アルティメットが$24.99なんで妥当なんですね
Uの方はデータが重質ナフサ30-60%のみ記述しか無くて
舐めてるのですがw
ゴールドペーストワックスの方はまともですので、見ましょう

GCC+ペーストワックスG7014
成分:
重質ナフサ 30-60%
有...
→ 続きを見る

引用元

https://medaka.5ch.net/test/read.cgi/car/1556461452/l50
]]>
Sun, 23 Jun 2019 16:22:33 +0900 http://webmemo.uzura.work/article/5439
cron デバッグ http://webmemo.uzura.work/article/5437 ]]> Thu, 02 May 2019 19:23:03 +0900 http://webmemo.uzura.work/article/5437 【引用記事】git diffで、異なるブランチの異なるファイルを比較する方法 http://webmemo.uzura.work/article/5436 2013/06/09

"ブランチ名:ファイルパス名" という表記を使えば簡単です。
例:br1ブランチのfoo/bar.tx と br2ブランチのhoge/fuga.txtを比較したい

git diff br1:foo/bar.txt br2:hoge/fuga.txt

ちなみに異なるブランチ間の同じファイルを比較する場合は、

git diff br1 br2 foo/bar.txt

のように書けます。

引用元

http://dqn.sakusakutto.jp/2013/06/git_diff_branch_file.html
]]>
Thu, 11 Apr 2019 13:21:31 +0900 http://webmemo.uzura.work/article/5436
mac の sed で 改行を出力 http://webmemo.uzura.work/article/5435
http://takuya-1st.hatenablog.jp/entry/2017/12/01/000000
]]>
Wed, 10 Apr 2019 13:11:14 +0900 http://webmemo.uzura.work/article/5435
AWS環境でなるべく格安でセキュリティ対応する http://webmemo.uzura.work/article/5433 - WAF: AWS Shield →設定したルール数 ×従量課金(月\1000以内と予測)
-- 設定ルール要確認
- 不正侵入検知: sshログイン時に通知メール
- 不正侵入防止: 作業時以外は ssh ポート閉じる
- 不正改竄検知: AIDE(Advanced Intrusion Detection Environment) ※OSS/無料
- 不正改竄防止: 行わない(検知時に適切に対応 or スナップショットから再構築)
- アンチウィルス:
-- Clam AntiVirus ※OSS/無料
-- Trend Micro Deep Security as a Service
--- ↓みると1日26円くらい?(まじで?)
---- https://aws.amazon.com/marketplace/pp/B01LXMNGHB?qid=1554443034968&sr=0-1&ref_=srh_res_product_title
--- 代理店通すと高いので、MarketPlace で購入して自分で入れる必要あり
]]>
Fri, 05 Apr 2019 16:35:38 +0900 http://webmemo.uzura.work/article/5433
推奨環境の案内事例 http://webmemo.uzura.work/article/5432
https://www.amazon.co.jp/gp/help/customer/display.html?ie=UTF8&nodeId=201909090
https://help.twitter.com/ja/using-twitter/twitter-supported-browsers

https://sellercentral.amazon.co.jp/gp/help/external/21361?language=ja-JP&ref=mpbc_200269720_cont_21361

OSの影響
* フォント
* ファイルアップロードのファイル選択UI
* DNSキャッシュ関連
* 証明書(Safari)
など
]]>
Wed, 03 Apr 2019 11:01:07 +0900 http://webmemo.uzura.work/article/5432
【引用記事】[Vue.js]外側をクリックすると閉じるドロップダウンメニュー http://webmemo.uzura.work/article/5431




[Vue.js]外側をクリックすると閉じるドロップダウンメニュー

はじめに




 
 

メニューボタン押すと開く

メニューボタンもう一度押すと閉じる

メニューの外側押しても閉じる


 
 
どこでもよく見るアレをvue.jsで
 
 

デモ
 
 
デモ(jsfiddle)
 
 

説明
 
 

親コンポーネント
 
 

html



<div style= "positi...
→ 続きを見る

引用元

https://qiita.com/huigo/items/a888dcee8f46d62bb9e3
]]>
Wed, 03 Apr 2019 09:04:43 +0900 http://webmemo.uzura.work/article/5431
【引用記事】一行で書かれているCSSをvimで整形する方法 http://webmemo.uzura.work/article/5430  







一行で書かれているCSSをvimで整形する方法
tips , vim , css | 17:01
1. file typeを CSS に変更(もともと CSS ファイルなら2へ)

:set ft= css

2. 改行を行う( ^Mは,Ctrl+vを押下後にEnterを押下すること )

:%s/{/ {^M/g
:%s/}/}^M^M/g
:%s/;/;^M/g

3. 整形を行う

ggVG=

これで整形できるはず・・・






→ 続きを見る

引用元

http://d.hatena.ne.jp/tSuzuki/20090525/1243238503
]]>
Thu, 28 Mar 2019 13:14:10 +0900 http://webmemo.uzura.work/article/5430
【引用記事】AWS SNS(Amazon Simple Notification Service)の通知設定をしてみる http://webmemo.uzura.work/article/5429 AWS SNS
この記事は最終更新日から1年以上が経過しています。


今回CloudWatchでのアラーム通知先の設定を行うため、SNSの設定を試してみたので備忘録としてまとめておきます。
SNS(Amazon Simple Notification Service)とは
サブスクライブしているエンドポイントまたはクライアントへのメッセージの配信または送信を調整し、管理するウェブサービス。
SNSの通知設定を行う
まずはトピックの作成を行います。
AWSのサービス一覧 > SNS...
→ 続きを見る

引用元

https://qiita.com/ai-2723/items/dab1df52eda4d57f7539
]]>
Thu, 28 Mar 2019 13:11:41 +0900 http://webmemo.uzura.work/article/5429
【引用記事】Lets Encryptで証明書更新時にcryptographyのエラーが出た時の対処法 http://webmemo.uzura.work/article/5428





 






 
 


 




Lets Encryptで証明書更新時にcryptographyのエラーが出た時の対処法
letsencrypt


13

 




 
まれにLets Encryptで証明書更新時にエラーが発生します。

大体、pipのモジュールを最新化すると治っているイメージがありますが、、一応メモとして残しておきます。
 
 

環境
 
 
EC2 - Amazon Linux
 
 

試した方がいいことまとめ
 
 ...
→ 続きを見る

引用元

https://qiita.com/srai0628/items/9b9b13a673eced8eb199
]]>
Mon, 25 Mar 2019 21:13:54 +0900 http://webmemo.uzura.work/article/5428
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)
* str_replace: str.replace(search, replaced)
* 改行削除:
re.sub('[\r\n]+$', '', line)

### isset()
### list の index
try:
    var = hoge[2]
except IndexError:
    var = 'default'

### dict の key
var = hoge.get('fuga', 'default')


### ユニークな文字列
````
import uuid
secure_unique_id = uuid.uuid4().hex
````
### ver_dump
````
#!!!!!!!!!!!!!!!!
from pprint import pprint
pprint()
#!!!!!!!!!!!!!!!!
````

## 文字列 ##
### ヒアドキュメント
string = '''
This is a pen.
I'm from Tokyo.
'''.strip()

## 配列操作 ##
### 配列結合
list = ["A", "B", "C"]
list.extend(["D", "E"])
print list      # ["A", "B", "C", "D", "E"]

### dict 配列で特定のキーの値の要素を探す
```
>>> dicts = [
     { "name": "Tom", "age": 10 },
     { "name": "Mark", "age": 5 },
     { "name": "Pam", "age": 7 },
     { "name": "Dick", "age": 12 }
 ]
>>> next(item for item in dicts if item["name"] == "Pam")
{'age': 7, 'name': 'Pam'}
```

## ファイル ##
### 読み取り(全部)
with open(file_path) as f:
    s = f.read()

### 1行ずつ読み取り
with open(path) as f:
    for s_line in f:
        print(s_line)

### 確認
- あるかどうか?: os.path.exists(path)
- 最終更新日時: os.stat(file_path).st_mtime

## json ##
* 文字列->dict
    + json.loads(json_str)
* dict->文字列
    + json.dumps(ver_dict)

## デコレータ ##
### 基本形
~~~
# デコレータ定義
# 関数の実行前後に出力
def test(func):
    def new_func(*args, **kwargs):
        print('start')
        result = func(*args, **kwargs)
        print('end')
        return result
    return new_func

# 関数定義
@test
def square(a):
    print(a * a)

# 実行
square(3)

## loop ##
### 配列を index 付きで
for index, item in enumerate(list):

### dict
for k, v in d.items():
    print(k, v)


## datetime ##
- 文字列からdt
-- dt = datetime.strptime('20190318', '%Y%m%d')
- timestamp から datetime
-- localtime: datetime.fromtimestamp(timestamp)

### あと何日
```
dt_str = '20190318'
dt = datetime.strptime(dt_str, '%Y%m%d')
today = datetime.now()
days = (dt-today).days
```

### 時間比較
````
base_dt = datetime.fromtimestamp(timestamp)
expire = timedelta(minutes=30)
expire_dt = base_dt + expire
now_dt = datetime.now()
if expire_dt > now_dt:
````

## コマンドライン ##
### 引数
$ python3 sys_argv_test.py a 100
sys.argv         :  ['sys_argv_test.py', 'a', '100']
type(sys.argv)   :  <class 'list'>
len(sys.argv)    :  3

sys.argv[0]      :  sys_argv_test.py
sys.argv[1]      :  a
sys.argv[2]      :  100 
]]>
Fri, 22 Mar 2019 22:18:43 +0900 http://webmemo.uzura.work/article/5366
npm packages が最新かどうかの確認 http://webmemo.uzura.work/article/5427
ncu を入れる
```
npm install -g npm-check-updates
```

確認&バージョンアップ
```
ncu
ncu -u
```]]>
Tue, 19 Mar 2019 21:40:31 +0900 http://webmemo.uzura.work/article/5427
便利ワンライナー http://webmemo.uzura.work/article/5390 top n 1 b|grep httpd|grep m|awk '{print $6 " " $7}'|sed -e 's/m//g'|awk '{print $1 - $2}'|awk 'BEGIN {} {s+=$1} END {print s/NR}'


## 共有メモリを無視版
### httpd プロセスが使用するメモリの平均(単位: KB)
for p in `pgrep httpd`; do grep "^VmHWM:" /proc/$p/status |awk '{print $2}'; done|awk 'BEGIN {} { s+=$1 } END { print s/NR }'

### httpd プロセスが使用するメモリの個数, 最小, 最大, 合計, 平均(単位: KB)
for p in `pgrep httpd`;do grep "^VmHWM:" /proc/$p/status|awk '{print $2}'; done|awk 'BEGIN{OFS="\t";sum=0;max=0;}NR==1{min=$1;}{sum+=$1;if($1>max){max=$1};if(min>$1){min=$1};}END{print("count: "NR,"max: "max,"min: "min,"total: "sum,"average: "sum/NR)}'
]]>
Mon, 18 Mar 2019 17:23:04 +0900 http://webmemo.uzura.work/article/5390
パワポ起動時に特定の[自動保存]ファイルが毎回開いてしまうToT http://webmemo.uzura.work/article/5426 以下のファイルを消すべし
]]>
Tue, 12 Mar 2019 17:21:00 +0900 http://webmemo.uzura.work/article/5426
AWS EC2 で flask を Apache + mod_wsgi で動作させる http://webmemo.uzura.work/article/5420 yum list available | grep python3
yum install python36-devel python36-libs python36-setuptools
yum install httpd-devel
ln -s /usr/bin/pip-3.6 /usr/bin/pip3
pip3 install mod_wsgi
cd /var/www/sites
git clone **** example.com
cd example.com
pep3 install -r requirements.txt
vim adapter.wsgi
````
import sys
sys.path.insert(0, '/var/www/sites/example.com')

from run import app as application
````
sudo vim /etc/httpd/conf.d/virtualhost.conf
````
LoadModule wsgi_module /usr/local/lib64/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so
<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www/sites/example.com
  WSGIScriptAlias / /var/www/sites/example.com/adapter.wsgi
  <Directory "/var/www/sites/example.com/">
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>
````
sudo systemctl httpd restart

]]>
Thu, 07 Mar 2019 21:51:07 +0900 http://webmemo.uzura.work/article/5420
BeautifulSoup チートシート http://webmemo.uzura.work/article/5425 elms = soup.findAll(attrs={'name': 'hoge'})
 OR
elms = soup.select("input[name='authenticity_token']")
elms[0]['value']

]]>
Tue, 05 Mar 2019 22:24:00 +0900 http://webmemo.uzura.work/article/5425
API で POST 送信 http://webmemo.uzura.work/article/5423 ```
curl -X POST -i 'http://example.com/api/hoge' --data 'hoge=fuga&foo=bar' -XPOST
```
※ --data でPOSTパラメータを指定
]]>
Mon, 04 Mar 2019 17:07:49 +0900 http://webmemo.uzura.work/article/5423
参考サイト http://webmemo.uzura.work/article/5421 https://developer.amazon.com/alexa/console/ask



https://qiita.com/zono_0/items/57247bed70dbe2b3ce28

== 入門
https://developer.amazon.com/ja/alexa-skills-kit/training/building-a-skill

== やってみたいこと
Twitter 連携&投稿
=== 参考
https://qiita.com/quotto/items/7fbda7efc6b57dc03992
https://qiita.com/quotto/items/865326ac1e7aa3ac9c3c

== メモ
=== dev
* console: https://developer.amazon.com/alexa/console
* シミュレータ: https://echosim.io/
=== サービス連携
Account Linking
https://developer.amazon.com/ja/blogs/alexa/post/6df1f491-30f5-4451-b0da-bcd8f0a06a5c/chapter5-jp
https://dev.classmethod.jp/voice-assistant/alexa-account-linking-with-google-apis/

=== 知識
ASK (Alexa Skills Kit)

=== ワード


インテント: このユーザーの発話による指示
スロット: 変数

==== 参考
ビルトインスロット: https://developer.amazon.com/ja/docs/custom-skills/slot-type-reference.html

== voice デザイン
https://developer.amazon.com/ja/designing-for-voice/design-process/

=== コーディング
https://thinkit.co.jp/article/15144

=== lambda 関連
==== ローカルテスト
lambda-local -l index.js -h handler -e test/Hoge.json -t 10

==== zip 作成
zip -r alexa-hoge-skill.zip index.js node_modules
]]>
Thu, 28 Feb 2019 12:24:11 +0900 http://webmemo.uzura.work/article/5421
【引用記事】More Info http://webmemo.uzura.work/article/5422
 

Pythonでディクショナリを扱う時に便利なライブラリ「Box」


 


#ariticle_content>p{font-size:1.21rem;color:#3E3E3E}.callout{padding:18px;margin:18px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px}.callout h2{margin-top:0;margin-bottom:0}.callout+.callout{margin-top:-5px}.callout-desc{border-left-color:#e74c3c;font-size:15px}.marker{background:linear-gradient(transparent 80%,#E67974 0)}


...
→ 続きを見る

引用元

https://co.bsnws.net/article/246
]]>
Tue, 26 Feb 2019 22:58:25 +0900 http://webmemo.uzura.work/article/5422