In a 2017 VS Code issue, someone described clicking Discard Changes after seeing roughly five thousand files in the Source Control view. They said the action removed their files, including work they could not find in the Recycle Bin. A screenshot of the issue circulated again, this time described as a pull request. It…
阅读全文Rotary Position Embedding, usually called RoPE, is one of the most common positional encoding methods in modern decoder-only language models. It appears in models such as LLaMA and many of its descendants, and it is also the positional encoding used in CS336 Assignment 1. RoPE is often introduced with one sentence: rot…
阅读全文Stanford CS336 Assignment 1 is titled Building a Transformer LM. It covers the main ideas behind a decoder-only language model: BPE tokenization, Transformer architecture, cross-entropy, SGD, AdamW, learning-rate schedules, gradient clipping, and decoding with temperature and top-p sampling. This post is not a line-by-…
阅读全文Discriminative Model: Learns the conditional probability $p(y|x)$. It focuses on predicting a label $y$ given the input data $x$. Generative Model: Learns the probability distribution of the data itself, $p(x)$. Conditional Generative Model: Learns the probability $p(x|y)$, which is the likelihood of observing specific…
阅读全文With self-supervised learning, we can train neural networks without the need for manually labelled datasets. Basics We define a pretext task based on the data itself. It does not require manual annotation. The labels/outputs are automatically generated from the data. We train an encoder from them to get the learned rep…
阅读全文GPUs Modern AI training is structured as a hierarchy: individual GPUs (or TPUs) sit inside servers, servers are grouped into pods, pods into racks, and racks form a cluster. Instead of training on a single machine, large neural networks are distributed across this entire cluster, which effectively acts as one coordinat…
阅读全文在機器學習問題中,模型訓練的核心是梯度下降: 計算損失函數(Loss Function) 計算損失對參數的導數(Gradient) 根據梯度更新參數 重復直到收斂 我們需要找到一個高效的梯度計算方法。 幾種梯度計算方法 梯度計算方法包括:數值微分、符號微分、自動微分 1. 數值微分 數值微分的基本思想,是使用一個非常小的 $h$ 去近似計算。 \frac{df}{dx} \approx \frac{f(x+h) - f(x)}{h} 但是,這種計算方法存在舍入誤差,而且計算復雜度高。 如果我們有 $n$ 個參數,需要執行 $O(n)$ 次函數計算。在參數量達百萬級的神經網絡中,這種計算成本是不可接受的。 2. 符號微分 符號微分的思…
阅读全文Natural Language Processing has undergone a massive evolution in recent years. To understand state-of-the-art models, we first need to look back at how we used to process sequences and the critical bottleneck that led to the invention of Attention. The Foundation: Seq2Seq with RNNs In traditional Sequence-to-Sequence (…
阅读全文
09Recurrent Neural Networks (RNNs) are a class of neural networks designed to handle sequential data. Unlike standard feedforward networks, RNNs maintain an internal state (memory) that is updated as each element of a sequence is processed, allowing information to persist across time steps. Sequence Architectures RNNs ar…
阅读全文Batch normalization and layer normalization improve training stability and reduce sensitivity to initialization by normalizing intermediate activations. When training a deep neural network, the distribution of inputs to each layer can change as the network’s weights are updated. If the weights become too large, the inp…
阅读全文
11In this note, we will continue discussing CNNs. Normalization Layers Normalization layers standardize activations and then apply a learned scale and shift: \hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}, \quad y = \gamma \hat{x} + \beta The difference between methods is which dimensions are used to compute $\mu$…
阅读全文These CS231n Lecture 5 notes explain how convolutional neural networks (CNNs) turn image pixels into feature maps, and how padding, stride, and pooling change their dimensions. When images get really large, we would have too many neurons to train in a regular neural network. The full connectivity is wasteful and the hu…
阅读全文
13If you are diving into the mechanics of neural networks, you will inevitably encounter the backpropagation of the Softmax and Cross-Entropy loss. At first glance, the matrix calculus can feel a bit intimidating. However, once you break it down step-by-step using the chain rule, you will discover that the final gradient…
阅读全文The primary goal of backpropagation is to calculate the partial derivatives of the cost function $C$ with respect to every weight $\mathbf{W}$ and bias $\mathbf{b}$ in the network. 1. Notation (Matrix Form) To facilitate a clean derivation using matrix calculus, we adopt the following conventions: $\mathbf{a}^l$: Activ…
阅读全文Here we are introducing Neural Networks and Backpropagation. Neural Networks We will start with a 2-layer example: f = W_2 \max(0, W_1 x)x \in \mathbb{R}^D, W_1 \in \mathbb{R}^{H \times D}, W_2 \in \mathbb{R}^{C \times H} The $max$ here creates some non-linearity between $W1$ and $W2$. It is called the activation funct…
阅读全文With the score function and the loss function, now we focus on how we minimize the loss. Optimization is the process of finding the set of parameters $W$ that minimize the loss function. Strategy #1: A first very bad idea solution: Random search Core idea: iterative refinement Strategy #2: Follow the slope In 1-dimensi…
阅读全文With the disadvantages of the KNN algorithm, we need to come up with a more powerful approach. The new approach will have two major components: a score function that maps the raw data to class scores, and a loss function that quantifies the agreement between the predicted scores and the ground truth labels. Score Funct…
阅读全文
18Image Classification Task: assigning an input image one label from a fixed set of categories Images are defined as tensors of integers between [0,255], e.g. 800 x 600 x 3 Challenges: Viewpoint variation Scale variation Deformation Occlusion Illumination conditions Background clutter Intra-class variation A good image c…
阅读全文
19In this part of the Cache Lab, the mission is simple yet devious: optimize matrix transposition for three specific sizes: 32x32, 64x64, and 61x67. Our primary enemy? Cache misses. Matrix Transposition A standard transposition swaps rows and columns directly: 1 2 3 4 5 6 7 8 9 10 11 12 void trans(int M, int N, int A[N][…
阅读全文For the CSAPP Cache Lab, the students are asked to write a small C program (200~300 lines) that simulates a cache memory. The full code is here on GitHub. Understanding a Cache 1. The Anatomy of a Cache ($S$, $E$, $B$, $m$) A cache can be described with the following four parameters: $S = 2^s$ (Cache Sets): The cache i…
阅读全文Here are the notes for CS188 Local Search. Local Search algorithms allow us to find local maxima or minima to find a configuration that satisfies some constraints or optimizes some objective function. Hill-Climbing Search The hill-climbing search algorithm (or steepest-ascent) moves from the current state towards the n…
阅读全文
22Here are the lecture notes for UC Berkeley CS188 Lecture 3. Heuristics Heuristics are estimates of distance to goal states. Heuristics are typically solutions to relaxed problems (where some of the constraints of the original problem have been removed). With heuristics, it becomes very easy to implement logic in our ag…
阅读全文If you are a developer or power user on a Mac, you probably type your password into the terminal dozens of times a day using sudo. If your Mac has a TouchID sensor, you can save time and keystrokes by configuring your terminal to accept your fingerprint instead of your password. Here is a quick guide on how to set it u…
阅读全文
24Here are the lecture notes for UC Berkeley CS188 Lecture 1 and 2. Agents The central problem of AI is to create a rational agent. A rational agent is an entity that has goals or preferences and tries to perform a series of actions that yield the best/optimal expected outcome given these goals. The agent exists in an en…
阅读全文
25前幾天才猛然驚覺,按照慣例,是時候寫年終總結了。盯著白花花的螢幕,半天拼湊不出一句話。似乎 2025 是注定被遺忘的一年。 既然這是難以回憶難以定義的一年,不如我們留白。 歲末 有一位詩人寫過一首詩。我把它原封不動摘錄在這裡。 從一年的開始到終結 我走了多年 讓歲月彎成了弓 到處是退休者的鞋 私人的塵土 公共的垃圾 這是並不重要的一年 鐵錘閒著,而我 向以後的日子借光 瞥見一把白金尺 在鐵砧上 北島 夢 十一月,似乎記得做過一個夢。 一束刺眼的強光,手術台般,直射頭頂,似乎要剝離我的靈魂。流水線廠房裡,只能聽到工業巨獸的咆哮,什麼也聽不見。感官被屏蔽了。等到我恢復知覺,肉體已隨著傳送帶前行。傳送帶的盡頭是什麼?前方是絕對的虛無。什麼…
阅读全文做完了 CSAPP Bomb Lab,寫一篇解析。 題目要求 運行一個二進制文件 bomb,它包括六個”階段(phase)”,每個階段要求學生通過 stdin 輸入一個特定的字串。如果輸入了預期的字串,那麼該階段被”拆除”,進入下一個階段,直到所有炸彈被成功”拆除”。否則,炸彈就會”爆炸”,列印出”BOOM!!!” 環境 這個系統是在 x86_64 Linux 上運行的,而筆者的環境是 ARM 架構的 macOS (Apple Silicon)。 弄了半天 docker,虛擬化一個 x86_64 Ubuntu 出來,結果裡面的 gdb 不能用,不想折騰。 發現 educoder 上面有環境,可以直接用,而且免費,於是就在 educo…
阅读全文本文匯總 x64 架構下最核心的暫存器狀態與 ABI 約定。 暫存器 x64 暫存器完美向下相容。寫入低 32 位 (如 MOV EAX, 1) 會自動清零高 32 位;但寫入 8/16 位則保留高位數據。 通用暫存器 (GPRs) 速查表 64-bit32-bit16-bit8-bit用途 (System V / 通用)易失性 RAXEAXAXAL返回值 / 累加器Caller Saved RBXEBXBXBL基址 / 通用數據Callee Saved RCXECXCXCL循環計數 / 第4參數Caller Saved RDXEDXDXDLI/O / 乘除法 / 第3參數Caller Saved RSIESISISIL源地址 /…
阅读全文前一段時間做完了 CSAPP 的第一個 Lab,寫一篇總結。(其實這篇文章拖了很久) CS:APP Data Lab 旨在通過一系列位操作謎題,訓練對整數和浮點數底層表示(特別是補碼和 IEEE 754 標準)的理解。要求在嚴格限制的操作符和操作數數量下,實現特定的數學或邏輯功能。 函數名 (Name)描述 (Description)難度 (Rating)最大操作數 (Max ops) bitXor(x, y)只使用 & 和 ~ 實現 x ^ y (異或)。114 tmin()返回最小的補碼整數 (Two’s complement integer)。14 isTmax(x)僅當 x 是最大的補碼整數時返回 True。110…
阅读全文矩陣的 QR 分解在電腦運算中可能造成誤差,本文探討一下一種改進版本的 Gram-Schmidt 正交化方法。 經典的 Gram-Schmidt 方法可能造成數值不穩定性。在電腦中,舍入誤差可能會累積,造成得到的正交基並不具有正交性。 經典的 Gram-Schmidt 我們先來回顧一下經典的 Gram-Schmidt 方法: 1 2 3 4 5 6 for j = 1 : n v_j = x_j for k = 1 : j - 1 v_j = v_j - ( (v_k^T x_j) / (v_k^T v_k) ) * v_k endfor endfor 最終我們將 $v_j$ 歸一化得到標準正交基 $q_j = (v_j)/(| v…
阅读全文掩碼 (Mask) 是一種位運算技巧,它使用一個特定的值(掩碼)與目標值進行 $\mathtt{\&}$ (與)、$\mathtt{|}$ (或)、$\mathtt{\wedge}$ (異或) 運算,以精確地、批次地操作、提取或檢查目標值中的一個或多個位。 基本概念 掩碼利用位運算的特性,透過設定掩碼中的特定位為 1 或 0,來控制目標值中對應位的行為。 具體來說,掩碼可以用來提取某些位的值,清除某些位的值,反轉某些位的值,或者設定某些位的值。 提取位 透過與運算($\mathtt{\&}$)和一個掩碼,可以提取目標值中特定位置的位。例如,假設我們有一個 8 位的二進位制數 10101100,我們想提取其中的第 3…
阅读全文在做 CSAPP Data Lab 的時候,關於整數溢位,遇到一些問題。 題幹 1 2 3 4 5 6 7 8 9 10 11 /* * isTmax - returns 1 if x is the maximum, two's complement number, * and 0 otherwise * Legal ops: ! ~ & ^ | + * Max ops: 10 * Rating: 1 */ int isTmax(int x) { return 2; } 題目要求,僅僅使用運算子 ! ~ & ^ | + 來判斷一個數是否是最大的二的補碼(int 範圍內),即 0x7fffffff。如果是,輸出 1;否…
阅读全文最近在複習資料結構與演算法,聊聊快速排序的幾種劃分演算法。 快速排序思路 快速排序是一種基於分治策略的排序演算法。 對於待排序陣列,其核心操作是: 選取一個基準數pivot 將陣列分為兩塊,一塊小於等於基準數,另一塊大於等於基準數(注意 基準數作為分界點) 遞迴地對於分出來的兩個數字再次進行快速排序 不斷地進行劃分,遞迴,最後能保證整個陣列有序。 基準數的選取 一般來說,基準數有幾種選取方法: 選取第一個數或者最後一個數:這樣做,如果陣列已經排好序,則每次劃分都是基準數和剩餘數,時間複雜度升至O(n^2) 隨機選擇一個數 選取中位數:這樣做始終能對原陣列進行等分,尋找中位數是線性時間的。 下面以最無腦的方法1為例。 幾種劃分方法 主…
阅读全文此生此夜不長好,明月明年何處看? 雨巷獨行,秉燭對月。我走遍了整座城市,卻再也找不到那個獨特的角落。或許只是那盞燈或那半掩的門扉,在人生之中卻像風暴裡海上的信標,似這江南春雨中雲霧朦朧處,簷下的紙燈。舊夢重溫,幼時在夏日熟睡,蟬鳴聒噪,也第一次為我定義了等待的焦慮。吊扇之下徘徊的影,是否還停留在多年前原地踟躕。這種焦慮如影隨形,如何能擺脫呢? 紀念我的第一次等待,或許也是一切不幸的開始。手術室的無影燈下,護士讓我在門口先坐著等候。手術檯上是誰?高臺之上,一個迷茫的影。望不見,只感覺平靜,右手的暗痛,倉促奔走多時後的終點。手術室。幾分鐘前在門外稱重,一小時前乘汽車到來。回憶與夢夾雜。什麼時候開始?你從一數到一百吧。那護士肯定覺得我不會…
阅读全文憶起一場夢 太累了 寫得很爛 使用 DeepSeek 處理文章中的一些重複的段落 青石階蜿蜒向上,盡頭處懸著座褪色的廟宇。香火薰染的簷角垂著銅鈴,風起時聲響像隔世的嘆息。你隨人潮挪動腳步,鞋底碾碎階縫裡冒出的野蕨,一千零一個背影在你前方搖晃,恍若黃泉路上執傘的魂靈。 排隊的過程中,有人給你講起民間神話地方傳說,談天說地。從子夜飲沆瀣,至天明,山霧濡溼睫毛,長庚星與殘月相望,你忽然記不起為何在此。你好像失去了感知。你不關心周圍發生什麼。你只是等待。你不知道你在等待什麼,但是既然有等待的意義,那或許是有益的吧,這你倒是相信,你在等待什麼?你不知道?你還真不知道。那你為什麼要等?別問。你幻想到達之後的場景,腦海中醞釀一切計劃,那跨過褪色門…
阅读全文你乘火車回到故鄉。 車廂裡昏暗的燈光,顫抖著拼寫出別離的感傷。窗外是多少山川歲月。傾倒的電線杆,望不到盡頭的平原,水壩,大江東去,沿著車門一直伸展向世界的盡頭。你所知道的只有這窗外的世界。多少片雪花落下,你不知道。你只知道故鄉只存在於記憶深處,只在夢中重現。你只知道夢中有村莊,有微笑,有炊煙冉冉升起。都消散在風雨之中。 他在多媒體螢幕上點開下一部電影。數十小時的睏倦從指尖生長到全身上下的每一根神經。惶恐在太平洋上空盤旋。為什麼不承認錯誤?為什麼匆匆下結論?什麼也不懂。他想起午夜登山,山間的雲氣,霧裡望月,日出,寒冷潮溼。手腳麻木,如浸溼在風雨裡。他還是害怕。雲間的那束暗紅色的光,在飛機窗外跳躍閃爍,令人膽寒。 你在終點站前的車站下車…
阅读全文紀念一段往事 橋樑 / 小滿 2024.2.1 於北京 白塔之上 寒鴉拼湊夜空 首都地鐵四號線 匆匆駛向終點 是否通往明天的美夢 橋樑之下 雪與風相伴行走 惶恐化身暮靄 使落木飄零,放逐 來自幻想的春天 冰和天空銜接 聯結了曉風殘月與 昨夜的決絕 深秋的紅葉終究飄向 冬天 記憶氾濫,凝固 月光沒能到達目的地 而是灼燒 盈虧之間的傷痕 橋樑糾結,坍塌 海風將它托起 帶回撿拾泡沫的沙灘 那日 踟躕的光線 把夕陽和頭髮 攪成了一團 我總企盼有人重建橋樑 寫給恍惚中度過的寒冷的秋冬
阅读全文舊詩一首 淺灘上 一群猴子說教 太陽未生的角落 玻璃杯破碎 火球燃燒 門外守著 枯萎的向日葵 熟稔的幽谷 光在其中窒息 然後 我嗅到了炊煙 黎明未造訪的人間 雞鳴、柴香中的生活 人在其中重生 停電的山村迴歸原始 黑夜吞噬 一盆熱汽和滾燙的水 卻是思鄉的罪因 你說:一切往事都在夢中 幻影中 我聽見—— 摩托和戒尺 喧譁的收音機 黎明在流血 傷痕滾燙 淌著東方的雲 可我卻期待黎明殞命: 獻祭給了今天 才有明天 小滿 2024/1/23 夜
阅读全文獻給 2024,和夢中的水鄉。 2024年的盡頭,希望寫下這些文字,腦海中卻是虛空,難以回想起2024年發生的一切。這一年,太多變化,太多茫然,太多草率。選擇總是覺得被動,在一個個被動的選擇中拼湊出的2024。又想起上半年水鄉中做的一場幽夢,階前點滴的細雨,一直飄到2025的黎明。 那是夢中的水鄉,細雨中,趕向最後一班烏篷。水檻中平臥聽雨,憑欄遠眺千年前流淌而至的京杭運河,卻難以遣心。夢來的太恍惚,恍惚到2024年就如斜陽中彷徨的曲巷,猛然驚醒,才發覺這似夢非夢的都是真實的昨日。 不願在水鄉的幻想中迷失。一場雨下了三百六十五個日夜。向前,左轉,再左轉,右轉,左轉……小巷石磚,經受過多少年雨水。來不及撐起油紙素傘,也等不得細細品味這水…
阅读全文太陽 請給冬日動人的悲憫 你是空有光明的夜燈 無力帶給寒天一絲暖意 太陽 請把生命留在白晝 你是將遭審判的囚徒 決絕將赴星月的刑場 太陽,偉大的事業未竟 你曾搏擊北風,怒斥冬的不公 你曾笑對雪花妖冶的輕蔑 你是荒嶺上的黃花 註定你的努力不合時宜 我在太陽中看見了我的生命 吶喊,口旁升騰的霧氣 是傳書於你的白鴿 聆聽我的呼喚,太陽 我心意已決 請與我在海邊坐待潮落
阅读全文浪宣告朗,日光下, 我試著抓住大海 —— 它 卻後退,化身成點點泡沫。 2023.8.10 《泡沫》 從夜夢中驚醒,已是黃昏。昨夜暖風似酒,酒醒時暮靄酡紅。踏上駛向未知的火車,身後,殘陽血濺寒天。瞭望窗外,時間向後劃去似溢彩流光,在這光影之中,我看見了我的即將湮滅在過往的深夜裡的2023。 2023,用一整年時間,獨立海邊,用一顆石子擊打浪花,用一雙手企圖留住海潮。海風是一位吟遊詩人,奔走四方,帶來大海另一邊的不同時空的故事——時空錯亂,吟唱中我心漸靜,雙手空空。竭盡全力,撲向大海,攥住浪花——斜陽下,徒然攥住一手細沙,日光卻告訴我這是黃金。海波泛起銀光,似星海盪漾、轉動,卻從不能裝進口袋,帶進我的生活。 可是我仍矢志不渝,在海邊,…
阅读全文題目連結 題面 題目描述 Caima 王國中有一個奇怪的監獄,這個監獄一共有 $P$ 個牢房,這些牢房一字排開,第 $i$ 個緊挨著第 $i+1$ 個(最後一個除外)。現在正好牢房是滿的。 上級下發了一個釋放名單,要求每天釋放名單上的一個人。這可把看守們嚇得不輕,因為看守們知道,現在牢房中的 $P$ 個人,可以相互之間傳話。如果某個人離開了,那麼原來和這個人能說上話的人,都會很氣憤,導致他們那天會一直大吼大叫,搞得看守很頭疼。如果給這些要發火的人吃上肉,他們就會安靜點。 輸入格式 第一行兩個整數 $P$ 和 $Q$,$Q$ 表示釋放名單上的人數; 第二行 $Q$ 個整數,表示要釋放哪些人,保證按遞增的順序給出。 輸出格式 僅一行,表…
阅读全文題目連結:P5888 題面 題目背景 羊城有善蹴鞠者。會足協之杯,於校園之東北角,施兩球場,蹴鞠者站球場中,$n$ 人,一球,二門,三裁判而已。觀眾團坐。少傾,但聞球場中哨聲一響,滿坐寂然,無敢譁者。 當是時,傳球聲,微微風聲,隊員疾跑聲,教練呼喊聲,拉拉隊助威聲,一時齊發,眾妙畢備。滿場觀眾無不伸頸,側目,微笑,默嘆,以為妙絕。 未幾,我球員施一長傳,彼球員截之,望我龍門衝來。 但見守門員 oql 立於門,若有所思—— 題目描述 原來他在想這麼一個問題: 場上的 $n$ 個球員圍成一圈,編號從 $1$ 到 $n$ ,剛開始球在 $1$ 號球員手中。一共 $m$ 次傳球,每次傳球必須傳給一個人,但不能傳到自己手中。求第 $m$ 次傳…
阅读全文“我的生命將是大海。” 青島車站,至今仍然保留著殖民地時期的風貌。磚紅色的屋頂,靜立在月色海風中,沉醉在浪濤的朦朧樂聲中——那是不遠處棧橋邊的大海。候車大廳靜悄悄,耳畔不時傳來廣播的聲響,也似輕煙一般飄渺,混雜著些泡麵佐料的濃香,浮向大廳的遠處。 這便是作別的日子,而這樣的日子卻總是意猶未盡。手指摩擦、轉動手中返程的車票,不時看向手錶上的時間——啟程還有一個半小時。總覺得少了點什麼,於是跑向車站內的小店,又空手而歸。大海,是大海,作別大海,託付給她的不安被打包返還。 那天清晨的細雨空濛,風卻險些從我手中奪過那把隨我走遍江南的雨傘。在濱海棧道上行走,新鮮的雨水混著海草的腥味,這是大海的饋贈,喚醒還未完全甦醒的我的靈魂。道旁的樹用綠葉為…
阅读全文懶得寫簡介,你們自己點進去看 doge 初秋的幽風再不能喚醒, 心中將乾涸的冰流, 直到那西湖——野徑清夜的迴風 舞雪在我心中翩躚。 煙霞嶺的桂香, 飄向幽谷和雪巘, 平湖秋月和斷橋殘雪。 蘇子愀然對月, 卻在惠州再會了蘇堤—— 玩月,豐、平二湖。 春曉,此心安處是吾鄉? 再會,上海的南京路, 一年前初秋的暖夜, 我曾如御西風, 也學那道家列子 ——大都會的夜不眠。 再會,當我發覺那將逝的、已逝的, 天下的美好,絕不能 再喚起我心中一絲快慰。 棧橋上殘陽似火,我的生命在海浪、 在驟風細雨中熊熊燃燒: 生的火焰、死的火焰、 溝口的金閣寺的火焰。 再會,認真地, 再會,我親愛的朋友和敵人, 素昧平生的人。 殘酷的祛魅,意義的失去。 如今…
阅读全文《飢餓表演藝術家》是卡夫卡曾計劃印刷的短篇故事合集,他死後才出版。其中與合集同名的小說,也是最受他珍重的幾個短篇小說之一。 故事情節大致如下: 多年前流行著一種飢餓藝術,人們爭著來觀看。飢餓藝術家往往為了藝術的榮譽感,自覺不去進食,而公眾卻會推選看守人員,看守人員也有意給他留空能偷偷吃東西。藝術家表現出自己捱餓的能力,希望消除人們的懷疑,可總有人不以為然。飢餓表演往往40天就結束,是為了能夠保障收入最大化。經理會表現出對藝術家的讚歎,那至高無上的榮譽,人們的歡呼迎接,藝術家是不以為然的。那一切狂歡都是為了經理的營收。飢餓藝術家希望再餓一會,挑戰極限。經理用各種解釋和照片,使公眾相信他的一套說辭。公眾或許憐憫,或許懷疑,把藝術家當作江…
阅读全文最近要用 Python 做一些小專案,記錄一些學習心得。以及這個部落格再不更新技術文章,就變成文學部落格了,顯然和初衷相違背() zip() zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的物件。 1 2 3 4 5 6 7 8 >>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> c = [4, 5, 6] >>> zipped = zip(a, b, c) >>> zipped >>> list(zipped) [(1, 4, 4), (2,…
阅读全文只恨一切都成了泡沫…… 浪宣告朗,日光下, 我試著抓住大海——它 卻後退,化身成點點泡沫。 海波泛起星光閃爍, 如秋波傳情勾起那些緬邈之懷。 這次,要抓牢—— 海無情,夕有情, 斜陽下,攥住一手細沙,金黃。 奔走,奔走,向大海, 跟隨泡沫的蹤跡。 前行,浪宣告朗, 拽住浪花似TA的衣袖, 只恨,跌倒,潮退, 失去。 迷茫。 泡沫,泡沫, 如今我兩手空空。 “雖不能至,然心嚮往之。” 或許會隨波流浪, 去大海深處, 去尋覓你, 尋覓浪聲依舊。
阅读全文“救救孩子……” 漸弱的呼喊,魯迅在狂人的絕望中收束全篇。這種無力卻格外讓人感覺似有一股刺骨之寒,或能於鐵屋中驚起更多較清醒的“不幸者”。 鐵屋中覺醒 魯迅“到N進K學堂“,研習格致、算學之類。眼界開闊了,方才醒悟中醫或許並非治人之病的良方,而還有更多像他的父親一樣得不到科學的治療的國人。於是他赴日留學,專攻醫術。某日,他觀看的日俄戰爭的影片中,同樣是中國人,“一個綁在中間,許多站在左右,一樣是強壯的體格,而顯出麻木的神情。”“據解說,綁著的是替俄國做了軍事上的偵探,正要被日軍砍下頭顱來示眾,而圍著的便是來賞鑑這示眾的盛舉的人們。“人們歡呼。在中國,日俄的衝突而被日本人斬首示眾的中國人,中國人在旁觀,中國人在高呼”萬歲“。魯迅心中震…
阅读全文好久不見啊! 古羅馬的鬥獸場,數千年矗立在地中海沿岸的小城。濛濛細雨,如遊絲,洗濯時間長河中穿梭著的風塵僕僕的旅客。 或許想起在煙雨江南,於靉靆之下縵立,遠眺城牆之外。人們總是刻意忽視時間,以為出了這城便是鄉。城門啟,誰知,還鄉,物是人非。 鄉愁,一如浪潮襲擊海邊的漁村,無情地將我拽入不見底的深淵,黑暗的虛空。一說是時間的鄉愁,想念幼時河邊遊遺失的安心。山腳下的村莊飄來了裊裊炊煙,鄉間蒸飯和熱油下鍋的氣息,勾引我千里之外的魂魄。記憶中我還是個孩童,手握竹竿,站立在山間公路的轉角。山路十八彎,那就是我的故鄉。 外婆怎麼還沒有喊我回去吃飯?外公怎麼沒有騎著摩托從水電站回來?記得那時深夜,轟鳴聲悠長,打破夏日鳴蟬。空氣中凝固的不安的氣息解…
阅读全文秋潮漲落, 在那心的橋樑。 彼岸還有草露甘香。 春泥, 是明天的味道。 明天?回答今日的困惑—— 海的女兒, 帶來獨木扁舟, 和那風的號角。 淺灘上, 思緒是雨燕, 盤旋徘徊在碧海青天。 飛去!遠行! 散不去的是層霧迷濛。 潮起,潮落, 潮水在我腦海的淺灘起落。 潮水啊,何時平息在大海的盡頭? ——大海一刻不停,在歡唱: “生生不息……“ 秋潮帶走了我, 淺灘上, 我還是我的我, 我的生命將是大海。
阅读全文