Skip to main content

Scala, Typesafe, SBT, IntelliJ IDEA, Specs2, Play, Tests ...

Scala has a great ecosystem evolving from developers needs. 

Everything is not "IDE integrated", but I kind of hope that it will stay this way. I don't like menus that fill up the screen.

As a reminder, here is the path I followed:

  1. Go to Typesafe:
    1. Download Scala (the "Typesafe Stack").
    2. Play with the REPL (the console)
    3. Read the free e-book
  2. Download SBT, if not already done
    1. Create a project (you just have to follow the quick start)
    2. Configure the SBT project to use the sbt-idea plugin
    3. Run gen-idea to create the IDEA project files.
  3. Launch IntelliJ IDEA 
    1. Get the plugins: Scala (and optionnaly SBT, it will only display the SBT console in IntelliJ.)
    2. Open the created SBT project
  4. You are already TypeSafe, go to Test or Spec safety also
    1. There is no one true path like JUnit here, you will have to choose
    2. SBT integrates with 3 main players.
    3. I choose to go with Spec2. Simply configure SBT to use it.
  5. As for the Web frameworks, Lift and Play are kind of associated with Scala
    1. I choose Play 2.0. It is very early and lacking functinonality ! Depending on what you want to do, Play 1 has a more mature Scala Module.

So it is not obvious, but nicely incremental. The starting points are SBT and REPL. From here you choose a IDE and a testing framework.

The rest really depends on your specific needs.

Comments

Thank you! Your article help me a lot! All works.
Sergey said…
what about debugging =: http://stackoverflow.com/questions/16337745/intellij-idea-debug-jumps-inside-instead-of-going-over

Popular posts from this blog

VirtualBox, CentOS, Network and Template

I have been working with VirtualBox and CentOS recently, here are some notes about this experience.
I used VirtualBox 4.2 and CentOS 6.3, but most of this should work with other products too. I created the first headless, minimal CentOS via NetInstall.
I cover two points: create a template machine and configure the Network.
Configure the NetworkWe want Internet access and a LAN local to the host.
For background information read: Networking in VirtualBox by Fat Bloke on June 2012.
The easiest is to enable two Network Adapters: One will be "Host-only" and the second "Nat". In the "Preference" menu you can see the DHCP server range for the Host-only Network. So you may set fixed addresses outside this range.
Next: start the guest. There may be various results at first, depending on a lot of things. Some problem might be solved by rm -f /etc/udev/rules.d/70-persistent-net.rules and a reboot.
Anyway, configure the two interfaces (set your own IP and MAC addresses)…

One in six IT projects ends up ‘out of control’

http://www.ox.ac.uk/media/news_stories/2011/110822_1.html

A surprisingly high number of projects are 'ticking time bombs', according to researchers at the University of Oxford. They analysed 1,500 global projects that had revamped their information technology systems within the last 10 years. They discovered that one in six projects in the sample went over budget by an average of 200 per cent (in real terms) or over ran by an average of almost 70 per cent.

Their conclusion is similar to previous studies: http://brunovernay.blogspot.com/2009/10/excellent-studies-on-software-quality.html

TLS: Disabling legacy cipher suites

First: "A cipher suite is a named combination of authentication, encryption, and message authentication code (MAC) algorithms".If you are using TLS (for HTTPS typicaly) you may want to remove some Cipher Suites.You maybe a little bit less compatible, but also a bit more secure. Things will be better when TLS1.2 is implemented everywhere.You can also claim to be FIPS 140 compliant: http://csrc.nist.gov/publications/nistpubs/800-52/SP800-52.pdf !How to do it:From the command line:  http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#CustomizationFrom code:  http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/SSLSocket.html#setEnabledCipherSuites(java.lang.String%5B%5D)Jetty: http://wiki.eclipse.org/Jetty/Howto/CipherSuitesTomcat: Look at the "ciphers" attribute in  http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#SSL_SupportIf someone knows how to do it on the IBM J9 via configuration, I am interested.