[GUITAR 4 Dummies] La scala minore naturale!? – Esercizio

Giusto per lavorare un po’ sulla scala minore naturale e, al contempo, sviluppare qualche tecnicismo per allenare la sincronizzazione tra mano destra e sinistra, ho buttato giù questo fraseggio in SIm

$1 14p10 $2 12 $3 11/9 | $2 10 $1 7h10p7 $2 10 $3 9/7/6 | $4 7 $5 9 $3 6h7p6 $4 7 $5 9 $4 7/9 |

Ho separato la tablatura in tre parti che possono essere oggetto di singolo studio.

Quanto prima provvederò a pubblicare un video sull’esecuzione del fraseggio.

BE ADDICTED

[GUITAR 4 Dummies] La scala minore naturale!? – Suggerimento 2

Ancora oggi ricordo l’enorme stupore quando il mio maestro, forte del suo background musicale, mi chiese di costruire la scala minore naturale di La, nonostante avessi appena appreso la costruzione di una normale scala maggiore (ovviamente la fondamentale di Do).

Vi lascio immaginare la scena muta e la relativa figura da asino!

Va da se che l’illuminante spiegazione successiva fu: “Il modo minore naturale si ottiene utilizzando la sequenza tono-semitono-tono-tono-semitono-tono-tono” … e sti gran cazzi!? Secondo lui avrebbe dovuto dirmi qualcosa visto che il modo maggiore si costruisce con un bel tono-tono-semitono-tono-tono-tono-semitono!

Ma senza battere ciglio mi armo di buona volontà e riporto tutto quanto sulla tastiera, per tutte le diteggiature, su tutto lo stramaledettissimo manico … non vogliatemene ma all’ora ero giovane e stupido e, ragionando come una scimmia, non notai l’analogia!

Che gran burlone il maestro … che il signore lo abbia in gloria!

Andando infatti a costruire la scala di La minore naturale si ottiene la seguente serie di note: La Si Do Re Mi Fa Sol La … che riportata sul manico:

$6 5 7 8 $5 5 7 8 $4 5 7 $3 4 5 7 $2 5 6 8 $1 5 7 8 |

Ma aspetta n’atomo … io questa l’ho già vista da qualche parte:

La Minore Naturale

Ma guarda caso (ahem … ovviamente il rettangolino verde dovrebbe comprendere anche il SI in terza corda quarto tasto … appena riesco modifico l’immagine -.-”)!

Quindi a quanto pare il pattern di LA minore naturale è già contenuto tra i pattern di Do maggiore!

Andando infatti ad indagare, sembra che tra il modo maggiore e quello minore intercorra una relazione di “relatività” (no Einstein non c’entra nulla) e, più nel pratico, tale relazione è quantificabile di un tono e mezzo tra la minore e la relativa maggiore … o, per chi gode in particolar modo con la teoria, si ottiene con la stessa sequenza di costruzione di una scala maggiore ma partendo dal sesto grado.

Per fare dunque qualche esempio:

La minore –> Do Maggiore
Mi minore –> Sol Maggiore
Si minore –> Mi Maggiore

E così via!

E con il secondo suggerimento abbiamo capito che tra modo maggiore e modo minore il pattern da ricordare è sempre e solo uno la differenza è semplicemente il punto di partenza (che determinerà la tonica del nostro discorso musicale).

Il quadro inizia a diventare un po’ più chiaro?

Ovviamente aspetto un vostro riscontro nel gruppo Facebook

Guitar Addiction

Oppure registrandovi e commentando nella sezione sottostante!

BE ADDICTED!

[GUITAR 4 Dummies] Principi di armonia!? – Suggerimento 1

Per esperienza posso affermare che il primo scoglio che un chitarrista più navigato si trova immancabilmente a dover circumnavigare è sicuramente quello della teoria musicale.

Dopo esserci fatti le ossa sugli assoli dei propri idoli, sui famigerati licks rubati da una rivista musicale (piuttosto che dal sito internet di turno) oppure sui più svariati metodi che il proprio maestro propina (o che semplicemente ci auto-infliggiamo), il primo fisiologico bisogno è quello di costruire un fraseggio, un’armonia o comunque una struttura musicale che rechi il proprio marchio di fabbrica.

Ed è qui che arrivano i dolori !!!

Quasi sicuramente il risultato è il seguente: un giro di un paio di accordi, con una qualche variazione in tensione per il ritornello e, per i più smaliziati, un bel bridge che spezza la monotonia. Fino ad arrivare al fantomatico assolo … ovviamente ricavato dal pattern principale di una pentatonica minore.

La cosa va bene per i primi giorni, a volte mesi … finché non ci stufiamo di noi stessi e non iniziamo a guardarci intorno per capire come migliorare la propria creatività.

Ed è questo il punto in cui, per una buona parte di noi, arriva la teoria musicale con i suoi bellissimi principi di armonia. Pagine e pagine di toni-toni-semitoni e ancora toni, acciaccature e dettami recanti concetti da imparare a memoria, la maggior parte dei quali spiegati in maniera talmente pedestre (non se la prendano a male i maestri di musica) da riuscire a rendere complicati anche i concetti più banali …

… e poi … poi c’è lei … quel fantastico strumento al quale abbiamo deciso di legare falangi, falangine e falangette … che chiama!! Proprio mentre cerchiamo di impegnarci nella lettura, l’infame sirena a sei corde ci suggerisce di provare ciò che stiamo tentando di acquisire sulla sua tastiera. A ragione veduta sembra essere un’ottima idea ma, immancabilmente, da un tentativo di costruzione di una scala minore naturale di FA# scatta l’overdrive e INIZIA AD URLARE UNA FOXY LADY tiratissima e soddisfacente … così … per ore.

E quando ormai s’è fatta na certa e tocca posare la chitarra altrimenti il giorno dopo al lavoro c’arriviamo col cuscino tatuato in faccia … ci rendiamo conto che degli intervalli che intercorrono tra le note della scala minore naturale di FA# … non ci abbiamo capito un beneamato cazzo!

Tutta quest’introduzione per arrivare al classico disclaimer:

Ciò che scriverò di seguito non ha nulla a che fare con la teoria musicale. Tutto si basa sulla mia esperienza e sulla mia necessità di arrivare a determinati concetti senza doverli forzatamente studiare in maniera accademica. Se non utilizzo terminologie “ortodosse” … sti cazzi!! L’unico motivo per il quale butto giù queste parole è semplicemente tentare di semplificare, ad altri, quei passaggi che per me sono risultati ostici e soprattutto intendo catturare quella platea che non vive con la musica (purtroppo) ma che non vuole comunque perdersi una parte di essa!

Va da se che le mie non sono “Lezioni” (lungi da me questa presunzione) ma solo “Suggerimenti” … io mi ci sono trovato bene!

Ergo: Maestrini fuori dal cazzo! Benvenuti invece coloro, che come me, vogliono esprimere e condividere la propria esperienza.

Detto ciò … passiamo al dunque. Tutto quello che scriverò lo si esegue rigorosamente con lo strumento in mano. Vi preavviso che purtroppo andrà sfruttata un po’ di memoria comprendendo coloro, che come me, non ne sono ben dotati (in questo caso amo memorizzare i pattern in maniera grafico/geometrica).

Per questa sessione vi lascio con il seguente postulato: Tutto nasce dalla scala maggiore

Scala Maggiore

Scala Maggiore

Nell’immagine allegata è riportata la diteggiatura della scala di SOL Maggiore estesa per l’intera ottava (la tonica, ovvero la nota che da nome alla scala, è contrassegnata dal pallino rosso). E’ importante memorizzare attentamente tutte le diteggiature perché più avanti vedremo come, col variare di poche note, riusciamo a ricostruire tutte le blasonatissime scale di cui i libri sono pieni.

Per aiutarsi nello studio, oltre che ripetere le diteggiature fino al vomito (magari con un metronomo qualora si voglia unire alla memorizzazione anche un miglioramento tecnico) si può scomporre l’intero schema in pattern come riportato di seguito:

Scala Maggiore Scomposizione Patterns

Scala Maggiore Scomposizione Patterns

Anche in questo caso la scomposizione è molto soggettiva. Io che amo la “plettrata economica” preferisco l’esecuzione in triadi scomponendo le scale in pattern di questo tipo:

$6 3 5 7 $5 3 5 7 $4 4 5 7 $3 4 5 7 $2 5 7 8 $1 5 7 8 |

Per ora è tutto … ci vediamo il prossimo “Suggerimento”.

BE ADDICTED!

P.S.: le varie immagini, tabelle, etc. riportate nelle varie sessioni sono palesemente rimediate e opportunamente rubate da internet. Vi prego … nessuno ne abbia a male!!! Non sto rubando alcun mistero trascendentale (ma concetti più vecchi di matusalemme).

[SYS Admin] Command not Found Crash

Today I run up against a nice bug! Let’s code explains itself:

root@osips:~# ù:q
 Sorry, command-not-found has crashed! Please file a bug report at:

https://bugs.launchpad.net/command-not-found/+filebug

 Please include the following information with the report:
 command-not-found version: 0.2.44
 root@osips:~#

Same bug could be reproduced by unprivileged user

xxx@osips:~$ ù:q
 Sorry, command-not-found has crashed! Please file a bug report at:

https://bugs.launchpad.net/command-not-found/+filebug

 Please include the following information with the report:

command-not-found version: 0.2.44
voiceadmin@osips:~$
/usr/lib/command-not-found doesn't seems to have a suid bit:

xxx@osips:~$ ls -al /usr/lib/command-not-found
-rwxr-xr-x 1 root root 2532 2011-11-22 12:53 /usr/lib/command-not-found

then I don't think would be a good point of local privileges excalation ... Just a Useless Post!

Thank'u for your time  :lol:

[CERTIFICATION] 650-297 TelePresence Video Field Engineer for Advanced Exam

I recently succeeded PAIATVS certification path.

Attached to this post you can find answers to all question I found in my exam.
Resulting score was 873 of 1000!

Have fun!

650-297 Exam

[Asterisk] Connecting Asterisk PBXs to a SmartNode Patton 4960 Voice Gateway with Full Failover Features

The better way to interconnect your Asterisk based PBXs to the PSTN infrastructure is by a dedicated Voice Gateway.
Thanks to, your telephony infrastructure, will benefit of a rich bunch of features:

  • Dedicated DSP equipment.
  • Powerful transcoding capabilities.
  • Advanced call-routing.
  • Failover & Load Balancing.

Many of above were unable to deploy by a PCI Card!!!

With the following configuration you’re able to build a completely fault tolerant architecture with a single point of failure (represented by patton itself):

cli version 3.20
clock local default-offset +00:00
dns-relay
webserver port 80 language en
sntp-client
sntp-client server primary <NTP SERVER ip> port 123 version 4
system hostname tectton-primario

system

  ic voice 0

system
  clock-source 1 e1t1 0 0

profile r2 default

profile napt NAPT_WAN

profile ppp default

profile call-progress-tone IT_Dialtone
  play 1 200 425 -12
  pause 2 200
  play 3 600 425 -12
  pause 4 1000

profile call-progress-tone IT_Alertingtone
  play 1 1000 425 -12
  pause 2 4000

profile call-progress-tone IT_Busytone
  play 1 500 425 -12
  pause 2 500

profile tone-set default
profile tone-set IT
  map call-progress-tone dial-tone IT_Dialtone
  map call-progress-tone ringback-tone IT_Alertingtone
  map call-progress-tone busy-tone IT_Busytone
  map call-progress-tone release-tone IT_Busytone
  map call-progress-tone congestion-tone IT_Busytone

profile voip default
  codec 1 g711alaw64k rx-length 20 tx-length 20
  codec 2 g711ulaw64k rx-length 20 tx-length 20
  dtmf-relay rtp
  rtp traffic-class local-default
  dejitter-max-delay 200
  fax transmission 1 bypass g711alaw64k
  fax transmission 2 bypass g711ulaw64k
  fax transmission 3 relay t38-udp
  fax redundancy low-speed 2 high-speed 1
  fax volume -10.0
  fax dejitter-max-delay 300
  fax bypass-method nse
  modem transmission 1 bypass g711alaw64k
  modem transmission 2 bypass g711ulaw64k
  no modem detection on-remote-fax-request
  modem bypass-method v150-vbd

profile pstn default
  no echo-canceler-nlp
  no echo-canceler

profile sip default
  no autonomous-transitioning

profile dhcp-server DHCPS_LAN
  network <NETWORK IP> <NETWORK MASK>
  include 1 <DHCP START> <DHCP END>
  lease 2 hours
  default-router 1 <GATEWAY IP>
  domain-name-server 1 <DNS SERVER>

profile aaa default
  method 1 local
  method 2 none

context ip router

  interface WAN
    ipaddress <WAN IP ADDRESS> <WAN NETMASK>
    use profile napt NAPT_WAN
    tcp adjust-mss rx mtu
    tcp adjust-mss tx mtu

  interface LAN
    ipaddress <LAN IP ADDRESS> <LAN NETMASK>
    tcp adjust-mss rx mtu
    tcp adjust-mss tx mtu

context ip router
  route 0.0.0.0 0.0.0.0 <GATEWAY IP> 0

context cs switch
  no digit-collection timeout
  no digit-collection terminating-char
  national-prefix 0
  international-prefix 00

  routing-table called-e164 RT_TO_SIP
    route default dest-service INBOUND

  routing-table called-e164 SIP_TO_RT
    route default dest-service OUTBOUND

  interface isdn IF_ISDN
    route call dest-table RT_TO_SIP
    use profile tone-set IT
    caller-name send-information-following
    inband-info accept force call-setup setup

  interface isdn IF_ISDN_BACKUP
    route call dest-table RT_TO_SIP
    use profile tone-set IT
    caller-name send-information-following
    inband-info accept force call-setup setup

  interface sip IF_SIP
    bind context sip-gateway GW_SIP
    route call dest-table SIP_TO_RT
    remote <ASTERISK IP> 5060
    early-disconnect

  interface sip IF_SIP_BACKUP
    bind context sip-gateway GW_SIP
    route call dest-interface IF_ISDN
    remote <ASTERISK BACKUP IP> 5061
    early-disconnect

  service hunt-group OUTBOUND
    drop-cause normal-unspecified
    drop-cause no-circuit-channel-available
    drop-cause network-out-of-order
    drop-cause temporary-failure
    drop-cause switching-equipment-congestion
    drop-cause access-info-discarded
    drop-cause circuit-channel-not-available
    drop-cause resources-unavailable
    route call 1 dest-interface IF_ISDN
    route call 2 dest-interface IF_ISDN_BACKUP

  service hunt-group INBOUND
    drop-cause normal-unspecified
    drop-cause no-circuit-channel-available
    drop-cause network-out-of-order
    drop-cause temporary-failure
    drop-cause switching-equipment-congestion
    drop-cause access-info-discarded
    drop-cause circuit-channel-not-available
    drop-cause resources-unavailable
    route call 1 dest-interface IF_SIP
    route call 2 dest-interface IF_SIP_BACKUP

context cs switch
  no shutdown

authentication-service AUTH_OB
  realm 1 asterisk
  username <ASTERISK USERID> password <ASTERISK PASSWORD> encrypted

location-service ASTERISK
  domain 1 <ASTERISK IP>

  identity <ASTERISK USER>

    authentication outbound
      authenticate 1 authentication-service AUTH_OB username <ASTERISK USER>

    registration outbound
      registrar <ASTERISK IP> 5060
      lifetime 3600
      register auto
      retry-timeout on-system-error 10
      retry-timeout on-client-error 10
      retry-timeout on-server-error 10

    call outbound

location-service ASTERISK_BACKUP
  domain 1 <ASTERISK BACKUP IP>

  identity <ASTERISK USER>

    authentication outbound
      authenticate 1 authentication-service AUTH_OB username <ASTERISK USER>

    registration outbound
      registrar <ASTERISK BACKUP IP> 5060
      lifetime 3600
      register auto
      retry-timeout on-system-error 10
      retry-timeout on-client-error 10
      retry-timeout on-server-error 10

    call outbound

context sip-gateway GW_SIP

  interface IF_GW_SIP
    bind interface LAN context router port 5060

context sip-gateway GW_SIP
  bind location-service ASTERISK
  no shutdown

context sip-gateway GW_SIP_BACKUP

  interface IF_GW_SIP_BACKUP
    bind interface LAN context router port 5061

context sip-gateway GW_SIP_BACKUP
  bind location-service ASTERISK_BACKUP
  no shutdown

port ethernet 0 0
  medium auto
  encapsulation ip
  bind interface WAN router
  no shutdown

port ethernet 0 1
  medium auto
  encapsulation ip
  bind interface LAN router
  no shutdown

port e1t1 0 0
  port-type e1
  clock slave
  framing crc4
  application long-haul
  encapsulation q921

  q921
    permanent-layer2
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side net
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_ISDN switch

port e1t1 0 0
  no shutdown

port e1t1 0 1
  port-type e1
  clock slave
  framing crc4
  application long-haul
  encapsulation q921

  q921
    permanent-layer2
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side net
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_ISDN_BACKUP switch

port e1t1 0 1
  no shutdown

The big picture:

[Asterisk] Audio File Format Conversion

One of the major problem in an Asterisk IVR production is the file audio conversion.
Asterisk is able to playback a wide variety of file formats but the prefferred are following:

- GSM
- A-law
- U-law

Sound eXchange is the better way to accomplish this job.
Sox installation is quite simple:


# apt-get install sox libsox-fmt-all

Command above will install sox engine and all needed formats. Now is possible to converts all kind of audio file types:


$ sox input-file.wav -t raw -r 8000 -c 1 -b 8 -A output-file.alaw
$ sox input-file.wav -t raw -r 8000 -c 1 -b 8 -U output-file.ulaw
$ sox input-file.wav -t raw -r 8000 -c 1 -b 8 -g output-file.gsm

-t: Override input file type header.
-r: Resample audio rate (8 Khz for traditional phone line).
-c: The number of audio channels (-c means mono audio form).
-b: Bit-depth store format.
-A: Encoding type alias (-A stands for A-law, etc).

For others options please read sox(1) manual.

HINT: For multiple file conversion following command is suggested:


for a in *.wav; do sox "$a" -t raw -r 8000 -c 1 -b 8 -A `echo $a|sed "s/.wav/.alaw/"`; done

[QMAIL] qmail-scanner-queue.pl return-path anonymizer

The following patch is able to anonymize the entire mails routing path.

Reason about this feature is the following:

  1. Customers privacy preservation
  2. Nullify RBL (Source Path) SpamCheck for RBListed ISP connection (fastweb.net, tim.it, etc etc).

In the diff patch attached file you can find some commented code block. You can store an original email copy, if you would to save it, commenting out code lines (not suggested in a thousand-emails-for-day environment).

Download qmail-scanner.queue.diff.patch

[PERL] “How to” Develop a Dynamic Plugin Engine

:: INTRODUCTION

The main problem in my projects was a dynamically features extension through new implementations and new technology fully-fit across the time (software maintenance). For this problem i’m looking for a method to develop a core engine and to develop features through hooked attached plugins.

I decided to write this tutorial to share my plugin connector view.


:: MAIN SCENARIO


Main Scenario
Here we have the base scenario about plugins/core interconnection.

:: DATA FLOW

  1. An exeternal request incoming
  2. Core module do something and pass result to communicator interface.
  3. Communicator Interface analyze data received, and identify the correct plugin to load.
  4. Communicator Plugin Method, receive data from Communicator Core Interface and parse looking for the correct method to call
  5. Method receive data from Communicator Plugin Method and do something.
  6. Result value will be returned back through the reversed flow path.


:: MESSAGE STRUCTURE

To accomplish the data flow structure depicted before we should to have the following message structure:

Message Structure

A structure like this is useful to build a correct data flow through Main Core Application and Multiple Plugins.


:: BENEFITS

  1. Path Oriented Communication (Like TCP/IP Communication … it works :) )
  2. Low CPU Computation Load (No load on message passing architecture)
  3. Multiple Plugins Loading (We can call multiple plugins at the same time)
  4. Memory Optimization (Dinamic Module Load/Unload)
  5. Better Software Management (Only Plugins should to be maintained)
  6. Better Collaboration (Everyone could write his own plugin)
  7. … and more over !!! :)


:: DISADVANTAGES

  1. Considerable Network Load (in case of heavy production environment)
  2. Plugins Developing Rules (plugins should be written following a rigorous scheme)


:: SOURCE CODE

Let’s post some code to understand basic concepts:

We receive a preformatted input string from our input device. In this string we have the message structure depicted before. Then, first of all, we should to get our “Header” (passed[0]);

In the following statement we prepare the plugins load call

# Construct Module Name
my $obj = "SRVConf::" . $passed[0];

Now we must (in Perl) load requested plugin through eval syscall

# Use Dynamical Module
eval "use $obj";

Now we can call Plugins Communicator method.

# Initialize Module
if(my $module = $obj->new())
   my @returned = $obj->communicator($passed[1]);

For those about Plugins Statement we must supply a “new” method


sub new {
my $this = {};
....
}

and a “communicator” method that know all Plugin method list


sub communicator() {
    if ($action eq "adduser") {
        return(_adduser($splitedstr[1]));
    } elsif ($action eq "moduser") {
        return(_moduser($splitedstr[1]));
    } elsif ($action eq "deluser") {
        return(_deluser($splitedstr[1]));
    } elsif ($action eq "getuserinfo") {
......

Wishes for an Happy 27th Birthday