Arduino – Best of Super Mario Bros (2 Voci)

Nei prossimi articoli approfondiremo l’argomento Arduino, la generazione di suoni, e molto altro…

Ma per ora limitiamoci ad attirare la vostra attenzione… Godetevi un assaggio, presentandovi il primo progetto creato da noi, per voi:

Apri il video in un altra finestra: https://www.youtube.com/watch?v=FuwiWEiv8_Y

Il codice sorgente di questo video è disponibile liberamente. Dovrebbe essere scontato, ma per usarlo devi possedere un Arduino, insieme a Sketch per Arduino.

Se desideri utilizzare il codice:

  1. Scarica il codice Download Super Mario Sketch
  2. Decomprimilo (è compresso in zip)
  3. All’interno troverai due cartelle:
    La prima è “Super_Mario“: Contiene il codice.
    La seconda è “Tone“: Contiene una libreria
  4. Per installare la libreria”Tone” guarda qui, oppure qui.
  5. Ora puoi usare il codice contenuto nella cartella “Super_Mario“.

Per usare il codice c’è bisogno di due speaker connessi su due pin PWM~ (nell’immagine sono 11 e 12. Se nel tuo Arduino essi non sono PWM puoi anche usare degli altri. In questo caso dovrai aggiornare il codice). Se vuoi puoi cambiare la velocità connettendo anche un trimmer (un potenziometro) alimentandolo con 5V e connettendo la sua base al pin A0 (analog in). Non scordardi di proteggere entrambi gli speaker con una piccola resistenza (nel disegno è R, circa 27Ω).

Super Mario per Arduino - Schema

Buon divertimento!

Un ringraziamento molto speciale a Joseph Karam, creatore degli spartiti sul sito mariopiano.com di cui abbiamo trascritto manualmente tutte le note musicali convertendole in codice Sketch per realizzare questo progetto fedelmente alle musiche di Super Mario.

Automatizzare mouse e tastiera di un PC

Possono capitare situazioni in cui sarebbe comodo registrare una sequenza di azioni da mouse e tastiera, da poter far ripetere al PC quante volte si vuole, a che velocità si vuole e in che momento si vuole.

Uno dei migliori programmi per fare tutto questo è MacroMaker. Con MacroMaker chiunque può automatizzare il proprio PC.

Purtroppo nel momento della scrittura di questo articolo MacroMaker supporta soltanto Windows 95, 98, NT, 2000, 2003 e XP… Nelle versioni successive a XP (come Vista,  7 e 8…) MacroMaker potrebbe non funzionare affatto.

MacroMaker - Automatizza il tuo PC
MacroMaker

Iniziamo subito a provare MacroMaker se abbiamo una versione di Windows compatibile, e scarichiamolo dal sito ufficiale:

Andiamo nella cartella dove è stato scaricato, (C:/Documents and Settings/Nome Utente/Documenti/Download), ed estraiamolo.

Click destro in Windows XP su un file zippato

In seguito entriamo nella cartella estratta e lanciamo l’installazione aprendo il file MacroMakerInst.msi. Se l’installazione non termina correttamente, probabilmente sono da eseguire anche i restanti file contenuti nella cartella estratta, prima di rilanciare MacroMakerInst.msi.

Dopo l’installazione sarà visibile nella barra delle applicazioni la seguente icona:

Barra Applicazioni Windows XP - MacroMaker

Significa che MacroMaker è operativo, ed è pronto per essere configurato.

Cliccando su di essa finalmente si aprirà l’interfaccia del programma.

MacroMaker Screenshot

  1. Dall’Add di destra, si può decidere di fare una registrazione di azioni (mouse/tastiera).
  2. Dall’Add di sinistra, si può creare le macro da eseguire (e includere le registrazioni fatte da destra).
  3. In seguito si salva e si Esegue.

Lasciamo alcuni video per poter addentrarsi nel programma più facilmente. Buon utilizzo

Come intasare un PC – Reyboz Directory Invader 2012

Ho scoperto nel cassetto un simpatico programma che avevamo realizzato per fare uno scherzo incoscenzioso ad una persona… Un programma molto banale che creava cartelle a non finire, ma arricchito con un simpatico regolatore di trasparenza (per nascondere la finestra), nonchè di un algoritmo che faceva in modo che il computer rimanesse stabile durante l’intera creazione.

Il programma è molto semplice:

  1. Scegli una cartella di destinazione (Ad esempio il Desktop)
  2. Decidi il nome che avranno le tue cartelle (Consecutive, o casuali)
  3. Modifichi la quantità (una, cinquecento, o 1 milione…)

E crei!

Crea - Reyboz Directory Invader 2012

Ecco come appare il mio Desktop dopo aver usato Reyboz Directory Invader.

Screenshot 1 - Reyboz Directory Invader - 2012

Screenshot 1 - Reyboz Directory Invader - 2012

Buona invasione!

Installare Mac OS X Leopard su PC (Guida alla creazione di un Hackintosh)

Vorrei specificare che questo articolo non è stato scritto per favorire e/o incitare la pirateria informatica ma bensì a puro scopo informativo. Lo staff non si avvale di alcuna conseguenza.

Breve introduzione all’argomento

Con il termine Hackintosh intendiamo un comune PC che monta il sistema operativo Machintosh utilizzabile in norma esclusivamente su un computer di marca Apple.
Stiamo dunque parlando di come installare Mac OS X Leopard su un banalissimo PC.

L’installazione di un Hackintosh si basa su due programmi: iDeneb o iAtkos; entrambi offrono un’installazione di Mac simile tra loro.

Ho paura di “rovinare” il PC che faccio?

(Precauzioni)

Un consiglio che posso dare a chi sceglie di intraprendere la strada di un Hackintosh è quella di munirsi di una copia di backup del proprio Hard-Disk così che anche in caso di errori durante l’installazione vi basterà formattare e ripristinare il computer allo stato precedente senza perdere neppure un file. Per farlo vi consiglio Acronis True Image che è un buonissimo programma ma potete trovarne molti altri facilmente on-line. Così anche la possibilità di “rovinare” il PC sarà impossibile!

Mac e Windows insieme sullo stesso PC

Possibile? -Il “Dual Boot”

Certamente! Non crediate che installare Mac OS X Leopard sul proprio computer voglia dire perdere definitivamente Windows (o il vostro qualsiasi OS precedente), infatti entrambi possono convivere senza alcun conflitto sullo stesso PC.
Come? Semplice: immaginando di “dividere” in due il nostro Hard-Disk (ottenendo così due “partizioni”) dove su una resterà Windows e sull’altra andremo ad installare Mac.
In questo modo all’avvio del computer si presenterà un Boot Loader ovvero una schermata che ci permetterà di scegliere con quale partizione avviare il PC, così potremo scegliere se usare Windows o Mac!
Più semplice di così…

Screenshot Charmeleon Boot Loader

Per creare partizioni vi consiglio di utilizzare questo programma scaricabile da qui.

Requisiti minimi

  • Processore Intel o AMD
  • 500 mb di Ram
  • 30 gb di HD o partizione

Prima di cominciare

Prima di cominciare è indispensabile sapere con precisione nome e modello di:

  • Scheda madre
  • Scheda di rete
  • Scheda video
  • Scheda audio
  • Wi-Fi

Controllate inoltre se la vostra CPU supporta le funzioni SSE2 e SSE3.

Per fare tutto questo utilizzate un programma come Everest scaricabile da qui.

Screenshot Everest Ultimate Edition

Occorrente

  • Un DVD vergine
  • Una copia di un file immagine (una .ISO di iAtkos “o” di iDeneb)

Scaricabile da qui:

  • iAtkos
  • iDeneb
  • Una partizione dell’Hard-Disk (solo se avete scelto di creare un dual boot)
  • Tanta pazienza e un’oretta libera

Procedimento

(1)

Masterizzate l’Immagine ISO scaricata sul DVD vergine. Se avete Windows potete utilizzare Nero o Burn Aware scaricabile gratuitamente da qui.

Selezionando Masterizza immagine ISO.

Assicuratevi di masterizzarla a una velocità bassa (2x / 4x) in modo da evitare intoppi e blocchi nel susseguirsi dell’installazione.

(2)

Inserite il DVD nel lettore CD-DVD del vostro computer e riavviate.

(3)

Avviate il computer e fate il boot da CD.

Per farlo ci sono 2 modi: Il primo consiste nel settare il proprio Bios in modo che all’avvio automaticamente il PC sia impostato per fare il boot da CD il secondo consiste nell’accedere al Boot Loader cliccando (nel mio caso F12) appena dopo la schermata della marca del proprio PC.

Ok… Ora siamo arrivati al bivio: Seppur come ho detto prima l’installazione di entrambi i programmi sia simile distinguerò entrambe per rendere questa guida ancor più semplice e ben dettagliata. Starà a voi capire quale dei due si adatta meglio al vostro computer.

Screenshot Boot Loader Bios

Installazione di iDeneb v.1.6

– Dopo il boot da DVD apparirà una schermata nera con delle scritte bianche,come vi viene richiesto premete un qualsiasi tasto e così apparirà una schermata grigia con la mela della Apple bianca nel mezzo,sotto sarà visualizzato un logo di caricamento che durerà 5 minuti circa.

– Al termine di questa schermata vi accoglierà una nuova con una finestra che vi chiederà quale lingua utilizzare per il processo di installazione, selezionatela e cliccate su avanti.

– Dopo un breve caricamento vi troverete davanti una schermata di benvenuto che per il momento dovete ignorare per cliccare nella barra in alto su Utility poi Utility Disco.

– Nella nuova pagina andate a selezionare l’HD o la partizione sulla quale volete che venga installato Mac e selezionate in alto tra le 4 caselle la seconda partendo da sinistra (Erase /Inizializza).

Nel primo dei 2 campi selezionate dal menù a tendina il primo di tutti i formati ovvero Mac OS Esteso Journaled. Cliccate poi in basso a destra su Inizializza / Erase e di nuovo in una piccola finestrella che vi si presenterà nell’alto.

– Si avvierà così un breve caricamento in basso a destra. Quando è terminato cliccate su esci da Disk Utility in alto a sinistra accanto alla mela.

– Ritornerete così alla pagina di benvenuto sulla quale ora dovete selezionare continua.

-Ora cliccate su accetta per accettare la licenza.

– Una nuova pagina vi chiederà ora su quale partizione o Hard-Disk andare ad avviare l’installazione di Mac. Voi selezionate quella che avete predisposto precedentemente e cliccate su continua.

– Ora si aprirà una una nuova finestra dove voi dovete selezionare il primo dei 3 tasti da sinistra che vi si presenteranno davanti ovvero Personalizza/Costomize.

– In questa pagina dovrete fare il lavoro più importante di tutta l’installazione cioè selezionare tutti i driver e i componenti aggiuntivi vari che permettono un corretto utilizzo dell’OS.

– Selezionate: sotto lingue disponibili la vostra lingua.

– Mettete il segno di spunta sotto la voce iDeneb Essential System.

-Aprite il menù a tendina sotto la voce iDeneb patches …. e selezionate da Bootloader Charmeleon v2.

– Mettete il segno di spunta sul quadratino nominato LeopardAMD se avete un processore AMD.

– Sotto la voce Fix selezionate USB Family e PowerOFF Fix OpenHaltRestart.

– Sotto la voce PS2Fix selezionate il VoodooPS2 (per il controllo del touch pad nel caso in cui abbiate un portatile e mettete il segno di spunta su PS2Fix_Old.

-Sotto la voce Kernel selezionate Vanilla.

-Sotto la voce Driver dovrete selezionare il modello delle vostre schede (audio,video ecc..) ecco spiegato il perchè di quella scansione dell’hardware fatta prima di cominciare.

-Esistono poi dei driver generali che vi consiglio di aggiungere agli altri, essi sono: Apple Azalia audio per la scheda audio, RealtekR1000, USBPegasusEthernet e USBAx8817x per l’Ethernet.

– Quando avete finito cliccate in basso a destra su Fine e così ritornerete alla pagina di riepilogo d’installazione. Cliccate sull’ultimo dei 3 tasti da sinistra (installa) e l’installazione si avvierà, una finestrella vi chiederà di cliccare su Skip/Ignora.

– L’installazione durerà circa una mezz’oretta in base alle caratteristiche del vostro PC… Quando sarà finita se l’installazione è andata a buon fine vi comparirà.

una schermata che vi avvisa che l’installazione è riuscita.Cliccate così su riavvia.

– Al riavvio del computer verrà visualizzato il vostro nuovo boot loader con l’avvio automatico di Mac. Premete un qualsiasi tasto per accede alla selezione del boot e quindi alla partizione di Windows.

Entrate su Mac e rimuovete così il DVD ormai inutile.

E dopo l’installazione di iDeneb 1.6 passiamo ora a quella di iAtkos v_7.
Ricordo che questi 2 programmi sono uno l’alternativa nel caso in cui non vada l’altro, pertanto per evitare ripetizioni mi limiterò a guidarvi nell’unica parte in cui questi processi di installazione si differenziano un po’, ovvero al passaggio di selezione dei driver e componenti aggiuntivi vari, per i passaggi precedenti a quello che ora vado a spiegarvi fate riferimento all’installazione di iDeneb 1.6
Procediamo:
- Quando vi trovate davanti alla finestra chiamata riepilogo d’installazione/Install Summary cliccate sul primo tasto partendo da sinistra dei tre pulsanti sul basso (Customize/Personalizza). 
- Davanti a questa schermata lasciate con il segno di spunta tutto ciò che già era spuntato.
- Sotto la voce Driver selezionate tutti i vostri driver in base alle vostre proprietà hardware.
- In Languager mettete il segno di spunta sulla vostra lingua.
- Sotto PS/2 mouse/keyboard selezionate Voodoo PS/2 driver 
. In Driver andate sotto System, poi SATA/IDE e selezionate VIA SATA/IDE
- Aprite Network all’interno di Driver e selezionate Realtek R1000
- Quando avete terminato cliccate su Install/Installa e quando vi si apre una finestrella nell’alto cliccate su skip e l’installazione partirà.

Perfetto! Se tutto è andato bene ora dovreste essere all’interno del vero e proprio Sistema Operativo Mac OS X Leopard 10.5.7! Prima di incominciare ad usarlo correttamente è bene che impostiamo la lingua italiana, siccome all’inizio è in Inglese, ed il fuso orario. Procedete così:
 – System preference / Preferenze di sistema (dodicesima icona della barra del dock) 
-Nella barra di Personal cliccate sulla quinta icona partendo dalla sinistra (Internazionale)  
- Tra tutte le lingue che vi vengono proposte alla vostra sinistra trascinate l’italiano prima di tutte.
 -Spostatevi ora in alto su Format e dal menù a tendina selezionate Italia. 
- Chiudete così le Preferenze di sistema e cliccate in alto a sinistra sul logo della mela e fate il logout.
 – Ora fate il login e finalmente vi si aprirà il vostro Mac OS X in italiano!

Screenshot iDeneb

E se qualcosa non andasse correttamente?

Non è escluso che il sistema operativo pur andando dia qualche problema a livello di driver, ossia non vada, per esempio, l’audio, webcam piuttosto che la risoluzione dello schermo non sia adeguata. In questo caso non posso darvi consiglio migliore che andare su Google e mettersi alla ricerca di file kext ovvero come vengono chiamati i driver in mac…
 Se proprio non si riesce a compensare questo problema si può sempre ripetere nuovamente l’installazione stando più attenti a selezionare un driver che magari nell’installazione precedente avevate dimenticato…

Codice per convertire cifre in parole – Visual Basic VBA PHP e Javascript

Se hai bisogno di convertire un numero:

123.456.783

Nel suo corrispondente letterale:

Centoventitremilioniquattrocentocinquantaseimilasettecentottantatrè!

Il nostro codice ti potrà essere di aiuto poichè rispetta la grammatica Italiana e soddisfa fino a diciotto cifre!

Il nostro convertitore di numeri in parole (che abbiamo chiamato spell_my_int) è disponibile in diversi linguaggi: Bash, PHP, Visual Basic/VBA, e Javascript!

Termini e condizioni!

I codici sorgente presenti in questa pagina sono rilasciati sotto i termini della licenza libera GNU General Public License versione 3 o successive: Hai il diritto di utilizzare, migliorare/peggiorare questo codice per qualsiasi necessità a patto che il codice da te prodotto sia chiaramente coperto dalla stessa licenza (affinchè io per esempio possa avvantaggiarmi delle tue migliorie ). Inoltre, ti prego di segnalare su questa pagina un link dove riporti un riferimento al tuo utilizzo, per facilitarmi appunto il mio lavoro di andare a vedere come la gente usa e migliora il mio codice

Il codice funziona. In ogni caso (come per ogni software Libero) non diamo alcuna garanzia o responsabilità

Grazie, e buon uso!

Versione Bash per GNU/Linux

Il nostro script per linea di comando Bash sui sistemi GNU/Linux (e credo Mac OS X) è disponibile su Launchpad con il nome di n2t-it (number to text – Italiano).
Per prima cosa occorre installare bzr da utente root:

apt-get install bzr

Quindi da utente normale bisogna scaricare il sorgente ed entrare nella cartella:

bzr branch lp:n2t-it
cd n2t-it

A quel punto si può usarlo (ha molte opzioni):

# Per la pagina di manuale
./n2t -h
 
# Esempio minimale
./n2t 123.45
 
# Esempio completo da STDIN
echo 123/44 | ./n2t -c "/" -t " virgola " -d

Versione per Microsoft Windows©

Screenshot spell_my_int() - Visual Basic - Reyboz Blog

Puoi scaricare il programma spell_my_int per Windows da questo indirizzo.
Oppure puoi vedere il codice del programma (in Visual Basic) scorrendo più in basso.

Versione in PHP

Puoi vedere la versione in PHP online su questo indirizzo.
Oppure puoi usarlo sul tuo sito personale inserendo nella tua pagina questo codice:

<iframe src="http://lab.reyboz.it/spell_my_int/PHP/?number=0" width="250" height="150" />
  <p>Your browser does not support iframes.</p>
</iframe>

Puoi inoltre scorgere il codice scorrendo più in basso.

Versione in Javascript

Visualizzalo online in JavascriptVedi codice Javascript

spell_my_int() in Visual Basic

'	Convertitore di numeri interi in corrispettivi letterali.
'	Esempio:	123 => centoventitrè
'	Born:	10 Giugno 2012
'	Licenza: GNU General Public License (versione 3 o successive)
'	Autore: Valerio Bozzolan - Reyboz.it
Public Function spell_my_int(ByVal num As Long, Optional ByVal centOOttanta As Boolean = False) As String
	Dim numstring As String = num.ToString
	Dim numlen As Integer
	Dim IDcent As Byte
	Dim subnumerostring As String
	Dim subnumero As Integer
	Dim cifra(2) As String
	Dim text(2) As String
	Dim prime2cifre As Integer
	Dim result As String = ""
	Dim sezione As Integer = 0
	Dim mono() As String = {"", "uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove"}
	Dim duplo() As String = {"dieci", "undici", "dodici", mono(3) & "dici", "quattordici", "quindici", "sedici", "dicias" & mono(7), "dici " & mono(8), "dician" & mono(9)}
	Dim deca() As String = {"", duplo(0), "venti", mono(3) & "nta", "quaranta", "cinquanta", "sessanta", "settanta", "ottanta", "novanta"}
	Dim cento() As String = {"cent", "cento"}
	Dim mili(,) As String = {{"", "mille", "milione", "miliardo", "bilione", "biliardo"}, {"", "mila", "milioni", "miliardi", "bilioni", "biliardi"}}
	Dim max As Long = (10 ^ (6 * 3) - 1) - 1
	If (num < 0) Then
		Return "Minimo 0!"
	ElseIf (num > max) Then
		Return "Massimo " & max & "!"
	ElseIf (num = 0) Then
		Return "zero"
	End If
	Select Case (numstring.Length Mod 3)
		Case 1
			numstring = "00" & num.ToString
		Case 2
			numstring = "0" & num.ToString
		Case Else
			numstring = num.ToString
	End Select
	numlen = numstring.Length
	'MsgBox("Numlen: " & numlen & "  subnumero: " & numstring)
	Do While ((sezione + 1) * 3 <= numlen)
		subnumerostring = Mid(numstring, (numlen - ((sezione + 1) * 3)) + 1, 3)
		subnumero = CInt(subnumerostring)
		cifra(0) = Mid(subnumerostring, 1, 1)
		cifra(1) = Mid(subnumerostring, 2, 1)
		cifra(2) = Mid(subnumerostring, 3, 1)
		'MsgBox("Sezione numero: " & sezione & ", cifre della sezione: " & cifra(0) & cifra(1) & cifra(2))
		If (subnumero <> 0) Then
			prime2cifre = CInt(cifra(1)) * 10 + CInt(cifra(2))
			'MsgBox(prime2cifre)
			If (prime2cifre < 10) Then
				text(2) = mono(cifra(2))
				text(1) = ""
			ElseIf (prime2cifre < 20) Then
				text(2) = ""
				text(1) = duplo(prime2cifre - 10)
			Else
				'ventitre => ventitrè
				If (sezione = 0 And cifra(2) = 3) Then
					text(2) = "trè"
				Else
					text(2) = mono(cifra(2))
				End If
				'	novantaotto => novantotto
				If (cifra(2) = 1 Or cifra(2) = 8) Then
					text(1) = Mid(deca(cifra(1)), 1, deca(cifra(1)).Length - 1)
				Else
					text(1) = deca(cifra(1))
				End If
			End If
			If (cifra(0) = 0) Then
				text(0) = ""
			Else
				' centoottanta => centottanta
				If (Not centOOttanta And cifra(1) = 8 Or (cifra(1) = 0 And cifra(2) = 8)) Then
					IDcent = 0
				Else
					IDcent = 1
				End If
				If (cifra(0) <> 1) Then
					text(0) = mono(cifra(0)) & cento(IDcent)
				Else
					text(0) = cento(IDcent)
				End If
			End If
			'	unomille	=> mille
			'	miliardo	=> unmiliardo
			If (subnumero = 1 And sezione <> 0) Then
				If (sezione >= 2) Then
					result = "un" & mili(0, sezione) & result
				Else
					result = mili(0, sezione) & result
				End If
			Else
				result = text(0) & text(1) & text(2) & mili(1, sezione) & result
			End If
		End If
		sezione = sezione + 1
	Loop
	Return result
End Function

spell_my_int() in VBA (Visual Basic for Application)

'	Convertitore di numeri interi in corrispettivi letterali.
'	Esempio:	123 => centoventitrè
'	Born:	10 Giugno 2012
'	Licenza: GNU General Public License (versione 3 o successive)
'	Autore: Valerio Bozzolan - Reyboz.it
Function spell_my_int(ByVal num As Long) As String
    Dim centOOttanta As Boolean
    centOOttanta = false
    Dim numstring As String
    Dim numlen As Integer
    Dim IDcent As Byte
    Dim subnumerostring As String
    Dim subnumero As Integer
    Dim cifra(2) As String
    Dim text(2) As String
    Dim prime2cifre As Integer
    Dim result As String
    Dim sezione As Integer
    Dim mono(9) As String
    Dim duplo(9) As String
    Dim deca(9) As String
    Dim cento(2) As String
    Dim mili(1, 9) As String
    Dim max
    max = ((10 ^ (6 * 3)) - 1) - 1
    '   Caricamento di mono() in formato esteso
    mono(0) = ""
    mono(1) = "uno"
    mono(2) = "due"
    mono(3) = "tre"
    mono(4) = "quattro"
    mono(5) = "cinque"
    mono(6) = "sei"
    mono(7) = "sette"
    mono(8) = "otto"
    mono(9) = "nove"
    '   Caricamento di duplo() in formato esteso
    duplo(0) = "dieci"
    duplo(1) = "undici"
    duplo(2) = "dodici"
    duplo(3) = "tredici"
    duplo(4) = "quattordici"
    duplo(5) = "quindici"
    duplo(6) = "sedici"
    duplo(7) = "dicias" & mono(7)
    duplo(8) = "dici" & mono(8)
    duplo(9) = "dician" & mono(9)
    '   Caricamento di deca() in formato esteso
    deca(0) = ""
    deca(1) = duplo(0)
    deca(2) = "venti"
    deca(3) = mono(3) & "nta"
    deca(4) = "quaranta"
    deca(5) = "cinquanta"
    deca(6) = "sessanta"
    deca(7) = "settanta"
    deca(8) = "ottanta"
    deca(9) = "novanta"
    '   Caricamento di cento() in formato esteso
    cento(0) = "cent"
    cento(1) = cento(0) & "o"
    '   Caricamento di mili(0 ,) in formato esteso
    mili(0, 0) = ""
    mili(0, 1) = "mille"
    mili(0, 2) = "milione"
    mili(0, 3) = "miliardo"
    mili(0, 4) = "bilione"
    mili(0, 5) = "biliardo"
    '   Caricamento di mili(1 ,) in formato esteso
    mili(1, 0) = ""
    mili(1, 1) = "mila"
    mili(1, 2) = "milioni"
    mili(1, 3) = "miliardi"
    mili(1, 4) = "bilioni"
    mili(1, 5) = "biliardi"
    result = ""
    sezione = 0
    If (num < 0) Then
        spell_my_int = "Minimo 0!"
    ElseIf (num > max) Then
        spell_my_int = "Massimo " & max & "!"
    ElseIf (num = 0) Then
        spell_my_int = "zero"
    Else
        numstring = CStr(num)
        Select Case (Len(numstring) Mod 3)
            Case 1
                numstring = "00" & CStr(num)
            Case 2
                numstring = "0" & CStr(num)
            Case Else
                numstring = CStr(num)
        End Select
        numlen = Len(numstring)
        'MsgBox ("Numlen: " & numlen & "  subnumero: " & numstring)
        Do While ((sezione + 1) * 3 <= numlen)
            subnumerostring = Mid(numstring, (numlen - ((sezione + 1) * 3)) + 1, 3)
            subnumero = CInt(subnumerostring)
            cifra(0) = Mid(subnumerostring, 1, 1)
            cifra(1) = Mid(subnumerostring, 2, 1)
            cifra(2) = Mid(subnumerostring, 3, 1)
            'MsgBox ("Sezione numero: " & sezione & ", cifre della sezione: " & cifra(0) & cifra(1) & cifra(2))
            If (subnumero <> 0) Then
                prime2cifre = CInt(cifra(1)) * 10 + CInt(cifra(2))
                'MsgBox (prime2cifre)
                If (prime2cifre < 10) Then
                    text(2) = mono(cifra(2))
                    text(1) = ""
                ElseIf (prime2cifre < 20) Then
                    text(2) = ""
                    text(1) = duplo(prime2cifre - 10)
                Else
                    'ventitre => ventitrè
                    If (sezione = 0 And cifra(2) = 3) Then
                        text(2) = "trè"
                    Else
                        text(2) = mono(cifra(2))
                    End If
                    '   novantaotto => novantotto
                    If (cifra(2) = 1 Or cifra(2) = 8) Then
                        text(1) = Mid(deca(cifra(1)), 1, Len(deca(cifra(1))) - 1)
                    Else
                        text(1) = deca(cifra(1))
                    End If
                End If
                If (cifra(0) = 0) Then
                    text(0) = ""
                Else
                    ' centoottanta => centottanta
                    If (Not centOOttanta And cifra(1) = 8 Or (cifra(1) = 0 And cifra(2) = 8)) Then
                        IDcent = 0
                    Else
                        IDcent = 1
                    End If
                    If (cifra(0) <> 1) Then
                        text(0) = mono(cifra(0)) & cento(IDcent)
                    Else
                        text(0) = cento(IDcent)
                    End If
                End If
                '   unomille    => mille
                '   miliardo    => unmiliardo
                If (subnumero = 1 And sezione <> 0) Then
                    If (sezione >= 2) Then
                        result = "un" & mili(0, sezione) & result
                    Else
                        result = mili(0, sezione) & result
                    End If
                Else
                    result = text(0) & text(1) & text(2) & mili(1, sezione) & result
                End If
            End If
            sezione = sezione + 1
        Loop
        spell_my_int = result
    End If
End Function

spell_my_int() in PHP

/*
	Convertitore di numeri interi in corrispettivi letterali.
	Esempio:	123 => centoventitrè
	Born:	10 Giugno 2012
	Licenza: GNU General Public License (versione 3 o successive)
	Autore: Valerio Bozzolan - Reyboz.it
*/
function spell_my_int($num, $centOOttanta=false) {
	$num	= (int) $num;
	$mono	= array("", "uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove");
	$duplo	= array("dieci", "undici", "dodici", "{$mono[3]}dici", "quattordici", "quindici", "sedici", "dicias{$mono[7]}", "dici{$mono[8]}", "dician{$mono[9]}");
	$deca	= array("", $duplo[0], "venti", "{$mono[3]}nta", "quaranta", "cinquanta", "sessanta", "settanta", "ottanta", "novanta");
	$cento	= array("cent", "cento");
	$mili	= array(
		0 => array("", "mille", "milione", "miliardo", "bilione", "biliardo"),
		1 => array("", "mila", "milioni", "miliardi", "bilioni", "biliardi")
	);
	$max	= pow(10, count($mili[0]) * 3) - 1;
	if( !is_numeric($num) ) {
		return "Non &egrave; un numero!";
	} elseif ( $num < 0 ) {
		return "Numero negativo!";
	} elseif ( $num > $max ) {
		return "Limite superato!";
	} elseif( $num == 0 ) {
		return "zero";
	}
	$result	= "";
	$sezione	= 0;
	$num	= (string) $num;
	switch( strlen($num) % 3 ) {
		case 1:	$num	= "00$num";
			break;
		case 2:	$num	= "0$num";
	}
	$numlen	= strlen($num);
	while( ($sezione + 1) * 3 <= $numlen ) {
		$cifra	= substr($num, (($numlen - 1) - (($sezione + 1) * 3)) + 1, 3);
		$numero	= (int) $cifra;
		$cifra[0]	= (int) $cifra[0];
		$cifra[1]	= (int) $cifra[1];
		$cifra[2]	= (int) $cifra[2];
		if( $numero <> 0 ) { 
			$prime2cifre	= (int) ($cifra[1] . $cifra[2]);
			if( $prime2cifre < 10 ) {
				$text[2]	= $mono[$cifra[2]];
				$text[1]	= "";
			} elseif( $prime2cifre < 20 ) {
				$text[2]	= "";
				$text[1]	= $duplo[$prime2cifre - 10];
			} else {
				//	ventitre => ventitrè
				if( $sezione == 0 && $cifra[2] == 3 ) {
					$text[2]	= "tr&egrave;";
				} else {
					$text[2]	= $mono[$cifra[2]];
				}
				//	novantaotto => novantotto
				if( $cifra[2] == 1 || $cifra[2] == 8 ) {
					$text[1]	= substr($deca[$cifra[1]], 0, -1);
				} else {
					$text[1]	= $deca[$cifra[1]];
				}
			}
			if( $cifra[0] == 0 ) {
				$text[0]	= "";
			} else {
				//	centoottanta => centottanta
				if( !$centOOttanta && $cifra[1] == 8 || ($cifra[1] == 0 && $cifra[2] == 8) ) {
					$IDcent	= 0;
				} else {
					$IDcent	= 1;
				}
				if( $cifra[0] <> 1 ) {
					$text[0]	= $mono[$cifra[0]] . $cento[$IDcent];
				} else {
					$text[0]	= $cento[$IDcent];
				}
			}
			//	unomille	=> mille
			//	miliardo	=> unmiliardo
			if( $numero == 1 && $sezione <> 0 ) {
				if( $sezione >= 2 ) {
					$result	= "un" . $mili[0][$sezione] . $result;
				} else {
					$result	= $mili[0][$sezione] . $result;
				}
			} else {
				$result	= $text[0] . $text[1] . $text[2] . $mili[1][$sezione] . $result;
			}
		}
		$sezione++;
	}
	return $result;
}

spell_my_int() in Javascript

/*
	Convertitore di numeri interi in corrispettivi letterali.
	Esempio:	123 => centoventitre'
	Born:	10 Giugno 2012
	Licenza: GNU General Public License (versione 3 o successive)
	Autore: Valerio Bozzolan - Reyboz.it
*/
function spell_my_int(numstr, centOOttanta) {
	mono	= new Array ("", "uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove");
	duplo	= new Array ("dieci", "undici", "dodici", mono[3] + "dici", "quattordici", "quindici", "sedici", "dicias" + mono[7], "dici" + mono[8], "dician" + mono[9]);
	deca	= new Array ("", duplo[0], "venti", mono[3] + "nta", "quaranta", "cinquanta", "sessanta", "settanta", "ottanta", "novanta");
	cento	= new Array ("cent", "cento");
	mili	= new Array ();
	mili[0]	= new Array ("", "mille", "milione", "miliardo", "bilione", "biliardo");
	mili[1]	= new Array ("", "mila", "milioni", "miliardi", "bilioni", "biliardi");
	text	= new Array ();
	cifra	= new Array ();
	result	= "";
	sezione	= 0;
	// In Javascript si fa così per dire che questo parametro e' opzionale, con valore false di default
	centOOttanta = centOOttanta || false;
	numstr += '';
	// Non deve cominciare per zero altrimenti parseInt() impazzisce...
	while ( numstr.substr(0, 1) == "0" && numstr.length != 1 ) {
		numstr	= numstr.substr(1, numstr.length);
	}
	num	= parseInt(numstr);
	switch( numstr.length % 3 ) {
		case 1:	numstr	= "00" + numstr;
			break;
		case 2:	numstr	= "0" + numstr;
	}
	numlen	= numstr.length;
	if( isNaN(num) ) {
		return "Non e' un numero!";
	} else if ( num < 0 ) {
		return "Numero negativo!";
	} else if ( numstr.length > 6 * 3 ) {
		return "Limite superato!";
	} else if( num == 0 ) {
		return "zero";
	}
	while( (sezione + 1) * 3 <= numlen ) {
		subnumerostring = numstr.substr(((numlen - 1) - ((sezione + 1) * 3)) + 1, 3);
		if( subnumerostring != "000" ) {
			subnumero = parseInt(subnumerostring);
			cifra[0] = subnumerostring.substr(0, 1);
			cifra[1] = subnumerostring.substr(1, 1);
			cifra[2] = subnumerostring.substr(2, 1);
			prime2cifre	= parseInt(cifra[1] * 10) + parseInt(cifra[2]);
			if( prime2cifre < 10 ) {
				text[2]	= mono[cifra[2]];
				text[1]	= "";
			} else if( prime2cifre < 20 ) {
				text[2]	= "";
				text[1]	= duplo[prime2cifre - 10];
			} else {
				//	ventitre => ventitrè
				if( sezione == 0 && cifra[2] == 3 ) {
					text[2]	= "tre'";
				} else {
					text[2]	= mono[cifra[2]];
				}
				//	novantaotto => novantotto
				if( cifra[2] == 1 || cifra[2] == 8 ) {
					text[1]	= deca[cifra[1]].substr(0, deca[cifra[1]].length -1);
				} else {
					text[1]	= deca[cifra[1]];
				}
			}
			if( cifra[0] == 0 ) {
				text[0]	= "";
			} else {
				//	centoottanta => centottanta
				if( !centOOttanta && cifra[1] == 8 || (cifra[1] == 0 && cifra[2] == 8) ) {
					IDcent	= 0;
				} else {
					IDcent	= 1;
				}
				if( cifra[0] != 1 ) {
					text[0]	= mono[cifra[0]] + cento[IDcent];
				} else {
					text[0]	= cento[IDcent];
				}
			}
			//	unomille	=> mille
			//	miliardo	=> unmiliardo
			if( subnumero == 1 && sezione != 0 ) {
				if( sezione >= 2 ) {
					result	= "un" + mili[0][sezione] + result;
				} else {
					result	= mili[0][sezione] + result;
				}
			} else {
				result	= text[0] + text[1] + text[2] + mili[1][sezione] + result;
			}
		}
		sezione++;
	}
	return result;
}

Utilizzi pratici di spell_my_int()

Utilizzo di spell_my_int() in Visual Basic:

 
' Scrivere qui il codice lungo di spell_my_int() in Visual Basic!

Sub prova()
	dim num as long
	dim num_in_parole as string
	num = 123
	num_in_parole = spell_my_int(num)
	msgbox(num_in_parole)
End Sub

Utilizzo di spell_my_int() in una macro VBA:

 
' Scrivere qui il codice lungo di spell_my_int() in VBA!!!

Sub prova()
	dim num as long
	dim num_in_parole as string
	num = 123
	num_in_parole = spell_my_int(num)
	msgbox(num_in_parole)
End Sub

Utilizzo di spell_my_int() dentro una cella di Excel: (prima bisogna copiare il codice lungo di spell_my_int() nel modulo “nomemodulo”)

=nomemodulo.spell_my_int(123)

Utilizzo di spell_my_int() in PHP:

<?php
 
// Scrivere qui il codice lungo di spell_my_int() in PHP!
 
$num	= 123;
$num_in_parole = spell_my_int($num);
echo $num_in_parole;
?>

Utilizzo di spell_my_int() in Javascript:

<script type="text/javascript">
 
// Scrivere qui il codice lungo di spell_my_int() in Javascript!
 
num = 123;
num_in_parole = spell_my_int(num);
alert(num_in_parole);
</script>

Guida Sprites in Italiano – New Super Mario Bros Editor Nintendo DS

Come scritto nel nostro precedente articolo su New Super Mario Bros Editor, all’interno dell’editor di livelli di NSMB non è soltanto possibile piazzare a proprio piacimento oggetti come colline, scatole, o fiori, ma è anche possibile posizionare gli Sprites.

Gli Sprites, a differenza degli oggetti, svolgono delle azioni: come la tartaruga, Bowser, un pulsante, o una piattaforma che va su e giù. La maggior parte di questi Sprite, essendo complessi, hanno delle opzioni che si impostano modificando delle cifre all’interno dello Sprite Data, evidenziato in rosso nella foto sottostante.

Dove trovare lo Sprite Data - NSMB Editor - Reyboz Blog

Ma siccome tutte le più grandi guide sulle opzioni degli Sprites di New Super Mario Bros sono rigorosamente in Inglese… nsmb.reyboz.it!

La prima guida sugli Sprites di NSMB tradotta in Italiano, creata da noi, per tutti.

Guida Sprites in Italiano - NSMB Editor - Reyboz Blog

Ogni giorno aggiungeremo Sprites su Sprites, e quando l’elenco sarà completo, aggregheremo nuove funzionalità eccitanti. (asd. No!)

Buon utilizzo!

Fare screenshots con Windows

Potrebbe, per alcuni, sembrare l’argomento di questo articolo ovvio e/o banale; mentre potrebbe invece per alcuni altri rivelarsi un “trucchetto” comodo ed utile da poter utilizzare nelle più svariate occasioni.

Fare uno screenshot significa di per sè immortalare ciò che viene visualizzato in un determinato istante sul monitor del tuo computer.

Per farlo vi sono, certamente, molti programmi ma quello di cui parleremo ora è un metodo che non richiede in alcun modo l’utilizzo di programmi aggiuntivi.

Vi saranno necessari soli 3 passaggi:

  1. Per fare lo “scatto” vi basterà premere il pulsante “Stamp” (che potreste anche trovare con il nome “Print/Screen/SysRq”) nella parte in alto a destra di praticamente tutte le tastiere per PC in commercio.

    Print screen - Reyboz Blog

  2. Aprire l’applicazione “Paint” (di serie su tutti i PC Windows) e premere la combinazione “Ctrl + V” per incollare.
    Ora vi ritroverete l’immagine scattata precedentemente, incollata su Paint.
    Non vi resta che salvare il tutto!
  3. Premete: File → Salva con nome…  ora, dopo aver scelto la destinazione di salvataggio del file, sotto “Nome file” mettete (naturalmente) il nome con cui volete che venga salvata l’immagine; invece  sotto “Salva come” selezionate dal menù a tendina il formato JPEG e premete su “Salva”. Avrete così salvato uno screenshot in modo facile e veloce e soprattutto senza l’utilizzo di software aggiuntivi!

Apple Peel Yosion 520 1G

L’Apple Peel è un accessorio molto particolare studiato per i nostri iPod touch prodotto dalla Yosion Technology che promette di “trasformare” (previa Jailbreak) un iPod touch in un iPhone.

Il Peel è di per se una sorta di custodia:

La sua particolarità è il connettore dock sul fondo, infatti quando inseriremo l’iPod touch facendolo slittare dall’alto verso il basso esso si connetterà e verrà riconosciuto dal dispositivo come un auricolare.
Sul retro del Peel possiamo notare uno “sportellino”:

Che se rimosso, da accesso al vero e proprio cuore del Peel, ovvero il vano per la batteria, il pulsante di avvio/spegnimento e l’alloggiamento per la SIM:

Sarà dunque sufficiente inserire nell’apposito vano la propria scheda SIM e premere per qualche secondo il tasto di avvio per far si che il dispositivo si accenda emettendo un segnale audio.
Adesso potete connettere il vostro iPod touch attraverso il connettore dock nel modo indicato poco fa. Ma prima, per far si che il tutto funzioni è necessario installare l’applicazione che vi consentirà di inoltrare/ricevere chiamate e messaggi, per farlo vi basterà andare su Cydia ed aggiungere questa repo: http://yosion.net/cydia/ e da quest’ultima installare  l’App “YosionApp” in base alla vostra versione di iOS. Ma per una guida più dettagliata riguardo a questi ultimi passaggi vi rimando alla guida sul sito ufficiale.
Terminati questi passaggi non vi resterà che avviare il dispositivo dalle impostazioni situate nell’applicazione per le chiamate.
Il vostro iPod touch è ora pronto per poter svolgere tutte le funzioni che prima il vostro cellulare faceva in più di lui.

Avvertenze…

L’Apple Peel NON è un prodotto ufficiale Apple di conseguenza il suo funzionamento non può essere sempre garantito.
Ci teniamo a sottolineare che un iPod touch abbinato ad un Apple Peel NON può comunque eguagliare le prestazioni di un iPhone.
QUESTA GUIDA E’ VALIDA  SOLO CON  iPod Touch DI 1°, 2° e 3° GENERAZIONE, PER LA GENERAZIONE E’ INVECE NECESSARARIA LA 2° GENERAZIONE DI Apple Peel.

Nintendo DS – Modificare i livelli di New Super Mario Bros

NSMB Editor (New Super Mario Bros Editor) permette di stravolgere completamente un qualunque livello di New Super Mario Bros e di modificarlo sul proprio computer a rigor dei più intimi schiribizzi grazie ad una interfaccia grafica piuttosto semplice. Ovviamente prima bisogna essere in possesso delle ROM di gioco. Per chi possiede una Wii sappia che NSMB Editor esiste anche per loro…

Ecco una parte di un livello progettato completamente da noi grazie a NSMB Editor.

NSMB Editor - Reyboz Blog

Preparazione

  1. Ottenere la ROM di New Super Mario Bros da uno dei seguenti siti: CoolRom (zip), Rom-nintendods (rar), Megaupload (rar) (Aggiornamento: Megaupload è stato chiuso dal Dipartimento della Giustizia degli Stati Uniti il 19 gennaio 2012).
  2. Oltre alla ROM ci serve un buon emulatore, cioè un programma che simuli il Nintendo DS sul nostro computer per provare subito le modifiche fatte. Fra i tanti consigliamo No$gba per Windows, scaricabile dal sito della Emubase.
    Se usate No$gba per emulare New Super Mario Bros preverrei ogni vostro spavento nel vedere questo errore quando tenterete di caricarlo col gioco: “Saved data could not be read. Turn off & reinsert the Game Card“.

    Errore No$gba New Super Mario Bros - Reyboz Blog

    Ciò si risolve andando su No$gba nel menù “Options“→”Emulation Setup” e impostando il menù “NDS Cartdridge Backup Media” su “FRAM 32KBytes” come da immagine.

    Impostazioni No$gba New Super Mario Bros - Reyboz Blog

    Se il vostro computer non fosse esattamente Speedy Gonzales abbassate la qualità audio nel menù “Sound Output Mode” ed in “Sound Desired Sample Rate“, e se non bastasse abbassare la voce “Multiboot Normal/Burst Delays” su “Fast/Fast”, e provate a settare la voce “Emulation Speed, LCD Refresh” su “Unlimited MHz Disaster 10%” (Quelt’ultima opzione lo farà schizzare come un anguilla, se non volete vedere Mario svolazzare come un moscerino carico di propano lasciatelo impostato su “Realtime, Auto“).

  3. Ora che dovreste avere un emulatore perfetto, scarichiamoci l’editor: Da Romhacking (zip), o da Google Code (zip).

Usare NSMB Editor

NSMB Editor sembra graficamente molto semplice. Si immagina, si paciocca, si salva ed è fatta! A sinistra il bottone Objects ci permette di scegliere e di piazzare gli oggetti sulla mappa (prato, scatola, moneta ecc..), mentre usando il bottone Sprites sfrutteremo tutto ciò che è dinamico (Fuoco, lava, acqua, nemico, pulsante ecc). La maggior parte di questi Sprites si possono configurare a proprio piacimento cambiando il codice in “Sprites Data” di cui consigliamo di leggerne le funzionalità su questo forum grandioso: NSMB Hacking.

E siccome dubitiamo profondamente che tu non inciampi nei nostri stessi problemi… invece che un sano “Arrangiati”, chiudiamo con qualche “Tips and Triks” che troverete raramente tutti insieme, fidatevi, torneranno utili!

  • Ho problemi con la visuale… Come faccio?
    Può capitare che alcuni livelli che creerete richiedano una visuale che sia simile a quella dei tipici livelli delle Torri… per intenderci, che la visuale vada su quando Mario va su, che essa vada giù quando Mario va giù… Non così scontata! Ciò si può risolvere allargando la Views sulla mappa, ma se ciò non bastasse (e spesso non basta) provate drasticamente a esportare una mappa da un livello Torre e ad importarla nel livello in cui state lavorando. Perderete quel livello… ma la grafica sarà a posto. Purtroppo è l’unico rimedio che abbiamo scovato, e perfavore, se ne trovate di migliori, avvisateci accidenti!
  • Alcuni sprites sono a sfondo rosso invece che a sfondo blu e sono inutilizzabili… Come mai?
    Dai un occhiata a Level Configuration -> Sprite Set (nella finestra di NSMB Editor, durante l’editor di una mappa, nella barra in alto).
  • Voglio trasformare il livello 1 da una collina armoniosa ad un inferno di lava. Come faccio?
    Dai un occhiata a Level Configuration-> Graphics.
  • Per ridimensionare facilmente un qualsiasi oggetto tieni premuto Shift e trascinalo con il mouse.
  • Per copiare facilmente un qualsiasi oggetto tieni premuto Ctrl e trascinalo con il mouse.
  • Ti è permesso anche modificare i livelli dove si gioca in modalità multiplayer “Mario vs Luigi”… guarda meglio il menù principale di NSMB Editor!

Presto il mio carissimo amico Sabia Giovanni, alias Sylar SweeEmo,  che ringrazio per la soffiata sull’esistenza di NSMB Editor, ci fornirà di un meravigliosa guida da lui creata contenente l’elenco completo di tutti gli Sprites utilizzabili nell’editor, arricchito con tutte le opzioni che siamo riusciti a scovare in aggiunta a quelle che ci sono scritte nei forum principali che si vedono in rete.

Sbrigati Sabia, aspettiamo te! Buon “editoring” a tutti…

Aggiornamento: Nasce la prima guida Italiana sugli Sprites di NSMB!

Ora disponibile: nsmb.reyboz.it