[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今、ひよこが所属している会社のチームが後輩との2人チームである。ひよこがチームリーダーだが、2人チームをチームと呼んでいいのかはちょっとわからない。ともあれ、2人チームなので後輩がくだらないところで時間を取られたりするとチームの戦力がガクンと落ちる。
後輩がくだらないお仕事に時間を取られていたので、ちょっとしたアプリを書いてよこしてみた。ついでに後輩はプログラムがまったく書けないので意識的に丁寧に書いて後輩が拡張しやすいようにしてみた。
最近、新しい機能が欲しくなったらしく後輩が私に申し出るのではなく自分で Merge Request を私が書いたアプリによこしてきた。ちょっとひよこは鼻高々である。
これで鼻高々になるひよこはそれなりに後輩を溺愛しているのだなぁ、と気付いたりする。
はるか昔 (2017年7月) に pypi.python.org が pypi.org に移動している。これ周りでなんかわからぬーって困っている人がいたので、公式の告知を日本語にしてみる。
>Migrating to PyPI.org — Python Packaging User Guide © Copyright 2013–2017, PyPA. Last updated on Oct 02, 2018.
かつての PyPI のコードがあった場所は新しく PyPI.org に移動されました。今後はこちらの新しい URL を使うことになります。ここでは新しい URL に移るための手順を説明します。
pypi.org は 2016年9月 よりデフォルトのアップロード先となります。
pypi.python.org へのアップロードの転送は 2017年7月3日 まで継続します。2018年4月13日時点で PyPI の URL は pypi.org となります。
PyPI.org に対応するために、アップロードツールを新しいバージョンに更新することをお勧めします。
以下のバージョンはデフォルトの設定が pypi.org になっています。
更新後のバージョンのデフォルトの設定は上述の通りですが、設定によってデフォルトの設定が上書きされていないことを確認してください。設定ファイルは一般に $HOME/.pypirc にある以下のようなファイルです。
[distutils]
index-servers =
pypi
[pypi]
repository:https://pypi.python.org/pypi
username:yourusername
password:yourpassword
このファイルの repository: で始まっている部分を削除すればツールの設定はデフォルトの値になります。
なんらかの事情でツールのバージョンアップができないのであれば、$HOME/.pypirc を編集し、repository: の値を https://upload.pypi.org/legacy/ に変更してください。
[distutils]
index-servers =
pypi
[pypi]
repository: https://upload.pypi.org/legacy/
username: your username
password: your password
legacy を入れると新しいサーバ上でエミュレーションされている古い API にアクセスします
従来のように setup.py register コマンドでパッケージ名を事前に登録しておく必要はもうありません。従来のこのやり方は上述のエミュレーションにおいてもサポートされていません。
このコマンドを新しいサーバに対して試してみると、以下のエラーメッセージが返ってきます。
Server response (410): This API is no longer supported, instead simply upload the file.
なので、この登録のステップは飛ばしてください。Artifacts をそのまま登録すればよいのです。
かつての TestPyPI (testpypi.python.org) ももはや利用できません。代わりに test.pypi.org を使ってください。TestPyPI を使う場合、$HOME/.pypirc を編集し、https://testpypi.python.org/pypi を https://test.pypi.org/legacy/ に置換してください。以下のようになるはずです。
[distutils]
index-servers=
pypi
testpypi
[testpypi]
repository: https://test.pypi.org/legacy/
username: your testpypi username
password: your testpypi password
PyPI へのスパム対策として、pypi.python.org への新規アカウント登録は 2018年2月20日 以降できなくなります。pypi.org に登録してください。
pypi.python.org は他の PyPA ドキュメント群からリンクされているかと思われますが、これらも pypi.org に移動されます。当面の間 pypi.python.org から pypi.org に転送しますが、いずれどこかで転送も止めます。
pypi.org がデフォルトのダウンロード元のホストとなります
pypi.org は公開パッケージやリリースをログインしたユーザが管理するための機能を提供します。
(雛´-`).。oO(Discord 上でどどんとふのように各々が作ったオリジナルのランダム表を振れるようにするツールを書いてみた)https://t.co/LQSokR0beN
— しゅんしゅんひよこ (@Shunshun94) November 2, 2018
BCDice のダイスボットを使える機能ではなく、各自が用意したランダム表をサクッと準備して振る機能を提供する何かを作った。ランダムエネミー表とかランダムネーミング表とかランダムイベント表とかに便利。ちょっと変わった使い方だと雑談時の話題決定表とかにも使えるかも。
銀剣のステラナイツを買った。色々と興味深いシステム。私個人はスレスレの戦いで興奮するのが好きなので、ロールに偏重したシステムというのはあまりピンとこない。しかし、これがいい、という人は絶対にいる。注目のシステムだと思う。思ったことは以下のツイートにまとめてある。
(雛´-`).。oO(#ステラナイツ 買えたので (発売から1ヵ月経過した時点だ) 読んでいく。思ったこととかちょこちょこ書いていく予定)
— しゅんしゅんひよこ (@Shunshun94) October 22, 2018
読み進めて思ったのは「これ、オンセなら Slack か Discord でやるといいんじゃないかな」である。原則、シーンには2PLの PC しか登場しない。他の PL は観客として参加する。この観客が面白く、良いと思ったロールに「ブーケ」を渡す。この「ブーケ」はクライマックス戦闘におけるリソースとして機能するため、「エモさを上げてブーケで殴る」戦闘となるようだ。
このブーケを投じる際、「どの発言に」「誰が投げた」「合計いくつある」を管理したくなる。これを実現するのに特定の発言に対してリアクションをつけられる Discord/Slack は便利だと感じている。
他のシステムでも特定のロールに対していいね、を押せるのはかなりいい感じに機能すると思うので他に使い方を見つけたらつらつら、と書き残したい。
Vue.js でカスタムイベントを受け取るにはコンポーネントにイベントをバインドしなきゃいけなかった、という話。
<div id="list" v-on:item-clicked-event="apply">
<p>{{ clickedTarget }}</p>
<ul>
<list-item v-for="targetItem in targetList" :target="targetItem" :key="targetItem.id"></list-item>
</ul>
</div>
const list_item = Vue.component('list-item', {
props: ['target'],
template: `<li v-on:click="fireClickedEvent">{{target.text}}</li>`,
methods: {
fireClickedEvent: function(){ this.$emit('item-clicked-event', this.target.text);}
}
});
const myList = new Vue({
el: '#list',
data: {
clickedTarget: 'ひよこ',
targetList: [
{id:0, text:'ひよこ'},
{id:1, text:'ひつじ'},
{id:2, text:'こねこ'}
]
},
methods: {
apply: function(name) { this.clickedTarget = name; }
}
});
<div id="list">
<p>{{ clickedTarget }}</p>
<ul>
<list-item v-on:item-clicked-event="apply" v-for="targetItem in targetList" :target="targetItem" :key="targetItem.id"></list-item>
</ul>
</div>
JavaScript 側に変更はない。v-on:item-clicked-event="apply"がどこに書かれているのかに注目していただきたい。どこに v-on するのかって話はあまり見なかったけどこれは割と常識なのだろうか。でも、コンポーネントが発火したのだからコンポーネントに書いた方が分かりやすくはあるよね。