開發者必備知識 - HTTP認證(HTTP Authentication)

認證(Authentication)是建構Web應用或Web伺服器不可或缺的一環。以下簡單介紹一下各種常見的HTTP Authentication方式。

總覽 Overview

Read more   2018/11/18 posted in  Security

使用Babel處理ES6的 this 和 Arrow Function(箭頭函式)

在Javascript ES6標準中,我們可以用Arrow function來幫助我們解決bind的問題,但由於user的browser不一定support ES6,我們需要用Babel來向下兼容。

以下會詳述有關.bind()、Arrow function和Babel的原理。

Read more   2018/09/05 posted in  javascript

如何使用Android RecyclerView建立一個List列表

List是Mobile app的一個基本元素,幾乎應用在每一個app裡面。這篇教學會講解一下如何用RecyclerView建立一個簡單的列表。

Read more   2018/08/08 posted in  Android

翻牆必備:Shadowsocks建置教學

Shadowsocks(ss和ssr)是現在很火的翻牆工具,網上有很多免費以至付費server可以用。但會有以下壞處:

  • 到處試server
  • 經常換密碼
  • 流量經過別人的手上
  • 和別人共用server,忍受慢、不穩定
  • 用幾天但要付月費

有些技術背景的話當然直接自己建server吧。

以下會介紹如何部署和使用ss server達到翻牆的效果。

Read more   2018/07/26 posted in  翻牆

翻牆專題:Proxy、VPN、Shadowsocks概念解釋

大家都知道,內地是封閉的網絡環境,政府的防火長城會隔擋嘗試連到外國網站的連線。然而人總是追求自由,人們一直找尋各種翻牆方法,成熟的proxy和vpn技術便成為了翻牆的主要工具。

然而在防火長城日漸完善下,proxy和vpn逐漸失效,這時開源社群出現了一個名為shadowsocks的專案,專為翻牆而生。雖然作者已刪除源碼,但ss已經成為了其中一種主流的翻牆工具了。

以下會解釋Proxy、VPN、Shadowsocks的原理和歷史。

Read more   2018/07/25 posted in  翻牆

React Native教學 - Part 5 Component Lifecycle

Part 3介紹了React Component的基本用法,包括render()、custom styles和layouts,這些都是顯示UI用到的,但要處理數據、回應user input等等,就要先理解Component的Lifecycle

Read more   2018/07/11 posted in  React Native

React Native教學 Part 4.5 - This Binding和Arrow Function(箭頭函式)

Read more   2018/06/12 posted in  React Native

React Native教學 Part 4 - Props & States

PropsStates是React的重要概念,在Component化的架構內,所有data都以這兩種形式存在,它們見證著一個Component的起承轉合。

Read more   2018/06/12 posted in  React Native

在Django使用Logging製作紀錄檔

Logging是作為backend server必備的工具,透過log file,你可以知道程式執行了甚麼。如果你的server有unexpected error發生,最好的做法就是到server查看log file,找出發生甚麼事。

這篇就紀錄在Django設置logging的種種細節吧。

Read more   2018/06/08 posted in  Django

在Django建立定時執行的Cron jobs(工作排程)

有時候我們需要server定時做某些東西,例如每天凌晨計算一天的營業額。

一般Web Server只會在收到請求時作出相應行動,所以最簡單做法,就是開一個Admin endpoint,人手「激活」server去做某些事。

這當然很蠢啊。

這時候我們可以用Linux上的crontab去讓他「自動」、「定時」執行某些工作。

Read more   2018/06/08 posted in  Django

Django Unit Testing - Part 2 Mocking

Mocking(模仿)對Testing十分重要,它可以取代本來system會做的某些功能,通常用於:

  1. Network Request(太費時了)
  2. 一些複雜的Dependencies(避免需要準備太多東西/不想被其他module影響到)
  3. 修改當前時間(尤其是依賴datetime.now()的function)
Read more   2018/06/04 posted in  Django

Django Unit Testing - Part 1 Basics

Testing是寫出好Software的必備條件。它可以讓你推出新功能時有足夠信心你的system可以正常運作,不用人手到處test,也可以及早發現bug,等等等等。

這篇就先看看在Django如何建立基本的test。

Read more   2018/06/04 posted in  Django

Laravel教學 Part 1 - 新手入門

以下介紹初學Laravel需要知道的檔案結構和概念。

Read more   2018/05/30 posted in  Laravel

Django Admin Libraries彙總筆記

紀錄一些擴充、改進django admin的open source libraries。

Read more   2018/05/28 posted in  Django

React Native教學 Part 3.5 - 概念分析:Declarative Programming

原生iOS和Android的開發者在初次使用React Native時,很容易感到迷惘、不適應(反之亦然),這是因為兩邊的設計理念不同,導致在開發過程中需要的思維也不相同。

React的設計貫徹Declarative Programming(聲明式編程)的思想,與其相反的是Imperative Programming (命令式編程)。這篇介紹一下兩者有甚麼分別,讓大家理解一下兩種理念在實際使用上的分別。

Read more   2018/05/28 posted in  React Native

Ruby on Rails教學 Part 1 - Hello World Project

Ruby on Rails(簡稱Rails或RoR)是一個Ruby語言的Web開發框架,自2005年推出以來一直非常受歡迎。其特色是它致力以最少的code完成最多的功能,很多時候一行已經可以完成其他框架的一堆if-case(雖然有人會不喜歡自己的code太過於magical,包括我)。

以下按官方教學的流程,嘗試建立一個基本的Hello World project吧。

Read more   2018/05/22 posted in  Ruby on Rails

委託模式 (Delegation pattern)

在物件導向程式設計中,有個守則叫做:

「多用合成,少用繼承」(Composition over inheritance)

而Delegation就是一個用合成取代繼承的好方法。

Read more   2018/05/15 posted in  Design Pattern

工廠設計模式 (Factory Design Pattern)

工廠設計模式屬於「創建型模式」,規範「如何創建新Object」的程序設計。簡單來說就是故名思義,把創建的過程交給「工廠(Factory)」去做,而不是用家自己做。

Read more   2018/05/15 posted in  Design Pattern

XCode / Application Loader上傳套件卡關研究

使用XCode或Application Loader提交.ipa檔到App Store時,很多人都試過卡在一個頗常見、但意外地存在了好幾年的bug...

"Authenticating with the iTunes store"

以下歸納網上流傳的各種解決方法:

Read more   2018/05/02 posted in  iOS

React Native教學 Part 3 - Component

在開發傳統web的frontend,一般是分開html, css, js三種文件來寫,但在React的世界裡,所有東西都存在於js檔當中。這些js檔主要都是圍繞Components來開發。以下介紹有關React Component的概念和實作

Read more   2018/04/30 posted in  React Native