草プログラマー、それはつまり草

CS 会計 法律 サッカー 野球 bitcoin 数学 物理学 などいろいろやってます

2017-01-01から1年間の記事一覧

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

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

Unix/Linux 入門から中上級者まで おすすめ本

2018 11 23 更新Unix/Linuxのおすすめ本を紹介していきたいと思います。エンジニアをやっていれば望もうが望まなかろうが、嫌でもLinuxと関わることになると思います。まあ、Linuxカーネルぐらいは理解しときたいですよね???また最近はどの分野でも情報系…

Bitcoin の動画

www.youtube.com

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 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++を真面目に勉強してPythonの簡単さに気づいた話

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

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

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

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++ STLの技術書まとめ

C++の基本的な機能をある程度おさえたので、STL、標準テンプレートライブラリ、の勉強も本格的に始めました。とりあえず、2冊手に入れて、勉強しております。STL―標準テンプレートライブラリによるC++プログラミング 第2版作者: ディビッド・R.マッサー,アト…

pybitcointools を使った鍵操作 Bitcoin

pybitcointoolsについては、github.comで見てください。ちなみにブテリンはEthereumの創業者です。 import pybitcointools as bitcoin # learn more: https://python.org/pypi/pybitcointools # 秘密鍵を作成 valid_private_key = False while not valid_pri…

ビットコイン difficulty target と retargeting 

difficulty target は係数部/指数部形式で表す。指数部(exponent),係数部(coefficient)で target = coefficient * 2^(8 * (exponent - 3))^はXORです。またDifficultyはブロックの生成期間を10分に保つように動的に変化します。Difficultyは2016ブロックごと…

ビットコイン マイニング報酬のソースコードリーディング

ビットコインのマイニング報酬のコードを見ていきます。マイニング報酬は、トランザクション手数料の総額 + coinbase報酬coinbase報酬(BlockSubsidy)は50bitcoinから始まって、210000ブロックごとに半減していきます。以下のコードでcoinbase報酬を出します…

ビットコインの総発行量を求めるスクリプト

ビットコインの発行量は時間とともに少なくなっていきます。新しいビットコインはマイニングの報酬という形で生成されます。210000ブロックごと、およそ4年ごとに発行量は半減されていきます。以下のスクリプト(Python2)で総発行量を求めてみます。 # マイニ…

アセンブリ言語の勉強

アセンブラの勉強をさぼっていたので、一回ちゃんと勉強しなおすことにしました。とりあえず、アセンブリ言語スタートブック作者: 高田美樹出版社/メーカー: 技術評論社発売日: 2015/08/08メディア: Kindle版この商品を含むブログを見るをやっております。も…

アルゴリズムとデータ構造 入門書まとめ

アルゴリズムとデータ構造は極めて重要です。C言語の勉強をした後に、アルゴリズムとデータ構造の勉強をすれば、一気にプログラミングというものがどういう概念のものなのかが、わかるようになると思います。なおCのポインタがわかっていることが前提です。…

フルタイムでBitcoinの研究を始めました。

ある程度、C++やデータ構造、暗号、P2P、の基礎を理解できたので、本格的にBitcoinやEthereumの研究を始めて、しばらくはフルタイムのコントリビューターになろうと思います。だいたい2020年くらいまで、研究を続けて、その後、なにか本格的なビジネスが始め…

暗号技術大全を読み始めました

暗号の勉強を始めて少し経ちまして、いままでは結城氏の暗号技術入門を読んで、ある程度基礎的なことは分かった(?)つもりなので、暗号技術大全をやり始めました。暗号技術大全作者: ブルース・シュナイアー,山形浩生,Bruce Schneier出版社/メーカー: ソフト…

ブロックチェーンでなにができるのかずっと考えている

ブロックチェーンの勉強を最近ずっとしているわけですが、いったい何ができるのか、何をするべきなのかずっと考えている毎日です。いろいろできることが多いことはちょっと本を読めばわかるのですが、真面目に自分で何かを作ろうと思ったら、金融や法律、サ…

プログラミングを挫折して嫌になっている人向けの本のまとめ 

多分、ずぶの素人がプログラミングの勉強するときにいきなりコードの勉強をするのはあんまりよくないんじゃないかと思っていまして、物理とかも同じで、いきなり(受験用参考書で)物理方程式を覚えようとすると大体挫折するんじゃないかと思います。まずはそ…

【2019】C++のオススメ書籍まとめ 入門から中・上級者まで

2019年4月8日行進結局 C/C++ ができなくてはいけないのである。あとLisp,Haskellぐらいはやるべきでしょう。ということで一部で難しいと言われている(?)C++の技術書をまとめてみます。 はじめて型付き言語(CやC++)を学ぶ人 型付き言語がはじめてという人はま…

ゼロから始める物理学入門 おすすめ本

物理学をはじめてやる人向けに、物理学の本を紹介していきたいと思います。まず大学学部の物理学は、力学、解析力学、電磁気学、熱統計力学、量子力学、相対論あたりです。また、物理は基本的に微分方程式なので、微積分の基本は知っておかなくてはいけませ…

g++ で C++11, 14, 17 を利用する方法。

なんかオプションが必要みたいです。 なおここで述べるのは gcc g++ の2つですC++11の機能を有効にする GCC 4.3から4.6までは、-std=c++0xオプションを使用する。 GNU拡張を有効にする-std=gnu++0xオプションもある。 GCC 4.7以降は、-std=c++11オプション…

C++ ubuntu 環境構築 

C++ですが、Windowsでの環境構築がなぜかうまく行かない。なぜかできないし、なぜ出来ないかもわからないので、とりあえずC++はUbuntuマシンでやることにしました。まず、g++がインストールされているか調べます。 $ which g++これで user/bin/g++ と出てく…

blockchain 暗号の勉強を本格的に開始

ブロックチェーンや、暗号通貨を真面目にやるに当たって、暗号についても真面目に勉強し始めました。いままで暗号については本当に基本的なこと(一番簡単な入門書レベル)の知識しかなかったのですが、本格的に設計・開発を始めるに当たって、ちゃんと専門…

いろいろな本をたくさん読んでいる毎日

とりあえず明らかに知識が足りなさすぎるので、最近はいろいろな本をたくさん読んでおります。またやっとインターネットが自宅で使えるようになったのでちゃんとブログも書いていきたいと思います。本は基本図書館で借りて読むことにしています。いままで書…

県立川崎図書館は技術書がたくさんあった

金欠著しいので基本的にはなるべく書籍は買わずに図書館から買うようにしているのですが、大きい図書館と言えば国会図書館なのですが。川崎に近い人は、県立川崎図書館がオススメです。普通の図書館はあまり技術書がおいてないのですが、大学の図書館ですら…

中原図書館が結構いいところだった

いままで大学の図書館をずっと使っていたのですが、今日は自宅近くの図書館である中原区図書館に行ってみたら意外といいところでした。今度からはこっちを使おうかしら。まあ大学と比べると本の量はどうしても劣りますが、結構最近できたものなのできれいで…

Copyright © 2016 へなちょこプログラマー All rights reserved.