2013年5月22日 星期三

Redmine 安裝

Install

原本是要學官網 (How to install on Debain)上面的指令,安裝 Redmine 到我 Debian 的 server 上。但是失敗了,失敗的原因目前不明。為了快速可以體驗他的好處,所以我就直接問大師。大師告訴我,BitNami (這個名字,深得我心啊! 不過還好不是 beat Nami) 已經有打包好 Redmine 的 package,直接安裝,不需要學會任何設定,就可以直接使用。相當適合像我這樣的新手。以下是我的安裝過程,跟大家分享一下。
  1. 先到 BitNami 的官網下載 Redmine (連結) ♥ 我是安裝最新的 Linux 版 2.3.1-1
  2. 更改下載檔的權限
    $ chmod +x bitnami-redmine-2.3.1-1-linux-installer.run
  3. 進入 root 身分 ♥ 使用 su 指令
  4. 進行安裝 ♥ 我是安裝在 /opt/ 下面 (default 選項)
    $./bitnami-redmine-2.3.1-1-linux-installer.run
在安裝的過程中,基本上就是一步一步滑鼠安裝啦! 只要注意其中一個視窗,是問要開在哪個 port (如下圖),提醒大家一下,要把設定值記下來,以免連不進去。基本上我是跟其他網友一樣,開在 3000 port,比較不用怕忘記。



完成最後一步之後,基本上 Redmine 就會 run 起來,然後我們就可以用 web browser 來編輯使用他啦!  (如下圖)

Command

下面的指令可以讓使用者在安裝之後,啟動、重新啟動、停止 Redmine:

  • 啟動 ♥ $(redmine)/ctlscript.sh start
  • 停止 ♥ $(redmine)/ctlscript.sh stop 
  • 重新啟動 ♥ $(redmine)/ctlscript.sh restart

WIKI 格式

  • 標題 ♥ h1./h2./h3.
  • List ♥ *
  • enum ♥ #
  • 圖的大小 ♥ !{width:750px}pic_name.JPG!


Reference

Related 


2013年5月21日 星期二

IP handling

以下列出兩個常用來儲存 IP 的 structure 和 3 個轉換的方法

Structure

1. struct in_addr 
    struct in_addr
    {
            unsigned long s_addr; // inet_aton() ... 用法可參考下面的 API
    };

2. in_addr_t 
    typedef u_int32_t in_addr_t; // type = unsigned long


API

1. convert "struct in_addr" to string 
    char *inet_ntoa( struct in_addr in );

2. convert "string" to "struct in_addr"
    int inet_aton( char *cp, struct in_addr *in );

3. convert "string" to "in_addr_t
    in_addr_t inet_addr( char * cp );


補充

在 socket programming 常用的 structure: struct sockaddr_in

    struct sockaddr_in 
    {
            short sin_family; // AF_INET
            u_short sin_port; // htons(80)
            struct in_addr sin_addr;
            char sin_zero;
    };

2013年5月2日 星期四

Linux 常見指令列表 (簡易版)


檔案處理
  • 壓縮/解壓縮檔案: 
  • 找檔案    find [搜尋資料夾] -name "[檔名]" -type [檔案類型: d/f/b/c/p/l/s/D] -size [+-size大小] -atime [+-修改/存取天數] -amin [+-修改/存取分] -c [+-建立天數] -u [user name]... (前往參考網站)
  • 複製檔案 ♥ cp -a -s [source] [target]
    • -a ♥ Copy資料夾, 且裡面所有的資訊都 copy (含連結檔)
    • -s ♥ 產生 symbolic link
  • 建立連結檔 ♥ ln -s [source] [target]
    • -s ♥ 建立 symbolic link (建議 source 和 target 都用 full path)
    • NOTE source 可以是檔案也可以是資料夾

帳號管理

  • 新增帳號 ♥ useradd [新的帳號]
  • 更換帳號的密碼 ♥ passwd [帳號]



主機資訊
  • 查詢主機名稱 ♥ hostname
  • 更改主機名稱 ♥ hostname [新的主機名稱].[domainname] 
  • 查詢主機的 Domain name ♥ dnsdomainname

  • 在 windows 清除已知的 DNS cache: ♥ ipconfig /flushdns

網路相關
  • Captures packets ♥ tcpdump -i [interface]
    • 存成 Wireshark 可以讀取的格式 ♥ tcpdump -i [interface] -w [file path]

(資料會持續增加中,都是基本的 cmd,只是記性不好,希望可以記錄一下。之後要查也比較方便  ^^ )

2013年4月12日 星期五

莫名的順口溜 [murmur]


村子裡面有個亭子、亭子裡面有個位置、位置上面坐個凱子、

凱子身上穿著好料子、料子花費不少銀子、銀子上面刻著文字。



為什麼有這個順口溜呢,要從豬狐狸和大雅的對話說起....
如果要徹底理解這個原由呢,又必須了解 ACHI 的團員。以下是簡單的圖表:



故事是這樣的....


大雅跟村長的一個前同事小孩生了,因為那個前同事名字有個「貴」,所以大家都恭賀他「喜得"貴"子」。

大雅:我要不要也去臉書恭喜他一下
村長:這樣你可能又要被問說哪時候要生小孩。
大雅:那你恭喜他不是也一樣嗎?
村長:我最多就是有個村子,(停頓)這樣我就有領地了,哈哈,良田百畝之類的。

村長:這樣 nami(姓廖) 就是獲得料(廖)子耶,不知道要做衣服還是做褲子
大雅:他不一定要叫料子阿!
村長:對耶,那給他老公的話,就是亭(廷)子,還是村子比較強

大雅:然後如果小姿以後跟凱爾在一起,就是凱子了,聽起來好花錢
Nami:小姿的孩子,就很厲害。叫資(姿)質。

大雅:阿對有講到阿蔚,阿蔚的就是位子XDDD
大雅:聽起來也好小

Nami:哈哈哈哈哈哈哈阿....

村子裡有個亭子、
亭子裡面有個位置、
位置上面坐著凱子

第一版順口溜,就這麼出來了.
但是,還沒結束 .........


大雅:我們同事還有一個更小的,因為他名字有芬,所以是分子。無所不在~~~~~
大雅:而且後來還講說這樣那個芬同事就是芬母了耶!

Nami:凱子腦袋裝的是資質 (還在講.....) XD 我好厲害喔!!!!!
Nami:XDDDDDD 把大家串起來了
大雅:XDDDD 你也太厲害了
Nami:只差你就完整版了
大雅:我是蚊子阿
大雅:哈哈哈哈 我最慘了所以都不提自己的阿。我都要被打死了

Nami: XDDDDDDDDDDDDDDDDDD 第二版出爐...

村子裡面有個亭子、
亭子裡面有個位置、
位置上面坐個凱子、
凱子身上有隻蚊子、
凱子腦裡面有資質、
凱子身分是個料子、


大雅:凱子會不會太好命
Nami: 噎噎
大雅:他出現超多次。他明明最少出現。哈哈哈 (謎之音:凱子快出現)

Nami: 那...

村子裡面有個亭子、
亭子裡面有個位置、
位置上面坐個凱子、
凱子身上有隻蚊子、
蚊子腦裡面有資質、
資質 x x x x料子、

最後四碼,請自己填空。

Nami: 那...我是多餘的
Nami: Q"""""""""Q~ (漂走)

大雅:你明明就不是多餘的。不是應該先填料子嗎? 蚊子不重要阿 XD
Nami: 蚊子很重要,這樣才能串在一起阿....哈哈哈哈...
Nami: 你看每句的頭,就是上一句的尾巴。完美!!!
大雅:沒有蚊子我們的心還是串在一起阿
大雅:這算甜言蜜語嗎? XD
Nami: >////////////////////////< 哈哈哈哈 算!!

大雅:感覺要等阿蔚的男朋友出現這些句子才會接完 haha
Nami: 那我只能限定阿蔚男朋友的名字了!!
大雅:被限定名字,又被限定結婚日期。肯定是真愛了  XD
Nami: XDDDDDDDDDD 好限定版的真愛阿..... 哈哈哈
大雅:限量總是殘酷的~

Nami: 我終於知道阿蔚為什麼還沒死會了。因為門口太窄了
大雅:都是我們害了他~~~(搥地)
大雅:想到他之前不是說看對方朋友決定要不要跟人家在一起嗎?我們害了他~~~(搥胸)
Nami: 哈哈哈哈哈哈哈....真不好意思(搔頭,毫無悔意) 
Nami: 他只能在男朋友和我們之間作出選擇了
Nami: 我們會不會被淘汰 (飄走,今天怎麼這麼悲觀阿)

大雅:他可以找個也很奇怪的男朋友阿
大雅:這樣對方就不會覺得我們很怪了~哈哈哈哈哈
大雅:又被限定了~XDDDDDDDDDDDDDD
Nami: 超級限定版

====== 續曲 ======
(在定下次聚餐時間)
Nami: 話說,如果你們喝酒的話,我好想找你們去一家店喔...A Train
大雅:嗚嗚~我不喝酒。你可以直接問村長要不要去
Nami: 哈哈ㄏ,他裡面也是可以吃東西噎
Nami: 而且他早上 11 點就開了
大雅:那應該沒問題吧~哈哈哈哈 薯條看起來好好吃
Nami: 對阿.......

大雅:這次要約這邊嗎?(推眼鏡
Nami: 我剛剛在查他們有沒有賣普通一點的飲料。如果有,我們就可以去那邊聊天了
Nami: 評價很好、不管試吃的還是喝的、還是氣氛
Nami: 而且店員都是帥哥,(遞給阿蔚)
大雅:都是帥哥的話,阿蔚不能跟我們去阿
大雅:我們會害了他~~~~~~~
Nami: 對齁..... XDDDDDDDDDDDDDD
大雅:哈哈哈

Nami: 那叫阿蔚自己坐後面那桌,我們會講大聲一點
Nami: 他用 line 跟我們聊好了..XDDDDD
大雅:哈哈哈 用skype也可以喔  ㄎㄎ
Nami: 哈哈哈哈....
大雅:結果我們聊太開心都沒人看line
Nami: 好孤單的阿蔚喔....XDDDD
大雅:這樣我們好像對比,他很有氣質
大雅:店員應該會心動吧

2013年4月11日 星期四

Sniffer packets x Programming


功用

Used to Sniffer packets. You can specify which kind of packets should be handled.

Library

pcap.a

Example 

void nami_pcap_example_main(char *dev_name_arg )
{
    char *dev_name, errbuf[PCAP_ERRBUF_SIZE];
    bpf_u_int32    net, mask; 
    pcap_t                      *pcap_handler;
    struct bpf_program    pcap_fp;
    struct pcap_pkthdr    header;

    if( dev_name_arg == NULL )
   {
        /* use pcap_lookupdev to get a default device */ 
        dev_name = pcap_lookupdev(errubuf);
        if ( dev_name == NULL ) {    /* error handler */    }
    } else 
    {
        dev_name = dev_name_arg;
    }
    
    /* get the IP and mask of the iface, if net and mask is not required, can skip this step */
    if ( pcap_lookupnet( dev, &net, &mask, errbuf ) < 0 ) {    /* error handler */    }

    /* open a device for capturing */
    pcap_handler = pcap_open_live( dev, /* snaplen: snapshot len */ 1518, 
             /* promisc:  specifies if the interface is to be put into promiscuous mode*/ 1, 
             /* to_ms: the read timeout in milliseconds */ 1000, errbuf );
    if ( pcap_handler == NULL ) {    /* error handler */    }

    if ( pcap_compile( pcap_handler, &pcap_fp, pcap_filter_exp, 0, 
         PCAP_NETMASK_UNKNOWN) < 0 ) {    /* errbuf */    }

    if ( pcap_setfilter( pcap_hander, &pcap_fp ) < 0 ) {    /* error handler */    }

    pcap_loop ( pcap_handler, -1, nami_sniffer_handler, NULL );

    return ;
}

void 



Reference 



2013年4月10日 星期三

令人心動的小物 -- 超級打標機 [文具篇 x 2013.04]


今天在逛 Zakka 雜貨網路的時候,看到這個神奇的東西 -- 超級打標機

雖然好像已經不是新鮮物了,但是還是深深地打動我阿!!

小小地一台,但是可以打出自己想要得大小寫英文字和數字的貼紙。換句話說,就是可以隨心所欲的想打什麼單字就打什麼單字。既然都可以打單字了,當然打句子就沒問題啦!

由於他是貼紙,可以自己作成標籤、包裝標語、甚至是筆記本的標題。這個功用就是讓我心動的原因。因為我很喜歡製作日誌本,紀錄一些東西,可是貼紙又不一定有我想要得句子。有了這個,就可以滿足我的需求了。而且他還有幾個顏色的補充帶可以選,雖然 Zakka 提供的顏色不多,但總覺得去別的地方找,應該可以找到不少。

下面是 Zakka 雜貨網上面的範本 (因為我還沒買,沒辦法製作美每的照片。等我買了,在換成自己的照片,這樣可以嗎? @@?)



既然用了人家的照片,所以就來打廣告一下。如果要購買,可以前往  http://www.zakka.com.tw/product/OT152302

搭配打字機的補充帶
http://www.zakka.com.tw/product/OT153603

常用的軟體

寫這篇的目的,是因為我有一個很愛交換電腦兼愛傳灌的魔老公,所以我要把一些我常用的軟體慢慢一點一滴的記錄下來,免得要用的時候就一個頭兩個大。(雖然大多只要出張嘴,就會有了 XD)

處理照片

  • 看照片、又可以修大小的軟體:Faststone Image Viewer
  • 可以加框、又可以批次檔處理照片的軟體:nEO iMAGING 光影魔術手

MP3/音樂/影片

檔案同步

  • Dropbox 

Browser 

  • Chrome

通訊軟體

  • Line
  • Google talk

磁碟重組