日本動畫在台灣收視的困境(上):台灣現有的正版管道

· Comments

我是一個日本動漫迷(俗稱的宅),從兩年前開始,看動畫成為我一個很重要的娛樂,現在是下班回家就會看至少一個小時。

一般來說,動漫迷取得動畫的管道主要都是盜版網站,iTunes App Store 和 Google Play Store 上面也一大堆盜版平台,而且一直位居排行榜的前面。但我做為一個社會人士,既有工作(所以知道任何東西都有代價),又有經濟基礎,自然認同為娛樂付出金錢是理所當然的,因此,近一年來我一直在找尋正版動畫的管道。

而事實上,台灣也的確有正版管道,但我仍然感到不滿意,並且深刻感到在台灣要收視日本動畫的困難。以下,先介紹目前在台灣有的正版管道,接著提出為什麼不滿意,以及我認為應該怎麼解。


228 期間的台中民軍與二七部隊

· Comments

前幾天無意間在 Wikipedia 翻到一個條目,連結的標題叫做「臺中人民政府」,歸類在「中華民國時期的其他地方政權」之下。這麼奇怪的標題吸引了我的目光。點進去轉到「二七部隊」,裡面是這麼寫的:

二七部隊,又稱台灣民主聯軍,乃台灣台中地區於二二八事件發生後,於1947年3月6日由謝雪紅、鍾逸人、蔡鐵城等多人所共同領導的反抗國民政府的武裝民兵(或稱民軍、人民軍)組織。二七部隊是二二八事件當時,規模最大、維持最久的反抗勢力組織,同時也是當時台灣民眾口耳相傳關注的焦點。

維基百科也引用了二二八紀念館的經緯,不過跟維基百科的有一點微妙的不同,兩相比較會有很明顯的感覺,所以以下主要是從二二八紀念館的紀事整理出來的。


台灣日光節約時間之考據

· Comments

去年(2013)我寫過一篇文章是〈台灣時區變換的八卦〉,當時寄信去 IANA TZ Database 的 mailing list 提 patch,一年後終於改了,原因是我給的 link 裡面有 non-ASCII 文字(非英文數字的文字),為了這個,所以 Time Zone Database 必須修改成 UTF-8-compatible 的格式(可以容納非英文數字的文字),所以才拖到現在。

因為最近收到回信,所以我又去研究了一下台灣的時區,這次重點是放在日光節約時間。

在 JavaScript 實作 Mixin / Concern

· Comments

有這樣的需求:

  • 某兩個 class 要共用某一組 functions / variables
  • 發現到 JavaScript 只能單繼承,不支援 mixin (module)

CoffeeScript 也沒能很好解決這個問題。不過在 CoffeeScript Cookbook » Mixins for classes 這裡提了一個很有趣的做法,就是先混成兩個要繼承的 classes,再給新的 Class 繼承。缺點是 mixin 有更動的時候,不會反映在之前 include 過的 class 裡面。

土砲 Mixin

於是找到了 Addy Osmani 大師的 Learning JavaScript Design Patterns > Mixin Pattern 這篇文章,裡面是借用了 Underscore / Lo-Dash 的 _.extend 來實作的,看來非得這樣做不可了。

寫起來會像這樣:

concern.js.coffee
Function::include = (mixin) ->
  _.extend(this.prototype, mixin)
duck.js.coffee
this.Duck =
  quake: ->
    "quake quake"
  
  walk: ->
    "walks like a duck"
yazi.js.coffee
class Yazi
  @include Duck
kamo.js.coffee
class Kamo # "duck" in Japanese
  @include Duck
app.js.coffee
yazi = new Yazi()
kamo = new Kamo()

yazi.quake() #=> "quake"
kamo.quake() #=> "quake"

此外也可以在新的 class 裡面覆寫 function / variable 就是了。

然而這種做法跟第一種做法一樣,mixin 有更動的時候,不會反映在之前 include 過的 class 裡面。

要注意的是,因為我們專案用的是 CoffeeScript,所以寫起來像 @include 這樣子看起來很簡潔有力,如果換成 JavaScript 的話會變得比較醜一點,以下是 CoffeScript 編出來的結果:

kamo.js
var Kamo = (function() {
  var Kamo = function() {};

  Kamo.include(Duck);
  
  return Kamo;
})();

var kamo = new Kamo();
kamo.quake(); //=> "quake"

ActiveSupport::Concern 化

當然也可以弄得像 ActiveSupport::Concern,我是說 included callback:

concern.js.coffee
Function::include = (mixin) ->
  functions = _.omit(mixin, "included", "classFunctions")

  _.extend(this.prototype, functions)
  _.extend(this, mixin.classFunctions) # insert class functions in class itself

  # Call "included" callback function if available
  if typeof mixin.included is "function"
    # call included(mixin, base)
    # this = the mixin included, base = the class which called `include`
    mixin.included.call(mixin, this)
duck.js.coffee
this.Duck =
  quake: ->
    "quake quake"
  
  walk: ->
    "walks like a duck" 

  included: (base) ->
    console.log "mixing this class as a duck: #{base}"

  classFunctions:
    kindOfDuck: -> true
kamo.js.coffee
class Kamo
  @include Duck
app.js
// Console prints "mixing this class as a duck: function Kamo() { ..."
Kamo.kindOfDuck() //=> true

var animal = new Kamo()
animal.quake() //=> "quake quake"

至於怎麼弄到可以像 Rails 4.1 的 Concerning 我還沒想出來……。

第一次上 Amazon Japan 買 CD 就上手

· Comments

一般來說在台北要買日本進口 CD,通常是去西門町的九五樂府訂。不過這次我想要嘗鮮試試看 Amazon JP,一來是因為九五樂府網站沒有加密我不安心,二來是要跑去門市取貨我很懶,第三是有一張專輯在九五樂府的網站上沒有得訂。既然如此,就試試看 Amazon JP。

結果一試之下不得了了!算一算加運費還跟九五樂府差不到 100 塊錢台幣,而且到貨超快!

2014-05-28 00.53.59 HDR.jpg

向 RailsGirls Taipei 社群的致歉

· Comments

本人莊育承,Twitter 代號 @yorkxin ,在此向 RailsGirls Taipei 主辦單位以及主辦人之一的 Manic (@ManicLF) 致歉。

我在上一篇文章〈RubyConf Taiwan 2014 「女性歧視」事故再掀 Code of Conduct 風波〉裡面,拋出了這樣的疑問:

RailsGirls 在全球遍地開花幾乎都是歡迎男性的(只要你帶一個女生來,名額不足則女士優先),而 RailsGirls Taipei 包括進階班 LTRT - Let's Try Rails Together 至今公開的活動都只限女性,男兒當自強,女生就來手把手帶練功,是否也算性別歧視?在台北「你想跟我們學 Rails 就切雞雞」?

並且刻意在 Twitter 上四處質疑這樣的正當性何在。

致歉的原因,是因為這種事情,其實我可以直接問 RailsGirls Taipei 主辦人 Manic ,我就可以得到這樣的答案:

的確是很合理的原因。

於是,先前我大聲質疑這點的正當性,還和社群朋友在 Twitter 上吵架,現在看來,都是可以避免的。

本人在此為我的魯莽道歉,也希望相關人士可以瞭解我的疑慮、我為何質疑,並諒解我。


瞭解這個原因之後,我便曉得,我能做的就是另外開一個 Workshop ,這個 Workshop 將不會以開拓特定族群的程式設計視野為優先,而是讓想學 Rails 的人可以直接加入。畢竟人多好辦事,平行運算跑得快。我希望 Ruby 社群可以成長,可以成為對新手友善的社群。

並且在這裡要先透露,我已經和幾位朋友開始規劃 Workshop ,具體細節確定之後,近期會公開。

Update: Ruby on Rails Outreach Workshop Taipei #01 現在已經開放報名,除了台北場之外,台南場和高雄場也會陸續展開。