2019-01-01から1年間の記事一覧
遂に年末年始休暇が始まりましたね。 こういう長期休暇は1年を振り返る絶好の機会なので、いろいろと思い出しながらまとめてみました。 Go言語始めました。 やっぱり1番大きいのはこれかなと。 Go言語を全くやったことなかったけど、仕事で導入して使ってみ…
前回に引き続き、今回はよく使われるS3について。S3の料金体系って皆さん知っての通り、保存したオブジェクトの容量と、アウトバウンド転送量で課金される仕組みになっています。 今回は保存容量を削減して上手くコストカットするやり方を勉強したので書きた…
AWSの中でも使ってる人が多い、サーバーレスサービスのlambda。 普段、なんとなくfunctionを呼び出してるけど、中の仕組みってどうなってるんだ?と思ったので、復習の意味を兼ねてlambdaをもう一度勉強してみた。 そしたら案外しらない事もチラホラ・・・ …
イントロダクション はじまりは某企業のエンジニアと話していたときだった。 「Kaggleって知ってる?」 彼は今まで話していた話題をぶった切ってそう言ったのだ。 今までGoがどうのこうの、k8sは難しいだの話していたのに唐突に、だ。 俺はその時Kaggleの事…
先週、golang.tokyoのLT発表会に参加してきました。 LTを16回も発表するという、かなり長丁場の勉強会でしたが、その中で結構gRPCについて言及しているのが多いな。と思いました。 やっぱりマイクロサービスとして使われる事が多いGoだし、gRPCもやりたいな…
僕が愛用しているエディタのVisualStudioCode(以下VSCode)にはデバッグ機能があります。 ちょうど左側のメニューの上から4つ目に鎮座しています。 が、この機能、ずっとVSCodeを使っていても使ったことがありません。 多機能なエディタなのは知ってるので…
AWSの代表的なNoSQLデータベースのDynamoDB。 SAAの勉強で覚えたきりでしたが今回復習を兼ねて活用方法を考えてみました。 DynamoDBとは Amazon DynamoDB は、規模に関係なく数ミリ秒台のパフォーマンスを実現する、key-value およびドキュメントデータベー…
今回はちょいネタ。 毎回起動する度に出るアップデートを無視し続けてきましたが、そろそろアップデートしようと思い2019.2.13にしました。 既存のプロジェクトでは2019.1.11を使っていたので、そんなに離れていないし特に問題ないだろうと思い、気軽にアッ…
今週実装していて色々と学びがあったのでメモとして。仕事で使っているCakePHPのテンプレートでVue.jsを使っているのですが、今まではテンプレート内でPHPと組み合わせて使っていました。(コントローラーから値を渡してループしたり) 今回、なるべくVue.js…
最近interfaceについて詳しく使う機会があったので、今回はinterfaceについて。 interfaceとは 以前もちょこっと書いたけど何でも入る型です。自分の場合はjson.Marshalするときによく使います。というかここでしか使ったことがありませんw mapの値の型をin…
以前、謎のrune型に遭遇しました。 ルーンと読むのですが、名前がカッコいいので印象に残りましたw それは文字列を操作していた時に起こった runeを初めてみたのはfor rangeで文字列を取り出していたときです。 mojiretu := "abcdefgh" for _, v := range m…
普段何となく使っていたスライスですが、今回はその仕組みを詳しく勉強してみました。 スライスとは 簡単に言うと、いわゆる可変長配列です。他言語だとListが近いイメージでしょうか。 ここらへんは以前の記事を参照してもらえると幸いです。 スライスの挙…
GoではPHPのin_arrayみたいな一発で配列にあるかどうか判別する関数は存在しません。 なので普通に書いて実装していくことになります。 list := []int{0, 1, 2, 3} target := 1 for _, v := range list { if v == target { //一致したときの処理 } } 単純にf…
前回に引き続きAWS。今回はS3について。他のサービスに比べて特に使う機会が多いと思われるS3。 シンプルストレージと銘打ってるものの、結構多機能だったりします。 S3のしくみ S3はオブジェクトストレージといい、ファイルをオブジェクト単位で保存してお…
今回はSAAの試験で結構重要だな・・・と思ったVPCについて。 VPCはVirtualPrivateCloudの名前の通り、自分だけのプライベートな仮想クラウドです。 VPCの中にEC2などのインスタンスを配置していくので、土台となる最も基本的なサービスです。 なのでSAAには…
以前から勉強していたAWSソリューションアーキテクト・アソシエイト(以下SAA)ですが、この度、合格することが出来ました!合格できてひとまず安心です。勉強は少しずつしていたのですが、中々自信がつかなくて、本を買ってから3ヶ月経過してました・・・w…
今回はsortパッケージを使ったのでsortに関して。 ひたすらsliceをsortしたいときにおすすめ。 sliceのソート sortパッケージは主に型に応じたソート関数が用意されています。 sort.Ints sort.Strings sort.Float64s これを使うだけで昇順にソート完了。これ…
bufioを使う理由 前回はScanを使って入力の取得を行いましたが、今回はbufioを使う方法を書きたいと思います。 bufioは一言で言うと、一行ずつ入力を取得する関数です。 Scanと似ていますが、こちらのほうが負荷が低いので早く実行出来ます。 少ない桁数なら…
競技プログラミングで他の言語を使う 競プロをかじったことのある人には周知の通り、C++が主流になっていて、AtCoderも上位ランクはC++ばかりです。 では他の言語はダメなのかと言われると、少なくとも高位の、それこそ赤とかにならない限りは問題ないと考え…
競技プログラミングでのGo 前回に続き、Goで競技プログラミングを攻略しているので、競プロをやってる人にはおなじみの標準入力から文字列を取得する方法を書きます。 僕はGoで書いているのでGoのやり方になりますが、Goは他の言語に比べると文字列を扱う機…
唐突ですが最近、競技プログラミングにハマっています。 具体的にはAtCoderの問題を解いたり、コンテストに参加したり・・・(まだ1回ですが) 今はまだ茶色ですが、最初の目標は緑色を目指して頑張っています。と、競技プログラミングをやりはじめた訳です…
最近やっと本腰を入れて勉強し始めたAWSのソリューションアーキテクト・アソシエイトの模擬試験を受験しました。 結果は以下の通り。 総合スコア: 80% トピックレベルスコア: 1.0 Design Resilient Architectures: 88% 2.0 Define Performant Architectures:…
今回はGoの正規表現の扱いについてです。 Goにも他の言語と同様、正規表現を扱うパッケージのregexpというものが標準で組み込まれています。 import "regexp" これで準備完了です。 文字列のマッチングを行う 正規表現を使うシーンで一番多いのがこれだと思…
今回はJSONの扱いについて。大体どの言語にもJSONを扱う関数があるのですが、Goにもちゃんと標準パッケージ内にあります。 まずはパッケージをインポートしておきましょう。 import ( "encoding/json" ) デコード jsonのデコードは超簡単 json.Unmarshal([]b…
前回、laravelのイントロダクションを書いた訳ですが、やっぱりディレクトリ構成が気になったので・・・laravelは他のフレームワークにあるような、MVCの各ファイルがそれぞれのディレクトリにあるという構造になっていません。 特にモデルに関してはModelと…
Goの記事多い気がしますが、今回もGoです。 今回はGoが2番めに手を出すのにいいなーと思ったので記事を書きました。 なぜ2番目? ってこのタイトルで思ったのではないでしょうか。 何故かというと、Web初心者とかが最初に手を出す言語ではないからです。 私…
今回は生活感前回でいきます笑paypayが大々的な還元で去年話題になりましたが、他のペイも含め、ちょくちょくキャンペーンはやっています。 利用頻度が高い人が多いであろうコンビニでもこんな感じで。paypay.ne.jp還元やっていますね。 paypayはキャンペー…
エンジニアを目指そうとしたとき、まず何から手をつけていいか分からないのが普通だと思います。 広告とかではよくプログラミングスクールの文字が出てきて、受講したほうがいいのか。それとも独学か・・・ まず手を動かす前に迷う要素が多い。それがエンジ…
今回はvue.jsのルーティングについて。vue.jsを使う目的は様々だと思いますが、その一つにSPAがあると思う。 そのSPA化にあたって必要なのがvue-routerという機能です。ぶっちゃけ簡単に言えばこれさえ使えばSPAになります。 vueは基本的にコンポーネントを…
はじめに CakePHP以外のフレームワークも触っておかないとなぁ・・・って思いlaravelを使ってみました。 今一番勢いがあるフレームワークですし、新規でPHPやる人ならlaravelから始めて間違いないと思います。 開発環境 PHP 7.1以上 とりあえずインストール…