ハロウィンでの仮装状況をお伝えする件

ハッピーハロウィーン!
ハロウィンの日本国内のマーケット縮小を危惧してます、マエダです。

 

近年は仮装やコスプレの流行は終わりダサいなんて言われているそうです。

『仮装なんてダサいという風潮はよくない!』(渡辺謙 ハズキルーペテンション)

 

敬愛するデイリーポータルZ林さん地味ハロウィンをグローバル・スタンダードにしてから久しいが、社内のハロウィンランチパーティでの仮装状況を調査しました。

社内調査の結果

全体のおよそ3割の4名が仮装をしてくれました。
仮装しないスタッフも楽しく参加してくれてSPLOUTはメンバーひとりひとりの優しさでできていることを再確認させてくれました。

仮装に期待される効果

「自己否定」と「変身願望」の平成が終わったとうまいこと言われてましたが令和だって仮装したっていいじゃない。
仮装やコスプレなどの変身行動は以下の効果が期待されます。

変身することで、心の変化や日頃溜めていた鬱憤やストレスから解放されていくこともあります。これにより、気持ちが楽になります。

https://uranaru.jp/topic/1050387

いつの時代もストレスはあるものですよね。
ハロウィンくらい恥ずかしがらずに仮装する日ということでご了承いただけないでしょうか。

本年の取り組み

地味ではありますが、コスプレや仮装に対するネガティブなイメージを払拭すべく僕は立ち上がりました。

(たのしくハロウィンする様子)

ん!?

奥の方に黒いヤツがいる。

 

もうおわかりでしょうか。

そう、マエダです。
色を地味にしました。(バットマンじゃなくて黒猫ちゃんです)

ただ某ダイソーさんの全身黒タイツが170-180cm向けと書いてあったのに、股間に対するテンションが高すぎてハラスメントにならないか気が気ではありませんでした。(心もカラダも高ストレス)

 

今年も優しいスタッフに囲まれてなんとか某ジブリの魔女の宅急便風を演出するために黒猫(ジジ風)になったという後付の理由を構築することも実現できました。
※ キキ風とトンボ風してくれてありがとう。この場を借りて御礼を申し上げます。トンボ風は去年もいたな・・

さいごに

さぁ今年も「収穫祭」を楽しもう。

最後まで読んで頂きありがとうございました🎃

SolrCloudにおけるインデックスのリストア

はじめに

前回の記事で Collection API を使ってインデックスのバックアップを取る方法を説明しました。この記事ではバックアップからのリストアの方法を説明します。

リストアの実行

リストアは以下のように実行します。

$ curl 'http://localhost:8983/solr/admin/collections?action=RESTORE&name=backup1&collection=backup_test2&location=/tmp/solr_backup'

基本パラメータ

パラメータ説明
actionリストアコマンドとして”RESTORE”を指定
nameバックアップの名前
collectionリストア先のコレクション名
locationバックアップ出力先ディレクトリ

name と location はバックアップのときと同じものを指定します。

設定上書き用のパラメータ

パラメータ説明
collection.configNameconfigsetを変更
replicationFactorシャードあたりのレプリカ数を変更
ntrReplicas,tlogReplicasそれぞれの種類のレプリカ数を変更
maxShardsPerNodeノードあたりの最大シャード数を変更
autoAddReplicasレプリカの自動追加を許可するかどうかを変更

バックアップ/リストアに備えた運用

リストアが実行されると、バックアップ元とは異なるコレクション名で新しいコレクションが作成されます。コレクション名が変更されると外部で参照している箇所にも影響が出てしまうので、Solr のリファレンスではエイリアスの利用を推奨しています。

外部から参照するコレクション名を mycollection とすると、実際のコレクション名を mycollection20190915 という風に付けてエイリアスを mycollection とします。バックアップ→リストアによって新しく mycollection20190920 が作られたら mycollection の実体をそちらに切り替える、という形で運用します。

SolrCloudにおけるインデックスのバックアップ

はじめに

SolrCloudにおいては、Collection API の BACKUP コマンドを使ってインデックスのバックアップを取ることができます。複数のノード、シャード、レプリカが存在する場合に具体的にどのような形でバックアップが残るのかを調べてみました。

対象のコレクション

実験用に backup_test というコレクションを作成しました。シャード2個がそれぞれレプリカを2個持つ構成です。

コレクションシャードレプリカ
backup_testshard1localhost:8983
backup_testshard1localhost:7574
backup_testshard2localhost:8983
backup_testshard2localhost:7574

ここに、以前実験に利用した大阪の施設情報を投入しました。

バックアップの実行

バックアップは以下のように実行します。

$ curl 'http://localhost:8983/solr/admin/collections?action=BACKUP&name=backup1&collection=backup_test&location=/tmp/solr_backup'
パラメータ説明
actionバックアップコマンドとして”BACKUP”を指定
nameバックアップの名前。以前指定したものとは衝突しないようにする
collectionバックアップ対象のコレクション
locationバックアップ出力先ディレクトリ

一つ注意が必要なのは、クラスタが複数のサーバから構成される場合には、バックアップの出力先は共有ドライブでなければならないということです。

バックアップの内容

出力先を調べると、以下の内容がバックアップに含まれていることが分かります。

  • backup.properties
  • コレクションの設定情報
  • シャード毎のインデックスファイル
$ find /tmp/solr_backup/backup1
/tmp/solr_backup/backup1
/tmp/solr_backup/backup1/backup.properties
/tmp/solr_backup/backup1/zk_backup
/tmp/solr_backup/backup1/zk_backup/configs
/tmp/solr_backup/backup1/zk_backup/configs/backup_test
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/solrconfig.xml
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/protwords.txt
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/stopwords.txt
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/params.json
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/synonyms.txt
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/lang
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/lang/stopwords_tr.txt
(略)
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/lang/contractions_fr.txt
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/configoverlay.json
/tmp/solr_backup/backup1/zk_backup/configs/backup_test/managed-schema
/tmp/solr_backup/backup1/zk_backup/collection_state.json
/tmp/solr_backup/backup1/snapshot.shard2
/tmp/solr_backup/backup1/snapshot.shard2/_3.fdt
/tmp/solr_backup/backup1/snapshot.shard2/_1_Lucene50_0.tim
/tmp/solr_backup/backup1/snapshot.shard2/segments_2
(略)
/tmp/solr_backup/backup1/snapshot.shard2/_0_Lucene50_0.pos
/tmp/solr_backup/backup1/snapshot.shard2/_2_Lucene80_0.dvm
/tmp/solr_backup/backup1/snapshot.shard2/_1_Lucene50_0.doc
/tmp/solr_backup/backup1/snapshot.shard1
/tmp/solr_backup/backup1/snapshot.shard1/_3.fdt
/tmp/solr_backup/backup1/snapshot.shard1/_1_Lucene50_0.tim
/tmp/solr_backup/backup1/snapshot.shard1/segments_2
(略)
/tmp/solr_backup/backup1/snapshot.shard1/_0_Lucene50_0.pos
/tmp/solr_backup/backup1/snapshot.shard1/_2_Lucene80_0.dvm
/tmp/solr_backup/backup1/snapshot.shard1/_1_Lucene50_0.doc

backup.properties は以下のような内容のファイルです。

#Backup properties file
#Sun Sep 19 14:21:47 UTC 2019
collection.configName=backup_test
collectionAlias=backup_test
startTime=2019-09-29T14\:21\:47.122280Z
collection=backup_test
backupName=backup1
index.version=8.1.0

おわりに

コレクションのバックアップを作成したときに具体的にどういうファイルが生成されるのかを調べました。次回はリストアの動作を確認してみます。

愛してやまない食べ物

こんにちわ。
リエです。

夏ころから急に大好きになった食べ物があります。
それは、フルーツサンド🍓🍌🍊🍎🍑。

コンビニのフルーツサンドはもちろん(セブンイレブン、ローソン、ファミマは制した)パン屋さんのフルーツサンドもいくつか食べました。

コンビニでもパン屋さんでもつねにあるわけではないので、見つけたら買っています。週1回は食べている。(だって美味しいもん)

パン屋さんではダントツでパンとエスプレッソとさんのフルーツサンドが大好きです。(写真は撮ってなくてない。。)

ちなみにダイヤ製パンというパン屋さんは、フルーツサンドの種類がめっちゃ多くておすすめです。https://www.dia-pan.com/sandwich/fruitsand/

パン屋さんのフルーツサンドはもちろん美味しいのですが、コンビニのフルーツサンドもかなりレベルが高いです!手軽に買えるのもいいところですよね。
コンビニの中で1番好きなのはローソンのSAND FULLフルーツです。

※画像はサイトからお借りしました

見た目はかなりボリューミー。
甘い系のフルーツサンドかな〜と思って食べたらびっくり!
フルーツがかなり大きい。クリームの甘さも控えめで大きめにカットされたフルーツと相性バツグン。コンビニの域を超えてるな〜と感動しました。
しかしこのローソンのフルーツサンド。なかなか出会えない。
わたしは3店舗探して見つけました。見つけたときはかなりテンション上がりましたよ。

ただローソンのはお値段が少しリッチなので、コスパで考えるとセブンイレブンのフルーツサンドがお安くて美味しくておすすめです!

夏ころから始まった、このフルーツサンドブーム。
今のところ全然飽きてないのでブームはまだまだ続きそうです。

VSCodeでEmmet入門

コーディングはやり始めるときは楽しいのですが、どんどん進めていくうちに、だんだんと入力が面倒になってきますよね。
そこで、コーディングを効率的に進める上で欠かせないのが「Emmet」です!

Emmetというのは、HTMLやCSSの入力をサポートするツールです。

「そんなのエディタの自動補完を使ってもいいじゃん。」という声も聞こえてきそうですが、Emmetに慣れてくるとコーディングのストレス軽減に大きな違いを実感できると思います。

入力例として

「height:100px」を入力するときは、
「h100」と入力→「Tab」キーを押す

「<div class=”wraper”></div>」を入力するときは、
「div.wraper」と入力→「Tab」キーを押す
というような感じになります。

慣れれば慣れるほどその効果を実感できると思います。

それではVSCodeでEmmetを使って行きましょう。

「Tab」キーでEmmet省略記法が展開されるようにする

①基本設定>設定から「設定」を開きます。
②上部の検索窓から「emmet」を入力
③「trigger Expansion On Tab」にチェックをいれます。
これで準備が整いました。

HTMLの雛形を出力

まずは、HTMLの雛形を出力していきましょう。
VSCodeを開いてtest.htmlというファイルを作成して保存します。

それでは「html:5」と入力して「Tab」キーを押してください。 下記のように展開されましたね。
html:5
↓↓↓
<!DOCTYPE html>
<html lang="en">
<head>
  
  
  Document
</head>
<body>
  
</body>
</html>

このままでは、「lang=”en”」になっているので、「基本設定>設定」から「emmet」を入力して、「settings.jsonで編集」をクリックします。
そして下記の1行を追加します。
{
  "emmet.variables": {"lang" : "ja"}
}
「html:5」と入力して「Tab」キーを押すと、先程enになっていたところがjaになります。

EmmetのHTMLサンプル

基本的には「○○+Tab」なので、下記を参考に一度試してみていただければと思います。

aタグ

a
↓↓↓

class名

a.top
↓↓↓

ID名

a#header
↓↓↓

リスト

ul>li
↓↓↓

リストタグを並べる場合

ul.test_list>li.test_item*3
↓↓↓

EmmetのCSSサンプル

height

h10
↓↓↓
height: 10px;

width

w100%
↓↓↓
width: 100%;

border-radius

bdrs4
↓↓↓
border-radius: 4px;
上記はほんの一例で、下記のリンクに各スタイルの記述する方法が書かれています。
https://docs.emmet.io/cheat-sheet/

これらをすべて覚えるのは難しいので、よく使うスタイルやhtmlだけでも覚えるとコーディングの負荷を軽減できると思います。
ぜひ活用してみてください!