ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

615 items|« First « Prev 10 11 (12/62) 13 14 Next » Last »|
โดย Little Bear on 8 มี.ค. 59 11:33

Git เป็นระบบจัดการซอร์ส (source code management หรือบางที่ก็เรียกว่า version control system) ตัวหนึ่งที่ได้รับความนิยมจากนักพัฒนาซอฟต์แวร์ในปัจจุบัน เพียงแค่หน้าที่หลักของมันในการติดตามการเปลี่ยนแปลงและเรียกคืนไฟล์ตามช่วงเวลาต่างๆ ก็ทำให้การทำงานโดยใช้ Git บริหารไฟล์มีประสิทธิภาพมากขึ้นหลายเท่าตัว

เคยได้ยิน เคยได้ฟัง เคยอ่านมาบ้างนิดหน่อย

แต่ยังไม่เคยได้ลองใช้งานสักที

ลองตามไปอ่านแนวคิดเรื่อง GIT จาก Blognone ดูก่อน

แล้วไปลองใช้งานได้ที่ try.github.io

เสร็จแล้วก็ไปเข้าเรียนที่ GitReal

ถึงเวลาลองของจริงเสียที

ขั้นที่ 1 : สมัครใช้บริการ GitHub

เราจะใช้ github.com เป็น Git Server นะครับ จะได้ไม่ต้องติดตั้ง Git Server เอง

เข้าไปที่เว็บ GitHub ก่อนเลย แล้วสมัครใช้บริการให้เรียบร้อย เราจะได้ username เอาไว้อ้างอิงเวลาอัพไฟล์ขึ้น GitHub

ขั้นที่ 2 : สร้าง repository บน GitHub

ขั้นตอนที่ให้ลองใช้งานบน GitHub เพื่อสร้าง repository มีวิธีการคือ

  • Create and use a repository
  • Start and manage a new branch
  • Make changes to a file and push them to GitHub as commits
  • Open and merge a pull request

ลองทำตาม Hello World บนเว็บของ GitHub ได้เลยครับ

ในที่สุด เราก็จะได้ repository มา 1 ตัว ที่สามารถเอามาใช้งานบน Ubuntu ได้ด้วย

ขั้นที่ 3 : ติดตั้ง git บน Ubuntu

ก่อนอื่น เราต้องติดตั้ง git บน Ubuntu เสียก่อนด้วยคำสั่ง

sudo apt-get install git
sudo apt-get install git-core git-gui git-doc

หรือวิธีการติดตั้ง ssh key เพื่อจะได้ใช้ git push โดยไม่ต้องป้อนรหัสผ่านทุกครั้ง ได้ที่ How to Setup and Use Github in Ubuntu

ขั้นที่ 4 : ตั้งค่า config git

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

ขั้นที่ 5 : ลอง git กันเลย

โหลดโครงการมาจาก GitHub

git clone git@github.com:username/projectname.git

เปลี่ยน username,projectname เป็นชื่อที่ต้องการ

คำสั่ง

เพิ่มไฟล์ที่แก้ไขเรียบร้อยก่อน push

git add --all
git add *
git add *.txt
git add folder

สั่ง commit เพื่อเตรียมอัพ

git commit -m "Message here"

สั่ง push ไฟล์ขึ้น git

git push origin master

ดึงไฟล์จาก git server git pull (or) switch branch [/code]

กรณีที่ไฟล์บน git server ถูกเปลี่ยนแปลงโดยที่เราแก้ไขไฟล์ที่ local โดยไม่ได้ pull ไฟล์ใหม่มา มีวิธีการแก้ไข 2 วิธีคือ

  1. ดึงมาใหม่แล้วให้รวมกัน

ให้ทำ stash แล้วก็ merge หลังจากนั้นก็ pull ที่ stash

git stash
git stash pop



git pull
git stash
git pull <remote name> <remote branch name> (or) switch branch
git stash apply --index

  1. แตก branch ใหม่

  2. ยกเลิกการแก้ไขที่ local

git reset --hard



คำสั่งอื่น ๆ

git fetch upstream
git merge upstream/master

และคำสั่งที่ใช้งานบ่อย ๆ

  • git remote -v to see your fetch and push remotes
  • git status to see what you have recently changed
  • git log to see a list of all committed changes done to your fork
  • git log --stat a more detailed list of all committed changes done to your fork
  • git log --graph --full-history --all --color --pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s" a colorful text-base graph of changes. See image on the right.
โดย Little Bear on 11 ก.พ. 59 22:31

ซื้อมาหลายวันแล้ว

เคยลง Ubuntu MATE 15.10

วันนี้เห็นข้อมูล Ubuntu Core เลยขอเก็บลิงก์ไว้ก่อน จะได้เอามาลอง

อีกตัวคือ Raspbian ระบบปฏิบัติการสำหรับ Raspberry PI เป็น Debian

ซัมซุงพอร์ต Tizen ลง Raspberry Pi มุ่งเป้าพัฒนาเป็นระบบปฏิบัติการ IoT

ที่มา Ubuntu Core

ติดตั้ง Ubuntu MATE 15.10

sudo apt-get install bzip
bzip2 -d ubuntu-mate-15.10-desktop-armhf-raspberry-pi-2.img.bz2
sudo ddrescue -D --force ubuntu-mate-15.10-desktop-armhf-raspberry-pi-2.img /dev/mmcblk0

ติดตั้ง Ubuntu Mate 16.04

ดาวน์โหลดได้ที่ Ubuntu MATE for the Raspberry Pi 2 and Raspberry Pi 3

sudo apt-get install gddrescue xz-utils
unxz ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xz
sudo ddrescue -D --force ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img /dev/mmcblk0

ติดตั้ง Ubuntu Classic image for Raspberry Pi 2

ดาวน์โหลดได้ที่ Get started with a Raspberry Pi 2 (or 3) หรือ Ubuntu Classic image for Raspberry Pi 2

แตกไฟล์ แล้วเขียน

# Note: replace /dev/sdX with the device name of your SD card (e.g. /dev/mmcblk0, /dev/sdg1 ...)

xzcat ~/Downloads/ubuntu-16.04-preinstalled-server-armhf+raspi2.img.xz | sudo dd of=/dev/sdX bs=32M
sync
โดย Little Bear on 12 ก.ย. 58 11:37

น่าเบื่อมาก เวลา copy file ก็จะติดไปด้วย

วิธีลบทิ้ง ทำอย่างนี้

sudo find /Users -depth -name ".DS_Store" -exec rm -f {} \;

ส่วนไฟล์อื่น เช่น .localized

sudo find /Users -name ".localized" -depth -exec rm -f {} \;

ส่วนไฟล์ .AppleDouble ที่อยู่ใน network drive ก็ลบด้วยคำสั่ง

find . -name '.AppleDouble' -printf '"%p"\n' | xargs rm -Rf

ยกเลิกการสร้างไฟล์โดย

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

และวิธี backup ข้อมูลด้วย rsync

rsync -trv /Users/src/ /Volumes/drive/dest/
โดย Little Bear on 2 ก.ย. 58 09:33

ตัวแปรสำคัญที่สามารถจะอธิบายถึงลักษณะผลตอบแทนของ บัฟเฟตต์ ออกมาก็คือ

  1. Safe : ความปลอดภัย หรือความผันผวนของหุ้นที่ต่ำกว่าตลาด โดยพวกเขาได้พบว่า บัฟเฟตต์ มักเลือกซื้อหุ้นที่มีความผันผวนที่ต่ำกว่าตลาดอยู่เสมอ (เช่น Low Volatility or Low Beta)

  2. Cheap : ราคาที่ถูก หรือ ส่วนต่างของราคากับมูลค่าของหุ้นในขณะนั้น โดยพวกเขาได้พบว่า มักเลือกซื้อหุ้นในราคาที่ถูกกว่ามูลค่าอยู่เสมอ (เช่น Low Value or Low Price-to-Book Ratio)

  3. Quality : กิจการที่ดี หรือ ความสม่ำเสมอของผลกำไร อัตราการเติบโต และอัตราการจ่ายเงินปันผลที่สูง (Payout Ratio) โดยพวกเขาได้พบว่า บัฟเฟตต์ มักเลือกซื้อหุ้นที่มีคุณภาพของกิจการที่ดีอยู่เสมอ

ลองอ่านบทความฉบับเต็มได้ที่ mangmaoclub.com

โดย Little Bear on 23 ก.ค. 58 12:20

เป็นครั้งแรกที่ Mac มีปัญหา หลังจากอัพเดท OS X 10.11 El Capitan แล้วเปิดเครื่องค้าง ก็เลยปิดเครื่อง แล้วก็เปิดไม่ได้ เปิดแล้วเครื่องก็ดับเอง งั้นดูวิธีในการเปิดเครื่องของ OS X กันนะครับว่ามีวิธีเปิดแบบไหนกันบ้าง

1. Recovery Mode

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม Command R

2.Startup Manager

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม Alt/Option

3.Safe Boot

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม Shift

4.Reset PRAM

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม Command, Option, P, and R

5.Verbose Mode

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม Command V

6.Mac Single User Mode

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม Command S

7.Enable Target Disk Mode

เปิดเครื่อง เมื่อได้ยินเสียง ให้กดปุ่ม T

Startup Keys Description

  • Command-R Boot to OS X Recovery Mode
  • Alt/Option Access Mac Startup Manager
  • C Boot to CD, DVD, or USB
  • N NetBoot
  • Shift Safe Boot
  • Command-V Verbose Mode
  • Command-S Single User Mode
  • Command-Option-P-R Reset PRAM
  • T Enable Target Disk Mode

อ่านแบบเต็ม ๆ ได้ที่ 7 Mac Startup Options Every OS X User Should Know

โดย Little Bear on 18 ก.ค. 58 11:34

เป็นวิศวกร ต้องเป็นผู้สร้าง
เป็นผู้สร้าง ต้องเป็นผู้ออกแบบ
เป็นผู้ออกแบบ ต้องมีการบันทึกวิวัฒนาการของผลิตภัณฑ์อย่างเป็นระบบ
...
วิศวกรที่ไม่เคยสร้างอะไร
ไม่ควรเรียกว่าวิศวกร
...
กระบวนการบันทึกวิวัฒนาการของผลิตภัณฑ์ของผม
พบว่า...ยังจัดการได้ไม่ดีพอ
บางช่วงเวลา...ก็เขียนบันทึกไว้
บางช่วงเวลา...ก็แทบไม่ได้เขียนเลย
ที่แย่กว่านั้นคือ...ที่เขียนบันทึกไว้หลาย ๆ เล่ม ไม่รู้ว่าวางเก็บไว้ที่ไหนแล้ว

จาก เบื้องหลังกระบวนการออกแบบผลิตภัณฑ์ของ Dyson จากงาน Dyson Design Talk

โดย Little Bear on 10 ก.ค. 58 16:43

แก้ config ของ Apache

sudo nano /etc/apache2/httpd.conf
AllowOverride All

เปิดใช้งาน mod_rewrite

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Install PHP

brew update
brew install php@7.3
brew link php@7.3
brew services start php@7.3

เปิดใช้งาน php

LoadModule php7_module libexec/apache2/libphp7.so

เปลี่ยน DocumentRoot ของ web

sudo mv /Library/WebServer/Documents /Library/WebServer/Documents.old
sudo ln -s /New/Web/Folder /Library/WebServer/Documents

แก้ php config โดย cp /etc/php.ini.default /etc/php.ini

post_max_size = 16M
upload_max_filesize = 1024M

date.timezone = Asia/Bangkok

Restart Apache

sudo apachectl configtest
sudo apachectl -k restart

ที่มา macOS 10.15 Catalina Apache Setup: SSL


Install MariaDB

brew install mariadb

Start MariaDB

Service start

brew services start mariadb

Start without service

mysql.server start

Link data to new location

sudo ln -s /Users/mysql /usr/local/var/mysql
sudo chown -h user:group /usr/local/var/mysql

แก้ไข config file ~/.my.cnf

sql_mode = NO _ ENGINE _ SUBSTITUTION,STRICT _ TRANS _ TABLES

default-storage-engine = MYISAM
collation-server = utf8_unicode_ci
character-set-server = utf8

Auto Start

launchd In MacOS, create a file called /Library/LaunchDaemons/com.mariadb.server.plist with the following contents (edit to suit):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key> <string>com.mariadb.server</string>
        <key>KeepAlive</key><true/>
    <key>RunAtLoad</key><true/>
    <key>LaunchOnlyOnce</key><false/>
    <key>ExitTimeOut</key><integer>600</integer>
        <key>WorkingDirectory</key><string>/usr/local/var</string>
        <key>Program</key><string>/usr/local/bin/mysqld</string>
        <key>ProgramArguments</key>
        <array>
        <string>/usr/local/bin/mysqld</string>
        <string>--user=_mysql</string>
        <string>--basedir=/usr/local/opt/mariadb</string>
        <string>--plugin-dir=/usr/local/opt/mariadb/lib/plugin</string>
        <string>--datadir=/usr/local/var/mysql</string>
        <string>--log-error=/usr/local/var/mysql/Data-Server.local.err</string>
        <string>--pid-file=/usr/local/var/mysql/Data-Server.local.pid</string>
        <string>--sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</string>
        </array>
</dict>
</plist>

Then from a shell, run launchctl load /Library/LaunchDaemons/com.mariadb.server.plist and MariaDB will run immediately, and also upon reboot.


Fix the 2002 socket error first if you haven’t done so from the MySQL section-

sudo mkdir /var/mysql

Location -> /usr/local/Cellar/mariadb/{version}

Data location /usr/local/var/mysql/


sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Start MySQL

sudo /usr/local/mysql/support-files/mysql.server start

Stop MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

Restart MySQL

sudo /usr/local/mysql/support-files/mysql.server restart

โดย Little Bear on 16 มิ.ย. 58 12:31

ตรงตามแนวความคิดของเราที่จะตกแต่งสวนให้เป็นสวนกินได้ แต่ไม่ค่อยมีหัวทางด้านศิลป์

ตอนนี้รอให้ปรับพื้นที่ให้เรียบร้อยก่อน แล้วค่อยดำเนินการ ระหว่างนี้ก็หาแบบ ร่างแบบไปก่อน

ลองตามไปดูเพิ่มเติมได้ที่ pickleshlee.wordpress.com

โดย Little Bear on 11 มิ.ย. 58 00:00

การฝัง Web Font กับไฟล์ CSS เป็นการลดจำนวน request ให้เหลือแค่ไฟล์เดียว ซึ่งจะช่วยลดเวลา เพิ่มความเร็วในการโหลดเว็บ โดยการ Encode ไฟล์ Font โดยใช้ WebFont Generator เช่น fontsquirrel.com มาช่วยแปลง Font และสร้าง Stylesheet แบบ base64

วิธีการ

  1. แปลง Font ด้วยเว็บ fontsquirrel.com มีทริกสำหรับ Font ภาษาไทยที่จะต้องเลือก Subsetting เป็น  No Subsetting ลองดูวิธีการได้จาก www.tutor4dev.com

  2. นำเอา css ที่ได้มาใส่ในเว็บ

ส่วนใครอยากใช้วิธีการติดตั้ง Font แบบเดิม ก็ลองเข้าไปอ่านบทความได้จาก วิธีใส่ฟ้อนต์ไทยลงในเว็บไซต์ ด้วย CSS3 @font-face แบบ Step by Step

มีแหล่งดาวน์โหลด Fonts ฟรี ๆ หลายที่ ลองแวะเข้าไปดูได้ที่ www.designil.com

ที่มา www.tutor4dev.com , fontsquirrel.com

โดย Little Bear on 9 มิ.ย. 58 13:28

HTML5 จะส่ง attribute data-xxxx ด้วย lowercase เสมอ เช่น

<a id="mytag" href="sg-box" data-maxWidth="60%">Link</a>

ค่าของ $("#mytag").data("maxWidth") จะเป็น undefine โดยจะกลายเป็น $("#mytag").data("maxwidth") แทน

แต่มีวิธีการให้สามารถส่งเป็น case sensitive ได้โดยใช้

<a id="mytag" href="sg-box" data-max-width="60%">Link</a>

data-max-width="60%" จะถูกแปลงเป็น $("#mytag").data("maxWidth")

615 items|« First « Prev 10 11 (12/62) 13 14 Next » Last »|