Newsgroup: it.comp.os.linux.sys
Titolo: Re: [OT] Perche' odio i PHProgrammatroti

 }
D�ja vu, praticamente in ogni linguaggio che permette di trappare le
eccezioni, dal BASIC in poi. Purtroppo non � stato ancora inventato un
linguaggio che non consente di scrivere codice stupido.
	Y.

 funzionera' mai in cron.
???
Ma che dici? La seguente riga, per fare un esempio, non funzionerà mai
secondo te?
0 2 * * * /usr/bin/php /script/cron.php > /var/log/cronphp.log
bye!

 ..... GAAAAHHHH!!!
Fantastica :-D

 secondo te?
Credo intendesse chiamato direttamente lo script.
Enrico

 TSP.
Cio' non toglie che hai scritto una cagata ;^)
bye!


e vabbè, ma mica sei obbligato a mettere sotto cron solo roba
eseguibile...
bye!

Hermooz wrote:

e poi basta
#!/usr/bin/php
<?php
-- 
give it away

Hermooz wrote:

... secondo me invece ha ''assunto la fede'' che dice ''php � male'', e 
passare dalla fede alla fissazione si sta molto poco ...



Porta pazienza, ma se uno sviluppatore scrive codice di questo tipo 
oltre ad essere un evidente incompetente � anche un unghia imbecille. E 
si vede da distanza considerevole, dalla mancanza di una shabang al 
naming della funzione, al catch all dell'eccezione. E in sole 5 righe.
Non serve una grande fissazione, senza nulla togliere al fatto che PHP 
sia in effetti il nuovo Visual Basic (senza la parte visual e la parte 
in cui almeno 3 componenti ad oggetti la libreria standard di VB li 
aveva), serve pi� che altro aver programmato 8 minuti nella propria 
vita e essersi letti uno straccio di libro (a caso direi - esempi cos� 
non li trovi neanche sui 'for dummies').
Poi si, se si lancia lo script con l'interprete diretto si puo' fare di 
ogni, incluso usare delle istruzioni XML processing dentro un 
normalissimo file (ma perch� ? :D), ma col culo fixare un grande 
sviluppatore non fa, come dice il mastro Yoda.
  ngw
-- 
Nicholas Wieland (ngw)
Zooppa CTO
911 Western Avenue, Suite 420
Seattle, WA  98104  US

 Porta pazienza, ma se uno sviluppatore scrive codice di questo tipo
]zac[
Tutta la pazienza che vuoi.
P.S. Ognuno ha le sue fisse, il c � male, il perl � male, lo script shell � 
male, gli autotools sono gli strumenti del demonio, il lisp di emacs � il 
lato oscuro della forza ... si fa prima a dire tutti ''odiano'' tutti una 
volta per tutte.



Oddio, io non sono un "opinionista", sono un tecnico, presumo (spero) 
anche piuttosto preparato.
Di linguaggi ne conosco una buona dozzina, per circa la met� ho 
esperienza in produzione (altri, come scheme, mi limito ad usarli per 
divertimento e/o cultura personale). Tra questi c'� anche PHP, che ho 
usato per diversi progetti.
Quello che io ho detto, e che sono in grado di sostenere piuttosto 
bene, � che PHP tecnicamente � un linguaggio profondamente mediocre, di 
una decina di anni indietro rispetto ai suoi diretti concorrenti, che 
ha una barriera d'entrata molto bassa (il che in certi casi � un gran 
bene, ma che nello specifico significa che un catch all sulle eccezioni 
� una soluzione accettabile da mettere in produzione per una buona 
media, quando in altri campi � molto vicino al "motivo di 
licenziamento"), e che deve il suo successo a questa barriera di 
entrata.
Mai usato la parola "odio", l'hai usata tu (2 volte), nei miei progetti 
non entra neanche di striscio in favore di tecnologie pi� interessanti 
(e molto varie).
Poi se vuoi buttarla in chiacchiera va bene, io del resto Cassano lo 
convocherei.


 trovi neanche sui 'for dummies').
Cazzata colossale.
Bisogna saper programmare. Punto.
Se usi PHP o visual basic cambia poco,
se sai programmare certi errori non li fai.
Non � colpa del linguaggio.
Sarebbe come accusare Debian perch� basta andare avanti a colpi
di apt-get.
-- 
Non tocca a noi dominare tutte le maree del mondo,
il nostro compito � di fare il possibile per la
salvezza degli anni nei quali viviamo,
sradicando il male dai campi che conosciamo.

 Non � colpa del linguaggio.
Quoto. Sarebbe come dare la colpa alla lingua italiana quando qualcuno
dice una cazzata :)
	Y.

 dice una cazzata :)
Nì. Un vecchio adagio recita che "ci sono linguaggi per programmatori e
linguaggi per NON-programmatori".
Negli ultimi anni è stato tutto un fiorire di linguaggi tesi ad aiutare
chi *non* sa programmare, col risultato di incrementare esponenzialmente
la produzione di bloatware.
Voglio dire, se il linguaggio è rigoroso, tu o ti adatti a capire cosa
stai facendo, o non riesci proprio a fare niente. Se il linguaggio
invece ti permette di scrivere merda che tanto in qualche modo *sembra*
funzionare, allora tutti si credono immediatamente programmatori, e
scriveranno quintalate di merda.
-- 
Massimo Bacilieri AKA Crononauta

 linguaggi per NON-programmatori".
Una volta, forse. Adesso trovi IDE per qualsiasi linguaggio, e c'è un
mare di cioccolatai armati di IDE là fuori che producono applicazioni
java, per dire.

 scriveranno quintalate di merda.
Se il linguaggio è rigoroso, quello che con PHP fai in 3 righe (che,
bada bene, non devono essere scorrette) in $altroLinguaggio ne devi
scrivere 49.
Ci sono i programmatori ed i non programmatori.
I programmatori sanno programmare bene anche con linguaggi non
rigorosi, anzi, programmano meglio, perchè in 3 righe fanno
correttamente quello che avrebbero fatto in 49, mentre i non
programmatori fanno male quello che avrebbero fatto male ugualmente
in linguaggi rigorosi.
Altrimenti, sarebbe come incolpare i produttori di auto per aver
inventato il cambio automatico.
Se sai guidare, con il cambio automatico ti diversi di più e stai
più comodo. Se non sai guidare, con il cambio automatico vai nel
fosso ugualmente.
PHP è un gran linguaggio, fai di tutto e di più, solo che viene spesso
usato da degli emeriti cretini.
In tal caso, il problema sono i cretini, non il linguaggio.
Non vedo per quale motivo chi *sa* programmare debba essere costretto
a perdere del tempo a causa di un linguaggio troppo rigoroso.
Facebook è in PHP, ad esempio. E non si tratta di certo di una
applicazione con 3 righe di codice. Wikipedia è in PHP, molti altri
progetti enormi sono in PHP....
-- 
Non tocca a noi dominare tutte le maree del mondo,
il nostro compito è di fare il possibile per la


 progetti enormi sono in PHP....
/me attende l'ira di ngw con dei popcorn
:)
-- 
Vide

 scriveranno quintalate di merda.
Secondo questa definizione allora il C++ fa schifo rispetto a Java 
perché puoi scrivere merda in memoria, per esempio eccedendo i limiti di 
un array, laddove Java ti darebbe un'eccezione.

 }
Ora vienimi a dire che non si pu� fare in altri linguaggi.
Come hanno gi� detto, il problema non � il linguaggio ma chi lo usa. 
Per� essere al telefono con un javista, decidere che si deve modificare 
un web service, farlo in tempo reale e dire "proviamo?", quindi ricevere 
la risposta "eh ma io qua devo modificare il bla-bla-bla, ci risentiamo 
tra mezz'ora"... non ha prezzo!



On 2010-03-08 06:53:49 -0800, Gandalf Corvotempesta said:




Crononauta ha scritto:


Voglio dire, se il linguaggio � rigoroso, tu o ti adatti a capire cosa


stai facendo, o non riesci proprio a fare niente. Se il linguaggio


invece ti permette di scrivere merda che tanto in qualche modo *sembra*


funzionare, allora tutti si credono immediatamente programmatori, e


scriveranno quintalate di merda.




Se il linguaggio � rigoroso, quello che con PHP fai in 3 righe (che,


bada bene, non devono essere scorrette) in $altroLinguaggio ne devi


scrivere 49.




Direi che sei molto confuso, e che forse sarebbe il caso prima di parlare di "cazzate" sapere 3 cose in croce sulla programmazione e sui linguaggi in generale.


Non so dare una definizione al "rigore" su un linguaggio di programmazione, ad occhio direi che un linguaggio rigoroso non ti permette immondizia di questo tipo:




"01e4" == "10000"




PHP ritorna true. Ecco, questo � un bell'esempio, non � questione di rigorosit�, � questione di "typing decente", "cast a caso", non rigorosit�. Siccome sono pagato per "fare cose" e non per "vedere gente" piacerebbe che un linguaggio, nel 2010, non confondesse numeri e stringhe.


Ruby e Python, per dirne due, non hanno questo problema, e dubito molto fortemente che il gioco della "conta delle righe" sia a favore di PHP, tipicamente decisamente non lo � (basti pensare a cosa di pu� fare con la metaprogrammazione in Ruby e in Python, metaprogrammazione che � totalmente assente in PHP, del resto non � mica un linguaggio che va l'eval a runtime, ne pas ?).


L'unico linguaggio in cui si puo' trovare qualcosa di lontanamente simile (ma molto meno grave) � Erlang, dove le stringhe vengono interpretate come liste di numeri. Per fortuna che Erlang ti tiene su qualche smilionata di connessioni concorrenti sfruttanto alla perfezione i processori multicore e non sembra una versione for dummies di C misto a Perl.




Ci sono i programmatori ed i non programmatori.


I programmatori sanno programmare bene anche con linguaggi non


rigorosi, anzi, programmano meglio, perch� in 3 righe fanno


correttamente quello che avrebbero fatto in 49, mentre i non


programmatori fanno male quello che avrebbero fatto male ugualmente


in linguaggi rigorosi.




Si, uno bravo se la sa sfangare anche con il linguaggio di scripting di Vim, senza dubbio. Uno bravo pero' non si mette a scrivere un grosso software con quella tecnologia pero', perch� sa che pur essendo bravo ha dei limiti di tempo e degli obblighi qualitativi.


La concisione, come ti ho gi� detto, non � caratteristica unica di PHP. Anzi, PHP � piuttosto limitato in quanto non controbilancia i difetti della sua architettura con un guadagno tangibile rispetto ai suoi diretti concorrenti.


In poche parole, l'eval a runtime � un difetto sia per quanto riguarda la sicurezza/correttezza del codice,
� 
sia per quanto riguarda le performance. In cambio dota il linguaggio di una determinata concisione e di una determinata elasticit�, appunto perch� l'eval � a runtime.


PHP � tipato debole, non ha un object model degno di nota (ovvero, anche rispetto a Perl fa sorridere), non da grandi possibilit� di metaprogrammazione non essendoci una gerarchia di classi e avendo appena introdotto i namespace. Per dire, metaprogrammazione in PHP significa eval() e create_function(), presumo nello scope globale, non saprei. Pensa te :D




PHP � un gran linguaggio, fai di tutto e di pi�, solo che viene spesso


usato da degli emeriti cretini.




Quasi marzulliano. Fatti una domanda e datti una risposta.




In tal caso, il problema sono i cretini, non il linguaggio.


Non vedo per quale motivo chi *sa* programmare debba essere costretto


a perdere del tempo a causa di un linguaggio troppo rigoroso.




Come detto, sei molto confuso.




Facebook � in PHP, ad esempio. E non si tratta di certo di una


applicazione con 3 righe di codice. Wikipedia � in PHP, molti altri


progetti enormi sono in PHP....




Facebook non � affatto in PHP: il frontend � in PHP. E si sono dovuti riscrivere l'interprete perch� buttasse fuori del codice C++. Le API sono in Java, la chat in Erlang, parti piuttosto grosse sono in C++. Wikipedia � in PHP, e quindi ? Voglio dire, � una wiki, non � che il progetto sia grosso, � che tiene quintali di contenuti, tra l'altro con una policy di caching che presumo piuttosto semplice.


Sono comunque argomenti debolucci, MySpace gira su Windows, che ci fa tutta 'sta gente qui ?




� 
ngw


 :)
Tranquillo, sei te che mi fai incazzare, la gente normale no :D



Stai confondendo "rigoroso" con "flessibile".
Il concetto di "rigoroso" che intendo è un rigoroso in termini
procedurale e di casting delle variabili, cioè deve essere chiaro *cosa*
il programma fa e *cosa* scrive in memoria, e *cosa* ti restituisce come
confronto. C, C++ e Java *lo sono*.
L'esempio che ha fatto ngw è calzante un PHP - o un Visual Basic - che
ti permette confronti tra tipi diversi (il maledetto tipo "variant" del
VB...) sarà semplice da scrivere, ma non è rigoroso perché ti permette
di fare cose dal risultato impredicibile. Questo significa che il
programma lo scrivi in fretta, ma è un risparmio di tempo apparente: un
domani che lì dentro ci entra un dato "imprevisto" avrai un
comportamento inestricabile di quel programma, e il bug trapping
potrebbe portarti via un bel po' di tempo. Laddove un linguaggio
rigoroso ti avrebbe semplicemente sputazzato all'atto della compilazione
per tipi non coincidenti.
Il discorso di poter scrivere merda in memoria non c'entra un tubo con
questo, il C o il C++ sono flessibili e potenti da questo punto di
vista. Se scrivi un array ricorsivo che ti manda in overflow di memoria
avrai un errore, ma questo capita perché hai *voluto* scriverlo così. Il
loop in quanto tale è chiaro e rigoroso.


 loop in quanto tale è chiaro e rigoroso.
Sì vabbè, stai stirando la definizione per difendere la tua tesi.
-- 
Vide

 per tipi non coincidenti.
[cut]
Verissimo, del resto MS stessa consiglia di usare le opzioni strict ed
explicit in VB.

 ti permette confronti tra tipi diversi
In PHP esiste apposta l'operatore === (e !==) per confrontare anche il 
tipo, ed e` ben scritto sul manuale che il linguaggio effettua 
conversioni di tipo automaticamente quando usi == (e !=):
http://www.php.net/manual/en/language.types.type-juggling.php
http://www.php.net/manual/en/
language.types.string.php#language.types.string.conversion
http://www.php.net/manual/en/language.operators.comparison.php
L'errore e` dare per scontato che siccome la sintassi e` simile al C (o a 
Java) anche tutti i costrutti siano uguali al C.
Bye.

 conversioni di tipo automaticamente quando usi == (e !=):
Le conversioni di tipo implicite sono a mio avviso uno tra i più grossi
mali dei linguaggi... ci bestemmio già abbastanza in SQL...




OK, possiamo discuterne, ma lo fanno tutti, anche Python e Java (per 
esempio concatenando numeri e stringhe). Solo che non lo fanno durante i 
confronti.
Parlo di Python e Java perche` conosco quelli, eh, non per dire che siano 
meglio o peggio di altri. :)
Secondo me e` questione di gusti. Io preferisco i linguaggi dinamici, e 
la conversione automatica dei tipi mi fa spesso comodo e mi evita di 
scrivere righe troppo lunghe. Per esempio in Java trovo piu` leggibile 
scrivere ""+i piuttosto che Integer.toString(i), per quanto non mi 
piaccia assolutamente il + come concatenatore.
Bye.

 mali dei linguaggi... ci bestemmio già abbastanza in SQL...
E non usarle no?
Hai la possibilità di non usarle...
Un conto è dare delle possibilità in più, un altro conto
è non darle volutamente.
Nessuno ti obbliga ad usare "=="
-- 
Non tocca a noi dominare tutte le maree del mondo,
il nostro compito è di fare il possibile per la


 Java) anche tutti i costrutti siano uguali al C.
Proprio per niente, quello � un gotcha grosso come una casa a cui hanno 
applicato quella che in gergo tecnico si chiama "pezza".
Che poi abbiano introdotto un terzo operatore � ininfluente, 
quell'operatore ce l'ha anche Ruby (per confronti pi� stretti e 
problemi molto meno gravi che in PHP, fondamentalmente serve al case) 
ed � una sporcatura del type system.
Quello � un problema di typing, che un operatore di egualianza si metta 
a fare delle conversioni *tra 2 tipi identici* senza dirlo a nessuno � 
una porcheria, per altro piuttosto comune in PHP:
NULL == TRUE
� true.
Nessuno da per scontato una cippa, tanto per citare un linguaggio che 
non uso da anni:
Special cases aren't special enough to break the rules.
In the face of ambiguity, refuse the temptation to guess.


 parti piuttosto grosse sono in C++.
sicuro, ma con php puoi fare tutto, se vogliamo parlare di complessità mi 
pare che pfsense sia scritto interamente in Php. non vorrei dire cavolate 
però.
-- 
give it away

 ambiguity, refuse the temptation to guess.
Lo zen di python. Che, guarda caso, si ottiene con un caso speciale che 
rompe le regole: import this.
Quello di PHP e` diverso: il linguaggio non deve mai essere d'intralcio 
per l'obiettivo che devi raggiungere.
Bye.

 ngw wrote:
Nicholas, non so che server usi ma Motzarella (che uso io) molti tuoi post 
non li mostra (come questo, per esempio).
-- 
Vide

 E non usarle no?
Io non le uso, ma se devo mettere le mani in programmi scritti da chi li
ha usati (e magari capire perché viene fuori un errore...), mi tocca!


 vista.
Ti riporto quello che hai scritto:
 > Voglio dire, se il linguaggio è rigoroso, tu o ti adatti a capire cosa
 > stai facendo, o non riesci proprio a fare niente.
Con il C e il C++, da te definiti "rigorosi", puoi facilmente scrivere 
un programma che contiene il baco che ho portato come esempio 
indipendentemente che tu sia molto esperto o novello (array e loop sono 
alle prime pagine di qualunque libro o guida), seppur questo possa 
certamente avvenire con probabilità diverse.
 > Se il linguaggio
 > invece ti permette di scrivere merda che tanto in qualche modo *sembra*
 > funzionare, allora tutti si credono immediatamente programmatori, e
 > scriveranno quintalate di merda.
Come da esempio il C e il C++ permettono a qualunque programmatore 
inesperto di scrivere merda che sembra funzionare (perché non c'è 
scritto da nessuna parte che sicuramente ti accorgeresti dell'errore). 
Paradossalmente Java dovrebbe essere più adatto a programmatori 
inesperti visto che mira ad evitare alcuni degli errori più comuni della 
programmazione C++, e quindi contribuire alle quintalate di merda di 
finti programmatori che si credono tali.
Quello che hai scritto non ha senso, poi non so se volessi intendere 
altro, ma di sicuro non ho frainteso.

>> sorted([1, '2', 3, 5, '4'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
Ciao  Manlio



On 2010-03-09 03:22:31 -0800, Alessandro Pellizzari said:




Il Tue, 09 Mar 2010 03:06:26 -0800, ngw ha scritto:




Proprio per niente, quello � un gotcha grosso come una casa a cui hanno


applicato quella che in gergo tecnico si chiama "pezza".
�




Hai sicuramente ragione tu...




Lo so, ogni tanto mi sto sul cazzo da solo.




Che poi abbiano


introdotto un terzo operatore � ininfluente, quell'operatore ce l'ha


anche Ruby (per confronti pi� stretti e problemi molto meno gravi che in


PHP, fondamentalmente serve al case)




... e confrontare due linguaggi con sintassi completamente diversa ti da`
�


ancora piu` ragione.




Sintassi e typing c'entrano pi� o meno come Cicciolina e la verginit�.


Non solo, prima mi dici che non devo confrontare linguaggi con sintassi simile, poi con sintassi diversa, con cosa lo devo confrontare, di grazia ? Con Javascript ? Ok, hanno entrambi un typing di merda, hai vinto.




Quello � un problema di typing, che un operatore di egualianza


si metta a fare delle conversioni *tra 2 tipi identici* senza dirlo a


nessuno � una porcheria,




Infatti se vuoi confrontare anche il tipo c'e` l'operatore di identicita`
�


apposta.




C'� solo un piccolo problema, che sono entrambe stringhe. Il contenuto non � affare del linguaggio.




per altro piuttosto comune in PHP:




NULL == TRUE




� true.




Che appunto rientra nella casistica di cui sopra: vengono convertiti
�


entrambi in interi.




NULL e TRUE ? Ma stiamo scherzando ? :D


E cos'� NULL in intero ? 1 ?




Special cases aren't special enough to break the rules. In the face of


ambiguity, refuse the temptation to guess.




Lo zen di python. Che, guarda caso, si ottiene con un caso speciale che
�


rompe le regole: import this.




E che � un gioco, tanto per ridere.


Python ha bisogno di queste cose, con PHP ci pensa il linguaggio.




Quello di PHP e` diverso: il linguaggio non deve mai essere d'intralcio
�


per l'obiettivo che devi raggiungere.




Ah, capisco. Quindi se per caso hai una stringa numerica vanno bene i cast a cazzo, che non sono assolutamente di intralcio.


Il punto comunque non � mai stato questo, il punto � che � tecnologicamente una merda, quelli sono solo gotcha. Tutto qui.




� 
ngw


 Stai dicendo che Python concatena numeri e stringhe?
No, hai ragione. Ricordavo male.
Bye.



On 2010-03-09 02:48:12 -0800, Alessandro Pellizzari said:




Il Tue, 09 Mar 2010 11:35:06 +0100, Crononauta ha scritto:




Alessandro Pellizzari wrote:


In PHP esiste apposta l'operatore === (e !==) per confrontare anche il


tipo, ed e` ben scritto sul manuale che il linguaggio effettua


conversioni di tipo automaticamente quando usi == (e !=):




Le conversioni di tipo implicite sono a mio avviso uno tra i pi� grossi


mali dei linguaggi... ci bestemmio gi� abbastanza in SQL...




OK, possiamo discuterne, ma lo fanno tutti, anche Python e Java (per
�


esempio concatenando numeri e stringhe). Solo che non lo fanno durante i
�


confronti.




Python non lo fa, lo fa Ruby, si chiama duck typing.




Parlo di Python e Java perche` conosco quelli, eh, non per dire che siano
�


meglio o peggio di altri. :)




Secondo me e` questione di gusti. Io preferisco i linguaggi dinamici, e
�


la conversione automatica dei tipi mi fa spesso comodo e mi evita di
�


scrivere righe troppo lunghe. Per esempio in Java trovo piu` leggibile
�


scrivere ""+i piuttosto che Integer.toString(i), per quanto non mi
�


piaccia assolutamente il + come concatenatore.




Sono 2 stringhe, � la conversione arbitraria di stringhe in intero. Fosse conversione implicita mi andrebbe da dio, del resto "22" + 4 risulta "224". Questo ha un senso, lo sai e ci convivi.


Ma infatti, Ruby � tipato forte, non debole.






On 2010-03-09 03:17:20 -0800, majale said:




ngw wrote:






Facebook non � affatto in PHP: il frontend � in PHP. E si sono dovuti


riscrivere l'interprete perch� buttasse fuori del codice C++.




il motivo non � avere C++ perch� � meglio, semplicemente � pi� veloce del
�


php.


quando hai 300 milioni di scansafatiche al giorno sui tuoi server avere del
�


codice che viene eseguito il 10% pi� in fretta fa risparmiare centinaia di
�


migliaia di dollari in server e corrente.




loro han creato php hip hop per risparmiare non per talebanismo del codice.


asserendo bellamente che � molto meglio programmare in php perch� � pi�
�


semplice e qualsiasi ingegnere sa o pu� imparare il php in qualche giorno.




� un gran vantaggio senz'altro.




Non lo nego. Fatto sta che va considerato quando si dice che Facebook � in PHP.


C++ � a mio avviso meglio di PHP, almeno ha un caz*o di senso.


Certo, per il web, C++ � appena prima di white o brainfuck.




Le API


sono in Java, la chat in Erlang,




questo solo per la sua smisurata capacit� di manipolare connessioni
�


simultanee. ma trovalo un programmatore in Erlang, quando l'ho cercato io
�


non ho trovato nessuno.




Presente :)


Non ce ne sono, ma in una azienda di mille dipendenti li formi. Non capisco che c'entri pero'.




parti piuttosto grosse sono in C++.




sicuro, ma con php puoi fare tutto, se vogliamo parlare di complessit� mi
�


pare che pfsense sia scritto interamente in Php. non vorrei dire cavolate
�


per�.




Puoi fare praticamente solo web. E in modo molto elementare.


Poi ci sono framework che si inventano di ogni, senz'altro, ma sono tanti, e trovare un esperto (considerando anche il ricambio che c'�) � un bel casino.


 è tipato forte, non debole.
E senti, l'html chilometrico in fondo ad ogni tuo post com'è tipato?

 E senti, l'html chilometrico in fondo ad ogni tuo post com'� tipato?
Cerca "multipart/alternative" con google.
-- 
Cio' che si vede, e'.

 NULL e TRUE ? Ma stiamo scherzando ? :D E cos'è NULL in intero ? 1 ?
Non avevo letto bene il risultato che ti dava. Non so che versione di PHP 
usi, ma sul mio null == true torna false. Mentre null == false torna 
true. Perche` null diventa 0, cosi` come false. E null === false torna 
false, giustamente.
 

 Cerca "multipart/alternative" con google.
Cerca "il multipart su Usenet è male" con google. <beg>

 Cerca "il multipart su Usenet � male" con google. <beg>
Ah guarda, secondo me e' male dappertutto, non solo su usenet. 
Ma un client che non lo gestisce non e' comunque un bene.
(Poi magari il suo client lo gestisce, e' solo da configurare)


 (Poi magari il suo client lo gestisce, e' solo da configurare)
No.
Bisogna VOLERLO configurare, nonostante l'html sui gruppi testo
sia *male*.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 sia *male*.
Parli di chi spedisce o di chi legge dal client? Io mi riferivo a chi legge 
dal client. 
Poi sul fatto che sia male, come ho gia' detto sono d'accordo.


 Pan, che e' cio' che usa chi si era lamentato della cosa, non e' tra quelli, 
Appunto. :-p


 Appunto. :-p
MA, come ho detto nella parte che hai tagliato, puo' essere configurato per 
non farti vedere l'html. 


 non farti vedere l'html. 
E perch� dovrebbe configurare qualcosa per evitare una cosa che
non dovrebbe esistere? :-)


 non dovrebbe esistere? :-)
Non dovrebbe, appunto, ma purtroppo esiste.
E' un po' come mettere un antivirus. I virus non dovrebbero esistere, pero' 
invece esistono.
Cosa e' meglio: mettere l'antivirus, oppure no e quando il computer si 
infetta gridare "ma i virus non dovrebbero esistere!". 
(o un firewall, o un antispam, o qualunque altra cosa serva a proteggere dal 
mondo ingiustamente brutto e cattivo che c'e' la' fuori)


 non dovrebbe esistere? :-)
Il problema l'ho segnalato a chi fa il reader qualche tempo fa, hanno 
promesso di metterlo apposto, fino ad allora, o non leggi i miei post 
(che del resto non dovrebbero esistere), o ti configuri il client.
Io i post multipart riuscivo a vederli con slrn, dove torner�, se 
continueranno a sputtanarmi i post cos�.
  ngw

 di finti programmatori che si credono tali.
Java *�* pi� adatto a programmatori inesperti. Io certamente non lo 
amo, ma se in un progetto devo decidere tra l'uno e l'altro posso 
prendere un bel foglio e scrivere i vantaggi dell'uno e dell'altro, nel 
momento in cui necessito di un utilizzo dell'hardware pi� spinto e vado 
per C++ posso segnare un +10 nei tempi di sviluppo e finita li.
Se dovessi fare la stessa cosa tra Python e PHP, che sono concorrenti 
abbastanza diretti ? Che motivo ho di usare PHP ? "Lo usano tutti" ? 
Nell'ultimo rilascio hanno introdotto Unicode, che Python ha credo dal 
2000 ?


 mali dei linguaggi... ci bestemmio già abbastanza in SQL...
Tutto cio` mi fa pensare a SQLite...
Enrico

 false, giustamente.
NULL non � uguale a FALSE, se non mi sono perso la logica ternaria per 
strada. Che NULL == NULL ci posso anche stare, ma FALSE no. Quindi se 
una variabile � unbound � anche false ? Boh.
Comunque il typing � solo una minima parte del motivo per cui considero 
PHP povero.


 CUT
Ecco, mi ricordavo male, sono andato a vedere ed � anche peggio:
(string) "false" == (int) 0
quindi sto facendo io il cast esplicitamente.


 PHP povero.
Questo � un altro discorso.

 trovo abbastanza logico che sia).
Eh no, non è così semplice. In C esistono i null pointer, che sono null
e *non* sono uguali a 0: un integer non può essere null. Che poi
avvengano alcune "confusioni" in sede di compilazione se non si fanno i
cast corretti, e un null pointer venga implicitamente convertito a
integer 0 è un altro discorso, cfr. p.e.
http://www.lysator.liu.se/c/c-faq/c-1.html


 sommato trovo abbastanza logico che sia).
Ho capito, ma uno � un linguaggio degli anni 70 usato per determinate 
caratteristiche, tipo il fatto che abbia un bassissimo footprint sulla 
memoria, e che da sempre, storicamente, ha una libreria standard 
minuscola, l'altro eredita alcune caratteristiche da C, e anch'esso 
giovane giovane non �.
Non stiamo parlando di un linguaggio tipato dinamicamente degli anni 90.
PHP ha *gi�* rotto la compatibilit� innumerevoli volte, spesso anche in 
minor, ora non ricordo la versione ma mi ricordo che mentre ero su un 
progetto avevano cambiato il passaggio per reference per mettere 
apposto un memory leak (!!!).
Guarda solo che � successo con C99 e fatti i tuoi conti. Mi sembrano 
onestamente imparagonabili.


 Non dovrebbe, appunto, ma purtroppo esiste.
Oh, lo so, lo so.
Dico solo che uno che, invece di evitare comportamenti scorretti, chiede
al corrispondente di modificare il suo modo di leggere usenet, mi sembra
meritevole di un echo "^From:.*SomeUser " >>/etc/news/leafnode/filters e
non di perderci altro tempo.
PS: io la parte html non la vedo proprio.


 non di perderci altro tempo.
Sei parecchio permaloso, allora. Magari lui non lo sapeva nemmeno che poteva 
impostare il newsreader per non vedere l'html, e adesso lo sa. O forse lo 
sapeva, e mi ha plonkato. Non e' che mi importi molto in verita'.
Se tu vedi qualcuno che si lamenta dello spam, non gli suggerisci forse di 
fare qualcosa?


 fare qualcosa?
Non di tapparsi gli occhi.
[*] Non sono permaloso, sono proprio bastardo dentro, fuori, e mezzo
metro abbondante tutt'intorno.


 
http://www.lysator.liu.se/c/c-faq/c-1.html
Infatti viene chiaramente detto anche lì:
1.3
"For this reason, the preprocessor macro NULL is #defined (by <stdio.h> 
or <stddef.h>), with value 0"
1.8
C programmers must understand that "NULL" and "0" are interchangeable 
and that an uncast "0" is perfectly acceptable in initialization, 
assignment, and comparison contexts.  Any usage of "NULL" (as opposed to 
"0") should be considered a gentle reminder that a pointer is involved; 
programmers should not depend on it (either for their own understanding 
or the compiler's) for distinguishing pointer 0's from integer 0's.
"NULL should not be used when another kind of 0 is required, even though 
it might work, because doing so sends the wrong stylistic message."
1.9
"NULL is used only as a stylistic convention."
1.11
" One good way to wade out of the confusion is to imagine that C had a 
keyword (perhaps "nil", like Pascal) with which null pointers were 
requested.  The compiler could either turn "nil" into the correct type 
of null pointer, when it could determine the type from the source code, 
or complain when it could not. Now, in fact, in C the keyword for a null 
pointer is not "nil" but "0", which works almost as well, except that an 
uncast "0" in a non-pointer context generates an integer zero instead of 
an error message, and if that uncast 0 was supposed to be a null 
pointer, the code may not work. "
E' fondamentalmente una questione di (buon) stile.

 un memory leak (!!!).
Non c'entra niente 2.
Come ho gi� detto non conosco il php e non posso esprimere un giudizio. 
E' assolutamente ragionevole che ognuno abbia i propri gusti o che possa 
non ritenerlo adatto per sviluppare certe cose piuttosto che altre, non 
c'� problema (potresti anche avere ragione, non lo so), ma ancora non 
c'� stata una definizione accettabile di "linguaggio rigoroso", che era 
quello che mi aveva lasciato molto perplesso. Per di pi� quest'ultima 
argomentazione sul null mi sembra piuttosto fallace.
Ora, da quanto dite mi sembra di capire che php restituisca vero a null 
== false [1], come C e C++. Se questo rende il php una merda allora lo 
sono anche C e C++, altrimenti non � questo un buon motivo per dire che 
php fa schifo.
[1] nel caso null === false viene restituito false poich� gli operandi 
sono interpretati come stringhe?

 sono interpretati come stringhe?
AFAIK perch� null non � bool, quindi � diverso il tipo.
-- 
ValeRyo
XT600 "Katoki Pajama" - 
http://www.slimmit.com/go.asp?7Y9
CBR600F "Cerbero" - In vendita - 
http://www.slimmit.com/go.asp?7X0
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 c'� problema (potresti anche avere ragione, non lo so),
Sia chiaro, intendo dire che potrebbe tranquillamente essere vero che il 
php � poco moderno, poco espressivo, poco pratico o in generale poco 
valido tecnicamente, non parlo esclusivamente di gusti personali.


Facebook: Massimo Bacilieri

 Alla fine sì, nei fatti.
Sì, l'usare NULL in certi casi (e di non usarlo in altri). Ma direi che 
NULL è sinonimo di 0 sia nella teoria che nella pratica.

 metro abbondante tutt'intorno.
Che culo!


 "null" di un puntatore o se è 0 integer (nessun cast di nessun tipo).
integer *è* casted. Il semplice "0" è invece un valore uncasted, tant'è
che le seguenti assegnazioni sono tutte legittime, "valgono" tutte 0, ma
significano però tutte cose diverse; e non è automatico che tu le possa
usare indifferentemente una al posto dell'altra:
(int)0;
(char *)0;
(void *)0;


 allo stesso valore dell'integer e incidentalmente il confronto riesce.
Certo, ma questo è vero solo se definisci NULL come (void *)0 piuttosto 
che come 0 (infatti nella pagina si dice che è definito come 0 o 
eventualmente come puntatore a void: "ANSI allows the #definition of 
NULL to be (void *)0, which will not work in non-pointer contexts."). 
Ora, non so quale sia l'andazzo nelle varie librerie, è probabile che la 
definizione più diffusa sia la prima visto che comprensibilmente tutti 
usano NULL solo per i puntatori, ma l'idea generale è che NULL è 
sinonimo di 0. Quindi le cose in realtà sono semplici, si sono semmai 
"complicate" dopo, anche se a questo punto concordo che di fatto 
complicazione poi non c'è.

 sono interpretati come stringhe?
Direi come costanti di qualche tipo. Non credo si possa fare 
introspection sui primitivi in PHP, ma magari qualcuno mi vuole 
correggere.


 un reader specifico per le news erano due persone diverse.
Giusto due puntini sulle i due, mi rendo conto che molti debbano fare 
la voce grossa di tanto in tanto anche a pene di segugio, ma, 
nonostante non sia specificato nella netiquette, scadere nel grottesco 
non � granch� furbo e anzi, ottiene l'effetto opposto da quello voluto.
Non c'� traccia sulla netiquette di formati preferiti o particolari 
preferenze, e non c'� neppure sul manifesto di questo gruppo. Si 
chiamano 'convenzioni', per altro molto poco rispettate. Prima di 
partire col pistolotto, ho *gi�* detto che ho avvertito lo sviluppatore 
del problema, e che mi ha promesso un fix, non certo per la "netiquette 
come penso che sia giuro che domani la leggo", ma perch� l'html in 
questo contesto mi � inutile.
Sulla netiquette pero', � ben presente la parte sul quoting che dice di 
citare solo le parti importanti, cosa che molto evidentemente non stai 
facendo. Io non sono cos� fiscale, ma visto l'atteggiamento direi che � 
interessante fartelo notare.
Considerando che non c'� traccia sulla netiquette e/o sul manifesto del 
fatto che un messaggio multipart non sia accettabile, avrei potuto 
fottermene allegramente e farmi una risata su questa sorta di zelo 
distorto che invoca netiquette e nello stesso tempo si guarda molto 
bene sia dal leggerla che dal rispettarla.
Poi se sono stato plonkato amen, tenter� di vivere nell'umiliazione di 
non essere letto da gente che cita a cazzo per seguire a cazzo la 
netiquette, speriamo di sopravvivere ;)



Secondo me l'algoritmo da seguire in questi casi è
- sistema se possibile dato che magari non ti costa niente ed
  evidentemente ad altri ha dato fastidio
- non fare ulteriori commenti dato che sono OT e "inquinano" il thread
Per il resto sono d'accordissimo sul problema del PHP, conosco
sedicenti grafici che programmano in PHP ma che non hanno neanche la
vaga idea di quello che voglia dire programmare.
E' una tragedia perché questi scrivono codice con i piedi che magari
funzionacchia e al primo "problema" giustamente esplode.
Non è un problema del linguaggio di per se, ma come spesso accade i
simili si attraggono.

   evidentemente ad altri ha dato fastidio
Secondo me, io avevo fatto una battuta (ok, del sarcasmo) e guarda che 
puttanaio!
Un flame nel flame, meraviglia


A me dispiace, ma io più che mandare una mail a chi fa 'sto merdaio,
che è fatto molto bene ma non ha molta concezione di usenet, che serve
ad altro oltre che al p0rn, non so che fare.
Battuta recepita ovviamente.
  ngw

 
Perchï¿œ? Sei forse entro il mezzo metro dai miei confini corporali? ;-)


 preferenze, e non c'è neppure sul manifesto di questo gruppo. Si 
Terzo puntino:
--cite-- da 
http://www.news.nic.it/doc/metamanifesto.html
# È del tutto inopportuno spedire articoli di prova in newsgroup diversi
da it.test.*, articoli in HTML, risposte ad altri con prefisso di
replica "R: " invece che "Re: " (comportamento dovuto ad un noto bug di
un diffuso newsreader), articoli fuori tema (off topic) che palesemente
non riguardano in alcun modo l'argomento del newsgroup, illustrato nel
manifesto dello stesso; è cioè necessario attenersi al tema della
discussione.
--/cite--


 --/cite--
Il metamanifesto. Direi una fonte importante, chi non conosce il
metamanifesto ? :D
Ti sei reso conto che stai postando in un argomento OT in un topic OT
e quotando a cazzo, e che la tua abilità con Google è piuttosto
secondaria sul tema ?
  ngw

 secondaria sul tema ?
Ti sei reso conto che più la rimesti, e più puzza?
Io sì. Adieu.


 Il metamanifesto. Direi una fonte importante
Decisamente sì, visto che questa gerarchia si chiama it.*.

 Non so tutto, è che lo conosco, 
sì e proprio parlando di bastardaggine dentro, una volta (luglio 2006) mi 
hai anche plonkato!
remember?

 remember?
Certo che rimembro.
Ma il plonk non è come il diamante, non è per sempre. ;-)
Ed è frutto di una combinazione tra il comportamento del
plonkato e del livello di stress del plonkante, che può,
ovviamente, variare nel tempo. :-p
In altri momenti non ti avrei plonkato, in altri ancora
non avrei nemmeno aspettato di leggere la prima riga di
un tuo post.
In ogni caso, non c'è mai nulla di personale.


 Io sì. Adieu.
Fan morire 'sta gente che semplicemente non sta bene se non fa
l'uscita ad effetto con tanto di plonk pubblico :D
Ti prego, fa che sia come il diamante, che di bimbiminkia ne ho piene
le palle ;)
E ovviamente, *grazie* per l'apporto importante alla discussione.
  ngw

 la stanza ?
Non ti si chiede tanto. :-) Ma perlomeno, cambiare provvisoriamente
newsreader, e lasciare il vecchio per testare i fix su it.test?
bye G.L.
-- 
"E' assolutamente evidente che l'arte del cinema si ispira
alla vita, mentre la vita si ispira alla TV" - Woody Allen