めも

メモ.

duet displayでipadをMacのサブディスプレイとして利用してみた感想

やりたいこと

PCで作業中は、大抵iPadが完全に放置されています。

いつも本立て(下の本立てです)に立てかけているんですが、ちょうどディスプレイの真下においているので、Macのディスプレイの拡張として使用できないか検討しました。

actto BST-02 ブックスタンド

actto BST-02 ブックスタンド

  • メディア: エレクトロニクス

duet display

Duet Display

PCと有線で繋ぐことでサブディスプレイとして利用できます。¥1,220+無線での使用は月額制のサブスクリプション(2020/4現在での価格)となっています。詳しい使用法・価格詳細は上記ホームページで確認してください。

インストールまで

  1. pad側でduet displayを購入+インストール
  2. Macにてduet displayホームページよりアプリをダウンロードしてインストール
  3. ipad側にてduet-displayを起動
  4. 有線(type-c)にてipadを繋げる

以下も参考になると思います。

使用感

検索で過去のバージョンにて「マウスの遅延がひどい」等のレビューがありましたが、現状使ってみて遅延はそこまで感じませんでした。

duetで拡張したipadのディスプレイ上で操作スペースを増やす と、操作スペースの切り替え時に少しカクつくようです。pcwatch様のサイトにて

ちなみにこの「Duet Display」の特徴は「遅延ゼロ」を掲げるスムーズな動きにある。さすがに動画再生ともなるとコマ落ちが皆無ではないが、

とありましたが、これに近い挙動だと思います。

参考:Macで複数の操作スペースを操作する - Apple サポート

もともとipadがそこまで大きな画面ではないため、あくまでyoutube・slackなどのチャット・開発時にログの垂れ流しなどできれば十分だと思っていたので、これらの目的には使えるかなと思います。ただduet display(を含むタブレットをサブディスプレイとして利用するツール)を使用すれば環境が劇的によくなるとは感じませんでした。

ipadがどこにでも置ける点を生かして、購入する前に「この場所にこの画面があったらな〜」と想像してみて、便利そうだったら検討してみるくらいが丁度いいかなと思います。

ちなみにMacのシステム環境設定画面でのduet displayの表示は以下(一番左のディスプレイ=iPadです)。ちゃんと位置も変えることができます。

f:id:misos:20200423182840p:plain

「レガシーコードからの脱却」を読む

勉強のため、以下の本を読みました。

概要

オライリーでは以下のような紹介がされている。

本書では、ソフトウェア開発において、初めからレガシーコードを作りださないためのプラクティスを9つ挙げて解説します。プロダクトオーナーは目的を語り、やり方は開発者に任せること、小さなバッチで開発を進めること、継続的に統合すること、チームメンバーで協力することなど、日々の開発に取り入れる考え方と具体的な実践について各章で分かりやすく解説します。 信頼性や拡張性が高いソフトウェアをリリースしたい開発者、運用管理者、マネージャに必携の一冊です。 (引用元:O'Reilly Japan - レガシーコードからの脱却)

ここでのレガシーコードとは”扱うのが難しくコストがかかるソフトウェア(p19参照)"を指しています。レガシーコードを生み出す環境に焦点を当てつつ、それらの問題を回避するための9つのプラクティスを紹介していく本です。

ある程度前提知識がある人は。全ての章の末尾にある「本章のふりかえり」があるのでそれを見てどんな内容かを確認してから飛ばし飛ばし読むこともできます。


以下、各章を読んだ際に調べた内容のメモや関連しそうなリンクです. それぞれの章の内容・プラクティスを詳しく知りたい方は本を手にとってみてください.

関連スライド・資料

検索時に見つけた本書や関連・興味を持ったスライドのメモです.




応用情報技術者試験の過去問を解きながらのメモ

COVIDの影響で試験は中止になりました.

なお、試験の中止、延期など、試験日前に受験者の皆様への通知事項がある場合は、当ホームページに掲載します。 試験前には、必ずホームページで情報を確認してください。

引用元:IPA 独立行政法人 情報処理推進機構:情報処理技術者試験・情報処理安全確保支援士試験

ただ放置すると忘れてしまうので軽く過去問を眺めながら次回に備えようと思います. また, 次回の試験までの時間も長いので, これからは過去問を解きつつも関連する内容を(過去問的に出ないとわかっていても)調べていこうと思います. その分内容は煩雑になるかもしれません.

前回

paper.hatenadiary.jp

メモ

データベース

NoSQLとRDBMS

NoSQL = 非RDBMSを指す大雑把な分類を指す語

  • 分類:データの形式・データの分散の手法によって分類することができる。
    • 分散の手法:マスタ・P2P・イネーブラ(オンメモリ・オンディスク)
    • データ:キーバリュー・カラム指向・グラフ・ドキュメント指向

RDBMSはSQLを使用可能であるのに対して、NoSQLではデータベースによってクエリが異なる. また正規化されているとは限らず、リレーショナルではなく階層的な構造を持つ. RDBMSと比較してスケールしやすい.

AWSのデータベース

以下はNoSQLに該当するもの.

  • Amazon DynamoDB:KVSによる高速なアクセス.
  • Document DB:ドキュメント指向のデータベースであり、XMLやJSONに対応している. ブログやニュース記事の管理など.
  • ElastiCache
  • NEptune:グラフ指向データベース
  • TimeStream:時系列データベース(Amazon Timestream(完全マネージド型の時系列データベース)| AWS
  • QLDB:台帳データベース

www.slideshare.net

Azureのデータベース

www.slideshare.net

www.slideshare.net

セキュリティ

マルウェア

応用情報の範囲としては、マルウェア - Wikipedia の「情報セキュリティとサイバーセキュリティ」>「脅威」の項目の各手法の概要を押さえておけば十分なはず.

プラグインや拡張機能による脆弱性

www.slideshare.net

ウェブアプリケーション

www.slideshare.net

  • XML外部実体攻撃:XMLを外部から受信してデータを得る箇所を改竄
  • SSRF攻撃

外部から入力された信用できないXMLを解析せずにJSONを利用することで回避する.

Web Application Firewall(WAF)

ウェブアプリケーションの脆弱性を利用した攻撃に対する対策の一つであり, 以下の資料が参考になる.

Web Application Firewall 読本:IPA 独立行政法人 情報処理推進機構

「Web Application Firewall 読本」は、ウェブサイト運営者がWAFの導入を検討する際に、WAFの理解を手助けするための資料です。本資料では、KISA(1)やOWASP(2)、WASC(*3)などの機関におけるWAFに関する取り組み、WAFの概要、機能の詳細、導入におけるポイント等をまとめました。(引用元:上記IPAサイト)

SQLインジェクションやクロスサイトスクリプティングなどの攻撃への対策となる.

参考文献:AWS再入門ブログリレー AWS WAF編 | Developers.IO

mac OS XにてDominoを使用する

やりたいこと

タイトル通り、

をMacにて使用したいので

よくある質問とその解答 - Takabo Soft Wiki*

に従いWineでDominoを実行してみる.

手順

各ソフトウェアの利用規約を理解した上でダウンロード・インストールしてください.

バージョン・手順の内容・スクリーンショットは 2020/3/31z時点のものです.

1. XQuartzの最新版をインストール

XQuartzの2.7.7以上のバージョンを利用します. どのバージョンが必要かは後述するWineに依存して決まります.

XQuartz

2. Wineのインストール

Windows アプリを Linux・Mac で実行するためのソフトウェアであるWineを使用する.

以下のページからWine(Stable版)をダウンロード.

macOS - WineHQ Wiki

f:id:misos:20200404015124p:plain
ダウンロードサーバーへのリンクをクリック

f:id:misos:20200404015203p:plain
Stable版をダウンロードする

XQuartzのバージョンが条件を満たしていることを確認してください、基本的には最新版をダウンロードすれば大丈夫なはずです.

Prerequisites:

XQuartz >= 2.7.7

Gatekeeper must not be set to block unsigned packages. (引用元:https://wiki.winehq.org/MacOS)

3. Dominoをダウンロード

MIDI音楽編集ソフト「Domino(ドミノ)」 | TAKABO SOFT

からDominoをダウンロードして展開する.

展開したフォルダ直下にある Domino.exe を右クリックし「このアプリケーションで実行する」>「Wine Stable」を選択.

Wineを初めて実行する場合はこの時点で環境設定のファイルを作成するために少し待つ.

Dominoが起動できたら, 「ファイル」>「環境設定」>「MIDI-IN」・「MIDI-OUT」にて入出力を指定して、入力デバイス(MIDIキーボードなど)から音を出せたら設定完了.

Bluetooth経由でMIDIキーボードを接続

Macの設定からBluetoothをオンにする.

自分の場合はMicrokey Air

を接続したいので、それに必要なソフトウェアをダウンロードし,

Bluetooth MIDI Connect

Bluetooth MIDI Connect

  • KORG INC.
  • ミュージック
  • 無料

接続を行う.

f:id:misos:20200404162805p:plain
接続ができている状態での「Bluetooth MIDI Connect」の表示

補足:音が出ないとき

自身の環境では, Wine経由でDominoを起動してからBluetoothを接続すると音が出ない場合があるので, 必ずBluetoothでMIDIキーボードデバイスを接続してからWine起動するようにしています.

最近買った本について (2020.4.10付近)

大変な時期ではありますが、乗り越えていきたいです。 毎度のことですが、Kindle版で購入して無い本(=電子書籍ではない本)のみ記録してます。

前回

大人のためのピアノレッスン下巻(斎藤 芳江 監修)

上巻を以前に購入・進めて下もやるか〜で放置、それもかなりの長い間放置していて埃をかぶっていたのを発見し、性根を据えて下を購入。 上・下巻共に本当に何も知らない状態からでも進めることができる良いテキストだと思います。

DVD付きなので、DVDを再生する環境が無くyoutubeで曲のタイトルを検索しながら進めていますが、特に問題なくできています。

原色日本蝶類図鑑(川副 昭人, 若林 守男 著)

f:id:misos:20200414223732j:plain
原色日本蝶類図鑑カバー

カバー付きの中古の良品が定価の3割程度の価格で売られているのを発見し購入。

昭和の本で、日本に生息する蝶の生態・食草・雌雄の区別・変異などの説明と、蝶の展翅された状態でのカラー写真が載った図鑑。全約400ページ。

「物語」のつくり方入門 7つのレッスン(円山夢久 著)

「物語」のつくり方入門 7つのレッスン

「物語」のつくり方入門 7つのレッスン

  • 作者:円山夢久
  • 発売日: 2012/05/31
  • メディア: 単行本(ソフトカバー)

特になろうを始めたりする予定は一切無いものの、色々読みたい気分に駆られて購入。

著者の物語の作成に関する講義(どのような講義かは具体的にはわかりませんが)での体験を元に、対話形式に近い形で物語の作り方が紹介されています。

『「感情」から書く脚本術(カール・イグレシアス 著)』も以前読みましたが、『「感情」から書く脚本術』が海外映画での具体例を色々紹介し、今の手元の作品をどのように映えさせるのかを説明する流れなのに対して、この本はまだ特に何を書きたいか決まってない状態の人が読む過程で書きたいものを明確にしていくような流れになっています。

最後まで読んだ感想ですが、本当に今から初めての物語・小説を書き出したい人がはじめに何をすると良いのかをわかりやすく説明された本でした。

涼宮ハルヒの驚愕 他(谷川 流 著)

元々の発売当時に読んだものの、懐かしくなったので他シリーズと合わせて購入。 オンラインゲームの合間の待機時間などに読む予定。

UXリサーチの道具箱 イノベーションのための質的調査・分析(樽本徹也 著)

若干表紙に古臭さを感じてしまったものの、よく見ると2018年出版。 シナリオ作成・ペルソナ・カスタマージャーニーなどそれぞれについての分析の仕方と手法を集めた本です。UXデザインの勉強用に買いました。

これまで勉強したことなかったですが、用語の説明もされており読みやすいです。

レガシーコードからの脱却(David Scott Bernstein 著)

一度一通り目を通しておきたかったので。

鉛筆デッサン 基本の「き」(著 スタジオ・ものくろーむ )

iPadであまりに線を描くことができないため、数式や文字すらグニャッてしまっている原因を探るために購入. しかし一旦途中で放置。

チャート式大学教養 微分積分(加藤文元 監修/数研出版編集部 編著)

復習のために購入。

COMITIA

以下の方のものを購入、敬称略。

  • 水井軒間
  • 碓氷さつし
  • 坂上暁仁
  • 栞しい
  • きたむらしゅ〜

Leetcodeを進める(8)

Problem24

https://leetcode.com/problems/swap-nodes-in-pairs/

偶数番目と奇数番目をスワップしたリストを返す。

You may not modify the values in the list's nodes, only nodes itself may be changed.

とのことなのでリストのvalを書き換えてはいけない。

copy --- 浅いコピーおよび深いコピー操作 — Python 3.8.2 ドキュメント

weakref --- 弱参照 — Python 3.8.2 ドキュメント

Problem26

Remove Duplicates from Sorted Array.

in-placeでユニークな要素のみをリストに残し、リストの長さを返す問題。

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:

        i = 0
        while i < len(nums)-1:
            if nums[i]==nums[i+1]:
                del nums[i]
            else:
                i = i + 1

        return len(nums)

delで重複した要素を指定して、リストから削除する。

5. データ構造 — Python 3.8.2 ドキュメント

Problem28

部分文字列一致のアルゴリズムの実装。

www.slideshare.net

ナイーブに先頭の文字列を見つけたら、それ以降がマッチするかをチェックするようにしてとりあえず提出。両者空白の場合を考慮し忘れておりWAを出してしまった。

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        haysta_len = len(haystack)
        needle_len = len(needle)
        res = -1

        if needle_len == 0:
            return 0  # 必ず先頭で一致
        elif haysta_len == 0:
            return -1  # 必ず不一致
        else:
            first_c = needle[0]

            for i, ci in enumerate(haystack):
                if not ci==first_c:
                    continue
                elif i+needle_len>haysta_len:
                    break
                else:
                    if haystack[i:i+needle_len]==needle:
                        res = i
                        break

        return res

Runtime: 28 ms, faster than 75.04% of Python3 online submissions for Implement strStr(). Memory Usage: 13.1 MB, less than 98.46% of Python3 online submissions for Implement strStr().

ブログズミ: ASSERT_EQ(NULL, ptr) がコンパイルエラーにならない理由

Assert.IsNull Method (Microsoft.VisualStudio.TestTools.UnitTesting) | Microsoft Docs