從 Ruby 到 C# - operators

Ruby 與 C# 的 operators 蠻相近的,應該說整個程式圈的 operators 都大概長那樣阿,嗯,沒錯,本篇完

欸,不是,我們快速帶過相同用法的 operators ,然後聊聊有差異的地方,這樣總行了吧

繼續閱讀

從 Ruby 到 C#

我是一名使用 Ruby 與 JavaScript 開發的程式設計師,我愛寫 Ruby,這個語言讓我體會到寫程式的樂趣

不過很可惜的目前服務的公司並沒有使用 Ruby 而是用 C# 作為後端的開發語言

欣慰的是 C# 與 JavaScript 看起來挺像的,希望我能將以前物件導向與 JavaScript 的開發經驗映射到 C# 上,快速掌握這門語言

也因此最近都在看微軟官方的 C# documentation

吐槽一下,比起 MDNRuby Doc,微軟的文件似乎沒那麼好看,,且尚未支援 DashDevDocs,只能透過瀏覽器到此查閱

繼續閱讀

Heroku 上執行 Rails app 的定時任務(Scheduled Task)

一般 Rails app 的定時任務是把 ActiveJob 包成一個 rake task 並透過 crontab 執行。這種架構的適合用在分鐘級別以上的定時任務。

但是 Heroku 並沒有提供 crontab 指令,在 Heroku 上運行定時任務必須用到一個 addon:Heroku Scheduler

Heroku Scheduler

  1. 到 Heroku App dashboard
  2. Resouces 頁籤
  3. 新增一個 Heroku Scheduler 的 addon
  4. Add new job
  5. 輸入指令 ,並設定執行頻率。這邊以每月 25 號寄送生日通知信為例 ( rails mail:birth_notification ),我設定頻率為每天,它每天都會檢查今天是不是 25 日,是則執行後面的指令
1
2
# every months 25th do this rake task
if [ "$(date +%d)" = 25 ]; then rails mail:birth_notification; fi

Heroku Scheduler 最小只提供間距為 10 分鐘級別的定時任務,若要更精細,只能使用應用層級的定時排程了例如:

Rails 的 sidekiq 設置筆記

Sidekiq 是一個能夠並發處理 Ruby 任務的套件,大致上的運作方法是:將任務 push 至 redis 的 queue 中,sidekiq 的 workers 再到 queue 一個個 pop 任務出來運算。

安裝

1
2
# Gemfile
gem 'sidekiq'
1
bundle install
繼續閱讀

在 Mac 上安裝 Ruby

Mac OS X 內建的 Ruby 版本並非最新版,只安裝了維持系統運行,最低需求版本的 Ruby,所以要安裝最新版本的 Ruby 就得額外安裝。

Install Ruby

Via Homebrew

brew install ruby

Via Ruby Version Manager (RVM)

如果開發環境有安裝多個版本的 Ruby 的需求,就使用 RVM 來安裝與管理 Ruby 吧,可以透過 RVM 自由切換使用的 Ruby 版本與 Gemset,保持開發環境的乾淨。

詳情見 https://rvm.io/

1
2
3
4
5
# Install GPG keys:
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

# Install RVM:
curl -sSL https://get.rvm.io | bash -s stable
繼續閱讀