memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

はてなダイアリーのカテゴリを整理し。。。できなかった


最近、ある方のはてなダイアリー(文面から大学関係者のよう)を見ていたく感心。とても読みやすい。丁寧。情報量が多い。カテゴリがしっかりしている。素晴らしい。


文章はすぐには真似できないので(恐らく遠い将来も無理)まずはカテゴリ(↑の[***])だけでも整理しようとがんばってみました。


RSSやインターネットなど今考えればわけのわからないカテゴリがたくさんありました。


情報を得た媒体が何かではなく、あとでその情報に自他問わずどういう基準でアクセスしたいか。。。そのことを考えてカテゴリ名を決めるべきでした。


はてなダイアリーをはじめて5年くらいになりますから。。。修正量は膨大になります。その上、一括置換機能がないため1つ1つ修正する必要があります。エクスポートしてからエディタで置換してからインポートすれば。。。と考えたのですが日記に埋め込んだ画像が消える可能性が高いのでやめました。実際にやった方もいるようですが、コメントがすべて消えてしまったそうです。だよねぇ。。。


とりあえずRSSとインターネットというカテゴリは修正しました。1時間くらいかかったでしょうか。


あとは「日記」というこれまた大雑把なカテゴリがありあす。この中にはwiiや工作やmac関係など雑多に含まれているようです。これこそ膨大になるので諦めました。。。


そもそもカテゴリわけする分類基準は変化していくでしょうから、今考えると、日記のエントリー内に埋め込んでしまうのもどうかと思います。


スマートフォルダや昨年の卒研のスマートフィードのように、動的にタグ管理できた方が”日記”には適しているように感じます。


あ、そうそう。その感心した方の日記を見て、コードが色付きで貼付けられることを知りました。今さらですね。。。以下、ちょっとテストです。


以前、openframeworksでLight Writerもどきのiphoneアプリを作ったのですが、そのときにフォントイメージからピクセルデータを作るprocessingプログラムを作成しました。意外とありそうで無かったので自作したので、もしかすると誰かの役に立つかもしれませんね。ということで以下にコードをさらします。以下のコードではプログラムを実行する前にフォント(MS-Gothic 24ポイント)を作成する必要があります。もちろん、コードを修正すれば他のフォントも使用可能です。以下のコードでは、メッセージに「ありがと〜」としていますが、ここを変更すれば任意のメッセージのデータを作成することができます。プログラムを実行するとprocessingのIDEのメッセージ欄に1と0のデータが吐き出されます。これを開発中のコード(この場合はC++の配列宣言)にコピペします。

class TextImage
{
  private PFont font;
  private PGraphics p;
  private PImage img;
  private String word;
  private int size = 24;
  public TextImage(String word)
  {
    this.word = word;
    font = loadFont("MS-Gothic-24.vlw"); 
    p = createGraphics(size*getLetterNum(), size, P2D);
    img = createImage(size*getLetterNum(), size, RGB);
    build();
  }  
  public int getSize()
  {
    return size;
  }
  public int getLetterNum()
  {
    //print(word.length());
    return word.length();
  }
  private void build()
  {
    p.beginDraw();
    p.background(0);
    p.textMode(SCREEN);
    p.textFont(font, size);
    p.text(word, 0, size-4);
//    p.text(word, 0, size);
    p.endDraw();
    img.set(0, 0, p);
  }
  boolean[] getPixels(int y, int n)
  {
//    println("y="+y+" n="+n);
    boolean b[] = new boolean [size];
    for (int i=0; i<size; i++)
    {
      b[i] = getPixel(y, i, n);
//      b[i] = getPixel(i, size - y - 1, n);
    }
    return b;
  }
  boolean getPixel(int x, int y, int n)
  {
    return (img.get(x + n * size, y) != color(0,0,0)) ? true : false;
  }
}

void setup()
{
  size(500, 500);
  TextImage t = new TextImage("ありがと〜");

  for (int i=0; i<t.getLetterNum(); i++){
    for (int j=0; j<t.getSize(); j++){
      for (int k=0; k<t.getSize(); k++){
        if (t.getPixel(k, j, i)){
          print("1, ");
        } else {
          print("0, ");   
        }
      }
      println(""); 
    }
    println(""); 
  }    
}