Bruce 的玩具間

my works and notes on ruby, rails, git, ubuntu linux, mac os x, etc...

Posts match “ ruby ” tag:

Voice countdown ruby script for interval training

| Comments

README

This is a simple script used for interval training. (Mac only)

It's helpful when you do stationary bike exercise and watch TV at the same time. The voice alert will tell you when to sprint or relax. So you don't have to keep watch on timer. Just enjoy the TV show, and the training.

The time period is suggested by WebMD: Interval Training Burns More Calories in Less Time. Which are:

  • 2 minutes warm up
  • (30 seconds sprint + 4 minutes relax) x 5 iterations

But you can change it. they are between line 22 and 28.

Sorucecode

interval_training.rb
# by Bruce Li 2013-04-21

class Fixnum
  alias_method :minute, :minutes
  alias_method :second, :seconds
  def minutes
    self*60
  end
  def seconds
    self
  end
end

def say(msg, options = {})
  voice = options[:v]
  if voice and not voice.empty?
    system("say -v #{voice} '#{msg}' &")
  else
    system("say '#{msg}' &")
  end
end

# === configs ===

warm_up_duration = 2.minutes
sprint_duration = 30.seconds
relax_duration = 4.minutes
iterations = 5
voice = "" # leave blank or nil to use the default

# ===============


say "warm-up", :v => voice
sleep warm_up_duration
iterations.times.each do |idx|
  say "sprint", :v => voice
  sleep sprint_duration
  if idx != iterations - 1
    say "relax", :v => voice
    sleep relax_duration
  end
end
say "cooling down", :v => voice

Run ruby interval_training.rb

Configuration

voice: Run say -v ? in terminal to get a full list of available voices.

mac rvm 安裝 ruby 解決問題記錄

| Comments

今天把家裡的 mac 安裝 ruby 1.9.3-p448,來幫朋友看一個 project,沒想到這台太久沒有維護環境,遇到不少問題。想說應該有些新手遇到這類問題還蠻不知道怎麼解,就丟出來做個記錄,整個 console log 沒有做太多編修。

這篇的重點是如何設定 mac 的開發環境,而不是 ruby 技術問題。

通則就是: 要仔細看錯誤訊息在講什麼 如果看到錯誤就放棄,一切就結束了

開始

macbook:project bruce$ rvm install ruby-1.9.3-p448
Read on →

超棒的 rails console 設定

| Comments

這篇文章現在搬到新站: 超棒的 rails console 設定

這篇是我閱讀 Using pry in production 後,結合我自己的經驗與公司前輩留下來的設定等,最後得出的一套組合。由於主題的關係這篇只介紹 rails console 相關的部分,實際上那套組合還有別的東西,以後若有機會再另外介紹。

ps. 依照 Using pry in production 的設定將會受到一個 readline 的 bug 影響,在 pry 解決該問題前,本篇有 workaround 教學。

想達到的效果

1. 預設漂亮的格式、還可以輸出 table

注意到 prompt 顯示出 project 的名稱,而不是預設的 "irb" 或 "pry",同時維護多個專案的話很實用。

2. 在 staging/production 的 rails console 會有明顯提示,防止手誤

...

(完整內容請到新站觀看 超棒的 rails console 設定)

workshp 的斷線備案 - 離線 bundle install

| Comments

之前準備在 Rails Pacific 上帶的 Refactoring workshop 時,想到以前參加 conference 時 wifi 通常都很不穩,因此有先想一下斷網備案。

但 Rails Pacific 2014 的現場網路很穩(感謝中午吃飯時間還在架設網路的小蟹),這招不但沒用到,而且還有幾位遇到 nokogiri 裝不起來的問題。

如何離線 bundle install

簡單來說就是用

bundle package

把 gems 放到 vendor/cache 裡。之後透過 usb 碟等離線方式 copy 給別人後,請他跑

bundle install --local

詳細的設定與原理可參考官方文件 bundle package

但不同作業系統可能會不相容,有些 gem 像 nokogiri 可能也無法只靠這樣安裝,應該避免使用。這次 workshop 是因為最後一題的測試使用到了 capybara,又因為生病沒有注意到而沒排除掉。

以上,提供給要帶 ruby 相關 workshop 但擔心網路問題的人參考,這只是很陽春的記錄,也許您有更完整的備案準備方式,歡迎留言指教 m(_ _)m