• 【12/6まで】ヨドバシのお年玉企画が抽選受付中だよ

    受付場所はこちら

     商品は以下の通り。

    買おうと思ったけど、ちょっとためらってるんだよな・・・というのは抽選に参加してみるといいかもしれませんね。

    どれもさすがの倍率です。

  • Zaifにものすごくお願いされている件について

    Zaifってメルアドとパスワードだけで登録できて、あとで名前やら住所やら登録する仕組みだったのです。
    でも途中で飽きて登録したまま色々入力せず放置してました。

    https://coinpost.jp/?p=46976

    どうやら、ハッキング事件が起きたらしくてんやわんやになってたみたいですね。
    で、フィスコとやらと資本提携したみたいです。

    その引き継ぎに同意してくれってすごくメールが来ます。
    いやだわ。

    アカウント数で色々かわるから必死なんだろうな。
    がんばって!!!

    メールアドレス登録変えたんだけど、古いアドレスに送ってくるのだけはやめてくれー

  • Node.jsのプログラムを定期的に実行する

    毎週実行とか、毎日何時に実行とか、そういう動きをさせたいプログラムがあると思います。
    そんな時に使える2つを紹介します。

    どっちかを導入してみてね。違いはよく知らん。

    node-schedule

    $ npm install node-schedule

    app.jsを毎日13時に実行させたい場合です。

    schedule.js

    let schedule = require('node-schedule');
    let app =require('./app.js');
    
    let j000 = schedule.scheduleJob({hour : 13,minute: 0}, function(){
      app.post();
     });

    app.js側

    exports.post = function (){
    
    console.log("実行しました");
    
    };

    実行

    $ node schedule.js

    node-cron

    $ npm install cron
    $ npm install time

    schedule-cron.js (app.jsは上と同じ)

    const {CronJob} = require('cron');
    let app =require('./app.js');
    
    //秒: 0-59 分: 0-59 時: 0-23 日: 1-31 月: 0-11 週: 0-6
    //以下は毎日 10:45
    new CronJob('00 45 10 * * *', () => {
      app.post();
    }, null, true); 

    実行

    $ node schedule-cron.js

    さらに、これらはPM2と組み合わせると良いですよ。

    https://logzitsu.tlog.work/%E5%91%BD%E4%BB%A4%E3%82%92%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%E5%8C%96%E3%80%82node-js-pm2%E3%82%92%E4%BD%BF%E3%81%8A%E3%81%86/
  • 命令をデーモン化。Node.js PM2を使おう

    nodeはターミナル画面を立ち上げてる間に処理をするのが基本なんですが、ターミナル画面を閉じてしまうと処理が止まってしまいます。

    ずっと立ち上げとけばいいのですがあまり現実的ではないですね。

    そんなときにPM2

    ずーーーっと動かしたいタスクを登録しておくと便利です。
     意図的に止めたり、エラーが起きない限りは裏で動いててくれます。

    インストールします

    $ sudo npm install pm2 -g

    多分グローバルにインストールしないとダメです。

    $ pm2 start app.js

    上記で登録できます。(app.jsを動かす場合)

    動作状況確認は

    $ pm2 ls

    登録解除は

    $ pm2 stop app.js

    こんな感じでーす。

    起動で実行するようにする

    上記はラズパイで動かしているのですが、
    再起動した時に自動的に起動して欲しいことがあると思います。
    まず、起動したいものがPM2でぜんぶ動いている状態にしてください。その状態で立ち上がります。
    再起動時になって欲しい状態を作ったら

    $ pm2 startup ubuntu

    上記はubuntuの場合ですね。他の環境の場合はよくわかりません。
    そうすると、このコマンドを打ってね、みたいなメッセージが出るのでその通りにします。
    自分の環境に場合は以下のようなメッセージでした。

    $ sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup ubuntu -u ubuntu --hp /home/ubuntu

    そのあとにそれを保存するため以下を実行します。

    $ pm2 save

    再起動して立ち上がればオッケーです。

    $ sudo reboot
    https://logzitsu.tlog.work/node-js%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%AE%9A%E6%9C%9F%E7%9A%84%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/
  • 「いらすとや」がグッズ展開してるみたいだよ

    フリー素材として有名ないらすとやですが、意外とあの絵柄にファンは多いみたいです。

    日本中どこでも見かけますし、知名度はハンパないでしょうしね。

    LINEスタンプ

    公式のラインスタンプが結構出てます。
    実際使うスタンプって送り手と受取手がどっちも知ってないと厳しい。
    そういう意味では使いやすいですよね。

    https://store.line.me/stickershop/author/4325/ja

    ゲームプライズ

    ストラップ付きのぬいぐるみですね。かわいい。
    UFOキャッチャーとかで取れる店があるようです。

    https://charahiroba.com/prize/item/detail?id=6174

    ガチャガチャ

    一個500円。ちょっと高いですけどよくできてますね。

    TBSニュースのキャスター

    グッズじゃないですけど、読み上げのアバターになってるみたいです。

  • PremiaでDVDを焼く方法

    基本的にはリンク先を参考にしてください。
    この記事は愚痴です。

    参考
    https://design1plus.net/premiere-encore/

    https://logzitsu.tlog.work/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E3%82%B7%E3%83%A7%E3%83%BC%E3%82%92premia%E3%81%A7%E7%B7%A8%E9%9B%86%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/

    この記事の続きです。

    なんかプレミアCS6についてた古いソフトがいるらしい。めんどくさいなぁ。

    メディア書き出しで上記のような設定で書き出してください。

    creativeクラウドから premia CS6をインストールしておいてください。
    実際に使うのは

    こいつです。

    その後の設定は一番上のリンクを参考にしてください。

    DVD作るのマジでめんどくさいなぁ。
    youtubeは手軽ですごいってのがよくわかりました。

  • 俺TUEEEEアニメ vs 仲間YOEEEEアニメ

    今期はラノベ作品がいっぱいですね。
    その中でもひときわ話題となっているのが「転スラ」と「ゴブリンスレイヤー」ですね。

    どっちも普通の転生ものや異世界ファンタジーを一捻りしています。

    今回語るアニメもアマゾンプライムでみれます。

    一周回って、ラノベ作品ではないのでは

    ゴブリンスレイヤーって最近の流れで異世界転生とかゲーム世界ファンタジーの文脈でみられがちですけど(自分もみていたけれど)これってただのファンタジーじゃないですか?

    • 異世界転生 じゃない!
    • 異世界転移 でもない!
    • ゲーム世界 じゃない!(たぶんな)
    • 俺TUEEEEE じゃない!

    モブキャラ気味の人に焦点を当てた「普通のファンタジー」ものじゃないですかーーー。
    登場人物に明確な名前がついてないってのも割とモブ感が出てる気がします。
    ゴブスレさん強いといっても、銀等級で上にいくつか階級があったと思いますしね・・・。

    結論 ゴブスレは実はラノベっぽさはすごく薄い。

    一方転スラ

    弱いイメージのあるスライムに転生するわけです。
    しかしこのスライム、ユニークスキルが強すぎて最初から一切苦労してない。
    あと、大賢者スキルのおかげで困ってないし、ゲームのメタ視点を持ってしまっている。
    これは完全にゲームの世界であるし、転生ものの特徴をちゃんと抑えているし俺TUEEEEEEである。

    この作品の面白さは、スライムという世界の中でも弱そうでなめられてるキャラが、異世界世界で無双していく気持ちよさである。気持ちいよね??

    さらにスライムなので性別はないので女の子に可愛がられるし、そもそも可愛いし、運命の女性を捕食して女の子の見た目になっちゃうのである。
    最近君の名はで復活した、ラノベでよくあるTSものも抑えている。

    こっちはTHE ラノベである。
    (でも、だからこそ楽しい)

    ゴブリンスレイヤーって地味な話に終わる気がする

    なんかパーティのアンバランスさに作者の趣味が出てますよね。
    ドラゴン族だけど、戦士じゃなく僧侶
    ドワーフだけど、斧じゃなくて魔法を使う
    エルフだけど、魔法や癒しは使わないでレンジャー
    勇者枠だけど、剣は短いし、火ぜめとかトリッキーな戦い方
    神官ちゃん・・・は・・・神官ちゃん!

    そういうアンバランスな感じがすごい好きなんだろうなーって思ってみてます。

    結局そんなに敵倒すのみんな役に立ってない感じしますからね。
    味方YOEEEEです。

    器用貧乏は専門家に勝てないので、ゴブスレさんが魔王を倒すことはきっとないんだろうなーと思います。しらんけど。
    性格もNPCですもんね。あ、モテるところだけはすごくラノベですね。

    だからこそ、地味なところにスポットを当てて面白い話が作れるんだろうなと思います。

    反面転スラはいくらでも派手な話にできそう

    まちづくりしてんだもんなぁ。
    最強っぽいドラゴンが友達だし、どっかの国王には一目置かれてるし、やりたい放題ですよね。

  • デスクチェア嫌いマンがオススメする作業用ソファー

    デスクチェアを部屋におくのがあまり好きではない

    家で作業するんですけど、デスクチェアというのがあまり得意ではありません。
    なぜかというと、なんだかかさばる感じで部屋に置いておくとすごく存在感があるし、ローラーついている足はすごく床を痛めそうだな・・・という印象があるからです。

    また、作業用のチェアは人間工学に基づいて作られていて、体にフィットする感じになっています。
    それはそれで長時間快適に過ごすことができるのでしょうが、個人的にはベンチみたいな長椅子のようなもので体制をすぐに変えながらやったほうが快適に過ごせる気がしています。

    すぐに体を動かしたくなっちゃうんですよね。寝そべったり。

    ベンチを部屋に置くのもいいけど、ソファーで作業すりゃいいじゃん!

    だから私のメイン戦場はソファーなのです。
    ソファーだったら仕事もできるしご飯も食べれるし、接客にも使えるし、ちょっと昼寝にも使えるのです。そういう万能さが一人暮らしには求められていると思いませんか?
    寝るなら座面が結構長くないといけないんですけど、一人暮らしだと1.5〜2人掛けのソファーがオススメですよ。

    オススメソファーを探してみました

    いろんなソファーを探してみました。自分が使ってるのと近いものから紹介します。

    不二貿易 バイキャストPUソファ フレンズ 2人掛け 合成皮革 ダークブラウン 71157

    自分の使ってるのはこれに近いものです。
    ちょっと男らしい部屋にしたいな、と思ってる人にはオススメです。
    部屋に雰囲気が出ます。ただ、肘掛けが寝る時に邪魔です。
    これがなければベッドの代わりにもなったのになーというのが惜しい。

    価格もお手頃です。でもソファーは捨てるの大変だから、安いからという理由で買わないほうがいいです。ちゃんと選びましょう。
    自分は半年ほど使ってますが、超満足ですね。オットマンも使ってます。
    また、合皮の寿命はあまり長くないみたいなのでそこは割り切って買いましょう。

    アイリスプラザ ソファ 2人掛け ブラウン 幅115㎝ EJ-2107

    アマゾンでベストセラーの商品です。
    このブログでワークチェアも紹介しているアイリスプラザですね。
    何と言っても特徴は安いことですね。
    レビューも概ね評価が高いです。
    低い評価は、パーツ欠損で届いたというものなので、交換対応してもらえるでしょうしちゃんと届けば問題ないものなのだと思います。

    アイリスプラザ ソファ カウチ 2人掛け クッション付き あぐら チャコールグレー 幅約110㎝ 34136

    まーたアイリスプラザですね。オットマンがついて、肘掛けが片方なくて寝やすそうだし、安いし使いやすそうで最高じゃないですか!

    じぶんがさがしたときにこれがあればもしかしたらこれを買っていたかもしれません。
    ミニマリストならメインベッドとして使ってもいいんじゃないでしょうか。
    そういう生活したいなぁ。

    まとめ

    ソファーで長時間作業は快適なのですごくオススメ!

  • ボトムアップ型のMMORPGという発明。ソードアート・オンライン アリシゼーション の話。

    ソードアートオンラインの話をしてみます。
    自分はアニメみてるだけの人です。同じ世界の未来の話である、アクセルワールドもみてます。
    そんぐらいの知識で書いてます。にわかです。

    プライムビデオでみれます

    こちら

    今までのソードアートオンラインの残念なところ

    残念なところって書いてますけど、基本的には好きです。
    個人的にちょっとなーと思うのは、あんな事件があったのにその後も普通にみなさんゲームで遊んでるとこですね。
    オイキミタチ、あんなことがあったのに懲りないのかね・・・。ってことぐらいです。

    作者さんもどこかで語ってたような気がするんですけど、全てはゲームマスターや製作者次第ということなんですね。

    ゲームは運営者が神であり、神の予測の範囲を超えることはない。
    ということです。まーバグとかあれば別なんでしょうが、それも些細なものです。

    いっくらキリトくんが頑張っても、運営者にBANされれば終わりなのです。
    それだけ強い権限をもっていて、それに抗っていくというストーリーしか存在し得ないのです。

    その制限を取っ払う素晴らしい設定

    AIを作成するためのゲームプログラムという設定です。
    これにより、製作者が予測できないことが起きるというか予測できないことを引き出すために作られたプログラムであるということ。

    この設定により、ゲームであることのジレンマから解放されているのです。

    あと、キリトくんは必ずしもこのゲームに関わる必要はないのですが、
    怪我の治療のためという大義名分のもとゲームに閉じ込められています。

    さらに、ゲーム時間は5000倍になっている。
    これはアクセルワールドのせっていのやーつですね。
    あと、心意(漢字合ってんのかな?)システムらしきものも出てきましたね。

    ゲームだと体感速度がすごく遅くなるってのはすごい夢がありますよね。
    実際は逆なんですけどね。

    なんかゲーム内時間で2年経ってましたね。
    もうソードアートオンラインの閉じ込められ時間超えてんじゃん(体感は)。

    周辺の栄養を吸い取る木の話

    あーゆーシナリオって誰が考えてるんですかねー?
    設定だけ作って置いといてるのかな。
    木の上の部分が剣になるとかすっごくRPGな感じですけど。

    次回の話が気になるの!

    今回すっごいいいところで終わってません?
    気になりますってとこでおわります。

  • もうこれでいいじゃん。Googleフォームをオリジナルデザインで使う方法!

    今まで知らなかったんですけど、うまーく工夫するとオリジナルのデザインでgoogleフォームが作れちゃうみたいです。
    メールフォームのためだけに、PHPの動くサーバーを借りなくていいという利点があります。
    まあ、だいたい一番安いプランで動きますけどね。
    HTMLの知識と、Chromeとかのデベロッパーツールを使う必要があります。

    参考にしました。

     https://qiita.com/sota6412/items/fa077cbf820faca30598

    まず普通にフォームを作ります

    今回はこちらのフォームのソースを使っちゃいました。

    http://www-creators.com/archives/2486

    自作でいいんですが参考にしてみると良いかと思います。

    Googleフォームで同じものを作ろう!

     https://docs.google.com/forms/

    作ったら、フォームページにアクセス

    これのリンクにアクセスします。

    fromの「action」とinputの「name」をそれぞれ取得

    ブラウザのデベロッパーツールを立ち上げましょう

    action

    name

    取得した情報を、作ったものに反映していきましょう。
    めんどくさい。

    ラジオボタンやチェックボタンもわかりにくいですがinputタグがあります。

    それぞれ、作ったフォームに当て込みます。
    ラジオボタンとチェックボックスは、valueの値をしっかり入れておきましょう。

    動くか試してみる

    PHPで動くシステムと違い、ローカルからPOSTしても問題なく動くのが素晴らしいですね。

    以下のような画面が表示されたら成功です。

    でもこの画面が表示されたらびっくりしてしまいますね。
    あとで解決したいと思います。
    その前に受信側の設定。

    スプレッドシートに結果が記載されるようにする

    フォーム作成画面から回答の表示画面に行けるのですが、その画面で上記のアイコンをクリックするとスプレッドシートが作成できます。
    送信結果がスプレッドシートで一覧として確認できます。

    上記のような感じ。
    フォームが届いたら通知が届くように設定しておきましょう。

    これで保存すると、フォームが届くたびに通知が届きますので、逃しません。

    送信後の画面を変更する

    ajaxで送信するんだそうですよ。

    参考にしました。

    Googleフォームをカスタマイズして導入、Ajax処理を行う
    https://qiita.com/sugitata/items/182173c01e0470a3a4a8#_reference-a3a8c18aab158ee0c9de

    jQueryのajaxを書き足します。

    <!-- jQueryの読み込み -->
    <script
    src="https://code.jquery.com/jquery-3.3.1.js"
    integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
    crossorigin="anonymous"></script>
    
    
    <script>
    function postToGoogle() {
    
    //フォームの隊を取得
    var field1 = $('[name="entry.2094131772"]').val();
    var field2 = $('[name="entry.1337467998"]').val();
    var field3 = $('[name="entry.1133430643"]').val();
    //ラジオボタンの取得は↓
    var field4 = $('[name="entry.204845324"]:checked').val();
    var field5 = $('[name="entry.770373466"]').val();
    
    //urlやentryは書き換えてね。
              $.ajax({
              url: "https://docs.google.com/forms/d/e/[key]/formResponse",
              data: {"entry.2094131772": field1,
    "entry.1337467998": field2,
    "entry.1133430643": field3,
    "entry.204845324": field4,
    "entry.770373466": field5
    },
              type: "POST",
              dataType: "xml",
              statusCode: {
                  0: function() {
                      //Success message
    location.href="https://(転送先のURL)";
                  },
                  200: function() {
                      //Success Message
    location.href="https://(転送先のURL)";
                  }
              }
          });
          }
    </script>

    送信ボタンはsubmitから上記の関数が動くように書き換え

     <input type="button" onClick="postToGoogle()" value="送信">

    サンクスページは作って、転送先URLに設定してください。

    これで動けばOK!

    お疲れ様でした!!

    あとはフォームバリデーションのプラグインとか使うともっと本格的になりそうです。
    あと、googleスクリプトとか使えば自動返信メールもできそうですね。

    googleフォームには通常のフォームにはない利点もありますので、使いようによってはwordpressやphpより便利に使うことも可能そうですね。

  • あと1カ月だぞ、何で今までほっといた?iPhoneバッテリー交換を予約せよ!

    iPhoneのバッテリーでわざとパフォーマンス下げてる疑惑があり、その対応で今年いっぱいバッテリー交換が非常に安くできるようになってます。

    いくらで交換できるの?

    公式サイトから引用。3,200円で期間過ぎても5,400円みたいですね。
    iPhone X とかはまだやらなくていいんじゃないかな。
    そんなに高くないかなって個人的には思います。

    とりあえずサポートアプリを入れよう

    こちら → https://itunes.apple.com/jp/app/apple-%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88/id1130498044?mt=8

    予約とったりするアプリです。
    配送の場合も手順が表示されますよ。

    代替機がある場合 → 配送修理

    手元に古いiphoneやandroidがある場合はsimを取り替えることで電話番号そのままで使えるので、AppleにiPhoneを送っちゃいましょう。
    ぶっちゃけ予約取るの大変なのでさっさとこれでやりましょう。
    1週間ほどで手元に届くみたいです。

    代替機が「ない」場合 → 予約修理

    この予約がとれないとれない。

    サポートアプリで「バッテリーと充電」から端末を選んで、
    バッテリーと充電 → バッテリー交換 → 持ち込み修理
    と選んでいきます。

    持ち込み修理を選ぶと場所の検索になります。

    上記のような感じになります。
    だいたい脈なしな表示です。もしこんな表示が出たら即刻予約してください。すぐ他の人が手続きして埋まりますので注意。
    上の画面は3箇所予約可能な奇跡!
    1週間後の今頃から予約可能になってることがあります。

    予約可能表示を掴む方法

    「何回も場所検索を繰り返す」これしかありません。
    また、おそらく次の週の今の時間が予約できるタイミングっぽいので、15時25分ごろとか予約が終わるタイミングっぽいところが狙い目なのかもしれません。

    頑張れ

    どこも取れないっぽかったので、場所とかどうでもいいやーって感じで予約しました。
    渋谷の店舗で予約できたのでよかったです。
    あと1ヶ月です。みんなも頑張れ。

    予約が取れた後は

    ・バックアップを取ること
    ・バージョンを最新にすること
    という指示があります。
    それを満たした後、予約時間にGOです。

  • 座面の蒸れ解消!長時間座る方におすすめのワークチェア

    座面の蒸れからの臭い問題

    私は仕事やゲームの際、長時間座っているせいで座面が蒸れて、臭いが気になることがありました。
    以前は3Dメッシュの座布団を使ってましたが、期待している「蒸れゼロ」は流石に無理でした。

    イーサプライ シートクッション メッシュ ハニカム 座布団 丸洗い EEX-CHC01

    最近いいぞアイリスオオヤマ

    昔から良かったのかもしれないですごめんなさい。でもなんか最近でた掃除機とかぶつぶつ・・・

    紹介したいのはこれ。

    座面が、床がすけて見えるメッシュでできているのだ!!

    表面だけそれっぽくて結局綿が入ってる、よくあるあれじゃないですよ。

    エクストラクール・ハイバックチェア HLC-0088-1K

    機能紹介

    腰あて高さ調節機能

    背もたれの裏に腰当てがついており、これがすごくいい。高さが調節でき、自分の体型にあった位置に調節できる。

    首あて調節機能

    背もたれの上についている首当ての角度をある程度調節できます。

    私の場合はなんかしっくり来ないので外してしまいましたが、同居人は気に入ったようでした。

    肘掛け高さ調節機能

    肘掛けの高さを4段階調節できます。

    私は奥行きのあるデスクを使っているので基本肘掛けを使ってません。
    天板上面までの高さが70cmのデスクであれば、肘掛けを一番上まで上げるとかなり快適な高さになります。

    座面の高さ調節機能

    まぁ、大体この手の椅子にはついてるよね。座ったときに座面下右側にあるレバーで調節できます。

    背もたれロック / 解除でぐいーん

    これもまぁまぁついてますよね。

    座ったときに座面下左側にあるレバーで切り替えできます。解除するとぐいーんと背もたれをリクライニングすることが可能。持たれてないと戻ってくる、バネの感じのやつです。座椅子みたいに固定されないので注意。

    ちなみにバネの硬さは座面下前側の突起を回すと調整できます。

    超高い椅子の購入も考えてましたが、これで十分快適です。お試しあれ〜


    エクストラクール・ハイバックチェア HLC-0088-1K
  • 何も考えないで見ろ!「ゾンビランドサガ」のススメ

    普段、何かと考察できたり、脚本が練ってあるアニメやら漫画やらゲームが好きなんですが、その反動でなーんにも考えず見れるアニメもすごい好きになったりします。

    そんな、真剣に見ずに流し見してると楽しい「ゾンビランドサガ」について紹介したいと思います。

    ゾンビランドサガ はアマゾンプライムビデオで見れるよ

    ここから、大なり小なりネタバレが入るので、きになる人は見てから読んでくださいな。

    プライムビデオ登録はこちらから

    おすすめポイント①
    なぜこの企画が通ったのかわからない

    ゾンビのアイドルものなんですよ。
    ジャンルでいうと、ゾンビでアイドルでギャグものです。

    ゾンビものって、xxx オブザデッド みたいにゾンビから逃げるものですよね?
    逃げません。
    主人公がゾンビでアイドルです。
    もう意味がわかりません。

    あと、佐賀です。

    おすすめポイント②
    支離滅裂で不条理なギャグ

    異様なハイテンションで訳のわからないノリのギャグがいっぱいです。
    それを一番象徴してるのが、「巽幸太郎」。
    宮野真守の声で囃し立ててきます。

    わかる人にしかわからない言い方をすると、あいまいみーとかカブトボーグみたいなやつです。
    実際こんな人間いたら絶対に関わりたくないですけど。

    おすすめポイント③
    全体的にちゃんと作ってあって腹が立つ

    オープニング

    まずOPですね。
    なぜか特撮ものっぽくなっててめちゃかっこいいです。

    豪華な声優

    なにこのアニメに宮野真守使ってんねん。
    そして山田たえ役の声優よ・・・。
    その予算はどこから来るのか。なぜこの企画に本気を出してしまったのか。

    よく動いてかわいい

    メイクした後のゾンビ可愛いんですよね。
    あと、こんなギャグアニメ動かす必要ないし、作画もテキトーにやりそうなもんですけど、何気ない仕草がすごくよく動いたりする。

    ライブシーンなんかちゃんとダンスしてるし、ラブライブみたいな3DCGとかも使ってたりします。
    その3DCGで笑ってしまった。

    女の子の絵柄はニチアサっぽいなって思ってました。
    ここまで可愛いと、ゾンビ設定は果たしているのだろうか・・・と思ってしまった。

    考察もしようと思えばできるし、脚本もちゃんとしてる

    なんか真面目な話になってきたな・・・と思うと突然ギャグを入れてきたりするんですが、話自体はしっかりしてるなって思いました。
    でも、なにも考えずに見るのが楽しいと思うよ。

    ゾンビである意味が本当にわからない・・・・と視聴当初は思ってたんですけど、
    生前の未練や、やり残したことを実現するってところにゾンビで復活した意味があるのかなと思い始めました。思い過ごしの可能性もあります。

    考察に関しても、プロデューサーの正体とか、山田たえの素性とかそういうのでできなくもないです。

    まとめ

    なんか面白いアニメないかなーって思ってる人は、気軽に流し見してみるといいと思います!

    いいツイートあったので転載

    こんな感じです(笑)

  • 1万円以下 最強音質『GigaWorks T20 Series II』PCスピーカーがすごくいい!

    にわか”オーディオヲタ”な私の悩み

    オーディオヲタではないけど、そこそこいい音じゃないと気になる。
    そんなにお金はかけたくないけど百均スピーカーや2,000円くらいのスピーカーじゃ辛い。
    ネット上にはプロ仕様か激安の偏った記事が多く、なかなかどれを買おうか迷っていた。

    出会いは家電量販店

    友人と家電量販店をぶらつくという暇つぶしをしていたとき、昔一緒にバンドをやっていたこともあり、音響関係のコーナーへ。そこで運命の出会いが。

    やけに高評価な記事を見かける割にシンバルの音がグシャッとなるスピーカーたちに囲まれ、聞き間違いかと思うくらいにいい音のスピーカーが!!

    『GigaWorks T20 Series II』

    エセ高音質のドンシャリじゃない

    私がいつも気になるのはシンバルの音で、基本安いスピーカーは金属を叩いてるとは思えない音がするのですが、こいつはちゃんと金属の音がする。

    低音は最近にしては小さめに感じるかもしれませんが、他のものが高音質気取りのドンシャリスピーカーが多いだけで、ちょうどいいバランスになってます。

    シーンに合わせて音をいじれる

    簡易的なイコライザーがついていて、例えばアクション映画を見るときなんかはBASEのつまみを3時くらいまで回して迫力を楽しむなんてこともできます。

    驚異的なコスパ

    値段も1万円以下。
    こだわりすぎず、安く、そこそこの音質を楽しみたい方におすすめです。

    Creative ステレオスピーカー GigaWorks T20 Series II 2.0ch 【ファイナルファンタジーXIV: 新生エオルゼア Windows版 推奨】GW-T20-IIR
  • CSSにはバージョンがないらしいって話

    CSS3というのはよく聞く単語ですが、実はこれは正しくないらしい。
    CSSの機能は細かくモジュール分割されていて、いてそれぞれのモジュールのレベルという形で表現されているらしい。

    だからCSS3とかCSS4は通称みたいですね。
    新しく追加されるモジュールのレベルは1から始まるらしい。

    ちなみに、CSSとおんなじって訳ではないみたいですが、html5も6に数字が上がることはなく、アップデートが行われてるみたいです。

  • Adobe製品がアマゾンで安い!急げ!

    最大68%OFF!11/30までブラックフライデーSALE とのこと。

    セールは年に何回もないので、Adobe製品欲しかったよ!という人は買い求めたほうがいいです。
    すでに持ってる人も、現在のプランが切れた後に延長で適用できますよ!

    購入はこちら

  • スクレイピングでmac製品をカートに入れる・・・を試して修正した

    元記事です

    PuppeteerでスクレイピングしてMacBook Pro整備済製品をカートに入れる!もう逃さない!
    https://qiita.com/iwamooo/items/4f47d17704cd9b4f1de9

    なんか、Appleのサイトの仕様が変わってるらしくて、うまく動きませんでした。

    const puppeteer = require('puppeteer')
    const notifier = require('node-notifier')
    
    const getMacbook = setInterval(() => {
      !(async() => {
        try {
          const browser = await puppeteer.launch({ 
            //executablePath: '/usr/bin/chromium-browser',
            args: ['--no-sandbox'],
        headless:true })
          const page = await browser.newPage()
          await page.waitFor(5000)
    
          // ページアクセス
          await page.goto('https://www.apple.com/jp/shop/refurbished/mac')
    
          /**
           * findItem
           *
           * @return {object}
           */
          const findItem = await page.evaluate(() => {
            let result = {}
            const nodeList = document.querySelectorAll('.as-producttile-tilelink')
    
            for (let i = 0; nodeList.length > i; i++) {
              const target = nodeList[i].innerText
    
              const check_1 = 'Mac Mini 2.8GHzデュアルコアIntel Core i5 [整備済製品]'
              /* const check_2 = '2017年6月発売モデル' */
    
              if (target.indexOf(check_1) !== -1 /*&& target.indexOf(check_2) !== -1 */) {
                result.isHit = true
                result.itemNumber = i + 1
    
                console.log(result.itemNumber);
    
                break
              }
            }
    
            return result
          })
    
          if (findItem.isHit) {
            // ログイン部分のDOM読み込み(isLogin)
            await page.click('#ac-gn-bag > a')
            await page.waitFor(5000)
    
            /**
             * isLogin
             *
             * @return {boolean}
             */
            const isLogin = await page.evaluate(() => {
              const findItem = document.querySelectorAll('.ac-gn-bagview-nav-item-signIn')
              return findItem.length ? false : true
            })
    
            if (!isLogin) {
              // ページ移動
              await page.click('.ac-gn-bagview-nav-link-signIn')
              await page.waitForNavigation()
    
              // ログイン情報設定
              await page.type('input[name="login-appleId"]', 'Apple ログインID');
              await page.type('input[name="login-password"]', 'パスワード');
    
              // ログイン
              await page.click('#sign-in')
              await page.waitForNavigation()
    
              // ログイン部分のDOM読み込み(isCartEmpty)
              await page.click('#ac-gn-bag > a')
              await page.waitFor(5000)
    
              /**
               * isCartEmpty
               *
               * @return {boolean}
               */
              const isCartEmpty = await page.evaluate(() => {
                const findItem = document.querySelectorAll('.ac-gn-bagview-message-empty')
    
                return findItem.length ? true : false
              })
    
              if (isCartEmpty) {
                // ページ移動
                
                await page.click(`.as-gridpage-producttiles li:nth-child(${findItem.itemNumber}) .as-producttile-tilelink`)
                //await page.click(.box-content > table:nth-child(${findItem.itemNumber}) .product > .purchase-info > a`)
                await page.waitFor('.form-submit-btn', {
                  timeout: 120000
                })
    
                // カートに追加
                await page.click('.form-submit-btn button')
    
                // デスクトップ通知
                notifier.notify({
                  'title': 'アイテムヒット!',
                  'message': 'カートに追加したよ!'
                })
    
                console.log('カートに追加したよ!')
              } else {
                console.log('もうカートにあるよ!')
                clearInterval(getMacbook)
              }
            }
          } else {
            console.log('みつからないなー。。。')
          }
    
          browser.close()
        } catch (e) {
          console.error(e)
        }
      })()
    }, 60000)

    問題点は、検索ワードがぴったりあってないと動かないっぽいところです。
    正規表現とかである程度幅を持たせとかないと逃す気がする。
    すごくテストしとかないと信頼性がないですねー。

    あと、サイトの仕様が変わってるとうまく動きませんね・・・

    応用で何かできないか考えてみたいと思います。
    あと、上記コード試すときはAppleに負荷かけないように心がけて試してくださいー。

  • pupeteerで情報を取得してメール送信してみる

    https://logzitsu.tlog.work/headless-chrome/
    https://logzitsu.tlog.work/node-je%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B%E3%82%88%E3%83%BC/

    上記を組み合わせただけでーす。
    classとか使えばもっといい感じに連携できるのかも知れませんが、今回は愚直にやります。

    お天気情報のメール配信プログラムです

    yahooから天気情報にアクセスして、画像を取得の上、メールに天気情報をのせて送信します。

    いろいろ必要なので事前にインストールしておいてください。

    npm i co
    npm i nodemailer
    npm i fs
    npm i puppeteer
    npm i date-utils
    npm i bluebird

    で、ぜんぶかな(たぶん)

    tenkimail.js

    const co = require('co');
    const mailer = require('nodemailer');
    const fs = require('fs');
    const puppeteer = require('puppeteer');
    //時間
    require('date-utils');
    let now = new Date();
    
    
    (async () => {
        const mail_config = {
          "host": "xxxxxxxxxx.ne.jp", //SMTPホスト
          "port": "587", // ポート
          "auth": {
            "user": "メールアドレス@aaa.aaaa", //ユーザー名
            "pass": "xxxxxxxxxxx" // パスワード
          }
        }
        const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
        const page = await browser.newPage();
        // ページ作成
        await page.goto('https://weather.yahoo.co.jp/weather/');
        await page.waitFor(2000);
    
        // 文章の取得
        console.log(await page.title());
        const texts = await page.$eval('#condition .text', item => { return item.innerHTML });
        console.log(texts);
    
        // スクリーンショット撮影
        let element = await page.$('#forecastMap');
        await element.screenshot({ path: 'screenshot-tenki.png' });
    
        await browser.close();
    
        //SMTPの接続
        var smtp_tmp = mailer.createTransport(mail_config);
        // プロミス化
        var smtp = require('bluebird').promisifyAll(smtp_tmp);
    
        // メール内容の設定
        var mail = {
          from: "メールアドレス@aaa.aaaa", //送信元
          to: "xxxxxxxxxxxxxx@gmail.com", // 送信先
          subject: now.toFormat('YYYY年MM月DD日 HH24時MI分SS秒') + "天気予報", //メールのタイトル
          text: texts, //メール本文
          attachments:[{
            filename: "screenshot-tenki.png",
            content: fs.readFileSync("screenshot-tenki.png")
          }]
        };
    
        co(function*(){
          try{
            var res = yield smtp.sendMailAsync(mail);
            console.log(res);
          }catch(e){
            console.log("Error");
            console.log(e);
          }
          smtp.close();
        });
    })();

    実行は

    node tenkimail.js

    スケジューラーに組み込んだり、PM2でデーモン化したりするといいですよ。

    活用アイデア

    毎日の株価の配信とか?
    30秒ごととかで検索をかけて、条件を満たしたらメールで通知するとかがすごく役に立ちそうな気がします。
    いい使い方があったら教えてください。

  • node.jeでメールを送ってみるよー

    参考にしました

    https://www.yoshi-net.tokyo/%E6%8A%80%E8%A1%93%E3%83%8D%E3%82%BF/86/

    今回は上記の記事をなぞるだけかも。
    ほんとにやりたいのはpuppetterと連携させること。次の記事でやります。

    まず送信用メールアドレスを作る

    各レンタルサーバーでつくるがよい。
    上記はさくらの画面です。

    fs  / bluebird / co / nodemailer
    をインストールしてください。

    npm i fs
    npm i bluebird
    npm i co
    npm i nodemailer

    sendmail.js

    const co = require('co');
    const mailer = require('nodemailer');
    const fs = require('fs');
    
    const mail_config={
      "host": "xxxxxxxxxxx.ne.jp", //SMTPホスト
      "port": "587", // ポート
      "auth": {
        "user": "メールアドレス@aaa.aaaa", //ユーザー名
        "pass": "ぱすわーど" // パスワード
      }
    }
    
    //SMTPの接続
    var smtp_tmp = mailer.createTransport(mail_config);
    // プロミス化
    var smtp = require('bluebird').promisifyAll(smtp_tmp);
    
    // メール内容の設定
    var mail = {
      from: "メールアドレス@aaa.aaaa", //送信元
      to: "xxxxxxxxxxxx@gmail.com", // 送信先
      subject: "テストメール", //メールのタイトル
      text: "メール本文", //メール本文
      attachments:[{
        filename: "screenshot.png",
        content: fs.readFileSync("screenshot.png")
      }]
    };
    
    co(function*(){
      try{
        var res = yield smtp.sendMailAsync(mail);
        console.log(res);
      }catch(e){
        console.log("Error");
        console.log(e);
      }
      smtp.close();
    });
    

    同じフォルダにscreenshot.pngというファイルを置いておくと送信できます。

    実行は

    node sendmail.js
    https://logzitsu.tlog.work/pupeteer%E3%81%A7%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/
  • さくらインターネットサーバーでTypeSquare のWEBフォントを使う方法

    さくらサーバーではWEBフォントが使える

    さくらのレンタルサーバーではモリサワのWEBフォントが使えます。
    ただし使用には条件がありますので注意してください。

    あれ?プラグインを入れてるのに適用されてない・・・

    そういうことに気づいたのでした。
    スマホだと明朝体になってしまっている・・・・。

    原因はドメインを指定していないからでした。

    WEBフォントを使えるのは一つのドメインという決まりがあるみたいです。
    ドメインを指定するにはサーバーコントロールパネルから指定します。

    表示したいドメインを登録ドメインに指定してください。

    また、PV数が多い場合も表示されないみたいです。
    月間 25,000PV なかなかに最初は達成が難しいので、小さな規模のサイトはきにする必要はないと思います。

    WordPressの場合

    プラグインで「TypeSquare Webfonts Plugin for さくらのレンタルサーバ」を有効にして好きなフォントを選ぶだけでいいです。

    簡単ですね。
    HTMLサイトの場合も上記ページのリンクから追加方法が記載されているようですよ!

  • しまむらでダウンジャケット買ったけど安くてよかった

    タイトル以上の情報がないんですけど、たまにはこういう記事もいいかなーと思って書いてみます。

    最近急に寒くなりませんか

    けっこう厚めの上着を持ってるのですが、それを着るにはちょっと大げさすぎる。
    まーつなぎでしまむらで買えばいーや、と薄めのダウンジャケットを買ってみました。

    安かったけどちゃんとダウンジャケットだった

    ダウンジャケットって、安くて1万円で、普通の値段が2万円〜3万円ぐらいのイメージだったんですけど、5,800円(税込)で売ってました。
    しかも、わたが混じってるとかでなく、フェザー10%、ダウン90%でした。最高やん。
    安いなぁ。

    薄めだと思ったけど、薄めじゃなかった

    今まで綿の入った重い上着を着てたんですが、羽毛は保温力と軽さが優れてますね。
    軽いし、すごくあったかくなります。素晴らしいです。

    電車のなかで着ていると、今は夏か・・・と思うほどの暖かさです。
    もうちょい薄めでもよかったかもしれません。

    一冬越せる性能

    これは一時期をしのぐだけでなく、東京ぐらいの寒さなら難なく一冬越せそうな感じです。

    ついでに水洗いができるらしい

    しかも水洗いできちゃうみたいです。良すぎだろ・・・・
    っていうついったーみたいな記事でした。終わり。

  • ラズパイ3 model B でpuppeteerを動かすまで

    いったんは諦めたのですが、しばらく放置してる間に情報がでて揃い始めてたっぽいのでせっかく買ったので有効利用したいと思います。

    ヘッドレスchromeは64bit OSでないと動かない?

    そう思って以下の記事の内容を実行しました。結論から言うと無駄だったかも。
    ubuntuが好きなので、ただのubuntu mate でよかった可能性。

    http://denor.daa.jp/raspberry-pi-3%E3%81%A764%E3%83%93%E3%83%83%E3%83%88%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E8%B5%B7%E5%8B%95-ubuntu-18-04-1-multiarch

    つまづきポイントは、viの使い方がわかんないところです。
    32bit OSの立ち上げがうまくいったあとに、windowsでconfig.txtに書き込んじゃえばいいです。
    デスクトップはいらないかもしれないけれど kubuntuとやらを入れてみました。

    Nodeのインストール

    デスクトップが立ち上がったら、何は無くともnodeのインストールです

    Ubuntuに最新のNode.jsを難なくインストールする 
    https://qiita.com/seibe/items/36cef7df85fe2cefa3ea

    上記の記事を参考にして、npmを使えるようにします。

    やっぱりpuppeteerが動かない・・・・

    結局動かなかったんですよ

    こちらの記事を参考にしました。

    https://power-of-tech.hatenablog.com/entry/2018/08/16/220252

    これでいけました。
    記事内ではバージョンを下げてますが、特に下げずに動いた上API不具合とやらもありませんでした。

    プログラムを動かす

    GCEで動かしてたプログラムが動かなくなっちゃったのでラズパイに移行しました。
    ちょっと身近になったので、ほかにもプログラムを作ってみようと思います。

  • Macで音声入力する方法

    Googleドライブで音声入力する方法や、iPhoneやAndroidで音声入力する方法が有名ですが、ちゃんとMacでもできます。

    環境設定からやってもいいんですがたまにはSiriを使ってあげてください。

    Siriの起動

    新しいモデルだと「Hei!Siri!」で動くやつもあるらしい。

    自分のはだめだったので右上のsiriマークから起動しましょう。

    「音声入力をオンにして」

    と話しかけてください。

    実際に使ってみる

    メモなど、文書入力をできる状態にして「fn」キーを2回押してください。


    拡張機能のインストールが行われることがあります。入力時にできる音声コマンドがあるみたいですね。面白いです。

    こんな感じのマークがでて音声を聞き取ってくれます。

    実はこの記事

    音声入力で作成して・・・いません!
    macbook proの新しいキーボードめちゃ快適!

  • Macのライブ変換がうざうざい!止める方法

    あーーーーーーいらいらするーーーー!
    ライブ変換、すごく未来な感じがするけど!
    でもいいのが出てこないし書き直す手間の方が!おおいんだ!やめてくれ!

    右上の「あ」とか「A」になってる部分の「ライブ変換」のチェックを外しましょう。
    こうしてMac使いの心の平穏は保たれたのだ。

  • woocommerceでメール文面を修正する

    メールの文面が不自然なので、修正する方法を調べてみました。

    文面を挿入したい場合はメールテンプレートを加工する

    設定のメール編集画面から行えますが、今回は文章の配置などはおそらく必要ないと判断したので触っていません。

    基本は翻訳ファイルを修正する

    メールの文面は翻訳ファイルに含まれています。
    まず、テストで受注メール等を試しに送ってみて、修正したい文面を翻訳ファイルないで検索して、該当箇所を修正するという形になります。

    翻訳ファイルの場所

    /wp-content/languages/plugins の中にあります。
    woocommerce-ja.mo
    woocommerce-ja.po
    をコピーしましょう。
    *後述しますが上書きするだけだとプラグインアップデート時に更新内容は消えます。

    .moが実際使われるファイル

    .moのほうが実際に使われているものですが、人間が読めない「バイナリファイル」になります。.poの方を編集し正しい内容にして、コンパイルしましょう。

    .poを.moに変換するソフト

    POEDIT
    https://poedit.net/

    このソフトでコンパイルができるみたいです。windowsでもmacでも使えそうです。
    あとは、ターミナルのコマンドでやる方法もあるみたいです。(今回は紹介しません)

    編集もこれ使った方が効率が良さそうです。
    よくみたら翻訳の提案してんじゃん!すご!
    .poを開いて編集しましょう。

     編集が終わったら上書き保存の上、ファイルメニューからMOにコンパイルして、どちらもアップロードしましょう。

    プラグインの付属ファイルなので、そのまま差し替えるとアップデートがあった時に消える。

    なので、アップデートの影響が及ばない所に保存します。
    アップロード場所は
    /wp-content/languages/woocommerce
    にフォルダを作ってアップロードしましょう。

    追記 : プラグインの元データ(.poと.mo)消さないと反映されないかも?
    消したら反映されました。

    この場合の欠点としては、アップデート時に増えた項目は英語になってしまうことです。
    Gitなどで言語ファイルを管理して、更新時に差分だけ適用するとかがいいんじゃないかと思ってます。(試してないですけど)

    メールの役割と自然な文面

    完了メールは発送通知みたいです・・・(わかりにくい)
    どんなタイミングでどのような役割のメールが届くのか、また自然な文面については以下の記事が役に立ちました。

    https://shimesan.com/2018/05/07/woocommerce-netshop-006/#i-2