久しぶりの更新です。今年一年を振り返り返ってみます!

個人的なメモなので、どうでもいい内容が多いです!

あまり記憶が全然ないので、いろいろと抜けてる気がします!

Read more


はじめに

ISUCON5の本戦に @methane さん、@koki_cheese さん、私(@gam0022)の3人で、チーム名 lily white として参加しました。 結果は fail (サーバの再起動のテストで失格しため、スコア無し)でした。

ISUCONとは、お題となるWebサービスを限界まで高速化を図るチューニングバトルです。 私は今回のISUCONに参加するまで、インフラもパフォーマンス・チューニングも経験のない全くの素人でした。 自分の実力では本戦出場は絶対に不可能でしたので、本戦まで連れていってくださったチームのみなさんには本当に感謝しています。

ISUCONの攻略に関する有益な情報は、既に他のブログに多くのエントリーがあると思いますので、 本記事では全くの素人がどんなふうにISUCONに参加したのかを振り返っていこうかと思います。 予選+本戦を振り返るため、長文になります。すみません。 チーム全体での参加の様子は、@methane さんのブログで紹介されています。

参加のきっかけは、会社の先輩でスーパーエンジニアの @methane さんがISUCONに興味のある新人を募集していたことでした。 インフラやパフォーマンス・チューニングを学習する良い機会になりそうだと考えて、参加を決意しました。 また、大学生の @koki_cheese さんが ISUCON メンバーを募集していたので、 @methane さんが自チームに引き入れ、チーム lily white が結成されました。

Read more


先日の夏コミ C88 に TechBooster というサークルとして参加しました。 これによって、コミケ初参加がサークル参加という実績を得ました。

JavaScriptoon

私はJavaScriptoon という本の three.js(WebGL)の記事を書きました。 タイトルは「three.js でお手軽 3DCG 入門」です。

https://techbooster.github.io/c88/

去年の卒業研究で ブラウザ上で動作する ペーパークラフト用の CAD のようなものを three.js を使って開発していたので、その知識を集約させました。

内容的にはthree.jsのサンプルコードを実際に動かしながら、 3DCGが未経験の方でも分かるように基礎から解説するような感じになっております。

ちなみに、配置は8/16(3日目) 東地区A-39aでした。 コミケは初参加で知らなかったのですが、技術書で壁サークルというのはとても珍しいそうですね。

通販もしていますので、 ぜひよろしくおねがいします。(予想以上の注文により現在は売り切れの模様)

Read more


はじめに

以前、Octopressのpreviewを高速化するという記事を書きました。

この記事では、rake isolaterake integrate を使って特定の記事だけを generate することによって、 rake generate を高速化していました。

しかしながら、この方法は手順が複雑で使うコマンドが多く、面倒だし使い方を忘れるという問題がありました。

通常、最後に保存したファイルを generate することが多いので、これを利用してもっと便利な Rake の task を作ります。

Read more


今取り組んでいる研究を、以下の記事で紹介していただきました!

イルカの紙模型 - みたにっき@はてな

私は現在、三谷先生の指導の下、ペーパークラフトの設計に関する研究に取り組んでいるのですが、実験で作成した展開図を、なんと三谷先生に組み立てていただきました!

私も以前に同じ展開図で組み立てたのですが、その時に比べると、はるかに綺麗な仕上がりとなりました。

Read more


土日(118-9)に開催された CODE FESTIVAL2014 本戦に参加しました。

予選Bで3完しかできなかったので、 参加はムリだろうと思っていたのですが、なぜか本戦に出場できてしまいました。 3完でも行けなかった人がいるみたいなので、本当に運ですね。

順位的には残念な感じになってしまって悔しかったですが、豪華な企画が盛りだくさんで(リンク先のタイムテーブルを参照)、 chokudaiさんの生コーディングが見れたり、iwiwiさんのサインが貰えたり、美味しいご飯が食べれて良かったです。 また、本戦上位5人によるエキシビジョンマッチを観戦しましたが、実況が分かりやすくて私のような初心者でも十分に楽しむことができました。 あと、なぜかDDRや太鼓の達人の筐体が用意されていて、遊び放題でした。

良いイベントだと思うので、リクルートさんには来年以降もやって欲しいと思います。

Read more


KLab の社内勉強会 ALM で LT をしました。

Immutable List Gem (KLab ALM版) from Sho Hosoda

内容としては、もう2回くらいLTをしている、immutable list gem についての話をしました。

前回からの違いとしては、クイックソートのベンチマーク結果を盛り込んで、実用性をアピールした内容にしました。

Read more


coinsLT #0 で three.js についてのLTをしました。

three.js の紹介 from Sho Hosoda

Read more


はじめに

卒研で three.js という3DCGのライブラリを使って何か開発することしたので、JavaScript について勉強しました。

また、CoffeeScript という、コンパイルするとJavaScriptのコードに変換される言語についても使ってみることにしたので、 これについても勉強しました。

忘れてしまうと勿体無く思うので、備忘録です。

この記事では、

  1. JavaScriptを勉強する上で重要だと思われる概念
  2. CoffeScript の学び方
  3. Rails で CoffeeScript を使う時のメモ

を紹介します。

Read more


はじめに Ruby 2.0では、Enumerable#lazy というメソッドと、その返り値である Enumerator::Lazy が導入されました。 この記事では、Enumerable#lazy と Enumerator::Lazy によって無限リストをmapできることを紹介します。 また、Enumerator と Enumerator::Lazy の本質的な違いを説明します。 遅延リストとは 遅延リストですが、Haskell などの一部の関数型言語では一般的に使われているもので、 遅延評価といって、値が必要になるまで計算しないことによって、無限に続くリストも扱うことができるというものです。 無限リストをmapする 普通にやってみるとダメ 次のような無限リスト(無限の長さを持つ Range オブジェクト )を map する式[1]を考えてみます。 この式は実行が終わりません。 [1] pry(main)> (1..Float::INFINITY).map{|n| n*2}.first(5) # => (実行が終わらない…) [1]の式のmap では、Enumerable#map が呼ばれます。 Enumerable#map は配列Arrayを返り値とするメソッドなので、無限の長さの配列を作ろうとして、処理が終わらなくなります。 lazy を付けてみると動く Enumerable#lazy を使って、次の式[2]ように無限リストを map によって処理することができます。 [2] pry(main)> (1..Float::INFINITY).lazy.map{|n| n*2}.first(5) # => [2, 4, 6, 8, 10] [2]の式のmap では、Enumerator::Lazy#map が呼ばれます。 Enumerable#lazy は リスト(Array,Rangeなど)を 遅延リスト Enumerator::Lazy に変換するメソッドです。 Enumerator::Lazy#map も Enumerator::Lazy を返すメソッドです。

Read more