pretty code

2021年6月30日 星期三

Kobo Elipsa 入手初體驗

我是第一批預購的讀者,結帳時間差不多在 PM 7:00 左右,昨天快傍晚時終於等到我期待已久的機器,開門一看到此包裹,立馬上網打下班卡好盡情的體驗此機器。



整體包裝果然有精品的感覺,每樣東西都有獨立的包裝盒,其中手寫筆附贈的電池、筆芯以及拆換筆芯的工具則是隱藏在筆盒內盒泡棉盒的背面,如果有沒看說明書的讀者,別忘了還有這三樣小東西XD

拿在手上果然是有點重,尤其我前一台 10 吋機器是 mooInk Pro,就算跟我前前一台不到半年就掛掉的 Onyx Boox Note Lite 比,感覺 Elipsa 確實是有比較重,但我當初就只想要定點使用,我想應該可以接受,另外,Elipsa 有自動感應螢幕翻轉的功能,故可以隨時換手閱讀,早上稍微用右手拿著看一下書,會感覺到右邊手拿處背面有溫溫的感覺。為了有螢幕閱讀燈,重量真的是必要之惡,有了螢幕閱讀燈,在光線不足時也比較容易閱讀。

昨天拿到時本想來安裝自己開發的 KoboPageTurner,雖然一些網友分享手邊翻頁器無法使用,但還是不死心的試看看體驗功能裡的藍牙連線,沒想到一試之下,居然可以成功翻頁!就連自己的 PDF 書籍也可以順利翻頁。


可能是體驗版的緣故,雖然昨天睡覺前已充飽電,但今早起來,電量已不到 30 %,難怪這個功能會放在體驗版中,想要使用的網友,不用時記得要關閉藍牙,目前藍牙功能在通知列是沒有任何圖示提醒的。

稍微試用了一下筆,感覺還可以,不過我本來就很少用筆記功能,故不太介意功能完整度,由於我螢幕的塑膠膜仍未撕下,手寫感覺是有點滑,但速度我覺得沒問題。

我另外一個重視的點是 PDF,這也是我當初購買的原因之一,試讀了 Google 圖書購買的資訊書籍,配合我用 Acrobat Pro 加上的目錄功能,Elipsa 也可以正常處理,最主要是它可以點選翻頁,我個人是比較喜歡點選翻頁的方式,但據網友分享,搭配手寫似乎會有誤翻頁的情況,如果有網友遇到同一問題,也許可以考慮只設定滑動翻頁。


另外,我試用的 PDF 約 6.38 MB 大小,總共有 416 頁,感覺是比 Kobo 內建書籍翻頁還來得慢,平均翻頁速度約 1.84 秒,以我購買的《萬能店員:我的便利、你的過勞,超商的社會代價》一書來對比,平均翻頁速度則約 1.03 秒。

整體來說,此台機器有達到我當初購買的目標,沒有意外的話,在家應該都只會使用它,雖然我的最愛還是 Kindle Paperwhite 3,但在肩膀受傷的情況下,為了正常看書,還是只能用翻頁器來閱讀,這也是為什麼這台封閉式系統的機器有內建藍牙是多麼棒的優點了。

2021/07/05 更新

看來這台機器的硬傷是閱讀 PDF 及固定版面書籍,據我用碼錶實測的結果,平均都至少要 2 秒左右,單純以這個速度來看,mooInk Pro 10 吋似乎也沒多慢?

2021/07/06 更新

昨天晚上終於把 Elipsa 的觸控封包搞懂,讓我的 KoboPageTurner 專案也可以用在 Elipsa 上。當初想得還是太簡單了,覺得觸控面板應該都大同小異,同樣的 raw data 應該可以共用?目前只知道 ClaraHD 和 H2O 可以共用,就不知道另外一台 8 吋的 Forma 是否可以延用目前已搞定的兩種封包格式?

2021/11/17 更新

強力推薦安裝第三方軟體,我安裝了 KOReader 和 Plato 兩套軟體,PDF 閱讀體驗果然提升不只一個檔次。

2021年6月29日 星期二

Kindle App 登入小技巧

我想應該有人跟我一樣,當初在註冊不同亞馬遜帳號時並沒有考慮太多(或者說不知道不同國家帳號是分開的),直接都用相同帳號註冊,像我就是延用美亞的 email 帳號註冊中亞,一開始甚至還使用相同密碼,後來因為不容易在 Kindle App 中登入想要去的亞馬遜網站,便聽從網路建議,將不同亞馬遜帳號設定不同登入密碼,終於可以順利登入我要去的亞馬遜網站。

即使是更改密碼,有時候仍然不能順利登入,像我就常常遇到不管怎樣都會登入美亞的問題。

有一陣子發現可以使用系統語系的方式來選擇要登入的亞馬遜網站,比如說英文語系就是美亞,中文語系就是中亞。

但這一招在我的 HyRead Pocket 並無法順利成功,不論我如何切換語系,App 就是會嘗試要幫我登入到美亞,後來實在沒辦法,進到中亞帳號設定中瀏覽了一下,發現居然有修改登入帳號(email)的選項,馬上換了另外一個 email 登入帳號,說也奇怪,我終於可以順利的登入到中亞了。

希望有跟我一樣問題的人,可以試著使用不同的登入帳號,也許就不再有登入問題了。

我想對亞馬遜來說,資料庫應該有另一個 ID 欄位,故在註冊後仍然可以隨意的更改 email 帳號而不會有任何問題。

2021年6月27日 星期日

改造 Google 圖書購買的 PDF 資訊書籍

雖然如標題所述,這類技術書籍每頁都是一張圖片,但也沒有其他地方有賣 EPUB 的中文電子書,對於我們這些不想看原文書的又不想買紙本書的人來說,也只能鼻子摸摸的接受它。

不能複製程式碼事小,每次要找資料只能手動的跳到目錄頁,用久了也著實有點心煩。

像讀墨、樂天或是凌網,偶爾也會有些資訊書籍的書,除了凌網外,大部份販售的都是固定版面的 EPUB 書檔,雖然每頁也是圖片,但至少有目錄可以跳轉,但我都是在電腦上看這類書較多,故我還是會習慣把每頁圖片抽取出來做成 PDF 檔。

因此我手上就會有一堆這種 PDF 資訊書籍,每次都要克難的手動翻找,才能順利找到我要的章節。

昨天我終於狠下心來訂閱 Acrobat Pro 版,每個月要 NT $483,且一定要訂閱一年。PC Home 還有販售 2020 的桌機盒裝版,但要價約 2 萬元,找了一下,網路有所謂下載版可以購買,只要 US $450 左右,價錢有一定的差距,但貌似只能在美國使用?

期間也有考慮試用其他 PDF 編輯軟體,但為了避免相容性問題,後來還是訂閱 Acrobat Pro 版。

千辛萬苦的做完幾本書的書籤(目錄)後,終於有在看技術書籍的感覺了,但此時我也累了,可能要學習 Acrobat Pro 裡面 Javascript 的用法,寫程式來自動執行,不然真的是很瑣碎的苦工呀!

對了,雖然 Acrobat 有 OCR 的功能,但對我要加目錄這件事本身沒有幫助,即使我把整本都轉成文字書,我還是得手動在原本目錄上加入超連結跳轉,除非我的認知有誤,不然 OCR 這個功能對我沒有幫助,單純只是加上目錄,也許可以考慮購買別套軟體即可。

2021年6月25日 星期五

A pointer variable in the loop statement of Golang

雖然這幾個月幾乎都用 Golang 做事,但我學 Golang 已經是好幾年前的事,即使買了也看了好幾本書,但因為中間都沒有用它來做什麼專案,故很多坑洞都要等到真的碰到才知道發生什麼事了?

當然這裡的坑洞指的不是 Golang 本身的缺限,而是因為不常用所衍生出來的問題XD

今天下午就讓我碰到一個問題,我也是直到剛才把程式簡化才明白發生了什麼事?

簡單來說,如果我有一個 slice 裡面存放的是指標變數,在使用 for loop 語法時,在 for loop 裡面的那個指標變數,假設我們稱它為 p 好了,索引值假設是 0,也就是第 0 個元素。

此時雖然 p 和 slice[0] 指的都是同一個實體的位址,但 p 只是另外一個指標變數,並不等於 slice[0] 的那個變數,故假設我們把 p 指向另外一個實體的位址,原本 slice[0] 指的還是原本的地方。


整體概念其實有點像 C,也就是要變成指標的指標,才能將原本 slice[0] 指到另外一個位址,當然 Golang 裡面沒有這種東西,故我們要直接使用 slice[0] 變數,而不要使用 p 變數 。

模擬程式如下:


package main

import (
    "fmt"
)

type Device struct {
    ID string
}

type Arg struct {
    Devices []*Device
}

func main() {
    arg := Arg {
        Devices : []*Device{
            &Device {
                ID : "1",
            },
            &Device {
                ID : "2",
            },
        },
    }

    d3 := &Device {
        ID : "3",
    }

    for i, d := range arg.Devices {
        fmt.Printf("idx(%d) d=%p arg.Devices[%d]=%p d3=%p\n", i, d, i, arg.Devices[i], d3)
        //d = d3
        arg.Devices[i] = d3
        fmt.Printf("idx(%d) d=%p arg.Devices[%d]=%p d3=%p\n", i, d, i, arg.Devices[i], d3)
    }

    for i, d := range arg.Devices {
        fmt.Println(i, d.ID)
    }
} 

2021年6月24日 星期四

我的 3C 小收藏

剛才在電子書閱讀器討論區看到有人在分享手上有的 3C 收藏!讓我也想將我的收藏拿出來盤點一下。


佔我收藏最大宗的就是電子書閱讀器了,其次可能是看書架,接著應該是計時器,最後才是一台筆電。我個人到目前為止是連一台平板都未買過!

下個星期 Kobo Elipsa 到貨後,個人就會有 7 台閱讀器,如果要選一台賣掉,我應該會選 mooInk Pro 10 吋,畢竟我現在無法憑個人能力破解它,而它本身的軟體說真的不太好用,不論是內建書城還是 PDF 相關操作。

用來用去我的最愛還是 Kindle Paperwhite 3,其次是 Hisense A5,Kobo Clara HD,HyRead Pocket  暫時只能排第四,雖然 Pocket 不像 Hisense A5 有資安風險,但跑起來確實沒有 A5 快,著實被扣了不少分數。

至於電腦方面,從大學母親買給我的第一台 K6-233 後,升級過一次賽陽 CPU,之後便換購買筆電,分別是第一代 EeePC、IBM R51 與目前的 Toshiba R30-A,最後兩台筆電使用時間加起來都超過 15 年了XD

退伍當年還瘋了一陣子 Palm PDA,計有 Acer s10、Treo 600、快譯通手機,還有好多忘記型號的機子,應該有超過 6 台,可惜自從 Treo 600 掛了後,手邊一台都沒剩了,之前離開事務所的時候,就送出了一半以上的機器給事務所的同事。

回首來時路,真是人不輕狂枉少年呀,當初把這些錢存起來該有多好?雖然存到現在也是買不起房子。

這就是人生呀,我們能做的也就是把握當下。

2021/06/25 更新

稍微 Google 了一下 Palm 型號,也留下個記錄,但有些我就真的想不起來了。

Acer s10、Treo 600、快譯通 X-Pro 168、Treo 270、HandEra 330、Zire 71。

Hide/Show Desktop Icons on Windows 10 by C code

雖然我們在桌面按下滑鼠右鍵,就可以在檢視功能的子選單中選擇是否要顯示桌面圖示,但需使用滑鼠又要兩個操作步驟感覺就很不好用。

昨天晚上終於狠下心來把它完成,雖然我之前已經 Google 過了,但肩膀受傷後人就變得很懶,除了工作以外的程式都很懶得動工,這個星期老婆進公司上班故不用張羅三餐,我連自己的午餐都隨便吃,可能是偷懶的緣故,感覺這星期肩膀狀況還不錯,所以昨天才會想來做這件事。

好久沒寫 Windows 相關的程式了,很多 HWND 等的參數都變得很陌生。

一開始在沒 Google 前,直覺就是可能跟 registry 有關,也找到相關的 registry。

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"HideIcons"=dword:00000001

原本以為只要修改這個值後,再想辦法用廣播方式送出 WM_SETTINGCHANGE 訊息,應該就可以生效,但據我實驗的結果,桌面程式知道我動了 registry,但並不會生效,我猜它應該只是讀 registry 得知目前的值,才決定是否要在 "顯示桌面圖示" 前打勾。

好吧,只好走 Google 來的方式,來解決這個問題。


要特別注意的一點,上面有說應該要看 OS 版本來決定對誰發送訊息,但我在寫 Code 前有先用 Spy 這類的軟體來找尋視窗,發現在 Windows 10 跟連結的說法不太一樣。

順序應該是如下:

01. 找到 Progman 這個 Window。
02. 找到 class 為 "SHELLDLL_DefView" 的視窗。
03. 送出 WM_COMMAND 訊息。


int toggleIconByShell() {
    int res = 0;

    HWND progman;
    HWND defView;

    // Find SHELLDLL_DefView class
    progman = FindWindowExA(NULL, NULL, "Progman", "Program Manager");
    printf("Program is 0x%p\n", progman);

    defView = FindWindowExA(progman, NULL, "SHELLDLL_DefView", "");
    printf("SHELLDLL_DefView is 0x%p\n", defView);


    // Send message to defView
    int lParam = 0;
    int wParam = 0x7402;

    LSTATUS lResult = SendMessage(defView, WM_COMMAND, wParam, lParam);

    if (lResult != ERROR_SUCCESS) {
        printErrorCode(lResult);
        res = lResult;
    }

    printf("OK\n");
    return res;
}

2021/06/24 更新

又把文章仔細看了一遍,SHELLDLL_DefView 在某些情況下,會從原本的 Progman 跑到 WorkerW 下面,故需要針對不同情況去找 Handle,將尋找 Handle 獨立出來變成函數,增加可讀性。


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void printErrorCode(LSTATUS lResult)
{
    printf("ErrorCode = %d(0x%08X) \n", (int)lResult, (int)lResult);
}

BOOL EnumCallback(HWND hwnd, LPARAM lParam)
{
    char name[256];
    memset(name, 0x00, sizeof(name));

    GetClassNameA(hwnd, name, sizeof(name));

    if (strcmp(name, "WorkerW") == 0) {
        HWND *address = (HWND*)lParam;

        HWND defView = FindWindowExA(hwnd, NULL, "SHELLDLL_DefView", "");

        if (defView != NULL) {
            *address = defView;
            return FALSE;
        }
    }
    return TRUE;
}

HWND getDefViewHandle()
{
    HWND progman;
    HWND defView;

    // Find SHELLDLL_DefView class
    progman = FindWindowExA(NULL, NULL, "Progman", "Program Manager");
    printf("Program is 0x%p\n", progman);

    defView = FindWindowExA(progman, NULL, "SHELLDLL_DefView", "");
    printf("SHELLDLL_DefView is 0x%p\n", defView);

    if (defView == NULL) {
        HWND *address = &defView;
        // defView is moved to "WorkerW"
        EnumWindows(EnumCallback, (LPARAM)address);
        printf("After searching WorkerW, SHELLDLL_DefView is 0x%p\n", *address);
        defView = *address;

        // SHELLDLL_DefView is not the child of WorkerW.
        if (defView == NULL) {
            HWND desktop = GetShellWindow();
            defView = FindWindowExA(desktop, NULL, "SHELLDLL_DefView", "");
            printf("After searching desktop, SHELLDLL_DefView is 0x%p\n", defView);
        }
    }

    return defView;
}

int toggleIconByShell()
{
    int res = 0;

    HWND defView = getDefViewHandle();

    if (defView == NULL) {
        printf("SHELLDLL_DefView not found \n");
        return -1;
    }

    // Send message to defView
    int lParam = 0;
    int wParam = 0x7402;

    LSTATUS lResult = SendMessage(defView, WM_COMMAND, wParam, lParam);

    if (lResult != ERROR_SUCCESS) {
        printErrorCode(lResult);
        res = lResult;
    }

    printf("OK\n");
    return res;
}

int main(void) {
    toggleIconByShell();

    system("pause");
    return 0;
}

2021/06/25 更新

在已經知道訣竅的情況下,抓取訊息就變得很簡單,但當初怎樣找到標的物和要送的訊息,我想這才是最困難的部份吧。

2021年6月15日 星期二

Kindle, HyRead, Readmoo on Hisense A5

早上很早就起來了,因為肩傷的關係好久沒用 A5 了,乾脆來比較一下這三家書商的 App 看同一本書的效果好了?除了 Kindle 沒有這本書以外,其他兩家都是在該書城買的,由於都算是正版的書,正好可以來做一些比較,這邊我只比較自訂字型,文字對齊以及翻頁速度。

我選擇的書是《64》。

自訂字型

Kindle App - X 
HyRead App - X
Readmoo App - X

文字對齊

Kindle App - △
HyRead App - O
Readmoo App - X

翻頁速度

Kindle App - O
HyRead App - X
Readmoo App - O


Kindle App 沒有文字對齊的功能,但它有一個設計是在尾巴會多留一列,如果有多餘的標點符號(最多一個)便會塞在這一列中讓整個畫面看起來有對齊的效果(橫式書籍則是多一欄)。

Readmoo App 的翻頁速度會跟硬體處理速度有關,CPU 越好的機器,翻頁速度則是越快;另外這一本書的設計只有一個章節,故 Readmoo App 可以避開換章節時解密速度過慢的問題,甚至會有錯覺這本書的翻頁速度比 Kindle App 還快?

HyRead App 的翻頁速度平常應該跟 Readmoo App 差不多,但這本書不知道是不是沒有分章節的緣故,故 HyRead App 遇到這本書的速度就比平均值更差。

綜合來看,至少以我所在意的點來看,第一名還是不意外的被 Kindle App 拿下,台灣廠商真的是要多加油了。

2021年6月9日 星期三

肩傷果然會反反覆覆的發作

今天是受傷第 59 天,前天則是第 57 天。

前天為了避免佔用公司 VPN 資源一整天開發程式及做測試,所以決定那天進公司上班,由於整間辦公室內外加起來只有兩個人,再加上我要改的東西我老早就想做了,故當天開發效率特別的好,扣除上網休息時間,我至少就寫了超過 6.5 小時的程式,雖然我也是設定了 30 分鐘的計時器,但你知道的,當人一進入心流狀態,時間根本處於暫停狀態,偶爾超過一個小時都沒有起來,我想也是很合理的XD

在辦公室還不覺得什麼,回到家吃完晚飯果然全身酸痛,尤其肩頸真是特別的不舒服!

看來除了時常提醒自己要放慢速度及時常起身外,目前暫時沒有什麼好辦法解決肩頸狀態,我總不能對自己唸回復咒文吧XD

雖然肩傷到現在都還沒有好,但我好像已經漸漸習慣了,反正就是等吧,時間會幫忙解決一切問題。

那天進公司除了開發程式外,還為了將我之前借給同學的電力線網路設備拿回家,這樣家裡筆電的無線網路才不會一直斷線,在本機斷線還沒關係,如果是在連 VPN 的狀態下斷線,聽我同事說,會因為憑證未被釋放而導致一個小時內無法重新連線!這樣不但自己工作不方便,還要麻煩 IT 人員,我總不能為了這個又去買一台新筆電吧?最近花錢真的如流水XD

回想了一下,在上星期三書桌送來前,在飯桌上工作似乎網路都很正常?差別在我是拉一條實體網路線工作,也許是因為我的筆電已經使用了快八年,無線網卡在抗議要退休了!

前天拿電力線網路設備回來後,一直到剛剛,目前網路運作一切正常。

親愛的筆電再多陪我幾年吧,雖然是八年前的電腦,寫起 Code 來還是嚇嚇叫呀XD

目前新桌面的樣子。


可惜房間插座跨了不同的電源迴路,但這個速度還是很好用呀!


目前時間下午一點多了,再休息一下下,就要來開工了,感謝我的公司,WFH 環境 Ready!

Replace string in Windows batch

剛剛想要將我的測試程式一條龍自動化,故我需要一個方法把 Windows batch 裡面的某個路徑動態改變成我要的路徑,就只差這一步以後我新增 API 都可以很方便的測試了!

Google 了一下,原來也算是很簡單的一件事,連回公司電腦測試也都沒有問題,看來我這個專案以後開發會更輕鬆了。

set mystring=abc def
set newstring=%mystring:abc=def%
echo %newstring%

執行結果:
def def

2021年6月7日 星期一

R 家 To K 家 待辦事項

自從 5/18 脫離 R 家後,目前都只在 Kobo、HyRead 和 Google 買書,其中為了配合即將到來的 Kobo Elipsa,沒有意外應該都會在 Kobo 買書,本想也給 HyRead 一些機會,沒想到我的小口袋用  R500 翻頁器看他家自己的電子書沒幾分鐘就會失敗無法翻頁,但同時將 R500 拿去手機使用卻是一切正常;另外,HyRead 的設計看起來跟 Kindle 一樣,出版社有指定字型且閱讀器裡面有該字型便會忽略使用者自行設定的字型,這個設定坦白說很蠢,大大影響了我購買書籍的意願,還有就是閱讀設定的左右對齊不會自動記住,每次進來都要再設定一次,這也讓我很不能接受!但 HyRead 也不是一無是處,至少我目前就發現了 2 個優點:

01. 紅利點數用完不夠扣可以合併別的扣款方式結帳,這點讀墨一直都不想做。
02. 雖然機器是大陸代工,但我目前抓的的封包都是 Google 相關的。

故小口袋暫時會被我定位在上網專用機,我當初購買的用途也是為了上網。

將之前為了 R 家寫的函數 export 出來並加入到 FixKoboXML 這個專案,我現在也可以將書轉到 PW3 閱讀了,雖然為了我的肩膀,我應該會越來越少用 PW3 這台機器。

目前步驟如下:

01. 從 Kobo 網站下載檔案連結。
02. 使用 XXX 軟體下載檔案。
03. 使用 XXX 軟體 XXX 檔案。
04. 使用 FixKoboXML 加上 XML 檔頭。
05. Remove font-family CSS。
06. 使用 kindlegen 轉成 MOBI 檔案。
07. 上傳 Google Drive。
08. 寄信到 Amazon。


除了 1 ~ 3,4 ~ 8 都已完成一條龍自動化,跟之前 R 家比起來,步驟稍多了一些,當然可以使用 Kobo Desktop App 來做一些簡化,但最近還是希望讓肩膀多多休息,之後再視心情來補強吧XD

2021/06/09 更新

昨天在討論區看到有網友分享小口袋有更新系統,其中就有修復有關藍牙的問題,可惜的是,我的藍牙還是有狀況,後續再看是否有更新吧?

2021/06/11 更新

在討論區又翻了一下文章,似乎沒有人反映新版本藍牙問題,應該說原本舊版本就沒有人反映問題,難道這次買的人比我想像的還少?

想了一下,決定先試試移除再新增我的 R500 翻頁器,目前測試的結果一切恢復正常,也連續看了 15 分鐘的書,看來此次更新(R06N-V1.0.0-2021060711)是有用的。

2021/07/15 更新

昨天晚上終於一口氣把 obok 加入到我的 FixKoboXML 專案中,我現在需要的步驟終於跟之前的 R 家一樣了,真是可喜可賀呀!

今天中午趁著吃飽飯的空檔,也加上了批次下載的功能,現在跳來 K 家對我來說已經不會比 R 家麻煩了XD

會寫程式真的很舒服,要怎樣整合都能隨心所欲,總計使用 Windows Batch、Node.js、改了一下 Python,另外,配合obok all 參數的運用,還寫了一個 script 把書名轉到清單給我的 BatchEPUB.js  批次上傳用。


2021/08/03 更新

晚上打完下班卡後,馬上快速的替 CSS filter 加上去除 font 指定字型的功能,經實測還可以,希望可以一勞永逸的解決 Kindle 指定中文字型的問題。

雖然我這個更動,R 家模組也能受益,但應該不太有機會試了XD

2021年6月3日 星期四

電動升降桌開箱以及組裝注意事項

今天是肩膀受傷第 51 天,之前訂購的電動升降桌終於在昨天到貨!由於疫情關係,廠商都只願意送貨到一樓,幸好遇到的物流人員都很貼心,一個是幫我把辦公椅搬到電梯門口,輪子不落地,另一個則是幫我把兩樣加起來差不多 50 公斤的電動升降桌箱子搬上我自備的推車。

真是非常感謝這段期間加班爆表的物流相關人員,沒有這些人的付出,我們這些暫時 WFH 的人員也無法建構出良好又健康的辦公環境,當然了,相關的醫護、警察以及所有幕後的無名英雄,大家也都辛苦了。

先來看看我因為疫情苦等了許久,最後需要自己搬又自己組合的電動升降桌。


之前都沒有想到要做功課,直接在我以前購買的椅子店家一併採購新桌椅,如果可以重新選擇,我應該會買 FUNTE 這個牌子,這個牌子的組裝影片可以參考這裡

我之所以會選擇這台的原因是:

01. 組裝留的孔似乎可以要求預埋螺母,既不容易鎖壞板材也方便重覆組裝。
02. 桌板左右兩邊都有預留控制面板孔位。
03. 有抽屜、螢幕架、延長線架等可以選購。
04. 控制面板有一個 USB 充電孔。 
05. 組裝看起來不難。

單純以組裝來說,其實價錢差不多的組裝方式都大同小異,差別就在預留孔位的細緻度,另外,建議最好是兩個男生合作,不然裝好桌子要翻身時,以我老婆來說她是沒有辦法幫我的,我只能撐著受傷的肩膀硬把桌子翻身。

最最重要的一點,千萬不要無腦的相信說明書!也許這個跟大家的想像不同,但我就是遇到說明書不可信的狀況。

我購買的是 123 x 70,無任何客製化,價錢 NT $15,500 的電動升降桌。照理來說,這個就是廠商預設的尺寸,組裝上應該不會遇到任何問題才對,偏偏最近運氣不好的我就是會遇到這種鳥事!

廠商是使用十字尖頭螺絲固定桌板跟鐵架,零件包針對這些螺絲也有附上墊片,但說明書卻是寫視情況使用。

由於尖頭螺絲的頭跟鐵架上的鑽孔一樣寬,但因為每個孔在上下邊都先裝好了塑膠墊片,我猜是避免鐵架刮傷桌板,也有吸收震動的效果。故使用者無法發現尖頭螺絲頭過小的問題,如果沒有加上墊片,當你以為都鎖好的時候,只要將倒置的桌板翻身時此問題就會浮現,害我只好緊急加上墊片重鎖,最後 14 個預埋孔洞,就因為重鎖而有 3 個無法鎖緊,真的想在心裡罵聲髒話。

這告訴了我們一件事,廠商絕對不會無緣無故的附給你用不到的零件,下次在 DIY 組裝物品時,我們可以多想想再下手XD

撇開這件鳥事不說,今早試用的結果,果然是久坐族的好幫手呀,真希望也能自帶一組進辦公室使用,這樣寫 Code 也會更有效率。

2021/06/05 更新

在將桌子升到最高時,記得把整理好的線放鬆,不要像我一樣,差點就把線拉斷。

2021/06/09 更新

將選購重點條列一下好了,也避免以後忘記。

01. 三節式桌腳的升降範圍較大,比二節式的更低也更高,但二節式的比較穩定。
02. 桌腳有分上粗下細的或是上細下粗的,上細下粗的也會比較穩定。
03. 目前主流是雙馬達,控制器藏中間支架橫樑。
04. 記憶設定操作有分按一下就可動作跟要常按幾秒後才動作的。
05. 桌架中間橫樑處有的可以藏線或是有的有附控制盒裝飾蓋板,這樣會較美觀。
06. 選原廠就有的顏色跟尺寸,送貨會比較快,一般人一台電腦的工作環境,120 公分寬的就不錯用了。
07. 桌板的孔洞最好有預埋螺母,重覆拆卸不傷桌板。
08. 原廠就有搭配更多配件可選的,相容性會比較好,比買第三方的有保障。

2021/06/29 更新

最後稍微整完線的樣子,我用 3M 的掛勾連在螢幕背面,將相關的線整收後,直街掛在螢幕後面,在沒有配件桌面底部收納盒可以藏線的情況下,還算可以將就,不過這樣就限制我購買螢幕轉動支架,待之後有空再來決定最佳方式。


2021年6月1日 星期二

HyRead Gaze Pocket 入手

感謝三創,在疫情期間,允許從自取改成寄送,照上星期六店員確認電話中的說法,應該是昨天星期一寄出的,沒想到今天下午已經躺在我家門口了,郵局的速度也真不是蓋的!除此之外,三創店內有展示各家廠牌閱讀器,在購買之前如果可以先做功課,再加上現場的試用體驗,應該更能避免買到不適合的機器。

由於我購買這台是為了上網,一拿到手便是先抓取網路封包,測試了一陣子的結果,目前看到的都是 Google 的封包居多,另外有一個蘋果以及一個 Hinet 的封包。初步結論這台機器應該是安全的,至少跟我之前的 Nova 3 Color 和 A5 比起來,沒有那麼多奇怪的網站封包流量。

等到我試出 mityproxy 的透通模式,那些 HTTPS 的封包更能一目了然的看出其內容為何?不過只要是 Google 的封包,我目前都還可以忍受,雖然其頻率也是稍嫌多了點XD

這樣一來,我就能夠放心的在這台機器使用我的 Google 帳號了。


2021/06/11 更新

雖然新出廠時的版本藍牙會有斷線問題,但凌網也很迅速的在大前天釋出更新版本,據我測試的結果,將我的翻頁器移除再重新配對後,已經不會有斷線的問題了,除了這個之外,聽說還改了不少好東西,不過因為我沒那些需求,故沒特別注意,凌網處理速度給個讚。