tag:blogger.com,1999:blog-3801862875067503322024-03-13T13:46:28.304+08:00Tony BlogCode for funUnknownnoreply@blogger.comBlogger204125tag:blogger.com,1999:blog-380186287506750332.post-14608295788162727642023-09-19T12:38:00.005+08:002023-09-19T12:38:51.432+08:00Kotlin 再次進入 TIOBE Index Top 20<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-44_-YUmNNaGEBr3PwuXO53nUyzu_98b3vjq6vcdWOcetFqxDhc7mTbpqSA3SVek0_DXH7urtW4xSrKep1elYvjMrD8-LUUYHsIQ8EqfLkuFc3ycqH0MOpyM5IX-iSgGv8dVj6IEokhfVzLy5QQWqMyj8eIeMirBHlIcjJuKSPuNpFpFs4bOznNAQgg0/s1600/2023-09-19kotlin-index.webp">
<p class="caption">TIOBE Index for Kotlin</p>
</span>
<span class="summary">
Kotlin 再次進入 TIOBE Index Top 20
</span>
</div>
<div style="clear: both;"></div>
<a href="http://blog.tonycube.com/2023/09/tiobe-index-for-kotlin-kotlin-tiobe-top.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-35161418043104839512023-04-19T17:59:00.004+08:002023-04-19T18:04:13.644+08:00關於選擇無聊的技術一文的想法<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqcElK8Z6Q-7OVdEcQkdqdcwil7B_U7h38bQVJ1q98uuoVVRTOa56h2cGjwI809fPHZmQvWlzH61VhzmM3P9CrWX14371TGHn9_uOJPjvGoIArs3irjfMgD7cCLp3bjrwy3JzfxIeF2oiR72gQkjMFua07X5wdHQXq2oPKCNJXePnWme2VL237loE1/s16000/slides.087.webp" width="200">
<p class="caption">思考產品</p>
</span>
<span class="summary">
選擇無聊的技術
</span>
</div>
<div style="clear: both;"></div>
<a href="http://blog.tonycube.com/2023/04/about-choose-boring-technology.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-57054314754143100962022-05-20T11:00:00.003+08:002022-06-02T12:51:07.163+08:00Ubuntu 使用 Python 自動更換桌布<div class="post-summary">
<span class="polaroid">
<img alt="" border="0" data-original-height="200" data-original-width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbB4Tg9R0d5u0d-ZZqAzzfteaGycgvBSdNyzi5vIsB0xDrJSn03B1pV5zz6_XgID0Po4SxXYooexZHZASyoUSWgatYNWIvLIsze9XQNapg6k0__rN79H0PGzffF_mlv9r2QaeXQZZd0H7zxQiEaUSOUY7NARqMBCJpzC_CgO17pLPaLuF0IETK8bLw/s1600/29985a98-ubuntu-logo32.png">
<p class="caption">Ubuntu</p>
</span>
<span class="summary">
在 Ubuntu 中使用 Python 每 5 分鐘自動更換桌布。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2022/05/ubuntu-auto-refresh-wallpaper.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-74177886909646964862021-10-27T20:10:00.003+08:002022-05-11T11:39:04.327+08:00自組電腦 MSI DP20Z + AMD Ryzen 7 5700G<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://1.bp.blogspot.com/-z405zwr9ZJw/YXk_TrqvYcI/AAAAAAAAHMo/eLLVWRGo548Y_tgmq_CJxFcdg-AlGfsXQCLcBGAsYHQ/s0/MSI-DP20Z.jpg">
<p class="caption">MSI DP20Z</p>
</span>
<span class="summary">
Mac 太貴了,自組工作用小型 PC,比 ITX 還小。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2021/10/msi-dp20z-amd-ryzen-7-5700g.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-2024236506975258152021-10-18T21:17:00.002+08:002022-05-11T11:30:02.850+08:00Macbook Pro 過保自己換電池<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://1.bp.blogspot.com/-69XTdDBSAAQ/YW1ttZOT3aI/AAAAAAAAHKA/hwl-9fO4kMwyH4jtBytHCDbxuANqHCsEQCLcBGAsYHQ/s0/battery.jpg">
<p class="caption">吃太撐的電池</p>
</span>
<span class="summary">
Macbook Pro 過保了,換個電池貴松松,自己換吧!
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2021/10/macbook-pro-battery-repair.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-380186287506750332.post-67555506077290533902021-07-01T11:25:00.007+08:002021-07-01T11:42:38.499+08:00查詢 Java 程式的 class 檔編譯的 JVM 版本<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLthROXPqom3wI0PStfKkXmVA3f9bwDdpK5dP1nB3uHU4KAXKHAdZrt8JqlejsjB4DA6n0H3tZYEcI7PagIgB-ftAHhg8sUwMVApN1o4QiqW-DgQnNaqB8OQt_iqKWcqaB-SNiXgqRPoxP/s1600/openjdk.png">
<p class="caption">OpenJDK</p>
</span>
<span class="summary">
最近開始將執行環境的 JVM 8 升到 11,舊專案在編譯的時候如果沒有指定目標版本,就可能在執行時出現 <a href="https://docs.oracle.com/javase/8/docs/api/index.html?java/lang/UnsupportedClassVersionError.html" target="_blank">UnsupportedClassVersionError</a> 的錯誤。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2021/07/java-class-version.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-62006146744957850322021-02-01T17:56:00.000+08:002021-02-01T17:56:06.229+08:00更新 Certbot 使用 Snapd<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-vmpGvgWYNUw/WICvxsEoahI/AAAAAAAAFMo/erFi2Alb5v83Ehd6W0IhnGcTsvpthGE2ACPcBGAYYCw/s1600/le-logo-standard.png">
<p class="caption">Let's Encrypt</p>
</span>
<span class="summary">
舊版 certbot-auto 程式不再被支援,必須改用新版程式。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2021/02/certbot-snapd.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-81934804719085570532020-09-21T18:37:00.001+08:002020-12-30T10:30:35.460+08:00Kotlin 實戰範例 (10) Pair、解構式宣告、範圍函式<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
<p>Kotlin 有幾個特別一提的功能,例如 Pair 及 Triple 可以將兩個及三個資料放在一起,對於暫時傳遞資料用非常方便,搭配解構式宣告使用起來更加方便。範圍函式是一種很特別的函式,基本上完全不使用它也不會怎麼樣,但是如果用得好,能夠讓程式碼更加結構化,在閱讀上語義更清楚。</p>
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/09/kotlin-by-example-10-pair-triple-and-scope-functions.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-75835945674838836012020-09-14T21:07:00.002+08:002021-03-16T19:53:40.397+08:00Kotlin 實戰範例 (9) 集合<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
<p>為了解決陣列的不足,Kotlin 針對一組相關的資料項目,提供了針對集合的操作。Java 8 新增的 <a href='https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html'>Stream</a> 套件,也是專門用來處理集合的,相關內容可以參考 <a href='https://blog.tonycube.com/2015/10/java-java8-3-stream.html'>Java8 新功能筆記 (3) - Stream</a>。</p>
<p>Kotlin 提供的集合處理套件非常好用,而且因為語言本身的設計,在處理集合上更加安全、有效率,我們可以靈活的選擇要建立唯讀的集合,或是不可變動的集合,並且對集合做轉換、過濾、群組、截取、排序及聚合運算等等操作,在某些情況下使用序列運算還可以提升處理效率。</p>
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/09/kotlin-by-example-9-collections.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-380186287506750332.post-44852006059663367972020-09-07T20:59:00.001+08:002020-09-14T21:08:44.344+08:00Kotlin 實戰範例 (8) 功能擴充、例外處理<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
<p>Kotlin 的擴充功能為什麼比類別的繼承好;例外處理又是如何和 Java 不同?</p>
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/09/kotlin-by-example-8-extensions-and-exceptions.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-48043856169005707872020-08-31T20:39:00.000+08:002020-09-07T21:10:37.855+08:00Kotlin 實戰範例 (7) 高階函式<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
<p>Kotlin 最重要的特性應該就是高階函式了,有了高階函式我們就能做到許多單純物件導向程式語言無法做到的事,像是把函式當成值來傳遞。要瞭解高階函式要先知道什麼是頭等函式,以及其他重要的程式特性:函式型別、匿名函式、Labmda 表達式等等。</p>
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/08/kotlin-by-example-7-higher-order-functions.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-89541065241010358042020-08-24T19:17:00.000+08:002020-09-07T21:04:13.884+08:00Kotlin 實戰範例 (6) 類別與物件 <div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
<p>當應用程式變得龐大,程式碼就會變得複雜,我們需要一種工程方法來處理隨著功能變多而導致複雜度提高的眾多程式碼,解決方式有很多,物件導向是其中一種。</p>
<p>物件導向程式設計藉由對資料抽象及封裝等等特性,讓相關的程式碼藕合在一起,架構出一個由許多程式碼元件組合而成的應用程式。</p>
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/08/kotlin-by-example-6-class-and-object.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-5922521541649278682020-08-17T17:40:00.000+08:002020-09-07T21:07:17.033+08:00Kotlin 實戰範例 (5) 基礎 (函式、套件)<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
函式可以讓我們建立一個程式碼區塊來執行特定的任務,函式可以有輸入參數及回傳值,也可以都沒有,一個函式應該只做一件事。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/08/kotlin-by-example-5-function-and-package.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-14042901976509515132020-08-10T20:08:00.002+08:002020-09-07T21:07:10.501+08:00Kotlin 實戰範例 (4) 基礎 (條件控制、循環執行)<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
條件控制可以讓程式執行或跳過某個區塊的程式碼,另外可以透過程式迴圈來指示電腦循環執行一段程式碼。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/08/kotlin-by-example-4-control-flow-and-loop.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-88985567173183355192020-08-03T20:59:00.001+08:002020-09-07T21:07:02.620+08:00Kotlin 實戰範例 (3) 基礎 (Null、相等、字串、註解)<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
Kotlin 在型別系統中直接針對 null 做處理,讓我們的程式碼更穩固;相等比較也和 Java 略有不同,但是更好用;字串模板讓我們在串接變數時更有效率。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/08/kotlin-by-example-3-null-equals-string-comments.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-80682570950089913072020-07-27T21:07:00.000+08:002020-09-07T21:13:08.095+08:00Kotlin 實戰範例 (2) 基礎 (變數、型別)<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
此篇要來介紹在 Kotlin 中如何宣告變數,型別系統又是如何有別於 Java,還有 Kotlin 的程式起點和檔案命名和 Java 有什麼不同。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/07/kotlin-by-example-2-basic-variable-types.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-70279974590276326372020-07-20T18:37:00.000+08:002020-09-07T21:06:48.543+08:00Kotlin 實戰範例 (1) 為什麼要學 Kotlin<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
Java 寫的好好的,為什麼要改用 Kotlin 呢?Kotlin 提供了哪些 Java 沒有的語言特性?這些特性如何讓我們寫程式更順手、更開心呢?
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/07/kotlin-by-example-1-why-kotlin.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-59701080198723709042020-07-13T19:08:00.000+08:002020-09-07T21:06:37.418+08:00Kotlin 實戰範例 (0) 前言<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
Kotlin 是什麼?我是如何接觸 Kotlin 而愛上 Kotlin 這個程式語言,目前 Kotlin 的發展方向是什麼?
</span>
</div>
<div style="clear: both;"></div>
<a href="http://blog.tonycube.com/2020/07/kotlin-by-example-0-preface.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-82081150656073734242020-04-16T20:00:00.000+08:002020-04-28T09:59:16.639+08:00新書上架:Kotlin 實戰範例<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-9yiPUcxb9oA/Xp-nm_E3dlI/AAAAAAAAGsk/bHswUCa_Ra8RRRIiKb9D_KMUO8KZwBhVwCLcBGAsYHQ/s1600/Kotlin%25E5%25AF%25A6%25E6%2588%25B0%25E7%25AF%2584%25E4%25BE%258B.png">
<p class="caption">Kotlin 實戰範例</p>
</span>
<span class="summary">
Kotlin 實戰範例,以範例介紹 Kotlin 程式語言特性的電子書。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2020/04/learn-kotlin-by-example-ebook.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-380186287506750332.post-4129588829613372412019-07-15T15:24:00.002+08:002019-07-15T15:36:06.865+08:00設定 Nginx 使用密碼登入<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-dixDfN88eeg/XSwo3NI49OI/AAAAAAAAGUY/ZGzA8JvnBYocVSmhzS51ZpgpB55d_PYDACLcBGAs/s1600/password_prompt.png">
<p class="caption">Password Prompt</p>
</span>
<span class="summary">
如何使用 Nginx 來做登入驗證。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2019/07/nginx-password-prompt.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-380186287506750332.post-12434571457680953472019-02-26T13:24:00.000+08:002019-05-10T16:51:58.024+08:00Let's Encrypt Wildcard 申請流程<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-vmpGvgWYNUw/WICvxsEoahI/AAAAAAAAFMo/erFi2Alb5v83Ehd6W0IhnGcTsvpthGE2ACPcBGAYYCw/s1600/le-logo-standard.png">
<p class="caption">Let's Encrypt</p>
</span>
<span class="summary">
<a href="https://letsencrypt.org/">Let's Encrypt</a> 在去年 (2018) 年 3 月時宣佈了 ACMEv2 版本及子網域萬用字元的支援,這樣就不用對所有子網域申請各別的憑證,只要申請一個就可以了。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2019/02/lets-encrypt-wildcard.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-52781123802660044242018-12-13T21:06:00.000+08:002018-12-26T21:39:49.470+08:00使用 jsoup 解析網頁 HTML<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://3.bp.blogspot.com/-uIxVAKW8DcM/V5A4k4MRgvI/AAAAAAAAE6E/Nu8uu2l7-A08nPi5U2BRe7jHNJG5VEXqwCPcBGAYYCw/s1600/HTML5-min.png">
<p class="caption">HTML 5</p>
</span>
<span class="summary">如果你需要解析網頁內容,可以使用 jsoup 這個 Java 函式庫來幫助你解析網頁 HTML。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2018/12/jsoup-html.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-2391030671965206192018-12-07T12:53:00.001+08:002018-12-26T21:42:44.641+08:00使用 Gradle 建立 Kotlin 專案<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://4.bp.blogspot.com/-n06q34fP6Mg/XAn32cKmcnI/AAAAAAAAGEg/dtbSw0l__xMHwaE0Uo4Cgiu7zctUqe0UgCLcBGAs/s1600/Gradle_logo.png">
<p class="caption">Gradle</p>
</span>
<span class="summary">
在不使用 IDE 的情況下,如何單獨使用 Gradle 指令來建立 Kotlin 專案。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2018/12/gradle-kotlin.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-22004466059587265142018-11-12T12:58:00.006+08:002022-09-02T09:52:03.688+08:00Java 要收費 ?! 是時候使用 OpenJDK 了<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLthROXPqom3wI0PStfKkXmVA3f9bwDdpK5dP1nB3uHU4KAXKHAdZrt8JqlejsjB4DA6n0H3tZYEcI7PagIgB-ftAHhg8sUwMVApN1o4QiqW-DgQnNaqB8OQt_iqKWcqaB-SNiXgqRPoxP/s1600/openjdk.png">
<p class="caption">OpenJDK</p>
</span>
<span class="summary">
如果你還在使用 Oracle JDK,請趕快換到 OpenJDK 吧,甲骨文已經開始查授權了。
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2018/11/java-openjdk.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-380186287506750332.post-2910638738892775312018-11-06T20:58:00.002+08:002020-09-06T21:55:12.543+08:00Visual Studio Code 極速上手指南<div class="post-summary">
<span class="polaroid">
<img border="0" src="https://2.bp.blogspot.com/-4VkOtZC1H5U/XBPB_oObrXI/AAAAAAAAGFQ/eTFNetuCwSUILh3bt7PxJM1CiHj7joNnQCLcBGAs/s1600/sublimetext-vscode.png">
<p class="caption">Editor</p>
</span>
<span class="summary">
是時候換編輯器了!
</span>
</div>
<div style="clear:both"></div>
<a href="http://blog.tonycube.com/2018/11/visual-studio-code.html#more">閱讀全文 »</a>Unknownnoreply@blogger.com0