タグ

2016年12月29日のブックマーク (34件)

  • GoのJSON API ServerでゆるふわJSON responseを返す方法 - Qiita

    ブログのコピペです(https://t-hiroyoshi.github.io/go-yuru-json) 最近GoAPI Gateway(Aggregator)としている環境で開発を行なっているのですが、呼び出し先のServiceの実装が終わっていなくてもClientでとりあえずJSONのresponseが欲しいという状況がありました。 JSONのUnmarshalについてはgolangはゆるふわにJSONを扱えまぁす!という記事が有ったのですが、ゆるふわMarshalについては情報がありませんでした。 ですが考えてみればjson.Marshal()すると[]byte型になるのでそれを初めから作ってあげればよかったです。 まあもちろんこれではGoの良いところを捨てているようなものですが、開発中のとりあえずのレスポンスには手軽で良いと思いました。 package main import

    GoのJSON API ServerでゆるふわJSON responseを返す方法 - Qiita
    tuki0918
    tuki0918 2016/12/29
  • Goのjson.Marshal/Unmarshalの仕様を整理してみる · I Will Survive

    August 13, 2014 - golang TL;DR goの構造体につけるタグは、フォーマットが不正だと読み込まれない(当然) json.Marshalは、構造体のjsonタグがあればその値をキーとしてJSON文字列を生成する json.Unmarshalは、構造体のjsonタグがあればその値を対応するフィールドにマッピングする jsonタグがなければ、完全一致もしくはcase-insensitiveなフィールドにマッピングする では、ひとつづつ確認していきます。 goの構造体につけるタグは、フォーマットが不正だと読み込まれない(当然) goの構造体にはタグの機能があって、型の後に特定のフォーマットでアノテーションが記述できます type MyType struct { Hoge string `foo:"1" bar:"2"` } key:"value"をスペース区切りで複数かけ

    tuki0918
    tuki0918 2016/12/29
  • golang は ゆるふわに JSON を扱えまぁす! — KaoriYa

    以下のツイートにもある通り、一見 golang は struct を定義しないと JSON を扱えないように見えます。他にも似たようなツイートをチラホラと見かけましたが、それらは全部誤解です。そこでこの記事では、golang でゆるふわ (structを定義せず) に JSON を扱う方法を紹介します。 golangrubyのようにゆるふわにJSONは扱えない? https://t.co/olsryDHc5G — bamchoh (@bamchoh) 2016年6月24日 この記事では入力の json.Unmarshal() を取り扱いますが、出力の json.Marshal() にも応用できます。 TL;DR json.Unmarshal() には *interface{} を渡せます interface{} は dproxy を使うと、値のアクセスで楽ができます json.Unmar

    tuki0918
    tuki0918 2016/12/29
  • Go言語でJSONに泣かないためのコーディングパターン - Qiita

    いまになって見直してみると微妙な部分が多かったので、 この記事の Qiita での公開を終了することにしました。 いいね!&ストックして頂いた皆様、ありがとうございました。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    Go言語でJSONに泣かないためのコーディングパターン - Qiita
    tuki0918
    tuki0918 2016/12/29
  • Making a RESTful JSON API in Go

    Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.

    Making a RESTful JSON API in Go
    tuki0918
    tuki0918 2016/12/29
  • Go言語で REST API + マイクロサービス - Qiita

    Go その2 Advent Calendar 2015 2日目です。 今日書くこと APIを提供するためのコード APIを利用するためのコード マイクロサービス (・∀・)ィィイイ!! かもしれない やれなかった / この記事には書いていないこと 以下サンプルで利用するコードは こちら。 お手元で起動する1 ための手順は READMEをご覧ください。 APIを提供するためのコード Go言語には APIのためのよさげなフレームワークはありますが、 今回はそれらを使わずともかんたんに APIサーバが作れることをお伝えしたく。 ベースとなっている元ネタは A RESTful Micro-Framework in Go これなのですが ここから、やりたいことができるように変えていった結果をサンプルに、 どうすれば APIサーバが書けるのかを記します。 まず、APIのエンドポイントが実装すべきインタ

    Go言語で REST API + マイクロサービス - Qiita
    tuki0918
    tuki0918 2016/12/29
  • Goのアンチパターン

    Go書いててなんとなく見えてきた Goでやっちゃいけないパターン WAF導入してらくらくWebアプリ WAF自体が現在群雄割拠状態。 WAF毎にハンドラインターフェースが違うので既存コードつなぐにはラッパーが必要。 どのWAFもLL言語に比べるとまだまだフィーチャーの網羅範囲が狭い。 なのでもちろんLL言語ほど楽には書けないことが多い。 リフレクション使いまくりでトータル性能はLL言語並みに遅いのもある。 Go1.7のcontextパッケージの導入で標準のHTTPハンドラが復権する可能性があり更に荒れる予想。 追記: 楽できるのを期待してWAFを導入するの「やっちゃいけない」とまでは言い過ぎだったかもしれないけれど例のsqlでPrepareを正しく使えていないで性能出なかった件とか、当面WAFを使うなら自分で概ね中身を理解して使う覚悟が必要。 構造体メソッドにロジックを詰め込む Goの思想

    tuki0918
    tuki0918 2016/12/29
  • Go で API サーバーを開発してきて1年が過ぎました | カメリオ開発者ブログ

    白ヤギの開発者の森です。 白ヤギでは Go 言語でニュース記事のキュレーションをする カメリオ API というサービスを開発しています。約1年2ヶ月前、Go を使って開発し始めたときに当時調べた内容を整理して以下の記事を書きました。 Go言語で API サーバーを開発する 1年以上に渡り開発を継続してきて変わったこと、変わってないことなどをざっくばらんにまとめてみます。たまたま過去の記事のはてブコメントを見返していて 以下のコメント を見つけました。 最近 golang 導入事例増えて来たけど、導入後一年くらいのメンテナンスフェーズな事例について聞いてみたい。継続的デリバリーみたいなの。まだ早いのかな? まだまだメンテナンスフェーズにはなっていなくて現在も活発に開発中ですが、継続的デリバリーについて白ヤギでは特別なことをしてなく、ansible を使ってデプロイしているのみです。Go 1

    Go で API サーバーを開発してきて1年が過ぎました | カメリオ開発者ブログ
    tuki0918
    tuki0918 2016/12/29
  • Go言語で API サーバーを開発する | カメリオ開発者ブログ

    こんにちは!白ヤギの開発者、森です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい

    Go言語で API サーバーを開発する | カメリオ開発者ブログ
    tuki0918
    tuki0918 2016/12/29
  • GOPATH は適当に決めて問題ない - Qiita

    TL;DR go get は Ruby でいう gem みたいなもん $GOPATH は自分の環境に合わせて好きに指定してよい 例えば $HOME/.go とか $HOME/go とか 好きに設定してもいいけど、一度設定したらそれをずっと使い続けた方がたぶんいい 現在では、GOPATHを明示的に設定しない場合は自動的に設定される。 Wikiより If no GOPATH is set, it is assumed to be $HOME/go on Unix systems and %USERPROFILE%\go on Windows. ことの始まり homebrewでGoをインストールしたらのっけから Go 1.1 から go get コマンドは $GOROOT をパッケージダウンロード先として使わなくなりなりました。 go get 使うには $GOPATH が必要です。 と言われて、

    GOPATH は適当に決めて問題ない - Qiita
    tuki0918
    tuki0918 2016/12/29
  • Loading...

    Loading...
    tuki0918
    tuki0918 2016/12/29
  • Gin Web Framework

    Gin Gonic The fastest full-featured web framework for Golang. Crystal clear. Performance and productivity can work together Gin is a web framework written in Golang. It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity, you will love Gin. Low Overhead Powerful API You can add global, per-group, and per-route middlewares,

    tuki0918
    tuki0918 2016/12/29
  • Homepage - beego: simple & powerful Go app framework

    Download and install go get github.com/beego/beego/[email protected] Create file hello.go package main import "github.com/beego/beego/v2/server/web" func main() { web.Run() } Build and run go build hello.go ./hello View effects Open your browser and visit http://localhost:8080 Congratulations! You just built your first beego app. Please see Documentation for going further.

    tuki0918
    tuki0918 2016/12/29
  • Revel - Go Web Framework

    Hot Code Reload Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. Code doesn't compile? It gives you a helpful description. Run-time code panic? Revel has you covered. Flow Control Revel is built around composable middleware called filters, which implement nearly all request-processing functionality. Developers have the freedom to replace the defaul

    tuki0918
    tuki0918 2016/12/29
  • High performance, extensible, minimalist Go web framework | Echo

    EchoHigh performance, extensible, minimalist Go web framework Optimized RouterEcho boasts a highly optimized HTTP router that operates without dynamic memory allocation. This router intelligently prioritizes routes for efficient routing and processing of incoming HTTP requests. The absence of dynamic memory allocation contributes to better performance and resource utilization. ScalableEcho framewo

    High performance, extensible, minimalist Go web framework | Echo
    tuki0918
    tuki0918 2016/12/29
  • Revel - Go Web Framework

    Hot Code Reload Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. Code doesn't compile? It gives you a helpful description. Run-time code panic? Revel has you covered. Flow Control Revel is built around composable middleware called filters, which implement nearly all request-processing functionality. Developers have the freedom to replace the defaul

    tuki0918
    tuki0918 2016/12/29
  • 概観からGoのWebFrameworkを選ぶ(2016/02) - Qiita

    パフォーマンス 標準になっているgo-http-venchmarkを参考にすると echo Gin Goji beego Revel Martini ということだ。 Go Web Frameworks 比較を見てみてもMartiniが圧倒的に遅いという報告がある。 Build You Own Web Framework In Go SinatraっぽいのとRailsっぽいのがあるという分類ができる。Martiniは内部的にリフレクションを使っているから遅いとか黒魔術が入っていたり、依存性の注入という話もややこしいのでちょっと嫌になってきた。 There are two main types of web frameworks. Rails-like frameworks with everything built-in so you can bootstrap your project r

    概観からGoのWebFrameworkを選ぶ(2016/02) - Qiita
    tuki0918
    tuki0918 2016/12/29
  • 【Go】print系関数の違い - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【Go】print系関数の違い - Qiita
    tuki0918
    tuki0918 2016/12/29
  • NEILB's Blog

    This is a follow-up to last year's blog post, where I posted some charts to show how new CPAN users and distributions have changed over time. I meant to post this in January, but was repeatedly ambushed by yaks, and eventually decided it was too late. Then Olaf asked if I could show him updated charts with 2022 data, and I figured I might as well publish a belated report. Read more ... In the CPAN

    tuki0918
    tuki0918 2016/12/29
  • バイト先の店に貼られた文書が酷すぎてどこから突っ込めばいいのか分からない「これ店潰れるやつ」

    ツッコミ必至 ※「書き入れ時」という漢字についてのツッコミがいくつかありましたが、これは「書き入れ時」で正解です(念のため)。

    バイト先の店に貼られた文書が酷すぎてどこから突っ込めばいいのか分からない「これ店潰れるやつ」
    tuki0918
    tuki0918 2016/12/29
    本音だしすぎぃ
  • yoya-thumberのOSS公開に寄せて - SmartNews Engineering Blog

    yoya-thumberとは SmartNewsは日、yoya-thumberをOSSとして公開しました。yoya-thumberはSmartNews社内で利用されているサムネイル画像生成プロキシです。HTTPサーバーとして動作し、画像URLをリクエストとして受け取って縮小した画像を返します。 yoya-thumberが解決する課題 スマートニュースに対して頂くご意見の1つに、通信量が多すぎる、というものがあります。実際、私も1ユーザとして、通信量多すぎだろ、常識的に考えて……という感想を持っていました。 これにはいくつかの原因が挙げられますが、記事中の画像がスマホ向けに最適化されていない(場合がある)、というのも大きな問題の1つでした。例えば、見かけ上は小さな1枚の画像を表示するために、実は2MBの転送量を使ってしまっている、といったケースが存在していました。yoya-thumberを

    yoya-thumberのOSS公開に寄せて - SmartNews Engineering Blog
    tuki0918
    tuki0918 2016/12/29
  • 2017!あけおめ!冬アニメに迷ったらこれを見ようぜ!

    http://anond.hatelabo.jp/20161227231344 ↑なんか書いてくれって言われたから書くよ!! 去年は冬 http://anond.hatelabo.jp/20151220233500 と春 http://anond.hatelabo.jp/20160401000658 書いた。 ちなみに2016年ベストアニメは、僕だけがいない街、落語、このすば、グリムガル、ふらいんぐうぃっち、リゼロ、ジョカゲ、モブサイコ、91days、ユーフォ、ドリフ、ユーリ、こんな感じ。 これにひっかかったら参考にしてくださいね。あとちなみに春アニメは進撃あるよ!ネット見る人はネタバレ防止で原作読んでおいたほうがいいぞ! ■期待大、見るしかない★★★★★ 幼女戦記→はい。幼女が第一次世界対戦とか第二次世界大戦を蹂躙跋扈する話だよ。ドイツだよ!なんというか、タイトルの割りにおっさんしか出て

    2017!あけおめ!冬アニメに迷ったらこれを見ようぜ!
    tuki0918
    tuki0918 2016/12/29
  • 面接官「『世界を変えたい』とか言ってくるエンジニアは落とします」その理由とは - paiza times

    Photo by Sonny Abesamis こんにちは、谷口です。 転職活動をしていて面接に落ちてしまったけど、「何で落ちたのか原因がわからなくてつらい……」という経験はないでしょうか。 最近、充分なスキルがある応募者なのに面接でまさかの落選……という選考があったため、応募先企業で面接官をされた方に理由を聞いたところ「面接中に一度も目が合わなかった上、こちらが会社説明をしている時に全然聞いてくれてない感じだったので落としました……」と言われたことがありました。 「応募者のスキルセットやキャリアの志向が合わないので……」といった理由ならまだ納得感もありますが、実は面接官の方々に聞くと、上記のようなスキル以前の問題で落選している場合もかなり多く、すごくもったいないと感じます。 ただ、採用面接で落とされる時って、ほとんどがお祈りメールや手紙の一通で落とされてしまって、落選理由まで懇切丁寧に教

    面接官「『世界を変えたい』とか言ってくるエンジニアは落とします」その理由とは - paiza times
    tuki0918
    tuki0918 2016/12/29
  • DMMグループOBとして感じた『はちま起稿』買収問題(ふじいりょう) - 個人 - Yahoo!ニュース

    まとめサイト『はちま起稿』が2016年1月から10月まで『DMM.com』がサービス運営していた問題。これが明らかになったのは『ねとらぼ』の広範に渡る取材が大きな役割を果たしたと言えるだろう。 Webメディア「はちま起稿」サービス運営・事業譲渡に関するお知らせ はちま起稿を買収したDMM、元管理人・清水氏ら主要メンバーを雇用しステマ関与か 取材に対し隠蔽工作も(ねとらぼ) ところで、筆者は2004年から2007年まで、DMMグループの出版社ジーオーティーに在籍していた。仕事の内容はアイドルイメージソフトDVDレーベル『エアーコントロール』の担当が主だったのだけど、さまざまな理由からグループ各社を跨ぐ動きを求められて、例えば取り扱いAVメーカーのAmazonの営業窓口も自分が担当だった。当時のグループの雰囲気では「社」という枠に囚われずに業務が進むことが多かった。『エアーコントロール』を例に

    DMMグループOBとして感じた『はちま起稿』買収問題(ふじいりょう) - 個人 - Yahoo!ニュース
    tuki0918
    tuki0918 2016/12/29
  • 最高のピンボールゲームを作りたい → よし、まずは実機からだ!(20年前) 壮大すぎる開発経緯を持つピンボールゲームがSteamで配信開始

    クオリティーにこだわりすぎるあまり、研究・開発になんと20年を費やしたという、ものすごいピンボールゲームSteamに登場しています。タイトルは「Pinball Parlor(ピンボールパーラー)」。そもそも何をどうしたらピンボールゲームの開発に20年もかかるのか、開発者に聞きました。 「Pinball Parlor」の開発元は、超ワイド画面(3200×800)シューティングゲーム「Super Chain Crusher Horizon」などで知られるマインドウェア。ゲーム内容はシンプルかつクラシックなごく普通のピンボールゲームですが、温かみのあるグラフィックやサウンド、そして80年代以前のピンボール台が持っていた、ピンボール来の戦略性をひたすら追求している点などが特徴。また著名ピンボールデザイナーのスティーブ・コーデック氏、ジョン・ポパデューク氏もアドバイザーとして開発に関わっています

    最高のピンボールゲームを作りたい → よし、まずは実機からだ!(20年前) 壮大すぎる開発経緯を持つピンボールゲームがSteamで配信開始
    tuki0918
    tuki0918 2016/12/29
  • Happy video transcoding with ElasticTranscoder

    AWS Casual Talks #3

    Happy video transcoding with ElasticTranscoder
    tuki0918
    tuki0918 2016/12/29
  • 初心者がchainerで線画着色してみた。わりとできた。

    デープラーニングはコモディティ化していてハンダ付けの方が付加価値高いといわれるピ-FNで主に工作担当のtai2anです。 NHKで全国放送されたAmazon Picking Challengeでガムテべったべたのハンドやロボコン感満載の滑り台とかを工作してました。 とはいえ、やっぱりちょっとディープラーニングしてみたいので1,2か月前からchainerを勉強し始めました。 せっかくなので線画の着色をしたいなーと思って色々試してみました。 線画の着色は教師あり学習なので線画と着色済みの画像のデータセットが(できれば大量に)必要です。 今回はOpenCVでカラーの画像から線画を適当に抽出しています。 抽出例 → カラーの画像を集めて線画を作ればデータセットの完成です。(今回は60万枚くらい使っています) ネットワークの形ですが、U-netという最初の方でコンボリューションする時の層の出

    初心者がchainerで線画着色してみた。わりとできた。
    tuki0918
    tuki0918 2016/12/29
  • mysql_*が非推奨になり、その後廃止された理由とは?

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。 PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

    mysql_*が非推奨になり、その後廃止された理由とは?
    tuki0918
    tuki0918 2016/12/29
  • Go's Declaration Syntax - The Go Programming Language

    Rob Pike 7 July 2010 Introduction Newcomers to Go wonder why the declaration syntax is different from the tradition established in the C family. In this post we’ll compare the two approaches and explain why Go’s declarations look as they do. C syntax First, let’s talk about C syntax. C took an unusual and clever approach to declaration syntax. Instead of describing the types with special syntax, o

    Go's Declaration Syntax - The Go Programming Language
    tuki0918
    tuki0918 2016/12/29
  • Go Playground - The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    Go Playground - The Go Programming Language
    tuki0918
    tuki0918 2016/12/29
  • react-redux-saga-boilerplate

    tuki0918
    tuki0918 2016/12/29
  • シェルスクリプト——こんなとき、かうする - Qiita

    POSIX シェルの小ネタ集。随時更新。 POSIX の範囲外の機能に依存するところには 【non-POSIX】 と書いておいた。 ファイル操作 空のファイルを作る touch でもいいがリダイレクトした方が速い。 >> filename # 既存ファイルは上書きしない (ファイルの更新日時も変へない) >| filename # 既存ファイルは空にする > filename # -C が有効なら既存ファイルがあるとエラーになる フィルタ ソートして重複行を消す sort | uniq でもいいが sort -u だと一コマンドで済む。 ソートせずに重複行を消す awk '!x[$0]++' 1 行番号を付加する awk '{print ++i,$0}' 【non-POSIX】 cat -n 一行目だけを消す tail -n +2 sed 1d 最後の行だけを消す head -n -1 s

    シェルスクリプト——こんなとき、かうする - Qiita
    tuki0918
    tuki0918 2016/12/29
  • [PHP]10分で静的解析による統一されたコーディング環境を整える(Phing / php-md / php-cs-fixer) - Qiita

    [PHP]10分で静的解析による統一されたコーディング環境を整える(Phing / php-md / php-cs-fixer)PHP なんでやるの? コードを静的解析させることにより開発者の書き方のクセをなくす。 コードレビューの時に正しく動いててもフォーマット通りの書き方じゃないと 見てて違和感感じますよね?汗 書いてるうちに無意識に宣言していたキャメルケースでない変数とかも拾っておきたいとか 要するに最低限人に見せられるように整形してからコミットしましょうねということ 対象としては、php-mdやphp-cs-fixerを使ったことのない方だったら 多少ためになるかと思います

    [PHP]10分で静的解析による統一されたコーディング環境を整える(Phing / php-md / php-cs-fixer) - Qiita
    tuki0918
    tuki0918 2016/12/29
  • PHPMailerの脆弱性CVE-2016-10033はWordPressにどの程度影響するのだろうか - Qiita

    まず前提として、PHPMailerの脆弱性は https://github.com/opsxcq/exploit-CVE-2016-10033/blob/master/www/index.php#L33 この箇所のコード、外部からの入力$emailを送信者アドレスとして$phpmailer->setFrom($email, $name)と設定することで発生する。 または直接$phpmailer->Sender = $emailとしても同じ。 それ以外ではPHPMailerのSenderプロパティが書き換わることは無く脆弱性も発生しないという認識なんだけれども。合ってるだろうか。 WordPressのメール送信はwp_mailという関数で実行されていて、そこには /** * Filters the email address to send from. * * @since 2.2.0 *

    PHPMailerの脆弱性CVE-2016-10033はWordPressにどの程度影響するのだろうか - Qiita
    tuki0918
    tuki0918 2016/12/29