kazu22002の技術覚書

PHPerでありAWS好きの、うさぎ年のエンジニアの日々

プログラミング

「Go言語によるWebアプリケーション開発」を読んだ

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 今回「Go言語によるWebアプリケーション開発」を読み、各章ごとにアウトプッ…

「Go言語によるWebアプリケーション開発」8章 ファイルシステムのバックアップ

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 最後の8章は「ファイルのバックアップ」です。 ファイルを監視して、変更が…

「Go言語によるWebアプリケーション開発」7章 ランダムなおすすめを提示するWebサービス

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 7章は「ランダムなおすすめを提示するWebサービス」で、公開されているAPIを…

「Go言語によるWebアプリケーション開発」6章 REST形式でデータや機能を公開する

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 6章は、5章で作成した投票システムのGUIをWEBページとして作成する章になっ…

「Go言語によるWebアプリケーション開発」5章 分散システムと柔軟なデータの処理

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 5章は分散システムと柔軟なデータの処理として、TwitterのストリーミングAPI…

「Go言語によるWebアプリケーション開発」4章 ドメイン名を検索するコマンドラインツール

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 4章はコマンドラインツールを作成します。小さいプログラム群を作成し、コマ…

「Go言語によるWebアプリケーション開発」3章 プロフィール画像を追加する3つの方法

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 3章は、1,2章のチャットアプリケーションにプロフィール画像を追加して、エ…

「Go言語によるWebアプリケーション開発」2章 認証機能の追加

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 2章は、1章のチャットアプリケーションに認証機能を追加する章です。 OAuth2…

「Go言語によるWebアプリケーション開発」1章 WebSocketを使ったチャットアプリケーション

Go言語によるWebアプリケーション開発作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 最近、go言語でずっと書いており、色々できることを増やしていきたいと思っ…

golangのループ中のパラメータの値変更の書き方

golangのループで値を変える場合の書き方を改善するきっかけの記事にしようかと思い書いてみます。 いままでの書き方 type Sample struct { Number int64 } func main() { tmp := make([]Sample, 20) for k, v := range tmp { v.Number += int64(k) } fmt.Pr…

golangのfloat64の丸誤差について

プログラムの小数点の計算や割り算において、丸誤差を認識する機会がたまにあります。 今回はgolangのプログラムを書いていて発生したので、検証してみました。 プログラムと検証 func main() { fmt.Printf("%f\n", getFloat() * 1000 ) fmt.Printf("%.10f\n…

golangのAPIとTypescriptで困ったこと

golangでWEB APIを作成し、JavascriptでAjaxとしてデータ取得やデータ編集を行った際に、かなり大変だったため書いてみようと思います。 事前知識があるだけで大分変わっていたかと思います。 Angular6での実装でTypescriptを使用しています。 Typescriptに…

golangとWEB APIを作る際に気にすること

golangでWEB APIを作る際に詰まったことや、事前に対策をしておいたほうがいいことを書いてみます。 受信用構造体と返却用構造体を作成 APIの受信用に構造体を作り、返却用に構造体を作る方が個人的にはいいと思います。 コード量は増えますが、さぼらずに書…

golangとxormとoracle ~ Joinと取得カラム ~

golangのxormでJoinしたデータを取得する場合の注意点を書いてみます。(oracleは関係ないかな。) github.com 同じカラム名 joinしたデータを取得する際に、xormのextendsオプションで取得する場合に、同じカラム名がある場合、指定する構造体により取得でき…

golangとxormとoracle ~ AutoIncrementとJoin ~

golangでの開発は楽しいですね。最近ひたすら書いている気がします。 その中でoracleを使う開発があり、かなり困ったことがあったので、解決案を書いてみようと思います。 xorm github.com ORMを利用するために選んだライブラリです。oracleがexperimentでも…

いまさらCakePHP2のモデルが遅い原因を発見

最近、CakePHP1系からCakePHP2に移行する機会があり対応しました。 さすがにバージョンが上がるので、悪くはならないと想定していましたが、逆に遅くなってしまい、かなり困りました。そして原因追求の旅をすることになりましたね。(先が見えなかったー。。…

iOSのhttp2ベースのpush通知ってあまり認知されていない感じですか

iOSのpush通知でいままではSSHでの接続でのデータ送信でしたが、http2ベースので送信が結構前にできるようになっています。 developer.apple.com 結構時間が立っているので、やり方をググれば出てるかと思いましたが、意外とないですね。 ちゃんと調べるとFC…

JWTを使っている人に話を聞いてみた

JWTの検討を先日行いましたが、実際に運用で問題なく使っている人が近くにいたため、話を聞く機会がありましたので、ちょっと質問してみました。 どのように使ってますか アプリからAPIでデータを取得するために使用している。 どうしてJWTを使用しようと思…

JWTが使えそうなため実装する前に調べてたことです

iOSのhttp2でのpush通知をやろうとした際に、JWTを使う必要がありいろいろと調べた内容です。 結構昔からある仕様ですが、触れる機会とこの技術はなんだろうという好奇心がなければ、気にしないですよね。 jwt.io しらべてみてWebApiで活用が多いとのことで…

【Vue.js】computedとmethodsの違い

Vue.js触るの楽しいです。 ただ、絶賛混乱中です。 computedとmethodsとの違いについて、使い方が混乱しています。 jp.vuejs.org 算出プロパティのcomputed <div id="example"> <p>Original message: "{{ message }}"</p> <p>Computed reversed message: "{{ reversedMessage }}"</p> </div> <script> var v…

npmの運用はどうするのがいいか考えてみる

npmを利用してライブラリを利用する機会が増えてきました。 www.npmjs.com ライブラリ名でインストールすれば便利な機能が使えちゃうので、よく理解せずに使っている感じがあります。 インストールすると、node_modulesにファイルがものすごい数でインストー…

Vue.jsで入力フォームの値を取得して処理してみる

Vue.jsで入力フォームの値取得して、独自処理を書く処理でやってみた内容です。 <div id="input-form"> <div> <input type="text" v-model="name" > <input type="text" v-model="mei" > <input type="text" v-model="start_date"> <button v-on:click="getSearch"> </div> <div> {{ fullName }} </div> </div> <script> var inputViewModel = new Vue({ el: '…

Vue.jsのcomponentを使ってリスト表示

Vue.jsを使って、もっと実践的なリスト表示をしたい。ということで、ドキュメント参照です。 jp.vuejs.org コンポーネントとv-forが一番しっくり来る書き方だったので、参考につくってみます。 <div id="name-list-example"> <div is="name-item" v-for="(item, index) in lists" v-bind:key="item.id" ></div> </div> <script> Vue.component('name-item', { template: '\ <div class="item">\ </div>

Vue.jsでデータバインディング

公式ドキュメントのサンプルを参考に勉強しています。 ディレクティブ vue.jsのサンプルを見ているとディレクティブを覚えるだけで結構できることが広がる感じがする。 jp.vuejs.org 個人的に使ったことがあるのは「v-on」「v-bind」「v-for」「v-model」ぐ…

Vue.jsでHelloVue表示とループ表示

Vue.jsドキュメント見ながら四苦八苦中です。 ただ楽しくなってきたので、いろいろやったことや詰まった点を混ぜながら書いて行きたいです。 基本はドキュメントのサンプルを実行しているだけです。 まず最初の表示にしてみる <html> <head> <meta charset="UTF-8"> <script src="https://cdn.jsdelivr.net/npm/vue@2.4.4/dist/vue.js"></script> </head> <body> <div id="app"> {{ message }} </div> <script> va…</body></html>

Fluentdでの動作チェック方法

基本新しいことをやるときに、どうやったらエラーなのか動いているのかを見極めるが大変です。 さらにネットワークが絡むとさらに厄介だと思っています。 動いていない際の切り分けがうまくなると新しいことをするのにも役立ちますね。 ということで、Fluent…

コードをきれいにする努力

自分のソースが汚いことがものすごく理解できるようになりました。 意識的に共通化を行うようにしていたが、見やすいソースや理解しやすいソースはもう少し別の観点を意識する必要があったことを教えてもらっています。 世の中で言われていることそのままだ…

ログサーバーへの集約と転送のFlentdとAmazonElasticsearchServiceの具体的な設定

AmazonElasticsearchService(AES)を利用してログを収集、表示しています。 Fluentdを利用したのですが、設定までそれなりに苦労したので、書いておきます。 IPでの制限は以前記事にしたので、割愛。 今回の環境 CentOS7 Nginx logはltsv形式 Fluentd ( td-a…

ALBが便利すぎです

AWSのロードバランサーの話です。 AWSのロードバランサーはELB,ALB,NLBがあります。(NLBはかなり最近のアップデート) ALBのなにがいいのか ApplicationLoadBalancerという名称です。 aws.amazon.com ALBはURLのパスまたはHostでサーバーの切り分けが可能に…

AmazonElasticsearchServiceを使ってみた

AmazonElasticsearchService(AES)でログ収集、分析を試しています。 アクセスログはサービスを運用する上で大切ですね。 複数サーバーで運用しているためログ分析がしっかりできるものが欲しく、前から使いたかったElasticsearch+Kibanaがすぐ使えるAESを…