Writing idiomatic python 3

Recomended http://downloads.niceware.com/TECH-pdf/PythonStyle-Writing_idiomatic_python_3.pdf?fbclid=IwAR1uhD-_8WRmWy1Sb2Ncz9Afwk248-o5JA...

Wayne

Time complexity and space complexity

時間複雜度跟空間複雜度 ## 時間複雜度 常見的六種時間複雜度與演算法 * O(1):陣列讀取 * O(n):簡易搜尋 * O(log n):二分搜尋 * O(nlogn):合併排序 * O(n²):選擇排序 * O(2^n):費波那契數列 時間複雜度為 O(n) ...

Wayne

Start using Stripe's PaymentIntent instead of Charge to fit SCA

Since a new rule coming into effect on September 14, 2019, as part of PSD2 regulation in Europe, any integrations using the Charges API w...

Wayne

Rails 6 released

https://weblog.rubyonrails.org/2019/8/15/Rails-6-0-final-release/

Wayne

Rails ActiveModel with type casting

## Basic usage Use `include ActiveModel::Model` and `include ActiveModel::Attributes` can provide type casting for active model. Exampl...

Wayne

Precision and Scale in database

位數 (Precision) 是指數字中總共的位數。 小數位數 (Scale) 則是指數字中小數點右方的位數。 例如 123.45 的位數是 5,小數位數是 2。 precision 又稱精度 https://docs.microsoft.com/zh-tw/sql/...

Wayne

How to test ActionMailer with RSpec

This blog post will demostrate how to test ActionMailer in Rails using RSpec. ## Configuration ```rb # config/environments/test.rb # T...

Wayne

Rails lock! and with_lock

Basically, `ActiveRecord::Locking::Pessimistic#with_lock` will yield your code inside transaction but `ActiveRecord::Locking::Pessimistic...

Wayne

How to test Stripe webhook's singature with Rspec

This post shows how to test Stripe webhook's singature ```rb # spec/support/stripe_test_helper.rb module StripeTestHelper def stripe_...

Wayne

How to split rails routes.rb into smaller files - Extend

I've tried many ways to split `config/routes.rb` file, I find this approach is best to me because it requires no futher config to let dev...

Wayne

How to split rails routes.rb into smaller files - require

Anothr approach: use `require` In `config/routes.rb` ```rb Rails.application.routes.draw do root to: "home#index" get "/about get...

Wayne

How to split rails routes.rb into smaller files - instance_eval

The most common (base on my google search) way to split `config/routes.rb` in rails is by defining your own `draw` DSL. This is just one ...

Wayne

Order By NULL 時的情形

Default 值: | NULL Ordering Behavior/ Database Types | MARIADB/MYSQL | SQLSERVER | HSQLDB | DB2 | ORACLE | POSTGRESQL | | --- | --- | ---...

Wayne

Scaling the monolith

在拆成潮潮的 Micro Service 或是超級大 Refactor 甚至是討論要不要換語言換框架前,先從小的改變做起吧。文章列了一些滿基本但是都很實用的原則、方法、工具,下次沒票可以做或是上班閒閒時都可以試一下,還可以增進一下未來工作效率。 ~~除非你只是想要潮?(威...

Wayne

儲存 sensitive 資料的一些基本作法

### 大原則: 1. sensitive 資料加密儲存 2. Web server 只放加密用的金鑰,不放可以解密的金鑰 實際做起來就是:把需要解密的金鑰放到 worker 的 server,worker server 不接受來自外面的流量、且只能透過公司的 VP...

Wayne

在 Rails 裡擴充 gem 提供的 ActiveRecord model 的方法

需求:想要為 Gem 提供的 Model 增加一些新的 method 或是 association For example, doorkeeper 的 gem 有一個 `Doorkeeper::AccessToken` 的 model,我想要有個 `Doorkeeper:...

Wayne

Ruby 2.6 的 Range 可以 accept nil 當作 Float::INFINITY

### Before 2.6 (v < 2.5) ```rb end_of_range = nil (1..end_of_range).map { |i| do_something(i) } #=> ArgumentError (bad value for rang...

Wayne

Golang assignment (=) vs short variable declaration (:=) vs regular variable declaration (var)

## assignment 跟 declaration 差在哪? https://stackoverflow.com/questions/23227486/difference-between-declaration-statement-and-assignment-st...

Wayne

What is PKCE (Proof Key for Code Exchange)

## PKCE 什麼時候適用: 只有手機 App 沒有 Server 的時候 ## Why PKCE? Oauth2 提供很多種 Grant Type https://oauth.net/2/grant-types/ ,就是提供很多種拿到 Token 的方法,最常看...

Wayne

Basic Auth 裡的 Realm 是什麼意思?

According to the RFC 7235, the realm parameter is reserved for defining protection spaces (set of pages or resources where credentials ar...

Wayne

Mac: add ssh key to ssh-agent

```sh $ ssh-add -K ~/.ssh/id_rsa ``` https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

Wayne

Rails 直接取得欄位的值(before_type_cast)

How to get column value from ActiveRecord without being affect by overrided attributes? 有時候會想要直接取得 database 裡的值,以免被 model 裡覆蓋的 attribute...

Wayne

Function Composition in Ruby

Ruby 2.6 introduced `<<` and `>>` methods, this article explains function composition and history of Ruby new methods throughoutly, wort...

Wayne

How to test with Salesforce Heroku Connect

## What is Heroku Connect? This is a tool provided by Salesforce and Heroku, it will automatically sync all your salesforce tables int...

Wayne

Startup idea checklist

回答完後覺得值得再去做 https://www.defmacro.org/2019/03/26/startup-checklist.html

Wayne