やったこと

webサービスを作るときに考えたことを垂れ流します

スパムメールに書いてあるURLをクリックしてはいけない!

最近ケータイに「スパムメール」をたくさん送り付けられていて困っています・・。

受信したスパムメールの中には、「あなたに6億円をプレゼントします!」とか「〇〇ですけどメアドを変えました!」とか「セフレになってくれませんか?」とか、いろんな意味不明な文章が書いてあって、そこにはフィッシングサイトに繋がるあやしげなURLが記載されています。

このURLですが、決してクリックしない方がいいです。

このURLはランダム文字列で生成されていて、あなたのメールアドレスと一対一対応しています。そしておそらく、あなたがURLをクリックしてサイトにアクセスしたことが、検出できる仕組みになっているのです。

私は今までずっとスパムを無視しまくっていて、受信したらすぐに「ゴミ箱」に捨てていたので、スパムの受信数は一日数通くらいのごく少ないものでした。

でもさっき興味本位でURLをクリックしてサイトを閲覧してしまったために、怒涛のようにひっきりなしに、大量のスパムを送り付けられるようになってしまいました・・。

どうやらスパマーの人から「このアドレスの保有者は脈アリ!」と見なされてしまったみたいです・・。

こんな状態ではもうこのメールアドレスは使い物になりません・・。

これって放っておけばまた元に戻るんですかね・・?

ほんと困りました・・。

【PHP】YoutubeのURLの動画ナンバーを正規表現で抜き出す!

youtubeのURLの中にある動画番号を、PHP正規表現(preg_match)によって取得する方法です。

つまり、「https://www.youtube.com/watch?v=B3o9h0RFw-c」というURLの中の「B3o9h0RFw-c」の部分を抜き出すということです。

以下のようなPHPコードを実行すると、

<?php
$url = "https://www.youtube.com/watch?v=B3o9h0RFw-c";
preg_match('/watch\?v=([\w\-]+)/', $url, $match);
print_r($match);
?>

matchの中に次のような値が格納されています。

Array
(
    [0] => watch?v=B3o9h0RFw-c
    [1] => B3o9h0RFw-c
)


すなわち「match[1]」の中に、お目当てのyoutbe動画番号が入っているというわけです。

以上

【AWS】EC2サーバーにボリュームをアタッチしたら起動しない!

アマゾンのEC2サーバー(t2.medium)にボリュームをアタッチして起動しようとしたら、エラーが発生して怒られてしまいました・・。

エラー文は以下のようなものです。

インスタンス開始のエラー
Invalid value 'i-hogegehogegehogege' for instanceId. Instance does not have a volume attached at root (/dev/xvda)


どうもボリューム・アタッチの際の「デバイス設定」が悪いせいでエラーが出てしまうみたいです。

デフォルトだと「/dev/sdf」というデバイスをおすすめされるのですが、これを「/dev/xvda」と書き換えてアタッチしたところ、ちゃんと起動するようなりました。

エラーの原因が全然分からなくて、ずいぶん時間取られちゃったよ・・。

【jQuery】spanタグをテキストを残して削除する!

「spanタグ」の中身のテキストを残してタグをだけを消去する方法です。

以下のような「spanタグ」があったとします。

<span class="hogespan">ほげ~</span>


これをjQueryの「unwrap」を使って削除します。一旦中身のコンテンツを選択して、その外側の要素を削除するという作戦です。

//jQuery削除処理
 $('.hogespan').contents().unwrap();


これでspanは消去されてテキストだけが後に残ります。

ほげ~


この方法は「aタグ」を削除したい場合にも使えます。テキストはそのままにして、リンクだけを外すことができます。

以上です。

【CakePHP3】マイグレーション機能でカラムの定義を変更する!

CakePHP3のMigrations機能でカラムの定義を変更する方法です。

マイグレーションファイルを作る
以下のようにbakeコマンドを打って「ChangeComment」などというマイグレーションファイルを作ります。

./bin/cake bake migration ChangeComment

コマンド打つと「20170320094048_ChangeComment.php」などといったマイグレーションファイルが作成されます(まだ中は空っぽです)

マイグレーションファイルに変更内容を書く
マイグレーションファイルの中にカラムの定義を変更する命令を書きます。

以下の例では、「comments」というテーブルの「twitter_id」というカラムの定義を変更しています。

「biginteger」というデータ型に変更して、デフォルト値をnullに変更して、null値の入力を「有り」に変更しています。

    public function change()
    {
      $table = $this->table('comments');
      $table->changeColumn('twitter_id', 'biginteger', [
          'default' => null,
          'null' => true,
      ]);
      $table->update();
    }


マイグレーション実行
上記のマイグレーションを、普通にコマンドを叩いて実行します。

./bin/cake migrations migrate

これで変更が反映されます。はい以上!

【git】既存のプロジェクトからコードをそのままに新プロジェクトに移行!

gitの話なんですけも、「今進行中のプロジェクト」から、コードはそのままで「新プロジェクト」を開始する方法です。

■サーバ側作業
まずはサーバー側で「新プロジェクト」のファイルを作ります。

プロジェクトファイルが格納されているディレクトリで、新プロジェクトのディレクトリ「hoge.git」を作成します。

#ls
test.git  fuga.git

#mkdir hoge.git (ディレクトリ作成)

#ls
test.git  fuga.git  hoge.git


そして、「hoge.git」に移動して「git init」コマンドを叩きます。

#cd hoge.git

#git init (新プロジェクトファイル作成)

#ls
branches  config  description  HEAD  hooks  info  objects  refs

これでサーバー側に、新プロフェクトのファイルが作られました。


■クライアント側作業
クライアント側には既存プロジェクトのコードがあると思います。なかったら「git clone」で既存のコードを用意してください。

このコード中の「.git」ディレクトリ以下を全部きれいに削除します。そして「git init」コマンドによって設定を新規作成します。

#rm -rf ./.git (.gitディレクトリ全削除)

#git init (git情報を新規作成)

#ls -a
.git


そして、全コードを新プロジェクトに向けてコミットします。リモートの設定を新しいプロジェクトにセットしてコミットです。

#git remote add <name> <url> (新プロジェクトにリモートを設定)

#git add . (全ファイルadd)

#git commit  (全ファイルコミット)

#git push (全ファイルプッシュ)

これで新しいプロジェクトにコードがコミットされました。新しい開発の始まりです。

おしまい。

ツイッターでフォローが全部外れてしまったとき!

先日、私のツイッターアカウントのフォローが全部外れてしまう現象に出くわしました・・。

私のアカウントは宣伝用に使っているもので、誰かれ構わずやたらとフォロー爆撃をしまくっているなんともはた迷惑なものなんですけども、ちょっとやりすぎてしまったためか、一旦ツイッター側からアカウントがロックされてしまいました・・。

ツイッター側に申請をしてすぐにロックを解除してもらったのですが、しばらくして「300人」ほどいたはずのフォロー数が、全部外れてしまって「0」になっていることに気付いたのです・・。

「やんちゃな行為をした罰ゲームでフォローが全部外されてしまったのかな・・?」と思ってしばらく放置しておいたのですが、半日くらい経った頃でしょうか、いつの間にかフォロー数は元通りの数に復元されていました・・。

よって結論です。

結論:
「フォローが全部外れてしまったときは、半日くらい経過すると元通りになることがある、なのでしばらく様子を見ること!」

以上です。