🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14784

Re: Agile people still don't get it....

#14784
From: Sektor van Skijlen
Date: Mon, 12 Jun 2006 13:27
83 lines
4667 bytes
Dnia Mon, 12 Jun 2006 13:42:39 +0200, Adam Karpierz skrobie:
> "Aleksander Galicki" <no@no.com> wrote:

> > Mnostwo pewnie. Ale ten przyklad jest jednak dosc spektakularny.

> Tu sie zgadzam w pelni z Panem.
> Wiele uczacy.

Tu się również zgadzam, aczkolwiek błąd dla mnie nie powala na kolana.

To jest niestety integralna cecha wszystkich algorytmów, które pracują na
liczbach całkowitych o określonej wielkości - nie ma przeproś, tego typu
błędów jest wciąż w oprogramowaniu mnóstwo i przy operowaniu na mnóstwie
danych w końcu się okaże, że np. nie dodasz do zbiornika ośmiu miliardów
elementów, bo dana liczba całkowita nie ma takiej pojemności. I bujaj się.

> > I ta implementacja byla z prostym bledem, ktorego NIKT nie
> > znalalz przez 20 lat.

> Hm...
> _Nigdy_ nie zdazylo mie sie uzyc algorytmu "z ksiazki"
> bez sprawdzenia.

Słusznie. Co więcej, bezpieczne implementacje robi się zazwyczaj tak, że
określa się ramy, w jakich algorytm może pracować normalnie i operacje zostaną
wykonane poprawnie, w jakich trzeba przygotować się na korektę względem tego,
co zrobi procesor, a w jakich ten algorytm pracowac nie może i musi się
wywalić.

To nie jest moim zdaniem żaden błąd, to jest po prostu uproszczona wersja
algorytmu przewidziana do działania, na ograniczonym zakresie liczb. Jeśli
komuś się wydaje, że poprawka tego typu:

int mid = ((unsigned)left + (unsigned)right)/2;

czy:

int mid = ((long)left + (long)right)/2;

załatwi sprawę, to musi się jeszcze trochę nad sobą zastanowić.

Nie, w samym algorytmie błędu nie będzie. Będzie "trochę gdzie indziej". Jeśli
piszemy algorytmy na liczbach całkowitych o określonej pojemności, to algorytm
musi mieć określone ramy, w ktrych działa dobrze. Jak nie, to stosujemy
bignumy.

> Troche odbiegne od tematu:
> Powiem szczerze ze nigdy pozniej nie spotkalem (no z jednym
> wyjatkiem) ksiazki ktora by w taki profesjonalny sposob podchodzila
> do sprawy jak w/w.

Jeśli chodzi o Bentley'a, to się również zgadzam ;)

> > Nastepnie dobry programista (J Bloch) zaimplementowal ten algorytm na

> dobry programista nie implikuje bezbledny programista

Myślę wręcz, że "bezbłędny programista" to oksymoron ;)

> "We must program carefully, defensively, and remain ever vigilant."

> A Tu sie z w/w i z Panem zgadzam w pelni.

Też się zgadzam, ale to stwierdzenie jest zgoła banalne - praca inżyniera nie
polega na przenoszeniu rozwiązań z jednego miejsca w drugie, tylko na
stosowaniu poprawnych rozwiązań

> Niestety nie da sie ukryc ze wsrod "mlodziezy" jest to coraz rzadziej
> spotykana metoda. Ide, debuggery i inne takie jej nie sprzyjaja.
> Moze to ze na Odrze czekalo sie na kompilacje np tydzien
> (i dlatego program byl maksymalnei wycyzelowany) nie bylo takie zle :) ?

Cóż, tendencja do ułatwiania sobie życia temu nie sprzyja - ostatnio jak
trzeba było zbyt dużo czasu czekac na samo odpalenie kodu na docelowej
maszynie, co wydłużało cykl poprawki-kompilacja-weryfikacja, zrobiło się
host-testy.


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethouris(O)gmail.com>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Technical Details
Message-ID: <e6jq4p$9ji$1@kujawiak.man.lodz.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
References: <06060804173458@polnews.pl> <e6grok$r3b$1@kujawiak.man.lodz.pl> <06061203523546@polnews.pl> <brlp829ovg258639nh034mbgo9q87tkkjv@4ax.com> <06061205435287@polnews.pl> <e6j6d4$e78$1@inews.gazeta.pl> <e6j7e5$iod$1@inews.gazeta.pl> <e6j8ne$oca$1@inews.gazeta.pl> <06061211210879@polnews.pl> <e6jjvg$hg1$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.objects
Subject: Re: Agile people still don't get it....
Date: Mon, 12 Jun 2006 13:27:53 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 83
Sender: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Message-ID: <e6jq4p$9ji$1@kujawiak.man.lodz.pl>
References: <06060804173458@polnews.pl> <e6grok$r3b$1@kujawiak.man.lodz.pl> <06061203523546@polnews.pl> <brlp829ovg258639nh034mbgo9q87tkkjv@4ax.com> <06061205435287@polnews.pl> <e6j6d4$e78$1@inews.gazeta.pl> <e6j7e5$iod$1@inews.gazeta.pl> <e6j8ne$oca$1@inews.gazeta.pl> <06061211210879@polnews.pl> <e6jjvg$hg1$1@inews.gazeta.pl>
NNTP-Posting-Host: zly.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1150118873 9842 212.191.89.2 (12 Jun 2006 13:27:53 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Mon, 12 Jun 2006 13:27:53 +0000 (UTC)
User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (SunOS/5.9 (sun4u))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit