2025年9月19日 星期五

AI在我有生之年可能還是輔助!?(天下雜誌文章節錄)

天下雜誌
https://tw.news.yahoo.com/%E6%A0%B9%E6%9C%AC%E4%B8%8D%E6%9C%83%E5%8F%96%E4%BB%A3%E4%BD%A0%EF%BC%81%E7%82%BA%E4%BB%80%E9%BA%BCai%E7%9A%84%E6%88%90%E6%95%88%E8%A2%AB%E8%AA%87%E5%A4%A7%E4%BA%86%EF%BC%9F-012511144.html 

根本不會取代你!為什麼AI的成效被誇大了?

今年七月,美國智庫模型評估與威脅研究(METR)以經驗豐富的軟體工程師為研究對象,請他們分別在有AI/沒有AI的協助下執行寫程式任務。

這是一項至今為止對AI在現實世界中表現,最為嚴格的測試。結果是,工程師們在使用AI的情況下,完成任務的速度比不使用AI時慢了20% 。

METR的研究發現,雖然人工智慧系統已經學會執行一系列任務,但它們難以在現實環境中,以「一致性」和「準確性」完成這些任務。

它們可能會犯一些小錯誤,讓工程師還是要花大量時間檢查、重做——通常比他們自己寫程式碼所需的時間還要長。

 

研究發現,那些試圖融入AI的公司,幾乎沒有看到太多利潤成長,而那些研究AI取代就業跡象的經濟學家,也大多一無所獲。

麥肯錫三月的一份報告也發現,71%的公司報告正在使用生成式人工智慧,但其中超過80%的公司表示,這項技術對獲利沒有「確切的影響」。

所以,AI是夢幻泡影嗎?

AI也不完全是泡沫騙局。研究AI領域的史丹佛大學經濟學家布林約爾松(Erik Brynjolfsson)指出,每項新科技都會經歷「生產力J曲線」,前期讓企業很難應用,導致生產力下降,但最終企業學會整合技術之後,生產力就會飆升。

AI從現在的窒礙難行狀態到飆升,還要多久?

Anthropic的執行長阿莫迪(Dario Amodei)預測的樂觀答案是2027年,或者「不會太久」,AI就會「在幾乎所有領域都超越人類」。

不過,就像90年代所有名稱中帶有「.com」的公司都輕鬆獲得投資,沒多久投資人發現只是在燒錢。儘管最終真的有少數幾家網路公司成為人類歷史上最賺錢的企業,仍沒有阻止大量投資人血本無歸。

更糟的是,現在人們對AI的投資,遠大於當年的網路革命。這讓一些專家擔憂,如果在J曲線的高峰到來之前市場熱情就大幅冷卻,可能引發金融危機。

至少好消息是,不會失業?

在最近的一項研究中,經濟學家發現,受AI影響最少的工作者(如健身教練)的失業率,其實是受AI影響最大的工作者(如程式設計師)的三倍。

但這不代表員工就不用擔心因AI而起的裁員風險。因為如今的勞動現場,存在一種奇怪的狀態:即使AI還沒辦法提高生產力,它的炒作效應,已讓企業不斷祭出相應措施。

20世紀80年代,電腦、電子郵件和線上日曆等工具,讓知識型員工能夠自行處理通訊和安排會議。許多公司因而決定裁撤秘書崗位,結果卻使得高技能員工必須花費大量時間處理這些庶務,使工作效率大幅降低。

如今,AI很可能成為這個世紀的電子郵件,企業主期待用它來高效替代人力,最終適得其反。

而作為員工,即使明白AI沒能幫上忙或反而幫倒忙,最好還是盡量讓它融入日常工作與績效表之中。

(資料來源:Atlantic, MIT, METR, McKinsey)

原編譯:田孟心 圖片來源Shutterstock



2025年1月12日 星期日

Fedora 33 crontab install & setup

 安裝(在roo權限下):

        dnf install cronie cronie-anacron

啟動 cron指令:

    systemctl start crond.service

觀察 cron狀態指令:

    systemctl status crond.service

設定開機啟動 cron指令:

    systemctl enable crond.service

官方安裝文件網址:

https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/monitoring-and-automation/Automating_System_Tasks/




2024年12月7日 星期六

JSP 的error頁面控制

 jsp在處理error有以下三種

1.使用<% scriptlet %> 加上傳統try catch自行控制

2.使用jstl的<c:catch>標籤自行控制

3.使用jsp的errorPage設定交給別的頁面處理(又分兩種形式)

   a.單一網頁控制errorPage 

     錯誤發起頁面必須有<%@page errorPage="接收error頁面.jsp" %>設定

     範例如下:(檔名為badPage.jsp)  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@page errorPage="errorPage.jsp" %>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

About to be bad....

<% int x=5/0; %>

</body>

</html>

    接收error頁面.jsp範例必須有<%@page isErrorPage="true" %>設定

     isErrorPage="true"代表可接收前網頁送來exception物件

    範例如下:(檔名為errorPage.jsp) 

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@page isErrorPage="true" %>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

=_=..................show errorPage<br>

Exception is a ${pageContext.exception}

</body>

</html>

 b.針對全域或特定類型網頁在web.xml做設定

   宣告全體適用錯誤處理頁面

<error-page>

<exception-type>java.lang.Throwable</exception-type>

<location>/errorPage.jsp</location>

</error-page>

   宣告特定例外錯誤處理頁面

<error-page>

<exception-type>java.lang.ArithmeticException</exception-type>

<location>/ArithmeticError.jsp</location>

</error-page>

   宣告HTTTP ERROR CODE用錯誤處理頁面

<error-page>

<error-code>404</error-code>

<location>/notFoundPage.jsp</location>

</error-page>

 

2024年3月1日 星期五

JAVA 11 認證考試(1Z0-819) 目標

 

複習考試主題

 

多選擇性答案考題(Google翻譯)

https://education.oracle.com/zh_TW/java-se-11-developer/pexam_1Z0-819

使用 Java 資料類型

  • 使用基元和包裝類,包括運算子、括號、類型提升和轉換

  • 使用 String StringBuilder 類別處理文本 

  • 使用局部變數類型推斷,包括作為 lambda 參數

控製程序流程

  • 建立和使用循環、if/else switch 語句

Java 物件導向方法

  • 宣告和實例化 Java 物件(包括巢狀類別物件),並解釋物件的生命週期(包括建立、透過重新分配取消參考和垃圾收集)

  • 定義和使用欄位和方法,包括實例、靜態和重載方法

  • 使用實例和靜態初始化語句和建構函數初始化物件及其成員

  • 了解變數範圍、套用封裝並使物件不可變

  • 建立和使用子類別和超類,包括抽象類

  • 利用多態性與轉換來呼叫方法,區分物件類型與引用型別

  • 創建和使用接口,識別功能接口,並利用私有、靜態和預設方法

  • 建立和使用枚舉

例外處理

  • 使用 try/catch/finally 子句、try-with-resource multi-catch 語句處理異常

  • 建立和使用自訂異常

使用數組和集合

  • 使用泛型,包括通配符

  • 使用 Java 數組和 ListSetMap Deque 集合,包括便捷方法

  • 使用 Comparator Comparable 介面對集合和陣列進行排序

使用串流和 Lambda 表達式

  • 使用 lambda 表達式實現函數式接口,包括 java.util.function 套件中的接口

  • 使用 Java Streams 過濾、轉換和處理數據

  • 執行分解和縮減,包括對順序流和平行流進行分組和分區

Java平台模組系統

  • 部署和執行模組化應用程序,包括自動模組

  • 聲明、使用和公開模組,包括服務的使用

並發性

  • 使用 Runnable Callable 建立工作線程,並使用 ExecutorService java.util.concurrent API 管理並發

  • 使用不同的鎖定機制和 java.util.concurrent API 開發線程安全程式碼

Java I/O API

  • 使用 I/O 流讀寫入控制台和檔案數據

  • Java 物件上實現序列化和反序列化技術

  • 使用 java.nio.file API 處理檔案系統對象

Java SE 應用程式中的安全編碼

  • 開發程式碼以減輕安全威脅(例如拒絕服務、程式碼注入、輸入驗證)並確保資料完整性

  • 保護資源存取(包括檔案系統)、管理策略和執行特權程式碼

使用 JDBC 的資料庫應用程式

  • 連線並執行資料庫SQL操作,使用JDBC API處理查詢結果

本土化

  • 使用區域設定、資源包和 Java API 來解析和格式化訊息、日期和數字來實現本地化

註解

  • 建立、套用和處理註釋



2023年10月4日 星期三

解決 window OS 中java 原始碼,中文預設是Big5編碼,改utf-8亂碼問題

當javac 編譯 .java當時會使用OS預設的locale編碼,在台灣預設Big5也就是MS950,

但你如果把這檔案執行在非Big5如utf-8則會出現亂碼,

即使你把.java編碼一開始存成utf-8也無法改變這狀況,甚至javac會出現以下錯誤:

 unmappable character for encoding MS950

想解決這問題,請以下列步驟實行:

/*
  1.存檔字元集一開始就改utf-8,再打中文字,不然會亂碼
  2.存檔檔名為"TestChUTF8.java"
  3.javac 編譯請加上編譯參數 "-encoding UTF-8" 完整指令如下:
    javac -encoding UTF-8  TestChUTF8.java
  4.執行時請加上執行參數  "-Dfile.encoding=UTF-8" 完整指令如下:
    java -Dfile.encoding=UTF-8  TestChUTF8
    實驗結果:執行參數  "-Dfile.encoding=UTF-8" 可以不加,也可正常顯示
*/

public class TestChUTF8{
    public static void main(String[] args){
        System.out.println("哈哈中文^_^");
    }
}

2023年8月13日 星期日

SHA-1 指紋產生

指令如下: 

android studio 開發工具於安裝時會幫你自動產生一個 debug版本用sha-1指紋

故以下指令列出的是debug版本用sha-1指紋(如你沒有自行產生sha-1的話)

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

重新產生SHA-1指令:

 keytool -genkey  -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

2023年5月29日 星期一

Android — Gralde Plugin 4.0.0的功能 buildFeatures

 2023/05時試驗android時,產生了BuildConfig,binding物件找不到的錯誤,經查詢資料及實作,可用以下方式克服(如:cannot resolve symbol 'BuildConfig')

方式一:在build.gradle(Module:app)檔案加入以下選項:

android {
//.....
buildFeatures {
viewBinding true //建立View Binding物件取代findViewById()
buildConfig true //建立BuildConfig須加這設定
// dataBinding true //過期了目前併入viewBinding
aidl true //AIDL檔案,產生Binder class
renderScript true //決定是否支援renderScript
resValues true //決定注入客製變數是否進入R.java
shaders true //決定支援 shade AOT compilation
}

}
即使做了以上檔案修改,project設定不一定會自動生效:你最好做以下動作:
1.build.gradle----->Sync Now
2,選取android studio開發工具:
  File----->Invalide Caches----->勾選"clear Files","clear VCS"及"Delete embedded browser"
  最後按下"Invalidate and Restart" 按鈕
3.再選取android studio開發工具:
   Build------>clean Project 
4.最後再選取android studio開發工具:
    Build------>rebuild Project 
方式二:在gradle.properties檔案加入以下選項: (這是用在你不止一個模組時的起始設定)
android.defaults.buildfeatures.buildconfig=true
android.defaults.buildfeatures.aidl=true
android.defaults.buildfeatures.renderscript=true
android.defaults.buildfeatures.resvalues=true
android.defaults.buildfeatures.shaders=true
參考的官方網址(目前):
   https://developer.android.com/studio/releases/gradle-plugin?hl=zh-tw#buildFeatures