読者です 読者をやめる 読者になる 読者になる

メディアフォース 開発者ブログ

株式会社メディアフォースの開発者による非公式ブログです。

DataSpiderでOutOfMemoryErrorがでたら勝手に再起動してみる

DataSpiderに限らずJavaアプリケーション永遠のライバル、「OutOfMemoryError」(以下OOME)。 油断すると簡単に出るもので一見見落としがちなんですが、Exception(例外)ではなくエラーなんですよね。 Javadocによると、Errorは「絶対に起きてはならない異常な状態である」だそうです。

Error (Java Platform SE 8)

OutOfMemoryErrorが発生した時点で JVM の中はいっぱいいっぱいになっており、状況は不定です。たとえそれが何らかの処理中であっても、その処理が正しいデータを出力する保証はなく、ただちに停止するべきであると考えられます。

ということで、OOMEが出たら再起動するようにしてみましょう。

なお、DataSpiderは原則として動作検証済みオプション以外はサポート対象外になります。 そのため、本記事の内容は恐らくDataSpiderではサポートされません。ご利用の際には十分検証を行ってください。

続きを読む

でぶそる(BIハッカソン)開催しました

先週金曜日の話ですが、第二回「でぶそる」を開催しました。

f:id:mf_sol_eai:20160703181743j:plain

Development and Solution を略して「でぶそる」ですが、要はハッカソンです。スケジュールの都合上、一日間の開催となりましたが、非常に濃縮された一日で有意義な時間だったと思います。 第一回目は当事業部内で開催し、テーマは「 DataSpider Servista + kintone」でした。

第二回では事業部 + 当他事業部 + アプレッソさん を招いての合同で開催しました。総勢47名、7チームの大所帯ハッカソンとなりました。テーマは「DataSpider Servista + BI」。 ※いや今思えばよく参加してくれたな... 当事業部ではコアなプロダクトとして、DataSpider Servista を採用していることもあり、開発工数を短くできるEAIツールはハッカソンのお供と化してます。

筆者は企画・運営で参加しており第一回目は開発しなかったのですが、やはり他人のハッカソンを見てると疼いてくるものがあるというか、二回目は耐え切れずに参加してしまいました。

f:id:mf_sol_eai:20160703182228j:plain

f:id:mf_sol_eai:20160703182241j:plain

f:id:mf_sol_eai:20160703182317j:plain 奥でうなだれてる pepper くんがみえますね。導入したばかりで開発環境の整備が間に合わなかったのが残念。

f:id:mf_sol_eai:20160703182524j:plain 開発も終盤、集まって動作確認中の一幕。

f:id:mf_sol_eai:20160703182609j:plain やったぜ

f:id:mf_sol_eai:20160703182649j:plain スマホのカメラを使ったBIに挑戦中

f:id:mf_sol_eai:20160703182740j:plain プレゼン資料も一日の時間内で作成。即興の割にはキレイな作りになってます。 このチームはBIツールとして WebFOCUS を採用してました。

f:id:mf_sol_eai:20160703183020j:plain BIでトイレ問題解決チーム。こちらは Tableau を採用

全7チームの発表を一時間半でこなす過密スケジュールの中、全チームとも素晴らしいプレゼンでした。

その後、全参加者による懇親会を経てでぶそるは終了。参加者の満足気な表情は主催者として嬉しいものがあります。 第三回、予定しておりますので興味のある方は是非ご参加ください!

IT Week 春にお邪魔してきました

f:id:mf_sol_eai:20160516094214j:plain

www.m2m-expo.jp

先週 5/11~5/13 まで東京ビッグサイトにて IT Week 春が実施されていました。 今年も参加させていただきましたが、当事業部は特定の製品やプロダクトをフォーカスしているわけではなく、市場の動向調査という面が強いので出展企業は一通り巡っています。 IT Week は年々規模が大きくなるので、体力的にそろそろ一通りめぐるのがしんどい年齢になってしまいました。 そろそろ体力の有り余ってる若手も同行してもらい、私は最低限の分野だけを見るようにしたいと思います...。

f:id:mf_sol_eai:20160516102533j:plain

IT Week の出展内容は毎年変わるものですが、今年は特に「クラウド」や「IoT」にフォーカスした内容が非常に多かったと思います。2015年はIoT元年とも言われていますが、インフラやサービスが整備されて導入の敷居が下がった2016年では爆発的に広まる兆しを見せています。 センサー類の小型デバイスをはじめ、EC2 などの安価な IaaS、簡単にスマホアプリが作れ運用まで行える PaaS、CRMERPなど業務システムのSaaSといった一連のサービスが全てクラウド上で行えるため、IoTを導入するのにこれほど適した時期はないのではないかと思います。 その分、以前よりもネットワークインフラやセキュリティが課題として浮き彫りになりそうです。

オンプレミスでの運用時はノンストップであることが前提となっていたように思いますが、IaaS などサービスを利用する場合には安価である分、サービスの利用停止時間は必ずしも発生することになります。また、WANを介する以上、専用線やLANと比べて圧倒的に損失率は高くなります。 これからは「ノンストップであること」よりも「ストップや損失を許容できる」システムや運用作りが肝要ではないのかと、そう思います。

当社HPをリニューアルしました

本日、当社HPをリニューアルいたしました。

www.mforce.co.jp

昨今の流行を取り入れまして、レスポンシブ&フラット(ややマテリアル?)デザインのシックな仕上がり。 当社のイメージカラーであるブルーを基調としたカラーリング。 うーん、デザインは悪くない。

PC向け画面

f:id:mf_sol_eai:20160415142145p:plain

スマホ向け画面

f:id:mf_sol_eai:20160415142235p:plain

曖昧な用語を定義することの重要性

IT業界では常に新しいワード*1が生み出され、略され、定義の曖昧な用語が飛び交っている。 例えばソフトウェアにおけるテスト工程名称は単体試験、Unit test(UT)、Program test(PT) など、企業によって異なるケースも多い。 Systemt test(ST)を Product test(PT)と呼ぶこともあったり、略称によっては重複することもあり統一された呼称がない*2、または浸透していないのが現状である。

テスト工程だけでなく、要求分析なのか要件定義なのか、基本設計なのか概要設計なのか、似たようで異なる用語が多すぎる。 統一された用語が定義されているのが無論、ベストではあるのだが工程自体が企業独自のものであり、様々な用語を用いてる以上、統一用語を定義するのは難しい。

そのような状況においては用語の定義と状況の定義が肝要となる。

具体的には以下のようなものだ。

用語 状況 完了時の状態
ユニットテスト(UT) ソースコードメソッド単位試験 メソッドの機能要件が満たせている
結合テスト(IT) データのインプットからアウトプットに対する試験 クラス、モジュール間でデータIOに対する機能要件が満たせている
システムテスト(ST) 画面上からデータの登録など要求に対する機能要件の試験 要求に対する機能要件が満たせている
受け入れテスト(AT) パフォーマンスや負荷など、非機能要件に対する試験 想定ユーザの運用要件が満たせている

日常から様々な略称や用語を用いることが多い業界だが、用語の定義が曖昧であるとコミュニケーションロスにも繋がってしまう。

テスト工程を例としたが、会議の場などで顧客の話、先輩・上司の話が理解できない若手の多くは用語の定義を求めていないことが多いように思う。 企業の風土といえば聞こえは良いが暗黙の了解で決められた用語も多く、同じ職種でも企業が変われば意味が異なる。 コミュニケーションロスを起こさずスムーズに業務を遂行するためにも用語の定義は忘れないようにするべきであると考える。

*1:パズワードとも言う

*2:もしかしたらIPA等で定義されているかも

HULFT IoT先行検証版に申し込んでみた

セゾン情報さんが開発している HULFT IoT の先行検証版が申し込みできるようになってました。 ということで早速当社も申し込みをば。

www.hulft.com

説明を見る限りですと、Agent から Manager への単方向転送を行うための専用ツールみたいなイメージでしょうか。 HULFT といえば堅牢な通信プロトコルで有名ですが、バックエンドにデータ送るにあたって欠損が許されないクリティカルなデータを送るときに有効そう。

DataSpider Servistaとの連携も出来そうなので、クラウドでのIoTバックエンドとして活用が期待できる。が、IoTとなるとトランザクション量が半端じゃないのでそれを捌ききれるのかは気になるところ。

アプレッソ Advent Calendar に寄稿しました

日頃お世話になっているアプレッソさんが主催している Advent Calendar に寄稿しました。

appresso.hatenablog.com

qiita.com

スクリプトの作り方は保守にも大きく影響します。 プログラミングと似通ってる点は多いですが、アイコンを貼り付けるだけで作れてしまうのでリファクタリングなどは後回しになりがちです。 スクリプトの作り方だけではありませんが、読みやすさ、分かりやすさは重要なファクターではあります。

お客様に引き渡した後も永く愛用していただくためには運用保守を見据えた作りが必要であると、考えております。

なお、記事中のポイントは「すべて」ではないのでその点はご了承ください。