2014/12/31 このエントリーをはてなブックマークに追加 はてなブックマーク - さよなら2014、こんにちは2015

さよなら2014、こんにちは2015





年末にダラける私




今年は、僕にとって割と濃い一年だったというか。
これは振り返らない訳にはいかないというか整理がついていないので、はい。



初めての勉強会参加

今年、恥ずかしながら勉強会に初めて参加しました。
関西Kotlin勉強会が初めての勉強会だったのですけど、
新鮮でしたね。

「この人はすごい!」「これは便利だ!」って心が動くってここ最近なかなか無く、
色々と勉強し直すモチベーションになりました。

そこらへんは以前に書いてますね。
【Kotlinかわいいよ】関西Kotlin勉強会に行ってきた

Kotlinを学び始めた

完全に勉強会をきっかけにしてKotlinを学び始めました。
勉強会に参加したそもそもが腑抜けた自分を叩き直すという理由だったので、
Kotlinどんなもんかなーぐらいの感じだったのですが、そこから割りとハマりました。
今ではかなり好きですし、KotlinでAndroidアプリつくろうと思ってます。





2014/12/16 このエントリーをはてなブックマークに追加 はてなブックマーク - 【JVM Language Trend】Kotlinについて本気出して考えてみた

【JVM Language Trend】Kotlinについて本気出して考えてみた




こちらはKotlinアドベントカレンダーの16日目の記事です。






いきなりですが、僕はKotlinが好きです。
なんてったってNull安全だし書いていて気持ちが良いからです。
Javaのライブラリ使えるけど、ダルくないし。


、、、という風に主観で口語的に説明するのはとても簡単なのですが、
客観的にKotlinを見た時どういえば気に入ってもらえるか。
どうしたら流行るのかなぁっていうのを真剣に考えました。


まず比較対象ですが、同じ界隈ということで考えるとJVM言語が思い浮かびます。




2014/12/13 このエントリーをはてなブックマークに追加 はてなブックマーク - Kotlinアイドルのあるべき姿

Kotlinアイドルのあるべき姿









(この記事はしょぼちむアドベントカレンダー13日目の記事です。しょぼちむを知らない方もKotlinというプログラミング言語を知らない方も楽しめる内容になっている。。。。!!と願いたい)





2014/12/10 このエントリーをはてなブックマークに追加 はてなブックマーク - 【これは便利】知っててよかったKotlinのenum #ktac2014

【これは便利】知っててよかったKotlinのenum #ktac2014




http://matlabrecipes.comより引用





こちらはKotlinアドベントカレンダーの10日目の記事です。










Javaのenumについて今日話題になっていたため、Kotlinのenumってどうなっているんだろう?
ということで今回調べてみました。





Kotlinの場合は「enum class クラス名」と宣言することでenumを定義できます。
こんな感じです。


enum class Direction { 
  NORTH
  SOUTH 
  WEST
  EAST
}







使えるメソッドはJavaとほぼ同等です。


2014/12/08 このエントリーをはてなブックマークに追加 はてなブックマーク - 別のプログラミング言語を使うということ #ktac2014

別のプログラミング言語を使うということ #ktac2014






こちらは、Kotlinアドベントカレンダーの8日目の記事です。





 はじめに



達人プログラマーの本では
「毎年、新たなプログラミング言語を1つは学ぶこと」と言っています。
その言葉がきっかけというわけではありませんでしたが、
結果的にKotlinを介して、その通りの経験を僕はしました。



2014/12/05 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Functional Kotlin?】Kotlin Web Demoで遊んでみよう! #ktac2014

【Functional Kotlin?】Kotlin Web Demoで遊んでみよう! #ktac2014




Kotlinアドベントカレンダーの何日目かです。

今回はKotlin Web Demoに関してお話します。
Kotlin Web Demoとは、JetBrains社がKotlinをweb環境上で動作できるように作成した、デモ画面です。


ブラウザ上で簡単にKotlinを書くことが出来ます。 Kotlinの開発環境に関しては以前にもこちらの記事などで紹介されています。


マジ感謝ないろふさんに俺のライムを送る



この記事はいろふアドベントカレンダーの5日目です。


ゆとりさんに圧力をかけられて書いています。

というのは嘘で、ほとんどいろふさんには縁もゆかりもないのですが、書きたいと思い書いています!



いろふさんとの接点と言えば、
関西Kotlin勉強会でjavapに関してツッコミをいただいたのと





先月のJJUG CCC Fallでサインをいただいたぐらいです。







2014/12/03 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Nullいことしてんじゃねぇ】声に出して読みたいKotlin #ktac2014

【Nullいことしてんじゃねぇ】声に出して読みたいKotlin #ktac2014












これはKotlin AdventCalendar2014の3日目ぐらいの記事です。





こんばんは。Javaの皆さん。
今日もNullで消耗していますか????(精一杯の煽り)





ひとむかし前に、声に出したい日本語なんてのがありましたね。
そのまんまなのですが、今回はそれのKotlinバージョンです。リピートアフタミー!


2014/11/17 このエントリーをはてなブックマークに追加 はてなブックマーク - JJUG CCC 2014 Fallに参加してきました #jjug_ccc

JJUG CCC 2014 Fallに参加してきました #jjug_ccc





JJUGサイトより引用






JJUG CCC 2014 Fallに参加させていただきました。


各セッションの詳細に関しては@YujiSoftwareさんの以下のエントリが分かりやすくまとまっています。
地平線に行く- JJUG CCC 2014 Fall ( #jjug_ccc ) - セッション資料の一覧



その他にもすでにレポート記事を書いてくださっている方多数です。


Challenge Java EE !- JJUG CCC 2014 Fallで感じたJavaの熱気
mike-neckのブログ- UG CCC 2014 Fallに行ってきた #jjug_ccc #jjug
この国では犬がコードを書いています- JJUG CCC 2014 Fall のメモ #jjug_ccc
きしだのはてな- [java]JJUG CCC 2014 fall「Javaが見るニュータイプの夢」
torutkの日記- [Java]JJUG CCC 2014 Fallにちょっとだけ参加
susumuis Info- JJUG CCC 2014 Fall ( #jjug_ccc )に参加して来ました

おそらく、今のところこんなかんじです。土曜日の出来事をすでにこんなにたくさんの人が書いてるとは。。。!





参加してないものを書いても仕方ないので、
参加したセッションやハンズオンを中心に何がすごいか、実際に現地で何が起こっていたかを伝えたいと思います。









2014/11/03 このエントリーをはてなブックマークに追加 はてなブックマーク - 【PrimeFaces】FileUploadのCancelActionSelectorのIEバグをfixする

【PrimeFaces】FileUploadのCancelActionSelectorのIEバグをfixする









PrimeFacesには、IE上で動かないバグが結構あります。
原因としてはJavaScriptでうまくいかない事がほぼなのですが、
結構困ります。


僕がハマってしまって一応解決した事を書いていこうと思います。


今回は、FileUpload部品でIEのみスクリプトエラーが出てしまう事象の解決方法を書いていきます。
















【社内ニートJavaプログラマに捧げる】Closed環境での暇のつぶし方




仕事しないで時間をつぶすなんて、やってはいけません。
他のチームメンバーやリーダーに「何か手伝う事はありませんか?」と聞くなり、
前倒しして、作業を進めていくのが社会人たる基本です。



ただ、どうしても、プロジェクトで やる気の無い 暇な時というのはおとずれます。
そんな時にインターネットにもつながらない。何もやる事が無い!そんなあなたに送るエントリです。




・"JDK_HOME/bin"のパスが通っている事を前提とします。

















2014/10/31 このエントリーをはてなブックマークに追加 はてなブックマーク - 【そんなBigDecimalで大丈夫か】Javaシステムの計算処理について

【そんなBigDecimalで大丈夫か】Javaシステムの計算処理について






Twitterの話題に乗っかって、内容をまとめてみようと思います。


私自身の考えではなく、様々な意見を整理したいなという試みです。僕には知識はありません。
B○zzNews並みに頑張ろうと思います。





基本的に、Javaを中心として、その周辺についても少し触れるぐらいのアプローチで書こうと思います。
ポイントとしては、以下の3点です。
※無意識に利用している部分(基礎的で普段意識しないところ)ではありますが、とても重要な話です。

1.Javaではあたり前のように計算処理にはBigDecimalが使われている
2.ではなぜ、BigDecimalではないといけないのか
3.どういった計算ならBigDecimalを利用するのか/利用しないのか



※本記事は演算誤差についてあまり厳密に的確な内容ではない可能性があります。
Java内の演算処理方法としてベターな方向の提示を目的としていますが、「誤差」や「精度」などに関して、
誤解を招く可能性があり、申し訳ないです。
BigDecimal以外もそうですが、100%誤差の無いものではなく、 それぞれの言語仕様、型仕様、小数点数方式、有効桁数、実行環境etc...によって精度は変わってくるという認識です。


精度などについては言及せず、以下のURL参照という形でお願いします。


参考:浮動小数点数の限界
BigDecimal 基本編
Javaプログラマーのためのjava.math.BigDecimalまとめ












2014/10/24 このエントリーをはてなブックマークに追加 はてなブックマーク - 【PrimeFaces】JSF + PrimeFaces環境でjQueryを使いたい

【PrimeFaces】JSF + PrimeFaces環境でjQueryを使いたい









最近、JavaEE環境でJSF2.xとPrimeFacesを触る事が増えてきましたので、
これからそういった構成でシステムを構築する方のために記録として書いておきます。
先に釘を刺しておきますが、JSF環境ではJavaScriptを多用する事はオススメしません。



   JSF



JSFはJavaEE標準機能のモジュールドリブンなMVCフレームワークです。
JSF2系になり、かなり実用性が増していると思います。
JSF1.xのバージョンではxmlベースでのマッピングであるのに対し、
2系ではアノテーションベースで簡易に関連付けが出来るようになっています。




    PrimeFaces



PrimeFacesはJSFを前提にして、リッチなUIライブラリを提供するものです。
基本的にJSFのタグライブラリを全てラップするような形でPrimeFacesのタグライブラリが作られています。
PrimeFacesのjarの内部には関連するJavaクラスとjs、cssが内包されています。
JavaScriptでは内部的にjQueryが利用されています。



多分、説明するより、ソースを見た方が早いですね。
GitHubにソースが上がっています。META-INF内にJsファイルは格納されています。
GitHub - primefaces/primefaces

独自にjQueryのjsファイルをダウンロードしてきて、xhtml上から読み込もうとすると、
conflict(衝突)します。
では、どうしたらいいのでしょう。









2014/10/20 このエントリーをはてなブックマークに追加 はてなブックマーク - 【JavaOne】JavaOne 2014 サンフランシスコ報告会 Tokyoに参加させていただきました #j1jp

【JavaOne】JavaOne 2014 サンフランシスコ報告会 Tokyoに参加させていただきました #j1jp





毎年行われており、今年で19回目を迎えるJavaOneの報告会、
JavaOne 2014 サンフランシスコ報告会 Tokyoに参加してきました。


togetterはこちら - 2014/10/18(#j1jp)JavaOne 2014 サンフランシスコ報告会 Tokyo

もうすでに、皆さん詳しく書かれています。



関連レポート
・きくたろーさん
JavaOne 2014 サンフランシスコ報告会 Tokyoに参加しました #j1jp
・みけさん
JavaOne2014報告会Tokyoに参加してきた #j1jp
・のた犬 (id:notainu)さん
のた犬のうまい猫めし
・yuji0316さん
Yuji Blog


発表者の実際の現地レポート的なものもみつけました
JavaOne 2014 SF レポート集



発表スライド等はすでにweb上に上がっていますので、直接僕が話を聞いた中で印象的だったところ、
スライドからは読み取りにくいところを中心に書いていこうと思います。

では、発表を順々に振り返っていこうと思います。








2014/10/15 このエントリーをはてなブックマークに追加 はてなブックマーク - Clojure夜会に参加させていただきました #Clojureyakai

Clojure夜会に参加させていただきました #Clojureyakai






Clojure夜会に参加してきました








僕はClojureはずぶの素人です。


なぜ参加したかというと、next Javaという口説き文句があったのと、
挑戦的なSIerの@kawashimaさんのLTが見てみたいというのが大きな理由でした。
kawashimaさんのこの記事にまんまとつられたのです(笑)。

SIerを退職する前に身につけておきたいスクショの撮り方



あと、ついでに一生懸命がんばってる@syobochim(しょぼちむ)さんを生暖かく見守ろうかなというのも。少し。




会場提供はリクルートテクノロジーズさん。とりあえず、ビル綺麗だし、デカすぎてびびった。


以下、セッションとLTを振り返っていきます。



2014/10/09 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Android】AndroidAnnotations3.1でジェネリクスが使えなかった話

【Android】AndroidAnnotations3.1でジェネリクスが使えなかった話



AndroidAnnotationsより引用




一応、備忘録として。




  • AndroidAnnotationsを使用している
  • AndroidAnnotationsのアノテーションをHogeクラスに付与すると、Hoge_というクラスがジェネレートされる(ビルド時に自動生成)




  • @Transactionalを付与したメソッドの戻り値をList<Map<String, String>にすると、
    ジェネレートされたクラス側でコンパイルエラー

    実際のコードは、以下のような感じ。








    2014/09/20 このエントリーをはてなブックマークに追加 はてなブックマーク - 2個上の先輩は2年後の自分ではない

    2個上の先輩は2年後の自分ではない





    時間は絶対的な概念であるからこそ危険でもある。



    なんとなく、思い出したので昔話を書いてみる。



    よくあると思うんです。



    「3年働いてようやく仕事が分かる」とか
    「40代になったら部長ぐらいには」とか。



    ああいった類の話は一理あると思うんですが、
    危ない考え方でもあるなぁと個人的には思ったりします。


    率直に言うと、「歳とか関係ないよ」といつも思ってる。


    2014/09/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlinかわいいよ】関西Kotlin勉強会に行ってきた

    【Kotlinかわいいよ】関西Kotlin勉強会に行ってきた



    JetBrains社サイトより引用



    関西Kotlin勉強会に行ってきました!!


    前回までのあらすじ




    3人の方によるLT(Lightning Talks)を聞きました。


    2014/09/14 このエントリーをはてなブックマークに追加 はてなブックマーク - 「Kotlin Advent Calendar 2012 (全部俺)」を全部俺が読んだ話

    「Kotlin Advent Calendar 2012 (全部俺)」を全部俺が読んだ話



    JetBrains社サイトより引用



    勢いで関西Kotlin勉強会に参加する事になった私(勉強会3日前)。



    参加申請してから焦り始める。
    Java知ってれば雰囲気でいけるやろ!と思いつつもさすがに手ブラで行くのはまずいかと思い始める。


    「ベンキョーカイにはマサカリというものがあり、新参者が行くと身体をズタズタにされる」





    そんな偏見があり(ホントは全然そんな事ない)、勉強せねばと奮起。
    完全に勉強会参加を決めてからKotlinを覚え始めました。







      前提


    ☆僕のスペック
    JavaEEとかサーバーサイド三年ぐらい経験。
    Groovy知らない。Scala知らない。VBAはなぜか知ってる(悲しい)。



      学習期間


    2日

    【まだVBAで消耗してるの?】Excelツールテンプレートパターンを考えてみた(Excel VBA Tools template)




    ツールのテンプレートパターンを考えて書いてみた。パターン考慮して汎用的なツールも作った。
    https://github.com/yyYank/yank/tree/master/Recursivive


    VBAでなんかツールを作りたい人
    プロジェクトでツール作りそうな人


    VBAの規約に関しては別エントリ参照。
    VBAでツールを作るにあたって、
    今まで現場で個人的に色々とツールを作ってきた(自主的にまたは作らされた)経験から
    見てきたパターンを明文化しようというのが今回の試みです。


    2014/09/10 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Microsoft頑張れ】VBAの扱いひどくない?(Don't do careless programming by VBA)

    【Microsoft頑張れ】VBAの扱いひどくない?(Don't do careless programming by VBA)








    VBAなんてチョロいって人
    VBAがショボいって思ってる人




    Excel VBAはofficeの入っているPCなら誰でも利用可能である。
    したがって、非プログラマや非VBAerもカジュアルに利用できる。

    環境構築不要という参入障壁の低さはメリットでもあるが、
    糞コード氾濫の一因にもなる。
    (どこの現場もオレオレツールばっかだよね)

    基本的に、VBAにはVBAの作法がある。※1
    そこに、JavaやらPHPやらC系のコーディングルールを下手に混ぜ込むのはご法度だと思う。

    2014/08/19 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Glassfish4】EclipseからGlassfishが起動出来ない(サーバーアダプターが見つからない)

    【Glassfish4】EclipseからGlassfishが起動出来ない(サーバーアダプターが見つからない)





    Glassfish4をEcllipseから起動しようしても、サーバーアダプターが現れてくれない。



  • Eclipse Luna
  • Glassfish4
  • マーケットプレースより、Glassfish4.xプラグイン導入済み



  • EclipseにGlassfish4対応のプラグインをインストールしたはずなのに、
    サーバのビューで新規サーバを立てようとしても、Glassfishサーバが候補として出てこない。
    プラグインが丸々インストールされていないかのように見える。




  • EclipseをJava7で起動する

  • 具体的にはこんな感じ。
    eclipse.exe -clean -vm "{JAVA_HOME}/bin/javaw.exe"


    Java6とか複数のJavaバージョンが混在している場合に起こる可能性のある問題。
    明示的にvmを指定するのが最も平和的な解決な気がする。



  • Glassfish4はJava7以上でしか動かないよ
  • EclipseもJava7以上で起動しないとGlassfish4がガン無視されるよ
  • Java7以外のランタイム環境を全てアンインストールするのも方法としてあるけど、 Eclipse起動時にvm指定した方が平和的
  • vmオプションはeclipse.iniに書いても良いと思う









  • 【JavaScript】なんとか.jsのお話(Backbone.js、AngularJS、Node.js、altJS、Underscore.js、prototype.js....etc)









    今回は、JavaScriptってなんかよく分からないけどいっぱいあるよねってお話です。


    エントリのタイトルにも入れましたが、
    Backbone.js
    AngularJS
    Node.js
    altJS
    Underscore.js
    prototype.js




    などなど、"なんとか.js"というのはたくさんあります。


    それぞれに技術の歴史的な文脈というのはあるんですが、
    僕としてはSI業界に入ったときにはあふれんばかりにjsが現れて
    ナニガナンダカです。


    そこで、今回はJavaScriptの変遷を見て、
    氾濫している(ようにみえる)JavaScriptを整理してみようという試みです。


    まず、歴史的なところから、簡単に。

    2014/07/23 このエントリーをはてなブックマークに追加 はてなブックマーク - ソースは英語で、コメントは意訳(Programing have to be like natural English, and comment have to be free translation)

    ソースは英語で、コメントは意訳(Programing have to be like natural English, and comment have to be free translation)


    スパゲティコード、レガシーコードなど
    コーディングに関する情報や言葉というのは世の中にたくさんあります。



    そういった言葉から、いつも感じるのは
    可読性の重要性です。


    また、それを守る事とは、最終的にはコードという「文章」を書く
    というところに結びつくと僕は考えています。


    コーディング規約に書かれている事のほとんどは「文章を書くこと」を具体的に言っている
    だけなのではないかなと。イディオムに近いものだと思っています。


    従って、英語を意識しながらコーディングすれば、
    可読性が高く、自然と規約に沿った実装が出来るはずです。






    僕は実装するときに、感覚的には英語のライティングと同じように、ソースを書いています。
    ポイントとしては

  • 主語は何か
  • 動詞は何か
  • 前置詞は何か、補語は何か
  • 複数か単数か
  • どのような状態か

  • だと思っています。


    今回はJavaのクラスを1つ作ると想定して、「英文のような実装」というものを考えてみます。


    2014/06/01 このエントリーをはてなブックマークに追加 はてなブックマーク - 【ウォーターフォール】工程にリファクタリングを入れようよ

    【ウォーターフォール】工程にリファクタリングを入れようよ





    ※前提として、この話は
    SIでの、僕周辺の狭い話です。





    古典的なSIerというのは、とかくウォーターフォールにこだわりを持っている。
    プロジェクトによってはスパイラルモデルや
    (バズワード化している)アジャイル的な手法というのも取られているけど、
    やっぱウォーターフォールって多いと思うんです。



    2014/05/15 このエントリーをはてなブックマークに追加 はてなブックマーク - はてな社長が語る「変な」会社のつくり方

    はてな社長が語る「変な」会社のつくり方

    ※こういう画像ブログに乗っけてみたかったんだよねーw






    だいぶ前のことになるのだけど、はてな社長、近藤淳也の本「へんな会社」のつくり方を読んだので、
    素人が書評を書こうと思います。割と古い本なんだけどね、2006年出版。

    前提として、2006年時点での「はてな」の話、ということになる。
    それ以降の変遷や時代背景は考慮されないのはもちろんである。
    でも、確かに未来を見据えた人だなぁという感想は持った。

    2014/04/27 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Struts脆弱性】サルでも分かるStrutsのClassloader脆弱性(CVE-2014-0094)(CVE-2014-0112)

    【Struts脆弱性】サルでも分かるStrutsのClassloader脆弱性(CVE-2014-0094)(CVE-2014-0112)

    strutsののClassLoader脆弱性



  • セキュリティがよく分からない。簡単に説明してほしい人。
  • どう対処すれば良いか分からない人。
  • 事情がよくわからないプロマネとかチームリーダーの人。




  • Strutsに脆弱性が発見されました。


    IPA - Apache Struts2 の脆弱性対策について(CVE-2014-0094)(CVE-2014-0112)


    簡単に言うと(対処せずに使用すると)Struts2系とStruts1系はやばい。SAStrutsはOK。S2Strutsはアウト。
    その他にもリクエストパラメーターをリフレクションではめ込むようなFWは全て懸念される事象です。


    何が一番やばいかといったらStruts1系。

    2014/04/20 このエントリーをはてなブックマークに追加 はてなブックマーク - 数の暴力かスタンドプレーか?プログラマーのただしさとは何か (人日と引き換えに)

    数の暴力かスタンドプレーか?プログラマーのただしさとは何か (人日と引き換えに)



    システムには共通部品というものが必ず存在する。
    共通で使う、ということ。
    それはつまり影響範囲が大きい。
    共通部品を直したのに(ここ重要)、各業務で不具合が大量発生したら。。。
    あなたなら何が正しいと思いますか。




    これは、実際にSIの現場であったお話です。