Il corso di C++ di Michele

cQualcuno lo saprà già ma forse qualcuno non ancora e allora eccomi con un annuncio di una bella iniziativa, dovrebbe interessare tutti i programmatori, nuovi e non.

micheleMichele Adduci, @blackibiza su Twitter, è ben conosciuto nella social-cosi-sfera, giustamente.

luigiLuigi Bit3Lux Iannoccaro, @bit3lux su Twitter, è quello di Lubit. Lubit è tanti ma lui è quello che ha dato il via a tutto.
Adesso Luigi ha arruolato Michele (pensa che bello il web: Catanzaro e Berlino che dialogano come se fossero vicini di pianerottolo; e io ne approfitto qui da Torino) per un corso di Modern C++.

Argomento non facile, anzi tutt’altro, il linguaggio è enorme, niente a che vedere con il suo antenato C: il K&R era piccolino come formato e anche il numero delle pagine era ragionevole (ma qui forse sono condizionato dal Common Lisp che sto affrontando ultimamente); a proposito dov’è finita la mia copia originale della versione italiana del K&R, prima edizione?

OK, veniamo a Michele e al corso. Al momento ci sono già quattro post, è partito veloce, nel modo che si usa adesso, IDE QT con istruzioni su come partire (sembra minaccioso ma provate è facile). Poi il primo programma (indovinate quale?) talmente ben illustrato che l’ho capito anch’io (me). Ecco, per questo non servirebbe CMake ma cominciamo fin da subito che poi, vedrete! E al make è dedicato il post successivo (com’è cambiato da quando lo usavo io!).
Funziona. Perché è scritto bene, chiaro, da seguire assolutamente. Dai commenti sembra che l’abbiano già capito in parecchi.

Bravi. E ricordate che Lubit rockz! :grin:

Il Programmatore e la Bestia

com-strQuesto non è un post normale, tutt’altro.
Ma devo farlo, devo segnalare un capolavoro (se fossi capace su Excel potrei raccontare anch’io cose che voi umani…).

A me piace di più la versione francese ma c’è anche l’inglese.

fr

enBuona lettura. :lol:
Se ho capito bene CommitStrip sono des codeurs, entre Paris et Lyon, qui travaillent principalement en agence web. Bravi, bravissimissimi!!! :razz:

Lisp – come si deve scrivere – 1

nerd-dad-meme

Devo precisare quel “deve” nel titolo, ovviamente. È una cosa che vale per tutti i linguaggi di programmazione ma per il Lisp vale ancora di più, il Lisp è speciale. E uno dei motivi che lo rendono speciale è l’assoluta flessibilità. Questo porta velocissimamente e spesso inconsciamente a risolvere il problema contingente “a martellate” tanto la manutenzione…
Ho già scritto post polemici sull’argomento, codici che risultano illeggibile capitano spesso; anzi è la norma. Succede anche nel linguaggio normale, certe persone sono speciali. Qui da noi c’è uno storico che

Come dice TPH in Common Lisp Style Guide può darsi che all’inizio non si apprezzi completamte le regole stilistiche o capire completamente tutto quello che si dice, è OK, nessuno nasce imparato (cit.).

La prima regola è quella di dare nomi significativi ai simboli. Nella comunità dei lispisti si sono venute a creare certe convenzioni che conviene seguire. I nomi devono  essere descrittivi, corti, tutti in minuscolo, con le parole separate da trattini (meno dico io che sono vecchio ma i giovani dicono trattino).

0

I nomi dei simboli creati da stringhe devono essere tutti in maiuscolo o ci si dovrà riferire a essi in modo case-sensitive racchiusi da hbar (|):

1

Peraltro la sintassi con hbars non è considerata elegante; si dovrebbe usarla solo per interfacciarsi a funzioni esterne scritte chissà come.

Le variabili globali, quelle definite a top-level con defvar o defparameters sono nominate con gli earmuffs (vedi post precedente), esempio:

2

Una convenzione per le costanti: racchiudere il nome tra segni +:

3

I simboli interni (non esportati) dei packages iniziano con il simbolo %. Sono simili alle funzioni, metodi e variabili private di altri linguaggi ma si può sempre accedere a essi usando il nome completo del simbolo:

Nota: qui TPH fa un esempio che non riesco a riprodurre ne REPL perché fa riferimento a un esercizio precedente che non ho salvato (anzi era buggy). Copio il suo esempio, sbaglio o abbiamo convenuto che non si deve pretendere di capire tutto subito?

(defpackage #:my-new-package
  (:use :cl)
  (:export #:mad-adder))

(in-package :mad-adder)

;; Do some wonky stuff with a package-internal function
(defun %madder (x)
  (declare (integer x))
  (apply #'+ (loop for i from 1 upto x
                   collect (* x i))))

;; Write an exported interface to your package internal function
(defun mad-adder (x)
  "Call %MADDER with integer argument X."
  (%madder x))

(in-package :cl-user)

(mad-adder:mad-adder 10)

(mad-adder::%mad-adder 10)

Le funzioni predicato (conosciute anche come predicati) cioè test booleani normalmente terminano con “p” (ahemmm, spesso con “?“); se sono nomi composti da più parole usare “-p“.

4

Nota per me: se si tenta di usare integer? si ottiene un errore:

50

ma –niente panico– basta definirla:

51

OK? => T :wink:

Per oggi basta, ma continuo prossimamente, sicuramente, prestamente a presto.

Lisp – notazione prefissa

pf0L’ordine nelle liste è importante. Come visto in precedenza le liste sono implementate come Cons-Cell. Il car (primo elemento della lista) dev’essere un operatore valido mentre il cdr (resto della lista) è una lista di argomenti da applicare all’operatore, chiamati parametri. Questa convenzione è nota come notazione polacca prefissa, quella di Jan Łukasiewicz.

Per esempio la somma dei primi 5 numeri naturali che normalmente sarebbe scritta come 1 + 2 + 3 + 4 + 5 ottenendo il risultato di 15 in Lisp diventa:

0Come si vede non occorre ripetere l’operatore + per ogni parametro. Questa è la filosofia del Lisp, con l’operatore davanti dici quello che vuoi invece di quello che è da fare, caso in esame somma 1 2 3 4 5.
Operatori validi possono essere una funzione, una macro o un operatore speciale. Oppure un’espressione lambda (funzione anonima). L’interprete Lisp controlla dapprima se il simbolo è un operatore speciale; se non lo è cerca nella read-table una funzione con quel nome. Le reader macro sono particolari perché vengono espanse quado lette, mentre le defmacro sono espanse in compilazione. Ci sono poi diverse tecniche per definire quando e dove le macro debbano essere espanse.

La gestione dei parametri dipende dal tipo di operatore. Le funzioni per esempio possono solo restituire un singolo valore per ogni set di parametri mentre gli operatori speciali hanno le loro regole. Per le macro le regole sono definite dalle macro stesse, e c’è un dibattito mica d poco su quale sia il modo ortodosso di usarle.

Bon. Per oggi basta con questo post, piccolino ma che promette molte cose, per il futuro. Prossimamente… forse… :wink:

Dr. Dobb’s

dobbs_top_header_2Brutta notizia di oggi, chiude la rivista più nerd di sempre: Dr. Dobb’s 38-Year Run Comes To an End.

Colpa della pubblicità che manca per colpa del mondo che cambia. In effetti aveva molto più senso quando non c’era il web. Vero che c’erano i BBS ma non era la stessa cosa.

TestataMCTristezza. Ma ha finito per fare la stessa fine di MC Microcomputer e PCmag.

pcmagSic transit…? No, dai: After all, tomorrow is another day! (cit.).

Lisp – simboli e namespaces

earmuffsUna premessa: non so tradurre namespace, credo che si usi questa parola anche da noi. Se del caso benvenuti i suggerimenti.

Nel Common Lisp variabili e funzioni appartengono a namespaces diversi, per cui posso avere una funzione e una variabile con lo stesso nome e verrà usata quella che sembra più opportuna:

0Nota personale: bello ma non mi sembra una cosa da usare indiscriminatamente, allo stesso modo dei nomi delle variabili di 1 o 2 lettere. Chissà…

In ogni caso è possibile riferirsi espressamente alla funzione con la macro #'. Peraltro l’esempio di TPH che si trova in Symbols and Namespaces da errore, vedi i commenti. Prossimamente…
Adesso un’altra cosa che di solito suona strana a chi arriva dai linguaggi normali; lo sapete che il Lisp è speciale, se non lo sapevate adesso lo scoprirete (e vi abituerete (forse)).
Il Common Lisp è sia dynamically sia lexically scoped (yesss, non so la traduzione). Lo scoping dinamico è speciale e esplicito; quello lessicale è più intuitivo e implicito. Si deve dichiarare esplicitamente un simbolo come speciale per usare il suo collegamento dinamico in ambito (scope) lessicale, dove il simbolo può essere collegato lessicalmente e assegnato a una differente variabile. Sì, panico! Ma forse dopo si capisce. Per intanto ecco la ragione della convenzione dei nomi al top-level con gli earmuffs (paraorecchi):

1Le variabili toip-level dinamiche possono essere dichiarate con defvar o defparameter. Vista la coppia di asterischi? sono gli earmuffs.
Un modo ovvio per introdurre un ambito lessicale è assegnarle dentro una form let.

2Salto l’esempio successivo perché ha grossi problemi, TPH dice nei commenti che lo riscriverà. La cosa da ricordare è che con (locally (declare (special ...))) si può sovrascrivere (override) una variabile lessicale globale. Ma, mi viene da pensare, se si usano correttamente gli earmuffs il problema non dovrebbe esserci, o almeno molto meno.
Un esempio chiarificatore lo trovo qui: Declaration SPECIAL.

Nel Common Lisp esistono i packages, quelli usuali. Quando si definisce un package si può importare esplicitamente i simboli che si vogliono disponibili; si possono importare tutti i simboli esportati di un package con :use.

Esempio:

3

È quindi possibile continuare a definire funzioni, variabili e quant’altro nel nuovo package e listare i simboli che si vogliono esportare con :export. Notare il nickname newpack e l’istruzione di usare tutti i simboli di COMMON-LISP e COMMON-LISP-USER.
Nel riferirsi a un simbolo il Lisp suppone che sia nel package corrente se non diversamente specificato. È possibile accedere a ogni simbolo, anche se non espressamente esportato anche se non è una prassi raccomandabile.

Qui TPH fa riferimento alla funzione mad-adder definita in un esempio che non funziona e io non ho riportato per cui faccio finta di averla definita come nel post citato sopra. L’espressione (newpack:mad-adder one) è la stessa di (my-new-package:mad-adder one).
Se un simbolo non è esportato si deve usare un doppio due-punti, esempio (new-pack::*my-private-var*).

Ci sono alcuni simboli che non si possono utilizzare. Tutti i nomi dei simboli esportati nel package COMMON-LISP sono riservati.

Nota: TPH (the Phoeron, scoperto che lui si abbrevia così) è un po’ pasticciato in questa pagina. E sì, il post è noioso, über-noioso :mrgreen:

Visto nel Web – 161

Quante cose sono successe questa settimana! Ecco cosa ho visto nel Web.

malala

soddisfazioni
::: Twitter

Desirable developer skills
::: Twitter

Awesome free book. Introduction to Python for Econometrics, Statistics and Data Analysis
::: Kevin Sheppard

BfOc010CIAABUyh

Merkel update
::: Luca De Biase

European Commission to update its open source policy
::: Joinup

The Invent with Python Bookshelf
::: Invent with Python

BfQcYwBIQAE3F6r

reptyr – A tool for “re-ptying” programs
forse
::: github

French Publishers Prepare Lawsuit Against Adblock Plus
::: Slashdot

Good news for devs! Android Studio 1.0 out now
::: Android Authority

lolcatsdotcomzj8wl73l6cxs1vvm

The Rise of the Global Surveillance Profiteers
::: Slashdot

The Failed Economics of Our Software Commons
::: Slashdot

Civil Rights Groups Divided On Net Neutrality
::: Slashdot

joho

Surf tra tv, rete e carta stampata: l’informazione diventa ibrida
::: la Repubblica

Skype sempre online: come effettuare un logout remoto da tutte le postazioni in un solo colpo
::: Gioxx

Technicolor TG582n, hacking del router per cambiare ESSID e DNS
::: Bl@ster’s

1477398_861565133888023_5844723618468747223_n

Grant da 3000 euro per raccontare l’innovazione su Nòva
::: Luca De Biase

How Relevant is C in 2014?
::: Slashdot

First compiled languages – Twitter survey
::: Send More Paramedics

userint

It’s Here! Announcing Fedora 21!
::: Fedora Magazine

Yes, This Trojan Infects Linux. No, It’s Not The Tuxpocalypse
::: OMG! Ubuntu! ::: lffl

Got an old MC program that used to only work with #g95
::: Twitter

fake-science

Programming is easy like riding a bike
::: Twitter

The Pirate Bay raided, shut down by Swedish police – and it may never return
::: ExtremeTech

Welcome to Atlas Beta
The new learning environment from O’Reilly
::: O’Reilly Atlas

abbecedario

il linguaggio binario
::: Twitter

Web founder: Europe’s ‘right to be forgotten’ rule is dangerous
::: CNET

Go 1.4 is released
::: The Go Programming Language

B4RC0mwCQAArmcw
Bellard Creates New Image Format To Replace JPEG
::: Slashdot

Google news chiude per divieto di link: la Spagna rinuncia al web e alla libertà di espressione
::: Wired ::: Twitter ::: web news ::: la Stampa ::: Luca De Biase ::: Ars Technica ::: Twitter ::: techdirt ::: manteblog

Dentro il Filtro: algoritmi, propaganda e democrazia nell’era dei social
un’ora per dire cose che ne richiederebbero molte di più, da Mercoledì di Nexa
::: YouTube

B3fBBapCYAAkWtS

Intelligenza artificiale e lavoro. Appunti in diretta a Pisa
::: Luca De Biase

Streem – stream based concurrent scripting language
prossimamente, da Matz
::: github

IBM, Intel, Qualcomm join dozens of tech companies to argue against net neutrality
::: ExtremeTech

trauma-natalizio

The Guardian view on the freedom of the internet: it’s under
attack around the world
::: the Guardian

FCC chief hopes to move ‘quickly’ on net neutrality
::: The Hill

Bank Security Software EULA Allows Spying On Users
::: Slashdot

3265cs44_20141209informazione_05

Certo che i programmatori di gimp che mi costringono tutte le volte a fare export
::: Twitter

Un web per tutti o per pochi? Cosa dice il Web Index 2014-15
::: Wired

Linux Day 2014 – 5. La cattedra Open Source (Daniele Postacchini)
oops! dimenticato negli appunti di cose da fare, ma recuperato: bello
::: YouTube

B4Z2q77CUAAafT_

Modern C++
Luigi Bit3Lux ha convinto Michele Blackibiza, da seguire, obbligatorio o vi banno, nèh!
::: the secrets of ubuntu ::: the secrets of ubuntu

Le Reti Sociali
::: Num3ri

i’m wondering if there were something more sad, idiot and crazy
::: Twitter

10599476_338818586306116_7320898456951289038_n

IsoHunt Unofficially Resurrects the Pirate Bay
::: Slashdot ::: Twitter

HP Will Release a “Revolutionary” New Operating System in 2015
::: Technology Review

alemanno

Project Goliath: Inside Hollywood’s secret war against Google
::: The Verge

Rust prossimo alla versione 1.0
::: Robitex

Qt 5 Quanto Basta 2a Edizione
anteprima qui

70i90IB

Gambas – una GUI facile per Linux – 2

g2

Ancora su Gambas, continuo da qui.
Oggi concludo con una piccolissima demo di come utilizzarlo quale interfaccia grafica per programmi che questa interfaccia non ce l’hanno, quelli per la linea di comando nel terminale proprio come si usava una volta (e anche adesso, dai!).

demoG

Ecco il risultato della demo. Contiene un’area di testo per visualizzare messaggi (una Label) e tre pulsanti:

  • chi sono scrive nell’area di testo il path della directory dove si trova l’eseguibile (in realtà pCode) Gambas e il nome dato al progetto;
  • esegui lancia uno script Python e visualizza il risultato nell’area di testo;
  • pulisci pulisce l’area di testo.

Lo script Python è semplicissimo (tx.py, nella sub-dir py):

#!/usr/bin/python
# -*- coding: utf-8 -*-

import time

t0 = time.time()
time.sleep(10)
t1 = time.time()

print t1 - t0

Esegue una pausa di 10 secondi e scrive il tempo trascorso. La scritta destinata al terminale verrà intercettata da Gambas.

Ecco il codice Gambas:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
' Gambas class file

  Public progdir As String
  Public appname As String

Public Sub Form_Open()
  progdir = Application.Path
  appname = Application.Name
End

Public Sub chi_Click()
  area_ris.Text = progdir & "\n" & appname
End

Public Sub esegui_Click()
  Dim cmd As String, ris As String
  area_ris.Text = area_ris.Text & "\n\neseguo tx "
  area_ris.Refresh()
  Message("eseguo tx")
  cmd = "python " & progdir &/ "py/tx.py"
  Shell cmd Wait To ris
  area_ris.Text = area_ris.Text & ris
End

Public Sub pulisci_Click()
  area_ris.text = ""
End

Qualche osservazione:

  • le variabili sono locali, tranne quelle dichiarate Public, righe 3 e 4;
  • le inizializzazioni possono essere fatte nella Form_Open(), riga 6;
  • valgono gli usuali caratteri di escape, riga 12;
  • per concatenare i path c’è l’operatore &/, riga 20;
  • ho usato Shell, riga 21,  ma esiste anche Exec, non ho indagato sulle differenze, lasciate ccome compito a casa;
  • il parametro Wait, riga 21, sospende il programma fino alla fine del processo lanciato da Shell;
  • Message, una dialog box, alla riga 19 si è reso necessario per aggiornare l’area di testo, senza di esso la scritta di riga 17 e il refresh di riga 18 non producono alcun effetto;
  • la variabile ris contiene il testo scritto dal processo figlio, quello che sarebbe finito nel terminale; in pratica una pipe;
  • durante l’esecuzione della Shell la finestra dell’applicazione cambia colore, ingrigisce;
  • non ho riscontrato un aumento di risolse (memoria e CPU) apprezzabili.

Si userà? Forse, non dipende da me. E poi questo esempio è inusuale, trascurando il linguaggio di programmazione. A proposito, qui tutte le info che servono.

tipo

Non ho capito perché ma nella definizione del progetto ho dovuto selezionare QT altrimenti non riesco a inserire testo nei TextBox. Ma si sa che sono niubbo :mrgreen:

Gambas – una GUI facile per Linux – 1

Gambas_3Io che sono vecchio sono abituato al terminale e alla linea di comando; i giovani meno.
Io che sono vecchio sono abituato a Linux, figlio, non si sa bene quanto legittimo, di Unix (certo che gli assomiglia parecchio), anzi ho cominciato molto prima; i giovani no. E spesso prendono le cose che faccio e le spostano su Windows. Spesso ci mettono un’interfaccia grafica, in genere fatta in VisualBasic.

Per Linux esiste qualcosa di simile, non la stessa cosa ma non troppo differente. Sto parlando di Gambas, un ambiente di sviluppo libero creato da Benoît Minisini.
Recentemente ho preparato una piccola demo, ve la racconto in questo post e uno successivo, quasi pronto (a volte dico bugie).

La scelta di Gambas nasce anche dal fatto che per gli script Python nella versione 3.x non è disponibile il package Wx; e forse non lo sarà mai, è in sviluppo ma praticamente fermo da troppo tempo. GTK si è dimostrato troppo complesso (e, forse, non completo). Probabilmente presenterò anche altre alternative, l’anno prossimo.

tb

L’esempio di oggi è una toolbar, 3 pulsanti grafici che svolgono compiti diversi, rispettivamente:

  • visualizzare un messaggio;
  • aprire l’home page di OK, panico nel browser predifinito;
  • chiudere l’applicazione.

Naturalmente è solo un esempio, senza pretese, per vedere se va.

ide

L’ambiente di sviluppo è simile a quelli presenti su Windows (VB, Delphi), si parte con definire un progetto e la sua directory di lavoro. Questa verrà popolata da diversi file e sottodirectory ma tutti nascosti.

files

In figura compaiono anche i nomi delle immagini usate per sfondo, pulsanti e icona del progetto. Assemblarli e assegnare loro gli script è semplicissimo, proprio come il VB (che non è mai stato il mio linguaggio preferito, anzi…). A differenza del Basic occorre dichiarare tutte le variabili prima di usarle; e c’è lo stesso comportamento con Maiuscole/minuscole. Ci sono differenze di linguaggio, ma sono documentate (non è che ho approfondito più di tanto).

Una volta che il programma è deguggato nell’IDE si può creare l’eseguibile, un file pCode con estensione .gambas; e anche possibile creare il package per la distribuzione.

unity

L’eseguibile funziona come ci si aspetta, la sua icona compare regolarmente nella barra di Unity (per Ubuntu).

Il codice Basic per il mio esempio è semplicissimo:

' Gambas class file

Public Sub Fine_Click()

  Quit

End

Public Sub OKp_Click()

  Shell "xdg-open " & "http://www.okpanico.wordpress.com"  

End

Public Sub messaggio_Click()

  Dim msg As String
  msg = "Ecco la mia toolbar\nfatta con Gambas3"
  Message(msg)

End

Quindi…
Restano da fare alcuni test prima di dare un giudizio. Prossimamente… forse… :mrgreen:

Visto nel Web – 160

Settimana piovosa e del cattivo umore; ma intanto ecco cosa ho visto nel Web.

BvAnQHECQAEQ2t8.jpg_large
Windows e’ un virus?
::: Google+

GCC 5 Release Series – Changes, New Features, and Fixes
::: GCC

Regin: Top-tier espionage tool enables stealthy surveillance
::: Symantec

maths-made-easy

Associazione Libreitalia presentations – The Document Foundation LibreOffice
::: slideshare

Rigenerare le chiavi ssh
::: SIAMO GEEK

Uno step fisico
::: SIAMO GEEK

pedoni

Attorno al concetto di gratis dei social media
::: Sergio Gridelli

Ristampa Anastatica
chi si ricorda i BBS?
::: Note Diacroniche

Algoritmi golosi Algoritmi golosi
::: Mr. Palomar

unnamed-cd

I danni dell’ECDL
::: UIELinux

What happened to the promise of rigorous, disciplined, professional practices for software development?
::: ACMQ

So Excited!!!!!!!!
::: Twitter

hi!

Inside DuckDuckGo, Google’s Tiniest, Fiercest Competitor
::: Co.Labs

Printing the contents of a C macro
uhmmm…
::: Burger Becky’s

Grab’n Run
::: github

lolcatsdotcom-found-it

Probe Into NSA Activity Reveals Germany Spying On Germans
::: Slashdot

Autodesk just made its design software free for students and teachers worldwide
::: The Next Web

the kings of the internet
::: Twitter

phd111414s

Amo prendere decisioni coraggiose
::: Twitter

Quest’anno nel presepe solo pinguini
::: Twitter

Sui vizi e le virtù di /dev/random
::: GNUrants

comunità virtuali

An incomplete list of Go tools
::: Dominik Honnef

Systemd World : le parc est ouvert
::: CommitStrip

Back from Clojure Part 1: Python
avendo tempo…
::: Adam Bard

B3oGvuFIEAAsTRV

Son Tutti Open col Source degli Altri
::: MadBob

Economist e monopoli internet
::: Luca De Biase

Huawei: “Nobody made any money with Windows Phone”
sarà vero?
::: The Next Web

homeop bicy

Lollipop isn’t making a dent in Android usage numbers (yet)
::: Engadget

University of Oslo Course – OsloWorkshop2014
::: nbviewer

CoreOS Announces Competitor To Docker
::: Slashdot

Salvini_Obama

Valida Alternativa A TrueCrypt
::: Andrea M

Nature makes all articles free to view
solo Mac e Windows
::: Nature

Celebrated Russian Hacker Now In Exile
::: Slashdot

nq141201

Valuing the public domain: some research — and an event this Friday
::: 1709

FBI Seizes Los Angeles Schools’ iPad Documents
OK, normale :grin:
::: Slashdot

When bad ideas will not die: from classical AI to Linked Data
“L’ottimismo…” com’era quella pubblicità? qui ci vorrebbe, davvero :wink:
::: Daniel Lemire

10644761_820418711329790_6458771060952263777_n

Creiamo codici QR con Python
::: the secrets of ubuntu

A Village Has What All of Italy Wants: The Internet
::: The New York Times

R resources
::: The Endeavour

10704024_375334739294351_3422369703740846712_n

You’d be surprised at how many of our solutions were already solved, 10 years before I was born
::: Twitter

Heaptrack – A Heap Memory Profiler for Linux
::: Milian Wolff

Icann e Presidenza italiana
::: Luca De Biase

63987_874028509296232_2352054763715595096_n

Capire la privacy nel XXI secolo
::: Giuseppe Granieri

Remarkable: a nice markdown editor with live preview
::: The Ubuntu Incident

Bloqueurs de pub : ils ont trouvé la solution !
sì, ci sarebbe anche in inglese, a un click di distanza
::: CommitStrip

salvini

Samsung’s Open Source Group Is Growing, Hiring Developers
::: Slashdot

Gangnam Style Surpasses YouTube’s 32-bit View Counter
io ci ho anche fatto un post su PSY e Gangnam Style, parecchio tempo fa
::: Slashdot

“Programma il Futuro: Insegnare In Maniera Semplice Ed Efficace La Programmazione Informatica”
::: Scientificando ::: AdUmbria

B4AHRxqIcAAQ5a9

Google Fiber is growing slowly, by design
::: Engadget

Linux, 10 alternative open source ai più diffusi software commerciali
la novità è che viene da la Repubblica
::: la Repubblica

Si Chiama Blog
::: AcrossNowhere

B4CJGAjIUAAt3z_

Come spostare WordPress tra ambienti o nomi di dominio differenti
::: Otherplus Tech

[Video] Economia e Tecnologia del Bitcoin @ TAG Cosenza
::: Hacklab Cosenza

Programming Modern Systems Like It Was 1984
io ero tutto Fortran (quasi)
::: Programming in the 21st Century

meloniChinese CEO Says “Free” Is the Right Price For Mobile Software
::: Slashdot

How the NSA Is Spying On Everyone: More Revelations
::: Slashdot ::: Boing Boing

The Sony Pictures Hack Was Even Worse Than Everyone Thought
::: Slashdot

10603670_10152595705582639_5139133103005665388_n

Destover
::: SIAMO GEEK

È scoppiata la guerra informatica?
::: Comune-Info

Tests show modern SSDs can handle a thousands years of use
potrebbe farmi cambiare un’idea, e aggiornare il nuovo ‘puter
::: Engadget

10351916_776314009073079_3129360617891793220_n

Google, Amazon: la geopolitica dei dati e l’efficienza dei paesi
::: Luca De Biase

Cineca: dal supercomputing alla gestione dei big data
::: Luca De Biase

Why pro-systemd and anti-systemd people will never get along
::: uselessd

B4B3FCPIYAAy8_Y

Musica libera, questa sconosciuta
::: Dario Cavedon (iced)

Why Apple, Google, and FB Have Their Own Programming Languages
::: Slashdot

Iran, pronto sistema per identificare chi si collega al web
::: la Repubblica

10846166_10154923393845608_2177205140348452498_n

Troppi professionisti lavorano ancora con Windows XP, che fare?
::: Giovanni Longo

Multitasking
::: Twitter

B4BXJc6CMAA-GL5

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 82 follower