elmo-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elmo-users] pomocy!


From: rzyjontko
Subject: [elmo-users] pomocy!
Date: Sun, 28 Sep 2003 21:25:36 +0200
User-agent: elmo/0.8.3

Wstęp
-----

Desperacko poszukuję pomocy przy elmo.  Moja desperacja wynika z tego,
że chciałbym, aby elmo było w miarę stabilne i to jak najszybciej.

Dałem ogłoszenia "help wanted" na sourceforge'a i savannah.  Zgłosiło
się 6, a może 7 osób, ale żadna nie odpowiedziała na mój list.

Pomyślałem więc, że opiszę Wam dokładnie co należy wykonać i może ktoś
z Was (a może ktoś ze znajomych) mógłby wykonać następujące rzeczy:

1. MIME
-------

  1. Trzeba zaprojektować nową strukturę mime_t (albo zostawić
     istniejącą jeśli okaże się wystarczająca).
  2. Zwrócić uwagę na funkcje mime_read i mime_dump - mają one
     spłaszczyć strukturę do bufora oraz odtworzyć ją z tablicy
     bajtów.  Jeśli sama struktura się nie zmieni, to można je
     zostawić.
  3. Najważniejsze funkcje modułu to mime_encode i mime_decode.  Muszą
     zostać napisane od nowa tak, aby w ogóle nie korzystały z faktu,
     że bufor wejściowy ma bajt zerowy na samym końcu - muszą brać
     jego długość i tylko z niej korzystać.
  4. Zaimplementować kodowanie do QP.
  5. Napisać od nowa mime_decode_header - z tymi samymi uwagami co w
     punkcie 3.  Ta funkcja to największa tragedia całego modułu.
  6. Zaimplementować obsługę UTF-8 i uuencode/uudecode.

Punkt 6 nie jest obowiązkowy - można go na razie zostawić.  Można przy
tym oprzeć swoją implementację na funkcjach decode_base64 i
encode_base64 ponieważ zostały dobrze przetestowane i można na nich
polegać (a na dodatek nie zakładają, że bufor jest null-terminated).

Moduł nie jest trudny i nie wymaga zrozumienia architektury całego
programu.  Korzysta jedynie z modułu xmalloc (opisanego w info do
elmo) oraz memchunk.  W przypadku tego drugiego polecam obejrzenie
nagłówka.

Przydać się mogą RFC: 1521 (specyfikacja mime wraz z QP i base64) i
2047 (kodowanie nagłówków).  UTF-8 jest opisany w 2279, ale znajomość
tego tekstu jest całkowicie zbędna.  Wystarczy przeczytać dokumentację
info do libc (część o wchar_t).


2. Bayes
--------

  1. Przeczytanie tekstu, w którym opisane są poprawki algorytmu Paula
     Grahama (adres można znaleźć na stronie bogofiltera).
  2. Przerobić moduł bayes.c tak, aby korzystał z libdb do
     przechowywania tablic ze słowami.

Ten moduł jest napisany w sposób bardzo czytelny i rozczytanie kodu
powinno być banalne.


3. GPG
------

Należy napisać nowy moduł, który będzie potrafił wywołać gpg i
przekazać mu odpowienio spreparowane pliki zawierające treść
wiadomości i podpis (ew. zaszyfrowaną wiadomość).  RFC 2015.  Na dobry
początek proponuję wysłać sobie podpisany list (np. z mutta) i
spróbować ręcznie go poprzerabiać tak, aby gpg zweryfikowało podpis.
O ile dobrze pamiętam, to nie obejdzie się bez zakodowywania
wiadomości przy pomocy qp.


4. Obsługa mboxów
-----------------

Tu wystarczy zajrzeć do wrapbox.c.  Cały moduł jest pełen komentarza,
w jaki sposób obsługiwać różnego rodzaju skrzynki.  Należy tylko
zaimplementować podane funkcje i dopisać je tam.  Jako przykład można
obejrzeć implementację maildira.  Niestety mbox wymaga blokowania
plików.  Należy skorzystać z biblioteki liblockfile.


5. Dokumentacja
---------------

Potrzebny jest tekst, po przeczytaniu którego użytkownik będzie mógł
od razu zacząć korzystać z programu - taki QuickStart.  Jeśli ktoś by
sie podjął napisania czegoś takiego, to jest nawet specjalnie do tego
stworzone miejsce.  Strona ma dział dokumentacji, do którego teksty
umieszcza się przez interfejs www.  Jeśli ktoś miałby ochotę coś
takiego napisać, to niech zajrzy na aktualny tekst.  W każdej chwili
mogę wysłać login i hasło do systemu zarządzania stroną, przy pomocy
którego można załadować nowy tekst (albo poprawić istniejący).


Zakończenie
-----------

Osobom, które będą chciały pomóc oferuję wszelką pomoc przez pocztę
elektroniczną, gadu-gadu, irca.  Pamiętajcie, że nie ma głupich
pytań.  Są tylko głupie odpowiedzi.  Przeglądajcie kod elmo,
zgłaszajcie poprawki, wysyłajcie patche.  Każdy autor trzech
poprawnych patchy dostanie rw na CVSie :)

----                                ----
rzyjontko         <rzyj # plusnet () pl>
http://www.student.ii.uni.wroc.pl/~rzyj/
----                                ----






reply via email to

[Prev in Thread] Current Thread [Next in Thread]