O'REILLY Dockerのwebアプリケーションを作ろうとしたのですが…

Docker
Docker
posted with amazlet at 19.06.08
Adrian Mouat
オライリージャパン (2016-08-17)
売り上げランキング: 17,870
今日は上の本に載っていた簡単なwebアプリケーションを
dockerを使って組み立てるのに挑戦しました~

内容としては、テキストを入力したユーザーに
固有のイメージを生成するというアプリケーションのようです。
identiconというらしいです~

さて、では基本的なwebページから作成…
をしようと思ったのですが、
なんと、docker-compose up -d とやっても、
うまくビルドが出来ない!

調べていたら、uWSGIが古かったみたいでした~
バージョン新しくして、再び実行…

出来ませんでした~
standard_init_linux.go:207: exec user process caused "no such file or directory"
 
ファイルが見つからないエラーが出てしまいました…

結局今日は、ここまでで解決せず…

Dockerはまだエラーの追跡とかも知識が不十分で
解決にも時間がかかりますが、
一通りサンプルのwebアプリケーションができるくらいには
なりたいなぁと思うcacaponなのでした~

やる気が出るかは分からないけど、体はポカポカします。

 

cacapon.hatenablog.com

 

何日か前の記事でも書いていたのですが、
どうも休みの日になるとやる気なしモードになってしまうcacaponです~

今日も休みで日中はゴロゴロウダウダ
眠くなったら寝るという、物凄いだらけた生活をしてしまいました~

これはあかんと思い、なんかしようと思いまして…

 

先ほど、ラジオ体操とストレッチ、あと筋トレをやってみました~

ラジオ体操は第一の方ですね~ cacaponはそれぐらいしかわからないので~
一通り曲を聴きながらいっちに、いっちに…

終わったらストレッチ、とりあえず伸びそうな感じで~

そして、筋トレ、壁に対して腕立てとか、
腹筋・なんちゃってボクササイズとかを
大好きなロマンシングサガ2のボス戦の曲を聴きながら
いっちに、いっちに…

…といった感じでやったところ、なんか体がポカポカしました♪

やる前に比べると、少しやる気も出てきたような気はします~
おかげでブログも日を跨ぐ前に書くことが出来ました~
血行良くなると心にもエンジンってかかるのですかね?

 

学術的な部分は分かりませんが、
やる気ない時は体を動かしてみる。
という感じでやってみようかなと思うcacaponでした~

 

プログラミング学ぶ前から、エクセル関数面白い♪と思ってたcacaponです〜

 

 

こんばんは〜 cacaponです〜

 

今日はGoogle Spreadsheets

標準的な関数を組み合わせて、

シフト表を作ってみました〜

 

元々、エクセルが好きで

仕訳を入力すると、

月の現金出納が分かるシートを作ったりしてたので、

 

ある程度の表だったら

作れるつもりなのです〜

 

で、今回作ったものですが…

 

f:id:cacapon:20190607144219p:plain

 

メインの予定を入力すると、担当者の予定が自動で決まる。

という感じで作ってみました〜

 

使った関数の一例を書いておきますね~

<C2>

=if(mod($I2,3)=1,concatenate($G2,",",$H2),"")

通しNoを割って、指定の数字だったら、

使う素材のNoをくっつけて表示、無かったら空白という感じですね~

指定の数字人ごとに変えてますが手打ちにしちゃっているので
いつか自動化したいですね~

 

<G2>

=if(INDIRECT("F"&row(A2)) = "",$M$2+((row(G2)-2)-counta(OFFSET($F$2,0,0,row(A2)-1,1)))*2,"")

結構複雑になってしまいました~

 

INDIRECT() はF2、つまりmainの所をさしてます~
普通にF2ってやると切り取り作業でぐちゃぐちゃになるので
INDIRECT()を使ってます~

でmainが空白だったら、素材Noを表示しないといけないので
それを出す式を入れています~

それが↓の部分ですね~
$M$2+((row(G2)-2)-counta(OFFSET($F$2,0,0,row(A2)-1,1)))*2

 

$M$2は写真無いけど、素材Noの初期値が入ってます~


row(G2)-2は現在の行の位置ですね~
-2は開始位置を0にしたかったので-2してます~

counta(offset($F$2,0,0,row(A2)-1,1))はやってることは
counta($F$2:F2)と同じです~
その日までにmainの列に何か入ってないか数えてます~

循環参照でエラーになるのとmainを切り取りするとズレるので、
それの対策で複雑になってます~

最後の*2は素材を二つずつ使うので2,4,6 ...のような連番にしたかったので
2倍しています~

やりたい事は初期値 +2 にした数列(ただしmainがあるところは飛ばす)
って感じですね~

 

<H2>

=if(G2="","",G2+1)

隣が空白じゃなかったら隣を+1した数字にしています。

 

<I2>

=if(INDIRECT("F"&row(A2)) = "",$L$2-counta(OFFSET($F$2,0,0,row(A2)-1,1))+row(I2)-2,"")

これも考え方はG2と同じです~
×2がないくらいですかね?

 

…と、そんな感じの関数を組み合わせ
上の内容をコピーしたりして1か月分のテンプレートを作りました~

 

元々、予定変更した時に、

手動で直すのめんどくさいという話が出てて、

なら自動にしてしまえないか?

というのが作ろうと思ったきっかけです〜

 

こう言った自分の作ったもので

少しでも役に立ってくれると嬉しいなぁ

と思うcacaponなのでした〜

最近のスマホアプリって面白いけど、気疲れしない程度にセーブしませんとね〜

ブログのネタが尽きてきて、

何書こうか悩み中のcacaponです〜

 

以前から放置ゲームにハマったり

小説読んだりして時間を過ごす事が多い

cacaponなのですが、

 

思いのほか気疲れしてるのかもしれないと

最近思うようになりました〜

 

特にチャットとかあるゲームなんかは、

思ったより相手へ気を使うようで、

終わりあたりになるとヘロヘロになる事もあります〜

 

面白いからどんどんやっちゃうんですけど、

自分の身体を守る為にも、少しセーブしないといけないかもしれません〜

 

明日からお休み(cacaponは今のところ不定期なお休み)なので、

エネルギー消費を抑える傍ら、

エネルギー回復にも意識して過ごしてみようかな〜と思います〜

 

※…自動で戦闘してレベルアップしていくタイプのアプリです~
オフラインでも勝手にレベルが上がりますので、
リアルタイムで行う育成シミュレーションかもしれません~
(だいたいRPGを謳ってますが~)

休みの日になるとけっこうこんな感じになりますが、どうにか出来ないかな〜

定期的に投稿できていなくてすみません~

 

あれをやりたい♪

これをやりたい!

 

…と頭では考えてても

身体が付いてかない時ってありませんか?

 

いわゆる、やる気が出ないという感じです〜

 

cacaponがまさにそんな感じに

なっているのですが、

こういう時ってどうすればいいんですかね?

 

どうすればやる気が出るのかなぁ…

と考えたところ、

「やる気は心のエネルギーではないか?」

→「やる気無いから動けない」=「ガス欠?」

→「じゃあ補充すれば良いのでは?」

 

という考えに至りました〜

でも、心のエネルギーって何になるんですかね?

 

・寝ると補充できるのでしょうか?

→これだけだと経験上不十分っぽい〜

 

・何か遊ぶ?

→遊ぶエネルギーが無いんですよね…

 

・何かに熱中する

→今は熱中出来るものがないんです〜

 

…む〜手詰まりですね〜

きっと何かが足りないのは分かるのですが、

その何かが分からないんですよね〜

 

ん〜、ラチがあかないので

今日はここまでにして、

明日考えていきたいと思います〜

 

 

筋トレすると自信がつくんですって

この前職場のミーティングで筋トレの話になりまして〜

 

そういえば、最近筋トレしてないなぁと思って始めてみました〜

 

と言っても、体力はあんまりないcacaponなので簡単な筋トレからしてみようかと思います〜

 

・腕立て伏せ(壁ver)

・寝っ転がってドローイン

・寝っ転がって自転車

 

とか、あんまり負荷がかからないものからやってみてます〜

 

最近太り過ぎのせいか、動くのが億劫なので、これをきっかけに少しでも動きたいなぁって気持ちになったらいいなぁと思います〜

思いついたゲームを速攻で作ってみたらどのくらいかかるのかやってみました~

皆さん、ヌメロンって知ってますか?

前、テレビでやってた遊びなのですが、
1~9までの数字を組み合わせて、
その数字を当てていくっていうゲームです~

それがふッと頭をよぎったので、
プログラミングしてみました。

ただ、お互い言い当てるんじゃなくて、
機械が3つの数字をランダムで決めてもらって、
それを当てる感じになります~

でもせっかくだからタイムアタックしてみたくなっちゃいました(笑)
どのぐらいで完成しますかね~
それでは、よーいスタート♪

という訳で、出来ました~
実際に計ってみたところ大体50分ぐらいでできました♪ 中々のタイムじゃないですかね?

出来た数字当てゲームはこちらになります~

number_hitter.py

# 23:12:40
# 00:01:05
import random
from subprocess import call

num_list = ['1', '2', '3', '4', '5', '6', '7', '8', '9']

num = random.sample(num_list, 3)

loopflg = True

while loopflg:
    print('1~9でできた3桁の数値を言ってください。 例:123')
    print('その後、私は次の事を教えましょう。')
    print('桁と数が同じだった分〇が何個か伝えます。')
    print('桁が違う数があれば、その分△が何個か伝えましょう。')
    print('あなたは、私が考えている秘密の数字をこたえることができるでしょうか…')
    print('それともう一つヒントを伝えます。同じ数字は使われていません。223も777もあり得ない。\n')

    ans = list(input('それでは聞かせてください。私は何の数を思い浮かべているでしょうか?>>>'))

    call('clear')

    # エラー判定
    if ''.join(ans).isdecimal() is False:
        print('数字以外があるようです。3桁の数でお願いしますね。\n')
        continue

    if len(ans) != 3:
        print('3桁の数なので三つですよ?もう一回お願いします\n')
        continue

    if (ans.count(ans[0]) != 1
            or ans.count(ans[1]) != 1):
        print('同じ数字は使ってないって言ってるのに… もう一回お願いします。\n')
        continue

    # 判定チェック
    circle = 0
    delta = 0

    for i in range(3):
        if ans[i] == num[i]:
            circle += 1
            continue
        if num.count(ans[i]) >= 1:
            delta += 1

    print('{} は 〇:{} △:{}\n'.format(''.join(ans), circle, delta))

    if circle == 3:
        print('正解です!お疲れさまでした。')
        retry = input('もう一度しますか? するなら y と押してEnterしてください')
        if retry != 'y':
            loopflg = False
            break
        call('clear')
        num = random.sample(num_list, 3)

print('ありがとうございました、また遊んでください♪')

今日はwindowsで作ったので、
windows環境だったら、python3が入っていれば、
コピペして、貼り付けて実行すれば遊べるんじゃないかと思います~

良かったらやってみてくれるとうれしいです♪