SketchのプラグインCraftの使い方(インストールとコンテンツの挿入)

Craftとは

Craftとは、inVISIONが提供するSketchとPhotoshop用の無料プライグインです。

SketchでUIデザインするときに便利な機能がたくさんあります!

Craftのダウンロードとインストール

トップページにメールアドレスを入力し、「GET CRAFT NOW」をクリックしてプラグインをダウンロードします。

ダウンロードしたファイル「CraftManager.zip」を解凍し、アプリケーションフォルダに移動します。Craftを起動するとMacのメニューバーにアイコンが表示されます。



追加されたアイコンをクリックし、進めていくとスケッチ用プラグインのインストール画面が表示されます。「install」をクリックしてプラグインをインストールしましょう。



インストールが完了するとSketchにメニューが追加されます。

画像やテキストの流し込み

Dataパネルを使って、画像やテキストの流し込みをしてみましょう。

①Dataパネルを開きます

②Photosを選択

③新しい画像を使う場合、開いてるブロックをクリックします。


④アイテム名や使う写真のディレクトリを選択します。


準備が整いましたので、画像を挿入したいところをクリックして、Dataパネルを使ってみるとどうなるか見てみましょう。

画像があっという間に追加されましたね。

テキストも「Type」から同様に追加できます。

コンテンツの複製

デザインを作る上で同じものが並ぶ場合はありますよね。

duplicate(複製)パネルを使って、画像やテキストの流し込みをしてみましょう。

複製したい方向のフォームに複製したい「数」と「間隔」を入力します。

青いボタンを押すと複製されます。


もしも、コンテンツ素材があらかじめ用意されている場合は、先に「画像やテキストの流し込み」で利用した「Data」パネルを利用しましょう。

あらかじめ「Data」パネルから素材を流し込んでいると、ランダムに画像とテキストが挿入されます!

あっという間にコンテンツが複製されましたね。

Craftには、プロトタイプ作成など他にも様々な便利な機能がありますので、改めて紹介したいと思います。

七夕なのに笹が売っていない問題

さーさーのはーさーらさら〜♪
ふ~ふ~ふ~ンフーふーふーふー♬(全然記憶にない)
マエダです。

 

掲題の件につきまして世間の皆様はどうお感じでしょうか。
お花屋さんでも全然取り扱ってないんです!(大阪市内ざっくり調べ)

 

短冊に願いを書きたくて書きたくて書きたくなくなる衝動を抑えながら僕は街に繰り出しました。

 

たどり着いたのはみんな大好きホームセンターコーナン。
意気揚々と店内を闊歩しながら僕はそれを見つけました。

 

『七夕セットミニ』(プラ製!?)

 

生笹ってもう絶滅危惧種で手に入らないんですかね。。。
そんなこんなで社内でみんなで短冊をしたためましたとさ。
めでたし。めでたし。

例年通り「長生き」を願いつつ、欲張って「厄除」「健康」と書いたら神社臭がしたよ♪
 

みなさんのステキなお願いが叶いますように(^人^)

※ 昨年の様子はこちらです。

堀川くんはサイコパス

こんにちわ。
リエです。

とつぜんですが、皆さんは堀川くんをご存知でしょうか。
堀川くんは国民的アニメのサザエさんに出てくる男の子です。

                         ※画像の男の子は堀川くんではありません

ワカメちゃんのクラスメイトでもある堀川くんですが、とても個性が強い男の子です。
一部ファンの間ではサイコパスという愛称で親しまれております。

つい先日のサザエさんで堀川くんが登場したのですが、期待を裏切らずサイコパスぶりを発揮していました。
「今のうちからモミの木を育てて、クリスマスに大きく成長したモミの木をワカメちゃんへプレゼントする」という話だったのですが、小学3年生でこの発想はさすが堀川くん!発想が斜め上だな〜と思って見ていました。オチはまだ見ていない人もいると思うのでここでは話しませんが、期待を裏切らない感じでした。

最近はサザエさんが見たいので、日曜日の18時前後にはお家にいるようになったのですが、堀川くんの回はレアなので見れてラッキーでした。

ちなみに堀川くんのサイコパスぶりはNAVERのまとめにあるので、興味がある方はぜひチェックしてみてください。https://matome.naver.jp/odai/2148707906167681401

SolrCloud 環境におけるスキーマの読み込みと保存について

はじめに

Solr 5.4.1 以降においては、スキーマは schema.xml を使うファイルベースの管理ではなく Schema API を使う管理が推奨されています。
Schema API を利用して設定された内容は managed-schema というファイルに書き込まれますが、このファイルを直接編集しないようにと公式ドキュメントには書かれています。

とはいえ、インデックスの初期設定時にはファイルで設定を与えられた方が便利です。
ManagedIndexSchemaFactory が使われる設定においては、 schema.xml が存在すれば自動的に schema.xml の内容を読み込んで schema.xml.bak にリネームしてから managed-schema ファイルが作られることになっています。
それ以降のスキーマ変更は Schema API を利用する訳です。

SolrCloud 環境においても実際に上記のような動作をするのかどうか、簡単な検証をしてみました。

準備

configsets の準備

_default の configsets をコピーして使います。

$ cd server/solr/configsets
$ cp -r _default/ schema_convert
$ rm schema_convert/conf/managed-schema
$ vi schema_convert/conf/schema.xml
$ cat schema_convert/conf/schema.xml

maganed-schema を削除して、_default/solrconfig.xml との組み合わせでエラーにならない最小限の schema.xml を作成。

<schema name="default-config" version="1.6">
    <field name="_version_" type="plong" indexed="false" stored="false"/>
    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="key" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="val" type="pint" indexed="true" stored="true" required="true" multiValued="false" />
    <uniqueKey>id</uniqueKey>
    
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" />
    <fieldType name="pint" class="solr.IntPointField" docValues="true"/>
    <fieldType name="plong" class="solr.LongPointField" docValues="true"/>

    <fieldType name="booleans" class="solr.BoolField" sortMissingLast="true" multiValued="true"/>
    <fieldType name="plongs" class="solr.LongPointField" docValues="true" multiValued="true"/>
    <fieldType name="pdoubles" class="solr.DoublePointField" docValues="true" multiValued="true"/>
    <fieldType name="pdates" class="solr.DatePointField" docValues="true" multiValued="true"/>

    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymGraphFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.FlattenGraphFilterFactory"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
</schema>

configsets アップロード

$ ../../scripts/cloud-scripts/zkcli.sh -zkhost localhost:9983 -cmd upconfig -confdir schema_convert/conf -confname schema_convert

検証

コレクション作成

$ curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=schema_convert&numShards=1&replicationFactor=1&collection.configName=schema_convert&wt=xml'

コレクション作成時に schema.xml が読み込まれたはずです。確認してみましょう。

zookeeper データツリー確認

schema.xml が schema.xml.bak に変更されて managed-schema が作られたことが分かります。

Schema API による変更が managed-schema に反映されるか

変更前

$ curl -s http://localhost:8983/solr/schema_convert/schema/fields |grep name
      "name":"_version_",
      "name":"id",
      "name":"key",
      "name":"val",

Solr の管理画面で確認した managed-schema の内容(抜粋)

変更

curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-field":{
     "name":"label",
     "type":"string",
     "indexed":true,
     "stored":true }
}' http://localhost:8983/solr/schema_convert/schema

“label” というフィールドを追加しました。

変更後

$ curl -s http://localhost:8983/solr/schema_convert/schema/fields |grep name
      "name":"_version_",
      "name":"id",
      "name":"key",
      "name":"label",
      "name":"val",

Solr の管理画面で確認した managed-schema の内容(抜粋)

確かに変更内容が managed-schema に反映されました。

まとめ

通常の Solr core の環境では Schema API による設定変更は managed-schema の実ファイルに保存されます。

一方、SolrCloud の環境では各種設定ファイルは zookeeper 上にあるものを各ノードで共有する形になっています。schema.xml の読み込みや Schema API による変更の保存などは zookeeper のファイルツリー上で実ファイルと全く同じ内容が実行されることを確認できました。

今更ながらLaravelのバージョンを5.1から5.5にアップグレード

最初は5.1から5.5に一気にあげようかと思いましたが、順次あげていったほうが最終的には早く終わりそうだったので、Laravelのアップグレード手順と他の方の記事を参考にしながらアップグレードを行いました。
せっかくなのと覚書を兼用してつまづいた部分をいくつか紹介します。

5.1 > 5.2

composer updateでエラー

Illuminate\Foundation\ComposerScripts::postUpdate
php artisan optimize
PHP Fatal error: Uncaught ReflectionException: Class log does not exist in vendor/laravel/framework/src/Illuminate/Container/Container.php:734
Stack trace:

原因は.envに定義している配列の書き方がまずかった模様

ALLOW_IPS=[“192.168.111.111”, “192.168.111.123”]

こちらスペースを削除したら問題なく動作しました。

5.2 > 5.3

bladeを拡張していた部分でエラー

(‘aaa’, $bbb->ccc)

これまでblade拡張のdirectiveにて上記のようにパラメータが来ていたが、5.3になってからは下記のように外側の括弧がなくなりマッチせずエラーに

‘aaa’, $bbb->ccc

こちらは括弧がない文字列でマッチ条件を変更

5.3 > 5.4

・使用していたSlackのライブラリが使えなくなった > 別のライブラリに変更
・関数名がリネームされていた > forceSchemaをforceSchemeに書き換え

5.4 > 5.5

・Filesystemのfilesメソッドの挙動がSplFileInfoを返すようになったので、実行前にis_dirで確認を追加しました。
・Requestのhas,onlyメソッドの挙動が少し変わっていたので適宜書き換え

動作確認やアップグレード中に不具合修正が入ったり等で少し時間がかかりましたが、基本的にはアップグレード手順書通り行えばそこまで問題はなさそうです。