Posts

If I didn't write it down, I'll forget eventually.

Setup x11 forwarding on Debian

有時候會需要在 server 上使用有 GUI 介面的程式,像是我們會把 matlab 安裝在運算能力很好的工作站上供大家使用。但透過 ssh 連上工作站的話介面會是 terminal,使用上就會比較不便。

Linux 的 GUI 運作模式,其中

  • X-client 負責程式的運作
  • X-server 負責畫面的顯示

所以只要把工作站上的圖形顯示丟到本地端(windows/mac)的 X-server,就可以顯示出來了。
本篇將介紹如何設定才能使 Debian Server 的 GUI 程式的畫面顯示到 client 的電腦上。

Read More...

防止 mail server 大量寄信的手段

最近這幾周都一直被 cmlab 的 mail server 霸凌,覺得難過…
為了解決 mail server 時不時會大量寄出信件的問題,嘗試了許多方法,終於得到一點點平靜…
本篇整理了我們最近嘗試的方法及一些工具,做個紀錄…

Read More...

From React to React Native

接觸 React 其實也一段時間了,總是嚷嚷想做個自己的 Project 但始終沒有動手開始做。最近趁著寒假終於用 React 做了個網頁小遊戲,之後也改寫成 React Native 做出 Android and iOS 的原生 app,順便把 android 版上架到 Google play 上~(iOS app store 費用太高付不起…)
算是完成幾個長久以來的小小目標(?)

用 React Native 做出 Android/iOS 原生 app 用 React Native 做出 Android/iOS 原生 app
Read More...

Light Field Camera

一般傳統相機都是先對焦好之後拍攝照片,而往往會有些照片事後才發現竟然沒對好焦,甚是可惜。而光場相機(light field camera),有別於一般傳統相機,是可以記錄相機內部的光線傳輸方向等信息的相機;光場相機就是比傻瓜相機還傻瓜的相機,允許再拍攝後根據拍攝者的需要再重新聚焦到任意的位置光場相機可以做到先拍攝,後對焦這種神奇的事情。

光場相機其實是在相機主鏡頭後面加了一層微透鏡陣列,讓原本聚焦的光再次分散到各個感光點上,如圖一:

圖一:在成像平面前加一個微透鏡的陣列。微透鏡陣列的平面在這裡是 st 平面。在微透鏡陣列後面的感光元件上,每一個像素對應著 uv 平面上一個區域射到此像素對應的微透鏡上光強的和。圖源<sup>[1]</sup> 圖一:在成像平面前加一個微透鏡的陣列。微透鏡陣列的平面在這裡是 st 平面。在微透鏡陣列後面的感光元件上,每一個像素對應著 uv 平面上一個區域射到此像素對應的微透鏡上光強的和。圖源[1]
Read More...

MSAuto - 玩遊戲也要自動化

最近 Facebook messanger 推出了一系列小遊戲,大部分其實都是無腦遊戲,但扯到互相比分總是會變得很激烈….

其中有個遊戲很特別 EverWing,他是可以升級主角的射擊遊戲,也就是我可以偷練再去挑戰別人,然後分數就會很高~
起初我偷練到七等左右去挑戰 David 老師,沒想到他一下就超越我了,後來又浪費我好幾個小時才超越他…。後來跑去挑戰 ball 他們,費盡千辛萬苦打到 3204 分,結果後來才發現他們都在直接發 request 作弊…。

Read More...

安裝 Policyd 並設定外寄 Quota

最近遇到了有人使用 cmlab 的 email 亂寄垃圾信,導致很多外面 mail server 都把我們加入黑名單了…。也因此才想說要設定一個外寄上限,雖然 Postfix 本身已經有許多功能可以設定,但是就是沒辦法設定外寄的 Quota,所以就想說來試試 Policyd。

Policyd(cluebringer) 是一個可以設定一些規則給 mail server 的一個中間層(像是 middleware 那樣)。

Read More...

pbrt - 用多點光源模擬環境光

環境中總有一些背景光,像是太陽光、遠處大樓窗戶反光之類的,可以看成一整片不均勻分布的光源,有些地方亮;有些地方暗。
pbrt 中是用 important sampling 來渲染環境光,不過,其實也可以把環境光轉換成一堆點光源來計算。

Read More...

用 Facebook 聊天機器人當通知系統

CMLab 有二十幾台 unix work stations 供大家使用(據說 CMLab 的工作站比資工系工作站還要好…)。
雖然這些機器設備都很強悍,但還是有時候會出現某台機器掛掉,或是 CPU, Memory, Swap 用量過高之類的事件。若有這類事發生就必須去處理,不然一直讓機器維持在高負載很容易就死掉了。
實驗室有個 網站 可以查看機器及時狀態,什麼機器有什麼問題一看就知道,超方便的。

但是不上去看就不會知道有沒有狀況,所以我就決定做個有狀況發生就通知我的 Facebook chat bot。

Read More...

Realistic camera in pbrt

Ray-tracing 中的相機(眼睛)是所有光束的起點,從相機成像平面出發的光束如果能夠經由折射、反射等等最終到達光源的那些「存活」的光束,才對最終的影像有影響的光束。這種與現實物理相反的設計(從光源發出光並追蹤那些存活到相機成像平面的光束)是為了減少計算量。

ray-tracing 中,光束是從相機射出來的。<sup>[1]</sup> ray-tracing 中,光束是從相機射出來的。[1]
Read More...

vdb - Debugging visual programs

有時候在寫 openGL 或者是類似 pbrt 這樣有牽涉到三維空間的程式的時候總是很難除錯…
雖然可以設斷點看看變數內容有沒有問題,但說實在的其實這樣看有時候根本看不出所以然,這樣還是難以除錯。

vdb 是一個解決這樣問題的工具,它提供了很多常見的畫線、畫點等等函式,最重要的是他的易用性,可以在幾乎不更動程式碼的狀態下就完成偵錯。

Read More...