發表文章

目前顯示的是 九月, 2015的文章

Laravel 在 Eloquent alias table 名稱

在 Laravel 撈資料的時候發現有時候 Eloquent 很不好組,尤其是有 sub query 的時候....,後來用了 DB 的方式去做 Query:
$query = DB::table('xxx_xxxx AS a')
     ->where(
         'a.GG',   '=',
         DB::raw(
            '(select max(GG) from xxx_xxxx as b where xxx_xxxx.`no` = b.no)'
         )
)
但我後來發現原來 alisa 在 Eloquent 有方法耶...
在 Eloquent 使用 Alias,只需要使用 from 的這 static method,比方說上面那一句可以改成下面這一句,後面的 where 幾乎是沿用就可以了。

$query = XXXXXXX::from('xxx_xxxx as a')
$query-> where(
'xxx_xxxx.GG,  '=',
DB::raw(
'(select max(GG) from xxx_xxxx as b where xxx_xxxx.`no` = b.no)'
)
); 堅持要用 Eloquent 的原因是,之前改了一些 getter/setter (accessors and mutators),如果今天用 DB:: 的方式去撈資料,我改寫的 getter 好像就沒有作用了,哭...,還好後來還是有找到方法,硬是全用 Eloquent 的方法取資料。




關於買樣板來製作網頁這一件事情

穎(@look_me08)張貼的相片 於 2015 年 9月 月 23 4:38上午 PDT 張貼
(因為不放圖顯得很空洞,所以放一張今天晚上在左道咖啡的照片)

今天買了一套 Admin 介面的樣板,我想起這件事情,還滿值得研究研究談一下想法。事實上我很常買樣板,甚至有些我根本也沒有用到,不過買回去第一件事情,想想別人為什麼可以做樣板做到可以拿來賣錢,一定有它方便於我的地方。

首先,完整性不用講,常常我們腦袋裡想的天馬行空,後台想要多牛B就多牛B,但就是不想動!? 對吧,於是幻想就停留在那一刻,然後刻出來的東西照樣平庸。

接下來是樣板有時候是『學習的樣本』,你可以買到用 Angular 製作的樣板,bootstrap 一樣,很多很多,你可以透過套過樣板知道別人怎麼把這一堆前端的 library, plugins 『兜』在一起,就算手法不是很高明,但也是一種解決方案,千萬不要覺得這些事情很簡單... 前端是很苦工的...。

可以學但不要照單全收,有些樣板不一定是很有組織的程式碼,這樣也是挺合理的... 因為畢竟他可能只是在 demo 某一件事情,通常你買來可能還需要再整理過。

再來是學習使用現有的樣板套用在自己的系統上,不論你的 template engine 是什麼,趁機組織一下頁面可以共用的地方,分出哪些是東西是 layout, partial, widget, 或是 bla~bla~bla~,有助於一點點習慣程式喜歡『re use』的概念。


當然也有人會認為,買樣板沒有樂趣,很有可能撞板或是什麼的... ,我個人是覺得只限於後台或是內部系統會買。前台的話,我還是喜歡有設計過的網頁 :P

只是想起,有一次在做手機版網站,當時還菜,一直不懂為什麼手機上看我的網站,那顆 menu 的按鈕按下去之後,感應很緩慢,不知道有 fastclick 可以幫我解決手機上 click delay 的問題,這點,從樣板學來,所以我知道了有這個工具。

第二個經驗是,樣板使用的 plugin 有時候會讓我驚訝,『原來有這種工具!』的心情。

前端是一個做久了有時候會很沉悶的工作,但偶爾發現一些驚喜,內心還是會很澎湃的,也許有這樣的心情的時候,才發現自己已經是個有點懶散的老鳥了...,因為懶,所以我寧可刷個幾百塊錢買樣板,企圖得到一個系統看起來很完整,能 work,眼睛順眼的結果。


Rails Girls Weekly - JavaScript Basic For 6 Weeks(2/6)

圖片
(圖源: Railsgirls Taiwan 粉絲頁)

這週是 week2,講的內容是關於 JavaScript 的 dialogs box,還有一些條件判斷。

上課是還蠻輕鬆愉快的啦,希望大家都堅持的下去,可以一路上到 week6 :)

其實可以的話,看 readme 比較清楚。
github repo: https://github.com/winwu/javascript-basic-toturial/blob/master/week2/README.md


PPT:

『在 PHP 上學會自動化測試與實戰 TDD』 ... 下課後

圖片
前言
我自己剛開始在使用 phpunit 遇到的一些問題: (嚴格來說也不能說奇怪... 要說自己涉世未深..)
1. 效能問題 (越跑越慢, 甚至慢的奇怪).
2. Database 沒有設定好,設定錯誤導致應該要以 SQLite 而不小心跑成 MySQL.
3. 類別的 Mock 不會寫.
4. tearDown 的地方有時候會忘記.
5. 測試碼太多支時,會有點不知道怎麼組織 6. 會丟 Exception 的 function 不知道怎麼測,又不希望被標成 risky tests (phpunit 如果發現你的  測試 function 根本沒有 assert 時會出現的訊息) 7. 知道的 assert 太少 (雖然這完全是沒唸書的關係...)

上週末,去上了兩天小鐵(大澤木小鐵)的 TDD 課程,更了解 TDD 的連續兩天 workshop,算是非常有收獲,尤其七,八月以來,工作上的團隊開發也漸漸開始使用 TDD 開發,雖然很不熟練,用法用的亂七八糟,但是也是因為有過這些錯的經驗的接觸之後,來上課才更能瞭解什麼是 better way,我還蠻喜歡這種感覺的,就是我不喜歡從0開始,然後一直讓別人來教我什麼是好的, 什麼是對的,這樣的感受太不夠深刻了 :P 不犯錯的學習只會讓我覺得這件事情好像不難?! 然後挑戰性就失去了...


第一天講單元測試, unit test 算是很小的單元,一次只做一件事情的測法,這個算是剛學習測試最好上手 and 理解的。再來一些原則,像是 3A ... 還有教到一些重構,因為寫測試的時候,難免會邊重構, 邊寫測試,所以學測試,跟重構也有一點關係。(我也想起自從開始學 TDD 之後,也會開始對重構很有興趣,這真的是不知道為什麼 XD) 因為這堂課的關係,我才發現 phpstorm 好棒啊! 這些 refactor 的功能 sublime 都沒有.. 雖然有些殘念,不過接下來可以在專案重構時,也趁機學學使用 phpstorm。

(圖: 主辦單位準備的點心,這紅茶綠茶讓人想到測試就是紅燈, 綠燈不斷循環阿... 但記得最後 commit 上去要綠燈就是了~)

另外 phpunit 產出 coverage 報表非常的不錯,看到程式碼開始有一點覆蓋率之後,感覺就像是有在上班啊 (誤)

第二天著重在 BDD,只能說 BDD 非常有趣,大概…

Rails Girls Weekly - JavaScript Basic For 6 Weeks(1/6)

今天去五倍紅寶石講一場 JavaScript 基礎,因為這個課程分六週上,所以今天只是第一週,投影片在此。只希望來的人都有收穫,不要充滿挫折。。。 下班還願意學習的人真的不容易 :) 辛苦了!  

下週二一樣有 week2,到時候再分享新的文章。


Coursera 機器學習基石 第二講:Learning to Answer Yes/No [二元分類] 筆記 (很亂,不要看 ><)

圖片
這兩天看的是第二講

我可能還要再找週末時間整理吧(預計中秋連假...)
(目前在尋找好編輯數學公式的工具...)。

奧.. 我非常累,先睡
事情已經多到我覺得是我的極限了。


Coursera 機器學習基石 第一講: The Learning Problem 筆記

圖片
請大家忽略這篇吧...
這是記錄給我自己看的,筆記很亂,只有我自己看得懂 :P
林軒田老師的課真的很不錯,就以介紹 hypothesis 那一段來說,比 Ng 的課好理解些,或許語言真的有差吧...,雖然 Ng 的課有翻譯,可是還是有些吃力啊...

week1 講 Learning Problem,光是把影片看完,消化一下,筆記一下,大約 2-3hr 吧...
說實在還真的沒什麼把握有能力 pass 這堂課耶,程度落差大...
然後我真的睏了,沒什麼力氣整理筆記,這也是順手拿起來的紙張寫一寫...
(字醜得比國小生還醜..)


『機器學習駭客秘笈』 讀書心得 (上)

圖片
書目: 機器學習駭客秘笈
Machine Learning for Hackers - Case Studies and Algorithms to Get You Started
作者: Drew Conway, John Myles White
譯者:林威仰
出版社:歐萊禮

我一直在猶豫我到底要不要寫這篇心得,因為我到底能寫出什麼有幫助的事情我也不知道?!不過看看就好... 希望沒有浪費讀者太多時間。

關於你要看這本書的話,有幾個建議:
*這本書的範例是用 R 語言來解說,所以,比較優良的情況是,你有學過基本的 R 應該會更上手,不過也不用太擔心,第一章節會介紹 R 的安裝跟一些基本概念。
*這本書介紹了幾個常見的 Machine Learning 的方法,像是分類, 回歸, 資料分群, 最佳化。


## 前言
* 『機器學習是什麼? 抽象來說,是一系列的工具與方法,協助我們從各種記錄或資料中,萃取出其模式規則甚至是隱含其中的深層資訊。』- 第一頁。
* 這本書雖然用了『駭客』兩字,但不是我們心中所認為的那種駭客,而是指喜歡學習新技術,並且用來解決問題的人
* 機器學習涉及到非常多領域,基礎理論是數學跟統計學 (當然還有其他的啦 XD)。
* 機器學習包含許多的理論,初學者如果想要看這本書,最好可以對一些基礎的理論有所涉略。
* 『動手實做才是機器學習的圭臬』 - p.1 前言
* 機器學習有兩種方式,一個是『監督式學習』,另一個是『非監督式學習』。書中的第三章, 第四章,都是監督式學習。


## 第一章 使用 R 語言
*『統計學探討如何從解讀資料中的資訊』 - p.1
*『機器學習則是要將資料轉換為有意義的事務』- p.1
* 機器學習處理的問題不外乎兩個型態,分類問題跟回歸問題。
* R 的缺點是無法處理極大量的資料,如果你只是為了驗證幾個簡單的概念,使用 R 蠻適合的,但是目標如果是建立企業級的資料分析系統,R 就不會是最好選擇,像是 google 或是 facebook 都用 R  來做實驗性的機器學習演算法,但是真的要實戰,是會把演算法移到像 C 語言來實做之類的。


## 第二章 資料探索
(我個人覺得整理資料最難..)
這章對我來說其實在講數學比較多,會介紹平均數, 中位數, 眾數, 分位數, 標準差, 變異數。看了很頭痛的東西 XD 好想哭,好吃力.…

2015 台灣資料科學愛好者年會 - 系列活動 『 資料科學團隊培訓及導入經驗分享會』 活動筆記

圖片
我參加的是 2015/9/5 這一場『資料科學團隊培訓及導入經驗分享會』,以下是一些很簡單,隨手紀錄的筆記,比較片段,自行斟酌要不要看瞜... 講者說會後會分享 PPT,如果我有看到網址,我會補上 :)

有錯字請見諒 XD 打字很累的...

# 資料科學簡介 (0900:1030)
* 資料分析很像在掏金,你知道裡面應該有很有價值的金,但他稀少,一定要有對的工具把它找出來。
* 這是現在大家做大數據的困難:『有很多資料,但只拿出一點點東西』。
* 所以推廣資料科學,透過會議,研討會,讓大家知道我們有很多工具。
* 訓練資料科學家非常困難,講者覺得最重要的是溝通能力。這種人物很難找,你有聽過,但你很難遇過。

## 資料科學包含:


資料科學不是單一技術,是這些科學的集合。
  * 數學統計
  * 模式識別(雜亂的東西找出 pattern)
  * Data Mining
  * Machine Learning(讓電腦自動發展演算法)
  * 人工智慧
  * 類神經網路(幾十年前的學科,最近又開始紅了)
  * 資料視覺化
  * Big Data Modeling
  * Big Data Solution Engineering
    當你平常處理資料的方法已經不適合了,當你需要新的方法來處理新的資料,我們就需要新的技術。
  * EDA

### HIPPO
HIPPO-driven -> Data-driven
老闆說什麼就做什麼(那這家公司是 HIPPO-driven) 而不是 Data-driven。

## Data Science
大數據可以是形容詞 動詞 名詞... Example: 你這資料有大數據了嗎 XD

### Big Data
  * with height volume, velocity, or variety
  * 政府喜歡用『巨量資料』
  * 量是多大才叫做巨量? 每人定義不一點
  * 有大師認為,傳統的統計是經過抽樣,有經過抽樣的都不叫大數據
  * 資料一直進來
    * 像是電商
  * 反應速度很快
  * 多樣性,當你的資料跟以前的不太一樣,開始整合產生新的價值。
  * 我們不一定要一直去強調大數據這件事情
  * big data 太容易被誤用了

### Unknown Problem 
  * 傳統的 BI (…

git commit 時用 vi 編輯儲存時出現 Error...

不知道為什麼我的 Mac 在操作 git 時,打 commit 後 :wq (儲存離開),會出現這樣的 Error:
➜  erp git:(master) git tag -a v1.1.1
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.
這個 Error 很慘,表示我剛剛打的 commit 都不見了,所以也沒辦法有下一步 (push) 的動作。

在網路上有找到一個很奇怪的解法,要我把 git  預設使用的編輯器的 bin 路徑改掉,只要下這樣的 command 就可以正常 git comment:
➜  erp git:(master) git config --global core.editor /usr/bin/vim 很神奇... 如果有人知道為什麼請告訴我 TT。