タグ

goに関するteracy_junkのブックマーク (52)

  • ゲームボーイエミュレータをGo言語で書いた - undefined

    概要 Goはこれまで量を書いたことがなかったので入門にゲームボーイエミュレータを書いてみることにした。ゲームボーイである理由はたまたまよくできたゲームボーイの資料(http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf)を見つけてしまったため。 成果物 github.com まだ基的なカートリッジタイプしか実装できていないがそこそこ動き始めたので公開することにした。直近は対応カートリッジを増やしながらWebAssemblyを吐けるようにしたい。 ゲームボーイの基仕様 項目 概要 CPU LR35902 4.19MHz 8bit RAM 8kB VRAM 8KB ROM 256k~32MBit Display 4階調モノクロ、160×144ドット スプライト 8×8 最大40個表示 / 1ライン上に 最大10個表示 背景 256×256ドット ウィン

    ゲームボーイエミュレータをGo言語で書いた - undefined
    teracy_junk
    teracy_junk 2019/08/06
    『Goはこれまで量を書いたことがなかったので入門にゲームボーイエミュレータを書いてみることにした』動機からしてすごい
  • 「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件 - Qiita

    この記事は、Go3 Advent Calendar 2018 の8日目の記事です。 7日目は @codehex さんによる「Go でアプリケーションとクライアントのミドルウェアを作成する方法知ってますか?」でした。 日はネタ全開でお送りいたします。 Disclaimer(免責事項) はじめに言い訳というか、これを書いた経緯というか。 プログラミング言語をdisる人をdisる芸を見たいですね! — yet another (@Maki_Daisuke) 2018年10月11日 というツイートをいたしまして、言った手前自分でやるか、と思い立った次第です。 なので、ネタとしてお楽しみください。 なお、炎上した場合にも、それすらもネタとして楽しむ所存ですのでアシカラズ。 それでは、いってみましょう。 Go言語がイケてない…だ…と……? Go言語はイケてない言語としてよくdisられているが、その中

    「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件 - Qiita
    teracy_junk
    teracy_junk 2018/12/19
    コメント欄の面倒くささよ
  • Go言語のイケてない部分 - ぐるぐる~

    最近色々あって仕事Go言語を使っています。 色々割り切っている言語なので、こんなこと言ってもしゃーないんですが、言語設計はミスってるんじゃなかなぁ、と思わざるを得ない点が多々あります。 使い始めて1か月くらいなので間違ったことを書いているかもしれませんので、何かあれば指摘していただけるとありがたいです。 文ではネガばかり羅列していますが、ランタイムとツール周りは気に入っています。 Goのランタイムを使う、もっと洗練されたAlt Go的なものがあるといいのに(もしくはジェネリクスのったGo2を早くリリースしてほしい)、と思う日々です。 追記: なんか意図とは違った受け取られ方をしている方もいるので追記します。 この記事はあくまで、「Go言語を学ぶにあたって躓いた点」を列挙し、まとめ、理由を考えてみる(教えてもらう)ために書いたものです。 Go言語自体はDisってますが、Go言語ユーザーを

    Go言語のイケてない部分 - ぐるぐる~
  • はてなサマーインターン2018の講義資料を公開しました。今年はGo言語&新カリキュラム! - Hatena Developer Blog

    Webアプリケーションエンジニアの id:tanishiking24 です。 今年で11年目となるはてなサマーインターンを2018/08/13 〜 2018/09/07という日程で開催しました。 developer.hatenastaff.com はてなサマーインターンの期間は前半と後半に分かれています。前半課程でははてなのサービス開発・運用に必要な技術を習得するための講義パート、後半課程では実際にサービスやシステム開発チームに参加していただいています。 はてなサマーインターンの講義パートで使用している「はてな教科書」はGitHubで公開しておりますが、今年のインターンで利用した講義資料を新たに公開しました。 今年のサマーインターンではカリキュラムを一新し、前半課程で利用するプログラミング言語にはGo言語を採用し、また進化するWeb技術に対応するためにデータベース基礎、インフラ、Webの基

    はてなサマーインターン2018の講義資料を公開しました。今年はGo言語&新カリキュラム! - Hatena Developer Blog
  • Goで直感的に簡単にdockerを操作できるCUIツールを作りました

    こんにちわ 最近dockerを使っていて、 ターミナル上で直感的にdockerを簡単に操作できるツールあったら便利だなと思い、 Goの勉強も兼ねてCUIツールを作りました。 ツール名はdocui(ドックユーアイ)で、docker cuiをの略です。 特に良い名前思いつかず、適当に決めましたが、今となっては気に入っています。 まだdockerコマンドほど機能は充実していないのですが、よく使うコマンドは実装したので公開しました。 興味ある方は使って見て頂ければと思います。 今後は少しずつ改善・機能を増やしていくので、 使ってみた感想などを頂けると助かります。 2018/09/26 追記 docuiの実装について記事を書きました。 アジェンダ コンセプト 導入方法 各パネルの概要 各パネルの操作 image list container list volume list detail docui

    Goで直感的に簡単にdockerを操作できるCUIツールを作りました
  • Vue.js + Golangでタスクリスト作ってみた - ボクダイモリ

    Vue.jsとgolangを使って何か作ってみたかったので試しにタスクリストを作ってみました。 github.com Vue.jsの書き方やgolangAPI実装はmattnさんのブログを大いに参考にさせて頂きました。 mattn.kaoriya.net 見た目はこんな感じです。 WebアプリケーションフレームワークはEcho、ORMgormを利用しています。 また、Dockerの勉強も兼ねてフロントエンドとバックエンドの環境を立ち上げられるよう設定ファイルも書いてみました。 バージョン確認 $ go version go version go1.10 darwin/amd64 $ node -v v9.8.0 $ npm -v 5.8.0 なお、環境構築の手順は割愛します。 フロントエンドの実装 タスクリストの機能は次の通りです。 - タスクの一覧表示 - タスク作成 - タスクの完

    Vue.js + Golangでタスクリスト作ってみた - ボクダイモリ
  • Raspberry Piとgo言語で部屋のコンディションを記録してグラフ化した - 丁寧に手を抜く

    部屋のコンディションをRaspberry Piとセンサー使って、3分ごとに記録してグラフ化するところまで出来た! 今留守にしているので、外気とちゃんと連動してるのが分かる。 これで自分の調子がいい時・悪い時の部屋のコンディションが調べられる☺️ もうすぐ二酸化炭素濃度センサーも届くので楽しみ💪 pic.twitter.com/WIoihOcZPw— TAKUYA🐾個人開発うノウハウを書く (@craftzdog) September 3, 2018 自分のプロダクトばかり作っていると技術の幅も狭まってしまうので、定期的に趣味がてら題材を見つけて普段使わない技術に触れている。 自分にとってベストな部屋のコンディションが知りたい 今回は兼ねてからやりたかった、自分の部屋の温度や湿度などのコンディションを数分ごとに記録してグラフで可視化すること。 体調と空気の質は関連が深い。 気圧が低い

    Raspberry Piとgo言語で部屋のコンディションを記録してグラフ化した - 丁寧に手を抜く
  • チョットできるGoプログラマーになるための詳解GoDoc - Qiita

    上の2つがCLIで、下の2つがブラウザです。歴史的な経緯を見てみましょう。 〜1.1: go docはバンドルされているツールで、ソースもgo体に同梱 1.2: go docは別のリポジトリにわけられてgodocになり、go体から外れた 1.3: godocで-analysisオプションが追加 1.5: 新しい"go doc"コマンドがgo体に同梱 1.11: godocがウェブだけになるため、go docを使えというアナウンスが出るように 1.12: godocが-httpだけをサポートしてCLIの機能は削除予定 1.13: godocのwebサーバーが同梱されなくなって手動でのインストールが必要に 1.13~: 既存のgodoc.orgから、go modのプロキシサーバーの情報をもとにドキュメントをホスティングするpkg.go.devが運用開始 わかりましたか?よくわかりませんよ

    チョットできるGoプログラマーになるための詳解GoDoc - Qiita
  • クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita

    はじめに クリーンアーキテクチャの書籍を読んだので、実際にクリーンアーキテクチャの考え方を採用したREST APIGO言語で実装してみた。 ↓↓↓↓ソースコード↓↓↓↓ https://github.com/yoshinorihisakawa/sample-api-hoop/tree/develop この記事ではクリーンアーキテクチャの説明というよりかは、実装ベースの実践的な内容にしている。 対象読者 ・クリーンアーキテクチャで実装されたソースコードを理解したい人 ・クリーンアーキテクチャの右下の図がよくわからない人 ・アーキテクチャについて勉強を始めた初心者 クリーンアーキテクチャとは? クリーンアーキテクチャとは、8th Light, Inc.のブログ記事で提案されている。 一言で言うと、依存関係をコントロールし持続可能なソフトウェアを実現するための体系的な手法である。 ※ DIやD

    クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita
  • Go言語で書いた Web アプリケーションの習作をサービス化して公開するところまでやってみた - えいのうにっき

    もともと数ヶ月前から、Go言語によるWebアプリケーション開発 を読みながら Go での Webアプリケーション開発の勉強をしていた。 Go言語によるWebアプリケーション開発 作者: Mat Ryer,鵜飼文敏,牧野聡出版社/メーカー: オライリージャパン発売日: 2016/01/22メディア: 大型この商品を含むブログ (3件) を見る 「実際に動くもの」を、「手を動かして作りながら学ぶ」のが僕は好きで、今回も同様、それを楽しんでやっていたのだけど、思いの外それっぽいものができあがってしまって。これをそのままローカルで動かすだけじゃおもしろくないな、もったいないな、と思ったので、それをサービス化して公開するところまでやってみた。 かんじんのアプリケーションは↓これ。Yukizuri と書いて「ゆきずり」と読む。 https://yukizuri.moshimo.worksyukizu

    Go言語で書いた Web アプリケーションの習作をサービス化して公開するところまでやってみた - えいのうにっき
  • Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング

    はじめに メルペイ エキスパートチームのtenntennです。 メルカリグループでは、毎週金曜日にGo Fridayという社内勉強会を開催しています。 毎週やっているとそれなりに知見が溜まってくるので、定期的に”こぼれ話”としてブログを書こうという話になりました。 今回の記事では、先日のGo Fridayで話題にあがった非公開な機能を使ったテストについて扱いたいと思います。 なお、Goにおけるテストの手法やテストしやすいコードの書き方については、GopherCon 2017でも発表があったmitchellhさんの”Advanced Testing with Go”(スライド/動画)が参考になります。テーブル駆動テストやテストヘルパーなど非常に勉強になるので、まだ見たことのない方はぜひスライドや動画をご覧ください。 TL;DR Goのテストではテスト対象とテストコードを別パッケージにできる

    Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング
    teracy_junk
    teracy_junk 2018/08/08
    『(_test.goのサフィックスつけて)パッケージ名をテスト対象と同じにすることでテストの時のみにアクセスできる変数や関数を作ることができます』実際に標準パッケージでも使われている、と
  • みんなのGo言語[現場で使える実践テクニック]

    2016年9月9日紙版発売 2016年9月9日電子版発売 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太 著 B5判/144ページ 定価2,178円(体1,980円+税10%) ISBN 978-4-7741-8392-3 ただいま弊社在庫はございません。 Amazon 楽天ブックス honto ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 注目のプログラミング言語Goを習得するメリットはいくつかあります。シンプルな言語設計のため学習しやすく,整理されたコーディング規約によりチーム開発で運用しやすいこと。マルチプラットフォームに対応し,さまざまな環境へのツールをつくるときに有用であること。インフラ部門のスループッ

    みんなのGo言語[現場で使える実践テクニック]
  • go言語初心者が図を書きながらgoroutineやgo channelを理解する(Part2) - Qiita

    前提 go言語初心者が図を書きながらgoroutineやgo channelを理解する(Part1) の続きです。 まずはGo言語の並行処理の方針をEffective Goから引用します。 Do not communicate by sharing memory; instead, share memory by communicating" つまり、ワーカーの間でメッセージパッシングを行う方法が推奨されています。 確かに共有メモリを使う方法は、直感的な気もしますけど、競合とかデッドロックとか、色々と気にしないといけないことが多くて大変です。 メッセージパッシング方式がトレンドなのかもしれません。 go channelはgoroutineの間で値を受け渡しするための配列のようなものです。 channelはバッファを持たせることができて、channelへのデータ送信時にバッファがいっぱいだと

    go言語初心者が図を書きながらgoroutineやgo channelを理解する(Part2) - Qiita
  • Go by Example

    Go は、シンプルで高速な、 信頼性の高いソフトウェアを開発するために設計された、 オープンソースのプログラミング言語です。 Go のコードやツールのパッケージ、モジュールについて学ぶには、公式 ドキュメント を読んでください。 Go by Example は、コメント付きの サンプルプログラムを使った、ハンズオン形式の Go の入門編です。 最初のサンプル に進むか、 下のリストから読んでください。 この文書は、@mmcgrana さんにより作成された Go by Example の日語訳となります。 Hello World Values Variables Constants For If/Else Switch Arrays Slices Maps Range Functions Multiple Return Values Variadic Functions Closures

    teracy_junk
    teracy_junk 2018/08/02
    Go by Exampleの日本語訳あった。捗る
  • Go の channel 処理パターン集 | Hori Blog

    Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 この記事は Go Advent Calendar 2017 の 1 日目の記事です。 Go の長所に goroutine による非同期処理がありますが、どうしても channel の取り回しで黒魔術化しがちです。少しでも闇を減らしていきたいので、 channel らへんの取り回しについてパターンをまとめました。チートシート的に使えれば嬉しいです。 Go の channel の基礎 入門資料として使いたいので、題に入る前にざっくり基礎を。 定義のパターン channel には capacity という概念があります。 capacity は channel 内でバッファリングしておける容量のことで、 capacity に空きが無い場合は送信側

    Go の channel 処理パターン集 | Hori Blog
  • Big Sky :: golang の channel を使ったテクニックあれこれ

    golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golanggoroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等を実装できる様になっています。尚、channel をどの様に適用したら良いかについては以下を参照下さい。 Big Sky :: Golang の channel の使い所 golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその grout... http://mat

    Big Sky :: golang の channel を使ったテクニックあれこれ
  • インタフェースの実装パターン #golang - Qiita

    はじめに この記事は,以下の過去にQiitaに投稿したインタフェースの実装パターンの記事に,typeやメソッド,インタフェースの基的な説明を追加してわかりやすくしたものです. Go言語における埋め込みによるインタフェースの部分実装パターン structにinterfaceを埋め込んで,動的に入れ替えるパターン まずtypeとメソッド,基的なインタフェースの実装方法についておさらいすることで,さまざまなインタフェースの実装パターンを扱う準備をしましょう. typeで型を宣言する まずはじめに,Go言語における型の宣言方法をおさらいします.Go言語をはじめたばかりの方の中に,typeの使い方を限定的にしか理解していない方をよく見かけます.ご存知のとおり,typeは型を宣言するために使うキーワードです.以下のように,構造体型やインタフェース型の宣言の際に,使用することが多いでしょう. //

    インタフェースの実装パターン #golang - Qiita
    teracy_junk
    teracy_junk 2018/08/02
    『インタフェース型の宣言時に指定したメソッドリストのメソッドをすべて実装することで,インタフェースを実装することができます.Javaなどのように,implementsなどを使って明示的に実装する必要はありません』なる
  • 最近流行っている(?)GraphQLについて書くぜ - Qiita

    { "data": { "viewer": { "login": "takochuu", "avatarUrl": "https://avatars1.githubusercontent.com/u/207675?v=4", "company": "Japan", "name": "", "url": "https://github.com/takochuu" } } } ね?簡単でしょう。 今回は、goGraphQLを使用したAPIサーバーのソースコードをgoで作ります。 GraphQLを使ったサーバーの実装 ここからはいよいよ実装に入ります。 introductionとしてはこちらのtutorialを実施してもらうのが良いと思います。 今回、GraphQLのライブラリとして github.com/graphql-go/graphql を利用します。 1ヶ月程masterにcommit

    最近流行っている(?)GraphQLについて書くぜ - Qiita
  • GraphQLを勉強したのでGolangで書いてみた - 生涯未熟

    ここ最近とてもGraphQLが盛り上がってますね! イベントも続々と開催されていたりするので、勢いを感じています。 そんなGraphQLを遅まきながら勉強してみました。 GraphQLとは? 既に様々な記事で論じられている内容なので割愛します。 この記事が個人的に一番分かりやすかったです。 qiita.com 実装してみよう! それでは早速実装してみます。 今回はGolangを使い、サーバサイド側の実装を行います。 ライブラリ ライブラリとしては以下を使いました。 github.com こちらとも迷ったのですが、今回はStar数の多い方を使いました。 github.com あとは、簡単にDBを使いたかったためSQLXを使用しました。 github.com コード 実装してみたものは以下になります。 github.com 慌てて作ったものになるので、汚いですが一応動きます! コード内でキモと

    GraphQLを勉強したのでGolangで書いてみた - 生涯未熟
  • golangでGraphQLの素振りを行った - Qiita

    golangGraphQLの素振りを行ったので,詰まったところ実装周りを書いていきます. GraphQLとは 一つのエンドポイントに独自のクエリ言語を投げることで,多くのリソースを一回のリクエストで大量にゲットできるすごいもの. RESTだと一つのエンドポイントごとにリソースを取得するのが,普通だと思うのでどうしてもエンドポイントが増えていきます.他にもリソースが増えてくると,複数リクエストを送らないといけなかったりいろいろきついです. そんな問題を解決するために,GraphQLは出てきました. こちらの記事👇にすごく詳しく書かれているので,ぜひ読んでください. GraphQL入門 - 使いたくなるGraphQL golangでのGraphQL実装 ライブラリがあるので,それを使用します. 今回使用したライブラリ👇 graphql-go/graphql 書いたもの 実際に書いたコード

    golangでGraphQLの素振りを行った - Qiita