Category: Uncategorized

  • 當你的Windows應用程式完全無法執行時,該怎麼辦?

    當你的Windows應用程式完全無法執行時,該怎麼辦?


    文章資訊來源:

    【以解決】各位.exe檔案打不開,不要相信”在 Windows 7 或 Windows Vista 中無法打開 .EXE 檔案”這篇文章 @程式設計板 哈啦板 – 巴哈姆特 (gamer.com.tw)

    文章快速導覽


    先等一下!

    這種情況,幾乎是Windows 更新之後,留下來的爛攤子…

    如果你的Windows 狀況如下…

    1. 不能上網
    2. 滑鼠右鍵>>新增>>無法新增任何檔案
    3. 沒有另一台電腦
    4. 沒有朋友… (嗚嗚

    那麼… 恭喜你啦!

    下方內容,不用再看了!

    乖乖地拿電腦去找人重新安裝吧!


    解決辦法

    我們先把檔名”新增文字文件.txt”改成”新增文字文件.bat”

    「檔名改為.bat檔名,依舊是txt格式」的問題

    檔案總管_顯示出附檔名

    檔案總管>> 檢視 >>詳細資料夾 >> 副檔名

    我們再回去看一下之前的【新文字文件】

    將bat_插入註冊文字

    改完之後還是無法啟動,點滑鼠右鍵一下選新增文字文件.bat

    滑鼠右鍵按”編輯”!

    你記事本可以打開的話,把下面的內容複製貼上

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.exe] @="exefile"

    再更改檔名

    生成reg檔案

    最後結語

    (字幕)Windows 應用程式圖示不見或變成空白 – YouTube

  • RESTful API 是什麼?

    圖片來源: https://itznihal.medium.com/api-rest-api-and-restful-api-7767d9997854

    參考資料如下:


    API 是什麼?

    當我們談論API(應用程式編程界面)時,實際上在討論一種使不同軟體應用程式能夠互相通信和互動的機制。API遵循特定的規則和協議,使不同軟體系統能夠交換資訊、執行操作,而無需了解對方的內部運作細節。API是現代軟體開發中不可或缺的一部分,它使開發人員能夠輕鬆地訪問和使用其他軟體、服務或函式庫的功能。

    *由ChatGPT潤稿


    RESTful 是什麼?

    RESTful(Representational State Transfer)。

    基於一系列原則和約定,確保API具有可伸縮性、簡單性、可理解性和可靠性。

    RESTful API使用HTTP協議進行通信,將資源表示為唯一的URL,使用HTTP方法(如GET、POST、PUT、DELETE等)執行各種操作,資源的表示通常以通用的數據格式最常見的是JSON或XML)進行傳輸。

    RESTful設計風格的一些特點,這些特點有助於更深入了解它的運作方式:

    1. 資源表示:每個資源都有唯一的URL,可以使用HTTP方法對其進行各種操作。
    2. 無狀態性:RESTful通信是無狀態的,每個請求都必須包含所有必要的資訊,服務器不保留客戶端狀態資訊。
    3. 使用HTTP方法:HTTP方法(如GET、POST、PUT、DELETE)執行不同的操作,包括創建、讀取、更新和刪除(CRUD)等操作。
    4. 支援多種數據格式:RESTful API通常支援多種數據格式,最常見的是JSON,簡化了數據交換。
    5. 自描述性:RESTful API提供足夠的信息,使客戶端能夠理解如何使用API,無需深入了解API細節。

    總之,API是軟體開發的關鍵,RESTful是一種重要的API設計風格,使用HTTP協議和設計原則創建可伸縮且易於理解的API。這些概念的理解對於軟體開發至關重要。

    Was this response better or worse?BetterWorseSame

    *由ChatGPT潤稿


    RESTful API 請求資源的方法

    需要包含的元件為:

    • 唯一資源識別符: 伺服器通常使用統一的 URL 來執行資源識別。
    • 方法:通常用 HTTP 來實作,因此需要告訴 Server 用什麼樣的方法操作
      • GET:獲得資源
      • POST:新增資源
      • PUT:修改資源(若原本無資料則新增)
      • PATCH:修改資源(只修改部分資源)
      • DELETE:刪除資源
    • HTTP 標頭:Client 與 Server 之間的中繼資料,當中包含所需參數(路徑參數、Cookie 參數等)

    當我們在使用URL對特定資源請求動作時,首先需要明確我們的意圖

    這就好比在日常生活中,當你想要對某個物品,比如一個杯子,進行操作,但又需要協助時,你必須清晰地表達你希望對這個杯子進行的操作,以使他人能夠理解你的意圖並協助你完成任務,例如「拿杯子」或「丟杯子」。

    在網際網路上也是如此,只不過這裡我們使用的是電腦可理解的語言,例如“GET”這個URL或”DELETE”這個URL。

    動作物品
    日常生活動作拿、丟杯子
    網際網路( 與你的電腦溝通)GET, DELETEURL

    表格內容來源: https://tw.alphacamp.co/blog/rest-restful-api?gclid=CjwKCAjw9-6oBhBaEiwAHv1QvNrYIyfsJRxjXW7dv3h9mqu5q8V0Zz47AqtJFO_HP6N01ufCWITsUxoCfaAQAvD_BwE


    RESTful API 的路由語義化設計

    RESTful API的路由語義化設計是一種設計原則。

    旨在使API的路由(或端點)具有清晰的、易於理解的語義,以便開發人員和用戶能夠更容易地理解和使用API。

    這種設計風格的主要目標是提高API的可讀性、可維護性和可用性

    以下是RESTfuZl API的路由語義化設計的一些重要特點:

    • 使用清晰的URL結構:URL應該具有語義,能夠反映API端點的目的。例如,如果你設計一個部落格應用的API,則可以使用像/posts來表示所有部落格文章,而/posts/{id}則用於單獨一篇文章。
    • 使用HTTP動詞:HTTP方法(GET、POST、PUT、DELETE等)應該與API端點的操作相關聯。例如,使用GET方法來檢索資源,使用POST方法來創建資源,使用PUT方法來更新資源,使用DELETE方法來刪除資源。
    • 使用複數名詞:對於表示多個資源的端點,應該使用複數名詞,例如/users表示所有用戶,而不是/user
    • 使用子資源:如果需要表示資源之間的關係,可以使用子資源路由。例如,/posts/{post_id}/comments表示一篇文章的所有評論。
    • 使用選擇性的篩選器和參數:允許客戶端使用選擇性的篩選器和參數來自訂請求,以便獲取特定子集的資源。例如,/products?category=electronics可以用於檢索特定類別的產品。
    • 使用HTTP狀態碼:使用適當的HTTP狀態碼來指示請求的結果,例如200表示成功,404表示資源不存在,201表示創建成功等。
    • 提供詳細的API文檔:除了清晰的路由設計,還應該提供詳細的API文檔,以幫助開發人員理解如何使用API,包括端點的語義和支持的請求參數。

  • JS – Read the Data in Object讀取物件內屬性的另一個方法

    如題

    僅演示該方法

    讀取物件內屬性

    當你的物件建立完成後, 你可以利用 [ 中括號 ] 去讀取屬性資料!

    執行結果

  • JS Delete the Data in Object刪除物件資料

    延用物件Dynamics 的範例去解說刪除物件內的屬性!

    https://www.educative.io/answers/what-is-the-delete-operator-in-javascript

    加入刪除物件_屬性

    加入delete 語句

    執行結果

  • JS- Object is Empty 空物件/你的物件內屬性常常變動嗎?

    理解物件的概念之後, 這裡示範空物件產生

    空物件的用法, 一般是用在時常變動內部屬性的的物件名稱

    何謂空物件

    格式: Let 物件名稱 = {大括號}Object is Empty

    執行結果

    物件作用域外_新增屬性

    把該物件名稱 Dynamics

    加入其他的屬性

    • dog
    • playStation
    • food

    執行結果


    更改屬性內部值

    執行結果

  • C++ 基本架構

    學習C++ 已經是我大學時期的經驗了

    C++ 學習路徑會因為你所處的產業而有所不同並沒有快速且系統的學習路徑

    只有把基本觀念、架構以及開發環境設定弄熟,是學習者先需要有的認知。

    作者的學習路程

    • 剛開始碰觸是大學一年級 : 博碩文化出版的 C++ 物件導向 程式設定實例入門
    • 出社會後一年為了撿回語感再碰一次 C++
    • 2019~2022這段時間有空,研究一下一些開源的Lib以及機器學習
    • 最近參考書籍 C++ Primer Plus 5/e
    參考: http://www.w3big.com/zh-TW/cplusplus/cpp-intro.html#gsc.tab=0

    範例

    //匯入標準程式庫相關的輸出、輸入程式
    #include <iostream>
    
    //匯入標準程式庫相關的字串程式
    #include <string>
    
    //std 是標準程式庫的 命名空間
    using namespace std;
    
    //建立 建構子
    class Player
    {
        public:
    
    //建立 物件
            Player()
            {
    //cout 輸出字串內容
                cout << "Hello World!" << endl;
            }
    };
    
    //所有 C++ 程式都必須有函 main 式
    // () 內部沒有Return value 回傳值 = void
    
    int main()
    {
        Player mylayer;
        system("pause");
    }
    

    < 建構子內部的Public 封裝 解釋 >

    class Player
    {
        public:
             Player()
            {
                    cout << "Hello World!" << endl;
            }
    
    };
    
    因為C++ 預設類別為 Private
    建構子與類別具有相同的名稱,且沒有任何回傳值! 

    < 主程式 解釋 >

    int main()
    {
        // 類別 抽象名稱
        Player mylayer;
    
        // 讓 CONSOLE 暫停在此
        system("pause");
    }
  • CSS-Flex內層、外層

    CSS-Flex內層、外層

    https://x-team.com/blog/css-grid-vs-flexbox/

    參考資料:

    https://sharkcoder.com/layout/flexbox


    當你開始寫CSS 的時候, 你會知道… 層級概念

    換句話說:

    外層(父層) :

    決定軸方向、Flex 的方式

    內層(子層) :

    內部屬性調整
    From 六角學院

    外層_Container

    HTML 文本

    將<div> 分隔標籤寫出來,方便接下來做外層的演示。

    <body>
        <div class="container">
    
            <div class="item item1">1</div>
            <div class="item item2">2</div>
            <div class="item item3">3</div>
            
            </div>
    </body>

    CSS 裝飾語言

    .container{
        display: flex;
        background: greenyellow;
        width: 1000px;
        margin: 0 auto;
        padding: 50px;
      }

    外層Contianer 結果顯示

    內層_Item

    CSS 裝飾語言

    .container{
        display: flex;
        background: greenyellow;
        width: 1000px;
        margin: 0 auto;
        padding: 50px;
      }
    
      .item{
        background: red;
        font-size: 30px;
        width: 600px;
        text-align: center;
        margin: 10px;
      }

    內層Item 結果顯示

  • JavaScript 白話物件範例

    本身是工業機電整合 背景的工程師

    喜歡土炮 + 自己架設環境的個性

    又剛剛好是機械系畢業的…

    接下來讓我用機械、機構、機件去解釋甚麼是 “物件”


    資助一下肝肝的工程師吧! A_A ETH/ERC20

    [ 物件-機械類比 ]

    我們組成機械組成單位, 由大到小去闡述: 
    1. 機件: 機構構成之最原始的構件
    2. 單位機構: 尚未達成完全機構功能要求, 卻可以達到預期的運動
    3. 合成機構: 組成大目的性的預期效果之機構
    4. 機器: 改變能量形式, 達到預期有效的功能
    5. 機械: 除了改變能量形式之外, 也可以轉移能量形式變為功
    https://coggle.it/diagram/W6taIQWWyVMDB1yL/t/%E6%A9%9F%E6%A7%8B%E6%A9%9F%E6%A2%B0%E6%A9%9F%E4%BB%B6

    在開始白話解釋物件時, 我們得先知道括號種類


    [括號分別]

    蠻多人到了我這個年紀, 卻不知道括號有哪幾種?

    這裡我幫忙整理幾個…

    https://zh.wikipedia.org/zh-tw/%E6%8B%AC%E5%8F%B7

    • 小括弧(英語:parentheses,又稱圓括弧括弧
    • 中括弧(英語:square brackets,又稱方括弧
      • 半形 []
      • 全形 []
    • 大括弧(英語:curly brackets, 又稱花括弧
      • 半形 {}
      • 全形 {}
    • 六角括弧 〔〕
    • 方頭括弧
      • 實心 【】
      • 空心 〖〗

    [物件-白話]

    let 機器 ={
    
        {
    機件1:"連桿",
    機件2:"滑塊",
    機件3:"基座",
    完全機構1:"減速機",
    
    },
    {
    
    機件1:"軸承",
    機件2:"鉚釘",
    機件3:"螺帽",
    完全機構1:"被動軸承基座",
    完全機構2:"螺桿",
    
    }
    
    }

    [物件內的括號]

    • []中括號: 陣列使用
    • {}大括號: 物件使用
    • ()小括號: 函式參數使用
  • JS-運算元Operands、運算子Operator、優先性Precedence、相依性Associativity

    參考資料: MDN Web, 六角學院

    運算子優先序(Operator precedence)決定了運算子彼此之間被語法解析的方式,優先序較高的運算子會成為優先序較低運算子的運算元(operands)。

    請給予肝肝的工程師一些支持! 'W'

    <運算式與運算子/條件運算子>

    摘錄:

    條件 (三元) 運算子 是 JS唯一用到三個運算元的運算子:在一個條件後面會跟著一個問號 (?),如果條件是 true,在冒號(:)前的表達式會被執行,如果條件是 false,在冒號後面的表達式會被執行,這個運算子常常被用來當作 if 的簡潔寫法.

    function getSalary(isMember) {
      return (isMember ? '$3600.0' : '$4000.0');
    }
    
    console.log(getSalary(true));
    // expected output: "$3600.0"
    
    console.log(getSalary(false));
    // expected output: "$4000.0"
    
    console.log(getSalarye(null));
    // expected output: "$4000.0"

    3600.0 //運算元

    4000.0 //運算元

    運算子語法結構>>

    condition ? exprIfTrue : exprIfFalse

    參數

    condition
    • 值用來做為條件的表達式
    exprIfTrue
    • 如果 condition = trueexprIfTrue 會被執行
    exprIfFalse
    • 如果 condition =falseexprIfFalse 也會被執行

    <優先性>

    先乘除後加減->>

    var valueA =3*2 + 4*3
    var valueB =4*(3*8)
    console.log(valueA,valueB);
    
    // output: 18,96
    
    console.log(3 + 4 * 5); // 3 + 20
    // output: 23
    
    console.log(4 * 3 ** 2); // 4 * 9
    // output: 36
    
    let a;
    let b;
    
    console.log(a = b = 5);
    // expected output: 5

    相依性-由左邊到右邊判斷>>>

    剛剛我們說到了Javascript 遵從先乘除後加減規格, 但我們仍然試圖找尋這些奇怪的地方。這裡很需要各位的拆解能力。
    console.log(1>2>3);
    console.log(3>2>1);

    不要急, 慢慢想!

    不要這麼輕易的就看答案!

    .

    .

    .

    .

    .

    .

    .

    答案揭曉

    神奇的事情發生了~

    console.log(1>2>3);
    console.log(3>2>1);
    // true 
       false
    3>2  //這裡就會變成true
    true > 1 // 按照通識觀念, 這一定會是false。

    表達式賦予值>>

    Object.defineProperty() 用法參考這!

    • The static method Object.defineProperty() defines a new property directly on an object, or modifies an existing property on an object, and returns the object.
    // 物件
    var b = {};
    
    //宣告物件.屬性
    Object.defineProperty(b,'a',{
    
    value: 2,
    writable:false
    
    });
    
    b.a =3; //賦予值 3
    console.log(b.a);
    
    var a=3;
    
    a=b.a =1; //奇怪的地方喔! 
    
    console.log(a,b.a);
    // Output
       2
       1,2

    b.a =3 賦予值, 但是 Object.defineProperty 屬性內是不可更改 = “writable: false”

    a=b.a =1; //奇怪的地方喔!

    走啊! 回去翻翻 JS表達式的特性 文章, 你將會知道答案。
    // 物件
    var b = {};
    
    //宣告物件.屬性
    Object.defineProperty(b,'a',{
    
    value: 2,
    writable:false
    
    });
    
    b.a =3; //賦予值 3
    console.log(b.a);
    
    var a=3;
    
    a=b.a =1; //奇怪的地方喔! 
    
    console.log(a,b.a);
    // Output
       2
       1,2

    我們再建立另外一個物件.屬性

    Object.defineProperty() 用法參考這!

    var b = {};
    Object.defineProperty(b,'a',{
    value: 2,
    writable:false
    });
    
    Object.defineProperty(b,'d',{
        value: 3,
        writable:false
        });
    
    console.log(b);
    
    var a=3;
    
    a=b.d=b.a =1;// 主要是這個地方需要探討
    
    console.log(a);

    程式執行的結果如下: