2014年11月5日 星期三

2014年8月7日 星期四

設定 Powershell Codepage (字碼頁) 為UTF-8

設定 Powershell Codepage (字碼頁) 為UTF-8

打開Powershell,並輸入

chcp 65001

然後在視窗上按右鍵,選擇內容

在字型頁面中,選擇適當的自行後,按確定即可

2014年6月12日 星期四

[Synology] Crontab settings

於Synology DS211j 中增加例行工作

vi /etc/crontab

#minute hour    mday    month   wday    who     command
17      8       *       *       2,5     root    /usr/bin/php -n -d safe_mode_exec_dir='' /usr/syno/bin/autoupdate.php
14      5       *       *       2,5     root    /usr/syno/bin/synopkg chkupgradepkg
0       0       *       *       3       root    /var/packages/AntiVirus/target/bin/synoavscan --all
0       3       *       *       *       root    /usr/syno/bin/syno_poweroff_feasible_check

修改後,儲存離開,並執行下列指令

synoservice -restart crond

2014年6月10日 星期二

[C#] Windows Service Code Debug method

C# service Debug 方法 原始出處

個人採用方法三

只需加一些程式碼判斷與獨立使用即可!


在主要Service程式中獨立的 Start 與 Stop
public void Start(string[] args)
{
    this.OnStart(args);
}

public void Stop()
{
    this.OnStop();
}  

Program.cs中需新增的判斷
 if (Environment.UserInteractive)
 {
     Service1 s = new Service1();
     s.Start(null);
     Console.WriteLine("服務已啟動,請按下 Enter 鍵關閉服務...");
    // 必須要透過 Console.ReadLine(); 先停止程式執行
    // 因為 Windows Service 大多是利用多 Thread 或 Timer 執行長時間的工作
    // 所以雖然主執行緒停止執行了,但服務中的執行緒已經在運行了!
    Console.ReadLine();
    s.Stop();

    Console.WriteLine("服務已關閉");
 }
 else
{
   //原有程式碼
}

最後在專案的property裡設置輸出類型(Output Type),選擇 
Console Application

Google Finance API (目前已停止更新,終止服務時間未定)

Google Finance API
兩種方式,第一種較詳細
http://www.google.com/finance/info?infotype=infoquoteall&q=2311
http://finance.google.com/finance/info?client=ig&q=TPE:2311

q=後面接股票代碼,格式可以為
q=TPE:2311
q=2311

{
"id": "674465"
,"t" : "2330"                               股票代號
,"e" : "TPE"
,"l" : "122.50"
,"l_fix" : "122.50"
,"l_cur" : "NT$122.50"             成交價格
,"s": "0"
,"ltt":"1:30PM GMT+8"            時間
,"lt" : "Jun 6, 1:30PM GMT+8"
,"lt_dts" : "2014-06-06T13:30:08Z"
,"c" : "-0.50"                             漲跌
,"c_fix" : "-0.50"
,"cp" : "-0.41"                           漲幅
,"cp_fix" : "-0.41"
,"ccol" : "chr"
,"pcls_fix" : "123"                     昨收
,"eo" : ""
,"delay": ""
,"op" : "123.50"                       開盤價
,"hi" : "123.50"                        最高
,"lo" : "122.00"                        最低
,"vo" : "19.28M"
,"avvo" : ""
,"hi52" : "124.00"
,"lo52" : "92.90"
,"mc" : "3.18T"
,"pe" : "16.17"
,"fwpe" : ""
,"beta" : ""
,"eps" : "7.58"
,"shares" : "25.93B"
,"inst_own" : ""
,"name" : "Taiwan Semiconductor Mfg. Co. Ltd."  公司名稱
,"type" : "Company"
}


原始出處

[PHP] Multi-Dimension array sorting Method

Multi-Dimension array sorting Method,多微陣列排序方法 (網路上找到的)

function aasort (&$array, $key) {
    $sorter=array();
    $ret=array();
    reset($array);
    foreach ($array as $ii => $va) {
        $sorter[$ii]=$va[$key];
    }
    asort($sorter);
    foreach ($sorter as $ii => $va) {
        $ret[$ii]=$array[$ii];
    }
    $array=$ret;
}

aasort($your_array,"order");

[PHP] Array to File (File back to Array)

PHP中將Array寫入檔案,以便日後讀出的方法

寫入檔案前,需先做serialize的處理
$string = serialize($arr);
file_put_contents('File.txt', $string);

讀出檔案後,需做unserialize的處理
$str = file_get_contents('serialtest.txt');
$arr = unserialize($str);

[Synology] PHP exec disable

於Synology裡,在PHP中使用exec時,碰到 exec()無法使用的情況,需依照下列步驟處理。

修改下列檔案
/usr/syno/etc/php.ini
/usr/syno/etc/php/user-setting.ini

將下面這行設定
safe_mode_exec_dir = /usr/syno/bin
修改為
safe_mode_exec_dir =  

Apache重啟
/usr/syno/etc/rc.d/S97apache-user.sh restart 


p.s. 我使用的是Synology DS211j 機器 - DSM 4.3的版本

2014年5月21日 星期三

PHP Memory limit

PHP執行中因下列錯誤而中止

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /php/doctrine/lib/Doctrine/Query/Abstract.php on line 508


PHP 系統設定記憶體限制,預設128MB。
可由php.ini檔案設定找到,裡面有一項參數memory_limit

memory_limit=2048m; Maximum amount of memory a script may consume (128MB)

P.S.  可藉由指令方式顯示現有記憶體限制
php -r 'echo "PHP Memory Limit :".ini_get("memory_limit")."\n";'
PHP Memory Limit : 2048M

2014年1月7日 星期二

[Android] How to Add Android ID or Fix 'No DB found' error


Change Android ID:
1. 使用adb.exe shell進入手機
2. 輸入下列指令
$ su
# cd /data/data/com.android.providers.settings/databases/
# sqlite3 settings.db

3. 接著你會進入"sqlite>" prompt


sqlite> insert into secure ("name", "value" ) values ("android_id","DEVICE_ID_GOES_HERE"); 
.exit

DEVICE_ID_GOES_HERE 為你想使用的Android ID
4. 然後重開機即可


p.s. 若無此sqlite3指令,可自行放入,方式如下

adb push sqlite3 /data/local/tmp/sqlite3
chmod 775 /data/local/tmp/sqlite3
chown 0.0 /data/local/tmp/sqlite3

[Android] How to disable Navigation bar


1. 使用'Root Explorer' app找到位於/system底下的
build.prop
2. 並使用text editor編輯此文件,至文件尾有一行 (最後三行都是一樣的,只需修改最後一個)
qemu.hw.mainkeys=0
把其值改為1後,儲存離開

3. 最後,重開機即可!

搜尋此網誌