ラムダ式を触る

Java8から利用可能になったラムダ式(lambda式)を触ってみる。

匿名クラスの記述が簡略化になることがメリットの一つであるらしい。 ソート時にComparatorの匿名クラスを作成する方法がふと頭にわいてきたので、これで試してみる。

続きを読む

【PostgreSQL】insertと同時にデフォルト値(シーケンス)を取得する。

まず環境づくり

CREATE SEQUENCE USER_SEQ; 

CREATE TABLE USER_INFO( 
  SEQ INTEGER DEFAULT NEXTVAL('USER_SEQ') PRIMARY KEY
  , NAME CHARACTER VARYING (80)
); 

CREATE TABLE USER_INFO_DETAIL( 
  SEQ INTEGER PRIMARY KEY
  , BIRTH_DAY CHARACTER VARYING (8)
);

文字であらわすとこんな感じ。

  • 主テーブル(USER_INFO)と副テーブル(USER_INFO_DETAIL)の2テーブルが存在する。
  • 両テーブルは主キー(SEQ)で紐づける想定。
  • 主キーはシーケンスで管理しており、主テーブルのデフォルト値として設定されている。

こんなシチュエーション。

続きを読む

LinuxにてファイルリストをTSVで取得する

ただのメモ

# find ファイルの探索場所 -type f -ls |  tr -s ' ' '\t' > list.txt

これで下記のような結果が得られる。 ※実際はタブだけども、ここでは半角スペースで表現

262246  4   -rw-rw-r--  1   vagrant vagrant 2   Jul 8   07:58   /home/vagrant/c.txt
262244  4   -rw-rw-r--  1   vagrant vagrant 2   Jul 8   07:58   /home/vagrant/b.txt
262250  4   -rw-rw-r--  1   vagrant vagrant 2   Jul 8   07:58   /home/vagrant/dir/d.txt
262252  4   -rw-rw-r--  1   vagrant vagrant 2   Jul 8   07:58   /home/vagrant/dir/e.txt
262152  4   -rw-rw-r--  1   vagrant vagrant 2   Jul 8   07:57   /home/vagrant/a.txt

最終更新日付がタブのせいでばらけるのが難点だけど、まぁいいや。 後はエクセルで整理するなりなんなり。

各項目は左から以下の内容

  • ファイルのインデックス番号
  • ファイルのブロック数
  • ファイルの権限
  • ファイルのハードリンク数
  • ファイルの所有者
  • ファイルの所属するグループ
  • ファイルのサイズ(byte)
  • ファイルの最終更新日付
  • ファイル名

しっかしLinuxはいろいろと奥が深いなぁ。 もっとコマンドを使いこなしたいもんだ。

ダウンロードファイル名、文字化けとの格闘

結論:

ブラウザ判定のロジックを入れ込むことなく、 複数のブラウザにてダウンロードファイルの文字化けを避けたい場合は、 レスポンスヘッダに

Content-Disposition: attachment;
                     filename="ファイル名";
                     filename*=UTF-8''URLエンコーディングされたファイル名

上記のように設定しよう。 恐れることはない、filename*が有効なブラウザではfilename側は無視される。

RFC 6266 - Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)

続きを読む

html5で複数ファイルアップロード(SAStruts)その3

チュートリアルに存在するファイルアップロードをベースとして機能を拡充していく。

Super Agile Struts - Tutorial

前回、解析を終えて、テキストパラメータはいい感じに配列にしてくれるけど、 FormFileは複数のパラメータがひとつのフォーム名で送られることを想定していない様子だった。

今回は解決編。 テキストパラメータの記述をパクってやりましょう!

続きを読む