「Ruby」と一致するもの

2018年11月13日

$XPC テストネット始動

  • 投稿日:
  • by
  • カテゴリ:

コミュニティに参加・応援してる暗号通貨XPC(XPChain)のテストネットがついに公開。

XPChain Official Web(公式サイト、テストネット用ウォレットもここからDL可能)

このブログのblogchainはすっかりstallしてしまってるけど、XPCのほうはやや遅れながらも順調に進んでるっぽい。
開発体制にやや不明瞭なところはあるけど、その辺も含めしかるべき時がくればいろいろと明らかにされると思うので、今はじっと待つ。

とはいえテストネットが公開されていろいろ弄ることができるので、RPCで大量に投げたり1XPCずつの1475txの塊(元気玉)を返却したりと遊んでる。た~のし~♪
(通知が来るのをすっかり失念して10XPC爆撃してしまった件に関しては申し訳ない)

メインネットが公開された暁には、cvmu.jpにてノードをホスティング予定。
あとはRubyとかC#(VB?)で軽量ウォレット作ってみたりとかしたいけど、まだちょっとBitcoinやブロックチェーン関係の知識が足りなさそうなので少しずつ。

2018年1月10日

DiscordのBotを試しに作成してみた

イチからDiscord Bot 。for Ruby - Qiita

discordrb/eval.rb at master ・ meew0/discordrb

久々の記事がいきなりこれ。なんでDiscord?Ingressで陣営変更でもした?(※1)って、そういうわけじゃないけど。

流れを要約すると

  • Twitterの某フォロワーがXPって仮想通貨暗号通貨に手を出してた
  • 以前からブロックチェーンとか興味あったので、勢いでXP買ってコミュ入った(※2
  • 開発メンバーがBot弄ってるっぽいけど、足を引っ張りそうなので参加は断念
  • でもDiscordのBot弄ってみたかったので自分のDiscordサーバ立ててBot入れた

XPについては基本的に放置予定。ウォレット入れてPoSしてるけど。
自宅サーバを2013年に止めてから約4年3ヶ月ぶりにPC常時稼働中。

今後のロードマップとしては、ブロックチェーンのコンセプトコードとか書いてみて、適当な暗号通貨もどき(難易度とかプルーフがザルなもの)作って遊んでみようかな~。
どうもがちっとやろうとすると長続きせず飽きてしまうので、仕事じゃないし熱と勢いだけでがーっとやっちゃおう。

2015年11月22日

puts 0**0

0の0乗の正解がネット検索しても見つからないので作成した。 | 子育ての達人 | 妊娠・出産・育児・子育ての毎日を楽しく

えええええ!?00=1じゃないの!?????

記事を要約すると「代数的には未定義(存在しない)、解析的には不定(2つの関数をどう定義するかによる)」らしい。

でもまあ、困ったときは神ならぬRuby頼みと言うことで...

puts 0**0
1
=> nil

我らがRuby様は00=1だとおっしゃった!

なので明日からも00=1で生きていきます。

2015年11月13日

Ruby 3!?

新型Ruby開発へ 設計者表明、IT高度化・複雑化に対応  :日本経済新聞

2.4とかじゃなくて3.0なの?(2.3は既にtrunkになってるから出るとして)

とりあえず、期待することとしてはPythonぐらい処理速度が上がって、人工知能(機械学習、ディープラーニング)で使えるようになってほしい。

具体的にはTensorFlowをRubyで動かしたい。

さすがにそこまでの変化はないかな。でも、メジャーバージョン上がるんだから期待してもいいよね?

2015年11月 1日

CentOS7にnginx+Unicorn+Ruby 2.2(rbenv)+Rails 4.2

  • 投稿日:
  • by
  • カテゴリ:

順番に入れていく。まだローカルでテストしてる段階なので、VPSに入れる時にはオプションとか変更するかも。

以下、特に断りがないかぎりバージョンは本記事公開時点の最新を選択。

CVMUプロジェクト自体、安定性より最新を重視してるので、さすがにdevelopment・canary・nightlyやβ版、RC版は使わないけど、正式リリースであれば出たばっかりのバージョンでもどんどん使っていくつもり。

※コマンドの先頭が「#」になってるものはroot権限が必要という意味で、実際はsudoでやってる場合もある。

2015年10月29日

GUIインストールしたCentOS 7をCUIにする(逆も)

  • 投稿日:
  • by
  • カテゴリ:

一応、CVMUプロジェクト(※1)をゆっくり進めていこうということで、まずはサーバの仕様決め。

現時点で決まってる仕様は

  • サーバ:さくらのVPS(プランはとりあえず白紙へ)
  • OS:カスタム(CentOS 7 x64)
  • Webサーバ:nginx
  • Rails環境:Unicorn+rbenv+Ruby 2.2

今回はサーバのシェル(UI)をどうするか。

いろいろあって、当初の予定よりVPSのグレードを下げたい(512Mあたりで始めて、足りなかったら1Gに移行)ので、リソース的にはCUIにしたい。

でも、GUI管理コンソールなサーバも捨てがたいし、とりあえずGUIで入れて重かったらCUIに変更する方向で検討。

一時的にCUIを使うには、VirtualBox等だとCtrl+Alt+F2~F6。VPSで発行できるのかは不明。

恒久的にCUIを使うには、たしかランレベルを変更すればいいはず...ということで関係するコマンドやファイルを検索。

起動設定・ランレベルの設定

現在のレベルは/sbin/runlevelで表示、変更は/etc/inittabを編集。

ということで早速VirtualBox上で変更テスト。

2015年10月28日

RubyでHTTPS

なんてことはない、ただRubyでHTTPSなWebサーバにアクセスしてGETでデータをとってくるというだけの話なんだけど...

問題発生

まず思いついたのがこのコード。

require 'net/https'
Net::HTTP.get(URI.parse("https://mcrn.jp/ret.cgi"))

しかし、次のようなエラーが返ってきてしまう。

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
from C:/Ruby21x/lib/ruby/2.1.0/net/http.rb:923:in `connect'

原因究明

もしかしてSNIに対応していない?と思ったけど違った(4年以上前に対応してる)。

さらに調べて、以下の記事をヒントに証明書の場所を調べてみてびっくり。

エラー:OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed - komiyakの通り道

require 'openssl'
p OpenSSL::X509::DEFAULT_CERT_FILE
"C:/Users/Justin/Projects/knap-build/var/knapsack/software/x64-windows/openssl/1.0.1l/ssl/cert.pem"
=> "C:/Users/Justin/Projects/knap-build/var/knapsack/software/x64-windows/openssl/1.0.1l/ssl/cert.pem"

Justin!?誰???(※1

2015年10月25日

ブログ移行完了!

  • 投稿日:
  • by
  • カテゴリ:

時間がかかるかと思ってたURLマッチングが思いの外早く終わったので、だらだらと更新の止まったブログを晒してても意味がないし、さっさと移行してしまうことに。

流れとしては以下のような感じで、すでに3.まで済ませてあったので後は残りをするだけ。

  1. 「約定期blog GS」(以下、旧ブログ)の全データをバックアップ
  2. 「Luvelcrak」(以下、新ブログ)にデータをインポート(noindex、follow設定)
  3. カテゴリの調整など
  4. 旧ブログのURLとタイトルのペアを収集するスクレイピングツールをRubyで書いて実行
  5. 新ブログのURLとタイトルのペアを書き出すテンプレートをMTに登録して発行
  6. 4.と5.で作ったリストを付き合わせて、.htaccess用の「旧URL→新URL」リダイレクトリスト(Redirect permanent)を作る(216行)
  7. さくらのサーバ上に旧ブログドメイン用のフォルダを作って、6.のリストにトップページ用のRewriteRuleと404/403処理を追加した.htaccessを設置
  8. さくらのサーバ設定から「さくらのブログ」に割り当ててたサブドメインを7.で作ったフォルダに割り当て直す
  9. 新ブログのnoindex、followをはずして、旧ブログにnoindex、nofollowを付ける。

2015年10月23日

マイナンバー(もどき)を大量生成?

Ruby - マイナンバーのチェックデジットを計算する - Qiita

何となく気になって、チェックディジット(デジット、サム)(※1)の計算方法を調べてみたんだけど、要するにこれを使えば「無意味な11桁の数字」からマイナンバールールに適合するのが作れるということになる。

ということで、上記記事にあったコードを弄ってみた。

def create_my_number(dmynum)
  digits = ("%11d" % dmynum.to_i).chars.map(&:to_i)
  raise "#{dmynum}" unless digits.length == 11

  digits.reverse!

  remainder =  (1..11).inject(0) {|sum, i|
    p = digits[i-1]
    q = (i <= 6) ? i+1 : i-5
    sum + p*q
  } % 11
  case remainder
    when 0,1
      check_digit = 0
    else
      check_digit = (11 - remainder)
  end

  %Q!#{"%011d" % dmynum.to_i}#{check_digit}!
end
rng = Random.new()
1000.times do
  puts create_my_number(rng.rand(10**11))
end

2015年10月22日

モンティ・ホール問題をゴリ押しする

終物語 ~ モンティ・ホール問題 - カモメのリズム

さーて、ゴリ押しのバカコードで検証検証♪

def montyhole(chg,doors=3)
  a = (1..doors).to_a
  goal = a.sample(1)[0]
  me = a.sample(1)[0]
  b = a.clone
  b.delete(goal)
  b.delete(me)
  you = b.sample(1)[0]
  if chg
    c = a.clone
    c.delete(me)
    c.delete(you)
    # raise "ERROR" if c.length > (doors - 2)
    me = c[0]
  end
  if me == goal
    1
  else
    0
  end
end

doornum = 3
10.times do
  stay = 0
  change = 0
  10000.times do
    stay += montyhole(false,doornum)
    change += montyhole(true,doornum)
  end

  puts "stay: #{stay}, change: #{change}"
end

結果、変えない方は約3333/10000(1/3)、変えた方は約6666/10000(2/3)。