おんがえしの blog

作ったプログラムと調べた技術情報

rubypico

RubyPicoをAppStoreに復活させました

rubypico.ongaeshi.me RubyPicoがApp Storeから消えて悲しい、というコメントやツイートを複数見つけて嬉しかったので、Apple Developer Programを更新しました。もう少ししたらStoreでも復活するはず。今日から一年間は少なくとも有効です。 https://t.co/p…

RubyPico 0.9.7 をリリース - mruby 1.3 に対応

mruby 1.3 に対応したり、Browser.openを連続でできるようにしました - 更新履歴 RubyPicoongaeshi仕事効率化無料 mruby 1.3 に対応 Safe navigation operator (&.) Array#dig, Hash#dig Object#freeze Kernel#caller 詳しくはmruby 1.3.0 releasedをどうぞ…

radiko.rbで時間表記を"Mon 25:00"と書けるようにした

ドッグフーディングしながらコツコツと改良を加えているradiko.rb。 深夜のラジオ番組は大体 “Mon 25:00” (本当は火曜日の深夜1:00) “Sat 24:00” (本当は日曜日の深夜0:00) のような表記をされることが多い。今までは"Mon 25:00" -> “Tue 1:00” のように変換…

Radikoの番組をRubyPicoから直接開けるようになった

その後もradiko/radiko.rbの改造を加えている。 任意の番組リストを作れるように 前回の課題になっていたやつ。自分の好きな番組もann.rbやjunk.rbのように表示できるようにした。 rubypico/radiko - GitHub こんな風に書くと # coding: utf-8 require "radi…

今週のJUNKとANNをRadikoで一瞬で開くRubyスクリプト

Air Podsを買ってからポッドキャストやネットラジオを大分聞くようになった(片耳だけ付けるとモノラルになるのが素晴らしい)。 Radikoも使っているのだが最近になって有料のエリアフリーに入った。これでJUNK(TBSラジオの深夜放送)やANN(オールナイトニッポ…

RubyPicoが第9回フクオカRuby大賞で優秀賞をいただきました

iOSで動くRuby開発環境のRubyPicoが第9回フクオカRuby大賞で優秀賞をいただきました。 「第9回フクオカRuby大賞」審査結果 - 福岡県Ruby・コンテンツビジネス振興会議 今回で4回目の挑戦となりますが前回のhonyomiではじめて賞をいただき、プレゼンの雰囲気…

「最初に学ぶべきプログラミング言語」をスマホから気軽にはじめる

「最初に学ぶべきプログラミング言語」 - mizchi’s blog 「環境構築」に100%成功する(AppStoreからダウンロードするだけ) PC不要 Ruby なので拙作のRubyPicoをすすめてみます。 RubyPicoongaeshi仕事効率化無料 本格的にやりたくなったらPC買ってRubyに移行…

RubyPico 0.9.4 リリース - GitHubに置かれたスクリプトをダウンロードできるように

拡張スクリプトを追加することでGitHubに置いたスクリプトをダウンロードできるようになりました。 - 更新履歴 RubyPicoongaeshi仕事効率化無料 github_download.rb RubyPicoGemsの仕組みをリニューアルしました。 github_download.rb をインストール インス…

RubyPico 0.9.2 リリース - Appタブ、irb、Browser.post、choise

RubyPico 0.9.2 をリリースしました。irbをエディタ画面を経由せず実行できるようになったり、自分の作ったスクリプトをアプリとして登録できるようになりました。 他にもPOSTメソッドを呼び出せるBroser.postや、複数選択肢の中からタップさせて結果を返し…

スマホからLINE NotifyするRubyスクリプトを書いた。

次回リリースのRubyPico 0.9.2からBrowser.postが使えるようになります。 RubyPicoongaeshi仕事効率化無料 つまりRubyスクリプト経由でスマホからLINE Notifyを送れるようになります。 line_notify.rb TOKENにLINE Notifyから取得したトークンを設定すれば任…

RubyPicoにBrowser.postを実装した

次回リリースの0.9.2で使えるようになる予定です。これで認証トークンが必要な複雑なWeb APIもiPhoneから簡単に叩けるようになります。 RubyPicoongaeshi仕事効率化無料 使い方は簡単で、URLの後に body, json, header をハッシュ形式で渡すだけです。 # 生…

RubyPico 0.9.1 リリース - ファイルマネージャーの強化、File、Dir

RubyPico 0.9.1 をリリースしました。ファイルマネージャーの強化、File、Dirが使えるようになりました。 RubyPicoongaeshi仕事効率化無料 ファイルマネージャーの強化 ディレクトリが作れるようになりました。実験的なプログラムを/tmp以下に置いたり、複雑…

RubyPicoでアスキーアートアニメーションを作る

次のバージョンで追加されるsleepとclearprintという関数を使うと簡単に作れるようになります。 アスキーアートアニメーション - スマホではじめるRubyプログラミング

スマホ用の多面サイコロをRubyで書いてみる

スマホではじめるRubyプログラミングというページをはじめました。 第1弾として多面ダイスを作ってみました。RubyPico0.9で入ったTextView.click_linkを使うとRubyスクリプトが走る擬似ボタンのようなものを作ることができるようになりました、便利です。 お…

RubyPico 0.9 リリース - gets、リンク付き文字列、クリックイベント、チュートリアル

RubyPico 0.9 をリリースしました。getsによる入力、リンク付き文字列、クリックイベントのハンドリング、Ruby初心者のためのチュートリアルと盛りだくさんです。 RubyPicoongaeshi仕事効率化無料 gets コンソールを表示しながら入力できるようになったので…

GitHubの気になるユーザーのレポジトリをiOSで一覧表示する

次のバージョンのRubyPico 0.9 からリンク付き文字列を生成できるようになった。いちいちURLを表示しないですむ。 puts AttrString.new("foo", link: "http://ongaeshi.me") GitHubのレポジトリ一覧を表示してみる。 def repos(user) json = Browser.json("h…

RubyPico開発日誌4 - getsでirbを再実装

コンソールを表示しながら入力できるようになったので、irbをgetsで再実装してみた。 # # irb # # ## Description # Interactive Ruby Shell (REPL). puts "irb - Interactive Ruby Shell" no = 0 loop do print "irb:%03d> " % no cmd = gets puts cmd brea…

RubyPico開発日誌3 - getsを実装する

Popup.input()を使えば今でもプログラムに入力を渡すことはできるのだが、ポップアップ中は後ろの画面にアクセスできなくなってしまうのが不便。という訳でgetsを実装したい。 puts "Please input >>>" while l = gets break if l.empty? puts l end puts "T…

RubyPico 0.8 リリース - mainが不要に、画像がputs可能に

RubyPico 0.8 をリリースしました。以前に紹介したようにメインルーチンをmain関数で囲まずに実行できるようになり、よりRubyらしく書けるようになりました。 puts "Hello, RubyPico!" puts "http://rubypico.ongaeshi.me" puts Image.load("chat_ruby.png")…

夏休みの宿題でRubyPicoを再開

思ったことを最速でブログに書く環境もだいぶ整備できたのでRubyPicoの開発に戻る。まずは夏休みを使ってmain無しで動く最新のRubyPicoをリリースしたい。そのあとで書きかけのスマホではじめるRubyプログラミングを書く。プログラミングを学びたい人がRuby…

RubyPico開発日記2 - SimpleHttpServerを2回起動するとserver.rb:50 bind (RuntimeError)

こんな感じ。 おそらく一度ソケットで確保したアドレスがプログラム終了後にcloseされずに確保しっぱなしになっているようだ。RubyPico自体を終了させると解放される。 CRubyはプロセスとして起動する場合が多いのでWebサーバーを止めたいときはそのプロセス…

RubyPico開発日記1 - iOSからWebサーバーを起動する

RubyPicoが内部で使っているmrubyを1.2に上げたのでmatsumoto-r/mruby-simplehttpserverをコンパイルできるようになった。以下のようなプログラムを書くとイントラネット内でwebサーバーを起動できるようになる。 # # Server Configration # server = Simple…

RubyPico近況 - main不要で書けるようにしたい

よりRubyらしく書けるように色々と手を加えています。 (済) main不要に 人に見せると一番突っ込まれるのがここ やっぱり分かりにくい 直接トップレベルを実行できるようにする (済) mrubyをサブスレッドで実行する 今までYieldを使っていたような処理を全て…

RubyPicoのスクリプト開発にBluetoothキーボードを使うと捗る

RubyPicoで色々書けるようになってきて、大きめのスクリプトを全てソフトウェアキーボードを使って開発するのが辛くなってきた。iOSのソフトウェアキーボードはそれなりによくできていて当初思っていたよりもRuby書ける。後はコピペさえ何とかなれば・・。 …

小さな端末でも楽しくプログラミングできる RubyPico(旧PictRuby) 0.6 がリリース

PictRubyはRubyPicoという名前に変わりました!対象を画像に限らず「PC以外のスマートフォンやタブレットなど小さな端末で動くRuby」という印象にしたかったためです。 アンケートではSmartRubyが有力でしたがその後にいただいたPicoRubyという名前も評判が…

はてなブックマークのTOP5をスマホがしゃべりはじめるPictRuby botを書いた

チェレンコフさんの書いたエビ中とLINEしてる気分になれるChatBotが面白かったので真似してはてなブックマーク版を作りました。はてなブックマークじゃなくてもRSSさえあればなんでもしゃべります。 使い方 総合とか世の中とか言うと各カテゴリ最新の5件を表…

PictRuby 0.5 リリース - チャットボット、eval、irb

PictRuby 0.5 をリリースしました。 合わせて起動画面とアイコンをリニューアルしました。 チャットボットが書けるように evalが使えるように irbが使えるように (サンプルの10_irb.rb) チャットボットが書けるように Chatという名前のクラスを定義すると対…

mrubyであるクラスに特定の名前のメソッドが存在しているか調べる方法

次のPictRubyで以下のような対話型のプログラムが簡単に書けるようになる。 スクリプトはこんな感じ。(書き方は模索中、そのうち変わるかも) def chat(input) @num ||= 0 case input when "name", "Name" "My name is Rubo" when "Rubo" "Yes, my load." whe…

PictRubyでGUIプログラミングの参考に Ruby Shoes を動かす

PictRubyのGUIはこんな感じに書きたいと考えている。 app do button "Tap Me" do Popup.msg "Hello!" end end 上のプログラムを実行すると"Tap Me"というボタンが表示され、タップすると"Hello!"というメッセージがポップアップする。 appのブロック内にGUI…

mrubyにUIButtonをバインド(登録)する

PictRubyでUIButtonやUILabelが追加できるようになったら楽しいだろうなぁと思い色々と実験中。ぼんやりと動いてきた。 PictRuby/mrb_button.m at feature/add-button · ongaeshi/PictRuby 以下、細かいポイント ARCを切る retain, release を手動で制御した…