soukouki’s diary

なんとなく思ったこととかを書いてたりする。

rakeのtaskに引数をつける

元 qiita.com 付け方、実行の仕方を何回も忘れるのでここに書いておく。 task :default, [:args1]do |task, args| p [task, args] end $ rake default[aaa] ["default", <Rake::Task default => []>, {:args1=>"aaa"}] もう一つタスクを定義してみる。 task :default, [:args1] => </rake::task>…

codeiqの「自然言語で計算できるAIを作ろう」で漏れを見つけたけど、どこに言えば良いのかわからない。

codeiqの https://codeiq.jp/challenge/2933 の 英文と代数式の対応表で、nineとelevenはあるのにtenはない。 とりあえず自分のプログラムには入れておいたけど、連絡先がわからないのでここに書いておく。 raccで楽勝じゃんと思っていたら、10000文字の制限…

Rubyで、代入に=を使ったdslの作り方。

こんなのを読み込みたかった aaa = 123 bbb = 456 ほかのサイトだと「作れない」と書いてありますが、全然いけます。 def run(__path) __src_binding = eval(open(__path).read+"\nbinding") __src_binding .local_variables .delete_if{|name| name.to_s[0.…

アンサイクロペディアの「1=2」のC言語による証明が、C言語でよくある間違い集になってるw

1=2 - アンサイクロペディア のC言語による証明が、C言語でよくある間違い集になってるww

メタプログラミングRubyを読んで(4)

最終回です。 前回 eval class AAA def get_binding binding end def aaa @aaa end end aaa = AAA.new aaa.aaa # => nil aaa.bbb # NameError: uninitialized class variable @@bbb in AAA aaa.get_binding # => #<Binding:0x00000002a16ab0> eval("@aaa=123",aaa.get_binding) aaa.aaa</binding:0x00000002a16ab0>…

Rubyの継承とmix-inをdotにするツールを作った

使ってやってください。 github.com 利用方法 ソースをコピーしてくる。 それをプロジェクトのパスから実行する。 ソースのファイルのパスを入力する。 図にするmoduleを入力する。 inheritance.dotにdotファイルがが出力される。 使い勝手が悪いかもしれま…

今月のPVが100を突破しました

おお! 見ていただきありがとうございます。 これからも頑張ります。 水増しとかされてないよね?

Rubyでeachしている時に次の要素に移るキーワード

eachで今の要素の処理をやめて、次の要素に移りたい時に 「forみたいにbreakで行けるでしょー」 (1..4).each do |n| break if n<=2 p n end 「あれ?何も出ない?」 =>調べる (1..4).each do |n| next if n<=2 p n end # 3 # 4 nextでした

Rubyで入力を配列にする方法

STDIN.readlines だけです。getsなんていりません! ただ、改行は残ってしまうので、 STDIN.readlines.map(&:chomp) こうしておきましょう。

raccでは日本語が使えないっぽい。=>そんなことなかったです。

文法定義ファイルの先頭に# coding: utf-8って書いとけば良いみたいです。 誤った情報を流してしまい、すみません。 でもsampleにはのってないんだよね。 間違った記事 soukouki.hatenablog.jp

メタプログラミングRubyを読んで(3)

前回 5.5まで(一部理解できてない) 特異メソッド a = [1,2,3] b = [1,2,3] c = a def a.xx self.inject(:+) end a.xx # => 6 b.xx # NoMethodError: undefined method `xx' for [1, 2, 3]:Array c.xx # => 6 [1,2,3].xx # NoMethodError: undefined method `…

メタプログラミングRubyを読んで(2)

前回 読んでたら疲れたので第4章までで知ったこととか。 ObjectはKernelモジュールをincludeしている なので def aaa "call aaa(#{self})" end aaa #=> "call aaa(main)" [].aaa #=> "call aaa([])" /aaa/.aaa #=> "call aaa((?-mix:aaa))" 余り使うことはな…

メタプログラミングRubyを読んで(1)

メタプログラミングRuby(第2版)を図書館でリクエストしていて、今日やっと届きました。 7月30日までに返さないと <- とりあえず第3章まで読んだので覚えたこととか。 使いすぎは良くない(当たり前) メタプログラミングにも静的なものと動的なものがある。 …

rubyの%記法って色々あるんですね。

blog.toshimaru.net を見て。 使えそうなところにはどしどし使っていきたいです。

間違えてブラウザを複数起動してしまい、元のダブがわからなくなる・・・

いつも起動時には前回のセッションで開いたタブを開くようにしています。 が、間違って多重起動などをして、元のタブがわからなくなってしまったり・・・ これ今気付いたんですが、 vivaldiなら右上のゴミ箱のマークからウィンドウ(nタブ)のところからすべて…

CodeiQをCodelQだと思ってた

iとlは間違えやすいので気をつけよう!

rakeでの複数のピリオドで区切ってある拡張子について

rakeで二個以上のピリオドで区切ってある拡張子のファイル 例: a.tar.gz の拡張子を変えようとした。 やりたいこと: a.tar.gz => a.abc 結果: a.tar.gz => a.tar.abc tarの部分が拡張子と認識されなかったっぽい? task :default do p a = FileList["**/*.ta…

Windows10の自動アップデートを止める方法(笑)

Cドライブの空き容量を10GB未満にすれば自動アップデートを止められます。(多分) というか、途中で空き容量不足で中断されます。 無駄なお金を使いたくない人は7月27日までにアップデートすることになりますが、、 正直使いづらくなった点も多いので、MSさん…

WindowsのFile Explorerでvivaldiのマウスジェスチャーを使おうとしちゃう

ひとつ前のページに戻るときについ・・・

vivaldiでtravis ciのページを見ると少しだけ気持ち良いかも

vivaldiのメニューの色が変わって成功したかがわかりやすい?

累計100アクセスを達成しました

2016/06/27に累計100アクセスを達成しました ありがとうございます そして、良い記事を出せるように頑張ります!

タイプミスで数時間潰した

resulr = val[0] / val[2] 分子の方しか出てこなくてあーだこーだやってやっと見つかった。 正しいのは result = val[0] / val[2] resulr result ^

アクセスが一気に増えた

なんとな~くアクセス解析を見たら 前日比27倍になっているではないか! 6/18 0 (我ながら0ってひどい) 6/19 3 6/20 1 6/21 27 何が原因? soukouki.hatenablog.jp だった。 今日は夏至 2016/06/21 夏至 今日 夏至 今日の夏至 ってヤフって来てた。 (「今日…

今日は夏至(2016年)

今日は2016年6月21日で夏至。 今日から段々と日が短くなっていく。 一日一日を大切に生きよう。

raccで変なエラー(またか)

修正前 | num '/' num { result = val[0]/val[2] } エラー内容 racc: E:/my-calc/my-calc/parser.rb.y:98: 98: unterminated regexp 98行目は rule...end の end のところ 修正後 | num '/' num { result = val[0] / val[2] } /の周りに空白を入れただけ エ…

vivaldiの検索はカタカナ、ひらがな同士でも大丈夫

あいうえお アイウエオ あいうえおを検索した時は両方引っかかる さすがCOOが日本人なだけある

vivaldiの「インターネット接続がありません」のミニゲーム

記録 毎回ステージは違うので場所は少しずれます 717 色が反転した時にびっくりしてアウト 1139 他でもだけど下の段に鳥が来た時によくミスってアウトに 1533 ミスって2回飛んで着地が間に合わずにアウト スピードがやばい

シンタックスハイライトってこれでいいのか

今まで a = 1.5+1 b = String.new('str') STDOUT.puts "#{a},#{b}" これから a = 1.5+1 b = String.new('str') STDOUT.puts "#{a},#{b}" 前の記事も直しておきます。

何このエラー?

Racc::ParseError: parse error on value "$" ($end) C:/Ruby23-x64/lib/ruby/2.3.0/racc/parser.rb:528:in `on_error' C:/Ruby23-x64/lib/ruby/2.3.0/racc/parser.rb:259:in `_racc_do_parse_c' C:/Ruby23-x64/lib/ruby/2.3.0/racc/parser.rb:259:in `do_pa…

powershellのコマンドのヘルプが見づらい気がするのは自分だけ?

powershellのコマンドのヘルプが見づらい気がするのは自分だけ? help copy 名前 Copy-Item 構文 Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Force] [-Filter <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-PassThru] [-Credential <pscredential> ] [-WhatIf] [-Con</pscredential></string[]></string[]></string></string></string[]>…

ブラウザをoperaから乗り換える

中国の方の企業に買収されるみたいで、、、 Vivaldiとかいうoperaの創業者がつくったブラウザがあるとか。 ということで、行ってきます。 operaアカウントを削除。 「残念です!」って言われてもねぇ。 vivaldiをダウンロード。ダウンロード – Vivaldi そし…

rubyで組み合わせを列挙したりするメゾッド

combination (1..4).to_a.combination(2).to_a => [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]] permutation (1..4).to_a.permutation(2).to_a => [[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 4], [3, 1], [3, 2], [3, 4], [4, 1], [4, 2], [4, 3]]…

raccの続き

ruleの前に options result_var って書くと formula : low_priority_formula | exp '+' exp { result = val[0] + val[2] } | exp '-' exp { result = val[0] - val[2] } | exp '*' exp { result = val[0] * val[2] } こんな感じで書ける。 あとは、tokenの最…

都市網で思ったこと。

オンラインじゃない方に要望なんですが、 ポップアップを減らしてほしい。 所持金が8桁もあるのに確認はいらないです。 都市の建設と道路の敷設が同時にできるようにしてほしい。 ウィンドウの広さを変えれるようにしてほしい。

宇宙エレベーターで思ったこと

宇宙ゴミ大丈夫なの? 実現できる頃には更に増えてそう。

raccでは日本語が使えないっぽい。(間違った情報でした)

間違った情報でした。 soukouki.hatenablog.jp 文法定義ファイルの先頭に# coding: utf-8って書いとけば良いみたいです。 コメントの場所でも C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/racc-1.4.14/lib/racc/grammarfileparser.rb:298:in `split': invalid b…

gitのlogの表示がおかしくなる

powershellでgitを使っているんですが、 ctrl+cを押して終了させるとgitのlogが少しおかしくなるんですよね。 主に--graphのところが出なくなったり。 まあctrl+cで終了させるのが悪いのかな。

rubyのこととか?

良い言語って言われてて気になってはいたけど、 なんか避けてた1,2ヶ月前。今では一番好きな言語です。 c#をvisual studioで書いてる時みたいなデバックのしやすさがあればいいのに。

xmlの名前空間はなんであんなにややこしいんだろう

xml

題名の通り。 あそこまでしなくても良かったと思うんだけど。

gitのrebaseができなかった。

git

git rebase Current branch master is up to date. え? とりあえず、 git fetch お、 git rebase origin First, rewinding head to replay your work on top of it... Fast-forwarded master to origin. できた。 短い。

字句解析から構文解析まで

字句解析にはStringScannerを使いました ソース いつの間にか消えてたらすみません github.com 各ファイルの紹介 parser.rb.y 構文を指定してるファイル parser.rb 字句解析とraccの自動生成された部分のカバー parser-test.rb テスト test.rb テストをする…

raccをとりあえず動かした

とりあえずソースを parse.rb.y class Parser rule EXP : int { p val[0].to_i } end ---- inner def parse tokens @q = tokens + [[false, '$']] do_parse end def next_token @q.shift end perser-test.rb require_relative "./parser.tab.rb" P = Parser.…

raccをインストールしてみた。

osはwindowsです。 gem install racc Fetching: racc-1.4.14.gem (100%) ERROR: Error installing racc: The 'racc' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from 'http://ruby…

正規表現のカッコについて

丸括弧は 文字をまとめる /+?-?(\d+|\d+.\d+)/ => +12 => -12.34 文字を取り出す /(+?(-?\d+|\d+.\d+))/ => +12 ($1=>‘+12’) => -12.34 ($1=>‘-12.34’) いい例が思いつかなかった() 後者の例だと$2に12.34が入ってしまって、 組み合わせて使うときに邪魔。 …

22日の何か

思うこと 毎日一言づつでも更新を目指したい。 プログラミングについて d.hatena.ne.jp ここは参考になると思う。

はてな

よろしくお願いします。