タグ

programmingとGoに関するdamehumanのブックマーク (5)

  • 『週末レイトレーシング』を読んだ - a.out

    以前からレイトレーシングをやってみたいと思っていたので、正月の連休を使って『週末レイトレーシング』というを読んだ。 C++ を使ってフルスクラッチでレイトレーサーを実装していくという内容で、タイトルの通り週末にやりきれる分量にまとめられている。 tatsu-zine.com レイトレーシングのついでに Go の練習もしたかったので、C++ のコードを参考に Go で実装した。 最後まで実装できる確証もないまま始めてしまったが、interface など必要な機能が一通り揃っていたおかげで問題なく実装できた。 ただ、C++ と違って演算子のオーバーロードができないため、ベクトル計算の部分は記述量が多くなってしまい少しつらかった。 以下はレイトレーサーが実装されていく過程。 画像 説明 まずは画像の出力。このでは PPM 形式の画像を扱う。 中身はプレーンテキストなのでプログラムで簡単に生成

    『週末レイトレーシング』を読んだ - a.out
  • Big Sky :: Go 言語の非同期パターン

    Gogoroutine という非同期の仕組みを提供していますが、使い方次第では色々なパターンが実装できる為、初めて goroutine を見た人はどの様な物が正解なのか分からない事があります。以前、このブログでも紹介した事がありますが Go の非同期の仕組みは一見単純な様に見えて実はとても奥深いのです。 Big Sky :: golang の channel を使ったテクニックあれこれ golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればど... https://mattn.kaoriya.net/software/lang/go/20160706165757.htm 2012 年に Rob Pike 氏が Google I/O で「Go

    Big Sky :: Go 言語の非同期パターン
  • ターミナルで遊べるブロック崩しをGo言語で作る - Qiita

    この記事はGo (その2) Advent Calendar 2016の12日目の記事です。 みなさん、サンタさんには何をお願いしましたか? PS4ですか? でもクリスマスまであと何日かありますよね。PS4はしばらくお預けですよね。 PS4がまだ無いとすると、手元にあるCUIのターミナルで遊ぶしかないですよね。 というわけで、ターミナルで遊べるブロック崩しをGo言語で作ってみました。 WindowsでもMacでもLinuxでも遊べます。 残念ながらPS3では遊べません。 技術解説 Go言語界隈ではわりとおなじみのtermbox-goというライブラリを利用しています。 これを使うと 任意の座標への文字の書き込み 画面のクリア キーイベントの取得 が行えます。 画面表示はこんな風に行います。 //画面を初期化 termbox.Clear(termbox.ColorDefault, termbox

    ターミナルで遊べるブロック崩しをGo言語で作る - Qiita
  • goのprojectを始める - $shibayu36->blog;

    一切go触ってなくて全く何も分からなかったので、goのprojectの始め方すらも分からないのでググったのメモっておく。 私のプログラミングの始め方 : Go | Yakst 基的にはmkdirをしてprojectを開始するようだ。とりあえずこの記事を見ればgoのprojectを開始できる。 さあGoを始めよう!環境構築,”Hello World”から簡単なバックエンドサーバーまで | POSTD この記事もとりあえずの入門に参考になる。 これからGoを始める人のためのTips集 | The Wacul Blog Tips集もあった。gofmtの-rオプションとか便利そう。 http://r7kamura.github.io/2014/06/21/ghq.html あとはこの一番下に書いてあるとおり、ghqのpathとgoのpathは合わせた。 これでとりあえずは作れそう。

    goのprojectを始める - $shibayu36->blog;
  • はじめてのGo - すぎゃーんメモ

    今さらながら、Goをもう少し読み書きできるようになりたいな、と思い。 A Tour of Go を一通り読んで、 GitHub - mattn/twty: command-line twitter client written in golang go-oauth/examples/twitter at master · garyburd/go-oauth · GitHub などを参考にしつつ、写経というかんじで Twitterのtimelineを取得するものをまずは書いてみた。 package main import ( "encoding/json" "fmt" "github.com/garyburd/go-oauth/oauth" "github.com/typester/go-pit" "log" "net/http" "os/exec" "runtime" ) func mai

    はじめてのGo - すぎゃーんメモ
  • 1