xshoji's blog

Exploring tech and sharing personal insights

xshojiが気になるトピックをまとめるブログ

Backend Engineer Tokyo, Japan Tech & Insights
6 min read

Webページをスマホ向けのデザインに最適化する Bookmarklet

普段 iPhone を使っていて、Safari でブログをよく読むのですが、スマホ向けに最適化されていないページがまだ多く、見にくいと感じることがよくあります。 Safari には「リーダー表示」という機能があり、記事本文だけを抽出して見やすく表示できますが

iPhoneのSafariで記事を読んでいるときに気をそらすものを非表示にする - Apple サポート (日本)
https://support.apple.com/ja-jp/guide/iphone/iphdc30e3b86/ios

リーダー表示に対応していないページもあります。また、リーダー表示にしても、コードブロックや文中の変数のスタイルがわかりにくく、痒いところに手が届かないと感じることがあります。

そうした悩みがあり、スマホ向けに最適化されていないページを見やすくする Bookmarklet(ブックマークレット)を作成しました。 今回は作成した Bookmarklet の紹介と使い方を説明します。

#bookmarklet #mobile #css #javascript
3 min read

VSCode: ショートカットキーのみでAIに指示を送る方法

VSCodeで、AIに送る指示をテンプレートにしてショートカットに設定する方法を紹介します。 この方法を活用すると、文章やコードを選択してショートカットキーを押すだけで…

  • AIに英訳を生成させられる
  • メソッド単位のリファクタリングを行わる
  • 簡単なコードレビューを依頼できる

といったことが可能になります。最近は、プロンプトのmarkdownファイルを所定の場所に設置し、Chatからコマンドで呼び出す方式が一般的だと思いますが、ここで紹介するのはそれよりもさらにお手軽な使い方ができる方法となります。

この後の説明では

ショートカットキーのみでAIへ英訳の指示を出す設定

を例として設定方法を紹介していきます。また、AIは Github copilot を使います。

#vscode #chat #ai #shortcut
3 min read

Goのバイナリにソースコードをそのまま同梱するという提案

はじめに

業務でGoのスクリプトを書いて、バイナリをチームに配ることがよくあります。 Goでコンパイル済みのバイナリを配るメリットとしては

  • 実行環境に依存せずどこでも実行できる

という点かなーと思います。 ただ、デメリットもあって、それは実行するバイナリがどのソースコードから生成されたものか分かりづらいという点です。

#golang #source #proposal
15 min read

単体テスト ベストプラクティス集

Modern Best Practices for Testing in Java
https://phauer.com/2019/modern-best-practices-testing-java/

テスト時に何気なく気をつけている事が根拠とともに具体的に示されていて、 自分自身がテストする時はもちろん、コードレビュー時でも注意・指摘したい内容がまとめられています。

タイトルには「Java」と書かれていますが、プラクティスとしては言語に依存しない内容がほとんどなので、 特定の言語に限らない有益なプラクティスだと思いました。

それでは、それぞれの中身をまとめていきます。

#java #unit test
16 min read

Hugo + GitHub Pagesで作る無料ブログサイト構築(2020年版)

Hugo + GitHub Pagesでこのブログを運用していて、以下の要件を目指しました。

  1. お金をかけないこと
  2. Markdownで記事を書けること
  3. ブログの静的データのみ公開し、元ネタは公開しないこと
  4. 記事の更新/反映が自動化されていること

似たような要件でブログを作ってみたい人に向けて、構築の流れを紹介したいと思います。 初心者向けに細かく説明しているので若干長いと思います。

以下にリンク付き目次を載せておくので、 興味があるトピックだけつまみ食いしてもらう読み方のほうが良いかもしれません。

#hugo #blog #GitHub Pages #github action
3 min read

スマホにおける広告の新しいターゲティング手法について

Companies can track your phone’s movements to target ads | Ars Technica
https://arstechnica.com/information-technology/2020/09/companies-can-track-your-phones-movements-to-target-ads/

が元の記事。

広告業界では、トラッキング方法の話題が結構熱くて、最近iOS14で適用される(※2021/9に延期になった)ユーザーのトラッキング機能のデフォルトオプトアウト (ユーザーに「あなたのこと追跡するけど、いいよね?」(はい/いいえ)みたいな許可を明示的に得ないと、デフォルトでトラッキングができなくなる)や、 Google Chromeのトラッキング用のクッキーの段階的な廃止など、個人のプロファイルに基づくトラッキングができなくなってきています。

#ads #targeting #smartphone #sensor
3 min read

SQLインジェクションフィルタを回避するためのアプローチ

Astrocamel - Blog/Portfolio of George Skouroupathis
https://www.astrocamel.com/web/2020/09/04/how-i-bypassed-cloudflares-sql-injection-filter.html

が元の記事で、さらっとまとめると

Cloudflareを使ってるサイトの脆弱性試験しようとしたら、そもそもサイトまでリクエストが届いてないことが判明
CloudflareのWAFで弾かれてるっぽいから、SQLのリクエスト難読化したら無事突破できたよ

って話です。この機能を回避するアプローチが面白かった。 ここでいう「難読化(obfuscation)」っていうのは、 SQLの意味はそのままに、Cloudflareのフィルタをパスできるクエリの加工のことのようです。 (CDNのレイヤで、リクエストの中身まで見て攻撃を防ぐみたいなことしてるの知らなかった・・・。)

#cdn #security #sql injection