Semplice modo per criptare e decriptare messaggi in rot13 con il linguaggio di programmazione python.
1 2 3 4 5 |
#!/usr/bin/env python2 import sys print("hello world").encode("rot13") print("uryyb jbeyq").decode("rot13") |
Semplice modo per criptare e decriptare messaggi in rot13 con il linguaggio di programmazione python.
1 2 3 4 5 |
#!/usr/bin/env python2 import sys print("hello world").encode("rot13") print("uryyb jbeyq").decode("rot13") |
Oggi vediamo come usare la libreria boost per leggere e filtrare il nostro json in modo semplice e intuitivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Includo le librerie #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> #include <iostream> int main(){ // Creo il root boost::property_tree::ptree root; // Carico il file json in tree boost::property_tree::read_json("test.json", root); // Metto un filtro nel json per ottenere quello che voglio std::string msg = root.get<std::string>("result.first_name"); // Stampo risultato std::cout << msg << std::endl; return 0; } |
File test.json
1 |
{"ok":true,"result":{"id":123456789,"first_name":"TelegramBot","username":"TelegramBot"}} |
Oggi vediamo un esempio di come usare la nuova feature di QT 5.8 che da la possibilità di creare un vero proprio “text to speak” (TTS).
Postero solo il codice interessato senza dichiarazioni ma non vi preoccupate e possibile scaricare intero mini progetto a questo collegamento.
mainwindows.cpp
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 |
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //Collego il bottone al metodo privato talk connect(ui->talk_button,SIGNAL(clicked(bool)),this,SLOT(talk())); } void MainWindow::talk(){ //Se il testo e nulla genera errore se no riproduce il testo passato if(ui->talk_line->text() == ""){ QMessageBox messageBox; messageBox.information(0,"Error","Impossibile usare talk se talk_line e vuoto"); }else{ m_speech.say(ui->talk_line->text()); } } MainWindow::~MainWindow() { delete ui; } |
Oggi vediamo come aprire un cdrom con il python.Questo codice apre e chiude di continuo il cd rom (Ottimo per uno scherzo :D).
Oppure è ottimo per cullare il proprio figlio come in questo video 😀
1 2 3 4 5 6 7 8 9 10 11 |
import os, time time.sleep(4) while 1: try: os.system("eject cdrom") time.sleep(4) os.system("eject -t cdrom") except: print "Errore" |
Oggi vediamo come validare una email con il c++ grazie alle regular expression.
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 28 29 30 31 32 33 |
// Includo le librerie string,io e regex per le regular expression #include <iostream> #include <string> #include <regex> #include <string> // Funzione che passata una stringa confronta con la regular expression // La funzione ritorna un booleano se è andato buon fine (1) o no (0) bool mailcheck(std::string mail){ std::regex e ("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})$"); if (std::regex_match (mail,e)){ return 1; }else{ return 0; } } int main () { std::string mail; std::cout << "Inserisci una mail da validare " << std::endl; std::cin >> mail; //Chiamata alla funzione if(mailcheck(mail)){ std::cout << "Email valida" << std::endl; }else{ std::cout << "Email non valida" << std::endl; } return 0; } |
Stupido esempio di come chiamare un shell command con il c. Ovviamente il codice e’ scritto sempre in modo che sia facile da capire ma in ambito di professionale eviterei di usare la funzione system!!!
Per maggiori informazioni guardare la documentazione officiale di stdlib
1 2 3 4 5 6 7 8 9 10 |
//Includo librerie #include <stdio.h> //printf #include <stdlib.h> //system int main(){ printf("Esempio di come lanciare una shell in C"); //Chiamo la mia system shell system("/bin/sh"); } |
Oggi vediamo come poter usare la webcam in c++ con la libreria opencv.
Per maggior informazioni guardare la documentazione officiale di opencv 5 oppure la versione precedente opencv 4.
Passiamo al codice:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
//Includo Librerie e namespace #include <opencv2/opencv.hpp> #include <iostream> #include <stdio.h> using namespace cv; using namespace std; int main(int, char**) { Mat frame; //Inizializzo VideoCapture VideoCapture cap; // Apro la camera di default cap.open(0); int deviceID = 0; //Legge automaticamente api di default int apiID = cv::CAP_ANY; //Apro la camera con api selezionato cap.open(deviceID + apiID); //Controlo se e aperta se no stampo errore if (!cap.isOpened()) { cerr << "ERROR! Unable to open camera\n"; return -1; } cout << "Start grabbing" << endl << "Press any key to terminate" << endl; //loop infinito for (;;) { //Aspetto il nuovo frame dalla camera e lo conserva in frame cap.read(frame); //Controlla se e andato tutto bene if (frame.empty()) { cerr << "ERROR! blank frame grabbed\n"; break; } //Guarda il live e aspetta il tasto da tastiera con timeout per vare vedere le immagini imshow("Live", frame); if (waitKey(5) >= 0) break; } return 0; } |
Creazione del file CMakeLists.txt
1 2 3 4 5 |
cmake_minimum_required(VERSION 2.8) project( Camera ) find_package( OpenCV REQUIRED ) add_executable( Camera opencv.cpp ) target_link_libraries( Camera ${OpenCV_LIBS} ) |
Poi andiamo nella cartella del progetto ed eseguiamo i seguenti comandi
1 2 3 |
cmake . make ./Camera |
Oggi vediamo come usare md5 con il linguaggio di programmazione lua.
Ma prima di tutto installiamo il nostro modulo md5 con il comando
1 |
sudo luarocks install md5 |
Ora passiamo al codice vero e proprio:
1 2 3 4 5 6 |
--Includo Libreria md5 appena installata luarocks local md5 = require 'md5' --Setto la variabile con un stringa esadecimale di md5 local md5_hex = md5.sumhexa("Prova") --Stampo il risultato print(md5_hex) |
Tempo fa avevo fatto un banalissimo programmare per testare la velocità del nostro codice oggi vediamo una soluzione più professionale.
Una libreria ottima per iniziare ha capire i coni di bottiglia che possono far rallentare il nostro programma è la libreria profiler di python.
Un profiler è un programma che descrive le prestazioni in fase di esecuzione di un programma, fornendo una gran numero di statistiche.
Questo profiler realizza un profilo deterministico di qualsiasi programma Python.
Esso inoltre mette a disposizione tutta una serie di strumenti per la generazione di rapporti che permettono agli utenti di esaminare rapidamente i risultati di un’operazione di profilatura.
Ora passiamo al codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#Includo librerie import pstats import profile #La nostra funzione che testeremo def function_test(number): test = 1 while (test < number ): print(number) number = number -1 if __name__ == "__main__": p = profile.Profile() p.run('function_test(5000)') print("---------- Personalizziamo -----------") #Rivediamo il nostro profile s = pstats.Stats(p) #Mettiamo qualche personalizzazione di stampa #Qui ordiniamo per nome s.sort_stats('name') #Oppure come preferisco io ordinare sapere quale funzione effettua più cicli e consuma molto piu tempo s.sort_stats('time') #Stampo s.print_stats() |
Come sempre consiglio di guardare la documentazione ufficiale al seguente link per una maggior padronanza della libreria.
Oggi parliamo di lua.
Perchè nel 2016 dovrei usare lua al posto di python,ruby,php ecc….
Bhè semplice lua è molto piccolo oltre che essere velocissimo nei benchmark batte qualsiasi linguaggio interpretato e nella versione just in time è paragonabile ai linguaggi compilati ed ha una sintassi molto facile e intuitiva .
Poi lua è molto semplice e flessibile facile da integrare con librerie esterne con più 20 anni di storia alle spalle è un linguaggio maturo e stabile molto usato specialmente nel gaming.
Ora vediamo un semplice esempio di lettura e scrittura che per praticità ho costruito 2 funzioni.
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 28 29 30 31 32 33 34 35 |
--Includo la libreria per gestire input e output local open = io.open --Funzione locale per leggere file local function read_file(path) --Legge il file in R = read mode B = binary mode local file = open(path, "rb") if not file then return nil end --*a oppure *all legge intero file local content = file:read "*a" file:close() return content end --Funzione locale per scrivere il file local function write_file(path) --Apro il file in w write mode local file = open(path, "w") if not file then return nil end --Scrivi local content = file:write("<html><head>Lua</head><body><p>Leggi e Scrivi file in lua</p></body></html>") file:close() return content end -- Scrivo il file out.html write_file("out.html") -- Leggo il file prova.html local readContent = read_file("prova.html") print (readContent); -- Leggo il file out.html local readContent = read_file("out.html") print (readContent); |
We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.
Cookie | Durata | Descrizione |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |