通勤や騒音のストレス対策にノイズキャンセルイヤホンのすすめ

精神的に追い詰められている時、ちょっとした音が気に触ります。

ノイズキャンセルイヤホンを使えば騒音の大部分をカットできます。

ノイズキャンセルでどう生活が変わるのか?

仕事においては

  • オフィスで苦手なBGMが流れている
  • 大きな笑い声
  • 自分や他人のキーボードタイプ音

通勤においては

  • 電車内での大きな声での会話
  • 電車や自動車の走行音
  • 駅の変わらないアナウンス

自宅においては

  • 洗濯機の音
  • 掃除機の音
  • 食洗機の音

などなどです。毎日同じ音を聞いているとだんだんと精神が疲弊してきます。同じような音はなるべくカットして、新しい音を聴くことで精神のメンテナンスをすると良いかなと思っています。

おすすめのノイズキャンセルイヤホンはBose一択

他社メーカー試しましたが、Boseと同等のノイズキャンセルはできないので、ノイズキャンセルを種目的とするならBoseで決定です。

有線のノイズキャンセル

Bose QuietComfort 20 Acoustic Noise Cancelling headphones

有線版で安いです。

  • 寝ながら使いたい(後述の無線版は肩にかけるので寝ながら使いにくい)
  • 外であまり使うつもりがない
  • イヤホンジャックに挿して使いたい
  • 充電しながら使いたい

そんなシーンにおすすめです。

無線のノイズキャンセル

Bose QuietControl 30 wireless headphones ワイヤレスノイズキャンセリングイヤホン

こっちは無線版。

  • 通勤中などの移動中に使いたい人

におすすめです。有線版に比べて少し高いですがノイズキャンセルレベルを切り替えることができるようになっています。個人的には最大以外使ったことありません。無線は接続が悪いこともあるので、無線である必要がない場合は有線が何事においてもおすすめです。

ちなみに充電しながら使うことができないので、充電し忘れたり、使う時に充電しながら使うことを想定している場合はそれができないので要注意。たまに充電忘れて渋々電車の中で騒音に耐えることがあり、とてもつらい思いをします。

おわり

この素晴らしさを是非みんなに知ってもらいたい。

ヤマハのNS-BP200とLEPYのパワーアンプで激安なのに最高のオーディオ環境を作る

ちゃんとしたスピーカーで音楽を聴きたい!

そこでこのNS-BP200というのを買ってみました。これ単体では音楽を聴くことはできず、別途アンプが必要です。

  • テレビのスピーカーがしょぼいからイヤホンジャックで繋ぎたい
  • iPhoneやAndroidからイヤホンジャック経由でつなぎたい

そういう用途になら

このLEPYの小型パワーアンプがおすすめです。イヤホンジャックから

このステレオミニプラグケーブルでアンプに繋ぎ、アンプからスピーカーに対しては

このスピーカーコードで繋げば音がなりますよ!

1万円前後のコストにしてはとんでもない高音質で音が聴けるのでおすすめですよ。

ブログの合計記事数が1000記事を超えた!

メインのこのブログが1000記事を超えた。年間平均250記事ペース。

  • 1日2記事書けるくらい知識を増やそう!勉強しよう!
  • 同じ趣味の友達を増やそう!

と思って始めたんですが、友達もほとんどできないし、1日2記事かける時と書けない時のムラがあったりと安定しませんでしたね。ただ、困った時にあとで思い出したり、誰かの役に立つこと少しだけあったので、それは良かったかなと思います。

ここ5年くらい

  • Qiita
  • はてなブログ
  • 自作CMS
  • ライブドアブログに書いたり

と本当にいろんな事やってたんですけど、WordPressでシンプルに書いてるのが一番安定しました。

WordPressは8年前に触ったっきりで、8年ぶりに最近移行したんですけど、だいぶパフォーマンス向上したし、簡単に多くのことができるようになりましたね。またいろいろとWPについても研究再開したいなと思います。

次は2000記事を目標にしてみます。とりあえず1日2記事は無理だなーって分かってきたんで、1日1記事を目安に頑張ってみたい。そうすると次は3年後くらいに記念記事がかけそうです。

Amazon定期おトク便は必要とする80%を満たすようにして使うと勝てる

Amazon定期お得便はコントロールが難しいので使わないという人がいると思いますが、定期お得便の15%OFFの威力は圧倒的で、どこのスーパーを探してもこれより安く方方法で商品を手に入れる方法はありません。

定期おトク便でよくある苦しみ

  • 荷物が届きすぎてしまって余ってしまう
  • 荷物が届きすぎないように定期的に調整するのが面倒くさい

そんなことがあると思いますが、Amazon定期オトク便は、必要なものを必要なだけ揃えるものではなくて、電力でいうところのベース電源的な使い方をするのがおすすめです。

必要な量の80%を目指す

必要な量を100%定期おトク便で満たそうと思うと、そんなことはできず、120%とか頼まなきゃいけなくなるので、当たり前だけどものがあまるので、定期おトク便は80%を目指して注文しておく。足りない分は定期オトク便で買ったり、スーパーで購入するのがおすすすめ。

おわり

定期おとく便かなり使えるので使わない手はない。そして、定期おトク便と簡単に変換できないな。。

JavaScriptでhtml2canvasを使ってスクリーンショットを撮影しダウンロードする

html2canvasというものを使うことで簡単にスクリーンショットを撮影できるらしい。

というわけでこんな風にして試せるコードをかいてみました。こやつをデベロッパーツールに貼り付けて実行すると、ページ末尾にスクリーンショットのダウンロードボタンが設置され、ダウンロードが試せます。

(function() {

  // html2canvasを読み込む
  let script = document.createElement('script');
  script.src = "https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js";
  document.body.appendChild(script);

  // html2canvasのロードを待つ
  let loaded = function(cb) {
    if (window.html2canvas === undefined) {
      window.setTimeout(function() {
        loaded();
      }, 100);
    } else {
      cb();
    }
  };

  // html2canvasを使ってスクリーンショットを撮影しダウンロードボタンを設置する
  loaded(function() {
    html2canvas(document.body,{
      onrendered: function(canvas) {
        let a = document.createElement('a');
        a.href = canvas.toDataURL();
        a.download = "hogehoge.png";
        a.innerHTML = "Screenshot Download";
        document.body.appendChild(a);
      }
    });
  });

})();

Rustの文字列を数値にキャストする時にプリミティブではないと言われた場合

asによる型変換はプリミティブでしか行えません

fn main() {
    let string_number = "3600".to_string();
    assert_eq!(string_number as u64, 3600 as u64);
}

この結果はこうなります

error[E0605]: non-primitive cast: `std::string::String` as `u64`
 --> src/main.rs:3:16
  |
3 |     assert_eq!(string_number as u64, 3600 as u64);
  |                ^^^^^^^^^^^^^^^^^^^^
  |
  = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait

上記エラーを解決するにはparseを使えば良いです。

fn main() {
    let string_number = "3600".to_string();
    assert_eq!(string_number.parse::<u64>().unwrap(), 3600 as u64);
}

参考

https://qiita.com/smicle/items/29a4d5d1d14ad7f77f60

Rustの疑問符演算子の使い方

try!マクロとほぼ同等の機能を持っている。そこから察して下記の機能がある。

  • Result型を返すスコープ内で使える
    • Errではなければunwrap()と同等の結果を返す
    • Errであるとreturn Err()の挙動をする
  • Fromを実装することでオリジナルエラーから独自エラーへの変換が可能

?を使わない場合

欲するのはErrorだが、処理の中でreturnされるErr()になっているので、map_errを返して手動でErrorに変換している。

#[derive(Debug, PartialEq, Clone)]
enum Error {
    Example
}

fn main() {
    let test = (|| -> Result<(), Error> {
        Err(()).map_err(|_| Error::Example)
    })();

    assert_eq!(Err(Error::Example), test);
}

?を使う場合

Fromを実装することで?を書くだけで、上記と同じ結果を返している。コード量が増えているように見えるが、同等の記述が必要なところが複数現れたときに、すぐに上記の方がコード量が多くなることが想像できる。

#[derive(Debug, PartialEq, Clone)]
enum Error {
    Example
}

impl From<()> for Error {
    fn from(_: ()) -> Self {
        Error::Example
    }
}

fn main() {
    let test = (|| -> Result<(), Error> {
        Err(())?
    })();

    assert_eq!(Err(Error::Example), test);
}

参考