Skip to: Site menu | Main content

Autor

Chłopak z Bałut (Dołów), po uniwerku i stypendium. Wiecznie zestresowane, przemądrzałe bezguście. Więcej na stronie domowej.

Jeszcze raz o properties

Stare

Dzisiaj dokończyłem properties. Wczorajszą wersję usprawniłem o możliwość wykorzystywania faktycznych wartości argumentów formalnych. Aby móc przytoczyć przykład, muszę najpierw wkleić tutaj zawartość template'a:
    From: "$address.name" <$address.email>
    To: $to
    Subject: $subject

    $quote
    $=$mail.quoted
    $signature

Jak widać na załączonym obrazku template zawiera pewne properties, które zostaną zastąpione swoimi wartościami obliczonymi w trakcie generowania listu. Aby spersonalizować nagłówek listu trzeba zmienić wartość $quote na przykład w ten sposób:

    property quote (action
                    mail.from.abook
                    mail.from.foreign 
                    mail.from.sex
                    mail.from.name){
      'reply' 'yes' 'no' 'F' => "%e napisała:"
      'reply' 'yes' 'no' 'M' => "%e napisał:"
      'reply'                => "%e wrote:"
      ''                     => ""
    }

Najpierw zaznaczamy, że action musi być 'reply', czyli że interesują nas tylko odpowiedzi na listy. W drugiej kolejności interesujemy się polami foreign i sex autora listu, na który odpowiadamy. Wśród argumentów tego property umieszczamy jeszcze mail.from.name, aby móc się odwołać do jego wartości. Gdybyśmy w wartości po prawej stronie strzałki umieścili gdzieś %a to podstawiony by tam był pierwszy argument, za %b drugi, itd. Ja zastosowałem %e, czyli piąty argument - mail.from.name.

Jeszcze kilka słów o samym szablonie wiadomości. $= to pozycja kursora. W trakcie generowania listu obliczane jest przesunięcie od początku pliku, oraz numer wiersza i kolumny, które można wykorzystać w zmiennej editor np w ten sposób:

    set editor "emacsclient +%l %f"

Dodam jeszcze tylko, że template to też property.

28 marca 2004, 14:35:50 Dodaj komentarz

Prace trwają

Stare

Właśnie siedzę nad properties i pomyślałem, że podzielę się informacją o tym, jak to będzie wyglądać i do czego ma służyć.

Otóż wymyśliłem sobie, że niektóre zmienne programu powinny być konfigurowalne at run-time, a właściwie to chodzi o to, żeby można było wyrazić pewne zależności... weźmy taki przykład:

  property address.email (to.email) {
      ".*@lists\.sourceforge\.net" => "rzyj@poczta.fm"
  }

Jednym słowem chcę, aby mój adres używany przy wysyłaniu listów był zależny od tego, do kogo list wysyłam. Zależności może być oczywiście więcej. Jak zwykle obowiązuje zasada, że w pojedynczych cudzysłowach jest wartość dosłowna, a w podwójnych wyrażenie regularne.

Oczywiście wszystkie properties muszą mieć jakieś zastosowanie, to znaczy ich ostateczna wartość musi być gdzieś wykorzystana. No i pomysł mam taki (zresztą już zaimplementowany), że kompozycja listu zaczyna się od szablonu. W szablonie zaś można używać properties. Mam nadzieję, że to jasne. Wracam do kodowania.

27 marca 2004, 15:04:25 Dodaj komentarz

Nowe = stabilne

Stare

Nareszcie! Release przeciągnął się trochę od wczoraj, ale jeszcze kilka drobiazgów wymagało wykończenia. Dopiero wczoraj wieczorem zauważyłem, że ciało funkcji attach_save_all jest w całości zakomentowane. Przy okazji dopisałem sporo informacji do tutoriala i ustawiłem, żeby się instalował w share/elmo. W przypadku braku pliku konfiguracyjnego elmo otworzy skrzynkę lokalną, a tutorial doda do listy skrzynek. Za to elmoconf podlinkowuje tutorial do katalogu ze skrzynkami.

Przy okazji zwróciłem uwagę na to, że w informacji o poprawności podpisu powinny się pojawić informacje o kluczu więc też to dodałem. A searcha nie udało mi się uogólnić do mailreadera. Trochę skopałem tryb search... będę to musiał najpierw poprawić.

Tak czy siak Elmo w wersji 1.1.0 zostało uznane za stabilne. Niestety system releasów na freszmicie jest jakiś powalony i nie można sobie tak łatwo zmienić nazw gałęzi... dziwi mnie to, że o tym nie pomyśleli. To przecież normalne, że po jakimś czasie unstable staje się stable (no chyba, że testing staje stable).

11 marca 2004, 17:56:10 2 komentarze

Agrep

Stare

Przerobiłem tego "shift-anda" na agrepa. Teraz można wyszukiwać listy z założeniem, że wyszukiwany wzorzec zawiera pewną ilość błędów (maksymalnie 4). Niestety błędy są tylko typu "replace"... to znaczy algorytm można łatwo uogólnić, ale nie mam prostego pomysłu jak potem określić długość dopasowania...

Poza tym dorobiłem wyświetlanie procentu widocznej zawartości okna. Dodam jeszcze to wyszukiwanie do mailreadera i pora na release.

10 marca 2004, 17:20:59 Dodaj komentarz

Search

Stare

Ale mam dzisiaj dzień! Właśnie zaimplementowałem interaktywne wyszukiwanie po temacie i autorze listu. Działa to mniej więcej tak jak w emacsie, tylko na razie kolorki są jakieś takie nie najładniejsze. Acha... nie można wyszukiwać tekstów dłuższych niż tyle bitów ile ma int (na intelach 32), bo zastosowałem shift-and. Jak będę miał czas to dorobię pełnego agrepa, czyli wyszukiwanie z błędami... a może od razu to zrobię? Nie... chyba najpierw zastosuję moje cacko w mailreaderze.

09 marca 2004, 22:58:44 Dodaj komentarz

Weryfikacja podpisów

Stare

Właśnie zrobiłem weryfikację podpisów elektronicznych. Przy okazji musiałem zmienić sposób wyświetlania nagłówków więc można sobie dowolnie skonfigurować kolory poszczególnych nagłówków.

09 marca 2004, 11:49:19 Dodaj komentarz

Małe poprawki

Stare

SSL hula. Dodałem wykrywanie w configure itd. A przy okazji dorobiłem kilka innych drobiazgów, które mnie denerwowały, z których najważniejszy to pasek postępu przy wysyłaniu wiadomości. Poza tym nareszcie da się zdefiniować handler dla image/*, bo rozdzieliłem definiowanie handlerów od definiowania typów mime. Poprawiłem też jednego buraka i jakieś drobiazgi.

08 marca 2004, 20:03:08 Dodaj komentarz

SSL

Stare

Ha! Właśnie udało mi się odebrać pocztę przez SSL. Jeszcze nie zrobiłem wykrywania biblioteki w configure, ale poza tym połączenie wydaje się działać.

08 marca 2004, 10:23:28 Dodaj komentarz

« Starsze wpisy

Nowsze wpisy »