読者です 読者をやめる 読者になる 読者になる

2016年振り返りと2017年に向けて考えている事

あけましておめでとうございます。気がつけば2016年もあっというまに過ぎ去り、2017年になりました。 新年明けたばかりで良い機会なので、2016年にどういう事をしたか、どういう事を考えていたかを振り返った上で、2017年に何をしていきたいか考えてみたいと…

2015年、2016年に買った技術書105冊

僕は技術書を買ったり読んだりするのが好きです。昨年4月からソフトウェアエンジニアとして働き始めて、学生の頃に比べると経済的に余裕が出来たため、技術書を買うペースが飛躍的に上昇しました。 もはや自分でも何を持っているのか、何冊持っているのかが…

「題名だけ知ってた小説」を読み始めた

突然ですが、先週くらいから「題名だけ知ってて気になってた小説」を読み始めました。 きっかけはテッド・チャンの「あなたの人生の物語」というSFです。 これはSFの短編集で、特に理由もなく気まぐれに買ってみただけなのですが、普段全くSFを読まない自分…

「HACKING」や「Linuxカーネル2.6解読室」など、最近の「買って良かった技術書」について

「技術書の積読は悪いことでは無いと言いたい」という前回のブログにも書きましたが、自分は適当に技術書を買う事が多いです。 south37.hatenablog.com その中でも、最近自分の中で「当たり」だったものについて簡単に紹介してみたいと思います。 HACKING ま…

技術書の積読は悪いことでは無いと言いたい

いきなり自分語りをしたいと思います。 自分は結構ソフトウェア関連の技術書を読むのが好きで、よく本屋で適当に買っては読んだりしています。週に1~2冊くらいは買うので読みきれないものはどんどん積読しています。Kindle の中に眠ってる本、机の上や棚に積…

ブログテーマを変えてみました

2016年にもなって心機一転という事で、ブログテーマを更新してみました。 参考にしたのは Svbtle というブログサービスのデザインです。 Swift のテストフレームワーク Quick で有名な modocache さんが Svbtle を使って記事を書いていて、あまりにカッコよ…

YAPC::Asia 2015に行ってきた!!

8/21, 22の2日間 YAPC::Asia に行ってきた。 YAPC::Asia の存在は前から知っていて、でも Perl よくわからないしお金無いし。。とか言って去年は行かなかったんだけど、今年は働き始めてチケット代くらいは出せるようになったので勢いのままに Early Bird Ti…

気がついたら一ヶ月経ってた

前回ブログを書いてから、気がついたら一ヶ月経ってた。びっくり。

webmockすごい

エラー出ても使い方を教えてくれて優しい $ ruby webmock.rb /Users/(ユーザー名)/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/webmock-1.20.4/lib/webmock/http_lib_adapters/net_http.rb:114:in `request': Real HTTP connections are disabled. Unre…

Pryではトップレベルで定義したメソッドがObjectクラスのpublicなインスタンスメソッドになる

表題の通り。 今日Pry触ってて気づいたんだけど、Pryのトップレベルで定義したメソッドはObjectクラスのpublicなインスタンスメソッドになるっぽくて、大抵のオブジェクトから呼び出せる様になる。意図した仕様なのかバグなのかは分からないけど、びっくりし…

7つのデータベース7つの世界を読んだ

タイトルは半分嘘で、全部じゃなくて途中まで読んだ。具体的には、第2章のPostgreSQL、第3章のRiak、第4章のHBase(Hadoop)の1,2日目、第5章のMongoDB、第8章のRedisの1,2日目。CouchDBとNeo4jはイントロだけ。 PostgreSQL postgresqlは一応慣れ親しんでる(?)…

SQLアンチパターンを読んだ

3ヶ月くらい積読されてたのを引っ張り出して読んだ。例によって、読み始めるとめちゃめちゃ面白くて何故こんな素晴らしいものを積読してたんだ...って感じだった。 ざっくりとした感想 けっこう色んな人が読んだ感想とか内容を簡単にまとめたものとかを書い…

ブラウザで動くMarkdown editor

vue.jsの公式サイトのexampleにmarkdown editorっていうのがあって、以下のコードの様にただfilterにmarked指定するだけでちゃんと動いててすごかった。 new Vue({ el: '#editor', data: { input: '# hello' }, filters: { marked: marked } }) htmlもこれだ…

Masonry試してみた

とある事情でPinterest的UI作ってみたいなーと思ってて、Masonryを試してみた。 環境構築 とりあえず、試すための環境構築をしてみる。久しぶりに、yeomanを使う。 yeoman 久しぶりでversionが古い気がしたので、npm updateしてnpmのモジュールを一気にupdat…

RustにおけるOwnershipの仕組み

前回に引き続き、Mozillaイチオシの言語であるRustを触ってみる。今日はメモリ管理の仕組みとしての「Ownership」に着目する。 ちなみに、今日書く内容はRust Guideの17章、OwnershipのGuide、PointerのGuideをつまみ食いしながら適当にまとめたものなので、…

Rustに入門してみる

今日は、Rustに入門してみる。 Rustは、Mozillaの開発したプログラミング言語である。公式サイトでは"high-level, bare-metal programming"を謳っており、高い抽象度を保ちながら低いレイヤーのコントロール(具体的にはユーザーによるメモリ管理等)が可能ら…

おめでたい話

今日は、プライベートなお話を書く。とてもおめでたいお話。 背景: VOYAGE GROUPでのインターンとリレーブログ 実はこのブログは焼き肉ブログというはてなグループに所属していて、グループ内ではメンバー同士で1日交代でブログを書いていってる。メンバーは…

7つの言語 7つの世界を読んだ

「7つの言語 7つの世界」という本を図書館から借りてきて読んだ。この本では、異なるパラダイムをサポートする7つの言語について、シンプルながら本質を捉えた説明がなされていた。もともと色んな考え方を知るのは好きな方なので、めちゃめちゃ楽しんで読め…

ノーマン先生の「誰のためのデザイン?」を読んだ。

ノーマン先生の「誰のためのデザイン?」を読んだ。 この本では、身の回りの物の「使いにくさ」が人の認知構造も踏まえながら考察されている。最後には、その成果が「デザインの7原則」としてまとめられている。豊富な例のおかげで読み易くかつ理解し易い作…

図書館の便利さを再認識した

最近お金が無くて本が買えなくてつらかったんだけど、大学の図書館に行けば無料で本が手に入る事に気づいた。特に、名著と呼ばれる類の本は大体置いてあったりして、めちゃめちゃすごい。 とりあえず気になってた本とかパッと目についた本を借りまくってみた…

代入を使わずに状態を表現する

最近、SICPのWeb版が存在する事に気づいて、空いた時間にちょろちょろと読んでいた。SICPって有名だし軽く目を通しておくかな、ってくらいの気持ちだったんだけど、3章、特に3.5章のストリームの話はめちゃくちゃ面白くて興味深かったので、ブログにもまとめ…

遺伝的プログラミングの続き

2週間前に書いてた遺伝的プログラミングの続き。前は、構文木を構成するクラスとしてParamLeaf, ConstLeaf, EvalNodeを定義した。 書いたコード 前のコードにもdisplayメソッドとか付け加えた。後、rubyのオブジェクトはデフォルトではdeepcopyが出来ないの…

今日は遺伝的プログラミングの話ではなく、ポエムを書く

実はこのブログは焼き肉ブログという名前の「はてなブロググループ」に属してて、毎日順番にブログを書いてく取り決めをしていたりする。で、今グループを作ってからちょうど1年が経ったみたいで、振り返りをしようという流れがやってきている。 乗るしかな…

遺伝的プログラミングを学ぶ

積読されてた「集合知プログラミング」を引っ張りだして読んだ。面白そうなとこから読んでたからまだちょこちょこ抜けはあるけど、機械学習のいろんな手法を分かり易く説明してくれてて楽しく読めた。 その中でも、遺伝的プログラミングの考え方が特に面白く…

TCP/IPをマスタリングしたい

最近、ネットワークの事ちゃんと理解したいなーと思って、積読されてた「マスタリングTCP/IP」という本を読んでみた。TCP/IPを言いつつそれより下のレイヤーのイーサネットとか上のレイヤーのSMTPとかHTTPとかまで解説してくれてるので、親切な本だと思う。…

Go言語触ってみた その3

今週も、Goを触ってみて気になった点とかについてまとめてみる。 先週の振り返り 先週はGoの型システムについてブログを書いた。新しい型を定義する際に、 既存の型に別名(?)をつける場合 struct型を定義する場合 interface型を定義する場合 の3通りの方法が…

Go言語触ってみた その2

昨日は眠さに負けて寝ちゃったので、続きを書く。 Go言語の特徴的な点 印象に残った点を書いて行く。 Goはオブジェクト指向??? Goには、現代的なオブジェクト指向言語の大半に存在する「クラス」というものが存在しない。というか、今サラッと「オブジェクト…

Go言語触ってみた

今をときめくGo言語を触ってみた。ときめくとか言いながらGo言語が一番話題になってたのは登場したばかりの頃だったと思うけど、今はプロダクトレベルでの浸透が進んでる気がする。気がするだけで実情は知らない。 ただ、サーバーサイドにGoを使ってるGunosy…

WebSocketについて調べてみた。

実はけっこう前からWebSocketの詳しい仕組みについて気になってて、遂に一念発起して調べてみた。何かとても良さげっぽい。

Dockerを触ってみる

最近は、Immutable Infrastructureという文脈だとDockerがかなり注目を集めているので、例に漏れず触ってみる事にした。 そもそもDockerって何? Dockerは、「コンテナ技術による仮想化ソフトウェア」である。中身の動きを知らないと正直ピンと来ないんだけ…

Vagrant+Chef Soloでのサーバー環境構築自動化を試してみる(参考: パーフェクトRuby on Rails 第8章「Railsのインフラと運用」)

ちょっと前から「パーフェクトRuby on Rails」という本をちょこちょこ読んでいる。 Railsについては、「RailsによるアジャイルWebアプリケーション開発」を一通り読んだり自分でも簡単なWebアプリ作ったりしてたのでざっくりとは理解してるつもりだったんだ…

複数ファイルを一気にgrepしたり文字列置換したりする方法

コード書いてると、複数ファイルを一気にgrepしたり、特定の単語を一気に置換したりしたい事がある。例えば、リファクタリングの際にクラス名とかメソッド名がそもそも良く無いなーと思って一気にrenameしたくなるとか。そんな時、方法としてはunixのコマン…

Activerecordにおけるincludesとjoinsの振る舞いについて

Activerecordを使ってるとき、関連(Association)のあるmodel同士をまとめて取得したい時がけっこうある。そんな時、includesやjoinsを使えば効率良くデータを取得出来るんだけど、実はこの二つは振る舞いや特徴が全然違ってたりする。ややこしい気がしたので…

RailsでActiveRecord使った時のassociationのお話

今週、諸事情でrails書いてる時間が多くて、いろいろ上手くいった部分とか上手く出来なかった部分とかあったのをちょっと書いてみる。

Macに導入して便利になったツールまとめ

どうもこんばんは、south37です。 今回は、自分がMacに導入して便利になったツールとか、terminalで使うプラグインとかの話をしたいと思います。 粒度がバラバラで若干まとまりの無い内容になってますがお許しください!!

Webを支える技術読み始めた

どうもこんばんは、south37です。 突然ですが、「Webとは何か」と聞かれて、自信を持って答えられますか? 僕自信、何となくは分かってるつもりでいながら割とふわふわしていたんですが、「Webを支える技術」という本を読み始めてはっきりとしたイメージを持…

Objective-Cにおけるシングルトンのお話

どうもこんばんは、south37です。前回に引き続き今回もObjective-Cネタです。 iOSアプリ開発をしてるとシングルトンが活躍するケースがよくある(らしい)のですが、シングルトン生成のコードがパッと理解出来なくて悶々としたので、ここにメモとして残して…

Objctive-Cにおけるプロパティ属性まとめ。正直、weakとかって使いどころが分かりづらいですよねー

どうもこんばんは、south37です。今日はObjective-Cネタをぶっこんでいきます。 プロパティ属性って何よ!? さて、皆さん、そもそも プロパティ属性 って分かります?Objective-Cでコーディングしてる人ならstongとかweakとかcopyとか目にしてると思いますが…

Mac Book Airを買い替えてメモリが4倍、ストレージも4倍、そしていつもの3倍の回転を加えれば、4800万パワーだーっ!!

どうもこんばんは、south37です。 タイトルにもある通り、新しくMac Book Airを買い替えました。 以前のPCはメモリが2GB,ストレージが64GBしか無かった為、常に残り容量が数GB(酷い時は数百MB)でVMも満足に立ち上がらず、chromeを使えばタブを数個開いただけ…

検索エンジンを作る 3: ページのランキング

さて、前回はインデクシングを行い、ページのランク付けの為に必要な情報をDBに保存しました。今回は実際にランク付けを行ってみます。 ランキングのアルゴリズム ランキングのアルゴリズムとして、即座に思い浮かぶのは次の3つだと思います。 単語の出現頻…

検索エンジンを作る 2: 実践!インデクシング

集合知プログラミング作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型本購入: 91人 クリック: 2,220回この商品を含むブログ (277件) を見る とりあえず前回の続きです。実際に手を動かして検索エ…

検索エンジンを作る

「集合知プログラミング」の第四章はみんな大好き検索エンジンの話です。テンション上がりますね!! 集合知プログラミング作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型本購入: 91人 クリック: …

はてなブックマークで階層的クラスタリングしてみた

前回、階層的クラスタリングの手法について解説した訳ですが、手法だけ解説するのも手抜き感がただよってたので、実際に僕のはてなブックマーク50個に対してやってみました。以下がその結果です。基本的には、近い位置にあるヤツが似たグループって扱いにな…

クラスタリング手法について

どうもこんばんは、south37です。最近は「集合知プログラミング」を読み進めています。前回までは第二章の「協調フィルタリングによる推薦」について説明をしていた訳ですが、今回からは第三章の「クラスタリング」について説明をしていきたいと思います。 …

協調フィルタリングによるソーシャルブックマークの推薦 [実践編]

こんばんは、south37です。今回は、「協調フィルタリング」という手法で僕に最適化されたブックマークを調べてみました。まあ、前回の続きですね。 やった事 10万件のブックマークの中から、僕のブックマークした50件のサイトに最も近いサイトを調べてランキ…

協調フィルタリングによるアイテムの推薦

こんばんは、south37です。前回のブログではユーザー同士の類似度を見積もる方法について考えました。距離空間を使う方法、相関関数を使う方法等が存在し、はてなブックマークを利用するユーザ同士の比較ではjaccard相関関数が悪く無い値を与える事が分かり…

集合知プログラミング読み始めました

こんばんは、south37です。最近、O'Reillyの「集合知プログラミング」を読み始めました。 まだ本当に読み始めなんですが、なかなか面白いです。最初に取り上げられていたのは、「推薦」のお話でした。 推薦 「推薦」の方法として、「協調フィルタリング」と…

do構文とMonad

どうもこんばんは、south37です!今日は前回の予告通り、do構文とMonadの関係について見て行きたいと思います!! do構文 さて、do構文とは何だったか覚えているでしょうか? 確か、以前はIOの文脈で do構文 を紹介したと思います。 main = do putStrLn "Hello…

Haskellにおけるモナド

こんばんは、south37です。 前回は「圏論」におけるモナドについて触れた訳ですが、今回はいよいよモナドがどういう風にHaskell上で表現されているかに迫ってみたいと思います。 Haskell における Monad 自己関手であるモナド 前回、「モナド」は「自己関手…

モナド、あるいは自己関手の圏におけるモノイド対象について

どうもこんばんは、south37です。 今日は久々にHaskellネタをぶっ込んで行きたいと思います。題材は、Haskellを知っていれば嫌でもその名を耳にするであろう「モナド」についてです。 そもそもモナドって何なんですか? はい、何なんでしょう?ここで、フィ…