一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2018年11月28日水曜日

MacMiniについて調べたこと

この記事は2018/11時点で書かれたものです。
 
Appleは廉価なモデルにはあまり興味がないみたいで、
2014年から4年間新しいモデルが出ていなかったが、2018年にやっと出たが性能の割に値段は高い。

現存する使用可能なMacMiniは
2011年  メモリ増設が可能(USB2.0) 最新OSのMojaveにアップデート不可能、ぎりぎり
2012年  メモリ増設が可能
2014年  メモリ増設が不可能になる
2018年 メモリ増設が可能 価格がMiniじゃなくなる

2012年のMacMiniは中古がやたらに少ない。
2012年MacMiniにはi7のモデルがあることと、メモリ増設が可能だからかと思う。

MacMini自体中古が少なく2011年macですら3万ぐらいする(定価で6万程度)
MacMiniマスターは2012年のi7モデルに自分でメモリ増設とSSDへの交換をするという事となる。
ただしメモリが異常に高い時期のため、メモリ増設が意外と金がかかること。

あとはOSがSierraあたりからAppleはMacはSSDが標準搭載されてるつもりでOSを作っている気がする。HDDのモデルだと何かするたびに遅くストレスが酷い。
Xcodeのシミュレータ起動なんかは顕著でほんとに5-10分かかる、2011年、2014年のMacMiniでも起動時間はほとんど変わらないので根本的な問題があるように感じる。


MacMiniは本体しかないので、ディスプレイ、マウス、キーボードは別途準備する必要がある。

ディスプレイやマウスは、Windowsパソコンと何も違わないのでいくらでも選択肢があるのだが、キーボードだけは大きな問題がある。

MacのキーボードはWindowsのキーボードとは配置が違うので、ツールと組み合わせることで使えないことはないが、ストレスはある。なので可能ならばMac配列のキーボードが欲しい。

しかし、Appleが有線キーボードの販売をやめてしまい、Appleから買えるのはワイヤレスキーボードしかなくなってしまった。
1万円以上出してAppleの変哲もないキーボードを買うぐらいなら、RealForce買いたいと思う人なので、なんとか安く済まないか考えていくつか候補を

USB有線キーボードはAmazonのマーケットプレースなどで購入することは可能だが、転売屋の価格設定によって異常な値段になっている。

アップル Apple Keyboard (テンキー付き) -JIS MB110J/A

代替キーボード候補

LBR-BTK1

秋葉原で発見して、1000円なので買ってきた。
見た目はmacのワイヤレスキーボード!!


iOSデバイスやAndroidとつなぐには支障はないのだが、致命的な問題としてescキーがないのだ。escキーの位置にあるのはホームボタンのキー・・・・・

Xcodeを使う場合escがコード補完の呼び出しなので、escは欲しい。

Mac用途としてはおすすめはしないけど、一応Amazonリンク張っときます。ちょっと店頭より高いですね。

Libra LBR-BTK1(Blutoothキーボード・iPhoneにもiPadにもPS3にも対応) [エレクトロニクス]


buffalo


これが一番無難かと思われる。安いし。
ただし、やけにスペースキーが長いので、MacBookや標準キーボードの日本語ON/OFFの英数、かなキーの感覚で押すとスペースキーになる。それ以外は及第点。

Macモデル ホワイト BSKBM01WH

高いのを我慢してApple


普通にAppleのワイヤレスキーボード買う感じかな。ぼったくりの価格よりも安いしおしゃれだし、長持ちすると思う。
Apple Magic Keyboard - 日本語(JIS)

2018年9月20日木曜日

UITabBarControllerでタブがありすぎる時の挙動

AppleのUITabBarControllerの説明に以下のようにある。

The tab bar has limited space for displaying your custom items. If you add six or more custom view controllers to a tab bar controller, the tab bar controller displays only the first four items plus the standard More item on the tab bar. Tapping the More item brings up a standard interface for selecting the remaining items.

かいつまんで日本語にすると、タブバーは6個目からは配置するスペースがないので、最初の4つだけ出て、他はMoreになるよ。
 ということである。もうちょっと書いてあるが、上3行ぐらいでとりあえず知りたいことはわかった。最後の行が何を言ってるのかよくわからなかったが試したらよくわかった。

 Moreをアクションシート的なものを想像していたら全然違ったので、記事にしています。

検証としてはタブを10個用意。
わかりやすいように背景色をランダムに生成し、ボタンを配置して画面の番号を表示しています。


 Moreを押すと、入りきらなかった画面4〜画面9タブの名前が入ったテーブルビューが登場。選ぶとその画面にいけるが、自動的にナビゲーションバーのようなものが付属する。
最初の4タブについては、余計なものはついてこない。しかもEdit機能があり最初の4タブとの入れ替えが可能だという。

使う機会はないと思うが、面白い挙動だった。

検証で使用したコードはこちら
https://github.com/snowfoxj/TabBarControllerTestCode

2018年9月5日水曜日

SwiftのOptionalがうざいところ

Swiftのオプショナルがうざい

なにがうざいかと言うと、なかったら作る処理が簡潔に書けない。

コードオンリーでUITableViewを作っていると、UITableViewCellを作るときにdequeueReusableCellメソッドがnilを返した場合に新しくインスタンスを作り、nilでなければメソッドより返された値を使う。
??演算子を使用すれば、それに近いことはできる。だがしかし、新たに作成したUITableViewCellの初期設定がしたいのだ。??の後ろが1行じゃ足りなくて、もう少し行が欲しい。
        let cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "hoge") ?? UITableViewCell(style: .default, reuseIdentifier: "hoge")
Objective-Cの場合、至ってシンプルである。nilだったら作って設定すればいい。
- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"hoge"];
    
    // 再利用セルがない場合は
    if( cell == nil ) {
        // 作成する
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"hoge"];
        // ここで作ったcellの共通設定
    }
    
    // ここで内容の更新処理
     
    return cell;
}



Swiftの場合、guard文だと処理の中断が必須なため。guard文の中と外で2回内容の更新処理を書かなくてはならなくなる
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "hoge") else {

            let cell = UITableViewCell(style: .default, reuseIdentifier: "hoge")
            
            // 初期設定

            // 内容の更新処理
            
            return cell
        }


        // 内容の更新処理
        

       return cell
    }

オプショナルバインディングだと大した処理がないのに、代入のためだけのif-else両方が必要になる
        let cell:UITableViewCell
        
        if let unwrappedCell = tableView.dequeueReusableCell(withIdentifier: "hoge") {
            cell = unwrappedCell
        } else {
            cell = UITableViewCell(style: .default, reuseIdentifier: "hoge")
            // 初期設定
        }

        // 内容の更新処理

        return cell
外のスコープに変数を用意するぐらいだったら、オプショナルバインディングなどいらぬ。
以下のようにオプショナル構文を使わないで書いたって同じことだ。
        // セルの再利用可能か取得して見る
        let optCell:UITableViewCell? = tableView.dequeueReusableCell(withIdentifier: "hoge")
        
        let cell:UITableViewCell
        
        if optCell == nil {
            cell = UITableViewCell(style: .default, reuseIdentifier: "hoge")
            
            // 初期設定をする
            
        } else {
            // アンラップする
            cell = optCell!
        }
        
        // 内容の更新処理をする
        
        return cell
わずかではあるが、変数を2個用意しないで済むオプショナルバインディングを使った方が簡潔なのがなんか腹立たしい。

内容の更新処理をメソッド化すれば2回同じことは書かないで済むし、UITableViewCellのサブクラスを作れば??演算子でいけますが、だがObjective-Cと同じことができないのがなんかうざい。
??演算子の後ろにすぐ実行するUITableViewCellを戻り値とするクロージャ書いたらなんかできそうな気がするも、邪道な感じがして試したくもない。

とりあえず外のスコープの変数用意しておいて、オプショナルバインディグが正攻法かなと思う。



2018年8月21日火曜日

UILabelのtextAlignment、justifiedについて

NSTextAlignmentには左寄せ(left)、右寄せ(right)、中央揃え(center)とあり、この3つはわかりやすいのですが、他の2つ(justifiedとnatural)がよくわからなく調べました。

naturalはiOSデバイスに設定されているロケールによって右寄せ、左寄せが変わるもの。昔の日本も文字を右から読んでましたね、国によっては右から読む国もあります。

 justifiedは日本語だとあまり関係がないため、使用する機会がありませんでしたが説明する機会が発生したため試してみました。

英文は左寄せすると右側に空白が発生し見た目がガクガクになりますが、justifiedを選ぶと適度に間隔を広げてくれて見た目がよくなります。
表示されている文字量に変化はありません。

長い英文として
こちらのサイトの桃太郎を使わせていただいています。
http://www.geocities.co.jp/HeartLand-Gaien/7211/

戻すと左寄せに、JustiΦでjustifiedになります。
どうしても555を思い出す。

2018年7月8日日曜日

ディスプレイで目が疲れるときに確認すること

長時間ディスプレイを見続けると目や脳が疲れるが、普通の疲れでない場合は対策が必要です。



基本の基本、輝度

ディスプレイは輝度がちゃんと落とせるものがよいです。
店頭に置いてあるときは、輝度が明るい方が見栄えがよいのですが、実際使うときには明るすぎると目がダメージを受けます。

見るものによって快適な明るさは変わって来ます。店頭だとデモンストレーションで動画を映していることが多いのですが動画は明るい方が見やすいので、可能ならWebブラウザなどを開いて文字を確認できると良いでしょう。

自宅での通常のパソコン利用での輝度の基準は紙です。
コピー用紙など白い紙をディスプレイの横に置いて同じぐらいの明るさに調整します。
ちょっと暗いと最初は感じますが慣れてきます。

また人間の180度ぐらいの視野の中に明るさにムラがあると疲れますので、 暗い中でディスプレイを使うといった事も避けたほうが良いでしょう。


(経験談)私が経験した輝度が落とせない目つぶしーディスプレイ


まだワイドが主流でなかったころに大きなディスプレイが欲しく買いました。
1600x1200という解像度で5万ぐらいしたと記憶しています。
輝度が全く落ちないディスプレイで、輝度とガンマを最低まで下げても暗くならず長く使うと確実に目がダメージを受ける代物でした。
http://www.iodata.jp/prod/display/lcd/2006/lcd-ad203g/ 

ゲームとかで4時間とかプレイすると目が真っ赤になる恐ろしいディスプレイでした。
欲しくて購入したものだったので、長く持っていましたが、あまり使いたくなくノートパソコンばかり使うようになったので、結局ヤフオクで落札してくれた方のところへ1万円で旅立ちました。

Appleのノートパソコンを使用した際に、輝度が画面消えるぐらいまで調整できました。結構昔から周囲の明るさセンサーを持っており、周囲に合わせて輝度を変えてくれるのは単純にスペックからは読めない性能だと感じました。

できるだけ暗くできるディスプレイなのかはカタログやWebサイトには書いてありませんので、
一度ショップでどれだけ暗くできるか確認してから購入するのをお勧めします。
EIZOのディスプレイなら、常識的にかなり暗くできます。

ブルーライト

※現在はブルーライトカットにあまり意味がない研究結果が出ています。
 
次はブルーライトです、私はブルーライトは特に目のダメージを感じないので参考にならないかもしれませんが、パソコンの場合、ブルーライトはブルーライト軽減のフィルムをはったり、お金をかけなくても

https://justgetflux.com/

のようなソフトで色を暖色にすることで、対応できます。
調整ができないデバイスの場合はフィルムになります。
私がディスプレイに問題を感じた当時にはこういうソフトがなかったので、フィルムを買いました。

わたしが買ったフィルム例
このシリーズの15インチノートパソコン用を購入



ドライアイ

集中して作業をするとまばたきの回数が減りドライアイになります。
体質的や病気などによって涙量が少ない方もいますが、画面を見るときは間違いなく瞬きが減ります。
輝度によるアイクラッシャーとコンボで来ると速攻で目が死にます。
対応としてはまばたきの回数を増やす意識と、休憩時に5分でいいのでアイマスクなどして本当に目を休める。アイマスクがなくてもまぶたを閉じるだけでも十分です。
無限にめぐりズムできるホットアイマスクは良いです
 

瞬きを意識させて、改善させるフリーソフトもありますので、無料なので効果があるかないかは試してみればよいと思います。

こちらに紹介記事を書いています。
 
パソコンソフトでドライアイ対策する
ドライアイのしくみをドラクエで理解する 
https://blogger.kinkuman.net/2022/08/blog-post.html

 

フリッカー

液晶ディスプレイのバックライトが冷陰極管(いわゆる蛍光灯)からLEDに変わったことで、
ちらつきが増えてしまいました。
最近でこそフリッカーフリーを謳うディスプレイがたくさん出てきましたが、LEDバックライト初期はそういうのはあっても高価でした。

蛍光管は残光があるのに対し、LEDにはないため光のON/OFFが際立ってしまい、ちらつきとして認識してしまうためです。
(参考)
http://www.excite.co.jp/News/bit/E1347419785861.html

LEDバックライトの液晶では基本で述べた輝度の調整を行うと、暗くなって輝度としては目には優しいのですが、自分では認識ができないレベルのちらつきを脳が認識してしまい、2時間程度で頭痛が発生します。
目つぶし(アイクラッシャー)というより脳みそ潰し(ブレインクラッシャー)とでも言うべきでしょうか。

最悪のディスプレイは、輝度を下げるとフリッカーが発生し、輝度を上げるとフリッカーが減少するものです。輝度が高いとアイクラッシャーで、輝度が低いとブレインクラッシャーとなる。
どっちに転んでも目がダメージを受ける。

私の所持するノートパソコンThinkPad T530のディスプレイがこれに該当する。


(体験談)フリッカー最悪のディスプレイに私が行った対策


最近はブルーライト対応商品が人気のため商品数は少ないが、輝度を落とす(暗くする)シートを画面に貼る方法です。
フリッカーを極力発生させないために輝度は最大の明るさで運用し、フィルムによって輝度を落とす。

太陽を見るときにすりガラスを使うのと同じ方法です。

暗いのにディスプレイ輝度がMaxなので、電池消費は多くノートパソコンの持ち歩きなどには向きません。

なかなか適切なサイズのフィルムがないのが現状で、結局住宅の窓用を買いました。
近所のホームセンターではUVカット率が72%というすごいのしかなかったので、これを買ってしまったが、もう少しスモークの度合いは少ないのがいいと思う。
試してはいないので保障はできませんが、50%~60%ぐらいのものでも 良いと思う。
72%でも夜、自宅の室内で使うのには問題はない。
 
買ったフィルム(窓用)


輝度が調整できない為の苦肉の策ではあったが、嘘のように頭痛が発生しなくなりました。窓用なので貼り付けに水を必要としますが、パソコンに水は使えないので、ある程度の気泡は我慢です。 張り付けなくても、ディスプレイサイズに切って画面の前に置くだけでも意味はあります。

輝度マックスでもこの感じ、太陽の下では使えないが目は死なない


フリッカーの根本対策は、ディスプレイの変えられないノートパソコンなどではなく、普通のパソコンでお金があるならば、高いのには理由があるのでEIZO製を買うのがオススメです。
EIZOは目への優しさを機能の一つと考えています。

少し割高ですが、頭痛よりマシ


EIZOでなくても最近のディスプレイはフリッカー対策されていたりするので、まともな場合が多くなっています。安いメーカーの中古は避けたほうが無難です。
EIZOの他、海外ではBENQはフリッカー対策に力を入れています。
安くて買いやすいLG製のフリッカーフリーは、輝度が下がらないので輝度でヤラレルのと若干フリッカーはあるように感じます。

色々と書いてきましたが、目の耐性は個人個人で違うので、自分の目の弱点を知ることが大事だと思います。
適切な対応で、目のダメージを和らげましょう。
  • 輝度
  • ブルーライト
  • ドライアイ
  • フリッカー
私は輝度、ドライアイ、フリッカーが弱点で対策しています。


追記

結局ケチって片頭痛という健康被害が発生し、EIZOのディスプレイを買いました。
テレワークで圧倒的にディスプレイ見ている時間が増えたらLGのフリッカーフリーでもじわじわやられ死にました。(目というより頭?)
フリッカーとはまた別の要素があるような気がしてなりません。 

EIZOのディスプレイでは、変な疲れはなく普通に疲れれるだけです。

 LGのディスプレイは暗くしすぎるところまでは輝度調整ができないので、結局明るさなのでしょうか?
 
T530に使った輝度を落とす(暗くする)シート張ってみて検証してみようかな・・。 
窓用シートってなにげにいろいろな光線をカットしてるから何かが効果あるのかも・・。

100円ショップのアイテムで犬の水飲み台作成

下の写真のような犬の水飲みを使用していますが、金属製のサークルなどの場合、ポン付けできるのですが、木製のサークルだった場合挟む棒がないので、そのままではつけられません。
現在の水飲みはリッチェルのウォーターディッシュ


こういうサークルならば簡単に取り付けできます。


メーカーさんの方でも、ちゃんとそれ用の台を用意してくれていますので、買えばいいのですが、
ウォータースタンドブラウン

本体の値段よりも2倍以上するということで、決して高額なわけではないのですが買わなくても金属サークルの一部を端っこに配置して使用できたので、そのようにしていました。

別のものを探しにダイソーに行った際に既視感を感じました。小型犬ならこれで行けそう。
キッチンペーパーホルダー(すでに加工後)
 このキッチンペーパーホルダーはU字状の棒が2本立っているのですが、後ろの1本は不要です。
簡単に取れないかと前後に動かしてみたら驚くほど簡単に中の金属が折れました。
折れる際も、樹脂で覆われているため金属片が飛び散るようなこともなく、静かに折れます。


滑り止めのためにゴム状の樹脂で覆われているので、そのままでは外れません。
棒を少し引っ張りながらハサミで切断すると金属のバリがゴムの中に納まるので、ペットを傷つける恐れもありません。

こんな感じにゴムを切れるとベストだと思います(クリックで拡大)

設置してみます。
ちょっとU字の幅が狭いため、ブルワーカーの要領で少しだけ広げています。

とりあえず問題なく設置完了



完成
木製サークルの色とも合っており、いらない棒を除去したので、サークルの下に足が入り転倒もありません。100円で予想以上の出来に満足しています。