分類
Javascript

台灣上市公司財務報告附註揭露之員工福利(薪資)資訊(107年度至112年度)

利用 “公開資訊觀測站財務報告附註揭露之員工福利(薪資)資訊” – https://mops.twse.com.tw/mops/web/t100sb14 的資料, 配合 FooTable 功能 (FooTable 可以參考這篇文章: https://diary.tw/archives/2140), 實作了一個查詢由 107年至 112年的上市公司則務報告附註揭露之員工福利(薪資)資料查詢功能.

請參考: https://sample.diary.tw/salary/

這份資料集是由 107年開始至 112年, 所以 107年沒有前一年的資料, 有需要查詢參考研究的朋友, 請多多利用.

[2024/7/11 23:12] 彙整各年資料

利用 lookerstudio (formerly datastudio) 來進行彙整, 製作互動報表方式來呈現, 請參考: https://diary.tw/s/twsalaries

透過這個報表, 可以很快的查詢一些有趣的資料, 例如台積電在107~112年的員工人數與平均薪資, 你只需要將公司名稱設定為”台積電”, 再依年度排序出結果, 即可得到如下的報表:

這樣是不是十分方便呢? 大家也可以試試查找自己想要的資料.

 

分類
Javascript

利用Javascript來將URL的追蹤碼移除

工具連結: https://sample.diary.tw/urlshare/

在分享連結給朋友時, 往往會因為有過多的追蹤碼(Tracking Code)像是 utm_*, 或是 facebook 的 fbclid 等, 很長以外, 也不想將追蹤碼被分享, 這個時候, 往往就需要手動將 URL上的對應參數給移除後再分享出去.

利用 Javascript 中的 URL物件與 searchParams 可以方便與快速地移除這些小東西, 程式碼主要用到了 searchParams 中的 delete 即可, 例如:

分類
Python

如何快速查找URL對應重導後的URL-使用Python

有時有些URL會因為分析, 或是廣告等原因, 需要進行重導(redirect), 然而在程式實作上, 若需要找到這個重導的結果URL, 要如何進行呢? 可以使用 requests library 的訪問連結後來取得, 程式如下:

response = requests.get('https://youtu.be/dQw4w9WgXcQ') 
print(response.url) # https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtu.be

利用 requests.get 的結果, 再將 response 的 url 取出即可.

參考資料:

https://stackoverflow.com/questions/36070821/how-to-get-redirect-url-using-python-requests

分類
Python

使用WordPress posts API新增文章(使用Python)

如何使用 WordPress posts API 來新增文章呢?

可以先參考官方資料:

https://developer.wordpress.org/rest-api/reference/posts/#create-a-post

而 API的位置在: https://{hostname}/wp/v2/posts

而新增一篇文章的方式有了這些資料就可以很快速地建立起來, 另外我們還需要先有一個 application password 來進行驗證才行, 在 WordPress 5.6 版本起, 可以在使用者下建立 application password, 所以可以透過這個方式來進行驗證, 可以參考這裡:

https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/

分類
程式技術

iframe RWD化的方法(CSS only)

基本上, iframe 的 RWD 方法有很多種, 不過都需要在外層有個 div 來包裝出比例的尺寸, 才能達成 RWD化, 可以參考:

若只有 iframe tag 本身的話, 不在外層加裝 div 時, 如何達成呢? 可以利用這個 css 屬性: aspect-ratio

以 Youtube 的 embed code 為例:

<iframe width="560" height="315" src="https://www.youtube.com/embed/JtFI8dtPvxI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

我們將 iframe 設定以下屬性:

iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

即可順利在不外加 div tag 的條件下, 將 iframe 本身保持指定比例(如 16:9)的 RWD化.

來看看範例吧:

https://codepen.io/timhuang/pen/BaYdMmN

至於這個 CSS 屬性 aspect-ratio 的支援性如何呢? 可以看一下 can i use 網站的資料囉:

https://caniuse.com/mdn-css_properties_aspect-ratio

看起來除了 IE 外, 其他主流瀏覽器都有支援呢.

分類
Javascript

利用Cloudflare worker來進行客戶端IP查找

Cloudflare 有個功能, 就是在 edge 端的 worker, 可以參考:

https://developers.cloudflare.com/workers/

我們可以利用這個 worker 來做許多功能, 把它想成小型的在邊緣的處理器, 先來看一些 example 好了:

https://developers.cloudflare.com/workers/examples/

理解可以在這個 worker 處理不少事情後, 接下來實做一個簡單的功能, 像是這種取客戶端 IP 的功能:

早期也有利用 PHP 寫過取 IP 功能的小程式, 可以參考:

不過這裡要介紹的是利用 cloudflare 的 worker 來進行.

分類
PHP

Windows環境下安裝PHP 8.1.3與Composer

今天來介紹安裝 PHP 8.1.3 於 windows 環境下.

首先至 PHP Windows版本下載的連結:

https://windows.php.net/download

可以安裝 VS16 x64 Non Thread Safe (2022-Feb-16 08:50:36) 這個版本即可, 至於 Thread Safe 與 Non Thread Safe 有什麼不同可以參考: https://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php, 原則上是與 Apache  Web Server 應用時會需要 Thread Safe 版本, 其他不需要.

解開後放在自己想放的資料夾中, 例如 c:\php (預設也會是這個, 若不是也沒關係), 例如 c:\tools\php813, 然後將這個路徑加入環境變數 PATH 中, 供執行時, 可以執行 php.exe 這個執行命令.

在 console 下, 可以利用以下指令:

C:\Users\tim> PATH %PATH%;C:\tools\php813

接下來的步驟很重要, 先將目錄下的 php.ini-production 或 php.ini-development 複製一份為 php.ini , 調整兩個重要的內容:

  • extension_dir = “ext”
  • extension=openssl

這兩行前面的註解 “;” (分號) 要拿掉.

以上都完成後, 你就可以在 console 下執行 php -v 來看 php 是否可執行, 與版本資訊:

C:\Users\tim>php -v
PHP 8.1.3 (cli) (built: Feb 16 2022 08:20:53) (NTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies
分類
Javascript

台灣教會(教堂)地圖

繼上次台灣寺廟地圖(https://diary.tw/archives/1915)後, 想做個台灣教堂地圖, 不過查了一下, 只有法人教會, 沒有教堂, 看起來一樣是教堂的資料, 所以就會來用囉, 來看看資料來源:

全國宗教資訊系統資料-法人教會: https://data.gov.tw/dataset/8204

連結重導至: https://religion.moi.gov.tw/Report/church.xml

一樣和寺廟資料相同, 使用 xml 格式.

以下為台灣教會(教堂)地圖:

https://sample.diary.tw/churchmaps/

不過可能與實際上有落差的是這份資料集為”法人教會”, 非法人登記的也還有一定的資料量, 不過目前沒有其他資料源可供應用.

 

 

分類
Javascript

利用FooTable列出可分頁、搜尋、排序的資料檢視

這個工具是 Table view, FooTable:

https://fooplugins.github.io/FooTable/

很適合快速地將資料利用 table 的方式呈現出來, 這個工具的特點是同時可以分頁、搜尋、排序與編輯, 尤其在 mobile view (responsive) 時, 可以摺疊內容, 不用橫向捲動, 十分方便.

這裡將利用財金公司的國內銀行分行代碼表來進行示範, 原始資料在這裡:

https://www.fisc.com.tw/TC/Service?CAID=51254999-5d15-4ddf-8e54-4b2cdb2a8399

其中的”下載完整對照表”, “台幣匯款”, 可以下載完整的國內銀行總分支機構代碼(7碼)與名稱, 連結如下:

https://www.fisc.com.tw/tc/download/twd.txt

內容如上, 純文字檔, 不過請注意右下角的 Big5 編碼, 若要實作為 web 程式碼, 需要轉換為 UTF-8 (下面的程式碼使用 mb_convert_encoding 進行轉換).

接下來利用 FooTable 進行實作囉, 基礎程式碼如下:

$(document).ready(function() {
  $('.table').footable({
    "paging": {
      "enabled": true,
    },
    "filtering": {
      "enabled": true
    },
    "sorting": {
      "enabled": true
    },
    "columns": [{
        "name": "id",
        "title": "id"
      },
      {
        "name": "branch",
        "title": "branch",
        "breakpoints": "xs"
      },
      {
        "name": "abbr",
        "title": "abbr"
      }
    ],
    "rows": $.get("twd.php"),
  });
});

簡單說明, paging, filtering, sorting 要設為 true, 而 columns 有三欄, 所以分別給定對應的欄位名(name)與欄位顯示(title), 其中 branch 有多加了 breakpoints: xs 代表著在 xs 時要摺疊, 也就是小畫面時, 會將此欄位收納起來. 而 rows 則為實際的資料, 這裡簡單使用一支 php 程式進行, 程式碼如下:

分類
程式技術

取得Youtube影片的縮圖

之前介紹過 Youtube Data API (https://diary.tw/archives/2032), 其中利用 part=snippet 可以取得縮圖的網址, 不過仔細看一下, 目前應該都統一了, 其實只需要 videoId 就可以自行組合出對應的縮圖, 清單如這裡:

https://developers.google.com/youtube/v3/docs/thumbnails

其中預設會出現的有: default, medium, high, standard, maxres 共計5組, 不過再觀察 player用的縮圖, 預設也會有 0, 1, 2, 3 共計 4組, 合起來就會有 9組圖檔.

網址也很單純, 也就是:

https://img.youtube.com/vi/[videoId]/[thumbnail_type].jpg