10 changed files with 415 additions and 556 deletions
-
37assets/html/_author.html
-
83assets/html/_documentation.html
-
43assets/html/_download.html
-
185assets/html/_main.html
-
81assets/html/author.html
-
1assets/html/author.html
-
127assets/html/documentation.html
-
1assets/html/documentation.html
-
118assets/html/download.html
-
1assets/html/download.html
-
43assets/html/layout.html
-
229assets/html/main.html
-
1assets/html/main.html
-
19assets/js/init.js
@ -0,0 +1,37 @@ |
|||||
|
<div class="border"> |
||||
|
<div class="tl"></div> |
||||
|
<div class="t"></div> |
||||
|
<div class="tr"></div> |
||||
|
<div class="l"></div> |
||||
|
<div class="img"> |
||||
|
<img src="/image/waldschrat.jpg" /> |
||||
|
</div> |
||||
|
<div class="r"></div> |
||||
|
<div class="bl"></div> |
||||
|
<div class="b"></div> |
||||
|
<div class="br"></div> |
||||
|
</div> |
||||
|
|
||||
|
<h1>The Author</h1> |
||||
|
|
||||
|
<hr /> |
||||
|
<p class="abstract"> |
||||
|
<span class="author">[GH]</span> |
||||
|
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. |
||||
|
</p> |
||||
|
<hr /> |
||||
|
|
||||
|
<br /><br /><br /><br /><br /><br /> |
||||
|
|
||||
|
<h2>Some words about me</h2> |
||||
|
|
||||
|
<h3>The most important thing in my life. My family</h3> |
||||
|
|
||||
|
<h2>Skill profile</h2> |
||||
|
|
||||
|
<h2>Short vitae</h2> |
||||
|
|
||||
|
<!-- vim: set ts=4 sw=4: --> |
||||
@ -0,0 +1,83 @@ |
|||||
|
<h1>Documentation</h1> |
||||
|
|
||||
|
<hr /> |
||||
|
<p class="abstract"> |
||||
|
<span class="author">[GH]</span> |
||||
|
Currently this is more a changelog and a description |
||||
|
how to use new features. |
||||
|
</p> |
||||
|
<hr /> |
||||
|
|
||||
|
<h2>API Doc and test coverage</h2> |
||||
|
|
||||
|
<p> |
||||
|
There is the beginning of a api doc and automated |
||||
|
test coverage reports.<br /> |
||||
|
Both don't cover the complete code.<br /> |
||||
|
|
||||
|
There is the beginning of a generated API doc |
||||
|
<a href="/doc/index.html" target="_blank">here</a>.<br /> |
||||
|
|
||||
|
I also started automated regression tests. The |
||||
|
results can be seen |
||||
|
<a href="/coverage/index.html" target="_blank">here</a>. |
||||
|
</p> |
||||
|
|
||||
|
<h2>Version 0.1.5</h2> |
||||
|
|
||||
|
<p> |
||||
|
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.<br/><br/> |
||||
|
<b>username:</b> guest<br/> |
||||
|
<b>password:</b> guest<br/><br/> |
||||
|
This user will not be available if you build your own |
||||
|
version of taskrambler. |
||||
|
</p> |
||||
|
|
||||
|
<h3>Usage</h3> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
If you signup with an email address |
||||
|
that is already in the database nothing happens, else |
||||
|
a user will be created and logged in. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
After a successful login the first and surname will be |
||||
|
visible in the upper right corner of the page. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<h3>Changes</h3> |
||||
|
|
||||
|
<p> |
||||
|
<ul> |
||||
|
<li>add storage layer</li> |
||||
|
<li>add signup functionality</li> |
||||
|
<ul> |
||||
|
<li>store users</li> |
||||
|
<li>store passwords as PBKDF2 sha512</li> |
||||
|
</ul> |
||||
|
<li>make login work agains ldap and stored passwords</li> |
||||
|
<li>add favicon</li> |
||||
|
<li>show version, session info and login info on each page</li> |
||||
|
</ul> |
||||
|
</p> |
||||
|
|
||||
|
<!-- vim: set ts=4 sw=4: --> |
||||
@ -0,0 +1,43 @@ |
|||||
|
<h1>Download</h1> |
||||
|
|
||||
|
<hr /> |
||||
|
<p class="abstract"> |
||||
|
<span class="author">[GH]</span> |
||||
|
Here you will find links to snapshots, but please |
||||
|
keep in might that this is an unfinished project. |
||||
|
It also will contain some links. |
||||
|
</p> |
||||
|
<hr /> |
||||
|
|
||||
|
<h2>Tarballs of my tags</h2> |
||||
|
|
||||
|
<p> |
||||
|
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: |
||||
|
</p> |
||||
|
|
||||
|
<ul> |
||||
|
<li><a href="http://redmine.weird-web-workers.org/attachments/download/3/taskrambler-0.1.tar.gz">taskrambler-0.1</a></li> |
||||
|
<li><a href="http://redmine.weird-web-workers.org/attachments/download/6/taskrambler-0.1.3.tar.gz">taskrambler-0.1.3</a></li> |
||||
|
<li><a href="http://redmine.weird-web-workers.org/attachments/download/7/taskrambler-0.1.4.tar.gz">taskrambler-0.1.4</a></li> |
||||
|
<li><a href="http://redmine.weird-web-workers.org/attachments/download/11/taskrambler-0.1.5.tar.gz">taskrambler-0.1.5</a></li> |
||||
|
</ul> |
||||
|
|
||||
|
<h2>Project page</h2> |
||||
|
|
||||
|
<p> |
||||
|
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 |
||||
|
<a href="http://redmine.weird-web-workers.org/projects/taskrambler" target="_blank">here</a>. |
||||
|
</p> |
||||
|
|
||||
|
<h2>Github</h2> |
||||
|
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 |
||||
|
<a href="https://github.com/georghopp/taskrambler" target="_blank">here</a>. |
||||
|
|
||||
|
<!-- vim: set ts=4 sw=4: --> |
||||
@ -0,0 +1,185 @@ |
|||||
|
<img |
||||
|
style="float:left;margin-right:10px;" |
||||
|
src="/image/rambler-logo-small.jpg" /> |
||||
|
|
||||
|
<h1>Taskrambler</h1> |
||||
|
|
||||
|
<hr /> |
||||
|
<p class="abstract"> |
||||
|
<span class="author">[GH]</span> |
||||
|
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. |
||||
|
</p> |
||||
|
<hr /> |
||||
|
|
||||
|
<br /> |
||||
|
|
||||
|
<h2>What is taskrambler</h2> |
||||
|
|
||||
|
<h3>What is it right now.</h3> |
||||
|
|
||||
|
<p> |
||||
|
Right now this is a HTTP server. It's written from |
||||
|
scratch in C and serves as the user interface provider for |
||||
|
taskrambler. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
It delivers static assets placed within the project |
||||
|
to webbrowsers. In fact the pages you read right now are |
||||
|
delivered by taskrambler. |
||||
|
</p> |
||||
|
|
||||
|
<h3>What it will be</h3> |
||||
|
|
||||
|
<p> |
||||
|
The plan is to build a multi user task |
||||
|
management system inspired by |
||||
|
<a |
||||
|
href="http://taskwarrior.org/" |
||||
|
target="_blank"> |
||||
|
taskwarrior</a>. |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<h2>What is it not</h2> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<h2>History</h2> |
||||
|
|
||||
|
<p> |
||||
|
About two year ago I stepped across the |
||||
|
<a |
||||
|
href="http://en.wikipedia.org/wiki/C10k_problem" |
||||
|
target="_blank"> |
||||
|
C10k</a> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
Approximately at the same time I started working |
||||
|
with |
||||
|
<a |
||||
|
href="http://taskwarrior.org/" |
||||
|
target="_blank"> |
||||
|
taskwarrior</a> 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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
Some time ago I had read a book called |
||||
|
<a |
||||
|
href="https://ritdml.rit.edu/handle/1850/8544" |
||||
|
target="_blank"> |
||||
|
Object oriented programming with ANSI-C</a> 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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<p> |
||||
|
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. |
||||
|
</p> |
||||
|
|
||||
|
<!-- vim: set ts=4 sw=4: --> |
||||
@ -1,81 +0,0 @@ |
|||||
<?xml version="1.0" encoding="iso-8859-1"?> |
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
||||
|
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||||
<head> |
|
||||
<title>Taskrambler - Author</title> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/common.css"> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/taskrambler.css" /> |
|
||||
<link rel="shortcut icon" href="/favicon.ico?v=2" /> |
|
||||
<script type="text/javascript" src="/js/jquery.js"></script> |
|
||||
<script type="text/javascript" src="/js/serverval.js"></script> |
|
||||
<script type="text/javascript" src="/js/session.js"></script> |
|
||||
<script type="text/javascript" src="/js/init.js"></script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div id="login" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="signup" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="page"> |
|
||||
<div id="statusline"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="title"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="menu"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="main"> |
|
||||
<div class="border"> |
|
||||
<div class="tl"></div> |
|
||||
<div class="t"></div> |
|
||||
<div class="tr"></div> |
|
||||
<div class="l"></div> |
|
||||
<div class="img"> |
|
||||
<img src="/image/waldschrat.jpg" /> |
|
||||
</div> |
|
||||
<div class="r"></div> |
|
||||
<div class="bl"></div> |
|
||||
<div class="b"></div> |
|
||||
<div class="br"></div> |
|
||||
</div> |
|
||||
|
|
||||
<h1>The Author</h1> |
|
||||
|
|
||||
<hr /> |
|
||||
<p class="abstract"> |
|
||||
<span class="author">[GH]</span> |
|
||||
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. |
|
||||
</p> |
|
||||
<hr /> |
|
||||
|
|
||||
<br /><br /><br /><br /><br /><br /> |
|
||||
|
|
||||
<h2>Some words about me</h2> |
|
||||
|
|
||||
<h3>The most important thing in my life. My family</h3> |
|
||||
|
|
||||
<h2>Skill profile</h2> |
|
||||
|
|
||||
<h2>Short vitae</h2> |
|
||||
</div> |
|
||||
|
|
||||
<div id="footer"> |
|
||||
<hr /> |
|
||||
© 2013 Georg Hopp - |
|
||||
<a href="mailto:georg@steffers.org">contact-email</a> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
||||
|
|
||||
<!-- vim: set ts=4 sw=4: --> |
|
||||
@ -0,0 +1 @@ |
|||||
|
layout.html |
||||
@ -1,127 +0,0 @@ |
|||||
<?xml version="1.0" encoding="iso-8859-1"?> |
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
||||
|
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||||
<head> |
|
||||
<title>Taskrambler - Documentation</title> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/common.css"> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/taskrambler.css" /> |
|
||||
<link rel="shortcut icon" href="/favicon.ico?v=2" /> |
|
||||
<script type="text/javascript" src="/js/jquery.js"></script> |
|
||||
<script type="text/javascript" src="/js/serverval.js"></script> |
|
||||
<script type="text/javascript" src="/js/session.js"></script> |
|
||||
<script type="text/javascript" src="/js/init.js"></script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div id="login" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="signup" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="page"> |
|
||||
<div id="statusline"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="title"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="menu"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="main"> |
|
||||
<h1>Documentation</h1> |
|
||||
|
|
||||
<hr /> |
|
||||
<p class="abstract"> |
|
||||
<span class="author">[GH]</span> |
|
||||
Currently this is more a changelog and a description |
|
||||
how to use new features. |
|
||||
</p> |
|
||||
<hr /> |
|
||||
|
|
||||
<h2>API Doc and test coverage</h2> |
|
||||
|
|
||||
<p> |
|
||||
There is the beginning of a api doc and automated |
|
||||
test coverage reports.<br /> |
|
||||
Both don't cover the complete code.<br /> |
|
||||
|
|
||||
There is the beginning of a generated API doc |
|
||||
<a href="/doc/index.html" target="_blank">here</a>.<br /> |
|
||||
|
|
||||
I also started automated regression tests. The |
|
||||
results can be seen |
|
||||
<a href="/coverage/index.html" target="_blank">here</a>. |
|
||||
</p> |
|
||||
|
|
||||
<h2>Version 0.1.5</h2> |
|
||||
|
|
||||
<p> |
|
||||
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.<br/><br/> |
|
||||
<b>username:</b> guest<br/> |
|
||||
<b>password:</b> guest<br/><br/> |
|
||||
This user will not be available if you build your own |
|
||||
version of taskrambler. |
|
||||
</p> |
|
||||
|
|
||||
<h3>Usage</h3> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
If you signup with an email address |
|
||||
that is already in the database nothing happens, else |
|
||||
a user will be created and logged in. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
After a successful login the first and surname will be |
|
||||
visible in the upper right corner of the page. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<h3>Changes</h3> |
|
||||
|
|
||||
<p> |
|
||||
<ul> |
|
||||
<li>add storage layer</li> |
|
||||
<li>add signup functionality</li> |
|
||||
<ul> |
|
||||
<li>store users</li> |
|
||||
<li>store passwords as PBKDF2 sha512</li> |
|
||||
</ul> |
|
||||
<li>make login work agains ldap and stored passwords</li> |
|
||||
<li>add favicon</li> |
|
||||
<li>show version, session info and login info on each page</li> |
|
||||
</ul> |
|
||||
</p> |
|
||||
</div> |
|
||||
|
|
||||
<div id="footer"> |
|
||||
<hr /> |
|
||||
© 2013 Georg Hopp - |
|
||||
<a href="mailto:georg@steffers.org">contact-email</a> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
||||
|
|
||||
<!-- vim: set ts=4 sw=4: --> |
|
||||
@ -0,0 +1 @@ |
|||||
|
layout.html |
||||
@ -1,118 +0,0 @@ |
|||||
<?xml version="1.0" encoding="iso-8859-1"?> |
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
||||
|
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||||
<head> |
|
||||
<title>Taskrambler - Download</title> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/common.css"> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/taskrambler.css" /> |
|
||||
<link rel="shortcut icon" href="/favicon.ico?v=2" /> |
|
||||
<script type="text/javascript" src="/js/jquery.js"></script> |
|
||||
<script type="text/javascript" src="/js/serverval.js"></script> |
|
||||
<script type="text/javascript" src="/js/session.js"></script> |
|
||||
<script type="text/javascript" src="/js/init.js"></script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div id="login" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="signup" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="page"> |
|
||||
<div id="statusline"> |
|
||||
<ul> |
|
||||
<li> |
|
||||
<div id="sessinfo"> |
|
||||
Session: <canvas width="100px" height="5px"></canvas> |
|
||||
</div> |
|
||||
</li> |
|
||||
<li id="user"></li> |
|
||||
<li id="version"></li> |
|
||||
</ul> |
|
||||
<br />Session ID: <span id="sessid"></span> |
|
||||
</div> |
|
||||
|
|
||||
<div id="title"> |
|
||||
<a href="/main.html"> |
|
||||
<div class="left"> |
|
||||
<h1>Task</h1> |
|
||||
</div> |
|
||||
<img src="/image/rambler-logo2-small.jpg" /> |
|
||||
<div class="right"> |
|
||||
<h1>Rambler</h1> |
|
||||
</div> |
|
||||
</a> |
|
||||
</div> |
|
||||
|
|
||||
<div id="menu"> |
|
||||
<ul> |
|
||||
<li class="menuedge"></li> |
|
||||
<li><a href="/author.html">author</a></li> |
|
||||
<li><a href="/documentation.html">documentation</a></li> |
|
||||
<li><a href="/download.html">download</a></li> |
|
||||
<li class="signup"><span>signup</span></li> |
|
||||
<li class="login"><span>login</span></li> |
|
||||
<li class="logout hide"><span>logout</span></li> |
|
||||
<li class="menuedge"></li> |
|
||||
<div></div> |
|
||||
</ul> |
|
||||
<div class="clear"></div> |
|
||||
</div> |
|
||||
|
|
||||
<div id="main"> |
|
||||
<h1>Download</h1> |
|
||||
|
|
||||
<hr /> |
|
||||
<p class="abstract"> |
|
||||
<span class="author">[GH]</span> |
|
||||
Here you will find links to snapshots, but please |
|
||||
keep in might that this is an unfinished project. |
|
||||
It also will contain some links. |
|
||||
</p> |
|
||||
<hr /> |
|
||||
|
|
||||
<h2>Tarballs of my tags</h2> |
|
||||
|
|
||||
<p> |
|
||||
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: |
|
||||
</p> |
|
||||
|
|
||||
<ul> |
|
||||
<li><a href="http://redmine.weird-web-workers.org/attachments/download/3/taskrambler-0.1.tar.gz">taskrambler-0.1</a></li> |
|
||||
<li><a href="http://redmine.weird-web-workers.org/attachments/download/6/taskrambler-0.1.3.tar.gz">taskrambler-0.1.3</a></li> |
|
||||
<li><a href="http://redmine.weird-web-workers.org/attachments/download/7/taskrambler-0.1.4.tar.gz">taskrambler-0.1.4</a></li> |
|
||||
<li><a href="http://redmine.weird-web-workers.org/attachments/download/11/taskrambler-0.1.5.tar.gz">taskrambler-0.1.5</a></li> |
|
||||
</ul> |
|
||||
|
|
||||
<h2>Project page</h2> |
|
||||
|
|
||||
<p> |
|
||||
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 |
|
||||
<a href="http://redmine.weird-web-workers.org/projects/taskrambler" target="_blank">here</a>. |
|
||||
</p> |
|
||||
|
|
||||
<h2>Github</h2> |
|
||||
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 |
|
||||
<a href="https://github.com/georghopp/taskrambler" target="_blank">here</a>. |
|
||||
</div> |
|
||||
|
|
||||
<div id="footer"> |
|
||||
<hr /> |
|
||||
© 2013 Georg Hopp - |
|
||||
<a href="mailto:georg@steffers.org">contact-email</a> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
||||
|
|
||||
<!-- vim: set ts=4 sw=4: --> |
|
||||
@ -0,0 +1 @@ |
|||||
|
layout.html |
||||
@ -0,0 +1,43 @@ |
|||||
|
<?xml version="1.0" encoding="iso-8859-1"?> |
||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
|
|
||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||
|
<head> |
||||
|
<title>Taskrambler</title> |
||||
|
<link rel="stylesheet" type="text/css" href="/style/common.css"> |
||||
|
<link rel="stylesheet" type="text/css" href="/style/taskrambler.css"> |
||||
|
<link rel="shortcut icon" href="/favicon.ico?v=2" /> |
||||
|
<script type="text/javascript" src="/js/jquery.js"></script> |
||||
|
<script type="text/javascript" src="/js/serverval.js"></script> |
||||
|
<script type="text/javascript" src="/js/session.js"></script> |
||||
|
<script type="text/javascript" src="/js/init.js"></script> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<div id="login" class="hide"> |
||||
|
</div> |
||||
|
|
||||
|
<div id="signup" class="hide"> |
||||
|
</div> |
||||
|
|
||||
|
<div id="page"> |
||||
|
<div id="statusline"> |
||||
|
</div> |
||||
|
|
||||
|
<div id="title"> |
||||
|
</div> |
||||
|
|
||||
|
<div id="menu"> |
||||
|
</div> |
||||
|
|
||||
|
<div id="main"> |
||||
|
</div> |
||||
|
|
||||
|
<div id="footer"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
||||
|
|
||||
|
<!-- vim: set ts=4 sw=4: --> |
||||
@ -1,229 +0,0 @@ |
|||||
<?xml version="1.0" encoding="iso-8859-1"?> |
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
||||
|
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
||||
<head> |
|
||||
<title>Taskrambler</title> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/common.css"> |
|
||||
<link rel="stylesheet" type="text/css" href="/style/taskrambler.css"> |
|
||||
<link rel="shortcut icon" href="/favicon.ico?v=2" /> |
|
||||
<script type="text/javascript" src="/js/jquery.js"></script> |
|
||||
<script type="text/javascript" src="/js/serverval.js"></script> |
|
||||
<script type="text/javascript" src="/js/session.js"></script> |
|
||||
<script type="text/javascript" src="/js/init.js"></script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div id="login" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="signup" class="hide"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="page"> |
|
||||
<div id="statusline"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="title"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="menu"> |
|
||||
</div> |
|
||||
|
|
||||
<div id="main"> |
|
||||
<img |
|
||||
style="float:left;margin-right:10px;" |
|
||||
src="/image/rambler-logo-small.jpg" /> |
|
||||
|
|
||||
<h1>Taskrambler</h1> |
|
||||
|
|
||||
<hr /> |
|
||||
<p class="abstract"> |
|
||||
<span class="author">[GH]</span> |
|
||||
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. |
|
||||
</p> |
|
||||
<hr /> |
|
||||
|
|
||||
<br /> |
|
||||
|
|
||||
<h2>What is taskrambler</h2> |
|
||||
|
|
||||
<h3>What is it right now.</h3> |
|
||||
|
|
||||
<p> |
|
||||
Right now this is a HTTP server. It's written from |
|
||||
scratch in C and serves as the user interface provider for |
|
||||
taskrambler. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
It delivers static assets placed within the project |
|
||||
to webbrowsers. In fact the pages you read right now are |
|
||||
delivered by taskrambler. |
|
||||
</p> |
|
||||
|
|
||||
<h3>What it will be</h3> |
|
||||
|
|
||||
<p> |
|
||||
The plan is to build a multi user task |
|
||||
management system inspired by |
|
||||
<a |
|
||||
href="http://taskwarrior.org/" |
|
||||
target="_blank"> |
|
||||
taskwarrior</a>. |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<h2>What is it not</h2> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<h2>History</h2> |
|
||||
|
|
||||
<p> |
|
||||
About two year ago I stepped across the |
|
||||
<a |
|
||||
href="http://en.wikipedia.org/wiki/C10k_problem" |
|
||||
target="_blank"> |
|
||||
C10k</a> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
Approximately at the same time I started working |
|
||||
with |
|
||||
<a |
|
||||
href="http://taskwarrior.org/" |
|
||||
target="_blank"> |
|
||||
taskwarrior</a> 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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
Some time ago I had read a book called |
|
||||
<a |
|
||||
href="https://ritdml.rit.edu/handle/1850/8544" |
|
||||
target="_blank"> |
|
||||
Object oriented programming with ANSI-C</a> 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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
|
|
||||
<p> |
|
||||
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. |
|
||||
</p> |
|
||||
</div> |
|
||||
|
|
||||
<div id="footer"> |
|
||||
<hr /> |
|
||||
© 2013 Georg Hopp - |
|
||||
<a href="mailto:georg@steffers.org">contact-email</a> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
||||
|
|
||||
<!-- vim: set ts=4 sw=4: --> |
|
||||
@ -0,0 +1 @@ |
|||||
|
layout.html |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue