Contrary to most of the others on this thread I appreciate you're using Java for this. Using Java means drawing upon a very robust foundation. This very much looks like a tool for business rather than personal use.
I can't imagine why a company wouldn't get a proper yet slightly more expensive server with an adequate amount of RAM instead of a vhost that only allows to run PHP, especially as the software itself comes for free and most companies such a tool would be useful for likely already have some sort of dedicated server - either on-prem or hosted - anyway.
Besides, Java often is the only option for deploying tools in larger companies.
I have one question, though: What's your business model with Lavagna? From what I've seen at a cursory glimpse there doesn't seem to be dual-licensing or anything similar (which on the other hand probably wouldn't make sense for a project management tool anyway).
Thank you for understanding the choice of the language :).
In fact we (3 of us) are all working in a "big" enterprise settings so we kinda know (and suffer sometimes) about the general constraints of deploying external software (it's more probable that a java or dotNet app will be accepted than something built with an exotic stack that require others additional software that nobody is able to operate internally).
Anyway, for running lavagna you don't need a big server, I'm running it on a small (free) 512mb of ram server from openshift _with_ a mysql instance in it! This is a 5usd/month instance at digitalocean.
>What's your business model with Lavagna?
We are developing it in our spare time (I don't work full time so I can do projects like that), so nothing concrete at the moment, we are open for any opportunity.
Can those who 'lost' the post at Java describe what makes it 'lose' them? Curious.
Also, is the implication that the merit of the tool is decided based on your personal liking/disliking for the language it is implemented in? That seems childish! If you are responsible for any decent business, dangerous!
- a .war for deploying in a standard 3.0 servlet container
- a self contained executable war that has a embedded jetty http server
For the self contained option, you only need a working java 7 runtime. I don't think that I can do it simpler than that.
Additionally, if you prefer an even more automated way of updating the software, the application is available on maven central, so you could (as we are currently doing it in our openshift instance) use the maven jetty plugin and select the depedency.
I can't really think of a simpler deploy system. (except statically linked binary, obviously, but there you need to select the correct os :))
edit: we have a docker image for testing purpose too.
1. It looks awesome in terms of UI
2. The webpage looks great and explains everything I wanted to know.
But when I looked at the source code and saw Java I was deeply disappointed.
I use Java a lot, MapReduce, Pig, Storm topologies, I love java but I would never use it on a server.
With every open source project adoption is super important, having Java on the server is a big ask when you want someone to try your project out.
One thing that will help a lot here is if you have a Dockerfile on your repo, this way people can build and deploy it easily. I'd even go as far as creation a chef recipe for it. Those can seem out of scope, but can help a lot.
Anyway, this seems like a solid piece of open source. Awesome
I admit that I still don't understand why java receive so much hate.
What kind of language would you prefer for a server side application and why?
For this project I've chosen java _because_ it's a boring language, I really don't want to be enabled to write clever code that will be unreadable after few months.
Additionally, with a jvm I've got extremely good libs/tools for developing the application, and when in production a whole heap of monitoring tools.
So uh, sorry for liking the jvm :(.
(And it's not that I know only java, far from it...)
edit: and still, I don't think that requiring a jvm runtime is asking too much. I mean, if you use a managed language, you will need a runtime.
I've considered Go, but it does not really fit my criteria:
- lack of generics (sorry, but even though I kinda like go as a language there are features that I consider mandatory)
- lack of decent dependency handling (I don't consider vendoring a good solution, with maven central I know that the libraries will be there forever and there is a versioning scheme, pointing to the master branch of a git repo is not a good solution either, I value stability)
- lack of officially supported sql drivers and libraries like lucene (sorry but I don't really want to depend on a random github repo, it does not give me enough ensurance that it will be mantained)
(And I don't think that a statically linked binary/smaller binary/less memory footprint is a good enough reason to dump the jvm and his ecosystem)
As you see it's pretty easy to switch from this "demo" Dockerfile to another one that uses a linked MySQL container.
This repo is linked directly to Docker Hub:
Tried running on my Ubuntu 14.04 server and got the errors below (I have MySQL 5.5, java version 1.7.0_75 and have installed libmysql-java)...
./lavagna.sh: line 54: -Ddatasource.dialect=MYSQL: command not found
./lavagna.sh: line 55: -Ddatasource.url=jdbc:mysql://localhost:3306/lavagna: No such file or directory
./lavagna.sh: line 61: -Ddatasource.username=lavagnauser: command not found
like everyone else commenting, I despise java. However, I'm already using Trello, and this looks like a near full-replacement, so I'll suck up the extra ram usage and give it a try. thanks!
Looks cool and interesting. But it's Java so I won't be using it. While it may the right tool it's not something I can easily deploy with low to no overhead.
I wonder who is to blame: big players too interested in harvesting more data (clearly not thinking about Facebook and Google here), or lazy developers?
Not wanting to start a language war, but targeting the jvm give me a good level of confidence that it will work everywhere due to his good backward compatibility.
it also means you need your own vps or dedicated server to run that... and usually a pretty beefy one at that. that weeds 90% of your potential demographic out. you might as well as do a saas with something like this. if you want easy to deploy it should be easily deployable on a $5 digital ocean vps or heroku.
It use a little bit more of memory than a php application for sure, but it work on a small openshift free "gear" as we are dogfooding there (which is 512mb of ram: https://www.openshift.com/products/pricing) with everything crammed in: jetty + mysql on a single node.
I can't imagine why a company wouldn't get a proper yet slightly more expensive server with an adequate amount of RAM instead of a vhost that only allows to run PHP, especially as the software itself comes for free and most companies such a tool would be useful for likely already have some sort of dedicated server - either on-prem or hosted - anyway.
Besides, Java often is the only option for deploying tools in larger companies.
I have one question, though: What's your business model with Lavagna? From what I've seen at a cursory glimpse there doesn't seem to be dual-licensing or anything similar (which on the other hand probably wouldn't make sense for a project management tool anyway).