Lift, Scala

liftで、 ProtoUserを継承している場合のログイン画面変更方法 loginXhtmlメソッドでhtmlを生成しているので、たとえばUserモデルの場合 ※デフォルトで作成されるUserモデル object User extends User with MetaMegaProtoUser {   def loginXhtml = {     (<form method="post" action={S.uri}><table><tr><td    ...

Scala

lazyというのは、値を遅延評価する宣言 // lazyをつけると、値の評価が初回アクセス時にのみ行われる lazy val a = { println("評価"); "a" } println( a ) // 初回の参照。ここでval aの評価が行われる println( a ) // これ以降は、val aの評価はなし lazyは「var」や「def」に設定することはできません。

Scala

文字列の長さを取得 scala> "test" length Int = 4 文字列の繰り返し scala> "abc" * 3 String = abcabcabc ()で、指定位置のcharを取り出す scala> "abcde"(2) Char = c 文字列の比較(<,>,<=,>=) scala> "abc" < "abd" Boolean = true StringBuilderに文字列を追加 scala> val str ...

Scala

Scalaでリストを作成する場合 val myList = List("a", "b", "c") とするが、表題のconsを使用して val myList = "a" :: "b" :: "c" :: Nil とすることが出来る。 ここに1つ重要なルールがあり、 consでリストを生成する場合、右結合になる 簡単に言うと、一番最後の項目から評価されます。 その時、一番最後の項目はListである必要があります。 Nilというのは、List型であるので、上記のconsを使用した配列の生成が成り立ち ...

Scala

Scalaの言語仕様で「::」と「:::」というのがある。 「::」とは連結メソッドですが、「:::」との違いは? scala> val list1 = List('a', 'b') list1: List = List(a, b) scala> val list2= List('c', 'd', 'e') list2: List = List(c, d, e) scala> val list3 = list1 :: list2 list3: List = List(List( ...

Linux

最終参照・更新日時を指定日時に変える touch -d "2 February 2011 10:00am" file1.txt 最終参照日時を現在の日時に変える touch -a file1.txt 指定したファイルと同じ日時に変える ※after.txtの日時をbefore.txtの日時に変更する touch -r before.txt -m after.txt  

Eclipse, Lift, Scala

Scala and LiftのプロジェクトをEclipse上に作成する なんか、単純なようですが、うまくいかなかったので、うまくいく方法を書いておく。 Eclipseの新規作成で、Scala ProjectではScalaのプロジェクトしか作成されません。 Liftのプロジェクトを作りたいときは Maven Projectを選択 archetypeを選択 プロジェクト名などを設定 とすると、プロジェクトが作成されますが どうも、ビルダーがjavaのままでエラー出まくりだったりするので、プロジェクト ...

Lift, Scala

Scala and Liftの環境を、Ubuntu上に構築したのはいいが、やはり使い慣れたEclipse上で開発したくなりました。 ということで、Eclipseに環境を構築する手順を書いてみます。 まず、Eclipseを入れるOSですが、Windowsです。 なので、Windows上にjava環境をセットアップしていきます。 JDKインストール Windows用のJDKをダウンロード 環境変数の設定 次に、scalaです。コンソールでscala使いたいので入れておきます。 Scalaのインストー ...

Lift, Scala

Scalaが気になるので、実行環境を作ってみる。 Scalaと、Scalaでwebアプリケーションを作るに当たって必要になってくるソフトウェアを上げてみる。 Scalaとは JVM上で動作する比較的新しい言語 オブジェクト指向言語(つまりJava)と関数型言語 Liftとは Scalaで構築されたWebアプリケーションフレームワーク Mavenとは Java用プロジェクト管理ツールである 環境の構築 Ubuntu 11 はインストール済みとする。 JDKのインストール sudo apt-get ...

気になる物

PHPのフレームワークFuelPHP 参考

Ruby on Rails メモ, web

Railsでsend_fileというメソッドがある これは、ファイルなどをそのまま返す場合に使ったりするが これを使うとRailsのメモリ使用量が増加していく。 2.1でこの現象が出るが 2.3とかもかも? なんかメモリを解放してないっぽい感じですが、これに関しては、ほかの方が調べてたりするので深く調べないことにする。 で、解決方法は、x_sendfileを使うのがスマートな気がするので、これを採用する。 導入手順 apacheにmod_xsendfileを組み込む wget sudo apxs ...

Ruby on Rails 3 Tips, Ruby on Rails メモ

Railsで日付処理は、意外と簡単に出来たりする。 1日前 1.days.ago 1日後 1.days.from_now 1ヶ月前 1.months.ago 1ヶ月後 1.months.from_now 1年前 1.years.ago 1年後 1.years.from_now また、本日の開始日時として、たとえば 2011-10-01 00:00:00 という情報を取りたい場合 Date.today.beginning_of_day 逆に 2011-10-01 23:59:59 という情報を取り ...

MySQL, Solaris

Solaris 11 にGUIを入れた環境でMySQLをインストールする手順 パッケージマネージャを起動 mysqlでパッケージを絞り込む この中から mysql-51 mysql-51/library をチェック。 インストール/更新ボタンをクリック。 これで、パッケージはインストールされる。 mysqlをサービスとして設定する。 sudo svcadm enable mysql mysqlの起動確認 ps aux | grep mysql mysqlのプロセスが起動していることを確認。 my ...

Solaris

Solaris 11 Expressですが、CUIでのインストールになるようです。 なので、GUIをインストールしてみます。 なにやらパッケージをインストールします。 sudo pkg install slim_install マシンを再起動します。 sudo reboot GUIを有効にします。 sudo svcadm enable gdm

Solaris

sudo shutdown -y -g0 -i5

Solaris, VMWare

VMware PlayerにSolaris 11をインストールしてみたくなった。 入れる目的は、zfsの調査。 あと、適当にrubyのメモリリーク調査用とかに使おうかなぁ程度。 ということで、まずはインストーラをダウンロードする。 Oracleのホームページにあるダウンロードから Oracle Solarisをクリック そこから、Oracle Solaris 11を探して、ダウンロード。 sol-11-exp-201011-text-x86.iso MVware Playerを起動し、 をクリッ ...

Ruby on Rails メモ

redmineにはwikiがついてます。 基本Textile形式で記述する物なので 表を作るときは |名前|年齢|趣味| |太郎|23|ギター| という感じで書きます。 が、たとえば趣味が複数あって、途中で改行させたいといった場合に、<br/>タグとかが使えません。 これは、redmineが採用しているライブラリ「redcloth3」の中でbrを許可しないようになっているからです。 どうしても表の中で改行を使いたい場合、この「redcloth3」ライブラリを変更する必要があります。 ...

ubuntu

visudoを実行するときなど、なんかおかしなエディタが起動したりする。 visudoって、viって付くくらいだからviが起動したらいいのにと思う。 そこで、vi固定する方法。 標準のコマンドエディタは alternativesという機構で管理されている。 altenativesは同様のソフトウェアがあるとき、どれを使うかを管理する仕組みで たとえばJavaで使われるJavaVMがSun JavaなのかOpen Javaなのかとか? で、とりあえず管理コマンドを叩いてみる sudo update ...