跳到主要內容

發表文章

輸入及轉換 Unicode 編碼

如何輸入羅馬數字?不管大寫的數字 ,或者小寫的數字,不知道 Unicode 編碼的人總是會以輸入英文字母 i or I 來替代,即輸入 i, ii, iii, or I, II, III,或許他們不會面臨要輸入 4 以上的羅馬數字,這樣的做法就可以在人類的視覺誤差中暫時瞞騙過關,然而,這樣的作法卻帶來資訊系統不可見的人為問題。這篇文章將描述如何輸入正確的羅馬數字?如何搜尋 Unicode 編碼?以及如何輸入 Unicode 編碼。關於 Unicode 編碼輸入與顯示是一個相當複雜的議題,這篇文章僅針對在 Windows 作業系統中的應用程式如何輸入與搜尋 Unicode 編碼?如何在 Unicode 編碼與對應字元之間做轉換?不會涉及其他的議題;若依照下面描述的輸入方式輸入 Unicode 編碼,不保證能完全符合你/妳所使用個人電腦系統的環境,請再參考相關的文章來解決輸入與顯示 Unicode 編碼的問題。 Unicode 編碼的輸入方式 在 Wiki 的文件 中說明如何在不同環境下輸入特殊字元的 Unicode 編碼,在 Windows 作業系統中輸入 Unicode 編碼的方式如下: Microsoft Word or Wordpad:先輸入 unicode 的編碼,再按下 Alt + x,例如,在 word 中輸入 1f370,然後按下 Alt+x,就會顯示 🍰( &#x1f370)的字元 其他 Microsoft 所有應用程式:應用程式包括 Microsoft PowerPoint, Excel, VS Code 等程式,且要支援 Unicode 編碼的版本,都可以使用注音輸入法來輸入 Unicode 編碼;首先切換到注音輸入法的中文輸入模式,然後按下~鍵(Esc 下方的鍵) + u + Unicode 編碼,特別要注意輸入的數字是鍵盤上方的數字鍵,不可以使用 Number Pad 的數字鍵。 查詢 Unicode 編碼 Unicode編碼的對應字元可以連結到 The Unicode Consortium 的 Code Charts 網站,在網站中輸入你/妳想要字元的 Unicode 編碼,如此就可以找到這個 Unicode 編碼的字元,問題是:我們通常是心中有字元的圖像,或者是要先看到字元的樣子,才知道我們要使用哪一個字
最近的文章

PDB Debug Info on Windows and DragonEgg

最近一期的 LLVM Weekly 的文章內容提到2則新聞,一則是 LLVM on Windows now supports PDB debug info ,另一則是 DragonEgg has been updated to work with GCC 8.x and LLVM 6.x 。 第一則所提到 PDB 的這個專有名詞, LLVM 的 The PDB File Format 這一篇文章有詳細的介紹, llvm-pdbutil 的指令 如下: Have clang-cl invoke lld automatically clang-cl -fuse-ld=lld -Z7 -MTd hello.cpp Invoke clang-cl and lld separately. clang-cl -c -Z7 -MTd -o hello.obj hello.cpp lld-link -debug hello.obj 在 LLVM Blog 寫道: And to leave you with something to get you even more excited for the future, it's worth reiterating that all of this is done without a dependency on any windows specific api, dll, or library.  It's 100% portable.  Do I hear cross-compilation?   對於在 Windows 系統開發的一些程式碼,可以獨立出來,達到真正跨平台的目標。 第二則是 大陸武漢科大 Leslie Zhai 將 DragonEgg 移植 到 GCC 8.x and LLVM 6.x 版本,他說: I am migrating DragonEgg to GCC v8.x and LLVM v6.x just for fun and learn . Clang 已經相當成熟, 而且對於 Fortran language 支援 LLVM 已經有前端的 flang 專案 可以使用,有人就質疑:為何還需要維護 DragonE

Buck - a new build system

各種程式語言有不同 支持 的 build tools,例如 Javascript 的 glup, grunt, ..., etc. Java 的 ant, maven, gradle, ..., etc. C/C++ 常用的 make, cmake, ..., etc. 而 Buck 是一個新的 build tools ,主要提供一些主流的語言,包括 C/C++, Python, Java, D, React Native, Android, OCaml,特別的它採用的幾個重要的技術: Hashing: 版本控制時,使用 Hashing 來處理,在專案開發階段,不斷地測試是必然的,而僅有少部分需要再度 rebuild,使用 Hashing 來處理差異是很聰明的作法 Parallel: 在 multi-core 的架構下的軟體,支援 Parallel 可以加快 build 的處理速度 Buck 是 facebook 所開發的,是 open source code 的 project,支援不同的作業系統,目前正在開發大型專案的程式設計師,不妨可以一試,看看是否有加快 build 的速度。

發生在 C++ Standard Library 的恐怖事件

在 Twitter 上看到一則 " The Horror in the Standard Library " 這麼聳動的標題,不改好奇的個性,當然要讀他到底在說些什麼?摘錄文章幾個要點: We tried valgrind , dmalloc , the Microsoft Visual Studio memory profiler (yes we tried running it in Windows via an elaborate shim just to use this), and glibc's built-in memory tracing . Nothing worked. It's leaking but it's not. It's leaking but the debugger says no memory was lost.  The default allocator in the standard C library is designed for an acceptable trade-off between memory use and performance under ordinary work loads, but it doesn't always perform ideally in aggressively multithreaded or very high throughput applications. Luckily there are very highly regarded drop-in replacements like jemalloc . Trembling with anticipation that maybe... just maybe... I'd found the answer... I dropped in jemalloc and ran the test. We now have code in production (in ZeroTier Central) that force disables libstdc++ allocation pools via the above environm

CppCast 的 News

在 CppCast News 當中有兩則訊息: The C++ Annotations, a free up-to-date learners book/reference manual Choosing "Some C++" Over C 第一則是一本古老以前就發表在網路上的 C++ 書籍,內容隨著 C++ 標準不斷的更新,不會尚失新語法的一本C++書籍。 第二則內容簡略、快速的瀏覽以後,如同作者的第一段話:maybe I should have called this “C++ for Lovers of C,”,內容利用 curl, one of the most popular HTTP client libraries 當作例子,說明 C 語言在處理複雜問題時的困境,如果可以把 C 當作底層,當作 subset ,而對 C++ 作些許的限制,是這一篇文章所討論的問題。

推動資訊教育的省思

最近國內教育單位積極想要推動所謂資訊教育,特別提到國、中學的學生希望能學習程式設計的邏輯思考能力,報紙說,資訊的師資是足夠可以應付國、中學課綱的轉變,或許有人力可以上台教導國、中學的學生,也當然要有人力上台教程式設計,重要的是:能夠提升多少學生程式設計的能力呢? C++ father: B Stroustrup 於 January 201 在 CACM 發表 What should we teach software developers? Why? 的這篇文章中,指出學界與工業界之間脫鉤的問題;國外對於程式設計邏輯思考能力的推動,很早以前就已經開始實施,且從小學就教育學生,一系列的紮實訓練,造就許多實務型的大學生,反觀國內,資訊相關科系畢業的大學生,有多少人會寫程式?曾經遇到一位國立科技大學資訊相關科系的畢業生,就連 簡單的HTML 語法都不會,僅會寫 Microsoft 內建的 Macro,又學校內僅會惡鬥,只管誰是谁的人?哪有人會管學生學習的成效,教出僅會寫 Microsoft Macro 就洋洋得意、趾高氣揚的這樣學生,是正常的結果。諸不知一山還有一山高,想想 Eric Niebler 在他自己的網站寫著:Judge me by my C++, not my WordPress 這句話吧。 唉,感嘆! 這篇文章值得國內教育單位深思。

Visual Studio 對於 C++ 的 Debugging and Diagnostics

Visual C++ Team Blog 發表  C++ Debugging and Diagnostics 文章,內容包括: Breakpoints and control flow Data inspection and visualization Diagnostic tools and performance profiling Debugging processes and devices Multi-threaded debugging Edit and continue Other resources Visual studio 最迷人的地方就是 Debugging 的功能,最近隨著 C++ 標準的更新,以及 C++ 標準協會的 Chairman -- Herb Sutter任職在 Microsoft,Visual Studio 對於 C++ 的支援新標準的程度相當高,是在 Windows OS 平台開發 C++14 or C++17 程式碼可選擇的一種 IDE。