2010/03/24

[Linux][軟體] 線上看台視新聞

好啦,因為很多網站都是 IE Only ,所以在 Linux 底下很難搞。而且 Hinet Channel 要看還要一直點個不停,好麻煩,所以晚上花了點時間 parsing 台視網頁 串接 mplayer ,這樣就只要有網路就可以看網路電視新聞了;下面是我的 script :
#!/bin/bash

LIST=`wget "http://www.ttv.com.tw/news/newsContentV.htm" -O - | \
sed 's/\/videocity\/video_play.asp?id=\([0-9]*\)/\n##\1##\n/g' | \
sed -e '/##[0-9]*##/!d' -e 's/##\([0-9]*\)##/\1/g'`
FLVURL="http://www.ttv.com.tw/group/VideoGallery/CreateXML.asp?flvid=NUM:"

for i in $LIST; do
FLV=`wget "${FLVURL}$i" -O - 2>/dev/null | \
sed "s/.*url='\([^\']*\).*/\1/"`
mplayer $FLV -zoom -y 480 -x 848 -fs
done


(其實我更希望四元兄的 Beta Radio 趕快更新,這樣才可以看更多網路新聞電視。

2010/03/16

[Linux] Kernel Module 帶入 Parameter 以及 Endian 的問題

最近參與的工作有在玩 Kernel 的部份,首先要做兩個 Kernel Module 的常見任務介紹:
1. Module 帶入 Parameter 的部份.
其實也很簡單,在 module 定義 macclone 這個變數,再用 module_param 帶入它的值。
static short int macclone = 1;

module_param(macclone, short, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
MODULE_PARM_DESC(macclone, "An Short");

int init_module(void)
{
struct net_device *ndev = NULL;

printk("a = '%d'\n", macclone);


應用時,是用 sudo insmod hello macclone=1
這樣帶進去的。詳細的部份,可以參考 LinuxTopia (中文是翻作 「Linux 討皮癢」嗎?)上面的說明。

2. C code 裡面應用 Little Endian 和 Big Endian 的部份.

單純的 C code 如果要應用 Little Endian 和 Big Endian 的分別其實可以直接 include endian.h 就可以:
#include <stdio.h>
#include <endian.h>

int
main()
{
#ifdef LITTLE_ENDIAN
printf("little\n");
#else
printf("big\n");
#endif

return 0;
}

如果沒有 endian.h 可以用,像是在 kernel 裡面決定 endian (下面我不確定是最佳解...),可以用在 這邊 的 blog 提到 IBM 網站上找到的資料:
const int endian = 1;
#define is_bigendian() ( (*(char*)&endian) == 0 )
union {
int val;
unsigned char c[sizeof(int)];
}u;


--
參考網址:
關於 little endian 和 big endian
Big Endian 和 Little Endian
Linuxtopia

2010/03/07

[Linux] Gnome 的網路代理伺服器(gnome-network-properties)設定有蟲


前幾天發現的,在 Gnome 的網路代理伺服器設定裡面有問題,明明 Use authentication 沒有開,但是 gconf 底下就會看到 use_http_proxy 被 enable 起來了,這樣的做法會讓某些 proxy 設定出了問題。

不知道之前有跟我說他的 proxy 設定有問題的同好是不是這個問題上面出的錯?

總之,這個問題得要處理才是。所以我的 on location change 這個 script 要修改一下,變成:
CMD=gconftool-2
${CMD} --type string -s /system/proxy/mode none
${CMD} --type bool -s /system/http_proxy/use_http_proxy false
${CMD} --type bool -s /system/http_proxy/use_same_proxy false
${CMD} --type bool -s /system/http_proxy/use_authentication false

這樣的方式來處理 proxy 預設設定。(因為我預設沒有用 authentication 啊~)

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...