Objective-cで指定した位置から配列を切り出すsubarrayWithRange

Objective-cで指定した位置から配列を切り出す、例えば0〜3まである配列で先頭の3つだけの配列がほしい時に使えます。

コードは以下の通り

ちなみにNSMakeRangeでは配列にない範囲を指定した場合例外がでるので注意しましょう。例えばこの場合NSMakeRange(0, 5)のように指定してしまうと例外が出ますので注意しましょう。

かなり基礎的なことですが日本語では記事が見つからなかったのでメモしておきます。

 

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp

macOSでcommand+tabでアプリ切り替えができないときはDockを再起動しよう

macを使用していると定期的に訪れるのですが、command+tabが効かないことがあります。これまではmacを再起動していて直していたのですが、流石に毎回再起動するのは面倒なのでどうしたものかと思っていたら解決策が見つかりました。やり方は以下です。

Dockの再起動です。

再起動と記載しましたがDockを終了させるだけで自動的に再度立ち上がります。手順としては

アクティビティモニタ→(どのタブでもいいので)Dockを探す→Dockを終了

以上で症状が治りました。Dockが一瞬プロセスから消えるのですがすぐに立ち上がります。簡単な内容でしたがメモとして残しておきます。

 

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp

【Objective-C】UILabelにタップイベントを付ける方法

本日Objective-cを触っていて、UILabelにタッチイベントをつけたいことがあったので、調べた結果をメモしておきます。

 とまあ特に簡単なのですが、これでLavelタップでhogeメソッドが呼ばれます。

これまでも何度か調べたことがあることだったので記録しておきます。

毎回単UITapGestureRecognizerを生成→UILavelに設定してうまく動かないなーってやっていました。userInteractionEnabledをYesにしないとあかんすね。Swiftでおおそらくほとんど同じかと…

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp

PHPの変数のスコープについて完全に勘違いしていたこと

他言語からPHPに移って来た身の私にとっては次のコードは完全に機能しないものと思っていました。

なぜならif文で初登場の$hogeはifの外からは絶対に見えないからです。ただ、これは結果として「hoge!」と出力されます。

Javaの場合だと以下のように書かないといけないと思います(適当に書いたので間違ってるかもしれないです)。

 Javaの場合はif文でもスコープは発生しますから条件分の中で変数の値を変える場合、その外で宣言しておく必要があります。僕の場合、全くこれと同じ理解をしていただめ、PHPの場合でも外で宣言だけしていました…

PHPの場合上記3つの場合のみでスコープが発生します。なんでif文やfor文ではローカルスコープ内のくくりのため括弧の位置など気にしなくてもいいようです。

PHPやって2年位経ちますが今まで無駄なコード結構書いていたなと思います…というかここでスコープ発生しないとなるとすごいわかりづらいよなぁという印象もあります。

ぐぐってみると同じこと言っている人多少見受けられたので勘違いしていた人も多いんではないでしょうか(と思いたい)。

 

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp

 

curlでサイト速度測定

サイト構築時になんだかレスポンスが遅いな?と思うことが合ってその際に手軽に測定できるスクリプトを作ったので記録しておきます。

上記スクリプトでURL部分を測定したいサイトに、for文の10を測定したい回数に変更すればOKです。

f:id:yyUX:20180221105617p:plain

上記画像のような結果が帰ってきます。httpステータス+秒数が帰ってきます。もちろんこのスクリプトは他人のサイトで動かすとdos攻撃になるので気をつけてください。IPブロックされても責任は取れません…

 

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp

VPSで動かしてるdockerのmysqldumpをAmazonS3にアップロードする

特殊なケースかもしれないし、こんなことやってるのはアホらしいかもしれないけどメモ的に記録しておきます。VPSで動かしてるubuntuサーバー上のmysql dockerコンテナのバックアップをs3にアップロードします。そもそもAWS使っておけばバックアップはホント楽なのに…といってもしょうがないのでやりました。

まずはubuntuaws cliを導入します。

導入にはpythonとpipが必要になります。pythonはもう入っていたのでpipのインストールからやりました。pipは

からインストールが可能です。そして本題のaws cliのインストールですが

でインストールします。インストールが終わったらaws cliの設定を開始します。その際にIAMのアクセスキーIDとシークレットアクセスキーが必要になります。取得方法はこちらにあります(というかpipの導入などもここにありますが…)

引用しておくと

1.IAM コンソールを開きます。
2.コンソールのナビゲーションペインで、[Users] を選択します。
3.IAM のユーザー名 (チェックボックスではありません) を選択します。
4.[Security credentials] タブを選択し、次に [Create access key] を選択します。
5.新しいアクセスキーを表示するには、[Show] を選択します。認証情報は以下のようになります。

アクセスキー ID: AKIAIOSFODNN7EXAMPLE
シークレットアクセスキー: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
6.キーペアをダウンロードするには、[Download .csv file] を選択します。このキーは安全な場所に保存してください。

 これはそのまんまなので特に迷うことはないはずです。もちろんここのアクセスキーなどはダミーです…

それで設定は以下のコマンドの実行です

実行すると上記アクセスキーIDとシークレットアクセスキーが聞かれますのでコピペ、あとはリージョンとoutput formatが聞かれますので、東京リージョンであれば「ap-northeast-1」、output formatはよくわかりませんがjsonでいいでしょう。

これでaws cliの設定は完了です。

 

dockerコンテナのmysqlのダンプの取得方法はこちらです。

日本語のところは適宜自分の環境に置き換えてください。最後のディレクトリ・ファイル名指定はなんでも構いません。バックアップファイルに日付を指定していますが、cronで定期実行する際はエスケープしないとちゃんと動かないので%をエスケープしております。

ここからあとはS3にアップロードするだけです 

 上記コマンドでアップロード可能なのであとは手動でやるなりcronでやるなりすればOKです。

 

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp

CPU脆弱性(Meltdown/Spectre)におけるEC2の対応についてとインスタンスの再起動について

aws.amazon.com

先日から話題になっています、CPUの脆弱性(Meltdown/Spectre)についてAWSでの対応方法が発表されました。多くの人が使っているのがEC2とRDSあたりかと思いますが、RDSは対応が必要なく、私が使っているサービスではEC2のみが対象でした。

EC2インスタンスで必要な作業は(1月8日以降に起動したものは対応の必要なし)以下となっています。

・sudo yum update kernelの実行

インスタンスの再起動

の以上で完了です。あっという間に終わるので、特にブログにする必要もないくらいなのですが、一つ気になったことがありました。インスタンスの再起動と言いますが、オートスケーリンググループに属している場合、インスタンスを再起動するとELB等のヘルスチェックに引っかかってしまい、インスタンスが破棄されてしまうのではないかと。ヘルスチェックの感覚や再起動にかかる時間にもよりますがこの懸念は間違いないです。

この場合

パッチ当てる→AMI取得→起動設定・オートスケーリンググループに設定→希望台数を増減させて新しいインスタンスに入れ替える

という作業を行っていました。ダウンタイムも発生せず、今回もこの作業で問題ないのですが、ここで

「オートスケーリンググループ使ってる場合インスタンスの再起動って無理じゃね?」

と思いました。ただAWSに限ってそんなことはないだろうと思い調べたところ

docs.aws.amazon.com

ドキュメントにしっかり記載がありました。オートスケーリンググループの機能でインスタンスをスタンバイにすることでヘルスチェックから逃れることが可能です。今回この機能を使う必要は特になかったのですが、今回ふと疑問に思って調べたのでメモとして残しておきます。

 

私たちはyyUXというUXレビューサイトを運営しています。あらゆるサービスのUX改善を目指しています。一度のぞいてみて下さい。よろしくお願いします。

yyux.jp