Believe in Yourself.

用 Pushover 收 Ingress 成就點攻擊通知 2015-01-07, 週三

Ingress 是 Google 在 2012 推出的虛擬實境(Virtual Reality)的遊戲,基本上就是一個打打殺殺的遊戲,遊戲裡面分兩個陣營 Resistance (藍軍)跟 Enlightened (綠軍),在台灣好死不死剛好跟兩大政治陣營顏色一樣,看起來全世界是藍大於綠,但是台灣台北剛好綠大於藍,不知道是不是大家選的顏色剛好也有政治傾向(笑),不過遊戲歸遊戲,其實裡面的人倒是不大會聊政治,遊戲內有自己的通訊功能,但是很爛,所以大家還是會用第三方軟體溝通,通常大家都直接用 Hangout,不過也有少部份地區聽說是用 Line 之類的。

這遊戲有內建的被攻擊通知,可是他完全不能過濾你想收哪些通知,反正腳被攻擊或者 MOD 掉了就是直接無差別通知,不過有時候只想收特定 Portal 的攻擊通知,這時候該怎麼辦呢?原本我都用 IFTTT 這個 Notify when guardian portal is under attack #ingress 不過類似這種的有個缺點就是 IFTTT 是類似 polling 的,所以他是固定時間去問一次 Gmail,有時候我收到通知的時候都已經半個小時後,點都被打掉了 XD,搞屁,實在不夠及時,昨天在研究 Pushover 時突然發現他有 E-mail gateway,配合 Gmail 建立 Filter 時就可以 Forward E-mail,根本就是及時的 Push。

實驗了一下發現效果不錯,至少比原本的 IFTTT 及時太多了,雖然還是有腳會被打掉之類的,不過如果對方真的要打其實也阻止不了,通常八炮連發根本擋不住,但是還是具有一些拖延對方效果就是了,而且也可以當成整理特殊點的攻擊 Log。

用 Pushover 收 Ingress 成就點攻擊通知
閱讀本文

美西峽谷行 2015-01-03, 週六

故事的開始是 2014 年 6 月時,跟大學同學約了 11 月要到美西玩,從台灣出發 6 人,美國當地還有唸書+工作的同學 3 人,一共九人,反正是跟著玩 XD 就直接答應了,當時六月直接上長榮的網站剛好有特惠機票可以買,桃園﹣洛杉磯不到三萬 (29xxx)就搞定了,旅遊時間是 11/7 (五) ~ 11/14 (五) 離開美西,11/7 禮拜五當天請了一個下午,回家整理一下,集合地點在松山機場外的客運站,我們坐客運到桃園機場。客運每 20 ~ 30 分鐘一班,還算蠻多班次的。

行前準備似乎差不多就網路整理的那樣,反正記住最重要的只有護照跟信用卡就可以出國了 XD,不過因為這次是峽谷行我多準備了一些藥品跟撒隆巴斯,常備藥的部份我是去林青榖家醫診所拿,一包 500 的樣子裡面有十種藥,也可以順便跟他拿調整時差的藥(估計是安眠藥之類的),他會說一次吃半顆就好,應該還算蠻有效果的,至少我到美國的前兩天跟回來台灣後都有吃還算調整的不錯,而且同學打呼也都聽不到 XD

十種常備藥
閱讀本文

NCLP 11 考試 2014-12-05, 週五

今年十一月中因緣際會去奧蘭多參加了 SUSEcon14,會後有提供 NCLA、NCLP 11&12 的認證。因為小弟已經有 NCLA (考過 LPIC-1 就會送了),所以本次想說順便拿個 NCLP 的認證。

考試前就很不順,我考試的場次是 11:00 ~ 2:00,大約 10:40 就去報到,等啊等,等到 10:55 突然考試人員出來考場說,因為他們的資料中心發生網路問題,現在連不上考試系統,當下一囧,想說不知道要等多久…我的飛機不等人啊,幸好後來在 11:20 左右排除了。

閱讀本文

build static link nginx 2014-04-09, 週三

因為敝公司系統的環境有 OpenSUSE 跟 SUSE Linux Enterprise Sever SP2/SP3 混合,所以要更新 nginx 時往往要生出三個版本,實在有點搞人,不過其實也可以不要理會 libcrypt 版本不合的訊息啦,可是還是覺得編譯一個萬用的版本比較方便維護。

nginx 一共需要用到 libpthread, libcrypt, libpcre, libssl, libcrypto, libz, libdl,其中可以另外設定的有 OpenSSL, PCRE, Zlib 這三種,可以提供 libcrypt, libpcre, libssl, libcrypto, libz, libdl,然後 pthread 的就靠系統提供的 static 的 .a 了,所以要生出編譯的指令如下:

備註:假設 我們自己 Download 的 openssl, pcre, zlib 的原始碼都放在 /usr/src 底下

閱讀本文

Conky 2014-02-27, 週四

Conky 是一款類似 Mac OS X GeekTool 的桌面小工具 (其實 Conky 比較早出生,不過我比較晚發現 XD)。

他們都可以透過一些內建的 Function 或者寫 shell script 來顯示電腦的狀態(或者想印在桌面的狀態),例如我現在的桌面是這樣的

大致上就是顯示天氣,網路速度、流量,CPU、記憶體、硬碟等使用率,然後還有 CPU 溫度跟風扇的資訊,最下面有 parse RSS (Gentoo Security) 的部分

參考網路設計師 Conky Google Now 這個主題

小弟合併了官網其他人貢獻的設定,稍微修改了一下

閱讀本文

install graylog2 2014-01-24, 週五

Graylog2 是一個開源的 log 收容器,主要有兩個部份集合而成 serverweb interface,兩個都是由 Java 寫的,Server 的部份可以收容 syslog over TCP/UDP, 同時他也有自己的格式 GRLF (Graylog Extended Log Format),背後的儲存是搭配 mongodb,而搜尋引擎則由 elasticsearch 提供。另外的 web interface 也是 Java 寫成的(早期好像是 Ruby on Rails),主要的功能就是提供一個漂亮的搜尋與分析的界面。

所以要使用 Graylog2 需要安裝五個元件

軟體 版本
Java Runtime Environment 7u51
elasticsearch 0.90.10
mongodb 2.4.9
graylog2-server 0.20.1-1rc
graylog2-web-interface 0.20.1-1rc

我們先從 elasticsearch 開始安裝起,以下都用目前最新的版本來示範,基本上不分什麼 Linux Distribution,我們單位都用 SUSE,不過 Gentoo 或 Ubuntu 也都適用就是

閱讀本文

saltstack 自定 grains 2013-07-10, 週三

上一集 中,簡單的介紹了 Salt 的使用方法,這集要稍微深入的介紹 Salt 的其中一個部份 - Grains,Grains 基本上就是機器的資訊,通常指的是不會變動的部份,比方說 CPU 有幾顆、記憶體有多少、作業系統是用什麼的(CentOS, Ubuntu, SUSE…etc)、網卡資訊,至於會變動的資訊通常會用 Salt 的 Pilar 功能,雖然 SaltStack 支援很多種 Linux Distribution,而且他的 API 也儘可能的豐富每一個 Distro,像是套件管理系統就有支援 CentOS 的 yum、 Ubuntu 的 APT、 SUSE 的 zypper,但是終究不是每一個系統的特色都能夠完整的支援(可能需要自己貢獻上去?),像是 SUSE Linux Enterprise Server (簡稱 SLES) 除了大版本號,還有小版本的 Service Pack,撰文的今天剛好出了 SLES 11 SP3,但是 Salt 內建的 Grains 只有偵測到 OS 是 SLES 就沒了,有時候我會依照不同的 Service Pack 需要不一樣的設定(因為 SP2 的套件有時候會支援某些功能,但是 SP1 時候還沒有,像是 sudoer 的設定),但是不能判斷版本怎麼辦? 沒關係 Salt 具有高度擴充性,我們可以自定想要的 Grains。

閱讀本文

自拍神器 Casio TR15 開箱 2013-07-02, 週二

注意這款號稱「自拍神器」系列的相機也已經大概半年多了吧,大概是半年前小弟的女友跟小弟提起的,不過可怕的神器連價格也很可怕,此款的前兩代 TR150 台灣官方售價是一萬一,但是因為出貨速度緩慢,市場缺貨缺得要死,市場上大陸的水貨竟然叫價到接近 3 萬,實在是不知道台灣卡西歐在做什麼,製造速度有這麼慢嗎?這種水貨商實在讓人覺得坑殺小朋友不眨眼,尤其是在 Facebook 卡西歐的官方粉絲頁更有一些電信商趾高氣昂,更氣的是還買了一台兩百多萬的賓士!讓我都想去開通訊行坑殺高中生&俗稱的水水(管他是不是正妹,這台拍下去保證各個都是正咩) XD

其實我後來也就忘記這件事了,因為女友也叫我不要買,因為實在背離原價太多了,一直到六月中,再逛 Mobile01 時,突然看到消費相機版的卡西歐有人 po 了一篇文章說 TR200 的下一代 TR350 (大陸的稱呼) 已經在六月初上市了,然後台灣也會上國際版的,代號是 TR15,於是就上了 Facebook 的卡西歐粉絲頁看了一下,果然會上!!但是!他媽的卡西歐是搶劫嗎,TR15 的售價竟然是兩萬四,竟然比 TR150 貴了一倍多 = =,不過功能也多一些些就是了(他媽的再罵一次 Casio 以為你是萊卡嗎!),電容式觸碰螢幕,螢幕解析度也提升到 92 萬畫素,然後有 Wifi ,在傳輸照片或者是自拍控制都相當方便,核心處理引擎也變成兩顆,不管是開機速度或者拍照處理速度都比之前的更快,但主要的規格都差不多還是維持 1/2.3 寸的 1210 萬畫素、光圈 2.8、超廣角的等效焦距 21mm。

閱讀本文

Saltstack 使用心得&簡介 2013-06-30, 週日

身為一個系統管理者,當你管理的機器數量只有十來台時,你可以很輕鬆的一台一台進去管理、設定機器,但是隨著服務開始搞大了,機器數量變成數十台時,也許會需要一些工具來輔助管理,之前我都是用 Fabric 來幫忙管理,不過 Fabric 有個缺點是他只是一個下指令的管理工具,當然我之前都硬幹,用 put 硬把他當成管理 configuration 的工具,上傳完了再下一個 reload 的指令,當然這樣也不是不行,不過似乎真的是一個很土炮的方法,但是隨著機器的數量越來越大,已經到達幾百臺的時候,就算是用 Fabric + parallel 其實還是覺得很怪,一來是雖然他已經平行處理了,但是他的 output 卻變成無序的,也就是當受管理的機器有 output 他就直接顯示在管理端上,有點惱人就是,另外一個是 Fabric 需要自己寫 Group 管理,要自己定義東西,而不能透過簡單的 query 來對想要的機器下指令就好,所以最近開始想要轉型使用 configuration management tool,常見的選擇是 puppetchefCFEngine 之類的,不過最近有個當紅的 OpenSource 軟體出現了,那就是 SaltStack

閱讀本文

solve dmesg appeared nouveau No connectors reported connected with modes after upgrading kernel to 3.8 or later 2013-05-31, 週五

My Linux box installed a nVidia GeForce GT210 (a.k.a. Chipset GT218) graphic card. Before kernel 3.7, I append video=VGA-1:1440x900@60 to kernel parameters. Because I use a 2-meter-long VGA line to connect my computer and monitor, I have to enforce using VGA port as display output. And it works perfectly.

The dmesg before kernel 3.7 says

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[drm] Initialized drm 1.1.0 20060810
[drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x0a8280a2)
[drm] nouveau 0000:01:00.0: Checking PRAMIN for VBIOS
[drm] nouveau 0000:01:00.0: ... appears to be valid
[drm] nouveau 0000:01:00.0: Using VBIOS from PRAMIN
[drm] nouveau 0000:01:00.0: BIT BIOS found
[drm] nouveau 0000:01:00.0: Bios version 70.18.2c.00
[drm] nouveau 0000:01:00.0: TMDS table version 2.0
[drm] nouveau 0000:01:00.0: MXM: no VBIOS data, nothing to do
[drm] nouveau 0000:01:00.0: DCB version 4.0
[drm] nouveau 0000:01:00.0: DCB outp 00: 01000302 00020030
[drm] nouveau 0000:01:00.0: DCB outp 01: 02000300 00000000
[drm] nouveau 0000:01:00.0: DCB outp 02: 02011362 0f220010
[drm] nouveau 0000:01:00.0: DCB outp 03: 01022310 00020010
[drm] nouveau 0000:01:00.0: DCB conn 00: 00001030
[drm] nouveau 0000:01:00.0: DCB conn 01: 00202161
[drm] nouveau 0000:01:00.0: DCB conn 02: 00000200
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xD0B7
[drm] nouveau 0000:01:00.0: 0xD40D: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: 0xD411: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xD608
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xE0DA
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xE10F
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xE2C2
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xE327
[drm] nouveau 0000:01:00.0: 0xE327: Condition still not met after 20ms, skipping following opcodes
[TTM] Zone kernel: Available graphics memory: 3051544 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
[drm] nouveau 0000:01:00.0: Detected 512MiB VRAM (DDR2)
mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
[drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
[drm] nouveau 0000:01:00.0: 3 available performance level(s)
[drm] nouveau 0000:01:00.0: 0: core 135MHz shader 270MHz memory 135MHz voltage 850mV
[drm] nouveau 0000:01:00.0: 1: core 405MHz shader 810MHz memory 405MHz voltage 900mV
[drm] nouveau 0000:01:00.0: 3: core 589MHz shader 1402MHz memory 400MHz voltage 1000mV
[drm] nouveau 0000:01:00.0: c: core 405MHz shader 810MHz memory 405MHz voltage 900mV
[drm] nouveau 0000:01:00.0: allocated 1440x900 fb: 0x310000, bo ffff8801a78dc000
fbcon: nouveaufb (fb0) is primary device
[drm] nouveau 0000:01:00.0: no native mode, forcing panel scaling
Console: switching to colour frame buffer device 180x56
fb0: nouveaufb frame buffer device

The kernel 3.7 or prior version was enforced using VGA as output successfully. And the resolution is right.

But after upgrading to 3.8 or above, I found that the parameter video=VGA-1:1440x900@60 causes a faulty screen after booting. I google it, and find some people bump into the same problem. No signal to monitor after kernel modesetting fails Problems with kernel-3.8 and kernel-3.9 modesetting

The kernel 3.8 or above says

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[drm] Initialized drm 1.1.0 20060810
nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x0a8280a2
nouveau [ DEVICE][0000:01:00.0] Chipset: GT218 (NVA8)
nouveau [ DEVICE][0000:01:00.0] Family : NV50
nouveau [ VBIOS][0000:01:00.0] checking PRAMIN for image...
nouveau [ VBIOS][0000:01:00.0] ... appears to be valid
nouveau [ VBIOS][0000:01:00.0] using image from PRAMIN
nouveau [ VBIOS][0000:01:00.0] BIT signature found
nouveau [ VBIOS][0000:01:00.0] version 70.18.2c.00.04
nouveau [ PFB][0000:01:00.0] RAM type: DDR2
nouveau [ PFB][0000:01:00.0] RAM size: 512 MiB
nouveau [ PFB][0000:01:00.0] ZCOMP: 960 tags
nouveau [ PTHERM][0000:01:00.0] FAN control: none / external
nouveau [ PTHERM][0000:01:00.0] fan management: disabled
nouveau [ PTHERM][0000:01:00.0] internal sensor: yes
[TTM] Zone kernel: Available graphics memory: 3050978 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
nouveau [ DRM] VRAM: 512 MiB
nouveau [ DRM] GART: 512 MiB
nouveau [ DRM] TMDS table version 2.0
nouveau [ DRM] DCB version 4.0
nouveau [ DRM] DCB outp 00: 01000302 00020030
nouveau [ DRM] DCB outp 01: 02000300 00000000
nouveau [ DRM] DCB outp 02: 02011362 0f220010
nouveau [ DRM] DCB outp 03: 01022310 00020010
nouveau [ DRM] DCB conn 00: 00001030
nouveau [ DRM] DCB conn 01: 00202161
nouveau [ DRM] DCB conn 02: 00000200
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
nouveau [ DRM] 3 available performance level(s)
nouveau [ DRM] 0: core 135MHz shader 270MHz memory 135MHz voltage 850mV
nouveau [ DRM] 1: core 405MHz shader 810MHz memory 405MHz voltage 900mV
nouveau [ DRM] 3: core 589MHz shader 1402MHz memory 400MHz voltage 1000mV
nouveau [ DRM] c: core 405MHz shader 810MHz memory 405MHz voltage 900mV
nouveau [ DRM] MM: using COPY for buffer copies
nouveau 0000:01:00.0: No connectors reported connected with modes
[drm] Cannot find any crtc or sizes - going 1024x768
nouveau [ DRM] allocated 1024x768 fb: 0x70000, bo ffff8801a7c37c00
fbcon: nouveaufb (fb0) is primary device

The kernel 3.8 says it cannot find a connector?

I read the documents of KMS, and then I solved the problem.

閱讀本文