Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

中国語の勉強も始めました。

最近この界隈はほとんど英語と中国語でして、いい加減そろそろ中国語の勉強おしなくちゃまずいと思いまして中国語の勉強を始めました。はじめての中国語 (講談社現代新書)作者: 相原茂出版社/メーカー: 講談社発売日: 1990/02/16メディア: 新書購入: 3人 ク…

オペレーティングシステム おすすめ技術書

最近はオペレーティングシステムの勉強をずっとしていていろいろな本を読んだので、おすすめの技術書をまとめておこうと思います。オペレーティングシステムを勉強する大前提としてUNIX/LINUXシステムコール(プログラミングインターフェース)をある程度分か…

近況について

最近はひたすら本をよみ、映画を見るという毎日です。本は主にプログラミングです。Unix/Linuxやオープンソース、Web、AT&T、電子、ショックレーやチューリング、シャノン、ナッシュ、エジソンなどについての本を読んでいます。映画は最近見るようになりまし…

Unix/Linux おすすめ本

Unix/Linuxのおすすめ本を紹介していきたいと思います。まあ、LinuxカーネルぐらいITエンジニアなら理解しときたいですよね??? 初心者 1週間でLPICの基礎が学べる本 第2版作者: 中島能和出版社/メーカー: インプレス発売日: 2014/01/20メディア: 単行本(…

Bitcoin の動画

www.youtube.com

システムプログラミング

いまはLinuxプログラミングインターフェースを(あの分厚いやつ)をやっております。まあなんとなく、かってが徐々にわかってきました。VMのこともそろそろ始めようと思います。やること多すぎるよ。

屍者の帝国

いまさら、屍者の帝国の映画版を見たのですが、全然意味わからなかったので、後日、小説を読みます。

6月のまとめと7月にやること

6月は関数型言語をやるとか言いましたが、Haskellをちょっとやっただけでした。代わりに、オペレーティングシステムや言語処理をまじめに勉強し始めました。とりあえず図書館から有名どころの本は全部借りてきたので、7月中に全部読みたいと思います。プログ…

フィボナッチ数列 C++

ただのフィボナッチ数列。いわゆる再帰ってやつですね。 #include <iostream> using namespace std; int fib(int a) { if(a <= 1) return 1; return fib(a-1) + fib(a-2); } int main() { for(int i=0; i<20; i++) { cout << fib(i) << endl; } } 結果は1 1 2 3 5 8 13</iostream>…

最小公倍数と最大公約数

よく使いますね。 #include <iostream> using namespace std; // 最大公約数 int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a % b); } // 最小公倍数 int lcm(int a, int b) { int c = a * b / gcd(a,b); return c; } int main() { int a = gcd(256, 82</iostream>…

proof-of-work のpython スクリプト

Mastering Bitcoinの proof-of-work アルゴリズムのPythonスクリプトにコメントをつけてみました。特に難しくはないですね。 import hashlib import time max_nonce = 2 ** 32 # 4 billion def proof_of_work(header, difficulty_bits): # target は difficu…

正規表現 の勉強を開始

いままで正規表現を避けて生きてきたのですが、正規表現もそろそろちゃんと勉強しなくちゃいけないなあと思いまして、正規表現の勉強も始めました。とりあえず、オライリーの詳説 正規表現 第3版作者: Jeffrey E.F. Friedl,株式会社ロングテール,長尾高弘出…

Bitcoin Base58Checksum について

Mastering Bitcoin の Base58Checksum のコードにわかりやすくコメントを付けました。 #include <bitcoin/bitcoin.hpp> int main() { // Private secret key. bc::ec_secret secret; bool success = bc::decode_base16(secret, "038109007313a5807b2eccc082c8c3fbb988a973cacf1a7d</bitcoin/bitcoin.hpp>…

C 配列の要素の交換

ただの配列の要素の交換 #include <stdio.h> #define FALSE 0 #define TRUE 1 #define ASIZE 8 void display_array(int array[]); void find(int array[], int value); int search(int array[], int item); main() { int nums[ASIZE] = {1,34,54,22,46,75,2,25}; prin</stdio.h>…

C 配列の要素の入れ替え

ただの入れ替えです。 #include <stdio.h> #define ASIZE 8 void swap_elements(int array[], int a, int b); void display_array(int array[]); main() { int nums[ASIZE] = {1,9,3,6,8,5,11,7}; printf("This is the initial array: \n"); display_array(nums); swa</stdio.h>…

C 最小値の探索

ただの最小値の探索です。 #include <stdio.h> #define maxnumber 10 int minimum(int user_array[]); main() { int number[maxnumber]; int index; printf("Give me nine numbers and I\'ll print them backwards \n"); for(index=0; index</stdio.h>

配列の並べ替え

ただの並べ替えです。 reverse です。 #include <stdio.h> #define maxnumber 10 void run_backwards(int user_array[]); main() { int number[maxnumber]; int index; printf("Give me nine numbers and I\'ll print them backwards \n"); for(index=0; index</stdio.h>

C++を真面目に勉強してPythonの簡単さに気づいた話

最近、ずっとC++の勉強していまして、二か月ぶりくらいにPythonに戻ってきてやっとPythonの簡単さに気づきました。やっぱりPythonやRubyしか実務で使わない人も、一回 C++ をちゃんと勉強すべきですね。まあもっとも僕の場合は, C++ と Go が実務(?)で使うも…

オブジェクト指向について

C++の基本的な機能は理解したので、オブジェクト指向のもっと深い理解を得るために、オブジェクト指向入門をよんでます。オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)作者: バートランド・…

C 多次元配列とポインタ

Cでの多次元配列についてみていきます。まず初期化とアクセス #include <stdio.h> #include <stdlib.h> int main() { int matrix[2][5] = {{1,2,3,4,5}, {6,7,8,9,10}}; for(int i=0; i<2; ++i){ for(int j = 0; j<5; ++j){ printf("matrix[%d][%d] アドレス: %p 値: %d\n", i,</stdlib.h></stdio.h>…

ユークリッド 再帰

ユークリッドはこういう形の再帰が一番好きです。わかりやすいですし。 int gcd(int e, int l) { return (e==0)? l : gcd( l%e, e); } 早いかどうかは分かりません。

C++ 静的なメンバ変数とメンバ関数

C++の静的な(static)メンバ変数とメンバ関数に関するまとめ。グローバル変数でも表現できますが、まあどうせなら必要なものはクラスの中に入れておいた方がわかりやすいと思われます。 class sample{ private: static int count; ....色々 }; // このように…

はじめての数論

暗号をやるうえで数学は避けては通れないので、数論の勉強も始めました。特に楕円曲線をちゃんと理解しなくてはいけません。とりあえず、はじめての数論を読み始めました。はじめての数論 原著第3版 発見と証明の大航海‐ピタゴラスの定理から楕円曲線まで作…

バイオテクノロジーの勉強も開始

6月になりまして、関数型言語と一緒にバイオテクノロジーの勉強も始めました。あと圏論も勉強しようかなとか思ってます。まあ、プログラミングはできて当然で、あと、バイオテクノロジーやエネルギーの知識もあった方がよさそうなのでそっち方面も勉強してい…

5月の振り返りと、6月の目標

もう5月が終わってしまいます。この年になると毎月時がたつのが早くなっていきますね。5月にいったい何をしたのか、振り返ってみるとC++のクラスの機能、STL,データ構造、暗号のアルゴリズム(RSA),bitcoin とこんな感じになりました。5月はの勉強の進み具合…

clisp windows インストール

関数型言語も勉強しなくては、と思いましてとりあえずLispの勉強を始めました。ということで、2週間くらいかけて Land of Lisp を勉強しようと思います。Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発…

Bitcoin CAmount について

ソースコードを読んでいて、CAmount ってなんだったっけ? てよくなるので、メモamount.h #ifndef BITCOIN_AMOUNT_H #define BITCOIN_AMOUNT_H #include <stdint.h> /** Amount in satoshis (Can be negative) */ typedef int64_t CAmount; // 1BTC = 100000000satoshi</stdint.h>…

C++ List (STL) まとめ

C++の標準テンプレートライブラリのListをまとめてみます。begin() 要素の先頭を返す。 end() 要素の最後を返す。 push_front() 要素を先頭に追加する。 push_back() 要素を最後に追加する。 pop_front() 要素の先頭を削除。 pop_back() 要素の最後を削除。 …

C++ キャスト演算子

C++のキャスト演算子の簡単なサンプル #include <iostream> using namespace std; int main() { char ch = -1; int i1, i2; double d1 = 123.456, d2; i1 = ch; i2 = static_cast<unsigned char>(ch); d2 = static_cast<int>(d1); cout << i1 << ' ' << i2 << ' ' << d2 << endl; return 0;</int></unsigned></iostream>…

C++ Reverse アルゴリズム

C++のクラス機能をある程度抑えたので、STLの勉強を始めました。とりあえず、string と assert #include <iostream> #include <string> #include <cassert> // assertを使う #include <algorithm> using namespace std; int main() { cout << "Reverse algorithm" << endl; string str = "reverse a</algorithm></cassert></string></iostream>…