P: I want my Fujitsu with a Wi-Fi module like the Japanese models!
B: We have a Wi-Fi module at home in Thailand...
Wi-Fi module at home:
Well, SSH use port 22 which is vulnerable to attack misconfiguration can result in severe security issues. Moreover, since I would like to access clients or servers in my VPN networks using SOCKS proxy server, instead of creating a Jumpbox server, why not use existing services?
In my case, I use Koblas on Docker because it's written in Rust lighweight, and quite easy to setup.
I've create a Telegram bot to easily fetch law on the land by typing law number or keyword. But, since OCS decide to revamp the site, I've to update the code to catch with new method of display.
Normally, whenever Thai number contains in the text (๐๑๒๓๔๕๖๗๘๙), I'll manually replace one by one like this one shown by Mr.Kobkrit.
And then, I've read this StackOverflow answer on how to replace "Arabic" number by manipulating character's Unicode number, like Mr. CLarkson would said, I've a brainwave.
| // Paste the following script in the web's console. | |
| // CHANGE BEFORE RUN! USe AT YOUR OWN RISK! | |
| const fromDate = new Date('2024-02-01T07:00:00.000Z'); // February 1st, 2024 | |
| const toDate = new Date('2024-02-14T07:00:00.000Z'); // February 14th, 2024 | |
| for (const targetNoti of document.querySelectorAll('#mastodon [aria-label="Notifications"] .status')) { | |
| const postTime = new Date(targetNoti.querySelector('.status__info time').getAttribute('datetime')); | |
| if (postTime < fromDate || postTime > toDate) continue; | |
| targetNoti.querySelector('.status__action-bar .status__action-bar__dropdown button').click(); |
| LOOKUP_TBL_US = '~!@#$%^&*()_+`1234567890-=QWERTYUIOP{}|qwertyuiop[]\ASDFGHJKL:"asdfghjkl;\'ZXCVBNM<>?zxcvbnm,./' | |
| LOOKUP_TBL_TH = '%+๑๒๓๔ู฿๕๖๗๘๙_ๅ/-ภถุึคตจขช๐"ฎฑธํ๊ณฯญฐ,ฅๆไำพะัีรนยบลฃฤฆฏโฌ็๋ษศซ.ฟหกดเ้่าสวง()ฉฮฺ์?ฒฬฦผปแอิืทมใฝ' | |
| origText = clipboard.get_selection() | |
| # https://superuser.com/a/1432982 | |
| langCode = system.exec_command("xset -q | grep LED | awk '{ print $10 }'", getOutput=True) | |
| crctText = '' | |
| for ot in origText: | |
| lkuPos = -1 |
Recently, I've buy a "new old stock" Cisco CP-6921 in order to replace my old POTS phone used in conjunction with my FXS that I've configured not long ago. So, as Cisco do their best, it's not straightforwardly to configured without their proprietary softwares. Fortunately, there's tons of resources to help and, finally, got me through and got it done. So, to help alleviate the pain that I've gone through, I decide to, once again, write this memo.
This is how I done, not a tutorial. Use your own discrestion. I won't take any responsibility if things break.
Recently, I've install FreePBX and its hardwares to allow recording and (potentially, if I'm not too lazy enough) have a call-centre for future business.
I use Grandstream HT-813 for a FXO (converting PSTN from, idiotically, AIS VoIP landline service) and FXS with exisiting home telephone so I can make a call from my condominium.
However, even with configuration I follow Crosstalk Solution's video series and this tutorial and got both incoming and outgoing calls, I still can't record incoming caller ID.
python3 -m pip install --upgrade pyzbar Pillow pyperclip| #!/usr/bin/python3 | |
| import datetime | |
| import asyncio | |
| import os | |
| import firebase_admin | |
| from firebase_admin import credentials | |
| from firebase_admin import firestore | |
| # Use a service account | |
| cred = credentials.Certificate('./firebase-credential.json') |
| int format(){ | |
| data = "C,"; | |
| data += ultoa(seq, numberBuffer, 36); | |
| data += ','; data += String(ultoa(strtoul(networkCode.c_str(), (char **)NULL, 10), numberBuffer, 36)); | |
| data += ","; data += String(utoa (networkInfo.TAC, numberBuffer, 36)); | |
| data += ","; data += String(ultoa(networkInfo.ECI, numberBuffer, 36)); | |
| data += ','; data += String(utoa ( | |
| strtoul(networkSignalQuality.csq.c_str(), (char **)NULL, 10), | |
| numberBuffer, | |
| 36 |