cici 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +13 -13
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/asset/[...path]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/asset/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mile/prompts.body +1 -1
- package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/atom.xml/route.js +3 -3
- package/.next/standalone/.next/server/app/atom.xml/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/atom.xml.body +1 -1677
- package/.next/standalone/.next/server/app/blog/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blog/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blog/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/editor/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/editor/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/memos/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/memos/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/robots.txt/route.js +1 -1
- package/.next/standalone/.next/server/app/rss.xml/route.js +2 -2
- package/.next/standalone/.next/server/app/rss.xml/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/rss.xml.body +1 -227
- package/.next/standalone/.next/server/app/sitemap.xml/route.js +5 -5
- package/.next/standalone/.next/server/app/sitemap.xml.body +5 -101
- package/.next/standalone/.next/server/app/unavailable/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
- package/.next/standalone/.next/server/chunks/3464.js +1 -1
- package/.next/standalone/.next/server/chunks/3607.js +1 -1
- package/.next/standalone/.next/server/chunks/719.js +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/package.json +2 -2
- package/.next/standalone/sample-content/blog/hello-cici.md +25 -0
- package/.next/standalone/sample-content/likes.json +1 -0
- package/.next/standalone/sample-content/memos.json +7 -0
- package/.next/standalone/sample-content/site-config.json +18 -0
- package/README.md +17 -1
- package/bin/cici.js +126 -23
- package/package.json +2 -2
- package/.next/standalone/data/assets/1727016079577.jpg +0 -0
- package/.next/standalone/data/assets/images/2024-12-03/1733256504772.jpg +0 -0
- package/.next/standalone/data/assets/images/2024-12-12/.gitkeep +0 -0
- package/.next/standalone/data/assets/images/2024-12-12/1734033798997.png +0 -0
- package/.next/standalone/data/assets/images/2024-12-21/.gitkeep +0 -0
- package/.next/standalone/data/assets/images/2024-12-21/1734785902890.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/.gitkeep +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734990512413.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734991833894.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993188114.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993280313.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993317984.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993411252.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993425042.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993480342.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993562660.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993625024.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993677103.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993893285.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734993996131.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734994035144.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734994064317.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734994128679.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734994189257.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734994521799.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-23/1734994530669.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-24/.gitkeep +0 -0
- package/.next/standalone/data/assets/images/2024-12-24/1735032434591.jpeg +0 -0
- package/.next/standalone/data/assets/images/2024-12-24/1735068363518.jpeg +0 -0
- package/.next/standalone/data/assets/images/Cofe-app.png +0 -0
- package/.next/standalone/data/blog/.gitkeep +0 -0
- package/.next/standalone/data/blog/2017-summary.md +0 -59
- package/.next/standalone/data/blog/a-complex-web-app-refactor.md +0 -72
- package/.next/standalone/data/blog/a-day-of-remote-worker.md +0 -82
- package/.next/standalone/data/blog/async-action-in-redux.md +0 -257
- package/.next/standalone/data/blog/cofe.md +0 -398
- package/.next/standalone/data/blog/expensee-shortcut-numbers-guide.md +0 -99
- package/.next/standalone/data/blog/first-golang-project-fx.md +0 -113
- package/.next/standalone/data/blog/work-going-index.md +0 -49
- package/.next/standalone/data/blog//344/270/212/346/265/267/345/210/260/351/230/277/345/247/206/346/226/257/347/211/271/344/270/271.md +0 -114
- package/.next/standalone/data/blog//344/272/214/346/234/210/350/221/241/350/220/204/347/211/231/346/270/270/350/256/260.md +0 -107
- package/.next/standalone/data/blog//345/215/216/344/270/272/351/270/277/350/222/231-harmaryos-next-/347/272/277/344/270/213/346/264/273/345/212/250/345/260/217/350/256/260.md +0 -180
- package/.next/standalone/data/blog//345/233/233/346/234/210/347/232/204/345/260/276/345/267/264/351/200/233/345/276/267/345/233/275-/346/237/217/346/236/227.md +0 -76
- package/.next/standalone/data/blog//345/234/250/344/274/246/346/225/246-shoreditch-/345/221/206/344/270/211/345/244/251.md +0 -40
- package/.next/standalone/data/blog//346/204/217/345/244/247/345/210/251/347/275/227/351/251/254/345/244/217/345/244/251/345/233/233/346/227/245/346/270/270.md +0 -59
- package/.next/standalone/data/blog//346/210/221/345/201/232/344/272/206/344/270/200/346/254/276/346/227/205/350/241/214/350/256/260/345/275/225/345/272/224/347/224/250/357/274/232mile.md +0 -40
- package/.next/standalone/data/blog//350/245/277/347/217/255/347/211/231/344/270/203/345/244/251/347/232/204/346/227/205/350/241/214.md +0 -128
- package/.next/standalone/data/blog//351/200/233/351/200/233/346/265/216/345/267/236/345/262/233.md +0 -78
- package/.next/standalone/data/blog-manifest.json +0 -21
- package/.next/standalone/data/highlights/expensee-shortcut-numbers-guide.json +0 -77
- package/.next/standalone/data/likes.json +0 -56
- package/.next/standalone/data/memos.json +0 -1255
- package/.next/standalone/data/site-config.json +0 -22
- /package/.next/standalone/.next/static/{ACh2hmfOOZR7INKDQAX5I → Pl18p4h2shbbqjypPxStc}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{ACh2hmfOOZR7INKDQAX5I → Pl18p4h2shbbqjypPxStc}/_ssgManifest.js +0 -0
- /package/.next/standalone/{data → sample-content/assets}/.gitkeep +0 -0
- /package/.next/standalone/{data/assets/images/2024-12-03 → sample-content/highlights}/.gitkeep +0 -0
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 华为鸿蒙 HarmaryOS Next 线下活动小记
|
|
3
|
-
date: 2024-04-21T05:58:06.454Z
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-

|
|
8
|
-
|
|
9
|
-
## 偶然决定
|
|
10
|
-
|
|
11
|
-
很久都没有参加线下活动了,周末的时间基本上,要么陪小朋友运动,要么陪小朋友写作业或者准备比赛,要么陪夫人练车。很偶然的在朋友圈刷到华为鸿蒙的线下开发者活动,心血来潮就报名了,捡一捡线下开发的感觉,也是一个很好的了解鸿蒙生态的一个机会吧。
|
|
12
|
-
|
|
13
|
-

|
|
14
|
-
|
|
15
|
-
我甚至都没有详细看活动议程,甚至都没有想过是不是需要做一点准备,而本人也确实没有一点鸿蒙开发的经验,甚至 Android 开发也没有正经弄过,也就是维护两个小 iOS 应用。但是不妨碍我参加一个以鸿蒙为主题的开发者比赛活动呀,没准比赛中可以完成一个最小可用产品,顺利的开启自己的鸿蒙生涯呢。
|
|
16
|
-
|
|
17
|
-
## 活动当天
|
|
18
|
-
|
|
19
|
-
### 早上
|
|
20
|
-
周日和夫人安排好小朋友的学习和活动安排,提醒夫人关注好小朋友的事项安排重点之后,我就出发去活动了,原来活动在徐汇漕河泾的字节办公楼,我从杨浦江湾体育场这边过去,相当于从上海的北边到南边,还是蛮远。想到地铁还要转车,算了咖啡直接打车吧。
|
|
21
|
-
|
|
22
|
-
上了车想到如果要组队,要不就随机叫个朋友一起吧,所以发个消息给 @Chester ,Checster 也很干脆,一起来玩了。等我到场地时候,活动已经开始了,迟到了十几分钟。Chester 比我迟到更多了,我们完全没有注意到活动的议程,其实人家的流程还是紧凑的。
|
|
23
|
-
|
|
24
|
-

|
|
25
|
-
|
|
26
|
-
早上主要主办方和华为工作人员对活动和鸿蒙的一些介绍,我们两人在期间对于今天要做什么进行一些头脑风暴,"Cross OS HandOff" 这个想法很自然的就到我的脑海中,简单的讨论之后我们就决定做这个想法了。跨生态互操作,想想就很好玩,当然也想想就好难,不过我想着做一个PoC应该问题不大。
|
|
27
|
-
|
|
28
|
-
### 午餐
|
|
29
|
-
|
|
30
|
-
大约到了十二点多开始午餐,午餐很一般,略过.
|
|
31
|
-
|
|
32
|
-
### 下午
|
|
33
|
-
|
|
34
|
-
#### 设计
|
|
35
|
-
|
|
36
|
-
下午就是写代码的时间啦. 我们基本上采用了 "Demo Driven" 的开发方案。首先当然是定义我们的目标了。
|
|
37
|
-
|
|
38
|
-
**我的愿景: 移动设备用户在不同生态(iOS, Android, HarmonyOS等)的设备之间可以做到无缝的持续性操作.**
|
|
39
|
-
|
|
40
|
-
*场景1*: 比如我在的的 iPhone 手机上的记事本上正在创作,突然想要切换我的 HarmonyOS 笔记本上继续我的创作,键盘输入让我创作更快捷。这时候如果有了 Cross OS 的 HandOff, 它将自动把我 iPhone 上的记事本的状态变成 HarmonyOS 上记事本的应用状态,我直接在 HarmonyOS无缝的继续我的创作。
|
|
41
|
-
|
|
42
|
-
*场景2*: 比如我在的 HarmonyOS 的笔记本上上的地图软件上查询我到目的地路线,现在我准备出门打车,那么我就可以通过 Cross OS HandOff 的功能在我的 iOS iPhone 手机上的地图应用继续的操作。
|
|
43
|
-
|
|
44
|
-
这些都是我最初想法想达到的愿景,但是想到现在也就是不到两个小时的时间了,我们如何实现一个 demo 来阐述我们的理念呢。其实要达到我们的目标,主要完成两个主要的部分:
|
|
45
|
-
|
|
46
|
-
> 为了更好的表达,我们把两个不同的生态上的应用分别进行简单的编号. 在运行着 iOS 系统的 iPhone 设备的某应用程序,我们编号 A. 在运行着 HarmonyOS 系统的鸿蒙设备的某同类型的应用程序,我们编号 B.
|
|
47
|
-
|
|
48
|
-
* 应用状态快照
|
|
49
|
-
|
|
50
|
-
为了实现 A 到 B 的 HandOff, 我们需要先将此刻的 A 的状态进行快照。
|
|
51
|
-
|
|
52
|
-
* 数据传输
|
|
53
|
-
|
|
54
|
-
为了实现在 B 上继续用户在 A 上的操作,我们需要将上一步的 A 的应用程序状态快照传输到 B 的设备上。
|
|
55
|
-
|
|
56
|
-
* 应用状态恢复
|
|
57
|
-
|
|
58
|
-
当运行在 B 的设备收到 A 的状态快照之后,将状态快照恢复成 B 可以识别的状态,并且应用到 B 应用上。
|
|
59
|
-
|
|
60
|
-
但是很显然,在两个小时里我们是无法完成一个完善的方案的,所以我们最后定下来一个方案实现 PoC 并且很大概率可以完成现场 demo 的方案。
|
|
61
|
-
|
|
62
|
-
> 两个设备通过局域网进行通信,然后可以选择一个 Mac 应用,在Mac 进行一些一系列操作之后,然后我们转移到 HarmonyOS 设备上时,我们可以在同一个应用(或者同类型)的应用继续我们之前在 Mac 上的工作,保持完整的持续性.
|
|
63
|
-
|
|
64
|
-
这样我们就很完整的展示我们的概念,**然而**现实环境还是残酷,[^7b0daa3b-0af8-450f-824d-52aea73be8f7-1714018784523]在现场华为工程师的协助下,我们仍然没有办法成功在我们的 Mac 上能够完成 DevEcho - Studio 上运行一个 HarmonyOS 的模拟器,所以为了在短暂时间内有一个像样的 demo,我们选择一个简单的场景:
|
|
65
|
-
|
|
66
|
-
> 我在我的 Mac 上运行一个剪贴板管理 uPaste,我的队友也在他的 Mac 上运行这个 uPaste, 然后我会在我的 Mac 上进行一系列的复制粘贴操作,在不依赖 Mac 系统的内置同步功能的情况下,这些操作会自动在另外一台 Mac 的 uPaste 应用上自动同步.
|
|
67
|
-
|
|
68
|
-
#### 实现
|
|
69
|
-
|
|
70
|
-
* 数据传输
|
|
71
|
-
|
|
72
|
-
我们俩对于网络部分的知识确实有些捉襟见肘,想着无论是基于蓝牙,还是 WiFi 都可以,至少不能直接使用公网来传输数据。简单搜索一通之后,我们感觉无论是使用 WiFi Direct 还是蓝牙,感觉我们都无法这两个小时内 demo 出完整的流程,所以我们决定:直接在同一个局域网内,两个设备通过 Socket 来进行数据通信.
|
|
73
|
-
|
|
74
|
-
* 应用数据状态发送
|
|
75
|
-
|
|
76
|
-
因为我们选择了最简单的剪贴板管理应用,所以应用状态就就很简单了: 用户当前的剪贴板内容. 所以我们只需要在适当的时候(用户进行 HandOff 操作的时候)进行一个剪贴板内容发送即可.
|
|
77
|
-
|
|
78
|
-
* 应用数据状态恢复
|
|
79
|
-
|
|
80
|
-
而在目标设备上,我们只需要将接收到剪贴板数据,写入到当前设备的剪贴板即可。
|
|
81
|
-
|
|
82
|
-
这样这个演示的流程就简单可控了,在清楚阐述我们的设计思路的同时也确保最低概率的演示翻车.
|
|
83
|
-
|
|
84
|
-
所以整个演示就变成了几段非常简单的代码而已。
|
|
85
|
-
|
|
86
|
-
监听并且收到数据之后直接写入剪贴板.
|
|
87
|
-
|
|
88
|
-
```py
|
|
89
|
-
import socket
|
|
90
|
-
|
|
91
|
-
class Server:
|
|
92
|
-
def __init__(self, host, port):
|
|
93
|
-
self.host = host
|
|
94
|
-
self.port = port
|
|
95
|
-
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
96
|
-
|
|
97
|
-
def start(self):
|
|
98
|
-
self.server_socket.bind((self.host, self.port))
|
|
99
|
-
self.server_socket.listen()
|
|
100
|
-
while True:
|
|
101
|
-
client_socket, client_address = self.server_socket.accept()
|
|
102
|
-
self.handle_client(client_socket)
|
|
103
|
-
|
|
104
|
-
def handle_client(self, client_socket):
|
|
105
|
-
while True:
|
|
106
|
-
data = client_socket.recv(1024).decode()
|
|
107
|
-
if not data:
|
|
108
|
-
break
|
|
109
|
-
client_socket.close()
|
|
110
|
-
|
|
111
|
-
if __name__ == "__main__":
|
|
112
|
-
HOST = '172.20.10.15' # Listen on all available interfaces
|
|
113
|
-
PORT = 8080
|
|
114
|
-
server = Server(HOST, PORT)
|
|
115
|
-
server.start()
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
持续从剪贴板读取数据,如果有变化通过 socket 发送剪贴板内容。
|
|
120
|
-
|
|
121
|
-
```py
|
|
122
|
-
import socket
|
|
123
|
-
import subprocess
|
|
124
|
-
|
|
125
|
-
def get_clipboard_content():
|
|
126
|
-
process = subprocess.Popen(['pbpaste'], stdout=subprocess.PIPE)
|
|
127
|
-
output, _ = process.communicate()
|
|
128
|
-
return output.decode('utf-8')
|
|
129
|
-
|
|
130
|
-
class Client:
|
|
131
|
-
def __init__(self, host, port):
|
|
132
|
-
self.host = host
|
|
133
|
-
self.port = port
|
|
134
|
-
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
135
|
-
|
|
136
|
-
def send_message(self, message):
|
|
137
|
-
self.client_socket.connect((self.host, self.port))
|
|
138
|
-
self.client_socket.sendall(message.encode())
|
|
139
|
-
self.client_socket.close()
|
|
140
|
-
|
|
141
|
-
if __name__ == "__main__":
|
|
142
|
-
HOST = '172.20.10.5' # IP address of the receiver
|
|
143
|
-
PORT = 8080
|
|
144
|
-
|
|
145
|
-
tmp = get_clipboard_content()
|
|
146
|
-
while True:
|
|
147
|
-
source = get_clipboard_content()
|
|
148
|
-
if source and source != tmp:
|
|
149
|
-
client = Client(HOST, PORT)
|
|
150
|
-
client.send_message(source)
|
|
151
|
-
tmp = source
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
上面的代码就是当时我们 demo 所使用的代码,你可能会发现非常多的改进点,但是这就是 demo,让流程走起来比代码的完善更重要,一切的改动的出发点应该都是让 demo 更加完整流畅,能让观众和评审更容易理解和参与。
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
#### Demo
|
|
159
|
-
|
|
160
|
-
可能是周末写字楼物业不开空调还是怎么的,活动的会议室非常的热,我们只能跑到外面的开放空间写代码。我们一个个的解决掉项目中的问题,感觉似乎从演示的层面上差不多的时候,工作人员跑过来说“你们怎么还在这呢,演示都开始了”,后来我们才了解到,原来最终的作品其实不需要一个可以运行的代码,只要一份演示的 ppt 即可,并且演示是需要报名的,只有十个名额,显然像我们这样,人家都开始演示,我们都还在调试代码的团队,显然就没有机会了。
|
|
161
|
-
|
|
162
|
-
然而在我们回到会议室,看着别人的演示,觉得既没有特别惊艳的创意,也没有硬核的技术展示的时候,我们琢磨着全部参加完整个流程似乎太晚回家了,打算伺机离开的时候,评委说:“我们再增加两个展示名额吧”,看来评委也希望可以看到更多的项目,更多的可能性。我们想着既然做都做了,展示成果,也算今天没有白来。所以立即就举手上台展示了.
|
|
163
|
-
|
|
164
|
-
玩完没有想到,展示的效果还挺好,现场观众的反应和评委的评价都比较的积极,还是蛮开心。
|
|
165
|
-
|
|
166
|
-
> 小插曲: 不知道为啥,当我们使用场地的局域网的时候,socket 连接不成功,最后我们只能通过我们手机开热点形式来完成我们的展示.
|
|
167
|
-
|
|
168
|
-

|
|
169
|
-
|
|
170
|
-
#### 投票和获奖
|
|
171
|
-
|
|
172
|
-
万万没想想到,最后我们获得票数第二名的成绩,当然这也包括我们自己的投票😂,但是很开心,希望我们在后面的六月份的决赛中[^aC5taW5naGVAZ21haWwuY29t-1721555382700],也可以也能收获幸运。
|
|
173
|
-
|
|
174
|
-

|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
[^7b0daa3b-0af8-450f-824d-52aea73be8f7-1714018784523]: 华为如果可以在开发者体验方面再进一步,将极大有助于生态的繁荣.
|
|
179
|
-
|
|
180
|
-
[^aC5taW5naGVAZ21haWwuY29t-1721555382700]: 很可惜,由于客观原因,我们没有能前往东莞参加决赛.
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 四月的尾巴逛德国-柏林和慕尼黑
|
|
3
|
-
date: 2025-04-29T11:44:58.606Z
|
|
4
|
-
external_discussions:
|
|
5
|
-
- platform: v2ex
|
|
6
|
-
url: https://v2ex.com/t/1133399
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
小朋友又迎来了一周的五月假期啦, 之前的计划实际上是去意大利的, 但是由于安排做的有点晚了,所以机票和酒店的价格都过于昂贵,所以我们换成了德国的柏林和慕尼黑, 整体的花费如下。
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
| 项目 | | 金额 |
|
|
13
|
-
| -------- | ------- | ------- |
|
|
14
|
-
| 机票 | 阿姆斯特丹 → 柏林, 慕尼黑 → 阿姆斯特丹 | 612.21 欧元 |
|
|
15
|
-
| 酒店 | 柏林 COURTYARD 三晚上 | 600.66 欧元 |
|
|
16
|
-
| 酒店 | 慕尼黑 FOURPOINTS 四晚上 | 540 欧元 |
|
|
17
|
-
| 火车票 | 柏林 → 慕尼黑 | 72.99 欧元 |
|
|
18
|
-
| 餐食 | 柏林 | ~300 欧元 |
|
|
19
|
-
| 餐食 | 慕尼黑 | ~ |
|
|
20
|
-
|
|
21
|
-
> 上面都是整体价格:一个成人以及两个小朋友(9岁和10岁).
|
|
22
|
-
|
|
23
|
-
### 柏林
|
|
24
|
-
|
|
25
|
-
这是我第一次来柏林,整体的印象满不错的,和其他城市的行程其实大同小异,但感受却和游览其他欧洲城市完全不一样:带着小朋友走马观花的逛一逛博物馆,看看 Unter den Linden (菩提树下大街)沿途的建筑,参观历史悠久的柏林洪堡大学,看看画廊的涂鸦, 品尝当地的食物,这些寻常的活动,也许是柏林自带的历史文化属性,附着在这个城市的所有角落,所以感觉很奇妙,时而平静沉寂,时而开放热闹,时而规整有序,时而脏乱混杂。
|
|
26
|
-

|
|
27
|
-
|
|
28
|
-
> 柏林的博物馆真的是太多了,然而小朋友们最喜欢的,玩的不亦乐乎却是间谍博物馆 (Spy Museum), 在里面玩各种间谍小游戏,玩的都不想离开.
|
|
29
|
-
|
|
30
|
-
柏林的公交系统,有点太复杂了,也许是我们没有做任何攻略,下了飞机,打开地图,捣鼓了好一会才买好票,但是找一个好一会才找到对应线路上下车点,各种 RE, U, S 以及 BUS,再加上区域相关的AB和ABC. 确实让脑袋空白🤣。 最后由于换成麻烦,中间我们直接打开 Bolt 打车去酒店.
|
|
31
|
-
|
|
32
|
-
> 然后在三天的旅程里,很羞耻的被罚款了60欧,因为我想着通过 BVG Tickets app直接买票,所以下载了app之后,车来了之后,带小朋友直接上车,然后发现我还注册不了,好巧不巧,检票员来检票,能怎么办,只能乖乖的人认罚了. 后来当我到了慕尼黑,下了火车之后,我们需要做地铁(U4)到我们所做的酒店,当我们走到上地铁地方也没有看到卖票的机器,我向个中年的德国阿姨咨询,她解释道“你需要到楼上买票,一般你顺着 Exit Sign 的地方走上去,会看到机器买票,如果你到了乘车区域,而有遇到检票,你会被罚款的。” ,顺利的找到卖票机器以后,我们买了 TourCar 的三日票,30 欧元左右。12 岁以下的儿童跟着成人可以不需要购票.
|
|
33
|
-
|
|
34
|
-
柏林的食物真的比阿姆斯特丹丰富太多了,而且风味也比阿姆斯特丹更适合我,毕竟我喜欢吃肉,所以猪肘子[Maximilians](https://www.maximilians-berlin.de/)肯定得试试呀,啤酒也得喝一喝,以及传说中德国总理默尔克也爱吃的那家中餐馆[Jolly](https://www.restaurant-jolly.de/)也得试试呀,还是蛮符合我胃口。体感上觉得柏林的物价比阿姆斯特丹要合理一些,除了餐厅吃饭,酒店住宿,打车或者公共交通上,我们还去 REWE 超市买一些水果,零食,和鲜奶。基本上也比阿姆斯特丹便宜不少.
|
|
35
|
-
|
|
36
|
-
柏林的路宽更像北京比较像一些,而且城市风貌更像上海一些。这几天柏林的天气真的很好,白天走累了就在公园或者河边草地上坐一坐,晒晒舒服的阳光,很惬意。而晚上走在街头,我和小朋友们边走边给他们拿着手机,他们录制他们的[《西柚课间》](https://www.xiaoyuzhoufm.com/podcast/63f9f6ec75918da323982e2c), 微风拂树叶,我甚至有种回到上海的感觉。 我相信后面我估计还会安排一次单独的柏林旅行,来这个城市好好的住上一段时间.
|
|
37
|
-
|
|
38
|
-

|
|
39
|
-
|
|
40
|
-
### 慕尼黑
|
|
41
|
-
|
|
42
|
-
从柏林到慕尼黑的火车其实还是蛮快,四个多小时,和从北京到上海差不多的时长。车上也可以点咖啡和一些食物,我们吃点零食,喝个咖啡,鞋垫文档,惜惜和佑佑看看书,睡睡觉,很快也就到了慕尼黑.
|
|
43
|
-
> 发生了一个小插曲,我买票的时候没有注意自己买的票是二等座,而上车的时候也没有注意自己竟然做的一等座车厢,直到检票人员告诉我才知道。
|
|
44
|
-
|
|
45
|
-
下了火车,我们就直接去坐地铁去酒店了,慕尼黑的公共交通系统似乎比柏林简单一点?而且买票直接就可以在手机上购买,当然也可能是我们慢慢熟悉了,我们在穆尼黑的几天全都乘坐公共交通来进行旅行,S 和 U 的地铁,城市的公共汽车,都很方便。我们房间在酒店的高层,可以看到慕尼黑的夜晚的点点灯光。
|
|
46
|
-
|
|
47
|
-

|
|
48
|
-
|
|
49
|
-
饱饱的睡了一晚上之后,第二天公交车大谷物市场附近下车,窜梭在谷物市场中,看着卖花,卖食物,卖工艺品的摊铺,阳关也很好,人们都悠闲的吃吃喝喝。我们就慢悠悠的走着,很快就到了玛利亚广场,很巧的时候,正好赶上了早上 11:00 左右的木偶钟表表演,和人群一起观看着木偶表演。
|
|
50
|
-
|
|
51
|
-

|
|
52
|
-
|
|
53
|
-
下午吃饱喝足了之后,我们简单的看了看慕尼黑市政厅,不过真的没有留下什么特别的印象,之后我们就去参观慕尼黑皇宫了,直接现场购票即可,建议带上语音导览。
|
|
54
|
-
|
|
55
|
-
> 在欧洲也去了好多宫殿,博物馆,美术馆等,其实很少看到服务人员是中国人,甚至华人面孔都很少,而慕尼黑皇宫语音导览服务处的两位服务人员是中国同胞,多少还是增加一点熟悉感。
|
|
56
|
-
|
|
57
|
-

|
|
58
|
-
|
|
59
|
-
整个皇宫参观过程体验很好,人不是那么多,路线设计也很好,整体的建筑,馆内的藏品,家具摆设,在语音导览中都有很好的介绍,而且不是干涩的介绍,有较为详细的背景介绍,所以听起来很轻松和有趣很多,整个过程比我参观马德里皇宫的感受好太多了,而且马德里皇宫我们还是有导游带着的,但是感受却一般, 可能还是当时跟不少人,而且导游的英文和讲故事的方式傻姑娘没有达到预期吧。
|
|
60
|
-
|
|
61
|
-
第三天我们去宝马世界 (BMW World) 和宝马博物馆 (BMW Museum) 参观,各种汽车还是蛮有趣,汽车迷如果到了慕尼黑还是可以去看看的,宝马历史很久,车子很酷。
|
|
62
|
-
|
|
63
|
-
> 最近好喜欢 MINI COOPER,希望今年可以开着去旅行.
|
|
64
|
-
|
|
65
|
-

|
|
66
|
-
|
|
67
|
-
然而这天让我最印象深刻却是英国公园(Englischer Garten), 是德国慕尼黑最著名的城市公园之一,也是在世界上最大的城市公园之一,比纽约的中央公园还大。这是我见过的人最多的公园,我曾经以为其他国家公园再热闹,也一定比不上我们中国的公园热闹。到了慕尼黑的英国公园,我才知道,公园长满人,原来是字面意思的长满人。而且人们真的好Chill。
|
|
68
|
-
|
|
69
|
-
第四天,小红书上之前联系好的小姐姐带我们参观两所德国著名大学:慕尼黑大学和慕尼黑工业大学。有熟人带着游览大学,体验就好很多了,校园走走,介绍一些历史,教学楼参观参观,分享一些趣事,小朋友也喜欢问这问那的,互动参观过程就会好玩一些,可惜惜惜和佑佑走不了太多路,不然可以去更多校区。
|
|
70
|
-
|
|
71
|
-

|
|
72
|
-
|
|
73
|
-
慕尼黑整体玩几天下来,感受没有像柏林一样给我一种:我想我一定安排个时间再来住上一段时间的想法。也许是我没有感受它的独特性,而柏林似乎散发一种特别的Vibe,然后恰好我比较喜欢.
|
|
74
|
-
|
|
75
|
-
不过如果问惜惜和佑佑,这次德国旅行,什么最值得回忆,他们一定会说:游泳。因为他们两同时在酒店的游泳池学会了游泳。我断断续续教他们游泳有一些时间,但是突然间,两人在到酒店第二天晚上去游泳(我们还是当天去迪卡侬买的泳衣泳裤的),我跟他们玩着玩着,突然就掌握, 很奇妙。而且还和当地的小朋友一起做游泳游戏,聊的很开心。
|
|
76
|
-
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 在伦敦 Shoreditch 呆三天
|
|
3
|
-
date: 2025-10-06T09:28:06.524Z
|
|
4
|
-
latitude: 37.793858561729316
|
|
5
|
-
longitude: -122.39492676950107
|
|
6
|
-
city: San Francisco
|
|
7
|
-
street: Market Street
|
|
8
|
-
external_discussions:
|
|
9
|
-
- platform: v2ex
|
|
10
|
-
url: https://v2ex.com/t/1163528
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
> 最近一年多冲冲撞撞的来去一些地方,突然某些时刻觉得,原来自己也拥有了某种程度的自由,移动意义上的自由.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-

|
|
20
|
-
|
|
21
|
-
三十几年的人生里,我大部分的时间都觉得自己钉在具体的地方,小时候没有想过我会离开家乡去外地读书,去北京,去上海,工作生活,去年以前没有想过自己会来欧洲工作生活; 最近一年更是越发的想体验世界,抓住小朋友的短假长假,带他们离开熟悉城市和国家,去陌生的地方走一走;甚至当把公开演讲能力训练提高的技术大会分享,也按照国家和城市认真的考虑投稿. 今年伦敦的APIDays和旧金山的GraphQL Summit都很幸运的入选了.
|
|
22
|
-
|
|
23
|
-

|
|
24
|
-
|
|
25
|
-
第一次来伦敦,也是第一次来英国. 从阿姆斯特丹到伦敦很快,就四十分钟左右到飞机,毕竟隔着一小片海而已嘛.
|
|
26
|
-
入住在 Shoreditch 街附近的酒店,这附近就是伦敦的金融街,或许是大城市的人们的特性,走在这附近的街道,和国内的大城市一样,大多数人的脚步都似乎带着具体的时效目的地,你会在氛围中感受到“着急”. 也许仅仅是这个地方到气氛吧.
|
|
27
|
-
|
|
28
|
-

|
|
29
|
-
|
|
30
|
-
三天的时间里,由于还要准备自己会议分享,没有办法放开的逛,打算胡乱的到处走走也蛮有意思的,古老和现代混合的建筑,高矮不一,新旧交替,错落无序. 我很喜欢城市里穿过的江河,所以我们一直走到泰晤士河(River Thamwes)边时,看着沿江两岸,晒着暖暖的阳光,迎着河边微凉的风,要是无忧无虑就好了.
|
|
31
|
-
|
|
32
|
-

|
|
33
|
-
|
|
34
|
-
阴差阳错的我们登上了一个很高的可以俯瞰伦敦城的顶楼观光层,上面还有咖啡提供,人不算多,拍了两张照片也算是小插曲吧.
|
|
35
|
-
|
|
36
|
-

|
|
37
|
-
|
|
38
|
-
伦敦食物上比阿姆斯特丹丰富很多,价格类似. 我甚至吃到了云南的汽锅鸡和米线. 朋友们都吐槽伦敦的交通,作为短暂的过客,我体验并没有很糟糕,就是很正常的公交车和地铁.
|
|
39
|
-
|
|
40
|
-
时间太短了,基本上什么大家来伦敦必看的地方,我都没有去好好看看,希望圣诞节那周可以如愿再来呆一呆.
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 夏天意大利罗马四日游
|
|
3
|
-
date: 2025-08-14T19:34:28.147Z
|
|
4
|
-
external_discussions:
|
|
5
|
-
- platform: v2ex
|
|
6
|
-
url: https://v2ex.com/t/1158986
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
八月,罗马的阳光,和这座城市一样,太热烈璀璨了.
|
|
11
|
-
|
|
12
|
-

|
|
13
|
-
|
|
14
|
-
来欧洲生活也一年多了,罗马本来是我旅行城市名单的前几个,同时也是儿子心心念念一直想去看一看的城市,小朋友就是这样,看一两本关于某一个城市的书籍或者漫画,就会想去一探究竟.
|
|
15
|
-
由于这样或者那样的原因,一直没有成行,这个夏天终于安排上了.
|
|
16
|
-
|
|
17
|
-
从阿姆斯特丹到罗马,飞行时间两个半小时后,但是天气却差别巨大,阿姆斯特丹几乎整个夏天凉爽宜人,而走出罗马 Fiumicino 机场那一刻,我就知道这几天的旅行一定会汗流浃背的。从机场坐火车到 Termini, 然后坐地铁可以直接到我们的酒店附近。
|
|
18
|
-
|
|
19
|
-
当天下午到了酒店我们放下行李,休息好了之后,我们便出门去逛罗马了, 这次我们选择的酒店就在科尔索大道(Via del Corso)上,就在人民广场(Piazza del Popolo)边上。而且轻松步行可达的景点也很多,威尼斯广场(Piazza Venezia), 许愿池(Trevi Fountain),西班牙广场(Piazza di Spagna), 当然《罗马假日》中浪漫的西班牙阶梯也在那。
|
|
20
|
-
|
|
21
|
-

|
|
22
|
-
|
|
23
|
-
白天虽然很热,晚上去还是舒服的。这天晚上我们把酒店附近的街区和景点都自然而然的走马观花完了。在罗马街头随意的走走,街边的各种奢饰品牌店和古老的历史建筑,多少让我有一种时空错乱的感觉。而身边来来往往的男女老少,东南西北的人,各种各种的语言交杂,怪不得我们会说"条条大路通罗马".
|
|
24
|
-
|
|
25
|
-

|
|
26
|
-
|
|
27
|
-
饱饱的睡一觉之后,在酒店楼下吃完意大利早餐,就开始了**第二天**的行程是:早上我们去参观罗马斗兽场(Colosseum),下午参观梵蒂冈(Vatican City)。这是我们这次罗马之行做的唯一规划,其他的我们都顺其自然。从酒店去去斗兽场也很方便,有公交车直达,而且公交车可以也可以直接用Apple Pay,很方便。斗兽场排队入场,人很多,不过拍个十分钟也就顺利入场了,很多重要的文物介绍都有中文很英文,所以对于我们来说还是蛮友好。
|
|
28
|
-
|
|
29
|
-

|
|
30
|
-
|
|
31
|
-
> 来到欧洲生活这一年,我最大的感感受就是我的历史(特别是中国之外的历史)知识是那么的缺乏,对于文化的理解是那么肤浅,对于艺术的欣赏能力是那么的匮乏。我们人类的那么的文明成果就在身边,我却看不懂,感受不到它的美和伟大,每当此刻我就觉得很可惜。
|
|
32
|
-
|
|
33
|
-
虽然历史知识欠缺,但是看到从小就在书不断读到的场景,多少还是有点震撼,一千多年前,它的主人和人民在这里角斗娱乐,处决囚犯,狩猎表演展示罗马皇帝的权力和财富时,他们不知道如何想象超越千年之后的现在,我们所处的时代呢。
|
|
34
|
-
|
|
35
|
-

|
|
36
|
-
|
|
37
|
-
参观完斗兽场,就到了附近的家乐福买了一些饮料,水果和面包当作午餐解决了,附近的餐厅实在是人太多了,而且我们也没有特别想吃正餐的想法,就饱喝足,我们就坐公交去往梵蒂冈了,相隔也不是非常的远,大约半个多小时。
|
|
38
|
-
|
|
39
|
-

|
|
40
|
-
|
|
41
|
-
虽然我们购买了导游服务,但是小朋友们跟着队伍实在有点吃不消,而且讲解他们也没有什么兴趣听,所以我们跟着走了十分钟就放弃了。梵蒂冈真的需要作一些功课然后才过来参观,体感会好很多,如果历史和宗教知识都非常浅薄的话,只能像我一下,半个月之后,记忆中只剩下:馆内静谧的花园以及玄妙的旋转楼梯了.
|
|
42
|
-
|
|
43
|
-

|
|
44
|
-
|
|
45
|
-

|
|
46
|
-
|
|
47
|
-
由于前一天我们走的确实有点多,**第三天**我们很明智的选择了 Big Bus Tour, 这是我第一次在做观光大巴,以前在上海生活的时候,我就好多次都想坐外滩的观光大巴,就是想体验坐在大巴顶层,带着语音耳机,看着城市,流过各个历史地点的感觉。罗马的观光大巴的路线基本上把整个罗马城的各大景点都涵盖了,你可以一直坐在上面,也可以在你感兴趣的地点下车参观,然后再上车。
|
|
48
|
-
|
|
49
|
-

|
|
50
|
-
|
|
51
|
-
惜惜和佑佑都很喜欢这种旅行观览方式,惜惜这个"社牛"当然不太可能在车上安静的听导览和看风景,很快就和后座的金发小姐姐相谈甚欢,连人家后面几天的行程都了解清楚了。观光大巴是环线运行,一圈下来大约一个来小时(如果没有记错的话),我们第一圈下来大约知道所有的经停景点,第二圈小朋友们困觉一会,然后就在博尔盖塞公园(Villa Borghese)附近下车,然后去公园走一走,公园很大也很美。
|
|
52
|
-
|
|
53
|
-

|
|
54
|
-
|
|
55
|
-
晚上我们去吃了 Termini 附近的一家中餐,很好吃。**最后一天**因为航班是在下午比较晚的时间,所以我们就把行李寄放在酒店,然后早上沿着人民广场边上的台阶爬了一座小山,早上很凉爽,爬上了 Pincio 观景台,在街头艺术家演奏的小提琴声中,俯瞰罗马城,心情很舒畅。
|
|
56
|
-
|
|
57
|
-

|
|
58
|
-
|
|
59
|
-
租个两脚蹬车,然后和小朋友一起在公园骑行,然后在博尔盖塞公园里,走了很长很长的路,直到我们离开罗马的航班时间临近。
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 我做了一款旅行记录应用:Mile
|
|
3
|
-
date: 2026-01-21T21:30:38.089Z
|
|
4
|
-
latitude: 52.330390529537716
|
|
5
|
-
longitude: 4.940213073274852
|
|
6
|
-
city: Duivendrecht
|
|
7
|
-
street: Kastanjepad
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
我很喜欢旅行,虽然去过的城市不多,但是每一次旅行都有着非常独特的记忆,我偶尔就会想想去看看我都去了哪儿,玩了什么, 遇到什么人,吃了什么好吃的, 碰到了什么奇怪的事情。
|
|
15
|
-
|
|
16
|
-
所以我就开发 [Mile](https://milemile.app) 这款iOS旅行记录应用,她是我和家人在巴塞罗那旅行的时候,在路边等公交车,突然间想做的一个工具,在巴塞罗那的后面几天晚上,在家人熟睡了之后,我就开始开发 [Mile](https://milemile.app) 。
|
|
17
|
-
|
|
18
|
-
现在她还处在很初期,远没有达到我心里想要的样子,但是她开始慢慢的完备了一些我想要的功能。
|
|
19
|
-
|
|
20
|
-
## 屏幕小组件
|
|
21
|
-
|
|
22
|
-
它漂亮直观展示我的旅行数据,每次看到都让我回想起那些难忘的旅程。
|
|
23
|
-

|
|
24
|
-
|
|
25
|
-
## 可分享的"数字护照"
|
|
26
|
-
|
|
27
|
-
这是我非常喜欢的功能,App能自动生成可视化的旅行总结,就像一本"数字护照"。它不仅美观,还方便我分享我的旅行故事。
|
|
28
|
-

|
|
29
|
-
|
|
30
|
-
## 方便轻松的旅行记录
|
|
31
|
-
|
|
32
|
-
如何轻松输入旅行记录,这是我到现在仍然在思考,而且不断探索的。为了快速的导入数据,[Mile](https://milemile.app) 支持了系统日历同步, 也支持直接从相册中同步旅行信息;为了随时随地记录,[Mile](https://milemile.app) 支持了自然语言输入;为了拍照旅行过程的票据完成旅行记录,[Mile](https://milemile.app) 增加了拍照记录旅行的功能。但是直到现在,仍然有很多的改善空间。
|
|
33
|
-
|
|
34
|
-

|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
"旅行似乎一本护照,和一张张的票据",这是当时在巴塞罗那街头,突然闪现到我脑海里的一句话。它是我做这款应用的原始和朴素的想法,欢迎大家尝试 [Mile](https://milemile.app) ,希望它能帮你留住某些珍贵的回忆。
|
|
38
|
-
[Mile](https://milemile.app) 是一款付费应用:3 元。但是我准备了 100 个 Promo Codes,欢迎感兴趣的朋友[私信](mailto:h.minghe@gmail.com)我获取。
|
|
39
|
-
|
|
40
|
-
到 [App Store](https://apps.apple.com/us/app/mile-track-your-trips/id6757205061) 直接下载使用 [Mile](https://milemile.app) 吧,期待你的反馈!
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 西班牙七天的旅行
|
|
3
|
-
date: 2024-12-24T19:01:37.622Z
|
|
4
|
-
external_discussions:
|
|
5
|
-
- platform: v2ex
|
|
6
|
-
url: https://v2ex.com/t/1100548
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
如果你在欧洲的公司工作,十二月份的很多时候,如果安排多人的会议,大概率你是找不齐所有人的,因为十二月份是大家休假的集中期,所以有些公司也会在这个期间有一个长达两三周的
|
|
13
|
-
`Change Freeze`. 我也选择在这段时间休假,不过休假旅行的地点是小朋友们定的,姐姐(惜惜)和弟弟(佑佑)最终选择了西班牙:巴塞罗那和马德里。
|
|
14
|
-
|
|
15
|
-
> 本来也想着马德里之后去葡萄牙的里斯本和波尔多,然后再回阿姆斯特丹,但是想着虽然当前虽然天气很好,但是可能户外游泳还是有点冷,而且第一次一个人带着姐姐和弟弟两人旅行,所以就想等着妈妈到了之后,春天的时候再安排一次。
|
|
16
|
-
|
|
17
|
-
## 准备和出发
|
|
18
|
-
|
|
19
|
-
### 交通
|
|
20
|
-
|
|
21
|
-
选定了城市之后,一切就很简单了,我来负责购买机票和预定酒店,惜惜和佑佑通过看Youtube的相关频道来决定我们的旅行攻略。从阿姆斯特丹到巴塞罗那的航班很多,我们当然是选择便宜的航班出行了,选了几家所谓的经济航班,最后我们我们的交通方案是:
|
|
22
|
-
|
|
23
|
-
* 阿姆斯特丹到巴塞罗那, 乘坐Vueling (伏林航空),三个人的价格大约三百欧元。
|
|
24
|
-
* 巴塞罗那到马德里,乘坐火车,成人价格是六十五欧,儿童是七欧。
|
|
25
|
-
* 马德里回阿姆斯特丹,乘坐AirEuropa, 三个人的价格不到三百欧元。
|
|
26
|
-
* 城市内的交通,公交车或者出租车都很方便。
|
|
27
|
-
|
|
28
|
-
我们三个人轻装出行,各自背自己的背包,而且我们的背包都符合航班的免费行李额度,一般是 `30cm * 40cm * 50cm`.
|
|
29
|
-
|
|
30
|
-
### 酒店
|
|
31
|
-
|
|
32
|
-
由于带小朋友旅行,加上我本身对民宿也没有啥选择经验(唯一一次住Airbnb还是七八年前出差洛杉矶的时候公司帮忙预定), 所以无论在国内还是国外旅行,我们都是住酒店,一般的策略是如果需要定三家房间以上的,比如家庭旅行带着父母,妹妹一家一起的,我就会选择经济一些的连锁酒店比如全季,这些酒店体验也很不错,标准化的流程和设施,很省心也很省钱. 如果人少的旅行,选择就会宽裕一点,而这次我们分别选择了:
|
|
33
|
-
|
|
34
|
-
* 巴塞罗那的 SB Lacica hotel, 离沙滩很近,早餐也不错,公共交通也超方便。
|
|
35
|
-
* 马德里的 Radisson Blu,早餐种类偏少,但是离各个景点都是步行可达,而且周边无论餐厅,街区,店铺非常丰富。
|
|
36
|
-
|
|
37
|
-
两家酒店价格有些许区别,不过都在两百到三百欧之间, 不过惜惜和佑佑一致的结论是更喜欢 Radisson Blu, 他们觉得这个酒店设计品味和服务更好,比如惜惜说浴室的开关和淋浴头的分离让她不会不小心淋到水,前台办理入住有专门的凳子,以及糖果和饮料。小朋友的视角确实很独特,当然我本人也更喜欢 Radisson Blu。
|
|
38
|
-
|
|
39
|
-
### 相关证件
|
|
40
|
-
|
|
41
|
-
我荷兰居留卡都带在身上,事实证明也是必要的,发现有的地方需要看居留卡,有的地方则只需要护照即可。
|
|
42
|
-
|
|
43
|
-
### 其他
|
|
44
|
-
|
|
45
|
-
搞定了交通和酒店之后,其实其他的东西没有什么需要特别注意的了,比如,
|
|
46
|
-
|
|
47
|
-
* **支付**,欧洲基本上都支持移动支付,我Apple Pay绑定了ABN的银行卡,我在欧洲所有的支付基本上都是直接刷手机, 不用对这二维码扫来扫去,也挺方便的。
|
|
48
|
-
* **公交车**, 也直接上车刷手机(绑定了银行卡,应该Visa也可以)。
|
|
49
|
-
* **出租车**,我一般都是直接在路边招手拦车,下车手机支付.
|
|
50
|
-
* **网约车**,Uber 和 Bolt 都是可以用的,但是我很少用.
|
|
51
|
-
* **地图**,Google Map 确实离不开,因为无论是去景点,还是选餐厅,都离不开它。
|
|
52
|
-
|
|
53
|
-
## 巴塞罗那
|
|
54
|
-
|
|
55
|
-
* **阳光和沙滩**
|
|
56
|
-
|
|
57
|
-
阳光很灿烂,感觉真的好温暖,其实看数据,气温也就是比阿姆斯特丹高不大十度,但是体感温暖舒适很多,而且沙滩很干净,海水很蓝,人也不多,穿着简单的衣服,躺在沙滩上,看着小朋友玩沙玩水,看着人们玩沙滩排球。还蛮惬意的.
|
|
58
|
-

|
|
59
|
-
|
|
60
|
-
* **圣家堂(Sagrada Familia)**
|
|
61
|
-
|
|
62
|
-
我自己艺术修养很浅,接近于零,但是当看到这壮观的建筑,还是感觉到强烈的震撼,在外面观赏,建筑高耸入云,无数个形态各异,而又和充满故事的雕像,就算像这样没有太多西班牙以及宗教知识的人也带来强烈的视觉和心里冲击。
|
|
63
|
-

|
|
64
|
-
|
|
65
|
-
走进里面,宗教色彩斑斓的窗,沿着高高的柱子往上,看到是设计精细的各种形状,好吧,没有艺术功底确实找不到合适的描述方法。只能说"我虽然看不懂,但是我大受震撼"。
|
|
66
|
-

|
|
67
|
-
|
|
68
|
-
* **毕加索博物馆(Museu Picasso)**
|
|
69
|
-
|
|
70
|
-
这个博物馆展示了毕加索各个时期的各种作品,门票小朋友免费,大人十来欧,我们租了导览器,这样能够让自己多少了解一下作品背后的故事,不然确实对于我这样的绘画和艺术零基础的人来确实也只是看看颜色了。这里展出了超级多的毕加索作品,也算大饱眼福了,当然小朋友们看了大部分之后,就走不动了,所以其实我们并没有完全看完所有的作品。
|
|
71
|
-

|
|
72
|
-
|
|
73
|
-
* **凯旋门**
|
|
74
|
-
|
|
75
|
-
凯旋门是我们离开毕加索博物馆,打算去吃完饭的时候路过,我们坐在草地上边,惜惜和佑佑喂了好一会鸽子,甚至还有一些鹦鹉,蛮有意思的。凯旋门本身没有太多让我印象深刻的地方,如果不是佑佑告诉我,我都不知道巴塞罗那也有凯旋门,以为只有巴黎有凯旋门。
|
|
76
|
-
|
|
77
|
-
* **巴塞罗那大学(Universitat de Barcelona)**
|
|
78
|
-
|
|
79
|
-
我们养成了旅行习惯,那就是每到一个城市旅行,我们都会去当地的大学校园去参观参观,所以来到了欧洲之后,我们参观了不少大学,不过目前主要还是局限在荷兰的大学,像代尔夫特理工大学,阿姆斯特丹大学,阿姆斯特丹自由大学,来顿大学等等。希望随着探索越来越多的欧洲城市,我们可以去参观更多的大学. 我们专门安排了一个早上来参观巴塞罗那大学,确实也是值得的,很美的大学。偶遇了一家三口华人也在参观,小朋友还分发一些糖果给惜惜。
|
|
80
|
-

|
|
81
|
-
|
|
82
|
-
* **庞培法布拉大学(Universitat Pompeu Fabra)**
|
|
83
|
-
|
|
84
|
-
在巴塞罗那的最后一天,因为下午的火车去马德里,饱睡一觉之后,吃好早餐之后,所以早上有几个小时的时间,我们决定去一趟UPF, 我们跟着Google Map 去到写着UPF的一个栋看着超级古老的建筑时候,惜惜走进去问了一下工作人员,他们说这里是办公楼,目前不提供参观,不过工作人员很友好的走到外面,拿着一张他们的校园地图给我讲解,推荐我们去附近的一个校区参观。我们按照他给的地图,走了大约二十分钟,终于走到了,不过这个校区较小,我们逛了一会就打车去火车站了。
|
|
85
|
-
|
|
86
|
-
## 马德里
|
|
87
|
-
|
|
88
|
-
从巴塞罗那来马德里的火车大约是两个小时十来分钟,还是非常的快的,马德里的火车是"疯狂动物城"的原型地,但是其实我们没有停留来参观。而且发生了一个神奇的事情,当火车停下来,我们下了火车之后,我打开 Google Map 打算去酒店的时候,看到距离竟然是 120+ 公里,我一下惊呆,难道我下错车站了么?所以赶紧去到售票机去看看马德里的火车票,翻了一会竟然找不到对应的火车站,问了一下傍边的人,他们都不太会英文,后来看到一个华人面孔的哥们,赶紧找他咨询,他中文还凑合,才发现我们并没有下错,这里就是马德里的火车站,我这时候再打开 Google Map 一看,发现这时候距离到酒店就900米,怎么又正确了呢,我说怎么找不到火车站呢,原来我所在位置没有啥问题,可能是之前手机 GPS 出现了一些问题.
|
|
89
|
-

|
|
90
|
-
|
|
91
|
-
来到了马德里,体感上确实比巴塞罗那凉一些,走到酒店的一路上,马德里给我的初印象还是不错,街道干净,交错的小巷子,人们喝酒聊天,氛围也很好。
|
|
92
|
-
|
|
93
|
-
* **普拉多博物馆(Prado Museum)**
|
|
94
|
-
|
|
95
|
-
事实证明,这个酒店定的很成功,一觉睡到天亮,吃完早餐我们就出发去普拉多博物馆,距离非常的近,步行几分钟就到了,普拉多博物馆是西班牙最大的美术馆,普拉多拥有的杰作数除了涵盖欧洲所有流派和所有名家之外,还几乎囊括了哥雅的全部精品。博物馆确实很大,我们也购买了语音导览,跟着导览图听着语音介绍,整体体验还是可以的,参观的人不少,所以有的作品前面会站的很多人。每次参观艺术作品,我都总恨自己的艺术修养怎么那么低,一方面在整个接受教育的生涯中,没有接受过系统的艺术教育,另一方面自己也没有花时间去阅读艺术书籍学习提高自己的艺术鉴赏能力。真的惭愧呀,希望未来可以多花一些时间在这些方面,做一个会欣赏的人. 普拉多博物馆是不允许拍照的,所以没有留下什么照片,仅仅在管外拍几张。
|
|
96
|
-

|
|
97
|
-
* **丽池公园 (EI Retiro)**
|
|
98
|
-
|
|
99
|
-
从普拉多博物馆走几分钟就到丽池公园,这个公园听说是皇室园林,不过也对外开放了一两百年了,园子还是蛮大的,没事坐在晒晒太阳,喂喂鸟,喝喝酒,聊聊天,听艺人演奏音乐,看人们跳跳舞,还是蛮享受的。
|
|
100
|
-

|
|
101
|
-
|
|
102
|
-
* **马德里皇宫**
|
|
103
|
-
|
|
104
|
-
马德里皇宫的门票,最好还是提前一些买比较合适,我提前几天看已经没有票,最后我是在 Booking.com 直接买了 skip line with guide 的票,不过导游的英文需要竖起耳朵来听才能听懂,所以我听着还勉强能够跟得上他的讲解,惜惜和佑佑听起来就有点费劲,好在整个皇宫导游带着游下来,大约也就一个小时。不过皇宫本身还是值得一看的,虽然和我们故宫比起来规模还是小很多的,但是也是非常辉煌气派, 而且装饰风格和设计细节也很大不同, 值得一逛。
|
|
105
|
-

|
|
106
|
-
|
|
107
|
-
* **康普顿斯大学(Universidad Complutense de Madrid)**
|
|
108
|
-
|
|
109
|
-
作为西班牙最知名的大学,我们也是安排最后一天早上来参观,大学位于马德里大学城,和国外很多大学一样,康普顿斯大学其实也没有所谓的大学校门,但是你可以看到各个学院的名字,清晰的知道是哪儿, 我也没有走到作家三毛曾经就读的文学院,我们也是走马观花的走了走,就打车去机场,准备回阿姆斯特丹了。
|
|
110
|
-

|
|
111
|
-
|
|
112
|
-
## 那些有意思的瞬间
|
|
113
|
-
|
|
114
|
-
* **指挥大爷?**
|
|
115
|
-
|
|
116
|
-
在排队安检进入候机厅的时候,惜惜和佑佑也不知道什么时候学习的荷兰语生日歌曲,边排队边唱了起来,服务员大爷主动当起乐队指挥,双手舞动了起来,还蛮有意思的。
|
|
117
|
-
|
|
118
|
-
* **走错了航站楼?**
|
|
119
|
-
|
|
120
|
-
从康普顿斯大学打车去马德里机场的时候,目的地写成了Terminal 4, 但实际上是 Terminal 3, 其实路上快到的时候我就发现了自己写错了,但是司机大叔英文真的是一句都不懂,到了 Terminal 4 之后,我看从 Terminal 4 到 Terminal 3 需要10几分钟的免费大巴,五分钟一趟,我看离起飞也就是35分钟,肯定是来不及,从第一辆车下来之后,我赶紧拦了另外一辆车,还好这个小哥们年轻,能说一些英文,在确定了我走错了航站楼之后,让我们上车了,到了 Terminal 3 之后,尴尬的事情是我没有任何现金,而他也没有收钱的机器,他本来也无所谓了,我说我有Uber, Bolt, Uber 或者 Paypal都可以,他说那你用 Paypal 转吧,我说转多少你说个数,他说随意就好哈哈哈。最后幸好 Terminal 3 没有像虹桥或者浦东的航站楼那样需要走很久才到登机口,我们过了安检,走几分钟就到了登机口了,也正好大家在排队登机,一切刚刚好。
|
|
121
|
-
|
|
122
|
-
* **录播客**
|
|
123
|
-
|
|
124
|
-
因为我很爱听播客,所以小朋友们潜移默化的也对播客这种内容也有些概念,所以当我提议可以录一个播客来记录他们的旅行,他们还是蛮兴奋的,我们三个人一起很快就确定了名字: ["西柚课间"](https://www.xiaoyuzhoufm.com/podcast/63f9f6ec75918da323982e2c). 前面三期我帮他们串串场,最后一期他们两单独录制了,听着还挺开心的。
|
|
125
|
-
|
|
126
|
-
## 最后
|
|
127
|
-
|
|
128
|
-
第一次和两个小朋友单独旅行,小朋友确实长大,也学会简单的做一点准备,学会在机场大屏幕寻找自己的航班,航站楼,和登机口,也学会慢慢欣赏城市风景和艺术作品。佑佑和惜惜已经开始规划春假的旅行了,瑞士,德国,和意大利之间选择,期待中.
|
package/.next/standalone/data/blog//351/200/233/351/200/233/346/265/216/345/267/236/345/262/233.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: 逛逛济州岛
|
|
3
|
-
date: 2015-06-28T09:20:02.322Z
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
一些朋友听说我们来济州岛学习驾驶并且已经结束了之后,都希望我可以写一篇攻略,然而我都已经忘记了自己什么时候决定要来济州岛学习驾驶,也忘记了怎么就糊里糊涂选了这个团。所以攻略基本上只有这几点:
|
|
8
|
-
|
|
9
|
-
* 选择一家合适的中介
|
|
10
|
-
|
|
11
|
-
* 带一件外套
|
|
12
|
-
|
|
13
|
-
* 考试的时候不要紧张
|
|
14
|
-
|
|
15
|
-
那么你一定可以很顺利的就可以完成你的驾驶学习, 拿到一张韩国驾照,一张国际驾照,并且你一定可以自己上路开车了。回到国内之后去车管所预约考科目一,过一周左右之后就可以直接考试,通过之后现场拿国内驾照.
|
|
16
|
-
|
|
17
|
-
好吧,关于济州岛学习驾驶我想说的只有这么多,我还是来说说我的这次旅行吧。
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
### 济州岛 的海
|
|
21
|
-
|
|
22
|
-
海水很冷,海风很爽,海浪很白; 海边的石头很多形状,海边的灯光很温暖,海边的公路很长,海边的人很安静。
|
|
23
|
-
|
|
24
|
-
你需要去海边走一走,踩在石头上,感受一下海水,看看奇怪的小虫,多穿一点衣服是好的,若你和我一样怕冷的话。你会选择在有阳光的下午四五点,漫步在海边的公路上,向左或者向右,随机挑选一个方向。
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
这个方向会决定你在远离什么,在靠近什么.
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
然后任意的走着,等待着夕阳慢慢的洒下来,看看海边的那一片黄色,怕几张照片,选一个好方向,可以看清楚脸或者显高一点的。 晚上可以找一快背后有灯的大石头,拿一瓶啤酒,听听海浪,或者潮,或者汐,拍打石头的声音,聊聊文字和音乐, 想想远方.
|
|
31
|
-
|
|
32
|
-
### 济州岛 的城
|
|
33
|
-
|
|
34
|
-
当你在海边公路走的时候,如果你选择了右边,那么你会离旧济州比较近,反之,如果你选择了左边,那么你会离新济州比较近。
|
|
35
|
-
|
|
36
|
-
* 向右
|
|
37
|
-
|
|
38
|
-
也许旧济州的生命开始于晚上,白天的旧济州无论是七星街还是地下步行街都很少的人,所以你可以在白天很白痴的在七星街的那台钢琴上乱弹,当然如果你注意你的手型,那么你会发现弹起来还是挺有范儿的,而且仔细一听,原来自己离音乐厅里声音离的挺近多。
|
|
39
|
-
|
|
40
|
-
地下步行街有点像上海的七浦路,听说。很多商品,挺干净,人不多,价格适中,也许有你想要的。
|
|
41
|
-
|
|
42
|
-
任意选择一个出口走上来之后,或许你会想要去走走看看济州的City Hall,你会沿着路标指示方向去寻找,然而你一定会找不到它在哪儿的。你会走一个有点长的上坡路,你会路过东门市场,那附近有一些听说是 "便衣警察" 的人,然后你会随便走走看看。东门市场会很腥,因为有很多的海产品。然后你会选择一个一条你依然不知道什么目的地的路,然后一直走,直到打上出租车,递上酒店的名片。
|
|
43
|
-
|
|
44
|
-
* 向左
|
|
45
|
-
|
|
46
|
-
新济州有新罗,乐天的免税店,所以你会看到好多的移动 WiFi 有着相同的命名方式,因为他们都来自同一个地方。
|
|
47
|
-
|
|
48
|
-
我忘记了我们那天为什么要去一个叫做 Yeon Dong 的地方了,只记得我们搞错了方向,也许是因为我们只知道这个单词 "Yeon Dong",所以我们就到了所谓 Yeon Dong, 这个词的发音很重要,你也许要好好学习一下它的调调,*(_---_)*
|
|
49
|
-
|
|
50
|
-
到了市区之后,也许会下雨,也许你还不用打伞,到 CU 选择一个确定自己很能吃下去的食物,比如紫菜包饭, 然后随便石头剪刀布选择一个方向吧,自然而然的走走就好, 随便聊聊天, 看看路和人。
|
|
51
|
-
|
|
52
|
-
然后你会绕了一个圈,发现一个星巴克,然后你会发现你很冷,需要一杯摩卡暖暖身,选择一个靠窗的位置,喝几个小时,直到天黑, 然后你会发现你嗓子有点哑了,可以还是感觉很冷,然后继续坐着吧,反正外面的行人还打着伞。
|
|
53
|
-
|
|
54
|
-
真的很晚了,好吧,走走没有走过的小街道,找点吃的,当到了某个路口的时候,如果你戴眼镜,你应该可以看到一家中餐厅,而且似乎什么都有,以为是路边破店,进来发现其实很齐整,没有东北口音的女老板,她可以让你发现自己没有韩币的时候返回来刷信用卡,退给你韩币,然后你拿着韩币找 taxi 回海边的酒店。
|
|
55
|
-
|
|
56
|
-
### 济州岛 的吃
|
|
57
|
-
|
|
58
|
-
济州岛 的吃我没有喜欢。
|
|
59
|
-
|
|
60
|
-
不过如果真的要活下去的话,你需要吃一点海鲜类的各式菜式,或者大块的黑猪肉烧烤,也许大酱汤你会习惯,其实大酱汤的大酱是看不见的,如果你和我一样来自中国西南某小城,你应该会惊讶,为什么酱还能看不见。如果你也喜欢喝点汤,那么参鸡汤可以让你解解饿。希望你不是和我一样,只喜欢一种东西,那么你一定不会像我一样自己饿不饿都不知道。
|
|
61
|
-
|
|
62
|
-
### 最后
|
|
63
|
-
|
|
64
|
-
也许你需要和我一样:
|
|
65
|
-
|
|
66
|
-
* 考科目三的时候挂一次
|
|
67
|
-
|
|
68
|
-
* 住在 济州岛 西海岸的 酒店
|
|
69
|
-
|
|
70
|
-
* 有同样没有方向感的伙伴
|
|
71
|
-
|
|
72
|
-
* 没有陌生的合群能力
|
|
73
|
-
|
|
74
|
-
* 航班因天气原因取消一次
|
|
75
|
-
|
|
76
|
-
才能够体验这段旅程,然后坐在机场,写下这些文字。
|
|
77
|
-
|
|
78
|
-

|