[Sql Query] Menemukan selisih dan mengroupingkannya. :)

SELECT r.*,
IF(@lastcell=cell_id,@diff:=SECOND(TIMEDIFF(datetime_production, @interv)),0) selisih,
IF(@diff<11, @count, @count:=@count+1),
@lastcell:=cell_id,
@interv:=datetime_production
FROM
(SELECT * FROM not_goods WHERE date_production = CURDATE() AND (MINUTE(datetime_production)>54 OR MINUTE(datetime_production)<11) ORDER BY cell_id, id, counters) AS r
CROSS JOIN
(SELECT @interv := ‘0000-00-00 00:00:00’, @first:= 0, @lastcell:=NULL, @count :=0, @diff:=0) AS vars
ORDER BY cell_id,counters;

Advertisements

Tutorial Bot telegram dengan Laravel

Assalamu’alaikum. malam ini saya mau mencatat bagaimana membangun aplikasi bot telegram menggunakan laravel. saya rencananya mau mengganti sms-gateway aplikasi customer saya ke bot laravel. karena keluhan dari customer saya, menggunakan sms-gateway sangat menguras biaya dan sangat ribet. kebetulan customer saya adalah korporasi, jadi untuk pendanaan receh seperti pulsa akan menambah pekerjaan bagi purchasing, it dan financial mereka. bener-bener tidak mudah. kalau menggunakan bot telegram, saya kira sudah dapat ditangani dengan tagihan internet korporet. 🙂

oke, udahan dulu curhatnya. berikut tahapan yang akan dan sedang dilakukan oleh saya.

  1. mendaftar bot

nah, sebelum kemana-mana, kita mesti mendaftar dulu ke telegram agar dapat token yang nantinya akan selalu digunakan oleh aplikasi kita. cara daftarnya gampang, tinggal chat aja dengan “botfather”. silahkan cari di bilik pencarian. nanti kita akan seakan ngirim pesan /start silahkan chatingan dengan botfather untuk mendapatkan tokennya. ingat, jika sudah mendapatkan token, harap di simpan baik-baik jangan sampai ada orang lain yg tahu. itu rahasia anda sendiri. 🙂

  1. fresh install new project laravel dan  library bot telegram

langkahnya hanya “laravel new namaproject”, kalau di saya “laravel new telegram”. selanjutnya cd ke direktory project. di saya “cd telegram”.  lalu “composer require irazasyed/telegram-bot-sdk ^2.0”. ini langkah untuk install library saja. selanjutnya konfigurasi. refer ke sini aja. https://telegram-bot-sdk.readme.io/docs untuk konfigurasinya. 🙂

  1. berkenalan dengan bot telegram

saya sudah sedikit mengantuk ini, udahan dulu ya. 😀

#anggep aja ini serial 1001 malam. 😀

workflow persiapan alat kerja web development saya

selamat malam, kali ini saya mau berbagi apa yang mesti disiapkan untuk alat-alat saya dalam proses development website.

saat ini saya sedang install os baru di leptop saya. berhubung sepertinya sering kebingunan untuk proses install apa saja yang mesti disiapkan, maka lebih baik saya share saja apa saja yang saya install di leptop saya ini. 🙂

berikut yang semestinya saya lakukan dan semestinya lakukan untuk pekerjaan saya ini.

1. install os. kali ini saya menggunakan xubuntu. ubuntu dengan tampilan xfce. jangan tanyakan kenapa menggunakan ini. karena sebenernya saya asal pilih saja. kali ini xubuntu yang beruntung. 🙂
2. install apache2, mariadb-server dan php7.0
3. install composer
4. install hirak/prestissimo, ini untuk mempercepat kerja composer, kalau tidak pakai ini, saya merasa performa composer sangat rendah. 🙂
5. install laravel/installer, saya pengguna framework laravel. mesti ini. 🙂
6. install barryvdh/laravel-debugbar.
7. daftarkan vendor/bin composer ke path.
8. chown /var/www/html ke user:group user saat ini
9. install vim, sublime
10. install plugin sublime: control sublime, phpcompanio, code complice, laravel. untuk vim, saya buat gayak-gayaan aja. 😀
11. install google chrome. entah kenapa, saya lebih suka chrome daripada firefox bawaan xubuntu.

persenjataan saya sudah lengkap. 😀

 

note: sampai saat ini saya belum tertarik belajar apalagi mendalami front end. oleh karena itu, dalam workflow saya dalam persiapan peralatan saya tidak ditemukan konfigurasi semacam bower, gulp dkk. saya lebih nyaman pakai template AdminLTE saja. 🙂

Post from Qt5

#include <QCoreApplication>
#include <QDebug>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QUrlQuery>
void sendRequest();
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    sendRequest();
    return 0;// a.exec();
}
void sendRequest(){
   QByteArray data;
    QUrlQuery params;
    params.addQueryItem("param1", "value1");
    params.addQueryItem("param2", "value2");
    params.addQueryItem("param3", "value3");
    data.append(params.toString());
    qDebug()<<data;
    QEventLoop eventLoop;
    QNetworkAccessManager manager;
    QObject::connect(&manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
    QNetworkRequest request(QUrl("http://mars.dev/test"));
    request.setHeader(QNetworkRequest::ContentTypeHeader,QStringLiteral("application/x-www-form-urlencoded"));
    QNetworkReply *reply = manager.post(request,data);
    qDebug()<<"tunggu";
    eventLoop.exec(); // tunggu hingga request finish
    if (reply->error() == QNetworkReply::NoError) {
        //success
        qDebug() << "Success" <<reply->readAll();
        delete reply;
    }
    else {
        //failure
        qDebug() << "Failure" <<reply->errorString();
        delete reply;
    }
    qDebug()<<"selesai";
}

 

Catatan tentang Perangsang. [Repost]

Kebanyakan para petani khususnya petani buah-buahan pasti seringkali menggunakan Perangsang Buah ataupun Perangsang Pembungaan untuk memacu bunga atau kembang supaya dapat berbuah lebat.

Tapi tahukan anda bahwa Perangsang buah atau perangsang pembungaan dapat kita buat dan tanpa membeli dan mengeluarkan banyak uang, juga yang paling utama hal ini dilakukan dengan cara alami dan hanya satu bahan yang mungkin agak susah didapat tetapi masih banyak terdapat ditempat-tempat tertentu/CIU.
Berikut caranya :
Bahan :
      Kuning telor 4 butir
      Susu Kental Manis putih 1 kaleng
      Madu 1 sdm
      Ciu (sejenis minuman keras/ hasil fermentasi) 1 liter (bisa diganti dengan hasil air fermentasi lainnya seperti : fermentasi tape, fermentasi nira dll)
      Air sumur 5 liter
Cara Pembuatan :
      Kuning telor dikocok sampai halus (mixer)
      Masukan susu dan madu, kocok sampai rata
      Masukan air sumur, dan Ciu aduk rata
Dosis :
1 gelas (200-220ml) : 14 liter air

Manfaat Ciu / alkohol bagi tanaman = Sterilisasi pada tumbuhan (mengurangi dan menghentikan pertumbuhan mikroba pengganggu pada tumbuhan terutama pada daun dan batang, seperti, bercak daun (penyakit blas), jamur/khamir/cendawan serta spora organisme penyakit

Aplikasi :
Semprotkan tanaman yang ingin dibungakan (Semua jenis tanaman buah).
Peringatan :
Mohon untuk tidak disemprotkan pada tanaman sayuran karena tanaman sayur yang diambil adalah daunnya yang akan berefek pada munculnya bunga pada sayuran tersebut.
saya repost hanya untuk mencegah post lama hilang dan akan susah dicari lagi. 🙂

Prosedure MySQL pertamaku.

fasilitas ini sebenernya fasilitas kuno yang tersedia di mysql. cuman kali ini aja kayaknya butuh prosedur untuk menginput datanya. so, belajar dulu. dan alhamdulillah berhasil sesuai dengan yang diinginkan. 🙂

 

ini dia prosedure buatan saya:

DELIMITER $$

DROP PROCEDURE IF EXISTS `save_state`$$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `kang_aep`.`save_state`(id_line VARCHAR(10),
fg_qty INT,
ng_qty INT,
er_qty INT)
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT ‘string’*/
BEGIN
DECLARE last_id INT(11) DEFAULT 0;
DECLARE last_fg INT(11) DEFAULT 0;
DECLARE last_ng INT(11) DEFAULT 0;
DECLARE last_er INT(11) DEFAULT 0;
DECLARE newNG BOOL DEFAULT FALSE;
SELECT MAX(t_counting_id)
INTO last_id
FROM t_counting
WHERE t_counting.`line_id` = id_line;

SELECT t_counting_id,
COALESCE( fg_quantity,0),
COALESCE(ng_quantity,0),
COALESCE(e_quantity,0)
INTO last_id, last_fg, last_ng, last_er
FROM t_counting
WHERE t_counting.`line_id` = id_line
AND t_counting_id = last_id;

WHILE last_fg < fg_qty DO
SET last_fg := last_fg + 1;
INSERT INTO t_counting(line_id,ng_quantity, fg_quantity,e_quantity, TYPE)
VALUE(id_line, last_ng, last_fg, last_er, “FG”);
END WHILE;

WHILE last_ng < ng_qty DO
SET last_ng := last_ng + 1;
INSERT INTO t_counting(line_id,ng_quantity, fg_quantity,e_quantity, TYPE)
VALUE(id_line, last_ng, last_fg, last_er, “NG”);
SET newNG := TRUE;
END WHILE;

WHILE last_er < er_qty DO
SET last_er := last_er + 1;
INSERT INTO t_counting(line_id,ng_quantity, fg_quantity,e_quantity, TYPE)
VALUE(id_line, last_ng, last_fg, last_er, “ER”);
END WHILE;
IF newNG THEN
INSERT INTO `t_message`(`number`, `message`)
(SELECT `telp`, CONCAT(“Telah terdeteksi metal di line (“, `linename` ,”), plan (“, `planname`, “) sejumlah “, `ng_quantity`, “pcs dengan klaim error sejumlah “, `e_quantity`, “pcs.”) message
FROM `v_pre_sms` WHERE `v_pre_sms`.`line_id` = id_line);
INSERT INTO outbox(`DestinationNumber`, `TextDecoded`)
(SELECT `telp`, CONCAT(“Telah terdeteksi metal di line (“, `linename` ,”), plan (“, `planname`, “) sejumlah “, `ng_quantity`, “pcs dengan klaim error sejumlah “, `e_quantity`, “pcs.”) message
FROM `v_pre_sms` WHERE `v_pre_sms`.`line_id` = id_line);
END IF;
END$$

DELIMITER ;

alhamdulillah berjalan dengan baik sekali. 🙂