更新 IDE 後發生了一個慘劇。

從錯誤訊息上看的出來,因為我在前一版開了 ZGC,但新的 IDE 不認得這個選項了。
如果照著他說的,重新安裝 IDE,什麼都不會改變,因為它的設定檔還是在那邊。
這時候到 %AppData%\Roaming\Google\ 找到這個版本的資料夾,用文字編輯器打開 studio64.exe.vmoptions 這個檔案,把有問題的設定砍掉就解決了。
同事問了我就寫一下。
我們在 Column 裡有時會放 Spacer(),插在中間可以把其他元件用剩的空間填滿,實現左邊元件歸左邊,右邊元件歸右邊的效果。
同事問的是,現在的元件中,頭尾都有元件外,中間有個 TextView 與 Spacer,那他想把 TextView 占滿以讓它的 overflow 設成 ellipsis 的時候達到想像中的效果,Spacer 要不要拿掉?
首先要知道,Expanded 是一個 fit: FlexFit.tight 的 Flexible,而 Spacer 也只是包著 SizedBox.shrink() 的 Expanded。
所以問題的答案是:要拿掉。
否則 Expanded 與 Spacer 會分掉剩餘空間。
之前的文章說到我又改回用 Firefox 了,因此為了玩 GBF,我除了改 user-agent 以外還做了一點手腳,但平時還是以手機玩居多。
想不到上個月開起來之後又大跑版,研究了一下,才發現五月的時候 Firefox 支援 zoom 了,大概是這東西從非標準的 css 被列為標準,至少我在2月的時候看 caniuse 它還是寫 Non-standard method of scaling content。
以前絕大多數的問題都是 zoom 的原因造成,本來我是用 transform:scale 來解決,但問題還是很多就是了,畢竟實際的行為也不同。
目前某些地方的寬度還是過寬沒有改變,並且多出了 border-image-slice 不一致的問題。
最近又把 Edge 蛋雕,裝回 Firefox,在選單把預設字體改為 Noto 系列之後,Youtube 對不同語系的文字就出現不太一致的現象。
看了一下,Youtube 把字體指定成 Roboto,在不能顯示中文的情況下就去找我設定的 Noto Sans CJK TC,但日文顯然並沒有去找我設定在日文的 Noto Sans CJK JP。
為什麼?看了這篇文章我有個猜測,它似乎是去讀了 Youtube 中 html 標籤裡 lang 設定的 zh-Hant-TW,去找對應的 Noto Sans CJK TC,然後就去找 about:config 中 font.name.{generic}.{language} 所設定的那些了。
在選單中每個語系設定的那些就不管你了。
像是 font.name-list.sans-serif.ja 預設是 Meiryo, Yu Gothic, MS PGothic, MS Gothic, Yu Mincho, MS PMincho, MS Mincho,明顯不是我要的。
當然這只是猜測,我不是很肯定猜的對不對,但要解決這個問題只要把我的 Noto Sans CJK JP 放到這個設定值的開頭就完成了。
記得有一年參加了線上的 Agile Summit,有一軌在看著指南講 Agile 確實有點毛病。
過了幾年突然想起這件事,去用「agile 已死」當關鍵字找東西,但出現的只有敏捷已死。
看了一下內容,跟當初在 Agile Summit 的內容相差很多,講的主要是「敏捷」兩個字只有行銷招牌的用途,沒有實際功能,所以該換個名字再來一次。
這論述明顯是有點問題的。
如果換個名字能夠推廣其中的價值,那不是表示內容其實沒有問題嗎?
然而,確實,就我目前跑敏捷的感想,內容依然能帶給你他理想中的方向,理念還是那個改進的理念。但實際上的運作,價值似乎存在於創造一個新名詞,宣稱它是新方法,然後去做早在哪一次回顧會議就決定並早已實行的事,說這個新東西肯定能帶來團隊的新氣象,又或者把去參加了哪個年會哪個教學這件事本身當成一個價值,而不是內容改進來自己的什麼思想,這個思想又怎麼改善運作。
敏捷不管跑到哪個層面,難道都是名字的戰爭嗎?
讓我想起好幾年前,RxJS 把十行程式變五十行程式、像邪教一樣流行的時光。
那東西沒有不好,什麼都要硬套上去並說套上去本身就是救贖,那就是走火入魔了。
一年多沒發文了,這主機現在感覺只跑機器人而已。
前幾天發現 Android 弄個動畫效果真簡單,但 Android Nougat 有奇怪的 Bug ,閃來閃去真的煩。
可以的話就更新到 Oreo 吧!雖然我個人是正在等 XZP 的 Pie 就是了。
昨天在使用 ADO 元件連 DBF 檔的時候發生了個問題,同一個 select 跑第二次會跳出「未設定唯讀內容值」的錯誤。
之前碰到是除了 Dataset 以外,把 connection 元件也下 Close 後再跑就會解決,但這次不行,後來是先做其他無關的 select 再重新去做真正要做的 select 就會正常。
完全不知道為什麼,有請高手幫忙解惑。
前陣子把 Healing Plurk 裡的 HTML 全部砍掉,用原生 JAVA 取代的時候,順便把語系字串也整理了一次。當時檔案把我習慣的繁體中文台灣正體作為 zh 的預設,另外加上中國簡體zh-rCN、少部份的香港繁體翻譯zh-rHK,所以中文一共有這三個檔。
然後就爆炸了。
這樣的設法在 Android 7.0 的全新手機語系管理有 BUG ,在找不到地區的中文字串檔的時候,會忽略 values-zh 下的檔案,直接套用不帶語言的 values 下的檔案。雖然有許多高手提供了不同的程式碼來解決,但實驗過後還不如把 values-zh 的東西複製出來丟到 values-zh-rTW 下面,免得生出奇怪情況的BUG。
之前在 Healing Plurk 第4版更新大多工作完成的時候,抽空去改了一下召喚機器狼。
然而並沒有什麼卯月,因為沒人用。
本來是依照官方的分享連結作法來做這個 APP 的,但官方一直不支援他們家自己訂出來的東西,造成原來的版本點官方 APP 是一點用都沒有。明明都答應過會做,還都過了一年了。
總之改了做法,變成分享文字到 APP 上,不要管官方的分享連結了。
在 Android 6.0 裡,新增了一個東西,基本上就是在使用者需要的時候再問使用者要不要提供權限。
官方提供的教學裡,除了要在 AndroidManifest.xml 定義你需要的權限以外,你需要呼叫 checkSelfPermission 來確定權限是不是有開放,若沒有,使用 requestPermissions,告訴系統你需要要求的權限,接著 Override onRequestPermissionsResult,處理使用者允許或拒絕給予權限之後的動作。
然而我後來實在很懶,所以寫了一個 class 繼承 AppCompatActivity,主要幫我產生一個 requestCode,再讓 callback 跟請求權限寫在同樣的地方。畢竟我很討厭捲來捲去的。
Edit:後來的後來,又寫了一個 RequestPermissionsUtil 取代之前的 class。