java10

知らないうちに、Java10がリリースされていた。

新機能はまだ詳しくは調べていないのだが、C#とかと同じく、変数宣言にvarが使用できるようになったようだ。

var p = new Person();

のような感じで、右辺の型が推測可能なものに使用できる。上記の場合は、変数pはPerson型となる。C#ではおなじみの文法だ。

C#ではLINQ等を使用するときによく使うので、Javaで同じような機能を持つ、Streamで使用できるかどうか試してみた。

var q = personel.filter(p->p.getAge() > 20);

C#ならば、この後で、変数qに対してforeach文を使用することができるのだが、javaの場合は上記のqに対してforEachメソッドを使用することになる。

q.forEach(・・・);

個人的には、foreach(拡張for)も使用できるといいような気がするんだけどね。

このように、Streamを途中の状態で変数に格納することによって何ができるかと考えたんだけど、条件によって、複数の抽出条件を付加するとかはできそうだね。

var q = personel.filter(・・・); // 抽出条件1
if (・・・)  { // ある条件ではさらに絞込
q = q.filter(・・・); // 抽出条件2
}

C#だと、上みたいな形も取れるし、Expressionを使用して式を動的に作ってもいいんだけど。

カテゴリー: java, 技術系 | コメントする

Windows10 Fall Creators Update

Windows10 Fall Creators Updateで、Windows Subsystem for Linuxが正式にサポートされて、Microsoft StoreからUbuntuやopenSUSEがインストールできるようになったので、ちょっとお試し。

UbuntuとopenSUSEにmonoをインストールして、WindowsにはフリーのX Server “Xming”をインストールの後、同じソースをWindows,Ubuntu,openSUSEで動作させてみた。

↓同じソースをWindows,Ubutu,openSUSEでコンパイルして、実行してみた結果。

ちなみに、Ubuntuでは、デフォルト状態で動作したが、openSUSEでは、x-windowの日本語フォントをインストールしないと、実行時にFontFamily Not Found Exceptionが発生する。

カテゴリー: Windows, 技術系 | コメントする

ようやく復活・・・

これ、さくらのVPSで動いてるんだけど、以前の環境がCentOS5だったのでサポート期限切れのためプロダクトのアップデートとかが面倒になったので、CentOS6に変更。

しかし、アップグレードパスが無いため、入れ直しとなり、まっさらな状態から設定を行ったんだよね。

前に、設定したのがかなり昔のことなので、ある程度の環境が整うまでに結構時間がかかってしまった。

特にこのサーバでやりたいことがあるわけでもないので、最低限ということで、以下の環境をセットアップ。

  • apache httpd
  • php
  • mysql
  • mono

このうち、monoの設定に時間がかかってしまった。mono自体のインストールは特に問題ないのだけど、xspとmod_monoに時間を費やした。

xspは単なる、Pageディレクティブの記述ミスで訳の分からないエラーが出ていて、それに気づくまでに時間がかかってしまった(^^;

mod_monoはyumのパッケージを見つけられなくて、結局ソースからmakeかけたんだけど、よく見たら、apache2-mod_monoたら言うパッケージがあるではないか・・・monoだから、頭がmono*だろうと思って探していたから・・・

とりあえず、次はつまらないwebコンテンツでも作るかな・・・

カテゴリー: 日記的なもの | コメントする