Windows+Docker+VSCodeでGoしたあとGinしてみる
いつまでたってもGoをツアーのままにしちゃうのでひとまず触れる環境に
WSL2+Docker+VSCodeでGoまでは完全に下記サイト様を参考
blog.orangeliner.net
WSL2はubuntuをいれました。
すげ~WinでLinuxコマンドが使えるゾ!
Winのコマンドプロンプト
かなり無知
コンテナ作成の時のバージョン選択は新しいやつ
オプションはとりあえず何も入れずに。
なんも考えず進めても
hello worldまではすんなりいけます。
Dockerのコンテナの作り方とか立ち上げ方とか
goの入れ方とか何もわかってないのに
goがコンテナで使えるからすごい。
で、ウェブアプリを作っていくにあたって
goのフレームワーク gin
いれていきましたね
下記サイト様をほぼ参考にしました
一個目のサイトの最後までいって、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に接続。
無事、pingを投げてpongが帰ってきてますね
サイトさん先にあるように、さらにhtmlを追加して
main.goをかえれば
いける。
いけそうです。
なんで今回こんな改行がすごいことになってるのかというと
はてなブログが下手だからです
以上です
ゲームを作っていた日もあった
毎日なんかはてなブログでIT系の話題を仕入れてブログ書いたら色んな知識が得られるのではないかと
思った日もありました もう続いてない
俺はブクマ整理がマジで下手なので
ふとした時にブクマの深淵を漁ると 色々でてきて面白かったりします
今回はまあ浅い位置に埋まってたものですが
trello
タスク管理ツールですね
unityでちゃんとゲーム作ってた時
自分で予定管理してたやつです
これですね
今見たらこれでちゃんと背景とかついてたらまあまあ良かったのではと思うのですが
結局完成しませんでした
やっぱり作ってみるとイマイチ動きが合わなかったり この・・・敵、小さいでしょう・・・
通常攻撃がなんとあたらないんですよ・・・・え・・・?
あとジャンプアタックの銃斜め撃ちも結構不快
だからロックマンとかはジャンプ攻撃も並行撃ちなんすね
とか
色々思いだした 夏
機会があればせっかくつくったグラフィックだし、再利用したい
以上
IT会社をやめてゲーム会社に入って ちょっとして
IT会社をやめてゲーム会社に入って
やっぱり意識しなきゃいけないところが違うんだなって最近実感してきました
メモリの節約とか
ITのほうで働いてた時はwebアプリケーション(アプリケーションていうかもはやwebページみたいなものだったけれど)の開発だったから
レスポンスとかラグとかメモリとかそこまで気にしなくてよかたのだけど
ゲーム会社だとやっぱりレスポンスとかメモリとか重要になってくるみたいで
無駄にメモリを使うソースコードをかくとレビューコメントで指摘をいただくことになる
まだまだ意識がたらんな~と思うこの頃
まあゲーム用のコーディングに限らず
読みやすいコードにするとか そういうの
自分はまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだまだ
まだまだ
まだまだまだまだ
なので
埃かぶってたリーダブルコードをちょっち引き出してきた
これね
最初はマジでチンプンカンプンだけれど
ちょっとコード学んだ後に読むとなるほどな~となることばかり
どんな人に聞いてもオススメされると思います
ユーモア聞いてて面白いしね
内容についてはまた日記のネタにでも
眠いので寝ます
明日は歯医者があって絶望している
2038年、世界が崩壊する
2038年何かが起こるかもしれない。
って聞いた
本日は雑談
実はコンピューターは0か1しか読めないのだが
0か1の無限の繰り返しで無限のことができるように見えている
時間を司るプログラムも、0010101010010101010010101秒みたいな感じで記録されていた
> 以前は多かった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であらわすとこう
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
スライスやら。
可変配列ということで
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も何が入ってるのかよくわかってない
引数じゃないのか・・?
も~~わからん わからん祭りです
助けて~…