距離の概念があるビデオチャットツール「SpatialChat」使ってみた

SpatialChatとは

SpatialChat

SpatialChatはアメーバピグビデオチャット機能がついたようなツールだなという印象です。

メンバー同士の距離によって、声のボリュームが制御されているようで、 とても新鮮なツールです。

使ってみた

参加すると、まず2次元空間に召喚されます。

SpatialChatチャット参加時に召喚される2次元空間
チャット参加時に召喚される2次元空間

中央にアイコンが表示されるかと思いますが、これは自由に操作可能です。

2次元空間を移動する様子
2次元空間を移動する様子

距離が近いとアイコンが大きく表示され、相手の声も大きく聞こえます。

距離が近い時
距離が近い時

距離が離れているとアイコンが小さく表示され、相手の声も小さく聞こえます。

距離が遠い時
距離が遠い時

Youtubeや画像を一緒に閲覧することができます。

SpatialChat Youtubeの動画を共有する
Youtubeの動画を共有する

始め方

公式サイトに行く

SpatialChat

Try For freeを選択

SpatialChat Try For Freeを選択
Try For Freeを選択

メールアドレスや部屋IDを入力する

SpatialChat 各種情報の入力
各種情報の入力

部屋に入る。

先程発行されたURLに遷移し、部屋に入ります。

名前、自己紹介、プロフィール画像など設定できます。

マイクとカメラの設定を行います。ONにしなくても入ることはできます。

無事入れました。

感想

会社の人が部屋を立てていたので、お邪魔させてもらいましたが、 1つの部屋でグループができ、別々の会話をしているのが新鮮だなと感じました。

実際の飲み会などにシステムはかなり近いかなと思いました。

友人同士で使うというよりは、もう少し大人数(6人以上とか?)で使うと便利なのかなと想像できました。

距離という概念はかなり新鮮で、面白かったです。

ストレートネックと肩こりが気になるので整体(整骨)に行ってきた。

はじめに

最近、肩こりと首が痛いため近所の整形外科に行った所、ストレートネックを診断されました。

肩を動かす運動などを案内してもらったが、改善しないため整体に行くことにしました。

心和整体療術院

ホットペッパービューティで整体と検索したところ、いろいろヒットしたのですが雰囲気も良さそうだったので、「心和整体療術院」に行くことにしました。

beauty.hotpepper.jp

撮影の許可いただいたので、画像添付しておきます。

外観
外観
施術台
施術台

施術内容

施術内容はざっくりこんな感じでした。

  • カウンセリング
  • 状態確認
  • 施術
  • 今後のアドバイス

カウンセリング

ざっくり以下の内容を伝えました。

  • システムエンジニアをしているため平日10時間程度パソコンに向かっていること
  • 子供(7キロ)を抱っこする時に肩がパキパキすること
  • 1時間程度パソコン作業していると肩の痛みから集中できなくなること

状態確認

両足のずれ確認

手順は以下になります。私は2センチ程度ずれていました。

  1. 鏡の前に立つ
  2. 両足のつま先を床の板目に揃える
  3. 目線は上を向けたまま、その場で足踏み30秒
  4. 両足のつま先のずれを確認

首の傾き加減確認

壁を背中にピッタリとくっつけ、鏡で確認しました。 意識しなければ、かなりストレートネックであることを再自覚しました。

施術

私は整体に全然詳しくないですが、下半身7割、上半身3割り程度の施術をしていただきました。

よくある首をパキッと鳴るやつもやっていただきました。(冷や汗かきました笑)

施術中も身体のことや世間話などリラックスできるような雰囲気でした。

今後のアドバイス

ストレートネックを改善するためには、姿勢が大事なので、耳が肩のラインに来るように意識して生活すると良いとのことです。

あと3回くらい施術を受ければ、だいぶ良くなりそうとのことです。

おわりに

プラシーボ的なやつかもしれませんが、肩こりに関してはかなり痛みが収まりました。

まだ予定が合わず、2回目行けてないのですが、行きたいと思います。

サブクエリとは何か調べてみた

はじめに

サブクエリのことを書く前に、Viewの説明をする必要があるため、記載します。

その後、サブクエリのことを記載します。

View(ビュー)とはなにか

テーブルと似たようなものである。

データベースのテーブルデータの格納先はコンピュータ内の記憶装置(ハードディスク)です。

SELECT文でデータを取得しようとした時は、記憶装置からデータを選択して取り出そうとしています。

一方、Viewはテーブルと同じような見た目をしているのにも関わらず、記憶装置にデータは保存されません。

Viewはデータベースのテーブルを必要な時にSELECTして表示しているだけになります。

なぜViewを使うのか

  1. データを保存しないため、記憶装置の容量を節約できるため
  2. 頻繁に使うSELECT文を使い回すことができるため

Viewの作り方

構文

CREATE VIEW {View名} ({Viewカラム名1},{Viewカラム名2})
AS
{SELECT文}

サンプル(商品テーブルがあり、商品のカテゴリー別に件数を表示する)

CREATE VIEW ShohinSum (shohin_category,shohin_count)
AS
SELECT shohin_category,COUNT(*)
FROM Shohin
GROUP BY shohin_category;

作られるView

shohin_category shohin_count
文房具 5
家電 3

サブクエリとは

サブクエリとは、前述しているViewの使い捨てバージョンになります。

サブクエリ使い方

先程、Viewの作り方で解説したSQLがそのまま反映されるようなイメージです。

SELECT * 
FROM (
SELECT shohin_category,COUNT(*)
FROM Shohin
GROUP BY shohin_category
) AS ShohinSum;

実行結果(Viewの時と同じです)

shohin_category shohin_count
文房具 5
家電 3

実行イメージについて

SELECT文の実行イメージが以下になります。 サブクエリが先に実行され、外側のものが後で実行されます。

---②---
SELECT * 
FROM (
---②---
---①---
SELECT shohin_category,COUNT(*)
FROM Shohin
GROUP BY shohin_category
---①---
)
---②---
 AS ShohinSum;
---②---

スカラ・サブクエリについて

スカラ・サブクエリとは1行1列だけの戻り値を返すという制限をつけたサブクエリのことです。 (「10」や「文房具」といった1つの値)

必ず1行1列で無いとスカラ・サブクエリとして使用できません。

メリット

1行1列の値を返すため、スカラ・サブクエリの戻り値をWHERE文等の=<>の比較演算子に使用することができます。

固定値として出してみる

SELECT shohin_id, shohin_tanka,
(SELECT AVG(shohin_tanka) FROM Shohin) AS avg_tanka
FROM Shohin

実行結果

shohin_id shohin_tanka avg_tanka
1 50 100
2 90 100
3 120 100
4 150 100

HAVINGと組み合わせて

上記の固定値として出すパターンはあまり無いと思います。 HAVINGと組み合わせることで、 商品カテゴリ(shohin_category)ごとに計算した平均単価が、 全体の平均単価より高い商品カテゴリのみ選択する。 というシチュエーションのクエリが発行できます。

SELECT shohin_category,AVG(shohin_tanka)
FROM Shohin
GROUP BY shohin_category
HAVING AVG(shohin_tanka) > 
(SELECT AVG(shohin_tanka) FROM Shohin)

実行結果 | shohin_category | shohin_count | | ---- | ---- | | 文房具 | 300 | | 家電 | 200 |

相関サブクエリについて

商品カテゴリ(shohin_category)ごとに平均販売単価より高い商品を取り出したい場合、 先程のスカラ・サブクエリが使用できないので、相関サブクエリを使用します。

相関サブクエリ使ってみる

SELECT * FROM Shohin AS S1
WHERE shohin_tanka 
> 
(
SELECT AVG(shohin_tanka) 
FROM Shohin AS S2
WHERE S1.shohin_category = S2.shohin_category
GROUP BY shohin_category
);

ポイントは、WHERE S1.shohin_category = S2.shohin_categoryの部分になります。 ここで、S1とS2の紐付けを行うことで、スカラ・サブクエリと同じような感じで1行1列の値が取得できています。