bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries for the ‘程式設計’ Category

JVCL 自 3.38 版本停止支援 Delphi 5 環境

最近處理幾個 Delphi 5 開發環境下的專案,要先升級到 Delphi 7 開發環境,將所有相依套件進行整理與更新之後。確認 Delphi 5 可以使用 JVCL 的最後版本是 3.37 版。在此做個紀錄。

Leave a Comment

在 mac 環境安裝 JDK 6

雖然 JDK 已經演進到 8 的版本,還是會有有需要用到舊版的狀況。

而 Java SE Development Kit 6 在 Oracle 官方沒有直接提供給 mac 用的版本,需要到 Apple 網站下載

請開啟瀏覽器開啟連結到 https://developer.apple.com/download/more/

需要用到 Applie ID 帳號登入

mac-install-jdk6_1

進入畫面後在左側搜尋框查詢 Java

mac-install-jdk6_2

然後展開最新的 Developer Package 就可以看到 dmg 得下載連結

mac-install-jdk6_3

下載後直接安裝就完成 JDK 6 的安裝。

Leave a Comment

ECShop 解決在新版 PHP 環境會有 Deprecated: preg_replace(): The /e modifier is deprecated 問題

ECShop 改版的速度算是滿落後的,PHP 的都推進到第 7 版本了。所以很多函式基於安全性或其他問題都要被改換掉,只要將 PHP 錯誤報告開到 DEBUG 等級就可以看到一堆警示。不過看起來 ECShop 到 PHP 5.6 版環境都還可以運行。所以有能力的話可以自行解決,至少可以讓開發環境在做修改時能減少這些雜訊與寫入 SSD 的次數。

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in cls_template.php XXX line

以下列出我有修改的部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php //cls_template.php
//-- 原本
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
//-- 修改成
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);

//-- 原本
$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);
//-- 修改成
$val = preg_replace_callback("/\[([^\[\]]*)\]/is", function($r) { return '.'.$r[1]; }, $val);

//-- 原本
$out = "<?php \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";
//-- 修改成
$out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/" , function($r) { return stripslashes(trim($r[1],'\'')); }, var_export($t, true)) . ";\n";

//--- 原本
$pattern     = '/<!--\s#BeginLibraryItem\s"\/(.*?)"\s-->.*?<!--\s#EndLibraryItem\s-->/se';
$replacement = "'{include file='.strtolower('\\1'). '}'";
$source      = preg_replace($pattern, $replacement, $source);
//--- 修改成
$pattern     = '/<!--\s#BeginLibraryItem\s"\/(.*?)"\s-->.*?<!--\s#EndLibraryItem\s-->/s';
$replacement = function ($r) { return '{include file='.strtolower($r[1]). '}'; };
$source      = preg_replace_callback($pattern, $replacement, $source);

Leave a Comment

error closing pipe: Bad file descriptor at /usr/lib/git-core/git-svn line 0.

在 ubuntu 14.04 x86_64 環境下將早期使用 subversion 作版本管理的程式專案移轉到 git 時碰到的錯誤訊息


1
2
3
4
5
6
7
$ git svn clone --username=bestlong --authors-file=authors.txt https://xxx.yyy.zzz/svn/repo-name repo-name
...省略
creating empty directory: trunk/logs
creating empty directory: trunk/templates_c
error closing pipe: Bad file descriptor at /usr/lib/git-core/git-svn line 0.
error closing pipe: Bad file descriptor at /usr/lib/git-core/git-svn line 0.
$

查了網路上有很多資訊,有提到很多可能因素,例如:記憶體不足,或者是 ulimit 的限制…等,但怎麼調整都沒有排除掉錯誤。直到看到有人提到 git version, svn version, 32 bit or 64 bit, Perl version 都是可能原因時,就直接找另一台 CentOS 6.6 x86_64 環境的主機跑看看,還真的就順利過關。

因為是一次性的作業,在更換環境後可以達成目的就不深入研究錯誤原因了。

Leave a Comment

如何在 Windows 環境上安裝設定 node.js 的作業環境

nodejs.org

安裝 node.js

在 Windows 環境上安裝 node.js 超簡單,Node.js 官方網站首頁上就直接提供下載 node-vX.X.X-xXX.msi 安裝檔的連接,下載後執行安裝都按下一步就搞定了。

Node.js 下載專頁中有提供給 Windows 環境的安裝程式有區分 32bit 與 64bit 兩種版本,請視需求下載安裝:
node.js-download

更新 node.js

因為 node.js 的開發團隊是非常活躍的,所以新的版本會一直推出。不過不用擔心,請直接到官網下載 msi 安裝檔後,請先確認沒有正在執行中的 node.js 程式,就直接執行安裝,這樣就完成更新了。

移除 node.js

就像一般的程式,請到控制台的程式集的解除安裝程式的畫面中,看到 Node.js 就可以解除安裝了。

Node.js 官網網址:http://nodejs.org/

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整