1 changed files with 216 additions and 0 deletions
@ -0,0 +1,216 @@ |
|||
<?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/taskrambler.css"> |
|||
</head> |
|||
|
|||
<body> |
|||
<div class="main"> |
|||
<div id="title"> |
|||
<a href="/taskrambler.html"> |
|||
<div class="left"> |
|||
<h1>Task</h1> |
|||
</div> |
|||
<img src="/image/rambler-logo2-small.jpg" /> |
|||
<div class="right"> |
|||
<h1>Rambler</h1> |
|||
</div> |
|||
<div class="clear"></div> |
|||
</a> |
|||
</div> |
|||
|
|||
<div id="menu"> |
|||
<ul> |
|||
<li> </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><a href="/example.html">example</a></li> |
|||
<li> </li> |
|||
</ul> |
|||
<div class="clear"></div> |
|||
</div> |
|||
|
|||
<div> |
|||
<img |
|||
style="float:left;margin-right:10px;" |
|||
src="/image/rambler-logo-small.jpg" /> |
|||
|
|||
<h1>Taskrambler</h1> |
|||
|
|||
<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> |
|||
|
|||
<br /> |
|||
|
|||
<h2>What is taskrambler</h2> |
|||
|
|||
<h3>What will it be</h3> |
|||
|
|||
<p> |
|||
The plan is to build a multi user task |
|||
management system inspired by |
|||
<a href="http://taskwarrior.org/projects/show/taskwarrio"> |
|||
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> |
|||
|
|||
<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> |
|||
|
|||
<h2>What is it not</h2> |
|||
|
|||
<p> |
|||
It is not another web server and it is not a |
|||
web application as u might be used to. It will not run under |
|||
any given web server. |
|||
</p> |
|||
|
|||
<h2>History</h2> |
|||
|
|||
<p> |
|||
About two year ago I stepped across the |
|||
<a href="http://en.wikipedia.org/wiki/C10k_problem">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/projects/show/taskwarrio"> |
|||
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"> |
|||
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> |
|||
</body> |
|||
</html> |
|||
|
|||
<!-- vim: set ts=4 sw=4: --> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue