2016年12月18日 (日)

「氷菓」を読んで

本屋に寄ってみたら、
アニメで見たものの原作があったので、
手に取ってみた。

氷菓
米澤穂信:著(角川文庫)

アニメで見てるけど、だいぶ前だから、
なかなかに楽しめた。
人物の描写とアニメの絵に
ちょっと違和感があった気もするけど、
違和感だったり、
アニメの演出だったりするんだろうな。
記憶によれば、アニメは原作そのままな印象。

それよりも、初版が10年以上なのに、驚いた。
初登場はさらに前なんだけど、
アニメはいつだったかな。

小説とライトノベルの境目がよくわからないが、
読みやすい部類だと思う。
ミステリーとなっているけれども、
謎を話題として、学園生活を描いた作品だと感じる。

続きも出会えば、手に取ってみようかな。
どれが2巻なのかがわからないけど(汗)


| | コメント (0) | トラックバック (0)

2016年12月11日 (日)

C言語からGo言語へコールバック登録する(Go 1.7.4)

Go言語でプログラミングするのは楽だな。。
と今だけ思ってる。
だけど、いろいろやろうとすると、
どの言語でもあるけど、面倒だなぁ。

C言語は使う時が多いので、
Go言語でC言語のライブラリを作ろうとしてみた。

簡単に呼ぶならできそうだったので、
C言語からコールバックを登録して、
Go言語から折り返す。

主にポインタとかポインタとか、ポインタがつらい。
C言語だと全部ポインタで、通るけど、
Go言語はそれより型がきっちりしている印象が出た。
夢のポインタ (void*)さんがない影響かな。


まず、C言語から呼ぶとか、Go言語から呼ぶは、
どうにかなりそうな感じだった。

The Go Programming Language
Command cgo

CからGo言語を呼ぶ場合は、
「C references to Go」にあるように、
exportってキーワードを使えば、C言語用のヘッダファイルも出してくれる。
C用のライブラリにするのは、こんなコマンド。

go build -buildmode=c-archive hogehoge.go

反対にGo言語からC言語を呼ぶ場合、
「Go references to C」にあるように、
ブリッジ用のメソッドをGo言語側に用意する必要があるようだった。
fortytwo がC言語側で定義されてるイメージになる例。

これを組み合わせると、何故かトラップが発生する。

メソッドに、export を指定すると、どうも、
import "C" より上のメソッドもC言語向けヘッダに出力される。
そのあとに、C言語向けのヘッダを読むようで、
重複定義になってしまう。

だから、exportを指定するGoファイルでは、
C言語用関数の実体は書けないみたい。
staticにすれば、いいみたいだけど、
それもヘッダに出ちゃってる。


そんなこんなで、
C言語からコールバックを指定するような場合、
export するGoファイルと、
ブリッジの実体を書くGoファイルを分ける必要があるみたい。

実体を書くだけで、
重複とエラーが出るので、
かなりわかりづらいけど、
今のcgoの仕様なのかな。

githubのcgoの
Function pointer callbacks

には、そんな例になってるので、
これが正解なんだろうな。

わかるまでは大変だな。
そして、どの言語も罠があるもんだな。


| | コメント (0) | トラックバック (0)

2016年12月 4日 (日)

makeの代わりにGradleを使ってみる

go言語を始めてみた。

いまだに、いいディレクトリ構成とか、
パッケージとかがよくわからないのだけど、

go build src/package/path

みたいな形でコマンドをうたないとだめっぽいのが分かった。

そして、GOPATH さんをうまいこと使わないといけないらしい。

毎回やるのが面倒くさいのは確かなので、
GOPATHの上書きと、ビルドコマンド実施を簡単にやりたい。
Makefileを作って、make コマンドを実行すればいいのはわかってる。

こんな感じだろうか。

export GOPATH=${GOPATH}:${CD}

all:
go build src/package/path

ただ、Windowsでやると、makeがないんだよね。
Windowsさんは、文字コードもあるし、
あまり使いやすいとは言えなくなってる。

ってことで、Gradleを使ってみようと思い立ったが、
結構、初心者には敷居が高いように感じてしまった。

単に、Makeはインストールしてないけど、
IntelliJ IDEAをインストールしてたので、
Gradleは入ってただけなんだけど・・・

Android Studioとかでは、設定の追加ぐらいはしてるが、
結局、プラグインが頑張ってる感じかな。
逆に、プラグインのマニュアルとにらめっこすることにはなる。

makeの代わりにする分には、
単純で良さそうだけど、
つまづいたなぁ。

Windowsなので、PATHのセミコロンとコロンの違いはあるけど、
こんな感じでいいらしい。
(IntelliJ IDEAで枠だけ作ってもらった)

task build << {

String goProjectName = "src/package/path"
exec {
Map env = new HashMap()
env.putAll(System.getenv())
String goPath = env["GOPATH"]
env.put("GOPATH", goPath + ";" + projectDir)
environment env
commandLine "go", "build", goProjectName
}
}

環境変数とか、もう少しうまくできるんだろうなぁと
思いつつもとりあえず、動かす方を優先。

プラグインがあればいいかもしれないけど、
自分で作る分には、もっとサンプルがほしいな。

それにしても、ココログのpre属性が変。
コード書くときにつらいなぁ。




| | コメント (0) | トラックバック (0)

2016年11月27日 (日)

「気を整えて夢をかなえるリセット整理術」を読んで

買って積んでた本を整理がてら読んでみた。
ずっと読んでない本って、もう、読まないでいいよねとか思いつつ。

気を整えて夢をかなえるリセット整理術
苫米地英人:著(長岡書店)

本のタイトルは整理術となってるけど、
この本は、正確には、整理術ではない気がする。

どちらかというと、夢をかなえようっていう本かな。


夢を描くことで、夢に近づけるという進め方だけど、
夢をかなえるための取捨選択をする上で、
当然、部屋のアイテムや、身の回りのものも、
夢を目指したものに変化する。
その変化を起こすことで、整理される。

夢がよくわかっていない私には、
つらい整理術に見える。
なので、同じように手法を求める目的だと、
一致しない本になるのかな。

逆に、夢を探す人には、
その探しからの一例を示してくれる本になる。

タイトルは、手に取る人を捕まえる意味もあるけど、
本の内容というか、著者の力点は、
タイトルから離れてる気がしてならない。

ただ、夢と周りの物の結びつきや、
未来を起点とする視点は一度味わってもいいかな。
それを見せる本だった。



| | コメント (0) | トラックバック (0)

2016年11月20日 (日)

「OSC福岡2016」に行ってきた

ブログは久々というか、
前の記事が書きかけて放置されてた。
もう記憶にない。。(汗)

引きこもってたのは確かだけど、
久々に太陽の光を浴びるついでに、
バスに揺られて、OSC福岡に行ってきた。

OSC自体は2回目だけど、
前は広島の1回目だったなと遠い記憶を探ってみるが、
引き出しに何もなかったりする。


そんな遠い記憶をカテに、
会場の百道が地下鉄から遠いのを振り切って、
予定通り遅れて出発した。

オープンソースなのに、
Androidの話がないなぁと少し悲しい気もしたが、
適当に旬っぽいのを見た感じかなぁ。

今さら聞けない人のためのDocker超入門
資料は、SlideShare にあるもの。
企業紹介で、オフィス環境は魅力的だったけど、都会過ぎるのでなんとも。
本題のDockerについては、イメージ的なものがつかめる感じでよかった。
特に、VMとの違いが曖昧だったので、比較表は価値があるかな。
そして、当面使い道がないのかなともわかってしまったのが、少し残念。
サーバー用途ではいいらしいけど、
WebAPI構築とかが得意分野になるのかな。
やるとしても、まず、ビルドサーバーとかになりそうなので、
そうなら、VMのが利点ありそうだ。
個人的には、後回しにして良い分野とわかっただけで、よかったのかも。

学生ライトニングトーク大会
ご飯食べながら聞いたけど、学生さんすごいな。
いろんな意味で。。
”デスマのリーダしてます”みたいなのは、
悲しい現実を見てしまった感がする。
そして、講評制度があるのがびっくりした。
卒論の練習みたいで、怖いから、知らずにやってたら絶望しそう。

Raspberry Piのいろいろを探る。
Raspberry Piの話が聞きたかったので行ってみた。
接続とか初心者的なことかと思ってたら、
政治的なというか裏話的な内容だった。
技術というより、いろいろ苦労してるんだなと感じさせられる内容。
あと、やっぱ、英語必要だねと、重ねて突きつけられたなぁ。

HTML5レベル1技術解説セミナー
HTML5は、単純に仕組みを知りたかったのだけど、
広義のHTML5だったので、触り程度だった。
時間的に仕方ない面もあったが、
HTML5だけでなく、CSS3も含むと、45分じゃ無理だよね。
ドキュメント階層みたいところを聞きに行ったつもりが、
CSS3も含めるので、新しいタグと属性が中心。
そんな感じで、デザイン中心となってしまった。
代わりの話は聞けたけど、HTML5の知りたかった点はおあずけ。
昔、タグを覚えてただけだから、階層とか意識してた記憶がないんだよなぁ。
ロボット検索の為に階層が追加されたと聞いた点だけは、
妙に納得してしまった。

Raspberry Pi でオーディオを初めてみよう!!
Raspberry Pi 関連なので行ってみたけど、
求めてた技術的なことだった。
ただ、方向がとがり過ぎてた。
I2Sが使えるよぉ~とか良かったけど、
まさか、電源ノイズの話が出るとは思ってなかった。
アナログ回路は奥が深いなと感じつつ、
Raspberry Pi 周りの人は、いい意味で、変態さんが多そうだ。

AzureでOSSを気軽に試そう!~ LAMPからDevOpsまで ~
最初は、Grub2を聞こうかと思ったけど、
最近、デュアルブートより、VMかなと直前で変えてしまった。
いつもの”なんでもAzureで動くぜ”みたいな話は置いておいて、
便利なイメージセット集みたいなのがあるのを知った。
bitnami だったかな。
検索すると、他のクラウドもサポートしているので、違ってるかも。
説明にあったけど、日本語サポートというか、日本法基準なのが、
国内においては強みになりそうな気もする。


ってな感じで、技術ばりばりよりも、少し柔い感じだった。
ただ、やっぱり、熱があるなぁとは感じた。
個人的には、日々だらだらしてたので、
いいきっかけになればいいなぁ。
題材探しからになってしまうが。


| | コメント (0) | トラックバック (0)

2016年6月 1日 (水)

「Scala福岡2016」に行ってきた

Scalaを実際に書いたことはないけど、
Scalaの初心者ページは見てたので、Scala福岡に行ってきた。

書いたことがないから、ほぼわからない気もしていたが、
なんとなく雰囲気がつかめたのは、よかったかな。
ただ、実際に書くとすると、何をしたらいいのやら。。

さて、会場は、初めての場所だったが、
入口の狭さと比べて、中は広めだった。

ハンズオンは、PCの持ち込みが必要だったので、
今回は拒否して、実践トラックで、もふもふしてた。

では、以降にそれぞれのセッションについて書いていく。


サーバーレスScala
資料:Serverless Scala

Pythonみたいにツールを書くとか、
ちょっとしたものを作るための話かと思ってたが、違ってた。。

ちょっとしたものというのは、合っているけれども、
web上にAPIを作る話だった。

AWSを利用する話だったが、
AWS LambdaとAPI Gatewayを利用して、
ちょっとしたAPIを作るという話。
これを軸に、サービスとサービスの橋渡しをする。
ツールっぽく利用する方法として、
サーバ系初心者には、おもしろそうな話には思えた。

デモを見て、Scala初心者だからなのか、
antみたいなビルドツールがあるんだなと感じたのが一番の衝撃。


Play Framework 2.5 でつくる Web アプリケーション
資料:Scala Fukuoka Play 25 2016

Play Frameworkの特徴的な話と、その突っ込んだ説明だった。
Scalaというより、Playに目を向けた話。
フレームワークなので、こんな便利なところがあるとか、
ここはちょっとダメだったの話があった。

Scala自体がさっぱりなので、
気になったのは、コンパイル時間の話と、バージョンアップの話。

資料の時間が短めだったので、
何とも言えないけど、そんなに遅いのだろうか。
今は、でっかくなると、
気になるレベルなのかなぐらいの感触しかないので、
実際にやってみないとわからない悩みだろうな。
Androidも1日かかるからなぁ~とか遠い過去を眺めてた。

あと、バージョンアップで、互換性がないのがつらそう。
フレームワークじゃなくても、
前のが動かないのはつらいよね。悲しいよね。


エレガントなコードのための関数プログラミング入門
資料:Scala Fukuoka

最初は、こんな話が続くのかと思ったりもしたが、
Scalaを知らないだけに、楽しめた話だった。
結局、関数型プログラミングは謎のままだが、
式と文の話は、手続型との区別の話としてわかりやすかった。

ただ、PlaceholderとMethod Valuesの説明とか、
消化不良なものもあった。
コンパイルで差があるらしいけど、
結局意識する必要はないのかなとも思ってる。

突っ込んだところは、やってからおいおいだろうけど、
(使うとつらいこともあるという説明もあったし)
関数型への入門として、楽しめた。


Option型を使いこなして初心者から中級者へ
資料:Option型を使いこなして初心者から中級者へ / scala fukuoka

Optionという謎の型の話だった。
当初、nullとさよならするために、Optionがあると始まった。
これだけだと、手続き脳からすると、
最初にnullチェックをすればいいじゃんと思ってしまう。

関数型的な思想だと、関数の置き換えができない的な観点から、
NGな思想だと思えるが、better-javaと言われると、使うかなと悩む。

ただ、最後の例のところで、Futureを使うところがある。
ここに関しては、この機能あれば、楽なんだろうなと思った。

同期待ちをがりがりと書かずに、
Optionを利用したfor式の記述で、勝手に待ってくれるらしい。
すごく、すっきりしそうな記載だった。


まとめ
各セッションはこんな感じで、初心者としては、
消化不良もあるが、雰囲気がつかめたのは収穫だったかな。
どちらかというと、Scalaの考え方が、おもしろいんだろうなと感じた。

サーバに出会わない世界だと、
scala自体を見かけることがないので、
手始めが難しいが、なんかネタを探すかなぁ


リンク:
connpassのScala福岡2016


| | コメント (0) | トラックバック (0)

2016年3月22日 (火)

システムプロパティのガードの仕組み on Android 6.0

久々にシステムプロパティの仕組みを見てみたら、
ちょっとずつ変わってるのね。

adb shell getprop [<name>]
adb shell setprop <name> <value>
で見たり、変えたりできるけど、 変えるのはいろいろ制限がある。

そして、ここもSELinux対応のときに、
SELinxuの仕組みでガードがかかるように変わってるらしい。

組み合わせに使ってるbionicのほうも、
C++化して読むのがつらくなってるし、なんだかな。。。


仕組みは、ファイルを共有形式でメモリにマッピングして、
各プロセスから見る感じ。
書き込みに関しては、initさんが制御するので、
ソケットを経由して、initさんがいろいろチェックする。
LSM導入前は、ガードがuid/gidのチェックだったのに、
LSMの仕組みを利用したチェックになったのね。

bionic側の比重も高くなってる気もするけど、
共通部分を考えるとそんなものかなぁ。

C++を少しはやらないと、置いて行かれるな
(プレイスメントnewとは初めて知った・・)

initさん側は、system/core/init/property_service.cpp 辺り。
bionicさん側は、bionic/libc/bionic/system_properties.cpp 辺りを見て、
もごもごしてた。



| | コメント (0) | トラックバック (0)

2016年3月 6日 (日)

「京都寺町三条のホームズ」を読んで

長い期間が開いてたけれど、
本は適用に読みふけってた。
あと、Gradleさんとも少しは友達になれたかな。。

京都寺町三条のホームズ京都寺町三条のホームズ2
望月麻衣:著(双葉文庫)


ライトミステリーって言葉と表紙の絵につられて買ってみた。

ライトミステリーってのが消化できていない言葉なのだけど、
殺人とかひどい感じじゃなくて、
日常のちょっとした事件を解くみたいな感じだったかな。
どこかにあったけど、曖昧のまま。

ただ、読んで行くとわかるだろうが、
個人的にはミステリーって感じがしない。
探偵役が超人的なのもあって、
ほんわか恋愛模様がある日常を描いた感じだった。

題材として、古美術や京都を取り入れた物語。
描写としてきちんとしてあるのだろうけど、
古美術も京都もさっぱりな私には、
風景を思い浮かべる材料がないのがつらいところ。
この点は、魔法とかSFが好きだから、仕方ない。

ってことで、ミステリーを目当てとすると、
ちょっと弱いのかなと感じる。
流れが速いってのも一つの要因なのかもしれない。

2巻の最後の物語への伏線かと思うと、
少しましだったけど、ちょっと投げ出しそうだった。

キャラに愛着を持って楽しんでほしいって感じかな。
とりあえず、3巻も続けてがんばる(謎)




| | コメント (0) | トラックバック (0)

2016年3月 5日 (土)

「独学術」を読んで

だいぶ期間が開いてしまったが、
いつものごとく、だらだらと過ごしてた。
ただただ・・首が痛い・・

独学術
白取春彦:著(ディスカヴァー携書)

ある意味、すごく失敗した本だった。
帯に「独学の奥義」と書いてあるが、
最期のほうにある「携書のためのあとがき」の記載を読んでから、
本を手に取るかどうかを考えてほしい。

そのあとがきにもあるけれども、
やり方とかの話ではなく、
どういう姿勢で臨むべきかが書いている。

もちろん、やり方が目的だったので、
途中で捨てるか悩んだけど、最後まで読んだ。
そして、最後の「携書のためのあとがき」を読んだ。
だから、失敗した・・と感じざるを得ない。


はっきり言って、現時点で、
私はここまでを望んでいない。

でも、著者の思想を見るうえで、
納得できる部分もあれば、参考になる部分もある。
大半は、望まない重い部分だけど・・・


そして、著者が語る源流を探る意味で、
聖書をちょっと斜め読みしたい気分になった。
外国語の習い方も、他と違って、新鮮味がある。

考え方を学ぶという点では、
ちょっとつらい部分もあるが、おもしろい本だと思う。




| | コメント (0) | トラックバック (0)

2016年1月 2日 (土)

「速さは全てを解決する」を読んで

あけましておめでとうございます。
昨年もまばらな更新だった。

昨年に読み終わってたけど、
いつものごとく忘れてモンハンクロスをやりふけってた。

速さは全てを解決する
赤羽雄二:著(ダイヤモンド社)

本の著書を読んでないままと疑われそうな
遅い更新を実施してみたが、
判断が早ければ・・と、ごまかしておく。


ゼロ秒思考も同じ人が書いていて、
読んだ気もするのだが、
はっきりと記憶がないのがつらいところ。
基本は、
「完璧を目指さずに、小さなPDCAを回そう」
を勧める本のようだ。

小さなPDCAを回すことで、
方向補正を早めに行い、目標に向かうことが
一番速い道とうたっている。
そのうえで、
依頼内容がはっきりしないことへの対処や、
捨て去るべき状況といったような、
トラブルシューティングに関しての記載もある。

さらに、もう少し具体的なやり方へも言及している。


同様の本を読んだことがなければ、
ちょっと立ち読みして判断するのがいいのかな。




| | コメント (0) | トラックバック (0)

«楽天テクノロジーカンファレンス2015に行ってきて