Herokuのアプリ名変更

heroku createで名前つけなかったときとか勝手に命名される。

あとから変えられるし困っていないから特に名前していない僕です。

名前は以下のコマンドで変更できる。

ディレクトリの外からだと別の方法あるけど、特にそんなことはしないので、メモはしません。

heroku apps:rename newname

gitも勝手に新しい名前に変わるので、このコマンドだけでいい。

名前の変更がめんどくさくないから、最初にめんどくさがって名前つけないです。決まっていないこともあるので。

多分Herokuのダッシュボードからでもできるんじゃないかな。

Heroku無停止(スリープさせない・阻止)処理

無料枠でHeroku使っていると30分で停止するので、それを阻止する方法

不要なものもあるのでdef awake():以下を追加でimportは適当なものを

wsgi.py

import os

from botocore.exceptions import ClientError
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

import threading
import requests
import time

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings.local")
application = get_wsgi_application()
application = DjangoWhiteNoise(application)


def awake():
    while True:
        try:
            requests.get("https://appname.herokuapp.com/")
        except ClientError as e:
            print(e)
        time.sleep(300)


t = threading.Thread(target=awake)
t.start()

これで5分ごとアクセスするようになる。

5分って感覚狭すぎなので、10分とか20分でいいと思う。

Django static, mediaをs3へ

herokuでデプロイするとmediaが消えるので、s3を使うことにした

staticも同様に移した

s3の設定からDjangoの設定まで

torina.top

settingsを分けた

qiita.com

STATIC_URLとかはbaseで設定したのをproductionで上書きするようにした

herokuはダッシュボードのsettings>Config Variablesで環境変数設定した

collectstaticができない

STATICFILES_DIRSの設定を消した

whitenoiseの設定とかstaticfilesの設定はローカルでは関係ないのかな

懸念

デザイン変えたりすると毎回今までの消してからcollectstaticしないといけないのかな?

Django Herokuでcss読まれない

ローカルではcss(staticファイル)読めているのに、デプロイ先(Heroku)では読み込まれない

settings.pyにこんな感じに記述しているのにだめ

# Static asset configuration
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

解決方法

僕はこの方法で解決した

whitenoiseのインストール

pip install whitenoise

wsgi.pyの変更 一番最後に(importは適当な位置に)

from whitenoise.django import DjangoWhiteNoise

application = DjangoWhiteNoise(application)

Djangoのバージョン

Django==2.0.7

Go言語はじめる

今回は初期の勉強のためだったのでyumでインストールした。

yum install golang

インストール終わったらバージョンの確認

go version

最新はwgetでダウンロードしてパスの設定とかしないといけないみたい

参照 thoames.hatenadiary.jp

Hello, World!

なんか久々にHello, World!書いた気がする

ミニマムで

package main

import "fmt"

func main() {
  fmt.Println("Hello, World!")
}

とりあえずrunして動作確認OK

go run hello.go

参照 ビルド・実行する - はじめてのGo言語

Slackのbot作ったりしたいだけなんだけどdockerのパッケージ込みのテンプレート探して勉強していこうかな

PHPで複数カラムのソートが出来るarray_multisortが便利すぎる

SQLのORDER BYだけじゃ対応しきれないソートについて悩んでいたところarray_multisortを見つけたのでメモしておきます。

SELECTの結果が以下とする。

$array = [
    0 => [
       'hoge' => 'apple',
       'foo'  => 3
    ],
    1 => [
       'hoge' => 'pineapple',
       'foo'  => 1
    ],
    2 => [
       'hoge' => 'pen',
       'foo'  => 2
    ],
];

配列の中からソートしたい項目だけ別途配列として取り出して、array_multisort関数に当てる。 複数あったら複数順番に指定してあげれば良さそうです。

最後の引数に元の変数を指定すれば良いです。

$tmp_hoge_array = [];
$tmp_foo_array  = [];

foreach ( $array as $key => $row ) {
    $tmp_hoge_array[$key] = $row['hoge'];
    $tmp_foo_array[$key]  = $row['foo'];
}

array_multisort($tmp_hoge_array, SORT_ASC, SORT_STRING,
                $tmp_foo_array, SORT_DESC, SORT_NUMERIC,
                $array);
unset($tmp_hoge_array);
unset($tmp_foo_array);

結果

array(3) {
  [0] =>
  array(2) {
    'hoge' =>
    string(5) "apple"
    'foo' =>
    int(3)
  }
  [1] =>
  array(2) {
    'hoge' =>
    string(3) "pen"
    'foo' =>
    int(2)
  }
  [2] =>
  array(2) {
    'hoge' =>
    string(9) "pineapple"
    'foo' =>
    int(1)
  }
}
array_multisort($tmp_hoge_array, SORT_ASC, SORT_STRING, $array);

全部指定しなくてもいい。

gitのIPが変わってphpstormでgitが使えなくなった

前提としてbashはcygwinを使用しています。

社内ネットワークの変更に伴いgitのIPが変わったときにphpstormのVCS(git)が使えなくなったときに結構ハマったので備忘録残しておきます。

cygwinを使用しているので、homeは/home/usernameになります。

結論だけですが、phpstormのssh-agentのパスは/c/Users/usernameになるため、/home/usernameのssh-agentを変更してもphpstormのsshの情報は何も変わっていなかったという初歩的なミスでした。

しばらくコマンドでgitの操作をしていたので、gitのコマンドは少々思い出しながら開発が出来た期間がとれたので、個人的には良かったですが、二度とハマりたくない所存です。(これで開発効率ががくっとさがったので)

最近はcygwinユーザも減ってきているので、僕もcygwin卒業しようかと思いますが、何がいいのでしょうか。

やっぱりWindows Subsystem for Linux一択なんですかね?

いろいろ模索したいですがその時間すらもったいなく感じているこの頃…

時間を見つけて全部試してみたいです。

生きるとは

アイドル戦国時代でいろんな方がいろんな人をプロデュースして、様々な形のアイドルがたくさんいる今の時代。こんな時代だからなのか元々からなのか僕も絶賛アイドルにハマっています。

エンジニアの方でもアイドルにハマっている方が多いですが、同グループのファンに目が向くのか、坂道グループ好きの方が多い気がしています。

※坂道グループとは秋元康プロデュースの○○坂46というグループのことを指しています。現在は乃木坂46と欅坂46(最近吉本興業さんから吉本坂も作るぞと言う案件も進んでいるようですね)

その中でもいろんな方の背中を押している乃木坂46の「きっかけ」という曲が僕は好きです。

サビの一部の歌詞がこちらです。

決心のきっかけは理屈ではなくて いつだってこの胸の衝動から始まる

心打たれますね。好きです。

やろうかなどうしようかなと迷っていたことに対してやらねばという気持ちにさせてくれるとても素敵な歌詞です。

なにかに迷ったとき、立ち止まっているときによく聞いています。

そして、きっかけの歌詞はこう続きます。

生きるとは選択肢 たった一つを 選ぶこと

生きるとは選択肢で様々に分かれている道をひとつずつ選んで行くことと解釈しています。

秋元康さんはどういう思いでこの歌詞を書いたのでしょう。

そして歌っている乃木坂46のメンバーはどういう思いで歌っているのでしょう。

人それぞれに生きる意味があり理由があると思います。

何のために生きているのか、そんなことを考えては苦しくなる方もいるでしょう。迷う方もいるでしょう。

生きるとは様々な意味がありその時折で感じ方も変わってくると思います。

そこで秋元康さんが書いた歌詞の中で46・48グループの曲から好みで抜粋していくつか「生きるとは」について紹介したいと思います。

きっかけ/乃木坂46
生きるとは選択肢 たった一つを 選ぶこと

まずはきっかけ。

先程紹介したきっかけです。生きるとは選択肢

その先の出口/乃木坂46
生きるとは勇気 きっと出口があるはず

次も乃木坂46からその先の出口

迷っていることがあっても辛いことがあっても勇気をもって前を向いて歩いていれば道は開けるといった感じでしょうか。

Bメロの歌詞で一度しか出てこないフレーズですが、勇気のもらえる歌詞です。

二人セゾン/欅坂46
生きるとは変わること 君はセゾン

次は欅坂46から二人セゾン

著名人でも好きという方が多い二人セゾンですが、この曲にも「生きるとは」が入っています。

生きるとは変わること。セゾンとはフランス語で季節と言う意味です。

春夏秋冬、季節が変わるように景色が変わるように環境も変わっていくことを表していると解釈しています。

夜明けの孤独/平手友梨奈(欅坂46)
生きるとは孤独になること

こちらも欅坂46の曲で平手友梨奈さんのソロ曲の夜明けの孤独です。

生きるとは孤独になること。このあとに続く歌詞は2ワードあり、

  • 愛に甘えるな
  • 何を捨てればいい

と続いています。

誰にも頼らずに強く生きていく、一人で生きていく力がないといけないという強い意志を感じます。

前のめり/SKE48
生きるとは走ること 居ても立ってもいられず 前のめりに 夢見る

次はSKE48の前のめりです。

松井玲奈さんの卒業前ラストシングルです。

松井玲奈さんのことをイメージして作詞されたようで、前向きになれる歌詞です。

新たな道へ進む方へ背中を押してくれるような歌詞です。

人生とは

最後に番外編ということで「生きるとは」ではなく「人生とは」という歌詞がとても良い曲を紹介したいと思います。

それでも歩いてる/欅坂46

けやき坂46のそれでも歩いてるという曲です。

ひらがなけやきと呼ばれている欅坂46の妹グループのようなものです。

※一緒のグループなのですが、最近別のグループのような扱いをされているためこのような表現をしています。

この曲はけやき坂46の主演ドラマのRe:Mindの主題歌です。

曲の雰囲気が独特で歌詞が前向きで聞いていて前に進もうと思える曲です。

その中でもサビに出てくる「人生とは」というワードが印象的です。

その「人生とは」を紹介していきます。変化とともにお楽しみください。

まずはこちら

人生とは転ぶもの

傷つくものだけどなんでも立ち上がって歩いていくという力強いメッセージ

そして

人生とは負けるもの

勝ちより負けのほうが大事だ。負けたってそれでも生きていくという心強いメッセージ

それから

人生とは転ぶもの

(2回目)

最後に

人生とは何なのか?

勝ち負けに何の意味があるのか、歩き続けようと。

人生とは何なのか。最後はもう何か分からなくなっている。それでも歩いているという前向きなメッセージ

傷ついても負けても理由が分からなくなっても歩いていけということでしょうか。

生きるとはに言い換えるなら、「生きるとは歩くこと」といったところでしょうか。前のめりでは走ることですが、意味的には全く違うと捉えられる印象です。

どの歌詞も前向きでマイナスな気持ちのときに背中を押してくれる曲ばかりです。

今の僕は生きるとはと問われると答えを出すのに少し時間がかかりそうですが、それでも前向きに目標に向かって頑張っていこうとそういう思いでいます。