HUAWEI MediaPad M5 Lite 8 購入しました。
ipad mini2を試験導入していてすごく便利で体感が良かったです。ですが2019年時点でブラウザでtwitterを3タブ開くとクラッシュ(?)するレベルでありさすがに限界で、8インチサイズタブレットの更新として購入しました。
SDカード含めて2.5万円くらいです。ipad miniで同じスペックを実現しようとすると8万円くらいになるため、雑に使ってもまだ大丈夫な値段という意味もあって、Andoridタブレットにしました。
(128GB SDが1500円くらいなのが大きくて、ipadだとsdカードは刺せないうえストレージを増やすだけで1~2万円違う。SIMオプションもipadは1.5万円くらいする。)
ipad mini2よりは縦長です。
液晶はさすがに綺麗。中古で買ったipad mini2に安い非光沢シートを貼っていたせいもありますが。
購入して即、アップデートを実施。すでにAndorid9.1でした。
ios13アプリdarkmode対応
lina_dicto for ios でダークモードに対応しました。
https://github.com/MichinariNukazawa/lina_dicto_for_ios/commit/533fcddb03f75a2e71d56e708174b0f1e4c8ef9b
ios13.3・xcode11.3にて。
# storyboard
###
基本的にSystem Colorsを使う。xcode11以降で作ったAPPで単純なものなら、それだけで済む。
色をcustomなどにしていなければ自動でダークモードに変化する。
必要ならユーザ色としてColor SetをAssets Catalogに定義できる
それ以外のものはコードでなんとかする。
https://qiita.com/tamappe/items/3bf89a55ab85d0488b8a
### Color Set
カラーアセットの新規作成
https://dev.classmethod.jp/smartphone/iphone/xcode-9-asset-catalogs-support-named-colors/
### 動作確認 simulatorでのdarkmode
「設定」に実機の「画面表示と明るさ」はないが「デベロッパ」の方にdarkmode設定がある。
https://qiita.com/p_on_ro/items/91e6659fda662fb2aac0
xcodeからもEnvironment Overridesから操作できる。
https://qiita.com/hirothings/items/4834481d170332e173f5
# code
darkmode判定。状態取得。
```
if self.traitCollection.userInterfaceStyle == .dark {
}
```
コールバック
```
class ViewController: UIViewController, UISearchBarDelegate{
@IBOutlet weak var searchBar: UISearchBar!
@IBOutlet weak var textView: UITextView!
@IBOutlet weak var scrollView: UIScrollView!
+ var prevUserInterfaceStyle = UIUserInterfaceStyle.unspecified
~
override func viewDidLoad() {
+ prevUserInterfaceStyle = traitCollection.userInterfaceStyle
~
+ override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
+ let userInterfaceStyle = traitCollection.userInterfaceStyle // Either .unspecified, .light, or .dark
+ if(prevUserInterfaceStyle != userInterfaceStyle){
+ // styleで埋め込んだCSSを全て置換するのは大変手間なので諦めて全て消去する。
+ textView.text = "";
+
+ }
+ prevUserInterfaceStyle = userInterfaceStyle
+ }
```
darkmode変化の通知コールバックは traitCollectionDidChange() で取れるのだけれど一工夫必要で、画面回転などと区別する。(再描画するだけなら不要かも。本APPは必要だったのでやった)
アイコンは偶然にもdarkmodeと共通で問題なかった。
TextViewはplaintテキストならsystem色が使えるが、Attributedの場合はコードから制御しないといけない模様。
https://github.com/MichinariNukazawa/lina_dicto_for_ios/commit/533fcddb03f75a2e71d56e708174b0f1e4c8ef9b
ios13.3・xcode11.3にて。
# storyboard
###
基本的にSystem Colorsを使う。xcode11以降で作ったAPPで単純なものなら、それだけで済む。
色をcustomなどにしていなければ自動でダークモードに変化する。
必要ならユーザ色としてColor SetをAssets Catalogに定義できる
それ以外のものはコードでなんとかする。
https://qiita.com/tamappe/items/3bf89a55ab85d0488b8a
### Color Set
カラーアセットの新規作成
https://dev.classmethod.jp/smartphone/iphone/xcode-9-asset-catalogs-support-named-colors/
### 動作確認 simulatorでのdarkmode
「設定」に実機の「画面表示と明るさ」はないが「デベロッパ」の方にdarkmode設定がある。
https://qiita.com/p_on_ro/items/91e6659fda662fb2aac0
xcodeからもEnvironment Overridesから操作できる。
https://qiita.com/hirothings/items/4834481d170332e173f5
# code
darkmode判定。状態取得。
```
if self.traitCollection.userInterfaceStyle == .dark {
}
```
コールバック
```
class ViewController: UIViewController, UISearchBarDelegate{
@IBOutlet weak var searchBar: UISearchBar!
@IBOutlet weak var textView: UITextView!
@IBOutlet weak var scrollView: UIScrollView!
+ var prevUserInterfaceStyle = UIUserInterfaceStyle.unspecified
~
override func viewDidLoad() {
+ prevUserInterfaceStyle = traitCollection.userInterfaceStyle
~
+ override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
+ let userInterfaceStyle = traitCollection.userInterfaceStyle // Either .unspecified, .light, or .dark
+ if(prevUserInterfaceStyle != userInterfaceStyle){
+ // styleで埋め込んだCSSを全て置換するのは大変手間なので諦めて全て消去する。
+ textView.text = "";
+
+ }
+ prevUserInterfaceStyle = userInterfaceStyle
+ }
```
darkmode変化の通知コールバックは traitCollectionDidChange() で取れるのだけれど一工夫必要で、画面回転などと区別する。(再描画するだけなら不要かも。本APPは必要だったのでやった)
アイコンは偶然にもdarkmodeと共通で問題なかった。
TextViewはplaintテキストならsystem色が使えるが、Attributedの場合はコードから制御しないといけない模様。
TranscendケースでM.2 SSDドライブを作ってベンチマーク(MacBookPro環境用)
「WD 内蔵SSD 1TB WDS100T2B0B-EC 」と「Transcend USB3.1 M.2 SSD 外付けケース TS-CM80S」の組み合わせでを作ったので、ベンチマークをとっておきました。
購入検討の参考にしてください。
構成
SSDドライブ化ケースのオススメに上がっているSSD。M.2のSATAタイプはM.2専用(?)のものに比べて遅いとされていますが外付けにするので今回は安くて大きいものを買いました。
ケースはもうすこし安い2000円以下のものもありましたが、SSDも売っているメーカのものを選んで安全をとりました。
以前おなじ構成を検討した時は、M.2 SSD(SATAでない)を外付け化する方法はなかったのですが(というか内蔵PCI-Eに追加する方法すら無かった)、今はM.2の外付け化も可能なようです。
ベンチマーク
参考のため内蔵SSDドライブの速度を。内蔵SSD |
-変換噛ませケーブル1(TypeB経由)
-変換噛ませケーブル2(TypeA経由)
-HUB経由
ここでTypeB/Aは速度に関係なくて単に区別を付けるためのものです。
TypeC-ケーブル-TypeB-変換キャップ-TypeC |
TypeB-TypeC変換キャップは100円均一のものでした。
TypeC-ケーブル-TypeA-ケース純正ケーブル |
TypeC-電源&HTMI付きハブ-TypeAは、amazonで1000円ちょっとのものを買いました。
TypeC-ケーブル-TypeB-変換キャップ-TypeC / exfat |
TypeC-ケーブル-TypeB-変換キャップ-TypeC / mac拡張fs |
Mac TypeC-ケーブル-TypeA-ケース純正ケーブル-TypeC ケース /exfat |
Mac TypeC-ケーブル-TypeA-ケース純正ケーブル-TypeC ケース /mac拡張fs |
Mac TypeC-電源&HTMI付きハブ-TypeA-ケース純正ケーブル-TypeC ケース /exfat |
上のケーブルと比べて全体に遅いですが早い項目もあって悩ましい。
(後述の仮想マシンを置く目的でそれほど遅くなかったようなので、今はこれで運用しています。)
MacOSXでの利用について。
最初は使用できない旨の警告が出ますが、とりあえず適当なファイルシステムを作れば、あとはそれを消してパーティションをカスタマイズ可能です。今回はセミ外付けデータ用としてexfat。 (仮想マシンのイメージなどを置きたい・Linuxなどからデータを移すため)
mac拡張ディスクを300GBほど切り出して、そちらをtimemachineのドライブにしました。
250GB中200GBくらい使っているMacOSXで、バックアップ作成にかかったのは2時間くらいでした。
CSSでグラデーションの上にPNG画像を一緒に使う
ページ背景で、透過png画像とbackground / linar-gradientを同時に使うトリック。
electron 8で使えたのでchrome 78で有効なはず。
```
```
htmlタグに背景色、bodyに透過PNG画像。
最初はグラデーションと画像でcssファイルを分けていたのが有効化のトリックかとも思ったが、そうではなかった。
注意:
image/sky.pngはcssファイルからの相対パスになっていた。
```
index.html
css + style.css
+ image/sky.png
```
stackoverflowのコメントによると画像とグラデーションの同時利用は回答時点では仕様策定中と書いてあるのだと思う。
https://stackoverflow.com/a/10881460
electron 8で使えたのでchrome 78で有効なはず。
```
13 html{¬
14 >-------background: linear-gradient(-30deg, rgba(190, 255, 190, 1), rgba(215, 255, 215, 1));¬
15 }¬
16 body{¬
17 >-------background: url("image/sky.png") center center / cover no-repeat fixed¬
18 }¬
htmlタグに背景色、bodyに透過PNG画像。
最初はグラデーションと画像でcssファイルを分けていたのが有効化のトリックかとも思ったが、そうではなかった。
注意:
image/sky.pngはcssファイルからの相対パスになっていた。
```
index.html
css + style.css
+ image/sky.png
```
stackoverflowのコメントによると画像とグラデーションの同時利用は回答時点では仕様策定中と書いてあるのだと思う。
https://stackoverflow.com/a/10881460
electron-packagerがフリーズした場合の対処
electron-packagerがフリーズした場合の対処。
```
> daisy_sequence@201812.2.0 pack:win /home/nuka/daisy_sequence/daisy_sequence
> npm run clean:win && electron-packager . --out=./release/win --platform=win32 --arch=x64 --icon='./image/icon.ico' --ignore='release' --ignore='object/' --ignore='obj/' --ignore='work/' --ignore='test/'
> daisy_sequence@201812.2.0 clean:win /home/nuka/daisy_sequence/daisy_sequence
> rm -rf ./release/win
```
とかで止まった時、npmキャッシュを除去すると解決する場合がある。
sudo rm -rf ~/.npm
```
> daisy_sequence@201812.2.0 pack:win /home/nuka/daisy_sequence/daisy_sequence
> npm run clean:win && electron-packager . --out=./release/win --platform=win32 --arch=x64 --icon='./image/icon.ico' --ignore='release' --ignore='object/' --ignore='obj/' --ignore='work/' --ignore='test/'
> daisy_sequence@201812.2.0 clean:win /home/nuka/daisy_sequence/daisy_sequence
> rm -rf ./release/win
Packaging app for platform win32 x64 using electron v6.0.12
Wrote new app to release/win/daisy_sequence-win32-x64
~/daisy_sequence
~/daisy_sequence/daisy_sequence/release/win/daisy_sequence-win32-x64 ~/daisy_sequence
adding: LICENSE (deflated 41%)
adding: LICENSES.chromium.html (deflated 83%)
adding: README.md (deflated 36%)
adding: chrome_100_percent.pak (deflated 8%)
〜
```
また、各プラットフォーム向けelectonバイナリのダウンロードは進行していてプログレスバーが出ていないだけの場合もある。
(macosx catalinaにて発生)
/tmp下を見るとわかる。electron-*的な名前のファイルが存在してサイズが増えていくはず。
`ls -lh /tmp`
```
> daisy_sequence@201812.2.0 pack:win /home/nuka/daisy_sequence/daisy_sequence
> npm run clean:win && electron-packager . --out=./release/win --platform=win32 --arch=x64 --icon='./image/icon.ico' --ignore='release' --ignore='object/' --ignore='obj/' --ignore='work/' --ignore='test/'
> daisy_sequence@201812.2.0 clean:win /home/nuka/daisy_sequence/daisy_sequence
> rm -rf ./release/win
```
とかで止まった時、npmキャッシュを除去すると解決する場合がある。
sudo rm -rf ~/.npm
```
> daisy_sequence@201812.2.0 pack:win /home/nuka/daisy_sequence/daisy_sequence
> npm run clean:win && electron-packager . --out=./release/win --platform=win32 --arch=x64 --icon='./image/icon.ico' --ignore='release' --ignore='object/' --ignore='obj/' --ignore='work/' --ignore='test/'
> daisy_sequence@201812.2.0 clean:win /home/nuka/daisy_sequence/daisy_sequence
> rm -rf ./release/win
Packaging app for platform win32 x64 using electron v6.0.12
Wrote new app to release/win/daisy_sequence-win32-x64
~/daisy_sequence
~/daisy_sequence/daisy_sequence/release/win/daisy_sequence-win32-x64 ~/daisy_sequence
adding: LICENSE (deflated 41%)
adding: LICENSES.chromium.html (deflated 83%)
adding: README.md (deflated 36%)
adding: chrome_100_percent.pak (deflated 8%)
〜
```
また、各プラットフォーム向けelectonバイナリのダウンロードは進行していてプログレスバーが出ていないだけの場合もある。
(macosx catalinaにて発生)
/tmp下を見るとわかる。electron-*的な名前のファイルが存在してサイズが増えていくはず。
`ls -lh /tmp`
登録:
投稿 (Atom)
TIGORA(ティゴラ)のトレッキング シューズ
TIGORA(ティゴラ)の トレッキング シューズを買いました。 メインの靴がアシックスウォーキングで街歩き用なのですが、これまではこれで高尾山などの軽い山も登っていました。 今回、靴底があまりに摩耗したこともあってアシックスウォーキングを買い替えたのですが、ついでに消耗が激...
-
ノートPCの液晶保護フィルムが100円で買えるなんて、良い時代になりました。 ダイソーに行ったら、ノートPCで使えそうな液晶保護フィルムがあったため、衝動的に購入。 A4サイズと書いてあります。私が使っている13インチワイドのノートPCで使えるかどうかわからなかっ...
-
formでユーザの入力やファイルを送信する際、IDを付与したり、送信した情報を紐付けるか、などの情報を一緒に送信したい場合があります。 その場合、ID情報はブラウザに表示しないのがベストです。ユーザに見せたり、編集してもらう必要はありません。 わたしの場合、10個の画像が...
-
Make オルタネイティヴは数あれど、小さな実験プロジェクトを始めるときに、簡単に使えるMakeは未だにビルドツールとして有力な選択肢だと思います。 MakefileはUNIX環境、というかCLIツール群があることを前提にしているところがあります。Windows環境ではUN...