You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Twitter でだけで告知しててこっちで書いて無かったので。 私用の TODO 管理には Wunderlist を使っていたのだけど、Wunderlist は Microsoft に買収され Microsoft To-Do が出来た。機能に差があり慣れないと移行しづらかったけど、いつ無くなるか分からない Wunderlist を使い続けるのもアレだったので移行した。その際にデータ移行で使ったりコマンドラインから追加したりしたかったので CLI 書いた。 GitHub - mattn/to-do Dismiss Join GitHub today GitHub is home to over 20 million developers working together to host and ... https://github.com/mattn/to-do 使い方はシェル操作好きそうな
もともと数ヶ月前から、Go言語によるWebアプリケーション開発 を読みながら Go での Webアプリケーション開発の勉強をしていた。 Go言語によるWebアプリケーション開発 作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型本この商品を含むブログ (3件) を見る 「実際に動くもの」を、「手を動かして作りながら学ぶ」のが僕は好きで、今回も同様、それを楽しんでやっていたのだけど、思いの外それっぽいものができあがってしまって。これをそのままローカルで動かすだけじゃおもしろくないな、もったいないな、と思ったので、それをサービス化して公開するところまでやってみた。 かんじんのアプリケーションは↓これ。Yukizuri と書いて「ゆきずり」と読む。 https://yukizuri.moshimo.worksyukizu
Goの言語仕様にジェネリクスそのものはありません。 Go2でなにかしらの支援が入るかもしれませんが、 その仕様の落とし所はまだまだ定まってはいないようです。 Go1.4にて言語仕様ではなくツールチェインでコードを生成するための 機能「go-generate」が追加されました。 この機能はアセットの埋め込みやバージョン情報生成のほかジェネリクスも実現できます。 「go-generate」を使ってエレガントにジェネリクスできる様にするgennyというツールを紹介します。 go-generate コーディングとビルドとの間に行う「何らかの処理」を定義できます。 「何らかの処理」はただの1行のシェルコマンドラインです。 go-generateは指定した パッケージの中で「何らかの処理」=コマンドラインを起動するだけの機能です。 Makefileでやってもいい様な気がしますが、以下の2つの支援機能が
【随時更新】Go言語の実用的パッケージと㊙情報 Ateam Hikkoshi Samurai Inc. Advent Calendar 2017 17日目です。 本日はエイチーム引越し侍の新卒1年目、Webエンジニアの@nrainieroが担当します。 Go言語の初心者で いろんな情報を集めているので ここにまとめていきたいと思います。 随時更新なので、 Go言語に興味のある方は、いいね、ストックをしておくと良いと思います! 参考になる記事・サイト Go言語の初心者が見ると幸せになれる場所 #golang タイトルの通り一通り目を通しておくと幸せになれます。 初心者の方はここで情報を集めるといいです! 実用的なパッケージ一覧 ※ ★はgithubのスターの数です(2017/12/17時点) パッケージ依存管理 node.jsで言うpackage.jsonみたいな役割のもの ◆dep ★63
はじめに みなさんもちろん log は取っていますよね? 最近は機械学習や deep learning などでも頻繁に使われているのでますます重要性が高まっています。 log の設計もなかなか難しいですよね。 自分が所属するチームでは Golang 製 Web Framework の echo を利用して API を開発しております。 業務で Golang を扱うのは初めてですが、とても素直で書きやすいという印象を持っています。 今回は最近開発するにあたって調査した内容を共有いたします。 初歩的な内容かもしれませんが、どなたかのお役に立てれば。 ※ この記事は 2017 年 8 月現在の最新版 v3.2.1 を元に作成しています。 2 つの logger echo には Echo#Logger と Logger Middleware 2 つの logger があります。 これらにはそれぞれ
Goツールのクロスビルドと成果物生成には個人的に長らく、goxcを愛用していましたが、その乗り換えとして、goxzというのを作った。go + x(cross) + z(zip)でgoxz。便利です。 https://github.com/Songmu/goxz goxcは非常に高機能なのですが、僕がその機能の一部しか必要ないことや、goxcのメンテ自体も止まっている(とオフィシャルでも案内されている)ことが気になったので作りました。 具体的には「Goツールのクロスビルドと成果物のアーカイブ生成をパラレルにおこなう」ことしかしない。アーカイブ生成時に、リポジトリからLICENSEやREADMEを自動的にかき集めるのはやってくれます。 基本的には「設定より規約」という感じで、良い感じのデフォルトを決め打ちにして、あまり細かい設定項目などは作らない想定です。 インストール https://git
OSS紹介 Advent Calendar 2017 - Qiita 18日目の記事です。(一週間遅れ) Amazon ECS へのデプロイツール ecspresso と、そこで使っている環境変数を展開しつつ複数の YAML/JSON/TOML を読み込む config loader である go-config の紹介をします。 ecspresso github.com 「エスプレッソ」と読みます。Go で書かれた Amazon ECS 用のデプロイツールです。以下の3つのファイルを用いて ECS へのサービス、タスク定義作成、入れ換えを行います。 YAML の設定ファイル タスク定義のための JSON (aws ecs describe-task-definition 出力と互換) サービス定義のための JSON (オプション。aws ecs describe-services 出力の
突然ですが、みなさんはGoで何を書いていますか? Webアプリ?APIサーバー?デーモンアプリケーション?コマンドラインツール?ライブラリ? WebアプリやAPIサーバーの場合はGAE SE1などのPaaS環境かそれ以外かでも変わってくるでしょう。 ぼくはコマンドラインツール、APIサーバーとそれらで使うライブラリを最近は書いています。 直近だと、Microservices構成をGAE SE Goで構築しています。 さて、Microservices構成を取ると他のWeb APIを叩く機会が増えます。 コンポーネントによってはほぼ全てのエンドポイントで他のコンポーネントに依存することになることも珍しくはないでしょう。 そうなると、Web APIを呼び出すの実装の割合とその重要性が高まります。 つまり、数多のWeb APIを効率的に実装して叩ける、そして見通しの良いコードを書き、それが十分にテ
Ho!Ho!Ho! Merry Panic!! この記事はGo Advent Calendar 2017の25日目の記事です。 ※本記事はOSX及びUNIXシステムなことを前提として向き合います。 package main func main() { var p *interface{} *p = 0 } /* panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x104f386] goroutine 1 [running]: main.main() /Users/nnao45/panic-test/panic01.go:5 +0x26 exit status 2 */ 上は何
この記事は Go Advent Calendar 2017 の記事です。 僕が Go で Web Application を開発するときに主に利用するのが labstack/echo です。 github.com その際に副産物として生産された記事が Qiita にあがっているのでそちらも参照してもらえると嬉しいです。 qiita.com echo.Context を活用する タイトル通りに最大限に活用されていなければ、本当に申し訳ありません... さて、 echo で Controller 側のコードを書く際に良く用いられるのが echo.Context です。例えば良く扱う例として、api を作成する際に、アプリケーション側でバリデーションも同時に行うことを想定するならば、先に go-playground/validator を利用したバリデーションを行うためにセットアップを行い、コン
元ネタ チャンネルを使って、決まった数のリソースをgoroutine間で共有するパターン - 詩と創作・思索のひろば Big Sky :: 簡単に goroutine の実行個数を制限する方法 どちらも、固定長のバッファを持ったチャネルを共有リソースとすることでgoroutineの同時実行数を制御するパターンの例として紹介されています。 sync.Poolを使うともうすこし可読性があがると思ったので、サンプルコードを書いてみました。 今回ベースにしたのはmotemenさんの方で、実行数の制御とワーカーリソースのプールを主題としています。 NOTE: 元ネタのBig Sky :: 簡単に goroutine の実行個数を制限する方法にも追記がありますが、goroutine自体の同時実行数は抑制できていません。ここで紹介するのはgoroutine内の処理実態を抑制する手法です。goroutin
vimmerのみなさん初めまして。 vimアドベントカレンダー20日目です。 今回はvimでコードリーディングするのに必須であろうツール、ctagsとgtagsについて設定例も交えながら紹介しようと思います。 色々と導入に手こずった結果、今の自分の環境に沿う形になります。 補足(2019/09/26) 今であればLSPを導入して、そちらで定義と参照へのジャンプをするのをお勧めします。 https://qiita.com/coil_msp123/items/29de76b035dd28af77a9 お詫び macとlinuxの両方でインストールできるようにしたかったのですが、メインマシンのlinux(debian)の方で再現しようとして再インストールしたらgtagsが動かなくなりました...orz助けて(調査します) 仮想環境でのdebianでの再インストール、および新規のubuntuでのイ
AWS上でアプリケーションを動作させる際、みなさん秘匿情報はどう扱っていますか? KMSをつかう Parameter Storeをつかう Privateな設定管理ツールで管理する あたりが一般的かなと思います。 開発リポジトリには秘匿情報をいれないポリシーで開発している場合、設定用のリポジトリを分けたり、別のコードとして管理する必要があるなど、ややまどろっこしいなあと思っていました。 そこで今回はYAMLにマクロ展開の機能を追加して、このあたりの管理を楽にできないかと思い、PoCしてみました。 Parameter Storeとは Parameter Storeはキーと値を保存するシンプルな仕組みです。ざっくり紹介すると、以下が特徴です。 キーと値のペアを保存できる 平文あるいは暗号化するか否かを選択可能 暗号化のためのCMK(customer master key)を選択可能 aws-cl
Intro goのチュートリアルとしてはA Tour of Goが鉄板だが、その次に何をするかというのは悩ましい問題である。 この記事ではgo学習のためにA Tour of Goの次の一手としてISUCONを実装して得た学びなどについて紹介する。 モチベーション まず学習のためにある程度の規模のサービスを書きたかったというのがある。元々作りたいものがあればそれを作っても良いが、今回はどちらかと言うと技術的関心の比重が大きかったので何を作るか考えるプロセスを省きたかった。そこで以前社内ISUCONを開催したことがあったのでこれを移植してみた。 ISUCONを題材に選ぶメリットとして以下がある。 仕様が固まっている 細かい点も参考実装があるので迷うことが少ない Webapp, Benchmarker, Portalまで書くとそこそこの規模になる ISUCONの性質上、ある程度の負荷に耐えられる
Fusic Advent Calendar 2017 18日目 Go2 Advent Calendar 2017 18日目の記事です。 私はAWSをよく触るのですが、そのコマンドラインツールのラッパーを作成したくなりました。 普段ならbashでチャチャッと作ってしまうのですが、ずっと使いたいと思っていたGoを無理やり使ってみようと思います。 (Go初心者です。ご容赦ください) やること 以下を簡単に行いたいと考えました。 S3内のバケット一覧を表示 バケットを選択させる 選択されたバケットの一覧が出て来る オブジェクトを選択させる オブジェクトを取得する コード package main import ( "fmt" "os" "os/exec" "strings" ) func main() { // aws s3 ls コマンドの結果を格納 out, err := exec.Comma
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く