cici 0.1.1 → 0.3.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.
Files changed (481) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-build-manifest.json +122 -0
  3. package/.next/app-path-routes-manifest.json +1 -0
  4. package/.next/build-manifest.json +32 -0
  5. package/.next/export-marker.json +1 -0
  6. package/.next/images-manifest.json +1 -0
  7. package/.next/next-minimal-server.js.nft.json +1 -0
  8. package/.next/next-server.js.nft.json +1 -0
  9. package/.next/package.json +1 -0
  10. package/.next/prerender-manifest.json +1 -0
  11. package/.next/react-loadable-manifest.json +1886 -0
  12. package/.next/required-server-files.json +1 -0
  13. package/.next/routes-manifest.json +1 -0
  14. package/.next/server/app/_not-found/page.js +1 -0
  15. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  17. package/.next/server/app/api/asset/[...path]/route.js +1 -0
  18. package/.next/server/app/api/asset/[...path]/route.js.nft.json +1 -0
  19. package/.next/server/app/api/auth/[...nextauth]/route.js +1 -0
  20. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -0
  21. package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js +1 -0
  22. package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js.nft.json +1 -0
  23. package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js +1 -0
  24. package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js.nft.json +1 -0
  25. package/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js +1 -0
  26. package/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js.nft.json +1 -0
  27. package/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js +1 -0
  28. package/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js.nft.json +1 -0
  29. package/.next/server/app/api/blog/[id]/highlights/[hid]/route.js +1 -0
  30. package/.next/server/app/api/blog/[id]/highlights/[hid]/route.js.nft.json +1 -0
  31. package/.next/server/app/api/blog/[id]/highlights/route.js +1 -0
  32. package/.next/server/app/api/blog/[id]/highlights/route.js.nft.json +1 -0
  33. package/.next/server/app/api/graphql/route.js +140 -0
  34. package/.next/server/app/api/graphql/route.js.nft.json +1 -0
  35. package/.next/server/app/api/mile/prompts/route.js +230 -0
  36. package/.next/server/app/api/mile/prompts/route.js.nft.json +1 -0
  37. package/.next/server/app/api/mile/prompts.body +1 -0
  38. package/.next/server/app/api/mile/prompts.meta +1 -0
  39. package/.next/server/app/api/upload/route.js +1 -0
  40. package/.next/server/app/api/upload/route.js.nft.json +1 -0
  41. package/.next/server/app/api/webhooks/notification/route.js +1 -0
  42. package/.next/server/app/api/webhooks/notification/route.js.nft.json +1 -0
  43. package/.next/server/app/atom.xml/route.js +34 -0
  44. package/.next/server/app/atom.xml/route.js.nft.json +1 -0
  45. package/.next/server/app/atom.xml.body +15 -0
  46. package/.next/server/app/atom.xml.meta +1 -0
  47. package/.next/server/app/blog/[id]/page.js +30 -0
  48. package/.next/server/app/blog/[id]/page.js.nft.json +1 -0
  49. package/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -0
  50. package/.next/server/app/blog/page.js +1 -0
  51. package/.next/server/app/blog/page.js.nft.json +1 -0
  52. package/.next/server/app/blog/page_client-reference-manifest.js +1 -0
  53. package/.next/server/app/editor/page.js +45 -0
  54. package/.next/server/app/editor/page.js.nft.json +1 -0
  55. package/.next/server/app/editor/page_client-reference-manifest.js +1 -0
  56. package/.next/server/app/favicon.ico/route.js +1 -0
  57. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  58. package/.next/server/app/favicon.ico.body +0 -0
  59. package/.next/server/app/favicon.ico.meta +1 -0
  60. package/.next/server/app/login/page.js +1 -0
  61. package/.next/server/app/login/page.js.nft.json +1 -0
  62. package/.next/server/app/login/page_client-reference-manifest.js +1 -0
  63. package/.next/server/app/memos/page.js +26 -0
  64. package/.next/server/app/memos/page.js.nft.json +1 -0
  65. package/.next/server/app/memos/page_client-reference-manifest.js +1 -0
  66. package/.next/server/app/page.js +1 -0
  67. package/.next/server/app/page.js.nft.json +1 -0
  68. package/.next/server/app/page_client-reference-manifest.js +1 -0
  69. package/.next/server/app/robots.txt/route.js +1 -0
  70. package/.next/server/app/robots.txt/route.js.nft.json +1 -0
  71. package/.next/server/app/robots.txt.body +8 -0
  72. package/.next/server/app/robots.txt.meta +1 -0
  73. package/.next/server/app/rss.xml/route.js +18 -0
  74. package/.next/server/app/rss.xml/route.js.nft.json +1 -0
  75. package/.next/server/app/rss.xml.body +12 -0
  76. package/.next/server/app/rss.xml.meta +1 -0
  77. package/.next/server/app/sitemap.xml/route.js +76 -0
  78. package/.next/server/app/sitemap.xml/route.js.nft.json +1 -0
  79. package/.next/server/app/sitemap.xml.body +33 -0
  80. package/.next/server/app/sitemap.xml.meta +1 -0
  81. package/.next/server/app/unavailable/page.js +1 -0
  82. package/.next/server/app/unavailable/page.js.nft.json +1 -0
  83. package/.next/server/app/unavailable/page_client-reference-manifest.js +1 -0
  84. package/.next/server/app-paths-manifest.json +27 -0
  85. package/.next/server/chunks/1230.js +1 -0
  86. package/.next/server/chunks/1446.js +1 -0
  87. package/.next/server/chunks/1450.js +1 -0
  88. package/.next/server/chunks/1536.js +1 -0
  89. package/.next/server/chunks/1615.js +1 -0
  90. package/.next/server/chunks/1682.js +6 -0
  91. package/.next/server/chunks/179.js +14 -0
  92. package/.next/server/chunks/2448.js +34 -0
  93. package/.next/server/chunks/2481.js +1 -0
  94. package/.next/server/chunks/2518.js +12 -0
  95. package/.next/server/chunks/2581.js +1 -0
  96. package/.next/server/chunks/2878.js +63 -0
  97. package/.next/server/chunks/3125.js +1 -0
  98. package/.next/server/chunks/330.js +1 -0
  99. package/.next/server/chunks/3381.js +1 -0
  100. package/.next/server/chunks/3464.js +1 -0
  101. package/.next/server/chunks/3573.js +1 -0
  102. package/.next/server/chunks/3607.js +14 -0
  103. package/.next/server/chunks/3844.js +1 -0
  104. package/.next/server/chunks/4536.js +1 -0
  105. package/.next/server/chunks/4742.js +1 -0
  106. package/.next/server/chunks/4857.js +1 -0
  107. package/.next/server/chunks/6621.js +1 -0
  108. package/.next/server/chunks/7070.js +12 -0
  109. package/.next/server/chunks/719.js +1 -0
  110. package/.next/server/chunks/7667.js +1 -0
  111. package/.next/server/chunks/7674.js +1 -0
  112. package/.next/server/chunks/7937.js +1 -0
  113. package/.next/server/chunks/7990.js +1 -0
  114. package/.next/server/chunks/8038.js +1 -0
  115. package/.next/server/chunks/8195.js +1 -0
  116. package/.next/server/chunks/8198.js +1 -0
  117. package/.next/server/chunks/8224.js +1 -0
  118. package/.next/server/chunks/8398.js +1 -0
  119. package/.next/server/chunks/8948.js +2 -0
  120. package/.next/server/chunks/9600.js +1 -0
  121. package/.next/server/chunks/9627.js +1 -0
  122. package/.next/server/chunks/9715.js +1 -0
  123. package/.next/server/chunks/9772.js +2 -0
  124. package/.next/server/chunks/font-manifest.json +1 -0
  125. package/.next/server/font-manifest.json +1 -0
  126. package/.next/server/functions-config-manifest.json +1 -0
  127. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  128. package/.next/server/middleware-build-manifest.js +1 -0
  129. package/.next/server/middleware-manifest.json +6 -0
  130. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  131. package/.next/server/next-font-manifest.js +1 -0
  132. package/.next/server/next-font-manifest.json +1 -0
  133. package/.next/server/pages/500.html +1 -0
  134. package/.next/server/pages/_app.js +1 -0
  135. package/.next/server/pages/_app.js.nft.json +1 -0
  136. package/.next/server/pages/_document.js +1 -0
  137. package/.next/server/pages/_document.js.nft.json +1 -0
  138. package/.next/server/pages/_error.js +1 -0
  139. package/.next/server/pages/_error.js.nft.json +1 -0
  140. package/.next/server/pages-manifest.json +1 -0
  141. package/.next/server/server-reference-manifest.js +1 -0
  142. package/.next/server/server-reference-manifest.json +1 -0
  143. package/.next/server/webpack-runtime.js +1 -0
  144. package/.next/standalone/.next/BUILD_ID +1 -1
  145. package/.next/standalone/.next/app-build-manifest.json +13 -13
  146. package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
  147. package/.next/standalone/.next/build-manifest.json +2 -2
  148. package/.next/standalone/.next/prerender-manifest.json +1 -1
  149. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  150. package/.next/standalone/.next/server/app/api/asset/[...path]/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/asset/[...path]/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/blog/[id]/highlights/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/mile/prompts.body +1 -1
  160. package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/atom.xml/route.js +3 -3
  162. package/.next/standalone/.next/server/app/atom.xml/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/atom.xml.body +1 -1677
  164. package/.next/standalone/.next/server/app/blog/[id]/page.js.nft.json +1 -1
  165. package/.next/standalone/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/blog/page.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/blog/page_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/editor/page.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/editor/page_client-reference-manifest.js +1 -1
  170. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/memos/page.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/memos/page_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/robots.txt/route.js +1 -1
  176. package/.next/standalone/.next/server/app/rss.xml/route.js +2 -2
  177. package/.next/standalone/.next/server/app/rss.xml/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/rss.xml.body +1 -227
  179. package/.next/standalone/.next/server/app/sitemap.xml/route.js +5 -5
  180. package/.next/standalone/.next/server/app/sitemap.xml.body +5 -101
  181. package/.next/standalone/.next/server/app/unavailable/page_client-reference-manifest.js +1 -1
  182. package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
  183. package/.next/standalone/.next/server/chunks/3464.js +1 -1
  184. package/.next/standalone/.next/server/chunks/3607.js +1 -1
  185. package/.next/standalone/.next/server/chunks/719.js +1 -1
  186. package/.next/standalone/.next/server/pages/500.html +1 -1
  187. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  188. package/.next/standalone/package.json +6 -5
  189. package/.next/standalone/sample-content/blog/hello-cici.md +25 -0
  190. package/.next/standalone/sample-content/likes.json +1 -0
  191. package/.next/standalone/sample-content/memos.json +7 -0
  192. package/.next/standalone/sample-content/site-config.json +18 -0
  193. package/.next/static/PDn4f_-4CIbfG8EmueowG/_buildManifest.js +1 -0
  194. package/.next/static/PDn4f_-4CIbfG8EmueowG/_ssgManifest.js +1 -0
  195. package/.next/static/chunks/0e5ce63c-dc8fe6cd5df6dc6f.js +1 -0
  196. package/.next/static/chunks/0e762574-561b753e40bf5566.js +1 -0
  197. package/.next/static/chunks/117-70c87e31cd233c14.js +2 -0
  198. package/.next/static/chunks/152-16409649f7f42f9f.js +1 -0
  199. package/.next/static/chunks/153-f9c1aae3150e3029.js +1 -0
  200. package/.next/static/chunks/164-27f8b4187a29c395.js +1 -0
  201. package/.next/static/chunks/306-8d9c9a07b04a69f4.js +1 -0
  202. package/.next/static/chunks/343-ef3404804cc77cf3.js +1 -0
  203. package/.next/static/chunks/37-4aae6f4051a21b05.js +1 -0
  204. package/.next/static/chunks/479ba886-f76cebda33235b4d.js +1 -0
  205. package/.next/static/chunks/586-51f7e768b82803f6.js +1 -0
  206. package/.next/static/chunks/654-13e1845df8edb304.js +1 -0
  207. package/.next/static/chunks/767-2ec5d3ea9fe43cfa.js +1 -0
  208. package/.next/static/chunks/789-9810818d7be29598.js +1 -0
  209. package/.next/static/chunks/795d4814-090707ad3f792458.js +1 -0
  210. package/.next/static/chunks/878-b71984a1ef1b61e8.js +1 -0
  211. package/.next/static/chunks/8e1d74a4-f0365ca0a1823520.js +1 -0
  212. package/.next/static/chunks/961-29616c8a08e9f439.js +1 -0
  213. package/.next/static/chunks/972-774fbff93f73f32d.js +1 -0
  214. package/.next/static/chunks/app/_not-found/page-3061d7e79b77cf51.js +1 -0
  215. package/.next/static/chunks/app/blog/[id]/page-1fc779790ce384a8.js +1 -0
  216. package/.next/static/chunks/app/blog/page-096c29c6f69ebc33.js +1 -0
  217. package/.next/static/chunks/app/editor/page-f387899e39bc5e66.js +1 -0
  218. package/.next/static/chunks/app/layout-3439dc235234d73d.js +1 -0
  219. package/.next/static/chunks/app/login/page-6b91892f0e29c5e9.js +1 -0
  220. package/.next/static/chunks/app/memos/page-1b33cb7e1f301ba0.js +1 -0
  221. package/.next/static/chunks/app/page-f7dabeade6df80fd.js +1 -0
  222. package/.next/static/chunks/app/unavailable/page-c7774081778f08fc.js +1 -0
  223. package/.next/static/chunks/c916193b-16ee67ea0eb0c9df.js +1 -0
  224. package/.next/static/chunks/d3ac728e-709e52b22b85fd0a.js +1 -0
  225. package/.next/static/chunks/ee560e2c-0aeb447bc68f09f5.js +1 -0
  226. package/.next/static/chunks/fd9d1056-a4afdface6e53879.js +1 -0
  227. package/.next/static/chunks/framework-00a8ba1a63cfdc9e.js +1 -0
  228. package/.next/static/chunks/main-530e55a5659ae7e4.js +1 -0
  229. package/.next/static/chunks/main-app-838433dc18720d83.js +1 -0
  230. package/.next/static/chunks/pages/_app-15e2daefa259f0b5.js +1 -0
  231. package/.next/static/chunks/pages/_error-28b803cb2479b966.js +1 -0
  232. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  233. package/.next/static/chunks/webpack-a3d722a538b58757.js +1 -0
  234. package/.next/static/css/3864b451a61e4546.css +1 -0
  235. package/.next/static/css/67e4cfd62ab3f75c.css +1 -0
  236. package/.next/static/css/bf9d0ede562bd061.css +3 -0
  237. package/.next/static/media/04b170fa1114a606-s.woff2 +0 -0
  238. package/.next/static/media/08e5276c49c9ea3c-s.woff2 +0 -0
  239. package/.next/static/media/095b3ef40b322df1-s.woff2 +0 -0
  240. package/.next/static/media/0d843c40cdb24da5-s.woff2 +0 -0
  241. package/.next/static/media/16198ffb9c9fdd71-s.woff2 +0 -0
  242. package/.next/static/media/185e1e5dfa43e25f-s.woff2 +0 -0
  243. package/.next/static/media/1cfb11966f8bf838-s.woff2 +0 -0
  244. package/.next/static/media/1f4ef3a7563c157c-s.woff2 +0 -0
  245. package/.next/static/media/207ad64b019bcdef-s.woff2 +0 -0
  246. package/.next/static/media/21f0145a081cb2c8-s.woff2 +0 -0
  247. package/.next/static/media/25169183b7610496-s.woff2 +0 -0
  248. package/.next/static/media/2c913da5dc1da2ce-s.woff2 +0 -0
  249. package/.next/static/media/2d7ca78015d280d1-s.woff2 +0 -0
  250. package/.next/static/media/32be0b7a9127e345-s.woff2 +0 -0
  251. package/.next/static/media/33a4c9c744d0f9cd-s.woff2 +0 -0
  252. package/.next/static/media/3579da1a17de9863-s.woff2 +0 -0
  253. package/.next/static/media/36524af73d313f3b-s.woff2 +0 -0
  254. package/.next/static/media/3683934951fcdfff-s.woff2 +0 -0
  255. package/.next/static/media/3a3a2937d60ce37f-s.woff2 +0 -0
  256. package/.next/static/media/3e2c1db9f0de322f-s.woff2 +0 -0
  257. package/.next/static/media/3f282b8fe3ef7004-s.woff2 +0 -0
  258. package/.next/static/media/4294bde93a0ebb03-s.woff2 +0 -0
  259. package/.next/static/media/4cb92749e68500bf-s.woff2 +0 -0
  260. package/.next/static/media/4d3ec3b19c6bf06c-s.woff2 +0 -0
  261. package/.next/static/media/4eaaaae34a570973-s.woff2 +0 -0
  262. package/.next/static/media/4f45b9473df2758b-s.woff2 +0 -0
  263. package/.next/static/media/59769944ee073575-s.woff2 +0 -0
  264. package/.next/static/media/5bca2cb7d28055ae-s.woff2 +0 -0
  265. package/.next/static/media/5d217fec32e2068e-s.woff2 +0 -0
  266. package/.next/static/media/5f46c2de3a30070d-s.woff2 +0 -0
  267. package/.next/static/media/651d2e07f2cec067-s.woff2 +0 -0
  268. package/.next/static/media/684008be259a59c6-s.woff2 +0 -0
  269. package/.next/static/media/6858bbe75ab53fba-s.woff2 +0 -0
  270. package/.next/static/media/6cbcf0df7f219406-s.woff2 +0 -0
  271. package/.next/static/media/6d92d05365182413-s.woff2 +0 -0
  272. package/.next/static/media/7470b994d8569922-s.woff2 +0 -0
  273. package/.next/static/media/74e7e1e3fdad08dd-s.woff2 +0 -0
  274. package/.next/static/media/77901e7a9559d10c-s.woff2 +0 -0
  275. package/.next/static/media/796fab757a0e6146-s.woff2 +0 -0
  276. package/.next/static/media/7a830ebca9fe9db7-s.woff2 +0 -0
  277. package/.next/static/media/7bef3958b14cb6e3-s.woff2 +0 -0
  278. package/.next/static/media/81eb003b78a42a7b-s.woff2 +0 -0
  279. package/.next/static/media/84057adca98c0827-s.woff2 +0 -0
  280. package/.next/static/media/84a87fc9f232641e-s.woff2 +0 -0
  281. package/.next/static/media/84efce35a48f395c-s.woff2 +0 -0
  282. package/.next/static/media/872bfc82854f88b2-s.woff2 +0 -0
  283. package/.next/static/media/878380e8db69cb31-s.woff2 +0 -0
  284. package/.next/static/media/89c333b5a8239870-s.woff2 +0 -0
  285. package/.next/static/media/8a2e82a5f6677757-s.woff2 +0 -0
  286. package/.next/static/media/8cb8df5532e281af-s.woff2 +0 -0
  287. package/.next/static/media/8efbe4984052b206-s.woff2 +0 -0
  288. package/.next/static/media/8f2ab7576a12de97-s.woff2 +0 -0
  289. package/.next/static/media/905b23b26fa2645b-s.woff2 +0 -0
  290. package/.next/static/media/91fb5c9b9b43e9ec-s.woff2 +0 -0
  291. package/.next/static/media/92079ce87aa6c00d-s.woff2 +0 -0
  292. package/.next/static/media/9d87bcf0c05a83d6-s.p.woff2 +0 -0
  293. package/.next/static/media/9e9c82ad03b7dfa5-s.woff2 +0 -0
  294. package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  295. package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  296. package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  297. package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  298. package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  299. package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  300. package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  301. package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  302. package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  303. package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  304. package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  305. package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  306. package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  307. package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  308. package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  309. package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  310. package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  311. package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  312. package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  313. package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  314. package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  315. package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  316. package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  317. package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  318. package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  319. package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  320. package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  321. package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  322. package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  323. package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  324. package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  325. package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  326. package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  327. package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  328. package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  329. package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  330. package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  331. package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  332. package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  333. package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  334. package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  335. package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  336. package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  337. package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  338. package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  339. package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  340. package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  341. package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  342. package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  343. package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  344. package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  345. package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  346. package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  347. package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  348. package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  349. package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  350. package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  351. package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  352. package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  353. package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  354. package/.next/static/media/a0c7b168290800ea-s.woff2 +0 -0
  355. package/.next/static/media/a211c214b387705f-s.woff2 +0 -0
  356. package/.next/static/media/a515f80c15233dd2-s.woff2 +0 -0
  357. package/.next/static/media/a59cf4e3704a8bf9-s.woff2 +0 -0
  358. package/.next/static/media/a7107da688a6a6c4-s.woff2 +0 -0
  359. package/.next/static/media/b0785a8aafa8fb40-s.woff2 +0 -0
  360. package/.next/static/media/b3afeb402d0641d1-s.woff2 +0 -0
  361. package/.next/static/media/b3d4f23ea9869e41-s.woff2 +0 -0
  362. package/.next/static/media/b88b6f09060fd402-s.woff2 +0 -0
  363. package/.next/static/media/b9bde58fd979694e-s.woff2 +0 -0
  364. package/.next/static/media/bdb722ed5812b325-s.woff2 +0 -0
  365. package/.next/static/media/c24e4778556eba42-s.woff2 +0 -0
  366. package/.next/static/media/c3040269b1771b02-s.woff2 +0 -0
  367. package/.next/static/media/c4123b44ca624496-s.woff2 +0 -0
  368. package/.next/static/media/ccadbccc98acfb1c-s.woff2 +0 -0
  369. package/.next/static/media/d04351f5bc3644ea-s.woff2 +0 -0
  370. package/.next/static/media/d1778a980b3fad78-s.woff2 +0 -0
  371. package/.next/static/media/d416562cb7cba055-s.woff2 +0 -0
  372. package/.next/static/media/d872fd07230782c0-s.woff2 +0 -0
  373. package/.next/static/media/db3791bbb1ae5747-s.woff2 +0 -0
  374. package/.next/static/media/dd090f323c5887c3-s.woff2 +0 -0
  375. package/.next/static/media/dd1fcf6432702b11-s.woff2 +0 -0
  376. package/.next/static/media/e45abf9e3abcfe63-s.woff2 +0 -0
  377. package/.next/static/media/e6e70594dba816d3-s.woff2 +0 -0
  378. package/.next/static/media/e8a6cb3b0c8c1d41-s.woff2 +0 -0
  379. package/.next/static/media/e8fdc46fb8ed5f75-s.woff2 +0 -0
  380. package/.next/static/media/ed7a78808c74aaab-s.woff2 +0 -0
  381. package/.next/static/media/ef9a93445fe49953-s.woff2 +0 -0
  382. package/.next/static/media/f00fd2cfeda7750f-s.woff2 +0 -0
  383. package/.next/static/media/f0863c4be7cb812e-s.woff2 +0 -0
  384. package/.next/static/media/f2fb250c4baa1fea-s.woff2 +0 -0
  385. package/.next/static/media/f392a13a0094c3d1-s.woff2 +0 -0
  386. package/.next/static/media/f42f4d2ecc3cba08-s.woff2 +0 -0
  387. package/.next/static/media/f8f98f7e33dde58b-s.woff2 +0 -0
  388. package/.next/static/media/fba9d66c2358f8e6-s.woff2 +0 -0
  389. package/.next/static/media/fc8b52876cd8aa42-s.woff2 +0 -0
  390. package/.next/static/media/fcc5ccbd071c5f3e-s.woff2 +0 -0
  391. package/.next/static/media/fe9908567bfd9cbf-s.woff2 +0 -0
  392. package/.next/trace +120 -0
  393. package/.next/types/app/api/asset/[...path]/route.ts +343 -0
  394. package/.next/types/app/api/auth/[...nextauth]/route.ts +343 -0
  395. package/.next/types/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.ts +343 -0
  396. package/.next/types/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.ts +343 -0
  397. package/.next/types/app/api/blog/[id]/highlights/[hid]/replies/route.ts +343 -0
  398. package/.next/types/app/api/blog/[id]/highlights/[hid]/resolve/route.ts +343 -0
  399. package/.next/types/app/api/blog/[id]/highlights/[hid]/route.ts +343 -0
  400. package/.next/types/app/api/blog/[id]/highlights/route.ts +343 -0
  401. package/.next/types/app/api/graphql/route.ts +343 -0
  402. package/.next/types/app/api/mile/prompts/route.ts +343 -0
  403. package/.next/types/app/api/upload/route.ts +343 -0
  404. package/.next/types/app/api/webhooks/notification/route.ts +343 -0
  405. package/.next/types/app/atom.xml/route.ts +343 -0
  406. package/.next/types/app/blog/[id]/page.ts +79 -0
  407. package/.next/types/app/blog/page.ts +79 -0
  408. package/.next/types/app/editor/page.ts +79 -0
  409. package/.next/types/app/login/page.ts +79 -0
  410. package/.next/types/app/memos/page.ts +79 -0
  411. package/.next/types/app/page.ts +79 -0
  412. package/.next/types/app/rss.xml/route.ts +343 -0
  413. package/.next/types/app/unavailable/page.ts +79 -0
  414. package/.next/types/package.json +1 -0
  415. package/README.md +17 -1
  416. package/bin/cici.js +128 -23
  417. package/package.json +6 -5
  418. package/public/Tinymind-banner.png +0 -0
  419. package/public/Tinymind.dmg +0 -0
  420. package/public/icon-144.jpg +0 -0
  421. package/public/icon.jpg +0 -0
  422. package/public/manifest.json +25 -0
  423. package/public/presentations/coordinated-access-control-with-policy/index.html +1593 -0
  424. package/public/tinymind.icns +0 -0
  425. package/.next/standalone/data/assets/1727016079577.jpg +0 -0
  426. package/.next/standalone/data/assets/images/2024-12-03/1733256504772.jpg +0 -0
  427. package/.next/standalone/data/assets/images/2024-12-12/.gitkeep +0 -0
  428. package/.next/standalone/data/assets/images/2024-12-12/1734033798997.png +0 -0
  429. package/.next/standalone/data/assets/images/2024-12-21/.gitkeep +0 -0
  430. package/.next/standalone/data/assets/images/2024-12-21/1734785902890.jpeg +0 -0
  431. package/.next/standalone/data/assets/images/2024-12-23/.gitkeep +0 -0
  432. package/.next/standalone/data/assets/images/2024-12-23/1734990512413.jpeg +0 -0
  433. package/.next/standalone/data/assets/images/2024-12-23/1734991833894.jpeg +0 -0
  434. package/.next/standalone/data/assets/images/2024-12-23/1734993188114.jpeg +0 -0
  435. package/.next/standalone/data/assets/images/2024-12-23/1734993280313.jpeg +0 -0
  436. package/.next/standalone/data/assets/images/2024-12-23/1734993317984.jpeg +0 -0
  437. package/.next/standalone/data/assets/images/2024-12-23/1734993411252.jpeg +0 -0
  438. package/.next/standalone/data/assets/images/2024-12-23/1734993425042.jpeg +0 -0
  439. package/.next/standalone/data/assets/images/2024-12-23/1734993480342.jpeg +0 -0
  440. package/.next/standalone/data/assets/images/2024-12-23/1734993562660.jpeg +0 -0
  441. package/.next/standalone/data/assets/images/2024-12-23/1734993625024.jpeg +0 -0
  442. package/.next/standalone/data/assets/images/2024-12-23/1734993677103.jpeg +0 -0
  443. package/.next/standalone/data/assets/images/2024-12-23/1734993893285.jpeg +0 -0
  444. package/.next/standalone/data/assets/images/2024-12-23/1734993996131.jpeg +0 -0
  445. package/.next/standalone/data/assets/images/2024-12-23/1734994035144.jpeg +0 -0
  446. package/.next/standalone/data/assets/images/2024-12-23/1734994064317.jpeg +0 -0
  447. package/.next/standalone/data/assets/images/2024-12-23/1734994128679.jpeg +0 -0
  448. package/.next/standalone/data/assets/images/2024-12-23/1734994189257.jpeg +0 -0
  449. package/.next/standalone/data/assets/images/2024-12-23/1734994521799.jpeg +0 -0
  450. package/.next/standalone/data/assets/images/2024-12-23/1734994530669.jpeg +0 -0
  451. package/.next/standalone/data/assets/images/2024-12-24/.gitkeep +0 -0
  452. package/.next/standalone/data/assets/images/2024-12-24/1735032434591.jpeg +0 -0
  453. package/.next/standalone/data/assets/images/2024-12-24/1735068363518.jpeg +0 -0
  454. package/.next/standalone/data/assets/images/Cofe-app.png +0 -0
  455. package/.next/standalone/data/blog/.gitkeep +0 -0
  456. package/.next/standalone/data/blog/2017-summary.md +0 -59
  457. package/.next/standalone/data/blog/a-complex-web-app-refactor.md +0 -72
  458. package/.next/standalone/data/blog/a-day-of-remote-worker.md +0 -82
  459. package/.next/standalone/data/blog/async-action-in-redux.md +0 -257
  460. package/.next/standalone/data/blog/cofe.md +0 -398
  461. package/.next/standalone/data/blog/expensee-shortcut-numbers-guide.md +0 -99
  462. package/.next/standalone/data/blog/first-golang-project-fx.md +0 -113
  463. package/.next/standalone/data/blog/work-going-index.md +0 -49
  464. 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
  465. 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
  466. 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
  467. 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
  468. 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
  469. 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
  470. 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
  471. 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
  472. package/.next/standalone/data/blog//351/200/233/351/200/233/346/265/216/345/267/236/345/262/233.md +0 -78
  473. package/.next/standalone/data/blog-manifest.json +0 -21
  474. package/.next/standalone/data/highlights/expensee-shortcut-numbers-guide.json +0 -77
  475. package/.next/standalone/data/likes.json +0 -56
  476. package/.next/standalone/data/memos.json +0 -1255
  477. package/.next/standalone/data/site-config.json +0 -22
  478. /package/.next/standalone/.next/static/{ACh2hmfOOZR7INKDQAX5I → PDn4f_-4CIbfG8EmueowG}/_buildManifest.js +0 -0
  479. /package/.next/standalone/.next/static/{ACh2hmfOOZR7INKDQAX5I → PDn4f_-4CIbfG8EmueowG}/_ssgManifest.js +0 -0
  480. /package/.next/standalone/{data → sample-content/assets}/.gitkeep +0 -0
  481. /package/.next/standalone/{data/assets/images/2024-12-03 → sample-content/highlights}/.gitkeep +0 -0
@@ -1,114 +0,0 @@
1
- ---
2
- title: 上海到阿姆斯特丹
3
- date: 2024-09-27T17:56:10.267Z
4
- ---
5
-
6
- ## 前言
7
-
8
- 从上海来到阿姆斯特丹也一周了,两个小朋友,两个大人,一个决定,年初做这个决定,也曾有过很多迟疑,然而当决定做好了之后,两个相隔万里的城市,也仅仅是一张飞机票的距离。
9
-
10
- ![ticket](https://github.com/metrue/picx-images-hosting/raw/master/Screenshot-2024-07-21-at-13.58.18.7w6psuu1cf.webp)
11
-
12
- ## 决定
13
-
14
- 我很早就有在小朋友们的小学阶段,带他们去国外生活一段时间的想法,一方面是自己想去体验世界,一方面也是想让小朋友在小时候能感受不同的文化氛围。而现在是一个很好的时机,姐姐三年级,弟弟一年级,多少能自己照顾点自己,而同时又能相互陪伴。
15
-
16
- 当然更重要的是我和老婆的决定,我们两个人都在上海呆十年左右,工作暂时还算轻松稳定,有房无贷,我们两对于物质也没有啥过高的要求,但是你知道,在上海,无论是否有生活压力,每天的日程都是比较紧凑的。对于小朋友的教育,虽然心里有所期待,但是整体不是虎爸虎妈,健康快乐,健全人格为主。对于生活环境,我们都是小镇青年,从小学,中学,大学,到工作,也不断的从一个城市到一个城市,基本上对于各种环境也有一定的容忍度,自认为可以适应各种环境变化和文化差异。
17
-
18
- 不过显然这还是一个不小的决定,而且这个决定会给很多人带来变化:
19
-
20
- **自己**: 还是原来的公司,原来的团队,原来的工作内容,只是换一个城市,需要去适应新的工作氛围,需要重新去经营和老板,以及身边的同事的关系。
21
-
22
- **小朋友**: 他们需要去适应新的学校,新的教育方式,结交新的小朋友,对他们来说也是很大的挑战。但是和他们沟通之后,他们也拥抱我们的决定。
23
-
24
- **伴侣**: 而我老婆也同样需要面对的新的挑战,陌生的环境,而且如果辞去当前的工作,意味她需要全部从零开始,她很坦白的和她老板坦白自己的想法,她老板也也很理解和宽容,可以不用辞职,去阿姆斯特丹远程工作两个月,尝试自己是否适应那边的生活,然后在做决定。
25
-
26
- **父母**: 我们两个人的服务年龄都在60岁上下,目前能照顾自己,虽然他们都不是很同意我们去那么远的地方去工作生活,但是也拗不过我们的决定,我有妹妹,我老婆有弟弟,他们也能在紧急的时候帮我们照顾他们。一方面在上海的时候,他们也帮我们照顾小朋友很多年了,也想给他们自己的时间,让他们有自己的生活,我爸就特别想把车练好,然后开车走一走中国.
27
-
28
- 所以整个决定就变成了:**让我们去阿姆斯特丹生活一段时间吧,小朋友去当地国际学校,妈妈不辞职,远程工作一段时间,爸爸原职位不变,只是换城市工作。**
29
-
30
- ## 流程
31
-
32
- 决定做好了之后,流程就比较简单了,和老板提出自己想去阿姆斯特丹工作的想法,然后老板和对应的老板沟通商议,然后确定新 Offer,HR 发新的合同,签订合同之后就开始 Relocation 的流程了,这部分公司有专门的 Global Mobility 团队来负责。所以只需要按照他们的步骤来一步步进行就好了。
33
-
34
- ### 签证申请
35
-
36
- 公司有专门的服务公司来帮忙完成这一部分,也就是向荷兰移民局(IND) 申请高技术移民签证和家庭成员的居留签证。这个过程还是需要一定的时间,当然对于我们来说,就是根据他们的材料清单去准备材料即可。如果一切都顺利,就收到到 IND 的 Approval Letter,上面有所有成员的 V Number, 有了这个之后,就可以预约荷兰大使馆或者领事馆去递签证了,使馆和领事馆递签也需要带必要的文件,递签顺利的换,几天之后就可以收到盖好签证的护照。有了护照就可以开始后面的流程了。
37
-
38
- ### 海运
39
-
40
- 公司有安排专门的搬家公司帮我们全程完成搬家,非常专业的搬家服务,他们会先和你预约一个时间进行初步的沟通,了解大致需要海运的东西,可能是为后期的海运打包工具,和打包人员安排做准备。然后预约一个现场打包的时间,当天他们会全部帮你进行打包和搬运上他们的车,你只需要告诉他们需要打包和搬运的物品即可,基本上不需要你动手。
41
-
42
- 基本上如果你想把整个家从上海复制到阿姆斯特丹几乎没有什么问题,只是我们一切从简,只海运那些我们需要的东西,比如一箱书籍,厨具,三辆自行车,衣物和棉被,刚买不久的床垫,以及不少的其他东西。
43
-
44
- ### 机票
45
-
46
- 基本只要拿到了签好的护照,就可以让公司帮忙预定机票了,我们的时间比较的紧凑,拿到护照之后只有不到十天的时候来进行海运的安排和飞机票的购买了,不过最后好在一切都很顺利,公司定的机票的日期前一天,海运正好弄完。如果没有让公司购买指定的航司,公司一般会优先预定KLM的航班。
47
-
48
- ## 出发
49
-
50
- 前一天刚刚打包完海运,今天一大早就出发去浦东机场了,所有的安排都是紧凑的,四个大大的箱子,四个些许有点忐忑又有点其他的心。而且姐姐努力上进的心,竟然说要在机场参加全国青少年信息素养大赛 Python 编程挑战赛的复赛。所以就有这张我办理登机牌时候,姐姐还在努力写程序的照片.
51
-
52
- ![coding](https://github.com/metrue/picx-images-hosting/raw/master/IMG_9735-2.2ven1apg7x.jpg)
53
-
54
- ### 飞行
55
-
56
- 我们乘坐的是 KLM 从上海浦东直飞阿姆斯特丹史基浦机场的航班,飞机基本满员,总共飞了13个小时50分钟,餐食还凑合,看看电影,玩玩游戏,睡睡觉,不知不觉也就到了。
57
-
58
- ### 落地
59
-
60
- 周六上海早上 11:30 出发,落地阿姆斯特丹的时间是下午的 19:05 分,跟着人群按照路标直接走到通关口即可,通关也很顺利,就简单问一下来阿姆斯特丹的目的,以及时间,看到我拿到的工作签证之后,盖个章便出来,去取行李。
61
-
62
- 公司有有安排好的出租车服务,取完行李按照公司提前发的路线图去等司机来接,看到小红书有不少朋友提到被出关开行李检查的经历,我们并没有发生,我也没有看到同飞机的任何人有被查,也许只是幸运。我们到了指定的候车点之后,直接打了司机的电话,天还很亮,上海三十几度的温度,到了阿姆斯特丹大约不到二十度,幸好我们都带来外套。几分钟之后司机就到了,司机很友善帮忙行李放到后备箱,很熟悉送到了公司安排的酒店。
63
-
64
- ### 酒店
65
-
66
- 公司为海外调到阿姆斯特丹工作的员工安排四周(单身)或者六周(家庭)的临时酒店,并且在酒店的接待处可以拿到一个小礼包,里面有一张公交卡, 这边是 OV Card, 和当地小零食,这个公交卡是为了在我们办理自己的各种卡之前方便出行用的。
67
-
68
- 我们的酒店位于 Cruiquiuseiland 的 YAYS Amsterdam Docklands, 入住之前短信和邮件都以及发送给我相关的入住信息,直接通过 pin code 就可以入住,一个两室的格局,可以做饭。当天到酒店时候,已经是晚上八点多了,所以洗漱结束之后就休息了。
69
-
70
- ## 第一周
71
-
72
- 这一整周天气都很好。这也是我选择七月来荷兰的原因,不想一开始进入 hard 模式。当然我这一周的主要任务有三个: 熟悉当地,BSN注册,居留证办理,银行卡办理。
73
-
74
- ### 第一天
75
-
76
- 因为正好是周六过来的,所以周日可以好好休息一天,调整一下时差。第二天早上,我们六点多就醒了,然后洗漱之后,就出门到附近走走,显然一大早除了运动的人,没有什么太多人,路上的人挺友善的打招呼,我们有点饿,不过基本上所有的店在 Google 地图上(还是 Yelp) 都显示尚未营业。在公交车车站,我们问一个老奶奶附近的超市在哪儿,是否已经开门,她英文挺好的,指路并且提到他们开门挺早,而且不远,她几乎每天都去。我们顺着她的方向走大约几百米,果然就到了。
77
-
78
- 超市和国内超市区别不大,不过大部分的商品信息多数是荷兰语。虽然很早,但是已经也有人采购东西,我们主要是购买一些面包,牛奶,蔬菜,和肉类,打算有空的时候做做饭,不了解的东西我都是直接用英文询问其他人,他们英文也挺好。
79
-
80
- 在我们回酒店的路途中,陆陆续续来来回回的人就多一些了,很多骑自行车的人,而路边也超多的自行车,不时就有人打招呼。
81
-
82
- ### 购物和交通
83
-
84
- 购物我基本上就直接去酒店附近的 Albert Heijin 或者 Jumbo,基本和国内的大超市也差多,生活用品基本上都可以买到,肉奶蛋类和国内价格似乎无差,蔬菜类会贵一些。如果你有一张 contactless 的 VISA 信用卡,大超市似乎应该都支持支付。不过我很失误,我只带了招商银行的mini信用卡,不支持 contactless, 基本上刷不了,幸好我带了一点欧元出来。
85
-
86
- 阿姆斯特丹的交通还是很便利的,有很多的选择: Train, Tram, Bus, Metro, Ferry, Bus, 当然最最最最最重要,还是 Bicycle 啦,自行车真的太重要了在这里,一方面是公共交通真的不便宜,另一方面,它真的应该是最方便的交通工具了。
87
-
88
- ### BSN 注册 和 IND 居留卡
89
-
90
- 公司的服务团队在我到阿姆斯特丹之前已经帮我预约好了 BSN 注册和 IND,所以我只需要按时间去到阿姆斯特丹外籍服务中心,现在叫IN Amsterdam。为了按时到达,我们早上吃饭早饭,就一起做上公交车,然后换乘电车到达了 IN Amsterdam。
91
-
92
- 因为我们家四个人都要办理,而且有小朋友,文件还是满多的,整个过程花了大约2个小时,办事人员也很友善,不过还是很顺利的,我们拿到了自己的 BSN 以及居留卡,从此就是合法阿姆斯特丹打工仔了。
93
-
94
- ![ind](https://github.com/metrue/picx-images-hosting/raw/master/IMG_2285.77dg8ua2cl.jpg)
95
-
96
- 在办理完 BSN 注册和居留卡之后我们在 IN Asterdam 的楼里吃午饭,没有想到,他们家还挺好吃,虽然略微有些贵,小朋友们很喜欢,我们吃的也很满意。
97
-
98
- ### 银行卡
99
-
100
- 公司把办理银行卡的时间约在 BSN 注册的下午,从 IN Amsterdam 到公司预约的银行 ABN AMRO 不是很远,公交车一会就到了,办理也很顺利,简单的信息了解,前几个字,就完成了我们两个人联合账户的初步开通,不过当场并不能拿到卡,需要审批完了之后后面直接邮寄到我的地址。
101
-
102
- ![bank](https://github.com/metrue/picx-images-hosting/raw/master/IMG_9856.1zi5luh8jg.jpg)
103
-
104
- ## 初印象
105
-
106
- 一周过去了,我也完成在阿姆斯特丹正常生活必备的一些步骤,新生活也慢慢展开了。阿姆斯特丹这一周给我的初印象大致是,
107
-
108
- ![company](https://github.com/metrue/picx-images-hosting/raw/master/IMG_2273.1sexqevuz1.jpg)
109
-
110
- 大家较为友好,也许是因为我接触的人还很少,但是整体来说,路上时不时都会有人友善的打招呼,遇到问题咨询的时候,大家也很耐心的解答。我们在路上掉了运动器材的包包,人们也很友善的提醒,我有一次在超市掉了二十欧纸币,也有人拿到外面找我归还;
111
-
112
- 英文的普及率很高,接触过的所有人都可以很流利的说英文,无论是公共部门的办事人员,还是路边的店员,或者是路人,无聊时上了年纪的老人,还是偶遇的年轻人,英文沟通都非常的顺畅。
113
-
114
- 城市比我想象中的漂亮,河道很多,建筑也很有特点,走在路上时不时都会有小惊喜,很可惜我们海运的三辆自行车还没有到,不然真的想好好骑行整个城市。
@@ -1,107 +0,0 @@
1
- ---
2
- title: 二月葡萄牙游记
3
- date: 2025-02-25T19:42:53.549Z
4
- external_discussions:
5
- - platform: v2ex
6
- url: https://v2ex.com/t/1115332
7
- ---
8
-
9
-
10
- 小朋友又迎来了一周的春假,十二月的冬假,去西班牙的巴塞罗那和马德里,小朋友蛮开心的,详见上一篇的博文 “[西班牙七天的旅行](https://blog.minghe.me/blog/%E8%A5%BF%E7%8F%AD%E7%89%99%E4%B8%83%E5%A4%A9%E7%9A%84%E6%97%85%E8%A1%8C) ”,以及我参与的小朋友们自己的小播客 “​​[西柚课间| 小宇宙 - 听播客](https://www.xiaoyuzhoufm.com/podcast/63f9f6ec75918da323982e2c) ”. 这次我们选择葡萄牙的波尔图 Porto 和里斯本 Lisbon, 短暂离开荷兰的冬天,去享受一下阳光吧.
11
-
12
- 几乎不太需要什么规划,两个城市都是热门欧洲旅行目的地,从阿姆斯特丹出发飞机直达,如果有什么需要提醒的:那就早点订机票和酒店吧,哪儿的旅行不需要早点订机票和酒店呢?早定早安心,而且省钱. 这次和上次的交通方式和酒店方案类似。
13
-
14
- ### 交通
15
-
16
- * 阿姆斯特丹 → 波尔图: 荷兰航空,不到三个小时.
17
- * 波尔图 → 里斯本: 火车, 接近三小时
18
- * 里斯本 → 阿姆斯特丹: 荷兰航空,三小时.
19
-
20
- ### 酒店
21
-
22
- 我出行还是不习惯使用 Airbnb, 所以一般都选择酒店,而且每次都是家庭出行,所以需要家庭套房,所以价格也会相对高一些,不过这次价格相对可控。
23
-
24
- 在波尔图, 我们选择了 Vincci Hotel,在 Booking 上的评价其实还不错,这个酒店就在杜罗河边,不过整体设计中规中矩,没有太多惊艳的地方,不过早餐还是不错的,加上税8欧元的早餐还是蛮丰盛的,我们吃的都很满意. 在里斯本,我们选择了 Moxy Hotel,这酒店经济年轻,家庭房也很凑合,其实这个酒店不合适有钱的商务人士,也不适合真正想在酒店里玩耍的亲子需求的家庭,但是适合我们这样,简简单单,干干净净,年轻且些许时尚的“年轻”家庭.
25
-
26
- ## 波尔图
27
-
28
- 落地波尔图,小朋友们绝对好像回到爷爷奶奶家,气温很温暖。我们坐601 公交车从飞机场去酒店,一共27站,一路上对这个城市有了一些初印象:小城市,很多地方像中国的南方小县城,路边灰土灰土的,但是有山有树,上上下下,很有层次。下了车,沿着一条弯曲,有些地方甚至很狭窄的下山路,走到杜罗河边就到我们的酒店了
29
-
30
- ![P0.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514356850.webp?raw=true).
31
-
32
- 酒店入住之后简单收拾,然后休息到傍晚,就打车到市中心去找饭店吃饭了,饭店一般我直接都在 Google Map 上直接搜索,然后看着不错就直接去,波尔图的第一天晚上选择的这家饭店就在河边,我们坐在室外,天气不错,看着路边人们走来走去。我们点的很常规的食物,除了生蚝有点不合适(因为它真的是生的,我目前还是受不了生的腥味),其他都比较正常,海鲜饭,蒜香虾等都不错。
33
-
34
- 令人开心的是晚餐时候的邻桌是一对爱尔兰的夫妇,有五个小孩,最小的已经十五岁了,所以他们有大把的时间出来玩,不过除了之前到过香港,中国其他城市没有来过,不过他们很喜欢中国美食。我们聊的很开心,惜惜(女儿)滔滔不绝和他们分享各种事情,他们也很耐心和捧场,过程中他们也“分享”了很多英国和美国之间的各种Beef, 我说我女儿现在在说话的时候用很多 “like”,她说小朋友现在确实特别爱用 “like”, 而且受到美国英文习惯的影响非常大,然后列举好多中美英文差异的地方,从食物到足球,顺便还炫耀一下就算是大学,英国质量也比美国好(哈哈哈)。最后还给我们推荐了不少的英国食物。
35
-
36
- ![P1.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514382391.webp?raw=true)
37
-
38
- 吃完晚餐,沿着河边走走,正好听到街头艺人正在唱 “Hey, Jude”, 全场氛围很棒,买了一份炭烤栗子,边吃边逛回酒店。
39
-
40
- ![P2.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514398405.webp?raw=true)
41
-
42
- 第二天早上有点小雨,在酒店吃完早餐,我们就去打车到狮子喷泉,本来打算去波尔图大学看看一下,没想到就是一栋楼(后来听说只是其中的一个办公楼),路过莱罗书店,但是排队的人实在是太多了,所以我们就去买了伽莫修道院参观了。
43
-
44
- ![P3.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514422417.webp?raw=true)
45
-
46
- 我个人到异国他乡旅行,如果当地的导游服务不是很贵,我一般都喜欢购买导游服务,这次波尔图也一样,在 Booking 上买一个的导游服务,很便宜,一欧元一个人。英文讲解,带你走遍十几个主要景点。小哥是都柏林人,讲的还是挺有激情的,如果懂一些欧洲历史,听着可能还更好玩一些,而且可以一起讨论,蛮有意思的.
47
-
48
- ![P4.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514435622.webp?raw=true)
49
-
50
- 总共十几个人的团,团中还有另外一个中国小哥,简单聊了聊,碰巧他之前也在荷兰莱顿生活过。导游小哥带着我们三个多小时,走了十几个景点。 Fonte dos Leões ➝ Praça Gomes Teixeira ➝ Edifício da Reitoria da Universidade do Porto ➝ Igreja do Carmo ➝ Livraria Lello ➝ Torre dos Clérigos ➝ Antiga Cadeia da Relação ➝ Monumento a Dom Pedro IV ➝ São Bento Railway Station ➝ Rua das Flores ➝ Miradouro da Vitória ➝ Porto Cathedral (Sé Catedral) ➝ Praça da Ribeira ➝ Ponte de Dom Luís I
51
-
52
- ![P5.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514453577.webp?raw=true)
53
-
54
- 后来由于小朋友们实在是累了,所以我们在火车站那一站就放弃了,然后打车回酒店休息了.
55
-
56
- 晚上我们到一个很火的餐厅,排队了一个多小时,不过最后吃的还算满意,而且他们的服务也很到位,我们一家人吃的都很开心。
57
-
58
- 第二天是自由的一天,睡到自然醒,然后乘坐酒店门口的公交车,直接到 Matosinhos的海边,小朋友在沙滩玩了很久。直到饿了才打车回到市区吃午餐,然后在城市走走看看,波尔图主教座堂附近都值得走一走,最后徒步走路易一世大桥,走到另一边,就是一个小山坡草地,大家都坐在草地上,看着波尔图的城市风景,迎着夕阳,听着街头艺人的音乐,直到我们晚餐时间。
59
-
60
- ![P6.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514484399.webp?raw=true)
61
-
62
-
63
- 万万没有想到,很少生病的惜惜竟然半夜发烧了,第二天早上还是感觉不是很舒服,早餐也吃的不多,因为我们下午一点多就要坐火车出发去里斯本了,本来打算早上再去逛一逛老城区,但是惜惜不舒服,所以计划就改成了,小朋友们在酒店休息,妈妈收拾行李,我去买退烧药。在葡萄牙买药很简单,简单的描述病情和小朋友基本信息,药师就会推荐相应的药物,并且询问我是否介意含有布洛芬。
64
-
65
- 买药的路线是一条僻静的上下山小道,是我们来时的路。
66
-
67
- ## 波尔图火车到里斯本
68
-
69
- 从波尔图到里斯本的火车,速度倒是还行,和国内高铁差不多,但是平稳程度和国内的高铁差太多了,惜惜在一半的时候在车上呕吐了,我只能和列车员说抱歉,列车员也是见怪不怪了,说这是很常见的。旁边的乘客很友好的给我们一些纸巾,甚至拿出了药物给我们,但是当我说她稍微有点发烧,而身后的弟弟有点咳嗽(波尔图的海鲜饭真的好咸),他们就默默的带上了口罩,显然是怕流感了。
70
-
71
- *事实是确实流感了,我回到了阿姆斯特丹的第二天我就全身酸痛*。
72
-
73
- ## 里斯本
74
-
75
- 从波尔图到里斯本,有点点进城的感觉,火车站到酒店直接打车即可,在葡萄牙基本上可以实现打车自由,自从到欧洲生活,感觉忘记了自己也曾经有几个消费自由(比如全家自由,优衣库自由,外卖自由),到酒店了之后,已经五六点了,所以找了附近一个蛮火的餐厅,但是其实感觉一般.
76
-
77
- 其实 Moxy Hotel 早餐看上去还可以,成人单价14欧元,不算太贵,儿童基本上酒店都是免费吃早餐的,但是惜惜和佑佑去参观了早餐的食物之后,不是很喜欢,所以我们决定在其他地方去吃早餐,但是 Google Map 搜了半天都看不到合适,最后在酒店旁边的 Brunch 店解决了,十几欧的价格,三明治,烤吐司,两杯咖啡和一杯果汁,其实也蛮不错的.
78
-
79
- 第一天的站是 Torre de Belem (贝伦塔),葡萄牙航海时代的产物,四五百年的历史了,古老和些许的壮观,在海水的冲刷中又带些落寞的沧桑。人不少,我坐在草地边晒太阳,惜惜,佑佑和妈妈在水边玩耍,抓了几只小螃蟹和漂亮的贝壳。
80
-
81
- ![P7.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514541224.webp?raw=true)
82
-
83
- 欣赏完贝伦塔,继续沿着 Tejo River 往前走,就可以到达航海纪念碑了,碑上的三十三位航海时代的重要人物,可以一略葡萄牙在航海时代的辉煌,目前也是一座博物馆,可购票入内参观,不过这次不巧,博物馆闭馆,要到三月份才开放。
84
-
85
- 航海纪念碑继续前进不到三四百米即是热罗尼摩斯修道院(Mosteiro dos Jerónimos), 本来打算购票进去参观的,从外部看只是非常的壮观宏伟,但是小朋友对修道院不感兴趣,所以就放弃了。而且排队较长,所以带小朋友去 Museu de Marinha 的餐厅上个洗手间之后,坐在修道院前的小公园的石凳上,听着美妙的音乐,吃着美味的午餐,享受阳光,很惬意。
86
-
87
- ![P8.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514557661.webp?raw=true)
88
-
89
- 吃饱喝足,休息好之后,我们公园走一走,就打车去里斯本大学了:去任何城市旅行,去大学参观是常规项目。里斯本大学,说实话,才几天过去,但是其实没有留下太多印象,因为是在不懂这个大学,而且也没有整个过程也没有眼前一亮的地方,所以我们想以后我们去大学参观一定找一个对学校熟悉的人来当导游。
90
-
91
- ![P9.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514568788.webp?raw=true)
92
-
93
- 逛完大学,我们回酒店休息好了之后,就找了一家韩国烤肉店,因为好几天都吃的葡萄牙本地的餐食,想换个口味,没想这个决定让我们付出了惨痛的代价,第二天早上,佑佑练习的呕吐,而且轻微的发烧,显然是食物中毒了,我们因为呕吐完了之后应该就慢慢恢复了,但是早餐佑佑也吃很少,休息好几个小时,还是感觉不舒服,所以显然旅行计划只能改变,选择一些不费劲的方式:最后我们选择了坐有名的28路小黄车游览一下里斯本. 不过因为有一下午的时候,所以我先带着小朋友在 Martim Moniz Square 坐着晒太阳,惜惜还和一个大叔拿了鸟食喂了一会儿鸽子。不过偶尔就看到有人在广场的大叔底下小便,蛮大煞风景的。
94
-
95
- ![P10.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514582240.webp?raw=true)
96
-
97
- 28路小黄车还是可以坐一坐的,不过排队需要好一会,不过叮叮当当坐着,浏览着古老的城市,还是挺有感觉的,正好它的终点站是卡蒙斯广场(Praça Luís de Camões),是里斯本市中心的一个著名地标,向葡萄牙伟大的诗人 路易斯·德·卡蒙斯(Luís de Camões) 致敬. 我也顺便在那附近的一个药店买给佑佑一些药物,在那儿坐着看看人群,聊聊天,然后我们就会酒店了,晚上去吃了一家中餐,味道很地道,而且佑佑吃了一整份的汤包,以及麻婆豆腐和一点米饭,些许恢复体力。
98
-
99
- ![P11.webp](https://github.com/metrue/Cofe/blob/main/assets/images/2025-02-25/1740514592708.webp?raw=true)
100
-
101
- 第三天中午就要坐飞机会阿姆斯特丹了,所以早上就睡到自然醒,然后打车直接去机场,发现葡萄牙的 Bolt 司机比西班牙的司机友善很多,他们会主动的帮你拿行李,微笑服务,而且英文普遍还行。
102
-
103
- ## 后记
104
-
105
- 这次绝对不是那么让人享受的旅行,但是意料之外的事情,也让我们的旅行记录更加地丰富,经过这次旅行的生病,我们得到两个教训:出门带点药,以及不要去吃不能确保安全的食物(比如烤肉)。
106
-
107
- 最近正在惜惜和佑佑讨论下次旅行目的地,在英国和意大利之间角逐,期待下次旅途.
@@ -1,180 +0,0 @@
1
- ---
2
- title: 华为鸿蒙 HarmaryOS Next 线下活动小记
3
- date: 2024-04-21T05:58:06.454Z
4
- ---
5
-
6
-
7
- ![54A32E3D-418E-496C-BAC8-1DC951BB8764_1_102_o](https://github.com/metrue/picx-images-hosting/raw/master/54A32E3D-418E-496C-BAC8-1DC951BB8764_1_102_o.2h83p85e3m.webp)
8
-
9
- ## 偶然决定
10
-
11
- 很久都没有参加线下活动了,周末的时间基本上,要么陪小朋友运动,要么陪小朋友写作业或者准备比赛,要么陪夫人练车。很偶然的在朋友圈刷到华为鸿蒙的线下开发者活动,心血来潮就报名了,捡一捡线下开发的感觉,也是一个很好的了解鸿蒙生态的一个机会吧。
12
-
13
- ![Screenshot-2024-04-22-at-10](https://github.com/metrue/picx-images-hosting/raw/master/Screenshot-2024-04-22-at-10.07.27.7awyld9bmx.webp)
14
-
15
- 我甚至都没有详细看活动议程,甚至都没有想过是不是需要做一点准备,而本人也确实没有一点鸿蒙开发的经验,甚至 Android 开发也没有正经弄过,也就是维护两个小 iOS 应用。但是不妨碍我参加一个以鸿蒙为主题的开发者比赛活动呀,没准比赛中可以完成一个最小可用产品,顺利的开启自己的鸿蒙生涯呢。
16
-
17
- ## 活动当天
18
-
19
- ### 早上
20
- 周日和夫人安排好小朋友的学习和活动安排,提醒夫人关注好小朋友的事项安排重点之后,我就出发去活动了,原来活动在徐汇漕河泾的字节办公楼,我从杨浦江湾体育场这边过去,相当于从上海的北边到南边,还是蛮远。想到地铁还要转车,算了咖啡直接打车吧。
21
-
22
- 上了车想到如果要组队,要不就随机叫个朋友一起吧,所以发个消息给 @Chester ,Checster 也很干脆,一起来玩了。等我到场地时候,活动已经开始了,迟到了十几分钟。Chester 比我迟到更多了,我们完全没有注意到活动的议程,其实人家的流程还是紧凑的。
23
-
24
- ![5FAF4CFC-0DE3-4D44-A10A-44B03A134F3C_1_102_o](https://github.com/metrue/picx-images-hosting/raw/master/5FAF4CFC-0DE3-4D44-A10A-44B03A134F3C_1_102_o.1seu57ih4r.webp)
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
- ![9B1AFD7E-A216-4C74-A89F-1C24FBE0064F_1_102_o](https://github.com/metrue/picx-images-hosting/raw/master/9B1AFD7E-A216-4C74-A89F-1C24FBE0064F_1_102_o.45h80rrfe.webp)
169
-
170
- #### 投票和获奖
171
-
172
- 万万没想想到,最后我们获得票数第二名的成绩,当然这也包括我们自己的投票😂,但是很开心,希望我们在后面的六月份的决赛中[^aC5taW5naGVAZ21haWwuY29t-1721555382700],也可以也能收获幸运。
173
-
174
- ![CC35F46A-C5B7-4F35-96E5-7D27B6E52B44_1_102_o](https://github.com/metrue/picx-images-hosting/raw/master/CC35F46A-C5B7-4F35-96E5-7D27B6E52B44_1_102_o.60u1f17vuf.webp)
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
- ![xixiyoyo.jpg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-04-29/1745955855192.jpg?raw=true)
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
- ![tree.jpg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-04-29/1745955819583.jpg?raw=true)
39
-
40
- ### 慕尼黑
41
-
42
- 从柏林到慕尼黑的火车其实还是蛮快,四个多小时,和从北京到上海差不多的时长。车上也可以点咖啡和一些食物,我们吃点零食,喝个咖啡,鞋垫文档,惜惜和佑佑看看书,睡睡觉,很快也就到了慕尼黑.
43
- > 发生了一个小插曲,我买票的时候没有注意自己买的票是二等座,而上车的时候也没有注意自己竟然做的一等座车厢,直到检票人员告诉我才知道。
44
-
45
- 下了火车,我们就直接去坐地铁去酒店了,慕尼黑的公共交通系统似乎比柏林简单一点?而且买票直接就可以在手机上购买,当然也可能是我们慢慢熟悉了,我们在穆尼黑的几天全都乘坐公共交通来进行旅行,S 和 U 的地铁,城市的公共汽车,都很方便。我们房间在酒店的高层,可以看到慕尼黑的夜晚的点点灯光。
46
-
47
- ![IMG_5903.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-05-21/1747859232104.jpeg?raw=true)
48
-
49
- 饱饱的睡了一晚上之后,第二天公交车大谷物市场附近下车,窜梭在谷物市场中,看着卖花,卖食物,卖工艺品的摊铺,阳关也很好,人们都悠闲的吃吃喝喝。我们就慢悠悠的走着,很快就到了玛利亚广场,很巧的时候,正好赶上了早上 11:00 左右的木偶钟表表演,和人群一起观看着木偶表演。
50
-
51
- ![IMG_5930.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-05-21/1747859255454.jpeg?raw=true)
52
-
53
- 下午吃饱喝足了之后,我们简单的看了看慕尼黑市政厅,不过真的没有留下什么特别的印象,之后我们就去参观慕尼黑皇宫了,直接现场购票即可,建议带上语音导览。
54
-
55
- > 在欧洲也去了好多宫殿,博物馆,美术馆等,其实很少看到服务人员是中国人,甚至华人面孔都很少,而慕尼黑皇宫语音导览服务处的两位服务人员是中国同胞,多少还是增加一点熟悉感。
56
-
57
- ![IMG_5955.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-05-21/1747859267584.jpeg?raw=true)
58
-
59
- 整个皇宫参观过程体验很好,人不是那么多,路线设计也很好,整体的建筑,馆内的藏品,家具摆设,在语音导览中都有很好的介绍,而且不是干涩的介绍,有较为详细的背景介绍,所以听起来很轻松和有趣很多,整个过程比我参观马德里皇宫的感受好太多了,而且马德里皇宫我们还是有导游带着的,但是感受却一般, 可能还是当时跟不少人,而且导游的英文和讲故事的方式傻姑娘没有达到预期吧。
60
-
61
- 第三天我们去宝马世界 (BMW World) 和宝马博物馆 (BMW Museum) 参观,各种汽车还是蛮有趣,汽车迷如果到了慕尼黑还是可以去看看的,宝马历史很久,车子很酷。
62
-
63
- > 最近好喜欢 MINI COOPER,希望今年可以开着去旅行.
64
-
65
- ![Screenshot 2025-05-21 at 22.24.07.png](https://github.com/metrue/Cofe/blob/main/assets/images/2025-05-21/1747859282989.png?raw=true)
66
-
67
- 然而这天让我最印象深刻却是英国公园(Englischer Garten), 是德国慕尼黑最著名的城市公园之一,也是在世界上最大的城市公园之一,比纽约的中央公园还大。这是我见过的人最多的公园,我曾经以为其他国家公园再热闹,也一定比不上我们中国的公园热闹。到了慕尼黑的英国公园,我才知道,公园长满人,原来是字面意思的长满人。而且人们真的好Chill。
68
-
69
- 第四天,小红书上之前联系好的小姐姐带我们参观两所德国著名大学:慕尼黑大学和慕尼黑工业大学。有熟人带着游览大学,体验就好很多了,校园走走,介绍一些历史,教学楼参观参观,分享一些趣事,小朋友也喜欢问这问那的,互动参观过程就会好玩一些,可惜惜惜和佑佑走不了太多路,不然可以去更多校区。
70
-
71
- ![IMG_6216.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-05-21/1747859294930.jpeg?raw=true)
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
- ![IMG_7684.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-10-06/1759741751006.jpeg?raw=true)
20
-
21
- 三十几年的人生里,我大部分的时间都觉得自己钉在具体的地方,小时候没有想过我会离开家乡去外地读书,去北京,去上海,工作生活,去年以前没有想过自己会来欧洲工作生活; 最近一年更是越发的想体验世界,抓住小朋友的短假长假,带他们离开熟悉城市和国家,去陌生的地方走一走;甚至当把公开演讲能力训练提高的技术大会分享,也按照国家和城市认真的考虑投稿. 今年伦敦的APIDays和旧金山的GraphQL Summit都很幸运的入选了.
22
-
23
- ![IMG_7663.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-10-06/1759742871999.jpeg?raw=true)
24
-
25
- 第一次来伦敦,也是第一次来英国. 从阿姆斯特丹到伦敦很快,就四十分钟左右到飞机,毕竟隔着一小片海而已嘛.
26
- 入住在 Shoreditch 街附近的酒店,这附近就是伦敦的金融街,或许是大城市的人们的特性,走在这附近的街道,和国内的大城市一样,大多数人的脚步都似乎带着具体的时效目的地,你会在氛围中感受到“着急”. 也许仅仅是这个地方到气氛吧.
27
-
28
- ![IMG_7721.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-10-06/1759741792385.jpeg?raw=true)
29
-
30
- 三天的时间里,由于还要准备自己会议分享,没有办法放开的逛,打算胡乱的到处走走也蛮有意思的,古老和现代混合的建筑,高矮不一,新旧交替,错落无序. 我很喜欢城市里穿过的江河,所以我们一直走到泰晤士河(River Thamwes)边时,看着沿江两岸,晒着暖暖的阳光,迎着河边微凉的风,要是无忧无虑就好了.
31
-
32
- ![IMG_7692.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-10-06/1759742001082.jpeg?raw=true)
33
-
34
- 阴差阳错的我们登上了一个很高的可以俯瞰伦敦城的顶楼观光层,上面还有咖啡提供,人不算多,拍了两张照片也算是小插曲吧.
35
-
36
- ![IMG_7691.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-10-06/1759742426895.jpeg?raw=true)
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
- ![IMG_7124.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757707004060.jpeg?raw=true)
13
-
14
- 来欧洲生活也一年多了,罗马本来是我旅行城市名单的前几个,同时也是儿子心心念念一直想去看一看的城市,小朋友就是这样,看一两本关于某一个城市的书籍或者漫画,就会想去一探究竟.
15
- 由于这样或者那样的原因,一直没有成行,这个夏天终于安排上了.
16
-
17
- 从阿姆斯特丹到罗马,飞行时间两个半小时后,但是天气却差别巨大,阿姆斯特丹几乎整个夏天凉爽宜人,而走出罗马 Fiumicino 机场那一刻,我就知道这几天的旅行一定会汗流浃背的。从机场坐火车到 Termini, 然后坐地铁可以直接到我们的酒店附近。
18
-
19
- 当天下午到了酒店我们放下行李,休息好了之后,我们便出门去逛罗马了, 这次我们选择的酒店就在科尔索大道(Via del Corso)上,就在人民广场(Piazza del Popolo)边上。而且轻松步行可达的景点也很多,威尼斯广场(Piazza Venezia), 许愿池(Trevi Fountain),西班牙广场(Piazza di Spagna), 当然《罗马假日》中浪漫的西班牙阶梯也在那。
20
-
21
- ![IMG_7079.jpg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757710216692.jpg?raw=true)
22
-
23
- 白天虽然很热,晚上去还是舒服的。这天晚上我们把酒店附近的街区和景点都自然而然的走马观花完了。在罗马街头随意的走走,街边的各种奢饰品牌店和古老的历史建筑,多少让我有一种时空错乱的感觉。而身边来来往往的男女老少,东南西北的人,各种各种的语言交杂,怪不得我们会说"条条大路通罗马".
24
-
25
- ![IMG_6816.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757709626143.jpeg?raw=true)
26
-
27
- 饱饱的睡一觉之后,在酒店楼下吃完意大利早餐,就开始了**第二天**的行程是:早上我们去参观罗马斗兽场(Colosseum),下午参观梵蒂冈(Vatican City)。这是我们这次罗马之行做的唯一规划,其他的我们都顺其自然。从酒店去去斗兽场也很方便,有公交车直达,而且公交车可以也可以直接用Apple Pay,很方便。斗兽场排队入场,人很多,不过拍个十分钟也就顺利入场了,很多重要的文物介绍都有中文很英文,所以对于我们来说还是蛮友好。
28
-
29
- ![IMG_6960.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757712159565.jpeg?raw=true)
30
-
31
- > 来到欧洲生活这一年,我最大的感感受就是我的历史(特别是中国之外的历史)知识是那么的缺乏,对于文化的理解是那么肤浅,对于艺术的欣赏能力是那么的匮乏。我们人类的那么的文明成果就在身边,我却看不懂,感受不到它的美和伟大,每当此刻我就觉得很可惜。
32
-
33
- 虽然历史知识欠缺,但是看到从小就在书不断读到的场景,多少还是有点震撼,一千多年前,它的主人和人民在这里角斗娱乐,处决囚犯,狩猎表演展示罗马皇帝的权力和财富时,他们不知道如何想象超越千年之后的现在,我们所处的时代呢。
34
-
35
- ![IMG_6910.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757711422684.jpeg?raw=true)
36
-
37
- 参观完斗兽场,就到了附近的家乐福买了一些饮料,水果和面包当作午餐解决了,附近的餐厅实在是人太多了,而且我们也没有特别想吃正餐的想法,就饱喝足,我们就坐公交去往梵蒂冈了,相隔也不是非常的远,大约半个多小时。
38
-
39
- ![IMG_6999.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757712565490.jpeg?raw=true)
40
-
41
- 虽然我们购买了导游服务,但是小朋友们跟着队伍实在有点吃不消,而且讲解他们也没有什么兴趣听,所以我们跟着走了十分钟就放弃了。梵蒂冈真的需要作一些功课然后才过来参观,体感会好很多,如果历史和宗教知识都非常浅薄的话,只能像我一下,半个月之后,记忆中只剩下:馆内静谧的花园以及玄妙的旋转楼梯了.
42
-
43
- ![IMG_6969.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757712192780.jpeg?raw=true)
44
-
45
- ![IMG_7017.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757712512938.jpeg?raw=true)
46
-
47
- 由于前一天我们走的确实有点多,**第三天**我们很明智的选择了 Big Bus Tour, 这是我第一次在做观光大巴,以前在上海生活的时候,我就好多次都想坐外滩的观光大巴,就是想体验坐在大巴顶层,带着语音耳机,看着城市,流过各个历史地点的感觉。罗马的观光大巴的路线基本上把整个罗马城的各大景点都涵盖了,你可以一直坐在上面,也可以在你感兴趣的地点下车参观,然后再上车。
48
-
49
- ![IMG_7040.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757713047174.jpeg?raw=true)
50
-
51
- 惜惜和佑佑都很喜欢这种旅行观览方式,惜惜这个"社牛"当然不太可能在车上安静的听导览和看风景,很快就和后座的金发小姐姐相谈甚欢,连人家后面几天的行程都了解清楚了。观光大巴是环线运行,一圈下来大约一个来小时(如果没有记错的话),我们第一圈下来大约知道所有的经停景点,第二圈小朋友们困觉一会,然后就在博尔盖塞公园(Villa Borghese)附近下车,然后去公园走一走,公园很大也很美。
52
-
53
- ![IMG_7131.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757713422587.jpeg?raw=true)
54
-
55
- 晚上我们去吃了 Termini 附近的一家中餐,很好吃。**最后一天**因为航班是在下午比较晚的时间,所以我们就把行李寄放在酒店,然后早上沿着人民广场边上的台阶爬了一座小山,早上很凉爽,爬上了 Pincio 观景台,在街头艺术家演奏的小提琴声中,俯瞰罗马城,心情很舒畅。
56
-
57
- ![IMG_7115.jpeg](https://github.com/metrue/Cofe/blob/main/assets/images/2025-09-12/1757714394242.jpeg?raw=true)
58
-
59
- 租个两脚蹬车,然后和小朋友一起在公园骑行,然后在博尔盖塞公园里,走了很长很长的路,直到我们离开罗马的航班时间临近。