Windows+Docker+VSCodeでGoしたあとGinしてみる

いつまでたってもGoをツアーのままにしちゃうのでひとまず触れる環境に




f:id:nu99:20210622014836p:plain

WSL2+Docker+VSCodeでGoまでは完全に下記サイト様を参考




blog.orangeliner.net




WSL2はubuntuをいれました。






すげ~WinでLinuxコマンドが使えるゾ!




Winのコマンドプロンプト かなり無知




コンテナ作成の時のバージョン選択は新しいやつ オプションはとりあえず何も入れずに。




なんも考えず進めても hello worldまではすんなりいけます。




Dockerのコンテナの作り方とか立ち上げ方とか goの入れ方とか何もわかってないのに goがコンテナで使えるからすごい。






で、ウェブアプリを作っていくにあたって goのフレームワーク gin




いれていきましたね




下記サイト様をほぼ参考にしました

qiita.com






一個目のサイトの最後までいって、VScodeでgoを使えるようになったら

もうそのVSCode上でターミナル開いて、そこでginを入れちゃう

$ go get github.com/gin-gonic/gin

で、ginクイックスタートのコードをお借りして

main.go

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

のち、 $ go run main.go して のち、http://localhost:8080/pingに接続。

f:id:nu99:20210622014332p:plain
無事、pingを投げてpongが帰ってきてますね



サイトさん先にあるように、さらにhtmlを追加して main.goをかえれば

f:id:nu99:20210622014709p:plain

いける。



いけそうです。





なんで今回こんな改行がすごいことになってるのかというと


f:id:nu99:20210622013625p:plain


はてなブログが下手だからです







以上です

ゲームを作っていた日もあった

毎日なんかはてなブログでIT系の話題を仕入れてブログ書いたら色んな知識が得られるのではないかと

思った日もありました もう続いてない

俺はブクマ整理がマジで下手なので

ふとした時にブクマの深淵を漁ると 色々でてきて面白かったりします

今回はまあ浅い位置に埋まってたものですが

f:id:nu99:20210617003554p:plain

trello

タスク管理ツールですね

unityでちゃんとゲーム作ってた時

自分で予定管理してたやつです

www.youtube.com

これですね

今見たらこれでちゃんと背景とかついてたらまあまあ良かったのではと思うのですが

結局完成しませんでした

やっぱり作ってみるとイマイチ動きが合わなかったり この・・・敵、小さいでしょう・・・

通常攻撃がなんとあたらないんですよ・・・・え・・・?

あとジャンプアタックの銃斜め撃ちも結構不快

だからロックマンとかはジャンプ攻撃も並行撃ちなんすね

とか

色々思いだした 夏

機会があればせっかくつくったグラフィックだし、再利用したい

以上

IT会社をやめてゲーム会社に入って ちょっとして

IT会社をやめてゲーム会社に入って

やっぱり意識しなきゃいけないところが違うんだなって最近実感してきました
メモリの節約とか

ITのほうで働いてた時はwebアプリケーション(アプリケーションていうかもはやwebページみたいなものだったけれど)の開発だったから

レスポンスとかラグとかメモリとかそこまで気にしなくてよかたのだけど

ゲーム会社だとやっぱりレスポンスとかメモリとか重要になってくるみたいで
無駄にメモリを使うソースコードをかくとレビューコメントで指摘をいただくことになる


まだまだ意識がたらんな~と思うこの頃



まあゲーム用のコーディングに限らず
読みやすいコードにするとか そういうの
自分はまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだ
まだまだ
まだまだまだまだ


なので



埃かぶってたリーダブルコードをちょっち引き出してきた

amzn.to

これね



最初はマジでチンプンカンプンだけれど
ちょっとコード学んだ後に読むとなるほどな~となることばかり
どんな人に聞いてもオススメされると思います

ユーモア聞いてて面白いしね


内容についてはまた日記のネタにでも


眠いので寝ます





明日は歯医者があって絶望している

2038年、世界が崩壊する

ja.wikipedia.org

2038年何かが起こるかもしれない。
って聞いた






本日は雑談







実はコンピューターは0か1しか読めないのだが
0か1の無限の繰り返しで無限のことができるように見えている




時間を司るプログラムも、0010101010010101010010101秒みたいな感じで記録されていた



ja.wikipedia.org


> 以前は多かった32ビットで扱われている場合で、符号付きであった場合、その最大値 2,147,483,647 を超えると負の値になり、正しく時刻を扱えなくなるという問題がある。これを2038年問題という。





32ビットというのは0000…の入る箱の大きさみたいなものです
32ビット箱の空は
0000 0000 0000 0000 0000 0000 0000 0000


この箱、1970年1月1日0時0分0秒みたいな地点に置いてあるので



1970年1月1日0時0分0秒 + 32ビットの箱に入ってる秒数 = 今の時刻



1970年1月1日0時0分0秒 + 1秒というのは0と1だけであらわすと
0000 0000 0000 0000 0000 0000 0000 0001


1970年1月1日0時0分0秒 + 2秒というのは0と1だけであらわすと
0000 0000 0000 0000 0000 0000 0000 0010


1970年1月1日0時0分0秒 + 3秒というのは0と1だけであらわすと
0000 0000 0000 0000 0000 0000 0000 0011


1970年1月1日0時0分0秒 + 4秒というのは0と1だけであらわすと
0000 0000 0000 0000 0000 0000 0000 0100

.

.

.

.


で、
1970年1月1日0時0分0秒 + 2,147,483,647(2038年1月19日3時14分7秒)
というのは、0と1であらわすとこう


f:id:nu99:20210603210520p:plain
https://note.cman.jp/convert/bit/


0111 1111 1111 1111 1111 1111 1111 1111


で、その1秒後の2,147,483,648(2038年1月19日3時14分8秒)は



1000 0000 0000 0000 0000 0000 0000 0000



で、一番左の0か1は、プラスかマイナスかを担っているので

一番左が0=プラス
一番左が1=マイナス
になって



2,147,483,647秒の次は


 -0秒になっちゃうんですね



1970年1月1日0時0分0秒 + (-1秒)
1000 0000 0000 0000 0000 0000 0000 0001


1970年1月1日0時0分0秒 + (-2秒)
1000 0000 0000 0000 0000 0000 0000 0010




流石に過去に戻りすぎるのはヤバいので、
0に戻してくれるので
紀元前にいくとかはないんですが



それはそれとして時は戻るわけで

2038年1月19日3時14分7秒過ぎたら

突然1970年1月1日0時0分0秒になっちゃうカモ



みたいなのが2038年問題ってやつ


・・・らしいです
記事読んで書きながら把握してるので違ったらすいません




なんかヤバそう!と思うかもだし思ったけれど
新しめのシステムは既に64ビットの箱という、32ビットよりデケー箱を使っているので
メッチャ古いシステムだけもしかしたら…な感じらしい



ま・・なんとかなるでしょ!



それはそれとしてちょっと楽しみですね
(楽しみじゃすまない世界線もある)



以上です

A Tour of Go moretypes/23くらい 進捗 Golang

前回 nu99-ichigo-milk.hatenablog.com

中々ツアーに行く時間なかったよ go-tour-jp.appspot.com

そんでようやっとツアーにいきましたが Mapという構造体とかキーみたいな奴の話。 なんかの言語ではライブラリ?みたいなものかな?

で、 即練習問題でた

Exercise: Maps
WordCount 関数を実装してみましょう。string s で渡される文章の、各単語の出現回数のmapを返す必要があります。 wc.Test 関数は、引数に渡した関数に対しテストスイートを実行し、成功か失敗かを結果に表示します。

strings.Fields で、何かヒントを得ることができるはずです。

Note: このテストスイートで何を入力とし、何を期待しているかについては、golang.org/x/tour/wcを見てみてください。

何を・・・・?言うてオル・・・・・・・・・・・・・・・・・・?

突然母国語で喋り出すので観光客は尻餅をついてビックリしてしまう また明日以降ちゃんと読んでチャレンジします。

今日は眠いので寝ます。おやすみなさい~

A Tour of Go moretypes/18 Exercise: Slices 俺の答え(完成) Golang

前回中断になった練習問題の続きです

nu99-ichigo-milk.hatenablog.com

デキタヨー!!!

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {
 
    kotae := make([][]uint8, dy)
 
    for v := range kotae {
        kotae[v] = make([]uint8, dx)
    }
 
    // xとかyって関数のグラフだったよ!!!
    for y := range kotae {
        for x := range kotae[y] {
            kotae[x][y] = uint8((x+y)/2)
        }
    }
 
    // 下記も行けると思ったんだけどエラーでる
    // ./prog.go:21:10: yoko declared but not used
    // yoko使ってるのにどうして?!?!?!?!?
    //for y,tate := range kotae {
    // for x, yoko := range tate {
    //     yoko = uint8(x^y)
    // }
    //}
 
    return kotae
}

func main() {
    pic.Show(Pic)
}

やった~!綺麗な画像がでました!

でも実は答えののっているサイトさんを何回か見てます

あまりにもわからなかったため・・・・・・・ 下記さんを参考にしました。 qiita.com

前回xとかyとかなんぞ!?とか言ってたけど 普通に関数のグラフみたいなやつのことだったんすね 高校数学? そういうのマジで弱いのでね もうね

あとコメントアウトしてある書き方がなんでエラーでるのか全然わかりません goに詳しい人知人にいないし、詰んだ

A Tour of Go moretypes/18 Exercise: Slices 俺の答え(中断) Golang

go-tour-jp.appspot.com

スライスやら。
可変配列ということで
C++でいうvectorとか
RubyでいうArrayとかその辺か?

練習問題にブチ当たったので頭を悩ませ、
全然わからんかったので兄の頭も犠牲にして悩みました

一応途中までというか青いよくわからん画像が出るまで…

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {
	
	kotae := make([][]uint8, dy)
	
	for i, v := range kotae {
		kotae[i] = make([]uint8, dx)
	_ = v;	
	}
	
	// xとかyってなんだ・・・・・・・・・・?
	for i, v := range kotae {
		kotae[i][1] = uint8(1*1)
	_ = v;	
	}
	
	return kotae
}

func main() {
	pic.Show(Pic)
}

結局青い真四角の画像が作られるところまででお手上げ。

次はこのできた箱たちにxとyをなんかした値をいれればいいのだろうか…

でもxとyが何なのかわからん
どこかで変数が作られてるわけでもないし
dxとかdyしかないし
そもそもdxとdyも何が入ってるのかよくわかってない
引数じゃないのか・・?

も~~わからん わからん祭りです



助けて~…