Liftことはじめ その7 自作validation

Liftで、validationルールの自作 備忘録 modelクラスの属性に、validationをメソッドをoverride BandSeqPlayer.scala package code.model import net.liftweb.mapper._ import net.liftweb.util._ import net.liftweb.common._ object BandSeqPlayers extend…

LiftをOPENSHIFTにデプロイ mysql設定の覚書

前回の記事のmysqlの設定に関する覚書。 OPENSHIFTのcartridgeにmysql5.5を追加すると、以下の用なメッセージが表示される。 MySQL 5.5 database added. Please make note of these credentials: Root User: mysql_user Root Password: mysql_password Datab…

LiftをOPENSHIFTにデプロイ

前述の記事のアプリが形になってきたので、デモ公開してみる。 利用するのは、RedHat社のPaas OPENSHIFTにデプロイ。 CookBookを確認するとtomcat上で可動とのこと。まず, OpenShiftにsignup。 Getting Started guide で、SSH keyの設定や、コマンドラインツ…

Liftことはじめ その6 mapper ManyToMany

前述の記事の覚書 LiftのORMでManyToManyを実装。 AlbumとTrack間で実装。(同一Trackが、複数のAlbumに収録される事実を踏まえ。regular Albumとbest AlbumのTrack共用。) まずは、Albumクラス。 model/Album.scala package code.model import net.liftweb…

Liftことはじめ その5 mapper OneToMany

前述の記事の覚書 LiftのORMでOneToManyを実装。 各trackの添付を複数指定可能にする。(必然性はないが、音楽ファイルとTab符とか) One側のTrackクラスは、OneToManyをMixIn。属性にattachesを定義。 model/Track package code.model import net.liftweb.m…

Liftことはじめ その4 アップロードファイルのサイズ制限設定

前述の記事の覚書。アップロードファイルのサイズ制限。 scala/bootstrap/liftweb/Boot.scala class Boot { def boot { … // Upload file size capped at 100Mb LiftRules.maxMimeSize = 100 * 1024 * 1024 LiftRules.maxMimeFileSize = 100 * 1024 * 1024 }…

Liftことはじめ その3 ファイルダウンロード

前述の記事の覚え書きファイルダウンロード snippet/TrackView.scala private def doList(reDraw: () => JsCmd)(html: NodeSeq): NodeSeq = { val tracks:List[Track] = Track.findAll(By(Track.albumid, getAlbumId().toLong), OrderBy(Track.seq, Ascendin…

Liftことはじめ その2 ファイルアップロード

前述の記事のための覚書。ファイルアップロード model/Track.scala package code.model import net.liftweb.mapper._ import net.liftweb.util._ import net.liftweb.common._ object Track extends Track with LongKeyedMetaMapper[Track] { override def d…

Liftことはじめ その1 開発環境

前述の記事のための覚書。1.liftセットアップ インストーラをダウンロードし、展開。 展開フォルダ配下のscala_211配下の任意のテンプレートのディレクトリに移動し、 $ ./sbt > container:start必要に応じ、./build.sbtを編集しておくこと。 今回、利用した…

LiftでCRUD

4年ほど前から、scalaを学習中。 ネットで学習をすすめるが、限界を感じ、年初からOdersky先生の本を購入し再学習中。 それと平行して、以前から気になっていた、Snippetアプローチが出来るLift frameworkを確認。 こちらやあちらを確認し、生産性がよいのか…

Playframework 2.4 Anormでleft outer join

前回に続き、playframeworkのdataアクセス。 Anormについて学習。テキストはこちら。 AnormはORMではなく、SQLを記述しコレクションに格納する。 SQLなので、テーブルのjoinも、もちろん可能。 ただし、left outer joinで結合される側のテーブルにデータが存…

Playframework 2.4 slickでManyToMany

引き続き、PlayFramework2.4を学習中。 今回はORM(Object Relation Mapper)について。 2.1頃から、ORMとしてSquerylを使用していたが、今回PlaySlickを試してみることにした。 設定方法は、こちらを参照。利用方法も記載されているが、断片的なコードなので…

Playframework 2.4 ,Guice,squeryl でテスト

Playframework2.4がリリースされた。 目玉はDIの模様。ドキュメントを確認すると、googleのGuiceを利用とのこと。 Guiceについては、2.1の時から利用を推奨されていたので、特に驚きはない。 大きな変化点は、Guice.createInjectorで呼び出していたModule(tr…

Playframework 2.4 Activator をEclipseプロジェクトに変換

Playframework 2.4がリリースされた。 Dcumenntationを確認しながら、学習しようとして躓いたので備忘録。 いつもの手順のしたがい、Acivatorのダウンロード。 # activator new プロジェクト名 # cd プロジェクト名 にて、プロジェクトの新規作成。プロジェ…

Dockerことはじめ 2

前の投稿の続き。 Linking containers togetherに従い、PlayframeworkアプリとDBを別のコンテナイメージで作成。 link を使用してコンテナ間で、セキュアな情報のやり取りに挑戦。 前回と同じく、Dockerfileからimageを作成。前回と違うのは、アプリとDBを別…

Docker ことはじめ

またも更新まで、間が開いてしまった。反省。 春さきより、気になっていたDockerをはじめる。日本語の良い記事が見つからず、辞書を片手に、docker user guide。 最初に躓いたのが、ubuntuを使って試用したのだが、64bitしか対応していないため、 64bit版のu…

Akka-Actor サンプリング

Java8がリリースされたのを期に、こちらを参考にしながらJVMの並行性について学習。 引き続き、並列、平行、分散処理を簡単に記述するためのScalaのライブラリ:Akkaに ついて学習。 とてもわかりやすいサンプルで学習を始めるも、仕様変更のためコンパイルエ…

playframework scalaのリフレクション

先のブログのプロジェクトの機能追加として、CSVファイルから、部品表(PartsStructureテーブル)を登録する機能について検討。 CVSファイルを、play.api.mvc.MultipartFormData.FilePartで取り込む。 取り込んだファイルをjava.io.FileInputStream,scala.io…

Playframework でPDM その2

先のブログのプロジェクトの続きです。 light weightな設計変更機能も追加しました。 プロジェクトホーム デモサイト wiki 予定では、設計変更の一括登録を実装予定です。

PlayframeworkでPDM

1年数カ月ぶりのブログ更新です。 一年以上何もしていなかった訳ではないのです。昨年は、PlayFramework1.2(java)を集中的に学んでいました。 PlayFramework2も、検討していたのですが ドキュメントの豊富さの優位性より1系を選びました。年が明けて、時間…

PluginでPlay!

Play!学習中。Play!(2.01)自体はフルスタックということで単体でも十分に利用可能。 しかしSpringを併用したり、TomcatへのDeployを行おうと思うと Pluginの利用が必要。 Pluginの利用にはsbtが必要。Mavinの様に、依存性をnetにアクセスし解決。 ただ、社…

sbtでPlay!

引き続き、Play2.0学習中。 Pluginを使用したく、ソースコードからBuild。 sbtの使用は、初めてなので覚え。開発環境は、winXP。 事前にsbtをインストールしておく GitHubから必要なPluginをzip download。 適当なフォルダに展開。 コマンドラインより proje…

TESTでPlay!

PlayFramework2.0.1を学習中。eclipsfyを使用して、eclipseでコーディング。 TDDに取り組みたく、テストアノテーションで、テストプログラムを実装。 Play1.2.4では、コンソールでtestコマンドを実行しておけば、 (runコマンドを発行したの時の、実装モジュ…

EclipseでPlay!

友人に勧められ、Play!勉強中。 チュートリアルを、SAKURAを使用して、がむしゃらに進めるが生産性が悪い。 IDEを使用したくてググってみた(感謝です)。 Playに、eclipsify コマンドというの用意されているらしい。 Play new でPlay!アプリケーション作成…

PHP5.3へのバージョンアップ

PHP

一年に最低一つの言語習得を目標に、7月ぐらいから、PHPの勉強を始めた。 5ヶ月たち、勤務先の業務アプリへの適用も目処が立ち 一区切りつけようとおもったら、使用しているバージョンが旧いことに気づいた。現環境は windowsXP apache2.2 php:5.2.17php5.…

CakePHP oracle接続

先日からの続き CakePHPでDB2接続しては見たが、 ページネータがうまく動かない。(OS400 V5ではlimit関数が使えないためとの事) charsetでUTF-8の使用に、運用的な問題あり。 等の課題がある。 そこで、oracleの利用を検討中。 solaris9のoracle 9.2へ、wi…

ローカルホストにMTAを設定

MTA

CakePHPでQdmailをサンプリング。 ローカルなクローズ環境でテストをしたくて ローカルホストにMTAを設定。参考にしたのはこちら。感謝です。 apache jamesを利用。 hostsファイルのlocalhostをdefault.localに変更。 localhostのままでは、email形式のvalid…

mysql5 パスワードのリセット

前の日記に書いたとおり ubuntu 11.04にて開発環境構築中 mysql5のインストールはしたが、アクセスしようとすると 「Access denied for user 'root'@'localhost'」 と怒られる。 グーグル先生で調べると、mysqlインストール後に、まずパスワードのリセットが…

root shellを現在のシェルの環境を維持して実行する

ノマド ワーキング用にNotePCを使用している。 OSがWindows XP。 OSのバージョンアップやマシンの入替を行おう思うと、いちからの構築し直しとなる。 そのコストはバカにならない。 開発しているのは、Java,PHP。Windowsに拘る理由はない。 一念発起し、手持…

CakpPHP DB2接続

会社の業務アプリで、CakePHP採用。バックエンドはDB2。 接続テストを試みたので、覚書に環境 OS:windowsXP apache 2.1 PHP 5.2 ODBCドライバのインストール DB2Connect Enterprise Edition or DB2 Connect Unlimited Edition or DB2 ConnectApplication Ser…