Perl - AnyEventとかのメモ

AnyEventとかのイベント駆動のメモ AnyEvent::Mac::Pasteboard Macでクリップボードを監視する Macはイベント駆動でクリップボードを取れないため、interval = [1, 1, 2, 3 ,5] (max = 5) などインターバルを与えている AnyEvent 裏でイベントループが回り、…

リーダブルコード

Amazon CAPTCHA 今更ながら、買って一読した。余すとこなく良書という印象を受けた。 小さいコードを扱っているときや、自分だけがコミットするコードでは、リーダブルコードの内容は当たり前と思って問題に気づかないかもしれない。しかし、自分が詳しく知…

すぐわかるオブジェクト指向Perl

https://www.amazon.co.jp/dp/4774135046 Perl5のOOPがよくわかってない人向け。OOP自体を知ってても知らなくても、Perlの簡単なコードを見たことある人なら読める構成。 具体的には リファレンス, @INC, @ISA, Exporter, bless, use strict 'vars'; に引用…

Punycodeとは

Punycode(ピュニコード) とは、2003 年に定められた RFC3492 で国際化ドメイン名(IDN)の表現のためのエンコーディングルール 日本語ドメイン => xn--eckwd4c7c5976acvb2w6i https://www.punycoder.com/ 日本語JPドメイン名のPunycode変換・逆変換 -…

grepで該当行の前後を見る

-n で行数表示 -数字 で前後の表示行数指定 -A 数字 で該当行と下方向に行数指定 -B 数字 で該当行と上方向に行数指定 grep <string> -n -10 grep <string> -n -A 10 grep <string> -n -B 10 参考 grepで該当する行の前後も一緒に表示するには</string></string></string>

protobuf で ./tests.sh cpp を動かす

v.3.5.1でテストを動かす。 リリース済みのもので2018/5/4現在で最新のタグを引っ張ってくる。以下の手順で ./test.sh cpp を回す。 brew upgrade gcc brew upgrade gawk ./tests.sh cpp gccとgawkのbrew upgradeが必要だった。Macのgccは標準でclangだが、…

何もしない時間を削る

そうそう。世の中のライフハックとかって「効率を上げよう」とするんだけれども、僕の中で一番重要なのは「何にもしない時間を削ること」なんです。何もしない時間は生まれる原因には、腰が重いとか、別のところでストレスを受けてしまって心の治療に時間を…

Digital Oceanとは

背景 Twitterで以下のリンクが流れてきたため。 Kubernetes on DigitalOcean Digital Ocean とは DigitalOcean https://www.digitalocean.com/(デジタル・オーシャン)とは、米ニューヨークに本拠地を置くクラウド事業者が提供するサービス名称です。Drople…

ジャーナリングとは

背景 SDカードをMacに差し込んで、ディスクユーティリティでフォーマットをしようとしていたところ、「Mac OS拡張(ジャーナリング)」というフォーマットに遭遇した。 ジャーナリングとは ジャーナリング機能を持つファイルシステムでは、ファイルシステム…

Perl - エラーログ集

業務でPerlを触ることになったのでエラーログと解決手段をまとめていく。 Can't locate object method %s via package %s at (path) line (line). 該当するメソッドが定義されていない 考えられる原因 未定義 構文エラー Can't locate object method "is" vi…

EMC++ Chapter5

序文 用語 ムーブセマンティクス コピー演算をムーブ演算に置き換え可能にする。 ムーブコンストラクタ、ムーブ代入演算子はオブジェクトのムーブセマンティクスを制御する。 完全転送 任意の実引数を取り、他の関数へ転送する関数テンプレートの記述を可能…

EMC++ Chapter5

序文 用語 ムーブセマンティクス コピー演算をムーブ演算に置き換え可能にする。 ムーブコンストラクタ、ムーブ代入演算子はオブジェクトのムーブセマンティクスを制御する。 完全転送 任意の実引数を取り、他の関数へ転送する関数テンプレートの記述を可能…

TPOP - UNIX思想 3.37〜 (WIP)

UNIX思想 UNIX設計思想の正しさ UNIXは1969年に生まれて現在まで使われている。設計思想の正しさは長い実績が保証している。 モジュール化の原則 モジュールは自己完結させる 理由 問題の発生箇所がモジュール内に局所化できる。 方法 関連性の高いもののみ…

TPOP principle3.29 7つの設計原理

第3章 principle 3.29〜3.36 7つの設計原理 コード妥当性レビュー観点 単純原理 同型原理 対称原理 階層原理 透明原理 明証原理 安全原理 線形原理 単純原理 局所的な完全性を重視する ひと目で自明がいいに決まってる 複雑なところにバグが出る 基本的に独…

TPOP principle 3.64 UNIX哲学9 - フィルタ化

第3章 principle 3.64 UNIX哲学9 - フィルタ化 ソフトウェアはフィルタである データを生成するのは人間 データにフィルタをかけて別の出力を表示するのがコンピュータ 故に、まず入力ストリームと出力ストリームに着目し、そのフィルタリングとして設計を考…

TPOP principle 4.5 コードの臭い

第4章 視点 principle 4.5 コードの臭い Bad smell in code. 言葉の復習 設計とは何か。 principle 1.2 コードは設計書 「基本設計」「詳細設計」「プログラミング」「テスト」「デバッグ」全てを「設計」と呼び、「コード」は設計書、「リリースビルド」が…

C++TT Chapter5 - SFINAE

考察・まとめ 問題 SFINAEは何の略か。 SFINAEとはどのような仕組みのことを言うか。 型特性を英語で言え。 型特性メタ関数とは何か。 型Tがiterator型を持っているか判定するhas_iteratorを様々な方法で実装せよ。

リファクタリング 第1章

問題 構造的に機能を付け加えにくいプログラムに新規機能を追加しなければならない場合、どうすればよいか。 リファクタリングをする時に、最初にすることは何か。 メソッドを抽出した際に、抽出したコードの責務が元のクラスにないことがわかった。メソッド…

LYH 9.1 ファイルとストリーム

問題 (1) foreverについて、型シグネチャと用途、importすべきものを言え。 (2) toUpperについて、importすべきものを言え。 (3) capslocker.hsを実装せよ。 (4) getContentsは遅延I/Oであり、入力が大きい場合は( )消費量の面で有利である。 (5) contents <…

入門ソーシャルデータ 1.1, 1.2

※本記事では、書籍を読んだときの自己解釈によるまとめや感想を記述しています。実際の内容とは異なりますのでご注意下さい。 1.1 概要 TwitterのAPIを概観し、頻度分析を使ってツイートから何らかの分析結果を導き出し、データマイニングの基礎を学ぶ。 学…

LYH 8.3 I/O アクションどうしをまとめる

8.3 I/O アクションどうしをまとめる main = do putStrLn "Hello, what's your name?" name <- getLine putStrLn $ "Zis is your future: " ++ tellFortune name 8.1と説明が重複するところがあるが、もう一度書く。 上のコードでは、getLineが副作用を扱っ…

LYH 8.2 Hello, World!

8.2 Hello, World! main = putStrLn "hello, world" これをhelloworld.hsとして保存し、 $ ghc --make helloworld と入力する。コンパイルされて、helloworldという実行ファイルが作成される。 8.2 確認問題 putStrLnの型を調べよ。(:t putStrLnの結果を示せ…

LYH 8.1 入出力

8.1 入出力 8.1 不純なものと純粋なものを分離する Haskellでは関数が副作用を持つことが許されない。木のようなデータ構造でさえ、要素を追加しようと思ったら、新しい要素をが追加された木を、新たに変数に束縛することで対応できた。しかし、入出力に関し…

LYH 7.11 型を司るもの、種類

7.11 型を司るもの、種類 Intの種類を調べたいとき、GHCiではどのように入力すればよいか。 1.に対して、値の型を調べるコマンドは何か。 具体型とは何か。具体型はGHCiではどのような記号で表記されるか。 Maybeの種類を答えよ。 Maybe Intの種類を答えよ。…

LYH 7.10 Functor 型クラス

7.10 Functor 型クラス 1.序文 Functorはどのような型クラスか。 Functor型クラスに属している型の例を1つあげよ。 Functor型クラスの実装を示せ。 3.中のfmapを読み、どのような関数か説明せよ。 リストに対するFunctorインスタンス宣言を示せ。 2.MaybeはF…

LYH 7.9 YesとNoの型クラス

7.9 YesとNoの型クラス 様々な型の真理値判定を可能とするためのYesNo型を宣言せよ。 1.に関して、0は偽、それ以外は真と解釈するように数に関してのインスタンスを定義せよ。 空リストは偽、そうでなければ真とするようにリストに関してのインスタンスを定…

LYH 7.8 型クラス 中級講座

7.8 型クラス 中級講座 1. 序文 型クラスはインターフェースのようなものである。型クラスはどのような振る舞いを定義するか。例を3つあげよ。 型クラスの振る舞いは何を定義することで得られるか。 Eqは、(3.1)が出来る値の型クラスである。Eqはどのような…

LYH 7.7 再帰的なデータ構造

代数(的)データ型の3種類を言え。( 1 ) リストは ( 2 ) または ( 3 ) のいずれかの値を取るデータ構造である。代数データ型を使って独自のリスト型 List a を実装せよ。( 4 ) ( 4 ) をレコード構文を用いて書け。( 5 )Cons とは ( 6 ) を言い換えたものであ…

LYH 7.6 型シノニム

新しい型を作る = ( 1 ) キーワード 型同義名(型シノニム)を作る = ( 2 ) キーワード例えば、Stringは以下ように型シノニムとして定義されている。 type String = [Char] 電話帳を定義してみよう。 type PhoneNumber = String type Name = String type Pho…