Littile Sunshine

I don't want to be remembered, I just don't want to be forgotten.

世界觀

| Comments

之前曾有面試實習時,我向面試官詢問說:「公司裡目前使用哪個程式語言比較多呢?我進去的話主要會是寫哪些語言?」對方回答我說:「我覺得用哪個語言不是那麼重要,語言只是工具而已。」跟一些教授聊天時也會有類似的說法,感覺一些年紀較大,寫較傳統程式語言(譬如C?)的工程師都蠻會有這種想法,但自己總不是很認同,又說不上來是什麼感覺。

學日語的時候,日語老師說,學習一個新的語言,其實不只是在學如何去用這個語言,其實也默默地在學習背後的文化,譬如在日語當中,對於不同的人,必須參酌彼此的關係使用不同程度的敬語,所以要把日語說的好,你必須要去學著去認知你身處的社會地位,來說得恰當、說得有禮貌、說得很符合你的身份地位。

又想到 1984 當中,有一個語言叫做新語,新語是簡化過後的英文,老大哥為了控制思想,很多原本可以描述比較複雜思考的語言和字彙,都漸漸地被簡化合併,當人跟人溝通一些觀念時,能用的字彙變少,變得會不知道要怎麼去形容,很多複雜的概念也會就此消失,進而去控制人們的思想,這也是我第一次知道這個概念,「語言能去影響思想」的這個概念。

打得這麼瑣碎凌亂,就是最近在想,程式語言其實也跟一般人說話時的語言很像,去學一個程式語言,也是在學著怎麼用這個語言去思考,前陣子上泰安老師的 React JS 課(ReactJS 資料流寫起來也是蠻有趣的),老師說的一句話真的很打動我,他說:「語言變化的這麼快,尤其是前端,那我們要怎麼去判斷說是不是該去學那個新的語言?那就要看他是不是有去改變你的世界觀。」那時候我才突然意識到原來這就是我的感覺,為什麼我那時候會喜歡上寫 Ruby,這是因為我很喜歡 Ruby 帶給我的嶄新的世界觀,還有很喜歡 Ruby 社群的感覺。(MINSWAN, There’s more than one way to do it.)

我學 Haskell 的時候,也為 To iterate is human, to recurse divine. 痴迷了一下,沒有暫存變數,全都是層層 pure call function 到最底層,但是到了要跟使用者 IO 做互動,會對外部有副作用的時候,對於 Haskell 怎麼去處理這部分就掌握的不是很好,所以到最後沒有完全踏入其中,但是 Ruby 相對來說,我覺得自己能夠掌握的比較好,也更能體會在寫 Ruby 時開心的感覺。

最近,小記一下。

五倍紅寶石 - JS & Jquery 課

| Comments

講師: Kuro Hsu

課程大綱: https://5xruby.tw/talks/JS-jQuery-2016-3

之前寫網頁時,總是拼拼湊湊得從各個地方拾起如何去寫 Javascript,要操作 DOM 的時候,總是在 try and error 中學,在這次課程當中,重新把 JS 的概念重新梳理了一遍。

最有印象的後面在講述 jQuery 動畫的時候,初學者可能會覺得 slideDown() 和 slideUp() 只是滑動方向的不同,但是其實 slideDown() 是顯示出現在畫面中,slideUp()則是隱藏,反而跟方向不太有關係,還有 HTML 當中每個元件的 class 屬性當中,前面的會被後面的覆蓋掉,假設說有個按鈕

1
<btn class="disable">

配合一些使用者觸發事件當中,我們可能會希望他變成可以按,此時我們不用特地去移除掉它原本的 disable,只要再加上 enable 這個 class 即可,這種特性在配合做動畫時特別好用。

還有許多使用 Jquery 動畫效果細節,老師都很仔細的說明清楚,整理一些大家容易混淆的 function,並準備很多範例 code 給我們練習,實在獲益良多。

五倍紅寶石 - HTML & CSS 課

| Comments

講師:Amos

課程大綱:https://5xruby.tw/talks/css-html-2016-3

筆記 On GitHub: https://github.com/vicky-sunshine/HTML-CSS-Lecture

這次課程請 Amos 老師來教 HTML 和 CSS,之前在做網頁的時候常常都是套別人的模板,有時候想改個設定,都覺得怎麼調都不到位,畫面變得亂七八糟,想自己重刻一個又覺得不知該如何下手。

這次上課老師從 HTML 最基本的 tag 開始,仔細的穩紮穩打,不時補充一些 Insight,自學的人往往在堆疊 HTML 的時候,用了一堆 div,如果選用一些更有語意的 tag 來堆疊,譬如使用 <strong> 取代 <b><em>取代 <i>,標題與文字內容使用<h1><h2><p>這樣的階層關係取代層層的div,這樣不只容易維護 code ,更能增加 SEO。

另外,新手常常對 position 的運用感到苦手,老師也用清楚簡單的例子來敘述 relative 和 absolute 之間的細微差異,relative 像是排隊的人潮當中,有些人不喜歡排好,會站得比較偏左偏右(相對於資料流的偏離),absolute 是不管隊伍直接站在空間中的某個位置(抽離資料流,定位相對於父層)。

老師也常現場展示如何手刻出網頁,並說練習很重要,他自己平常的興趣就是找些圖片或樣板,自己嘗試刻出,透過不斷的切版練習來釐清自己的觀念,感覺 Amos 對這門技術真的充滿熱情,講述自己的發現和經驗時也都非常開心,眼睛閃閃發光。

巫師3

| Comments

《巫師3》 完全是這幾年RPG的巔峰,比起看門狗或是GTA5,《巫師3》更讓我沈醉不已,整個遊戲或者是他的小說《獵魔士》,都在敘述人生路上,遇上各個事件時,你要如何去「選擇」。

不像一般的遊戲,你所做的選擇只可能關乎當下或是只影響最後結局動畫,但是在這個遊戲當中,你可以感受到之前做的選擇,對於整個後面的故事影響極大,環環相扣環環錯,有些選擇看起來當下是好的,但是在遊戲後頭會導致非常嚴重到你意想不到的後果,令你感受痛苦,甚至是說每個選擇都會有所損失,沒有最佳解,只能「兩害相權取其輕」,也有些好的選擇會在未來的某個時刻給你feed back,讓你覺得這真的是「太好了,那時候有這樣子幫他」,玩家在這個遊戲中對於每個選擇都會很慎重的思考,而在「兩害取其輕」的這個遊戲命題之下,遊戲裡的許多支線都非常引人入勝。

以下有雷。

This World

| Comments

看到 CY 的手寫字:

這世界總是讓我挫折,但我還不想離開它。

It baffles me, this world. But I don’t want to leave it yet. — Olive Kitteridge

我想很多時候,我們都在心裡死去很多次;但知道還有某些緣故,因此我們活著。 最近的情況使我對此感觸良多。

雖然沒有追 Olive Kitteridge 此部影集,但是這句話讓我想起了一部老電影 Seven,中文譯名是火線追緝令/七宗罪,最後老警探 William 說的一句話:

海明威說:「這世界是如此美好,值得人們為它奮鬥。」,但我只同意後半句。

Earnest Hemingway once said : the world is a fine place,and worth fighting for. I agree with the second part.

William 從事警察工作很多年,總是對這世界人性的罪惡,感覺很無力,不管抓了多少犯人辦了多少案,犯罪還是層出不窮、人們還是一樣冷漠,所以自己也冷漠了起來;相比之下新來的警官 David 就顯得正義感,一直希望自己的作為能為這個世界改變什麼。這兩人在劇中的兩種完全不同的人生觀是鮮明的對比。

感覺自己總是在這兩種人生觀中徘徊,有時候對很多事情好無力沒有能力去改變它,又會希望自己能成長茁壯去做些事情來改變,想到劇中 William 和 David 這麼努力在抓連環兇手(兇手每一項犯案都是以七宗罪為名),結果 David 最愛的妻子卻被殺害,歹徒還將頭給他看,最後 David 受不了「憤怒」地以私刑殺了歹徒,成就了歹徒七宗罪的犯罪藝術,真的是很能感同身受那種憤怒、那種無力、那種難過。

William 最後也被 David 的事情觸動,在影片結束時說了這句話。

雖然現在自己是 David ,有一顆火熱、對很多事情看不慣的心,又很容易衝動誤事,但希望自己能夠慢慢地努力地使自己成長,能夠去爭取對抗,然後不要在成長的時候變得冷漠,要保有同理心,像最後的William 一樣,依然繼續奮鬥。

| Comments

我正在忙著流失水分,可以幫我澆一下花嗎?」

「什麼花啊?」

「我啊。」

Build Gem Note

| Comments

嘗試自己做gem,但是build完之後,會出現

1
2
LoadError: cannot load such file -- weatherscout
from /Users/Hsnl/.rvm/rubies/ruby-head/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:in `require'

後來發現是因為lib底下最上層的檔案沒有跟gem的名字一樣 下面 tree 中兩個粗體字就是應該要跟gem名稱一樣

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.
├── Gemfile
├── Gemfile.lock
├── LICENSE.txt
├── README.md
├── Rakefile
├── bin
│ └── weatherscout <==
├── lib
│ ├── weatherdesc
│ │ ├── daily_weather.rb
│ │ └── version.rb
│ └── weatherscout.rb <==
├── spec
│ └── weatherdesc_spec.rb
└── weatherscout.gemspec <==

未來想改善一下weatherscout model的部分 想加入weekly weather,而weekly和daily又有好多重複的部分,還沒決定這邊怎麼處理 但是應該都會放在同一個module裡面 這裡memo一下想用的寫法,將同個module的class放在不同檔案(dependency一向有點麻煩)

http://stackoverflow.com/questions/12035057/breaking-ruby-module-across-several-files

另外version要怎麼update也另外記在這

Semantic Versioning (semver.org): MAJOR.MINOR.PATCH http://semver.org

Increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

Christmas

| Comments

一直想用毬果做聖誕樹,所以這次就跑去撿個幾顆回來

忘記拍未加工前的照片和仕事中的過程了,只好就結果做記錄 ><

前一個禮拜為大家特製了幾個吉祥物~