2013年7月

華為輪播圖

簡陋佈局

<div id="box">
    <ul>
        <li><img src="../img/hw-1.png" alt=""/></li>
        <li><img src="../img/hw-2.png" alt=""/></li>
        <li><img src="../img/hw-3.png" alt=""/></li>
    </ul>
    <div id="btn">
        <a href="javascript:;" class="active"></a>
        <a href="javascript:;"></a>
        <a href="javascript:;"></a>
    </div>
</div>

当可视区只有一张图片时,可使用该方法;当走完最后一张一个像素时;突然把第一张改为相对定位,放在最后面,即left值 = li.length * imgwidth; 当走完第一张时,再把相对定位取消,【重新放回第一位】:要点切换的视觉效果只是一个:最后一个到第一个之间;第一张图在static与relative之间切换;即在第一位与最后一位之间切换,视觉效果只为最后一张到第一张之间;

    window.onload = function () {
        var box = document.getElementById('box');
        var ul = box.getElementsByTagName('ul')[0];
        var li = ul.getElementsByTagName('li');
        var img = ul.getElementsByTagName('img');
        var btn = document.getElementById('btn');
        var a = btn.getElementsByTagName('a');
        var imgwidth = img[0].offsetWidth; //1920
        ul.style.width = imgwidth * img.length + 'px';

        toReSize();
        window.onresize = function () { //改變瀏覽器大小時
            toReSize();
        }
        function toReSize() {
            var vWidth = document.documentElement.clientWidth;//瀏覽器窗口大小
            if (vWidth > 1000) {    //可視區大小
                for (var i = 0; i < img.length; i++) {  //三個圖片都居中
                    img[i].style.left = -((imgwidth - vWidth) / 2 ) + 'px'
                } //圖片寬度 - 可寬區大小 的一半
            }
        }
        for (var i = 0; i < a.length; i++) {
            a[i].index = i//0,1,2
            a[i].onclick = function () {
                for (var i = 0; i < a.length; i++) { //清空全部
                    a[i].className = ''
                }
                this.className = 'active'//當前加
                startMove(ul, {left: -this.index * imgwidth})
            }
        }
        //自動播放 開定時器,找一個變量進行累加
        var iNow = 0;  //iNow 即可看作屬性,給定時器使用,同時也造成循環的條件 inow是循環按鈕的
        var iNow2 = 0;  // [最後到第一個的無縫切換]
        setInterval(toRun, 5000);
        function toRun() {
            if (iNow == a.length - 1) {
                //1、走到最後一個時,把第一個改成定位,即把第一個放在所有圖片後面  [最後到第一個的無縫切換]
                li[0].style.position = 'relative'
                li[0].style.left = li.length * imgwidth + 'px'
                iNow = 0;
            }
            else {
                iNow++   //需要判斷,不然3個後出錯
            }
            iNow2++ //再往後累加 [最後到第一個的無縫切換]
            for (var i = 0; i < a.length; i++) { //先還原按鈕
                a[i].className = ''
            }
            a[iNow].className = 'active';
            startMove(ul, {left: -iNow2 * imgwidth}, function () { //2、走完第一個時取消定位
                if (iNow == 0) {
                    li[0].style.position = 'static'
                    ul.style.left = 0; //拉回,還原之前的樣式
                    iNow2 = 0; //iNow2要循環不能一直累加。
                }
            }) // function (){} 鏈式操作 [最後到第一個的無縫切換]
        }
    }
*{margin:0;padding:0}#box{height:540px;position:relative;overflow:hidden}#box ul{position:absolute;left:0}#box ul li{list-style:none;float:left}#box ul li img{position:relative;left:0}#btn{position:absolute;width:100%;text-align:center;bottom:10px}#btn a{cursor:pointer;display:inline-block;width:11px;height:11px;background:#666;border-radius:50%}#btn .active{background:#fff}#btn a:hover{background:#fff}

運行

JS改進版:運行



JQ版,固定html,所謂帶點幼稚的封裝;

<div class="elmokSlide">
    <div class="hd">
        <ul></ul>
    </div>
    <div class="bd">
        <ul>
            <li><img src="http://elmok.com/img/mmb1.png" alt=""/></li>
            <li><img src="http://elmok.com/img/mmb2.png" alt=""/></li>
            <li><img src="http://elmok.com/img/mmb3.png" alt=""/></li>
        </ul>
    </div>
    <div class="pn">
        <a href="javascript:;"> < </a>
        <a href="javascript:;"> > </a>
    </div>
</div>

調用:

    var el = new Elmokslide('.elmokSlide')
    el.eslide({
        'hd': true, //底部點點點
        'lr': true, //左右方向
        'auto': true //自動播放
    })

JQ改進版:運行

韓雪輪播圖

原理

<div id='box'>1,2,3,4</div>
<input type="button" value="切換" id="input"/>
var box = document.getElementById('box')
var input = document.getElementById('input')
input.onclick = function(){
    var arr = box.innerHTML.split(','); //轉換為數組[1,2,3,4]
    arr.push(arr[0]) //第一項加到最後 [1,2,3,4,1]
    arr.shift() //刪除首項 [2,3,4,1]
    box.innerHTML = arr;
}

正式例子
簡陋佈局

<div id="div1">
    <a href="javascript:;" class="prev">←</a>
    <a href="javascript:;" class="next">→</a>
    <ul>
        <li class="pos_1"><img src="../img/h1.jpg" alt="" width="280"/></li>
        <li class="pos_2"><img src="../img/h2.jpg" alt="" width="380"/></li>
        <li class="pos_3"><img src="../img/h3.jpg" alt="" width="480"/></li>
        <li class="pos_4"><img src="../img/h4.jpg" alt="" width="580"/></li>
        <li class="pos_5"><img src="../img/h5.jpg" alt="" width="680"/></li>
        <li class="pos_6"><img src="../img/h6.jpg" alt="" width="580"/></li>
        <li class="pos_7"><img src="../img/h7.jpg" alt="" width="480"/></li>
        <li class="pos_8"><img src="../img/h8.jpg" alt="" width="380"/></li>
        <li class="pos_9"><img src="../img/h9.jpg" alt="" width="280"/></li>
        <li class="pos_10"><img src="../img/h10.jpg" alt="" width="180"/></li>
    </ul>
</div>
    window.onload = function () {
        var div = document.getElementById('div1')
        var li = div.getElementsByTagName('li')
        var a = div.getElementsByTagName('a')
        var arr = []; //放置需要改變的每張圖片的左寬透明度等;
        for (var i = 0; i < li.length; i++) {
            var img = li[i].getElementsByTagName('img')[0]
            arr.push([parseInt(getStyle(li[i], 'left')), parseInt(getStyle(li[i], 'top')), getStyle(li[i], 'opacity') * 100, getStyle(li[i], 'zIndex'), img.width])
        }
        a[0].onclick = function () {
            arr.push(arr[0]);//先把第一項放到後面  1,2,3,4,1
            arr.shift() //再刪除第一項   2,3,4,1
            for (var i = 0; i < li.length; i++) {
                var img = li[i].getElementsByTagName('img')[0]  //圖片需要重新獲取,不寫則錯亂
                li[i].style.zIndex = arr[i][3]  //更改透明度
                startMove(li[i], {left: arr[i][0], top: arr[i][1], opacity: arr[i][2]})  //加入運動函數
                startMove(img, {width: arr[i][4]})  //更改圖片寬度
            }
        }
        a[1].onclick = function () {
            arr.unshift(arr[arr.length - 1]);//最後一項放到第一位  4,1,2,3,4
            arr.pop() //再刪除最後一項   4,1,2,3
            for (var i = 0; i < li.length; i++) {
                var img = li[i].getElementsByTagName('img')[0]  //圖片需要重新獲取,不寫則錯亂
                li[i].style.zIndex = arr[i][3]  //更改透明度
                startMove(li[i], {left: arr[i][0], top: arr[i][1], opacity: arr[i][2]})  //加入運動函數
                startMove(img, {width: arr[i][4]})  //更改圖片寬度
            }
        }
    }
*{margin:0;padding:0}li{list-style:none;position:absolute;left:0;top:0;overflow:hidden}#div1{width:680px;margin:0 auto;position:relative;top:30px}.pos_1{opacity:.2;z-index:0;left:-200px}.pos_2{opacity:.4;z-index:0;left:-150px}.pos_3{opacity:.6;z-index:0;left:-100px}.pos_4{opacity:.8;z-index:0;left:-50px}.pos_5{opacity:1;z-index:5;left:0}.pos_6{opacity:.8;z-index:4;left:150px}.pos_7{opacity:.6;z-index:3;left:300px}.pos_8{opacity:.4;z-index:2;left:450px}.pos_9{opacity:.2;z-index:1;left:600px}.pos_10{opacity:0;z-index:0;left:750px}.next,.prev{display:inline-block;width:60px;height:40px;background-color:#E4E4E4;position:absolute;color:#373737;z-index:6;line-height:40px;font-size:40px;text-align:center;text-decoration:none;opacity:.8}.prev{left:0;top:190px}.next{right:0;top:190px}.next a:hover,.prev a:hover{opacity:1;color:#000}

運行

聯動下拉菜單

<div id="div1"></div>
    window.onload = function () {
        var s1 = new Sel('div1');
        s1.add('0',['中國','美國','日本'])
        s1.add('0_0',['深圳','廣州','北京'])
                 s1.add('0_0_0',['寶安','南山','福田'])
                 s1.add('0_0_1',['天河','越秀','海珠'])
                 s1.add('0_0_2',['西城','東誠','崇文'])
        s1.add('0_1',['波士顿','芝加哥','休斯敦'])
                s1.add('0_1_0',['子波士1','子波士2','子波士3'])
                s1.add('0_1_1',['子芝加1','子芝加2','子芝加3'])
                s1.add('0_1_2',['子休斯1','子休斯2','子休斯3'])
        s1.add('0_2',['東京','横滨','大阪'])
                s1.add('0_2_0',['子東京1','子東京2','子東京3'])
                s1.add('0_2_1',['子横滨1','子横滨2','子横滨3'])
                s1.add('0_2_2',['子大阪1','子大阪2','子大阪3'])
        s1.init(3);

    }
//寫構造函數
    function Sel(id) {
        this.oParent = document.getElementById(id);  //ID變成對象的屬性;
        this.data = {} //寫對象存函數 key = value
        this.aSel = this.oParent.getElementsByTagName('select'); //創建全局屬性,獲取所有select才能找到 獲得第一個select aSel[0]
    }
//寫原型
    Sel.prototype = {
//初始化
        init: function (num) {
            var This = this; //原型對像
            for (i = 1; i <= num; i++) {
                var oSel = document.createElement('select');
                var oPt = document.createElement('option');
                oPt.innerHTML = '默認';
                oSel.appendChild(oPt);
                oSel.index = i;
                this.oParent.appendChild(oSel)
                oSel.onchange = function () {
                    This.change(this.index) //this改變指向  this是下拉菜單,This對象
                }
            }
            this.first();
        },
        add: function (key, value) {
            this.data[key] = value;
        },
        first: function () {
            var arr = this.data['0'];//得到key 比如 s1.add('0',['中國','美國','日本'])  this.date['0'];得到['中國','美國','日本']
            for (var i = 0; i < arr.length; i++) {
                var oPt = document.createElement('option');
                oPt.innerHTML = arr[i] // ['中國','美國','日本']
                this.aSel[0].appendChild(oPt)
            }
        },
        //開始做第一個onchange下拉事件。
        change: function (iNow) { //iNow 當前下拉菜單的索引 0 1 2 3 
            var str = '0';
            for(var i = 0;i<iNow;i++){
                str += '_'+ (this.aSel[i].selectedIndex - 1);
                //s1.add('0',['中國','美國','日本']) 因為前面還有個默認,select裏一共有四個值,選擇1的索引值是1 但所對應的應該是 s1.add('0_0',['深圳','廣州','北京'])中的0_0,要開成這個形式必須 - 1
            }
            if( this.data[str] ){ //0_0 0_1 0_2
                var arr = this.data[str] //對應第二項數組['深圳','廣州','北京'] ['波士顿','芝加哥','休斯敦']['東京','横滨','大阪']
                this.aSel[iNow].options.length = 1; //只保留‘默認’這一項option
                for( var i = 0;i<arr.length;i++){
                    var oPt = document.createElement('option');
                    oPt.innerHTML = arr[i];
                    this.aSel[iNow].appendChild(oPt);
                }
                this.aSel[iNow].options[1].selected = true //選第一項時第二項自動變直接選中
                iNow++;  //遞歸,連動三個
                if(iNow < this.aSel.length){
                    this.change(iNow)
                }
            }
            else{//選擇默認時走else
                if(iNow < this.aSel.length)//小於下位菜單的長度;
                this.aSel[iNow].options.length = 1; //選擇默認時變回來
            }
        }
    }

運行

CENTOS VPS 配置 | wordpress環境安裝

一、查看當前硬盤情況

fdisk -l

二、新建分區

fdisk /dev/xvdb

SSH執行以上命令,會提示下方填寫區域(請見有色字)

Command (m for help): n 新建分區 
Command action
 e extended
 p primary partition (1-4) 
p 分區類型 
Partition number (1-4): 1 分區編號
 First cylinder (1-1305, default 1):1
Using default value 1 分區起始位置,默認即可 
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 1305
結束位置,默認即可 
Command (m for help): t 指定分區格式 
Selected partition 1
Hex code (type L to list codes): 83 設置為Linux分區 
Changed system type of partition 1 to 8e (Linux LVM) 
Command (m for help): w 保存 
The partition table has been altered! 
Calling ioctl() to re-read partition table. Syncing disks.

三、再次執行fdisk命令查看當前分區狀態

fdisk -l
partprobe #若沒有問題則執行此命令寫入內核

四、將分區格式化為ext3

mkfs.ext3 /dev/xvdb1

五、掛載到/home

mount /dev/xvdb1 /home
df -l

六、寫入掛載文件

echo "/dev/xvdb1 /home ext3 defaults 1 3" >> /etc/fstab

SSH執行以上命令,寫入/etc/fstab,開機時自動掛載。
//多IP綁定
編輯文件

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0:0
onboot=YES
BOOTPROTO=static
IPADDR=1.2.3.4
NETMASK=255.255.255.0
GATEWAY=1.2.3.1
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
/etc/init.d/networking restart

//配置php環境
1、更新系統內核到最新【可不做】

yum -y update

2、CentOS默認以安裝了apache2.2如果沒有則

yum -y install httpd

apache擴展

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

3、Web中文亂碼:

/etc/httpd/conf/httpd.conf

AddDefaultCharset UTF-8 改 AddDefaultCharset Off
添加以下文件:

AddCharset us-ascii.ascii .us-ascii
AddCharset ISO-8859-1  .iso8859-1  .latin1
AddCharset ISO-8859-2  .iso8859-2  .latin2 .cen
AddCharset ISO-8859-3  .iso8859-3  .latin3
AddCharset ISO-8859-4  .iso8859-4  .latin4
AddCharset ISO-8859-5  .iso8859-5  .cyr .iso-ru
AddCharset ISO-8859-6  .iso8859-6  .arb .arabic
AddCharset ISO-8859-7  .iso8859-7  .grk .greek
AddCharset ISO-8859-8  .iso8859-8  .heb .hebrew
AddCharset ISO-8859-9  .iso8859-9  .latin5 .trk
AddCharset ISO-8859-10  .iso8859-10  .latin6
AddCharset ISO-8859-13  .iso8859-13
AddCharset ISO-8859-14  .iso8859-14  .latin8
AddCharset ISO-8859-15  .iso8859-15  .latin9
AddCharset ISO-8859-16  .iso8859-16  .latin10
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5.Big5   .big5 .b5
AddCharset cn-Big5 .cn-big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251   .win-1251
AddCharset CP866   .cp866
AddCharset KOI8  .koi8
AddCharset KOI8-E  .koi8-e
AddCharset KOI8-r  .koi8-r .koi8-ru
AddCharset KOI8-U  .koi8-u
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-7   .utf7
AddCharset UTF-8   .utf8
AddCharset UTF-16  .utf16
AddCharset UTF-16BE .utf16be
AddCharset UTF-16LE .utf16le
AddCharset UTF-32  .utf32
AddCharset UTF-32BE .utf32be
AddCharset UTF-32LE .utf32le
AddCharset euc-cn  .euc-cn
AddCharset euc-gb  .euc-gb
AddCharset euc-jp  .euc-jp
AddCharset euc-kr  .euc-kr
#Not sure how euc-tw got in - IANA doesn't list it???
AddCharset EUC-TW  .euc-tw
AddCharset gb2312  .gb2312 .gb
AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
AddCharset shift_jis   .shift_jis .sjis

4、虛擬主機,配置文件

vi /etc/hosts

加上www.xxx.com的域名解析
5、配置虛擬站點

vi /etc/httpd/conf.d/vhost.conf
NameVirtualHost x.x.x.x:80
<VirtualHost x.x.x.x:80>
   DocumentRoot /home/wwwroot
   ServerName xxx.com
   ServerAlias  *.xxx.com
   <Directory "/home/wwwroot">
       #  AllowOverride AuthConfig
       #  Options Indexes
       AllowOverride all
       Order Deny,Allow
       Deny from all
       Allow from all
       ErrorDocument    404 /404.php
   </Directory>
   DirectoryIndex index.php
</VirtualHost>

註:多IP情況,NameVirtualHost x.x.x.x:80 不能省略 & 同IP只須定義1次,否則warn…
6、安裝PHP
停止Apache2 的服務

/etc/init.d/httpd stop
yum -y install httpd php
yum -y install php-gd php-xml php-mbstring php-ldap php-pear
/etc/init.d/httpd restart

7、MYSQL安裝

yum -y install mysql mysql-server php-mysql
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

8、啟動服務

/sbin/chkconfig httpd on        [設置apache為自啟動]
/sbin/chkconfig mysqld on       [設置mysqld服務為自啟動]
/sbin/service httpd start       [啟動 httpd 服務]
/sbin/service mysqld start      [啟動mysqld服務]

9、root用戶密碼

mysqladmin -u root password '新密碼'    [設置mysql.root密碼]

讓mysql數據庫更安全
登錄

mysql -u root -p [此時會要求妳輸入剛剛設置的密碼,輸入後回車即可]

mysql -u root -p

mysql -rroot -p密碼
mysql> DROP DATABASE test; [刪除test數據庫]
mysql> DELETE FROM mysql.user WHERE user = “”; [刪除匿名帳戶]
mysql> FLUSH PRIVILEGES; [重載權限]

新建數據庫:

mysql > create database 數據庫名;

新建對應用戶:

my sql > grant all on 數據庫名.* to 用戶名@localhost identified by ‘密碼';

刷新

flush privileges;
quit退出;

安裝wordpress

wget http://cn.wordpress.org/wordpress-3.8.1-zh_CN.tar.gz /home/目錄/

解壓

tar -zxvf wordpress-3.8.1-zh_CN.tar.gz

移動

mv ./wordpress/* /home/目錄/

升級PHP以使用phpmyadmin3.0以上版本
添加源文件 xxx.repo [任意命名,擴展為repo即可]

vi /etc/yum.repos.d/abc.repo

復制

[phpupdate]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

:wq
yum update php

Y.Y
此時可能亂碼.
安裝phpmyadmin

wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.4.2/phpMyAdmin-3.4.2-all-languages.tar.gz

移到/usr/share

mv phpMyAdmin-3.4.2-all-languages.tar.gz /usr/share

解壓

cd /usr/share
tar xvf phpMyAdmin-3.4.2-all-languages.tar.gz

改名

cd phpMyAdmin-3.4.2-all-languages
mv config.sample.inc.php config.inc.php

編輯config.inc.php

vi config.inc.php

以下內容去掉//

// $cfg['Servers'][$i]['controluser'] = 'pma';?
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma_relation';
// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';?
// $cfg['Servers'][$i]['history'] = 'pma_history';
// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['controluser'] = 'pma'; [把'pma'修改為妳的帳號]
$cfg['Servers'][$i]['controlpass'] = 'pmapass'; [把'pmapass設置為妳的mysql登錄密碼]
$cfg['blowfish_secret'] = ”;  [添加短語密碼例如:$cfg['blowfish_secret'] = 'onohot';] 

[如不設提示:配置文件現在需要1個短語密碼的解決方法]
軟鏈接

sudo ln -s /usr/share/phpMyAdmin-3.4.2-all-languages /home/目錄/phpmyadmin

即可使用目錄下所綁定域名訪問:http://www.xxx.com/phpmyadmin

reboot

配置ssl
安裝mod_ssi

yum install mod_ssl

位置 /etc/httpd/conf.d/ssl.conf 查看以下位置

SSLCertificateFile/etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile/etc/pki/tls/private/localhost.key

進入/etc/pki/tls/private 刪除 rm-f localhost.key
opensslgenrsa 1024 > localhost.key
返回/certs
maketestcert 自動

opensslreq -new -x509 -days 365 -key ../private/localhost.key -outlocalhost.crt 手動
localhost.crt —-ssl.conf指定命名

再次打開/etc/httpd/conf.d/ssl.conf

DocumentRoot “/home/wwwroot”
ServerName xxx.com

重啟apache
至此可用https訪問,IE6少提示警告。
結束
錯誤:缺少 mcrypt 擴展

wget http://www.atomicorp.com/installers/atomic
sh ./atomic
yum  install  php-mcrypt  libmcrypt  libmcrypt-devel
reboot

錯誤:phpMyAdmin 高級功能未全部設置,部分功能不可用

script/create_tables.sql

直接phpmyadmin導入即可sql,重新登入即可。
錯誤:Starting httpd: httpd: apr_sockaddr_info_get() failed for t9235
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

/etc/httpd/conf/httpd.conf
#ServerName www.example.com:80
改為
ServerName localhost:80

錯誤:403

<Directory />
  Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from allow
</Directory>

遞歸更改權限

chmod 777 * -R

快刪目錄

rm -rf [目錄]

極致繁華,不過一掬細砂

生命瞬間 繁華落盡-西藏曼陀羅畫 Medicine Buddha sand mandala



2001年2月26日,Ven. Tenzin Thutop 和Ven. Tenzin Deshek 二個來自尼泊爾和西藏的喇嘛,在紐約Ackiand和Yager畫廊將“修建”一個“藥師佛壇城”,展現亞洲藝術。

一般很少能見到這種場面,
就算你是身處西藏,也是很少見的 26 Feb

材料是一種用於藏醫藥的細沙
而且用這種材料製造出來的作品
可以保持幾百年不褪色 28,Feb

佛是萬物的起源,是世界的中心 28,Feb

在整個的繪製過程中
旁人只覺得是一種創作 1,Feb

但對於佛家來說,這是一種修行 2,,May

細沙如何彙聚成世界

圍繞在佛周圍的芸芸眾生
每一種生命都躍然沙上 5,May

不外傳的特製作畫工作 5,May

繁華初現 佛澤四方 6,May

越來越多人關注他們的創作 8,May

你是否看到了繁華背後的脆弱? 9,May

逐步顯現的最後的聖堂 12,May

延續的人生,膨脹的世界 14,May

瑰麗的畫卷,以一種強迫的姿態
佔據每一個人的視界和心靈
及至靈魂 20,May

精緻得難一置信的細節 20,May

自始至終一絲不荀的創作者 21,May

完美的畫面,繁華的世界
多看一會兒吧,記住它 8,Jun

最後完成的作品,英文叫做:mandala

意思是:時間記錄了一切

我們只能是做過這件事情,留下一點痕跡

但這些只是一瞬間的精彩 8,Jun

生命亦是如此 8,Jun

七八十年晃眼而過 8,Jun

回頭看看只有那麼一點痕跡 8,Jun

人死前的就瞬間一定很複雜 8,Jun

那麼,然後呢? 8,Jun

看看四周人們的眼神 8,Jun

極致繁華,不過一掬細沙 8,Jun

藝術品的生命完結了
但這件作品真正的生命才剛剛開始。8,Jun

人們從來沒有慶祝過生
但,對於死,卻總是有隆重的儀式 8,Jun

除去抹不淨的回憶
仿佛什麼也沒有發生過 8,Jun

最後的一段旅程
在當地居民的護送下盛裝出行 8,Jun

一切都隨風飄入溪水
沉澱,褪色
永不再返

耿耿於懷 - 念念不忘 - 羅生門 - 麥浚龍

在Youtu,欣賞請goagent

耿耿於懷
曲:伍樂城
詞:黃偉文
唱:麥浚龍
妳最近還好嗎? 尚愛看少女漫畫嗎
最近幾乎沒露面 妳有新對象嗎
真想帶妳見見 我剛識到的她
我想聽妳意見 這算是病吧
為何無論我 願意怎樣試
怎樣也 不可一樣愛慕她
難道沒練習太耐 感覺都追不回來
試圖再 努力愛 也顯得不自在
不懂得如何談戀愛
還是我太愛妳 對過去太放不開
難道是寂寞太耐 生銹的鎖不能開
鑰匙也折斷了 留在舊患鎖在懷內
放滿對妳的愛 難怪跟誰也 再沒法戀愛
我 有時仍很怕 路過妳那從前的家
往事若然未落幕再揭起有害嗎
真想帶妳見見 我剛識到的她
我想聽妳意見 這算是病吧
為何無論我 願意怎樣試
怎樣也 沒令自己戀上她
難道沒練習太耐 感覺都追不回來
試圖再 努力愛 也顯得不自在
不懂得如何談戀愛
還是我太愛妳 對過去太放不開
難道是寂寞太耐 生銹的鎖不能開
鑰匙也折斷了 留在舊患鎖在懷內
放滿對妳的愛
難怪跟誰也 再沒法戀愛
難道沒練習太耐 感覺都追不回來
試圖再努力愛也顯得不自在
耿耿於懷從前的愛
從沒有 振作過 痛了再痛也應該
難道是寂寞太耐 生銹的鎖不能開
往事卻 似斷箭 還剩下在體內
若懷內 放滿對妳的愛
害怕一直也 再沒法戀愛

<!-- Easy Plugin for AdSense V8.67 -->

麦浚龙(Juno)2004年推出的歌曲《耿耿于怀》,唱尽“毒男”心声,今年初推出续集《念念不忘》,直到近日与谢安琪合唱终结篇的《罗生门》,这3首歌构成爱情故事三部曲,热爆全城,好多网民在网上疯狂洗版,更表示到眼湿湿。这三首歌都系由黄伟文(Wyman)填词,Wyman今日接受电话访问,讲番点解会有呢个concept。


Wyman表示:“件事系因为11年前写咗《耿耿于怀》,12年我嘅作品展撞番Juno,当时完全唔知道拣乜嘢歌畀佢唱,我哋合作嘅歌都几多,《有人》、《没有人》、《濛》呢几首都觉得可以唱,但当时隔离左右嘅人,都话要拣《耿耿于怀》,因为好多人钟意《耿耿于怀》,当时我系有啲惊奇,因为呢首歌喺11年前,打榜成绩唔系太出众,电台、媒体高层唔觉得呢首歌特别好,原来群众心目中好受欢迎。”


当晚作品展Juno唱咗《耿耿于怀》,效果好好,歌迷反应都好热烈,Wyman就话:“我有个狂想同Juno讲,啱啱事隔十年,我哋好耐冇合作,不如揾埋伍乐城做番只《耿耿于怀》续集,讲番十年后呢个男仔点样,你知Juno循例冇乜反应,之后过咗两年,佢(Juno)同我讲不如做,14年做呢首歌(《念念不忘》),摆咗一阵,到15年先派,佢可能觉得等重要时机派台,所以喺15年呢只歌面世。”


Wyman续说:“之后Juno又畀电话我:不如呢首歌、呢个故仔、呢个男主角,我哋舖排成一张6只歌嘅EP,将歌曲里面每个人物都活化、立体化,佢第一样谂到呢首歌里面嘅‘你’,o依家分开后重新拍拖嘅‘她’,揾两个女歌手饰演真人版,所以有《念念不忘》,好多人钟意,我哋开始苦恼,故仔应该点舖排,其实仲有莫文蔚同Juno合唱《瑕疵》,莫文蔚饰演女朋友,之后到谢安琪呢首(《罗生门》),我提议不如反转嚟写,女仔眼中世界其实同男主角唔一样。”


麦浚龙爱情三部曲 《罗生门》热爆全城 黄伟文详细解构




《耿耿于怀》《念念不忘》《罗生门》三部曲


麦浚龙爱情三部曲 《罗生门》热爆全城 黄伟文详细解构

(资料图片)


Juno新专辑 分正传外传


Wyman表示构思呢几部曲系见步行步:“唔系好有组织同计划,因为做一首歌冇谂到有第二首,第二首时未知第三首系点,呢只碟有6首歌,《耿耿于怀》(不在新碟内)、《念念不忘》、《罗生门》系正传,其他几首系外传,包括莫文蔚合唱《瑕疵》、周国贤合唱《雷克雅未克》,Juno独唱《睡前服》、《单鱼座》,呢6首歌加埋其实系一部微电影,不过冇拍到出嚟,我觉得好嘥。”


讲到周国贤合唱嘅《雷克雅未克》呢首歌,Wyman表示系另一个“罗生门”,佢话:“因为喺Juno眼中系呢个故仔其中一个人物,仲系压轴出现㖭,但喺我眼中系另一个故仔人物,不过两条线喺呢张唱片有交错,正如《阿飞正传》嘅梁朝伟。”


Wyman又谓《睡前服》系讲安眠药:“男仔喺呢十年同新女友生活,但每晚都挂住旧女友瞓唔着,《单鱼座》讲呢个男仔性格出自双鱼座嘅相反,所以念念不忘,Juno真系双鱼座。”




耿耿于怀MV片段




耿耿于怀MV截图




《耿耿于怀》MV


歌词“残忍” 摧毁十年梦 Wyman:欢迎到现实世界


Wyman话:“好耐冇试过有广东歌有现状性,歌曲出街到o依家48小时都冇,好多人讨论呢件事,个个话㖊晚大家喺黄雨听住首歌喊咗成晚,好似同个天斗病,我都喊咗成晚,原来个个都关心广东歌,呢样最感动,Juno今朝send讯息畀我,佢话一夜之间iTunes广东歌嘅销售,头四位系呢4首广东歌,自己都毛管戙。”


而Juno同Kay合唱嘅《罗生门》,只系推出短短两日,暂时喺YouTube点击已破24万,甚受欢迎,有网民指Wyman歌词相当“残忍”,看看呢几句:“很感激 喜欢我十年仍不休 近日旧同学说我已 耿耿于你心六百周 很可惜 这一世未能长厮守 但事实如若告诉你或更内疚 我爱过哈囉吉蒂吗似乎没有”


Wyman亦话:“十万个人问我点解咁残忍,一手摧毁佢哋十年嚟嘅梦,我话,欢迎嚟到现实世界,o依家你闹我狠,但三五七年后,你醒咗会多谢我。”




《瑕疵》MV截图




《瑕疵》MV


继《耿耿于怀》、《念念不忘》同《罗生门》三部曲之后,麦浚龙(Juno)将会推出外传《雷克雅未克》,呢首歌系佢同周国贤(Endy)合唱,并由Endy作曲、黄伟文填词,Endy今日接受电话访问,佢话:“故事讲两个情侣分手十年,当年佢哋约定十年后去冰岛浪漫一番,奈何段情冇咗,但男仔好坚持要自己去。”


问到佢喺首歌担当边个角色?Endy笑话:“我都有啲迷糊,我可能情敌,其实我只系唱最尾几句,感觉似《阿飞正传》嘅梁朝伟,最后出嚟梳个头,Juno叫我写呢首歌嘅时候,佢话唔要一首好standard嘅歌,叫我畀一首好癫嘅歌佢,佢话要好浪漫好多旋律,之后我send咗demo畀佢,但佢都嫌唔够劲,佢话要再癫啲,我就大解放将毕生功力攞入歌里面,出嚟超难唱,好似新浪漫古典音乐,好高音好长冇重复,好似歌剧嘅女高音,所以有冰岛感觉。唔可以形容系流行曲,根本系艺术品,我写咗两、三个月,当时多伦多落紧雪,o依家写唔番意境。”


Endy话收到歌词后,自己忍唔住录咗独唱版本:“好在自己试验咗先,真系好难唱,交番畀麦生唱,我哋成日斗高音,我唔够佢高音,嗌爆喉咙都唔够佢高音,其实佢系女高音。”之前佢试唱一次,觉得有啲危险,笑言要降key。Endy又谓首歌七分几钟,Juno唱十分之九,佢唱十分一,因为似《阿飞正传》梁朝伟出场感觉。


咁有冇听晒三部曲?佢话:“听咗,好劲,佢钟意打破传统,唔守旧肯试新嘢,够大胆,野心大。”


Endy话同Juno合作多次,两人几有默契:“我哋频率几似,都系唔多出声嘅内敛仔,第一次认识佢喺颁奖礼记者会,个个涌晒前面影相,我哋就匿喺后面,呢条仔咁得意,所以同佢熟咗,开始音乐合作,今次第三次合作。”


《雷克雅未克》部份歌词率先曝光


“请你兑现约定 飞到伴我看星

往昔福岛名胜 破损中显神圣

谁人能为 昨日情

过十年后 再度远征

时间废墟里

寻那 不经污染 相恋的铁証”




Juno同Wyman(资料图片)


Juno同Wyman合力摧毁“十年男仔”一角


现年31岁的主唱Juno接受访问时表示:“其实入行第十年,拍咗《僵尸》呢部电影,拍完电影后,咁啱我同阿Y(Wyman)谂到‘念念不忘’呢个Term,个一刻我觉得个时间好似好吻合,如果冇一个至少十年,点称得上念念不忘呢?”

<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>


<!-- Easy Plugin for AdSense V8.67 -->

Juno又谓:“呢样嘢吸引我开始咗呢只碟企划,而佢好玩地方,今次好系角色扮演,其实工作同导演好相近,我哋去发展耿耿于怀嘅呢个男仔,当佢系一部电影咁,冇可能得一个角色,所以其实无论幕后班底,甚至乎幕前,包括Karen(莫文蔚)﹑Kay(谢安琪)或者周国贤,甚至乎我自己,其实都系喺耿耿于怀呢个世界,去探索佢身边所有事情,我自己好开心及感激大家好喜欢呢个故事。”


至于同人妻Kay合唱《罗生门》,Juno就话系呢个故事一个里程碑,佢话:“我同阿Y觉得我哋好想将‘十年嘅男仔’呢个角色,将佢完全摧毁,将我哋一手建立嘅,去完全摧毁佢,其实有呢个能力摧毁呢个角色,我相信世界上得两个人,一个系我﹑一个系黄伟文,所以我哋由第一日去倾呢个故事,我好想写一个‘罗生门’咁样嘅歌,我好想听多啲呢个女仔睇法,我觉得Kay唱得好好,Karen喺《瑕疵》都系,佢哋演活咗我幻想呢个世界嘅一种角色,虽然制作过程唔算好长,冇拍电影咁长,但系艰辛,因为你谂到呢个故事,我同阿Y去倾,好似捉棋咁,将每一个幕前幕后团队去做埋一齐,我系好多谢佢哋信任,当然佢哋每一个都系我心目中男女主角,因为佢哋担当紧好重要角色。”


Juno表示:“我同阿Y(Wyman)创作过程,我哋好想好现实地讲一段或几段关系,而一个连贯性好强﹑故事性好强嘅方向,呢样嘢好吸引到我,结果就出现《耿耿于怀》,直至十年后嘅《念念不忘》﹑到《瑕疵》﹑到今日《罗生门》,大家有种感情想追看角色发展,但我哋从来唔想去写…即系呢个唔系童话故事,但当中存在咗好多人生小道理,亦都有佢嘅甜蜜时候,对我呢讲呢件事几浪漫,但一种遗憾美嘅浪漫,所以我其实最要多谢阿Y,我仲好记得有次通电话,我哋好似好雀跃嘅小朋友,对呢个故事发展好有兴趣,好多谢大家钟意呢个故事。”


Juno续说:“我谂去做呢只碟,喺我心目中有个大前提,呢个大前提系其实有边个未曾念念不忘过?咁呢个就系‘人’囉,我觉得呢个系人可爱﹑有趣﹑但系又好复杂嘅地方。”


Juno又话做呢只碟同去拍一部电影都好相近:“我哋由第一日开始已构思故事架构及里面人物,佢哋对