月別アーカイブ: 2014年12月

初心者でもできる!関数型プログラミング入門

こんにちは、@ryota-ka です。
僕もそろそろすごいHをたのしく学びたいとか思ってしまうお年頃なのですが、僕みたいなクソザコ初心者プログラマーが使える言語なんてPHPくらいしかないわけですよ。
でも心配は御無用、周囲の人から「PHPer(笑)」とかバカにされているあなたでも大丈夫!今日はみんな大好きPHPを使って関数型プログラミングを勉強していきましょう!

続きを読む

ノンデザイナーでもできる!写真を使ったイケてるメイン画像の作り方

こんにちは、あんみつ(@murata_atsumi)です。
この記事はCAMPHOR- Advent Calendar 2014の20日目の記事です。

私ブログが超苦手で普段からあんまり書かないから、何書こうか迷ったのですが、
一応CAMPHOR-には主にデザインの部分で関わることが多いので、
デザインのことを書こうと思います!

続きを読む

UnityFree + LeapでUnityちゃんを投げを作る

この記事は CAMPHOR- Advent Calendar 2014 の17日目の記事です。

こんにちは。@pepoipodです。3Dゲームツールを主に使って開発しております。
今回は無料で使える3Dゲーム開発ツールUnityと超ステキデバイスLeap Motionを使い、愉快なゲームを作っていきましょう。

続きを読む

iOS 初心者が Swift を使って3日でゲームを作った話

この記事は CAMPHOR- Advent Calendar 2014 11日目の記事です。

こんにちは、@ryota-ka です。いきなりですが、割とタイトル詐欺です。どのあたりが詐欺かと言うと、

  • “iOS初心者が” -> 某社のインターンで、デスマ的に40時間ぐらいで iPhone アプリのデザインあて (w/ Objective-C) をしたことはあったので、まったくの CocoaTouch 初心者というわけではないです。
  • “3日でゲームを作った” -> 実は、以前 JavaScript で書いたブラウザーゲームとして、ある程度実装してたものの焼き回しなので、最初からアイディアを考えたわけではないです。しかも、確かにベースシステムはほぼ出来上がりましたが、細かいところは実はできてません。忙しかったのだ。

その上作ったゲームに関して書くわけでもないんですが、まぁそれでも初めて Swift に触れたということは事実ですし、12月1日の午前4時から始め、途中風邪やらバイトやらで大変だったんですが、どうにかこうにか3日でゲームのベースシステムはほとんど完成したので、その間に思ったこととかを書いてみます。やめて、石とか投げないで。

本当は「Swift と SpriteKit を使ってゲームを作ってみよう!」的な記事になればよかったのですが、残念ながら余裕が全然ありませんでした……

続きを読む

Python 3でお手軽並列計算 ~concurrent.futures を使った ngram 抽出~

この記事は CAMPHOR- Advent Calendar 2014 5日目の記事です。

こんにちは @Shtr28です。自然言語処理の研究とかしてます。
今日は研究してる時に便利だった concurrent.futures モジュールを紹介します。

Future は並列計算のパターンのひとつです。
今回はテキストを使って機械学習するときによく使う ngram を Future で並列計算します!
日本語を形態素解析器 mecab で分かち書きして、一行ずつ ngram を計算します。
フルのコードはここ(gist)。

メインの並列化のコードはここ。

ProcessPoolExecutor(max_workers=4) が非同期に計算するプロセスを用意してくれます。
(おなじインタフェースで ThreadPoolExecutor もあります。が、CPython だと GIL というロックがかかるのであまり速度が上がりません。:sadpanda: )

あとは executor がよしなに非同期に sentences に対して sent2kgram を計算してくれます。
そして非同期計算が終わった順に executor がよしなに generator を返してくれるので、副作用がある操作(kgram2id[x])もここで出来ます。

青空文庫か取ってきた「吾輩は猫である」の冒頭に対して手元のMacBook Air(プロセッサ 1.7 GHz Intel Core i7, メモリ 8 GB, Python 3.4.2)で実行すると、

実行時間が短くなりました!実際研究で使った時は File IO が絡んでて、もっと激的に効果がありました。Syntaxもシンプルですし asyncio より気軽に使えるんじゃないでしょうか。お試しあれ。フルのコードはここ(gist)。

明日は @yaitaimo の記事です。お楽しみに。

〜参考にさせてい頂いたサイト〜
python 3.4.2 標準ライブラリ 17.4. concurrent.futures – 並列タスク実行
python3のconcurrent.futures