Senin, 20 Maret 2023

Calculate bounding box coordinate using php

saya punya kordinat "-6.9788295,107.6333703", buat perhitungan menggunakan php untuk membuat kotak yang mengelilingi kordinat tersebut, sehingga akan menghasilkan 4 buah kordinat, dimana titik tengah nya "-6.9788295,107.6333703", buat jarak antar sisi berjarak 5 meter


<?php $lat = -6.9788295; // latitude $lng = 107.6333703; // longitude $distance = 5; // jarak antar sisi dalam meter // konversi jarak antar sisi dari meter ke derajat $distance_lat = $distance / 111111; // 1 derajat latitude = 111.111 meter $distance_lng = $distance / (111111 * cos(deg2rad($lat))); // 1 derajat longitude berbeda-beda tergantung pada lintangnya // hitung koordinat titik sudut kotak $northwest_lat = $lat + $distance_lat; $northwest_lng = $lng - $distance_lng; $southeast_lat = $lat - $distance_lat; $southeast_lng = $lng + $distance_lng; // tampilkan hasil echo "Titik Tengah: $lat, $lng<br>"; echo "Jarak antar sisi: $distance meter<br>"; echo "Koordinat kotak:<br>"; echo "($northwest_lat, $northwest_lng)<br>"; echo "($northwest_lat, $southeast_lng)<br>"; echo "($southeast_lat, $southeast_lng)<br>"; echo "($southeast_lat, $northwest_lng)<br>"; ?>



Kamis, 02 Maret 2023

Mengambil data snmp menggunakan python pysnmp

 Instal pysnmp

pip install pysnmp

Buat file receiver snmp (file ini hanya dapat menerima snmp versi 1 dan versi 2c)

snmp_receiver.py

from pysnmp.hlapi import *
from pysnmp.entity.rfc3413 import ntfrcv
from pysnmp.entity import engine, config
from pysnmp.carrier.asyncore.dgram import udp
import time
import os


# Fungsi untuk menangani notifikasi SNMP Trap
def handle_trap(snmp_engine, state_reference, context_engine_id, context_name, var_binds, cb_ctx):
# Loop melalui semua variable bindings
# open file snmp_trap.txt
with open('snmp_trap.txt', 'a') as f:
for var_bind in var_binds:
oid, value = var_bind
timestamp = int(time.time())

# simpan file snmp ke log snmp_trap.txt
f.write(f"OID: {oid.prettyPrint()}, value: {value.prettyPrint()}\n")

print(f"OID: {oid.prettyPrint()}, value: {value.prettyPrint()}")


def main():
# jika file snmp_trap.txt tidak ada, maka buat
if not os.path.isfile('snmp_trap.txt'):
open('snmp_trap.txt', 'w').close()

# Inisialisasi engine SNMP
snmp_engine = SnmpEngine()
community_name = 'my-community'
# 0.0.0.0 untuk mengambil data dari semua device
device_ip = '0.0.0.0'

# Inisialisasi handler SNMP Trap
trap_receiver = ntfrcv.NotificationReceiver(snmp_engine, handle_trap)

# Konfigurasi handler SNMP Trap
# 162 merupakan port default snmp
config.addTransport(
snmp_engine,
udp.domainName + (1,),
udp.UdpTransport().openServerMode((device_ip, 162))
)
config.addV1System(snmp_engine, community_name, community_name)


# Jalankan modul penerima SNMP Trap
snmp_engine.transportDispatcher.jobStarted(1)

try:
snmp_engine.transportDispatcher.runDispatcher()
finally:
snmp_engine.transportDispatcher.closeDispatcher()


if __name__ == '__main__':
main()

Buat kode untuk testing mengirim snmp

from pysnmp.hlapi import *

# membuat varbind untuk SNMP trap
# set oid = 1.3.6.1.2.1.31.1.1.1.6
# set string value yang berisi Traps
var_binds = [
('1.3.6.1.2.1.31.1.1.1.6', OctetString('Traps')),
]

# sesuaikan dengan server agent kalian
server_ip = 'localhost'

# mengirimkan SNMP trap
errorIndication, errorStatus, errorIndex, varBinds = next(
sendNotification(
SnmpEngine(),
CommunityData('my-community', mpModel=0),
UdpTransportTarget((server_ip, 162)),
ContextData(),
'trap',
NotificationType(
ObjectIdentity('SNMPv2-MIB', 'coldStart')
).addVarBinds(*var_binds)
)
)

# menampilkan hasil
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'))
else:
print('SNMP trap berhasil dikirim')

Jika ingin menjalankan background service file receiver di linux bisa menggunakan nohup:

nohup python3 snmp_receiver.py &

jika ingin melihat id dari service snmp_receiver, bisa menggunakan perintah:

ps aux | grep snmp_receiver.py

Jika ingin menghentikan background service bisa menggunakan:

kill 54626

54626 adalah pid dari service, yang didapatkan melalui ps aux diatas.

Rabu, 01 Maret 2023

Mengambil jarak dalam radius menggunakan sql (Retrieval of distances in a radius using sql)

Satuan Meter

Sebagai informasi, 1 derajat (decimal degree) setara dengan sekitar 111,12 kilometer pada lingkaran khatulistiwa bumi. Oleh karena itu, untuk menghitung radius dalam derajat, perlu dilakukan konversi dari meter ke derajat dengan rumus:

1 meter = 1 / (111,12 km) = 0.000008983 derajat

Untuk menghitung radius dalam derajat yang setara dengan 5 meter, perlu dikalikan dengan nilai tersebut sehingga diperoleh:

5 meter * 0.000008983 derajat/meter = 0.000044915 derajat

Sehingga query untuk mengambil data dalam radius 5 meter pada MySQL adalah sebagai berikut:

SELECT * FROM locations WHERE SQRT(POW((latitude — (-6.7175274)), 2) + POW((longitude — (108.2801614)), 2)) <= 0.000044915


Satuan Kilometer

Untuk menghitung radius dalam derajat yang setara dengan 1 kilometer, perlu dikalikan dengan nilai tersebut sehingga diperoleh:

1 kilometer * 0.008983 derajat/kilometer = 0.008983 derajat

Sehingga query untuk mengambil data dalam radius 1 kilometer pada MySQL adalah sebagai berikut:

SELECT * FROM locations WHERE SQRT(POW((latitude — (-6.7175274)), 2) + POW((longitude — (108.2801614)), 2)) <= 0.008983


Asumsi bahwa 1 derajat (dalam konteks garis lintang atau garis bujur) sama dengan sekitar 111,319 km didasarkan pada perhitungan sirkumferensi Bumi yang merupakan jarak yang ditempuh jika berjalan mengelilingi Bumi pada garis lintang atau garis bujur yang sama.

Sirkumferensi Bumi adalah sekitar 40.075 km pada khatulistiwa dan semakin ke arah kutub, jaraknya semakin pendek. Oleh karena itu, jarak satu derajat pada garis lintang atau garis bujur akan berbeda-beda tergantung pada letaknya di Bumi.

Perhitungan 1 derajat sama dengan sekitar 111,319 km berasal dari perhitungan sederhana, yaitu 360 derajat dalam satu lingkaran yang jika dikalikan dengan sirkumferensi Bumi (40.075 km) maka didapatkan hasil sekitar 40.075 km x 360 derajat = 14.400.900 km. Jika dibagi dengan 360 derajat, maka didapatkan hasil sekitar 40.075 km / 360 derajat = 111,319 km per derajat.


How to install air (golang hot reload)

  1.  go install github.com/cosmtrek/air@latest
  2. add bin path to system environmet, like this is 
  3. check air -v
  4. air init
  5. air

source: https://github.com/cosmtrek/air#installation



Minggu, 19 Juli 2020

Tidak bisa install ulang acer nitro 5

Waktu itu aku mau install ulang windows 10 di laptop asus nitro 5, metode yang kugunakan untuk membuat installer adalah menggunakan tools rufus, dengan settingan:

  1. Partition schema =  'GPT'
  2. Target system = 'UEFI'
  3. File system = 'FAT32'

setelah itu aku masuk bios dengan cara mematikan laptop terlebih dahulu, kemudian menekan tombol F2 sebelum logo acer. Lalu pada tab 'boot' flash disk ku yang berisi installer windows tadi tidak terbaca, akhirnya aku memutuskan untuk menggunakan tools bawaan microsoft yaitu 'media creation tools' yang kudapatkan di website resmi microsoft (https://www.microsoft.com/en-us/software-download/windows10) proses download nya memang cukup lama, tunggu aja. Setelah selesai kemudian aku masuk lagi ke menu bios, dan flash disk ku pun sudah terbaca, selanjutnya tinggal instal ulang seperti biasa dan hubungkan ke internet agar windows dapat otomatis aktif dan dapat menginstall driver yang terbaru.
 

Kamis, 12 Oktober 2017

Anata O Omoitai(Want To Yearn For You)
Penanyi: Yonezawa Madoka as Ogiso Setsuna

冷たい雨が降りはじめて 街を闇にひたしてく
ガラスをすべる雫は まるで流星のようね

Tsumetai ame ga furi hajimete machi o yami ni hitashiteku
Garasu o suberu shizuku wa maru de ryūsei no yō ne

As the cold rain starts to fall, it soaks the town into darkness
The drops as if they are gliding through a glass, look like falling stars

ゆるやかに流れるひと時 あなたをしのんで
大切に見守る想いは 幸せにさせてくれる

Yuruyaka ni nagareru hitotoki anata o shinonde
Taisetsu ni mimamoru omoi wa shiawase ni sasete kureru

As time flows slowly, I recollect the moments with you
I will be watching carefully over these feelings, I will let them make me happy

形のないこの恋心 静かに楽しみたい
もう少しこのままで あなたを想いたい

Katachi no nai kono koigokoro shizuka ni tanoshi mitai
Mō sukoshi kono mama de anata o omoitai

I want to calmly enjoy this formless feeling of love
I want to yearn for you a little more like this

冷たい雨はいつのまにか 消えて闇は流されて
夜空をうめる星たち まるで落ちてきそうだね

Tsumetai ame wa itsunomanika kiete yami wa nagasarete
Yozora o umeru hoshi-tachi maru de ochite ki-sōda ne

The cold rain disappears all too soon and the darkness is drained away
It seems like the night sky is full of falling stars

大好きなあなたの仕草を 指おり数えて
立ち止まり 星空見上げて 幸せに感謝しよう

Daisukina anata no shigusa o yubi ori kazoete
Tachidomari hoshizora miagete shiawase ni kansha shiyou

I love your gesture, counting (stars) on your fingers
Let's appreciate happily that we can stop and look up at the starlit sky

時おり来る 胸の痛みを 切なく楽しみたい
もう少しこのままで あなたを見ていたい

Tokiori kuru mune no itami o setsunaku tanoshi mitai
Mō sukoshi kono mama de anata o mite itai

It is sad but I want to enjoy, this pain in my heart that comes sometimes
I want to look at you like this for a little longer

形のないこの恋心 静かに楽しみたい
もう少しこのままで あなたを想いたい

Katachi no nai kono koigokoro shizuka ni tanoshi mitai
Mō sukoshi kono mama de anata o omoitai

I want to calmly enjoy this formless feeling of love
I want to yearn for you a little more like this

時おり来る 胸の痛みを 切なく楽しみたい
もう少しこのままで あなたを見ていたい
わたしをみつめて

Tokiori kuru mune no itami o setsunaku tanoshi mitai
Mō sukoshi kono mama de anata o mite itai
Watashi o mitsumete

It is sad but I want to enjoy, this pain in my heart that comes sometimes
I want to look at you like this for a little longer
Look at me

Source: onehallyu.com

Minggu, 16 April 2017

Lirik dan Terjemahan Todokanai Koi

Todokanai Koi (Cinta yang Tak Tercapai) 


17 April 2017 Penyanyi: Uehara Rena

Romaji:
kodokuna furi wo shiteru no? naze darou ki ni natteita
kidzukeba itsu no ma ni ka dare yori hikareteita


dou sureba kono kokoro ha kagami ni utsuru no?

todokanai koi wo shiteitemo
utsushidasu hi ga kuru kana
boyaketa kotae ga miehajimeru made ha
ima mo kono koi ha ugokidasenai


hajimete koe wo kaketara furimuitekureta ano hi
anata ha mabushisugite massugu mirenakatta


dou sureba sono kokoro ni watashi wo utsusu no?

kanawanai koi wo shiteitemo utsushidasu hi ga kuru kana
boyaketa kotae ga sukoshi demo mietara
kitto kono koi ha ugokihajimeru


dou sureba kono kokoro ha kagami ni utsuru no?

todokanai koi wo shiteitemo
utsushidasu hi ga kuru kana
boyaketa kotae ga miehajimeru made ha
ima mo kono koi ha ugokidasenai






Indonesia:

"Apakah aku ku berpura-pura menjadi kesepian?
Aku bertanya-tanya mengapa kau berada di pikiranku
Ketika aku menyadari hal itu, aku sudah tertarik denganmu lebih dari siapa pun"


"Apa yang harus kulakukan agar hatiku terpantul dalam cermin?"


"Apakah ada hari ketika akan tercermin, bahkan jika aku dalam cinta yang tak mungkin tercapai?
Sampai jawaban samar-samar mulai menjadi terlihat
Untuk saat ini, cinta ini masih tidak bisa pergi"



"Pada hari itu, kau berbalik kembali ke arahku saat aku memanggilmu untuk pertama kalinya
Kau tampak sangat terang sampai aku tidak bisa melihatmu langsung"


"Apa yang harus kulakukan agar aku bisa ditangkap dalam hatimu?"


"Apakah akan ada hari ketika aku akan ditangkap, bahkan jika aku dalam cinta sia-sia?
Kalau aku bisa melihat sedikit jawaban yang jelas
Maka cinta ini pasti akan mulai terjadi"


"Apa yang harus kulakukan agar hatiku terpantul dalam cermin?"


"Apakah ada hari ketika akan tercermin, bahkan jika aku dalam cinta yang tak mungkin tercapai?
Sampai jawaban samar-samar mulai menjadi terlihat
Untuk saat ini, cinta ini masih tidak bisa pergi"