Text to Speech dengan responsivevoice.js ala google translate

Kali ini saya membagikan pengalaman saya dengan text ke suara dengan javascript. dulu saya mencoba dengan berbagai cara , dengan plugin flash terus google speach dll, seiring waktu berjalan sekarang makin banyak kemudahan untuk menterjemahkan text ke suara , salah satu caranya dengan responsivevoice.js

berikut kodenya:


<!DOCTYPE html>
<html>
<head>
<title>speak text to speech with Resvonsive Voice</title>
<script src='https://code.responsivevoice.org/responsivevoice.js'></script>
<script type="text/javascript">
function play (){
responsiveVoice.speak(
"Hallo Nama Saya RIfqi.",
"Indonesian Female",
{
pitch: 1,
rate: 1,
volume: 1
}
);
}

function stop (){
responsiveVoice.cancel();
}

function pause (){
responsiveVoice.pause();
}

function resume (){
responsiveVoice.resume();
}
</script>
</head>
<body>
<button onclick="play();">Play</button>
<button onclick="stop();">Stop</button>
<button onclick="pause();">Pause</button>
<button onclick="resume();">Resume</button>
</body>
</html>

catatan: gunakan langsung pada hostingan / vps anda karena akan berjalan dengan baik kalau live online.

semoga bermanfat 🙂

Menerapkan Fitur Payment Gateway dengan PHP LARAVEL

Mungkin kita pernah berfikir ,

bagaimana sie untuk penerapatan payment gateway?

bagaimana caranya integrasi antara program kita dengan rekening bank kita.?  nah disini saya akan coba menjelaskan konsep penerapannya.

pertama,

anda membuat akun di mitrands.com nya lalu bisa  menerepakkannya.

anda bisa baca documentasi untuk penerapan di laravel:https://docs.midtrans.com/en/welcome/index.html

yang perlu anda perhatikan adalah gambar di bawah ini untuk penerapannya di laravel.

 

 

di snap api itulah kita akan bisa menerapkannya. untuk code sudah tersedia juga di github gratis:

Kedua

codenya sbb:

https://github.com/harrypujianto/Veritrans-Laravel5#snap

Ketiga

settingan dashboard

selanjutnya setelah anda menerapkan kode tersebut anda juga di minta untuk memasukkan access key, untuk mendapatkan accesskey anda mesti login di dashboard mitrandsnya kira-kira seperti ini:

disini ada dua kategori, yaitu dev [mode] dan production, pastikan code anda sudah berjalan dengan benar sebelum menerapkannya karena ini berhubungan dengan payment.

kalau anda berhasil tampilannya akan seperti ini :

dan uang anda akan masuk ke bank yang dituju dengan sample berikut:

selesai , jika ada yang bingung silahkan komen dibawah 🙂

 

Trik berbagai fitur email pada library laravel

Kali ini kita akan berbagi ilmu tentang beberapa tentang email pada library laravel, karena sebernarnya saya pengguna laravel.

diantara library mail nya adalah sbb:

  1. sendgrid mail.
  2. zoho mail.
  3. redis mail. [biasanya bawaan dari laravel]
  4. mail chimp, mail jet, new relic dll

disini saya akan menerapkan sendgrid laraval.

cara penerapan nya cukup mudah, pertama anda buat account di sendgrid bisa lewat link berikut klik

yang terpenting anda mempunyai akun di sana terlebih dahulu dan pilih bagian sendgrid email api, anda akan dapatkan info seperti berikut:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=username_sendgrid
MAIL_PASSWORD=password_email
MAIL_ENCRYPTION=TLS

anda masukkan ke .env laravel anda code yang di bold diatas.

kemudian di bagian controller anda tinggal menggunakan [ use MAIL ] di bawah namespace dari controllernya.

selanjutnya tinggal input code email dari laravel seperti di bawah ini:


$user = array(
'email'=> 'email tujuan',
'name'=> 'nama tujuan'
);

$data = array(
'email'=>'data email yang akan dikirim',
'name'=> 'data nama yang akan dikirim'
);

Mail::send('nama_folder.nama_file_php',$datas , function($message) use ($users){
$message->to($users['email'],$users['name'])->subject('Isi Subject');

SEMOGA BERMANFAAT 🙂

Trik berbagai SMS API dengan PHP dan MYSQL

Sudah Cukup Lama tidak menulis lagi di blog di karena kan kesibukan dan hal penting lainnya.

sudah banyak keinginan untuk menulis lagi di blog TOPIDESTA.

Sekarang saya coba berbagi ilmu tentang sms api dengan PHP.

beberapa contoh di internet diantaranya adalah:

  1. nexmo sms API.
  2. twilio sms API
  3. sinch sms API
  4. facebook SMS API
  5. zenziva sms API
  6. dll

kalau penulis biasanya menggunakan zenziva sms API dan facebook sms API. karena lebih mudah dan cocok untuk pemula, tapi untuk beberapa perusahaan besar sudah memiliki API sendiri.

contoh code dari zenziva:


$hp = $_POST['no_hp'];

$userkey = "key_anda"; // ini didapat setelah kita mendaftar di websitenya, posisinya di API setting.
$passkey = "pass_anda";
$nohp = $hp;
$message = rand(0000,9999);
$url = "https://reguler.zenziva.net/apps/smsapi.php";
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, 'userkey='.$userkey.'&passkey='.$passkey.'&nohp='.$nohp.'&pesan='.urlencode($message));
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
curl_setopt($curlHandle, CURLOPT_POST, 1);
$results = curl_exec($curlHandle);
curl_close($curlHandle);

contoh diatas kita bisa pakai untuk validasi no hp seperti web kelas atas, atau pun bisa untuk promo-promo tertentu.

dari code diatas anda akan mendapatkan sms kode dari rand(00000,99999) yang kita buat tadi.

selamat mencoba , 🙂

[trick] Menambahkan Library ESC/POS di Codeigniter

Bismillah…

Kebetulah dikantor lagi dapet maenan baru, printer epson series tm-u220d kayak gini:

Terus, karena ngoding langsung pake RAW-TEXT dari printer ribet, contoh RAW-TEXT dari Vendor Zebra kayak gini neh:

^FN11 : NO Rekam medis
^FN12 : Nama Pasien
^FN13 : No Rekam medis bentuk barcode
^FN61 : Nama obat
^FN62 : kwantitas makan, brp tablet/kapsul perhari
^FN63 : sblm atau ssedh makan
^PQ  : kwantitas label identik

^XA
^XFE:PHARMA01.ZPL
^FN11^FD111212121212^FS
^FN12^FDKomarudin Ibrahim Saleh^FS
^FN13^FD>;111212121212^FS
^FN61^FDPanadol Expectoran 250mg^FS
^FN62^FD3 x 1 Tablet / hari^FS
^FN63^FDMinum Setelah Makan^FS
^PQ2,0,0
^XZ

Nah, karena yang dipake itu dari EPSON, akhirnya searching eh dapet deh di Github yang senang hati berbagi ini linknya:

https://github.com/mike42/escpos-php/tree/master

Ternyata TM-U220 didukung sama libarary ini, yaudah oprek deh, cara gunanya gampang banget, karena udah pake bootstrap auotloader, jadi yah tinggal load sebagai library … selebihnya bisa dicek di repo gw:

https://github.com/RSUP/ESC-POS

Gw Kagak fork, soalnya gw pake manual download dan upload file git nyah …. hehehe.

Have a nice day!

source:

  1. https://github.com/mike42/escpos-php/tree/master
  2. https://github.com/RSUP/ESC-POS

[trick] Rest Client Upload File Di PHP/ Codeigniter

Bismillah…

kalo muncul error kayak gini..

Disallowed Key Characters.

class MY_Input extends CI_Input {

    /**
     * Clean Keys
     *
     * This is a helper function. To prevent malicious users
     * from trying to exploit keys we make sure that keys are
     * only named with alpha-numeric text and a few other items.
     * 
     * Extended to allow: 
     *      - '.' (dot), 
     *      - '[' (open bracket),
     *      - ']' (close bracket)
     * 
     * @access  private
     * @param   string
     * @return  string
     */
    function _clean_input_keys($str) {
        // if (!preg_match("/^[a-z0-9:_\/\.\[\]\\s-]+$/i", $str)) {
        if (!preg_match("/^[a-z0-9:_\/-àâçéèêëîôùû]+$|/i", $str)) {

            /**
             * Check for Development enviroment - Non-descriptive 
             * error so show me the string that caused the problem 
             */
            if (getenv('ENVIRONMENT') && getenv('ENVIRONMENT') == 'DEVELOPMENT')
                var_dump($str);
            exit('Disallowed Key Characters.');
        }

        // Clean UTF-8 if supported
        if (UTF8_ENABLED === TRUE) {
            $str = $this->uni->clean_string($str);
        }

        return $str;
    }

}

Simpan di core, dengan nama MY_Input.php….

Kalo udah, ini rest server bisa ditest pake rest client apa ajah … ini yang php:

	function upload_post() {
	 $uploaddir = ROOTPATH.'/foto/full/'; //exit(var_dump($uploaddir));
	    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

	    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
	        $this->response($uploadfile, 200);       
	    } else {
	        $this->response(array('error' => strip_tags($this->upload->display_errors())), 404);        
	    }
	}
	
		$this->load->helper('layout');
		
		$uploadpath = ROOTPATH.'/foto/real/'; //realpath('assets/doc/img/real/');
		$filedata = $_FILES['filedata']['tmp_name'];
		$filename = $_POST['filename'];
		if ($filedata != '' && $filename != '')
		    copy($filedata,$uploadpath.$filename);

		$this->load->library('image_moo');

        // Take The Foto, and IMO WORK!
        $source = $uploadpath.$filename; //exit(dump($source));

        /* SIMPEN FILE */
        $full_des = ROOTPATH."/foto/full/".$filename;          
        $medi_des = ROOTPATH."/foto/medium/".$filename;
        $smal_des = ROOTPATH."/foto/small/".$filename;
        $thum_des = ROOTPATH."/foto/thumbnails/".$filename;

        $medi_h = 342;
        $medi_w = 342;            
        $smal_h = 152;
        $smal_w = 152;
        $thum_h = 62;
        $thum_w = 62;

		$this->image_moo
            // Full
	        ->load($source)
	        ->resize(2000,2000)
	        ->round(10)
	        ->save($full_des,true)
	        
	        // Thumbnails
	        ->load($source)
	        ->stretch($thum_w,$thum_h)
	        ->round(10)
	        ->save($thum_des,true)
	        
	        // Small
	        ->load($source)
	        ->stretch($smal_w,$smal_h)
	        ->round(10)
	        ->save($smal_des,true)
	        
	        // Medium
	        ->load($source)
	        ->stretch($medi_w,$medi_h)
	        ->round(10)
	        ->save($medi_des,true)
        ;

kalo ini yang versi Codeigniter 2.x:

	function upload_post() {
	$status = "";
    $msg 	= "";
     
    if ($status != "error")
    {
        $config['upload_path'] = ROOTPATH.'/foto/full/';
        $config['allowed_types'] = 'gif|jpg|png|doc|txt';
        $config['max_size'] = 1024 * 8;
        $config['encrypt_name'] = FALSE;
 
        $this->load->library('upload', $config);
 
        if (!$this->upload->do_upload('userfile'))
        {
            $status = 'error';
            $msg = $this->upload->display_errors('', '');
        }
        else
        {
            $data = $this->upload->data();
            // $file_id = $this->files_model->insert_file($data['file_name'], $_POST['title']);
            if($data)
            {
                $status = "success";
                $msg = "File successfully uploaded";
            }
            else
            {
                unlink($data['full_path']);
                $status = "error";
                $msg = "Something went wrong when saving the file, please try again.";
            }
        }
        @unlink($_FILES[$file_element_name]);
    }
    echo json_encode(array('status' => $status, 'msg' => $msg));
	}

Udah Kelar!

source:

  1. http://stackoverflow.com/questions/7077666/codeigniter-and-restserver-how-to-upload-images/11163068#11163068
  2. http://toddish.co.uk/blog/ajax-file-upload-in-codeigniter-mvc/