「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.8日付、時刻、複合データ d = datetime.now() print(d.isoformat()) """ iso 8601 fromat yyyy-MM-ddTHH:mm:ss 日本標準時(JST) 2014-10-10T13:50:40+09:00 協定世界時(UTC) 2014-10-10T04:50:40Z """ 結果 from dateutil import parser d = parser.parser…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.7MongoDB pymongoはinstallされていなかった。 pip install pymongoでver-3.5.1がinstallされた MongoDBをinstallした場所(C:\Program Files\MongoDB\Server\3.4\bin)に移動して >md c:\data\db を実行するとCドライブ直下にdata\dbフォルダを作成する …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.6SQL sqlalchemyはcondaに入っていたのでinstallする必要はなかった。 3-6.py nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'n…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.5JSON 3-5.py json形式のファイルを作る import json nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'nationality':'British', …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.4 CSV,TSV,行/列データ形式 import csv nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'nationality':'British', 'sex':'male',…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.3システムファイル nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'nationality':'British', 'sex':'male', 'year':1933}, {'ca…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

2.4.8 JavaScriptのクロージャとモジュールパターン 2-4-8.js function Counter(inc){ var count = 0; var add = function(){ count += inc; console.log('Current count:' + count); } return add; } var inc2 = Counter(2); inc2(); inc2(); inc2(); inc2(…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

2.4.5 Underscore 2-4-5.js var journeys = [ {period:"morning",times:[44,34,56,31]}, {period:"evening",times:[35,33]}, {period:"morning",times:[33,29,35,41]}, {period:"evening",times:[24,45,27]}, {period:"morning",times:[18,23,28]} ]; var gr…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読み始める

2.3.6簡単なデータ処理 例 2-4(page20) 2-3-6.js //A var studentData = [ {name:'Bob',id:0,'scores':[68,75,76,81]}, {name:'Alice',id:1,'scores':[75,90,64,88]}, {'name':'Carol',id:2,'scores':[59,74,71,68]}, {'name':'Dan',id:3,'scores':[64,58,53…

言語のしくみを読む

ライブラリとして使われているkhash.hを調べる。 C言語用のハッシュテーブルライブラリ。 ヘッダファイルkhash.hをインクルードするだけで利用できる。 マクロが多用してありその点、気をつけないとこける。 ハッシュテーブルに名前をつけ他のハッシュテーブ…

ようやくすごしやすくなった。

今日は反省会

Google Maps javascript API V3入門マスターを読む

GoogleのAPIkeyは以前取得したものがあったのでそれを使用 例題のsample.html,map.jsを入力して、sample.htmlをブラウザーで読み込ましたが エラーがでて地図が表示されない。 デペロッパーツールを表示させると ApiNotActivatedMapErrorがでて地図が表示さ…

言語のしくみを読む

例題の05filler.strmを実行してみる オプションの-vをつけて実行してみると構文木を表示してくれる。 ./streem -v ../examples/05filter.strm 05filter.strmの中身 seq(100) | filter{x-> x % 2 == 0} | stdout 構文木を表示させたもの NODES: OP: op: | OP:…

言語のしくみを読む

パーサで解析されたスクリプトは構造体のリンクで表現されたノードで返される。 state.lvalにつながれたリンク。 node(node_value) type:NODE_STMTS void** data node(node_op) type:NODE_OP op:strm_string len:1 ptr:“|” lhs: node(node_values) type:NODE…

言語のしくみを読む

./strem ../examples/02hello.strmで実行 main.cのmain関数内のnode_parse_file(&state,argv[i])で止める node.c内のnode_parse_file(parse_state p,const char fname) fnameにはコマンドライン引数"../examples/02hello.strm"が入っている fnameで指示され…

言語のしくみを読む

node_run関数 strm_seq_init(),strm_socket_init()が準備を完了させたら 次に呼ぶのがexec_expr関数で、渡されたnodeをswitch文で分岐させながら taskを作ってキューに登録する。登録されたtaskはqueue.cのstrm_queue_exec関数が 実行を行っている。 キュー…

言語のしくみを読む

main関数からstrm_var_def関数を呼び出す 引数の"ARGV"はstrm_stringに保管されてる、av変数にはコマンドラインの 引数が入っているので"ARGV"の名前で保管される。 次はnode_run関数を呼ぶ //exec.c node_init関数内でstrm_var_def関数を使ってシンボルをハ…

言語のしくみを読む

main関数から読んでいく $ ./streem ../examples/02hello.strm main関数 オプション処理部はパスして node_parse_init(&state) //node.c state構造体の初期化 e_progはNULLなのでelse節以降を実行、引数を持っているので最後のelse節を実行 for(i = 1;i < ar…

言語のしくみを読む

Cの開発環境を整備 ソースの分量が増えてきたのでエディタだけで読むのが困難になってきたので Cの統合環境を入れることにした。 最初はeclise C/C++ Linuxを入れたが使い方がわからず。 次にNetBeans IDE 8.2 C/C++ Linuxを入れたところ比較的わかりやすく …

言語のしくみを読む

2-7AST(抽象構文木)に変換 今回はsrcフォルダーに大幅に追加がなされた。 早速makeしてみるが、node.cコンパイル中にy.tab.hがないとエラーが出ている。 Gitで次のtag(201507)に行ってみるとy.tab.hがあったので201506は無視して201507tag で実行。 binフォ…

言語のしくみを読む

2-6キャッシュとシンボル stringを生成するためのstruct sym_keyが新たに定義されている。 渡された文字列の特徴からハッシュ値を取り出している。 これがシンボル検索の高速化に寄与しているのかな? khash.hが新規に追加,string.cが大幅な書き換えとなって…

言語のしくみを読む

2-5マルチスレッドとオブジェクト core.cのstrm_loop関数を中心にマルチスレッド対応になっている。 queue.cにpush_high_task,push_low_task関数が追加などの変更がある。 ncpu.c,string.c,value.cが新規で入っている srcフォルダにも新規ファイルが入ってい…

pythonのソースコードを調べる

Objectsフォルダの中身を調べる それっぽい名前としては boolobject.c bytearrayobject.c bytesobject.c cellobject.c classobject.c codeobject.c complexobject.c descrobject.c dictobject.c enumobject.c fileobject.c floatobject.c frameobject.c func…

言語のしくみを読む

2-4イベントループ Gitkrakenのタグを201503に移動させてlibフォルダを見ると main.c core.c io.c queue.cがはいており $ makeでa.outファイルができた。 $ ./a.outで入力待機状態になったようなのでstreemと 入力するとSTREEMと標準出力に表示された。 停止…

言語のしくみを読む

2-3文法チエッカーをまず作る Ubuntu16.04LTS(64bit)にGitクライアントのGitKrakenをinstallした。 GitKrakenに https://github.com/matz/streemをクローンさせて手元にリポジトリを作る 最初のタグ201502に移動してResr master to this commit>Hard-discard…

pythonのソースコードを調べる

この構造体のメンバーには接頭子tp_が付けられている。 typeobjectの頭文字と予想される。 typedef struct _typeobject { PyObject_VAR_HEAD const char *tp_name; /* For printing, in format "<module>.<name>" */ #この構造体の名前を要求されたときのフォーマット? P</name></module>…

pythonのソースコードを調べる

もっとも頻度の高いキーワードPyObjectは Includeフォルダのobject.h内に定義してある 構造体でした。 postd.cc Pythonの全てのオブジエクトの元になっている構造体である。 マクロを展開すると typedef struct _object { struct _object *_ob_next; struct …

pythonのソースコードを調べる

Cファイルからインクルードしているヘッダファイルを調べる def iter_docs(file): """ 指定したCファイルにインクルードされているヘッダファイルを返す """ for line in file: if line.startswith("#include"): #include文に続くヘッダファイル名を抜き出す…

pythonのソースコードを調べる

ファイル内の単語頻度をしらべる def freqdist_count(path_name): """ 指定したpath_nameを読み込んで、そのテキスト内単語の頻度を表示する """ count_dic = {} for path in path_name[:]: with open(path,"r") as f: text = f.read() #コメントを削除(複…