【科技新聞】請在名稱中輸入單位


請在名稱中輸入單位
Please put units in names

評論

內置單元類型被低估了。 F# 有它們。其他語言應該認真考慮添加它們,儘管事實上功能膨脹是一個嚴重的語言問題並且它們相對小眾:它們很有用,老實說我不認為它們會干擾其他特性。

就像是:

 unit type Meters = m unit type Seconds = s function sleep(time: Int[s]): void val speed = 5.4 m/s // Type = Float[m/s] val distance = parseFloat(prompt('enter time')) * 1 m // Convert unitless to meters just by multiplying val time = distance / speed // Type = Float[s] print("${time}") // Prints "# s" print("${time / 1 s} seconds") // Prints "# seconds" val complexUnit = 7 * 1 lbf/in2 // 7 lbf/in2 // != 7 psi (too hard to infer) but you can write a converter function function toPsi<N : Numeral>(value: N[lbf/in2]): N[psi] { return value * 1 psi*in2/lbf }

它需要擴展數字解析、類型解析(如果括號不是例如 TypeScript 中的一部分)和擴展類型以支持度量單位,至少如果它們被靜態地知道是“數字”的子類型。

用單位命名變量並不能解決錯誤轉換和錯誤使用單位的問題,而且新類型太不方便(有時在不影響性能的情況下是不可能的),所以沒有人使用它們。即使作為一個非常注重軟件的程序員,我也經常遇到秒、字節、像素等單位,它們幾乎從來都不是新類型,而且我會因為忘記轉換或轉換不正確而遇到錯誤。

我曾經在一家擁有兩個數據庫字段 speed_kmph 的公司工作。

文檔為“speed_kmph – 此字段包含以英里每小時為單位的行駛速度 – 請不要被名稱混淆”。

哇,幹得好,伙計們。

Java 和 Kotlin 有一個不錯的 Duration 類。所以在 Kotlin 你可以做

 delay(duration = Duration.ofMinutes(minutes = 1))

這相當於

 delay(timeMillis = 60_000)

為清楚起見,在此處使用可選參數名稱;你當然不必。

堅持使用 JVM,一個常見的混淆來源是 epoch。是毫秒還是秒?使用必須為秒的 32 位整數(這將為您解決 2038 年的問題)。然而,即使在 2000 年問題仍然存在之前,Java 總是使用 64 位長來以毫秒為單位跟踪紀元。知道你正在處理的是什麼在很多地方都是相關的。尤其是在與以其他具有更多 32 位傳統的語言編寫的代碼或 API 交互時。

網絡超時之類的事情通常以毫秒為單位。但是你怎麼確定呢?在幾秒鐘內指定它們意味著忘記 0 或類似的東西的風險較小。因此,使用秒數也很常見。你不能只是盲目地假設其中之一。即使您使用上面的 Duration 類,您仍然希望將其作為參數的幻數放入某些配置屬性或常量中。那些也需要好名字,他們應該包括單位。


Windows 需要改變優先級
Windows needs a change in priorities

評論

像每個 Windows 用戶一樣,我在平台上的濫用行為和黑暗模式方面有過很多令人沮喪的經歷。就像他們開始讓 Skype 在後台靜默運行一樣,使用用戶的 Microsoft 帳戶登錄,沒有任何通知或人工干預,並刪除了禁用它在啟動時啟動的設置,這樣就無法阻止它。我不得不完全卸載它,這並沒有真正的幫助,因為他們仍然在每次更新後將其恢復。我假設他們現在將使用 Teams 執行此操作。

對於每一個令人震驚的用戶敵對行為,您都可以搜索並找到大量論壇主題,人們在其中詳細討論如何扭轉或減輕它們。微軟意識到這一點並繼續將這種濫用增長的黑客行為置於用戶信任之上,充分了解這將如何影響公司在愛好者中的聲譽,這一事實可能比實際做法更可怕。

在微軟,擁有決策權的人實際上並不在乎。對用戶的蔑視在 DNA 中是如此之深,以至於這永遠不會變得更好。這令人失望,因為它最終破壞了公司其他人員為 WSL 等功能所付出的所有巨大努力,否則這些功能可能會使該平台對現代開發人員具有吸引力。

它在用戶和平台之間創造了一種真正的對抗姿態。當他們推出新功能時,我什至都不願意嘗試,因為我不相信他們的意圖。這就像處於一段虐待關係中。

本文指出了 Windows 11 的許多問題。

去年年底,我硬著頭皮升級到了 Windows 11,認為它一定是對 Windows 10 的改進。結果證明這是一個很大的倒退。

– 更改默認瀏覽器需要大量工作,而不是單擊一下。

– 我不能將任務欄移到一邊,儘管現在幾乎每台顯示器的水平空間都比垂直空間大得多。

– 所有應用程序都無法從開始菜單輕鬆訪問;我必須單擊另一個按鈕才能找到它們。

– 我有一台二合一筆記本電腦,把它變成平板電腦模式很不靠譜。

– 我不能選擇在任務欄上沒有分組按鈕。

– 上下文菜單用戶體驗很糟糕。一些上下文菜單項現在只需單擊兩次而不是一次。過多的圓角和纖細的選擇填充又是怎麼回事?

– 堆疊的通知令人困惑,當我打開通知面板時總是顯示日曆。

– 很多垃圾都壓在我身上,比如聊天(又名 Teams)、小部件(需要 Microsoft 帳戶)、看起來像是已安裝但實際上在首次使用時下載/安裝的 3rd 方應用程序。

我能夠用 ExplorerPacher [0] 解決很多這些問題。但是,在 Windows 更新後的一天,資源管理器在登錄後根本沒有啟動(黑屏,我以為 Windows 被水洗了)。此後,此問題已得到解決。但我決定夠了,最後“升級”回 Windows 10。

Windows 11 唯一的好處是 wslg,它為 Linux GUI 應用程序提供了開箱即用的支持(在 Windows 10 上不可用)。但是我可以通過 X 服務器和一些工作得到相同的結果。

[0] https://github.com/valinet/ExplorerPatcher/wiki/All-features

這個菜單對我來說很熟悉,因為這是 Windows API 允許您創建的(只要您不是通過 Windows 窗體創建它)。沒有暗主題,但至少有圓角。

那隻是一個巨大的WTF。自從最早的 Windows 版本以來,一直有深色(或白色、彩虹或……)主題的選項,您可以在其中調整顏色、大小和字體,使用 Win32 的所有內容都將遵循它。這是 Win95 示例:

https://64.media.tumblr.com/6d3e8c64cd9a38e70d24c0b1b2c73cb5…

但是,如果我理解正確,在 Win11 中完全停止工作?聽起來 Windows 團隊已經沒有人知道過去什麼是可能的,但現在已經不存在了,取而代之的是可能更年輕的開發人員,他們不斷地找藉口通過重寫和破壞東西來“現代化”。打個比方,他們不僅是在重新發明輪子,而且是把它變成方形。


詹姆斯韋伯望遠鏡拍攝的第一張照片超出預期
First images from James Webb telescope exceed expectations

評論

我真的很感激 NASA 如何處理詹姆斯韋伯。他們不是等待一切都完成,而是帶著我們一起進行設置,給我們“alpha”和“beta”圖像(如果你願意的話),並以此保持對望遠鏡的興趣。我知道它會繼續下去,而且我對此大肆宣傳。

我想知道為什麼星星有 6 個清晰點,並在這裡找到了解釋(3 分鐘視頻):

https://www.youtube.com/watch?v=VVAKFJ8VVp4

視頻中最有趣的部分解釋了為什麼即使你在夜間用肉眼看天空也會產生這種效果——這是由於你眼睛的晶狀體有缺陷。

NASA 新聞稿,其中包括同一張照片,但分辨率不錯: https://www.nasa.gov/press-release/nasa-s-webb-reaches-align…


留言討論區