[Golang][Mac]準備Golang開發環境

基本上其實只要參考 Simple Patrick:My Go Development Environment那篇應該就可以.只是我這邊記錄一下我遇到的問題,不知道其他人會不會遇到.

  • brew install go 會成功但是一直跳出要 brew link go,然後如果你打brew link go就會跳出permission不足.找不到答案,於是去官方網站抓下來裝

  • Sublime text2跟GoSublime 是可以完美結合.DashDoc 也可以正常用,只是要先裝Dash App Store裝好.

  • 弄好了這一切,其實看起來是完美了.但是就Golang的特性,沒有debugger似乎很難做更一步地解決問題.

    • 於是去找了這篇文章裝LiteIDE然後跑Golang http://www.goinggo.net/2013/06/installing-go-gocode-gdb-and-liteide.html 幾個大方向

      • 抓GDB安裝

      • 建立一個codesign

      • 把GDB 簽署當作可以信任的執行檔
      • 記得要codesigbn gdb codesign -f -s "gdb-cert" /usr/local/bin/gdb
        • [更新2016/02/05] 記得每次gdb更新都要跑….
    • 一開始LiteIDE可能會出現go bin not found 的錯誤,需要把設定重新跑好

    • [View] -> [Edit Environment]  (我的可以參考一下)

    GOROOT=/usr/local/go

    GOBIN=/usr/local/go/bin/

    GOARCH=amd64

    GOOS=darwin

    CGO_ENABLED=1

    PATH=$GOROOT/bin:$PATH

    LITEIDE_GDB=/usr/local/bin/gdb

    LITEIDE_MAKE=make

    LITEIDE_TERM=/usr/bin/open

    LITEIDE_TERMARGS=-aTerminal

    LITEIDE_EXEC=/usr/X11R6/bin/xterm

    LITEIDE_EXECOPT=-e

    • 不過text highlighter 跟 dash無法整合有點痛苦,可能會拿LiteIDE作為debug 的工作.
  • 其實Sublime Text2 也是有 GDB support 的,繼續得研究看看

 

[Docker Taipei Meetup#2] 關於Docker & Jenkins 跟 Docker in Golang

其實是很臨時去參加的,所以一發現有空位馬上就參加,對於Docker本身也是一知半解,也希望能透過這些聚會能有更多的了解.
這裡簡單的記錄一下我的心得,後面是我的速記:

心得:

  • Docker & Jenkins by Casear Chu

    • 這一篇演講相當的特別,讓你與一般Docker 與Jenkins 能想到的不一樣.

    • 主要的架構是根據在Docker in Docker (DinD) 想出來的.也就是在Docker裡面自己再去建立並且讀取其他的docker.

    • 這裡的方法主要如下:

      • 先建立一個ubuntu docker 去安裝Jenkins

      • 然後Jenkins 有兩個工作專案:

        • 一個是下載node.js 系統的image build 成另一個docker

        • 一個是去下載修改的node.js 程式碼,並且定期地在第一個docker上跑測試

    • 整個方法相當特別,測試完之後.可能需要完全移除才會乾淨.不過簡單又不會影響太多部分.

  • Docker in Golang by Jamie Sa slide

    • 主講人相當的有趣的,主要是來探討為什麼docker會用到golang 來撰寫

    • 所以一開始會講到當初 docker 創辦人遇到一個什麼樣的狀況,以及簡單的介紹LXC (docker 系統的核心)

    • 並且很有趣的來觀察github 上面docker project的狀態,並且分析第一個submit的整個架構與當初兩個創辦人是如何去思考整個系統的架構.

    • 令人相當驚訝的是第一個docker的submit竟然就是撰寫我們看到的web docker console  (是應該花一點時間好好了解人家的架構設計的用心)

http://www.meetup.com/Docker-Taipei/events/188846162/

Docker & Jenkins by Casear Chu

  • Except Jenkins (other CIs) 

    • Travis

    • Door.io (not sure)

  • Docker in Docker

    • Scenario:

    • Jenkins in one Docker

    • Use Jenkins to launch other docker for CI testing

    • WebSite:

    • https://github.com/jpetazzo/dind

    • Detail:

    • Launch one ubuntu docker and install docker in this ubuntu.
  • Docker Jenkins

    • Need apt-get jenkins from ubuntu image not jenkins image

    • Because need Docker in Docker in site. 

  • Jenkins using docker  (two processes) 

    • https://docs.docker.com/articles/ambassador_pattern_linking/

    • Docker System building process

    • Check github periodically 

    • download node.js system(private repository) and build docker

    • node.js image process

    • Git pull node.js code

    • run docker system to load node.js

    • run test

    • Note about report:

      • docker run -d (wait test report finished)
    • Using NVM (node. version manager) to switch variance node.

      • Note: npm install will take time.
    • Jenkins might need restart when installed plugin

    • use _docker stop _and _docker start _for this
  • file mapping

    • [https://registry.hub.docker.com//busybox/](https://registry.hub.docker.com//busybox/)

    • docker run -v source folder; mapping folder busybox 

    • using docker -privileged

• Docker in Golang by Jamie Sa

https://speakerdeck.com/jamessa/docker-in-golang_
_

  • About presenter  Founder 

  • Docker system

    • Base on LXC 

    • PID namespace is most import improvement in Linux kernel 2.6.4.for LXC which docker is based on this architecture.

  • Most of the appeal for me is not the feature that GO has, but rather the features that have been intentionally led out — People said about Golang

  • Why use Golang for Docker by docker founder (slide)

    1. Static compilation

    2. Neutral

    3. It has what we need

    4. full development environment

    5. multi-arch build

  • Docker first version is write console mode in web (as sample in docker.io)

  • 利用Github docker 的change list 來了解整個 Docker 的建立的想法

    • 第一個submit 把docker console建立起來,並且根據LXC來創立docker的骨幹
  • Docker  的優點

    • 更小(不需要整個VM的肥大的系統)

    • 更快  

Not related but reference:

[WDK] Note about propitiatory driver develop and install

  • WDK 

    • building

      • build -cefw

      • build -cgz

  • Driver launch 

    • Service

      • Using SC (Service Control)
    • Device driver

      • Using *.Inf to install it
  • Disable digital signing check ( forever)

    • If failed need go to BIOS setting to disable Security Boot

      • in Boot-> Authentication-> Security Boot
    • “bcdedit -set test signing ON”

  • Disable digital signing for once

    • Win8 -> 變更電腦設定 -> 還原 -> 進階開機
  • Install driver step

    • [裝置管理員] -> node 0 -> [動作] -> [新增傳統硬體] -> 選擇 inf

    • remember  inf file need  exist with x86 driver

    • x64 need another place according to your inf setting.

    • Still occur error because the SYS still need to signed 

  •  Install Digital signature and sign your SYS file (x64 only is enough if you using 

  • Note, there might be an error if the category file error

    • Error:

      • 裝置管理員 -> Digital signature still failed event you already signed it.
    • Solution:

      • Using “infract”  refer here

        • Note: Need use WDK 8.1 if you want to use Win8.1 OS identifier

        • “inf2cat /driver:INF_ADDRESS /os:6_3_X86,6_3_X64”

      • It will find digital signature in 裝置管理員

      • Must use WDK for Win8.

      • Don’t forget to use digital signature to  sign CAT file before you try to install INF.

  • Install INF driver via 裝置管理員

    • Error: 

      • 無法驗證數位簽章
    • Solution:

      • Testsigning need to change from off to On.

      • Reboot again and check 裝置管理員

 

[GTUG 2014 June] Google IO Extended Taipei (臺北方面)

這次很熱血的去參加了GTUG在Google Taipei 辦公室的活動,由於名額僅限70個所以很幸運有搶到.
正式在Google IO 2014 開始前,先有臺北這邊有人分享跟雲端與Google Glass有關的議題

關於Google IO內容部分,直接看HackPad上面的資料吧
https://hackpad.com/Google-IO-2014–AI39FmbnlsI 

[ffmpeg][ios][Android] 如何在iOS/Android上面使用 ffmpeg

自從在Windows完成 live555(OpenRTSP)與 ffmpeg之後,就很想把它整理好之後放到iOS與Android上面.
不過尋找了一下,發現大部份人在iOS與Android上面都是直接使用 ffmpeg來播放 RTSP的資料.
不過其實Android  4.0之後其實 Videoview就已經支援RTSP的播放,那麼為何還需要ffmpeg呢?
—>  利用 VideoView 會有10 秒的延遲,如果想要把延遲減少比較好的方式就不要用build-in player而是使用ffmpeg來播放檔案或是RTSP streaming

所以把如何使用的部分做了一下整理,分別有iOS與Android的部分如下:

[OpenCV] 相機增加物件追蹤(Object Tracking)的部分

OpenCV是一個相當好用的影像處理SDK,除了可以快速開發相機測試程式之外,也有許多功能可以增加.

最近看到一般數位相機有類似的功能,於是去找了一下.以下是示意影片.完整網址在這裡,不過他有用到OpenFramework去操控OpenCV個人覺得不好使用.比較推薦直接使用OpenCV其實程式會很小.

NewImage

 

 研究了一下,發現其實效果不錯.於是整理出一個簡單的 VS2013 Console 的測試程式
(本來有想用 Python 後來發現需要太多的原件而且很難debug,所以先弄Windows版本) 

https://github.com/kkdai/OpenCVConsole

這個測試程式主要可以讓我測試一些功能,他目前支援以下一些功能:

  • 起始你的Camera 並且使用最預設的解析度

  • 支援旋轉,他的熱鍵如下:

    • t/T: 90度旋轉

    • f/F: 180度旋轉

    • r/R: 270度旋轉

    • n/N: 回復原狀

  • 灰階化,方便之後做進階的影像處理(熱鍵 g/G)

  • 物件追蹤,目前測試發現辨識率不高,並且灰色階也沒有差異.使用方式如下:

    • 利用你的滑鼠去選取你要追蹤的部分

    • 他會複製起來~並且把你要追蹤的部分用匡線標起來

狀況大概是以下狀態:

OpenCVOT