アウトプットができる技術者に

it's a time to take a new step !

Git メリットとsvnとの違い

メリット

いろいろ読んでると、gitはブランチ / mergeが優れているという記述を多々見る。

  • ブランチについては、高速で作れるから
  • mergeは svnみたく修正を上書きするんじゃなくて、きちんと一本化してくれるから

とかなんとか。。両方ともブランチの利点だな。コレ

後は、

  • 個人でリポジトリもてるのが嬉しい
  • みんなでコード保ってるから分散に異なるぜ!
デメリット
  • ちゃんとTOPのリポジトリ決めとかないと、ぐちゃぐちゃになる
git / svn の細かい違い
  • gitは権限すべて保存。svn は 実行権限のみ

Sybase ASE 入門 コネクションのチェック

ストアドプロシージャー 「sp_who」 でチェックできる

sp_who

 fid          spid             status                                   loginame                         origname                         hostname                                                                         blk_spid                         dbname                               tempdbname                               cmd                                                                  block_xloid                                  threadpool                                                       
 ------------ ---------------- ---------------------------------------- -------------------------------- -------------------------------- -------------------------------------------------------------------------------- -------------------------------- ------------------------------------ ---------------------------------------- -------------------------------------------------------------------- -------------------------------------------- ---------------------------------------------------------------- 
   0            10             sleeping                                 NULL                             NULL                             NULL                                                                                    0                         ase1                                 tempdb                                   NETWORK HANDLER                                                                0                                  syb_default_pool                                                 
   0            11             sleeping                                 NULL                             NULL                             NULL                                                                                    0                         master                               tempdb                                   LICENSE HEARTBEAT                                                              0                                  syb_default_pool                                                 
   0            16             sleeping                                 NULL                             NULL                             NULL                                                                                    0                         sybmgmtdb                            tempdb                                   JOB SCHEDULER                                                                  0                                  NULL                                                             


Sybase ASE 入門 目次 - アウトプットができる技術者に

【日本オラクル】Java Fan Meeting 2014 に行ってきた

人数限定のイベントに当たったので行ってみた

  • Java に関する情報発信をしたいと考えている方
  • 30歳以下

が対象でした。自分はギリギリ。。

かなり雑だけどとりあえずUP
明日なおそー

Duke について

  • Javaのマスコットキャラ = Duke
  • Javaの最初のversionが出る前に作られた 1992年
  • Help機能を教えるマスコットキャラとして誕生したらしいです
  • ちなみにDukeBSDライセンスだそうです
実施の背景
  • 情報発信をする人を増やしたいそうです
    • テクノロジーの使い方はユーザー次第であり、近年では色々な年代の利用者が増えてきた
    • Javaで何ができるか?」というところを広めたい / いろんな人からの情報発信をしたい

内容 Oracle 寺田さん http://yoshio3.com/

Java 歴史(概略)
1990 - Green Project : (in sun micro systems) 組み込み向けの新しい 言語作ろうぜ
1996 - Java誕生 JDK1.0 internetは文字列画像だけだったなかで、Dukeが躍った! -> 徐々にJavaのすごさが伝わってきた
2011 - Java SE 7
2014 - Java SE 8 正式リリース (03/18) いままでで一番重要なProgram。書き方/Performanceが大きく変わる。Performanceについては、Java Day Tokyo の 寺田さんの session で実演するとのこと。
今後
  • 10年後は 500億のデバイスに接続されるようになる。全てがつながる時代へ
  • 現在 : Hardware 特化のPrograming言語 を使う必要があったが、これからは全部 Javaで書けるようになる
  • Javaをしっかり勉強することで、IoTに先駆けることができる
余談
  • applet が流行ってたのは 2000年ぐらいswing は SE7以降はメンテナンス停止。今後は Java FX になる
  • やめましょう活動 : struts / tomcat ... 旧いテクノロジーなので
  • 考え直しましょう : eclipse
Java Day Tokyo 2014 の話

Hash タグこれ #JavaDayTokyo

  • 基調講演 : 今後のJavaがどうなるのか?を詳しく説明
  • 午後 : Jva SE 8 で Javaは変わる
    • Lambda式が一番重要なポイント。また、ストリーミングAPIも重要。
    • JavaScript が JavaVM上で動くようになる

主なJSR

JSR-337 Java SE 8
JSR-308 Type Annotation
JSR-310 Date and Time
  • 今回はLambda開発者が来日する。ひとつは簡単、ひとつは難しいところ。

背景 : 並列処理のパフォーマンス改善

Lambdaの注意点
  • 簡単な処理をLambdaで書くのは逆効果。普通に書こう
  • Lambdaは並列処理を前提にしているので、普通に書くよりはコストが大きい
Lambda式 てこんな感じ
() -> {
    System.out.println("Hello Lambda");
}
Java EE7 もお勧めだよ
  • Batch処理
  • Concurrency Utility : サーバーの処理は並列処理すんなよって話だったのが、これで解決だぜ!みたいな?
その他
  • Java8 : 講演者の話を聞くといまのJavaEE7が将来どうなっていくのかが確認できる
  • David Buck: Java SE 8 から実行環境がどう変わったのたんかがわかる。並列処理であるLambdaを向上させるには、
寺田さんのDemoを先行公開
  • 詳細は書けないけど、アレを一日で仕上げたそうな
Java Day Tokyo の 販売予定
  • レゴ : 5.x 万円 (Io)
  • Javaラズベリーパイも販売します限定20個 - oracle blog
    • 7,500 - 8,000円 = ケースは今回だけだよ
  • テーシャツ、ボトルと、バッグ、デューク人形 100個 (1,000 - 2,00)
今回の Java Night 予定

Ask the expert

  • 海外から来ている人たちに質問できるってさ
最後に
  • Javaをちゃんと理解しておけば、SE8のノウハウだけで いろいろできるようになるから、Javaやるべさ

ant: よくある JavaProgram を jar にする sample

struts2 の core を build するための build.xml
これとてもシンプルで分かりやすい。

<?xml version="1.0"?>
<project name="struts2-core" default="default">

  <!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
  <!--                   directories                     -->
  <!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
  <property name="src.dir" value="src/core/src/main/java"/>
  <property name="build.dir" value="build"/>
  <property name="build.classes.dir" value="${build.dir}/classes"/>
  <property name="dist.dir" value="dist"/>
  <property name="lib.dir" value="lib"/>

  <!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
  <!--                    paths                          -->
  <!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
  <path id="compile.classpath">
    <pathelement location="${build.classes.dir}"/>
    <fileset dir="${lib.dir}">
      <include name="**/*.jar" />
    </fileset>
  </path>

  <!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
  <!--                  targets                          -->
  <!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
  <target name="default"
          depends="dist"
          description="default: build everything"
  />

  <target name="clean" description="remove all built files">
    <delete dir="${build.dir}" />
    <delete dir="${dist.dir}" />
  </target>

  <target name="dist"
          depends="compile"
          description="create distributables (jars etc)">
    <mkdir dir="${dist.dir}" />
    <jar jarfile="${dist.dir}/struts2-core.jar">
      <fileset dir="${build.classes.dir}"/>
    </jar>
  </target>
  <target name="compile" description="compile java">
    <mkdir dir="${build.classes.dir}" />
    <javac srcdir="${src.dir}"
           destdir="${build.classes.dir}"
           classpathref="compile.classpath"
           debug="on"
           deprecation="on"/>
  </target>

</project>
  • 次は war ファイルの作り方を書きたい

Batch処理 ディレクトリ構造を考える

適当にディレクトリ作ってたら、リリースの時にいろいろめんどい。。
ってことに気づいたので、今後のために少し考える

実現したいこと
  • job 単位ごとにリリースして version 管理したい(1ファイルだけリリースとかしない)
  • csv と log は リリースして version up した際に、新しい version に引き継ぐ
  • 他の job との依存性チェック
構成
job_name
|- bin
|  |--- execute.sh <- main となる shell は execute.sh
|  |--- sql/
|  |--- awk/
|
|- test/ 
|  |--- execute.sh
|  |--- test_xxx.sh
|  |--- tmp/
|
|- conf/ 
|  |- rivision.txt   <- rivision 情報を格納 svn info とかの結果
|  |- dependency.txt <- 他の jobとの依存情報を格納
|
|- tmp/
|- csv/  <- NFSとか容量が大きいところに symbolic link
|- log/  <- 同上
上記構成でのリリース手順の想定
  • svn から job_name 以下を job_name_exp として export
  • svn info コマンドで conf/rivision.txt を生成
  • conf/dependency.txt を check して依存性をチェック
  • job_name_exp と job_name を比較して、差分が想定通りなことを確認
  • job_name を 削除
  • job_name_exp を job_name にリネーム

Java Day Tokyo 2014 申し込み受付開始!

4/30 から受付が始まってるようですが、翌日には 多くのセッションが満席に。。
https://oj-events.jp/public/application/add/169

きっと寺田さんのセッションなんかは一瞬で埋まったことでしょう。

トップページを見てみると、やっぱりJava8の話がメインみたいですね。
まぁ、そりゃそうか。

昨年はJava8での新機能の説明と其の背景と言った感じでしたが、
今回は「インパクトと可能性」にスコープが当てられてるようです。

昨年の秋葉原でしたが、今年は品プリになって、椅子のグレードがアップしているそうな
行くのが楽しみです

急な仕事が入らぬことを祈りたいと思います。。