2019年10月18日 星期五

visual studio 2017 建置 openpose 專案 (CPU版)

版本:

OpenPose v1.5.1
visual studio 2017
CMake 3.15.4
Python 3.7.4


step1 下載專案


https://github.com/CMU-Perceptual-Computing-Lab/openpose



step2 下載並安裝CMake





step3 執行相關批次檔

C:\openpose\3rdparty\windowsgetCaffe.batgetCaffe3rdparty.batgetFreeglut.batgetOpenCV.batC:\openpose\modelsgetModels.bat

step4 開啟CMake 產生 vs2017專案




由於沒有裝CUDA,所以會跑出一些ERROR,先別理他。



沒裝過 git ,要裝一下

然後

cd "C:\openpose\3rdparty"
git clone https://github.com/pybind/pybind11.git




step5 開啟、編譯與執行







綠色箭頭就可以執行了



其他執行指令(點我)


step 6 執行python範例

 注意:不保證成功 注意路徑問題python版本問題


python -m pip install --upgrade pip
pip install opencv-python
conda create --name py374 python=3.7.4 anaconda
y
activate py374
conda install -c conda-forge opencv
y

cd "C:\openpose\build_CPU\examples\tutorial_api_python"
python 01_body_from_image.py



2019年10月12日 星期六

VS2017設置GLUT

Step 1.

到 OpenGL 官網下載 GLUT:
https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

Step 2.

glut.h 放到
C:\Program Files (x86)\Microsoft Visual Studio\2017
        \Community\VC\Tools\MSVC\14.15.26726\include


glut.lib, glut32.lib 放到
C:\Program Files (x86)\Microsoft Visual Studio\2017
        \Community\VC\Tools\MSVC\14.15.26726\lib\x64


glut.dll, glut32.dll 放到
C:\Windows\System32

Step 3.

安裝Nuget套件:
nupengl

Step 4.

範例程式:

#include <GL/glut.h>
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}

int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutInitWindowSize(300, 300);
glutCreateWindow("Hello OpenGL");
glutDisplayFunc(&display);
glutMainLoop();
return 0;
}

2019年8月21日 星期三

CSS 長度單位

px

縮放螢幕的時候,這個不會隨著變動。
相對長度單位。相對於顯示器屏幕分辨率而言的。

%

相對於包含它的最近的父元素的高度和寬度

vh、vw  (view height、view width)

螢幕可視範圍長寬的百分比。


vmin 

抓取「長或寬較小的那個的百分比」

vmax 

抓取「長或寬較大的那個的百分比」

em

相對長度單位。相對於當前對象內文本的字體尺寸。

rem

相對長度單位。相對於根元素<html>文本的字體大小。

2019年8月5日 星期一

Google 的 Android emulators 支援 Hyper-V !?

Google 官方的開發者部落格提到,Google 的 Android emulators 支援 Hyper-V 了。

詳情可以參考:
Android Emulator - AMD Processor & Hyper-V Support


實用的摘要如下:

1.基本需求

  • Windows 10 作業系統必須為1803以上的版本
  • Android Studio 和 Android Emulator 都安裝最新版本


2.Windows功能設定


3.成功範例截圖





2019年5月27日 星期一

vim 基礎使用方法

i                 進入insert mode
esc            回到 normal mode
:                進入command-line mode

command-line mode

:q!                          離開不存檔
:wq                        存檔並離開

:n  <filename>      在目前目錄下,新增文字檔

:n    <path>           開新檔案
:e    <path>           開啟舊檔
:w   <path>           存檔
:w!  <path>           存檔 (管他唯讀,寫就對了)

 normal mode

dd                       刪除整行
yy                       複製整行
p                         貼上

x                         Delete
X                        Backspace

0                        行首
$                        行尾

/<keyword>       搜尋
n                         找下一個
N                        找上一個

u                        undo (上一步)
r                         redo (還原)
.                        重複編輯的動作

hjkl                   上下左右移動游標




2019年5月24日 星期五

tmux

C- 指的是 Ctrl + 某個鍵一起按
M- 則是 Alt 或 Option 和某個鍵一起按


C-b % 新分割區(垂直)
C-b " 新分割區(水平)
C-b 方向健 區塊切換
C-d 關閉區塊/視窗

C-b c 建立一個新視窗
C-b p 上一個視窗
C-b n 下一個視窗
C-b <num> 依照編號直接切換(編號顯示於狀態列)

C-b d 暫離(detach)
tmux ls 列出在背景執行的 session
tmux attach -t 0 選擇第0個section
tmux new -s <_name_> 賦予session一個有意義的名稱(<_name_>)
tmux rename-session -t 0 <_name_> 修改名稱(將section0 命名為<_name_>)
tmux attach -t <_name_> 回到<_name_>

C-b ? 查詢所有指令
C-c 離開 Help

tmux kill-session -t 0 刪除session
tmux kill-session -t <_name_> 刪除session
tmux kill-session -a 刪除全部


Ctrl + Shift + t        開新分頁



參考資料
https://andyyou.github.io/2017/11/27/tmux-notes/

2019年5月14日 星期二

解決 VS code 中使用 gdb 但找不到某些內建 function 的相關 debug 資訊的情況

若出現

Unable to open 'strcmp.S': File not found (file:///build/glibc-OTsEL5/glibc-2.27/sysdeps/x86_64/strcmp.S).

之錯誤訊息,可參考以下解法:


step 1


sudo git clone https://github.com/jeremie-koenig/glibc /opt/src/glibc

step 2


在launch.json檔案裡面 加入以下資訊

            "sourceFileMap": {
                "/build/glibc-OTsEL5/glibc-2.27/": "/opt/src/glibc/"

            }



參考資料:

https://stackoverflow.com/questions/13978692/strcpy-sse2-unaligned-s-not-found



Step 1 + Step 2

sudo git clone https://github.com/jeremie-koenig/glibc /build/glibc-OTsEL5/glibc-2.27

以下附上我可以成功debug的相關設定

launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",
            "args": ["<", "D1"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build",
            "sourceFileMap": {
                "/build/glibc-OTsEL5/glibc-2.27/": "/opt/src/glibc/"
            }
        }
    ]
}


tasks.json


{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "command": "make"
        }
    ]
}


2019/11/23 更新


其實好像不用clone
18.04 預設放在
file /lib/x86_64-linux-gnu/libc-2.27.so
裡面


2019/12/20 更新

請到這裡
https://ftp.gnu.org/gnu/glibc/
下載 glibc-2.27 的版本
放到/build/glibc-OTsEL5裡面
才能確保所有功能都正常

2019年5月8日 星期三

SSH 公開金鑰密碼系統認證機制

# sudo apt install openssh-server


【用戶端】


# ssh-keygen

剩下都直接按Enter

在家目錄的.ssh資料夾中
可以找到以下兩個檔案
- id_rsa
- id_rsa.pub

此時要把*.pub送給別人哦~

《複製SSH key到遠端主機》


# ssh-copy-id user8@192.168.50.88


《將遠端SSH key儲存到本地》

# ssh-keyscan 192.168.50.88 >> ~/.ssh/known_hosts



【伺服器】


《Step.1》


sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes

然後重啟
# sudo service sshd restart


《Step.2》


# cd ~
# mkdir .ssh

# chmod 700 .ssh/
# nano .ssh/authorized_keys
# chmod 644 .ssh/authorized_keys

把欲連上來之公鑰,都附加在authorized_keys文字檔中

像是下面這樣,直接將兩組ssh public key貼到文字檔中
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgpglRknnY26B2KsueBMu/EmipMsZwkPiG8nsWIcU45P1WjFKNC3Fp3CRkEJQGvaI28Eeurxhyl8pAOI0Xyly6ykbZH0yvyKnujO/Mn8x8Ccvm7fGmb05PIUFZWi50wy7Q/v+OsTSITzk3MIlBJDjojyDlFwprhcEfv1/HGbh3446B86Bf2Pyaknx487KdcWonT5WP/E7MM+5hbwhTiPA6wJ9aoarZtBAa2BeAEvshBAaJUKl0ruxD7hn2fMZyOfscUEPAuxMIIZon1vKy/L0/Z7J26sgekahm63YxZd09gNEj6447QSS18eGVNFsNs7rT0MlTfkgRkHsGtUq/m1fMQ== rsa-key-20190508

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDO2Sz6EQlBUwhCwa7Om8uxfR4tSYOMu938AIyR+qs86VXaBzLw1UgYiI2Bu3xfv9kcpQIVvIk5hIWQt9s1TV9wWzZN2juuib50aQvx6sf9n5rpqLBSxSztyQNW3Or6fTcrAC4PaDVihnh+HonbygLQKSU9/D+J8zZj27fNKz1p5qDkzGZGmsl2SfM4ZF0E7Q9lF8atRsAM2WC75n0x1NFlZzdZevQ6oHi21MtLD7DAZaaSWKjT7321/rwEnEsIv9NtjYq2loxCMsGjx6d1TCgWhHdv4Cbjf7iwmjSnVoTp4h2dYztSVRlbTe4ILXvUZpJC8Iy6ZPYYi5xe2aeAUTqb kh@kh-Virtual-Machine

2019年5月4日 星期六

MySQL 與 Entity Framework 6

今天終於把MySQL 與 Entity Framework 6接起來了

最後參考了這篇文章,才找到問題點
https://blog.mahonex.com/index.php/2018/11/26/vs2017%E4%BD%BF%E7%94%A8mysql%E5%92%8Centityframework%E9%97%AA%E9%80%80%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/

因此稍微整理一下資訊

[地雷1]
舊版的.NET Framework連接上可能會有問題
.NET Framework 選用 v4.7.2 就沒事了

[地雷2]
mysql的驅動要安裝下面的版本
注意版本要對到!!!!
mysql-connector-net-6.10.8.msi
https://dev.mysql.com/downloads/file/?id=480088
mysql-for-visualstudio-1.2.8.msi //這個應該可以載最新版沒關西(吧?
https://dev.mysql.com/downloads/windows/visualstudio/


參考步驟:

先安裝mysql的驅動
mysql-connector-net-6.10.8.msi
mysql-for-visualstudio-1.2.8.msi

安裝下面這個NuGet,注意版本要對到!!!!



經過測試,它會自動連下面這個一起安裝
(如果沒有的話,還請手動安裝)


正常來說,參考都會幫你加好,這邊只是列出來而已
接下來加入這個
選這個

新增連接

然後弄一弄就好了

最後應該會出現這個

然後按完成,就會開始產生程式碼
然後可以正常使用
最後附上這張,祝各位都找到可以用的版本

註:我連接的MySQL是直接連到GCP上的,它顯示的版本是5.7