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…
前回の記事の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…
前述の記事のアプリが形になってきたので、デモ公開してみる。 利用するのは、RedHat社のPaas OPENSHIFTにデプロイ。 CookBookを確認するとtomcat上で可動とのこと。まず, OpenShiftにsignup。 Getting Started guide で、SSH keyの設定や、コマンドラインツ…
前述の記事の覚書 LiftのORMでManyToManyを実装。 AlbumとTrack間で実装。(同一Trackが、複数のAlbumに収録される事実を踏まえ。regular Albumとbest AlbumのTrack共用。) まずは、Albumクラス。 model/Album.scala package code.model import net.liftweb…
前述の記事の覚書 LiftのORMでOneToManyを実装。 各trackの添付を複数指定可能にする。(必然性はないが、音楽ファイルとTab符とか) One側のTrackクラスは、OneToManyをMixIn。属性にattachesを定義。 model/Track package code.model import net.liftweb.m…
前述の記事の覚書。アップロードファイルのサイズ制限。 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 }…
前述の記事の覚え書きファイルダウンロード 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…
前述の記事のための覚書。ファイルアップロード 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…
前述の記事のための覚書。1.liftセットアップ インストーラをダウンロードし、展開。 展開フォルダ配下のscala_211配下の任意のテンプレートのディレクトリに移動し、 $ ./sbt > container:start必要に応じ、./build.sbtを編集しておくこと。 今回、利用した…
4年ほど前から、scalaを学習中。 ネットで学習をすすめるが、限界を感じ、年初からOdersky先生の本を購入し再学習中。 それと平行して、以前から気になっていた、Snippetアプローチが出来るLift frameworkを確認。 こちらやあちらを確認し、生産性がよいのか…
前回に続き、playframeworkのdataアクセス。 Anormについて学習。テキストはこちら。 AnormはORMではなく、SQLを記述しコレクションに格納する。 SQLなので、テーブルのjoinも、もちろん可能。 ただし、left outer joinで結合される側のテーブルにデータが存…
引き続き、PlayFramework2.4を学習中。 今回はORM(Object Relation Mapper)について。 2.1頃から、ORMとしてSquerylを使用していたが、今回PlaySlickを試してみることにした。 設定方法は、こちらを参照。利用方法も記載されているが、断片的なコードなので…
Playframework2.4がリリースされた。 目玉はDIの模様。ドキュメントを確認すると、googleのGuiceを利用とのこと。 Guiceについては、2.1の時から利用を推奨されていたので、特に驚きはない。 大きな変化点は、Guice.createInjectorで呼び出していたModule(tr…
Playframework 2.4がリリースされた。 Dcumenntationを確認しながら、学習しようとして躓いたので備忘録。 いつもの手順のしたがい、Acivatorのダウンロード。 # activator new プロジェクト名 # cd プロジェクト名 にて、プロジェクトの新規作成。プロジェ…
前の投稿の続き。 Linking containers togetherに従い、PlayframeworkアプリとDBを別のコンテナイメージで作成。 link を使用してコンテナ間で、セキュアな情報のやり取りに挑戦。 前回と同じく、Dockerfileからimageを作成。前回と違うのは、アプリとDBを別…
またも更新まで、間が開いてしまった。反省。 春さきより、気になっていたDockerをはじめる。日本語の良い記事が見つからず、辞書を片手に、docker user guide。 最初に躓いたのが、ubuntuを使って試用したのだが、64bitしか対応していないため、 64bit版のu…
Java8がリリースされたのを期に、こちらを参考にしながらJVMの並行性について学習。 引き続き、並列、平行、分散処理を簡単に記述するためのScalaのライブラリ:Akkaに ついて学習。 とてもわかりやすいサンプルで学習を始めるも、仕様変更のためコンパイルエ…
先のブログのプロジェクトの機能追加として、CSVファイルから、部品表(PartsStructureテーブル)を登録する機能について検討。 CVSファイルを、play.api.mvc.MultipartFormData.FilePartで取り込む。 取り込んだファイルをjava.io.FileInputStream,scala.io…
先のブログのプロジェクトの続きです。 light weightな設計変更機能も追加しました。 プロジェクトホーム デモサイト wiki 予定では、設計変更の一括登録を実装予定です。
1年数カ月ぶりのブログ更新です。 一年以上何もしていなかった訳ではないのです。昨年は、PlayFramework1.2(java)を集中的に学んでいました。 PlayFramework2も、検討していたのですが ドキュメントの豊富さの優位性より1系を選びました。年が明けて、時間…
Play!学習中。Play!(2.01)自体はフルスタックということで単体でも十分に利用可能。 しかしSpringを併用したり、TomcatへのDeployを行おうと思うと Pluginの利用が必要。 Pluginの利用にはsbtが必要。Mavinの様に、依存性をnetにアクセスし解決。 ただ、社…
引き続き、Play2.0学習中。 Pluginを使用したく、ソースコードからBuild。 sbtの使用は、初めてなので覚え。開発環境は、winXP。 事前にsbtをインストールしておく GitHubから必要なPluginをzip download。 適当なフォルダに展開。 コマンドラインより proje…
PlayFramework2.0.1を学習中。eclipsfyを使用して、eclipseでコーディング。 TDDに取り組みたく、テストアノテーションで、テストプログラムを実装。 Play1.2.4では、コンソールでtestコマンドを実行しておけば、 (runコマンドを発行したの時の、実装モジュ…
友人に勧められ、Play!勉強中。 チュートリアルを、SAKURAを使用して、がむしゃらに進めるが生産性が悪い。 IDEを使用したくてググってみた(感謝です)。 Playに、eclipsify コマンドというの用意されているらしい。 Play new でPlay!アプリケーション作成…
一年に最低一つの言語習得を目標に、7月ぐらいから、PHPの勉強を始めた。 5ヶ月たち、勤務先の業務アプリへの適用も目処が立ち 一区切りつけようとおもったら、使用しているバージョンが旧いことに気づいた。現環境は windowsXP apache2.2 php:5.2.17php5.…
先日からの続き CakePHPでDB2接続しては見たが、 ページネータがうまく動かない。(OS400 V5ではlimit関数が使えないためとの事) charsetでUTF-8の使用に、運用的な問題あり。 等の課題がある。 そこで、oracleの利用を検討中。 solaris9のoracle 9.2へ、wi…
CakePHPでQdmailをサンプリング。 ローカルなクローズ環境でテストをしたくて ローカルホストにMTAを設定。参考にしたのはこちら。感謝です。 apache jamesを利用。 hostsファイルのlocalhostをdefault.localに変更。 localhostのままでは、email形式のvalid…
前の日記に書いたとおり ubuntu 11.04にて開発環境構築中 mysql5のインストールはしたが、アクセスしようとすると 「Access denied for user 'root'@'localhost'」 と怒られる。 グーグル先生で調べると、mysqlインストール後に、まずパスワードのリセットが…
ノマド ワーキング用にNotePCを使用している。 OSがWindows XP。 OSのバージョンアップやマシンの入替を行おう思うと、いちからの構築し直しとなる。 そのコストはバカにならない。 開発しているのは、Java,PHP。Windowsに拘る理由はない。 一念発起し、手持…
会社の業務アプリで、CakePHP採用。バックエンドはDB2。 接続テストを試みたので、覚書に環境 OS:windowsXP apache 2.1 PHP 5.2 ODBCドライバのインストール DB2Connect Enterprise Edition or DB2 Connect Unlimited Edition or DB2 ConnectApplication Ser…