Page 1 of 1

Quake server site - LiveCon - Open Source

Posted: Wed Oct 09, 2013 11:06 am
by The_Doctor
Hi.

The software behind quake's new site http://arcghost.de is now open source.
You can go here and check it out: https://github.com/matei-alexandru-bogdan?tab=repositories

If you don't understand open source licenses go here to check out the license I picked for this project and associated projects
http://www.tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3)

In short the most important thing is you cannot ask for money for it, and if you do change it you have to include the
original source with copyright notice and also disclose the source for the modified version.
The nicest thing you could do is try to improve it and I will merge it into the main project if it's good.

I realize the link is to my personal github account but I will have no cyber bullying whatsoever.
For any such attempt I will contact the authorities - this is final.
That being said there are about 1 million people in Romania with my full name. I don't use facebook. Good luck.

There is a catch to all of this - You will have absolutely 0 help from me to install it, configure it, make it work.
The one and only thing I will ever tell you is this: you don't need the idea plugin and idea plugin test but
all the other projects that appear on my github page you need in order to make the site work.
Main reason for this is lack of time and futility of trying to explain. If you can understand the explanations you can install yourself.
This is quite a double edged sword. On the one hand you have the full source.
On the other hand it's written in java language, SCALA, mysql, html, css, javascript (quite a lot).
It uses the Spring framework (mvc and data), JPA with hibernate, JDBC, Joda time, Apache commons,
Scala test (for libraries), JUnit (for site), some personal libraries, jquery, jquery ui, a few jquery plugins.
For some new server owners (hint hint cough group 6) to try and hire someone that knows all those things is expensive.
It might be cheaper to just make it in php.


I for one would fork the associated projects in github. That way I can see if you make additions.
If someone of you does make it work, I would appreciate a change of design to be different than quake site.

@Bert, @VSj, @Colytic (and other programmers) feel free to make any constructive criticisms.


Good luck
Alex

Re: Quake server site - Livecon - Open Source

Posted: Wed Oct 09, 2013 12:20 pm
by VSj
A bit off topic here but, since you mentioned me and all, I just wanted to say that you got me interested in Scala. :) It seems pretty nice! I even considered writing my thesis about it :D but for now it looks like I'll probably just mention it related to implementations of parametric polymorphism while concentrating on something else Odersky is known for.

I'll definitely have a look at this Livecon thing of yours... when I have the time. There is never enough time! :(

Re: Quake server site - Livecon - Open Source

Posted: Wed Oct 09, 2013 12:34 pm
by The_Doctor
VSj wrote:There is never enough time! :(


This is my reason for not helping others install / use it.
I did my part by making it open source.
I have 0 more time for this until February.


VSj wrote:concentrating on something else Odersky is known for


I think he wrote the generics implementation for java. He never forgave himself until he made Scala.
Scala is 10x better in generics. Take for instance my try with resources from the ScalaLibCore project:

Code: Select all

  def using[T <: {def close()}, U](res: T)(op: T => U) {
    try {
      op(res ?! CoreExcCodes.OBJ_NULL)
    } finally {
      res.close()
    }
  }


It defines a function 'using' parameterised with a generic type T of any class that features a close method with the signature close():Unit and any type U.
It then receives 2 parameters in a curried fashion, one resource of the type T (the one with close method) and one function op
defined as a function over the resource type T with any return type U. The U type is set implicitly.
It executes the function in a try/catch and it closes the resource in the finally block.
The ?! part is a custom operator over the Option type, to which any type can be implicitly converted (custom implemented).
It checks the left hand operand for null (or the Option None) and throws the exception defined by the exception code of the right operand if it's null / None.

It's used like this:

Code: Select all

using (new File("abc.txt")){
    f => // do things with the file using the f handle here
}

// file auto - closed here


This is miles ahead of anything Java can do. There are other examples but I won't BOR you with the details.