Belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 1 Eleganza, potenza, semplicità. Data: 28 ottobre 2006 Relatore:Massimo Masson BLUG.

Slides:



Advertisements
Presentazioni simili
ARI sezione di Parma Sito ariparma ARI sezione di Parma.
Advertisements

Ambiente Java.
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
WebProfessional Web Content Management System
Each student will be able to ask an adult or stranger: What do you like to do? and What dont you like to …?
Sta andando meglio? oppure ti senti uguale? Is it getting better? Or do you feel the same?
Distributed Object Computing
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Future Astronomical Software Environment
INTRODUZIONE AD OMNET++
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
C# LE BASI 2007 Prima lezione - Introduzione.
Applicazioni mobile Better Software 2009 Massimiliano Zani Sms Italia.
UNIVERSITA’ POLITECNICA DELLE MARCHE
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Sistemi Informativi sul Web
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
OpenProj: una valida alternativa a MS Project
Microsoft Confidential Gabriele Castellani Developer & Platform Evangelism Microsoft.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Lecce, 05 Maggio 2009 Links Management and Technology S.p.A. Portale Unisalento Corso di Formazione Lecce, 05 Maggio 2009.
Panoramica su Koozali SME Server Distribuzione Linux open source, stabile, sicura e versatile rivolta alle Piccole e Medie imprese (Novembrer 2015 v1.2)
Da dove iniziare a sviluppare Ovvero, un'infarinatura su: Componenti principali Strumenti di sviluppo Esempio pratico e pacchettizzazione A cura di: Luigi.
Eclipse il framework definitivo? Relatore: Ruggero Maffei.
KDE4: tutte le novità Flavio Castelli 25 Ottobre 2008 BgLUG Bergamo Linux User Group.
JUG – Ancona Italy AJAX Giovanni Baleani Developer IBS srl.
Università degli Studi di Perugia, LS in Informatica Seminario per il corso di Sicurezza Informatica (Prof. S. Bistarelli) Valentina Franzoni I nuovi paradigmi.
Eclipse un editor per Java ma anche di più di questo Angelo Gargantini.
Incontri tematici su GNU/Linux ed il Software Libero - programmazione per la scuola secondaria - ● Introduzione ● Perché la programmazione? ● Strumenti.
POLITECNICO DI MILANO FACOLTA’ DI INGEGNERIA SEDE DI CREMONA TESI DI DIPLOMA IN INGEGNERIA INFORMATICA RELATOREAUTORI Prof. Vittorio TrecordiDemicheli.
Introduzione a GNU/Linux. GNU/Linux Caratteristiche Compatibile con UNIX ® Multitasking Multiutente Libero.
Facile da usare Un'interfaccia amministrativa completamente rinnovata, iniziare con Drupal è più facile!
PNSD - Modulo D1A marzo 2017 Piattaforme di e-­learning e cloud:​ installazione e gestione (azione #22) Prof. Rocca Marcello
Corso per Webmaster base
Introduzione alla programmazione MIDI
Università degli Studi di Modena e Reggio Emilia
Sistemi Informativi Territoriali (GIS) e Software libero
Compilazione del kernel Linux
Gestione delle fasi del tirocinio attraverso un’ App Android e interfaccia Web e relativa gestione documentale della tesi Università degli Studi di Napoli.
Cos'è Ubuntu? Sistema operativo basato su Linux per desktop, portatili e server Completamente Free e OpenSource Supporta ufficialmente: iX86 e AMD_64.
Java: concetti e costrutti base
Corso di Laurea in Ingegneria Informatica
Breve report su corso RedHat Enterprise Virtualization (RH318)
Programmazione per la Musica | Adriano Baratè
WPC034 - Visual Studio Code: sviluppare su Linux, Mac OS e Windows
Project Mono Paolo Bernardi.
Analysis framework of distributed thread and malware data-sources
Studente/i Relatore Correlatore Committente Aris Piatti
filosofia del software libero ed open source
Configurare e gestire un server di posta
Condivisione Documentazione Tecnica
Sviluppo di server web e sistema di caching per contenuti dinamici
Sviluppo web con stumenti Open
filosofia del software libero ed open source
Creare un server casalingo - 2
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
Un’intervista con Eros Ramazzotti
Classe III A A.s – 2012 Programma di Informatica
Progetto di Tecnologie Web 2014/2015 THERMOWEB
Introduzione alla materia sistemi
Corso di Laurea in Ingegneria Informatica
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
© 2007 SEI-Società Editrice Internazionale, Apogeo
The Prayer Andrea Céline Bocelli Dion.
UNIVERSITÀ DI MODENA E REGGIO EMILIA
Liceo Scientifico «P.S.Mancini» Avellino
Corso Java – Intoduzione
Transcript della presentazione:

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 1 Eleganza, potenza, semplicità. Data: 28 ottobre 2006 Relatore:Massimo Masson BLUG – Belluno Linux User Group A spasso con Python 2006

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 2 The flying circus Ovvero: non-indice della presentazione ● Non è un corso di Python – non c'è il tempo... ● Non è un elenco esaustivo di features – non avrebbe significato... ● Non è un approfondimento di un tema specifico – non interesserebbe a nessuno in questa sede... ● Ma allora, cos'è? – Una chiacchierata “a ruota libera”, con la speranza di suscitare interesse e destare curiosità...

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 3 And now for something completly different... ● Software libero ● Multipiattaforma – Linux, *BSD, Windows, Macintosh,... ● Elegante – Leggibile – Mantenibile ● Potente, scalabile, modulare ● Semplice ● Programmazione procedurale, OOP, funzionale ● “Batterie incluse” ● Non ha nulla a che fare con i rettili (Monty Python's Flying Circus)

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 4 Ministry of silly walks... Ovvero: molti modi di trarre vantaggi da Python ● Alcune note distribuzioni GNU/Linux approfittano di Python... ● UBUNTU – Ubuntu prefer the community to contribute work in Python. We develop our own tools and scripts in Python and it's much easier for us to integrate your work if you use the same platform. Here are some Python-related projects that are up for bounties; – Python scripting everywhere: Python is a great glue language. Ubuntu is open to requests for funding work that needs to be done to make Python the most widespread common scripting language on the net. Please contact us with your ideas and proposals. Bounties will be offered on Python scripting interfaces for the following tools. ● GENTOO – Portage, il cuore di Gentoo Linux, un sistema avanzato di gestione dei pacchetti che richiama il sistema dei ports in stile *BSD

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 5 Nobody expects... ● L'indentazione fa parte della sintassi – Migliora la leggibilità del codice – Rende il codice omogeneo tra gli sviluppatori ● Tutto è “oggetto” (nota sulle new-style classes...) – Ad esempio, le funzioni sono oggetti. Non hanno “tipo” di ritorno, ritornano oggetti (che hanno implicitamente un tipo) ● Moduli e Packages (collezioni di moduli) ● Gestione eccezioni (try/except/finally - raise) ● Ottimo per lo sviluppo rapido di applicazioni e per prototipi ● Ottima integrazione con C/C++ (e Java con Jython)

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 6 Principali “tipi di dato” ● Numeri (interi, long in precisione arbitraria, complessi) ● Stringhe (escape, multilinea, unicode,...) ● Liste e tuple: ['a', 'b', 3] (1, 2, 'c') ● Dizionari (hash, array associativi) e insiemi {'a': 1, 'b': 2} ● Classi ● In verità le variabili sono dei riferimenti ad oggetti. Vanno inizializzate ma non hanno proprio “tipo” in quanto dipende dall'oggetto cui si riferiscono. La tipizzazione è: – dinamica: il tipo è scoperto in esecuzione; – forte: i tipi sono imposti (no conversioni automatiche di tipo)

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 7 Qualcosa di Python: list comprehension [map-expr for element in src-list if felter-expr] ● Esempi tratti da “dive into python”: >>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"] >>> [elem for elem in li if len(elem) > 1] ['mpilgrim', 'foo'] >>> [elem for elem in li if elem != "b"] ['a', 'mpilgrim', 'foo', 'c', 'd', 'd'] ● Connessione a dbms... params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 8 Qualcosa di Python: duck typing... ● “If it looks like a duck and quacks like a duck, it must be a duck.” (se assomiglia ad un papero, e stanrazza come un papero, dev'essere un papero...) ● Stile di programmazione basato sulla determinazione del tipo di un oggetto tramite ispezione dinamica dei suoi metodi ed attributi piuttosto che sulle relazioni predefinite tra tipi. – Interfacce – Sostituzioni polimorfiche ● EAFP: Easier to Ask Forgiveness than Permission (è più facile scusarsi che chiedere permesso) ● Esempio “standard”: classi file like – Implementazione di metodi che l'oggetto è in grado di gestire; – Utilizzo dell'introspezione per determinare se/cosa un oggetto può fare. hasattr()

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 9 Alcuni esempi di Software... ● BitTorrent, l'originale ed alcuni derivati ● Blender, modellatore 3D open source ● Chandler, personal information manager con calendario, , compiti, note ● Civilization IV, videogioco ● Django, framework per il web stile "MTV" (model, template, view) ● EVE Online, gioco di ruolo fantascientifico on line ● Indian Ocean Tsunami Detector, software per prevenzione tsunami via telefono ● Mailman, un popolare pacchetto per gestire le mailing list ● MoinMoin, un motore "wiki" ● OpenRPG, tavolo virtuale per giochi di ruolo su internet ● Plone, Content Management System basato su Zope ● Trac, bug/issue tracking database, integrato con MoinMoin e Subversion ● TurboGears, framework applicativo composto da Cherrypy, SQLObject, MochiKit, Kid ● ViewVC, interfaccia basata su web per consultare repository CVS ● Zope, piattaforma per applicazioni web ●... molto altro...

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 10 Alcuni noti packages... ● Matplotlib, funzioni matematiche e grafici stile MATLAB ● Numeric Python: supporto a vettori e matrici multidimensionali ● SciPy, libreria di funzioni scientifiche e numeriche ● Biopython, biologia molecolare ● PyOpenGL, gestione 3d (OpenGL) con Python ● Soya 3D, motore per giochi 3D ● Pygame, per sviluppare giochi ● PIL (Python Imaging Library), gestione immagini in vari formati ● PyGTK, libreria GUI basata su GTK+ multipiattaforma (rif. anche librerie GNOME) ● PyQt, libreria GUI multipiattaforma basata su Qt (rif. anche librerire KDE) ● wxPython, libreria GUI multipiattaforma, potente e popolare, basata su wxWidgets ● py2exe, compilatore per generare applicazioni autonome sotto Windows ● CherryPy, Django, Quixote, Topsite Templating System: web application frameworks ● TurboGears, web framework che combina CherryPy, SQLObject, Kid ● ZODB, database object-oriented specifico per Python, fornito di default con Zope ● Cheetah, generazione di codice da template ● mod_python, modulo per il web server Apache ● Twisted, networking framework ●...molto altro...

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 11 Principali implementazioni ● Python: implementazione di riferimento, nota anche come CPython ● Jython: Python codificato in Java ● IronPython: Python per le piattaforme Mono e.NET ● Stackless Python: sperimentale, non usa lo stack C ● Psyco: JIT (Just In Time) compiler per CPython ● PyPy: Python scritto in Python ● Parrot: Macchina virtuale sviluppata come "runtime" per perl 6, dovrebbe supportare anche altri linguaggi dinamici come Python, Ruby, Tcl, etc. Attualmente esegue un sottoinsieme di codice Python ● Movable Python: distribuzuine alternativa per Windows, può funzionare da una penna USB fornendo un ambiente di programmazione portabile

belluno.linux.it Belluno, 28/10/2006Relatore: Massimo Masson Pagina 12 Domande? Don't Panic! The Ultimate answer to Life, the Universe, and Everything is... (Your're not going to like it...) Is (Deep Thougt) The Ultimate answer to Life, the Universe, and Everything is... (Your're not going to like it...) Is (Deep Thougt) Douglas Adams The Hitchhiker's Guide to the Galaxy Douglas Adams The Hitchhiker's Guide to the Galaxy