Raspberry Pi4 如何設定螢幕解析度

瞎咪~~~設定螢幕解析度有什麼好分享的呢? 說實話,真的沒有那麼直覺,可以自己找到設定。 首先,用了以下指令去修改使用的解析度: sudo nano /boot/config.txt 改好重開機,解析度依舊沒有改變。 但是在Desktop的界面裡面,找了 偏好設定-->Raspberry Pi設定,根本就沒有有關螢幕解析度的設定。最後~~原來藏在一個非常不起眼的地方: 偏好設定-->Screen Configuration,選單 Configure-->Screens-->HDMI-1-->Resolution 本篇參考Google大大的文章如下: https://pimylifeup.com/raspberry-pi-screen-resolution/

跨網站登入的實際應用

跨網站登入就是跨多個不同的Web Server,因為Web Server有自己的Session線程,如果Session無法做到共用的話,就必須要用其他方式處理,如下圖簡單的示意圖: 第一步:是A Web Server給了Client Browser一個連結,而這個連結是連線到A Web Server的pagaA。 第二步:A Web Server回應一個Form表單,但是立即submit出去,而form表單中的src指向B Web Server。 第三步:B Web Server接收了來自Client Browser就會產生B Web Server Session,這個時候,因為收了Client的post資料,資料內可以是Token或者是帳號與密碼(這個部分最好用JWT加解密)。而拿到的Token也可以用Server to Server的方式去詢問資料的有效性。 以上是一個簡單的跨站資料傳輸保有Session的流程,但是不建議在外部網路使用喔,因為有一個弱點,就是在Client Browse可以停用java script,這樣給client的表單就不會被送出,那麼就可以利用來作手腳了。 Form表單的內容可以參考如下: <form action='B Web...

Raspberry Pi的Kiosk模式

最近開始嘗試研究樹莓派(Raspberry Pi),買了一個Pi4,竟然不用花到兩張小朋友,就有了強大的計算能力,當然也不是白研究的,第一個任務就是希望用樹莓派取代用電腦來進行Kiosk的工作。 目前這台展示機(Kiosk)的功能很簡單,就是用瀏覽器全螢幕播放即可,先來算算看用樹莓派的效益有多好呢?最大效益應該就是在節省電費上吧。 節省電費的效益:電腦:300W/h*24h/1000*3元/度*365天=7884元/年樹莓派:15W/h*24h/1000*3元/度*365天=394.2元/年 哇塞這個效益也不錯拉,等於一年省下來的電費,可以在買兩個全配的樹莓派吧。 接下來是設定Kiosk的部份,首先要下載樹莓派的Imager,把作業系統映像到SD卡上。啟動Imager畫面如下: 另外一提,買到的樹莓派,可能無法開機,沒有任何畫面出來,這很有可能是板子上的EEPROM已經毀損了,可以先選擇,接著在選製作EEPROM boot recovery,用這個開機讀一下就好了,請參考以下兩張圖片。 如果沒有了EEPROM的問題後,就接著製作開機映像檔案燒進去SD卡中,然後開機進到畫面裡,重點開始拉,就是用終端機編寫以下檔案: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart 在最後一行加入以下(已經排除更新顯示訊息的問題): # run kiock mode /usr/bin/chromium-browser --kiosk --disable-restore-session-state --disable-session-crashed-bubble --noerrordialogs --disable-infobars --no-default-browser-check --no-first-run --check-for-update-interval=1 --simulate-critical-update http://kiosk.com 然後接著要處理螢幕會自動休眠的問題,這個開啟裡的,把的關掉就可以,如下圖: 然後重開機,就可以自動放映囉。

NLog再進階Archive File

今天再繼續談NLog,寫檔案的Log,會有一個問題,就是日子久了難免Log會越來越大,大到把硬碟塞爆,然後伺服器Error。 所以自動化清除Log是有必要的,一般保存3個月已經不錯了。NLog有這樣的功能,只要修改config檔案就能辦到,如下: <target xsi:type="File" name="f" fileName="${basedir}/App_Data/logs/logfile.log" layout="${longdate} ${uppercase:${level}} ${message}" archiveFileName="${basedir}/App_Data/Logs/archives/log.{#}.log" archiveNumbering="DateAndSequence" archiveDateFormat="yyyyMMdd" archiveEvery="Day" maxArchiveFiles="90" /> 這個範例表示的是,即時的Log寫在App_Data/logs/logfile.log裡,然後其他天打包的寫在App_Data/Logs/archives/下,並且用日期來編檔名,保留90天內的資料。 其他有關檔名的教學,請參考以下連結: https://github.com/NLog/NLog/wiki/FileTarget-Archive-Examples#archive-numbering-examples

NLog的Log等級

使用等級區分有個好處,就是可以依據嚴重程度或被觸發到的機率,考慮是紀錄到DB就好還是要發送email。 首先要確定在config設定檔內rule的設定,可以參考以下: <rules> <logger name="*" minlevel="Trace" writeTo="database" /> <logger name="*" minlevel="Trace" writeTo="f"...

NLog寄送電子郵件與紀錄事件檢視器

如標題,這個夠犀利了,主要是設定target。 電子郵件 <!-- 寄送 電子郵件 的設定 --> <target name="email" xsi:type="Mail" smtpServer="192.168.1.1" smtpPort="25" smtpAuthentication="Basic" smtpUserName="帳號" smtpPassword="密碼" enableSsl="false" from="hello@abc.com.tw" to="admin@abc.com.tw" html="true" encoding="UTF-8" addNewLines="true" subject="不好了!!!${machinename} 於 ${shortdate} ${time} 產生 ${level} 等級的錯誤。" header="##########################################################################" body="${newline} 時間:${longdate} ${newline}${newline} 等級:${level:uppercase=true} ${newline}${newline} 紀錄者:${logger} ${newline}${newline} 來源:${callsite:className=true} ${newline}${newline} Exception類:${exception:format=type} ${newline}${newline} 錯誤訊息:${message} ${newline}${newline}" footer="##########################################################################" /> newline對html而言是沒有作用的,會擠成一坨,可以在加入以下(讓config使用<br>換行) &lt;br&gt;...

Nlog的紀錄改寫到資料庫中

承接上篇,NLog的紀錄可以改寫到資料庫中的,另外Nlog.config檔案也可以與Web.config合併喔,首先進行合併,把Nlog.config的內容除了<?xml....utf-8"?>不要複製外,把內容貼到Web.config的</configuration>之前,然後跑跑看測試,當然跑不出來囉,這是因為Web.config不認識nlog的標籤,只要在<configSections>標籤下多加入一個<section即可,如下: <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> 這樣就可以運作了,不過記得資料庫要開Table,語法如下: SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON CREATE TABLE . ( IDENTITY(1,1) NOT NULL, ...

介紹兩個好用的log套件

以往開發程式一定要處理log的問題,不然還真的不知道該怎麼去抓蟲。log有幾種常見的方式,寫檔案、寫到資料庫或是寫入事件檢視器中,其實在Visual Studio工具中,只要用NuGet就可以非常簡單的方式開始記錄log,以下文章是介紹最好用的四種Log套件,可以參考看看: https://www.codeproject.com/Articles/1278018/Best-Logging-libraries-for-ASP-NET-MVC 筆者推薦兩套,原因如下: 推薦Elmah:只要網站發生任何錯誤導致有error,就會寫log(不用在程式碼裡面特別去寫要記錄log)。IIS的error頁面要localhost端才看得到,但又不見得可以重現,所以有這個之後會方便許多。推薦NLog :紀錄log還有一種情況,例如登入登出的紀錄,這個就不適合用Elmah拉,小而巧的 NLog 與 Log4Net 就很適合,兩套都不錯且有大量粉絲,對Log都能進行分級(一般紀錄「Debug、Info、Warn」、嚴重紀錄「Error、Fatal」),也都能紀錄到資料庫中, 而推薦NLog 的原因,是因為用的人好像比較多一些。 Elmah安裝教學 用NuGet下載 Elmah.Mvc,下載完成後 https://localhost:44345/elmah 就可以看到重大錯誤的log紀錄了,但是因為是放在記憶體中,網站關掉就沒有了。在用NuGet下載 elmah.sqlserver 。修改Web.config 會發現多了一段 <add name="elmah-sqlserver" .........> 把正確的SqlServer設定上去,或是砍掉這段用既有的,但是要修改<errorLog type="Elmah.SqlErrorLog, Elmah"connectionStringName="正確連線名稱"/>執行專案下 ~App_ReadmeElmah.SqlServer.sql 建立資料表,執行完成後,目錄 ~App_Readme...

不能將WebApi寫在App_Code下

這是個大慘案,雖然在WebForm可以這樣做,但是在以MVC架構為主的情況下,放在這樣的地方會造成controller重複,詳細原因不明,但是把webapi放去該去的Controller資料夾下,一切都正常了。..................... 無言...............

Laravel學習筆記系列(Day3)

本日主題:開發環境建置(使用虛擬機的方式) 首先把以下的東東都下載下來並安裝完成(當然全部都可以跨平台的拉): VirtualBoxVagrantGitVisual Studio Code Vagrant安裝完成後,開啟命令提示字元(以Windows環境為例),輸入以下: vagrant box add larael/homestead 之後就進入下載Homestead的virtual box檔案囉(如果你有裝多個VM軟體的話,會出現選單,就選virtualbox就對了),如下圖。 下載的咚咚會在哪裡呢,會在家目錄下的「.vagrant.d」資料夾,如果是Linux或Mac可以用「~」去找到家目錄位置,Windows會在「C:Users使用者帳號」下喔。 下一步:設置開發資料夾 切換到你要的開發目錄下執行以下指令: git clone https://github.com/laravel/homestead.git Homestead 如此會從github版控下載最新的laravel,並放到Homestead資料夾下,然後在CD到該資料夾下,如果要使用不同版本可以用以下指令。 git checkout v10.9.2 接下來在Homestead資料夾中有init.sh與init.bat執行檔案,當然windows就是跑init.bat囉。主要產生 Homstead.yaml 設定檔,編輯它。 ip:虛擬機拿到的 ip 位址不需要改。memory、cpus:虛擬機資源不需要改。provider:因為用virtualbox,也不需要改。authorize、keys:需要改以下,通常放在家目錄中,沒有的話用以下指令增加。 ssh-keygen -t rsa -C "your_email@example.com" folders:map代表本機的位置,to代表掛載到虛擬機的位置。sites:DNS網址,比須修改hosts( C:WindowsSystem32driversetchosts )對應。databases: 不需要改。 然後輸入以指令啟動 vagrant up 其他指令說明如下: vagrant...