AWS勉強するのにめちゃめちゃいいサービス見つけた!紹介するね!!(熱編)

Twitteで見つけたAWSの勉強になるサービスってやつ見つけたから紹介するね!

 

 

 

 

 

 

 

 

と思ったんだけど、

仕事中になんかぼーっとするなーってなってまして

家帰って熱はかってみたら「38度」

やばいえらい(方言です。体がしんどいこと)

ブログ書いてる場合じゃねぇ

タイトルでつっちゃってごめんね

つられた人は申し訳ないけどTwitterに釣られましたってリプしてね^^

 

冗談はこの辺にして今日は寝ます。。。

おやすみなさい。。。。。

食生活を変えてみようと思った話。ダイエットのために

エンジニアを目指し始めて本当に体を動かさなくなりました。

どうも、ダイスケです。

見に来ていただいてありがとうございます。

 

一行目でもいいましたが、パソコンとにらめっこする生活になりまして筋肉量が落ちた関係か爆太りしました。

55kg→65kg

目に見えて浮き輪肉もついたなーって感じです。

。。

。。。

いややばいだろ!!!

どうすんのこれ?しかもまだまだ勉強しないといけないよ??パソコンと縁切れないよ???

ダイエットしよう!!!!!!

 

半年~一年ほどやってきたことを記す。

結果からいうと全然やせなかった。

やる人がやったら相当キツイ内容なのに

ので、路線変更してどう改善していくかも記す。

 

がんばんべ!!

 

やってきたこと:一日一食筋トレなし

理由から挙げていく

  • 食べる時間がもったいない
  • そもそも食べる時間がない
  • お金の節約になる
  • 食べると眠くなるから日中眠くなりたくない
  • 筋トレしなくても痩せるか実験したい

結果

半年~一年続けてきて、65kg→62kg

全然変わってない号泣

夜のみドカ食いしてた。

単純に食べる量減らしても痩せないのは確定した(僕の場合は)

改善していく!

これからやること:1日二食筋トレあり

結局筋トレしないと健康にもなれないし痩せない。

ただ筋トレするだけでは続かないので、ずっっっっと憧れていたブレイクダンスをやるために筋トレやるようにする!

食生活について

朝昼の2食にする!

ただ明らかに時間がなくなるんよね。。。

勉強時間が著しく減ってしまった場合、また方向転換が必要になる。

やってみてから調整していく予定。

まとめ

僕にとって今一番大事な時間は勉強の時間。

それが削れるならダイエットしてるどころじゃない。

ここ2,3年はエンジニアとして勝負の年になると思っている!

子どもとの時間も大事にするが、一番優先度高いかっていうとNoと答える。

冷たいと思われちゃうかね。

まぁその時はその時や。

頑張るぞ!!

コードも画像付きで紹介。scratch超初級編(基礎固め)!

見に来ていただきありがとうございます。

現役プログラマーをやっているダイスケと申します。

scratchは子どもの勉強用のプログラミング教材としては最強です。

ただし、

ただし!

遊んでいるだけでは基礎は育ちません。

この記事ではscratchの基礎を例文と画像を用いて楽しく学べるようにします。

早速いきましょー

 

スプライトを左右に動かす

最初は必ず動き出すためのイベントからスタートしましょう。

イベント一覧はこちら↓

イベント一覧

いろいろなイベントがありますが、わかりやすさを重視する場合緑色の旗が押されたときを使用しましょう。

次点でこのスプライトが押されたときがおすすめです。

 

実装してみよー!

動き(青いボタン)から○○歩動かすを追加して100と入力しましょう。

その後1秒待つを追加します。

100歩動かすとはなんでっしゃろか??

1秒待つは何となく想像つきますね。

初期状態

では旗を押してみましょう。

てい!

旗を押した後、ネコが右に動いたね。

○○歩というのは右に動くみたいですね。

では引き続き付け足していきます。

下にもう一度○○歩動かすと1秒待つを付け足しましょう。

コードが増えたよ。頭の中で想像できるかな?

‐100歩とはどういうことやー!(大体想像つくかな)

動きがわからないときは旗を押してみましょ。

頭の中でコードを動かせなければ実際に押してみればいいのよ。

そのうちできてくるからぁ!

1秒後

そしてそして??

更に1秒後

はい!元の位置に戻ったね。

やったね!これでタイトルにあった左右に動かすということをできました。

更に...倍!!

ではコードの数を二倍に増やしたらどうなるのでしょうか。。。

これは実際に自分で試してみてくださいね!

応用してみよー!

ここで繰り返すときは単純にコードの数を倍にしましたね。

しかし、プログラミングでは反復させることができます。

制御からずっとを持ってきます。

隙間が空いているところに作成したコードをはめ込みます。

そうすると永久に反復してくれるようになります。

更に更に終了の条件を追加することができれば、反復する回数を指定することもできますよ。

それはおいおいやっていきましょう!

学んだこと

  • イベントの種類
  • 動かし方
  • 待ち方(実は重要)
  • 繰り返し方

を学びましたね。

実際に動くものができるのはとても楽しいです。

学んだことはどこかにメモして次の日に見返すか、人に教えるかして定着させましょうねー。

 

スプライトを上下に動かす

次は上下に動かしてみましょう。

実際に答えのコードを見る前にどうやったらできるのだろう?と仮説をたててみるとさらに勉強になりますね。

答えを言ってしまうと

90度向きを変えて歩かせましょう。

以上!

前回のコードから100歩動かす。1秒待つ。‐100歩動かす。1秒待つをコピーしてきましょう。

プログラミングは同じ動作は作成しません。

一度作ったものは再度使用’(横展開ともいう)します。

 

実装してみよー!

ではまず下を向かせましょう。

最初に向きを指定してしまい、必ず同じ向きから始めるようにする

これで下を向くようになります。

次に以前作成したものを追加します。

ちなみにこの時点で動きはわかりますか?

一回見てみましょうか。

下を向いて動いたYO!

じゃじゃーん

下に動いたあとに上に動きましたね。

でもこのままだと下を向いたままで気持ちが悪いので

一番下に逆回転で90度回してあげましょう。

すると初期位置に戻ってきますね。

 

応用してみよー!

次は何しようか。。。

応用しているときが一番楽しいです。

どこか自分の楽しいところを探して伸ばしてみると学習も続きやすいですね。

ずっと。また出た。これの使い方覚えると楽しい。

この応用

大人でもちょっと頭の中で動かすのは難しそう笑笑

どういう風に動くんですかねー。

実際にやって試してください!

学んだこと

  • 向きの変え方
  • 挙動がおかしくなることがあると知った

多分、あらぬ方向にネコが行ってしまった人もいるんじゃないですかね。

そういう場合の対策方法とかも実はあります。

ちなみに力づくで直すのなら

スプライトの情報がのっているところ

こちらを編集すれば初期位置に戻すこともできます。

ただせっかくプログラミングの勉強をしているわけですし、スマーーートに直したいですね。

それもおいおいね!

 

まとめ

最後までみていただきありがとうございます。

超初級編ということもあり、お子さんの年齢によってはつまらなく感じたかもしれませんね。

ただこれだけのコード作成でも学べることはたくさんあります。

定期的に応用をいれつつ楽しくプログラミングを学んでいきたいですねー!

 

しばらくこの形式でブログ書いていきますよ

ではまた!

ふわっふわな理解のAWS lambdaについて調べてみた

実務の中でAWSを使う機会がそれなりに増えてきました。

教えてもらいながらやってるうちに操作はできるんだけど、概念として理解できていないことに気づきまして勉強することにしました。

今回はlambdaについてです。

今後も今回のようにAWSのひとつの機能に絞った記事を書いていく予定です。

お楽しみにー

 

AWS lambdaとは

AWSのサービスの一つで、クラウド上にプログラムを定義できるもの。

フロント→API→lambda→バックエンド

↑こういうイメージ(だと思ってる。間違ってたらごめん)

lambdaは複数設定でき、呼び出すバックエンドのシステムにもメールを送るものやDBに値を保存するものなどさまざま

自分の認識

AWS内外のシステムと簡単に繋げてくれる関数だと思ってる。

なので、一度設定してしまえば保守運用やセキュリティ面を気にせずに開発に集中する環境が作れる。

上記で充分メリットは感じられるが...

他にもできることはあるのだろうか??

lambdaとは(調べた結果)

参考サイト↓

AWS Lambdaとは?メリット・デメリットを解説 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

LIGさんさすがわかりやすかったです。

バックエンドを登録するのかと思いきや、トリガーを登録するって感じなのね。(バックエンドも登録してる??)

メリット

参考サイトからの抜粋

  • コンピューティングリソース(メモリサイズ)の調整が可能
  • 起動するOSやパッチなどはAWSで管理(フルマネージド型)
  • 様々なプログラミング言語で稼働できる←すごい!!!
  • SQSやSNS、CloudWatch(ログみれるやつ!)の上昇などさまざまなトリガーが設定可能
  • 同時起動1000で独立しているコンピュータで動作

デメリット

参考サイトからの抜粋

  • FWが使えない←マ??だから本業のPJではバックエンドだけ素のPythonだったのか???ちょっとこれは今後の勉強科目
  • lambdaのライフサイクルが最大で15分←マジか、まぁそこまで膨大な計算をするようなPJに携わったことはないからレベル感がわからん

自信でSQLインジェクションなどの対策が必要??

セキュリティ面で有利だと思ってたらそんなこともなかったわ。。。すまぬ

まとめ

今回はlambdaについて調べてみた。

少しだけ知識付きました。

少し調べる→実務で使う→少し調べる実務で使う

これらのループでどんどん知識が深くなっていく。むしろそれ以外で僕は理解できない。。。

泥臭くいこう

 

 

グローバル変数使ったら怒られた話。。。

どうも、最近20円で買ってきたうどん2袋をゆでた後に水でしめてかける味噌と焼き肉のタレで食べてるダイスケです。

グローバル変数はあまり使わないでください。」

ソースレビューで言われて、やらないほうがいいのはわかったけどなんで??と思ったのでちょと調べてみました。

まだファイル内のコードが少ないときとかグローバル変数使いがちだと思います。

結論として「よくないので最終手段としましょう。」

では理由

 

グローバル変数とは

グローバル変数とは、プログラム中のどこからでも値をとったり入れたりできる変数です。

いろんな関数で使う値なんか一発グローバルにいれておけばいいじゃーんとか簡単に考えてやりがち。

そしてスパゲッティコードを量産していく...~完~

とはならないように気を付けましょう。

例文となんでダメなのかまとめます。

例えばこんな使い方

var ペンギン int := 1000

func currentPenginPrice() int{

 ペンギン = neage()

 return ペンギン

}

func neage()  int{

 return ペンギン + 500

}

みたいな感じ?

適当に作ってるので多少勘弁してください。

 

ペンギンがグローバル変数ですね。

currentPenginPriceでもneageでもペンギンを使えます。

なぜダメなのか?

一見便利にみえるグローバル変数

まぁでもVueとかだったら割とある形じゃね?とも思う。

これちょっとフロントエンド開発するとき注意しよう。

別言語からメイン言語の練度がなぜか上がっている気がするー。

自分の考え

やっぱり一番最初に思いつくのは、のちのちいろんな処理ができてきたときにグローバルに置いておくと

どこでどんなふうに処理されているのかわからんくなって値がどうなっているのかわかりづらくなる

んだと思う。

あっちでもこっちでも+100とか+400とかやられてたら、じゃあ今いくらなの??ってなるよね。

しかもそれが統括されているわけじゃないし、全部のコードを把握するのは無理だしでメンテナンス性が悪すぎる。

コードが増えてきたときのこと考えるとぞっとするな。。。

調べた感じ

なーーーーるほどーーーーーーー。

やったこともない言語だけど、やっぱりグローバル変数って怖いのね。

参考になったサイト↓

【C言語】なぜグローバル変数は使わない方が良いのか? | だえうホームページ

  • 関数間で依存が発生する
  • コードが読みにくくなる
  • バグの原因がわかりにくい
  • バグりやすい
  • 流用がしにくい

自分の考えで出したところが根本でそこからこんな不具合が発生してしまうらしい。

変数の置き場所だけでこんなに差が出るのロシアの殺し屋おそロシアですね。。。

さっきのコードを直してみよー

さっきのコードね

var ペンギン int := 1000

func currentPenginPrice() int{

 ペンギン = neage()

 return ペンギン

}

func neage() int {

 return ペンギン + 500

}

 

グローバルに置くのがダメなんだからfuncの中に置きましょねー

func currentPenginPrice() int{

 // funcの中に置いたので外では使えない

 var ペンギン int := 1000

 ペンギン = neage(ペンギン)

 return ペンギン

}

func neage(送られてきたペンギン int) int{

 return 送られてきたペンギン + 500

}

 

考えてみたら対処法は簡単でしっかりと引数にいれてあげようねってこと。

そうしたらわからぬところで変な値も入れられないしね。

基本プログラミングはがちがちの縛りがあったほうが良くなることが多いのだー。

まとめ

実務で少しでも疑問に思ったことは書き出してみるとすっきりする。

次同じ場面にでくわしても思いつくでしょう。

アウトプット大事!!!!

 

この記事を見てくれた人も勉強になりましたね。

グローバル変数を撲滅しよう!!」

ダイスケお兄さんとのお約束だよー

 

最後まで読んでいただき

ありがとやでっ!

改めて考えるとフロントエンドとバックエンドの処理の違いってなんだ??

職業訓練校時代の同期とLINEしてて思いました。

どこからどこまでがフロントで処理する内容で、どこからどこまでがバックエンドで処理する内容なのか????

小学生でもわかるレベルで説明ができないのでとりあえず記事にして考えをまとめることにした。

 

プログラムってのは基本的には取得加工表示だと思ってて、さらに細分化するとリストを取得して、加工するためにループと条件分岐で加工して、繰り返し表示するもの。

でもそれってフロントでもバックエンドでもできるよね?

 

めっちゃ簡単にいうと

フロントの入力フォームから数字の1と1をバックエンドに送ってあげる。

バックエンドで1+1とする。それをフロントに返す。

フロントで2と表示する。

 

いやいやいや!それならフロントで1+1すればいいやんけ!!!!!!

まぁこれは極端な例だけど、大なり小なりこういう問題には直面する。

(ただし、タイトルであるフロントとバックエンドでやることが明確に整理できている人はちゃんとした場所で処理できるのである)

より上位の工程に行くためにもしっかりとこの辺の理解をしておくといいと思う。あと興味がある。どうも学習欲3位です。

行くZE

 

フロントエンドでやること

まずはフロントエンドでやることをまとめていこう。

ただ一番長い経験なのがフロントエンドなのでなんとなくは理解しているつもり。

自分の中での考え

まぁフロントだからユーザが直接触って値が変わる処理はフロントエンドの仕事よね。

さっきも出したけど入力フォーム。

間違いなくフロントで処理を行うべき。

いちいちバックエンドに送るのはユーザが使いにくくなる(ユーザビリティの低下を招く)

リアクティブに処理できたらかっこいいしね。

調べた内容

ユーザの目で見える範囲や触れる範囲のデータを加工する。

ボタンのクリックやページ移動(遷移)なども含まれる。

なんか大体イメージあってるなー。

最近はフロントもバックもやらせてくれるから割と理解しやすいかも。

バックエンドでやること

バックエンド歴3週間くらいです。

どうも。

いうてAWSの勉強もはさんでるし、割と頭に入っているのかもしれない。

自分の中での考え

ユーザの操作とは関係ないが、裏で作業することを行う。

例えば

  • データベースとのやりとり
  • ログイン機能
  • 個人情報の取り扱い
  • クレカ決済

などなど

これらをフロントでやってたらセキュリティリスクやパフォーマンスの低下を招く恐れがある。

苦手は得意を頼るってことだね

調べた内容

大体上の内容であってた笑笑

あとコードの重複と保守性もあったね。

ここら辺は各プロジェクトのコーディングルールで多少の違いはあれど、方向性は同じ

まとめ

改めて記事とすることでそれぞれのやることがまとめられた。

いうてなんとなくは合ってたけど、説明できるのとなんとなくわかってるのは違う。

今後もあーこれどういうことだっけーー??みたいな内容があったら気軽に記事化してまとめていく。

インプットしたらアウトプットもセットやでー。

子どものプログラミング教室体験会に現役プログラマーが侵入した件(何やったかも少し書くよ)

どうも現役プログラマーやってます。

ダイスケです。

この間子どものプログラミング教室の体験会にいってきました。

  • 子どもにプログラミングを習わせたい
  • でも自分はプログラミング教育の良しあしがわからない...
  • どんなことをやっていて、何を教えているのか知りたい!

こんな悩みを持つ人たちに向けて今回の経験が役に立つと思い書くことにしました。

結論としてよく考えられているなと思いました。

具体的にどんなことをやったのかも書きますよー。

教材はscratchを使用したのでインストールしてみてからこの記事を見てくれたら想像がしやすくていいと思います。

インストール方法は以前の記事で書きました。

daisuke-web.hatenablog.com

 

この記事でわかりづらかったら「scratch インストール方法」で調べたらもっとわかりやすい記事も出てくると思います。

それではいきますー

 

プログラミング教室の雰囲気

市の施設の会議部屋を4部屋くらい貸切って人数は満員になってました。

需要の高さを感じましたね。

実際僕も働いていて業界の人不足感を感じています。

まだまだ売り手市場です。

今後はわかりませんがね!

やったこと

  • プログラミングとは何か(コンピュータに出す命令だよー)
  • scratchを使用したプログラミングの体験
  • 先生の組んだミニゲームをやる

時間はそんなに長くはありませんでした。

30分くらい??

1クラス15人くらいいたのでわちゃわちゃしていましたが、かなり駆け足でやってました。

具体的に何をやったのかは後述します。

周りの子どもの雰囲気

やっぱりゲームが好きそうな子が多かったですね。

「簡単だよこんなのー!」

みたいな声も聞こえてきました。

確かに3年生くらいになると内容は簡単すぎてつまらなかったでしょうね...

うちの子は年長ですが、漢字が読めないのでちょっと苦戦していました。

親の雰囲気

教育熱心な親ばっかりでしたー!

ということはなく、よくわかんないけど来ましたみたいな感じの人も多かったですね。

スイミングとか英語教室みたいな。

そこまで浸透してきているんだなーと思いました。

一言で表すならそう

「流行」

子どもに適正があるといいですね!

具体的にやったこと

ここからは具体的に何をやったのかを書いていきます。

この記事でやりたかったことですね。

とても簡単な内容ですが、プログラミングとは何かみたいなことは理解できると思います。

実際にscratchの環境を整えて、この記事の内容をそのまま真似してもらえれば勉強になります。

子どもとやってみてはどうでしょうかー

スプライトの色を変える

新規から始めてください。最初の状態ってことですね。

その後一番左にある黄色の丸(イベント)をクリックします。

このスプライトが押されたとき

のパネルを真ん中に持っていきます。

次に紫の丸(見た目)をクリックします。

 

その中から色の効果を25ずつ変えるをこのスプライトが押されたときの下に置きます。

以上!!!完成!!!!

さて何が起こるでしょうか。

右上の猫?を見てみます。

顔が少し腹立たしいな

この猫をクリックしてみましょう。

するとどうなるか?

想像してからやってみましょうね。

想像する工程に意味があるので

 

 

答え!

お前...色が!!

ちょっと色があれな感じになりました。

クリック連打してみましょ!どんなふうになるのかな!

子どもたちはめちゃめちゃテンション上がってましたね笑笑

ちなみに応用編としてオレンジの丸(制御)にあるずっとを持ってくると面白い動きになります。

興味のある人は試してみてください。

スプライトの角度を変える

次は角度を変えてみましょう。

ほぼ色の時と同じなので省略しますね。

青い丸(動き)の15度回すを持ってきて付けてみましょう。

すると

こいつ...動くぞ!?

ちなみに中の数字も変えられますよー

こうするとどうなるかなー

どしたんそんな下向いて。話し聞こか?

更に応用効かして前回やったずっとと組み合わせるとー??

どうなるかいろいろ試してみてねー

ミニゲーム

イメージ図。背景もルールももっと複雑なものだったよ

先生の作ったリンゴをキャッチする猫のゲームをやっていました。

これがなかなかの難易度で!

コードを想像すると結構大変そうだなーってくらいには作りこまれていましたねー

子どもたちも喜んでやっていたのでそのうち似たようなゲームを作ってみたいなと思っています笑笑

まとめ

最後までみていただいてありがとうございます。

教室に通わせる意味ですが、本買って家で親が教えられるレベルなので技術としてのメリットはないですね。

鍛えられるのは考え方。

得られるのは仲間。

というところでしょうか。

総合的に判断していきたいですねー。

 

とりあえず、うちの子は適正がそれなりに高そうな感じがするので習わせてみようと思っています。

選択肢を増やしてあげることが親の役目であり、それ以上のことはできませんからね。

適当に頑張るやでー。