2021-01-21

iItelliJ 設定PHP XDEBUG環境

 一、安裝composer、php-cgi(注意,必須是cgi,不能用cli或fpm)、php-xdebug
sudo apt-get install php-cgi php-xdebug
sudo curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chown root.root /usr/local/bin/composer
sudo chmod 755 /usr/local/bin/composer

二、修改xdebug設定
sudo vi /etc/php/7.2/cgi/conf.d/20-xdebug.ini
加上
xdebug.remote_enable=1

php-cgi --version //須出現xdebug字眼
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

三、chrome或firefox安裝xdebug plugin
https://www.jetbrains.com/help/idea/2020.3/browser-debugging-extensions.html
擴充功能選項的IDE Key選擇PHPSTORM

四、修改IntelliJ的language & frameworks / PHP 設定
新增 /usr/bin/php-cgi

五、執行選單 Run / Web Server Debug Validation,看是否能正常debug

若使用intellij內建的web server + php-cgi,可能會沒有$_SERVER['SERVER_NAME'] 造成無法正常透過瀏覽器debug,下面的ref有解法但不一定有用,似乎是intellij的bug,似乎還是得換成nginx或apache才能解決,若用外部server,須到 language & frameworks / PHP / Servers及build,excution,deployment->Deployment去新增對應的server


ref:
https://www.jetbrains.com/help/idea/2020.3/configuring-xdebug.html
https://www.jetbrains.com/help/idea/2020.3/zero-configuration-debugging.html
https://youtrack.jetbrains.com/issue/WI-54542
https://stackoverflow.com/questions/23344106/php-storm-debugging-creates-empty-server-definitions
https://www.cnblogs.com/Renyi-Fan/p/9117895.html

2020-11-19

macos從El Capitain (10.11)升級到Mojave (10.14)

 用El Capitain撐了許久,不升級也不行了,一堆軟體或外掛套件的更新都要求要新一點的OS版本,像homebrew或VSCode一堆套件都要新的作業系統library才有辦法compile & install。

升級時注意事項:

1.先重置nvram跟smc再升級,不然很有可能升級過程中卡住,要是真的卡住就強制關機,再用command+r重裝。

2.重新安裝XCode及command line tools for xcode
https://developer.apple.com/download/more 下載即可,注意mojave支援的XCode最高版本為11.3.1,安裝Xcode前先把舊的Xcode刪掉再複製新的過去,不然會卡很久。

3.homebrew的話,先brew update-reset & brew update,重置repo資料庫,然後brew doctor看看有沒有什麼問題,有些已經不存在formula的可以 brew uninstall --force package-name & rm -rf /usr/local/Caskroom/package-name。

4.java的話,決定先移除oracle java,改安裝openjdk:

brew remove --ignore-dependencies java
brew remove --ignore-dependencies java8

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefPane
sudo rm -fr ~/Library/Application\ Support/Java
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8_xxx.jdk

brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
brew cask install adoptopenjdk/openjdk/adoptopenjdk11

brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
<重開command window>
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
jenv global 1.8 或 jenv global 11 設定其中一個預設java版本

ref:
https://www.java.com/zh-TW/download/help/mac_uninstall_java.html
https://www.jenv.be/
https://github.com/AdoptOpenJDK/homebrew-openjdk

2020-11-02

Ubuntu 18 + Nvidia 顯卡螢幕撕裂(screen tearing)問題

什麼叫screen tearing:




解決方法:

  1. 安裝nvidia-settings
    sudo apt-get install nvidia-settings

  2. 打開NVIDIA X Server Settings後,選擇左邊X Server Display Configuration/Advanced...,把Force Composition Pipeline或Force Full Composition Pipeline個別其中一個打勾試試

  3. 記得按Save to X Configuration File儲存設定到 /etc/X11/xorg.conf

  4. 選擇左邊nvidia-settings Configuration,按右邊Save Current Configuration儲存設定到 ~/.nvidia-settings-rc

如果是像在瀏覽器chrome上看影片的話,瀏覽器的硬體加速選項可能也要調整:
https://www.lifewire.com/hardware-acceleration-in-chrome-4125122


ref:
https://askubuntu.com/questions/1170247/how-do-i-solve-screen-tearing-on-ubuntu-18-04-with-nvidia

2020-05-01

Ubuntu上用Android手機作為Webcam


讓手機變webcam且支援跨平台/USB的目前找到這二套:

DroidCam: http://www.dev47apps.com/
Iriun WebCam: https://iriun.com/

因為我是要安裝在Ubuntu上,一開始是試iriun卻怎麼試也不成功,後來改用DroidCam就沒問題了。

安裝工具(Android Debug Bridge, gcc...等)
sudo apt-get install adb gcc make linux-headers-`uname -r`

安裝DroidCam:
wget https://www.dev47apps.com/files/linux/droidcam_latest.zip
unzip droidcam_latest.zip -d droidcam && cd droidcam
sudo ./install
lsmod | grep v4l2loopback_dc #檢查是否有掛上 v4l2loopback_dc 模組

(另外也有提供DKMS方式安裝,避免每次kernel更新後又要重新安裝droidcam client)

安裝webcam測試用GUI:
sudo apt-get install qv4l2

Android 5.0以上可以直接在Play Store安裝DroidCam
Android 4.x可以在這裡下載APK安裝。

手機安裝DroidCam後,記得在手機的「開發者人員選項」開啟「USB 偵錯模式」,
然後用USB連接手機跟電腦,再下指令看看找不找得到Android設備:
adb devices

如果出現 no permissions 之類的訊息,那麼就要加入udev rules了,讓一般使用者也能access到手機,先找出Android設備的id:
lsusb

找到手機的設備id為 18d1:4ee7:
Bus 001 Device 010: ID 18d1:4ee7 Google Inc.

新增udev rules:
sudo vi /lib/udev/rules.d/70-android.rules
=======
加入以下內容(注意依自已的設備id修改,如果有多台設備就多行):
SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="4ee7",MODE="0666"
=======
然後重新載入udev rules:
sudo chmod 644 /lib/udev/rules.d/70-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

重新插拔USB,再下 adb devices,確定可以找到裝置後,執行手機上的DroidCam,
再在電腦上執行 droidcam ,選擇USB並點擊Connect,
再執行 qv4l2,看看能不能看到手機上的視訊影像。

預設解析度是640x480,如果覺得解析度不夠高,也可以修改解析度(要先付費升級手機上的APP,否則即使電腦解析度調高也會像上了馬賽克),譬如先測看看720P:
sudo rmmod v4l2loopback_dc
sudo insmod /lib/modules/`uname -r`/kernel/drivers/media/video/v4l2loopback-dc.ko width=1280 height=720

如果確定修改解析度後顯示正常,可以直接修改 /etc/modprobe.d/droidcam.conf
這樣每次使用就會固定為修改後的解析度,
目前支援 640×480, 960×720, 1280×720 (720p), 1920×1080 (1080p).

要移除的話執行 sudo /opt/droidcam-uninstall 即可

ref:
http://www.dev47apps.com/droidcam/linuxx/

2020-04-29

安裝全字庫字型 & CNS11643 輸入法

安裝全字庫字型、cns11643 fcitx table:
sudo apt-get install fonts-cns11643-kai fonts-cns11643-sung fcitx-table-cns11643

TW-Kai-98_1.ttf         (第0/BMP字面)
TW-Kai-Ext-B-98_1.ttf   (第2字面)
TW-Kai-Plus-98_1.ttf    (第15字面)
TW-Sung-98_1.ttf        (第0/BMP字面)
TW-Sung-Ext-B-98_1.ttf  (第2字面)
TW-Sung-Plus-98_1.ttf   (第15字面)

(字型單獨下載:http://www.cns11643.gov.tw/AIDB/Open_Data.zip)

譬如要輸入「𪇅」這個字,查到CNS其碼表為11-446F:
https://www.cns11643.gov.tw/wordView.jsp?ID=738415

那麼就輸入「b446f」就能輸入「𪇅」這個字(16進位,a代表10,b代表11,以此類推)

另外像「󺞏」這個字要是無法在瀏覽器正常顯示,是因為瀏覽器(Chrome為例)不接受字碼在unicode第15字面的碼表(因為瀏覽器認為CJK字碼不應在私人造字區,只接受在BMP及第2字面的CJK中文):
https://www.cns11643.gov.tw/wordView.jsp?ID=739639

因此可以在瀏覽器的字型設字中,將「標準字型」設定為「全字庫宋體 Plus」或「全字庫楷體 Plus」,這樣瀏覽器就會第一個以該字型去尋找是否有對應字碼,但缺點是字形就是看起來不統一。

像WIN10的內建中文字型已有支援unicode第0面、第2面,除非罕見字不在其中,才需要去裝全字庫字型 (TW-Kai-Plus-98_1.ttf 或 TW-Sung-Plus-98_1.ttf )

ref:
https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%B9%B3%E9%9D%A2%E6%98%A0%E5%B0%84
https://www.cns11643.gov.tw/downloadList.jsp?ID=1

2020-04-22

Ubuntu 安裝 Microsoft Teams

由於武漢肺炎疫情的關係,要是疫情爆發時可能需要用到視訊會議,因此先來裝好Teams熟悉一下功能。

Teams有提供各平台軟體,看起來應該是用Electron.js開發的,微軟也有提供PPA可以直接安裝Teams,不過Linux版的缺點就是會比Win或Mac的功能慢推出。

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/ms-teams stable main" > /etc/apt/sources.list.d/teams.list'

sudo apt update
sudo apt install teams

ref:
https://docs.microsoft.com/en-us/microsoftteams/get-clients#linux

2020-04-04

UBUNTU將日曆第一天改為星期一

雖然台灣是以星期日為每週的第一天,但自已還是比較習慣把星期一當成第一天。

#sudo vi /usr/share/i18n/locales/zh_TW

找到 END LC_TIME
在上面加入一行:
first_weekday 2

#sudo locale-gen zh_TW.UTF-8 (或 zh_TW.utf8 ,可用locale -a指令查看)

重登入或開機, done.