Corredor

ウェブ、プログラミングの勉強メモ。

JavaScript の sort() 関数をお勉強 : 複数のプロパティを見てソートする方法

JavaScript の Array.prototype.sort() を使って、連想配列の複数のプロパティを見てソートする方法を勉強した。 対象データ sort() 関数の比較ロジックは自作できる まずは製品名だけでソートする 複数の項目を見てソートするには? 以上 対象データ 対象と…

Xcode で iOS アプリに関する警告が出ているので見てみる

iPhone 向けのアプリを作っていて、Xcode v10.1 でアイコンを設定して、iPhone では上手く表示されていたものの、Xcode 上に以下の2つの警告が出ていた。 A 76x76@2x app icon is required for iPad apps targeting iOS 7.0 and later A 83.5x83.5@2x app ic…

PowerShell でファイルの作成日時・更新日時を任意の日時に変更する (指定ディレクトリ配下のファイルに一括適用する方法も)

前回、MacOS において、setfile と touch コマンドを使ってファイル作成日時と更新日時を任意の日時に書き換える技を紹介した。 同様に、Windows でファイルの作成日時・更新日時を任意の日時に変更するには、PowerShell を使うのが楽。 基本的な使い方:1つ…

カレントディレクトリ配下のファイルの作成日と更新日を指定の日時に一括変更する Mac 専用シェルスクリプト

ニホンノエスイーの皆さん用。 カレントディレクトリ配下にあるファイルの、作成日時と更新日時を、それぞれ任意の日時に変更できるシェルスクリプトを作った。date コマンドのオプションの書式や、setfile コマンドを使用したりしていることから、Mac 専用…

Node.js で selenium-webdriver と chromedriver を使って Chrome ブラウザを自動操作してみる

Angular に組み込まれている、Protractor という E2E テストツールを通じて、Selenium Webdriver を少し触ってきていた。今回はテストツールとしてではなく、ウェブスクレイピングを行うための手段として、Selenium Webdriver と、Chrome を操作するための C…

複数の Git ブランチを一括で削除するシェル関数

以前からなんとかならないかなーと思っていた、複数のローカルブランチを一気に消すコマンドを作った。いつ使うかというと、主に feat/ で始まるローカルブランチを一気に消したい時とか。 ほとんど以下のコードを参考にした。 参考:shellutils/git-rmbranc…

久々に書いてみたら忘れていた Excel VBA のイディオム集

久々に書いたら思い出せなくなっていた Excel VBA のイディオムをまとめておく。 配列の生成と push() 配列の .length を知る ある文字列が、指定の文字列を含んでいるかどうか ループの書き方 デバッグ出力したい 配列の生成と push() JavaScript でいうと…

Neo's Normalize で指定するフォントを見直して v1.0.11 をリリースした

少し前に、Chrome ブラウザで @font-face による游ゴシック Medium 指定が効かなくなっていたことに気付き、色々調査した記事を書いた。 neos21.hatenablog.com この調査を通じて、Neo's Normalize のフォント指定を見直したので、その内容を紹介する。 コレ…

撮影した動画ファイルを iOS アプリ内に保存し、任意のタイミングでフォトライブラリに書き出す Swift コード

以前、スーパースロー動画を撮るための Swift コードを紹介した。 neos21.hatenablog.com この時は AVCaptureSession#startRunning() までで、実際の動画の撮影については触れていなかった。そこで今回は、このコードを利用した動画撮影のコードを掲載してお…

MacOS で設定する defaults コマンドをまとめてみた

これまでどこかで適当に調べては適当に実行していた defaults コマンドだが、この度一つのシェルスクリプトにまとめてみたので、それを紹介する。 Dotfiles/MacOS.sh at master · Neos21/Dotfiles · GitHub 現時点での内容は以下のとおり。 #!/bin/bash # ==…

このファイルに変更を入れたのはいつ?誰?を知るための git log コマンド

Git

ファイル単位でコミット履歴を追いたい時に。 git log コマンドの後ろにファイルパスを書いてやれば、それだけでファイルやディレクトリ単位での絞り込みができる。 $ git log './src/index.html' -p オプションを渡すと、コードの差分も表示される。 $ git …

Columnify を使って Node.js スクリプトのコンソール出力をテーブルっぽく整形する

Node.js スクリプトでコンソール出力を整形する際、最も手軽なのは console.table() だろう。 $ node -e "console.table([ { id: 1, name: 'testA' }, { id: 2, name: 'testB' } ]);" ┌─────────┬────┬─────────┐ │ (index) │ id │ name │ ├─────────┼────┼─…

Xcode で Storyboard を使っていたら出てきた Auto Layout 警告の直し方

Xcode で Storyboard を使っていたら、以下のような警告が出てきた。 Views without any layout constraints may clip their content or overlap other views. エラー文言でググったけどイマイチ分からない。でも何やらとりあえず Auto Layout、自動的に配置…

MacOS Finder で開いているディレクトリにターミナル上で移動する Bash 関数

MacOS のターミナルで、カレントディレクトリを Finder で開きたい時は、$ open . と叩けば良い。 その逆で、「Finder で開いているディレクトリに、ターミナル上で移動したい」時のコマンドを用意する。 Finder 上からそのディレクトリのターミナルを開く際…

複数行のテキストを CSS だけで省略表示する -webkit-line-clamp を試してみた

Webkit 系 (Chrome や Safari) でのみしか使えない CSS プロパティだが、-webkit-line-clamp というプロパティを使うと、複数行に折り返されたテキストでも省略表示ができることが分かったので、使ってみた。 text-overflow: ellipsis は1行テキストにしか対…

ウェブサイトに適用する游ゴシックフォントを見直しまくった最終解

拙作のノーマライズ CSS ライブラリ、「Neo's Normalize」を見直していたところ、Windows の Chrome ブラウザで適用されている游ゴシックフォントがかすれていた。 「あれ?@font-face で游ゴシック Medium を指定してるのにな?」と思い、設定を見直したと…

iOS アプリにバッジを付与する Swift コード

iOS アプリにバッジを付与する。よくあるネタなのだが、iOS や Swift の進化により、ググっても情報の鮮度が様々で分かりづらかったので、本稿執筆時点でのやり方を紹介する。 検証環境 いきなりコード 参考文献 検証環境 macOS Mojave Xcode v10.1 Swift v4…

iOS アプリのプロビジョニングプロファイルの有効期限をアプリ内で取得・表示する Swift コード

無料の Apple Developers Program アカウントを使っている場合、iOS にインストールした開発用アプリの有効期限は7日間で切れてしまう。 neos21.hatenablog.com この有効期限までの残日数を、アプリ内で取得・表示させられないか調べてみた。 検証環境 macOS…

npm のグローバルインストールに失敗したら

macOS Mojave 環境にて。この前久々に npm パッケージをグローバルインストールしようとしたら、以下のようなエラーが出た。 $ npm install -g @neos21/neos21 npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules npm ERR! pat…

Node.js スクリプトをコマンドのように使えるようにする方法

2019年、あけましておめでとうございます。今年も宜しくお願い致します。 今日は、Node.js で書いたちょっとしたスクリプトを、コマンドとして使えるようにする手順をまとめる。大きく2種類のやり方があるのでそれぞれ紹介する。 試した環境は macOS Mojave…

Windows GitBash のプロンプト表示が遅いのをなんとかしたかった

Windows GitBash のプロンプト表示がやたらと遅い。何のコマンドも打たずに Enter を押しただけでも、何か表示がつっかえる。 何が原因かと思って調べてみたところ、どうも GitBash デフォルトのプロンプト内に設定されている __git_ps1 という関数が遅いよ…

Mac に Homebrew で tmux を入れてみた

tmux という、1つのターミナルウィンドウ内に複数のターミナルを分割して配置できるツールを入れてみた。こういうのを「ターミナルマルチプレクサ」と呼ぶらしい。 インストールは Homebrew でサクッと。 $ brew install tmux で、ターミナル上で $ tmux と…

iOS アプリの名前は動的に変えられないが、アイコンは動的に変えられる

iOS

iOS アプリの、ホーム画面に表示されているアプリ名を動的に変更できないかな?と調べていた。通知に合わせて文言を変えたり、ホーム画面をメモ的に使えるようになるかな?とか考えて調べたのだが、どうもアプリ名はビルド後に動的に変更する術はないみたい…

世間の font-family 設定を軽く調べた

normalize.css にはバグフィックス以外の font-family 設定がない。フォントも「味付け」の一つと考え、「ノーマライズ」CSS としては何も適用していないのだろう。 しかし、現実的には、serif ではなく sans-serif 系のシステムデフォルトフォントを使わせ…

シェルスクリプトに関する雑多な学習メモ

一つひとつを記事にするほどでもない雑多な学習メモたち。 Shebang は #!/bin/bash にしよう 命名規則 シェルスクリプトの関数 関数の戻り値が欲しい時 ローカル変数を宣言するには local を付与して宣言する 関数の引数 他ファイルに書いた変数や関数を利用…

インストールなし・Web ブラウザだけでリモートデスクトップ接続するには TeamViewer Web Connector が良かった

「Chrome リモートデスクトップ」は優秀で、Chrome ブラウザから拡張機能としてちょっとインストールするだけで、Windows も Mac も相互にリモートデスクトップが可能になるし、iPhone からのアクセスも容易だ。 しかし、接続される側はまだしも、接続しにい…

Windows の VSCode で GitBash ターミナルを開いた時に .bash_profile が読み込まれない

最近 VSCode のターミナルを開くと、Windows GitBash ターミナルの起動時に ~/.bash_profile が読み込まれず、~/.bashrc だけが読み込まれる状態になっていた。 調べてみると、Bash を「ログインシェル」として開くようオプション引数を設定しないといけない…

2019年以降はコレで決まり!Web サイトで指定するゴシック体・明朝体・等幅の font-family 設定 (2018年版から少しアップデートしたョ!)

去年書いた記事のアップデート版。 neos21.hatenablog.com 拙作の @neos21/neos-normalize はバージョン 1.0.7 になり、チマチマとオレオレパーフェクト設定に向けた調整をしてきた。 その調査結果をまとめ、2019年以降はこんな font-family 指定で決まりだ…

サイトに CSS・JS が効いていない時にミラーの CSS・JS ファイルを読み込んでフォールバックさせるスクリプトを作った

このブログ Corredor で、iPhone から閲覧している場合に時々発生していたのだが、ブログの CSS・JS ファイルが読み込めずにレイアウトが崩れていることがあった。 このブログの CSS と JS ファイルは、GitHub Pages でホスティングしているモノを「はてなブ…

iOS Safari でダブルタップによるズームを防ぐには touch-action: manipulation が一番簡単

iOS Safari で見せる Web サイトをネイティブアプリ風に見せるための演出の一つとして、「適当なところでダブルタップした時にズームしない」ことを実現したい。 Twitter や Instagram を iOS Safari で見るとそのような動きが実現されているので、何かやり…