almost 4 years ago

啊啊啊啊,再寫下去都可以寫一個 幹譙 heroku 專欄惹。
總之昨天最新遇到的困境是可以跑 heroku run rake db:migrate,但是不能跑heroku run rake db:reset或者heroku run rake db:drop,這根本超級崩潰啊啊啊啊,教練我想刪檔啊QQ

查看 heroku logs之後,發現做這兩個動作,PostgreSQL會回傳 permission denied,哪招!

後來我自己找到的解法是

heroku pg:reset DATABASE

果然是解鈴仍需繫鈴人,用 pg 的指令就解決了。

另外做個筆記,如果用 heroku 的話, database.yml 不需要寫 username ,然後密碼留白就好,例如

database.yml
production:
  adapter: postgresql
  encoding: unicode
  database: myapp_production
  pool: 5
  password: 
 
almost 4 years ago

我真的是視送app上heroku為畏途...... 儘管開發 rails 再怎麼愉快,每次光想到要送app上heroku就先軟一半。後來我逐漸掌握到一些訣竅:

  • 學會搞定 pq
  • 永遠用最新版的 rails

基本上掌握這兩點就八九不離十了。

這一次我還用了 xdite 的團隊開發的 gem boostrappers,想不到卻因此遭受到前所未有的鬼打牆局面。一開始是push完到最後會抱怨 precompile 失敗,解決之道是app/assets/javascripts/README把它改成README.txt,然後先在自己的電腦上先跑

rake assets:precompile

嗯,總之先在自己電腦上跑 precombile 就對了, somehow it works。至於為什麼我直覺就想到要把README加上附檔名這是因為 rails 4.0 剛出不久就在 xdite 大大的文章裡面看到這件事情了XD。

另外一件事情鬼打牆比較久,push成功之後,還是打不開網站。查看 heroku logs之後好不容易找到這一段:

2013-11-18T19:28:42.063321+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 4734 -e $RAILS_ENV`
2013-11-18T19:28:49.787036+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.0.0/gems/settingslogic-2.0.9/lib/settingslogic.rb:102:in `initialize'
2013-11-18T19:28:49.787036+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/open-uri.rb:36:in `initialize': No such file or directory - /app/config/config.yml (Errno::ENOENT)

咦,奇~~~~~~~怪了,明明config/config.yml就好好地蹲在那邊啊,為什麼會找不到咧?弄到半夜三點實在找不出來,只好去怒睡,結果隔天一早醒來就想到了,原來在根目錄下面有一個 .gitignore ...... 好樣地,最下面居然有寫

.gitignore
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
*.DS_Store
*.swp
.env
public/uploads
vendor/bundler_gems
config/database.yml
config/config.yml

真的是只能大罵靠北啊啊啊啊啊,好吧,那就把 config/config.yml那行先 comment 掉吧,然後就push成功惹。

 
almost 4 years ago

每次要deploy Rails 專案到 heroku 都會遇到一樣惱人的問題: 要用 PostgreSQL,每次光想到這點就很崩潰。

為了可以兼顧 heroku 但是又可以簡化開發程序,所以我在自己的電腦上還是用 sqlite3 XD,所以我的 Gemfile是這樣寫的:

Gemfile
gem 'pg', :group => :production
gem 'sqlite3', :group => [:development, :test]

但是如果這樣改完你就直接去跑 bundle install 一定會有問題,他會跟你抱怨

An error occurred while installing pg (0.17.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.17.0'` succeeds before bundling.

想單然爾你實際上去跑 gem install pq -v=0.17.0一定也是失敗收場,不會成功了。值得一提的是因為我是用 RVM 所以 gem install前面並不需要加 sudo喔。

就像 mySQL 一樣,其實要安裝 pq 需要電腦上先有 PostgreSQL 的相關 lib ,但是我們又要怎麼裝起來呢?經過多次嘗試之後,我覺得毫無疑問最無痛的方法就是透過 brew去裝,關於 brew 的安裝方式這邊就不解釋了。

你唯一需要做的就是

brew install PostgreSQL

接著當你再次執行

gem install pq

你會發現你成功了。超爽der。

然後你就可以跑 bundle install惹。

 
almost 4 years ago

去年的這個時候在同事的勸敗之下,跑去買了 SSD ,然後我選擇直接在新買的 SSD 上面灌新的 OSX ,灌好之後把使用者資料夾重新 mount 回舊的那顆硬碟的 home 資料夾,然後把home之外所有東西全部刪掉。詳細的做法我寫在舊的部落格:

這次 Mavericks 免費更新,眼看鄉民一片好評,我卻還在觀望,因為印象中每次升級 OS X 都遇到奇怪的事情,這次看到大家這挺,最後看到有人強調 升級之後 Aperture 神快 此時我終於被說服惹,回家之後立馬來下載。

下載是有點慢,安裝則是大約花了40分鐘左右去跑,然後......

居然要設定用戶資料,包括帳號和密碼

這...... 不對啊,大大!不是說是升級嗎 ==?

等到帳號設定好之後,進入桌面,我最擔心的事情發生了...... 雖然我帳號密碼都設和以前一樣,但是我還是走進了一張全新的桌面,就像一台全新的電腦一樣。

此時我還有恃無恐,因為還有一招還沒用!

Read on →
 
almost 4 years ago

上禮拜的國慶 連假 我去了一趟高雄。行程的第二天,也就是 10/11 禮拜五,在早上起來再次膜拜過小鴨然後晃了一圈駁二藝術區之後,本來我就要北上回左營搭高鐵了。我從駁二一路騎高雄的 c-bike騎到美麗島站,原本想直接搭去之前還沒去過的漢神巨蛋逛逛順便吃午餐,不過因為曬太陽有點累,而且很早就吃早餐了,11點的時候有點餓了,於是就決定找一家咖啡店進去歇一歇,殊不知緊接而來的是一連串的驚喜。

Read on →
 
almost 4 years ago

\"{a} = ¨a
\r{a} = \aa = å
\r{A} = \AA = °A


References

 
almost 4 years ago

由於過去這幾年每次 deploy 到 Heroku 都吃了大虧,所以我決定趁這次一次把話講清楚,把所有會遇到的雷都一次記起來 = =

第一步驟:永遠記得先開 git 才開 heroku

第一步當然是先開 rails app 啦,這個沒爭議齁

rails new my_project

重點來啦!再跑 heroku create 之前一定千萬記得要先跑完 git 的相關指令,尤其第一次跑別忘了 git init

git init
git add .  
git commit -m "init"

等到上面四個都跑完了,才可以開你的 heroku ,也就是

heroku create my-project

如果你先創 Heroku 才跑 git,那麼等到跑上面那一行的時候就會GG。 萬一這件事情真的發生了,其實也沒關係,就是要打開 Heroku 的官方網頁,登進去把你之前創的那個 app 刪掉,重新來過。

my-project 是我在這邊取的 app 名稱啦,請自行換成你的名字;為了區別,所以 rails 的 app 名稱我取叫 my_project 但是 Heroku 上面的 app 名字我取叫做 my-project

Read on →
 
almost 4 years ago


這是其中一張照片,每張照片的參數都是:

INFO

ISO 400
f/16
10.0 s
manual mode

拍攝地點:高雄真愛碼頭附近的行人橋上

Read on →
 
almost 4 years ago

我記得上次來吃是今年一月的一個禮拜三,不明所以地就和一個今年要出國(此時已經在美國了)的大學同學相揪跑來忠孝復興吃這家我從來沒有聽過的烏龍麵,只因為我在噗浪上該說我想吃烏龍麵XD

為什麼叫做 土三寒六 呢? 他們的官方粉絲頁上面有很專業的解釋:

香川縣關於讚岐烏龍麵本地的鹽份傳說,做烏龍麵時,如在土用的暑中(夏天),則製鹽時鹽和水的比例是一比三,如在寒中(冬天)則是一比六,而普段(春秋)則是一比五,如此比例的鹽水與麵粉攪拌既可做出最好吃的讚岐烏龍麵。

Read on →
 
almost 4 years ago

有在用 Matlab 的人可能有用過 polar這個畫極座標的繪圖函數,但是很令人崩擴的是 polar 這個函數本身功能非常有限,如果要多別的事情,都要靠 handler 還有 set搭配來完成,不像 plot早就已經做到萬能的地步,幾乎想要做什麼,都可以直接在 argument 裡面完成。

現在的問題是,假設我想要把兩個函數都畫在同一張 polar 上面,聰明的各位可能馬上就會想到可以透過 hold on,來實作,這是沒錯的,但是如果實際去做,會發現一個很糟糕的事情:polar的limit會被第一個畫的函數所限制住,例如假設我想要畫以下的函數:

最簡單的寫法大概是這樣:

close all;

N = 101;
theta = linspace(0, 2*pi, N);

y1 = abs(cos(theta));
y2 = 1.5 * abs(sin(theta));

figure(1),
polar(theta, y1, 'k');
hold on,
polar(theta, y2, 'r');
hold off;

但是畫出來卻會變這樣:

囧!因為 limit 已經被第一個polar決定了,所以如果後面再hold on上去的圖案更大,就只能悲劇。

Read on →