原创 SpringBoot 連接 MySQL 8.0 的時區問題

背景 因爲數據庫要升級到 MySQL 8.0 所以要對架構做升級,主要的修改工作如下: 驅動包要升級爲 mysql-connector-java-8.0.11.jar JDBC driver 由 com.mysql.jdbc.Driver

原创 Java 調用 CMD 命令時路徑名帶空格的解決方案

背景 當我們在終端執行命令行時,如果遇到帶空格的路徑名,往往有兩種處理方法 cat a\ b\ c.txt 測試內容 cat 'a b c.txt' 測試內容 而當我們在Java使用 Runtime.getRuntime().exec(

原创 使用 Coding 進行網站託管時的域名解析採坑之旅

背景 因爲 coding.net 經常改版,導致我之前用 Coding Pages 進行的託管不知何時失效了,於是去官網看了下,意識到需要重新設置網站託管。(印象中,coding 最幾年一直在做產品調整,每次點進它的網頁,都不太一樣) 配

原创 Java8 stream 中利用 groupingBy 進行多字段分組

從簡單入手 Stream 作爲 Java 8 的一大亮點,好比一個高級的迭代器(Iterator),單向,不可往復,數據只能遍歷一次,遍歷過一次後即用盡了,就好比流水從面前流過,一去不復返。 Java 8 中的 Streams API 詳

原创 Java 中 YYYY-MM-dd 在跨年時的致命問題

最近在V站和知乎都看到一個討論很有意思,故做一下筆記。 問題描述 在跨年期間,如果在日期格式化的時候使用 YYYY 來格式化年份,則可能會出現下圖所示的bug: 根本原因 YYYY 在官方文檔中的解釋是 week-based-year,表

原创 基於face-api.js的人臉實時跟蹤

疫情期間,公司選擇讓員工進行遠程辦公,卻又難以監督員工保證他們的工時。所以老闆想出了通過攝像頭配合人臉識別算法,計算一天內員工在電腦面前的時間佔比。 項目的Github地址 通過瀏覽器開啓攝像頭 這部分代碼是在網上找的,需要兼容多種瀏覽器:

原创 MySQL 中 Group By 後如何選擇記錄

問題背景 有一張數據庫表,記錄了一些抖音視頻每小時的播放量與點贊量,每個視頻每小時都會產生一條記錄。現在需要查出每個視頻最新的一條記錄,希望通過一條sql語句搞定。第一反應就是對 video_id 進行 Group By ,然後想辦法取出每

原创 數據庫大表添加字段的方法

問題 一般情況下,一百萬以下數據量的表可以直接進行字段添加操作。而如果數據表的大小達到幾百萬幾千萬甚至更多時,添加一個字段會引起數據庫卡死。經查閱,數據庫大表添加字段有以下兩個方法。 方法一 創建一個新表,複製舊錶的結構(包含索引) 給新

原创 正則表達式的貪婪匹配與非貪婪匹配

情景 之前寫過一個簡單的爬蟲,每天獲取公司insgtagram主頁的粉絲數用來進行粉絲趨勢的展示。代碼很簡單就是通過獲取主頁源代碼後用正則表達式匹配其中的一串json數據,再用python的json解析庫進行解析,從中獲取粉絲數。 然而昨天

原创 使用 jar 包運行項目時的資源文件定位問題

背景 把 java 項目打包成 jar 包時,資源文件夾 resources 下的文件會被打包進 jar 包裏面。當使用 jar 運行整個項目時, 通過 getResource() 方法獲得的資源文件路徑會變成 xxx.jar!/xxx 的

原创 Java8 stream 中利用 groupingBy 進行多字段分組求和

從簡單入手 Stream 作爲 Java 8 的一大亮點,好比一個高級的迭代器(Iterator),單向,不可往復,數據只能遍歷一次,遍歷過一次後即用盡了,就好比流水從面前流過,一去不復返。 Java 8 中的 Streams API 詳

原创 Beautiful Soup 文檔搜索方法(find_all find)中 text 參數的侷限與解決方法

find_all方法介紹 find_all( name , attrs , recursive , text , **kwargs ) find_all() 方法搜索當前tag的所有tag子節點,並判斷是否符合過濾器的條件。具體請看官方文檔

原创 Beautiful Soup 採坑之旅

Beautiful Soup入門 Beautiful Soup是一個Python庫,用來解析html和xml結構的文檔。具體關於Beautiful Soup的介紹與使用,可以參考以下資料: Python爬蟲利器二之Beautiful So

原创 ZOL中關村在線手機參數爬蟲

需求 由於安卓手機的配置不盡相同,在公司推出安卓版360度全景相機 Insta360 Air 後,客服經常會收到來電,詢問其手機型號是否適用該產品。大部分情況下顧客只知道自己的手機型號,卻不知道其詳細參數,這讓客服的工作量大大增加。於是客服

原创 解決刷新頁面不觸發 vue-router 的 beforeEach 鉤子的問題

問題 在使用 Vue.js 開發項目時,會用到 vue-router 模塊來進行路由管理。爲了在用戶訪問每個頁面之前判斷用戶是否有訪問該頁面權限,需要用到 vue-router 的 beforeEach 全局鉤子,在這個鉤子中進行權限判斷,