なんとなく生きてます

雑記帳備忘録チラシの裏

技術関係

「冬はヒルクライムのタイムが遅くなる」のか、PythonとStrava APIを使って検証しました

まえがき 個人的に興味があったタイトルの疑問について、手に入る範囲のデータで検証をしてみました。ちなみに、前回の記事 emeraldwar.hatenablog.com は割とふざけた調子で書いていましたが、今回は真面目なトーンで書いていくつもりです。 事の発端 きっ…

Pythonの引数は参照渡しだけど値渡しに見えることがある

例を示す. Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ls = [0, 0, 0] >>> def hoge(lst): ... lst[0] = 1 ... return lst ... >>> hoge…

Pythonでの正規表現のコンパイルとグループマッチング

Pythonの正規表現を使うときのメモ ポイントはコンパイルしてそれを使いまわすこと, また, groupを使うこと. Python 2.7.13で実行. >>> import re >>> str1 = "(arrest-vb _u2)" >>> rep = re.compile("\((.+)\s(.+)\)") >>> m = rep.search(str1) >>> m.gro…

JavaScriptのfor〜in文は値渡しである

タイトル通りJavaScriptのfor in文の値渡しについて、注意点をメモ。 var a = 1; var b = 2; var c = 3; var arr = [a, b, c]; var func1 = function(inputArr){ for(var n in inputArr){ n = 999; } }; func1(arr); console.log(arr); //出力は[1, 2, 3] fo…

JavaScriptでPOSTメソッドの必須でないパラメータの扱い

ちょっとメモ サーバ側の処理をJavaScriptで書いている時にPOSTメソッドで必須でないoptinalなパラメータがくっついてない場合をどう判定すればよいのかわからずいろいろと試した。 たとえば、/hogeというエンドポイントがサーバにあって、必須パラメータがi…

dist_not_existsとdist_exists_or (ソフトウェアの基礎、Coq)のメモ

存在証明が絡むとややこしくなったのでメモ (** **** Exercise: 1 star (dist_not_exists) *) (** Prove that "[P] holds for all [x]" implies "there is no [x] for which [P] does not hold." *) Theorem dist_not_exists : forall (X:Type) (P : X -> Pr…

Coqの帰納的命題定義の型

ちょっと複雑だったのでメモ. Coqで帰納的に命題を定義する. 例: 自然数nは自然数m未満である. Inductive It : nat -> nat -> Prop := | It1 : forall n:nat , (It (S O) (S n)) | It2 : forall n:nat m:nat , (It n m) -> (It (S n) (S m)). とする. このと…

はてなブログの目次をカッコよく(?)付ける方法

目次 目次 はじめに はてなブログに目次を付ける方法! 枠をつける(カスタマイズする)方法! はじめに Markdownではてなブログで目次を付ける方法なのですが、 はてなブログが進化したっぽいので、前にも記事にしていた点をまとめ直します。 ちなみに過去…

false_beq_nat (ソフトウェアの基礎、Coq)のメモ

Coqの帰納法を忘れかけてたのでメモ (** **** Exercise: 2 stars (false_beq_nat) *) Theorem false_beq_nat : forall n m : nat, n <> m -> beq_nat n m = false. Proof. intros n. unfold not. induction n as [ | n']. - intros m H (**ここでmをintros**…

編集距離(レーベンシュタイン距離)を求めるプログラムをJavaScriptで

function onButtonClick() { target1 = document.getElementById("input1"); target1.innerText = document.forms.id_form1.id_textBox1.value; target2 = document.getElementById("input2"); target2.innerText = document.forms.id_form1.id_textBox2.val…

Macのtreeコマンド

Macのtreeコマンド導入したのでメモ。 フォルダの階層構造をテキストにして出力してくれる。 インストールは $ brew install tree でできる。使用方法は、階層を木構造で出力したいディレクトリに移動して、 $ tree -N -L 1 という感じでOK。ちなみにオプシ…

はてなブログのインラインコードの色を変更する方法

ちょっといじったのでメモ はてなブログのインラインコードの色を変更する方法。 カスタマイズするには、CSSの.entry-content code {〜}のなかをいじればいい感じ。自分は、 /*インラインコードの色*/ .entry-content code { font-size: 90%; margin: 0 2px;…

emacsとAtomのキーバインドを自分好みにカスタマイズする

emacsとAtomのキーバインディングを自分用に割り当てる方法です. emacsのショートカットキーでコードの整形を行うC-M-\ってのが有りますけど、Macだとなぜかコマンドでバックスラッシュが入れられなくて困ってた. というわけで、これを書き換えます. 現在の…

ソフトウェア工学(ウォータフォールモデルの流れとアジャイル開発の方法)

序 ソフトウェア工学の講義の事項とその流れをざっと ソフトウェア設計方法のうち主にウォータフォールモデルに焦点を当て、 その上流工程である、「要求定義、分析」と、「設計」段階の流れを確認する さらに、ソフトウェア開発のプロジェクト管理の主流で…

Markdownでのアンカーリンクの活用と目次の作成方法(テンプレ)

追記:本記事ではHTMLの基本に従って目次を付ける方法を記していますが、 2015年9月9日から新しく簡単にはてなブログに目次をつける記法が追加されました。 その点については emeraldwar.hatenablog.com で新しくまとめ直しました。よければ御覧ください。 …

MacでのAndroid端末のファクトリーイメージの焼き方、ダウングレードの方法 

Android端末のファクトリーイメージを焼く機会があったのですが、その時に少し苦労したので 今後のためにここにまとめておくこととします。 実際に僕はMacを使ってリリースされたばかりのAndroid 6.0のマシュマロのファクトリーイメージをNexus5にインストー…

Macのsed

先日シェルスクリプトをかじってみたらターミナルのコマンド"sed"の扱いがMacだけちょっと違うというかちょっと違ったコマンドがインストールされているみたいなので忘れないように書いておく。 sed -i '' 's/絢瀬絵里/南條愛乃/' hogehoge.txt これでhogeho…

コンパイラ作成のメモ書き

実験でコンパイラを作成した過程で必要になった事項を適当にまとめておく。 関数フレームとは実験で使う仕様に変更して書いてあるので一般的なものとすこし仕様が違うからちょっと注意。あと最後に例が少なくて本当に苦労したので実際のプログラムをアセンブ…

MacでのJDKのバージョンを簡単に切り替える方法

前からJDKは1.6を使っていたんだけれども半年ほど前に1.8に変えたらなんかバッテリーの減りが異常に早かったのでよく調べてみたら、どうやらJDKのバグで1.7とか1.8はバッテリーの減りが早くなるとのこと。それでいままでずっと1.6を使ってきたんだけども今回…

Racketのeq? とequal?の違いについて

バグ探しで1時間ぐらい無駄にしたのでもう懲り懲りなのでここに書いておく。 そもそもこのまえコードをTAの方に見せたときに、「そういえば私もよく覚えてないんだけどeq?とequal?の違い分かってる??」って聞かれて、その時は適当に「えーっと、、評価結果…

Racket言語におけるconsとlist*、listの違い

今日久々にlet*に遭遇してすっかり忘れていることに気づいた。 まとめておくと (list 1 2 3) は (cons 1 (cons 2 (cons 3 '()))) になって、 (list* 1 2 3) は (cons 1 (cons 2 3)) になる。 ちなみに (list* a b) だと (cons a b) になる。 それにしても括…