2019年8月26日月曜日

webpack の babel-loader で、@babel/preset-envのオプションを指定して、useBuiltInsなどを使えるようにする

このエントリーをはてなブックマークに追加

webpack の babel-loader で、@babel/preset-envのオプションを指定して、useBuiltInsなどを使えるようにする

まずは、結論のコードから

{
    test: /\.js$/,
    use: {
    loader: 'babel-loader',
        options: {
        presets: [['@babel/preset-env', { useBuiltIns: "usage", corejs: 3 }]]
        }
    },
    exclude: /node_modules/,
}

以上。
以上じゃねえよ。

preset-envの部分に注目。
直感的には、

presets: ['@babel/preset-env', { useBuiltIns: "usage", corejs: 3 }]

と書けば上手く行きそうなのだが、エラー吐かれます。
正しくは、上記の設定のように

presets: [['@babel/preset-env', { useBuiltIns: "usage", corejs: 3 }]]

と、大かっこで2回囲ってやる必要がある。
めっちゃ面倒

2019年7月26日金曜日

gitレポジトリをスリム化する

このエントリーをはてなブックマークに追加

最近得た知見

つい最近、手違いにより肥大化してしまったgit レポジトリをスリム化した。
その知見をメモ代わりに羅列する。

便利なドキュメント

リポジトリのサイズを減らす
atlassianのこのドキュメントが非常に分かりやすい。
要点をまとめると、
  • バックアップを取る
  • でかいサイズのファイルを削除する
  • 履歴ごとすべて削除する
  • 強制pushする
という事になる

バックアップを取る

どこか適当なディレクトリに git cloneすれば良い。

でかいサイズのファイルを削除する

以下のコマンドで、ファイルを削除する
git rm path/to/large_file.mpg
git commit -m 'Remove large file' 

履歴ごとすべて削除する

以下のコマンドで、履歴を消す
git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch path/to/large_file.mpg" --prune-empty -- --all
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --aggressive --prune=now
これで、ほぼ消えるのだが、実はこれだけでは終わらない。
そのレポジトリがbranchを複数持っている場合、上記の履歴を消すコマンドを、各branch毎に実行する必要がある。

強制pushする

git push -f --all
すべてが終わったら、pushする。
force pushなので、勇気が必要ですが、バックアップがあれば何度でも戦えます。

まとめ

という事で、無駄にでかいレポジトリを作らないように、普段から気をつけましょう(´・ω・`)

2019年4月23日火曜日

将棋の現役復帰しました

このエントリーをはてなブックマークに追加

現役復帰して、そろそろ3ヶ月になる

将棋の現役復帰をして、そろそろ3ヶ月目が見えてきました。
それまでは観る将に徹していたのですが、妹の旦那さんが将棋好きの方で、その人と意気投合して再び将棋を指すようになりました。
ちなみに、復帰戦は酷い負け方をしていたので、なんていうか、悲しみの炎に包まれました。

負けてしまった悔しさもあるのですが、何よりも、やっぱり自分は将棋というゲームを楽しいと感じることを思い出し、現役復帰を決意。
古巣である将棋倶楽部24で度々将棋を指すようになりました。

その時のレートはなんと、926。
めちゃくちゃ弱かったですねー。

それから、3ヶ月後の現在、レート1229まで回復しました。
7級から4級までレート復帰したって感じですね。
あっさりと書いていますが、将棋倶楽部24で7級の方からすると、とてつもない伸びに見えるかもしれません。

レートが伸びるきっかけ

もちろん、最初は負けが込んでいました。うろ覚えの定跡で指していたのもありますし、そもそも将棋全般の力が落ちていました。
やっぱり、そう簡単には勝てないので、勝つための地道な基礎練習を復活させました。

  • 感想戦を行う
  • 詰将棋を解く
  • 棋譜並べを行う

やったのはこの3つです。
基本的には過去にやっていたのと殆ど変わらない勉強方法ですね。
ただ、過去と比べて劇的に変わった要素があります。
それは、コンピュータの導入です。

Shougi GUIで、自分の棋譜の感想戦を行うようにしました。
中盤の難しい所や、終盤の難しい所、序盤のミスなど、コンピュータは、鋭く教えてくれます。
もちろん、コンピュータは万能ではないので、時にはありえない手の候補を出してくる事もありますが、終盤に関しては、比較的正解に近い手を教えてくれます。
詰みがあれば、一瞬で読み切りますので、特に終盤におけるミスがかなり分かるようになりました。

自分の棋風は、序盤偏重型だったのですが、中終盤型へのシフトが出来るようになったのがここ数ヶ月での大きな変化でした。

また、時間の使い方も変えるようにしました。
今までは、早指しか、早指し2だけだったのですが、15分の将棋もするようにしました。
要所でしっかりと考える癖をつけるようにしたという事ですね。
これが、短い将棋にも生きてくるようになりました。

時間の使い方は、よく言われますが、優勢になってから時間を使った方が良いですね。
悪い時はどれだけ考えても、良くなる手はありませんが、優勢の時は良くなる手がたくさんあるので、そこでミスをしないように指すことを心がけました。

あと、終盤でしっかりと詰みを読み切るようになりました。
自陣の詰めが無いことを読みつつ、相手陣を寄せていくという基本を行うようにしました。
自分が読み切っていても、相手が読み切っていないという事もありますので、自陣が即詰みなのを読み切っても、敢えて相手陣を寄せていくという手を指して逆転した事もあります。
将棋は終盤力が大事だという事も改めて感じました。
終盤力強化に役立ったのは、コンピュータを用いた感想戦が大きかったと思います。

詰将棋の強化にはスマホ詰将棋パラダイスを使いました。
Lv5までの問題は全部解いて、今はLv6片っ端から解いています。
先日、100手を超える長手順の詰将棋を解いたのも自信に繋がりました。
今まではそんな長い詰将棋を解いたことは無かったのですが、自動応答で、気軽に挑戦出来たのが、良かったですね。

今後の目標

現在の棋力としては、アマチュア初段くらいまでは復帰したと思いますので、アマチュア二段、ゆくゆくは三段くらいまで棋力を伸ばしていきたいです。
自分の棋力がここまで伸びるとは正直思っていませんでしたが、正しい勉強を積み重ねていくならば、まだまだ伸ばすことが出来るんですね。
という事で、良く分からない将棋ネタでした。

2018年9月27日木曜日

最近Vtuberの歌ってみたにハマったので、おすすめ12選

このエントリーをはてなブックマークに追加
最近、Vtuberの歌ってみたにハマってる自分がいる。
きっかけとなったのは、


この動画。
ときのそらちゃんの存在は前々から認識していたけれど、この超高音で歌ってみたは衝撃的であった。


もともとは、ニコニコ動画でこの動画を見て、ついでにYoutubeでも見てみたいな流れだったんだけれど、Youtubeってよく出来てて、ミックスリストみたいなのをおすすめに提示してくるんだよね。
んで、そこから流れて色々聴き漁るみたいな流れで、今に至るみたいな感じです。

以下おすすめ。


この動画はアホみたいに再生してる。
この3人の声のバランスが良い。
おめシスはいいぞ。


ちゃんまりの独特の声もハマる。
おめシスの二人も普段の声と歌声が全然違うのがツボる。
ギャップ萌え?
この3人は他にもたくさん曲を歌っているので、歌ってみた入門としてはとりあえずこの3人の曲を聞くことをおすすめする。




サントリーの公式がやってくれた動画。
BGMとして流すのもいいけれど、ノムさんのダンスが良い。
気合の入れ方が違うのを感じる。
他にも何曲かいい歌を歌っているので、今後も期待したい。




力強い歌い方のでろーん好きな人おるやろ?
ワイや。
にじさんじでも特に歌唱力の高いでろーんの歌ってみた動画はもっとアップして欲しいと思ってる。





ハルカスの妹は歌が上手い。ちぃ、知ってる。
登場してから速攻でチャンネル登録したよ。
カッケー歌も可愛い歌も歌い分けが出来ていて凄いよね。




YuNiちゃんは、顔の表情も含めて、キチンと歌ってみたをやってる系だよね。
選曲のチョイスも自分の声質に合わせた歌が多くて、数多くのおっさんホイホイを仕掛けてるあたり、プロがやってるなって感じがする。
ちなみに、この曲をチョイスしたのは、初デュエットだからってのがある。
なんで、ユニコーン歌ってるんだよお前、しかもめっちゃ上手いじゃねえかwwww 馬だけに(激寒)



サルルとかゴリリとか好き勝手名前をつけられてるけれど、猿界隈で非常に人気の高い楽曲のシャルルを歌ってみたでも最高峰に到達してると思う。
普通にゴリラがいい声で歌っているだけなんだけれど、やっぱり上手いよねw
高音を綺麗に出せるって技術がいるもんね。





歌ってみただと、一番実力が高いと思われる富士葵ちゃんのフリージア。
止まるんじゃねえぞが救われるくらいめっちゃ綺麗な声で浄化される。
一つ前のモデルなので、出来がいまいちなんだけれど、それを無視できるくらい歌が上手い。



葵ちゃんからもう一曲。
表現力の高さを痛感出来るノリノリの曲。好き嫌いは分かれるだろうけれど、僕は好き。





通称ポンコツ。あるいは、噛み様。
関西弁の女の子好きなんだよね、僕(知らんがな)
Calcはかなりいい歌なんだけれど、意外と歌っているVtuberは少ない気がする。
子兎音ちゃんの声質と曲調がとてもマッチングしていて、心地よい。






あまり知られていない気がするけれど、朝ノ瑠璃ちゃんも歌が上手いよね。
歌ってみたがあまり目立たないから仕方がないとはいえ、この娘が埋もれてしまうほど層が厚いってある意味凄い事なのかもしれない。




最近発見した、歌うVtuber、Qキキちゃん。
モデルがアレだけれど、歌の力ってそれを気にさせないほどの魅力を醸し出してくれる。
素敵だね。



という事で、動画12個紹介したけれど、もっと上手い人とかいっぱいいると思うので、気になった人は、色々探してみてください。






ところで、ここ最近Vtuberの歌ってみたが流行っているんだけれど、仕掛け人は誰なんだろうね?
この8月→9月で一気に増えた印象です。
裏事情に詳しい人がいたら教えてくださいな。

2018年6月27日水曜日

感情の発露

このエントリーをはてなブックマークに追加

ほとぼりが冷めてから書くべきことなのかもしれない

こちらのブログを更新するのは久々である。
本来は、増田かどっかにこの感情と思想を書きなぐって、はースッキリとしても良かったと思うのだが、やはり古巣であるこのブログにしか書けないことだとも思ったので書き綴ります。

扱おうとしているのは、Hagex件についてと、低能先生についてと、はてなについて。

まず、Hagex氏が今回刺された事は、本当に遺憾であり、言葉にする事が難しい。
僕自身は、Hagex氏に対して特に何も感情は持たない。度々ホッテントリに出てくるブロガーという程度の認識である。
低能先生についても、ほぼ無知に近い。今回の事件が生じたことで改めて、その人物像を断片的に知ったという程度である。

つまり、この事件に関しては、全く知らないド素人である。

とは言え、これは決して看過出来ない事件でもある。
今回の事件が生じた原因などについて、様々な思惑が飛び交っている。

大枠としては、増田で煽られた低能先生がターゲットの一人であったHagex氏が自分の居住圏に来たから、行動したという物だと思う。
単なる私怨に近いものであり、仮にHagex氏でなくとも、低能先生がターゲットにしていたブクマカの誰かがそのタイミングであの場所に言ったら、被害にあっていた可能性は高い。
この痛ましい事件をどうにかして回避することは出来なかったのかと、はてな界隈の人は考えたに違いない。

一部では、はてなに責任があるという主張もある。
僕自身は、低能先生に粘着される機会が無かったので、分からなかったが、idコールを一日に十回以上も行う程の粘着っぷりだったようだ。
その都度、運営に通報され、アカウント停止はされたものの、また別アカウントを取って同様の行為を繰り返すという事を行なっていた。
ここで、「何で「はてな」は、何度も無作為にアカウントを作れる仕様にしたのか」というのが議論の的になっている。

僕個人の考えとしては、様々な人にサービスを使って貰うことを想定した場合、その辺の仕様を簡単には変えられなかったのでは無いかと推察している。
そもそも、サービスを迷惑行為に使いまくるというユーザを想定出来てはいなかったのだろう。
そして、そういうアホな事をやっている人は本当にごく少数で、重要度が低い問題とみなされていたに違いない。

この点は、確かに「はてな」の「落ち度」だとは思うが、「はてな」の「責任」とまでなると、流石にどうだろうと思ってしまう。
もちろん、責任という言葉でも間違ってはいない。だが、この事件に関する記事を知らない人が読んだ時に、「今回の殺人事件のきっかけは、はてなが作った!」みたいに考える人がいたら困るなと思っているのである。
世の中には、読解力の低い人々が多い。
そして、得てしてそういう人ほど、自分は「賢い」と感じている。
そうして、根も葉もない話を勝手に膨らませて、吹聴してしまう。
「賢い」「オレ/ワタシ」が、「賢くない」「お前ら」に「教えてやるよ」と。

なので、現段階で「責任」という重い言葉を使う人は、自重して欲しいと思う。
どうしても使いたい場合、こういう意味での「責任」ですと予めデカデカと書いておくべきだろう。

こんな分かりきった事を馬鹿みたいにブログにツラツラ書いてる時点で相当アレだけれど、僕はそういうしょうもない「誤解」を危惧しているだけだ。

僕個人の考えを箇条書きすると

  • 殺人という最低の行為を行なった事の「責任」は、低能先生がほとんど負っている
  • Hagex氏が刺されたのは、事故に近い
  • 事件の全貌はもちろん、それぞれの人となりをよく知らん外野がワーワー言うな
  • 自分は全知でないし、全能でもない
  • そして、今回の事件に関わる周囲の人もすべからくそうである事を忘れないこと
  • 無意識に生じる傲慢には、注意せよ
  • 「はてな」は、今後何かしらのアクションは必要だが「責任」を負う分野は相当少ないはずなので、混同して欲しくない

って事になる。

低能先生が行った行為は完全に間違っているし、どう言い訳しても、情状酌量の余地はない。
彼が今回のような、キチガイじみた行為を実行してしまうほど鬱屈した精神を熟成させてたのを、誰が一体止められたのだろうか。
ネジ曲がった感情を、焦燥を、心の痛みを、果たして、誰が、救えたのだろうか。
救うなんて言葉すら、おこがましいと僕は思ってしまう。
自分自身ですら、コントロールするのに手一杯なのに、他人まで支えられるほど、器は大きくないから。

だからこそ、この事件に関して、様々な感情が渦巻いている。
当然、僕には何も出来なかったし、これから先も、何も出来ないと思う。
でも、手が届く限りの範囲では、第二、第三の低能先生を生み出さないために、出来る限りの事はしたいと思う。

2018年3月3日土曜日

わりとマニアックな第76期A級順位戦の三浦対渡辺戦の感想

このエントリーをはてなブックマークに追加

棋譜



総括

詳細の解説は↑に譲るとして、総括です。

全体的に、先手が攻めて後手が受けるという展開でした。
46手目が渡辺先生らしくない手でした。この手を堺にジリジリと差を広げられた気がします。
最近のプロの棋士は攻めが非常に鋭くなっていて、受けに回ってもそのまま押し切られるという展開が多い気がします。どちらかと言うと受けが得意な渡辺先生にとって現在は非常にやりにくい環境になったのではないかなと思っています。

一方の三浦先生はミスらしいミスがほとんど見受けられず、快勝譜と言っても過言ではないでしょう。
冤罪事件から色々ありましたが、それでも真摯に将棋に向き合ってきた三浦先生の足取りをそのまま示したような将棋でしたね。
印象的なのは69手目の2四歩。
控えて打ってからぶん殴るという豪腕三浦を感じさせる手でした。

渡辺棋王が自身のブログに書いたように、かなり調子を落としているように見受けられますが、スランプを抜けきってまたあの憎たらしいまでに強い将棋を指して欲しいものです。

2018年2月27日火曜日

JavaScriptのargumentsって気持ち悪い動きをするんですね

このエントリーをはてなブックマークに追加

久々のブログ

皆様お久しぶりです、Arc Cosineです。
最近は、ゲームブログばかり更新しているので、この雑ブログも閑古鳥が泣いております。
今日は珍しく技術的な話です。

JavaScriptのargumentsって、色々便利に使えるのですが、意外とその仕様をしっかりと理解していませんでした。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

興味がある方は、↑を見てください。
見てて面白いなーと思ったのが、このコード。

function func(a) { 
  arguments[0] = 99; // updating arguments[0] also updates a
  console.log(a);
}
func(10); // 99

お前変わるのかよwwwww

function func(a) { 
  a = 99; // updating a also updates arguments[0]
  console.log(arguments[0]);
}
func(10); // 99

こんな気持ち悪い動きもします。
aを変えているのに、arguments[0]が変わるという挙動をします。

ちなみに、デフォルト値を設定するという気持ち悪いコードを書くとこういう動きをします。

function func(a = 55) { 
  arguments[0] = 99; // updating arguments[0] does not also update a
  console.log(a);
}
func(10); // 10

なんだよお前wwwwww
いやぁ、草が生えます。

こういう謎の動きをするので、strictではない、デフォルト値を指定するという書き方は、避けたほうが良いですねー。

JavaScriptを触り続けて10年が経過しようとしていますが、こういう基本的な事でも知らないことってあるものですね。
argumentsを使うようなテクニカルなコードを書く事は滅多に無いのですが、頭の片隅に置いておくと良いでしょうね。