土曜日, 8月 06, 2016

Link list 2016-07

Offscreen Magazine

http://www.offscreenmag.com/
ネットに関わる人達にフォーカスした雑誌。渋谷とか六本木で見つけたので西海岸から来た人達が読んでるのかな。

GRAPHIC #37 Introduction to computation

http://design.cmu.edu/content/graphic-37-introduction-computation-designs-kyuha-shim
素晴らしい人選。

Music Theory for Musicians and Normal People

http://tobyrush.com/theorypages/index.html

GLITCH TUTORIALS

http://danieltemkin.com/Tutorials/

The Making of "This is your brain on JavaScript"

http://codepen.io/KrofDrakula/post/the-making-of-this-is-your-brain-on-javascript

MORGENSTERN'S FINEST ICE CREAM

http://www.morgensternsnyc.com/

Programming Design Systems

https://programmingdesignsystems.com/ Rune Madsenが執筆中の本。

KIDS DAY BAND「だいだい大好き だきしめたい」

https://www.youtube.com/watch?v=fW2K8tpHXnI
姪を連れてサンリオピューロランドに行ったらパレードの音楽がいいと思って、調べたらヒャダインとかが作ってた。ディズニー的ミュージカル感とJPOPとアイドル文化が奇妙に合体。ぐてたまのアトラクションも面白かった…。知らないところでシーンができてる気がする。

金曜日, 7月 01, 2016

Link list 2016-06

Coding Rainbow

https://www.patreon.com/codingrainbow
Daniel Shiffman先生のProcessing講座。動画も素晴らしいけどパトロンになると入れるSlackにPrinting CodeRune Madsenがいたり、Nature of Codeについてのチャンネルや参加者の作品紹介チャンネルがあって刺激的。

地権者は「ゴースト」 所有者不明地という日本の難題

http://news.yahoo.co.jp/feature/212
地味だけど深刻。これのせいで獣害対策や森、山の整備もできない。

Data Spaces

https://blog.truthlabs.com/dataspaces-ad0a2bb073bd#.974nc8pp5

Casey Reasの展覧会カタログ

https://drive.google.com/file/d/0B9h469--G5OwYWt4XzF3OHNBd2M/view

GRAPHIC #37 INTRODUCTION TO COMPUTATION

http://graphicmag.kr/index.php?/issues/introduction-to-computation/

ソニー関係者以外のトイレの使用はお断りします

http://nakamuranorio.com/works/2008ideatext.html

データを活用し、地域課題を解決するコンテスト

http://park.itc.u-tokyo.ac.jp/padit/cog2016/

働き方を変えても何も変わらない「どう働く?」から「どう営む?」へ interview 西村佳哲さん - 前編 -

http://www.monosus.co.jp/posts/2016/06/000314.html

Design Debt

https://austinknight.com/writing/design-debt/ 技術的負債のデザイン版

日曜日, 6月 05, 2016

Processingで画像を読み込みたいけどファイルの数や名前が分からない場合

課題

Processingで大量の画像を読み込んで処理したかったのだけど、標準のloadImage()を使おうとするとファイル数やファイル名が予め分かっていないといけない。つまり画像ファイルを追加したり削除したりすると、それに合わせてコードも修正しなければならない訳で、保守性も効率も悪い。

解決法

JavaにFilenameFilterというインターフェースがあるので、新しくクラスを作ってacceptメソッドをオーバーライドする。

import java.io.File;
import java.io.FilenameFilter;

public class PngFileFilter implements FilenameFilter {
  @Override
  public boolean accept(File directory, String fileName) {
    if(fileName.endsWith(".png")) {
      return true;
    }
    return false;
  }
}

PngFileFilterクラスのインスタンスを作り、こんな感じでFileクラスのlistFilesメソッドに渡すと、".png"で終わるファイルが配列として返ってくる。ちなみにdataPath("")という関数を使うとdataフォルダまでのパスが取得できる。空の文字列を渡しているが、フォルダがある場合はその名前を指定できる。リファレンスに載っていないのである日突然なくなる可能性はある。

File[] imageFiles;
PngFileFilter filter;
void setup() {
  size(800, 800);
  filter = new PngFileFilter();
  imageFiles = new File(dataPath("")).listFiles(filter);
  for(File file: imageFiles) {
    println(file.getName());
  }
}

RubyとかPythonだと特定のフォルダ以下のアセットを特定の拡張子で読み込むのが簡単なので、ああいう感じの書き方にできるとより便利。他の言語や環境から学ぶことは沢山ある。