たころぐ

興味の向くままに

なりたい自分の肩書きを考えてみる

はじめに

会社以外のとあるコミュニティで名刺を作ろうということになりました。 名刺を作るのはいいのだけど、そこに書く肩書きで悩みました。 でもそのコミュニティで特に何か実績や明確な役割があるわけでもありません。 そこで折角なので、現状の自分ではなく、こんな風になりたい・こんな働きをしたいという観点で考えて見ることにしました。 今回の記事は、その肩書きに込めた思いをまとめてみます。

どんな肩書きにしたのか

それは「Technical Designer」です。 そのコミュニティには私の技術的なことをしたいという想いを持って入りました。 そして自分のことだけではなく、コミュニティに参画しておられる他のメンバーさんへ技術的なこと(技術面からのサービス設計や直接実装をするなど)で価値提供したいなと考えました。

このような「技術的な設計で貢献する人」になりたいという想いから「Technical Designer」としました。

デザイナーとついているので、アートなデザイナーと思われる懸念もなるかもなとは思いましたが、デザインはそもそも「〜を設計する」や「〜を考案する」というような『構造化して設計する』意味なので、自分の想いに合致するなと考えこれでいくことにしました。

さいごに

ということで、このとあるコミュニティや個人活動では「Technical Designer」を名乗っていこうと思います。しっかり体現できるようにしていかねば! 数年後に見返したときに、そのようになれているか楽しみです。

3rd party 製のiPad 向けスタイラスペンは満足に使えるか(JAMJAKE スタイラスペン)

はじめに

純正のApple Pencil ではなく、3rd Party 製のiPadスタイラスペンを買ってみたので、その感想です。

なぜ3rd Party 製のスタイラスペンにしたのか?

単純に純正のApple Pencil が高いから。 私が使っているiPad は無印 iPad 8th です。このiPad は第一世代のApple Pencil しか使えません。 また、ペンシルは使いたいけど、細かな絵を描くわけでもなく、メモを取ったり簡単なポンチ絵を描くくらいの用途なので、純正のApple Pencil ほどの性能は正直必要ない。。。

なので、できるだけ安価に済ませたいけど、ストレスなくスムーズには使えるスタイラスペンがほしい!と思って探していました。 そんなところで見つけたのがこちら。amazon の評価も高いのでよさそうだなと思い購入しました。

購入した商品

JAMJAKE社製のスタイラスペン f:id:tacoyaky:20210501235821j:plain

タッチペン iPad ペン JAMJAKE スタイラスペン 極細 高感度 iPad pencil 傾き感知/磁気吸着/誤作動防止機能対応 軽量 耐摩 2018年以降iPad/iPad Pro/iPad air/iPad mini対応

1ヶ月半ほど使ってみた感想

結論

総じて満足。私の用途だと必要十分。買ってよかった。

よかった点

  • スムーズに使える。遅延も感じないし、素早く書いても線画途切れることもない。
  • 3段階の傾き認識もされる。楽しい。
  • ペアリング無しで使える。
  • 不自由なく使える。安いし、必要十分。 f:id:tacoyaky:20210502000632p:plain

もう少しだと感じた点

  • 電源ON/OFFがペンの頭部分をタッチすることで切り替わる。当たるだけで反応してしまうため、無意識に接触して不意に電源が切れていることがある。ノックかロングタッチで切り替わるようになっていればこの問題は発生しないのでより良いと思う。
  • 個体差があるとは思うが、私のものは充電コネクタが若干斜めになっている。そのためかはわからないが、ケーブルを差すのがきつく、メリッと鳴ってびびった。。

蛇足

端末側の対応有無もあるだろうけれど、静電容量方式のスタイラスペンなので他の端末でも利用できるのではないかと淡い期待をいだきながら試してみたので記録を残しておきます。

確認端末 OS 結果
iPad 8 iPas OS 14.4 OK
iPhone6 iOS 12.4 NG
Pixel 4a android 11 NG
Galaxy S10 android 11 NG
Galaxy Note10+ android 11 NG
ThinkPad L390 Yoga Windows10 NG

Python set(集合)の計算について

はじめに

集合 set の使用例を記載する

集合の計算式

計算 演算子 メソッド
和集合 | union
積集合 & intersection
差集合 - difference
排他的論理和集合 ^ symmetric_difference

1〜30までの整数のうち、2の倍数・3の倍数・5の倍数について考える

BEN図

f:id:tacoyaky:20210420214108p:plain

Python3 での計算

宣言

>>> duo = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30}   # 2の倍数   
>>> tri = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30}  # 3の倍数
>>> penta = {5, 10, 15, 20, 25, 30}  # 5の倍数

和集合

>>> duo | tri  # duo.union(tri) も同様
{2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27, 28, 30}

>>> tri | penta  # tri.union(penta) も同様
{3, 5, 6, 9, 10, 12, 15, 18, 20, 21, 24, 25, 27, 30}

>>> duo | penta  # duo.union(penta) も同様
{2, 4, 5, 6, 8, 10, 12, 14, 15, 16, 18, 20, 22, 24, 25, 26, 28, 30}

>>> duo | tri | penta  # duo.union(tri).union(penta) も同様
{2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30}

積集合

>>> duo & tri  # duo.intersection(tri) も同様
{6, 12, 18, 24, 30}

>>> tri & penta  # tri.intersection(penta) も同様
{30, 15}

>>> duo & penta  # duo.intersection(penta) も同様
{10, 20, 30}

>>> duo & tri & penta    # duo.intersection(tri).intersection(penta) も同様
{30}

差集合

>>> duo - tri  # duo.difference(tri) も同様
{2, 4, 8, 10, 14, 16, 20, 22, 26, 28}

>>> duo - tri - penta  # duo.difference(tri).difference(penta) も同様
{2, 4, 8, 14, 16, 22, 26, 28}

>>> tri - duo  # tri.difference(duo) も同様
{3, 9, 15, 21, 27}

>>> tri- duo - penta  # tri.difference(duo).difference(penta) も同様
{27, 9, 3, 21}

>>> penta - duo  # penta.difference(duo) も同様
{25, 5, 15}

>>> penta - duo - tri  # penta.difference(duo).difference(tri) も同様
{25, 5}

排他的論理和集合

>>> duo ^ tri  # duo.symmetric_difference(tri) も同様
{2, 3, 4, 8, 9, 10, 14, 15, 16, 20, 21, 22, 26, 27, 28}

>>> tri ^ penta  # tri.symmetric_difference(penta) も同様
{3, 5, 6, 9, 10, 12, 18, 20, 21, 24, 25, 27}

>>> duo ^ penta  # duo.symmetric_difference(penta) も同様
{2, 4, 5, 6, 8, 12, 14, 15, 16, 18, 22, 24, 25, 26, 28}

>>> duo ^ tri ^ penta  # duo.symmetric_difference(tri).symmetric_difference(penta) も同様
{2, 3, 4, 5, 8, 9, 14, 16, 21, 22, 25, 26, 27, 28, 30}

感想

こんなに簡単に集合を扱えるなんてPython はすごいなと改めて感じました。

select で出力した結果に、任意のレコードを追加表示する方法

やりたいこと

mysql でselect で出力した結果に、任意のレコードを追加表示したい (DBへの書き込みではなく、あくまで出力結果に追記したいだけ)

記述方法と出力結果

source

select "a" as 'col 1' , "b" as 'col 2', "c" as 'col 3'
union all select 'd', 'e', 'f'
union all select "A", "B", "C"

結果

f:id:tacoyaky:20210420202917p:plain

参考情報

Python の配列でdictとtupleの組み合わせ

はじめに

Python3 での配列の使い方メモ 今回は、dict と tuple を組み合わせて利用する方法メモ

Python 3 における配列の種類

type 表記例 概要
list l = [1, 2, 3] いわゆる配列。dictのkey に利用不可。
tuple t = (1, 2, 3) 初期化後に値の変更不可な配列。dictのkey に利用可能。
dict d = {'a': 1, 'b':2, 'c':3} 辞書型配列。検索が高速。

dictとtupleの組み合わせて使う

>>> d = {"a":("aaa","AAA"),"b":("bbb","BBB")}

>>> d
{'a': ('aaa', 'AAA'), 'b': ('bbb', 'BBB')}

>>> d["a"]
('aaa', 'AAA')

>>> d["a"][1]
'AAA'

>>> d.get("a","ERR")
('aaa', 'AAA')

>>> d.get("a","ERR")[1]
'AAA'

>>> d.get("c","ERR")[1]    
'R'  # "ERR" の1番目の"R"が取得されている

>>> d.get("a",("ERR","err"))[1]
'AAA'

>>> d.get("c",("ERR","err"))[1]
'err'

>>> d.get("c",("ERR",)*2)[1]
'ERR'

Keychron K2 でキーバックライトをOFFにする設定

大好きな Keychron K2 の唯一の不満点

昨年の夏から Keychron K2 というメカニカルキーボードの赤軸を使っている。
これが打鍵感もよく、非常に満足している。

www.keychron.com

キーバックライトもいろいろなバリエーションがあり、ピカピカ光る。
右上のオレンジのLight effect キーを押下することで発光パターンを切り替えることができる。

ただ、私は別に発光しなくていい。。。
何種類もある発光パターンをキーを押して切り替えていく。そのうちの一つに消灯パターンがある。
せっかく消灯パターンにしていても何かの拍子にLight effect キーに当たってしまい、ピカピカ光ってしまうことがある。
即座に消灯できればいいのに。。。

解決へ

これがこのキーボードを使っていて唯一の不満点だった。
そんな感じで使っていてはや8ヶ月。見つけてしまった。普通に同梱のクイックマニュアルに記載されていた。

fn + light effect key で即座に消灯できる!!!知らなかった。なんてこった。

f:id:tacoyaky:20210412223716p:plain

※下記より抜粋。 https://www.keychron.com/pages/k2-keyboard-user-manual

Python_文字列に対する算術演算!?

下記のQiita記事に対して興味深いコメントをいただきました。 (説明や意見のコメントはなく様々な解き方だけを書かれたので、はじめはびっくりしましたがよくよく読むとなかなか興味深いことが書かれている。 へーこんな書き方もあるんですね。Python って面白い!

qiita.com

中でも興味を持ったのは、

for i in range(1, 101):
    print((i % 3 == 0) * "Fizz" + (i % 5 == 0) * "Buzz" or i)

という書き方。 こんな書き方をしたくて探してたけど、なかなかたどり着けなかったこと。こんなことできるのね。

文字列に対する算術演算!?

(i % 3 == 0) * "Fizz"

このコードを見ると、条件評価結果のbool 値を文字列に掛けている!? なにこれ? bool型をint型として評価(false0で、true1)しているのかな? 調べてみると、Pythonのbool型はint型のサブクラスとして実装されているみたいなので、やっぱりfalse0で、true1 として扱えるのね。

でもまだ気持ちわるい。数字と文字列を掛けている?そんなことできるのね。 こちらも調べてみると、Python ではできるらしい。

>>> 1 * 'hoge'
'hoge'

>>> 3 * 'hoge'
'hogehogehoge'

おもしろい♪ Pythonの算術演算や論理演算の仕様について、もっと調べてみようと思います。