タグ

ブックマーク / qiita.com (39)

  • fmtパッケージをインポートするとファイルサイズがどかんと増えてしまう理由 - Qiita

    しかし、パッケージとしては以下のような依存が発生してしまっています。internalは抜きます。 errors go io os path reflect sort strconv sync syscall unicode time type Goはリンク時に不要な関数は削除してバイナリをなるべく小さくしようとするのですが、Goの言語仕様&エスケープ解析の欠点としてはinit()で参照(パッケージグローバル変数の宣言もコンパイル時に生成されるinit()にまとめられるので、グローバル変数宣言も)されたものはすべて、eliminationが働かずにリンクされちゃうんですよね。 %vでどんな型がきてもパースしてやるぜ、という機能があるのでおそらくそこでリフレクションをimportしていて、そのimportの中にinit()があれば、そこで使っている要素がシンボルとして残り・・・みたいな連鎖でし

    fmtパッケージをインポートするとファイルサイズがどかんと増えてしまう理由 - Qiita
    lestrrat
    lestrrat 2021/12/06
    とはいえ、エラーを作る機能(特にラップする場合とか)がfmt.Errorfに集約されているからもうこれはしょうがない気がする
  • 今さらProtocol Buffersと、手に馴染む道具の話 - Qiita

    Protocol Buffersは別に新しい技術ではない。同時にそれは、未だ知られざる、未だに可能性を秘めた先端のソフトウェア技術基盤である。 新しくないのは事実で、GoogleがProtocol Buffersをオープンソース化したのは2008年のことだし、オープンソース化前に社内で使われ出したのは更に昔に遡るだろう。たぶん。 デザイン的にもJSON対応は後付けで、将来JSONが隆盛を極めることなんか全然想定していなかったのが透けて見えて古くさい。 しかし、同時にどうも情報に聡い人であってもなかなかその真価を実感し得ておらず、ある意味で未知の技術であるらしい。ならば、Protobuf (Protocol Buffersの略)を解説した文書は幾多あれども、それに1を加えるのもやぶさかではない。 Protocol Buffersとは Protobufはスキーマ言語だ! 一般的にはProtob

    今さらProtocol Buffersと、手に馴染む道具の話 - Qiita
    lestrrat
    lestrrat 2018/02/08
    protobufの拡張を書きたい勢が使える情報がもっとほしい…
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
    lestrrat
    lestrrat 2017/12/26
    おっさんには「まじ?!」って話ばかりでてくる… 2000年ごろに俺達が知っていたJavascriptはもうないのか!www
  • RasPiとディープラーニングで我が家のトイレ問題を解決する - Qiita

    おしっこセンサーできました ウチの小学生の息子が家のトイレでたびたびおしっこをこぼしてしまう。俺がくどくど注意してもあんまり効果ない。そこで、代わりにAIに怒ってもらうことにした。こんな感じである。 おしっこセンサーのデモ(動画)。水を数滴床にたらすとブザーが鳴り、床を拭くと止まる。 ディープラーニングの画像認識を使い、床の上に落ちた水滴をカメラで検出してブザーが鳴る仕組みだ。夏休みの自由工作に過ぎないので精度は期待していなかったけど、意外にきちんと動いてくれて、カメラに映る範囲に水滴を数滴たらすとピッピと鳴り、床を拭くとブザーも止まる。「お父さんだってAIくらい作れるぞ」と息子に自慢したいがための工作なのだ。 でも、これ作るのはそんなに難しくなくて、休み中の3日くらいで完成した。かかったお金は、RasPiやカメラ、周辺デバイスが2万円弱、画像認識のモデル作成に使ったクラウドの料金が数10

    RasPiとディープラーニングで我が家のトイレ問題を解決する - Qiita
    lestrrat
    lestrrat 2017/08/31
  • Retty流『2200万ユーザを支える機械学習基盤』の作り方 - Qiita

    みなさん、こんにちは。Retty CTO の樽石です。 この記事は Retty Advent Calendar 25日目です。メリークリスマス。 昨日は @ttakeoka の『MFIにむけてRettyの取り組み』でした。 今年も残りわずかになりました。いかがお過ごしですか? Retty はこの 1 年でエンジニアがほぼ倍増しました。それによって、情報発信者が増え、Advent Calendar に参加出来るようになりました。みんな楽しそうにしていて、うれしいです。 Retty Inc. Advent Calendar 2016 - Qiita さて、今年最後の Retty Advent Calendar 記事を書くということで、はじめは 1年のまとめ的内容にしようかと思いましたが、それでは平凡で面白くありません。そこで、ネタになりそうなマニアックな技術的記事で締めくくりたいと思います。

    Retty流『2200万ユーザを支える機械学習基盤』の作り方 - Qiita
    lestrrat
    lestrrat 2016/12/25
    こういうのいいな。こういうので遊びたい。
  • golang で正規表現クロスワードを解く - Qiita

    この記事は Go Advent Calendar 2016 最終日の記事になります。参加頂いた皆さんお疲れさまでした。 今年も昨年に引き続き、25人以上の方が「何か書きたい」と名乗り出て頂き、gogo2、go3 の3(2年連続)、計75エントリが揃う事になりそうです。Go 言語の人気が高まってきているのが良くわかるアドベントカレンダーでした。 あらすじ 普段あまり表だった所には姿を現さないのですが、今年は builderscon 2016 に登壇させて頂きました。 とても新鮮な体験で、味わった事のない緊張の中、いろいろな反響を貰いました。いい体験が出来たと思います。ありがとうございました。登壇し終えて数時間はなんだか緊張のほぐれた変な感じを味わっていました。懇親会の時あたりでようやく皆さんとお話する事ができて Vimmer の皆さんと Vim 談義をしてきました。 その懇親会で香り屋さ

    golang で正規表現クロスワードを解く - Qiita
    lestrrat
    lestrrat 2016/12/25
    全然ステルスじゃないやつだ
  • 〜Go初学者に贈る〜僕がお世話になった活躍しているGoエンジニアまとめ - Qiita

    はじめに お気づきの方も多いかと思いますが、記事はiOS新人プログラマーさんに贈るiOSで活躍しているエンジニア を参考に書かれました。 今回は、Goを始めた方がよりよい情報を得ることができるよう、GithubでのOSS活動やQiita、Blog の記事、Twitter、登壇、執筆などアウトプットされている方を中心にGopherを集めてみました。 僕自身、いろんな方のブログやスライド、OSSのコードを見て勉強してきて非常にお世話になりました。この場を借りてお礼申し上げます。 自分の知っている範囲での紹介となってしまうため、活躍されているエンジニアさんをすべて網羅しきれないですがすみません。。 今後もどんどん追記していく予定です! おすすめの方がいらっしゃいましたら、コメントや編集リクエストで教えていただけると嬉しいです。 この記事がGo初学者の助けとなれば幸いです。 紹介順はアルファベッ

    〜Go初学者に贈る〜僕がお世話になった活躍しているGoエンジニアまとめ - Qiita
    lestrrat
    lestrrat 2016/12/24
    僕の代表作は pecoだと思うんだけど、なぜgo-xslate…(笑) あと、こっちも見てくれ! https://medium.com/@lestrrat
  • 至高のDockerイメージ生成を求めて - Qiita

    稿は良いDockerイメージを良い方法でビルドすることを探求した記録である。 Supership株式会社 Advent Calendar 2016の21日目にあたる。 2019年現在は@inductor氏の改訂版を見たほうが良い。 この記事で論じた望ましいコンテナイメージの姿は2019年でも変わらない。ただし、multi-stage buildのような新しい仕組みが普及したりツールの評価が定まってきたりと、実現に用いるツールの状況が2016年からやや変化している。 良いDockerイメージ 良いDockerイメージとは何だろうか。Dockerの利点は次のようなものだから、それを活かすイメージが良いものであるに違いない。 ビルドしたイメージはどこでも動く 適切にインストールされ、設定されたアプリケーションをそのままどこにでも持っていける。 コンテナ同士が干渉し合うことはないので、任意のイメ

    至高のDockerイメージ生成を求めて - Qiita
    lestrrat
    lestrrat 2016/12/22
    Bezel使いたいとは思うんだけど、なかなかそこまでいかない…
  • 職務経歴書をGitHubで管理しよう - Qiita

    この記事について 職務経歴書をGitHubで公開して転職活動を楽にしようという提案です。 書類めんどくさい 職務経歴書や履歴書、毎回書くの面倒ですよね。なので、最近(相手が問題なければ)履歴書はWantedlyのリンクを送るようにしてみました。 ただ、職務経歴書はなかなかいいサービスがないので難しいと悩んでいました そんなときに @kubosho_ さんがGitで管理してGitHubでプレビューできるようにしていると聞きました、頭いい! しょうがないので職務経歴書をGitで管理してGitHubでプレビューできるようにしてます… — kubosho_ (@kubosho_) 2016年11月21日 というわけで私も採用して、公開しました。 https://github.com/okoysm/Curriculum-Vitae ※ちなみにkubosho_さんオリジナルではなく、他の人を真似した模

    職務経歴書をGitHubで管理しよう - Qiita
    lestrrat
    lestrrat 2016/11/30
    Githubに案内することすら面倒くさいのGithub Pagesで管理しております http://lestrrat.github.io/
  • 日本の技術系カンファレンスまとめ - Qiita

    にはどのような技術カンファレンスがあるのかを調べたことがあるのでメモを残しておこうと思います。「これも載せるべき!」というカンファレンスがある、もしくは説明に不備があるという場合は編集リクエストを送っていただけると幸いです。 全体の雰囲気を知ることができるようなカンファレンス参加レポを見つけたらそれも貼っています(★マークのやつです)。 2016年には開催されていないカンファレンスでも後に復活する可能性はあるので一応載せています。 iOS try!Swift 世界中のSwiftデベロッパーが集まって知見を共有するカンファレンスで、海外からのスピーカーも多く存在していました。同時通訳も付いていたようで、英語が苦手でも安心です。平日3日間を使っての開催です。 ★try! Swift 全日程聞き起こしまとめ | #tryswiftconf 3日間を終えての感想、家に帰ってからが try! S

    日本の技術系カンファレンスまとめ - Qiita
    lestrrat
    lestrrat 2016/11/07
    YAPCほどの歴史があっても、全然リサーチされてなくておいちゃん悲しいよ… oggiにさえ載ったことあるカンファレンスのに!(関係ない
  • IT勉強会/コミュニティ運営のカレンダー | Advent Calendar 2016 - Qiita

    URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    IT勉強会/コミュニティ運営のカレンダー | Advent Calendar 2016 - Qiita
    lestrrat
    lestrrat 2016/10/28
    これは参加する
  • GoConの前哨戦として各種API仕様記述フォーマットについて概要を述べておく - Qiita

    この記事はGoCon 2016 springで話す内容を圧縮するためのものです。 WebサービスAPI仕様を記述したりするためのそれなりに有名な仕様について、筆者(@vvakame)の私見を述べていく。 なお、Google Trendの結果を見ると…。 仕様を調べてSwaggerを選択する事にしたのは1年弱程度前のはずなので、もし "今はそれもうできるよ!" とかあったらコメントなどで教えてください。 RAML RESTful API Modeling Language なので、手書きを前提にしている。 YAMLで頑張って仕様を書く。 Spec APIs Explorerっぽいものもあるっぽい。 総評 比較的広く使われているようでパワを感じる。 まず仕様が先というスタイルなのがめんどくさそう。 YAMLなのがちょっとイヤ。 RAMLからGoJavaScript(TypeScript)向

    GoConの前哨戦として各種API仕様記述フォーマットについて概要を述べておく - Qiita
    lestrrat
    lestrrat 2016/04/21
    やばい、俺登壇してこれと喧嘩しないといけないのか!!!w
  • ITに興味はないけどエンジニアになってしまった新人が業務や会社に効率的に慣れる方法 - Qiita

    ITに興味はないけどエンジニアになってしまった新人が業務や会社に効率的に慣れるための戦略や方法を書きます。 対象読者 その会社しか就活で受からなかった コミュ症なので人と話さなさそうな仕事を探したらプログラマになった クラシック音楽のプロを目指していたが夢破れて自暴自棄になったし藝大時代の知人と会うと悲しい気分が蘇ってしまうのでどの知人とも再会することがないように全く異分野のITの会社に入った といったなりゆきでITの会社に務めることになった方々です。 書いた人のプロフィール 優秀でも無能でもない平凡なサラリーマンです。 社会人歴5年くらいです。 業務システムを開発する中規模SIerに勤めています。元請けと1次受けが半々くらいで、2次受け3次受けの案件は滅多にない、そんなどこにでもある会社です。 そんな会社で平均ど真ん中な人事評価を受けています。 ITに興味はありません。 べていくために

    ITに興味はないけどエンジニアになってしまった新人が業務や会社に効率的に慣れる方法 - Qiita
    lestrrat
    lestrrat 2016/04/01
    「Emacsは最悪なのでやめておきましょう」
  • Go でチャネルに手軽に優先度を付けたいとき - Qiita

    バッチ処理でキューを処理していて、特定の送信元からの処理は優先度高くしたい!っていう要件が発生することありますよね?あります。 Goでチャネルをキューとして使い、ワーカーを別 gorutine で作ってタスクを処理するというのは、よくある実装です。そこへ優先度の高いタスクは割り込ませたい、みたいなことが起こった時に、さくっと解決するニッチなテクニックをご紹介します。 問題のプログラム チャネルからタスクを消費するようなプログラムですが、途中で優先度の高いタスクが発生するとします。 package main import ( "fmt" "time" ) type task struct { name string } var queue = make(chan task) func startConsumer() { for { select { case t := <-queue: //

    Go でチャネルに手軽に優先度を付けたいとき - Qiita
    lestrrat
    lestrrat 2016/03/02
    これ、キモのstart()はもっと全然簡単なループにできるな http://play.golang.org/p/xtRrh2rNJE #golang
  • OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る

    はじめに この文書では、OAuth 2.0 + OpenID Connect サーバーをゼロから一人で実装した開発者(私)が、得られた知見について書いていきます。基的には「実装時に考慮すべき点」を延々と述べることになります。 そのため、この文書は、「素早く OAuth 2.0 + OpenID Connect サーバーを立てる方法」を探している方が読む類のものではありません。そのような情報をお求めの方は、「Authlete を使って超高速で OAuth 2.0 & Web API サーバーを立てる」を参照してください。そちらには、「何もない状態から認可サーバーとリソースサーバーを立て、アクセストークンの発行を受けて Web API をたたいて結果を得る」という作業を、所要時間 5 ~ 10 分でおこなう方法が紹介されています。 文書のバイアスについて 私は、OAuth 2.0 + Ope

    OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る
    lestrrat
    lestrrat 2016/02/23
  • Goだからこそ許される3つの作法 - Qiita

    この記事はGo その3 Advent Calendar 2015の18日目です。 仕事の関係でGoを使い始めて気付けば9ヶ月。今ではすっかり慣れましたが、始めた当初はそれまでC言語・Java中心で仕事をしてきた自分にとってGo文化はかなり異質に映ったのを覚えています。 せっかくなので、他言語経験者でこれからGoを始めますよという方向けに、「Goではこんなことしても許されるよ」みたいなポイントを挙げてみたいと思います。 1文字の変数名 昔のプログラミングの入門書のコード例なんかだと、 というように1文字の変数名が多用されてたりして、それを引きずったまま職業プログラマになってコードレビューで可読性警察に逮捕される、なんてことは良くあったのではないでしょうか。 最近は「リーダブルコード」などの良い書籍が普及したのもあり、変数名は多少長くとも意味が判るものが良い、という文化が一般的なのではないか

    Goだからこそ許される3つの作法 - Qiita
    lestrrat
    lestrrat 2015/12/18
    グローバル、別に「許される」ってわけじゃないと思うけどな…
  • 本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita

    事の始まり それはD言語くんへの嫉妬から始まった。 D言語くんの繁殖についての仮説 lsを間違えてdlと入力してしまったときに、D言語くんが通り過ぎるコマンド くっ悔しい... そしてショボいAAで2番煎じ。 lsを間違えてgolと入力してしまったときに、Gopherが通り過ぎるコマンド書いた。 こんなはずじゃない! 僕らの Gopher 君はこんなチープじゃない! 明日来てください。物の Gopher をお見せしますよ。 — mattn (@mattn_jp) December 15, 2015 (当はもうちょっと前から作ってましたが) 物のGopher君とは そして今回、これを公開するに至った。 まずはこれをご覧頂きたい。 !!!!!!!!!!!!1 こいつ・・・ 動くぞ・・・ golang で書いたデスクトップマスコットです。起動すると画面のタスクバーの上をウロウロします。たま

    本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita
    lestrrat
    lestrrat 2015/12/17
    やっぱり mattn さんはモノホンの変態さんだなー
  • go の regexp が遅いと知らずに regexp で form に fillinするモジュールを書いた - Qiita

    go で、html fillinform をしたかったので、@gfx さんの HTML::FillInForm::Lite を go に移植しました。こちら→ fillinform 同様の機能をもつパッケージには、htmlfiller がありました。こちらは regexp ではなく exp-html をつかっています。 まずは愚直に regexp の実装をそのまま移植してみたんですが、なにしろ go の regexp が遅かったので、調べてみると go の regexp が遅いのは 天地開闢から周知の事実でした。 今もあまり変わってないようです。 ということで、このままだと perl の高速な regexp には到底太刀打ち出来ないので regexp を使わないようにできそうなところとか、そもそも自分の残念な go 実装を書き換えました。 unquote を bytes.Trim に fu

    go の regexp が遅いと知らずに regexp で form に fillinするモジュールを書いた - Qiita
    lestrrat
    lestrrat 2015/12/10
    PCRE2のパッチ待ってます!
  • YAPC::Asia 2015 聴講メモ: 前夜祭版 - Qiita

    全体的な感想 uzullaさんぐわっとしてた 19:00 PHP帝国の逆襲!(を願うPHPerが話す最近のPHPについてのクイックツアー PHP7対応版) TL;DR まとめるの無理っぽい。一発目からメモ地獄だった PHP7 なんだかんだWeb界隈ではPHP有名!ゆるふわw でも、まじめに書くとゆるふわじゃないよね RC1リリース! 倍ぐらい早くなった C拡張が致命傷ww 今までどおりmod_phpで使える 非互換性 非推奨関数の削除 C拡張が壊れるのが大きい CがわからないPHPerは待つしかないw Tyoe HintingあらためType Declaration stringやintなどスカラ値が使える メソッドの返り値が指定できたり エラーのハンドリング Fatalも例外で拾えるように Errorクラスを親としたら例外が投げられる パースエラーは無理 Notice, Warningは

    YAPC::Asia 2015 聴講メモ: 前夜祭版 - Qiita
  • YAPC::Asia 2015 2日目 感想

    ブログを書くまでがYAPCらしい。ブログを作る気力はない。 まえがき 前夜祭も1日目も参加したかったのですが諸事情で参加できず、電車の中でTBDのTogetterを見ながら行きたくて行きたくて震えてました。 2日目はなんとか参加できたので印象に残ってること書きます。 ちなみにYAPCは最初で最後でした。 ウォールーを探せ! 次のセッションまで空き時間があったのでふらふらしてたらteratailブースに遭遇。 最後のYAPCへのメッセージを書こうという話で、周りがYAPC最高!とか書いている中、"Docker学んで帰る"とか超個人的なことを書いてしまった。 結果予定を変更して3連続でDocker関連のセッション聞くことに。 凄く勉強になったので良かったのかもしれない。 その後ウォールーと写真を取った。 自分では凄く笑顔なつもりだったのだが、写真を見たら真顔だった。 これが影キャである。 Do

    YAPC::Asia 2015 2日目 感想