2013年10月19日 星期六

如何有系統的練習滑板技巧: Way To Skateboarding

說起滑板這項極限運動,當初接觸滑板是從國中開始的,某個朋友在路上撿到了一塊滑板,從而挑起了我對這項極限運動的興趣,於是從國三到高三這段時間,只要想到有時間可以練板,就會立刻拿著滑板去附近的廣場或是公園練習,平常則是在家看教學錄影帶看到成痴。到高三時,我已經能夠做出 Ollie, Pop Shove it, Kick-flip, Nollie, Ollie 180 Back 等等技巧。

當時,並沒有覺得練習滑板需要特別思考練習的方式或是調整各種因素來達到較好的績效,因此時常因為看到某些好玩的招式就開始練起來,結果想當然成效也都不佳。 所以能夠練起來的招式,大多是胡亂練起來的。

這邊所謂的胡亂練,就是只是不斷的重複練習,卻沒有進一步思考練習的方式,或從其他角度來幫助練習更有效率。

開始寫這篇文章主要是想將最近的一些思考寫下來,供一些有興趣練習滑板技巧的朋友能夠減少練習時摩擦力以及更容易抓到各種招式的訣竅,更重要的,用最少的時間達到更好的成效。




準備工作

1. 首先你需要檢視你是否買到適當的滑板

如何挑選一塊適合自己的滑板?先從最重要的板子 (Deck) 說起,挑板子要依照自己腳大小去挑選,千萬不要聽別人說幾號最適合就直接衝去買,挑到太寬的板,雖然滑行會較為平穩,但是要做地板招式就會特別難,因為板子重,剛開始練習 Ollie 的托板動作會很難抓到訣竅。

簡單的說:

寬的板:  雖然較重,但滑行平穩,做完招式著地也會比較穩,若做 Kick-flip 踢板或是 Ollie 相對的腳的幅度就要特別大,也會比較吃力。

窄的板: 由於重量較輕,要做 Ollie (臀跳) 就會比較容易,因為板子輕的緣故,前腳托板就會比較容易將板子的後半帶到空中。

在這邊以我自己來說,通常是挑 7.5" 到 8" 左右的板子 (Deck) ,寬度大概是比自己腳掌再窄個 8-10 公分的板,買板子一定要先試站看看,試的時候不要站全滿,試著站半滿 (也就是用腳尖站板子的中間試試看),只要不會覺得太窄不好站即可。

另外,板子凹面的弧度是否足夠也是很重要,這個弧度會影響到你托板時,所產生的摩擦力是否足夠。

這邊有個國外購物網站提供的標準可以參考:





選擇輪子:

較大的輪子: 比較容易在崎嶇的路面上滑行,但相對的也會增加板子的重量,做招式會比較吃力。

較小的輪子: 做招式比較容易,但為了避免被路上的小石頭卡到跌倒,盡量還是不要選太小的輪子。


如何選購其他部分,這邊有較完整的 Guide 可直接參考 - "Skateboard Buying Guide"。



開始練習

如何練習滑行,我相信只要稍微有一點平衡感的人練一下就會了,這邊直接帶過... 直接講 Ollie


1. Ollie 豚跳練習技巧

Ollie 是幾乎所有招式的基礎功,只要 Ollie 練得夠熟,要進一步練習其他技巧如 Kick-flip, Pop Shove-it 就會相當容易。

這個階段主要是練 "點" "托" 的節奏感,所有的空中招式都是以這個節奏感為基礎。

Ollie 的訣竅在於,前腳站板大概在 2/3 處,托板要做確實,若還沒有辦法抓到托板的感覺,練習時先不要跳太高,練輕跳即可,這樣會比較能夠抓到托板的感覺,左腳 "點"、右腳 "托"的節奏感抓住之後,就比較能夠跳起來了。

在跳起來之前,先練習後腳踩板,讓板子前半翹起,一直不斷的反覆練習踩板的動作去抓後腳踩到地面的感覺。

再來就是練習托板的動作,板子前半翹起時,用前腳往前刷,刷的距離越多,越能將板子帶上。

如果你還抓不太到訣竅,建議你找一個可以扶著的欄杆練習,這樣練抓感覺最快,而且也不容易摔。

若開始能抓到"點","托" 的節奏感,並且能夠托板至空中,就可以開始練習跳躍一些無形的障礙物,如地板上的線條。 你也可以用粉筆在地板畫上一個線條,豚跳時就假想跳躍這個假想的障礙物,並觀察滑行速度是否足夠,以及著地時,落點是否有超越線條。

更進一步,如果你已經能跳得夠高,就可以開始跳一些真實的障礙物,如磚塊、寶特瓶等等。 換成跳躍真實障礙物時,跳躍的時間點,會比直接跳線條更早一些,且速度一定要夠快。

如果你還在 Ollie 階段,千萬不要 Ollie 練得不夠熟,就直接去練跳樓梯、障礙物、Pop Shove-it 或 Kick-flip,因為如果板子的物理動態抓得不夠熟,是不可能練成其他翻板的招式的,甚至會增加跌倒受傷的機率。

那麼 Ollie 要練到什麼樣子才算熟? 

1. 做 Ollie 時的速度夠快
2. 著地時,踩得夠穩
3. 方向正確不會偏掉,並不會讓板子停住。
4. 有托滿板,托板做到紮實,板子在最高點的時候是平的
5. Ollie 跳得夠高



以下有個非常詳細的教學影片 (Updated 2013/10/23)





Checkout more on http://5k473.blogspot.tw






2013年3月7日 星期四

PHP - AssetToolKit

https://github.com/c9s/php-AssetToolkit 



這是一套筆者最近開發的 asset framework。


這是個獨立的 asset 管理工具,不需要安裝或使用 symfony 或 zend 之類的 fullstack web framework 就可以直接使用,可以很容易的嵌入在你自己開發的 application,也可以直接嵌入在你 single page php application 裡。

如果只想要靜態檔案,不需要動態呼叫,也可以利用 command-line 的 compile 命令,先把所有檔案編譯起來。

這有點類似 requirejs, 但 requirejs 沒辦法跟 php 模組整合, 這個工具是可以讓你的 php 模組都可以有自己的 assets,然後可以把不同模組底下的 assets 統合編譯壓縮起來成不同的檔案,來加速 client 端下載靜態檔案的速度。

以往,要在 PHP Application 內組織好 asset files 如 js, coffee-script 實在是件難事,因為每個框架的架構都不相同,要用 requirejs 也會有存取路徑的問題需要處理。

使用 AssetToolkit 的話,你可以將 assets 至於任何地方,只需要透過單一集中式的設定檔,就可以動態將所需要的 asset 載入。

舉例來說,我有一個 web application MyBlog:

apps/MyBlog


底下可以放置一些 assets,分別是:

apps/MyBlog/assets/jquery
apps/MyBlog/assets/jquery-ui

現在我另外寫了 plugin:


plugins/Post/assets/post-assets # 專為 Post 寫的 js 跟 css
plugins/News/assets/news-asset-a
plugins/News/assets/news-asset-b

各位知道,既然設計成 plugin ,那就是可以抽插代換的插件,透過 AssetToolkit 的話,各插件的 asset 載入,可以直接寫在各 plugin 的初始化區塊,所以若今天把 News plugin 或 Product plugin 拿掉,也都不會影響到整個應用程式的 assets 載入。

此外,AssetToolkit 做的不只是載入,還可以幫你透過 CoffeeScript filter, SASS filter, SCSS filter 等等,自動幫你編譯轉換並且壓縮。

2013年2月24日 星期日

最近複習 Core Animation 的心得

最近複習 Core Animation 的心得: Cocoa 的視窗架構真的很優秀,程式碼簡潔清晰,功能強文件又完整 :)

不像以前寫 X window manager,X11 整個程式碼就是在大亂鬥,一堆 workaround ,然後因為是 C 語言只能一串串 struct 拋來拋去的,後來的 xcb 也沒好到哪裡去。:& 那些開發 Qt 的人真的很厲害呀...

其實以前寫 .NET,視窗開發也沒這麼威,也缺乏 Apple 公司的美感

雖然 Jobs 性格很糟糕,但 Jobs 統合 A 級怪咖起來做事情的能力倒是很優秀,做出來的東西果然就是很不一樣,相當前衛且創新。

至於微軟公司,做出來的東西則是很數學、很計算機、很制式,別人有什麼 (Java) 就做什麼 (C#)。 (誤)
1988 年的時候,能像 Jobs 大膽在新成立的 NeXT 公司採用 Objective-C 來進行開發的人應該是少之又少,但這個二十幾年前的決定卻奠定 Cocoa 的優良架構...

Tim Cook 雖然能搞工業工程、生產線,但對技術品味以及產品品味簡直是遭透了...每次手機要拿出來撥號就看到"計算機" ...

以前什麼都不懂,只覺得 X11 很酷,現在比較有經驗了一些,才慢慢開始有一些技術架構的品味。 以 X Window 現有的架構跟現況,我猜要追上 Cocoa 的程度恐怕還要幾十年..

2013年1月24日 星期四

Gentoo Linux: What to do if you deleted package.use file accidentally?

In Gentoo Linux, package information is stored in /var/db/pkg

And the installed USE flags is stored in `USE` file, for example: /var/db/pkg/dev-lang/php-***/USE.

To restore these USE flags back to your /etc/portage/package.use file, simply type the command below:

cd /var/db/pkg/ && ls -d */* | while read pkg ; do echo -n "$pkg " ; cat $pkg/USE ; done >> /etc/portage/package.use

2013年1月19日 星期六

WIFLY 無線網路頻寬比我想的還慢

需要用無線網路,不得已購買了 WIFLY 月卡 ($ 500),下行只有 0.83Mbps 的速率。

本來想要買年卡 ($ 1200) 沒想到年卡居然限制只有平板、手機可以使用。

以前曾經被年卡騙過,買了才發現居然筆電無法使用,結果還搞了很麻煩的退費手續,搞了一個月費用才退給我。

以 speedtest.net 為證:


然後 ping 還會掉封包:


2013年1月10日 星期四

PHPBrew 日本語 README


PHPBrew

PHPBrewは異なるバージョンのPHPをホームディレクトリにビルド(build)とインストールすることができます。
環境変数の管理もでき、個人の需要に応じてバージョンを切り替えて利用することが可能です。
PHPBrewのできること::
  • PDO、mysql、sqlite、debugなど様々なバリアント(variant)を持つPHPをビルドします。
  • apache phpモジュールをコンパイルし、ヴァージョンごとに分けます。
  • 異なるバージョンのphpをホームディレクトリにインストールするので、ルートパーミッション(root permission)は必要なくなります。
  • 簡易にバージョンを切り替えることができます。しかもbash/zshシェルと統合されました。
  • 自動機能検知。
  • system-wide環境に複数のPHPバージョンをインストールできます。

支援OS

  • Mac OS 10.5+
  • Ubuntu
  • Debian

必須環境

  • PHP5.3
  • curl
  • gcc, binutil, autoconf, libxml, zlib, readline

Mac OS X 必須環境

MacPorts使用者:
port install curl automake autoconf icu $(port echo depof:php5)
HomeBrew使用者:
brew install automake autoconf curl pcre re2c mhash glibtool icu4c gettext jpeg libxml2 mcrypt gmp libevent
brew link icu4c

Ubuntu/Debian必須環境

sudo apt-get install autoconf automake curl build-essential libxslt1-dev re2c libxml2-dev
sudo apt-get build-dep php5

Cent OS必須環境

Cent OS必須環境の設定
sudo rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

# phpがない場合
sudo yum install --enablerepo=webtatic php php-xml
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
sudo rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
sudo yum install --enablerepo=rpmforge re2c libmhash

PHPBrewのインストール

PHPBrewをダウンロードしてください:
curl -O https://raw.github.com/c9s/phpbrew/master/phpbrew
chmod +x phpbrew
sudo cp phpbrew /usr/bin/phpbrew

基本用法

まずはシェル環境にbash scriptをInitします。
$ phpbrew init
そして次の行を.bashrc または.zshrc ファイルに追加します:
$ source ~/.phpbrew/bashrc
既知のバージョンを一覧表示します:
$ phpbrew known
Available stable versions:
    php-5.3.10
    php-5.3.9
    php-5.3.8
    php-5.3.7
既知のサブバージョンを一覧表示します:
$ phpbrew known --svn
古いバージョン(5.3以前)を一覧表示します:
$ phpbrew known --old

ビルド(build)とインストール

簡易にデフォルトバリアントのPHPをビルドとインストールします:
$ phpbrew install php-5.4.0 +default
こちらではdefault VARIANTセットをお薦めします。デフォルトセットは常用のVARIANTクラスを収録しています。最小限インストールの場合、default VARIANTセットを削除してください。
テスト:
$ phpbrew install --test php-5.4.0
debugメッセージ:
$ phpbrew -d install --test php-5.4.0

バリアント(variants)

PHPBrewはConfigureオプションを管理できます。VARIANTのクラス名を指定するだけで、PHPBrewはincludeパスとオプションを検知します。
PHPBrewは常用のVARIANTクラスを収録し、デフォルトのVARIANTセットを提供しています。 収録されているVARIANTクラスを確認するには、簡単にサブコマンドvariantsを実行して一覧表示を確認できます:
$ phpbrew variants

Variants:
    pear
    mysql
    debug
    sqlite
    pgsql
    cli
    apxs2
    cgi
    soap
    pcntl
    ... (etc)
最新のPHPBrewは2つのVARIANTセットを提供しています:
  1. default (最も常用のバリアント, 例えば:filter bcmath ctype fileinfo pdo posix ipc pcntl bz2 cli intl fpm calendar sockets readline, zip)
  2. dbs (sqlite, mysql, pgsql, pdo)
例:
$ phpbrew install php-5.4.5 +default+dbs
それ以外のVARIANTクラスのPHPをビルドすることも可能です:
$ phpbrew install php-5.3.10 +mysql+sqlite+cgi

$ phpbrew install php-5.3.10 +mysql+debug+pgsql +apxs2

$ phpbrew install php-5.3.10 +mysql +pgsql +apxs2=/usr/bin/apxs2
PDOはデフォルトで起動されています。
PHPとpgSQL (Postgresql)拡張モジュールをビルドします:
$ phpbrew install php-5.4.1 +pgsql
あるいはpostgresqlのベースディレクトリを生成してpgSQL拡張モジュールをビルドします:
$ phpbrew install php-5.4.1 +pgsql=/opt/local/lib/postgresql91
注意点:
  1. apacheのphpモジュールをビルドする場合、 モジュールディレクトリのパーミッションを変更してください。 例:/opt/local/apache2/modules/。 パーミッションは書き込む可能です。PHPBrewはパーミッションを変更することができます。 インストールした後、httpd.conf設定ファイルを確認し、PHPモジュールを切り替わってください。
  2. 現時点PHPBrewはapxs2 (apache2)しか支援しません。 複数のPHPをインストールした環境の下でapxs2 VARIANTを有効化したなら、apacheのconfファイルは以下のように示されています:
# LoadModule php5_module        modules/libphp5.3.10.so
# LoadModule php5_module        modules/libphp5.4.0.so
# LoadModule php5_module        modules/libphp5.4.0RC8.so
# LoadModule php5_module        modules/libphp5.4.0RC7.so
# LoadModule php5_module        modules/libphp5.4.1RC2.so
# LoadModule php5_module        modules/libphp5.4.1.so
# LoadModule php5_module        modules/libphp5.4.2.so
LoadModule php5_module          modules/libphp5.4.4.so
コメント化や非コメント化を利用して簡単にphp5 apacheモジュールを無効化/有効化にすることができます。 編集したあとは必ずapache http サーバーを再起動してください:)

エクストラオプション

エクストラconfigure引数を渡すには、以下のようにしてください:
$ phpbrew install php-5.3.10 +mysql +sqlite -- \
  --enable-ftp --apxs2=/opt/local/apache2/bin/apxs

使用と切り替え

使用 (switch version temporarily):
$ phpbrew use php-5.4.0RC7
切り替え (特定のバージョンをデフォルトとして切り替えます)
$ phpbrew switch php-5.4.0
終了:
$ phpbrew off

インストールされたPHPを一覧表示します

$ phpbrew list

PHPから拡張モジュールをビルドとインストール

(インストール手順の後):
phpbrew install-ext pdo
phpbrew install-ext mcrypt --with-mcrypt=/opt/local

拡張モジュールを有効にします

pecl install mongo
phpbrew enable mongo
enable コマンドはconfig {current php base}/var/db/{extension name}.iniを作成し、拡張モジュールを有効にします。

PHPBrewのアップグレード

PHPBrewをアップグレードする場合、 self-update コマンドを実行するだけで済みます。 このコマンドは最新バージョンのgithubのmaster branchをインストールすることができます:
$ phpbrew self-update

インストールされたPHPファイル

インストールされたPHPファイルは~/.phpbrew/phpに置かれます。例えば、php 5.4.0RC7の場合は:
~/.phpbrew/php/5.4.0RC7/bin/php
設定ファイルは以下の位置に置く必要があります:
~/.phpbrew/php/5.4.0RC7/etc/php.ini
拡張モジュールの設定ファイルは下記の位置に置く必要があります:
~/.phpbrew/php/5.4.0RC7/var/db
~/.phpbrew/php/5.4.0RC7/var/db/xdebug.ini
~/.phpbrew/php/5.4.0RC7/var/db/apc.ini
~/.phpbrew/php/5.4.0RC7/var/db/memcache.ini
... etc

system-wide環境のPHPBrewインストール:

まずは、sudoをルートユーザにする、またはルートユーザでログインします:
sudo -i
そしてPHPBrewのbashrcを初期化します:
phpbrew init
PHPBrewのパスを指定のパスにエクスポート(export)してから、 ~/.phpbrew/init を編集してください。
export PHPBREW_ROOT=/opt/phpbrew
PHPBrew bashrcをソース(source)する。
source ~/.phpbrew/bashrc
インストールsystem-wide PHP:
phpbrew install php-5.4.5 +default +dbs
これでPHPファイルは /opt/phpbrew の下にインストールされました。 PHPBrewがビルドしたPHPをユーザーに使用させるには、bashユーザーがphpbrew/bashrcを読み込む前にPHPBREW_ROOT 環境を/etc/bashrc または/etc/profile.d/phpbrewにエクスポートする必要があります。。
export PHPBREW_ROOT=/opt/phpbrew
source /opt/phpbrew/bashrc
システムの安定を保つため、rootを使ってPHPをインストールしてください。
非ルートのユーザーは新しいPHPをインストールまたは切り替えることができません。
ファイルは非ルートユーザーでインストールする場合、パーミッションを修正してください。
chown -R root: /opt/phpbrew

バージョン情報プロンプトの有効化

PHPバージョン情報をシェルプロンプトに追加するには、"PHPBREW_SET_PROMPT=1" 変数を利用してください。
デフォルトは"PHPBREW_SET_PROMPT=0" (無効化). 有効化にする場合、~/.phpbrew/bashrcをソースする前に、下記の行を~/.bashrc ファイルに追加してください。
    export PHPBREW_SET_PROMPT=1
バージョン情報をプロンプトに埋め込む場合、current_php_version シェル関数を利用してください。この関数は.phpbrew/bashrcの中に定義されています。 そしてバージョン情報をPS1変数に設定することができます。 例:
    PHP_VERSION=$(current_php_version)
    PS1=" $PHP_VERSION \$ "

既知の問題点:

ハッキング(Hacking):

まずはOnionをインストールしてください:
$ curl http://install.onionphp.org/ | sh
依存性(dependency)インストール:
$ onion -d install
初期化:
$ php bin/phpbrew init
既知のバージョンを一覧表示にします:
$ php bin/phpbrew known
インストール:
$ php bin/phpbrew -d install --no-test 5.4.0RC7
PHPBrewが実行している動作を表示します:
$ unset -f phpbrew
$ which phpbrew
pharファイルをリコンパイルします:
$ bash scripts/compile

PHP配布先

コミュニティ

お気軽にirc.freenode.netにて#php-twの話題に参加してください。

協力者

  • yftzeng
  • Gasol

開発者

Yo-An Lin (c9s) cornelius.howl@gmail.com