-->

2020/08/09

手機面板破裂 (Sony XZ3) 維修心得

自認已經把機車手機座改造到很穩定了,但還是敵不過台灣的越野車賽道柏油路。前陣子押到不知道什麼東西,機車跳很大一下,人差一點飛出去,手機則是瞬間消失 .....,找回來時已經滿目瘡痍,且有部分區的觸控功能損毀。


送 Sony 原廠維修,更換了前觸控螢幕、以及前後玻璃殼 (XZ3 是玻璃曲面的設計),維修費用接近手機價格的一半,實在很痛心。

本次經驗整理出幾個心得:

  • 手機並不是設計用來給機車導航的,所以再好的手機座都沒辦法真正的保護手機,除非改為開汽車
  • 讓手機可以安全固定在手機座的方法:放慢騎車速度、好的路面。我想大家都知道後者不能抱有大多期待 XD
  • 玻璃外殼雖然耐刮,但是不耐撞,一處破裂後裂縫會無止境延伸出去
  • 智慧型手機幾乎均透過觸控螢幕作為輸入媒介,一旦觸控面空能消失變可能讓手機變成磚塊,如:無法解鎖 .... 等 (我當時只能透過指紋辨識解鎖)
  • 若經常於夜間 (無陽光) 時騎車,建議車上備有手電筒 (註一)


註一:台灣的路燈已漸漸更新為 LED 燈,但 LED 燈有一些缺點
  • 光譜寬度很窄,所以及使手機是量紅色,在黃色路燈照射下,看起來也只能看出亮黃、暗黃色,要找東西部好找
  • LED 照射距離短,所以二盞路燈中間有很大的機會是全黑看不到的 .....

2020/07/24

Live USB 救援用可開機隨身碟

之前做的 ISO 都沒人用,測試了一下才知道不會自動登入,也忘記設定帳號密碼,實在蠢死了。


這次更新用 Ubuntu-Mate 20.04 來建置,應該可以支援較多的驅動程式,希望可以在急需時幫上忙。


載點:


理論上這個版本會自動登入,若沒有成功,可以使用:
  • 帳號:root
  • 密碼:toor

推薦使用 balenaEtcherUniversal USB installer 來建立開機隨身碟。

2020/06/10

MySQL 5.7 安裝以後無法用 root 登入

以往都是在安裝的時候,直接請你先填寫 root 密碼,以便安裝完畢以後直接登入。
但 MySQL 5.7 認證方式有更改,即使是 root 也沒有給你預設密碼。

新的方法要使用 OS 的 root 來登入 MySQL:
$ sudo mysql -u root
....
....
....
mysql>




建立 super user 帳號:
create user zeroplex@localhost identified by 'secret';
flush privileges;

grant all privileges on *.* to zeroplex@localhost with grant option;
flush privileges;

到這邊告一段落,之後 zeroplex@localhost 就可以使用原有的方式登入了。

2020/06/02

Pytrhon 檢查語法是否正確的方式

如果是用 python 直接跑:
python3 views.py
Traceback (most recent call last):
  File "views.py", line 1, in <module>
    from django.shortcuts import render
python 執行了程式,發現 import 或是程式有用到外部 library 而導致噴錯。 


 如果只要檢查語法是否正確,需要靠 py_compile module:
python3 -m py_compile views.py

2020/05/25

Virtualized performance counters are not support on the host CPU type: Module VPMC power on failed



Seems VPMC is a profiling tools seens 2015.  But I do not really care what is using for.

There are two ways to disable VPMC :

  • Disable from VM settings
  • Edit VMX file using an editor



Open the VM settings, and switch to Processors page.

The second option is "VPMC"


in a little geek way, open the VMX file by any editor you want, and search the keyword "VPMC" :

Find it, and change it to "FALSE"


Happy Hacking !


2020/05/17

DIY 自製溫室 (定時、供水) (2)

前篇:DIY 自製溫室 (燈架、燈座、燈泡) (1)



終於 .... 來到了第二篇,這邊會大概聊一下,怎麼用簡單的控制板來控制 LED 燈。

當然還是先來張貓照 XD



2020/05/11

用電腦閒置的時間為 COVID-19 盡一份心力

之前層談過使用 BOINC 跑科學運算,讓電腦熱起來、房間溫暖起來。這次 BOINC 有新的用途:尋找 COVID-19 的疫苗、解藥!

第一步,下載 BOINC 平台:https://boinc.berkeley.edu/,安裝並啟用以後,大概會看到一個這樣的視窗:




然後點選下方的「新增專案」,要找的專案是「生物、醫藥」相關,找到該分類以後就會看到專案「Rosetta@home」:



加入專案會要求註冊一個帳號,除了可以設定不要佔滿整台電腦的處理器以外,也可以設定使用電腦時暫停運算,離開電腦一陣子以後才開始運算。

Rosetta 我記得以前是在研究蛋白質折疊什麼的,沒想到一下子就跳出來幫忙研究 COVID-19。除了 Rosetta 以外,BOINC 上有部份專案也暫停做研究,將他們實驗是的主機全部加入研究 COVID-19 研究。


嗯 .... 人類真是奇妙的動物,似乎都要死到臨頭才會開始合作? XD

2020/05/07

執行 inspectdb 把已經存在 DB 的 schema 拉回來

今天的情況是 Laravel 已經做好 migration,但是後來決定使用 Python 來處理一些 PHP 處理起來比較麻煩的東西,但資料庫必須共用、無法分開。




Django 有的功能叫做「inspectdb」,當 settings.py 的資料庫都設定好以後,在執行「./manage.py inspectdb」,就會自動生成 models。

所以懶一點的作法是「./manage inspectdb > app/models.py」。

2020/04/21

Laravel v7.0 新功能

官方網站整理下來:


Airlock

使用 Airlock 可以更輕鬆的支援 single page application (SPA)、token-based API 等等,同時也可以針對 token 設定可存取犯元 (scope)。 (感覺上類似 OAuth)


Custom Eloquent Casts

以往使用者從 Eloquent ORM 拉出資料以後,使用者可以自訂 cast type,也就是說可用者可以自動 cast attribute 成特定格式。範例可以參考 Laravel 的 Pull Request



Blade

新增不少功能來 render HTML。詳細說明請參考 Larvel Docs。



HTTP Client

為了史 API 更靈活,Laravel 使用 Guzzle HTTP client 來與其他 API 溝通。



Routing Cache

透過新的方式來做 route 的 cache,即使大型網站 (800 routes) ,route matching 的速度也可以比以往快上 20 倍。

2020/04/08

用 venv 為 Python 建立虛擬環境

大家都知道把套件裝成 global 會發生什麼事吧?所以若要開發的 project 需要很複雜套件相依性,則可以考慮使用 Python 的 virtualenv。

先來安裝 pip3:
sudo aptitude install python3-pip

在用 pip3 來裝 virtualenv:
pip3 install virtualenv

會後在準備建立的專案執行以下指令:
python3 -m venv project

這個時後你會發現 project 目錄底下已經有不少東西了,這個時候就可以切入虛擬環境中:
$ source bin/activate
(project) $ 

奇蹟出現了,你的 prompt 最前面已經加上專案名稱,代表你已經完全在專案的環境底下,這環境下不管你用 pip 專什麼東西都不會影響到外部其他專案。

當開發結束,要離開個環境的時候,記得下指令「deactivate」以便離開虛擬環境。

Python 筆記

沒有特別提示的話,Python 的直譯器指的都是 CPython,另外還有 PyPy、IronPy、Jython 等。

另外 CPython 的 garbage collection 是 by reference counting 的,必要時可以用下面方式 GC:
del variable

2020/03/22

好歌找好久 - 直接備份

tag: ericsk


想要女朋友
詞/曲:ericsk

linchieh:
話先說在前頭, 這首歌只是我的白爛之作,
沒有要影射任何人的意思唷~~大家聽聽笑笑就算了...^^|||


又是走過竹軒門口 看著他們卿卿我我
尷尬的我快步走過 心裡想著什麼時候會輪到我

聽到正妹被人把走 勝利的人是個豬頭
搖搖頭說自己沒種 害羞得連追女生的勇氣都沒有

想想平時做些什麼 讀書作業考試樣樣都多
哪來機會時間交朋友 只有無奈地看著別人手牽手

我也想要一個女朋友 陪我唸書跟我到處走走
宿舍門前十八相送 靠著我的肩膀說妳永遠愛我
我也想要一個女朋友 只怪作業考試實在太多
才讓美女選了豬頭 而不是認真的我

孤獨時候唱男人與公狗 她被追走之後聽著開不了口
怎麼寂寞難耐的人會這麼多 難道一切都是野狗惹的禍?
交大的好男孩真的很多 只是節儉愛穿Hangtang Giordano
女生們呀妳們要好好地把握 但是請別忘了也不差的我

喔~我好想要一個女朋友 有個人陪真的不錯
親吻擁抱牽手 這樣的甜蜜我要何時才有?
喔~我好想要一個女朋友 可是妳們怎麼都不看我?
只好照照鏡子 看看自己是不是真那麼醜
喔~我只想要一個女朋友 睡前有人祝我好夢
認真唸書還會提醒我記得要運動
喔~我只想要一個女朋友 最後還是只能隨口說說
愛情的箭何時才會射中我 喔喔~


2020/03/05

使用 single user mode 在 Ubuuntu 修改密碼

最近記憶有點像是 flash memory,睡個覺什麼都忘了,今天忘記的還是 root 密碼。

Linux 忘記 root 密碼是沒關係的,可以在 console 先進入單人模式以後再重新設定密碼。


第一步:進入開機選單,選「Advance」




第二步:挑其中一個 boot images 並寫按下「e」(edit)


第三步:編輯器往下找,找到一行有「linux    vmlinuz....」來做修改


找到「linux     /vmlinuz-x.x.x  ........」這行,要在這邊做修改。

要注意的事情有:

  • 要對硬碟做修改,所以要把「ro」(read-only) 改成 「rw」
  • 「init」這個參數要指向 bash,否則會使用 root shel,可以操作的選項少很多


修改後的開機參數應該會向下面這樣:





第四步:調整完畢後,按下 F10 使用新的參啟動 Ubuntu。



這樣就可以使用 root 來改密碼了:「passwd zeroplex」。


備註:若你覺得 grub 選單的停留時間太短很難操作,可以參考「延長 grub menu timeout」來修改。若是卡在 VMware 的 BIOS 開機選單太快,可以閱讀 VMware Knowledge Base 的說明,對 VMX 做修改。


2020/02/02

DIY 自製溫室 (燈架、燈座、燈泡) (1)

下篇:DIY 自製溫室 (定時、供水) (2)


標題看起來好像很厲害,不過只是拿一些小零件就可以兜出來的成品。

聽說開講都要放貓咪照片?



2020/01/31

MySQL 的 replication logs 把硬碟空間吃光

今天服務一直中斷,稿不清楚狀況,只是開 console 進機器看,沒看還好,看了嚇一跳,硬碟空間全部被吃光了。

所以先嘗試把可以清空的資料清空:
sudo apt-get autoclean
sudo apt-get clean

cd ~
rm -fr .cache/*

空出了一些空間,但是也大概只有 1 % 左右,所以用 du 掃了一下目錄狀況,發現 /var 佔用超過 10 GB 的空間,這樣目標很明顯了:Docker 或是 MySQL。


先看 Docker,的確不少已經中止不再使用的 container,直接清空:
 $docker system prune
WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all dangling images
        - all dangling build cache
Are you sure you want to continue? [y/N] Y

du 看了一下, /var 還底下還是有一些佔空間的檔案:



找了一下和 log 有關的設定:
max-binlog-size = 128M
innodb-log-file-size = 64M

似乎都沒與此事件無關。不過看到關鍵字「binlog」,查了一下用途,是 master / client 用來同不的 log,應該是我之前抄 DK 的設定檔,抄完忘記把不需要的東西拔乾淨的關係 XD



兇手找到了就不用客氣,把 MySQL replication 的設定全部註解掉。再來登入 MySQL,使用指定把 replication log 全部清乾淨:
purge master logs before now();


2020/01/14

修改專案的 tag (version) 就可以毀掉其他專案

今天剛好要處理 Zip 檔,目前看到功能比較齊全的專案應該是 Ne-Lexa/php-zip,但是用 composer require 時卻發生 error message 大噴發:



仔細一看 .... 居然有「v9.99.99」的版號,該不會要世界末日了吧?


打開 comploser.lock 看一下是怎麼回事,追蹤後得知相依性如下:

laravel v6.10.1  <=  ramsey/uuid ^v3.7

ramsey/uuid  <=  paragonie/random_compat": "^1 | ^2 | 9.99.99"

兇手抓到了,看來在 paragonie/random_compat 有一個版本號是 v9.99.99,composer 會自動拉最新的版本號來使用,因此只要任何專案 require 時沒有指定版本編號,composer 就會自動把相依性對到 v9.99.99,如果其他 package 有關連到,就是直接 dependency conflict 了。


要處理掉這個問題,只要在 composer.json 也 require paragonie/random_compat,但是加上指定版本編號如 ^v2.0,這樣 composer 就只會拉到 v2.x.x 的版本,不會去用 v9.99.99 這個版本。


ref: