Joe Horn 的啟示錄
Joe Horn's Blog
  • About.me
  • Facebook
  • Flickr
  • GitHub
  • Instagram
  • LinkedIn
  • Pinterest
  • Slideshare
  • Twitter
  • YouTube
  • Tumblr
RSS
  • All Posts
  • 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
...略...

分享此文:

  • Tweet

By Joe Horn • Computer Software • 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 上傳照片到我自己的網路相簿。
有需要的人可以試試。

分享此文:

  • Tweet

By Joe Horn • Computer Software, Windows • 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-)

分享此文:

  • Tweet

By Joe Horn • Programing • 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 點,就是這篇文章的總結:

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

分享此文:

  • Tweet

By Joe Horn • Life, Thoughts

12 月 18 2010

是可忍,孰不可忍?

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

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

附註:

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

分享此文:

  • Tweet

By Joe Horn • Life • 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。

分享此文:

  • Tweet

By Joe Horn • PHP • 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

分享此文:

  • Tweet

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

10 月 29 2010

灰色顏料

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

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

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

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

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

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

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

分享此文:

  • Tweet

By Joe Horn • Life, Thoughts • Tags: Feeling

10 月 26 2010

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

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

第一封:
FwdMail-Jovian

第二封:
FwdMail-Sophia

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

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

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

分享此文:

  • Tweet

By Joe Horn • Life, Mail • 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

分享此文:

  • Tweet

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

«‹ 3 4 5 6 7 ›»

Site Info

本站小貼紙
本站小圖
There are lots of zh_TW words encoded with UTF-8 in this Blog.
創用 CC 授權條款
本站所有內容係採用創用 CC Attribution-NonCommercial-NoDerivatives 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 (17)
  • Computer Hardware (24)
  • Computer Software (45)
  • Database (20)
  • FreeBSD (21)
  • Funny (14)
  • Life (23)
  • Linux (4)
  • Mail (19)
  • Network (11)
  • Programing (40)
    • .NET (5)
    • JAVA (2)
    • Javascript (6)
    • PHP (29)
  • Thoughts (34)
  • Windows (13)
  • WWW (78)
    • phpBB (7)
    • WordPress (18)

Blogroll

  • 哈寶的 Blog
  • 這裡沒有美食
  • ケロン軍團戰略室 (INGRESS)
  • 小麻的 Blog
  • RB susu 的 Blog
  • DK Moto Club
  • 日落的 Blog
  • 小恬的 Blog
  • ziway 的 Blog
  • Huckly 的 Blog

Tags Cloud

AMD Apache Blog Bloglines Coppermine DNSBL domain name eAccelerator extension Firefox Formula 1 free FreeBSD Gmail Google HDD Hsin-chu IE Intel Javascript Lenovo Longhorn Microsoft MSN MySQL Office PCHome performance PHP phpBB pirate Postfix restaurant RSS sendmail software SpamAssassin Subversion Taiwan theme translation Wiki Windows WordPress Yahoo

Ads

↑

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