salesFinder

SalesFinder, un metodo facile e veloce per trovare offerte

Vi e’ mai capitato di voler cercare dei prodotti scontati su amazon che siano scontati minimo ad esempio del 50%?
Beh a me si, per questo motivo mi sono creato un applicazione per smartphone che ho deciso di condividere con tutti pubblicandola sul PlayStore.

L’applicazione

L’applicazione non fa altro che farvi scegliere la percentuale di sconto minima la categoria e il nome di quello che state cercando, e a seconda delle informazioni che gli darete generera’ un link che verra’ direttamente aperto e visualizzato nell’applicazione

Sviluppi futuri

Oltre a queste funzioni base, in futuro, grazie a un consiglio, l’applicazione permettera’ anche di vedere l’andamento dei prezzi di un certo prodotto nel tempo, per aiutare la gente a capire quando e’ meglio acquistare un certo bene.

Qualche Screenshot

Screenshot1
Screenshot2
Screenshot3
Screenshot4

Il link al Playstore

Qua a seguire vi lascio il link che rimanda all’applicazione che se riterrete utile, potrete aggiungere alle applicazioni del vostro smartphone.
Link all’applicazione:  SalesFinder

Qualche considerazione finale

L’applicazione e’ ancora in piena fase di sviluppo e per ora supporta unicamente lo store italiano, quindi in questi mesi potrebbe subire qualche drastica modifica, sia a livello grafico che a livello di funzionalita’.

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

L’uscita dei tutorial e’ in pausa ancora per un po’

Esami

Essando per me periodo esami e avendo fretta di laurearmi, sono costretto a mettere in pausa ancora per un po’ i tutorial e cercare di concentrarmi sullo studio.

Aiuti

in ogni caso, se avete qualche dubbio o volete un aiuto con qualcosa, sapete dove contattarmi ^^
 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Ludomedialogo1xm

Il social

Da qualche settimana, mi sono messo a frequentare questo social network di appassionati di videogiochi chiamato ludomedia.
Qui, parlando e leggendo topic nel forum, sono diventato consapevole del fatto, che molti videogiocatori oltre ad avere la passione dei giochi, hanno anche la passione per la creazione di essi.

Il sondaggio

Mi sono messo quindi a creare un sondaggio per vedere in quanti parteciperebbero attivamente al developing di un gioco, contribuendo con quello che possono. I risultati per ora sono stati abbastanza buoni, non mi aspettavo in meno di 24 ore di trovare cosi tanta gente.
Il sondaggio restera’ aperto fino a domenica/lunedi, e nel caso la gente disposta a mettersi in gioco sia abbastanza, si proseguira’ con varie scelte di progetto.
La maggior parte delle scelte verranno fatte tramite sondaggi, e ognuno sara’ libero di dire la sua.

le statistiche

capture

Nel caso voleste entrare a contribuire in qualche modo dire la vostra etc, potete sempre fare un salto su ludomedia e entrare nel forum 🙂

Ps: piu’ gente ci sara’ piu probabilmente sara’ difficile l organizzazione e ci dovremo dividere in team piu’ piccoli per tenere tutto organizzato per bene.

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Merge Sort

In questo breve tutorial andremo a vedere implementazione, funzionamente e spiegazione dell’algoritmo merge sort.

Ingredienti

 

Merge sort: Cosa e’? A cosa serve?

Merge sort e’ un algoritmo di ordinamento con una complessita’ minore rispetto agli altri algoritmi di ordinamento visti fino ad ora.
Difatti, nel caso pessimo, in mergesort avremo comunque una complessita’ nlog(n).

Merge sort: Come funziona?

Merge sort, sfruttando la tecnica del divide et impera, divide il problema piu’ grande che in questo caso sarebbe l’array preso per intero in due parti.
In questo modo si va a creare 2 sottoproblemi, altri due array ai quali andra’ ad applicare la stessa tecnica, fino ad arrivare a una serie di array formati da 2 elementi (“fino ad arrivare al problema minimo”).
Una volta arrivato ad avere i vari sottoarray composti da due elementi, va a confrontare i valori interni ad essi ordinandoli in modo crescente/decrescente a seconda di come abbiamo deciso di andare ad ordinare l’array.

Ordinati tutti i vari sotto-array, mettiamo caso che io abbia 3 array cosi composti : 2-4 | 3-7 | 5-6.

Quello che andra’ a fare ora merge sort sara’ “fondere” questi array in maniera ordinata.
Andra’ quindi a confrontare il 2 del primo array con il 3 del secondo array e, vedendo che il 2 e’ gia’ minore del 3, non avra’ bisogno di andarlo a confrontare anche con il 7, in quanto sappiamo gia’ che il 3 e’ gia minore di 7.

Una volta confrontato il 2, l’algoritmo andra’ a confrontare il 4 con il 3, vedra’ che e’ maggiore, e quindi sara’ costretto a confrontarlo anche con il 7.
Vedra’ che questi e’ minore e quindi il 4 andra’ a prendere il posto del 3 andando a creare l’array formato da 4 elementi cosi composto: 2-3-4-7.

Quello che andra’ a fare ora l’algoritmo sara’ fondere i due sotto array rimanenti “2-3-4-7 | 5-6” utilizzando lo stesso metodo.

Vi allego un’immagine presa da wikipedia per farvi capire meglio:
animazionemergesort

Merge sort: Implementiamolo in c per capire meglio

 

 

#include ;
#define max 5

int a[6] = { 2, 4, 3, 7, 5, 6};
int b[6];

void merging(int low, int mid, int high) {
int l1, l2, i;
for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
if(a[l1] <= a[l2])
b[i] = a[l1++];
else
b[i] = a[l2++];
}

while(l1 <= mid)
b[i++] = a[l1++];

while(l2 <= high)
b[i++] = a[l2++];

for(i = low; i <= high; i++)
a[i] = b[i];
}

void sort(int low, int high) {
int mid;

if(low < high) {
mid = (low + high) / 2;
sort(low, mid);
sort(mid+1, high);
merging(low, mid, high);
} else {
return;
}
}

int main() {
int i;

printf("List before sorting\n");

for(i = 0; i <= max; i++)
printf("%d ", a[i]);

sort(0, max);

printf("\nList after sorting\n");

for(i = 0; i <= max; i++)
printf("%d ", a[i]);
}

Il codice stavolta l ho preso da tutorialspoint potete provarlo con un compilatore e otterrete il seguente output:

List before sorting
2 4 3 7 5 6 
List after sorting
2 3 4 5 6 7

 

 

alghoritmtable

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Bubble sort

Bubble Sort

Ingredienti

 

Bubble sort: Cosa e’? A cosa serve?

Bubble sort e’ un’altro algoritmo di ordinamento per array che puo’ andare a sostituire il precedente caso visto “Select Sort”.

Perche’ proprio bolla? Beh, come andremo a vedere di seguito, i vari elementi si potranno andare a identificare come varie “bollicine”, le quali a seconda del loro peso verranno spostate all’interno dell’array.

 

Bubble sort: Come funziona?

Dando in pasto alla funzione Bubble Sort un’array disordinato o non, questa funzione, andra’ a confrontare ogni elemento dell’array con il suo elemento adiacente, e andra’ a scambiarli di posto  a seconda del loro peso.

Per esempio:

Prendiamo in considerazione l’array: 4 – 3 – 1 – 2.

Quello che fara’ la funzione all’array sara’ andare a confrontare il 4 con il 3 vedere che il 4 e’ maggiore di 3 e che quindi pesa di piu’ del 3, e spostera’ il valore maggiore a destra di quello minore, quindi dopo il primo passaggio avremo: 3 – 4 – 1 – 2.

Fatto questo ripetera’ l’operazione andando a confrontare il 4 con l 1 e poi il quatro con il 2 fino a ottenere l’array : 3 -1 – 2 – 4.

Fatto il primo passaggio, ci ritroveremo con l’elemento piu’ pesante dell’array, cioe’ nel nostro caso il 4 all’estremita’ destra dell’array, e potremo andare a ripetere l’operazione per il “sotto array” 3  -1 – 2 che ci e’ rimasto.

Per farvi capire meglio vi mostro questa gif animata presa da WikiPedia.

bubble-sort-example-300px

 

Bubble sort: In che modo trova l’elemento piu’ piccolo?

Non si puo’ esattamente dire che bubble sort vada a trovare l’elemento piu’ piccolo di un’array, va semplicemente a spostare gli elementi piu’ grandi nel fondo dell’array come bollicine che risalgono dal fondo del mare.

Ovviamente una volta messi tutti i valori piu’ grandi del valore piu’ piccolo al loro posto avremo trovato il valore piu’ piccolo dell’array.

Bubble sort: Implementiamolo in c per capire meglio

int main()
{
int array[10] = {3,7,9,2,1,4,5,6,8,0};
int n, c, d, swap;

for (c = 0 ; c < 10; c++)
{
for (d = 0 ; d < 10 - c - 1; d++)
{
if (array[d] > array[d+1]) /* For decreasing order use < */
{
swap       = array[d];
array[d]   = array[d+1];
array[d+1] = swap;
}
}
printf("\npassaggio numero %d\n",c);
for ( int i = 0 ; i < 10 ; i++ )
printf(" %d -", array[i]);
}

printf("\n\n Array ordinato:\n");

for ( c = 0 ; c < 10 ; c++ )
printf("%d -", array[c]);

return 0;
}

Se provate a eseguire questo codice, avrete un bubblesort funzionante che vi mostrera’ tutti i passaggi dell’ordinamento.
La variabile “swap” e’ una variabile d’appoggio che ci permette di scambiare i due valori confrontati nel caso ce ne sia bisogno.

 

 

alghoritmtable

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Visto che con i tutorial in c siamo arrivati a parlare di array, con questo nuovo tipo di tutorial, iniziero’ a farvi vedere i principali algoritmi di ordinamento partendo dal selection sort.

 

Selection Sort

Ingredienti

 

Selection sort: Cosa e’? A cosa serve?

Selection sort e’ un algoritmo che ci permette di ordinare gli elementi interni a un’array, opera sul posto e il suo tempo di esecuzione dipende unicamente dalla dimensione dell’array.

 

Selection sort: Come funziona?

Partendo da una sequenza completamente disordinata, selection sort andra’ a cercare l’elemento piu’ piccolo dell’array e lo spostera’ all’inizio di esso, per cosi iniziare a creare una sequenza ordinata.

esempio:

Abbiamo l’array composto da questi numeri: 4 – 3 – 1 – 2.

Selection sort andra’ a cercare l’elemento piu’ piccolo dell’array e lo spostera’ nella prima posizione, quindi l’array diventera’: 1 – 3 – 4 – 2.

A questo punto selection sort andra’ a ignorare la prima posizione, alla quale e’ gia’ stato assegnato il valore minore, e andra’ invece a lavorare nelle restanti ancora disordinate, quindi nel nostro secondo passaggio,

ignorera’: 1

e lavorera’ sull’array: 3 – 4 – 2

andando a cercare nuovamente su di esso l’elemento minore spostandolo all’inizio e

facendo diventare l’Array : 2 – 4 – 3

Il processo continuera’ a ripetersi fino a che l’array da “ignorare” perche’ gia ordinato sara’ pieno e l’array sul quale lavorare perche’ ancora disordinato sara’ vuoto.

 

Selection sort: In che modo trova l’elemento piu’ piccolo?

Come potete dal “balletto” soprastante, l algoritmo non fa altro che comparare tutti gli elementi con l’elemento ritenuto fino ad ora il piu’ piccolo.

Nel caso ne andasse a trovare uno minore quello andrebbe a prendere il suo posto.

 

Selection sort: Implementiamolo in c per capire meglio

#include ;
#include <stdbool.h>
#define MAX 4

int intArray[MAX] = {4,3,1,2};

void printline(int count) {
int i;

for(i = 0;i <count-1;i++) {
printf("=");
}

printf("=\n");
}

void display() {
int i;
printf("[");

// navigate through all items
for(i = 0;i<MAX;i++) {
printf("%d ", intArray[i]);
}

printf("]\n");
}

void selectionSort() {

int indexMin,i,j;

// loop through all numbers
for(i = 0; i < MAX-1; i++) {

// set current element as minimum
indexMin = i;

// check the element to be minimum
for(j = i+1;j<MAX;j++) {
if(intArray[j] < intArray[indexMin]) {
indexMin = j;
}
}

if(indexMin != i) {
printf("Items swapped: [ %d, %d ]\n" , intArray[i], intArray[indexMin]);

// swap the numbers
int temp = intArray[indexMin];
intArray[indexMin] = intArray[i];
intArray[i] = temp;
}

printf("Iteration %d#:",(i+1));
display();
}
}

main() {
printf("Input Array: ");
display();
printline(50);
selectionSort();
printf("Output Array: ");
display();
printline(50);
}

Se provate a eseguire questo codice, dove MAX sta a indicare il numero di elementi degli array e  1,2,3,4 sono gli elementi interni all’array, vedrete passo per passo i vari risultati dell’algoritmo.

Complessita’ dell’algortimo

Di certo questo non e’ l’algoritmo migliore per andare a ordinare un’array, difatti risulta essere molto lento rispetto ad altri, qui vi riporto il link con i vari paragoni http://bigocheatsheet.com/.

alghoritmtable

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Copertine di Topolinoscan_pic0007

Visto che con gli anni stavano iniziando a rovinarsi, per non perdere le illustrazioni ho deciso di scannerizzare e di condividere su internet delle vecchie cover di vecchi topolini in mio possesso 🙂

 

« 1 di 5 »

Software per tenere pulito il vostro pc

Con questo articolo vengo a consigliarvi dei software che da circa 3/4 anni ritengo siano i migliori per la sicurezza e la pulizia del vostro pc.

 

 

Iobit

Iobit ci mette a disposizione una vasta gamma di prodotti per la pulizia e la protezione del nostro pc.

Benche’ vi siano due versioni, quella gratuita e quella a pagamento, la versione gratuita non si fa mancare niente.

 

Advance System Care

advancesystemcare

 

Advance system care, prodotto della Iobit, andra’ a scannerizzare il nostro intero sistema alla ricerca di errori, possibili minacce e file inutili, per cosi poi poterne fare una pulizia completa.

E’ direttamente scaricabile dal loro sito, e una volta installato migliorera’ notevolmente le prestazioni del vostro computer, anche grazie all’opzione “attiva turb boost”, che chiudera’ finche non disattivata, servizi “inutiili” che potrebbero utilizzare le vostre risorse.

E’ direttamente scaricabile dal loro sito ufficiale qui vi riporto il Link: AdvanceSystemCare.

 

Iobit Malware Fighter

malwarefighter

 

Io bit ci fornisce anche un buon antiVirus, molto leggero, sfortunatamente sempre in due versioni, versione pro e versione free.

Entrambe le versioni del software sono in ogni caso due potenti strumenti per lasciare sicuro il computer.

Qui il link: MalwareFighter

 

Smart Defrag

smartdefrag

 

Sicuramente, un’altro metodo per velocizzare e tenere in ordine il nostro computer, e’ la deframmentazione, con smart defrag potete scegliere se andare a eseguire una deframmentazione veloce(meno efficace), o una deframmentantazione completa (lenta ma molto efficace).

Anche questo prodotto della IObit viene in due versioni, una gratuita e una a pagamento, ma restano entrambe valide opzioni.

Qui il link: SmartDefrag

 

Driver Booster

driverbooster

Se volete un metodo veloce e sicuro per tenere aggiornati i vostri driver, vi consiglio DriverBooster, andra’ a scannerizzare il vostro intero sistema, e controllera’ nel suo database la presenza di possibili aggiornamenti, e nel caso vi fossero, non dovrete far altro che premere “update”.

Risulta uno strumento veramente comodo e veloce, basta aprirlo e fa tutto da se.

Ecco il link al software: DriverBooster

 

 

Piriform

 

CCleaner

ccleaner

Anche la Piriform ci offre una valida alternativa per tenere pulito il nostro computer, unica pecca, e’ che la versione free non si puo’ ritenere potente quanto la versione free di AdvanceSystemCare, ma risulta essere sicuramente un’alternativa piu’ leggera.

Ecco il link al software: CCleaner

 

 

Considerazioni Finali

Solitamente, senza un software di pulizia, nel caso molto utilizzato, un sistema operativo come Windows finisce inevitabilmente con lo sporcare molto il nostro pc e rallentarlo, quindi e’ molto consigliato avere uno strumento di ottimizzazione.

Per qualche periodo ho tenuto installati nel mio computer sia CCleaner che AdvanceSytemCare ma non avete bisogno di entrambi, vi consiglio di installarne solo uno a seconda delle vostre necessita’.

PS: nel caso non utilizziate molto il pc per giocare o usare software specifici come i prodotti dell’Adobe, vi consiglio di prendere in considerazione di passare all’utilizzo di una distribuzione di Linux che alla fine sono tutte facili c’e’ solo bisogno di un po’ di pratica.

Tutti i Link

AdvanceSystemCare

MalwareFighter

SmartDefrag

DriverBooster

CCleaner

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Gli array

 

array

 

In questo tutorial andremo a conoscere gli array.

 

Ingredienti:

 

Che cos’e’ un array?

Possiamo vedere un’array come un’insieme di elementi dello stesso tipo dove ogni elemento e’ collegato a una locazione ben precisa.

Possiamo per esempio avere un insieme di 10 interi disposti nel seguente ordine { 0,1,2,3,4,5,6,7,8,9 } se volessimo rappresentarlo nel linguaggio c andremo a scrivere int numeri[10] = { 0,1,2,3,4,5,6,7,8,9 }.

Dove il numero 10 sta a indicare la grandezza degli array, mentre dentro le graffe abbiamo i vari elementi dell’array separati da una virgola.

Nel caso volessi recuperare il numero 0 dell’array mi basterebbe indicarne nell’indice la posizione ora, abbiamo messo lo 0 nella prima posizione del nostro array, quindi nel caso volessi andarlo a recuperare, mi basterebbe usare “numeri[0]”, ricordatevi che si inizia a contare sempre dallo 0 e non dall’1.

 

Implementiamo e stampiamo un’array

Avendo piu’ o meno capito cosa e’ un’array, ora proviamo a implementarlo, assegnargli degli elementi e andarlo a stampare sulla nostra console.

Come esempio vi propongo un codice base:
#include ;

int main()
{
int numeri[10] = {0,1,2,3,4,5,6,7,8,9};

for(int i=0; i<10;i++)
printf("%d",numeri[i]);

return 0;
}

In questo esempio, sfruttiamo un for per sfogliare e visitare tutto l'array in modo da andare a stampare tutti i suoi elementi interni.

 

Implementazione dinamica di un'array

Ora, stare ogni volta a scrivere ogni elemento interno dell'array, puo' diventare un'attivita' dispendiosa, sopratutto quando si va a lavorare con array di grandi dimensioni.

Per risolvere questo problema, possiamo inserire dinamicamente i valori all'interno del nostro array, ad esempio, nel nostro caso, dove abbiamo int numeri[10] = {0,1,2,3,4,5,6,7,8,9}, l'implementazione potrebbe avvenire in questo modo:

#include <stdio.h>

int main()
{
int numeri[10];

for(int i=0; i<10;i++){
numeri[i] = i;
printf("%d",numeri[i]);
}
return 0;
}

Andiamo a implementare i valori del nostro array direttamente nel nostro for sapendo che la funzione che collega i valori degli array agli indici e' f(x) = x dove f(x) rappresenta il valore interno, mentre la x rappresenta l'indice.

Ad esempio, volessimo cambiare e andare invece a salvare dentro il nostro array la tabellina del 2, avremo un f(x) = 2x, e quindi riscriveremo il codice semplicemente cosi:

#include <stdio.h>

int main()
{
int numeri[10];

for(int i=0; i<10;i++){
numeri[i] = 2*i;
printf("%d",numeri[i]);
}
return 0;
}

Ogni qual volta i valori interni al nostro array sono collegati in qualche modo (modo che e’ possibile riscrivere matematicamente), e’ bene utilizzare l implementazione dinamica, magari andando con un commento a dire cosa si sta andando a salvare per maggiore chiarezza.

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

GTribe

Ogni 3/4 mesi nella comunity di GamingTribe, si tiene un massive giveaway.

Ieri 25 ottobre 2016 si e’ aperto quello di quest’anno, questa volta in palio ci sono 4 pc fissi completi di mouse, tastiera e cuffie professionali.

gtribe-giveaway

 

In totale i 4 premi valgono piu’ di 2000 dollari ciascuno per un totale che va oltre gli 8000 dollari, di seguito vi riporto le caratteristiche del pc:

System Components

Chassis: Syber M ATX Mid-Tower Gaming Case w/ USB 3.0 & Side-Panel Window
CPU: AMD FX-8370 4.0 GHz (4.3 GHz Turbo) Black Edition 8 Core Processor
CPU Cooling: Swiftech H220-X2 Prestige Liquid CPU Cooler w/ ALED lighting
GPU: AMD Radeon RX 480 tuned by XFX w/ Custom Backplate – Black Edition OC 1328 MHz 8GB GDDR5 HDMI 3XDP
GPU Cooling: Swiftech Komodo RX480 Liquid GPU Cooler w/ ALED lighting
Motherboard: GIGABYTE GA-990FX-Gaming (rev. 1.1) AMD AM3+/ AM3 SATA 6GB/s USB 3.1 with USB Type-C Rivet Networks Killer E2400 LAN chip ATX Motherboard
Memory: Kingston HyperX Fury Memory Black 16GB 2X8GB DDR3-1866 CL10 Dual Channel RAM
System Drive: HyperX Fury 2.5″ 240GB SATA III Internal SSD
Storage Drive: Seagate FireCuda 2TB 7200 RPM 64MB Cache SATA 6.0Gb/s 3.5″ Gaming SSHD
Optical Drive: LG 14X Internal Blu-ray Burner, BD-RE, 3D Playback DVD+RW Combo Drive
Power Supply: Seasonic PRIME 850W 80 PLUS Titanium w/ Premium Hybrid Fan Control PSU

 

Software

OS: Windows 10 Home 64-bit Edition

Logitech Gear

Keyboard: Logitech G213 Prodigy Gaming Keyboard
Mouse: Logitech G403 Prodigy Wireless Gaming Mouse
Mousepad: Logitech G440 Hard Mousepad
Headset: Logitech G231 Prodigy Gaming Headset

Craftsmanship

System Integrator: Handcrafted in the USA by CyberPowerPC
Warranty: CyberPowerPC 1 Year Parts & Lifetime Technical Support

PC Game

Electronic Arts: Battlefield 1 (offered by Kinguin)

 

Enter The GiveAway

Per entrare nel giveaway e avere maggiori informazioni fate click QUI

Il giveaway terminera’ il 2 Dicembre.

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+