うずら技術メモ 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 php7.2 で xhprof http://webmemo.uzura.work/article/5412
### setup
git clone https://github.com/tideways/php-xhprof-extension
cd php-xhprof-extension
./configure --with-php-config="/usr/bin/php-config7"
make
make install
vim /etc/php.d/my.ini
  extension=tideways_xhprof.so

service httpd restart

### ソースコード修正
* xhprof_xxx() -> tideways_xhprof_xxx()
* XHPROF_XXXX -> TIDEWAYS_XHPROF_XXXX


https://github.com/tideways/php-xhprof-extension

]]>
Tue, 22 Jan 2019 17:14:02 +0900 http://webmemo.uzura.work/article/5412
【引用記事】Python の O/Rマッパー SQLAlchemy を使ったリレーショナルマッピング基本 4 パターン http://webmemo.uzura.work/article/5411 SQLAlchemy は pip でインストールしておく。
$ pip install SQLAlchemy
今回例にしたのはユーザとメールアドレスの関係。

One to Many (1 : 多)
from sqlalchemy . ext . declarative import declarative_base from sqlalchemy . schema import Column , ForeignKey from sqlalchemy . types import Integer , String from sqlalchemy . orm import relation f...
→ 続きを見る

引用元

http://momijiame.tumblr.com/post/27327972441/python-
]]>
Thu, 17 Jan 2019 20:53:24 +0900 http://webmemo.uzura.work/article/5411
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()
#!!!!!!!!!!!!!!!!
````

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

## デコレータ ##
### 基本形
~~~
# デコレータ定義
# 関数の実行前後に出力
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):
~~~

]]>
Mon, 14 Jan 2019 22:18:44 +0900 http://webmemo.uzura.work/article/5366
vim 正規表現ログ http://webmemo.uzura.work/article/5407 :s/<label>\(.\+\)<\/label>/<span class="accordion-label">\1<\/span>/gc
]]>
Sun, 06 Jan 2019 00:50:33 +0900 http://webmemo.uzura.work/article/5407
【引用記事】依存関係逆転の法則 with golang http://webmemo.uzura.work/article/5404 スマートフォン用の表示で見る

 









依存関係逆転の法則 with golang
tech


先日書いたこちらの記事から一部抜粋したい
abemotion.hatenablog.com

今「 API gateway によるMicroservices化」プロジェクトを社内で進めている。
API gateway には golang を採用した。
golang には、 デファクトスタンダード の フレームワーク がまだ存在せず、
今回標準パッケージのみで開発することに決定。
レイヤ構成のベストプ ラク ティスを調べていくうちに、
設計・ デ...
→ 続きを見る

引用元

http://abemotion.hatenablog.com/entry/2018/08/09/013000
]]>
Sat, 29 Dec 2018 14:39:38 +0900 http://webmemo.uzura.work/article/5404
【引用記事】静的解析ツールPHPStan http://webmemo.uzura.work/article/5406 https://qiita.com/natsuyoshi_jr/items/24bf34579119628eefe2



php7系の互換性チェックに使える?

引用元

https://qiita.com/natsuyoshi_jr/items/24bf34579119628eefe2
]]>
Tue, 25 Dec 2018 20:25:06 +0900 http://webmemo.uzura.work/article/5406
空文字列かどうかの判定 http://webmemo.uzura.work/article/5400
```
HOGE=""
if [ -z "$HOGE" ]; then
  echo '空です'
fi
```


```
if [ -n "$HOGE" ]; then
  echo '空ではないです'
fi
```]]>
Sun, 16 Dec 2018 22:59:32 +0900 http://webmemo.uzura.work/article/5400
【引用記事】interfaceとabstractの特徴と違いを捉える http://webmemo.uzura.work/article/5403
 

PHPのinterfaceとabstractを正しく理解して使い分けたいぞー
2010-11-09




interfaceとabstractの特徴と違いを捉える
今回もPHP話。(正しくないことは @ahomu に教えてもらえると助かりマス)
PHP5では、 interface(インターフェイスの宣言) や abstract(抽象化) が使用できます。これらの説明を読むと、一見して同じような役割を持っているように見えます。
それは両者とも、 メソッドの実装を「インターフェイスを実装したクラス」や、「抽象クラスを継承し...
→ 続きを見る

引用元

https://havelog.ayumusato.com/develop/php/e166-php-interface-abstract.html
]]>
Sun, 16 Dec 2018 22:01:08 +0900 http://webmemo.uzura.work/article/5403
【引用記事】Laravel Mix とは http://webmemo.uzura.work/article/5402

 







イントロダクション
Laravel Mix は多くの一般的なCSSとJavaScriptのプリプロセッサを使用し、Laravelアプリケーションために、構築過程をWebpackでスラスラと定義できるAPIを提供しています。シンプルなメソッドチェーンを使用しているため、アセットパイプラインを流暢に定義できます。例を見てください。
mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css');
Webpackやアセットのコンパイルを始めようとして、混乱...
→ 続きを見る

引用元

https://readouble.com/laravel/5.5/ja/mix.html
]]>
Sun, 16 Dec 2018 21:47:42 +0900 http://webmemo.uzura.work/article/5402
【引用記事】[PHP] 静的解析ツールPHPStanの機能概要 http://webmemo.uzura.work/article/5401 PHP PHPStan
はじめに
PHPのコードを書いているとコンパイルを必要とする言語のように検知できるエラーは動かす前に検知したいと思うことがあると思います。
PHPStanというツールを使えばコンパイラのようなエラーチェックができます。
本記事はPHPStanのversion0.9.2を対象にしています。
PHPStanとはどのようなツールなのか?
PHPStanは、PHPの静的解析ツールです。
PHPStan - PHP Static Analysis Tool
コードを実行せずに

構文エラーはないか?
関...
→ 続きを見る

引用元

https://qiita.com/natsuyoshi_jr/items/24bf34579119628eefe2
]]>
Sun, 16 Dec 2018 21:43:16 +0900 http://webmemo.uzura.work/article/5401
push 後にコミットを分けて push し直す手順 http://webmemo.uzura.work/article/5398
=== 分けたコミットをローカルに作る
git checkout ブランチA
git reset HEAD^ →直近のコミットをコミット前の状態にする
分けてコミット(commit1, commit2)
git checkout -b ブランチB →ローカルのブランチBに一旦逃がす(不要?)
git branch -D ブランチA →remoteと食い違っているので、一旦削除

=== 分けたコミットを元ブランチに適用する
git checkout origin/ブランチA →チェックアウトし直し
git checkout -b ブランチA
git revert HEAD →直近のコミットを削除
git cherry-pick commit1 →わけたコミットを取り込み
git cherry-pick commit2 →わけたコミットを取り込み
git push origin ブランチA

]]>
Wed, 28 Nov 2018 10:38:31 +0900 http://webmemo.uzura.work/article/5398
OS/ミドルウェア情報まとめて確認 http://webmemo.uzura.work/article/5397
echo "STATUS" | mysql -u{user-name} -p {db-nam}
echo "SHOW VARIABLES" | mysql -u{user-name} -p {db-nam}
httpd -t -D DUMP_CONFIG 2>/dev/null | grep -v '#'
httpd -v
php -v
php -i
yum list installed|grep -ie php -ie httpd -ie mysql
cat /etc/system-release
cat /proc/version
cat /proc/cpuinfo
cat /proc/meminfo

]]>
Wed, 21 Nov 2018 13:31:21 +0900 http://webmemo.uzura.work/article/5397
503 Service Unavailable: Back-end server is at capacity http://webmemo.uzura.work/article/5396 Tue, 20 Nov 2018 14:38:31 +0900 http://webmemo.uzura.work/article/5396 mysqldumpで純粋に定義のみ出力する http://webmemo.uzura.work/article/5395 ]]> Thu, 15 Nov 2018 20:57:47 +0900 http://webmemo.uzura.work/article/5395 【引用記事】mysqldumpでAUTO_INCREMENTの初期値をはずしたい http://webmemo.uzura.work/article/5394 引用元
http://www.mikame.net/pr/archives/811
]]>
Thu, 15 Nov 2018 20:41:06 +0900 http://webmemo.uzura.work/article/5394
git-flow の元ネタ(blog) http://webmemo.uzura.work/article/5393 ]]> Tue, 23 Oct 2018 15:10:56 +0900 http://webmemo.uzura.work/article/5393 【引用記事】Firefox add-on その他設定 http://webmemo.uzura.work/article/5392
Profileを探す
そもそもBetaだのNightlyを使うような人が知らんわけないだろ~
プロファイル | Firefox ヘルプ
userChrome編集



Profiles/hogehoge.default/chrome/userChrome.css



が存在しなかったら作る
作ったら以下を追記してブラウザ再起動



/* タブバーを非表示にする */
#tabbrowser-tabs {
visibility: collapse !important;
}

/* サイドバーのヘッダも非表示にする場合はこちらも */
#sidebar-header {
visibility: collapse;
}



このファイルにいろいろ書く

■ブックマーク...
→ 続きを見る

引用元

http://bee-dash.com/blog-entry-15009.html
]]>
Tue, 16 Oct 2018 09:33:16 +0900 http://webmemo.uzura.work/article/5392
強制SSLの conf(.htaccess) http://webmemo.uzura.work/article/5391 RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/activities/
RewriteCond %{REQUEST_URI} !^/article/
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
※「/hoge/」「/foo/bar/」は強制リダイレクト対象外ディレクトリ
]]>
Thu, 04 Oct 2018 11:29:58 +0900 http://webmemo.uzura.work/article/5391
便利ワンライナー 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,"average: "sum/NR)}'
]]>
Thu, 02 Aug 2018 11:29:25 +0900 http://webmemo.uzura.work/article/5390
【引用記事】サーバ情報(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