587 items|« First « Prev 1 2 (3/59) 4 5 Next » Last »|

Connecting to Android Device with ADB over WiFi

โดย Little Bear on 14 ต.ค. 63 14:25
  1. ต่อโทรศัพท์ Android กับ Mac ก่อน ด้วย USB Cable
  2. เปิด Termilal แล้ว run
    Library/Android/sdk/platform-tools/adb tcpip 5555
    Library/Android/sdk/platform-tools/adb connect YOURDEVICEIP:5555
  3. รอดูผลของการเชื่อมต่อ
  4. ถอดสาย USB ออก แล้วก็ debug ผ่าน WIFI โลด


Apache Config on Ubuntu Server :: Manual add new site

โดย Little Bear on 10 ต.ค. 63 16:16

Create new user how

sudo adduser userName

Make user sudo how

sudo adduser userName sudo

MySQL Configuration

  • Increrase memory size for MySQL Server using nano /etc/my.cnf and add/change value ตามรายละเอียด
    innodbbufferpoolsize = 2048M
    innodblogfilesize = 512M
    maxconnections = 500
    keybuffer_size = 512M

PHP Config

Set timezone to Asia/Bangkok

nano /etc/php/7.4/apache2/php.ini
date.timezone = Asia/Bangkok

Add CNAME domain.com to ppi.psu.ac.th

Add new site to Apache

cd /etc/apache2/sites-available
nano sites-available/doname.com.conf
<VirtualHost *:80>
    ServerName domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/domain.com
<VirtualHost *:80>
    ServerName www.domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/domain.com

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
    ServerName domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /home/user/domains/domain.com
<VirtualHost _default_:443>
    ServerName www.domain.com
    ServerAdmin webmaster@localhost
    DocumentRoot /home/user/domains/domain.com
cd /etc/apache2/sites-enabled
ln -s ../sites-available/domain.com.conf domain.com.conf

Restart Apache

systemctl restart apache2

Restart MySql

systemctl restart mysql

INSTALL Let's Encrypt

apt-add-repository -r ppa:certbot/certbot

After that, the following commands do not generate any errors:

apt update
apt-get update
apt install python3-certbot-apache
certbot --apache -d domain.com -d www.domain.com

You should test your configuration at:



Congratulations! Your certificate and chain have been saved at:

  • /etc/letsencrypt/live/domain.com/fullchain.pem
  • Your key file has been saved at:
  • /etc/letsencrypt/live/domain.com/privkey.pem
  • Your cert will expire on 2021-01-08. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew all of your certificates, run "certbot renew"

To test the renewal process, you can do a dry run with certbot:

sudo certbot renew --dry-run

Correct way to completely remove issued certificate(s) for a domain

certbot delete --cert-name domain.com

Copy file from another server using SSH

Alternatively, you could mount the myserver's filesystem over SSH with sshfs. This may be too much hassle for a one-off need, but convenient if you do this sort of thing often.

mkdir myserver
sshfs -p 22 domain.com:/path/ myserver
wget -O ~/myserver/path/to/remote/destination http://www.example.com/whatever

rsync -trv myserver/src/path/ dest/path/
umount myserver

rsync in background

nohup rsync -trv myserver/src/path/ dest/path/ &

Dump Database

mysqldump -u [username] -p [database-you-want-to-dump] > [path-to-place-data-dump.sql]
/usr/local/mysql/bin/mysqldump -u [username] -p [database-you-want-to-dump] > [path-to-place-data-dump.sql]

Ways to Flush DNS Cache on Mac OSx

sudo killall -HUP mDNSResponder

WhoIs LookUp

nslookup -type=ns softganz.com

Setup Time Sync


apt-get install ntp

แก้ไข config

server 1.th.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server clock.nectec.or.th


service ntp restart


สร้างปุ่มเมนูบน Action Bar ของ Template Buttom Navigator Activity

โดย Little Bear on 30 ก.ย. 63 11:18

ตอนที่เริ่มสร้าง App ใหม่ โดยใช้ Template Buttom Navigator Activity นั้นจะไม่มีปุ่มเมนูบนด้านขวาของ Action Bar หากเราต้องการใช้ ก็จำเป็นต้องสร้างขึ้นมาเอง

เริ่มด้วยการสร้าง resource file ของ options menu ก่อน

Menu -> New -> Resource File File name : options_menu Resource type : Menu


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    app:showAsAction="always" />
    app:showAsAction="ifRoom" />
    android:title="@string/action_aboutus" />


override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    val inflater = menuInflater
    inflater.inflate(R.menu.options_menu, menu)
    if (menu is MenuBuilder) {
    return super.onCreateOptionsMenu(menu)

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.itemId) {
        R.id.aboutUsFragment -> {
            toast("About Us")
    return super.onOptionsItemSelected(item)


menu?.apply {
// ----------------- add a new item to menu ----------------
// add new item to menu
val newItem:MenuItem = menu.add(
    Menu.NONE, // group id
    2, // item id
    1, // order
    "New Item" // title

// set new item's icon

// set new item show as action flags

// menu new item click listener
newItem.setOnMenuItemClickListener {
    Toast.makeText(this@MainActivity, "New Item Clicked", Toast.LENGTH_SHORT).show()

// ----------------- remove an item from menu ----------------

// ----------------- update an item in menu ----------------
menu.findItem(R.id.settings).apply {
    title = "Updated Title"

ตรวจสอบว่า menu ได้สร้างหรือยัง?


ตรวจสอบว่า key ของ Array มีหรือไม่?


การเข้าถึง R -> Resource



วิธีการรับส่งข้อมูลของ Android Fragment

โดย Little Bear on 23 ก.ย. 63 17:29

ช่วงนี้กำลังพัฒนา Green Smile App เวอร์ชั่นใหม่ โดยเปลี่ยนแปลงรูปแบบมาใช้ Fragment แทน

หลังจากทำไปพักหนึ่ง ก็มีปัญหาในการสื่อสาร/เข้าถึงข้อมูลระหว่า Activity กับ Fragment

ขอบคุณบทความดี ๆ จาก Akexorcist เรื่อง Let’s Fragment — วิธีการรับส่งข้อมูลของ Fragment แถมในบทความยังมีบทความในซีรีย์เดียวกันอีกหลายเรื่อง เช่น

  • มารู้จักกับ Fragment กันเถอะ~
  • เริ่มต้นง่ายๆกับ Fragment แบบพื้นฐาน
  • ว่าด้วยเรื่องการสร้าง Fragment จาก Constructor ที่ถูกต้อง
  • รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 1]
  • รู้จักกับ FragmentTransaction สำหรับการแสดง Fragment [ตอนที่ 2]
  • Lifecycle ของ Fragment (Fragment Lifecycle)
  • วิธีการรับส่งข้อมูลของ Fragment
  • มาทำ View Pager กันเถิดพี่น้อง~ [ตอนที่ 1]
  • มาทำ View Pager กันเถิดพี่น้อง~ [ตอนที่ 2]
  • เพิ่มลูกเล่นให้กับ View Pager ด้วย Page Transformer


Android : Close box on WebView

โดย Little Bear on 20 ก.ย. 63 18:12

fun evaluateJsFromNative(command: String,
    webView: WebView, function: (value : Boolean) -> Unit ) {
    webView.evaluateJavascript("(function() { return $command; })();") {
        s -> function(s.toBoolean())
override fun onBackPressed() {
    var boxCheck = "document.getElementsByClassName('box-page')[0].tagName == 'DIV';"
    evaluateJsFromNative(boxCheck, myWebView) {
        if (it) {
            evaluateJsFromNative("$.colorbox.close()", myWebView){}
        } else {

Dust In The Wind

โดย Little Bear on 10 ส.ค. 63 09:39
C Cmaj7 Cadd9 C Asus2 Asus4 Am Asus2
Cadd9 C Cmaj7 Cadd9 Am Asus2 Asus4 Am

  C    G/B  Am    G        Dm7          Am I close my eyes only for a moment and a moment´s gone. C  G/B  Am    G            Dm7          Am All my dreams pass before my eyes a curiosity.
D  G        Am    D            G          Am Dust in the wind, all we are is dust in the wind.
C  G/B  Am    G            Dm7            Am Same old song, just a drop of water in the endless sea. C  G/B  Am  G                Dm7              Am All we do, crumbles to the ground though we refuse to see.
D  G        Am    D            G          Am Dust in the wind, all we are is dust in the wind.
C      G/B  Am  G                Dm7          Am Don't hang on, nothing last´s forever but the earth and sky. C  G5      Am  G                  Dm7        Am It slips away all your money won´t another minute buy.
D  G        Am    D            G          Am Dust in the wind, all we are is dust in the wind D  G        Am    D            G          Am Dust in the wind, everything is dust in the wind.

Ultimate Guitar

Application Green Smile

โดย Little Bear on 9 ก.ค. 63 11:01

Application Green Smile ที่เราสร้างขึ้นมาเพื่อให้เป็นเครื่องมือหนึ่งของแพลตฟอร์ม ที่จะช่วยให้เกษตรกรสามารถเชื่อมโยงผลผลิตไปสู่ผู้บริโภคนะครับ


  • จะเป็นตัวช่วยให้กลุ่มเกษตรกรหรือเกษตรกรสามารถบริหารจัดการแปลงที่ดินที่มีอยู่ โดยการบันทึกผลผลิตในแต่ละรุ่นทั้งประเภท จำนวน วันเก็บเกี่ยว รวมถึงการให้ผู้บริโภคสามารถจองผลผลิตดังกล่าวได้ ผู้บริโภคสามารถติดตามกิจกรรมของการผลิตในแต่ละแปลงได้


Application Green Smile สามารถนำไปประยุกต์ให้งานกับเกษตรกรกลุ่มไหนได้บ้าง?

  • สามารถนำไปใช้กับสวนยางได้ ในระบบการขนส่งน้ำยางจากแปลงยางได้ทันเวลาได้น้ำยางที่มีคุณภาพ การเก็บข้อมูลพืชร่วมยาง รวมทั้งธนาคารต้นไม้

  • เราสามารถนำไปใช้งานในการบริหารจัดการเกษตรได้หลากหลายรูปแบบ เช่น เกษตรสวนยางพารา(FSC), เกษตรกรอินทรีย์(PGS,GAP), ธนาคารต้นไม้

  • ผลผลิต รายวัน,รายสัปดาห์,รายเดือน,รายปี,ระยะยาว(หลังเกษียณ)

ดูรายละเอียด Application Green Smile

Check and Repair Hardisk

โดย Little Bear on 22 มิ.ย. 63 23:29

umount -l /dev/sda1
e2fsck -cfpv /dev/sda1 > chresult.txt&

Android : เพิ่มภาษาไทยให้กับ app

โดย Little Bear on 10 ธ.ค. 62 09:26

เลือกเมนู New Value Resource




ตั้งชื่อ strings_th.xml

DirectAdmin : Delete All Ticket and Message

โดย Little Bear on 5 ธ.ค. 62 09:22

cd /usr/local/directadmin/data/admin
echo -n "" > tickets.list

587 items|« First « Prev 1 2 (3/59) 4 5 Next » Last »|