【Pythonメモ】zip

zip 複数のシーケンスを並列的に反復処理が出来る。 list1 = [1, 2, 3] list2 = [4, 5, 6] for (a, b) in zip(list1, list2): #list1,list2を同時にループ … print(a,b) >> list1 = [1, 2, 3] >> list2 = [4, 5, 6] for (a, b) in zip(list1, list2): print(…

【Pythonメモ】enumerate OrderDicts nditer

enumerate リストをインデックス化することができます。 >> list=["a","b","c","d","e"] >>> for index,val in enumerate(list): print(index,val) (0, 'a') (1, 'b') (2, 'c') (3, 'd') (4, 'e') OrderDicts ディクショナリとほぼ同じだが、順序が保存出来…

【pythonメモ】numpyメソッド randn max sum

random randn 標準正規分布を出力(標準0、分散1) import numpy as np >>> np.random.randn() #-0.728737781876976 >>> np.random.randn(2,3) #2×3 array([[-0.01827125, -0.38984807, 0.08674773], [ 0.68593183, 0.82708901, -0.15050036]]) max 配列の中…

【Pythonメモ】numpyメソッド argmax

argmax 配列の中の最大値のインデックスを返すメソッドです。 >>> import numpy as np >>> test = np.array([1,2,5,40,20,30]) #配列は6個 >>> np.argmax(test) 3 #インデックスは0から数える >>> test2 = np.array([[1,2,3][10,20,30]]) #二次配列 >>> np.a…

【Pythonメモ】numpyメソッド

メソッド調査 arange reshape linspace zeros_like ones_like zeros ones linspace arange np.arange([start,]stop, [step,]) 一次元の配列を返す。 startが入っていない場合は0から始まる import numpy as np np.arange(6) #初期値 start 0 step 1 #array([…

【Python】OpenCV2.4系 輪郭メソッド メモ

findContours(img,retrieval_mode,approx_mode) 画像の輪郭抽出に用いられます。 img:入力画像 retrieval_mode:抽出方法 approx_mode:近似モード 抽出方法について わかりづらいのですが 輪郭が複数あった際の処理方法を示しています。 よく取り上げられるの…

【Python】OpenCV 初歩的メソッドメモ

はじめに opencvを最近になって勉強しています。 備忘録として初歩的なメソッドをメモしておきます。 環境:Python 2.7.12 opencv 2.4.12 画像の読み込み imread(読み込み画像パス) 色空間の変換 cvtColor(img,cv2.COLOR_BGR2GRAY) COLOR_BGR2GRAY ・・・グ…

【ネットワーク】リバースプロキシ、ロードバランサ

リバースプロキシとは リバースプロキシとは、クライアント(ブラウザ)と webサーバー(nginx)の間にたって、代理で処理出来るものです。 リバースプロキシのメリットとしては、 クライアントとwebサーバーの間に挟まることで、様々な前後処理を施すことが出来…

サーバー構築で詰まった話

はじめに VPSでrailsで作成したサービスを公開する時、 サーバー(≒VPS)設定につまずきました。 初心者(=私)がサーバー設定につまずいた理由 僕が思うにサーバー設定が障害となる最大の理由は 今までやっていた開発(js、ruby、php・・・)と別の知識 が要求さ…

nginx 特徴

最近、nginxでサーバー構築を行っているので、メモがてらブログでまとめます。 webサーバーとは ブラウザ(chromeやsafari)のリクエスト(例えば、http://www.hatena.ne.jp/にアクセス) に対して自身の返すデータを返す役割を持っています。 ブログを例に取る…

【linux】パフォーマンス確認に使えそうなコマンド メモ

free メモリの使用状況を表示 オプション -m メガバイト単位で表示 -t 仮想メモリと物理メモリを表示 仮想メモリ・・・hdd ssdなどのストレージで物理メモリを代替。物理メモリと比較して速度遅い vmstat メモリやCPUの使用状況を表示 watch 定期的にプログ…

【python】 numpyメモ

sqrt 平方根 import numpy as np np.sqrt([1,2,3]) # array([ 1. , 1.41421356, 1.73205081]) np.sqrt(2) # 1.4142135623730951 dot 内積 v1 = [1,2,3] v2 = [2,3,4] np.dot(v1,v2) #20 degrees radianを返す np.degrees(3.14) #179.90874767107849 np.degre…

正規表現 最短マッチ

最短マッチ 躓くことが多いのでメモ。 最短マッチを考える際には通常マッチから考えるとわかりやすい。 通常マッチは一番長いパターンをマッチ 最短マッチは一番短いパターンをマッチ 通常マッチは一番長いパターンと認識することが重要 例) テキスト例:「h…

【rubyメモ】evalメソッド

evalとは 入力された文字列をrubyのコードとして解釈出来ます。 evalはKernel moduleに属しています。 kernel moduleはobjectクラスに属しているため、 全てのクラスで使用出来ます。 コード例 test = "aiueo" test2 = "test2" eval("puts test") #aiueo eva…

【ruby】yieldとブロックの関係

yield メソッドの中でyieldを実行すると、受け取ったブロックを実行します。 コード例 ブロックとは method do |ブロック変数| ~ end で囲われている処理のことです。 yieldをわかりやすく明記するためにブロック変数を省略した形で書いてみました。 @count …

CSS flexbox【日常 個人サービス製作日誌】

flexboxアイテム テキストが長いとはみ出てしまう 例) <div class = "flex"> <div class="problem">hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge</div> <div class="normal">hoge </div> </div> .flex { display: flexbox; width: 100px } .problem { flex-grow: 1; } .normal { flex-grow: 4; } フレックボックス幅が100px…

【メモ】ついつい忘れてしまう gitコマンド

特定のコミットまで戻す コミットの履歴を確認する $ git log #ハッシュ値が出て来る 戻す $ git reset –hard ハッシュ値

linux 容量順ファイルのソート

コマンド du -ma | sort -rn | head -10 du -m | sort -rn | head -100 1.du du ディレクトリ内のファイル容量を表示する -m は単位をmバイトにする -a ファイルも表示する(aはallの略) 2.sort sort 行を並び替える -n 先頭の文字(+.-など)を数字とみなして…

【ruby】include VS extend

include 定義 moduleで定義されたメソッドを追加 rubyは多重継承は出来ないため、includeで必要な機能を追加 通常、moduleはインスタンスメソッドを使用出来ない。 includeしたクラスのスーパークラスとして継承されるため、 moduleに定義されたインスタンス…

python、ruby文字列変数展開、バッククオート

python文字列変数展開、バッククオート pythonを使いはじめてます。 簡単ですが、自分のメモ代わりに最近調べた事 を書いておきます。(対比としてrubyのケースも書いておきます) 文字列の変数展開 # ruby hoge = "hoge" puts "hoge#{hoge}" #hogehoge #pyth…

メタプログラミングRuby第五章 特異メソッド

特異メソッド 特異メソッドとは・・・特定のオブジェクトにメソッドを追加することです。 以下にコード例を示します。 hoge = "hoge" def hoge.upcase? hoge.upcase #HOGE end モンキーバッチと違うことは? モンキーバッチとはクラスにメソッドを追加及び修…

メタプログラミング ruby ローカル変数スコープ

ローカル変数のスコープ切り替え ローカル変数を使う時にいつも気になるのがスコープの存在です。 一旦、スコープの切り替えタイミングは クラス定義 モジュール定義 メソッド定義 の3つです。 上記3つのことを「スコープゲート」と呼びます。 v1 = 1 #→v1…

メタプログラミング 第四章 ブロック

ブロック ブロックは {} もしくは do endキーワードで定義出来ます。 具体例を説明します。 ["1","2","3"].each do |i| puts i end # => ["1", "2", "3"] 文法書でよくある記述ですが、ブロックの前(do endキーワード) の前には 配列オブジェクト そして メ…

メタプログラミングRuby 第三章 method_missing

前回、動的メソッドを説明しました。今回は method_missingをまとめていきます。 mehod_missing メソッド呼び出しの際に見つからなかった際に呼び出されるメソッドです。 以下にコード例を書いておきます。 class TestMethod end obj = TestMethod.new obj.g…

メタプログラミングRuby 第三章メソッド 動的メソッド

動的メソッド 前回は 「動的ディスパッチ」をメインに説明しました。 今回は本丸である動的メソッドの説明を行います。 動的メソッド定義 動的メソッドとは動的にclassとモジュールにメソッドを追加出来ます。 使い方は簡単で「define_method メソッド名」を…

メタプログラミングRuby第三章 動的ディスパッチ

重複したプログラムをなくすには? この際に解決する方法は 動的メソッド と ゴーストメソッド があります。 今回は動的メソッドに絞って説明します。 動的ディスパッチ 動的メソッドの前に、動的ディスパッチを説明します。 動的ディスパッチとはメソッドを…

メタプログラミングRuby第二章(2.2~)

クラスの真相 Classクラスのインスタンスはクラス! クラスのメソッドはClassクラスのインスタンスメソッド Classクラスとは? クラス(ここでいうクラス名は大文字) はClassクラスのインスタンスである。 Stringクラスを例にとると String.class #Class ←Cl…

メタプログラミングRuby二章(2.2途中まで)

第二章(途中まで)書きます。 オープンクラスとは? 既存のクラスを再定義することです。 以下のコードを見て下さい。 これはStringクラスのメソッドを拡張した例です。 class String def dokkiri! return "!" end end p "test".class #String p "test".dokki…

メタプログラミング1章 準備

メタプログラミングRuby第一章 第一章は分量も多くないため、頭の整理のため オブジェクト志向についてまとめておきます。 クラス 教科書通りの説明ですと、クラスとは「設計図」です。 よくある例ですと、たい焼きの型ですね オブジェクト志向は再利用を目…

メタプログラミングRubyを読む

はじめに これからメタプログラミングRubyを読んでわかったことをまとめていきます。 編集方針(随時更新) 基礎的なこともまとめる。 オライリー特有の「わかっているだろ?」的記述を出来る限り自分の 中で噛み砕いて説明