Pages

2010年7月20日星期二

過期域名購得


架網站的一定會想要個好名字,有了好名字當然要弄個好域名,這才叫完整,可惜,想要的域名一定是不夠用的,尤其是英文單詞那種,又或著是4個字以下,5、6個字又有點意思便更加難求,所以想建一個網站,也未必能購得想要的網站。

因此,除了搶手的英文單詞域名之外,近年還興近義的本地化域名,就是和本地方言有連繫的詞語,口頭語或者中文拼音,都已經開始普遍使用了,像淘寶、百度那些,都是玩這種拼音。

如果執著於網址長短,一定要弄個超短的,其實還是有方法的,不過聲明,4個字那些就不要浪費時間,那些賣域名的一定比你還下苦功。我們都知道域名是有期限的,有些網主忘記了續期,那自然是放棄了域名的擁有權,那這些網站便可以又拿出來給人注冊了,有很多玩網站的都會對那些Page rank高的網站流口水,只要把網站往這些肥田上一放,什麼蜘蛛都會去找你。

說了那麼多,還是回正題吧,想找個短的網址,首先用google找一些發放過期DOMAIN的網頁,通常有保護期,好像十幾天至幾個月,不過很多人都比你早一步搶先注冊了,那就看看剩下的還有沒有你想要的域名。我說說我的做法:

1. 用PHP寫一個抓取網頁的爬蟲,把所有5個字的DOMAIN擷取下來,為什麼不取4個字那些,我試過了,一個也不留給你。
2. 有了域名列表給,找一個可以大量檢查域名的網站,再用PHP CURL寫一個POST的程式,把域名掉去檢查一下,返回是可用的便用你的方法記住。

我粗略試了一下,也拿下了幾千個可以用的域名,不過都沒什麼意思,但總得拿點紀念品,所以註冊了個域名,看看什麼時候興起架一個網站,又或者打造成肥田也是很不錯的。 ... Read more!

2010年7月14日星期三

日本代bid 代購 程式開發日誌

日本 代bid 代購 Japan Bid, ProBidJP
這種系統花了我很多時研究,基本上放棄在其它網頁技術,像網頁遊戲開發、網絡安全研究、爬蟲系統應用... 懷念啊! 有得必有失,先看眼前吧。

經過長期的運作,不斷的修正,能遇上問題已經遇上了,基本已經成型和穩定,要修改的話也難度不大了,主要的變數就剩下數據平衡的問題,這個要到了一定的程度才能夠構成問題,所以未到那個時候還是問題不大(廢話...)。

拿個例子來說,像ProBidJP 支援客人直接在日本yahoo下標,更可以提供預設時間下標的程序,在智能下標算法上還有進步的空間。這些表面的要實現的難度不大,朋友一提要求,我當天就寫了個程式在香港yahoo拍賣成功自動競標,這種自助下標的網頁應用程式最主要的還是後台管理,那是寫不完的,像自動檢測競標的情況,自動用SMS提示客戶貨品的狀態,當然還有一些深層技術就不多說了,穩定之後就會求變,那追求的是速度和準確性,還有最重要的方便性,一個全智能的系統,粗略估計能省下幾個天天坐在那裡幫客人盯著Yahoo貨品狀態又或者隨時打來下單的客人,加入智能和專家系統,那人力資源肯定要省不少,不過開發的成本要注意了。

所以說,懂技術,用技術,玩技術,那才好玩。
... Read more!

2010年7月10日星期六

Blogger 小修改 read more, Facebook share, Tweet this, Plurk, Google buzz, Yahoo buzz, tag cloud

FaceTech
經常用到Blogger,因為是google出品,可以綁定自已的域名,又可以加入一大堆功能,自由度還是很大的,最緊要是免費,但又可靠,下面是一些收集回來的小技巧,當備忘吧。

首先備份你的template

繼續閱讀 (Read More) :
1. 尋找]]></b:skin>,在後面與<head>之間貼上

<b:if cond="data:blog.pageType == &quot;item&quot;">
<style type="text/css">
span.fullpost {display:inline;}
</style>
<b:else>
<style type="text/css">
span.fullpost {display:none;}
</style>
</b:else>
</b:if>

2. 再用搜尋功能找到<data:post.body>這行,把下列語法置於其後

<b:if cond="data:blog.pageType != &quot;item&quot;">
<a expr:href="data:post.url"><br>Read More...</a>
</b:if>

3.用法 <span class="fullpost">隱藏的內容</span>

顯示代碼:
1. 尋找]]></b:skin>,在後面與</head>之間貼上

CODE {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 8pt;
overflow:auto;
background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:200px;
height:200px; // for IE6
line-height: 1.2em;
}

2. 用法 <code>代碼</code>

分享文章到facebook,twitter,google buzz, yahoo buzz,pluk
1. 尋找 <div class='post-footer-line post-footer-line-1'>
,在後面貼上


<div style='padding-right:20px;'>
<div style='float:right;padding:0 10px;'>
<a expr:share_url='data:post.url' name='fb_share' rel='nofollow' type='button_count'/>
<script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'/>
</div>

<div style='float:right;padding: 0 10px;'>
<a class='google-buzz-button' data-button-style='small-count' data-locale='zh_TW' expr:data-url='data:post.url' href='http://www.google.com/buzz/post' rel='nofollow' title='Post on Google Buzz'/>
<script src='http://www.google.com/buzz/api/button.js' type='text/javascript'/>
</div>

<div class='yahoobuzz' style='float:right; margin: 0 10px;'>
<script badgetype='text-votes' src='http://d.yimg.com/ds/badge2.js' type='text/javascript'>data:post.url</script>
</div>

<script>
function toTwitter(title,link) {
window.open(&#39;http://twitter.com/home/?status=&#39;+title+&#39; &#39;+link);
}
</script>
<div style='float:right;background: url(http://lh6.ggpht.com/_xn2gmPb9TfM/Sb_fZkjAxpI/AAAAAAAAD3E/_9xpsQgFfTg/s128/twitter-16x16.png) left no-repeat;padding-left:15px;mrgin:0 10px'>
<a expr:onclick='&quot;javascript:toTwitter(\&quot;&quot; + data:post.title + &quot;\&quot;, \&quot;&quot; + data:post.url + &quot;\&quot;);&quot;' href='javascript:void(0)'>Tweet</a></div>
<script>
function toPlurk(title,link) {
window.open(&#39;http://www.plurk.com/?status=&#39;+title+&#39; &#39;+link);
}</script>
<div style='float:right;background: url(http://www.zen.tw/wp-content/themes/arthemia/images/sociable/plurk.png) left no-repeat;padding-left:18px;padding-right:10px;mrgin: 0 10px'>
<a expr:onclick='&quot;javascript:toPlurk(\&quot;&quot; + data:post.title + &quot;\&quot;, \&quot;&quot; + data:post.url + &quot;\&quot;);&quot;' href='javascript:void(0)'> Plurk</a></div>

</div>
<br/>


標籤雲 (Tag Cloud / Label Cloud)
1. 尋找]]></b:skin>,在前面貼上

/* Label Cloud Styles
----------------------------------------------- */
#labelCloud {text-align:center;font-family:arial,sans-serif;}
#labelCloud .label-cloud li{display:inline;background-image:none !important;padding:0 5px;margin:0;vertical-align:baseline !important;border:0 !important;}
#labelCloud ul{list-style-type:none;margin:0 auto;padding:0;}
#labelCloud a img{border:0;display:inline;margin:0 0 0 3px;padding:0}
#labelCloud a{text-decoration:none}
#labelCloud a:hover{text-decoration:underline}
#labelCloud li a{}
#labelCloud .label-cloud {}
#labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000}
#labelCloud .label-cloud li:before{content:"" !important}


2. ]]></b:skin> 和 </head> 之間加入

<script type='text/javascript'>
// Label Cloud User Variables
var cloudMin = 1;
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>


3. 尋找 <b:widget id='Label1' locked='false' title='Labels' type='Label'>
並取替

<b:widget id='Label1' locked='false' title='Label Cloud' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>

<div class='widget-content'>
<div id='labelCloud'/>
<script type='text/javascript'>

// Don't change anything past this point -----------------
// Cloud function s() ripped from del.icio.us
function s(a,b,i,x){
if(a&gt;b){
var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m)
}
else{
var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m+a)
}
return v
}


var c=[];
var labelCount = new Array();
var ts = new Object;
<b:loop values='data:labels' var='label'>
var theName = &quot;<data:label.name/>&quot;;
ts[theName] = <data:label.count/>;
</b:loop>

for (t in ts){
if (!labelCount[ts[t]]){
labelCount[ts[t]] = new Array(ts[t])
}
}
var ta=cloudMin-1;
tz = labelCount.length - cloudMin;
lc2 = document.getElementById('labelCloud');
ul = document.createElement('ul');
ul.className = 'label-cloud';
for(var t in ts){
if(ts[t] &lt; cloudMin){
continue;
}
for (var i=0;3 &gt; i;i++) {
c[i]=s(minColor[i],maxColor[i],ts[t]-ta,tz)
}
var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);
li = document.createElement('li');
li.style.fontSize = fs+'px';
li.style.lineHeight = '1';
a = document.createElement('a');
a.title = ts[t]+' Posts in '+t;
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
a.href = '/search/label/'+encodeURIComponent(t);
if (lcShowCount){
span = document.createElement('span');
span.innerHTML = '('+ts[t]+') ';
span.className = 'label-count';
a.appendChild(document.createTextNode(t));
li.appendChild(a);
li.appendChild(span);
}
else {
a.appendChild(document.createTextNode(t));
li.appendChild(a);
}
ul.appendChild(li);
abnk = document.createTextNode(' ');
ul.appendChild(abnk);
}
lc2.appendChild(ul);
</script>

<noscript>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
</noscript>
<b:include name='quickedit'/>
</div>

</b:includable>
</b:widget>


... Read more!

2010年7月7日星期三

智能MSN機器人 : Smart B



前一段日子看了太多的科幻片,便想弄一個機器人秘書來幫我記一記事。

原來的構思是想簡單的建立一個MSN機器人,打些特定的指令去執行Server side程式,返回一些結果便算,但弄好後又覺得它沒反應,研究了一下會對答的機器人的例子,挑了用AIML結構的ALICE BOT來實現我的功能。

這些BOT其實是用大量的PATTERN建立的數據庫,也就是它們的腦袋,只要數據庫夠大夠多,他能夠對答得更像一個"人",它還會學習,自動產生智識,感覺好像很好玩。

因為我挑的是PHP做為開發語言,它的原生程序和預設的大腦也只有英文,所以想造一個會說中文的機器人也有一定難度,需要改程式支援UTF-8之外,中文和英文的結構也不一樣,而且建立一個中文數據庫,需要的資料弄起來一定花不少時間。

所以我的SmartB在中文方面只懂打招呼和記住名字。暫時加入的功能: 自動提醒,翻譯、Todo list、縮短網址、查詢股市、看新聞、檢查英文拼字、查wiki、說笑話、中英文語音。我想結合專家系統的概念,它應該更耐人尋味。

現在正找朋友測試中,有興趣的可以加入。

參考網站:
Google AIML
Java例子: http://lcllcl987.javaeye.com/blog/473256
大腦文件 (AIML Sets): http://www.alicebot.org/downloads/sets.html
處理中文方法: http://www.czug.org/blog/eishn

圖片來源: http://www.highposition.net/
... Read more!

2010年7月6日星期二

Blogger 新版登入問題



今天想試試用一下自製Blogger做一做SEO,因為很久沒有拿出來用的關係,不知道Blogger登入的方法已經改變了,它必須通過google登入畫面才能夠使用blog服務。google的雲端技術整合步伐看來走得很快。

換言之,我的自動登入和快速發文的功能便廢了,又要重新研究google 的登入方式,還是算了吧,直接去用官方blogger的API比較安全,一開始試了一下PHP版本的,因為要用zend library,要設定一下PHP include path,看read me就能搞掂。直接運行demo便能看到API如何在你的blog發新帖、更新和刪除的功能,不過我找不到如何新增Label的方法,唯有轉用javascript 的API,除了必須要用一個介面來執行之外,其它沒什麼問題。

當解決了問題吧(好像有的逃避的感覺),那試一試JAVA版本吧,寫個android X blogger的工具也不錯,只是有多少人會用而已。

幸好,Yahoo 和 Xanga 的還沒變,否則又要重新來過...
... Read more!

2009年12月19日星期六

關於CPHK

CPHK 是我中學時創立的網站,少不更事,把時間花在這玩意上,幸虧還能大學畢業,這東西就繼續留著吧。 ... Read more!