ブックマーク / blog.bokuweb.me (20)

  • Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined

    概要 最近はWebAssemblyに興味があり、勉強していたんだけど仕様を読み始めても頭に入らないのでインタプリタを作ってみることにした。よくわからないものは作ってみるのが一番よい。 github.com まだ残された課題は多いのだけれども、一つ目標にしていた「Goで書いたゲームボーイエミュレータを動かす」を達成できたのでここに書いておく。 うおーついにRustで書いた自作wasm interpreter上でgoで書いた自作gameboy emulatorが動いたー!けど1FPSくらいしかでない... pic.twitter.com/I5B2XL5E0W— bokuweb (@bokuweb17) 2020年2月24日 こツイートに貼られているのは残念ながら、静止画ではなく、動画でありパフォーマンスが悲しいことになっていることを示している。あまりに遅くてプレイ画面まで到達できない。今後これ

    Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined
    nwpct1
    nwpct1 2020/03/12
    ついに...!
  • ゲームボーイエミュレータを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
    nwpct1
    nwpct1 2019/08/06
  • ファミコンのエミュレータを書いた - undefined

    概要 ファミコンのエミュレータをJSでだらだらと作ってた。そこそこ遊べるようになったので公開しておく。技術的な内容は、またどこかで発表したり、Qiitaなどにまとめたい。(忘れないうちに。需要があるかは怪しいが。) 随分昔に作ってみたいなーと思いFPGAでの実装を開始したんだけど、早々に挫折した覚えがある。今思うとFPGAの場合タイミングの問題が付き纏うのでJSで書くより圧倒的に難易度も高いし、ハードエミュレータを実装するにしても前段階としてソフトウェミュレータを実装するのが定石っぽいので無謀だったっぽい。 ひとまずMapper0という基的なカセット形式のみに対応し、スーパーマリオブラザーズがそこそこ遊べるくらいを目標とした。 成果物 github.com ファミコンのスペック MPU 6502(RP2A03), 8bit WRAM2KB VRAM 2KB 最大発色数 52色 画面解像度

    ファミコンのエミュレータを書いた - undefined
    nwpct1
    nwpct1 2017/09/20
    おーw ついに! 公開を楽しみにしてました!
  • モダンCSSフレームワーク『Bulma』のReactコンポーネントセット『ReBulma』を作った - undefined

    概要 今年に入ってからのんびりTwitterClient(https://github.com/bokuweb/tsukiakari)を作っていて、こいつに使いたいなーと思いコンポーネントセット作った。といっても、まだかなり雑でまだまだやることがありそう。 以下のような記事もあって様々なReactコンポーネントセットがあるんだが、あまり気にいるものがなく作ってみることにした。有名ところはMateri-UIあたりになるんだろうけど、正直自分はMaterialデザインの色とか見た目があまり好きじゃないし、Material-UIの挙動が?(現在は改善されてるかも)だったり、Styleのみを閉じたシンプルなものが欲しいというのも理由のひとつになっている。 qiita.com Bulma BulmaはFlexboxベースのモダンCSSフレームワークで現在V0.1.0RC。どんな感じなのかは以下の公式

    nwpct1
    nwpct1 2016/08/01
    よさそう
  • golang入門するためにlifegame書いてみた - undefined

    タイトルとおりなんだけど、golang使ってみたいと思うケースが出てきて、入門のためまずはlifegameを書いてみた。 ルール ライフゲーム - Wikipedia 結果 github.com 16/7/16修正しました package main import ( "fmt" "math/rand" "time" ) type game struct { field [][]bool row int column int } func newGame(row, column int) *game { rand.Seed(time.Now().UnixNano()) p := new(game) p.row = row p.column = column p.field = make([][]bool, row) for r := 0; r < row; r++ { p.field[r]

    golang入門するためにlifegame書いてみた - undefined
    nwpct1
    nwpct1 2016/07/13
    lifegameってこんな短く書けるんだ...
  • 2015年の振り返りと2016年の目標 - undefined

    昨日年が変わる2時間前くらいから、書こうか書かまいか、もやもやして、結局書かないまま年が変わってしまった。今日もどうしたものかと考えていたけれど、書くことでプラスになることが多いように思ったので書いておく。 良くも悪くも2015年は自分にとって激動の年となり、同時に実りを感じた年でもあった。 2015年振り返り ブログを始めた プログラミングを腰を据えて学びはじめた 会社の閉鎖が決定した 家をたてた 転職活動した ブログを始めた なんとなくブログを始めた。正確には2014年に開始したが、記事をちゃんと書こうと思ったのは2015年にはいってから。アウトプットするってのは自分にとってとても良い訓練で2016年も続けていきたい。自分は特に日語の能力が極めて低いので、最も適したリハビリかもしれない。 1年間でよく読んでいただいたのは以下の記事。 blog.bokuweb.me blog.boku

    2015年の振り返りと2016年の目標 - undefined
    nwpct1
    nwpct1 2016/01/04
    転職おめでとうございます。今年もよろしくおねがいします
  • はてブviewer『Pasta』をReact + Reduxで作って公開した - undefined

    概要 自分用に使い勝手の良い、はてブviewerをReact/Reduxで作って公開しました。 ※GoogleFeedAPI停止につき現在利用できません。申し訳ありません。 Pasta - Hatena Bookmark Viewer - ひとまず復旧したようです。 デスクトップ版をもご利用ください。 blog.bokuweb.me スクリーンショット どんなものか 登録したキーワードに関連するニュースを配信する『Zite』というアプリがあるんですが、配信される記事が英語のみなので、こいつの日語版を作ろうと思い着手しまた。当初はReact Nativeでスマホアプリを作り始めたんだけど、先にWEB版を作ってしまったほうが変なところで躓かずにすむんじゃないかと思い、こちらを先に実装することにしました。 ただリリース直前で気づいたんですが、公式にも同様の機能の『関心ワード』なるものが実装され

    はてブviewer『Pasta』をReact + Reduxで作って公開した - undefined
    nwpct1
    nwpct1 2015/11/27
    いい
  • ReduxとES6でReact.jsのチュートリアルの写経 - undefined

    成果物 github.com 目的 ReduxとES6への入門。 React.jsを(ようやく)触る機会が出て、情報量の多いFluxxorとCoffeeScriptで入門してた。 いろいろ情報を集めると、flummoxが人気!!みたいなのを見て、覗いてみたら4.0 will likely be the last major release. Use Redux instead. It's really great.って書いてあってReduxを触ってみることにした。exampleとawesome-reduxを眺めたらどれも当たり前のようにES6で書かれていて、合わせて入門することにした。 Redux概要 まだかなり理解が怪しいんだけど、以下の図がイメージしやすかった。 André Staltz - Unidirectional User Interface Architecturesより S

    ReduxとES6でReact.jsのチュートリアルの写経 - undefined
    nwpct1
    nwpct1 2015/10/03
  • BMSをブラウザで遊べるWEBサービス『bmsjs』のα版を公開いたしました - undefined

    概要 bmsjs(α版)というWEBサービスをリリースしました。 bmsjsはブラウザ上で動作するBMSプレイヤーとSNSの機能を持つWEBサービスです。 bmsjs.net BMS? 元々は、KONAMIの音楽ゲーム『beatmania』を模したシミュレータにあたる『BM98』用の譜面データフォーマットとして開発されたため、現在では同様のシミュレータ(BMSプレイヤー)に用いる譜面データ(曲データ)、あるいはゲームシステム全体を指す場合が多い。2000年代中盤頃までは、「ネットユーザーのPCには何かしらのBMSプレイヤーが入っている」と言われるほどの一大ムーブメントを巻き起こしていた。[要出典]現在はブームが沈静化しているものの、未だに新作BMS楽曲が作られるなどの根強い人気を保っている。かつてのBMS作曲家の中には、プロに転向した者や著名なボーカロイドプロデューサーも多い。 wikip

    BMSをブラウザで遊べるWEBサービス『bmsjs』のα版を公開いたしました - undefined
    nwpct1
    nwpct1 2015/08/17
    bokuwebさん組み込みエンジニアだと思ってた
  • はてブとpocketから一括検索できるwebサービス『tanaoroshi』を作ってOpenshiftで公開しました - undefined

    最近Node.js + AngularJSでこそこそ作ってたWEBサービスを公開しましたので紹介します。 お詫び(7/4 7:25追記) ちょくちょくクラッシュしているようです。申し訳ありません。 セッションをメモリで管理しているため、クラッシュした場合再ログインしていただく必要があります。ごめんなさい。 あとconnect.session() MemoryStoreはメモリリークがあるっぽいです。production環境での使用は非推奨っぽいですね。connect-mongo等を使用する必要がありそうです。順次対応いたしますのでよろしくお願いいたします。 作ったもの http://tanaoroshi.bokuweb.me/ Tanaoroshi. なんぞこれ? 「はてなブックマーク」と「pocket(旧read it later)」のデータから一括検索・閲覧するためのシンプルなWEBサ

    はてブとpocketから一括検索できるwebサービス『tanaoroshi』を作ってOpenshiftで公開しました - undefined
    nwpct1
    nwpct1 2015/07/04
    bokuwebさんすごい 最近Webサービス作るとか全く考えれてなかったことに危機感を感じてしまった
  • Browserifyでrequireを使ってjavascriptの依存関係をすっきりにしてみる - undefined

    ブラウザ上もでrequire使いたい 現状Coffeeのclassを異なるファイルから参照するにはwindow.HogeClassとか@HogeClassとかでグローバル変数をってたんだけどBrowserifyを使えばNode.js のモジュールのようにrequireで読み込みことができるっぽい。参考記事を見ながら簡単なサンプルを実際に作ってみた。 grunt-cli のインストール npm install -g grunt-cli package.jsonを作成 npm init 対話形式でpackage.jsonを作成。 必要な情報を入力してください。 プロジェクトに必要な情報を記述するjsonファイルが生成されます。 browserify grunt grunt-browserifyのインストール npm install browserify grunt grunt-browseri

    Browserifyでrequireを使ってjavascriptの依存関係をすっきりにしてみる - undefined
    nwpct1
    nwpct1 2015/03/16
    なるほど 触ってみよう
  • WEBサービスをリリースして二ヶ月経過後のアクセス数・収益など経過報告、反省点など - undefined

    はじめに こんばんは。以前以下の記事で告知したWEBサービスが公開後二ヶ月を経過しました。前月に引き続き、経過報告や反省点を記載しておきます。 先月の経過報告 ※リンクが間違っていたため修正しました。 WEBサービスをリリースして一ヶ月が経過したのでアクセス数・収益など経過報告や反省点など - ぼくのかんがえたさいきょうのうぇぶさーびす どんなサービスだっけ? youtubeの動画を元に音ゲー感覚でタイピングを練習できるサービスです。 無料タッチタイピング音ゲー typebeatscloud アクセス数 UU 3,483 PV 23,248 直帰率 34.89% 平均セッション時間 4:21 ページ / セッション 4.99 新規セッション率 69.17% 2月は日数が少ないのもありますが、そんなレベルのダウンじゃないですね。むしろリリースバブルを過ぎてあるべき値に収まったというところでし

    WEBサービスをリリースして二ヶ月経過後のアクセス数・収益など経過報告、反省点など - undefined
    nwpct1
    nwpct1 2015/03/03
    なるほどなぁ やっぱりCGMでアクセスを保つのって難しい
  • WEBサービスをリリースして一ヶ月が経過したのでアクセス数・収益など経過報告や反省点など - undefined

    前置き こんばんは。以前以下の記事で告知したWEBサービスが公開後一ヶ月を経過したので、経過報告や反省点を記載しておきます。こうした記事を書くのはPRの意味もありますが、一番は僕自身が公開された他のWEBサービスのアクセス数だとか運営状態などが非常に気になるからです。同じようにあのサービスどうなったんだろう?って思うかたの参考になればと思います。みんなもWEBサービスの経過報告じゃぶじゃぶ書こうぜ! 【WEBサービス】youtubeを使った音ゲー×タッチタイピングサービスを作ってみた【つくってみた】 - ぼくのかんがえたさいきょうのうぇぶさーびす どんなサービスだっけ? youtubeの動画を元に音ゲー感覚でタイピングを練習できるサービスです。「これじゃタイピングは上達しねーよ!」って声もありますが、それももっともかと思っています。ええ。 無料タッチタイピング音ゲー typebeatscl

    WEBサービスをリリースして一ヶ月が経過したのでアクセス数・収益など経過報告や反省点など - undefined
    nwpct1
    nwpct1 2015/02/01
    うおぉすごい...
  • 1月に見つけたWEBサービス/アプリ/ツール作ってみた系の記事まとめ - undefined

    2015年1月に見つけたものをまとめておきます。 Webサービス作ったので作業の流れを紹介してみる Webサービス作ったので作業の流れを紹介してみる - 今日学んだこと つくったもの ScheduleTweet どんなもの? TL上に日付っぽいツイートが流れたらお知らせするサービス 使用技術 サーバ heroku 言語 Python フレームワーク Django その他 ほぼまっさらのmacからサービス公開までの足取りを丁寧に紹介されています。DjangoでのOAuth認証も実装しています。こういうのを読むとwordpress使ってる場合じゃねえって思うようになります。 DjangoWebサービスつくってみた DjangoWebサービスつくってみた - Programming Log つくったもの いつかリスト - 人生の目標を管理・共有サービス どんなもの? あなたの今後の人生の目標

    1月に見つけたWEBサービス/アプリ/ツール作ってみた系の記事まとめ - undefined
    nwpct1
    nwpct1 2015/01/30
    紹介ありがとうございます! これからも色々作りたいな
  • CoffeeScript基礎文法最速マスター - undefined

    CoffeeScriptの文法について理解していないとこが多かったので、自分の覚書もふくめまとめてみました。 基 CoffeeScriptはJavaSciprtにコンパイル可能な言語 CoffeeScriptはインデントでブロックを表現する 行末の;(セミコロン)は不要 数値表現、四則演算はjavascriptと同様 コンパイル $ coffee -c hoge.coffee 例えば hoge = "hogehoge" console.log hoge は以下のようなjavascriptにコンパイルされます (function() { var hoge; hoge = "hogehoge"; console.log(hoge); }).call(this); 無名関数で括りたくない場合は $ coffee -cb hoge.coffee とします。 ログ出力 console.log "h

    CoffeeScript基礎文法最速マスター - undefined
    nwpct1
    nwpct1 2015/01/26
    前読んだ時分からなかったけど、けっこう良い感じにまとまってる
  • undefined

    新しいblogを作りました 今後こちらに書いていきます bokuweb.github.io Conway氏についてですが、公式にアナウンスがでたようです。ご冥福をお祈り申し上げます。 www.math.princeton.edu 2003年に発売された「Linuxから目覚めるぼくらのゲームボーイ!」というC言語でゲームボーイアドバンスで動作する自作ゲームを作成していく書籍があります。 ゲームボーイアドバンスはARM7TDMIというコアを使用しており、Rustで自作ゲームを作ることも可能となっています。 この記事では「Linuxから目覚めるぼくらのゲームボーイ!」のステップをRustで実施するための準備としてライフゲームが動くまでを書いてみます。 動機は今作っているWasmインタープリタをGBAで動かすことができないかの調査です。(たとえLチカレベルでも)AssemblyScriptとかでG

    undefined
    nwpct1
    nwpct1 2015/01/26
    おぉデザイン変わってる
  • Gitわかってる?Gitビギナーに送る分かりやすい記事・スライドなど20+選 - undefined

    Gitを使ってはいるものの、しっかり理解できていないので分かりやすそうな記事などを集めました。多分同じような感覚の人は少なからずいると思うので参考になれば幸いです。 記事 【Git入門者向け】イメージで理解するGitコマンド事始め | きのこる庭 「工場」に見立てて、git init, git add, git commit, git status, git log, git branch, git checkout, git merge, git clone, git pull, git push, git fetchを解説されています。 絵がかわいくてわかりやすい。 git入門 (全22回) - プログラミングならドットインストール 説明不要、みんな大好きドットインストールの「git入門」(全22回)です。 イラストでわかる!git入門の入門 : アシアルブログ アシアルブログより「イ

    Gitわかってる?Gitビギナーに送る分かりやすい記事・スライドなど20+選 - undefined
    nwpct1
    nwpct1 2015/01/23
    最近はGit逆引き入門しか読んでないなぁ
  • 簡単にリッチなチャートが作れるC3.jsを使ってみた - undefined

    C3.jsとは? C3.js | D3-based reusable chart library C3 はチャートに特化したビジュアライゼーションライブラリです。D3 のラッパーライブラリで、D3 の見た目の美しさやインタラクション性などの特徴を残しながら、チャートライブラリとして分かりやすいインターフェースを提供するという方針で開発を進めています。 http://blog.xica-inc.com/about-xica/member-12/ これはまではhighchart.jsを使っていましたが、商用利用は有償だったりするので今回C3.jsをいじってみます。 サンプル どんなチャートが作れるか以下のサンプルを見れば分かります。 C3.js | D3-based reusable chart library 使ってみる 音ゲーなどではゲーム終了時にスコアの軌跡がグラフとして描画されたりしま

    簡単にリッチなチャートが作れるC3.jsを使ってみた - undefined
    nwpct1
    nwpct1 2015/01/18
    “C3 はチャートに特化したビジュアライゼーションライブラリ” 良さそう
  • 100行で書けるブラウザで動作するyoutube音ゲーの作り方 - undefined

    はじめに 【WEBサービス】youtubeを使った音ゲー×タッチタイピングサービスを作ってみた【つくってみた】 - ぼくのかんがえたさいきょうのうぇぶさーびす 上記の記事で書いた「typebeats」のゲーム部を簡素化して説明してみます。 削っていくと100行に入りそうだったので詰め込んでみました。 かなり簡素化していますが、基的な考え方は共通です。 ゲーム概要 リズムに合わせて降ってくるアイコンをタッチ/クリックするゲームです。 画面をタッチ/クリックするとゲームが開始します。 こいつが こいつに 重なるくらいがタッチ/クリックするタイミングです。 スマホでの動作は確認していません。たぶん動かない気がします。 言語はCoffeeScript、フレームワークはenchant.jsです。 触れたことのない方はどっとインストールも参考にしてください。 CoffeeScript入門 (全13回

    100行で書けるブラウザで動作するyoutube音ゲーの作り方 - undefined
    nwpct1
    nwpct1 2015/01/17
    coffeeとenchantで音ゲー。javascriptやらないとなあ
  • 【WEBサービス】youtubeを使った音ゲー×タッチタイピングサービスを作ってみた【つくってみた】 - undefined

    あけましておめでとうございます。 2015年は頭にあるサービスをいくつか形にしたいと考えているbokuwebです。 早速ですが、2014年の秋から作っていたサービスをβ版ですが公開しましたので告知いたします。 つくったもの 無料タッチタイピング音ゲー typebeatscloud どんなもの? 「typebeats」はタッチタイピングを楽しく学ぶことを目標に作成した、youtube動画の音楽に合わせてタイピングする音ゲー×タッチタイピングサービスです。 いわゆる「BEATMANIAシリーズ」や「太鼓の達人」のような音ゲーとタイピングゲームを合わせてものです。 使用技術 言語 PHP、CoffeeScript(JavaScript) フレームワーク enchant.js、 jQuery CSSフレームワーク Flat UI(Twitter Bootstrap) データベース MySQL CM

    【WEBサービス】youtubeを使った音ゲー×タッチタイピングサービスを作ってみた【つくってみた】 - undefined
    nwpct1
    nwpct1 2015/01/15
    wordpressでログイン機能を実装
  • 1