Joe Horn 的啟示錄
Joe Horn's Blog
  • LinkedIn
  • Facebook
  • Instagram
  • GitHub
  • Docker Hub
RSS
  • VPS Referrals
  • My Plurk
  • My Plurk Bot

2 月 7 2012

Eclipse with JDK (Java Developement Kit) 7

這幾天在整理工作用的 laptop 與自己家用的 laptop,順手更新了 Eclipse。
這兩台電腦我都裝了 JRE (Java Runtime Environment) 7 與 JDK (Java Developement Kit) 7,在家裡的網路環境,Eclipse 安裝/更新 plugins 都沒有問題;但在公司的網路環境,卻出現了如下的畫面:

原以為是 Proxy 設定有問題,跳到另外一條線路做直接連線存取,狀況依舊。
檢查了 Windows 7 的網路防火牆相關設定,也看不出個所以然。
最後,我在 Google 找了好一陣子,找到解法:

  1. 用文字編輯器打開 Eclipse 資料夾裡面的 eclipse.ini 。
  2. 在 -vmargs 下面加入 -Djava.net.preferIPv4Stack=true 。

改過之後的 eclipse.ini 會像這樣:

...略...
openFile
-vmargs
-Djava.net.preferIPv4Stack=true
-Dosgi.requiredJavaVersion=1.5
...略...

By Joe Horn • Computer Software 0 • Tags: Eclipse, JAVA, JDK

12 月 29 2011

在 Windows 7 連結 Apache HTTPD 的 WebDAV 軟體 – Cyberduck

自從使用 Gallery 架設自己的網路相簿後,我很喜歡透過 WebDAV 上傳圖片檔案。

我可以很容易地在 Windows XP 的網路芳鄰新增 Apache HTTPD 的 WebDAV 存取點,但在 Windows 7 下,我卻一直找不到解法。

我試過這篇網路文章的解決方案:

開啟 regedit,在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 機碼下把 BasicAuthLevel 改為 2,並重新開機。

也安裝了 Microsoft 提供的 Software Update for Web Folders (Web 資料夾的軟體更新;KB907306)。
但問題依然沒有解決。

目前… 我暫時放棄找尋 Windows 7 native WebDAV client 的 solution,改用 Cyberduck 上傳照片到我自己的網路相簿。
有需要的人可以試試。

By Joe Horn • Computer Software, Windows 1 • Tags: Apache, Cyberduck, WebDAV, Windows 7

10 月 28 2011

Subversion 1.7

好一陣子沒寫 Blog 文章了… :oops:
剛好最近在 Subversion 遇到了些問題,就拿這話題來寫一下。
不可否認,Git、Mercurial 這類 DVCS 很棒,但我工作的環境一直用的是 Subversion,所以,我還是丟不下它。 :-P

從 server 端看,Subversion 1.6 -> 1.7 可以說是無痛移轉;但從 client 端看,影響不可謂不大。

首先,最大的差異是 metadata 的目錄與檔案結構變更(就是 .svn 目錄裡面的東西)。
下面這張圖是 Subversion 1.6.x 的 metadata 結構:
Subversion 1.6 metadata structure
下面這張則是 1.7 的:

而這兩個版本的 working copy 無法相容。
舉例來說,當 TortoiseSVN 1.7.x 遇到原本使用 TortoiseSVN 1.6.x 維護的 working copy,軟體會要求 user 做轉換/升級;而 TortoiseSVN 1.6.x 無法解析轉換/升級後的 working copy。
(在 *NIX 系統裡,轉換/升級的指令是 svn upgrade )
另外,在 1.7 以前的結構,若是 working copy 存在著子目錄,每個子目錄下都會被放置 metadata(都會有 .svn 目錄);轉換/升級(至 1.7 )之後,metadata 只會被存放在 working copy 的根目錄下。
根據 release notes 的說法,這種儲存方式佔用的磁碟空間會比較小。但就我看來,只有在 working copy 的容量大到一定程度時,這種儲存方式才會佔用比較小的儲存容量,反之則否。另一方面,我沒有進行測試,但我相信對 client 而言(尤其是 Windows-based client),這種儲存方式會提昇 working copy 的存取速度。

其次,client 端多了個 svnrdump 可以用。
以往我們只能在 server 端作的 svnadmin dump 與 svnadmin load,如今在 working copy 也可以做 svnrdump dump 與 svnrdump load 。

除了這兩個(我覺得)比較大的變動,其他如 svn patch、svn relocate 等等的指令,也被引入了。
有興趣的可以看看 release notes。 8-)

By Joe Horn • Programing 1 • Tags: Subversion, SVN, TortoiseSVN, upgrade

4 月 11 2011

有感

這幾年,經歷、耳聞了一些事,觀察周遭的人,感觸良多。

先說一下事情:

  1. 我弟弟攻讀碩士,即將畢業時,跟我說他們班上一個女性同學,在即將口試前,得到台北的一份工作 offer,也答應畢業後就要任職。那份工作的 title 是行政助理,月薪 29k。
  2. 我的一個研究所同學,原本在資訊業。不到一年前,跳到旅館業,擔任 door keeper。看似工作很開心,但卻對薪資不滿意。
  3. 另一個研究所同學,在聚餐時說他不喜歡寫程式。但是他又期望能在他們部門,早日取得主管的頭銜。
  4. 女性友人與我談論她的感情,問些看法、想法,甚至是對身邊的男生頗有微詞。

針對 1 ,當時,我與我弟討論到的是…
那間公司、甚至那個產業,會不會認定某某學校的碩士,薪資水準就只是落在那個範圍?
雖然是「職業不分貴賤」、「行行出狀元」,但擔任行政助理這回事,讓我覺得攻讀碩士的成本(學費、時間)是白花了。
早點投入職場,獲得的成就會更多。

再加上第 2 件事來看…
我相信有許多人在選擇大學科系,決定是否要攻讀碩、博士之前,根本沒先想清楚自己想要從事什麼行業,真正有興趣的是什麼。
我認為… 這種懵懂無知是很嚴重的錯誤。
我相信… 若對自己從事的工作內容感興趣,那份源於自身的熱情會昇華成熱忱,帶出責任感,並提昇自己的抗壓性;久而久之,在職場上獲得的成就也應該會比較高。
相反地,若因為覺得工作內容乏味,一味的抱怨,覺得容易疲累,甚至是推諉、逃避,只會降低主管、同事對自己的信賴程度。
這兩種情況,像是滾雪球,也像是社會經濟的 M 型化一樣:富者恆富,窮者恆窮。

第 3 點跟 1、2 很類似,也是沒想清楚自己要的是什麼。
但第 3 點所提到那位同學忽略了一些事。
資訊的世界,不是 TRUE ,就是 FALSE,只有 0 與 1;擔任主管,就要處理人的問題,人的世界存在許多灰色地帶,沒有絕對的是非黑白。
擔任基層員工,你只需要對主管負責,你的競爭者只是同部門的同事;擔任企業經營者,你要對員工、股東負責,競爭者有一大票,還包含現有的與未來的新進。

綜觀以上 3 點,加上第 4 點,就是這篇文章的總結:

  • 人貴知足,知足才能常樂、惜福。
  • 作決定前,多作觀察,多作思考,並不是所有的路都可以讓人走錯再回頭;即使能回頭,也是浪費了自己的時間,自己的本錢。
  • 抱怨無法解決問題,解鈴還須繫鈴人。
  • 身邊的人、未來的路,都是自己選的,人要勇於承擔責任、承受現在與未來的狀況;各人造業各人擔。
  • 人在作,天在看,別人也在看。

By Joe Horn • Life, Thoughts 0

12 月 18 2010

是可忍,孰不可忍?

幾天前,有個熱心的網友寄信通知我,說我在 2005 年貼的 解決檔案無法刪除的軟體 – Unlocker ,圖片跟部份文章內容被盜用。
到該頁面看,還真不知道該怎麼說…

我寄信通知對方,請對方處理…
對方有回信,不過我對他目前提出來的作法不甚滿意…

附註:

  1. 有人有興趣的話,可以拿去比照 盜圖者,剛剛賠了我十一萬 的方式處理,獲益歸他。 XD
  2. 話說,我還發現了這串有趣的資訊。盜圖、文者似乎是新竹某公司的人?
    Domain Name: itmaster.tw
    
       Contact:
          jackcal
          [email protected]
    
       Record expires on 2011-07-18 (YYYY-MM-DD)
       Record created on 2008-07-18 (YYYY-MM-DD)
    
    Registration Service Provider: TISNET

By Joe Horn • Life 3 • Tags: itmaster, jackcal

11 月 19 2010

[PHP] BC Math 的妙用

最近用 PHP 開發某個 service 介面,來貼個心得。

這個 service 介面允許呼叫者使用 HTTP POST 欄位與 JSON 兩種方式傳進變數,處理儲存在 MySQL 資料庫裡面的資料,並以 JSON 作為輸出資料的格式。

為了避免被鑽漏洞,以及排除錯誤的資料,這個系統必須檢查每一個傳進來的參數是否正確。
但某些資料表的 ROW_ID 是 unsigned BIGINT,我必須另外考慮 32-bit 與 64-bit 平台的差異。

因為 PHP 的 intval 有這段說明:

The maximum value depends on the system. 32 bit systems have a maximum signed integer range of -2147483648 to 2147483647. So for example on such a system, intval(‘1000000000000’) will return 2147483647. The maximum signed integer value for 64 bit systems is 9223372036854775807.

所以,PHP 的 intval 是不能用的。

於是,我就動起了 BC Math 的歪腦筋。
由於 SQL statement 是字串,我不需要顧慮變數型態,可以直接把原本檢查 ROW_ID 的這段 code:

$Id = intval( $Input['id'] );
if ( empty($Id) ) {
	// Output error message
	exit();
}

改成這樣:

$Id = bcadd( "{$Input['id']}", "0" );
if ( empty($Id) ) {
	// Output error message
	exit();
}

PS 1. 傳入負值不用管,因為 ROW_ID 已經 unsigned 了,不會有影響。
PS 2. ROW_ID 的輸出也可以不用管,因為 query 出來的資料型態都是 string。

By Joe Horn • PHP 0 • Tags: JSON, MC Math, PHP

11 月 7 2010

當搭載 GPS 的相機遇上 Google Picasa

前一陣子入手了 Panasonic ZS7,一直到昨天出遊,拍了不少照片,才真正體驗搭載 GPS 的旅遊相機的好處。

如下面這些螢幕擷圖,Google Picasa 完美地整合了 Google Maps,在右邊的區塊中標示出拍照的地點。

若是選擇了相片的資料夾,則會把所有的地圖標記都顯示出來:
Picasa + Panasonic ZS7 GPS-1

新社蓮園:
Picasa + Panasonic ZS7 GPS-2

新社花海:
Picasa + Panasonic ZS7 GPS-3

惠來谷關溫泉會館:
Picasa + Panasonic ZS7 GPS-4

台中茹絲葵:
Picasa + Panasonic ZS7 GPS-5

By Joe Horn • Life 5 • Tags: Google Maps, Google Picasa, GPS, Panasonic, ZS7

10 月 29 2010

灰色顏料

從大學時期開始,因為外宿的關係,
我開始全權經手自己的生活起居。

由於每個月都是父母供應固定的生活費,
我脫離了以往「吃飯不知米價」的生活。

我不是生在富貴人家,所以我開始壓抑自己的慾望。

我發現…
我會習慣地… 壓抑自己的慾望與衝動。
我會理性地… 思考自己的需要與風險。
漸漸地,身為人類應有的感性,在我體內的含量愈來愈少…

於是,就如同事說的..
我的是非黑白太過分明。

我不知道… 這樣是好,還是壞?
我只知道… 過與不及,都不是好事。

誰能給我一些灰色顏料呢?
我覺得我很需要它。

By Joe Horn • Life, Thoughts 4 • Tags: Feeling

10 月 26 2010

時常轉寄信件,散播資訊的人請注意

這兩個月收到了兩封人家轉發(轉寄)訊息的信件,都是讓我不愉快的。 (怒)
既然不愉快,我也不覺得我應該客氣,直接來看看這兩封信吧(點圖放大)。

第一封:
FwdMail-Jovian

第二封:
FwdMail-Sophia

轉寄信件,協助傳遞訊息固然是好意。
但是… 直接把親朋好友的 E-mail 位址放在收件人,卻是(讓我認為)非常愚蠢的作法。

麻煩那些時常轉寄信件,散播資訊的人注意一下。
轉寄這類的信件,請把親朋好友的 E-mail 位址放在密件副本(Bcc)裡面吧。

PS. 如果我要把 E-mail 位址賣給廣告信件發送者,一個 E-mail 位址算兩塊錢的話,這兩封信件可以讓我的口袋增加個五百塊左右吧?! 8-)

By Joe Horn • Life, Mail 1 • Tags: Bcc, E-mail, Forward, Mail

9 月 8 2010

PHP 讓人詬病的系統安全性

這篇討論的不是 PHP Web 的安全相關議題,而是 Web server 管理者應該考量的系統安全議題。XSS、SQL injection 屬於前者,防禦的對象是網頁的瀏覽者;而這篇討論的防禦對象是經常被忽略的 PHP 網頁系統開發人員。

很多人都知道,PHP 屬直譯語言。因為不需要編譯,所以程式碼幾乎可以說是裸露的;除非用 ionCube PHP Encoder 這類的產品作加密,否則,開發人員只要有程式檔案的存取權,就可以看到程式碼。
現今,幾乎所有的 PHP 網頁系統都使用了後端資料庫,而資料庫存取的設定也都是寫在 PHP 程式碼裡面,類似以下這樣:

define( 'DB_SERVER' ,		'localhost' );
define( 'DB_SERVER_USERNAME' ,	'db_username' );
define( 'DB_SERVER_PASSWORD' ,	'db_password' );
define( 'DB_DATABASE' ,		'db_name' );

再透過 require()、require_once()、incluce()、include_once() 等設定檔引入。
如果這個設定檔的路徑沒有在 include_path 系統變數中,引入的方法大概會是這樣:

require_once( '/SOME/WHERE/DB_SETTING.php' );

這樣的系統意味著,有心的程式開發人員可以透過以下這一行程式,輕易取得資料庫存取設定:

echo file_get_contents( '/SOME/WHERE/DB_SETTING.php' );

若是 /SOME/WHERE 被放入 include_path 系統變數,程式開發人員可以透過以下的程式碼引入資料庫存取設定:

require_once( 'DB_SETTING.php' );

雖然以下的程式碼已經無法取出資料庫存取設定:

echo file_get_contents( 'DB_SETTING.php' );

但遇到以下這種程式碼依然是破功:

$paths = explode( ':' , ini_get( 'include_path' ) );

foreach ( $paths as $path ) {
  $file_str = $path . DIRECTORY_SEPARATOR . 'DB_SETTING.php';

  if ( file_exists( $file_str ) ) {
    echo file_get_contents( $file_str );
  }
}

即使設定 auto_prepend_file(之前的文章有提過),或是採用 Autoloading classes,這種問題依然存在。

根本的解決方法就是用 ionCube PHP Encoder 這類的產品作加密,或是用 C 語言撰寫 PHP extension。
很無奈.. 但卻是一針見效。 :-P

By Joe Horn • PHP, Thoughts 0 • Tags: PHP, security

«‹ 5 6 7 8›»

Site Info

All content on this Blog is licensed under CC BY-NC-SA 4.0

About Me

profile for Joe Horn at Stack Overflow, Q&A for professional and enthusiast programmers


My mail!

獅子座

Coffee Powered!

F1 fans

motoGP fans

Linkin Park

I am a Taiwanese!

Recent Comments

  • Avatar of johnpupu johnpupu: PHP 還有這個 phpsavant.c……
  • Avatar of Jerry Jerry: 这个不是foreach的问题。 0 ==……
  • Avatar of Joe Horn Joe Horn: 看來問題在 if ... else ..……
  • Avatar of jnlin jnlin: 因為 'b' 被轉型成 0 了…
  • Avatar of 路人 路人: 跟 foreach 沒有關係 ?…
  • Avatar of bill bill: 註冊表那裡要設定 BasicAuthLe……
  • Avatar of 虫 虫: .svn 的檔案減少可以增加在 wind……
  • Avatar of mars mars: 如果說寫程式是理性極致的話,那寫小說就是……
  • Avatar of Joe Horn Joe Horn: 已更新文章。…
  • Avatar of jackcal jackcal: joehorn.idv.tw關於轉貼 h……

Post Categories

  • About My Sites (16)
  • Computer Hardware (28)
  • Computer Software (45)
  • Database (23)
  • FreeBSD (21)
  • Funny (14)
  • Life (23)
  • Linux (5)
  • Mail (19)
  • Network (12)
  • Programing (40)
    • .NET (5)
    • JAVA (2)
    • Javascript (6)
    • PHP (29)
  • Thoughts (34)
  • Windows (13)
  • WWW (79)
    • phpBB (7)
    • WordPress (18)

Blogroll

  • 這裡沒有美食

Tags Cloud

AMD Apache benchmarking Bloglines Coppermine DNSBL eAccelerator fio Firefox free FreeBSD Gmail Google HDD Hsin-chu HTTPS IE Intel Javascript Lenovo Longhorn Microsoft MSN MySQL Office Percona XtraBackup performance PHP phpBB pirate Postfix restaurant RSS security sendmail software SpamAssassin SSL Subversion Taiwan theme translation Windows WordPress Yahoo

Ads

↑

© Joe Horn 的啟示錄 2025
Powered by WordPress • Themify WordPress Themes