google adsense 嚴重拖慢了我的網站讀取速度

最近不知怎麼回事,
所有放置GOOGLE ADSENSE的網站都變得很慢,
起初以為是SERVER的問題,
但把ADSENSE拿掉之後, 網站就恢復原本的速度了,
在GOOGLE上面搜尋, 似乎也沒有很多人跟我遇到一樣的狀況.
到底是怎麼回事呢?
發生的日期從上個星期開始就變成這樣~

從GOOGLE ADSENSE的討論區看到解決方法是:

<div id=”googlead2″ width=”728″ height=”90″></div>
   <div id=”googleadcode2″ style=”display:none”>
   //GOOGLE ADNSENSE程式碼
</div>
<script language=”javascript”>
if(document.all.item(“googlead2”) != null)
{
googlead2.innerHTML = googleadcode2.innerHTML;
}
</script>

但似乎還是無法解決拖慢的問題, 現在只好把GOOGLE的廣告都暫時拿掉了~

Linux 系統排程 執行 PHP

1. 在linux輸入指令: crontab -e 進行系統排程編輯模式

2. 格式大概如下, 前面5個欄位分別是是執行的日期時間(分 時 日 月 年), 後面的路徑是要執行的程式, 以下的意思是指每天的凌晨12點會執行一次此程式:

 0 0 * * * /usr/local/www/awstats/cgi-bin/awstats.sh

3. 現在我們要排程執行PHP網頁, 因此需要用LINUX的PHP程式來執行PHP網頁, 指令如下:

30 23 * * * /usr/local/bin/php /home/xxx/public_html/mytesting.php >> /host/cron.log 2>&2

以上的指令含意是, 每天的晚上11點30分會使用PHP程式(路徑在/usr/local/bin/)來執行PHP網頁(路徑在/home/xxx/public_html/), 而後面的意思是執行完畢後的紀錄檔會延伸儲存在 /host/cron.log 裡面, 讓你知道執行的結果, 否則執行的狀況你是沒辦法直接看到的.(使用 * 的意思是不管何年何月何日, 若指定日期, 那就表示只會在該日期執行一次) 所以若要系統每天固定時間內替你執行程式, 就要把格式寫清楚囉, crontab的時間格式如下:

field              allowed values
—–             ————–
minute            0-59
hour               0-23
day of month   1-31
month            1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

 若想知道更詳細的資料, 可以輸入 man 5 crontab, 參考詳細的說明. 除此之外, 要例行執行程式, 寫法也可以如下:

string            meaning
——           ——-
@reboot        Run once, at startup.
@yearly         Run once a year, “0 0 1 1 *”.
@annually      (same as @yearly)
@monthly       Run once a month, “0 0 1 * *”.
@weekly        Run once a week, “0 0 * * 0”.
@daily           Run once a day, “0 0 * * *”.
@midnight      (same as @daily)
@hourly         Run once an hour, “0 * * * *”.

如果我想要每分鐘執行一次, 要怎麼寫?

*/1 * * * * /usr/local/bin/php /home/xxx/public_html/mytesting.php >> /host/cron.log 2>&2

*/1 就是讓你連續每分鐘執行一次的關鍵寫法.

FLASHPLAYER尚未支援 IE8 64位元版本

今天興致勃勃將IE8下載來安裝看看,

竟然發現IE8 64位元版本沒辦法看到FLASH?!

ADOBE官方網站給於的公告是:

Flash Player support on 64-bit operating systems

[市佔率調查]作業系統, 瀏覽器, 使用者顯示器解析度, etc

身為一個IT人員,經常都需要設計軟體或者其他服務給End-user,
End-user使用的作業系統就不只一種了,
更何況還有多種版本的瀏覽器, 手機系統, 搜尋引擎等等,
就連使用者使用的顯示器解析度常常也是網頁設計人員的考量,

那我們要如何知道目前市場上每個軟硬體的市場佔有率呢? 究竟這些數據要從哪裡取得呢?
以下網站將讓您不管在研究上, 或者設計上有相當大的幫助:

http://marketshare.hitslink.com/

  1. 顯示器
    以顯示器的解析度為例, 截至2009年2月為止,
    市場上使用1024X768的使用者占了35.25%, 而1280×1024占了20.28%,
    http://marketshare.hitslink.com/report.aspx?qprid=17
    所以在您設計網站的時候, 框架的大小就要好好考量了, 因為並不是所有人的電腦或顯示器都跟你的一樣喔~
  2. 以瀏覽器為例, 截止2009年2月為止,
    IE 的市占率占了67.44%, FF的占了21.77%, SAFARI居第三,是8.02%, GOOGLE CHROME居第四, 只有1.15%.
    http://marketshare.hitslink.com/browser-market-share.aspx?qprid=0
    若您想看趨勢的話, 網站也直接幫你分析了喔~
    http://marketshare.hitslink.com/browser-market-share.aspx?qprid=1
    從上圖來看, 可以發現FF有不斷提升的趨勢, 正逐漸要吃掉IE的原本占的大餅了. 而SAFARI與CHROME則保持在平穩的狀態。
  3. 作業系統方面,從趨勢來看,MAC與Linux正逐漸提升(MAC較明顯),而Windows從2003年開始下滑,一直到2008年還低過了90%以下, 截至2009年2月, Windows占了市場的88.41%, 未來是否會繼續下滑呢? 我們就要看WINDOWS 7的造化了。
    http://marketshare.hitslink.com/os-market-share.aspx?qprid=9
  4. 搜尋引擎方面, 以GOOGLE居冠, 占了81.57%, YAHOO占了10.07%, MSN只有2.97%
    http://marketshare.hitslink.com/search-engine-market-share.aspx?qprid=4

雖然不能肯定此網站之數據一定為真, 但在各方面都還是有參考的價值, 跟大家分享.

好用GD教學網站

想在您的WEB APPLICATION加入GD的功能嗎?

想要自己做出漂亮精緻的報表嗎?

那就要好好學習GD了, 它是跟PHP搭配得非常棒的圖像模組,

若您已經對PHP瞭如指掌,那學習GD將會讓您的WEB程式設計功力更加大增.

以下網站將GD的功能與教學都說明得很清楚, 若您是GD入門者, 這個網站將非常適合您.

http://www.nyphp.org/content/presentations/GDintro/gd1.php

GD 管方網站: http://www.boutell.com/gd/

網站設計心得

如何才可以成為一個合格的網站設計師?
設計出來的東西要像歌手一樣擁有自己的特色, 避免被別人取代嗎?
或是像藝術家的作畫風格, 堅持自己的藝術特色?

答案是否定的, 這些日子來行走網頁設計這行,
感覺到你越是堅持自己的風格, 就越容易遭到客戶的排斥,
設計並不是看自己的美感, 而是看你是為了誰而設計,
你的客戶永遠是最大的, 你覺得好看的東西他們不一定覺得好看,
甚至有時候那種落差會讓你無法置信…

你可能很滿意你花了幾個鐘頭做出來的作品, 但在客人眼中卻是絕世醜物,
你可能只花了幾分鐘做出來的東西, 自己不屑一顧, 但客人卻非常滿意…
客人不會理會你用了甚麼超強技術在裡面, 他們只要你做出來的東西符合他們的胃口,
客人不管你用了甚麼設計特色, 他們只要自己覺得好看, 就認為所有人也一樣跟他們認為好看…
(也許客戶都秉持著: 自己都覺得不好看了, 別人怎麼可能會覺得好看?)
等到有一天他們當設計師的時候, 就知道越是相信自己就越碰釘子.

世界上的人很多, 網頁設計師不能堅持自己的風格,
而是要想辦法做出任何一種特色的網頁(跟創作歌手, 跟藝術設計不同),
你會做的風格越廣泛, 就能夠招徠各種眼光的客戶,
年輕人喜歡大膽的設計, 酷炫的設計, 精彩的設計,
中年人喜歡老土的設計, 簡單的設計, 大大的字!!!

若你只滿足部分人的胃口, 那表示你只能賺得到部分人的錢.

Solution to replace MYSQL “ORDER BY RAND()”

Some of you might be using the following directive to do Random Picking from your MYSQL database, which is mysql_query(“SELECT * FROM table ORDER BY RAND() LIMIT 10″);

However, It is not a good way if your website is in a high-flow-situation, Using such directive might causing a big loading in your hosting machine, here’s the alternative way to replace such directive, (special thanks to Nicky Soo for providing this method),

The code should be look like this:

mysql_query(” SELECT *
FROM news AS r1 JOIN
(SELECT (RAND() *
(SELECT MAX(newsid) FROM news)) AS newsid) As r2
WHERE `display` =1
AND r1.newsid >= r2.newsid
AND r1.counter >50
LIMIT 0 , 10  “)

Cheers!

PHP 日曆

<?php

//This gets today’s date
$date =time () ;

//This puts the day, month, and year in seperate variables
$day = date(‘d’, $date) ;
$month = date(‘m’, $date) ;
$year = date(‘Y’, $date) ;

//Here we generate the first day of the month
$first_day = mktime(0,0,0,$month, 1, $year) ;

//This gets us the month name
$title = date(‘F’, $first_day) ;

//Here we find out what day of the week the first day of the month falls on
$day_of_week = date(‘D’, $first_day) ;

//Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the week is a Sunday then it would be zero
switch($day_of_week){
case “Sun”: $blank = 0; break;
case “Mon”: $blank = 1; break;
case “Tue”: $blank = 2; break;
case “Wed”: $blank = 3; break;
case “Thu”: $blank = 4; break;
case “Fri”: $blank = 5; break;
case “Sat”: $blank = 6; break;
}

//We then determine how many days are in the current month
$days_in_month = cal_days_in_month(0, $month, $year) ;

//Here we start building the table heads
echo “<table id=wp-calendar summary=Calendar>”;
echo “<CAPTION>$title $year </CAPTION>”;
echo “<tr>
<TH title=Monday scope=col abbr=Monday>M</TH>
<TH title=Tuesday scope=col abbr=Tuesday>T</TH>
<TH title=Wednesday scope=col abbr=Wednesday>W</TH>
<TH title=Thursday scope=col abbr=Thursday>T</TH>
<TH title=Friday scope=col abbr=Friday>F</TH>
<TH title=Saturday scope=col abbr=Saturday>S</TH>
<TH title=Sunday scope=col abbr=Sunday>S</TH>”;

//This counts the days in the week, up to 7
$day_count = 1;

echo “<tr>”;
//first we take care of those blank days
while ( $blank > 0 )
{
echo “<td></td>”;
$blank = $blank-1;
$day_count++;
}

//sets the first day of the month to 1
$day_num = 1;

//count up the days, untill we’ve done all of them in the month
while ( $day_num <= $days_in_month )
{
if($day_num == $day) {
echo “<td id=today> $day_num </td>”;
} else {
echo “<td > $day_num </td>”;
}
$day_num++;
$day_count++;

//Make sure we start a new row every week
if ($day_count > 7)
{
echo “</tr><tr>”;
$day_count = 1;
}
}

//Finaly we finish out the table with some blank details if needed
while ( $day_count >1 && $day_count <=7 )
{
echo “<td> </td>”;
$day_count++;
}

echo “</tr></table>”;

?>

float:left 在IE及FF的使用

很多時候我們需要做出同一頁面有二到三個欄位的排版, 除了使用table劃分外, 另外一種常見的方式是使用float: left, 將div 定義為float:left可以使division之間會自動向左靠, 若因大小限制而擠不進, div會自動移到下一行, 所以您只要定義好div之間的大小就可以達成column-column的排版. 然而, 在IE與FF實作時會發現有些不同點.

IE:

<div id=”parent”> <!– parent 不需定義大小, child1, child2 會自動插到parent裡面 –>

<div id=”child1″>  <!– float: left –>

<div id=”child2″> <!– float: left –>

</div>

FF:

<div id=”parent”>
<!– parent 一定要定義大小(width=”400px”), child1, child2 才會插到parent裡面, 否則height的呈現是會出現問題的 –>

<div id=”child1″>  <!– float: left –>

<div id=”child2″> <!– float: left –>

</div>