-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news1.cyf-kr.edu.pl!news.nas
k.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder4.news.weretis.net!feede
r1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
Newsgroups: pl.comp.programming
Subject: Re: Programowanie a system operacyjny
Date: Tue, 22 Jan 2013 21:33:06 +0000 (UTC)
Organization: solani.org
Lines: 99
Message-ID: <s...@j...net>
References: <kcgt7u$4un$1@speranza.aioe.org> <o...@s...asus>
<s...@j...net> <kci839$i6n$1@opal.futuro.pl>
<s...@j...net> <kck2ve$2ka$1@news.task.gda.pl>
<s...@j...net> <kck82i$etd$1@news.task.gda.pl>
<s...@j...net> <kckmog$dtn$1@mx1.internetia.pl>
<s...@j...net> <kcmbj6$pv4$1@mx1.internetia.pl>
<s...@j...net>
<50f177d7$0$26694$65785112@news.neostrada.pl>
<s...@j...net>
<50fec8f3$0$1294$65785112@news.neostrada.pl>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: solani.org 1358890386 5678
eJwNwgcRwDAMBDBK+XrFcDz5Q0hPElJoGasoy/7UbKnP6LVo325CewGWYTU837kOJEMmg/AAIPgRMA==
(22 Jan 2013 21:33:06 GMT)
X-Complaints-To: a...@n...solani.org
NNTP-Posting-Date: Tue, 22 Jan 2013 21:33:06 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
X-User-ID: eJwNyckBwCAIBMCWJMuilMNl/yWY+Q5hYrXVaMrL69qCdEF4te6jxEx2EhXrK01bdInYgfPnPB
oTEPw=
Cancel-Lock: sha1:fRwpDxFovwlSoFQdLALQaO/fs9o=
X-NNTP-Posting-Host: eJwFwQEBACAIA7BMwn+kDgL9I7jRdfQCosDl1sRNeFs3lF5MDK6hCMezZc2s75Ex
MNEfFjIQ6g==
Xref: news-archive.icm.edu.pl pl.comp.programming:201774
[ ukryj nagłówki ]On 2013-01-22, darekm <d...@e...com> wrote:
>>>> Proszę bardzo, jedziesz. Ja w Perlu robię tak:
>>>> #v+
>>>> $logger->warn(msg "coś się zepsuło",
>>>> file => $filename, errorcode => $?, warning => $msg);
>>>> #v-
>>>>
>>>> Masz obiekt loggera z metodą do wysyłania ostrzeżeń. Potrzebujesz podać:
>>>> 1) własny komunikat
>>>> 2) nazwę pliku, którego np. otwarcie sprawiło problem
>>>> 3) kod błędu (errno lub analogiczny)
>>>> 4) treść komunikatu od systemu
>>>> Uwagi:
>>>> * 4) może zawierać cokolwiek i nie masz nad tym kontroli
>>>> * wpis w logu ma być czytelny dla człowieka i maszyny
>>>> * masz w kodzie móc dodać kolejne pola ad-hoc, bez edycji w innych
>>>> plikach czy miejscach bieżącego pliku
[...]
>> Oczywiście. Drzewa zasłaniają ci las.
>>
>> Nie interesuje mnie czas życia tego stringa. Nie interesuje mnie
>> przeciążanie funkcji warn, zwłaszcza że ona powinna być biblioteczna.
>> To, co mnie interesuje, to definiowanie pól w komunikacie ad-hoc,
>> w miejscu, w którym tworzę komunikat. *Bez przygotowań*, w tym bez
>> deklarowania dodatkowych zmiennych tylko na potrzeby logowania.
> Prawdopodobnie wcale nie interesuje Cie jakiekolwiek rozwiązanie tego
> problemu.
Oczywiście że interesuje mnie. Interesuje mnie rozwiązanie problemu,
który postawiłem. Mam utworzyć wpis i ten wpis posłać do miejsca
składowania logów. Po co mi do tego zadania znać jest czas życia obiektu
reprezentującego wpis?
> Istotna jest jedynie elastyczność rozwiązania, komplikacja zapisu oraz
> uzyskany efekt. Nieistotne jest czy to jest funkcja biblioteczna,
Nieistotne? Powiedziałbym że całkiem ważne. Ja nie chcę *pisać* loggera,
ja chcę go *użyć*. Znaczy -- powinien pochodzić z gotowej biblioteki.
> Nie interesuje Cię czas życia, bo nie masz na to wpływu,
> nie interesuje Cię przeciążanie bo nie Perl nie ma takich możliwości
Perl nie ma możliwości przeciążania? Mówisz o wywoływaniu funkcji
z różnymi typami parametrów czy o zmianie znaczenia operatorów
zdefiniowanych w języku dla własnych typów? Bo oba w Perlu występują
i nie wiem do czego pijesz.
> A mnie nie interesuje aby była biblioteczna, bo mam różne oczekiwania co
> do logowania w zależności od rodzaju aplikacji/platformy.
A jakie, że nie da się tego zawrzeć w bibliotece? Ja sobie takich nie
wyobrażam, ale ja głównie piszę daemony i programy wierszopoleceniowe,
więc mam dość wąską perspektywę.
> Ale mimo to przykładowa notacja (kilka wariantów):
>
> logger.warn( "coś się zepsuło"
> +'file'+FileName+eol
> +logger.param('errorcode,e.errorcode)
> +'obiekt=>'+logger.asAddress(myClass)
> +'warning=> uwaga');
>
> mogę przesłać wszystko, dowolną ilość pól,
> nic nie deklaruję
> mogę przesłać teksty i obiekty
Ah so. I twoim zdaniem taki ręcznie sklejony string jest *równoważny*
przekazaniu loggerowi wpisu ze strukturą? Nawet się nie upieram żeby ta
struktura była zagnieżdżona. Nie będę nagle wprowadzać nowego warunku,
skoro poprzednio o nim zapomniałem.
Powiedz mi, z jakiego powodu nie odtworzyłeś warunków zadania? Ze
złośliwości? Przez przeoczenie? Czy byłeś za głupi żeby zadanie
zrozumieć? Wolałbym nie zakładać ostatniej możliwości, bo ta gałąź wątku
byłaby bezsensowna od samego początku.
> funkcja może być biblioteczna, z takiej czy innej biblioteki :
> rozmawiamy o możliwościach języka
O możliwościach języka, ale na podstawie konkretnego scenariusza użycia.
> A mogę dołożyć własne wymagania:
> nazwie pliku musi zawsze towarzyszyć jego zawartość (albo analogicznie
> inna korelacja danych sprawdzana w momencie kompilacji: chodzi o to aby
> zminimalizować błędy niepełnego wysłania informacji do loggera)
Da się zrobić. Tak, bez uruchomienia kodu (zakładając, że nie liczymy
funkcji eval) i bez ręcznego parsowania Perla. Tylko że Perl nie jest
statycznie typowany, you know. Nie był przewidziany do takich rzeczy.
Zresztą jestem ciekawy, jak chcesz to zrobić w Delphi utrzymując moje
wymagania (głównie możliwość dokładania pól ad-hoc), a tym bardziej przy
twojej propozycji w postaci klejenia stringa, który jest potem
przekazywany loggerowi.
--
Secunia non olet.
Stanislaw Klekot
Następne wpisy z tego wątku
- 22.01.13 22:52 Stachu 'Dozzie' K.
- 22.01.13 23:34 Stachu 'Dozzie' K.
- 22.01.13 23:46 Andrzej Jarzabek
- 23.01.13 16:38 darekm
- 23.01.13 17:16 Stachu 'Dozzie' K.
- 23.01.13 18:24 darekm
- 23.01.13 19:21 R.e.m.e.K
- 23.01.13 19:49 Stachu 'Dozzie' K.
- 23.01.13 20:00 Stachu 'Dozzie' K.
- 23.01.13 20:41 R.e.m.e.K
- 23.01.13 21:07 Stachu 'Dozzie' K.
- 24.01.13 12:44 darekm
- 26.01.13 13:57 Roman W
- 26.01.13 14:00 Roman W
- 27.01.13 00:07 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek