關於網路那些事...

Marketing, SEO, Web trends, Programming tutorial, Web design, and Life event...

查看Linux 主機 CPU 及記憶體用量,刪除指定進程

查看主機運行狀態

top 是一個互動式的即時顯示工具,可以即時查看負載狀況

top

Continue Reading

主機 Web server log, Laravel log 查詢流程紀錄

主機 log 查詢流程紀錄

簡記常用的 web service log 查詢紀錄流程

Continue Reading

上傳頻寬也會影響下載速度:TCP / IP 連線與 ACK 封包介紹

網路封包

TCP / IP (Transmission Control Protocol over Internet Protocol)使用的是三項交握流程

當你的電腦向某台主機請求資源時,你會發送 SYN 訊息給這台電腦

當這台電腦收到訊息後,會開始將資源 SYN/ACK 傳送給你

Continue Reading

電子計算機計量單位

電子計算機計量單位

電腦基本單位

電腦傳輸最基本的單位是 Bit (位元),又稱為 2 進位,由 1 跟 0 所構成。

Continue Reading

Linux tail 使用方式說明

Linux tail 使用方式

tail 可以取得讀取檔案內容,並且會從底部開始輸出

(另一個 head 指令,則是從前面開始輸出內容)

底下舉例:

Continue Reading

MySQL - 如何計算所有 database 大小

紀錄如何查詢 MySQL 資料庫中,所有 database size

語法如下:

SELECT table_schema "DB Name",
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema; 

Continue Reading

敏捷開發 - Scrum 執行 Sprint backlog

Scrum 執行 Sprint backlog

  • 將 Story 轉化成可被執行的 Sprint 清單

    首先,先確認清楚團隊可投入的有效工作時數

Continue Reading

敏捷開發 - Scrum 執行 Artifact,如何將需求明確化

Artifact,Scrum 文件管理

  • Vision
    • 軟體的遠景、願景
  • User Story

將期待及需求明確化

Continue Reading

敏捷開發 - Activity,執行 scrum 活動的流程

Activity,執行 scrum 活動的流程

  • 初期衝刺規劃 - Sprint planning meeting

    • 每個 sprint 開始的第一天,先進行 4-8 小時 plan to sprint 會議
    • Core Role 成員都需要參與,溝通
    • 逐一將所有 stories point分割成 task 項目(要做什麼,該怎麼做)
    • 估算每一個 task 所需要的時間(單位:小時)
    • 會議結束會產生 Sprint baccklog story (以及 task list)
  • 每日立會 - Daily Scrum 每天15分鐘

    • 每日成員會議,團隊成員輪流報告
    • 昨天目標執行狀況
    • 今天預計完成目標
    • 有沒有遇到什麼問題
  • 檢核 - Sprint

    • 以 2-4 週為一個衝刺區間
    • 在期間內逐一完成 story 中的 task 項目
  • 展示 - sprint demo (review) meeting

    • 在正式 Demo 之前,進行 2-4 小時的預前會議
    • Core Role 成員都需要參與
    • Production owner 會確認 story 有做到他期望的結果
    • Production owner 會再根據 story 提出新的想法,形成新的 sprint 則作為第二階段需求
    • 需預留會發生不符期待所需要的修正時間
  • 回顧 - Sprint repospective metting (1.5-3小時)

    Continue Reading

敏捷開發 - Scrum 敏捷團隊的角色與任務

Scrum

Scrum 是一個敏捷專案管理架構:

Continue Reading

敏捷軟體開發宣言(轉)

敏捷軟體開發宣言

藉著親自並協助他人進行軟體開發, 我們正致力於發掘更優良的軟體開發方法。 透過這樣的努力,我們已建立以下價值觀:

Continue Reading

Git-flow + Scrum

對於本文,請記住,在每個sprint結束時,每個story都標記為已完成或未完成。還要記住,每個story都需要被分解成可以提供商業價值的工作塊。

Continue Reading

Voyager - 客製化 Widgets 教學

Voyager 在管理員登入後,Dashboard 就會出現三個預設的 Widgets

這裡記錄客製化 Widgets 的方式

修改預設 Widgets config

首先,開啟 config/voyager.php

Continue Reading

git 保留修改並且恢復到前一版本

另外可能有一種情況,是本地有修改的內容,這些修改必須保留

但又必須恢復到前一版本

先將本地修改, commit 的內容都恢復到原有狀態

git checkout .

將尚未commit 的內容儲存到 stash

git stash

將版本恢復到指定版本

git reset --heard HASH

將暫存的資料整合回來

git stash pop

Continue Reading

Git 正式機更新資料流程

取回資料

一律使用 fetch 來獲取最新的遠端 branch 內容

fetch 將這些資料,在本地建立 copy

Continue Reading

Git 恢復版本機制,回到上一版或指定版本

假設使用 pull 或 merge 發現有問題

需要將正式機的版本返回到前面正常的節點

Continue Reading

Docker image 結構分析工具 - Dive ,幫助你檢視及減少鏡像的size

Dive 是一個查看 Docker image 層次結構的工具,幫助你管理 image,減少image size。

Continue Reading

Voyager - 客製化 Controller

客製化 Controller

要在指定的 BREAD 套用客製化 Controller 設定,流程如下:

Continue Reading

Laravel Json回應及錯誤處理

Laravel Json回應及錯誤處理

Laravel 再遇到錯誤時,多數會拋出錯誤在介面顯示,並且中斷

這時可以透過 try catch 來捕捉拋出錯誤,自定義要做什麼處理

下方式簡易的錯誤處理範例:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Exception;

class ErrortestController extends Controller
{
    public function index(){
        try {
            throw new Exception('When Error Happened');
        } catch (Exception $e) {
            echo $e->getMessage();
        }
    }
}

這裡列出 Exception 可用的方法

$e->getMessage(); //返回錯誤訊息
$e->getCode();    //返回錯誤代碼
$e->getFile();    //返回錯誤文件名稱
$e->getLine();    //返回發生錯誤的行數
$e->getTrace();   //backtrace()
$e->getTraceAsString();  //格式化成字串的 getTrace

建立 Support 處理返回 api 錯誤

建立 ApiSupport 來處理 api 錯誤

<?php

namespace App\Supports;

use Carbon\Carbon;

class ApiSupport
{

    /**
     * Api response 回傳格式
     *
     * @param array $DataSet
     * 
     * @return object $oResult 回傳值
     * @author Adam
     * @date 2019/01/22
     */
    public static function jsonResponseFormat($DataSet='')
    {
        $oCurrentTime = Carbon::now();
        //預設json返回格式
        $aDefaultDataset = [
                //可以設定在 .env
                "program"=> "my production",
                "version"=> "1.2.3",
                "release"=> "45",
                //動態參數
                "datetime"=> $oCurrentTime,
                "timestamp"=> strtotime($oCurrentTime->toDateTimeString()),
                "status"=> "",//success
                "code"=> 200,
                "message"=> "OK",
                "error"=> false,
                "error_message"=> "",
                "data"=> [
                    "rotues"=> [
                        "method"=>"GET",
                        "path"=> "/users",
                        "description"=> "Get user data"
                    ],
                    "message"=> "Hello world"
                ]
            ];
        $oResult = array_merge($aDefaultDataset, $DataSet);
        return $oResult;
    }
}

json回應就可以直接引用

Continue Reading

Voyager - Bread Create relationships

對於 Voyager 建立關係的項目中,這裡舉例子來說明:

範例

以送養人可以擁有多隻寵物,對於這些寵物則對應同一個送養人

這裡我們希望在新增寵物時,可以下拉選單選取他所屬的送養人是誰

送養人會自動產生關聯,得知他一共擁有多少隻寵物

Has Many

送養人 (guardian) 會擁有許多寵物 (Adoptee) ,Adoptee 的 Model 空間命名位置 : App\Adoptee

從哪一列…? Adoptee 被引用於(reference) Guardian? guardian_id

顯示向詳細訊息

顯示 Adoptee: name

Belongs To

寵物 (adoptee) 原始送養人 (guardian) ,Guardian 的Model空間命名位置: App\Guardian

從哪一列…? Adoptee 被引用於(reference) Guardian? guardians_id

選取項詳細訊息

顯示 Guardian: name

保存 Guardian: id

Continue Reading