2019年12月31日 星期二
2019年12月26日 星期四
php 重新排列陣列裡的陣列順序
剛好最近寫網站有這個需要,因為 db 設計的關係所以撈出來資料的排序沒辦法照我想要的排列,研究一下找到這個方法就記錄一下。
如果想要照 id 排序,就像這樣寫:
參考: PHP: Sorting Arrays of Arrays
Read more
$students=array( array( 'id'=>1, 'name'=>'Jason' ), array( 'id'=>0, 'name'=>'Tom' ), array( 'id'=>3, 'name'=>'John' ) );
如果想要照 id 排序,就像這樣寫:
function new_order($a, $b) { return strnatcmp($a['id'], $b['id']); } usort($students, 'new_order');
參考: PHP: Sorting Arrays of Arrays
2019年12月20日 星期五
2019年12月19日 星期四
綠界金流串接
最近因為在串綠界的金流,來記錄一下好了。
首先要先去綠界下載 API 文件還有 SDK,我是用 php 寫的所以就下載 php 那包。
接下來要傳資料到後端去處理:
接著在 post 後處理資料再送到綠界就可以了
最後處理回傳的付款資訊即可。
Read more
首先要先去綠界下載 API 文件還有 SDK,我是用 php 寫的所以就下載 php 那包。
接下來要傳資料到後端去處理:
接著在 post 後處理資料再送到綠界就可以了
include('ECPay.Payment.Integration.php'); try { $obj = new ECPay_AllInOne(); //服務參數 $obj->ServiceURL = "https://payment-stage.ecpay.com.tw/Cashier/AioCheckOut/V5"; //服務位置,記得測試完要還成正式網址 $obj->HashKey = '5294y06JbISpM5x9' ; //測試用Hashkey,請自行帶入ECPay提供的HashKey $obj->HashIV = 'v77hoKGq4kWxNNIS' ; //測試用HashIV,請自行帶入ECPay提供的HashIV $obj->MerchantID = '2000132'; //測試用MerchantID,請自行帶入ECPay提供的MerchantID $obj->EncryptType = '1'; //CheckMacValue加密類型,請固定填入1,使用SHA256加密 //基本參數(請依系統規劃自行調整) $MerchantTradeNo = "Test".time() ; $obj->Send['ReturnURL'] = "接收回傳資料的網址" ; //付款完成通知回傳的網址 $obj->Send['MerchantTradeNo'] = $MerchantTradeNo; //訂單編號 $obj->Send['MerchantTradeDate'] = date('Y/m/d H:i:s'); //交易時間 $obj->Send['TotalAmount'] = 2000; //交易金額 $obj->Send['TradeDesc'] = "good to drink" ; //交易描述 $obj->Send['ChoosePayment'] = ECPay_PaymentMethod::ALL ; //付款方式:全功能 //訂單的商品資料 array_push($obj->Send['Items'], array('Name' => "歐付寶黑芝麻豆漿", 'Price' => (int)"2000", 'Currency' => "元", 'Quantity' => (int) "1", 'URL' => "dedwed")); //產生訂單(auto submit至ECPay) $obj->CheckOut(); } catch (Exception $e) { echo $e->getMessage(); }
最後處理回傳的付款資訊即可。
require('ECPay.Payment.Integration.php'); try { // 收到綠界科技的付款結果訊息,並判斷檢查碼是否相符 $AL = new ECPay_AllInOne(); $AL->MerchantID = '2000132'; $AL->HashKey = '5294y06JbISpM5x9'; $AL->HashIV = 'v77hoKGq4kWxNNIS'; // $AL->EncryptType = ECPay_EncryptType::ENC_MD5; // MD5 $AL->EncryptType = ECPay_EncryptType::ENC_SHA256; // SHA256 $feedback = $AL->CheckOutFeedback(); // 以付款結果訊息進行相對應的處理 /** 回傳的綠界科技的付款結果訊息如下: Array ( [MerchantID] => [MerchantTradeNo] => [StoreID] => [RtnCode] => [RtnMsg] => [TradeNo] => [TradeAmt] => [PaymentDate] => [PaymentType] => [PaymentTypeChargeFee] => [TradeDate] => [SimulatePaid] => [CustomField1] => [CustomField2] => [CustomField3] => [CustomField4] => [CheckMacValue] => ) 再個別寫入資料庫更新即可 */ // 在網頁端回應 1|OK echo '1|OK'; } catch(Exception $e) { echo '0|' . $e->getMessage(); }
2019年12月17日 星期二
2019年12月16日 星期一
2019年12月13日 星期五
2019年12月10日 星期二
2019年12月8日 星期日
2019年12月6日 星期五
2019年12月5日 星期四
2019年12月4日 星期三
2019年12月3日 星期二
2019年11月28日 星期四
2019年11月26日 星期二
2019年11月25日 星期一
升級 Mac 的 php 版本
Mac 本身內建有 php,如果想要升級版本的話就需要自己去下載並安裝,先用以下指令可以查看目前使用的 php 版本:
再來透過網路安裝新版的 php
經過一段時間安裝後應該是安裝成功了,但查看版本可能還是舊版的 php,這時候再加上這段就好了:
Read more
php --version
再來透過網路安裝新版的 php
curl -s http://php-osx.liip.ch/install.sh | bash -s 7.3
經過一段時間安裝後應該是安裝成功了,但查看版本可能還是舊版的 php,這時候再加上這段就好了:
export PATH=/usr/local/php5/bin:$PATH
2019年11月24日 星期日
2019年11月23日 星期六
2019年11月22日 星期五
Photoshop 的免費 UI 標示工具- Size-Marks-PS
現在雖然有不少好用的原型工具,像 Adobe XD 或 Sketch,但還是可能會收到一些不是用這些原型工具的檔案,如果是 photoshop 可以選擇這個免費的工具來幫忙標示 UI 的間距。
首先到 github 下載 Size-Marks-PS 這個 plugin
下載後依以下路徑安裝到 photoshop
OS X: /Applications/[Photoshop]/Presets/Scripts/
Windows: C:\[Program Files]\Adobe\[Photoshop]\Presets\Scripts
接下來重開 photoshop 就可以使用了,把要標示的距離用選取工具選起來。

接著從檔案 > 指令碼 選擇 Size Marks

這樣就會幫你標示了,如果覺得每次要從選單選很麻煩,也非常建議設定快速鍵,從 編輯 > 鍵盤快速鍵 > 檔案 > 指令碼 找到 Size Marks 就可以設定快速鍵。

這是開發者建議大家設定的快速鍵
OS X: Shift+Cmd+P
Windows: Shift+Ctrl+P
Read more
首先到 github 下載 Size-Marks-PS 這個 plugin
下載後依以下路徑安裝到 photoshop
OS X: /Applications/[Photoshop]/Presets/Scripts/
Windows: C:\[Program Files]\Adobe\[Photoshop]\Presets\Scripts
接下來重開 photoshop 就可以使用了,把要標示的距離用選取工具選起來。

接著從檔案 > 指令碼 選擇 Size Marks

這樣就會幫你標示了,如果覺得每次要從選單選很麻煩,也非常建議設定快速鍵,從 編輯 > 鍵盤快速鍵 > 檔案 > 指令碼 找到 Size Marks 就可以設定快速鍵。

這是開發者建議大家設定的快速鍵
OS X: Shift+Cmd+P
Windows: Shift+Ctrl+P
2019年11月21日 星期四
2019年11月17日 星期日
2019年11月16日 星期六
2019年11月15日 星期五
2019年11月12日 星期二
手機的 safari, chrome 瀏覽器 100vh 的問題
最近在寫的網站因為需要把內容鎖定在一個頁面的高度,本來在電腦版很自然會想到用 100vh 去設定,但在 safari 會遇到一個問題就是你預期他高度是一個螢幕高,可是他真的是一個螢幕高,也就是手機瀏覽器的 header 跟底下的 nav 會把螢幕蓋掉,這樣就會發生你開的時候有一部分被遮掉了,這個用這張圖來看就很清楚。

查了一下這在 safari 是一個一直存在的問題,後來連手機的 chrome 也會有這樣的情況,還好後來有找到方法試了一下有用就紀錄一下。
css 要改這樣
再加一段 js 去判斷要調整的高度。
有興趣研究原理的話可以看這篇:
The trick to viewport units on mobile
Read more

查了一下這在 safari 是一個一直存在的問題,後來連手機的 chrome 也會有這樣的情況,還好後來有找到方法試了一下有用就紀錄一下。
css 要改這樣
.my-element { height: 100vh; /* Fallback for browsers that do not support Custom Properties */ height: calc(var(--vh, 1vh) * 100); }
再加一段 js 去判斷要調整的高度。
// First we get the viewport height and we multiple it by 1% to get a value for a vh unit let vh = window.innerHeight * 0.01; // Then we set the value in the --vh custom property to the root of the document document.documentElement.style.setProperty('--vh', `${vh}px`);
有興趣研究原理的話可以看這篇:
The trick to viewport units on mobile
2019年11月10日 星期日
2019年11月9日 星期六
抓取 Instagram(ig) 特定使用者與 hashtag 的照片

因為想要在網站上放特定 ig hashtag 的照片,本來從 api 去研究,但測了半天都抓不到 ig 要我抓的東西,繼續找資料的同時找到了原來有人已經寫好不用透過 api 的方式抓取照片的 plugin了,簡單測試之後發現真的可以用所以就拿來放到網站上了。
外掛網址:instastory.js
因為是 jquery 的 plugin,記得要先讀入 jquery,然後再把 plugin 讀進來。
準備一個照片要讀進來的容器。
然後直接執行,前面加 # 就是讀取特定 hashtag,加 @ 就是讀取特定帳號。
$(".container").instastory({ get: "#yoga" // or "@username" }); $(".container").instastory("#yoga");
另外可以設定的值包含:
limit: 6 //想要讀取的照片數
imageSize: 240 //可填入 50, 240, 320, 480, 640
也可以設定樣板:
這些則是每張照片的變數
{{accessibility_caption}}
{{caption}}
{{comments}}
{{image}}
{{likes}}
{{link}}

2019年11月8日 星期五
使用 javascript SDK 來做 FB/Google 的社群登入
現在網站為求方便,許多都會讓使用者可以用社群網站登入減少認證的麻煩,這邊來筆記一下該怎麼使用 FB 跟 Google 登入的方法。
Google
google 的話要先到 Google API 服務的地方申請一個新的憑證。

接著可以設定一下容易辨識的名字,就可以拿 api 的 id 跟密鑰了。


因為我們是要用 javascript 登入,所以這邊設定網址就不是這麼重要,再來就是實作登入了。
放一顆按鈕:
初始化 google javascript SDK
接著就可以這樣拿到 google 登入後的資料了。
參考:Google Login with Javascript API
Facebook
首先也是先到 Facebook Developer 申請一個 app,並設定一下要用的網域以及拿 app id 及金鑰。

接著一樣放一顆 fb 登入的按鈕
寫 js
完成。
Read more
google 的話要先到 Google API 服務的地方申請一個新的憑證。

接著可以設定一下容易辨識的名字,就可以拿 api 的 id 跟密鑰了。


因為我們是要用 javascript 登入,所以這邊設定網址就不是這麼重要,再來就是實作登入了。
放一顆按鈕:
初始化 google javascript SDK
let Google_appId = "*****.apps.googleusercontent.com"; // Called when Google Javascript API Javascript is loaded function HandleGoogleApiLibrary() { // Load "client" & "auth2" libraries gapi.load('client:auth2', { callback: function () { // Initialize client & auth libraries gapi.client.init({ clientId: Google_appId, scope: 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me' }).then( function (success) { // Google Libraries are initialized successfully // You can now make API calls console.log("Google Libraries are initialized successfully"); }, function (error) { // Error occurred console.log(error);// to find the reason } ); }, onerror: function () { // Failed to load libraries console.log("Failed to load libraries"); } }); } function GoogleLogin() { // API call for Google login gapi.auth2.getAuthInstance().signIn().then( function (success) { // Login API call is successful console.log(success); let Google_ID = success["El"]; //這邊可以寫抓到登入資訊後要做的事,比如將會員資料寫到資料庫之類的 }, function (error) { // Error occurred // console.log(error) to find the reason console.log(error); } ); }
接著就可以這樣拿到 google 登入後的資料了。
// API call to get user profile information gapi.client.request({ path: 'https://www.googleapis.com/plus/v1/people/me' }).then( function(success) { // API call is successful var user_info = JSON.parse(success.body); // user profile information console.log(user_info); }, function(error) { // Error occurred // console.log(error) to find the reason } );
參考:Google Login with Javascript API
首先也是先到 Facebook Developer 申請一個 app,並設定一下要用的網域以及拿 app id 及金鑰。

接著一樣放一顆 fb 登入的按鈕
寫 js
//應用程式編號,進入 https://developers.facebook.com/apps/ 即可看到 let FB_appID = ""; //FB Login 官方文件:https://developers.facebook.com/docs/facebook-login/web // Load the Facebook Javascript SDK asynchronously (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); window.fbAsyncInit = function () { FB.init({ appId: FB_appID,//FB appID cookie: true, // enable cookies to allow the server to access the session xfbml: true, // parse social plugins on this page version: 'v5.0' // use graph api version }); }; //使用自己客製化的按鈕來登入 function FBLogin() { FB.login(function (response) { //debug用 console.log(response); if (response.status === 'connected') { //user登入成功 //抓userID let fb_id = response["authResponse"]["userID"]; //接著可以對帳號做處理 } else { // user FB取消授權 alert("Facebook帳號無法登入"); } }, { scope: 'public_profile,email' }); }
完成。
2019年11月7日 星期四
2019年11月6日 星期三
2019年11月2日 星期六
2019年10月31日 星期四
2019年10月30日 星期三
2019年10月27日 星期日
2019年10月26日 星期六
再見 La new 高熊/ Lamigo 桃猿

今年最後知道 Lamigo 要轉賣給日本樂天後,雖然覺得不捨但也有想過總是會有這天的到來,真的非常感謝劉家父子這十幾年來對中華職棒的貢獻。
跟 Lamigo 的前身 La new 熊有一些淵源,當初忘了什麼方式被當時在 La new 高熊服務的朋友找上我幫忙繪製一些活力熊的表情符號和偶爾一些的宣傳圖,後來也有幫忙弄一些他們企業的宣傳品。很感謝當時的朋友給我這個機會,讓我除了可以有更多的作品也有機會從他那邊了解企業做行銷和公關的一些知識。
後來雖然他離開後我也就幾乎沒有再接觸他們公司的案子,但也因為他讓我後來有機會有些動力去做我想做的事情,即使我們後來不是很常見面,但也大概一年會約個一次出來聊個天談談近況,內心總是有些願望希望能夠持續實現,朋友們就繼續努力吧。
也因為朋友的關係跟劉董事長有過一面之緣,當時覺得他真的是一個很熱情且溫暖的長輩,最後也祝福 La new 企業以及之後接手的樂天都能持續發光發熱。
2019年10月24日 星期四
2019年10月23日 星期三
2019年10月22日 星期二
2019年10月21日 星期一
訂閱:
文章 (Atom)
文章
-
▼
2019
(403)
-
▼
十二月
(27)
- 2019 無敵全端工程師年末廢文
- php 重新排列陣列裡的陣列順序
- 2019 聖誕節
- 貴婦百貨拍照
- 我是很喜歡做有的沒的
- 看你老師是誰
- 連紅綠燈都笑你單身
- 星戰九 天行者的崛起
- 綠界金流串接
- 帶你成為老司機
- MSIT 班
- 公視 2020 總統大選網站
- 今年沒寒流
- 和學生打神獸
- 蹲著寫程式
- 淡海輕軌遊拍
- 大家都很喜歡老師
- 3 萬人的社團
- 自己刻民調走勢圖
- 簡單的頁面拖曳/滑動(drag/swipe) js 套件- dragScroll.js
- 海洋教育推手獎頒獎典禮
- 你以為我不想做男版的制服地圖嗎,我是不想
- MFEE04 結訓
- 我上課都在教人通靈
- 想快速練功就自己開公司啊
- 沒有地方可以困住你
- 訂夠了喔
-
►
十一月
(34)
- 哥吉拉公園
- 跟學生看了一場最貴的電影「Hello World」
- 面交天文年曆
- 淡海輕軌 x 幾米主題列車活動網站
- 升級 Mac 的 php 版本
- 小孩的日常訓練
- 老闆認識我的咖啡廳
- 開發的經驗
- Photoshop 的免費 UI 標示工具- Size-Marks-PS
- 2019 的生日快樂
- 超斜槓青年
- 約好出來玩
- [TP 合金] 百獸王(聖戰士)
- 小朋友拍照不正經
- 想找我說話的小朋友
- 熊貓人復胖達
- 神作怪醫黑傑克
- 新的前端班開始
- 寫程式的語助詞
- 我小時候很乖
- 手機的 safari, chrome 瀏覽器 100vh 的問題
- 韓國輸
- 沒在雙11買過東西
- 你所不知道的 JS
- 抓取 Instagram(ig) 特定使用者與 hashtag 的照片
- 使用 javascript SDK 來做 FB/Google 的社群登入
- 學生自己做的精靈球悠遊卡
- 紅豆餅裡有珍珠
- 將 After Effect 轉 svg 的工具套件- bodymovin
- 醫生知道我想問什麼
- 被拆的命運屎之門
- 觀落陰的小朋友
- 馬桶王任務
- 誰不是雙子座
-
▼
十二月
(27)

標籤雲
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
360
3D
3D Printer
3D Scanner
3D TV
3DS LL
3ds max
七大創意原則
七武海
九州
九型人格
人生
十大創新法則
三立
三立新聞網
三星
三國傳
千值練
大地盃
大阪
大津
大氣系
小田原
小朋友
小動畫
中央大學
中平商圈
中華職棒
互動設計
公視
天氣娃娃
心情日記
手機
手繪
日文
日本
日本戰國
日本職棒
日劇
月津港
火箭營
仙書紀
令和
北海岸
北海道
北關
可動群雄
台中
台南
台湾狼
台灣
台灣社群排行榜
台灣數位文化協會
台灣選舉地圖
史旺基
平面設計
未來國會
正妹
永平工商
生日
立委
光雕
印刷
名片
地科院
地球村
地圖
地震
好人卡
好軟體
好網站
年誌
成果展
早安
有聲書
江火明
自介
行銷
衣服
似顏繪
初音
完成品
尾牙
我的迷你城市
我要當女一
扭蛋盒玩
扭蛋戰士DASH
扭蛋戰士NEXT
汶萊
沖繩
狂新聞
京都
制服
制服大賞
制服女孩
命理
夜之祭
奈良
姊妹
宜蘭
東大特訓班
東京
武神降臨編
直播
社群日
股票
金流
金庸
侯文詠
勇者
厚生市集
咪醬
哆啦A夢
星座
活力熊
研究所
穿衣指數
紅色死神
美劇
風起雲湧
風雲祭
飛肯
香港
哥吉拉
展覽
座談會
旅行
旅遊
時報周刊
書
書單
栗原洋服店
格言
桃園
桌面寵物
氣象
氣象主播
氣象局
氣象預報
海洋堂
特殊符號
特攝
班服
神戶
神奇寶貝
紙公仔
紙模型
退休光碟
高中職博覽會
高校誌
假面騎士
偉大的航道
動物森友會
動畫
動畫術語
專家審查會議
專題
教學
產生器
設計
部落格
部落格小玩意
陳金鋒
創業
喬巴
媒體報導
減碳雙熊
無名
無障礙
程式
童顏app
絕對領域
萌
萌咩誌
評審
賀卡
超合金魂
超合金魂 F.A.
超級英雄圖譜
超級英熊
超級戰隊
跑馬燈
雲寶
黑襪
奧爾資訊
新聞易數
義大遊樂世界
聖鬥士星矢
資策會
路上觀察
遊記
遊戲
零秒出手
電子看板
電子書
電子報
電腦戰機
電影
預付卡
團體服
壽屋
夢想
慈幼社
漫畫
綠界
網頁
網頁作品
網站工具
網站優化
網路狂人週報
舞台背板
蜜月
酷瞧
颱風
餅乾
魂spec
彈珠台
影片
影音氣象
影集
影像處理
數位時代
樂樂小黃
模型
熱舞
獎金獵人
稻江護家
箱根
膝上襪
衛星雲圖
論壇
遮罩
戰鬥女子學園
戰隊
橋本環奈
機器人
機器人相關
講師
還願
黏土人
瀏覽器
翻譯
藍球教學
轉輪科技
鎌倉
雞排妹
顏文字
羅東
寶貝
籃球
蘋果日報
攝影
蘭友會
鐵啞鈴
魔神英雄傳
魔動王
讀書會
體育用品
ACA
ACE
AddThis
Adobe
Adobe XD
aerender
After Effect
AIR
AJAX
Android
AngularJS
AngularUI
Annual Analysis
ANSI
API
Apple
Apple Watch
AR
AR+
Arduino
array
Arrow
AS 3.0
background
BANDAI
Batman
BB戰士
bbs
blog
blogger
Blogger Touch
board game
bootstrap
Brave合金
browser
C3.js
CANDY醬
canvas
Card sorting
chrome
CI
CM's
cocos2D
CodeIgniter
color
COMPOSITE Ver. Ka
cookie
cosa
cosplay
css
css3
css教學
CW
CWB
D-Arts
D3.js
DC Comics
Death Note
deathhell
Decool
design
desktop
DeTools
Diablo
Discuz
display
dragon
embed
Emmet
EVA
excel
facebook
favicon
fc2
filter
Firebug
firefox
flash
Flex
FlickLinkr
flickr
FQL
fun電
Fun籃球
G Generation
G+
GARNiDELiA
GFF
GIGA合金
GIPHY
git
GleeFB
GleeShare
google
google adsense
Google Analytics
google datastudio
google fonts API
Google Geocoding API
Google Map API
google mapplets
google PageSpeed API
google tool bar
google+1
googlemaps
grid
GTI
GUNDAM
Gundam W
GUNDAM“EX-STANDARD”
Gunpla
GunXSword
hairbook
hairdodo
hairmap
Hami App
HG
HiRM
Homebook
HPX
htaccess
html
html5
iAngel
ichannel
ico
icon
IDEO
IE
III
illustrator
ImageMagick
InDesign
info graphic
instagram
iOS
iphone
Iron Man
ITCD
iTenki
IxD
javascript
JK
jquery
jquery plugin
jQuery UI
js
JSDC
JSON
JSON-LD
Keroro魂
Kobe
Koobii 高校誌
kuso
La new
lazyload
LEGO
less
life style
Line
Linux
localStorage
logo
LucyPop
Mac OS
MAD
mailgun
Maker Fair
Marvel Comics
MegaHouse
meta
Metal Robot 魂
MG
MIC
mit.jobs
MLB
mobile app
mobile web
movie
MSI
MSN小圖
MSN小綠人
msn表情符號
MSN機器人
mssql
MTK
My Weather
MySQL
NBA
NCU
NeoShop
node.js
nokia
NXEDGE STYLE
NXT
ONEPIECE
open data
OpenCart
ovomedia
Pantone
PChome
PDO
persona
photoshop
photoshop教學
php
phpFlickr
Picasa
pintrest
Pixnet
PIXOSTYLE
plurk
pokemon
Pokemon Go
Pokémon-Info
PPT
premiere
PTT
pv3d
PWA
Python
Raspberry Pi
react.js
reCAPTCHA
Restaurant City
RIOBOT
RoboInfo
robot
ROBOT魂
rockman
rockman X
RQ-Star
RWD
S.H.E
S.H.Figuarts
S市集
SCANDAL
scratch
Scss
SDCS
SDX
Semantic UI
SEO
showtenki
simpleXML
SketchUp
slideshow
sliding doors
spotlights
SQL
SQL Server
srw
SRW OG
star wars
Sublime Text
Super Heroes
Super MiniPla
Super Robot超合金
Supergirl
svg
switch
SyntaxHighlighter
TapFighters
TenkiMaps
TibaMe
Titanium
TP合金
TweenMax
twitter
U-Mobile
UCD
UI
UiGathering
Uniform Map
Unity
Usability
UX
video
vimeo
vQmod
Vue.js
WBC
WCF
weather
weather icon
weatherrisk
web
Web Design Theory
WebApp
WebConf
widget
Win7
wingzero
Wordpress
XAMPP
xml
XMLHttpRequest
Xuite
Yahoo API
Yahoo open hack
Yahoo!
Yam
YouTube
ZOIDS
