Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

月份: 2018 年 8 月

電腦字型的授權範圍

Posted on 2018 年 8 月 31 日2021 年 3 月 12 日 By 日落 在〈電腦字型的授權範圍〉中尚無留言

近日有 YouTuber 被告知不可隨意使用特定字型,否則會發法律上的問題。

看到法操 FOLLAW 整理了與電腦字型有關的法律規範出來,做個筆記。

以下節錄自「用新細明體和標楷體做影片字幕一定會構成侵害嗎?」:
我國著作權法在民國81年修正前,當時規範著作物類型的第3條並未將字型納入著作權的保障範圍。但隨著字型的議題受到重視,在民國81年修正著作權法時,將著作物類型移列第5條,並由行政機關針對各個類型的範圍另以命令規定。

因此,行政機關依據上述條文的授權,訂立並公告了《著作權法第五條第一項各款著作內容例示》,來明確說明第5條各著作物的詳細內容。而在該例示中,行政機關順應當時的需求,將「字型繪畫」納入了「美術著作」的範圍。

個人認為,目前法律好像還沒跟上資訊發展的速度,因此有一些模糊地帶、也可能造成一些糾紛。

已有其他網友整理出目前常用字型的使用法律授權:YouTuber 合法使用中文字型的管道有哪些?。有需要時可供參考。

Reference

  • 系統內建細明體、標楷體到底能不能用在Youtube影片發布上?台灣微軟官方說明內建字型授權問題 | T客邦
    https://www.techbang.com/posts/60855
  • 國發會免費提供中文全字庫,不再怕因字型授權問題被吉
    https://www.techbang.com/posts/60872
  • 華康字型授權說明
    https://www.dynacw.com.tw/news/news_detail.aspx?s=39&r=1
  • 知道你看不懂華康字型的聲明,所以我們直接用白話文問了他們這兩個關鍵問題的答案
    https://www.techbang.com/posts/61045
Tags:生活雜記, 資訊學習

PHP SplPriorityQueue …. WTF!

Posted on 2018 年 8 月 29 日2021 年 3 月 12 日 By 日落 在〈PHP SplPriorityQueue …. WTF!〉中尚無留言

我還以為 PHP SPL 的類別應該實作上應該有比較嚴謹,但 … 我錯了 QQ

先來看一下 SplPriorityQueue 的官方文件定義:
public void insert ( mixed $value , mixed $priority )
priority 和我預期的不一樣,原本以為只能放數字 (numbers) 但這邊的 priority type hint 卻標示為「mixed」,表示 priority 可以是任何資料型態 …?

先從最一般的 case 來測試吧:

$q = new SplPriorityQueue();

$q->insert(1, 'A');
$q->insert(2, 'B');
$q->insert(3, 'C');
$q->insert(4, 'D');
$q->insert(5, 'E');

while ($q->count() > 0) {
    echo $q->extract() . PHP_EOL;
}

output:

5
4
3
2
1

看起來會用 ASCII 數值來比較,數值大的優先 dequeue。看起來沒問題。


再來看一下遇到相同 priority 中有多個數值時,到底會發生什麼事:

$q = new SplPriorityQueue();

$q->insert(1, 1);
$q->insert(2, 1);
$q->insert(3, 1);
$q->insert(4, 1);
$q->insert(5, 1);

while ($q->count() > 0) {
    echo $q->extract() . PHP_EOL;
}

output:

1
5
4
3
2

「5, 4, 3, 2」還算正常,但是為什麼「1」會突然跑到最前面!?


最後,priority 真的可以放其他資料型態嗎?為了更清楚的看到執行結果,我這邊改使用 psysh 來操作:

Psy Shell v0.8.18 (PHP 7.1.18 — cli) by Justin Hileman
Unable to check for updates
>>> $q = new SplPriorityQueue();
=> SplPriorityQueue {#201
     heap: [],
   }
>>> $q->insert(1, [1, 2, 3]);
=> true
>>> $q->insert(2, []);
=> true
>>> $q->insert(3, new Exception())
=> true

靠北啊,Exception 也可以當作 priority 使用 ….

>>> while ($q->count() > 0) {
... echo $q->extract() . PHP_EOL;
... }
3
1
2

…. 我不想講了。

總之,若你要使用 SplPriorityQueue,請注意 undefined behavior。

Reference:

  • php – Why SplPriorityQueue keys are reversed? – Stack Overflowhttps://stackoverflow.com/questions/21446898/why-splpriorityqueue-keys-are-reversed
  • php – How SplPriorityQueue works when priority is not an integer? – Stack Overflowhttps://stackoverflow.com/questions/15851726/how-splpriorityqueue-works-when-priority-is-not-an-integer
  • 有人重新實作了自己的 priority queue –  ezimuel/FastPriorityQueue
    https://github.com/ezimuel/FastPriorityQueue
Tags:PHP

type (in Bash) 來判別 shell 實際執行的命令

Posted on 2018 年 8 月 27 日2021 年 3 月 12 日 By 日落 在〈type (in Bash) 來判別 shell 實際執行的命令〉中尚無留言

Linux 的 shell 提供了很多彈性,讓使用者可以客製化自己的工作環境。但也因此有時候把環境搞亂了自己也沒發現。

例如說:

johnroyer@box:~$ phpunit --version
PHPUnit 7.3.2 by Sebastian Bergmann and contributors.

johnroyer@box:~$ cd devel/laravel/
johnroyer@box:~/devel/laravel$ phpunit --version
PHPUnit 6.5.12 by Sebastian Bergmann and contributors.

這個時候雖然可以使用 which 來找出實際上執行的指令是哪一個 binary,但有時不一定與執行的是同一個。例如,上面的環境中,執行 which 都會有相同的結果:

$ which phpunit
/home/johnroyer/.config/composer/vendor/bin/phpunit

如果使用 type (Bash built-in) 來檢查的話,則會更清楚的告訴你,指令會如何執行,例如:

$ type phpunit
phpunit is a function
phpunit () 
{ 
    REPO_PHPUNIT=`pwd`"/vendor/bin/phpunit";
    if [ -e $REPO_PHPUNIT ]; then
        $REPO_PHPUNIT $*;
    else
        /home/johnroyer/.config/composer/vendor/bin/phpunit $*;
    fi
}

which 是由 $PATH 環境變數中的路徑來找出對應的執行擋路徑;type 則是由 Bash 當下的環境去檢查當下到底會如何執行。

Tags:Bash, Linux

氣喘藥可能會使心跳加速

Posted on 2018 年 8 月 9 日2021 年 3 月 12 日 By 日落 在〈氣喘藥可能會使心跳加速〉中尚無留言

昨天氣喘發作,緊急下使用了備勞喘 (Berotec) 吸劑,沒想到引發了一連串的不適。

氣喘藥的其中一個藥理作用,是讓支氣管附近的肌肉收緊,讓支氣管擴張來緩解不適。而這類的藥物會使交感神經緊繃,也連帶著讓身體出現緊張常見的生理現象,如手抖、心跳加速等。

如果因為氣喘經常發作,會需要使用 泛得林 (Ventolin)、備勞喘 (Berotec) 等藥物,且會引發身體不適時,建議先去醫院問診。緊急用藥的副作用可能較治療型藥物的副作用大,若有妥善的療程,除了可以降低氣喘發作的機率,也可以減少用藥造成的身體不適。

參考資料:

  • 氣喘用藥須知 – 高雄民生醫院
    http://www.kmsh.gov.tw/Files/Publish/P00000026.pdf
Tags:生活雜記, 醫療保健

讓 dehydrated 遇到錯誤仍繼續執行

Posted on 2018 年 8 月 7 日2021 年 3 月 12 日 By 日落 在〈讓 dehydrated 遇到錯誤仍繼續執行〉中尚無留言

發現手上一個 domain 的 HTTP cert 過期沒被更新到,但 dehydrated 理應會自動檢查到過期的憑證才對:

/etc/nginx/cert/dehydrated -c > /dev/null 2>&1; service nginx reload

手動執行 dehydrated 以後,發現有個 domain 已經被我刪除,而 dehydrated 遇到這個錯誤以後就會中斷執行,也因此後面幾個 domain 都沒有被檢查。

翻了文件,加上「–keep-going」參數,即可讓 dehydrated 遇到錯誤繼續往下走。

Tags:資訊學習

文章分頁

1 2 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.