Lapis Lazuli

technical blog for web developer

2019-01-01から1年間の記事一覧

2019年を振り返る

遂に年末年始休暇が始まりましたね。 こういう長期休暇は1年を振り返る絶好の機会なので、いろいろと思い出しながらまとめてみました。 Go言語始めました。 やっぱり1番大きいのはこれかなと。 Go言語を全くやったことなかったけど、仕事で導入して使ってみ…

S3を効率的に使ってコスト削減したい

AWS

前回に引き続き、今回はよく使われるS3について。S3の料金体系って皆さん知っての通り、保存したオブジェクトの容量と、アウトバウンド転送量で課金される仕組みになっています。 今回は保存容量を削減して上手くコストカットするやり方を勉強したので書きた…

lambdaの挙動を整理する

AWS

AWSの中でも使ってる人が多い、サーバーレスサービスのlambda。 普段、なんとなくfunctionを呼び出してるけど、中の仕組みってどうなってるんだ?と思ったので、復習の意味を兼ねてlambdaをもう一度勉強してみた。 そしたら案外しらない事もチラホラ・・・ …

Kagglerになろう

イントロダクション はじまりは某企業のエンジニアと話していたときだった。 「Kaggleって知ってる?」 彼は今まで話していた話題をぶった切ってそう言ったのだ。 今までGoがどうのこうの、k8sは難しいだの話していたのに唐突に、だ。 俺はその時Kaggleの事…

gRPCを学ぶ

先週、golang.tokyoのLT発表会に参加してきました。 LTを16回も発表するという、かなり長丁場の勉強会でしたが、その中で結構gRPCについて言及しているのが多いな。と思いました。 やっぱりマイクロサービスとして使われる事が多いGoだし、gRPCもやりたいな…

VSCodeのデバッグをGoで使ってみる

僕が愛用しているエディタのVisualStudioCode(以下VSCode)にはデバッグ機能があります。 ちょうど左側のメニューの上から4つ目に鎮座しています。 が、この機能、ずっとVSCodeを使っていても使ったことがありません。 多機能なエディタなのは知ってるので…

【AWS】DynamoDBを活用したい

AWSの代表的なNoSQLデータベースのDynamoDB。 SAAの勉強で覚えたきりでしたが今回復習を兼ねて活用方法を考えてみました。 DynamoDBとは Amazon DynamoDB は、規模に関係なく数ミリ秒台のパフォーマンスを実現する、key-value およびドキュメントデータベー…

【Unity】バージョンアップしたらfirebaseエラー

今回はちょいネタ。 毎回起動する度に出るアップデートを無視し続けてきましたが、そろそろアップデートしようと思い2019.2.13にしました。 既存のプロジェクトでは2019.1.11を使っていたので、そんなに離れていないし特に問題ないだろうと思い、気軽にアッ…

テンプレートからControllerをAPIっぽく使う

今週実装していて色々と学びがあったのでメモとして。仕事で使っているCakePHPのテンプレートでVue.jsを使っているのですが、今まではテンプレート内でPHPと組み合わせて使っていました。(コントローラーから値を渡してループしたり) 今回、なるべくVue.js…

【Go】interfaceの使い所

GO

最近interfaceについて詳しく使う機会があったので、今回はinterfaceについて。 interfaceとは 以前もちょこっと書いたけど何でも入る型です。自分の場合はjson.Marshalするときによく使います。というかここでしか使ったことがありませんw mapの値の型をin…

【Go】rune型という見慣れない型

GO

以前、謎のrune型に遭遇しました。 ルーンと読むのですが、名前がカッコいいので印象に残りましたw それは文字列を操作していた時に起こった runeを初めてみたのはfor rangeで文字列を取り出していたときです。 mojiretu := "abcdefgh" for _, v := range m…

【Go】スライスの仕組みを学ぶ

GO

普段何となく使っていたスライスですが、今回はその仕組みを詳しく勉強してみました。 スライスとは 簡単に言うと、いわゆる可変長配列です。他言語だとListが近いイメージでしょうか。 ここらへんは以前の記事を参照してもらえると幸いです。 スライスの挙…

【Go】配列を検索する

GO

GoではPHPのin_arrayみたいな一発で配列にあるかどうか判別する関数は存在しません。 なので普通に書いて実装していくことになります。 list := []int{0, 1, 2, 3} target := 1 for _, v := range list { if v == target { //一致したときの処理 } } 単純にf…

SAAに出てきたサービス・S3

AWS

前回に引き続きAWS。今回はS3について。他のサービスに比べて特に使う機会が多いと思われるS3。 シンプルストレージと銘打ってるものの、結構多機能だったりします。 S3のしくみ S3はオブジェクトストレージといい、ファイルをオブジェクト単位で保存してお…

SAAに出てきたサービス・VPC

今回はSAAの試験で結構重要だな・・・と思ったVPCについて。 VPCはVirtualPrivateCloudの名前の通り、自分だけのプライベートな仮想クラウドです。 VPCの中にEC2などのインスタンスを配置していくので、土台となる最も基本的なサービスです。 なのでSAAには…

AWS認定ソリューションアーキテクト・アソシエイトに合格したので勉強方法を記します

以前から勉強していたAWSソリューションアーキテクト・アソシエイト(以下SAA)ですが、この度、合格することが出来ました!合格できてひとまず安心です。勉強は少しずつしていたのですが、中々自信がつかなくて、本を買ってから3ヶ月経過してました・・・w…

【Go】Goで競技プログラミング(sortパッケージ)

今回はsortパッケージを使ったのでsortに関して。 ひたすらsliceをsortしたいときにおすすめ。 sliceのソート sortパッケージは主に型に応じたソート関数が用意されています。 sort.Ints sort.Strings sort.Float64s これを使うだけで昇順にソート完了。これ…

【Go】Goで競技プログラミング(bufio.Scannerを使って入力を取得)

bufioを使う理由 前回はScanを使って入力の取得を行いましたが、今回はbufioを使う方法を書きたいと思います。 bufioは一言で言うと、一行ずつ入力を取得する関数です。 Scanと似ていますが、こちらのほうが負荷が低いので早く実行出来ます。 少ない桁数なら…

Goで競技プログラミングを戦う

競技プログラミングで他の言語を使う 競プロをかじったことのある人には周知の通り、C++が主流になっていて、AtCoderも上位ランクはC++ばかりです。 では他の言語はダメなのかと言われると、少なくとも高位の、それこそ赤とかにならない限りは問題ないと考え…

【Go】Goで競技プログラミング(標準入力について)

競技プログラミングでのGo 前回に続き、Goで競技プログラミングを攻略しているので、競プロをやってる人にはおなじみの標準入力から文字列を取得する方法を書きます。 僕はGoで書いているのでGoのやり方になりますが、Goは他の言語に比べると文字列を扱う機…

競技プログラミングはじめました

唐突ですが最近、競技プログラミングにハマっています。 具体的にはAtCoderの問題を解いたり、コンテストに参加したり・・・(まだ1回ですが) 今はまだ茶色ですが、最初の目標は緑色を目指して頑張っています。と、競技プログラミングをやりはじめた訳です…

AWS認定SAAの模擬試験を受けました

AWS

最近やっと本腰を入れて勉強し始めたAWSのソリューションアーキテクト・アソシエイトの模擬試験を受験しました。 結果は以下の通り。 総合スコア: 80% トピックレベルスコア: 1.0 Design Resilient Architectures: 88% 2.0 Define Performant Architectures:…

【Go】正規表現の使い方

GO

今回はGoの正規表現の扱いについてです。 Goにも他の言語と同様、正規表現を扱うパッケージのregexpというものが標準で組み込まれています。 import "regexp" これで準備完了です。 文字列のマッチングを行う 正規表現を使うシーンで一番多いのがこれだと思…

【Go】jsonを扱う

GO

今回はJSONの扱いについて。大体どの言語にもJSONを扱う関数があるのですが、Goにもちゃんと標準パッケージ内にあります。 まずはパッケージをインポートしておきましょう。 import ( "encoding/json" ) デコード jsonのデコードは超簡単 json.Unmarshal([]b…

【PHP】laravelのディレクトリ構造を考えたい

前回、laravelのイントロダクションを書いた訳ですが、やっぱりディレクトリ構成が気になったので・・・laravelは他のフレームワークにあるような、MVCの各ファイルがそれぞれのディレクトリにあるという構造になっていません。 特にモデルに関してはModelと…

【Go】Go言語が2番目の言語に最適な理由

GO

Goの記事多い気がしますが、今回もGoです。 今回はGoが2番めに手を出すのにいいなーと思ったので記事を書きました。 なぜ2番目? ってこのタイトルで思ったのではないでしょうか。 何故かというと、Web初心者とかが最初に手を出す言語ではないからです。 私…

キャッシュレス決済が軒並み還元率を下げてるのか考えてみた

今回は生活感前回でいきます笑paypayが大々的な還元で去年話題になりましたが、他のペイも含め、ちょくちょくキャンペーンはやっています。 利用頻度が高い人が多いであろうコンビニでもこんな感じで。paypay.ne.jp還元やっていますね。 paypayはキャンペー…

はじめのプログラミング勉強方法

エンジニアを目指そうとしたとき、まず何から手をつけていいか分からないのが普通だと思います。 広告とかではよくプログラミングスクールの文字が出てきて、受講したほうがいいのか。それとも独学か・・・ まず手を動かす前に迷う要素が多い。それがエンジ…

【Vue.js】vue-routerでルーティング

今回はvue.jsのルーティングについて。vue.jsを使う目的は様々だと思いますが、その一つにSPAがあると思う。 そのSPA化にあたって必要なのがvue-routerという機能です。ぶっちゃけ簡単に言えばこれさえ使えばSPAになります。 vueは基本的にコンポーネントを…

【PHP】laravelことはじめ

はじめに CakePHP以外のフレームワークも触っておかないとなぁ・・・って思いlaravelを使ってみました。 今一番勢いがあるフレームワークですし、新規でPHPやる人ならlaravelから始めて間違いないと思います。 開発環境 PHP 7.1以上 とりあえずインストール…