diff --git a/assets/html/_author.html b/assets/html/_author.html new file mode 100644 index 0000000..1b9c40e --- /dev/null +++ b/assets/html/_author.html @@ -0,0 +1,37 @@ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +

The Author

+ +
+

+ [GH] + Here you get a little background about me. Lern who I + am and what have I done in the past. Some of my interests + and so on. What exactly I do not know, I found it + always difficult to write something about myself. +

+
+ +





+ +

Some words about me

+ +

The most important thing in my life. My family

+ +

Skill profile

+ +

Short vitae

+ + diff --git a/assets/html/_documentation.html b/assets/html/_documentation.html new file mode 100644 index 0000000..b25aefe --- /dev/null +++ b/assets/html/_documentation.html @@ -0,0 +1,83 @@ +

Documentation

+ +
+

+ [GH] + Currently this is more a changelog and a description + how to use new features. +

+
+ +

API Doc and test coverage

+ +

+ There is the beginning of a api doc and automated + test coverage reports.
+ Both don't cover the complete code.
+ + There is the beginning of a generated API doc + here.
+ + I also started automated regression tests. The + results can be seen + here. +

+ +

Version 0.1.5

+ +

+Another step on the way. Now basic signup is possible. +Users and credential will be stored in gdbm files. +If you do not want to signup you can use the pre created +guest account to login.

+username: guest
+password: guest

+This user will not be available if you build your own +version of taskrambler. +

+ +

Usage

+ +

+The signup and login can be testes by clicking on +signup or login in the menu. A popup should occur where +you can enter the neccessary informations. Currently +no sanity checks are done on the given data. The key +is the email address. +

+ +

+If you signup with an email address +that is already in the database nothing happens, else +a user will be created and logged in. +

+ +

+After a successful login the first and surname will be +visible in the upper right corner of the page. +

+ +

+Additionally to the name you can find the version, +session id as well as an indicator how long the session +lasts. A session lasts 5 minutes since the last preocessed +request. +

+ +

Changes

+ +

+

+

+ + diff --git a/assets/html/_download.html b/assets/html/_download.html new file mode 100644 index 0000000..5867cd1 --- /dev/null +++ b/assets/html/_download.html @@ -0,0 +1,43 @@ +

Download

+ +
+

+ [GH] + Here you will find links to snapshots, but please + keep in might that this is an unfinished project. + It also will contain some links. +

+
+ +

Tarballs of my tags

+ +

+  Also this is not ready at all I create tags as +well as tarballs from revisions I think of as stable. +Currently the following tarballs are available: +

+ + + +

Project page

+ +

+  Well, as taskrambler is not ready now I have to +use another project management system to organize this +project. The redmine project page for this project can be +found +here. +

+ +

Github

+  There is also a github project of this. +The state of this is always the same as on the above +mentioned redmine. The github page can be found +here. + + diff --git a/assets/html/_main.html b/assets/html/_main.html new file mode 100644 index 0000000..f45692c --- /dev/null +++ b/assets/html/_main.html @@ -0,0 +1,185 @@ + + +

Taskrambler

+ +
+

+ [GH] + Welcome to taskrambler, the multi user task organization + and management tool. If you ever felt working together + is difficult and I really don't know whats going on at + the moment this tool might be helpful. +

+
+ +
+ +

What is taskrambler

+ +

What is it right now.

+ +

+  Right now this is a HTTP server. It's written from +scratch in C and serves as the user interface provider for +taskrambler. +

+ +

+  It delivers static assets placed within the project +to webbrowsers. In fact the pages you read right now are +delivered by taskrambler. +

+ +

What it will be

+ +

+  The plan is to build a multi user task +management system inspired by + + taskwarrior. +Users may log in and manage the tasks they have to do. +Priorize them, assign them to projects, track the time +spend on a given task and so on. +Users also can configure who would be able to see what +task and users with special roles, like managers will +be able to see all tasks of their team, etc. +It will be possible to create reports about what work was +done etc. +

+ +

+  Additionally this will serve as a ticket system. +Tasks may be assigned to users and all the things +possible with a ticket system will be possible here too. +So this will combine a personal task management tool with a +ticket system. Thus providing a getting things done tool +that will improve the productivity of all persons working +on a project. +

+ +

What is it not

+ +

+  It is not another web server and it is not a +web application as you might be used to. It will not run +under any given web server. It brings it's own web server. +

+ +

History

+ +

+  About two year ago I stepped across the + + C10k +problem. At that time, and in fact still right now, I don't +feel experienced enough to face this problem. But anyway, +it made me curious. Curious if I would be able to write an +HTTP server by my own. So I started work on this. +

+ +

+  Well, there are enough web servers available +right now, even the C10k problem has brought up some really +interesting exemplars. So I decided not to build another +multi purpose HTTP server application but try another thing. +I wanted to build an application with a user interface +provided via browser. But what kind of application. +

+ +

+  At the time I started this I was working for +bigpoint, which is one of the worlds biggest browser +game providers. So the first answer was obviously to build +a game. But soon I realized that it needs much to build +a game from scratch. You need a fascinating storyboard, +well ballancing and game design and so on. So I dropped this +idea again. +

+ +

+  Approximately at the same time I started working +with + + taskwarrior which I found a really useful tool. +I thought what about making something like this but for +multiple users. It is pretty clear to you what you need for +this and it would be cool to have something like this... +and with some luck there are others who might be interested in +such a thing too. +

+ +

+  From the first day on the idea was to build +this completely in C. This primary decision for this was +that I really like the language and it had been a very long +time since I last had the opportunity to do something in that +language. Maybe another reason was that I had the hope to +compete with some of the other C10k webservers. And well, +taskrambler does not perform to bad at all. I did not +choose C++ also I like some of the object oriented +concepts because as most other OOP languages I think of +it as bloated with stuff I never need. Please don"t flame +on this, its only my opinion. +

+ +

+  There are three things I really like in OOP, +objects and their definition via classes, interfaces +and inheritance. Why? Because if you ask me the whole topic +is about reusability and maintanability. +Obviously a well designed class is reusable. What makes +it well defined? It implements an interface an reacts in +a sane way on it. Well and inheritance is "sometimes" a good +way to prevent duplicate code. +

+ +

+  Some time ago I had read a book called + +Object oriented programming with ANSI-C from +Axel-Tobias Schreiner. It has some really interesting +concepts in it but goes a step to for for my taste with +creating an own code preprocessor and other things. Anyway +this was the base of a class like code framework which +consists mostly of preprocessor code and some C code lines, +as well as a code convention. +This gives me the possibility to implement a well defined +interface on various objects. I can extend and inject +classes. All objects have a constructor and a destructor and +if needed a clone constructor. +Finishing this was the first building block of taskrambler. +

+ +

+  The next goal was a working HTTP server +implementation. I created a lot of classes, rewrote then +dropped them again and thought about other solutions. +At a given point I was really disappointed because on heave +load the servers droped connection and I was unable to +find out why. At that point I stopped working on this for +over a year. But now I started again added some new cool +code and think that the connection wasn"t been dropped by +taskrambler but by the kernel. Shortly before I loose +connection I found a kernel log entry that says that +syn flood protection was been activated. +

+ +

+  Right now this is an HTTP server that is able +to handle cookies, speeks SSL and implements the subset +of the HTTP protocol that I need. It performs not to bad +but others should mesure this, I have no time for this. +I know a lot of places where optimization is still possible. +

+ + diff --git a/assets/html/author.html b/assets/html/author.html deleted file mode 100644 index 087f54a..0000000 --- a/assets/html/author.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - Taskrambler - Author - - - - - - - - - - -
-
- -
-
- -
-
-
- -
-
- - - -
-
-
-
-
-
-
- -
-
-
-
-
-
- -

The Author

- -
-

- [GH] - Here you get a little background about me. Lern who I - am and what have I done in the past. Some of my interests - and so on. What exactly I do not know, I found it - always difficult to write something about myself. -

-
- -





- -

Some words about me

- -

The most important thing in my life. My family

- -

Skill profile

- -

Short vitae

-
- - -
- - - - diff --git a/assets/html/author.html b/assets/html/author.html new file mode 120000 index 0000000..38d845a --- /dev/null +++ b/assets/html/author.html @@ -0,0 +1 @@ +layout.html \ No newline at end of file diff --git a/assets/html/documentation.html b/assets/html/documentation.html deleted file mode 100644 index 2f2b8ca..0000000 --- a/assets/html/documentation.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - Taskrambler - Documentation - - - - - - - - - - -
-
- -
-
- -
-
-
- -
-
- - - -
-

Documentation

- -
-

- [GH] - Currently this is more a changelog and a description - how to use new features. -

-
- -

API Doc and test coverage

- -

- There is the beginning of a api doc and automated - test coverage reports.
- Both don't cover the complete code.
- - There is the beginning of a generated API doc - here.
- - I also started automated regression tests. The - results can be seen - here. -

- -

Version 0.1.5

- -

- Another step on the way. Now basic signup is possible. - Users and credential will be stored in gdbm files. - If you do not want to signup you can use the pre created - guest account to login.

- username: guest
- password: guest

- This user will not be available if you build your own - version of taskrambler. -

- -

Usage

- -

- The signup and login can be testes by clicking on - signup or login in the menu. A popup should occur where - you can enter the neccessary informations. Currently - no sanity checks are done on the given data. The key - is the email address. -

- -

- If you signup with an email address - that is already in the database nothing happens, else - a user will be created and logged in. -

- -

- After a successful login the first and surname will be - visible in the upper right corner of the page. -

- -

- Additionally to the name you can find the version, - session id as well as an indicator how long the session - lasts. A session lasts 5 minutes since the last preocessed - request. -

- -

Changes

- -

-

-

-
- - -
- - - - diff --git a/assets/html/documentation.html b/assets/html/documentation.html new file mode 120000 index 0000000..38d845a --- /dev/null +++ b/assets/html/documentation.html @@ -0,0 +1 @@ +layout.html \ No newline at end of file diff --git a/assets/html/download.html b/assets/html/download.html deleted file mode 100644 index d237a01..0000000 --- a/assets/html/download.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Taskrambler - Download - - - - - - - - - - -
-
- -
-
- -
-
- -
Session ID: -
- -
- -
-

Task

-
- -
-

Rambler

-
-
-
- - - -
-

Download

- -
-

- [GH] - Here you will find links to snapshots, but please - keep in might that this is an unfinished project. - It also will contain some links. -

-
- -

Tarballs of my tags

- -

-   Also this is not ready at all I create tags as - well as tarballs from revisions I think of as stable. - Currently the following tarballs are available: -

- - - -

Project page

- -

-   Well, as taskrambler is not ready now I have to - use another project management system to organize this - project. The redmine project page for this project can be - found - here. -

- -

Github

-   There is also a github project of this. - The state of this is always the same as on the above - mentioned redmine. The github page can be found - here. -
- - -
- - - - diff --git a/assets/html/download.html b/assets/html/download.html new file mode 120000 index 0000000..38d845a --- /dev/null +++ b/assets/html/download.html @@ -0,0 +1 @@ +layout.html \ No newline at end of file diff --git a/assets/html/layout.html b/assets/html/layout.html new file mode 100644 index 0000000..74f293f --- /dev/null +++ b/assets/html/layout.html @@ -0,0 +1,43 @@ + + + + + + Taskrambler + + + + + + + + + + +
+
+ +
+
+ +
+
+
+ +
+
+ + + +
+
+ + +
+ + + + diff --git a/assets/html/main.html b/assets/html/main.html deleted file mode 100644 index 1666912..0000000 --- a/assets/html/main.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - Taskrambler - - - - - - - - - - -
-
- -
-
- -
-
-
- -
-
- - - -
- - -

Taskrambler

- -
-

- [GH] - Welcome to taskrambler, the multi user task organization - and management tool. If you ever felt working together - is difficult and I really don't know whats going on at - the moment this tool might be helpful. -

-
- -
- -

What is taskrambler

- -

What is it right now.

- -

-   Right now this is a HTTP server. It's written from - scratch in C and serves as the user interface provider for - taskrambler. -

- -

-   It delivers static assets placed within the project - to webbrowsers. In fact the pages you read right now are - delivered by taskrambler. -

- -

What it will be

- -

-   The plan is to build a multi user task - management system inspired by - - taskwarrior. - Users may log in and manage the tasks they have to do. - Priorize them, assign them to projects, track the time - spend on a given task and so on. - Users also can configure who would be able to see what - task and users with special roles, like managers will - be able to see all tasks of their team, etc. - It will be possible to create reports about what work was - done etc. -

- -

-   Additionally this will serve as a ticket system. - Tasks may be assigned to users and all the things - possible with a ticket system will be possible here too. - So this will combine a personal task management tool with a - ticket system. Thus providing a getting things done tool - that will improve the productivity of all persons working - on a project. -

- -

What is it not

- -

-   It is not another web server and it is not a - web application as you might be used to. It will not run - under any given web server. It brings it's own web server. -

- -

History

- -

-   About two year ago I stepped across the - - C10k - problem. At that time, and in fact still right now, I don't - feel experienced enough to face this problem. But anyway, - it made me curious. Curious if I would be able to write an - HTTP server by my own. So I started work on this. -

- -

-   Well, there are enough web servers available - right now, even the C10k problem has brought up some really - interesting exemplars. So I decided not to build another - multi purpose HTTP server application but try another thing. - I wanted to build an application with a user interface - provided via browser. But what kind of application. -

- -

-   At the time I started this I was working for - bigpoint, which is one of the worlds biggest browser - game providers. So the first answer was obviously to build - a game. But soon I realized that it needs much to build - a game from scratch. You need a fascinating storyboard, - well ballancing and game design and so on. So I dropped this - idea again. -

- -

-   Approximately at the same time I started working - with - - taskwarrior which I found a really useful tool. - I thought what about making something like this but for - multiple users. It is pretty clear to you what you need for - this and it would be cool to have something like this... - and with some luck there are others who might be interested in - such a thing too. -

- -

-   From the first day on the idea was to build - this completely in C. This primary decision for this was - that I really like the language and it had been a very long - time since I last had the opportunity to do something in that - language. Maybe another reason was that I had the hope to - compete with some of the other C10k webservers. And well, - taskrambler does not perform to bad at all. I did not - choose C++ also I like some of the object oriented - concepts because as most other OOP languages I think of - it as bloated with stuff I never need. Please don"t flame - on this, its only my opinion. -

- -

-   There are three things I really like in OOP, - objects and their definition via classes, interfaces - and inheritance. Why? Because if you ask me the whole topic - is about reusability and maintanability. - Obviously a well designed class is reusable. What makes - it well defined? It implements an interface an reacts in - a sane way on it. Well and inheritance is "sometimes" a good - way to prevent duplicate code. -

- -

-   Some time ago I had read a book called - - Object oriented programming with ANSI-C from - Axel-Tobias Schreiner. It has some really interesting - concepts in it but goes a step to for for my taste with - creating an own code preprocessor and other things. Anyway - this was the base of a class like code framework which - consists mostly of preprocessor code and some C code lines, - as well as a code convention. - This gives me the possibility to implement a well defined - interface on various objects. I can extend and inject - classes. All objects have a constructor and a destructor and - if needed a clone constructor. - Finishing this was the first building block of taskrambler. -

- -

-   The next goal was a working HTTP server - implementation. I created a lot of classes, rewrote then - dropped them again and thought about other solutions. - At a given point I was really disappointed because on heave - load the servers droped connection and I was unable to - find out why. At that point I stopped working on this for - over a year. But now I started again added some new cool - code and think that the connection wasn"t been dropped by - taskrambler but by the kernel. Shortly before I loose - connection I found a kernel log entry that says that - syn flood protection was been activated. -

- -

-   Right now this is an HTTP server that is able - to handle cookies, speeks SSL and implements the subset - of the HTTP protocol that I need. It performs not to bad - but others should mesure this, I have no time for this. - I know a lot of places where optimization is still possible. -

-
- - -
- - - - diff --git a/assets/html/main.html b/assets/html/main.html new file mode 120000 index 0000000..38d845a --- /dev/null +++ b/assets/html/main.html @@ -0,0 +1 @@ +layout.html \ No newline at end of file diff --git a/assets/js/init.js b/assets/js/init.js index ae446be..41bfe47 100644 --- a/assets/js/init.js +++ b/assets/js/init.js @@ -1,10 +1,29 @@ var sess = null; $(document).ready(function() { - var sval = new ServerVal("#randval"); + var sval = new ServerVal("#randval"); + var asset_exp = /^.*\/(.*)/; + var asset = '/_main.html'; + + var title_adds = { + '/_author.html' : ' - Author', + '/_documentation.html' : ' - Documentation', + '/_download.html' : ' - Download', + }; + + asset_exp.exec(this.location); + + if ('' != RegExp.$1) { + asset = '/_' + RegExp.$1; + } + + if (asset in title_adds) { + this.title += title_adds[asset]; + } $("#title").load("/_title.html"); $("#footer").load("/_footer.html"); + $("#main").load(asset); $("#menu").load("/_menu.html", function() { $("div#menu ul li.signup").click(function() {