Fork me on GitHub

Getting my nerd on. 0

I will be attending ScalaLiftOff on Saturday May 10th, 2008 from 9am to 5pm.

What’s ScalaLiftOff?

The Scala lift off is a great place for members of the Scala and lift communities to get together, learn about Scala, learn about lift and get to know each other face to face. There will be Scala tracks going all day long and lift tracks to suits everyone’s interests.

New Lift App 0

Working on another /lift/ app for fun.
itwasbetter

Gravatars and Liftweb. 0

Liftweb and Gravatars together at last.

Here’s the snippet:
package net.liftweb.example.snippet

import net.liftweb.example.model._
import scala.xml.{NodeSeq, Text, Group, Node, Elem}
import net.liftweb.http._
import net.liftweb.http.S
import net.liftweb.mapper._
import net.liftweb.http.S._
import net.liftweb.util.Helpers._
import net.liftweb.util._
import java.util.Locale
import net.liftweb.sitemap._
import net.liftweb.sitemap.Loc._
import java.security._

// gravatar_id - MD5 sum of your email address
// size - image size
// rating - rating of the image, let's start with "G" which is also the default

class Gravatar {
val theUser: User = User.currentUser.openOr(new User)

private def getMD5(s: String): String = {
val m = MessageDigest.getInstance("MD5")
m.update(s.getBytes(),0,s.length())
BigInt(1,m.digest()).toString(16)
}

def getGravatar(xhtml: NodeSeq): NodeSeq = {
var src = "http://www.gravatar.com/avatar.php?gravatar_id=" + getMD5(S.attr("e").openOr(theUser.email))
src = src + "&size=" + S.attr("s").openOr("42")
src = src + "&rating=" + S.attr("r").openOr("G")

<img src={src}/>
}

And here’s how to use it in your templates:

<lift :Gravatar.getGravatar e="email address" s="80" r="G" />

Lift and BlueprintCSS 0

I mooshed BluePrintCSS into /lift/ as you can see here:
lift + blueprintCSS

It was ridiculously easy using this tutorial.

Using MySql with Lift 0

I need to use MySQL with my Lift webapp and here’s how I did it. In Boot.scala I replaced the Derby DBVendor object with a MySQL object. Hope that helps.

Add this to your pom.xml:

        <dependency>
          <groupid>mysql</groupid>
          <artifactid>mysql-connector-java</artifactid>
          <version>5.0.41</version>
        </dependency>

object DBVendor extends ConnectionManager {
def newConnection(name: ConnectionIdentifier): Can[Connection] = {
try
{
Class.forName(”com.mysql.jdbc.Driver”)
val dm = DriverManager.getConnection(”jdbc:mysql://localhost:3306/database_name”, “user”, “password”)
Full(dm)
}
catch
{
case e : Exception => e.printStackTrace; Empty
}
}
def releaseConnection(conn: Connection)
{
conn.close
}
}

Next up is learning how to set up my domain objects properly.