{"id":1885,"date":"2011-03-07T22:09:00","date_gmt":"2011-03-07T22:09:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-en\/2011\/03\/07\/my-call-monitor-software-is-going-jruby\/"},"modified":"2011-03-07T22:09:00","modified_gmt":"2011-03-07T22:09:00","slug":"my-call-monitor-software-is-going-jruby","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-en\/2011\/03\/07\/my-call-monitor-software-is-going-jruby\/","title":{"rendered":"my call monitor software is going jruby"},"content":{"rendered":"<p>\t\t\t\tMy FRITZ!Box call monitor\u00a0is written in ruby-1.9.\u00a0So far I am running it using MRI-ruby-1.9.<\/p>\n<p>This call monitor is a\u00a0<u>FRITZ!Box<\/u> call monitor, it does not monitor the calls on my smartphone yet (which is rather, rather sad). Most of the year (for economical reasons) I should sit in a customer&#8217;s office quite a little away from my place \u2013 receiving calls on my smartphone. So it makes much sense to get my call monitor software to monitor the calls on my smartphone\u00a0one day (rather sooner than later).<\/p>\n<p>Just recently (with the help of RVM) I delved into the the <a href=\"http:\/\/en.wikipedia.org\/wiki\/JRuby\">jruby<\/a> world, and of course I am trying to run my call monitor software also with &#8220;jruby &#8211;1.9&#8221;.<br \/>\nMy current problems with\u00a0&#8220;jruby-1.6.0.RC2 &#8211;1.9&#8221;\u00a0are with I18N and encodings, so I cannot open my gmail address book with &#8220;r:UTF-16LE:UTF-8&#8221;. My\u00a0evasive strategy is to let it read a UTF-8 version of it.<br \/>\nThe ruby CSV module, that parses my address book using regular expressions, seems to give the runtime system yet unseen tasks.<br \/>\nMaybe I am not too far away from running a slightly adapter version of my call monitor in jruby and therefore on a JVM.<\/p>\n<p>Of course, <a href=\"http:\/\/en.wikipedia.org\/wiki\/IronRuby\">IronRuby<\/a> (a .Net ruby implementation) is also an option.<\/p>\n<p>There are not that many different smartphone operating systems, that run JVM-s, so we are mainly talking about Android.<br \/>\nDoes Android allow non-core software to (sort of) monitor the incoming and outgoing calls?<\/p>\n<p>Once jruby successfully runs my call monitor, the way is free to go for an Android implementation. I am rather hot for it.<\/p>\n<p>Update 2011-03-07:<br \/>\nAfter a couple of postings on <i>user@jruby.codehouse.org<\/i> and especially with the support of Thomas E. Enebo, my software now runs just as well with the very, very latest jruby, that I produced through &#8220;<span>rvm install jruby-head<\/span>&#8220;.<\/p>\n<p><\/p>\n<div>\nUpdate 2011-03-28:<\/div>\n<div>\nNow it runs reading the XML Google Contacts, which is more comfortable, as I can download it on the command line.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>My FRITZ!Box call monitor\u00a0is written in ruby-1.9.\u00a0So far I am running it using MRI-ruby-1.9. This call monitor is a\u00a0FRITZ!Box call monitor, it does not monitor the calls on my smartphone yet (which is rather, rather sad). Most of the year (for economical reasons) I should sit in a customer&#8217;s office quite a little away from [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_share_on_mastodon":"0"},"categories":[666],"tags":[],"class_list":["post-1885","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0kP-up","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/1885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/comments?post=1885"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/1885\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/media?parent=1885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/categories?post=1885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/tags?post=1885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}