顯示具有 programming 標籤的文章。 顯示所有文章
顯示具有 programming 標籤的文章。 顯示所有文章

2012/07/15

Haskell

apt-get install haskell-platform

http://hackage.haskell.org/platform/linux.html
http://www.vex.net/~trebla/haskell/haskell-platform.xhtml
http://www.haskell.org/ghc/

http://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/

2012/07/06

gitflow

git-flow 下載:

git clone https://github.com/nvie/gitflow.git


git-flow 有綁一個 submodule 叫 shFlags(https://github.com/nvie/shFlags)
必須執行以下指令來設定:

git submodule init && git submodule update


如果無法執行 git submodule update
可以直接切換到剛 clone 下來的 gitflow 內,手動下載 shFlags:

cd gitflow
rm -rf shFlags
git clone https://github.com/nvie/shFlags.git


git-flow 安裝:

cd gitflow
sudo make install


使用說明:
http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
http://codesherpas.com/screencasts/on_the_path_gitflow.mov
http://vimeo.com/16018419

Reference:
01. https://github.com/nvie/gitflow
02. http://ihower.tw/blog/archives/5140
03. https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh

2012/06/15

導致 PHP 語法錯誤的 xml 標籤

處理到一個很奇怪的問題。

有個負責 echo 出 xml 內容的 php 程式,一直出現語法錯誤:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING your_file.php on line 123

your_file.php 是在 Windows 環境來的,在 Linux 內使用 Vim 開啓時,行尾會出現 Windows 的蠢符號 ^M

我如同往常一樣使用以下指令將 ^M 清除:
:%s/^M//g
(^M 是壓 Ctrl + V 再壓 Ctrl + M 的效果)

但是 123 行一直報錯,123 行的 php code 類似這樣:
<p id="$_GET['id']">

如果把 123 行註解掉,在 Vim 內的重新輸入一模一樣的內容,就 ok 了!
看起來是有些神祕的行尾符號,人類的肉眼無法察覺,待查 .....

Vim 有沒有好的外掛顯示 space、tab、break 啊!?

熱心的朋友們給了許多解法:
曼珠:":set invlist"可達到要求嗎?我自己試用是看的到行尾的 $,但我沒有其他的不可見符號所以沒辧法進一步測試。原來 :set invlist 是 invert list 的簡寫(等同 :set list!),而查詢 'list' 後發現他能顯示 ^I 和行尾,但對於其他不可見字元就沒多寫了,所以可能要再查。

雲端CrBoy+:把那行複製出來塞進新的檔案 用 hexdump 去看!

__CA__.py:vim -b abc.php ?

Chester Chang:try hex editor

Reference:
http://www.perturb.org/display/679_Make_Vim_show_hidden_characters.html
http://grx.no/kb/2008/11/17/remove-windows-line-endings-in-vim/
http://www.grok2.com/blog/2010/04/21/getting-rid-of-m-ctrl-m-characters-in-windows-text-using-vim/
http://stackoverflow.com/questions/799417/gvim-showing-carriage-return-m-even-when-file-mode-is-explicitly-dos

====================================================

後來發現根本不是行尾的問題!

該 php 檔中混合了 php tag 與 xml tag,例如:
<?php
    // code
?>
<?xml version="1.0" encoding="UTF-8" ?>
<?php 
    // code
    echo $XML 
?>

如果修改成以下格式,將 xml tag 使用 heredoc 輸出就正確了:
<?php
    // code

    echo <<<HERE
<?xml version="1.0" encoding="UTF-8" ?>
 HERE

    // code
    echo $XML 
?>

看起來是 php 與 xml 的 tag 讓 Web Server 混亂了,不是行尾有問題 ....

2012/04/01

CRUD

https://github.com/Fredi/simpleCRUD
https://github.com/kawanoshinobu/SenchaTouch2-simple-CRUD-sample

2011/10/26

IEH 20111025

2011/10/25 於 d`Cafe 的聚會筆記

[NoSQL ,MongoDB,Neo4j,Graph Database ...]

[Hadoop]
HDFS:是基礎建設,就像地基,是根本中的根本。
MapReduce:精華!大絕招!
HBase:Google Big Table,base on HDFS 的資料庫。
Cassandra:
Avro:
Hive:
Mahout:
Zookeeper:後面有一堆好用的 MapReduce 函式(工具?)可以呼叫使用
Pig:類似 SQL,是一種資料庫語言
Apache 有 Top Project 跟非 Top Project,
Hadoop 相關的 Sub Project 一堆都是 Top Project。

很棒的 hadoop 演講:
http://www.youtube.com/watch?v=3NAP5rk9Nzs

[Design Patten,無招勝有招,禪 ...]
Strategy
Template Method
Visitor:不同的專家去扣問不同的問題
Mediator
Observer

Reference:
http://neo4j.org/
http://www.mongodb.org/
http://www.readwriteweb.com/cloud/2011/04/5-graph-databases-to-consider.php
http://en.wikipedia.org/wiki/Graph_database
http://hadoop.apache.org/
http://hadoop.apache.org/common/docs/current/mapred_tutorial.html
http://www.jaceju.net/blog/archives/1828
http://coolshell.cn/articles/4844.html

2011/01/26

Plurk 機器人

做一個 Plurk 機器人其實不難,只是相關的文章好像都很少。
或許太簡單了,大家都懶得寫。
但我這種容易忘的人還是幫自己記錄一下好了。
初次接觸的人也可以一起參詳一下,大家一起做寫有趣的應用。



其實許多程式機器人的原理都是差不多的。
假設你已經很熟悉 Plurk 的使用了,你想要做提供用餐建議的機器人,該怎麼做呢?
請你先想象一下你自己就是這個機器人(機器人其實就是模擬「人」,對吧?)。

你的工作情境是:
  
你的 Plurk 帳號會允許所有使用者的好友請求,並且把對方也加入爲好友。

假設有 10 位 Plurk 使用者加你好友,你也會加他們到你的好友清單。
這樣一來,你的 Plurk 河道上就會追蹤到這 10 位使用者的 plurks 了。

你「每一分鐘」檢查一次自己的 Plurk 河道是否有新的未讀訊息。
檢查的條件:
1)訊息狀態是否爲「好奇(wonder)」;
2)訊息內容是否爲「早餐」或「中餐」或「晚餐」;
3)符合以上條件,則回應用餐建議到該訊息。

回應的流程:
1)根據「早」、「中」、「晚」餐,從對應的用餐建議庫裡隨機選出一個;
2)組合成完整的回應內容,回覆到對應的訊息底下。