Newsgroup: it.comp.macintosh
Titolo: Differenze os x Unix

Qualcuno sa dirmi quali sono le incompatibilita' tra os x e le
specifiche unix ?
Grazie
-- 
Ciao
Fabio

 Intendi POSIX 1?
Yes, perche' Osx non puo' usare il nome unix (a parte i 110k dollari) e
quali differenze incontra uno sviluppatore per programmi un user space
(se no le differenze si moltiplicano)
Grazie 1k
-- 
Ciao
Fabio

 perche' Osx non puo' usare il nome unix
"A child of five would understand this. Send someone to fetch a child of
five." (G. Marx)
///
[
http://www.unix.org/what_is_unix.html
]
"The Open Group holds the definition of what a UNIX system is and its
associated trademark in trust for the industry.
In 1994 Novell (who had acquired the UNIX systems business of AT&T/USL)
decided to get out of that business. Rather than sell the business as a
single entity, Novell transferred the rights to the UNIX trademark and
the specification (that subsequently became the Single UNIX
Specification) to The Open Group (at the time X/Open Company).
Subsequently, it sold the source code and the product implementation
(UNIXWARE) to SCO. The Open Group also owns the trademark UNIXWARE,
transferred to them from SCO more recently.
Today, the definition of UNIX (R) takes the form of the worldwide Single
UNIX Specification integrating X/Open Company's XPG4, IEEE's POSIX
Standards and ISO C. Through continual evolution, the Single UNIX
Specification is the defacto and dejure standard definition for the UNIX
system application programming interfaces. As the owner of the UNIX
trademark, The Open Group has separated the UNIX trademark from any
actual code stream itself, thus allowing multiple implementations. Since
the introduction of the Single UNIX Specification, there has been a
single, open, consensus specification that defines the requirements for
a conformant UNIX system.
There is also a mark, or brand, that is used to identify those products
that have been certified as conforming to the Single UNIX Specification,
initially UNIX 93, followed subsequently by UNIX 95, UNIX 98 and now
UNIX 03.
The Open Group is committed to working with the community to further the
development of standards conformant systems by evolving and maintaining
the Single UNIX Specification and participation in other related
standards efforts. Recent examples of this are making the standard
freely available on the web, permitting reuse of the standard in open
source documentation projects , providing test tools ,developing the
POSIX and LSB certification programs.
 From this page you can read about the history of the UNIX system over
the past 30 years or more. You can learn about the Single UNIX
Specification, and read or download online versions of the
specification. You can also get involved in the ongoing development and
maintenance of the Single UNIX Specification, by joining the Austin
Group whose approach to specification development is "write once, adopt
everywhere", The Open Group's Base Working Group or get involved in the
UNIX Certification program."
-- 
"Live Free or Die" - 
http://www.unix.org/

 
[CUT]
Sei fissato con sta cosa! ti ho gia' detto che so l'importanza delle
specifiche e degli standard e penso di non averla mai messa in dubbio!
Quel che voglio capire (la curiosita' mi e' venuta proprio rispondendo
ai tuoi messaggi) e' quanto os x discosti da queste benedette
specifiche.
Sono sicuro che sulle pagine Apple ci fosse un elenco delle differenze
ma ho spulciato un po' senza trovare niente.
Spiega dunque tu ad un bimbo quali sono queste differenze insanabili.
(per altro curiosamente fastweb non mi fa aprire ne 
unix.org
 ne il sito
dell'opengroup)
-- 
Ciao
Fabio

 dell'opengroup)
E' una ragione sufficiente per cambiare ISP...


 E' una ragione sufficiente per cambiare ISP...
E' in effetti ben curioso ...
-- 
Ciao
Fabio

 
Mi scuso se ti son sembrato infervorato ma continui a fare quote su
quote con praticamente la stessa cosa: l'importanza dello standard. Fin
qui ci siamo, ora bisogna capire perche' os x non lo rispetta (o meglio
in cosa non lo rispetta).
Aggiungo anche che per la domanda posta su it.comp.os.unix non mi sembra
cosi' importante un adesione totale agli standard ma come gia' detto su
i.c.o.u se non giungono altre informazioni qui si va sulla speculazione
pura.
-- 
Ciao
Fabio

Sono curioso anche io... in passato ho cercato di reperire informazioni in 
tal proposito ma con scarsi risultati...
Quello che a me preme sapere è se utilizzare osx (terminale e/o X11) è 
equivalente, e fino a che punto, ad installare una distribuzione linux.
Grazie.
Stefano 

 tal proposito ma con scarsi risultati...
Per scavare a colpo sicuro nei meandri di Mac OS X e per
ripercorrere la storia dei sistemi Apple, ti consiglio di
visitare l'obbiettivo e documentato sito "Kernelthread" di
Amit Aingh ed appassionarti alla lettura di "What is Mac OS X?"
(
http://www.kernelthread.com/mac/osx/
) e "A History of Apple's
Operating Systems" (
http://www.kernelthread.com/mac/oshistory/
).
-- 
Guido

 equivalente, e fino a che punto, ad installare una distribuzione linux.
Dipende secondo quale relazione di equivalenza.
Tanto per dirne una, tu consideresti usare NetBSD o Solaris 10
equivalente ad usare GNU/Linux?
Se si, perchè? Se no, perchè?
-- 
[ RiK0                                ]
[ Go away! The internet is full!      ]
[ Non credo negli schemi non vincenti ]

 Se si, perchč? Se no, perchč?
Allora,
faccio una premessa doverosa... nell'ambito di questi argomenti sono un 
principiante, volenteroso ed affamato di sapere ma pur sempre un 
principiante con la P maiuscola... :((
Proprio per questo tendo, credo erroneamente, ad accomunare tutto quanto 
abbia un' origine comune con unix... Solaris, FreeBSD, Linux ecc. ecc.
L'interesse che al momento ho nel sapere se possa o meno esistere una 
condizione di equivalemza tra una distribuzione linux o mac osx č ai livelli 
piů semplici come:
- l'utilizzo dei comandi da terninale per creare utenti,
- l'assegnazione dei permessi,
- la navigazione nel filesystem,
- l'installazione di applicazioni "non aqua",
- la compilazione di semplici applicazioni dai sorgenti,
- la configurazione di server apache, php e mysql con la loro compilazione 
ad hoc dai sorgenti (non mysql),
- l' installazione dei desktop manager sotto X11,
- KDE, GNOME ecc. ecc.
Ammetto di avere le idee molto confuse in proposito, ma qualora tutto questo 
fosse possibile mi potrei risparmiare una doppia installazione osx-linux o 
l'utilizzo di un pc per una installazione linux...
Al momento sono solo delle "indagini" che stň facendo per fare un po' di 
luce dove per me vi č il buio piů totale...
Stefano 

 l'utilizzo di un pc per una installazione linux...
Beh... ma se era solo per questo, si che ti puoi risparmiare il doppio
lavoro.


 schifo. Ragion per cui li evito e basta e sarei di scarso aiuto.
perche' php ti fa schifo? :)

 schifo. Ragion per cui li evito e basta e sarei di scarso aiuto.
Cosa intendi dire??? 

Matteo Cavalleri <shiva....@tiscali.invalid> wrote:

Personalmente odio dover mettere i $ prima delle variabili !
-- 
Ciao
Fabio

 Personalmente odio dover mettere i $ prima delle variabili !
guarda, quando cominciai a imparare un po' di c odiai a morte i punti e 
virgola, poi ci feci l'abitudine. con i $ alla fine e' la stessa cosa ;)

Matteo Cavalleri <shiva....@tiscali.invalid> wrote:

Vero pero' qui hai tutti e' due :-)
In effetti hai ragione solo faccio fatica ad abituarmi
-- 
Ciao
Fabio

 perche' php ti fa schifo? :)
Il discorso si fa abbastanza lungo. Se vuoi lo posso affrontare.
Tanto per dirne una la parte orientata agli oggetti del 4 (tutt'ora la
versione più diffusa) è una presa per il culo. Diciamo che in pratica
non è orientato agli oggetti affatto... ci ha delle cosette che illudono
la gente che lo sia.
Nella versione 5 la faccenda è appena migliorata.
Resta il fatto che in pratica chi (come me) è abbastanza abituato ad
usare a pieno la parte object oriented dei linguaggi (siano essi Python,
C++ o ObjectiveC o cos'altro...) trova PHP molto limitante.
Poi per lo sviluppo di sw di una certa portata (e in team) si può
leggere questo.
http://www.ukuug.org/events/linux2002/papers/html/php/index.html
Non solo... PHP ha troppe funzioni. Nel namespace globale di default ha
più di 3000 funzioni. Se ci mettiamo insieme il fatto che non ha
namespace o simili (mi pare non ci siano nemmeno nel 5.. e comunque
tutti i vecchi moduli non li hanno).
Manca di astrazione. Non solo... la stessa filosofia di sviluppo che
mischia codice e HTML è una pena. Sbagliata nel midollo... grosso modo
come quella di visual basic che disegna bottoni e ci appiccica su del
codice.
PHP è stato molto spinto. Ma questo non lo rende un buon linguaggio.


 Cosa intendi dire??? 
Che siccome non uso (e farei di tutto per non usare) ne PHP ne MySQL.
MySQL è un aggeggio mediocre, gli mancano un sacco di cose utili. Qui
Postgre x ever.
PHP è a dir poco penoso. Piuttosto perfino il Perl. Chiaramente potendo
(e posso) Python su tutta la linea.


 PHP è stato molto spinto. Ma questo non lo rende un buon linguaggio.
ho avuto modo di leggere da piu' parti che quello che conta non e' 
quanto sia "buono" un linguaggio, conta quanto sia utile per raggiungere 
nel migliore dei modi il tuo obiettivo :)

 mac osx
Mac OS X v10.3 Panther: N/A
Mac OS X v10.4 Tiger:
[
http://www.apple.com/science/tiger.html
]
"With improvements to the FreeBSD underpinnings of Mac OS X, you’ll find
it even easier to port applications from other UNIX variants to Tiger.
And as you’d expect, Mac OS X still has all the command line
applications and utilities you’d want in a robust UNIX operating system.
With updated versions, new libraries and even stronger POSIX compliance,
Tiger will make you feel right at home."
-- 
The UNIX System - Questions and Answers:
http://www.unix.org/questions_answers.html

 nel migliore dei modi il tuo obiettivo :)
Questa è la giustificazione che tirano in ballo quelli che sono
costretti ad usare un linguaggio pessimo (e sono tanti).
Il fatto è che un linguaggio espressivo ti aiuta molto a fare prima e
commettere meno errori. 
Chiaro che poi devi mettere su una buona libreria standard... ma se
sotto hai un linguaggio povero, alla fine finirà che senza nemmeno
volerlo progetterai software scarso (in generale la maggior parte dei
progetti in PHP che ho visto sono quasi nemmeno progettati, buttati su a
caso, più o meno).
Scrivere software poco flessibile, rigido, con molte interdipendenze e
compagnia, mi interessa poco.
Non voglio avere difficoltà aggiunta nello sviluppo solo per avere
scelto un ambiente scadente.
Posto che quelli buoni (Python) e decenti (Perl -- ma qui qualcuno
potrebbe volere invertire i nomi) esistono, non vedo proprio perchè
insistere con quelli pessimi (PHP, Java).


 Java
[
http://www.sun.com/java/everywhere/
]
"Java software powers the onboard computers in toys, cars, planes,
rockets, and even the NASA Mars Rover. It brings interactivity to the
Internet, real-time graphics to television, instant imaging to cameras,
and multi-player games to mobile phones. It connects the largest
enterprises and smallest businesses to their employees, customers, and
data. And it secures the vast majority of electronic transactions in
retail, finance, government, science, and medicine. In short, Java
technology goes everywhere you go."


 technology goes everywhere you go."
Azz ma sei un quote costante tu ...
Tra l'altro sempre dagli stessi 2 siti.
PS
Ti sconsiglio di buttarti in una difesa di Java con Enrico diciamo che
la cosa si fa lunga :-)
-- 
Ciao
Fabio

 [
http://www.sun.com/java/everywhere/
]
Sapevo che avresti (come al solito) citato qualche articolo in giro per
la rete. 
Il fatto che Sun sostenga Java essere un buon linguaggio (visto che lo
ha creato) non implica effettivamente che lo sia. Peraltro la parte che
tu hai citato parla della *piattaforma* java, non del linguaggio Java.
Se vuoi sostenere con le tue proprie parole una discussione sul perchè
Java sia un buon linguaggio ( e insisto, la piattaforma Java non rientra
in gioco, visto che per esempio puoi scrivere usando il linguaggio
Python sopra la piattaforma Java... esattamente come per .net puoi usare
Python, C++, C#, Basic etc) io sono qui. 
Se devi continuare  a postare link (peraltro abbastanza fuori dal
discorso dibattuto, insisto linguaggi e piattaforme non sono la stessa
cosa) perdonami ma non mi interessa. Conosco la rete e so cosa sostiene
Java.
Tutto questo è abbastanza di scarso interesse. Se avessi programmato in
Java e (per dire) in Python ti renderesti conto che il linguaggio Java
(e anche la libreria) ha un bel po' di errori di fondo.


 la cosa si fa lunga :-)
Tranquillo... il sito di sun è ben fornito di link. Mi stanco prima io.
:))


 [...]
Se tu avessi solo una minima idea di cosa effettivamente siano i
linguaggi di programmazione in generale, potrebbe essere interessante
farti qualche domanda, ma dato che le cose stanno diversamente...
-- 
"You the guy who wrote the Java spec?"
"I co-wrote it, yeah." - (G. Steele)
http://www.sun.com/presents/minds/2005-0302/

 (e anche la libreria) ha un bel po' di errori di fondo.
Personalmente due cose mi piacciono quando lavoro in Java, la prima e'
la tipizzazione esplicitata dal programmatore, lo so molti percepiscono
la cosa come una forzatura (come io percepisco i $ del PHP) pero' per un
fanciullo confusionario e sbadato come me e' molto comodo che il
compilatore possa fare un po' di controlli in piu'.
L'altra (e non centra ne con la piattaforma ne con il linguaggio) e'
l'abbondanza di ottimi IDE. Eclipse e JBuilder (per quanto il mio G4 si
surriscaldi solo a sentire il loro nome in qunato veri e propri mattoni)
sono veramente ottimi.
Poi se la libreria ha dei difetti concettuali io non me ne sono mai
accorto, probabilmente ci ho lavorato troppo superficialmente. Pero' per
l'uso che ne ho fatto io mi sembrava parecchio completa e anche
intuitiva, salvo qualche accrocchio di compatibilita' con il passato.
PS 
mi sa che si va verso l'OT spinto e per giunta gia' perpetrato :-)
-- 
Ciao
Fabio

 :))
ROTFL
-- 
Ciao
Fabio

 sono veramente ottimi.
Ecco. Su questo non c'è nulla da dire. È vero. Verissimo.
Eric3 è il miglior IDE libero per Python... ma IMHO non tiene il passo
con Eclipse (anche se per onor del vero si può usare Eclipse -- non so
però quanto buono sia in questo campo -- anche con Python).
Per il C++ pure ci sono bellissimi IDE (commerciali, che io sappia).
Per ObjectiveC... beh... direi di no. C'è solo Xcode... che è comodo, è
veloce, ma manca di certe cose che altri IDE hanno (il famoso
refactoring, per dire).


 costretti ad usare un linguaggio pessimo (e sono tanti).
questo mi sembra un pregiudizio bello e buono. non ho fatto neanche 
mezzo nome e sei gia' sicuro di sapere tutto su queste persone?

 mezzo nome e sei gia' sicuro di sapere tutto su queste persone?
Concordo con entrambi un buon linguaggio e' sicuramente meglio di uno
con delle lacune o delle incoerenze, ma e' altrettanto vero che un
linguaggio per quanto ottimo non e' la scelta migliore in ogni
situazione. Ognuno ha le sue particolarita' che lo rendono piu' adatto
di un altro ad uno specifico compito
-- 
Ciao
Fabio

 refactoring, per dire).
Verra' introdotto nella versione in bundle con tiger se non sbaglio.
Oltre alla figosissima cosa di fare i diagrammi UML direttamente
nell'IDE.
-- 
Ciao
Fabio

 O sbaglio io?
Con JSP ci ho giocato poco ma mi riprometto di guardarlo meglio in
futuro, Ad ogni modo ti permette cose un pochetto piu' fighe. Per
esempio potresti crearti una libreria di tag custom e avere una pagina
che e' puro html con in piu' i tuoi tag custom (in tutto e per tutto
simili ai tag html) e poi delle servlet che danno un significato ai tuoi
tag. Non e' cosa da poco dato che hai una totale divisione tra logica e
presentazione e puoi far creare le pagine anche a chi di programmazione
non sa niente.
 
-- 
Ciao
Fabio

 "perfino"? Porta rispetto, ofide! :-P
grr :)
"Perfino" dal mio punto di vista. :) 
Poi fra i due (PHP e Perl) non ho dubbi. Perl su tutta la linea.


 "templating",
È il contrario... in pratica hai una pagina che ti dice come è la
struttura del documento generato (xml, html) e solo dei segnaposto
(implementate altrove dai programmatori) che riempiono.
Oppure si può usare il metodo standard dei CGI. Fare tutto via programma
(eventualmente ancora una volta caricando un template scritto da un
grafico e poi riempiendolo con i dati generati/estratti via codice).
Capisco di non essere stato tanto chiaro... vuoi che faccia degli esempi
pratici? Solo che se sono cose piccole si fa fatica a vedere il
vantaggio, se sono cose grosse non è proprio roba per buttare giù un
esempietto su un ng... quindi non saprei ben cosa postare.


 Ma che e' sto "namespace"? :)
Ti faccio un esempio in C++.
namespace XMLParser{
    void read();
}
namespace PictureFile{
    void read;
}
PictureFile::read()
XMLParser::read()
Le due funzioni pur avendo lo stesso nome non entrano minimamente in
conflitto. Posso anche chiaramente istruire il compilatore che quando
scrivo read e basta ne intendo una delle due.
Per esempio
using XMLParse::read;
In questo modo sviluppatori di moduli diversi possono essere
indipendenti e non entrare in conflitto.
Per esempio io posso creare una mia classe list (fatta come va a me) che
non entra in contrasto con la lista standard.
Ci sarà std::list riko::list e magari che so io.... bigcompany::list
Nessuna delle tre interferisce.
In Python la stessa cosa è automatica. Ogni modulo ha il suo
"namespace". 
Per esempio se io faccio il mio 
xmlparser.py
e dentro ci definisco read, questa al di fuori del modulo sarà
xmlparser.read
e non entra in conflitto con niente altro.
È una notevole comodità.


 standard. 
Niente di più lontano dal vero.
Ci sono un sacco di cose per usare Python e http.
Intanto si può usare con i CGI. Non il massimo, ma comodo.
Poi ci sono Python Server Pages (come approccio simile a PHP e ASP) e
Webware. Spyce.
Cheetah.
mod_python.
Proprio povera non la vedo la faccenda.


 scalabilita', ma anche qui, per sentito dire eh...
Si anche io come ti ho detto non ho grosse esperienze ma per quel che ci
ho fatto mi e' sembrato molto piu' organizzato e ben progettato.
-- 
Ciao
Fabio

 Proprio povera non la vedo la faccenda.
Mod_python a parte e' molto difficile trovare un hosting che ti supporti
queste features (e anche lui non lo trovi sempre).
le PSP sono state piu' un idea che altro visto che sembra che nessuno le
utilizzi.
Insomma qualche tecnologia c'e' e c'era pero' come diffusione andiamo
male. Invece (IMHO) con e' con l'avvento di twisted che ho visto molta
piu' convinzione nell'uso di Python come scripting web.
-- 
Ciao
Fabio

 
[CUT]
in php invece non essendoci dei namespace tutti i nomi sono sempre
occupati in qualsiasi momento. Come puoi immaginare con la miriade di
funzioni ed estensioni e' un bel casotto.
Se poi hai l'abitudine di usare nomi inglesi per le variabili e le tue
funzioni ne vedrai delle belle.
-- 
Ciao
Fabio

 piu' convinzione nell'uso di Python come scripting web.
No... aspetta... In primo luogo non è certo Twisted a spingere Python
come scripting Web. Gran parte di Twisted è relativo alla scrittura di
applicazioni di rete. 
Fai conto che Nevow è troppo immaturo per essere il motore pulsante di
questa rivoluzione. Funzionare funziona... ma non è che gente prima non
interessata si interessa perchè trovano un'ottima tecnologia (ma senza
documentazione).
Il fatto che non ci sia hosting python presso i provider low cost non è
un indice. Al momento Python è usato soprattutto da professionisti e per
fare cose cazzute. Gli hosting python ci sono, ma sono tutti di
altissima qualità (e prezzo in proporzione), oppure società che hanno le
loro macchine.
Comunque in tutto questo non abbiamo considerato Zope... 


 consigliano di leggerti il codice sorgente per capire ...
Insisto.. solo Twisted e Nevow mancano di documentazione. Più il secondo
del primo, poi. Twisted ha un manualetto/tutorial e poi c'è tutta la
documentazione automatica Python. 
Piuttosto è che all'inizio uno può trovarsi spiazzato a capire la sua
logica di utilizzo. È in qualche modo più facile da capire se uno ha
esperienza di programmazione di GUI, per assurdo.
Comunuqe Nevow e Twisted sono argomenti abbastanza avanzati (ed
enormemente potenti).


 pessima abitudine, essendo bilingue :-)
Nel senso che chiami le funzioni in inglese e le variabili in italiano?
:))
[ le classi in francese? ]


 enormemente potenti).
Vero
-- 
Ciao
Fabio

 leggiPrimoValoreValido() o readFirstValidValue() vanno bene entrambi :)
Questa e' la scuola Cocoa dei nomi lunghissimi (ma almeno chiari) 
:-)
in c avresti probabilmente 
lpvv() rfvv()
:-)
-- 
Ciao
Fabio

 Comunque in tutto questo non abbiamo considerato Zope... 
stavo per dirlo io me ne ero dimenticato ed in effetti non e' una
dimenticanza da poco.
-- 
Ciao
Fabio

 lpvv() rfvv()
No... solo nella libreria standard usano ste cose. In giro se no si
vedono i famosi
gtk_window_new e simili...
(c'è anche una ragione per cui in gran parte ho mollato il C, anche se
su di me ha sempre il suo fascino di purezza e semplicità).


 sito wiki ? non c'e' proprio paragone.
Pensa che una delle principali critiche a PHP č che quando uno comincia
ad usare moduli esterni la documentazione tende a diventare abbastanza
rara.
E per la roba di libreria anche Python č pieno zeppo di documentazione.
Fai conto che la maggior parte dei progetti Python si avvicinano
abbastanza al cosidetto Literate Programming.


 jollino).
Non so come si realizzi la cosa in PHP ma penso che piu' o meno tutte le
tecnologie in questo settore stiano covergendo verso questa idea.
 
-- 
Ciao
Fabio


-- 
Ciao
Fabio

 su di me ha sempre il suo fascino di purezza e semplicità).
Siamo in due a subirne il fascino :-)
-- 
Ciao
Fabio

 Per bene che vada sara` allo stesso livello.
Penso anzi che queste due che tu hai nominato siano molto piu' avanti.
Come gia' detto il bello di questa libreria era la semplicita'.
Poi xerces se non sbaglio e' fatta in C++ (anche almeno) e quindi con
SWIG dovrebbe essere possibile usarla direttamente in Python :-)
-- 
Ciao
Fabio

 poverino. 
Anzi. Per fare cose piccole PHP puň anche essere abbastanza comodo.
Voglio dire... finchč si sta "sul piccolo" non ci sono grossi problemi,
anzi, forse puň essere anche piů comodo di molte soluzioni "migliori".
Addirittura il fatto di mischiare codice e logica in questo contesto č
quasi un vantaggio.


 OT.
Ok... capito quello che vuoi. Fra i vari sistemi per fare tale cosa, ti
faccio un semplice CGI... per funzionare deve stare nella cartella
cgi-bin del server web (per MacOS X sarebbe
/Library/WebServer/CGI-Executables).
Allora... ci sto lavorando su al file... lo posto appena lo ho finito,
assieme ad abbondanti spiegazioni.
Stasera esco :))


 Siamo in due a subirne il fascino :-)
In più di due... visto che a seconda delle statistiche si contende con
Java il posto di linguaggio di programmazione più usato.. :))


 SWIG dovrebbe essere possibile usarla direttamente in Python :-)
http://sourceforge.net/projects/pirxx/
Interfaccia Python a xerces e xalan, integrata in modo trasparente in
PyXML


 quasi un vantaggio.
Secondo me no.  "Piccoli siti crescono", e l'architettura marcia si paga
prima di quanto tu non pensi.
Alex

 Non ti sentire obbligato...
Alla fine sta venendo su praticamente un tutorial. 
Ho fatto una versione base dello script con varie spiegazioni. Poi ho
mostrato una possibile evoluzione e adesso appena mi viene in mente
qualcosa d'altro faccio una terza versione.
Database li sto lasciando perdere perchè diventa solo più complicato da
provare. Nel senso che devi allestire il database e compagnia bella.


 Non ti sentire obbligato...
Ho deciso di fare l'esempio con mod_python, non con i CGI Python.
Con l'handler Publisher è bellissimo (btw puoi anche accedere agli
interni di Apache).
Per farlo girare ci vuole modpython funzionante e il file .htaccess (o
opportuna configurazione del file centrale di apache) nella cartella in
cui metti i tre files sottostanti.
Io ho testato il tutto su Debian GNU/Linux.
Ci vogliono i moduli esterni mod_python e cheetah per il templating.
In pratica è un normalissimo guestbook (anzi un po' povero, non volevo
usare troppi files e soprattutto un file di configurazione) che quando
qualcuno si registra manda un email all'autore.
Devi settare in modo opportuno le preferenze (sono in cima al file).
preference_directory è una cartella dove apache può leggere e scrivere.
Per provare va bene /tmp
Poi ti fa scegliere se vuoi mandare le mail in html o in testo semplice.
administrator_mail è l'indirizzo su cui ricevi la posta, bot_mail quello
del "bot" che la invia. 
Le opzioni che iniziano per smtp_ servono per dire che server usare per
l'invio (eventualmente lo stesso server di admin).
In pratica mettiamo che tu metti il tutto nella tua home (il file .py
deve essere eseguibile). La cartella deve avere il permesso di
ridefinire FileInfo e deve contenere il file .htaccess fatto come il
seguente:
AddHandler python-program .py
PythonHandler mod_python.publisher
PythonDebug On
Chiamando
http://localhost/~sap/guestbook/show
apri la pagina.
Ovvio che così i vantaggi non si vedono ancora... però quando il
progetto cresce. Per esempio i grafici quasi non si trovano davanti
nemmeno il codice (osserva il template).
Codice: guestbook.py
#!/usr/bin/python
import os, sys, time
from Cheetah.Template import Template
preference_directory = '/tmp' 
wants_html_mail = False
administrator_mail = ''
bot_mail = ''
smtp_server = ''
smtp_needs_authentication = False
smtp_username = ''
smtp_password = ''
html_message = '''
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>
        <title></title>
    </head>
    <body>
        <p>
            L'utente %s si &eacute; iscritto al tuo GuestBook!<br>
            <br>
            Questo messaggio &eacute; stato creato automaticamente, non
replicare.<br>
        </p>
        <hr>
        <p>
            <a href="
http://www.python.org/
">
            <img src="
http://www.python.org/pics/PythonPoweredAnim.gif
"
alt="[Python Powered]">
            </a> 
            <img
src="
http://members.rol.ch/hilber.martin/me/macspin.gif
" alt="[Made with
a Mac]">
        </p>
    </body>
</html>
'''
text_message = '''L'utente %s si e' iscritto al tuo GuestBook!
 
Questo messaggio e' stato creato automaticamente, non replicare.
----
Python Powered
Made with a Mac
'''
class _CantSaveGuests: pass
class _GuestList(list):
    def __init__(self, dirname):
        self.filename = os.path.join(dirname, '.guests')
        self.load()
    def load(self):
        try:
            fh= open(self.filename, 'r')
            self.extend([line for line in fh.read().split('\n') \
                if line.strip() !=''])
            fh.close()
        except IOError:
            _log("Non trovo il file degli utenti")
            names = []
    def dump(self):
        try:
            fh= open(self.filename, 'w')        
            for item in self:
                if item != '': print >>fh, item.strip()
            fh.close()
        except IOError:
            raise _CantSaveGuests
def _log(string):
    print >>sys.stderr, time.strftime("[%H:%M] - [%d/%m/%y]"), string
def _send_message(msg):
    import smtplib
    try:
        s = smtplib.SMTP(smtp_server)
        if smtp_needs_authentication:
            s.login(smtp_user, smtp_password)
        s.sendmail(bot_mail, administrator_mail, msg )
        s.quit()
    except:
        _log("Could not send mail, invalid smtp server")
def _confirmation_mail(username):
    from email.Message import Message
    tx = text_message % username
    mail = Message()
    mail.add_header("From", bot_mail)
    mail.add_header("To", administrator_mail)
    mail.add_header("Subject", "Un nuovo utente si e' registrato")
    mail.set_payload(tx)
    _send_message( mail.as_string() )
def _html_confirmation_mail(username):
    import MimeWriter, mimetools
    import cStringIO
 
    txt = text_message % username
    html = html_message % username
    out = cStringIO.StringIO()
    mail = MimeWriter.MimeWriter(out)
 
    mail.addheader("From", bot_mail)
    mail.addheader("Subject", "Un nuovo utente si e' registrato")
    mail.addheader("MIME-Version", "1.0")
    mail.startmultipartbody("alternative")
    mail.flushheaders( )
    subpart = mail.nextpart( )
    pout = subpart.startbody("text/plain", [("charset", 'iso-8859-1')])
    pout.write(txt)
    subpart = mail.nextpart( )
    subpart.addheader("Content-Transfer-Encoding", "quotedprintable")
    pout = subpart.startbody("text/html", [("charset", 'usascii')])
    pout.write(html)
    mail.lastpart( )
    msg = out.getvalue( )
    out.close( )
    _send_message(msg)
def show(req):
    l_curdir = os.path.dirname(req.filename)
    l_template_file = os.path.join(l_curdir, 'guest.tmpl')
    try:
        gl = 
req.gl
    except AttributeError:
        gl = _GuestList(preference_directory)
    t = Template(file=l_template_file)
    t.action = 'sign'
    t.css = '../guest.css'
    t.guests = gl
    try:
        t.error_message = req.error_message
    except AttributeError:
        t.error_message=''
    return str(t)
def sign(req, name='', surname=''):
    name = name.strip()
    surname = surname.strip()
    if len(name) > 0 and len(surname) > 0:
        full_name = '%s %s' % (name, surname)
        gl = _GuestList(preference_directory)
 
req.gl
 = gl
        if full_name not in gl:
            if wants_html_mail:
                _html_confirmation_mail(full_name)
            else:
                _confirmation_mail(full_name)
            gl.append(full_name) 
            try: gl.dump()
            except _CantSaveGuests: _log('Non posso salvare il file
degli utenti')
    else:
        req.error_message = 'Manca il nome o il cognome'
    return show(req)
template html : guest.tmpl
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
">
<html>
<head>
    <link rel="stylesheet" href="$css" type="text/css"  media="screen"
/>
<title>Simple Guest Book</title>
</head>
<body>
<h1>Python Guest Book</h1>
<hr />
<ul>
#for $guest in $guests
    <li>$guest</li>
#end for
</ul>
<div class="error">$error_message</div>
<form action="$action" method="get">
<fieldset>
<table>
<tr><td>
Nome:</td><td> <input type="text" id="name" name="name" /></td>
</tr>
<tr><td>
Cognome:</td><td> <input type="text" id="surname" name="surname" /></td>
</tr>
<tr><td>
<button type="submit" id="send" name="send">Send</button>
<button type="reset" id="reset" name="reset">Reset</button>
</td></tr>
</table>
<input type="hidden" id="visited" name="visited" value="true" />
</fieldset>
</form>
<hr />
    <div id="bottom"><a
href="
http://validator.w3.org/check?uri=referer
">
    <img src="
http://www.w3.org/Icons/valid-xhtml10
" alt="Valid XHTML
1.0!" height="31" width="88"/>
    </a> 
 
        <a href="
http://www.python.org/
">
    <img src="
http://www.python.org/pics/PythonPoweredAnim.gif
"
alt="[Python Powered]" />
    </a>
 
    <a href="
http://jigsaw.w3.org/css-validator/
">
    <img style="border:0;width:88px;height:31px"
src="
http://jigsaw.w3.org/css-validator/images/vcss
" alt="Valid CSS!"
/>
    </a>
 
    </div>
</body>
</html>
file css: guest.css
body
{
        background: black;
        color: silver;
        line-height: 220%;
        text-transform: inherit;
}
h1
{
        text-align: center;
        text-transform: inherit;
}
fieldset
{
        border-color: #666;
        border-width: 1px;
        color: inherit;
        background: #333;
}
ul
{
        list-style-type: none;
}
.error { color: #FF0000; }
#bottom
{
        text-align: center;
        text-transform: inherit;
        vertical-align: middle;


 Python, C++, C#, Basic etc) io sono qui. 
Ciao, la mia domanda centra poco.
Sto cominciando a vedere .Net, come faccio ad
usare Python con .Net.
E' supportato solo da Mono o esiste anche qualcosa da attaccare
all'ide di visual studio.
(Ebbene si! per lavoro uso Windows+Visualstudio)

The_arpist <giancarlo...@NOSPAMprismainfo.it> wrote:

Per usare Python e Net devi usare ironPython 
http://www.ironpython.com/
C'e' anche qualche plugin per far digerire python a visualstudio ma non
so aiutarti, magari prova a guardare su 
activestate.com
-- 
Ciao
Fabio

 Ho trovato il sorgente, devo ricompilare o sai se c'e' un binario...?
Non saprei... io non lo avevo cercato perche` ho messo su il python 2.4
Comunque compilarlo e` abbastanza standard (fai quello dinamico, sul
sito di mod_python ci sono tutte le istruzioni).
Se pero` ti trovi sotto mano una distro linux (deb o ubuntu, per dire)
fai prima :))
