KotlinはNullPointerException(以下ぬるぽ)を言語レベルで防ぐ仕組みを持っています。
2015-09-10
2015-09-09
Kotlinことはじめ:(7)演算子オーバーライド
ラベル:
Kotlin
Kotlinでは演算子のオーバーロードをするために、演算子に対応する関数が用意されています。
演算子を使用すると、これらの関数の呼び出しに変換される仕組みです。
演算子を使用すると、これらの関数の呼び出しに変換される仕組みです。
拡張関数の仕組みを使用することで、定義済みの型に対して演算子のオーバーロードをすることもできます。
2015-09-08
2015-09-04
Kotlinことはじめ:(4)繰り返し
ラベル:
Kotlin
今回は繰り返し処理です。
Kotlinのループ文は、forとwhile、do-whileの三種類です。
while文 do-while文
Kotlinのwhile文/do-while文はJavaなどと一緒です。
Kotlinことはじめ:(-1)はじめる前に
ラベル:
Kotlin
「Kotlinことはじめ」シリーズの記事は、いまのところ、JavaやC#などの言語をある程度書ける人に理解していただける程度の内容になってます。
いろいろ端折ってますが、お察しくださいませ。
2015-09-03
2015-09-02
Kotlinことはじめ:(0)環境構築
最近Kotlinにハマって、勉強がてら俺々フレームワーク作っています。
ぼちぼちノウハウが溜まってきたので、入門編的なものを書き始めることにしました。
ぼちぼちノウハウが溜まってきたので、入門編的なものを書き始めることにしました。
とりあえず環境構築
先端のM13を使うために、IntelliJ IDEAも15 EAPを使います。
開発中は無料で使えるので、お試しにもオススメ。ですが、手元のWindows8.1機(VAIO Fit 13A)では全く起動しない(Java8の不具合らしい・・・)ので、Win7かMacで開発してます。
開発中は無料で使えるので、お試しにもオススメ。ですが、手元のWindows8.1機(VAIO Fit 13A)では全く起動しない(Java8の不具合らしい・・・)ので、Win7かMacで開発してます。
IDEA 15 EAPは初期状態でKotlin M12のプラグインが導入されていますが、使うのはM13なのでM13のプラグインを導入する必要があります。
2014-01-01
Slick+Playのテーブル生成
ラベル:
PlayFramework,
Slick
Slickでモデルを作成すると、モデルからテーブルを生成することができる。
これが、コード上から生成になるので、起動のたびにテーブルを作られたり、ドロップされても困るので、作成対象のテーブルの有無を確認して実行を決める必要がある。
ルートパッケージにGlobalオブジェクト作成、onStartメソッドをオーバライドすることで、アプリ起動時に処理を実行することができる。
そこで、MTableオブジェクトのgetTablesメソッドを使用して対象のテーブルの存在をチェックしてテーブル作成を実行させてみた。
そこで、MTableオブジェクトのgetTablesメソッドを使用して対象のテーブルの存在をチェックしてテーブル作成を実行させてみた。
import models.Users
import play.api.db.DB
import play.api._
import scala.slick.driver.MySQLDriver.simple._
import play.api.Play.current
import scala.slick.jdbc.meta._
object Global extends GlobalSettings {
override def onStart(app: Application) {
val ds = Database.forDataSource(DB.getDataSource())
ds.withSession{ implicit session: Session =>
if (MTable.getTables ("user") .list.isEmpty)
Users.ddl.create
}
}
}
2013-12-30
IntelliJ IDEA 13のCloudBees対応
IDEAにはCloudBeesサポートプラグインが存在するけど、IDEAが13になって12のために書かれたプラグインの解説文書が通用しなくなっている。(よくわかってないだけかもしれないけど)
追記:
出力先のディレクトリを作っておけば、エラー無くデプロイ操作が終わりました。が、warが作られた形跡がない・・・。
CloudBeesのGitリポジトリにPushして、Jenkinsでビルド・デプロイさせることも試したけど、ビルドはできてもデプロイできない・・・・。
デプロイの設定でaccountに何も設定できないのが原因か?
なにか設定できるようにできればいいんだろうけど。
追記2:
Jenkinsのシステム設定で、CloudBeesのアカウント設定ができた。
CloudBeesのJenkinsなのだから、デフォルトでアカウント設定を登録しておいてくれればいいのに。
デプロイのためのwar作成設定が正しく働かない。
出力先のディレクトリを指定しても、その前に別のディレクトリ(ローカルのTomcat?)を付加されて、warの作成でエラーになってしまう。
デプロイしてのテストが出来ないので、動作手前まではローカルでplayのコマンドでビルドし、デプロイはCloudBeesのSDKを用いるのがとりあえずの次善策か。
追記:
出力先のディレクトリを作っておけば、エラー無くデプロイ操作が終わりました。が、warが作られた形跡がない・・・。
CloudBeesのGitリポジトリにPushして、Jenkinsでビルド・デプロイさせることも試したけど、ビルドはできてもデプロイできない・・・・。
デプロイの設定でaccountに何も設定できないのが原因か?
なにか設定できるようにできればいいんだろうけど。
追記2:
Jenkinsのシステム設定で、CloudBeesのアカウント設定ができた。
CloudBeesのJenkinsなのだから、デフォルトでアカウント設定を登録しておいてくれればいいのに。
2013-12-23
Play + Scala + Slick
ラベル:
CloudBees,
IDEA,
PlayFramework,
Scala
PlayのDAOは、2.2まではAnormを使用するのが標準ですが、2.3からSlickに変わるらしい。
ライブラリの設定をbuild.sbtにしますが、とりあえず丸パクリ。
あとは、モデル作ってテーブルの生成やらなんやら試そうかってところだけど、IDEAの機能で作ったPlayのプロジェクトがなんか色々微妙な模様。
雛形として形はできているけど、ディレクトリの意味付けがついてないし、新規にScalaオブジェクトを作れる状態じゃなかった。
初期設定的にまずかったのか、機能が不完全なのか不明。
とりあえず、CloudBeesで作られたgitリポジトリからPlayの初期プロジェクトをcloneして、play ideaして使えば大丈夫みたい。
というわけで、application.confの変更は不要になり、build.sbtの代わりにBuild.scalaを編集。
ここまで設定を直してplay ideaをやり直せば、ideaプロジェクトのライブラリ設定に反映されました。
また、AnormはSQLをそのまま記述することを基本としているので、ORMに慣れきった僕にはORMであるSlickのほうが楽そうってことで、Slickを使うようにプロジェクトの設定を変更する。
参考にしたのはこの記事。
Playの初歩とSlick
ライブラリの設定をbuild.sbtにしますが、とりあえず丸パクリ。
コネクションの設定はapplication.confですが、こちらは接続先がCloudBeesのDBになるので、CloudBees側の設定に合わせて以下の感じ。libraryDependencies ++= Seq( jdbc, anorm, cache, "mysql" % "mysql-connector-java" % "5.1.18", "com.typesafe.slick" %% "slick" % "1.0.1", "com.typesafe.play" %% "play-slick" % "0.5.0.8", "commons-dbcp" % "commons-dbcp" % "1.4")
slick.default="models.*"
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:"${MYSQL_URL_MYDB}
db.default.user=${MYSQL_USERNAME_MYDB}
db.default.password=${MYSQL_PASSWORD_MYDB}
あとは、モデル作ってテーブルの生成やらなんやら試そうかってところだけど、IDEAの機能で作ったPlayのプロジェクトがなんか色々微妙な模様。
雛形として形はできているけど、ディレクトリの意味付けがついてないし、新規にScalaオブジェクトを作れる状態じゃなかった。
初期設定的にまずかったのか、機能が不完全なのか不明。
とりあえず、CloudBeesで作られたgitリポジトリからPlayの初期プロジェクトをcloneして、play ideaして使えば大丈夫みたい。
というわけで、application.confの変更は不要になり、build.sbtの代わりにBuild.scalaを編集。
import sbt._
import Keys._
import play.Project._
object ApplicationBuild extends Build {
val appName = "playsignage"
val appVersion = "1.0"
val appDependencies = Seq(
// Add your project dependencies here,
"mysql" % "mysql-connector-java" % "5.1.21",jdbc, anorm,
cache,
"com.typesafe.slick" %% "slick" % "1.0.1",
"com.typesafe.play" %% "play-slick" % "0.5.0.8",
"org.slf4j" % "slf4j-nop" % "1.6.4",
"commons-dbcp" % "commons-dbcp" % "1.4"
)
val main = play.Project(appName, appVersion, appDependencies).settings(
// Add your own project settings here
testOptions in Test += Tests.Argument("junitxml", "console")
)
}
てな感じでどうだろうか?ここまで設定を直してplay ideaをやり直せば、ideaプロジェクトのライブラリ設定に反映されました。
IDEAでPlayのプロジェクトを作り、CloudBeesの設定をする途中まで
ラベル:
CloudBees,
IDEA,
PlayFramework
とりあえず、IntelliJ IDEAを起動して、新しいプロジェクトを作る。
で、設定画面でCloudBeesのアプリケーションサーバを設定する。
CloudBees Serverを追加。
CloudBeesで登録した、ドメイン、ユーザ名、パスワードを入力。
「Download client libraries」ボタンをクリックすると、ライブラリがダウンロードされて、接続できるようになるので、「Test connection」ボタンをクリックして、接続できることを確認。
で、設定画面でCloudBeesのアプリケーションサーバを設定する。
CloudBees Serverを追加。
CloudBeesで登録した、ドメイン、ユーザ名、パスワードを入力。
「Download client libraries」ボタンをクリックすると、ライブラリがダウンロードされて、接続できるようになるので、「Test connection」ボタンをクリックして、接続できることを確認。
「OK」で、登録完了。
忘れちゃいけないのが、CloudBeesはwarでデプロイするので、warを作成する設定をすること。
Project Structure画面で「WebApplication:Exploded」を選んで・・・その先がまだ良くわかってない。
この先は、またイロイロ試してから書く。
CloudBees + IntelliJ IDEA + Play2 + Scalaという試み
ラベル:
CloudBees,
IDEA,
PlayFramework,
Scala
放置してたこのブログを、なんとなく再開。
会社の勉強会で作ろうとしてたデジタルサイネージを、最近覚えた技術とこれから覚えたい技術を散りばめて作りなおそうかと思いたったので、備忘録として。
PaasにCloudBeesを選んだのは、Jenkinsを使ってみたかったのとPlayFrameworkをサポートしてるから。Jenkinsを使いこなせるかわかんないけど。
IDEに使うIntelliJ IDEAはScalaやるならEclipse(ScalaIDE)よりイイって色んなとこで見たので。有料なので会社でも使えるか微妙だけど、無料期間中に使い倒してほんとに良かったら個人的には購入しようかと。
ここまでほんのちょっと使っただけだけど、かなりヨサゲ。
PlayFramework2とScalaは将来のメインストリームにならないか期待を込めて。
これで、HTML5(できればSVG)を使ったデジタルサイネージをオンラインで作って、安いAndroidタブレットで表示してお店に置くような使い方ができる、サービスを作ろうと思ってます。
できればSVGでと思ってますが行けるかどうかはブラウザの対応レベル次第なので、そこ実験が先か・・・。
PaasにCloudBeesを選んだのは、Jenkinsを使ってみたかったのとPlayFrameworkをサポートしてるから。Jenkinsを使いこなせるかわかんないけど。
IDEに使うIntelliJ IDEAはScalaやるならEclipse(ScalaIDE)よりイイって色んなとこで見たので。有料なので会社でも使えるか微妙だけど、無料期間中に使い倒してほんとに良かったら個人的には購入しようかと。
ここまでほんのちょっと使っただけだけど、かなりヨサゲ。
PlayFramework2とScalaは将来のメインストリームにならないか期待を込めて。
これで、HTML5(できればSVG)を使ったデジタルサイネージをオンラインで作って、安いAndroidタブレットで表示してお店に置くような使い方ができる、サービスを作ろうと思ってます。
できればSVGでと思ってますが行けるかどうかはブラウザの対応レベル次第なので、そこ実験が先か・・・。
2007-11-18
麺達 本店 : とんこつラーメン
ラベル:
らーめん
2007-08-17
麺屋 りょうま:冷やし麺
ラベル:
らーめん
2007-08-06
麺家 りょうま : 赤
ラベル:
らーめん
登録:
投稿 (Atom)





