Ruby metaprogramming - Open Class and Refine

簡介Open Class 是 Ruby 常用的技巧,指的是我們可以覆寫已經存在的方法,來修改物件或類別的行為。在這邊我沒有要講詳細的作法,要介紹的是在 Ruby 2.0 中新增的 refine RefineRefine 是 ruby 2.0 ...
繼續閱讀

Elasticsearch 筆記

前言最近工作上使用的資料庫主要以 Elasticsearch 為主。而 Elasticsearch 跟傳統的關聯式資料庫有諸多的不同之處。初期在開發的時候並不是那麼快的上手。所以記錄下該如何使用 Elasticsearch 與如何在官方文件 ...
繼續閱讀
Ruby metaprogramming - Method Lookup

Ruby metaprogramming - Method Lookup

介紹ruby metaprogramming 這本書除了教如何用 ruby 來生成其他的程式語言外,對語言特性的描述是比較深入的。因此在研讀這本書的同時,記錄下一些我覺得重要的部份。這些筆記不會依照章節的順序性。而是隨機記錄我需要的部分。 ...
繼續閱讀

Ruby - 爬網頁時遇到的編碼錯亂問題

問題描述編碼問題是寫爬蟲常會遇到的問題。當你沒有處理好編碼問題,爬回來的網頁無法進行字串的切割,也無法使用 nokogiri 抽離需要的部份。 解決方法 找到原始網頁的編碼chartset='big' 把網頁 force_e ...
繼續閱讀

Ruby - 利用 ARGV 特性執行指定的方法

情境我想手動執行 class 的某個方法。這邊的例子是當我想移動的時候,我可以選擇走路、跑步或是游泳。 方法一: 在 irb 中引入 Ruby 檔123456789101112131415class Move def self.walki ...
繼續閱讀

Ruby 爬蟲小技巧 - 處理 Html Entity

這是一個在工作上遇到的小問題。把網頁爬回來的時候有 HTML Entity 的編碼,看起來很不美觀。舉例來說,爬回來的標題如果含有 HTML Entity 會是這個樣子: 1PURUS空氣清淨器(鴻海集團創星出品&# ...
繼續閱讀

ActiveRecord - 更新大量資料

前言本文使用的兩種方法,實際上都是用一個 sql 插入或更新所有的資料。原因是使用其他的方法都沒有使用一個sql插入快。如果插入的筆數過多,需要調整 sql buffer 的大小。本例子的情景是一次更新100筆資料,資料量不大,所以不會遇到 ...
繼續閱讀

Linux - 如何查詢 OS 版本

要接手 Server 第一件事情就是要了解 server 的環境啦。這邊要記錄的是如何判別 Linux 系統類別的方式 1. 確認 Kernel 版本使用 uname -or 可以取得 kernel 的版本 12$ uname -or=&g ...
繼續閱讀

Rails: 使用 Whenever 產生 Cronjob

Part 1 - Crontab 介紹Crontab 是 Linux 中用來管理例行事務的程式,而 whenever 實際上的作用就是用來產生 cronjob 的,所以先介紹一下 Linux 系統中的 crontab 如何操作。 cront ...
繼續閱讀

在 Atom 設定 .god 對應至 Ruby Syntax

簡介 GodGod 是以 Ruby 撰寫而成,但不僅限於使用於執行 Ruby 檔,常見的用途是維持程式的運行使程式不中斷,萬一中斷可以自動重啟。不過本篇的重點不在於 God 的使用方法,而是在 Atom 編輯器中於如何讓.god可以對應到 ...
繼續閱讀

JS - 確認 jQuery 是否正確載入

使用情境有時候你不能確定環境是否已經載入 jQuery,所以你也不能使用 jQuery.ready()。例如:你想要在別人的網頁上執行一段 javascript 程式碼。這時候你就可以用本篇筆記記錄的方法等待 jQuery 載入後再執行自己 ...
繼續閱讀

Deploy Redmine to VPS by Rails way in Ubuntu 14.04

前言Redmine 是一套以 Ruby 為基底的專案管理網頁應用程式。而且正好就是使用 Ruby on Rails 開發的。所以如果你是 Rails 工程師,使用一般部屬 Rails 專案的方式就可將 Redmine 架起來。 本文記錄下來 ...
繼續閱讀