Processing math: 100%

sabato 24 novembre 2012

Un meta esercizio: descrivere il modello ER tramite uno schema ER

Il modello ER mette a disposizione dei costrutti logici con cui rappresentare una realtà d'interesse. Per procedere alla descrizione del modello ER è necessario innanzitutto determinare quali sono questi costrutti: essi saranno poi rappresentati nel nostro schema come delle entità.

mercoledì 17 ottobre 2012

Esercitazione Libreoffice Base

Esercitazione Libreoffice Base 17/10/2012

Si crei un database con 3 tabelle, ciascuna con 5 colonne, tali che il database possa rappresentare un ambiente di propria scelta.


Svolgimento:


giovedì 20 settembre 2012

Base marziana

I marziani hanno tre dita in una mano e solo un dito nell'altra.
I marziani maschi hanno le loro tre dita sulla mano sinistra, mentre le femmine hanno le loro tre dita sulla mano destra. Ciò rende più semplice ballare il valzer.

Come gli esseri umani ed altre specie intelligenti, i Marziani hanno incominciato a contare usando le loro dita ed avendo solo quattro dita hanno sviluppato un sistema numerico posizionale in base quattro.

lunedì 10 settembre 2012

Esercizi sulle query in SQL


Dato il seguente schema di database: 
CREATE TABLE maternita(
madre text references persone(nome),
figlio text unique references persone(nome)
);
CREATE TABLE paternita(
padre text references persone(nome),
figlio text unique references persone(nome)
);
CREATE TABLE persone(
nome text primary key,
eta numeric,
reddito numeric
);
Scrivere in SQL le query necessarie a:

lunedì 6 agosto 2012

Proprietà e tautologie notevoli

Le seguenti proprietà sono notevoli.  Si verifichi che sono delle tautologie.

sabato 4 agosto 2012

Concetto di sistema informativo e sistema informatico

Un sistema informativo è quel sottosistema di un'organizzazione che si occupa di gestire (cioè acquisire, elaborare, conservare, rendere disponibili, etc) le informazioni per perseguire gli scopi dell'organizzazione stessa.

Il sistema informativo può fare uso (ma non è detto che lo faccia sempre) di strumenti automatici per gestire le informazioni. La parte automatizzata del sistema informativo viene definita sistema informatico.

lunedì 30 luglio 2012

Le proposizioni nelle formule logiche

Nello studio della logica bisogna distinguere gli elementi di una frase che sono rilevanti per l'analisi logica.

Una frase più essere suddivisa in unità più piccole, periodi, che esprimo un concetto logico atomico, cioè non ulteriormente divisibile. I periodi sono anch'essi frasi, ma sono i mattoncini che permettono di costruire frasi complesse.

sabato 21 aprile 2012

Domande sistemi informatici

Rispondere alle seguenti domande:

  1. Per configurare la rete di un azienda viene acquistata la rete di indirizzo IP 193.1.1.0
    1. determinare la classe dell’indirizzo
    2. determinare la corrispondente maschera di rete
    3. scrivere quali bit vengono riservati al net id e quali all’host id
    4. determinare l’indirizzo di rete, di broadcast, l’intervallo di indirizzi utilizzabili per gli host e quello tradizionalmente assegnato al router.
  2. Per configurare la rete di un azienda viene acquistata la sottorete 193.1.1.0/24. L’azienda è suddivisa in 6 dipartimenti. Il dipartimento più grande deve supportare fino a 25 host.
    1. determinare quali bit vengono riservati al net id e quali all’host id
    2. determinare quanti bit sono necessari per definire le sei sottoreti
    3. determinare di quanti bit è fatto l’extended net id
    4. determinare quanti bit sono riservati per l’host id
    5. scrivere la maschera di sottorete (in dotted decimal notation)
    6. per una delle sottoreti che sono state definite (ad esempio la prima), scrivere l’indirizzo di sottorete, l’indirizzo di broadcast, e l’intervallo degli indirizzi host.


  3. Si deve configurare il collegamento ad Internet, via router, per una azienda con 5 computer collegati. Viene acquistato il servizio di connettività da Telecom che fornisce le informazioni del foglio allegato. I computer dell’azienda devono essere configurati con una rete privata
    1. disegnare lo schema del collegamento, comprensivo dei computer dell’azienda, del router, del router telecom, etc.
    2. elencare gli indirizzi IP facenti parte della sottorete assegnata da telecom, indicando qual è l’indirizzo della sottorete, quello di broadcast, quelli degli “host” e qual è l’indirizzo assegnato al router telecom
    3. mettere in evidenza la parte WAN e quella LAN dello schema
    4. preparare gli indirizzi e maschere di rete/sottorete da assegnare ad ognuna delle interfacce presenti nello schema
  4. Spiegare il concetto di NAT e perché sorge la necessità di introdurlo.
  5. Il livello 4 dello stack di protocolli IP implementa 2 nuovi servizi da offrire al livello 5 – Application sovrastante. Quali sono e quali sono le loro caratteristiche?
  6. Scrivere lo schema per punti delle operazioni che un programma client che usa i socket per comunicare con un server deve effettuare

Domande sistemi informatici


  1. Si supponga di dover collegare in rete tre computer, con numeri di inventario 1,2 e 3. Si vuole utilizare la rete 10.0.0.
    1. Creare e compilare una tabella di inventory contentente tutte le informazioni che, allo stato attuale, si ritengono ragionevolmente necessarie per gestire la rete formata da questi tre computer;
    2. preparare il livello fisico: scegliere una topologia di rete ed implementarla con il materiale a disposizione.
    3. Elencare preventivamente (prima cioè di fare i collegamenti e le configurazioni) ciò di cui si ha bisogno per effettuare i collegamenti, sia in termini di harware che di parametri di configurazione;
    4. Preparare il livello network dello stack dei protocolli, configurarlo e collaudarlo.
  2. Spiegare in cosa consiste l’indirizzo fisico (MAC address), a che livello si colloca nello stack dei protocolli ISO/OSI e TCP/IP, come è formato, quale problema/esigenza consente di risolvere, dove viene memorizzato.
  3. Protocollo ARP: a cosa serve, fornire un esempio di interazione tra parti (peer) mediante un sequence diagram (commentandolo brevemente). A cosa serve il comando arp? A cosa serve  il comando ping? (Facoltativo: Si può fare a meno del protocollo ARP? Se non ci fosse, quali problemi si presenterebbero?)
  4. Spiegare a cosa serve l’indirizzamento IP, a che livello si colloca nello stack dei protocolli ISO/OSI e TCP/IP, quale problema consente di risolvere, in che cosa consiste un indirizzo IP, da quali parti è formato, quali sono le classi di indirizzi che si considerano, perché sono state introdotte, come le si distingue. Perché l’indirizzo IP viene detto classfull? Cos’è una maschera di rete? A cosa serve?
  5. Dato il seguente indirizzo IP espresso in dotted decimal notation: 15.193.112.23.
    Ricavare: la classe dell’indirizzo, la maschera di rete, l’indirizzo della rete, l’indirizzo di broadcast.
  6. Usando il programma Wireskark (o MS Netmon) e il file di cattura:
    CollegamentoLibero_3.pcap”, presente nella cartella:\\srv2003\5 serale\Sistemi,
    commentare e descrivere il significato dei più significativi tra i pacchetti scambiati durante la fase di instaurazione e di abbattimento della connessione. In particolare indicare quali vengono scambiati durante la configurazione di ciascuno dei livelli dello stack di protocolli (quali sono i livelli coinvolti?) e i parametri significativi che vengono scambiati/negoziati.





Domande Sistemi informatici


  1. Spiegare cosa si intende per rete client-server, quali sono le sue caratteristiche e spiegare quali sono i vantaggi rispetto alle configurazioni peer-to-peer.

  2. Spiegare che cosa si intende per “Topologia di rete”. Indicare:
    1. le principali topologie studiate;
    2. i vantaggi e gli svantaggi di ciascuna con particolare riferimento alla tolleranza ai guasti (fault tolerance).

  3. Spiegare cosa è un hub, cosa è uno switch, quali sono i vantaggi di usare switch al posto di hub nelle implementazioni delle reti.
  4. Spiegare cosa si intende per codifica “Manchester”. Indicare:
    1. perché viene introdotta;
    2. in cosa consiste;
    3. a quale livello della gerarchia ISO/OSI o TCP/IP si colloca;
    4. la forma d’onda inviata sul mezzo di trasmissione quando il livello ISO/OSI o TCP/IP riceve la stringa binaria: 100100110;







domenica 15 aprile 2012

Proviamo Google Code Prettify in Blogger

Nel precedente post ho provato Sintaxhighlighter,
oggi mi va di provare Google Code Prettify.

L'inclusione in Blogger dovrebbe essere semplice come inserire i seguenti due tag
nel header del template in uso:

<link href='http://google-code-prettify.googlecode.com/svn/branches/release-1-Jun-2011/src/prettify.css' rel='stylesheet' type='text/css'/>
<script src='http://google-code-prettify.googlecode.com/svn/branches/release-1-Jun-2011/src/prettify.js' type='text/javascript'/>

Ovviamente, ricordiamoci di richiamare lo script aggiungendo al tag body l'evento onload='prettyPrint();'

Vediamo se funziona:
/**
 * @author me
 */
public Prova(){
   public static void main(String args[]){
      String msg = "Ciao a tutti!";
      System.out.println(msg);
   }
}

Inserire del codice da evidenziare è semplicissimo, basta che sia racchiuso fra i tag:
<pre class="prettyprint">...</pre> oppure <code class="prettyprint">...</code>

Prettify dovrebbe essere in grado di riconoscere automaticamente la sintassi del codice da evidenziare. Volendo, si può può comunicare a Prettify il linguaggio esatto aggiungendo il tag che contiene il codice ad una classe di riferimento.
Nel mio esempio ho usato la classe lang-java:
<pre class="prettyprint lang-java">
Per maggiori informazioni date uno sguardo al README.

giovedì 26 gennaio 2012

Code highlighter in Blogger

Volendo realizzare un blog dedicato al mondo dei computer e della programmazione, si rende necessario l'uso di un sistema per presentare il codice all'interno dei posts in maniera elegante.

Molti cms usano plugin basati sulla libreria php GeSHi, ma qui su Blogger non sono riuscito a trovare niente di simile. Quindi, bisogna ripiegare su di un evidenziatore in javascript.

La mia scelta (tanto per provarne uno...) è syntaxhighlighter sviluppato su Google code.

Vediamo quali sono i passaggi che dovrò eseguire per farlo funzionare su questo blog:


  1. Scarichiamo syntaxhighlighter dalla pagina del progetto e decompattiamo l'archivio
  2. E'necessario in qualche modo includere il codice nel nostro blog. Potremmo caricare i file su di un altro spazio web e poi linkarli nel codice del nostro blog, ma preferisco tenere tutto su Blogger, anche se sarà un po' laborioso.
  3. Andando nel pannello designer di Blogger
    (Blogger -> Modello -> Personalizza -> Avanzato -> aggiungi css)
    possiamo fare copia ed incolla del contenuto del file SyntaxHighlighter.css 
  4. Ora dobbiamo inserire le classi javascript. Possiamo modificare direttamente il codice HTML del layout del sito
    (Blogger -> Modello -> Modifica HTML)
    oppure possiamo creare un nuovo gadget con tutto il codice necessario
  5. Entriamo nella directory Scripts dove abbiamo decompattato l'archivio e lanciamo il seguente comando:
    catsh.js>SyntaxHighlighter.jsinquestomodocreiamoununicofile,diqualchedecinadiKB,contuttoilcodicejavascriptdaincluderenelnostroblog.Volendoridurlodidimensione,possiamoincluderesoloifileconilcodicestrettamentenecessarioallevidenziazziamentodeilinguaggicheciinteressano.Adesempio: cat shCore.js shBrushCpp.js shBrushJava.js shBrushXml > SyntaxHighlighter.js
    dato che i file shBrush*Linguaggio*.js contengono le definizioni necessarie al codice per evidenziare *Linguaggio*.
  6.  Andando in Blogger -> Layout, creiamo un nouvo gadget del tipo HTML/JavaScript dove inseriremo il seguente codice:
    <script language="javascript">
    *copia ed incolla*
    dp.SyntaxHighlighter.BloggerMode();
    dp.SyntaxHighlighter.HighlightAll('code');
    </script>
    Avendo cura di sostituire al posto di *copia ed incolla* il contenuto del file SyntaxHighlighter.js.
    Nota: è necessario che il gadget sia collocato più in basso rispetto alla posizione nel layout del post. In questo modo la chiamata al metodo dp.SyntaxHighlighter.HighlightAll('code') avviene quando nella pagina è già presente il codice da evidenziare.
    La chiamata al metodo  dp.SyntaxHighlighter.BloggerMode() è necessaria per rimuover il tag <br/> che Blogger aggiunge automaticamente ad ogni fine riga.
  7. Facciamo una prova:
    /**
     * @author me
     */
    public Prova(){
       public static void main(String args[]){
          String msg = "Ciao a tutti!";
          System.out.println(msg);
       }
    }
    
    se il precedente codice viene evidenziato correttamente, allora SyntaxHightlighter è funzionante sul mio blog ;-)
Per le istruzioni d'uso vi rimando al wiki del progetto.

Fine!

venerdì 13 gennaio 2012

Promemoria: Tipi del linguaggio Java

Tipi Primitivi:
  • byte - 8 bit - codifica complemento a 2
  • char - 16 bit - codifica UNICODE
  • short - 64 bit - codifica complemento a 2
  • int - 32 bit - codifica complemento a 2
  • long  - 64 bit - codifica complemento a 2
  • float - 32 bit - codifica  IEEE754
  • double - 64 bit - codifica IEEE754
  • boolean - ? - TRUE | FALSE
Tipi Riferimento:
  • Classe
  • Vettore
  • Interfaccia 
Tra i riferimenti, c'è da considerare il riferimento nullo - "null" (non è zero, rappresenta il riferimento che non punta a nulla. Concettualmente può essere considerato un tipo indipendente o un valore speciale)