如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2019年11月30日

[軟體工具] 免費的個人工具軟體 - 2019年Fred 精選推薦 2019-11

作者: Fred F.M. Wang (FW知識瑣記) 日期: 20191130

過去六年整理了一些免費軟體,Open Source(開源)工具與平台(文)推薦給大家,作為日常個人電腦工作環境的參考,今年再次針對個人用的免費工具軟體,做了一些的修訂 :

一 瀏覽器插件
Firefox , Google Chrome - 數量眾多的Add-ons,例如,可以透過插件減少記憶體的耗用。筆者最喜歡使用的Firefox, Chrome插件有下面幾類 :

1. 網頁翻譯 

新同文堂 : 網頁中文簡繁翻譯,單鍵就可以將整個簡體網頁,立即轉成繁體網頁(Chrome版, Firefox版)。

2. 影音輔助下載

Video DownloadHelper : 下載多數網站的影片與音樂,但是高畫質影片需要下載夥伴軟體。
Video Downloader professional : 除了Youtube以外,其餘的都可以下載 (Chrome版, Firefox版)  (新推薦)
SaveFrom.net helper all-in-1 : 可下載Youtube, Dailymotion, Vimeo, Facebook, Instagram, Tiktok等網站的影片。(Chrome版, Firefox版)  (新推薦)

3. 網頁安全

Adblock Plus : 阻擋廣告
Flash Blocker Strict : 控制是否顯示該網址的Flash內容,避免因為Flash造成網頁瀏覽速度太慢或當掉。


4.複製網頁文字

Copy Plain Text : 可複製網頁內容的不含任何格式的純文字部分,不含連結。

 

二 個人生產力軟體

1. 離線郵件軟體(可取代MS-Outlook) 
Mozilla ThunderBird : 支援POP3, SMTP,IMAP 可整合Google日曆,Google通訊錄,Google+等,還有許多其他的插件可以使用。(可取代MS-Outlook)

2. PDF產生與轉換工具   
Bullzip PDF Printer - 以選擇印表機的方式輸出成PDF檔,因此所有格式的檔案都可以轉成PDF,而且可以產生浮水印,操作容易,且免費。
Wondershare PDF to Word(試用版) -可以將PDF轉成Word檔案的工具。

3. 螢幕剪貼工具   
Greenshot - 快速好用(免費),方便製作系統操作說明等 

4. 雲端筆記軟體離線版   
Evernote (取代MS-OneNote)

5. 文字編輯器/程式編輯器   
Nodepad++ - 免費好用,也可做為程式編輯器(可取代微軟的記事本與UltraEditor)。 (可以省下UltraEditor費用: USD 59.95)

6. 心智圖工具   
FreeMind

三 多媒體工具
 

1.讀圖軟體 
IrfanView
XnViewMP - 支援讀取unicode檔名的圖檔  (新推薦)

2.影音播放軟體   
VLC Media Player(比MS Windows Media Player可讀更多類型的影音檔案)       可讀更多類型的影音檔案,但不支援讀取unicode檔名的影音檔
PotPlayer 可以讀取unicode檔名的影音檔 (新推薦)

3.讓檔案管理員可以預覽更多類型的檔案   
BabelSoft "Media Preview", 例如,讓flv等檔案可以在資料夾中preview

4.圖片/相片編輯工具   
GIMP
PhotoScap是一款多功能的照片編輯軟體,有免費的繁體中文版,包含相片拼貼、修圖、照片剪裁和增加效果、製作動畫等超好用工具 (新推薦)

5.影音檔解碼編碼器   
K-Lite Codec Tweak Tool 可以檢測你系統中存在的錯誤的影音編碼濾鏡,然後清除它們。當此工具檢測到錯誤或者被破壞的文件之後,會提示你操作修復。

6.音頻編輯   
Audacity

7.影音轉檔   
Freemaker Video Converter
WinX HD Video Converter Deluxe(試用版)  (新推薦)

8.相似影像檔搜尋   
Similar Image Finder

四 檔案與資料夾管理
 

1. 檔案壓縮與解壓縮
    
Bandizip 可以讓壓縮的檔案,檔名以Unicode編碼儲存,避免電腦使用不同語言的人,解壓縮時看到的是亂碼 。
7Zip : 能處理大部份的壓縮格式 (如 Zip, RAR (唯解壓), tgz, tar, iso, arg 等),它有提供一種獨特的壓縮格式(副檔名為 .7z),能夠建立容量比一般 ZIP 檔更小的壓縮檔案

2.檔案同步與資料備份
    
FreeFileSync : 可以對兩個資料夾進行單向或雙向同步,也可以產生批次排程檔,由Windows工作排程器定時執行同步。
RealTimeSync : 可以即時同步兩個資料夾。

3.檔案重複處理
    
Fast Duplicate File Finder
Auslogics Duplicate File Finder

4.樹狀資料夾顯示與排序
    
TreeSize Free - 樹狀方式顯示資料夾的檔案數量,合計大小與比例,並可以不同的方式排序資料夾。

5.電腦檔案搜尋
    
Everything -超快速檔案搜尋工具, 比Windows內建的搜尋功能好用太多了(新推薦)

6.批次檔案更名
    
FileRenamer - 提供各種更改大量檔案名稱的方法,免費版不支援包含子資料夾的檔案更名。(新推薦)

7.多格檔案總管
    
Q-Dir -可在同一個畫面中同時顯示4個、3個、2個或1個檔案管理視窗,不必一直切換視窗,支援拖放功能,檔案搬移相當方便 (新推薦)

8.多媒體檔案管理
    
Adobe Bridge使用類似檔案瀏覽器的格式,整理多媒體檔案(如圖片,相片和影片),方便修改檔案屬性,並可以對檔案自訂關鍵字,以關鍵字搜尋檔案,整理照片很方便(新推薦)
 

五 硬碟/磁碟管理
1. 硬碟檢測   
HDTune

2.硬碟分割管理   
Easeus Partition Manager

3.硬碟重整    

IOBit SmartDefrag是硬碟重整絕佳的選擇

4.顯示硬碟資訊與狀態   
Crystal DiskInfo  (新推薦)

5.測試硬碟讀寫速度   
Crystal DiskMark  (新推薦)

六 PC檢測與調校軟體 

1電腦診斷與調校工具
    
IOBit Advanced System Care 可以方便的清理電腦,提升效能,還包含許多工具如大黨清理,重複檔案掃描,啟動管理,磁碟醫生,檔案粉碎工具,程式停用工具等。

2.電腦清理工具
    
CCLeaner 老牌軟體,不須多做介紹

3.對外網路連線監控
    
Tcpview  - 看看您的電腦正在啟動哪些連線,是甚麼程式啟動這些連線的。

4.軟體完整移除工具   
Revo Uninstaller : 可以乾淨地移除所有軟體設定。

5.電腦溫度顯示
CoreTemp

6.顯示電腦規格   
CPU-Z,檢查CPU,主機板與記憶體等規格。

七 資安/防毒軟體

1.防毒軟體    
a. Avast  b.AVG  c. Kaspersky(註 : 應避免使用C國的防毒軟體)
 

2.流氓軟體清除工具   
Adwcleaner,目前清除能力最強的工具

3.瀏覽器首頁保護
  
IOBit Advanced System Care 的首頁保護小工具,避免瀏覽器首頁被綁架。

4. 警政署惡意程式偵測工具  
NPASCAN。

八 工作軟體
1.Office套裝軟體
    
Kingsoft WPS Office(與MS Office 99.9%整合, 可取代MS-Office)
Google Docs/ Google Sheets/ Google Slides
 

2.專案管理   
(取代MS-Project) : ProjectLibre - 可以取代Microsoft Project的免費專案管理工具, 功能 :  甘特圖, 網狀圖, 工作分解圖(WBS), 資源分解圖, 資源設定及指派, 行事曆設定, 進度追蹤報告, 資源質方圖, S曲線圖 (可以省下Microsoft Project Standard 費用 : USD 369.99 約台幣一萬元)

3 流程圖軟體(可取代MS Visio)
    
yEd Graph Editor - 可以用來取代微軟Visio的免費流程圖工具,缺點是樣板較少  (yEd-3.10_with-JRE_setup.exe, 可以省下Microsoft Visio Standard 費用 : USD 198.58)
線上流程圖平台 : Draw.io 專業水準完全免費, 畫完的圖直接儲存在你自己的雲端硬碟,可以轉成圖檔或PDF檔。
ArgoUML - 用來畫UML圖 (新推薦)

4.電腦遠端控制   
TeamViewer - 知名的遠端控制軟體

5. 檔案傳輸   
Filezilla 知名的FTP工具,不須多做介紹。

九 其他

1CD/DVD燒錄軟體  
CDBurnerXP
ImgBurn

2019年11月22日

[網頁程式設計] 為什麼Submit按鈕失效?

作者: Fred F.M. Wang (FW知識瑣記) 日期:2019-11-22


在網頁程式設計時,有時候會發生很奇怪的錯誤,在某些狀況下按Submit按鈕,後端程式卻沒有執行
,其他狀況又不會有問題,除錯半天還是找不到錯誤。

第一種情況就是您的Javascript或jQuery的語法有錯,如果您不想自己一行一行檢視錯誤,就將程式
貼到網路上免費的線上語法檢查網頁檢查看看。 
如 codebeautify.org的JavaScript Validator  ,piliapp.com的Javascript Validator

如果語法都正確,那有可能是發生在按Submit按鈕時網頁內有隱藏的輸入區塊有必填(required)的輸
入欄位,這個欄位該輸入資料而沒有輸入,就會卡住Submit的送出。

因為這個輸入區塊在特定條件下才會顯示,測試時不容易發現。

解決方式就是 :
* 此區塊的輸入欄位不要設定為required欄位,在需要顯示此輸入區塊來輸入資料時,再透過
javascript或jquery設定為required

例如
/* 按下cfmbutton按鈕,開啟addbox區塊 */
 $("span#cfmbutton").click(function (e) {
    $('#addbox').css('display','table-row');  // 開啟addbox區塊
     $("input[name='f_plandlvdate']").attr('required', true);    // addbox區塊中的兩個欄位設為必填
    $("input[name='f_quantity']").attr('required', true);   
});

/* 按下closeaddbox按鈕, 關閉addbox區塊  */  
 $("button[name = 'closeaddbox']").click(function (e) {    
    $("input[name='f_plandlvdate']").attr('required', false);      // addbox區塊中的兩個欄位取消必填
    $("input[name='f_quantity']").attr('required', false);                
    $('#addbox').css('display','none');    // 關閉addbox區塊
 });   

2019年11月1日

[Ajax-PHP] HTML表單按下送出按鈕後,使用Ajax呼叫後台程式檢查表單內容的注意事項

作者: Fred F.M. Wang (FW知識瑣記) 日期:

javascript除了除錯不容易外, 在Ajax上也有一些奇怪的地方,下面是我爬過一些國外的技術文章與
自己多次錯誤嘗試的結果。

如果您HTML表單要在按下送出按鈕後,需要先呼叫後台程式檢查表單內容(使用Ajax)後, 再實際將
表單送到後台處理。HTML程式碼如下 :

<form action="form_action.php" id="signupForm" method="get">
...輸入資料...
  <input type="submit" value="Submit" />
</form>


有下面四點注意事項 : 
1. 表單按下送出(Submit)按鈕後, 要先用event.preventDefault() 取消表單預設送出Submit動作, 也就是form_action.php將不會執行, 如果少這行就不會正常呼叫後台檢查表單內容的程式。

2. 再使用Ajax呼叫後台檢查表單內容的程式(check_signup.php), Ajax程式碼如下方
$('#signupForm').submit(...) 內的程式碼,如果使用GET方式傳遞參數時, 部分參數內容無法傳遞
, 例如參數值有"XXX" 時就無法傳遞,改用POST就沒有問題,因此,建議一律採用POST方式傳遞資
料給後台程式。


3.表單內容檢查完畢(也就是後台檢查表單內容的程式執行完畢), 回傳資料給Ajax程式,如果無
誤時,執行 this.unbind('submit'); 這個功能用來先解除(unbind)檢查表單的事件處理程序,也就
是後面的this.submit()不會再呼叫自行撰寫的
$('#signupForm').submit(...) 程式 (如果不寫unbind, 會重複執行這段Ajax程式)。

4. 執行this.submit(); 等同於再按下送出(Submit)按鈕 。也就是執行form_action.php
5. $.ajax(...); 後到function結束前如果還有程式碼,就完全不會執行。
 
Javascript內的程式碼 :
 
$('#signupForm').submit(function(event){
    event.preventDefault();  // 取消表單預設送出Submit動作
    $.ajax({
        url: 'check_signup.php',  // 後台檢查表單內容的程式
        method: 'POST',
        data: {user_name:$('#user_name').val(),email:$('#email').val(),
                first_name:$('#first_name').val(),last_name:$('#last_name').val(),
                password:$('#password').val(),password2:$('#password2').val(),},
        dataType: 'json',
        success: function(data){  // 表單內容檢查完畢
            for(var input_field in data){
                $('#'+input_field+'-error').html(data[input_field]);
            }
            var if_signup = true;
            for(var key in data){
                if(data[key]!==""){
                    if_signup = false;
                    break;
                }
            }
            if(if_signup){ // 檢查無誤
                this.unbind('submit');
                this.submit();
            }
        }
     });

      //  這裡如果還有程式碼,完全不會執行。

資料庫中的char(1)與varchar(1)有甚麼不同?

作者: Fred F.M. Wang (FW知識瑣記) 日期:2019/11/1

在設計資料庫表格時,常常猶豫要使用char或varchar,在此以char(1)與varchar(1)為例做比較,看看兩者的差異,使用哪一個比較好。

一 長度顯示上的差異
1. 內容是空值時, char(1)長度為1. varchar(1)長度為零
2. 內容是空白時,char(1)長度為1. varchar(1)長度為1

二 實際使用空間的差異

   char(1)實際使用1 bytes, varchar除了原資料的長度外,會額外需要兩個bytes,因varchar(1)會使用到3 bytes

結論 : 如果您的資料欄位只需要一個字元,就直接使用char(1),當資料量很大時,就可以節省許多儲存空間。


參考 varchar(1) VS char(1)