Showing posts with label works. Show all posts
Showing posts with label works. Show all posts

Friday, April 6, 2018

[React.js] A simple webpage blog with create feature

This is an web single page written by react.js (with ES5,not ES6), shown a webpage with 5 articles, all article content are in hand-code. In my original plan, i want load the data from external json file but finally I feel lazy :p

There are 5 components named Header, Blog, Article, ArticleForm and Footer, html code are rendered by react.js , written in render function. Content like title, content, author are saved in state.

Result interface 

script.jsx
var Header = React.createClass({
  render:function(){
    return (
      <header>
        <h1>Blog name</h1>
      </header>
    );
  }
});

var Blog = React.createClass({
  getInitialState: function(){
    return {
      viewtimes:0,
      articleList:[
        {"title":"Hello World","content":"sdfsddfafadfs","author":"John",
         "updated_at":"23-11-2017 18:05:07","viewtimes":133},
        {"title":"The time is now","content":"dhgjkdhgkdfg","author":"Ann",
         "updated_at":"29-11-2017 03:10:12","viewtimes":112},
        {"title":"God will make a way","content":"sdjghdfjg","author":"Tom",
         "updated_at":"11-11-2017 21:21:26","viewtimes":13},
        {"title":"When you gone","content":"jiouij","author":"Suman",
         "updated_at":"08-11-2017 23:46:15","viewtimes":29},
        {"title":"HahHahaha","content":"zxbnvmnm","author":"May",
         "updated_at":"03-11-2017 09:45:39","viewtimes":56}
      ]
    };
  },
  countViewtimes: function(viewtimes){
    this.setState((prevState) => {
      return { viewtimes: prevState.viewtimes + viewtimes }
    });
  },
  createArticle: function(article){
    this.setState((prevState) => {
      return { articleList:this.state.articleList.concat(article) }
    });
  },
  render:function(){
    var component = this;
    var articles = this.state.articleList.map(function(article){
      return (
        <Article title={article.title} content={article.content}
            author={article.author}
            updated_at={article.updated_at}
            viewtimes={article.viewtimes}
            handleViews={component.countViewtimes} />
        );
    });
    return(
      <div>
        <Header />
        <ArticleForm handleCreate={this.createArticle} />
        {articles}
        <Footer viewtimes={this.state.viewtimes}/>
      </div>
    );
  }
});

var Article = React.createClass({
  getInitialState: function(){
    this.props.handleViews(this.props.viewtimes);
    return {articleAmount:this.props.viewtimes};
  },
  render:function(){
    return (
      <article>
        <h2>{this.props.title}</h2>
        <p>{this.props.content}</p>
        <div className="meta">Last updated by {this.props.author} at {this.props.updated_at}</div>
      </article>
    );
  }
});

var ArticleForm = React.createClass({
  submit: function(e){
    e.preventDefault();
    var article = {"title":this.refs.title.value,
                   "content":this.refs.content.value,
                   "author":"user",
                   "updated_at":new Date().toLocaleString(),
                   "viewtimes":0
     
    };
    this.props.handleCreate(article);
  },
  render: function(){
    return (
      <form onSubmit={this.submit}>
        <input type="text" name="title" placeholder="Title" ref="title"/>
        <textarea name="content" placeholder="Content" ref="content">
        </textarea>
        <br />
        <br />
        <button>Create Article</button>
      </form>
    );
  }
});

var Footer = React.createClass({
  render:function(){
    return (
      <footer>
        <p>This example is hosted in plnkr.co.
          <span>Total viewtimes of the articles : {this.props.viewtimes}</span>
        </p>
      </footer>
    );
  }
});


React.render(<Blog/>, document.getElementById("root"));
 index.html
<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
  </head>

  <body>
    <div id="root"></div>
    <script src="https://fb.me/react-0.14.3.min.js"></script>
    <script src="https://fb.me/react-dom-0.14.3.min.js"></script>
    <script src="script.js"></script>
  </body>
</html>
style.css
body{background:url(https://i.pinimg.com/736x/8d/34/1d/8d341deaa1952725765134832e2902b6--fine-paper-background-designs.jpg);}
header {text-align:center; font-family: "Source Sans Pro", sans-serif; font-weight: 400; color:#000;}
form{background:rgba(0,0,0,0.5);margin:10px; padding:15px; }
form input {width:100%;margin-bottom:10px;}
form textarea {width:100%;}
article {border:1px solid #aaa; margin:10px; padding:15px; background:rgba(255,255,255,0.8);}
article h2 {border-bottom:1px solid #aaa; padding-bottom:15px;}
article p {border-bottom:1px solid #aaa; padding-bottom:15px;}
article .meta {text-align:right;color:#000;}
footer {text-align:center}

Monday, July 25, 2016

[Paintings] 透明水彩練習2張 - a tree and roses


題目:透明水彩練習2張
描述:水彩分為透明水彩, 半透明水彩和不透明水彩,上幾次是半透明水彩,今次是奇趣天地買了盒($104)透明水彩,但事實上我覺使用半
透明水彩和不透明水彩的分別不大......

Tuesday, July 5, 2016

[Paintings] Soft night with city skyline

 
Topic: Soft night with city skyline
Material: Pentel Water Color, 110gsm Cartridge paper
Painted data : 04-07-2016 & 05-07-2016
This is my first time to use art masting fluid and WASTED a expensive brush... orz... btw, this picture painted with red and blue only but added many water for lighten color. Room for improvement next time : don't add so much water, and beware of the margin with art masting fluid.

Monday, July 4, 2016

[Painting] Colors of 10 words


Topic: colors of words
Material: Pentel Water Color, 110gsm Cartridge paper
Painted data : 03-07-2016 & 04-07-2016
Select 10 words and make them color, this picture is quite fail cos it's too late to add the water so can't match well. And the other problem is i think i was used transparent watercolor but it's simple water color only...

Saturday, July 2, 2016

[Paintings] 禪織 (Zentangle)


物料: Marker, 110gsm Cartridge paper
作畫日期 : 29-06-2016 & 02-07-2016
這是禪繞(Zentangle),源自美國,禪繞是種只要你願意嘗試,每個人也能畫的畫,不須介懷美與醜的定義
,只須像為Secret Garden 填色般隨心則可,for relax 之用。本圖分了2日畫,看圖很明顯可以看到2種不同的風格﹕第一日畫右方的pattern 樣式比較傳統和規律,第二日畫左方則圖案較多及比較活躍。專注去畫沒有意義的東西腦子很難思考什麼東西,作放空腦袋之用正好 XD

p.s. 原來用Marker 畫黑色色塊很易用乾一枝筆。

http://www.appledaily.com.tw/appledaily/article/supplement/20131126/35463277/

Thursday, April 24, 2014

[Works] 3年前的公仔屋



我一直很想有自己的房間,心想有個假的玩也不錯。這家公仔屋是樓下的文具買,$120,
網購當然可能有更便宜的,
但有時光顧香港小店會更好,當支持一下,
讓這些小店可以生存久一點。

先把材料砌成立體,裝修一下已印象大不同 :


租屋的話通常業主已裝修好或上一手租客留下了牆紙,
但一間房我肯定不是香港的房間,
因為有天窗 !!!


* * * * * * * * * * * * * * * * * * * * * * * *

開始砌木梯、櫃子及架子,櫃最花心機,
因為要每格抽屜逐間依圖則大小裁剪和同貼合,
木梯的腳踏最麻煩,
常常貼得不對稱要不合格重做 :


櫃面加裝飾,
沙發也是DIY, 誰料沙發原來是一些特殊形狀的木片 + 布 + 棉花而已,
我覺以我手工藝效果而言,沙發頗為像樣我自己會給很高評價 ~


然後令人驚訝的是設計圖作者的創意,
一件件傢俱的原料只是一些膠珠木珠,
還有一些圖案印刷的紙片,
全是有限材料下極大化使用所有東西,
製作過程中要小心勿弄丟任何物件,
因為近乎完全沒有後備材料 (汗)"





這個籃子的制作材料 : 紙藤吸了不少白膠漿,
弄得手指很髒 !
發現此盒提供了過多乾花素材,狂塞好了,

(p.s.此籃的內容物果子是小木珠+紙藤)


最後,連咕𠱸也要用布、針線、棉花DIY,

咕𠱸的話實物大小有衣車這些工具是不難制作的,
東西愈細小制作難度愈高,(那些米上雕字的人怎麼一回事)
終於有手殘感了。


很有成功感 XD
但是... 其實我比較喜歡雜物少一點好,
地方小,雜物少點空間感比較好。

Tuesday, April 22, 2014

[3D] 復活節,又出山了

在新工上班後,
我已不及以往勤力,
因為,只要省著用,
收入是夠的,
所以我不打算再賺其他額外收入,
結果,熟客 一次又一次找我做野,
我也一一推卻了,
就算三顧草蘆我也沒鳥對方,
結果,日子久了,熟客不再找我了,
沒甚麼可不可惜,
反正我一直想過平凡的自閉日子。

而這個兩個月因「人病、龜病、電腦病」,
自己病看了4次西醫,買了很多中藥、成藥和偏方試,
龜病看獸醫過千,
電腦開不到機,換了底板、CPU 及 harddisk 又幾千元,

貧。
好貧窮。

結果幸運地,第一位給我入IT 行業機會要我寫 flash game的人,
當年第一份JOB 是製作flash game, 
用的是actionscript , 
還記得那是歡樂卡和英超估波,
之後是一些網頁front end 和 一些full jquery animation website,
而因認識了這位仁兄很多年,
後來成了朋友,
所以他求救找我做野,說佢已沒有時間自己做,
而又剛巧我貧了,快見赤字,
所以這回我再沒有推卻了。

* * *
今次題目是要一堆3D 角色用來制作遊戲,
與 program 無關,
因為是學校project ,而我的角色是槍手,
所以成品質素要求非常低,

原本那位仁兄的 teammate 要求是主角要像「基路仔」,
不過最後改成了這個﹕


然後開始 build modal , 
這個可算是easy job!
(略有修改)


然後那邊催貨說要主角的圖像作寫報告之用,
所以草草製作了場景 render ﹕


落一台 camera zoom,再加 light tracing :


發現了上圖沒陰影和光,
才記起原來忘了「打燈」,
這些技術遺忘了很久,
結果spot light, omni 等一個個試效果,
製作陰影也花了很久,
因為忘了原來陰影要在燈光的面板作config :


(我很喜歡那閃閃發光的翼,不過拉 vertex 拉了2小時....)



然後是其他角色﹕
 




其他趕工中。


=======================
不消一天,
對方已把角色應用到遊戲中,
特來拍一張照給我看看效果﹕


若是學生而言,我覺還算OK,
今次這個 job 過程和結果也很有趣,
繼續趕工先 !


Tuesday, October 1, 2013

[作品] Online Drawing Tool


無聊啦,
某人整的作品,我改改,
無聊整來用作某些特別用途,
一個頹的「設計」(其實根本設計可言吧 )
不過,原本可是更恐怖的,
那麼,算吧~~~

這東西有甚麼技術?
是html5 canvas 混 Javascript
約每30秒自動儲存一次,
refresh 後資料仍在,好像是依session的,

那麼,畫來有甚麼用?
這是一個謎 !!!
其實加個save as image function 容易得很,
但我哪有那個閒情。

所以嘛,隨便好了,
就這樣交貨吧。

LINK :
http://soyosolution.com/projects/drawing/

Friday, September 9, 2011

[練習作品] FLASH (星&地圖)

張圖好差,
是試驗的過渡版而已.....
唉......
圖片放大質素就是差,放大了200%,
其實都幾無聊的吧~


http://www.xenialaw.zymichost.com/websites/flash/tweenrmap/map.swf
下面是另一個,
This is the flying star.
是小型FLASH GAME 與立體互動的前奏。

Saturday, August 27, 2011

[作品] Beginner

昨天早上很挫折,
下午則同友人在深水埗出現,
看見西九龍中心有間野成間都係AKB48的商品,
到晚上繼續挫折,THAN 照慣例,半途而廢了。

今早上開始一直XXX,X出了這個會穿崩的東西﹕(HTML5)


有幾個問題的﹕
1) 你屋企是舊電腦OR 網速慢,小心load 爆你部腦 (片,但youtube都開到冇理由this....但我段片NOT放YOUTUBE,not flv, slow.......)
2) If 你家是用internet explorer 9 以下的話(7,8),sorry,因用到的技術太新,d 舊browser(瀏覽器)看不到
3) If 你家是用internet explorer 9 的話,sorry,都是看不到的,因LOAD不到短片。
4) 咁用咩?? google chrome 吧! (我家用的是 13.0.782.112 m)
5) 至於何時會穿崩? IF your resolution is bigger than 1366x788, it will = ="
6) 第一次看應該睇得好疾,我弄了自動播放&無限地重複播放,第二次看should 不卡,第3,4次會關吧!

Problems and solutions:
1) 圖load 得慢-----> change Progressive graphic to interlaced
2) 段片用 大声ダイヤモンド (26MB)的話效果超讚! 但我等窮人冇地方放,
改用NOW的片Beginner ダイジェスト映像 / AKB48 [公式](2MB) = =" 有時有點不雅....
3) 想看下去感覺pro d,我想應該要在版面再加d字,IF i choose, i will choose 白色的小字,當然是用日文,but 我懶,就咁算了.........
(其實問題根本冇改善到.......只是我易發現問題,叫我動手改,又懶)


BTW,
不怕load 慢部腦而又用google chrome的勇者,請進﹕
http://www.geocities.jp/xenialaw418/JS/akb48player/akb48player.html

Wednesday, August 25, 2010

[ CG上色過程] 溫室花&女孩

Photobucket
草圖來自台灣的Stanley Dai
http://tw.myblog.yahoo.com/simon71213
詳細請到原作者的blog參觀,
這兒,我只是上色,
用Stanley Dai的草圖作上色練習。

[CG上色過程] 等待

用Stanley Dai的草圖作上色練習。
草圖來自台灣的Stanley Dai
http://tw.myblog.yahoo.com/simon71213
詳細請到原作者的blog參觀,
這兒,我只是上色,
用Stanley Dai的草圖作上色練習。

Thursday, August 12, 2010

[CG] 2D & 3D 練習

近來,我都在電腦桌前&圖書館之間來回,
我有太多野想學,
但「學習」可沒有一步登天這支歌仔唱 (除非只學些皮毛用作拋書包之用),
想有專業級水準,就一定要自學 (經過呢一年,我明白學校教的東西不多,主要教基礎野)
 = = "
還要不斷實踐 ........ 我三分鐘熱度,一樣東西厭了可跳去學另一樣東西,
心機還是有的,但時間就.......... 總覺不夠用....
又忽然興起,我又畫那些東西.......

下面的是源自日本,轉自台灣的學習方法,
同一幅圖,用不同方法上色,比較,從而看出自己不足之處,
& 可改善的地方 ......

這次元線画我花了很多時間&心機描,質量,也算ok , 
(難怪d 大師級人馬用24個小時處理這堆黑白線)
我平時畫法是先畫「アニメ塗り」,然後將其加工成「ギャルゲ塗り」,
所以這兩種畫法對我難度不大 (畢竟也畫了也快4、5年了 >< 我是傳統的「工整派」)
而「厚塗り」&「水彩塗り」第一次用,改了很多很多很多次才比較見得人的樣子。。。

上面「厚塗り」那幅簡直樣衰,我還save了未改前的版本,看多少次也要洗眼的....
「黑一色」,我猜別人原意是漫畫風格的,但我懶,
只把「アニメ塗り」改成黑白色,沒用網點圖,結果只有奇怪的份兒.......
看著這堆東西,我看到自己有很多不足 ( 別問why 沒鼻的)
被自己固有習慣困住,不肯嘗試新方法 ..........這是學習的大忌 !!!
學習是沒有止境的,愈學得多,只會愈看到自己的不足,
也許我是不想承認自己的不足,才不斷用自己「善」長的方法去「證明」自己,
但這樣,進步會很很很慢的.....

(水彩的效果很柔和,又來一張.....但手很怪)

==========================================================
2D完了,又來3D (<------ 我近日就是對著這些東西)
 
單是用電腦計算出以上三棵樹,已吃了電腦不少資源,
why ?
在3D世界,一棵樹是由成千上萬的組件組成,(上圖一棵約有27,500件左右)
就像下圖,一棵所謂的「櫻花樹」,
就是由N片像紙片般的小花&樹葉組成,

電腦要計算其大小、形狀、色彩之餘,
還要計算其遠近、光暗,電腦不慢就假了.......
而我今天要學習的,是用其他方法代替這些樹﹕

如上圖所示,用2D 代替3D,是個好方法,
但前提是平面圖片本身要有適當的處理,
否則會像上圖最前面的樹般「穿煲」的了, 又是懶壞事。。。
上面幾張3D也不太見得人的,
但下面的,好好多,
因為下圖用的所需的電腦運算能力,
比上面的櫻花圖高數十甚至上百倍,
(在電腦運算能力不變的前提下,電腦整一幅櫻花圖要7 秒,下圖要5分鐘 =0= 
而且cpu使用率要一直保持100% ,咁熱天時,如果連續整十多張,電腦也會燒吧)

櫻花圖 82500個object  vs 茶壺圖的3個object ,
計算時間竟與object數量竟成了反比 !
差別只是 加了全域光& 以下settings
color bleed =2
bounces =4
global multiolier =1.2
that means d 野的顏色會映射到其他物體上 ?
但不明白,需要的時間why 差別咁大的 ?

======================================================

Sunday, November 15, 2009

上色得好辛苦,但很有滿足感

畫得好辛苦,但很有滿足感~
我是典型的超級懶蟲那類人,
唯一沒有三分鐘熱度、
一直堅持下來的興趣就是這個了~
但可惜,興趣沒可能當飯食。。。
p.s.(正確而言,只是上色而已,但通常d畫師上色的時間絕對比畫草稿多)

沒有甚麼特別感覺 ?
正常的。
只看圖片,
你會覺得構圖簡單、色彩簡單,
很容易畫、沒甚麼大不了,
多數看完就算。

如果睇埋過程 ( 特別是專業果D ),
你會發現一幅看似簡單的畫背後作者花了多少心機,
尤其是一些高精度作畫,
單是花在上色的時間已可能以廿個鐘、三十個鐘來計,
好恐怖的~

以我凡事三分鐘熱度的耐力,
最多可以畫十多個鐘就放棄,
這一幅,大約畫了幾個鐘左右,
都算幾失敗,
在此獻o下醜



此片將n個鐘的過程縮短成幾分鐘,
個人當然覺得重播多少次,
也有種百看不厭的感覺^^
(賣花讚花香<-----)

p.s.一幅畫幾十MB,一段片幾百MB,結果個FILE急速澎脹..............

Thursday, March 23, 2006

[Painting] Tulips

Topic: Tulips
Material : water color
Comment :
I forgot when to draw it, maybe around 2006 to 2008. I remember i was not used to paint with water color but while i was studying at school, as a student.