Comparing revisions for NilsLindenberg

Additions:
=====Userpage of Nils Lindenberg=====

{{lastedit}}

====About me====
I am a student of socail science at the university of Goettingen, Germany (currently on exchange in Bologna, Italy). You can find me also at [[http://wackowiki.com/NemoD WackoWiki]], [[http://www.wikipedia.de/Nemonand Wikipedia]] and http://www.openformats.org .

Thanx to Jason, I can test at niehle.info :-)

>>====Links====
http://www.joelonsoftware.com/articles/APIWar.html - about the necessity of backward compatibility
http://www.joelonsoftware.com/articles/fog0000000054.html - the chicken and egg problem
http://www.joelonsoftware.com/articles/fog0000000020.html - against the myth of bload programms
http://phpwiki.sourceforge.net/phpwiki/WikiAsPim - about using Wiki for personal information management
http://www.cooper.com/articles/art_goal_directed_design.htm - designing for users, not for programmers
http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html - choose which choises you give to users<<====My List of things which could be improved in, or added at Wikka====
(the items are listed in descending priority)
1) I18n, L10n=> WikkaInternationalization, HandlingUTF8
1) a better System for Categorys => CategorySystemOverhaul
1) A Calendar/organizer => GmBowenCalendar & see below
1) E-Mail and => WikkaAndEmail & see below for some thoughts
1) Toc (Table of Content) -> already implementet in WackoWiki
1) Usermanagement -> UserAdmin
1) User-to-User-Messages-System (working on this...see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=MailBox MailBox ]]...the code (so far) is there....feel free to play with it - GmBowen)
1) Access to the Config.php through a wikka-interface
1) Footnotes (http://www.istitutocolli.org/uniwakka/FootNote)
1) LaTex support (http://www.istitutocolli.org/uniwakka/MathInsert)
1) OpenOffice import/export
1) Smilys (http://www.istitutocolli.org/uniwakka/TablesAndSmileys

And, naturely, everything which gives Wikka new features oder improves the usability/the code.
::c::
----

====Handling the Config====
[[http://www.niehle.info/NewInstaller moved!]]

====Issue-based Calendar====
<<Another idea, based on GMBowenCalendar, and on the "current day-based view" in http://www.cooper.com/articles/art_goal_directed_design.htm (second part). Instead of the typical month-based calendar "on" wich you write your eventes, the calendar should work on the base of marked events in wikkapages. Also a "current day-based view" would be nice.<<
::c::

===Possible features===
- events are attached to wikipages
- events could be repeated daily, weekly, monthly and yearly
- events could also have a time
- events could have a time/date/month... when they begin and when they and, making it possible to have periods
- events could be marked up in different categorys
- the view could be shifted between weekly, monthly, yearly and a "current day-based view"
- it should be possible to move to a week/month into the future/past easily
- events should be userbased (user, group, public)
- events should be deletetable by unmarking them on the page
- there should be configurable items like: first day of the week, etc.
- days should be shown colored (like {{colour c="red" text="sundays"}}, {{colour c="gray" text="past days"}} etc.)

===Links===
//other calendar projects//
http://sourceforge.net/projects/webcalendar/
http://freshmeat.net/projects/activecalendar/
//time and date related//
http://phplens.com/phpeverywhere/adodb_date_library
http://www.php.net/mktime

===Adding, Editing, Deleting Events===
A new idea to handle events like comments attached to a page. The other way leeds to problems i can not solve now.

1. If a user has the right to see events attached to a page, they will appear on this page (below the comments or so)
2. If the user has the right to set events on a page, a form for adding events will appear, or is the ##action/event.php## will accept the parameters "new", "change" (or "edit") and "delete" better?

==The Code==
needed in ##wikka.php##:

%%(php)<?php
//config_options
"hide_events" => 0, //equivalent to "hide comments"
"default_event_acl" => "*",
?>%%

(there is no need to have an equivalent to "anoy_delete_own_comments" because events must be more editable then comments anyway)

%%(php)<?php
function LoadPageEvents($tag) //load the events attached to a page
{
return $this->LoadAll("SELECT * FROM ".$this->config["table_prefix"]."events WHERE page_tag = '".mysql_real_escape_string($tag)."' ORDER BY time");
}

function UpdateEvent() {} //this function will someday compare two events, the original and the changed and, if both are different, delete the old and save the new one, using DeleteEvent and SaveEvent

function DeleteEvent($event_id) {} //this function will delete an event from the database

function SaveEvent($startdate, $starttime, $stopdate, $stoptime, $page_tag) //saves an event to the database
{
$user = $this ->GetUserName();
$this->Query("INSERT INTO ".$this->config["table_prefix"]."events SET "./*...*/);
//...
}

function LoadEvent($event_id) {} //will load an event
function EventMatchesDay($event_id, $day) {} //function if an event is on the day specified
?>%%

The question is where to put the code which provides the form for adding/changing an event.

The form must contain:
-Start: //date dropdown menu (1-31)//. //month drop down menu (1-12 or better names)//.//input field for the year (four digits)// //Hour drop down (0-24)//.//Minutes (0-59)//
-Stop: //the same for stop.//
-repeat: //dropdown menu (no, daily, weekly, monthly, yearly)//
-end of repeat: //same as Start//
-frequency of repeat: //dropdown (1-25)//
-(categories the event is attached to - wait till category system is finished)
-(access: users which have access to the event - same structure as for the page acls)

I need another function which gets the data and checks:
- if the dates are real dates: [[http://www.selfphp.info/funktionsreferenz/datums_und_zeit_funktionen/checkdate.php checkdate]] should help
- the stop date/ end of repeat are after the start date
- the years are in the range of the organizer

===The Database===
There are changes in the original database needed.

It is necessary to create ##events##, the database in which the events are stored:

%%(sql)
CREATE TABLE `wikka_events` (
`event_id`,
`startdate`,
`starttime`,
`stopdate`,
`stoptime`,
`page_id`,
`event_repeat`,
`repeat_freqeuncy`,
`event_weekday`,
`creator`,
`text`
UNIQUE KEY `event_id` (`event_id`)
) TYPE=MYISAM ;
%%

1) ##event_id## as a counter
1) ##startdate##
1) ##starttime##
1) ##stopdate##
1) ##stoptime##
1) ##page_id## (or is the name better?) for a backlink and for the adding to a page
1) ##event_repeat## with the options //no//, //daily//, //weekly//, //monthly//, //yearly//
1) ##repeat_frequency## every time, every second etc.
1) ##event_weekday## only for repeat weekly
1) ##creator## the one who entered this event
1) (##access## which users are able to see it - different table?)
1) ##text## short text with a description of the event
1) (##category## an event belongs to - different table?)

===The calendar itself===
The events should be visible at
- the page they belong to
- the category the belong to
- the daily view tbt
- (the weekly view)
- (the monthly view)
- (the yearly view)

function ShowDay
function ShowDaybased Weeks
function ShowWeek
function ShowMonth
function ShowYear

==Monthly view==
Mostly based on the version of GmBowenCalendar. The calendar is included to a page as an action and has
1) to get the currend date and time
1) to build a table with the dates [the "current day-based view", weekly and yearly view could come later]
1) to provide links to one week/month in the future/past
1) has to look up, which day is the first in the week
1) to mark days with different colors (like Sundays in red, days past by in gray, days with events in blue, current day in green [and the background with another color for periods of events?])
1) to look up, which days have events and link them.

==Yearly view==
[for the yearly view something like: http://freshmeat.net/projects/activecalendar/ (picture!) (phpclasses.org:1870)]

===The view of the events===
GmBowen had a very good idea for his event action, he is actually working on. Showing them in a box near the calendar (more simple then my approach which wasn?t a real one :-) . With every click on a day linked to events, the box has to be "reloaded" ;-) to show the events of the selected day.

- the function has to look up
- the function for showing events has to look up, if the user has the right to see an event

----
====E-Mail====
<<Because I am using Wikis as a personal information manager, the possibility to read, store and write my e-mail in wikka would be a nice feature. Unfortunately I can't test anything here in Italy (no wiki), but a bit of thinking about it should'nt hurt :) <<
::c::

=== Idea and Features ===
So le'ts think about the things which are necessary for this:

- should be able to get the necessary information from the user (e-mailserver, username, passwort,...)
- establish/close a connection to the server
- get the mail from the server (pop3, imap4)
- store the mail in the database
- show the mail (one mail, one page?, a list of mails which can be sorted after date, sender, from, size...?)
- deal with attachments
- asend mails (smtp)
- final goal would be: I type a name in the search and get a list of the last e-mails sended to and recieved from him
- should be able to be linked with an adressbook and the calendar
- question: store the connection information for every user in the user-settings page? Perhaps allow only some users to use the e-mail action?

===Links===
- https://sourceforge.net/projects/poppawid/ popper_mod-wid is a free, full featured web based email client written in PHP. It is an extension of the now abandoned \"popper_mod\" project which was an extension of the origional popper. It runs on any server that can run PHP and mySQL. Uses POP and S
- php/MySQL based webmail program. Currently only supports pop3, IMAP is in the works. Has a notebook, a favorites organizer and an addressbook.
- http://www.php-free.de/Email/
- http://de.wikipedia.org/wiki/Imap, http://de.wikipedia.org/wiki/POP3, http://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol, http://de.wikipedia.org/wiki/Simple_Mail_Access_Protocol, http://de.wikipedia.org/wiki/E-Mail

===RFCs===
1) old standard: 822
1) new standard: 2822
1) "envelope" (transmission and delivery) -> 2821 (old standard: 821)
1) MIME document series [RFC2045, RFC2046, RFC2047, RFC2048, RFC2049] for non ascii-messages (and audio, video,etc.?)

==[[http://www.faqs.org/rfcs/rfc2822.html RFC2822]]==
- only standard for messages, not for audio, images etc.
- ''This specification is intended as a definition of what message content format is to be passed between systems.''
- ''local storage is outside of the scope of this standard.''
- '' Note: This standard specifies that messages are made up of characters in the US-ASCII range of 1 through 127.''

==Length==
- length of a //line// without CRLF: 998 char. max, 78 char. recommended (2822)

==Header==
- ''name of header, followed by a colon (":"), followed by a field body and terminated by CRLF'' (2822)
- body: US-ASCII (2822) except colon
- header can be spread about multiple lines (folding white space after CRLF) -> should be unfolded (''simply removing any CRLF
that is immediately followed by WSP'')

===To do===
''read all the rtfs''
''look what oother free php e-mail programms do and who''
''look up php-sendmail''
''whait till Javawomen has finished WikkaAndEmail and see what could be used :-)''
----
Deletions:
=====Userpage of Nils Lindenberg=====

>>
{{rss url="http://del.icio.us/rss/niehle"}}
>>

===Me, myself & I===
I am a student of social science at the university of Goettingen, Germany.

===My problem===
After years of working with various computers and surfing the internet, I have a huge collection of emails, saved webpages, bookmarks, word-documents, other documents adresses in local and web adressbooks, zip files etc. Not to mention tons of paper , notices etc. And I have searched years for a way to organize these informations, which means a) finding the things i am searching for and b) establishing relationships between them.
...

===The solution===
After testing some wikkas i finally moved to wikka. I made some little hacks to improve configurability, but mainly I am contributing to WikkaDocumentation.

Since february 2005 i am a member of the [[CreditsPage wikka crew]], where my topic of interest is mainly the documentation (big surprise, isn't it ;-)

::c::

----

<<
Visit my [[NiehLe clone]] to see what i am working on (always behind :)

**contact**
Leave a note or a comment on this page, sometimes I hang around on #wikka, too.

**other links**
[[http://www.joelonsoftware.com/articles/fog0000000020.html against the myth of bload programms]]
[[http://phpwiki.sourceforge.net/phpwiki/WikiAsPim about using Wiki for personal information management]]

<<


====My thoughts about Wikka====

Although WikkaWiki is now a very interesting pice of software, there are always things which could be done better. And because I do not want to talk only, I made some contributions to wikka in the three fields which seem the most important to me:

===Documentation===
//There's no good representation without good documentation :)//

The most important part for every project is a good documentation. This occurs to software, too. Not only for developers, but also for administrators and end-users. A documentation is only good if there are no questions remaining after reading it!

===Configurability===
Since people use wikka for many different purposes, wikka needs a maximum of configurability. My additions to that goal:
1) UserRegistration: An admin can choose if registration is disallowed, allowed only if you know a register-code, or allowed for everyone. This option (and the registration code) are stored in the config
1) StayingLoggedIn: Let the user choose if he wants to have permanent cookies with his name and password or only a session-based cookie (to be logged out when all browser windows are closed)
1) AutomaticUserPageCreation let an admin choose to create the page of a new user after his creation. As a template any wikkapage can be used.
1) PageAndCategoryDivisionInACategory seperation of pages and categories in the category action.
1) CommentsFormatting allows some (basic) formatting in comments. Problem with backwards compatibility :(

<<Links to read on:
http://www.cooper.com/articles/art_goal_directed_design.htm - designing for users, not for programmers
http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html - choose which choises you give to users
<<::c::

===Compatibility===
To use Wikka to store informations it is necessary to be as compatible to other programms (and older versions of wikka) as possible. So that wikka becomes no information-oneway, but a "crossing point" ;-) My addition to that goal:
1) HandleCsvData is a library which shall contain functions for, well, handling (reading, writing, sorting etc..) data from and to *.csv files
1) ShowCsv is the first action using this library. It shows the content of a *.csv file as a html-table.

<<Links to read on:
http://www.joelonsoftware.com/articles/APIWar.html - about the necessity of backward compatibility
http://www.joelonsoftware.com/articles/fog0000000054.html - the chicken and egg problem
<<::c::

//to be continued...//
----
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki