Pages - Menu

2019年12月17日 星期二

[Docker]Docker 掛載 Grafana的資料庫

前言

先前不知道為什麼,我的Grafana container就突然重置,
連登入的帳號密碼都還原了,
本來做好的不用說,當然也消失...
這次重建container,必須把資料庫拉出來至實體機,這樣掛掉的話,應該還找的回來。

2019年12月13日 星期五

[Wordpress]jQuery is not defined

前言

一開始以為是版面的問題,因為要自訂主題的版面是一片空白。
升級Wordpress至5.3.1狀況依舊。
所以想說乾脆重灌整個布景主題,要安裝的時候也發現無法安裝,
出現jQuery is not defined。看來主因是Wordpress的關係,並不是單一布景主題產生的。

2019年12月11日 星期三

[Docker]Scrapyd Container無法啟動,搶救筆記

前言

因為停電,所以機器整個關機。
今天要開的時候才發現爬蟲scrapyd起不來,開始搶救過程。
連抓AWS金額的容器也掛了(這個是自建一個container執行爬蟲)。
最後想一想,反正都背爬蟲了,那就全部都掛在scrapyd上面吧。

2019年12月5日 星期四

[Scrapy]擷取json的網頁

前言

其實json的網頁,用python的request做應該是最快。
但誰叫我已經架好了scrapyd的伺服器…
只好繼續用scrapy了。


[Docker]PostgreSQL問題總集

前言

距離上一次用這個資料庫已經很久了,
這次自己架設才發現一堆問題。
其中有,資料表、欄位名稱大小寫,遠端連線,Docker安裝方式、Python連線方式

2019年12月4日 星期三

[Scrapyd]在Scrpayd container內安裝postgreSQL

 

前言

一開始在猶豫要裝monogoDB還是postgreSQL,
最後因為懶得再去動scrapyd裡面的函示,就灌mongoDB好了。
以前的環境都在區網內,這次搬到外網,才發現 mongoDB預設是大家都可以連結。
因為他是NoSQL的資料庫。最後只好乖乖在換去postgreSQL,至少能不能連線,
在一開始就擋掉了。

[Docker]容器內軟體安裝方式

前言

為了在scrapyd的container上面,安裝postgresQL
費了一番功夫,從apt-get ,yum,apt ..都試了一輪,
雖然我也知道有些指令是不同作業系統的,但死馬當活馬醫。
最後用了 uname –a 確認,container內作業系統還是ubuntu,但安裝指令就是不認識阿阿阿..
最後還是有安裝成功..

2019年11月28日 星期四

[MsChart]參數設定

前言

弄MsChart的時候,搞了太多的參數,
不寫一下又怕到時忘記

[MsChart]自訂顯示標籤

前言

在拉MSchart的時候,發現的問題。
因為角度需要換算才能變成座標,
但一般使用IsValueShownAsLabel 是直接將值顯示出來,
那我要怎麼讓他顯示座標的角度而不是真實的值

2019年11月27日 星期三

[.NET]控制項共用事件

前言

最近接了個案子,元件有點多,但又不想一個一個設,
依稀記得有寫過共用的方式,但突然找不到放在哪,
就乾脆再寫一次了。

2019年11月20日 星期三

[Docker]取得Container內的基本資訊

前言

經歷上次的container無法啟動事件,
開始學習看docker的設定值,越挖才知道越深奧。
Docker是用Go 開發的,所以可以直接針對結果做格式化輸出,
有支援--format的指令皆可使用


[Docker]Container無法啟動,Another twistd server is running

前言

某一個禮拜六的早上,發現我的Line Notify沒有收到爬蟲爬出來的訊息,
就知道事情不妙了。後來一查才知道整個Container掛了。
搞了好幾天,本來想乾脆直接重裝一個Container算了(反正scrapyd沒啥要設定的),
最後還是有解決。

2019年11月19日 星期二

[Docker]Container無法啟動,debug時的命令列表

前言

莫名的scrapyd無法啟動,
只好開始翻log紀錄,看到底是什麼原因。

[Linux]Ubuntu硬碟空間不足,解決方式

前言

最開始是在查docker 開不起來的問題,
查阿查,查到後來docker被玩掛了…這似乎又是另一個故事。
於是要重新安裝container,才發現空間不足…
本文內容包含了一堆查檔案空間用到的linux語法。

2019年11月18日 星期一

[T-SQL]PIVOT快速使用

前言

太久沒寫pivot,實在都快忘記怎麼寫了。

正文

2019年11月13日 星期三

[Scrapy]Line Notify 發送紅字、粗體

前言

昨天架好scrapydweb,能夠自動排程去爬蟲了。
今天就把之前一直要寫的下週油價的程式寫一寫了,
很簡單,主要是用line notify發送通知。

2019年11月12日 星期二

[Docker]用Docker 架設Scrapyd及UI畫面(Gerapy or Scrapydweb)

前言

前陣子寫完讀冊生活的搜尋工具,就沒再繼續研究自動執行了。
當然可以包成Docker,再用linux工具啟動,這個我也幹過,
請看上一篇文章 [Docker]自製docker image 執行scrapy
但如果我一次有很多隻蟲要爬,難道要一個一個包成docker?
所以,scrapyd 出現了。有點像 ScrapingHub,我也曾經在上面部屬過程式,
右上方的每日一句,就是撈博客來的資料產生的,
可參考 [Python] Scrapy 部署至ScrapingHub 上以及錯誤解法
簡單講,這次就是架設一個平台,所有的爬蟲通通在上面跑。

2019年11月11日 星期一

[Docker]常用指令大集合

前言

今天要開始繼續搞我的scrapyd的時候,才發現先前寫的docker指令文章,
都散落各篇,要拿來複製貼上的時候,很麻煩。

2019年11月8日 星期五

[Xpath]Xpath節點定位方式

前言

前面好幾篇文章一直用到xpath的定位,但都是建立再不斷的嘗試,
要來好好把這些整理一遍了。
等等會用到的有 following,following-sibling,child,parent

[AutoIT]函數列表

前言

最近因應雙11,寫了個小程式每天去領沒屋頂的彩票。
Katalon Recorder沒辦法匯出成一個執行檔,
就想到再用AutoIT來自動執行。
在寫的時候,才發現不知道從何開始,最基本的函數也不知道。

2019年11月7日 星期四

[Usb安裝]AIO Boot-USB開機碟整合WinPE

前言

上一篇文章有提到一般常用的工具USB都有WinPE的選項,但如果用AIO Boot的話有點不太一樣

[Usb安裝]AIO Boot-簡單製作USB開機碟教學

前言

前幾天搞一台筆電,拿出以前做的usb開機碟,抓不到USB,
一直以為是壞掉了。沒想到結果是NB跟我的USB相沖。
總而言之,重做usb的過程中找到了這套軟體 AIO Boot

2019年11月4日 星期一

[Win10] Win10 1903,修改預設輸入法為英文

前言

今天拆筆電,裝SSD,之前安裝的Win10竟然可以直接使用,不用再重灌。
但我之後還是重灌了。於是,就順便把1903設定預設輸入法為英文的方式再寫一下。
是說,微軟阿...你每次改地方不累嗎.......

2019年11月1日 星期五

[Katalon Studio]Excel Keywords 使用方式(How to use Excel Keywords )

前言

上一篇文章,講到外掛的安裝。這次講使用方式,跟官網的有點不一樣..
照著官網的做,沒辦法執行。啥都不做反而能執行..

[Katalon Studio]筆記心得及外掛安裝方式

前言

寫了三天,一天三篇,終於把用到的東西寫完了。
還有很多東西沒用過,等碰到再寫了。
下面會把寫程式時掃過的網頁列在下面,留著以後查詢用。

[Katalon Studio]切換視窗

前言

視窗,跟dialog不一樣,所以請先確認原始碼是不是視窗。
比較簡略的判斷方式,視窗:直接按F12,是新的一個頁面。

2019年10月31日 星期四

[Katalon Studio]判斷動態元素狀態

前言

這部分是我最混亂的,判斷element 顯示 or 不顯示 or 按下 …等
寫了好幾種判斷方式,但最後有效的反而是第四種   driver.findElements

[Katalon Studio]顯示訊息或文字

前言

一般寫程式在除錯的時候,看執行到哪裡就印個字串出來,
代表執行到這,或是判斷有沒有執行,當然,也可以透過除錯模式去檢查。
但有些問題是當下沒事,過了一陣子後才冒出來,此時要找錯在哪就不好處理了。
將字串印出來有下面幾種方式

[Katalon Studio]輸入文字至欄位

前言

再來這個是比較常用到的地方,
在文字方塊中輸入要查詢的料號,會有兩種方式,由原始碼判斷要哪種
1.使用webUI的方式輸入文字至欄位
2.使用selenium 輸入文字至欄位

2019年10月30日 星期三

[Katalon Studio]執行Javascript

前言

Windchill 如果使用一般的關鍵字搜尋,可能會搜尋到一些比較奇怪的東西。
可能會同時包含零件、2D圖以及3D圖..等等。所以需要使用進階搜尋,
每次搜尋時,點選編輯條件,重新輸入關鍵字查。

[Katalon Studio]瀏覽器開啟及關閉

前言

目前的計畫是,根據程式碼,逐步的往下介紹。
為什麼要關閉瀏覽器?前面有提過,當程式執行太久,記憶體會咬住無法釋放。
故我直接把瀏覽器關閉再開啟,強迫他釋放記憶體,也避免卡住。

[Katalon Studio]自訂函數

前言

繼上一篇 讀取Excel csv的資料
程式已經趨近於完成,也將料號的英文品名全部都塞進去了Windchill裡面了。
之前用Katalon Recorder 一天(8小時)執行約200筆
改用Katalon Studio 一天(8小時)執行約四百多筆
原因 可參考前一篇 登入Ldap 網站  的前言
再來的幾篇文章,會把寫這段程式所碰到的問題列出。
先看一下操作的方式(以下都是Katalon studio自己執行的過程),
有刪除一些圖片製作成Gif,操作沒那麼快,還要配合網站的反應時間。
一小時正常執行約52筆資料。



2019年10月23日 星期三

[瀏覽器]檢查xpath跟selectors的方式

前言

最近搞Katalon Studio,一直在跟xpath打架,
雖然可以直接在網頁上,複製xpath的路徑,但如果碰到動態產生網頁元件的網站,
這招就沒用了,所以,還是學好xpath吧

[Windows 10]Win10 1903 網路芳鄰無法進入

前言

User說他還原筆電後,要設定ERP,因目前公司的ERP是舊系統
走傳統的Server/Client架構,所以需要用網芳先連去server把程式抓回來用,
但…連不上去!!!所有的網芳都掛了。
錯誤碼:0x80004005

2019年10月16日 星期三

[Grafana]開啟匿名登入

前言

因為Grafana登入時間過長會自動登出,但監控的畫面每次都要輸入真的麻煩
前陣子找自動登入,沒成功。
今天改換成匿名登入,終於不用再輸入帳號密碼了。

2019年10月14日 星期一

[TSQL]萬用格式參數Format

前言

今日串一段SQL,要將歷史採購過的筆電單價、收料日期通通拉出來做問卷,
查著查著,就查到一個跟C#的string.Format很像的參數。

2019年9月30日 星期一

[PowerShell]多參數傳遞

前言

先前寫了一個定時檢查server 硬碟空間大小的程式,但沒有寫目前的使用量幾%
今天要補上的時候,才發現Powershell的多參數傳遞方式跟別人不一樣。


2019年9月26日 星期四

[Dapper] Dapper 查詢結果傳給Datable

前言

幫人寫C#的 Oracle連線測試時,要撈資料出來。

單純測試而已,懶得寫欄位對應。

就乾脆來看能不能直接把dapper的資料丟給DataTable

直接顯示在DataGridView上

2019年9月25日 星期三

[Katalon Studio]讀取Excel csv的資料

 前言


在Katalon Recorder很好完成的事情

到Katalon Studio一切都變得複雜了起來

一切重頭來吧…

2019年9月24日 星期二

[硬體]BS模擬器AMD Rayzen 3 2200 內顯多開測試

前言

中秋烤肉時,朋友問了模擬器四開規格到底要多高,
剛好前陣子(半年前花了約一萬組了一台AMD的電腦)(Fig. 1)
就剛好來搾搾看效能如何了。

(Fig. 1)

[Katalon Studio]登入Ldap 網站

前言的碎碎念

一般登入的網頁都很簡單,去抓個input的id塞個帳號密碼進去就好了,
但是Windchill 就是愛走不尋常的路,弄個Ldap出來,請參考下圖(fig 1)
現在又有任務要把合計上千個料號的英文品名弄進去Windchill裡面
本來使用Katalon Recorder ,不用管怎麼登入,只要網頁先開好進去後,
執行就對了。但只要執行了一百多個料號,Chrome的記憶體開始吃到4G,然後就掛了。
改完Chrome的參數後有比較好,能跑到兩百多個,但記憶體吃到7G多後一樣掛掉。
只好改研究Katalon Studio了,一開始以為是http proxy login但驗證不過,最後才想起來應該是走apache的ladp認證




2019年9月5日 星期四

[Git]QNAP 的Docker之Gitea資料救援筆記

延續上篇[Git]Gitea單檔限制大小修改
事發經過,改完app.ini後,重新啟動Docker,發現他的port變來變去,
從32771跳到32777,最後跳到32779
如果當初沒有手賤,直接修改上面的port的話,事情應該不會發生(圖一)。


(圖一)

[Git]Gitea單檔限制大小修改

這台機器目前在NAS上的Container內
修改app.ini的  attachment
但一開始如果不知道app.ini在哪,就有得找了。
可先利用 linux的find指令搜尋




find  -iname 'app.ini' -type f




有找到兩個地方,根據路徑名稱去猜一下,
就是第二個了。


2019年8月30日 星期五

[Grafana]初學筆記 Part I - 不同時間範圍的圖表

大部分用Grafana的人都是拿來監控用,
但如果是要用個戰情室之類的,有個東西非常重要
A(檔案大小),這個資料比較不會變化,所以設定時間區間是一個月
B(溫度),資料常變化,所以時間區間是一天



[PowerShell]依日期加總資料夾內所有檔案的大小

就是個奇耙的需求,資料要在Grafana上面呈現
有兩種作法,
1.將檔案名稱、檔案日期、檔案大小丟去資料庫內,再利用Grafana利用SQL語法加總日期,
2.直接加總完,檔案日期、檔案大小丟入資料庫,Grafana直接抓資料呈現

直接使用第二種方式,直接加總資料(圖一)


(圖一)

2019年8月28日 星期三

[MSSQL]維護計畫的備份目的地改成網路芳鄰

目前環境為SQL Server 2016
但不知道多久之前,將資料庫備份到NAS的計畫排程就失敗了。
最近乖乖去查錯誤訊息(圖一),才發現 指定的路徑不正確(圖二)。
(圖一)

2019年8月27日 星期二

[Docker]不能在docker使用vi,vim,yom,nano

最近玩Grafana的images,
想要改成自動登入,就必須去改裡面的檔案。
但是,vi 、vim、nano通通不能用。
連安裝都不能安裝
要麻說沒權限,要麻說不認識指令(圖一)。

(圖一)


2019年8月15日 星期四

[Katalon Recorder]命令教學筆記 PartII

1.取得csv裡面的資料
data.csv的格式為

item,
447-709-03,


將data.csv匯入至KR


結尾用endLoadVars包起來,取值的方式為${csv的欄位名稱},
command Target Value
loadVars data.csv
echo  ${item} 
endLoadVars

如果要將取得的值,輸入到文字方塊
command Target Value
type id=gloabalSearchField  ${item}

2.選擇新開啟的視窗

command Target Value
selectWindow title=編輯零件


3.紀錄該規則下,有多少筆符合的規則

commandTargetValue
storeXpathCountxpath=//div[contains(@class,'x-grid3-cell-inner x-grid3-col-number')]/a[contains(@class,'linkfont')] xyz

將規則 //div[contains(@class,'x-grid3-cell-inner x-grid3-col-number')]/a[contains(@class,'linkfont')]  存到xyz的變數內
ref.
selectWindow - how does this command work?
Selenese (Selenium IDE) Commands Reference

2019年8月9日 星期五

[Windows]批次檔刪除區網上的資料夾檔案

伺服器重灌,也忘記當初有設定排程,
只好重弄了。
找了老半天,都只有刪除本機的,
沒找到專門寫刪除網芳資料。
將下面的程式,存成批次檔後執行

del /Q /F /A /S \\192.168.1.12\scan\*.*
rd /s /q \\192.168.1.12\scan



ref. Windows 強制刪除檔案及資料夾

2019年7月29日 星期一

[Python]Scrapy傳遞參數

某個特殊需求,
我想要再願望清單上做記號,
當有抓到這本書有二手書的時候,立即丟line通知我。


在傳送參數時,加上 meta={"name":value}


    def start_requests(self):

        source_url = "...."
        for keyword in self.db.wishList.find ({},{ "name" :1 , "_id" : 0 ,"quote":1 } ):
            self.log(keyword['name'])
            #self.log("urlencode::: " + urlparse.quote(keyword['name']))
            start_url = source_url + urlparse.quote(keyword['name'])
            yield scrapy.Request(start_url,self.parse,meta={"favorite":keyword['quote']})

使用方式,response.meta.get('name')


    def parse(self, response):
        #le = LinkExtractor(restrict_css='div.panel-default>a.list-group-item')
        #指到二手書列表
        #self.log("source_url_link is ===" + response.url)
        self.log("favorite: "+ response.meta.get('favorite'))


ref.Passing a argument to a callback function

2019年7月23日 星期二

[PowerShell]初學筆記 - Part III

1.左過濾,盡可能把過路條件放在左側或靠近命令行的開始部分。越早過濾越能減輕其他Cmdlet命令的工作。

Get-Service –name e*,*x*


2.條件判斷
表達式 中文
-eq 等於
-ne 不等於
-ge 大於或等於
-le 小於或等於
-gt 大於
-lt 小於
-and 而且
-or
-not 取值的相反
-like
-nolike
-clike
可接受* ,做查詢
忽略大小寫
區分大小寫
-match正則表達式
(5 –gt 10) –and (10 –gt 100) 返回false

2019年7月18日 星期四

[Python]MongoDB專用的資料庫工具

真的用指令對於一個寫習慣SQL的人來講,非常非常的不習慣。
所幸,翻到了一篇 10個頂級Mongodb GUI工具,以圖形方式管理數據庫
看到了  NoSQLBooster ,他裡面寫了一句含有 SQL查詢,那就先測看看了。
似乎也很多人用Robo 3T ,有分付費版跟免費版。
但沒看到有特別註明可使用SQL,就沒安裝了。

2019年7月17日 星期三

[Python]Python使用Mongo的語法

跟常用的SQL不太一樣,建議直接看第一個url,上面有SQL跟mongo的語法比對

[Python]Scrapy存MangoDB

MangoDB的建置方法,請看前面 MongoDB 與 Mongo-express 連動
因為Scrapy本身就有資料庫的寫入機制,所以在原本的程式上不用改。
需要改的地方只有 pipeline.py 、items.py以及settings.py

2019年7月16日 星期二

[Docker]MongoDB 與 Mongo-express 連動

I.先來個簡單的MongoDB使用方式

1.安裝mongoDB

docker pull mongo
sudo docker run --name mongo -p 27017:27017 -v ~/mongo:/data/db -d mongo

--name docker的名字(your docker name)
-p 27017:27017 前面是實體機的port,後面是container 的port
-v ~/mongo:/data/db  前面是實體機的位置,後面是container的位置
-d 在後台執行
如果要直接設定帳號密碼的話 ,請看(II)。
安裝完後,可以用瀏覽器開啟,有成功的話,會看到下面的畫面。

2019年7月15日 星期一

[Scrapy]實戰番外篇 Part I

重新又看了另一本的Scrapy的書,
才發現又多了一些東西。
寫個筆記記錄一下..

以下繼續

2019年7月10日 星期三

[Windows]指令執行應用程式

常用

logoff     登出
appwiz.cpl    新增移除程式
notepad 記事本
explorer 檔案總管
gpedit.msc 本機群組原則
netplwiz  啟用開機不輸入密碼自動登入


2019年7月3日 星期三

[Docker]自製docker image 執行scrapy

本次實做的環境
ubuntu 18.04 的伺服器版本
docker 18.06
python 3.6
pip 19.11

以下繼續

[Python]cannot import name main解決方式

要用pip3 安裝軟體時出現錯誤,
使用

sudo vim /usr/bin/pip3

將本來的

from pip import main
if __name__ == '__main__':
sys.exit(main())


改成

from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())

修改方式,先按i 將文字編輯器改成insert模式,才能改資料
改完後,按ESC離開insert模式,再輸入:wq 存檔後關閉。


ref.
pip Import Error:cannot import name main解決方案
vim 程式編輯器

2019年6月26日 星期三

Pyton Anaconda for Ubuntu

先來個Linux的指令速查表
Linux Cheat sheet
安裝anaconda,請看 Here
安裝時,注意檔案的大小寫名稱
安裝完後請重開機(reboot),conda的指令才有用

建立環境
conda create -n envName
conda create -n envName python=3
進入環境
source activate envName #在base底下要切換的話用這組

conda activate envName #通常用這組可以通吃
安裝套件
conda install packageName
套件列表
conda list
離開環境
conda deactivate


補充


#ubuntu只顯示資料夾
ls -d */


2019年6月10日 星期一

[PowerShell]初學筆記-Part II

1.可使用圖形化介面來幫助輸入指令

Show-Command get-childitem

2.建立一個新項目(但他可能是資料夾、檔案、註冊表項..等等),故指定類型

New-Item testfolder -ItemType Directory

3. 進入註冊碼表

Set-Location -Path HKCU:


2019年6月6日 星期四

[PowerShell]自動開啟網頁

有再登入電子書的網站,每天賺積分。
突然想到,我那麼累的每天登入做啥。
讓電腦自己去跑就好了。

PowerShell 執行外部程式的關鍵字為

&
所以完整語法
$Path =  "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
$parm = "http://tw.yahoo.com http://www.pchome.com.tw"
$Parms = $Parm.Split(" ")
& $Path $parms


這樣就會自動開啟網頁了
再來設定個排程,讓他定時去執行

ref.Google Chrome參數一覽表
ref.how-to-run-an-exe-file-in-powershell-with-parameters-with-spaces-and-quotes

2019年6月4日 星期二

[PowerShell]初學筆記-Part I

雖然寫過一些powershell的檔案
但從來沒有從頭去看過相關的書

1.PowerShell的指令是根據 動詞-名詞 這樣去湊出來的
2.一般我們在DOS下使用的DIR 或是 CD 這些指令,在PowerShell底下是靠alias去對應的

Get-Alias 可以看到所有的對應表
Get-Alias DIR 可以看到 這個指令的別名

3.指令後面可以再加上另一個命令(cmdlet) ,中間用 破折號做分隔

Get-Command | Measure-Object  可以計算命令的加總數量

4.如果要找關於service的指令,可使用

Get-Command *service* 尋找

5.更新 指令的範例(記得用Administrator更新,但我還是更新失敗)
Update-Help

6.參數的簡易介紹

Get-EventLog
    [-LogName] <string>
    [[-InstanceId] <long[]>]
    [-ComputerName <string[]>]
    [-Newest <int>][-After <datetime>]
    [-Before <datetime>]
    [-UserName <string[]>]
    [-Index <int[]>][-EntryType <string[]>]
    [-Source <string[]>]
    [-Message <string>]
    [-AsBaseObject][<CommonParameters>]
[-LogName] <string> 為必選,因沒有用中括號 [  ]   將 指令及參數包起來
[-ComputerName <string[]>] 為可選,因為使用了 [  ]   將指令及參數包起來
  [[-InstanceId] <long[]>] 同上,為可選,但InstanceId 又用了中括號包起來,表示此參數又為可選,
又稱定位參數,在輸入時可以省略-InstanceId 不用打,直接輸入參數,但須注意參數的位置

<String []>  用單引號及逗號 串連,如果是數字就不需單引號
Get-EventLog -ComputerName 'SERVER01','SERVER02'
結論
Form Meaning
[[-Param] T] Optional parameter of type T with the name optional
[-Param T] Optional parameter of type T with the name required
-Param T Required parameter of type T
[-Param] A switch (flag)
7.小括號()會最優先執行
Get-EventLog Application -computer (Get-Content names.txt)

2019年5月26日 星期日

[Win10]讀卡機無法讀取IC卡(健保卡)

前言

總是撐到最後才報稅,
自然人憑證到期了,
之後又要換新的身份證,
這次就來用健保卡來報稅了。
健保卡的申請方式,參考這篇
建議是使用手機app(健保快易通)申請(前提是手機是掛在你名字底下),
如果用電腦申請的話,需要戶口名簿的戶號...

環境

Win10的版本是 1809
瀏覽器:Google Chrome

解決方式

總而言之,申請完插上讀卡機要讀取的時候,會跟你說  健保卡未插入讀卡機
然後你到健保卡的網站  健保卡網路服務註冊 去看電腦環境說明
按下檢測健保卡認證,他還是告訴你健保卡未插入讀卡機

到裝置管理員,看一下你的智慧卡讀卡機的型號,
如果是 1 的名字,就是驅動必須更新,更新方式可以使用 IOBit Driver Booster
如果是 2 或其他的名字,表示你讀卡機正常,


再來就是看一下智慧卡 是不是顯示 不明的智慧卡
這邊可以參考政府的pdf說明 (步驟2)

都好了,就能讀到卡片了...看要使用線上報稅還是下載軟體後報稅了。








2019年5月22日 星期三

[VBA]VBA實際運用合併字串

基本上,從來沒寫過vba
真的很複雜的,也是開C#  用epplus寫一寫就收工了。
但這次題目說簡單也簡單,重點也只做一次。
代碼 名稱
2004 臺灣銀行                
20040037 營業部                 
20040059 公庫部                 
20040071 館前分行                
2004093 臺南分行                
20040107 臺中分行                
20040118 高雄分行
要把台灣銀行的名稱加進分行名稱的前面
但銀行很多間,又懶得去比對(雖然用手工做可能比寫程式快)。

以下開始,

2019年5月17日 星期五

[PowerShell]偵測硬碟空間大小,並發送Line Notify

為了因應AWS的機器,
所以要盡量將硬碟空間開的剛剛好,但又怕資料塞報硬碟,
只好定時寄送通知了。

根據 使用 Windows PowerShell 顯示本機磁碟機的空間狀態
知道怎麼顯示 硬碟空間大小
再根據條件判斷何時要發送Line Notify,
Line Notify的發送方式,請參考 PowerShell 檢查硬碟狀態發送line通知


# 取得所有硬碟的資訊
$Disks = Get-WmiObject -Class Win32_LogicalDisk

# 輸出每一個硬碟的資訊
foreach ($Disk in $Disks) {
  "------------"
  "磁碟機代碼:{0}" -f $Disk.DeviceID
  "磁碟機名稱:{0}" -f $Disk.VolumeName
  "磁碟機大小:{0:0.0} GB" -f ($Disk.Size / 1GB)
  "剩餘空間:{0:0.0} GB" -f ($Disk.FreeSpace / 1GB)
  $Used = ([int64]$Disk.size - [int64]$Disk.FreeSpace)
  "已用空間:{0:0.0} GB" -f ($Used / 1GB)
  $Percent = ($Used * 100.0) / $Disk.Size
  "已用比例:{0:N0} %" -f $Percent
  if($Disk.DeviceID -eq "C:")
  {
 
    "Get C"
    $Percent
    if($Percent -gt 40){
        "C > 50 %"
        line_notify
    } 
    break
 
  }else{
    "Get Zero"
  } 
}

上面有幾點要注意,
PowerShell的 >= <= 使用的方式是 -gt -lt
這邊只列幾個常用的

等於            -eq
不等於        -ne
大於等於    -ge
大於            -gt
小於            -lt
小於等於    -le


完整運算子,請參考 限量ㄟ蓋步-PowerShell - 運算子

基本規則,請參考黑暗執行緒-Powershell 學習筆記

2019年5月15日 星期三

[軟體]Office 365 關閉更新

微軟的更新品質越來越不穩定了...
之前用Gpedit.msc關閉Windows update更新(因為跟防毒軟體衝突)
請見 桌面黑屏,請將微軟更新kb4493472移除
最近office更新導致,程式會強制關閉
請見 Office 2016更新臭蟲引發當機,遭微軟緊急撤除

來關閉office 365 更新了
最簡單的方式,

或是直接更改註冊檔

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration

UpdatesEnabled 改為 Flase

2019年5月3日 星期五

[軟體]Cmder設定

目前cmder的版本為  180528

1. λ改成$
到解壓縮後的cmder目錄,開啟vendor,打開clink.lua,
將 {lamb}修改為$
    local cmder_prompt = "\x1b[1;32;40m{cwd} {git}{hg}{svn} \n\x1b[1;39;40m{lamb} \x1b[0m"
改為
    local cmder_prompt = "\x1b[1;32;40m{cwd} {git}{hg}{svn} \n\x1b[1;39;40m$ \x1b[0m"
(ref.window】修改cmder工具的命令行提示符(λ改成$))
2.解決文字重疊(目前測有解決,後續再觀察)
開啟setting->General->Fonts
將Monospace拿掉(figure 2)



(figure 2)
(ref.Win下必備神器之Cmder)
3.設定cmder的桌布
Setting->General->Background
調整 Darkening ,可以將背景圖片變得比較透明。

2019年5月2日 星期四

[Windows Server]工作排程執行net use(掛載磁碟機)不會顯示

Windows Server想要再開機的時候,自動執行net use的指令,
掛載網路磁碟機。
因為已經有用工作排程寫好排程工作了,
排程工作設定為登入後啟動,
再用netplwiz 設定好自動登入,
但每次重開機,就是不會自動掛載Z槽的網路磁碟機。
但單純手動直接執行是會跑得。
最後將批次檔直接丟去Windows server的啟動資料夾,
正常了。
有在猜測是不是權限問題,參考 iT邦幫忙

Window server的個人啟動資料夾在
C:\Users\用戶名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup



啟動資料夾-系統
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

2019年4月26日 星期五

[Git]Gitea 版控Server設定及Client使用

呈上篇在Windows下安裝Linux版本的Gitea Docker
Gitea已經安裝完成了,但玩掛這件事,對於開發程式的人而言,
就像吃飯一樣,再正常不過了。
玩掛的話,該怎辦?
1.不想改docker名稱的話,
就把容器直接砍掉,記得先停止,請注意 container id 跟 image id的差別,
這兩個是不一樣的。



docker ps  -a 查目前所有在執行的container
docker stop 容器id  關閉正在執行的容器id
docker rm 容器id 移除容器
更多指令:Docker 初體驗 之 hello-world (含常用指令)
再順便把 上一篇 在實體機上建立的資料夾內容砍光,這樣才能重新設定。

本文開始

2019年4月24日 星期三

[Docker]在Windows下安裝Linux版本的Gitea Docker

請先參考上一篇,Windows server 2016安裝 Docker
安裝完後,在power shell下

docker version

可以看到已經是Linux的核心了(Figure 1)

(Figure 1)
但此時,要安裝docker的映象檔時,會發生找不到伺服器的問題(Figure 2)。


(Figure 2)

1.請修改windows server的 hosts檔案。
檔案在 C:\Windows\System32\drivers\etc
增加一行,強制指定他要去哪裡找映象檔

54.84.81.66 index.docker.io

ref.https://xiejindou.com/2018/06/13/docker%E6%8A%A5Error%20response%20from%20daemon%E7%9A%84%E5%BC%82%E5%B8%B8%E8%A7%A3%E5%86%B3/
2.將gitea的檔案拉下來。
docker pull gitea/gitea:latest

3.先建立一個資料夾,將用來放置gitea的檔案,這邊建立的資料夾路徑是  C:\docker\gitea
執行gitea,並設定設定檔的存檔位置,以及port的對應
下面10022:22 的意思是 將docker的22 連接埠 對應到 實體機的10022的連接埠
同理 10080:3000的意思是將 Docker的 3000連接埠 對應到 實體機的 10080的連接埠
這部分很重要,會關係到你之後怎麼push檔案到git server

docker run -d --name=gitea-demo -p 10022:22 -p 10080:3000 -v C:\docker\gitea:/data gitea/gitea:latest

ref.Docker 常用指令與容器操作教學

4.此時可以在實體機上,開啟localhost:10080 就可以看到 網頁已經架起來了(Figure 3)。

2019年3月29日 星期五

[Docker]Docker 筆記

1.Windows server的Docker核心 分成兩種 Linux Container 和 Windows Container

2.核心的環境不能在不同核心上面執行image

3.Windows 容器環境分成兩種 Windows server Container 以及 Hyper-V Container

4.Windows server Container 與 Hyper-V Container 的差異在前者共用系統核心資源(類似服務),

而後者需依賴於Hyper-V虛擬機上面。

5.Windows server Container 及 Hyper-V Container 內都可安裝的image 為  Server Core 和 Nano Server

6.查詢目前容器是Window or Linux ,在power shell內 執行docker version

7.Server Core 跟 Nano Server的差別在 Nano core 檔案比較小,而且不具備GUI的功能…等其他。

官方解釋:

Nano Server 是一個遠端管理的伺服器作業系統,已針對私人云端和資料中心最佳化。 它類似於 Server Core 模式的 WindowsServer,但明顯較小、沒有本機登入功能,而且只支援 64 位元應用程式、工具和代理程式。 比起 WindowsServer,它佔用的磁碟空間更少、設定的速度明顯地更快,而且所需的更新和重新啟動次數更少。

(詳細請看 微軟-安裝Nano Server)

8.要在Windows server上面玩Docker之前,最好先更新到最新版本。


參考資料來源:

不自量力的weithenn-安裝 Docker 容器環境 - Windows Server 2016

微軟-在 Windows 上的容器

2019年3月28日 星期四

[Windows]Windows Server 巢狀虛擬化

在Windows server 2012要玩 虛擬機裡面掛載虛擬機,
很麻煩,而且也不一定成功。
現在到了Windows server 2016就可以直接使用了。
要確認有沒有支援虛擬化技術,可執行Coreinfo判斷,
但你如果已經執行HyperV的話,狀態會沒辦法顯示。
但基本上,已經能夠執行HyperV就表示你的CPU有支援虛擬化技術。

先定義幾個東西,
實體機為 A ,實體機底下的虛擬機 為 B
要在B的底下再開一台虛擬機C
1.首先要將A的虛擬化狀態傳給B
在A執行PowerShell的指令
VMName指的是B的虛擬機名稱
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
2.從B的伺服器角色安裝Hyper-V
3.更新B作業系統到最新的版本
(ref.不自量力的weithenn-實作 Hyper-V Nested Virtualization)

[Docker]Windows Server 2016 安裝Docker(Linux Container)

前言
Dokcer在Windows 上面分成兩種,
一種是Windows Container(WCOW) ref. ,Windows 容器需求
另一種是Linux Container(LCOW)ref.Windows 上的 Linux 容器
前一篇文章[Docker]Windows Server 2016 安裝Docker有講到安裝方式
那個可以略過不用看了
(後來才知道那一篇文章講的是Window Container的安裝方式,
這篇做的是Hyper-V Container)

現在的安裝方式比較簡單,但如果要裝Linux Container的還是會麻煩到炸。
首先,你如果是實體機上面直接操作,恭喜你沒問題。
只要確認一下,你的CPU、主機板的虛擬化技術有開,SLAT(第二層位置轉譯)有支援就好。
可以執行Coreinfo來檢查(ref.如何檢查處理器是否支援第二層位址轉譯 SLAT)
但要注意,如果你有啟動Hyper-V,你怎樣查是查不到的。
此時也可以直接去查CPU的型號,到intel的網頁上。
看這幾個是否有支援。


如果一開始的機器是虛擬機而不是實體機,那要先搞定的是巢狀虛擬化技術
可參考另外一篇,實做
千萬記得,在Hyper-V還沒安裝好以前,不能安裝Docker。


回到正文,

2019年3月26日 星期二

[Windows]DNS錯誤解法

因為DNS server掛在自家主機上面,
但偶爾發生了連線連不到的問題。又不想重開機。
只好追蹤錯誤了。
1.查詢DNS

nslookup
server 192.168.168.167  (指定DNS server)
set type=any
test2.fatek.com.tw (要查詢的網址)

或者

nslookup test2.fatek.com.tw 192.168.168.167

有查到正確的IP,那表示DNS伺服器沒有問題
(ref.曾阿銘的技術資料與吃喝玩樂-WHOIS,DNS,nslookup的指令)
2.清理網路的DNS紀錄

ipconfig /flushdns
ipconfig /registerdns
ipconfig /release
ipconfig /renew

目前下到重新註冊dns就能夠正常連線了
(ref.微軟-Windows 7 中的「您的電腦似乎已正確設定,但是裝置或資源 (DNS 伺服器) 沒有回應」錯誤訊息

2019年3月19日 星期二

[Linux]HyperV安裝Ubuntu 18.04 及軟體紀錄

2019/08/12 更新root登入

要開始玩Docker了,但用Windows似乎撞牆期會很長。
先弄個Ubuntu來玩了。

本次安裝的版本是 18.04 TLS版(預計支援到2023 年 04 月)

1.要安裝的時候,
如果使用HyperV的二代虛擬機,請一定要把安全性開機關掉,
不然沒辦法安裝



2019年3月4日 星期一

[Windows Server]RAMMap 裡面的 Driver Locked 太大

放了四天假,第一天上班

就看到Server出了點問題,

開工作管理員沒看到有吃大量記憶體的程式,

後來查到一篇,黑暗執行緒-Windows記憶體都用到哪裡去了?

去抓了 RAMMap 來用,才發現所有的記憶體都被Drier Locked吃掉了,大約有4xG

看了幾篇文章

 Agile IT by Doug Luxem - Driver Locked Memory on Hyper-V Guests

MSDN-Hyper-V Dynamic memory, Driver Locked

才知道原因在於,Driver Locked是Hyper-V的動態記憶體管理 (Hyper-V Dynamic Memory Overview)

講更簡單點,除非把他關掉,不然沒醫。

至少確定這個記憶體使用量,不是什麼不明程式所造成的就好了。

2019年2月21日 星期四

[Windows Server]Server 2012 R2 開啟程式,出現 api-ms-win-crt-runtime-l1-1-0.dll 遺失

用Windows Server 2012 R2 開啟PTC 的 Creo View 出現此錯誤訊息,

以前有處理過,但沒寫下步驟,跟一般作業系統的作法有差異,

一般作業系統只要安裝 Visual Studio 2015 的 Visual C++ 可轉散髮套件 即可。

但我安裝的過程中出現錯誤,導致無法安裝。

要解決此問題,必須安裝 下列更新檔(OneDriver連結

Windows8.1-KB2939087-x64

Windows8.1-KB2975061-x64

Windows8.1-KB2919355-x64

Windows8.1-KB2999226-x64

如果出現此更新不適用於此電腦,先更新其他的更新檔,之後再安裝該更新。

順序應該是由上到下排列,如有意外,請先跳過後更新。

2019年2月19日 星期二

[LinQ]LINQPad快速測試,建立資料篇

測試LinQ的最快方法,
如果不是連資料庫撈資料測試,
只是要自己玩玩的話。
Language 選擇 C# Program

void Main()
{
     test();
}
class aa
{
     public string id{get;set;}
     public string Name{get;set;}
     public int Value{get;set;}
}
private void test()
{
     var li = new List<aa>();
     aa one = new aa();
    
     one.id="A";
     one.Name="甲";
     one.Value=1080101;   
    
     li.Add(one);
    
     li.Add(new aa{ id="A",Name="乙",Value=1080102 });
     li.Add(new aa{ id="B",Name="丙",Value=7 });
     li.Add(new aa{ id="B",Name="丁",Value=1 });
     li.Add(new aa{ id="B",Name="戊",Value=10 });
        
     var query = from p in li
         group p by new{p.id} into g
         select new{
             g.Key.id,
             Name = (from g2 in g where g2.Value == g.Max(s => s.Value) select g2.Name).Max(),
             Value= (from g2 in g where g2.Value == g.Max(s => s.Value) select g2.Value).Max()
         };
     query.Dump();
    
     var query3 = li.GroupBy(p=>p.id).Max(p=>p.Value);
    
     var query2 = from p in li
         group p by new{p.id} into g
         select g;
     query2.Dump();
}

參考資料:Writing Methods and Classes in LINQPad

2019年2月1日 星期五

[Katalon Recorder]命令教學筆記 PartI

1.假設一個ul的id是group_3
那有2種擷取的方式
css選擇器 css=#group_3
預設方法 id=group_3
2.抓div的class ID

<div class=’zone area-list></div>


xpath = //div[contains(@class,'zone area-list')]

3.抓ul底下li的超連結文字(ref.stackexchange)

<ul id="group_3" class="area-list" style="">
     <li class="select_form_b">
         <a id="5181_14" style="opacity: 1;">
             <span style="background: #f9581d;">&nbsp;</span>
             2800
             <font color="#FF0000">剩餘 2</font></a>
     </li>
</ul>


xpath = /ul/li/a[contains(text(),'橙208區2800 ')]

4.抓ul底下li的超連結文字 並且包含 剩餘 (ref.stackoverflow)

xpath=/ul/li/a[contains(text(),'橙208區2800 ') and ./font[contains(text(),'剩餘')]]

5.下拉選單,選擇項目(ref.stackoverflow)

<select class="mobile-select" id="TicketForm_ticketPrice_04">
     <option value="0">0</option>
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
</select>

command Target Value
select id=TicketForm_ticketPrice_03 label=2
select xpath=//select[contains(@id,'TicketForm_ticketPrice')] label=2

6.取得焦點
<input type="text" id="TicketForm_verifyCode"  style="width: 220px; min-height: 35px;">
command Target Value
focus id=TicketForm_verifyCode
其他命令列表
Katalon Docs

2019年1月24日 星期四

程式開發會用到的軟體-2018版

距離上次  程式開發會用到的軟體-2016版 發佈的時間已經過了幾年了
現在反而比較少寫程式,
寫SQL的次數反而比較多,再來就是PowerBuilder
--2018--

VisualStodio 2017的外掛 :Supercharger,快速找到你的程式

SQL server Manager 的外掛:ApexSQLRefactor,格式化你的SQL
原始:


自動格式化:


Q-Dir:四個視窗的檔案總管。
Atom:功能眾多的文字編輯軟體,裝完後修改設定
DisplayFusion:多螢幕專用的軟體
Remote Desktop Manager:遠端桌面管理軟體
cmder :命令提示字元加強版
Outline:翻牆(科學上網)專用,教學
Xshell:telnet連線專用,跟putty一樣。
chrome應用程式:Postman (測試RESTful用)


--2016--


2019年1月18日 星期五

[JAVA]Windows server 2012 關閉JAVA 自動更新(Use Regedit)

一般的關閉方法是在

C:\Program Files (x86)\Java\jre1.8.0_201\bin

底下找到 javacpl.exe後,用最高權限開啟後,再把自動檢查更新關掉。

但今天在windows server 2012 R2怎麼關都關不調。
只好用另一招,
開啟註冊檔(regedit),
到下面的位置

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy


EnableJavaUpdate的值改成0,但在javacpl底下看自動更新還是打開的。應該是有用才對。


2019年1月9日 星期三

[Windows10]Windows10刪除檔案總管瀏覽窗格多餘的硬碟-Part V

在檔案總管的畫面,會重複出現多餘的硬碟。
有時是usb,有時是一般硬碟都會出現
image
以下繼續

[Windows]查詢資料夾被哪個程式咬住

碰到檔案不能刪除,

或是資料夾不能刪除,

原因通常是被程式咬住,

一般最常用的就是用unlocker來查是哪個程式咬住。

現在用資源監視器,直接查到是誰咬住。

參考:史丹利好熱


image

SNAGHTML1e0a707b

[Open data]氣象局、雲嘉嘉空氣盒子 API使用連結

寫公式演算法寫到煩,之後不知道怎麼搞的,
就在幫同事找API的資料。
留著連結,日後有需要就能用了。
以下繼續