サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Nintendo Direct
qiita.com/pocari
低レイヤを知りたい人のためのCコンパイラ作成入門 (以下 コンパイラブック) を一通り読んでCコンパイラを作ってみました。 この本はまだ完全でなく(2020/09/01現在)、例えば構造体の実装の説明などは文章としては存在せず、この本の参照実装である chibicc を写経がてら作っていきました。 (実際には今現在進行中の @rui さんの Cコンパイラ作成のオンラインコースを始めます の参加者のみに現状は公開されているchibiccよりもうちょっと改善されたcコンパイラ実装が参照実装だそうです) もともと構文解析とかはちょっと興味があったりして、qiitaでも [ruby] Parsletで構文解析する[その1] [ruby] Parsletで正規表現をパースしてvm型のエンジンを実装してみる[その1] パース〜ASTまで みたいな記事は書いていたんですが、あんまりややこしいパーサーは書
アプリケーションからAWSのリソースにアクセスする場合、何かしらのIAMユーザを作って、 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY を発行して、環境変数などにセットして Aws::S3::Client.new( region: 'ap-northeast-1', access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] ) => #<Aws::S3::Client> でアクセスすること、多いですよね。 でも、EC2インスタンスや、ECSのタスクに Roleを設定してそちらで権限管理すると、credentialをアプリケーション側で管理しなくてもよくてより管理しやすくなってよいのですが、その場合のアプリケーションからのクレデンシャルの渡
2021/3/16 ついにecsのfargateにもaws cli経由でdocker exec的なことができるようになったそうです。 実際に僕もfargateのecsクラスタでためしてみましたが、 タスクroleに権限追加したのと、platform-veresionを1.4.0に、さらに、ドキュメンにあるとおりの追加のオプションをつけるだけでローカルのmacからecsのコンテナに入ることができました。 こちらのほうがだいぶ使いやすそうなので、これからはこちらがおすすめだと思います。 https://aws.amazon.com/jp/about-aws/whats-new/2021/03/amazon-ecs-now-allows-you-to-execute-commands-in-a-container-running-on-amazon-ec2-or-aws-fargate/ 一点ハ
その2 その3 概要 普通にwebな環境な開発の場合、あまり日常的に書くことはないけども、たまに書く必要があるときに困ることの一つに文字列のパースがあると思います。 フォームで入力される文字列に一定のルールがあって、そのルールに従って入力内容を解釈する 他システムからのデータのフォーマットに一定のルールがあるが、結構そのルールが複雑 などなど rubyで文字列をパースする場合 正規表現で頑張る racc で構文解析する などあるとおもいますが、 正規表現で頑張る 自分でもよくやりますが、一番お手軽ですぐ実装できますが、ちょっとした例外や追加ルールがでてくるととたんに無理がでてくることが多いですよね。ただ、パースするルールを自分である程度決定でき、例外をなくすために制約をつけられるのであれば一番お手軽かなとも思います。 racc(などのパーサジェネレータ系) きちんとパースはできるが、別途r
2017/03/30 追記 @f440 さんに display-panes だけでいけると指摘を受けて修正しました。 標準の機能だけでいけたのか。 display-panes なら標準で C-q にbindされてるみたいですね。 tmuxでpane移動 tmuxで作業しているとき、時々いろんな事情で、ウィンドウをたくさんのpaneに分けているとき・・・こういう場合。 標準でbindされているキーだと、 1つ前のpane 1つ上、下、左、右 などは、用意されてるんですが、斜めや、2つ以上離れた上下左右のpaneには一発で移動出来ません。 例えば、上記の画像のpane番号でいうと 0 から 5 へ移動 5 から 1 へ移動 1 から 3 へ移動 などはなかなか面倒です。で、なにか方法無いかなーと探していたのですが、stackoverflowで というのがありまして、まさにこれがやりたかったこと
僕はpythonも機械学習も全く知識が無かったのですが、ここ最近のニュースでも話題が多いですし、何か触りだけでも勉強できたらなと思っていたところにオライリーのゼロから作るDeep Learningがわかりやすいという話を聞いて買ってみました。 適度に数学的な部分も省かれてて、自分のような厳密な証明とかよりイメージを知りたいようなライトな感じの人にはとてもおもしろく読めました。また解説されていることがソースレベルで説明されているのが大変わかりやすかったです。 で、普段pythonとかをガリガリ書いている人はいいんだと思いますが、とりあえずやってみたいときに、pythonいれてnumpyいれて、matplotlibいれてやるのも(一回作ってしまえばいいですが)ちょっとメンドいですよね。 ならDockerで作ってしまおうと思ったのですが、この本ででくるmatplolibでグラフ描画(GUI)があ
Rubyで他のクラスを拡張したい場合 いろんな言語で既存のクラスを機能拡張することはあると思いますが、Rubyでももちろん存在します。 ですが、Rubyの場合比較的自由度が高いのでいろんな方法で拡張できます。 昔からある方法を使うのもいいですが、Ruby2以降で入った機能なども考慮するとなかなかパターンが合ったので自分用に整理したかったのと、きっと他の方法もあるんだろうとおもってそういうのがあれば是非教えてもらいたくて記事を書こうと思いました。 そもそもいい、わるいは別として同じ結果を取得する方式でもいろいろあって面白いのでそういう意味でも他の方の意見も聞きたいなぁと。 あと、それぞれの方法のメリット・デメリットなど一般的にいわれているものがあればそれも教えてほしいです。 さて、それでは今回拡張するクラスです。 拡張対象のクラス class C1 def m(act, *arg) case
uniteからの移行 neovimに移行したのをきっかけにuniteから徐々にdenite.nvimに移行してきました。 ここ2,3ヶ月ぐらいでものすごい勢いで機能が追加されていってるので、もう完全uniteには捨ててdeniteに移行完了出来ました。 で、最近追加された機能でDenite grepがさらに便利になったので、設定のメモ代わりに残しておこうと思います。 インストール denite.nvimの導入自体は unite.vimより高速な発達中のdenite.nvimを使う が分かりやすかったので、これを参考にするのがいいと思います。ここで紹介されているcpsmなども入れるととても快適です。 一応この記事で使っているvimrcファイルも最後の方に載せておきます。 Denite grepがvim標準のgrepより不便だった点 Denite grep使ってますか?便利ですね。 でも、一回
2020/05/26 追記 Docker for Mac の Mutagen-based caching で Volume のパフォーマンスが劇的に改善した Mutagen単独で試してみたことがあって、すごく速くてよかったんですが、 Docker for macに統合されそうな感じになってるんですね。 これは期待。 2017/3/15 追記 先日この問題のissueに対して、 というコメントがつけられ、それに関する というプルリクが 本体にマージされたようです。 まだ詳しく見ていませんが、マウント時に同期方法オプションが指定できるようになり、そのオプションによってキャッシュするレベルを制御して同期を軽くしよう、というような感じになるようでした。 実際にリリース版で使えるのはいつなのかわかりませんが、やはり本体が早くなるのが一番いいのでちょっと期待ですね。 ========== 追記ここまで
MailCatcherでメール送信をテストする 概要 メール送信のテストって面倒ですよね。本文の確認だけならそれほど手間ではありませんが、 やはりメールなので実際に送信できたかどうかの確認は必要になります。 すると、SMTPサーバを用意して、テストなり自分なりのアドレスに実際にメールを送って確認、 面倒なのでいつかオペミスしてホントの他人のアドレスに一斉送信とか、悲しいあるあるです。 で、なんかいいものは無いかと探しているとMailCatcherというのがあるようでした。 良い感じのライブラリだったのでdockerファイル作ってそれで開発用簡易SMTPサーバ(実際に送るわけではないですが)にすると便利であろうと思って試してみました。 環境 僕の環境はmacなのでdocker-machineを使っています。 なので、以降docker hostのIPアドレスは192.168.99.100として
概要 先日 dockerでrails5環境構築で開発環境を作りました。 で、やはり開発する上ではguiでstep実行できると楽だなと思い、 Visual Studio Codeを使ってRailsをデバッグ実行してみよう の記事を見つけたのでdocker-machine上で実行されているrailsに対して試してみようとしたところ、先日に引き続きハマり倒したのでその作業メモです。 目標のデバッグ環境 構築した dockerでrails5環境構築の環境は下記のような構成で動いています。 この環境でホストOS(osx)で実行しているVisual Studio Codeのデバッガでステップ実行したいわけです。 以下先日の「dockerでrails5環境構築」の状態からの変更点を記載していきます。 railsコンテナの設定 基本的には「Visual Studio Codeを使ってRailsをデバッグ実
dockerでrails環境構築 rails5 + mysqlの開発環境が必要になったので、dockerコンテナとして構築します。 docker-machineで作業するにあたってものすごくハマったのでその作業記録も。 作業環境 railsとmysqlはそれぞれ独立したコンテナにしたかったのでdocker-composeでまとめます。 またホストマシンはmacなのでdocker-machineでdockerの環境を作っています。 docker-machine v0.7.0 docker v1.11.0 docker-compose v1.7.0 railsコンテナ作成 方針 ホスト側にrubyがインストールされていなくても開発出来るようにしたい。 railsのアプリケーションのフォルダ自体はボリュームでマウントして、ファイルの編集自体はホスト環境で行えるようにしたい。 railsコンテナの
背景 昨日新しいバージョンで今まで面倒だったことがとても簡単になった、というような気付きがあったので、 昔気づいた「こんなことが出来るようになったのか」な内容と、そこから考えてみたことを記事にしてみようと思います。 mapで変換しながらリストを組み立てるとき、単純に複数のメソッドを呼ぶだけってとき多くないでしょうか? 例えば、複数のオブジェクトのとある文字列プロパティーを取得したくて、 Vo = Struct.new(:prop1) ary = [Vo.new("ab"), Vo.new("abc"), Vo.new("abcd")]
Rubyでは配列をグルグル回すときにメソッド+ブロックをつけて色々処理することが多いですが、そのブロック引数の扱いで 結構しられていない(?)多重代入のルールを知ってると簡単に書けたりすることがあります。 こういうパターンはよく見ます。 ary = [ [1, 2], [3, 4] ] ary.each do |a, b| p [a, b] end #=> #[1, 2] #[3, 4]
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く