愛爾蘭普通人日誌

Author: 普通人 (Page 4 of 5)

博物館都要預約的倫敦

這是篇回憶文,2023年暑假的時候跟朋友去了趟倫敦。

搭乘的班機是Ryanair ,降落的機場是倫敦Gatwick ,機場不大,提領行李的轉盤有夠小,只有一道,因此如果有托運行李的話不要衝太快而錯過轉盤。愛爾蘭抵達英國的航班都是被當作國內線航班,沒有移民關,基本上就是一路殺到火車站。

到了車站才發現,真正的人龍在這裡呀~~售票機的隊伍大概至少要等30分鐘以上。好在朋友熟門熟路,要大家下載Trainline這個App線上買票,手續費不多,付款後馬上拿到QR code,直接掃描進站。

這次住的是金絲雀碼頭(canary wharf)附近的Fraser Place公寓式飯店。一房的房型,加上客廳沙發床,夠我們兩大一小睡了。而且廚房設備應有盡有:廚具,電磁爐,微波爐,洗碗機,洗衣機,還給你一個大冰箱。畢竟英國外食相當貴,能在飯店熱點東西吃絕對是明智之舉。對了,客廳跟房間都有冷暖氣。

不過這次來倫敦的目標是要吃一風堂,Canary wharf附近就有一家。中午去吃的時候要稍微排一下,但很快。

品質沒讓我失望呀!雖然是貴鬆鬆,但這已經是離愛爾蘭最近的”本格派”日式拉麵了吧。

很幸運的這次剛好有機會看到倫敦塔橋打開,左邊那艘船就是在等著”過橋”。這個網址可以查開橋時間:https://www.towerbridge.org.uk/lift-times

自然歷史博物館,我們沒有預約,排得要死。朋友預約好了時間則是直接進去。這幾天倫敦天氣太好,白天都有到達25度,博物館裡面沒有冷氣其實是很悶熱的。

有了沒提前預約自然歷史博物館的經驗,於是就預約了後天的大英博物館,沒想到大英博物館的預約隊伍人潮可以說相當恐怖,我們排了40分鐘才進來。

唯一幸運不用排隊的大概就是柯芬園的鼎泰豐了吧。

另外我們還去搭了泰晤士河Uber boat https://www.thamesclippers.com/,班次雖然沒像地鐵那麼多,但是滿悠閒的,也算是另一種方式體驗倫敦。

愛爾蘭公民入籍申請–文件認證

過去紙本申請的時代,原本對於一些重要文件是要求正本的(比如說護照),查驗完後再郵件寄回。

可是一方面萬一這段期間申請人需要出國,沒有護照在身邊實在很麻煩。再來,郵件往來把東西寄丟在愛爾蘭也是家常便飯,這對申請人及移民局都是個難以處理的課題。

於是,後來改為只接受認證後的副本。

也就是護照、出生證明、IRP卡等文件,影印後的副本,需要經由移民局認可的見證人(這個後面解釋),來認證副本與正本相符。

現在改為網路申請後,仍然需要由見證人認證副本,再將認證後的副本掃描成電子檔上傳。而依照網路申請的官方說明,目前需要認證的文件只有護照資料頁及出生證明而已,但我的見證人建議IRP卡也順便認證一下,所以我是有做IRP卡的副本認證。

那麼,哪些是被認可的見證人呢?

  1. Practising Solicitor 執業律師
  2. Notary Public 公證人
  3. Commissioner for Oaths 民間公證人 (不確定怎麼翻譯)
  4. Peace Commissioner 完全不知道怎麼翻譯,總之,找這個免費。

當時有律師報價一頁10歐,我自己則是貪小便宜,就鎖定找Peace Commissioner。

愛爾蘭司法部Minister for Justice是有Peace Commissioner的名單,但他們的名單不是很完整,也不是最新名單。由於Peace Commissioner平常會協助Garda簽搜索票等事項,所以比較正確的名單還是要聯絡自己住所附近的Garda。

我的運氣相當不好,第一個Peace Commissioner很認真的幫我做正副本核對,但不願意幫我在影本上簽名,說他看過沒問題就行了,有事情的話可以請移民局跟他聯絡,雖然我再三解釋,但也沒辦法。雖然說他人不錯,還特別跑一趟過來我家附近…

第二個Peace Commissioner很妙,我事先寫了封彬彬有禮的email說明我的請求及目的,他也回覆很快,說下週想跟我通個話。我想有意願聊一下大概沒問題了,就等了幾天,終於聯絡上,電話中他再次問了我認證文件的目的,竟然說他沒有辦法,建議我再請Garda推薦別人。啥!當下掛完電話的我還是相當傻眼,畢竟我email開頭就說明認證的目的,如果要拒絕,直接回信就好,還讓我等了一週。

好吧,在這個華麗的拒絕之後,總算是找到比較專業的Peace Commissioner,他剛好也是一位歸化後的愛爾蘭公民,知道當初申請的苦。就這樣,我的文件認證完成了。

所以說免費的最貴,這些時間成本算進去,找律師簽一簽可能還是划算。

愛爾蘭公民入籍申請–網路送件

2023年10月16日,愛爾蘭移民局宣佈申請歸化公民的手續可以網路送件!

這可是天大的好消息,在此之前,可是要填完一份落落長的紙本,並將5年來的居住證明文件也印出來,我本來已經準備好這些東西了,總共足足有2公分的厚度。除此之外,紙本送件的175歐元規費,也需要跑一趟銀行買bank draft,而且這還要付銀行手續費的。現在也不用了,直接可以線上刷卡,方便!

因為我先前已經填完紙本文件,剛好可以與網路送件做個比較。

我發現網路申請有幾個很大的簡化:

  1. 不再需要填寫過去10年的居住地址。
    • 過去紙本申請時,必須要填寫你過去10年所居住過的所有地址,無論是愛爾蘭境內或境外都要。當時我可是認真把這些地址挖出來再翻譯成英文呢!
  2. 三位推薦人的資料大幅簡化。
    • 公民申請需要三位愛爾蘭人當作推薦人,過去紙本時代需要推薦人填寫許多私人資料,當時我是有點不好意思的拜託同事幫忙,幸好他們都相當乾脆沒有遲疑。現在線上申請只需要推薦人的姓名跟電話,簡單很多。
  3. 省去紙本填寫法定陳述書(statutory declaration)。
    • 網路申請,只需要打個勾就完成了。
  4. 文件直接掃描上傳,不用裝訂了。
    • 紙本的裝訂規則有提到不能使用訂書針,不能黏起來,不能使用塑膠文件夾,不能使用文件袋,不能用盒子裝,也不能打孔裝訂。(乾脆直接講明白不要裝訂就好)。有網友提到迴紋針或長尾夾OK。但是總之,網路申請就通通沒煩惱。
  5. 線上繳費,省時也省錢。這先前提到過了。

這是網路申請的網址:https://inisonline.jahs.ie/user/login

網站就像下圖這個樣子,必須要先註冊帳號後登入。

如果你住都柏林,一定對網路換發IRP卡的流程相當熟悉,其實就是同一個網站。網站現在多了個Naturalisation的申請。

愛爾蘭公民入籍申請–移民資格

最近剛好在申請公民,趁記憶還很深刻的時候,把流程紀錄下來吧。

申請愛爾蘭公民的資格,就是累積居住滿5年。不一定要連續的5年,你可以中斷。重點是每一個居住年都要滿足某些條件才能被合法計算進去。

  • 每年居留身份:Stamp1 / 1G / 3 / 4
  • 每年最長可離境天數:70天
  • 每年居住證明文件:Type A及Type B 各1份

舉例來說,在愛爾蘭唸書是拿Stamp2的居留身份,因此唸書的這幾年就不能被列入申請公民資格的5年內。同樣的,假如今年離開愛爾蘭太久,超過70天,那這年也不能被計入。居住證明文件如果達不到要求,這年一樣也是”白住了”。

而且每年最長可離境天數,最近已經由42天放寬到70天。我是有感覺到愛爾蘭是往寬鬆的方向走的。

居住證明文件,則是進兩年新頒布的計分系統,但最近也才修改過,而且還簡化了。要有資格申請公民,國家都還是會看你有沒有實實在在居住下來的事實跟”誠意”,所以一般來說這條件不難。

更詳細的官方說明:https://www.irishimmigration.ie/how-to-become-a-citizen/

雲端虛擬伺服器服務 — 概念

網頁伺服器

20幾年前普通人還在大學念書的時候,當時如果想要架個網站,是需要有下列兩樣最基本的神器:

  • 固定IP網路
  • 24小時不停運轉的電腦(我們叫這台電腦為伺服器,英文是server)

以上聽起來很簡單,但是當時網路剛從撥接進入ADSL寬頻時代,速度只有512k/64k,相當悲劇,想想看,人家連進來你的電腦看網頁,但你的上傳速度只有64k…這根本飛鴿傳書嘛。而且要求固定IP的話價格又更高。

至於一台不關機的電腦這件事,除了一直開著要忍受Power的噪音,電費也是個成本。另外開機久了,零件也是會壞,當時普通人就常常跟同學開口要退役的Power,為了就是燒壞了還有零件可以換。而最大的風險就是硬碟掛了,所有的資料全部跟著煙消雲散,所以定期備份又是一項重要的例行工作。還不只這些,為了怕停電,也可能要考慮接UPS不斷電系統。整體而言維護起來是很複雜的。

幸好普通人當時還在念大學,拜託專題教授在實驗室放了台電腦主機,沒接鍵盤螢幕,只插著電源跟網路線,隨便塞在一個不顯眼的角落。電腦電源還是舊款AT Power,這種電源是切換開或關的,就像是電燈開關,轉到開就永遠開。缺點是不能透過作業系統或網路發送命令去執行開關機,但對我來說可是相當方便呀,只要按鈕按下去切換成”開”,停電我也不用太煩惱,反正電來了電腦自動就會開機了。

這台Intel Pentium II 266經歷了幾次更換電源,倒也是安安穩穩的陪伴我到畢業。

雲端虛擬私有伺服器 ( VPS )

但如今,有了雲端虛擬私有伺服器,上面那些煩惱通通都沒有了!!!

雲端虛擬私有伺服器,講白話說,就是雲端供應商投資一筆錢蓋數據中心 ( Data center ),這裡面放了非常多厲害的電腦,吹著冷氣,插著飛快的網路線,以及因應停電所準備的發電機。以上這些不匪的投資成本,再回頭來跟使用者收費。

提供雲端虛擬私有伺服器的業者還不少,但對於初學者來說,建議還是從三個最大的供應商嘗試起 ( Amazon, Google, Microsoft ),因為這三大供應商都有提供免費試用。就如前面提到的,數據中心的設備投資是個不小的數字,這三大供應商自己有其他賺錢的事業體,撥一點資源給新客戶嘗試看看並不是什麼大問題。

供應商AmazonGoogleMicrosoft
事業體名稱:AWSGoogle Cloud PlatformAzure
雲端伺服器服務名稱:EC2 ( Amazon Elastic Compute Cloud )Compute EngineAzure Virtual Machines
免費體驗時間:12個月免費(需要符合下列條件) : * 使用t2.micro等級的執行個體 * 每月時數750小時 * 30GB的Amazon EBS儲存空間(Amazon Elastic Block Store)永遠免費(需要符合下列條件) * 使用e2-micro VM等級的執行個體 * 執行個體限定放在以下三個地區: 1. 奧勒岡州:us-west1 2. 愛荷華州:us-central1 3. 南卡羅來納州:us-east1 * 每月 30 GB 的標準永久磁碟 * 每月 1 GB 從北美輸出至所有地區的網路流量 (中國和澳洲除外)12個月免費(需要符合下列條件) * B1S Burstable B series等級的執行個體 * 每月時數750小時 * 64GB Managed Disks儲存空間

這邊做個額外解釋:

  • 執行個體:其實就是電腦啦,或者說伺服器
  • 每月時數750小時:拿計算機算一下,開1台電腦的服務x每天24小時x每月有31天 => 1 x 24 x 31 = 744小時。所以只開一台電腦的話,750小時絕對夠用的。
  • 其實Google及Microsoft都有再額外提供300及200美金的禮券,讓你超過額度的話不會被收費,可以從禮券裡面扣,這點是還不錯。但方案會不會變化也不知道,就沒列進去了。

好啦,暫時先這樣,我會再這邊繼續分享更多使用雲端伺服器的心得。

Wagtail CRX — 基礎配置01

首先,請進入後台管理介面吧。

定義網站名稱( Site Name )

路徑是Settings –> Sites,就會看到下圖:

*右上角有個按鍵”Add a site”,其實Wagtail CRX跟Wordpress一樣是可以支援多網站的 ( Multisite )。不過這等未來正式部屬後再找時間說明。

現在就先從localhost點進去吧。

進來後,目前只需要設定Site name,可以看到預設的名字是初次啟動時所給的”mysite”,可以換成你喜歡的名字,再按save儲存。

Root page指得就是網站的首頁啦,已經預設好指向Home這個page了,暫時不需要更動。左側選項的Pages裡面可以看到目前的網頁有哪些。

Hostname及Port則留到部屬後再來設定即可。

假設我把Site name改成ordinary_site。儲存後,再回到首頁,可以看到左上角的Site name成功從mysite換成ordinary_site了。

關於部屬:

前面提到了幾次部屬,這裡簡單做個說明。還記得Wagtail是架構在Django的基礎上嗎?Django有定義開發中的網頁叫做development environment,正式部屬叫做production environment。兩者有非常大的差異,首先是開發中的環境,只要動到一點程式碼,網頁馬上就會更新,這適合工程師確認程式碼有沒有問題。再來開發中的環境只有一個執行緒(Thread),如果太多人瀏覽,很容易就塞車了。

Wagtail CRX的官網教學並沒有提到要如何部屬成production environment,後面我會再說明要如何部屬到伺服器上。

Bootstrap基礎概念

Bootstrap框架

先送上Bootstrap官網網址。

Bootstrap是非常受歡迎的前端框架,只要安裝好相關的css及js檔,之後在寫html時,只需要輕輕鬆鬆的修改class,就能得到許多前端效果。

Wagtail CRX已經很好心的都幫我們安裝好Bootstrap了,直接用就對了,以我目前使用的v2.1.2版本是支援到Bootstrap v5.2的。

不過無論Bootstrap哪個版本,下面的基本功能都差不多,我們就儘快進入正題吧。

以下內容需要對html有基礎認識,至少要知道class怎麼用。

顏色

要把網頁弄得花花綠綠的,顏色絕對是最重要的環節,就從這裡開始吧。

基本顏色class標籤:

大致上就是primary, secondary, success, danger, warning, info這幾個標籤分別代表著不同的顏色。若前面加上”bg-“,就表示背景要變成這個顏色。請看以下把div變色的例子:

<div class="bg-primary">背景顏色</div>
<div class="bg-secondary">背景顏色</div>
<div class="bg-success">背景顏色</div>
<div class="bg-danger">背景顏色</div>
<div class="bg-warning">背景顏色</div>
<div class="bg-info">背景顏色</div>
<div class="bg-light">背景顏色</div>
<div class="bg-dark">背景顏色</div>Code language: HTML, XML (xml)

以上div所實際輸出的結果如下:

背景顏色
背景顏色
背景顏色
背景顏色
背景顏色
背景顏色
背景顏色
背景顏色

同理,字體顏色也可以使用這樣的組合標籤”text-” 舉例如下:

<p class="text-primary">普通人日誌</p>
<p class="text-secondary">普通人日誌</p>
<p class="text-success">普通人日誌</p>
<p class="text-danger">普通人日誌</p>
<p class="text-warning">普通人日誌</p>
<p class="text-info">普通人日誌</p>
<p class="text-light bg-secondary">普通人日誌</p>
<p class="text-dark">普通人日誌</p>Code language: HTML, XML (xml)

以上不同的class,所呈現出來的字體依序如下:

特別注意第7行的class,標籤是可以混搭把text-light 及 bg-secondary 一起使用的。

普通人日誌

普通人日誌

普通人日誌

普通人日誌

普通人日誌

普通人日誌

普通人日誌

網格系統(Grid system)

我想這應該是Bootstrap最受歡迎的功能了。除了方便排版,另外也會讓手機、平板、螢幕等不同尺寸的畫面都能兼顧閱讀性。

但因為這樣篇幅會有點多,而且Wagtail CRX大多幫我們規劃好了,所以這邊我僅簡短介紹。

列 ( Row ) 與欄 ( Column )

這很重要,但也很簡單,Bootstrap是把畫面分割成列與欄

  • 先有列,再有欄。
  • 1列裡面最多可分成12欄。

嗯,有以上的概念應該就足夠了。

自動式網格系統 ( Responsive Grid System ) 的分段點 ( breakpoint )

這裡也是先學點概念就足夠了。

Bootstrap預設了以下幾個分段點,分段點的用意就是讓網頁內容可以配合不同尺寸的螢幕來做換行,免得每次閱讀都要放大然後移動捲軸。

  • Extra small (xs), <576px
  • Small (sm), 576px ~ 768px
  • Medium (md), 768px ~ 992px
  • Large (lg), 992px ~ 1200px
  • Extra large (xl), 1200px ~ 1400px
  • Extra extra large (xxl), >1400px

以上要如何使用,就等未來實戰再來說明,會比較容易理解。

Wagtail CRX — 後台

上回提到,Wagtail啟動後,瀏覽器輸入http://127.0.0.1:8000就可以看到網站。

如果要進入後台,那就是網址後再加上/admin。

也就是http://127.0.0.1:8000/admin這個連結即可進入後台管理員介面 :

還記得初次啟動的時候,我們曾經建立的 superuser 嗎?

是的,這個 superuser 也就是Wagtail CRX後台管理員的帳號。

接著輸入 superuser 的帳號密碼就可以成功進入後台了 :

以上就是介紹如何進入後台管理介面。

這個介面非常重要,但接下來我必須先插播一些Bootstrap的使用方式。

因為Wagtail CRX相當依賴Bootstrap框架,所以還是需要先建立起基礎的Bootstrap概念。

Wagtail CRX — 啟動

初次啟動

來到專案資料夾wagtail,一樣要保持在虛擬環境下,輸入: coderedcms start mysite (mysite可以換成其他你喜歡的名字)

(venv) PS C:\wagtail> coderedcms start mysiteCode language: PowerShell (powershell)

接著會跑出下面訊息,告訴你接下來的步驟。

(venv) PS C:\wagtail> coderedcms start mysite
Creating a Wagtail CRX project called mysite
Success! mysite has been created

Next steps:
    1. cd mysite/
    2. python manage.py migrate
    3. python manage.py createsuperuser
    4. python manage.py runserver
    5. Go to http://localhost:8000/admin/ and start editing!

(venv) PS C:\wagtail>Code language: PowerShell (powershell)

接下來的步驟都是延續Django的初次啟動程序,首先進入mysite資料夾

(venv) PS C:\wagtail> cd mysite
(venv) PS C:\wagtail\mysite>Code language: PowerShell (powershell)

再來使用migrate創建資料庫,由於從頭到尾我們都沒設定資料庫,因此預設會使用SQLite資料庫(這是Django預設的資料庫)

(venv) PS C:\wagtail\mysite> python manage.py migrateCode language: PowerShell (powershell)

這時會跑出一長串的訊息,但應該不會出問題。

Applying wagtailsearch.0001_initial... OK
  Applying wagtailsearch.0002_add_verbose_names... OK
  Applying wagtailsearch.0003_remove_editors_pick... OK
  Applying wagtailsearch.0004_querydailyhits_verbose_name_plural... OK
  Applying wagtailsearch.0005_create_indexentry... OK
  Applying wagtailsearch.0006_customise_indexentry... OK
  Applying wagtailsearch.0007_delete_editorspick... OK
  Applying wagtailseo.0001_initial... OK
  Applying wagtailseo.0002_remove_seosettings_amp_pages... OK
  Applying wagtailusers.0001_initial... OK
  Applying wagtailusers.0002_add_verbose_name_on_userprofile... OK
  Applying wagtailusers.0003_add_verbose_names... OK
  Applying wagtailusers.0004_capitalizeverbose... OK
  Applying wagtailusers.0005_make_related_name_wagtail_specific... OK
  Applying wagtailusers.0006_userprofile_prefered_language... OK
  Applying wagtailusers.0007_userprofile_current_time_zone... OK
  Applying wagtailusers.0008_userprofile_avatar... OK
  Applying wagtailusers.0009_userprofile_verbose_name_plural... OK
  Applying wagtailusers.0010_userprofile_updated_comments_notifications... OK
  Applying wagtailusers.0011_userprofile_dismissibles... OK
  Applying website.0001_initial... OK
  Applying website.0002_initial_data... OK
(venv) PS C:\wagtail\mysite>Code language: PowerShell (powershell)

再來建立superuser帳號

(venv) PS C:\wagtail\mysite> python manage.py createsuperuserCode language: PowerShell (powershell)

帳號就看個人喜好了,假設我這邊用admin當做superuser。

依序輸入email (非必須) 及密碼。

Username (leave blank to use 'root'): admin
Email address: 
Password: 
Password (again):Code language: Bash (bash)
Superuser created successfully.
(venv) PS C:\wagtail\mysite>Code language: PowerShell (powershell)

以上就是首次安裝後,初次啟動所需要做的設定。接下來會說明該如何每次啟動Wagtail CRX

每次啟動

基本上把握幾個重點:

  • 啟動虛擬環境
  • Run server

啟動虛擬環境

進入剛才的wagtail資料夾,並輸入

PS C:\wagtail> .\venv\Scripts\Activate.ps1Code language: PowerShell (powershell)

確認有看到虛擬環境(venv)的符號。

(venv) PS C:\wagtail>Code language: PowerShell (powershell)

進入mysite資料夾

(venv) PS C:\wagtail> cd mysite
(venv) PS C:\wagtail\mysite>Code language: PowerShell (powershell)

Run server

這步驟也完全是Django的啟動程序。指令是

python manage.py runserver

(venv) PS C:\wagtail\mysite> python manage.py runserverCode language: PowerShell (powershell)

然後就會跑出以下訊息:

(venv) PS C:\wagtail\mysite> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
August 04, 2023 - 11:24:33
Django version 4.1.10, using settings 'mysite.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.Code language: PowerShell (powershell)

使用瀏覽器,輸入網址http://127.0.0.1:8000,就可以看到畫面了。

現在網站暫時都還是空白的。

Wagtail CRX — 安裝

設置虛擬環境

  • 請先確認電腦已經有安裝好Python

為了減少不必要的干擾,建議創建一個虛擬環境來安裝Wagtail CRX,

未來要部屬在伺服器上面,也方便版本管理。

假設在Windows環境下,我的專案資料夾是在C槽下的wagtail。

開啟PowerShell,在wagtail資料夾下輸入:

PS C:\wagtail>python -m venv .\venv\Code language: PowerShell (powershell)

這時wagtail內就會多出一個venv的資料夾,之後安裝的擴充套件都會集中在此 :

Directory: C:\wagtail
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        03/08/2023     16:56                venv
Code language: PowerShell (powershell)

啟動虛擬環境

在wagtail資料夾內輸入:

PS C:\wagtail> .\venv\Scripts\Activate.ps1Code language: PowerShell (powershell)

然後就會啟動虛擬環境,這時可以在PowerShell視窗看到最前面帶有(venv)字樣。

(venv) PS C:\wagtail>Code language: PowerShell (powershell)

下載並安裝Wagtail CRX

我們直接使用Python的PIP來安裝Wagtail CRX,套件的名字叫做coderedcms

(venv) PS C:\wagtail> pip install coderedcmsCode language: PowerShell (powershell)

接下來就會自動安裝Wagtail CRX以及其他相依套件了。

« Older posts Newer posts »

© 2025 Anordinaryguy