Calvert's murmur

在 Heroku 使用 Active Storage

Ruby on Rails Active Storage Heroku

原文:HEROKU BLOGRails 5.2 Active Storage: Previews, Poppler, and Solving Licensing Pitfalls

上個月剛剛發佈的 Rails 5.2 有一個重要的新功能:Active Storage。Active Storage 支援各種後端服務(如 AWS S3),為 Active Record 模型提供檔案上傳和附件功能。雖然有像 Paperclip 這樣的函式庫來做類似的工作,但這是 Rails 第一次發佈這樣的功能。在 Heroku,我們認為雲端儲存是最佳實作規範,所以我們確保它能在我們的平台上執行。在這篇文章中,我們將分享如何準備發佈 Rails 5.2,以及如何在部署的應用程式中使用新的 Active Storage 功能。

繼續閱讀

Active Storage 概要

Ruby on Rails Active Storage

原文:Ruby on Rails GuidesActive Storage Overview

Active Storage 是 Rails 5.2 所新增的功能,它可以讓你輕鬆的將檔案傳送到 Amazon S3Google Cloud StorageMicrosoft Azure Storage 等雲端儲存服務,並將這些檔案附加到 Active Record。

支援一個主要雲端儲存服務,並在其它服務中建立鏡像以實現備援機制,它也提供了用於測試或本機部署的磁碟服務,但重點還是放在雲端儲存。

檔案可以從伺服器上傳到雲端或直接從客戶端上傳到雲端。

繼續閱讀

Electron API 範例

Electron
因為最近在工作時需要使用 Electron,發現官方提供的 Electron API 應用程式範例很適合讓想入門的人了解一些基本 API 的用法以及實際執行的效果。 在 Github 上搜尋這個範例程式發現沒有正體中文版覺得有點可惜,於是就花了點時間來翻譯此範例程式。 原始碼可從 Gith ...
繼續閱讀

使用 RVG 繪圖

Ruby Rmagick

原文:RMagick User’s Guide and ReferenceDrawing with RVG

介紹

RVG(Ruby 向量圖形)是 RMagick 的 Draw 類別的外觀,它提供了基於 W3C 推薦的可縮放向量圖形(Scalable Vector Graphics)的繪圖 API。

RVG 是一個可縮放向量繪圖函式庫。可縮放意味著圖形不是固定的像素尺寸。相同的圖形可以被呈現在螢幕上或列印出來。向量圖使用了幾何物件,如直線和圓。與點陣圖不同,向量圖在放大時不會「像素化」。

作為 RVG 函式庫的介紹,讓我們來看看如何畫出上面這隻小鴨。以下是完整的程式。

require 'rvg/rvg'
include Magick

RVG::dpi = 72

rvg = RVG.new(2.5.in, 2.5.in).viewbox(0,0,250,250) do |canvas|
  canvas.background_fill = 'white'

  canvas.g.translate(100, 150).rotate(-30) do |body|
    body.styles(:fill=>'yellow', :stroke=>'black', :stroke_width=>2)
    body.ellipse(50, 30)
    body.rect(45, 20, -20, -10).skewX(-35)
  end

  canvas.g.translate(130, 83) do |head|
    head.styles(:stroke=>'black', :stroke_width=>2)
    head.circle(30).styles(:fill=>'yellow')
    head.circle(5, 10, -5).styles(:fill=>'black')
    head.polygon(30,0, 70,5, 30,10, 62,25, 23,20).styles(:fill=>'orange')
  end

  foot = RVG::Group.new do |_foot|
    _foot.path('m0,0 v30 l30,10 l5,-10, l-5,-10 l-30,10z').
    styles(:stroke_width=>2, :fill=>'orange', :stroke=>'black')
  end
  canvas.use(foot).translate(75, 188).rotate(15)
  canvas.use(foot).translate(100, 185).rotate(-15)

  canvas.text(125, 30) do |title|
    title.tspan("duck|").styles(:text_anchor=>'end', :font_size=>20,
      :font_family=>'helvetica', :fill=>'black')
    title.tspan("type").styles(:font_size=>22,
      :font_family=>'times', :font_style=>'italic', :fill=>'red')
    end
    canvas.rect(249,249).styles(:stroke=>'blue', :fill=>'none')
  end

rvg.draw.write('duck.gif')

摘要

所有的繪圖都遵循相同的 3 個步驟:

  1. 建立一個 RVG 物件。指定最終圖片的寬度和高度。轉交程式碼區塊給 RVG.new 方法。
  2. 在程式區塊內,在 RVG 物件調用方法來指定背景,加入形狀、文字或點陣圖,或加入一組形狀、文字或點陣圖。
  3. 調用 draw 方法在背景繪出形狀、文字或點陣圖。

我將逐行介紹範例。

繼續閱讀

如何在 Ubuntu 中為 vsftpd 設置虛擬帳號

Linux
以下是在 Ubunto 16.04 LTS 安裝 vsftpd 並設定虛擬帳號的步驟 安裝 vsftpd $ sudo apt-get update $ sudo apt-get install vsftpd 編輯設定檔 $ sudo vim /etc/vsftpd.conf 以下設 ...
繼續閱讀

在 Capistrano 自動化部署時使用 Ed25519 金鑰

Ed25519 Ruby on Rails
原文:steigr — Capistrano with ED25519 keys 我最近將我的 Capistrano 自動化部署切換到了 Ed25519 金鑰。在正常運作之前我發現到一些奇怪的錯誤,部署使用者/代理程式無法登入到主機。在檢查 authorized_keys 檔案權限、本機 ...
繼續閱讀

升級你的 SSH 金鑰!

SSH Ed25519

原文:Gert van DijkUpgrade your SSH keys!

無論你是軟體開發人員或系統管理員,我敢打賭你正在使用 SSH 金鑰。比起使用密碼來推送提交到 Github 或是管理 Unix 系統,透過 SSH 公開金鑰驗證是最佳的方法。然而,隨著時光飛逝,很多人都使用舊金鑰而沒有意識到需要產生一個新的來提供私密資料更好的保護。在這篇文章,我將示範如何平穩的轉換到 Ed25519 金鑰、你為什麼會想要它以及展示一些技巧和訣竅。

長話短說,使用 ssh-keygen -o -a 100 -t ed25519 來產生新的金鑰並指定一個高強度的通關密語,如果你需要平穩的轉換,請繼續往下閱讀。

我計劃發佈更多 SSH 技巧和訣竅,所以請關注我的部落格。這篇文章的重點是關於作為使用者公開金鑰驗證的 SSH 金鑰。

DSA 和 RSA 1024 位元已經廢止

如果你已經使用預設選項建立金鑰超過四年,它可能不安全(RSA < 2048 位元)。更糟的是,我最近看到了推特迷、同事和朋友還在使用 DSA 金鑰(OpenSSH 格式裡的 ssh-dss 類型)。那是一種類似於 RSA 的金鑰類型,但長度受限於 1024 位元且被推薦了很長一段時間。它顯然不安全,且被最近的 OpenSSH 版本以正當理由拒絕(請參見 7.0 更新日誌)。

難過的是,我看到關於如何重新啟用支援 DSA 金鑰的文章,而不是轉移到一種更安全的金鑰類型。真的,依照指示更改 PubkeyAcceptedKeyTypesHostKeyAlgorithms 的設定是不明智的(host keys are for a later post)。取而代之,升級你的金鑰!

繼續閱讀

使用 Mailboxer 實作站內信系統

Ruby on Rails

Mailboxer 是一個 Rails gem,為 social_stream 框架用來建立社群網路的一部分。它是具備一些通用方法的訊息系統,允許任何 model 擔任傳遞訊息的角色。

使用 Mailboxer,你可以與一或多個收件人建立對話(訊息會被歸納到寄件匣、收件匣及垃圾桶)並透過電子郵件發送通知。它甚至可以在不同 model 間發送訊息和附件!唯一的缺點是缺乏文件,所以我希望這邊文章是有幫助的。

我們要討論的範例程式為:

  • 使用 Devise 做基本身份驗證
  • 使用 Gravatar 讓使用者管理頭像
  • 整合 Mailboxer
  • 使用圖形介面來建立/回覆對話(使用 Bootstrap 樣式及 Chosen jQuery 插件)
  • 顯示資料夾,並允許在它們之間輕鬆切換
  • 允許將對話標示為已讀、放到垃圾桶或還原,也可以清理垃圾桶。
  • 設定電子郵件通知

此範例將使用 Rails 4,但幾乎相同的解決方案也可以實作於 Rails 3.2(Mailboxer 不再支援 3.1 版)。

原始碼可以在 Github 找到。

繼續閱讀

了解 GitHub Flow

GitHub GitHub Flow Workflow
原文:GitHub — Understanding the GitHub Flow GitHub Flow 是一個基於分支的輕量化工作流程,幫助團隊及專案定期的進行部署。 在進行一項專案時,任何時候你可能會有一堆不同功能或想法,有些已經準備好了,而另有些則沒有。分支的存在是為了幫助你 ...
繼續閱讀

修正 FacebookSDK 使用 Advertising Identifier(IDFA) 造成的 App 退審

iOS
這次 App 送審被 Apple 以違反 PLA 3.3.12 而退審,內容大致上是說 Advertising Identifier(IDFA) 僅可基於廣告目的使用於應用程式內,但審核團隊沒發現需用 IDFA 來呈現廣告的地方。 因送審的 App 內僅使用 iAd,而 iAd 是不需 Ad ...
繼續閱讀
上一頁 下一頁