こんにちは!
あるアプリケーションを入れたときに “[システム設定]->[プライバシーとセキュリティ]ペインで、◯◯システム拡張を許可してください” と出たのですがシステムのプライバシーとセキュリティ部分になかったのでどこだろうと探すのに結構時間がかかってしまったので同じように困っているみなさんがいれば助けになるかと思い場所を残しておきます。 Continue reading macOS Sequoiaで「システム拡張を許可してください」と言われたけど場所がわからなかった😭

Read more

OGPに空文字を設定しようとしたところ、 og:description が必須項目だったので単純な空文字だとバリデーションエラーが出てどうしようかと悩んだのでメモ。

解決法としてはシンプルで、スペースを示す特殊文字を設定してあげると見た目上は何も入力されていないように見えます。

<meta property="og:description" content=" " />

参照元: https://stackoverflow.com/questions/33593267/how-to-set-facebook-ogdescription-empty

Read more

こんにちは! そろそろ2023年も終わりますね。 今年のものは今年のうちに。色々整理する時期かと思います。 自分も今年1年色々なことがあったなと振り返りながら、以前からリストが膨れ上がっていて整理しなきゃなと思いつつ放置していたAmazonの「ほしいものリスト」を整理することにしました。

その結果色々思うことや他のことにも転用出来そうじゃない?と思うことがたくさんあったのでまとめておこうと思います。

自分のほしいものリストの使い方

自分は今までAmazonのほしいものリストを使って文字通りではあるのですが将来買いたいものや買うべきものをリスト化していました。 友人などと話していておすすめの本などはすぐ買うようにしているのでほしいものリストには入れないのですがそれでも本や見たい映像のDVD、いつか読みたい技術書とか全巻大人買いしてガバっと読みたい漫画などがリストの中にたまっていました。 このようなことを何年もしていたので自分のほしいものリストの中は80件程度のリストになってしまっていました。

よく見てみるとそのリストの中には昔は欲しかったけど今はあまりいらないかもと思うようなものや”いつか”お金に余裕がありそうなときに買いたいなぁと思うものがたくさん含まれていました。

このリストを年末のこのタイミングを使って整理してみることにしました。

リストを整理するための基本戦略

長年の運用によって長くなってしまったほしいものリストを整理するために大まかに以下2つの戦略でリストを削減していくことにしました。

  • リストの中で買えるものは思い切って買ってリストから削除
  • 昔欲しかったものはこの機会に勇気を持って削除する。本当に欲しい物だったら後々レコメンドとかに出てきてリスト化するやろうの精神

例えば思い切って買ったものは自分の現在の仕事に関係ありそうなものや将来読みたいと思うものでした。自分のリストの中にはKindleで読むことができる電子書籍が多く入っていたのでその中のものの多くは購入して積読にしました。 逆にリストの中から削除したものは例えばコンピュータサイエンスの基礎本や映像が見たいと思ってリストにいれていたDVDなどは思い切って削除しました。コンピュータサイエンスの基礎本はまたそれを勉強しようと思ったときに出て来やすいので削除しても問題ないと思いましたし、DVDなどは時期が過ぎてしまって今は既に見たいかどうかわからなくなっていたので思い切って消しました。

このように2つの基本戦略にしたがって2〜3週間くらいかけてリストを削除していった結果、80件程度あったリストが今では2件まで削減することが出来ました!

ほしいものリストを整理してよかったこと

Amazonのほしいものリストを整理することで色々とよかったなと思うことがあったのであげていきます。 まず「ほしいものリスト」の名のとおり、自分の本当にほしいものがまとまっているリストになりました。これによってリストをたくさんスクロールしなくても自分が欲しいものがなにか一目でわかるようになったので便利になりました。 次に気持ちの面なのですが、自分の本当に欲しい物がわかったことで漠然と欲しい物を買うためにたくさんのお金を稼ぐ必要があるという気持ちが減って楽になりました。自分でも自覚していたかどうか微妙な気持ちを拾うことが出来てよかったです。

他のことにも転用出来そう

今回ほしいものリストを整理することで自分の中で良いなと思うことが上にあげたようにあったのですが、よくよく考えてみるとこれはほしいものリストだけではなく他のものにも転用して同じようなよいことが起きそうだと思いました。 例えば長く整理していない連絡帳とかTo-doリスト、クレカのサブスクとか整理してみるとよいかと思いました。 またその他にもスマホに入っているアプリの中から使用頻度の低いアプリを思い切って消すとか写真や動画を整理してみるとかしてみるのもよいかもしれません。 年末のこの時期に不要なものを手放し、新しい年を迎えるにあたってリストを軽くすることで気持ちよく本当に必要なものにフォーカス出来ると思います。 これを機会に整理してみると僕と同じように何かスッキリとした気持ちになれることでしょう。

Read more

こんにちは! 今回はaws cliで手元のPCに設定されているprofile一覧を表示する方法を紹介します。 AWSで開発を行っていると複数のprofileを切り替えて環境構築することがあるのですが自分がどのprofileを設定したのかわからなくなる場合があります。 そのようなときにprofile一覧を表示することが出来れば間違えることなく自信を持って打つことが出来ます。

profile一覧を表示するコマンド

こちらのドキュメントに答えが書いてありました!

$ aws configure list-profiles

このように実行すると現在手元に設定してある有効なAWSのプロフィール一覧が表示されます!

profileを削除する方法

それではprofileを削除するためにはどうしたらよいでしょうか? この場合は手動で消していくしかありません。 以下の2箇所に情報が書いてあるのでそれを消していきます。

~/.aws/config
~/.aws/credentials

それぞれ以下のように書いてある部分を消していきます。

[hogehoge]
xxx=xxx

削除し終わったら上で紹介した aws configure list-profiles を実行してみてprofileが削除されているか確認しておきましょう。

参考

Read more

こんにちは!

2023年10月27日(金)28日(土)にKaigi on RailsというRailsのカンファレンスが行われました。
公式ホームページはここ当日の内容を動画で見るにはここで確認出来ます。
中身はとても濃く、知らなかったことや他社さんの事例などをたくさん吸収出来てとても有意義な時間だったと感じました。

今回は久しぶりに参加したオフラインイベントだったのですが、イベントが終わって少し経ってから改めてではありますがやっぱりリアルイベントって大切だなぁと思ったので書いていきます。

僕たちはオンラインで仕事が出来る

改めて考えてみるとコロナ以前はオンラインで仕事は出来るけれどもあまり積極的にやらない、むしろ出社が出来る距離に住んでいるのであれば出社するのが当たり前というのが僕が思うコロナ前の世界だった。
それでもエンジニアの人たちは肌感覚としてはフルリモートで仕事出来るだろうなぁってなんとなく思っていたし、世界的にはエンジニアはGitHubなどを通じてフルリモートで仕事している話を聞いていたのでいいなぁと思いながら日本ではなかなか進まないだろうなぁとか思っていたと思う。

実際GitHubとかは創業当初からフルリモートだったし今でもこんな記事が見つかる。フルリモートって働き方が出来始めた時期だったのかな、と今だと思う。この記事は2016年のものらしいのでこういう潮流が出来ていた時期なのだと思う。

「リモートワークは手段でしかない」GitHubが作りだす“幸せの最適化” – ログミー

それがコロナ禍になったときにそのくすぶっていたフルリモートの流れが一気に来た。小さいチームのほうがフルリモートに移行するのはあっという間だったし大企業でもフルリモートの流れが来た。
今まではエンジニアはリモートで仕事が出来てもそれ以外の人たちは仕事出来ないよねっていう雰囲気だったのがリモートで仕事をしなければいけない環境になり一気にリモート化が進んだ。会社もリモート化しなければならないのでシステムを準備した。
こんな状況になってわかったこととしては今までオフィスに行かなくてもこの仕事出来るよなーとなんとなく思っていたことが、オフィスに行かなくても仕事が出来る!ということが確定したことだ。

いまやリモートが当たり前になっている。

最近知った面白いこととして、高年収帯のエンジニアほどフルリモートの割合が増えるらしい、ということだ。
確かにスキルがしっかりあるエンジニアであれば色々なところから仕事が来るだろうからフルリモートで受ける、というのが合理的だと思う。

Findy 年収別リモートワークの現況
画像引用:Findy

僕たちはオンラインで人間関係が作れる

コロナ禍になっていったいどうなることやら、と思っていたがみんなオンラインを駆使してうまく生きていたと思う。
コロナ禍でもスムーズとはいわないけどうまくやっていた。仕事でミーティングが必要なときはオンラインミーティングで対処した。実際それで仕事はまわっていったしそれが普通のようになっていた。
オンライン婚活も開発されたし今までの友達とはオンライン飲み会が開催された。外食していた部分はUber Eatsなどに置き換わったしNetflixやAmazonなど様々な娯楽もオンラインに移行していった。勉強会やもくもく会も同様にオンライン化し、それはそれで盛り上がっていたと思う。

新しい人間関係を作ることも既存の友達との人間関係を強化するのもオンラインで行うことが出来た。僕たちはオンラインで人間関係が作れることにも気づいたのだ。

それでもリアルで会いたくなる

そんな時期を数年過ごしたあとやっとコロナ禍も終わりを迎えつつあり、色々なものがオンラインではなくオフラインに戻ってきた。
仕事もオフィス回帰の流れがあるしミーティングもリモートも交えながらリアルな場が増えてきた。居酒屋は繁盛してそうだし映画館にも行けるようになった。
そうなってくると感じるのはやっぱりリアルで出会うことの価値だ。ソースがどこだったかわからない、適当な知識として聞いて欲しいけどリアルで人が出会ったときに相手から受け取る様々な情報をデータ化すると1秒間に6GB程度らしい 。リモートにしてしまうとせいぜい1分で数MB程度だろう。受け取る情報量がまだまだ違いすぎる。それだけ情報量が違うと相手への印象も全く違うだろうしリモートだと思わなかったけどリアルで出会うと思うことがあるかもしれない。

今回参加したKaigi on Railsもそうだ。受け取る情報は発表者のスライドと声がメインになるのでオンラインでもオフラインでも結果は変わらない気がするがやっぱりオフラインで見るとなにかが違う。自分の中に吸収される感じも違う気がする。
懇親会はもっと違う。人見知りをかましながら勇気を出して話しかけてみて楽しかったときはなんとも言えない気持ちになる。オンラインだとなかなか懇親会って難しかった。懇親会こそオフラインじゃないとまだ難しいなと思うことの1つでもある。
#毎週RubyRailsというもくもく会を毎週火曜日の19時から開催しているがオンラインで会った人とオフラインで初めて会えたのも感動的だった。やっぱりオフラインっていいなって思った。

そんな感じでつらつらと書いてきたが何が言いたいかっていうと人はリアルな繋がりも大切だよねっていうありきたりなことが言いたかった。自分は家が好きであまり外に出るタイプではないけど定期的にカンファレンスとか勉強会とかオフラインのものに参加しなきゃいけないなって思った。

そんな感じでKaigi on Railsは久しぶりに行ったいいカンファレンスだったよって話。もしまだ行ったことない人はとりあえず小さなコミュニティでもカンファレンスからでもいいから行ってみると楽しいかもしれないし何か得るものがあるかもしれないよと思う。

Read more

こんにちは!

WordPressでブログを始めようとしたときにSNSのシェアボタンを導入しようと思ったのですが、TwitterやFacebookはもちろんはてブも含めて考えるとあまり選択肢がありませんでした。
その中でもはてなにも対応していて便利そうな『AddToAny Share Buttons』を紹介します。

simple_social_buttons

このプラグインを選んだ理由

WordPressのプラグインでソーシャルボタンを追加するものは複数あります。
ただ僕がほしかったはてブのシェアボタンを追加出来るプラグインは少数だった気がします。
以前であればSocial Bookmarking Liteがあったのでそちらでよかったのですが、現在は開発が停止されておりPHP7以上だとうまく動かないです。
そのため新しいプラグインを探す必要があったのですが、その中でも良さそうだったのがAddToAny Share Buttonsです。

プラグインの良さそうなところ

まずはてブが入っているところがよいところです。
対応言語としては基本的に英語なのですがアイコン表示がデフォルトなのであまり言語が気になりません。

また以下の画像を見ればわかるとおり本当にたくさんのシェアボタンを追加することが出来ます。

z_simple_share_buttons_buttons

この中のボタンを自由に選択して配置出来るのがこのプラグインのよいとこです。
また自分のブログでは行っていないですがページ中に常に表示させるような設定もあるのでものによってはとても便利なものになるかと思います。

あとはカスタマイズなどもある程度自由に出来るので自分でHTMLやCSSなどが書ける人はこのプラグインを使うのもよいでしょう。

プラグインのちょっと気になるところ

このプラグインの気になるところなのですが、シェアボタンを押すと一度 addtoany.com にリンクしたあとにredirectされてシェア画面に到達します。
これは公式の見解によるとシェアボタンの変更に容易に対応するため、とのことです。
情報の取り扱いなどについてはaddtoanyの公式の見解が出ているので気になる方はそこを一度読んだあとに納得出来れば使用すればよいかと思います。
個人的には僕の用途だとただのブログ記事なのでそこまで問題じゃないし何かSNS側で変更があってもサーバー側で適切に変更してもらえるのであれば利便性があるのでよいかなと思いました。
ここらへんはプラグインを選ぶときは常にそうですがどのようにデータが扱われているかは多少なりとも意識する必要があるかと思います。

最後に

ひとまずははてブがあるということでこのプラグインを採用しましたが他に良さそうなものがあればそちらに乗り換える可能性は高いです。
ただ今のところ利便性が高く、運営の対応なども誠実ではないかと思えるので便利に利用し続けたいと思います。
もしほかに便利そうなものがあればぜひ教えてください。

Read more

こんにちは。

Rubyで事前に準備したテンプレートのプレースホルダーに沿って文字列を展開することもあるかと思います。
そのようなときにRubyの Kernel.%メソッドを使用するといい感じに展開出来ます。
C言語のsprintfのように展開できて便利です。

例えば以下のようにするとプレースホルダーを入れたところに文字列が展開されます。

s = '%s World!'
s % 'Hello'
# => "Hello World!"

複数のプレースホルダーを入力した場合は後ろに配列を置くことで順番にプレースホルダーに入り展開されます。

s = '%s and %s are %f yen'
s % ['apple', 'grape', 500]
# => "apple and grape are 500.000000 yen"

値にハッシュを渡すことでプレースホルダーに名前をつけておくことが出来るようになります。
その場合はプレースホルダーを%<>で囲うか%{}で囲えます。
%<> の場合は後ろにフォーマットを指定します。

s = 'Your name is %&lt;first_name&gt;s %&lt;last_name&gt;s, %&lt;year&gt;d years-old'
s % { first_name: 'Taro', last_name: 'Tanaka', year: 20 }
# =&gt; &quot;Your name is Taro Tanaka, 20 years-old&quot;

%{}の場合はフォーマットを指定する必要はありません。そのかわりRubyのフォーマットがそのまま出力値に影響を与えます。

s = 'Your name is %{first_name} %{last_name}, %{year} years-old'
s % { first_name: 'Taro', last_name: 'Tanaka', year: 20 }
# => "Your name is Taro Tanaka, 20 years-old"

結構便利なメソッドなので覚えておいて損はないなと思いました!
フォーマットなどはsprintfのメソッドに沿うので必要であればドキュメントを見てください。

Read more

こんにちは!

普段の文書作成やこのブログもそうですが開発者などはHTMLを使うことが多いはずです。
そんな中Markdownの中にHTMLを埋め込もうとするとそのHTML自体が描画されてしまって、特殊文字を変換する必要があると思います。

そんなときに今回紹介するウェブサイトを使うと簡単に特殊文字への変換が出来てMarkdownに埋め込むことが出来るのでとても便利です。
また特殊文字からHTMLへの変換も可能なので何かの事情でもとに戻したい場合も便利です。

HTML⇔特殊文字の変換サイトの紹介

今回紹介させていただくのはBlogger Laboさんで作成された『HTML⇔特殊文字変換ツール』です。

使い方はとても簡単で埋め込みたいHTMLをコピー&ペーストして『変換開始』を押すと下のほうに変換内容が表示されます。あとはその内容をMarkdown文章にコピペすれば完了です!楽!

例えば以下のようなHTMLを埋め込むとしましょう。

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;ja&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Sample&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Hello, World!&lt;/h1&gt;
  &lt;p&gt;こんにちは、世界!&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;

これをHTML⇔特殊文字変換ツールのページに貼り付けて変換すると以下の画像のように特殊文字に変換されます!

markdown_to_special_characters_result

あとはこれをコピーしてMarkdownに貼り付ければ文章内にHTMLを貼り付けることが可能になります!

最後に

これでMarkdownにHTMLを簡単に貼り付けることが出来るようになりました。
今回のことをやろうと思ったときに色々検索してみたりしたのですが、今回紹介させていただいたウェブサイトのツールが一番直感的でわかりやすく、さくっと出来るところがお気に入りでした。

もし他に便利なツールなどがあれば教えていただけると助かります。

Read more

こんにちは。

WordPressを長く使っていると今はもう使っていないカテゴリーが一覧に出てしまって膨大なカテゴリーがページに出てしまうことがあるかと思います。
私も長く運用してしまった結果もう使わなくなってしまったカテゴリーや、すでに情報が古くなっているカテゴリーなどがあるためカテゴリーを削除するのではなく一時的に非表示にしたいと思いました。
そのようなときにfunctions.phpに貼り付けるだけで実現可能な便利なコードを紹介いたします。また WPCodeというWordPressプラグインを使用するとテーマの functions.php を汚すことなく特定のカテゴリーのみを非表示にすることが出来ます。テーマの更新などにも強くなるためこちらの方法でも良いと思います。
それでは早速紹介していきます。

functions.phpを使用する方法

それでは早速コードを紹介していきます。
以下はウィジェットに表示したカテゴリーを非表示にする方法です。事前にカテゴリーIDを取得しておく必要があります。

add_filter( 'widget_categories_args', 'widget_categories_args_filter' );

function widget_categories_args_filter( $cat_args ) {
    $exclude_arr = array( 2, 3 ); // ここにカテゴリーIDを入力する

    if( isset( $cat_args['exclude'] ) && !empty( $cat_args['exclude'] ) )
        $exclude_arr = array_unique( array_merge( explode( ',', $cat_args['exclude'] ), $exclude_arr ) );
    $cat_args['exclude'] = implode( ',', $exclude_arr );
    return $cat_args;
}

WPCodeを使用する方法

それでは次にWPCodeを使うパターンを紹介します。
新しいスニペットを追加して上で紹介したコードを挿入するのでWordPressの管理画面から『+ Add Snippet』をクリックしましょう。

次の画面で新しいスニペットを追加するので「Add Your Custom Code」と書かれている部分の『Use snippet』をクリックしましょう。

use_snippet

そうすると以下のような画面が出てくるので下の画像の赤枠部分を変更していきましょう。
まず、「Save Snippet」の横にあるトグルを青色に変更しておきましょう。これはこのスニペットを有効にするかどうかの設定で青色にしておかないと有効にならないのでまずは有効にしておきましょう。
その後は下のほうにタイトルを入力しましょう。今回は特定のカテゴリーを非表示にするスニペットを追加するので『特定のカテゴリーを非表示にする』と入力しています。他に希望のタイトルがあればそれを入力しましょう。
これから入力するコードはPHPなのでCode TypeはPHP Snippetにしましょう。
Code TypeをPHPにしたら下のほうのコードに上のコードを入力します。

custom_snippet1

その後は下にスクロールして、LocationをRun Everywhereにしましょう。全ページで実行したいためこの設定にしています。
ここまで設定出来たらSave Snippetをクリックして保存しましょう。

custom_snippet2

これで特定のカテゴリーを非表示にすることが出来ました!

終わりに

上記の設定をすることでウィジェットの特定のカテゴリーを非表示にすることが出来るようになりました。
functions.phpに追記する方法とWPCodeを使って行う方法の2種類を紹介いたしました。
特にWPCodeを使用した方法は今回以外のコードを任意の場所で実行させるためにも便利なプラグインなため、もし他にこんな方法で利用しているよ、みたいなのがあれば教えていただければ幸いです。

Read more

ここ最近Railsを触っていて一番の衝撃といってもいいかもしれない。 知識のアップデートを怠ってはいけない。悲しい。

ブログ記事や色々なところで add_column にオプションとして index: true を貼っているものを見るのですが、あれ実はindexが効いていないそうなのです(衝撃)

add_column ignores index: true

こちらのプルリクで無効なオプションが渡されたらWARNINGエラーが出るように修正されたものがmasterブランチにmergeされているので次バージョンにのるのか近いうちにリリースされそうですね。

Continue reading Rails migrationでadd_columnのオプションにindex: trueをしても効かないから気をつけよう

Read more