東北大學編程教育改革 | 將瀏覽器變成 Neovim | 專為 Vision Pro 設計的 3D 攝像機 | 向量數據庫 UI
Firenvim – 將瀏覽器變成 Neovim 客戶端
https://github.com/glacambre/firenvim
Firenvim 是一個瀏覽器擴展,可以讓你在瀏覽器中使用 Neovim 編輯文本區域。支持 Firefox 和 Chrome 瀏覽器,其他基于 Chromium 的瀏覽器(如 Brave、Vivaldi、Opera 和 Arc)也應該可以使用,但未經過官方測試。。
安裝 Firenvim 后,只需點擊任何文本區域,它就會立即被 Firenvim 替換。你可以像在 Neovim 中一樣編輯文本,保存內容只需在 Neovim 中輸入 :w,關閉 Firenvim 覆蓋并返回文本區域則使用 :q。如果選擇的元素沒有顯示 Firenvim 框架,嘗試按下 Ctrl + Shift + F。
Firenvim 提供了許多配置選項,可以在 init.lua 中設置。例如,你可以配置 Firenvim 自動接管哪些網站的文本區域,設置命令行的顯示方式,以及如何處理特殊字符等。此外,還可以通過 UIEnter 和 UILeave 自動命令檢測 Firenvim 是否連接到 Neovim 實例。
評論(如有):
- 網友 mastermedo:我嘗試過幾次 Firenvim,但遇到了與其他擴展(如 Vimium)的快捷鍵沖突問題,以及在大多數文本提示框中 Firenvim 占用空間太小的問題。雖然理論上可以復制粘貼 Neovim 配置,但適用于終端的配置并不一定適合瀏覽器中的小文本區域。
- 網友 MantisShrimp90:對于需要在應用生態系統內編輯代碼的情況,Firenvim 非常有用。例如,ServiceNow 強制使用其糟糕的專有編輯器,而 Firenvim 可以提供更好的編輯體驗。不過,需要謹慎配置哪些網站啟用 Firenvim,以免在每個小文本提示框中都激活它。
- 網友 jeroenhd:盡管 Firenvim 很強大,但其安全風險讓我望而卻步。理想情況下,有人可以將 Neovim 編譯成 WebAssembly,這樣就可以在不與任何本地二進制文件交互的情況下使用,雖然會犧牲一些性能和功能。
- 網友 yonrg:Tridactyl 也有類似的功能,可以將編輯面板內容拆分到真實的 Vim 或 gVim 編輯器中。我很少使用這個功能,通常只在需要多行注釋時才會用到。對于簡單的文本輸入,我還是更喜歡留在瀏覽器界面中。
- 網友 eviks:GhostText 是一個類似的擴展,使用外部文本編輯器,特別適合短消息。即使瀏覽器或擴展崩潰,也不會丟失寶貴的數據。對于較長的文本消息,也不受制于通常較小的輸入文本框。
Blackmagic 推出 3D 攝像機 URSA Cine Immersive,專為 Vision Pro 設計
https://www.macrumors.com/2024/12/16/black-magic-3d-vision-pro-camera/
Blackmagic 今日宣布其 URSA Cine Immersive 攝像機現已開放預購,預計將于 2025 年第一季度末開始交付。這款攝像機是全球首款專為 Apple Vision Pro 設計的商業 3D 攝像系統,售價為 30,000 美元。
URSA Cine Immersive 攝像機配備了定制的立體 3D 鏡頭系統和雙 8K 傳感器,能夠捕捉 180 度視野的 3D 視頻,并支持空間音頻,最高幀率為 90fps。每只眼睛的分辨率高達 8,160 x 7,200,動態范圍達到 16 擋,確保每一幀的細節和色彩準確性。攝像機還配備了兩個 5 英寸 HDR 觸摸屏和一個外部顏色狀態 LCD 屏幕,提供多種連接選項,包括 12G-SDI 輸出、10G 以太網、USB-C 和 XLR 音頻端口,以及 8 針 Lemo 連接器用于供電。
內置的 8TB Blackmagic Media Module 可存儲約兩小時的 8K 立體視頻,支持 Blackmagic RAW 格式,并且支持 Cloud Store 快速媒體上傳和同步。
評論(如有):
- 網友 LaSombra:黑魔官網的公告中甚至沒有提到 Vision Pro,只提到了一次 Apple。
- 網友 paxys:有多少電影制作人會花費 30,000 美元拍攝僅適用于單個平臺的視頻,尤其是這個平臺幾乎沒人用?至少他們應該放棄專有格式,支持 Quest 和其他頭顯。
- 網友 oDot:我研究過實拍動漫,這款攝像機看起來真的很酷,特別是如果可以精細控制每個傳感器,甚至更換鏡頭(無論是官方支持還是非官方支持)。動漫的優勢在于逐幀繪制,因此可以在動作密集的場景中“更換”鏡頭。使用這款攝像機可以同時拍攝兩種不同的設置,實現類似的效果。
- 網友 brabel:90 年代末有一部電影,講述了一種神經設備可以記錄大腦活動,以便后來的人通過設備重播這些體驗。但這種體驗變得像毒品一樣讓人上癮,人們無法停止體驗他人的虛擬經歷。有人知道這部電影是什么嗎?
- 網友 throwaway48476:他們賣出了多少 Vision Pro?還有多少人在使用?
- 網友 TheAceOfHearts:有沒有人在專門為 Vision Pro 制作電影?雖然 Apple 可以贊助一些影片來充實他們的內容庫,但對于創作者來說,潛在觀眾太少了,顯得不太吸引人。不過,如果 Vision Pro 用戶是你想要的目標受眾,這可能是個不錯的選擇。這些用戶可能會對專門為其平臺制作的內容感興趣并愿意購買。
- 網友 OliverGuy:8TB 存儲兩小時的 8K 立體視頻,這對任何編輯來說都是一個巨大的工作流程挑戰,即使按照今天的標準來看,這也是一個不小的數據量。
- 網友 ulfw:哈哈,這真是小眾中的小眾中的小眾。這款攝像機的預期銷量會有多少?兩位數?個位數?
- 網友 freedomben:很酷!但我真心希望它不使用某種僅限 Apple 設備的專有格式。
東北大學的編程教育革命:系統化設計與團隊合作
https://felleisen.org/matthias/Thoughts/Developing_Developers.html
東北大學計算機科學系在過去的 12 年里,開發了一種獨特的編程教學方法,強調系統化和顯式化的程序設計。這種方法不僅幫助學生更好地準備他們的第一份編程工作,還為他們未來的職業發展打下了堅實的基礎。
傳統編程課程的問題
傳統的編程課程往往采用“嘗試直到成功”的方法,教授學生模仿和實驗。這種方法雖然對喜歡擺弄小玩意的學生有吸引力,但也讓許多其他有潛力的學生望而卻步。東北大學的課程則不同,它通過明確的設計規則和系統化的方法,幫助學生掌握編程的核心技能。
明確的設計規則
《How to Design Programs》是第一本系統地介紹如何構建程序的教材。書中詳細介紹了結構化設計的方法,包括六個步驟:理解問題、選擇數據表示、編寫示例、定義函數簽名、創建函數框架、編寫測試。這種方法不僅適用于編程,還可以應用于其他領域的系統化問題解決。
課程設置
- Fundamentals I:使用教學語言引入系統化設計,學生從第一天起就開始配對編程,培養溝通和協作能力。
- Fundamentals II:使用 Java 教授如何在實際語言中應用設計原則,引入代碼審查。
- Logic in Computer Science:教授邏輯推理,幫助學生理解程序的正確性。
- OOD:擴展項目規模,教授接口和協議的設計。
- Software Development:綜合所有核心課程,讓學生參與代碼維護和團隊合作。
學生反饋
- hahahacorn:東北大學的課程設計和原則非常出色。我在工作中很快成為導師,發現其他開發者缺乏系統化思考的能力。
- achenet:配對編程對我的編程能力提升很大,課程過程非常有趣。
- delusional:雖然早期的學習經歷充滿挑戰,但正是這些經歷讓我成為了一個優秀的開發者。
小編銳評
東北大學的這套編程教育方法不僅注重技術技能的培養,還強調團隊合作和溝通能力的重要性。這種方法或許可以為其他高校提供借鑒,幫助更多學生更好地適應未來的軟件開發工作。
ISO 8583: 信用卡通信的語言
https://increase.com/articles/iso-8583-the-language-of-credit-cards
圖片
ISO 8583 是信用卡交易的標準協議,用于實時通信。無論是你在 POS 設備上刷卡還是在線購物,最終都會生成一條 ISO 8583 消息,這條消息會在商戶的收單處理器、卡網絡和銀行的發卡處理器之間傳遞。
基本結構
ISO 8583 消息包含三個主要部分:
- 消息類型指示符(Message Type Indicator, MTI):四位數字代碼,表示消息類型,如授權請求(0100)、授權響應(0110)等。
- 位圖(Bitmap):指示哪些字段存在。每個位對應一個字段,1 表示存在,0 表示不存在。
- 數據元素(Data Elements):實際的數據字段,包括卡片號、交易金額等。
復雜性與挑戰
盡管 ISO 8583 是一個標準,但各卡網絡(如 Visa、Mastercard、American Express)在實現細節上存在顯著差異。例如,不同的網絡可能使用不同的編碼方式(ASCII、EBCDIC、BCD)和字段定義。這些差異使得實現一個通用的 ISO 8583 解析器變得非常復雜。
評論(如有):
- 網友 ekmartin:雖然稱為標準,但實際實現中有很多細微差別,使得集成過程非常困難。特別是 Mastercard 的實現最為復雜。
- 網友 ocf:Visa 和 Mastercard 的實現并不完全標準化,各自發布了數千頁的文檔來覆蓋標準字段的使用和專有數據的嵌入。大多數卡管理和發行平臺都很好地抽象了這些差異。
- 網友 t0mas88:這種協議在當時是很常見的,類似于打包的 C 結構體。接收端需要注意動態字段長度的驗證,防止讀取超出消息范圍或無限緩沖區分配。這些問題現在已經被很好地理解了。
- 網友 heywire:很多公司為了繞過 ISO 8583 的限制,會在 API 調用前后添加非 PCI 數據,以傳遞額外信息。雖然這種方法加快了市場進入速度,但也引入了許多新的故障模式。
小編銳評
ISO 8583 作為信用卡通信的核心協議,雖然歷史悠久,但其復雜性和網絡間的差異使得實現和維護變得相當困難。隨著技術的發展,ISO 20022 等新標準的出現可能會逐步取代 ISO 8583,但這一過程需要時間和全球范圍內的共同努力。對于開發者和支付行業的從業者來說,了解這些底層協議的運作原理仍然具有重要意義。
Postgres 作為向量數據庫的 GUI 工具:Reservoirs Lab
https://github.com/Z-Gort/Reservoirs-Lab
圖片
Reservoirs Lab 是一個輕量級的 Electron 應用程序,旨在直接連接到 Postgres 數據庫并可視化高維向量嵌入。用戶可以通過該工具交互式地探索數據,并查看元數據與向量嵌入之間的語義相似性。以下是 Reservoirs Lab 的主要功能:
- Postgres 集成:通過連接字符串直接連接到 Postgres 數據庫。
- 向量可視化:交互式地繪制和探索高維向量。
- 鄰域探索:點擊數據點查看按余弦相似度排序的相關點,同時保持聚類。
- 輕量且本地運行:在本地運行,保護數據隱私。
安裝步驟
- 確保已安裝 Node.js 和 npm。
- 克隆倉庫:git clone https://github.com/z-gort/reservoirs-lab.git
- 進入項目目錄。
- 安裝依賴:npm install
- 啟動應用:npm start
- 輸入 Postgres 數據庫連接字符串。
評論(如有):
- wenc:這個工具很好,但建議提到使用 UMAP 進行降維,并注意超參數的選擇。降維到 2 維可能會有很大變化,可以考慮投影到更多維度,通過散點圖矩陣來可視化。
- redwood:有人見過 Atlas 嗎?絕對美麗的向量可視化工具。
- gregncheese:我還沒找到比 Tensorflow Projector 更好的工具:Tensorflow Projector。不過需要先將數據準備成 TSV 文件。
- samanthasu:優秀的可視化!
- z-gort:如果有機會重來,我可能不會選擇 Electron。本地進行降維分析確實有一些挑戰,但通過分析隨機采樣的幾千個點,可以在本地 GUI 中獲得數據的整體視圖。
- ddtaylor:這個工具使用了 pgVector 嗎?
小編銳評
Reservoirs Lab 為 Postgres 作為向量數據庫提供了一個強大的可視化工具,適合數據科學家和開發者在本地環境中快速探索和分析高維數據。雖然有一些挑戰,但總體來說,這是一個值得嘗試的工具。
Solaar:輕松管理 Logitech 設備的 Linux 工具
https://github.com/pwr-Solaar/Solaar
圖片
Solaar 是一個強大的 Linux 工具,用于管理和配置 Logitech 的無線和有線設備,包括鍵盤、鼠標和其他外設。它不僅支持 Unifying、Bolt、Lightspeed 和 Nano 接收器連接的設備,還支持通過 USB 電纜或藍牙連接的設備。
功能亮點
- 設備管理:輕松配對和解配設備與接收器。
- 自定義設置:配置設備的各種設置,如 DPI、電池狀態等。
- 自定義按鈕:根據個人需求自定義設備按鈕的功能。
- 規則引擎:運行規則以響應設備發送的特殊消息,實現自動化操作。
用戶評價
- 網友 loufe:我使用過 MX Master 鼠標多年,Solaar 真是解決了我在藍牙連接上的所有問題。它的界面比 Logitech 的軟件更簡潔,功能更強大。感謝開發者!
- 網友 yapyap:Solaar 比 Logitech 自己的軟件好用多了。你可以看到實際的電池百分比,還可以設置具體的 DPI 數值,而不是那個煩人的滑塊。
- 網友 bbutkovic:我一直在使用 Solaar 管理我的 MX Master 2s,特別是調整滾輪的自由滾動點,效果非常好。還可以綁定鍵盤快捷鍵到特定的手勢,非常方便。
相關工具
- Piper:另一個用于配置 Logitech 設備的工具,適用于有線鼠標。
- logiops:雖然規則功能較弱,但也是一個不錯的選擇。
總結
Solaar 是一個輕量級且功能強大的工具,適合所有使用 Logitech 設備的 Linux 用戶。它不僅簡化了設備管理,還提供了豐富的自定義選項,讓用戶體驗更加個性化。如果你正在尋找一個可靠的 Linux 設備管理工具,Solaar 絕對值得一試。