Tag Blog

software

Come la tecnologia e l’uso del software supportano la progettazione in Architettura

Come la tecnologia e l’uso del software supportano la progettazione in Architettura

La tecnologia si evolve velocemente, cambiando le metodologie e le tecniche di lavoro in tutte le aree produttive, dai processi semplici ai più complessi, trovando così diversi ambiti d’applicazione che aprono nuove possibilità a qualsiasi settore. L'architettura non è estranea a questo cambiamento, oggi esistono diverse applicazioni per lo sviluppo e il design architettonico e queste consolidano il ruolo della tecnologia anche in questo campo, svolgendo un ruolo molto importante nel settore. Per questo motivo sono state sviluppate diverse tipologie di applicazioni, che oggi vengono utilizzate costantemente da architetti e ingegneri, diventando strumenti fondamentali nei loro lavori, semplificandone la progettazione, ottimizzando i processi e migliorandone la qualità. L'industria del software sviluppa programmi che permettono di figurare strutture spaziali tridimensionali, quindi non è più necessario immaginare come sarebbe un elemento nella vita reale… questo può essere visto sul monitor di qualsiasi studio d’architettura. La maggior parte dei programmi utilizzati attualmente contengono una API (Application Programming Interface) o un'interfaccia di programmazione delle applicazioni che consentono l'accesso ai meccanismi interni del software e vengono utilizzate per automatizzare il programma o per aggiungere nuove funzionalità. La maggior parte dei software, come CAD e BIM, opera su base API. L’utilizzo di API non è esclusivo di questo settore, infatti, anche tutti i prodotti Microsoft Office hanno un'API integrata per l’automazione del software. Inoltre anche siti web come Facebook e Google hanno APIs che possono essere utilizzati per creare nuove caratteristiche e funzionalità. Visto che l’era digital in architettura e design si sviluppa rapidamente, imparare a programmare diventa sempre più un'abilità essenziale per un architetto e si può dire che, il suo lavoro, è si frutto della propria creatività ma vede la luce attraverso il supporto di un computer.

La scelta della tecnologia nei progetti software

La scelta della tecnologia nei progetti software

Quando si inizia un nuovo progetto software la valutazione delle tecnologie da utilizzare, ed in particolare, la scelta del framework, è una fase fondamentale e particolarmente critica che richiede grande attenzione e uno studio preliminare approfondito. Al giorno d'oggi gli strumenti che supportano lo sviluppo software sono numerosi, con caratteristiche, vantaggi, svantaggi e costi differenti. La fase precedente a questa scelta, dovrebbe prevedere un'accurata raccolta di requisiti funzionali, non funzionali e relativi all'aspetto grafico che il prodotto finale dovrà avere. Una volta completata questa prima analisi, si procede con quella delle tecnologie disponibili. Trovare la tecnologia che supporti completamente ed esaustivamente lo sviluppo delle funzionalità richieste è impossibile, ma si può restringere il campo selezionando quella che facilita maggiormente il lavoro. Lo sviluppo delle funzionalità non è però l'unico fattore da considerare. Altri, altrettanto importanti, sono: - Il supporto da parte degli sviluppatori della tecnologia, ma anche quello di una community che attraverso forum e blog proponga soluzioni a problemi più o meno comuni che si possono presentare; - La stabilità degli aggiornamenti nel tempo: utilizzando componenti che non vengono aggiornati da molto tempo, si rischiano problemi di compatibilità che in futuro potrebbero costringere a dover rimuovere quel componente o addirittura a dover riprogettare tutto utilizzando tecnologie diverse; - La compatibilità tra le tecnologie e la facilità con cui interagiscono dovrà essere comprovata, se si dovesse aver bisogno di utilizzarne più di una; - La scelta tra linguaggi nativi e ibridi: si tratta di un problema molto comune quando si parla di sviluppo di App. Utilizzare linguaggi nativi, ovvero linguaggi scritti appositamente per un determinato sistema (ad esempio iOS o android), permette di sfruttare al massimo le potenzialità del dispositivo migliorando nettamente le prestazioni. Lo svantaggio che ne consegue è che la stessa App dovrà essere sviluppata più volte nei vari linguaggi. D’altro canto, l’utilizzo di linguaggi ibridi permette di sviluppare una singola App che funziona su vari sistemi, a discapito però delle prestazioni; - L’esperienza nelle tecnologie, fattore va valutato insieme al tempo a disposizione. Se il tempo per la realizzazione del prodotto finale è limitato, probabilmente è meglio optare per tecnologie che già si padroneggiamo in modo da poter entrare subito nel vivo dello sviluppo. In caso contrario si possono anche scegliere tecnologie che prevedano una prima fase di formazione. Per lo sviluppatore, quindi, la valutazione della giusta tecnologia da utilizzare è un passo fondamentale. Se questo aspetto viene affrontato con la giusta attenzione, porta indubbi vantaggi al progetto che si intende realizzare.

Dasir Tech a sostegno della digitalizzazione

Dasir Tech a sostegno della digitalizzazione

Da pochi giorni sul portale del MISE è possibile consultare l'elenco, suddiviso per regione, delle imprese assegnatarie del voucher digitalizzazione. I dati confermano un successo che va oltre ogni aspettativa. Infatti, sono state presentate più di 90.000 domande per acquistare software, hardware e servizi finalizzati a modernizzare l’organizzazione aziendale. Per le tante domande pervenute al MISE, risulta difficile soddisfare tutte le richieste rispetto ai 100 milioni di fondi Pon messi a disposizione.  Per questo motivo il ministero sta considerando la possibilità di integrare la copertura finanziaria dell'intervento, per garantire a tutte le imprese richiedenti l’investimento nella digitalizzazione. Le imprese risultate assegnatarie possono iniziare ad effettuare le spese programmate nei progetti di digitalizzazione e di ammodernamento tecnologico presentati. Con un decreto successivo il MISE provvederà a pubblicare l’elenco definito delle imprese beneficiare con il relativo importo assegnato. A tal proposito riconfermiamo il nostro supporto ad affiancare le imprese assegnatarie che vogliono intraprendere il processo di digitalizzazione e, quindi, spendere il voucher a loro concesso presso la nostra azienda. I nostri servizi sono: siti Web, mobile App, e-commerce, gestionali, marketing & graphics, hardware support, business plan, project management, training. Tutti coloro che intendono servirsi del supporto della Dasir Tech possono contattarci al seguente indirizzo mail: flavio.genovese@dasir.it oppure al numero 081 19811580.

Voucher digitalizzazione per PMI

Voucher digitalizzazione per PMI

Il 30 Gennaio è quasi alle porte, data in cui sarà possibile inoltrare le domande online per richiedere l’assegnazione del voucher digitalizzazione, messo a disposizione dal MISE. Valido contributo per le PMI che vogliono intraprendere la strada della digitalizzazione. Cos’è il voucher digitalizzazione e soprattutto cosa finanzia? Il voucher digitalizzazione permette alle imprese di recuperare a fondo perduto fino a 10.000 euro di spese. Rientrano tra queste, gli interventi effettuati per lo sviluppo di  software su misura per il cliente e su qualsiasi piattaforma tecnologica, siti web, App (ios/android), e-commerce, gestionali, CRM, loghi, grafica, web marketing, business plan, consulenza software e assistenza hardware e attività di formazione mirata al miglioramento delle competenze delle risorse umane. L’obiettivo è coprire gli interventi di digitalizzazione dei processi aziendali e/o rinnovare la tecnologia utilizzata in azienda. Per ulteriori approfondimenti si può consultare il sito del MISE, cliccando sul seguente link:  http://www.sviluppoeconomico.gov.it/index.php/it/incentivi/impresa/voucher-digitalizzazione Anche Dasir Tech si pone l'obiettivo di aiutare le imprese che vogliono intraprendere un processo di digitalizzazione, garantendo assistenza ed ausilio con le sue competenze e il suo know how di qualità. La Dasir Tech S.r.l, software house con sede a Casoria, crede fortemente nel cambiamento e nel rinnovo costante della tecnologia in azienda. Sarà un partner di eccellenza per le imprese che la sceglieranno in questo percorso di digitalizzazione. Tutti coloro che intendono servirsi del supporto della Dasir Tech possono contattarci al seguente indirizzo mail: flavio.genovese@dasir.it

Il Sistema Operativo a 64-bit per RaspberryPi 3

Il Sistema Operativo a 64-bit per RaspberryPi 3

RaspberryPi 3 Modello B è la prima versione con architettura a 64 bit del più popolare “mini-computer”, ma nonostante l’upgrade del processore, che è diventato un ARMv8 nella versione Pi 3, non esiste una distribuzione ufficiale di un sistema operativo a 64-bit. I motivi sono legati al fatto che l’azienda fondatrice del “lampone embedded” si è concentrata sul rendere il suo sistema operativo, Raspbian, che è una distribuzione Debian, compatibile per tutte le generazioni di Pi. Il sistema operativo SUSE, che è una distribuzione di Linux, supporta le più svariate architetture e con la sempre più forte presenza di processori ARM all’interno dei data center, l’azienda tedesca (che ha iniziato stampando manuali UNIX e offrendo assistenza tecnica circa 3 decenni addietro) si è concentrata sulla possibilità di operare su questi tipi di calcolatori in modo da poter aggiungere ulteriori piattaforme al calderone di quelle supportate. In occasione dell’evento SUSECon 2016, SUSE ha annunciato il supporto di SLES (SUSE Linux Enterprise Server) per RaspberryPi 3. In realtà esiste anche una release di openSUSE, la versione open di SUSE, che è in grado di girare sul dispositivo embedded. Pertanto i possessori di una boardPi 3 possono sfruttare le funzionalità del proprio dispositivo grazie all’unico sistema operativo a 64 bit compatibile ad oggi disponibile. I vantaggi vengono tradotti in termini di performance di computazione e anche circa la compatibilità di programmi le cui release a 32 bit sono di fatti in via di estinzione. Come spiega EbenUpton, fondatore di Raspberry, si tratta del primo rilascio ufficiale per l’architettura a 64-bit da parte di un importante fornitore e soprattutto SLES prevede il supporto per il protocollo wireless e bluetooth (BLE), che sono delle novità presenti proprio a partire dalla versione Pi 3. SLES è disponibile con una versione evalution con un limite di durata pari a 60 giorni, ma la patch per Raspberry, prevede un abbonamento gratuito di un anno con possibilità di scaricare gli aggiornamenti. In alternativa, si può tenere in considerazione il prodotto free di SUSE, openSUSE, la quale ha reso disponibile due immagini per Raspberry Pi3, ormai ben note alla community di SUSE, Leap e Tumbleweed. Di fatti SLES è l’unica distribuzione enterprise, che sicuramente porta notevoli vantaggi rispetto alle versioni open o community, quali ad esempio aggiornamenti tempestivi e sicuri, longevità, supporto per 10 anni, certificazioni di sicurezza. Sarà interessante capire se sarà mai rilasciato il sistema Raspbian a 64-bit oppure se SUSE possa diventare il prossimo sistama operativo ufficiale di Raspberry.

MILK: IL NUOVO LINGUAGGIO DI PROGRAMMAZIONE

MILK: IL NUOVO LINGUAGGIO DI PROGRAMMAZIONE

Nei microprocessori moderni, la gestione della memoria è basata sul principio di località, ovvero: se un programma ha bisogno di alcuni dati in un particolare punto della memoria, probabilmente avrà bisogno successivamente anche dei dati vicini. Ma questo principio viene meno nell’era dei Big Data: ogni processo infatti è solito ad elaborare pochi dati presi arbitrariamente tra i tantissimi presenti. In genere l’accesso alla memoria RAM è di per sé la parte più dispendiosa dell’elaborazione (escluso l’accesso alle memorie fisiche) e quindi accedervi ripetutamente rallenta di molto l’elaborazione di grosse quantità di dati. Questa settimana, un gruppo di ricercatori del MIT (Massachusetts Institute of Technology), alla conferenza internazionale sulle architetture parallele e tecniche di compilazione, ha presentato un nuovo linguaggio di programmazione, chiamato Milk, che permette di gestire la memoria più efficacemente in programmi che hanno bisogno di accedere a dati particolari in dataset di grosse quantità. Nei test di molti algoritmi, i programmi scritti in Milk si sono mostrati molto più veloci di quelli scritti nei linguaggi di programmazione fino ad oggi esistenti. Il linguaggio in questione aggiunge alcuni comandi a OpenMP (Open Multiprocessing), un estensione di linguaggi come C e Fortran che rende facile lo sviluppo per processori multicores. Con Milk, un programmatore dovrà scrivere solo alcune righe di codice in più per gestire alcune operazioni che richiedono iterazione in una grande quantità di dati, e il compilatore Milk deciderà come gestire la memoria efficacemente. In un programma Milk, quando un core deve richiedere un dato dalla memoria, non lo richiede (insieme ai dati adiacenti) ma aggiunge l’indirizzo di memoria da richiedere ad una lista. Quando le liste di ogni core sono lunghe abbastanza, vengono messe insieme e vengono raggruppati gli indirizzi di memoria vicini e ridistribuiti ai vari cores con questi raggruppamenti. In questo modo, ogni core riceverà più dati di cui ha bisogno con un solo accesso. Questo, è ciò che succede ad alto livello, ma nel dettaglio, le cose si fanno complicate. Nei processori moderni, ci sono più livelli di cache, ognuno più grande e lento dell’altro. Il compilatore Milk deve dunque tener conto non solo degli indirizzi di memoria, ma anche di quelli in cache in tutti i livelli. Deciderà anche quali indirizzi tenere e quali scartare dalla cache. Ecco cosa ha detto a riguardo Matei Zaharia, un professore alla Standfor University: “Molte applicazioni importanti al giorno d’oggi richiedono una grande quantità di dati, ma sfortunatamente, la costante crescita del gap di performance tra CPU e memoria porta a non utilizzare al massimo le prestazioni della CPU. Milk aiuta a ridurre questa differenza di prestazioni ottimizzando l’accesso alla memoria in alcuni dei costrutti di programmazione più frequenti.”

KILOCORE, CPU CON 1000 CORE INDIPENDENTI

KILOCORE, CPU CON 1000 CORE INDIPENDENTI

KiloCore è il primo processore al mondo con 1000 core indipendenti, in grado di eseguire oltre 115 miliardi di operazioni al secondo con un consumo inferiore ad 1 Watt. Questo processore, messo a punto dall’Università della California , in collaborazione con IBM, è stato presentato all’ultimo Simposio Tecnologia e Circuiti VLSI, che si è tenuto alle Hawaii. I ricercatori della Università della California hanno recentemente presentato KiloCore, una CPU con 1000 core programmabili in modo indipendente, con un’elevata efficienza energetica. Chip con più di un processore sono da anni una realtà, tanto che dentro la gran parte dei nostri computer si possono trovare anche 12 processori che lavorano in maniera sincronizzata. Il nuovo chip, non ha solo un numero record di chip ma rappresenta una possibile rivoluzione nel loro funzionamento, e riesce a far lavorare i suoi processori in modo indipendente l'uno dall'altro, qualcosa di simile a una 'rete' di computer separati. Gli scopi per i quali viene utilizzato sono sempre gli stessi degli attuali multicore ma offrendo performance migliori: elaborare video, cifrare e decifrare dati e in ambiti scientifici dove applicazioni a elevato multithreading sono in grado di trarre vantaggio della presenza di più core. Per sfruttare il processore è ad ogni modo necessario software scritto ad hoc, in grado di trarre vantaggio dalla parallelizzazione. Quando deve eseguire un compito, KiloCore 'scompone' il tutto affidando singole parti di applicazioni ai vari processori che una volta completato il lavoro condividono i dati per ricostruire il risultato finale. Quando non sono necessari i singoli processori si disattivano permettendo così un enorme risparmio energetico, garantendo un'efficienza 100 volte migliore di quella di un tradizionale processore multiplo. La frequenza massima è pari a 1,78 GHz e ogni core può trasferire dati da se stesso ad un altro, senza alcuna memoria condivisa. Di fatto, i 1000 core sono possono eseguire 115 miliardi di operazioni al secondo, consumando solamente 0,7 Watt Avendo una 'logica' differente dai chip tradizionali, i ricercatori hanno dovuto sviluppare un ventaglio di applicazioni ad hoc, tra cui software per l'elaborazione delle immagini, dei video e strumenti per sviluppatori che potranno lavorare alla creazione di nuove applicazioni. KiloCore è stato sviluppato per sostituire i microchip attuali ma i costi e i tempi per una sua futura commercializzazione non sono stati definiti e di certo serviranno ancora alcuni anni prima che arrivi sul mercato.

IL NUOVO FILE SYSTEM DI APPLE

IL NUOVO FILE SYSTEM DI APPLE

Alla WWDC16 Apple ha presentato, un po’ in sordina perché si tratta di un argomento in realtà molto tecnico, un nuovo file system. Ovverosia, della tecnologia che viene utilizzata per controllare il modo con il quale i dati vengono scritti e letti sul supporto di memoria. Si tratta di una tecnologia centrale per ogni grande piattaforma: quando si “formatta” ad esempio un disco esterno o una chiavetta di memoria (ma anche il disco interno del computer) in pratica lo si prepara ai futuri usi di lettura e scrittura dei dati scegliendo una tecnologia in particolare: come disegnare i quadretti su un foglio bianco per poi poterlo utilizzare per scopi diversi. Apple come Microsoft nel tempo ha sviluppato versioni e generazioni diverse di file system, anche perché la dimensione dei supporti di memoria e dei documenti da leggerci e scriverci sopra nel tempo è cambiata in maniera drastica. Windows utilizzava il sistema Fat (nato nel 1977) nelle varianti a 8, 12, 16 e 32 bit, poi il sistema NTFS (più performante usato con Windows NT dal 1993) e poi exFAT, utilizzato con i sistemi operativi più recenti. Linux e Unix hanno anche loro diverse generazioni di file system dietro le spalle.   Apple storicamente ha avuto tre file system su Mac: MFS (del 1984, utilizzato per poco tempo) HFS (1985) e HFS+. Nel 1988 è nato Hierarchical File System Plus o Mac OS Extended) poi aggiornato nelle varianti “journaled” o “non journaled”, che permette di avere file più grossi e maggiore spazio su disco indirizzabile. La spiegazione, se vogliamo scendere in maggior dettaglio, rischia di diventare davvero complessa, anche perché il modo con il quale le informazioni sono organizzate in un file system può cambiare, e per Apple questi diversi meccanismi servono ad esempio a rendere avviabile un disco su architettura PowerPC oppure su Intel x86. Ma non ci dilunghiamo. La nota importante da segnarsi è che il file system di Apple era particolarmente vecchiotto e con un sacco di problemi dovuti fondamentalmente al cambiamento di tecnologie e usi del computer. Apple aveva flirtato con il file system ZFS (“Zettabyte File System”) progettato da Sun Microsystems e destinato al loro sistema operativo server Solaris e poi OpenSolaris. L’acquisizione da parte di Oracle ha rotto la magia e hanno dissuaso Apple dall’opportunità di utilizzare questo sistema che aveva forti vantaggi. Il primo è sicuramente un modello di scrittura sicura dei dati e di ottimizzazione dei media di archiviazione che considera le peculiarità dei sistemi SSD rispetto agli HDD. Poi gli snapshot, la dimensione variabile dei blocchi, i pool dello storage e infine gli snapshot del contenuto.   Dopo la perdita di ZFS, Apple ha lavorato in silenzio ad un’alternativa, infatti è nato APFS con tre caratteristiche salienti. Funziona ottimamente su tutti i tipi di apparecchi (per iOS, OS X, tvOS e watchOS), ha la crittografia incorporata per garantire il massimo della sicurezza e privacy, ha gli snapshot incorporati per garantire il massimo di backup e versioning dei documenti. La funzionalità denominata “Space Sharing” dovrebbe consentire a file system multipli di condividere gli stessi blocchi di storage; sarà possibile ridimensionare un volume senza ripartizionarlo e sfruttare le funzionalità di cloning copiando i contenuti su un diverso dispositivo tenendo conto delle sole modifiche effettivamente apportate.   La Developer Preview dell’Apple File System è integrata nella beta di OS X 10.12 (denominato macOS Sierra); il formato per la gestione di dischi e volumi APFS potrebbe cambiare; non è al momento prevista una implementazione open source; Apple pubblicherà la documentazione dettagliata quando il sistema sarà rilasciato in versione definitiva nel 2017.

IL RUOLO DEI COMPILATORI NELLE ARCHITETTURE RICONFIGURABILI

IL RUOLO DEI COMPILATORI NELLE ARCHITETTURE RICONFIGURABILI

L'hardware riconfigurabile è di fatti una realtà in continua evoluzione e crescita. I dispositivi FPGA trovano sempre maggior impiego nelle diverse realtà tecnologiche, quali ad esempio datacenter e IoT. La riconfigurazione dell'hardware comporta diversi vantaggi in termini prestazionali. Infatti un FPGA può essere programmato in due modi diversi tali da consentire di rispettare gli stessi requisiti funzionali con performance diverse. Tra queste gioca un ruolo fondamentale il consumo di potenza, argomento ampiamente di attualità visto l'utilizzo sempre più frequente e frenetico di dispositivi mobili che necessitano di un'alimentazione tale da garantirne l'uso per almeno un'intera giornata. Tra le possibilità che un FPGA offre, in base alla sua caratteristica di riconfigurabilità, c'è quella di progettare un'architettura fortemente dinamica capace di riconfigurarsi continuamente in base al tipo di applicazione che deve essere processata. Semplificando con un esempio, si pensi alla possibilità di avere un elemento di processamento che si comporti come una GPU quando si elaborano applicazioni fortemente grafiche e come un processore in caso di elaborazioni che richiedono più logica di controllo che processamento massivo. Affinché tale architettura possa essere realizzata è necessario prevedere un meccanismo capace di collegare la parte software delle diverse applicazioni con quella hardware che è riconfigurabile. Tale strato è identificabile attraverso un compilatore che deve essere capace di tradurre nella maniera corretta ed ottimizzata le applicazioni in codice macchina, interpretabile dall'architettura sottostante che essendo riconfigurabile cambierà di volta in volta. Esistono delle toolchain di compilatori che consentono la realizzazione di questo modello. Tali toolchain prevedono sostanzialmente due componenti fondamentali che sono la parte di front-end e quella di back-end. In particolare, la prima consente la traduzione del codice sorgente in un linguaggio di rappresentazione intermedia, definito in genere dalla toolchain stessa. In questo modo è possibile ottenere la stessa rappresentazione per sorgenti provenienti da linguaggi di programmazione differenti. Ovviamente è necessario che la toolchain preveda un compilatore di front-end per ognuno dei linguaggi di programmazione sorgenti supportati. La parte di back-end invece, partendo dalla rappresentazione intermedia che viene prodotta dal componente di front-end, deve produrre del linguaggio macchina (sequenze di bit!) interpretabile dall'architettura sottostante. Dal momento che la nostra architettura è di tipo riconfigurabile è necessario implementare la parte di back-end del compilatore in maniera parametrica, ovvero capace di conoscere di volta in volta i parametri che descrivono in modo completo l'architettura per cui deve essere prodotto il codice macchina. Le piattaforme eterogenee e le architetture riconfigurabili saranno probabilmente la nuova frontiera da perseguire per ottimizzare le performance nei sistemi di elaborazione. Pertanto, in un certo senso, l'oggettiva distanza che esiste tra hardware e software potrebbe ridursi attraverso l'implementazione di piattaforme che richiedono hardware descritto via software e software tradotto in base all'hardware sottostante.

Visualizzo 1-9 di 16 elementi.