サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
blog.headius.com
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all Hello, friends! Long time no blog! I'm still here hacking away on JRuby for the benefit of Rubyists everywhere, usually slogging through compatibility fixes and new Ruby features. However with the release of JRuby 9.2, we've caught up to Ruby 2.5 (the current release) and I'm spending a little time on performance. I thoug
Ruby's Thread#raise, Thread#kill, timeout.rb, and net/protocol.rb libraries are broken I'm taking a break from some bug fixing to bring you this public service announcement: Ruby's Thread#raise, Thread#kill, and the timeout.rb standard library based on them are inherently broken and should not be used for any purpose. And by extension, net/protocol.rb and all the net/* libraries that use timeout.r
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all With every JRuby release, there's always at least a handful of optimizations. They range from tiny improvements in the compiler to perf-aware rewrites of core class methods, but they're almost always driven by real-world cases. In JRuby 1.7.1 and 1.7.2, I made several improvements to the performance of Ruby constants and
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all What does the following code do? If you answered "it upcases two strings and adds them together, returning the result" you might be wrong because of a new Ruby feature called "refinements". Let's start with the problem refinements are supposed to solve: monkey-patching. Monkey-patching In Ruby, all classes are mutable. In
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I was recently asked for a list of "hard problems" a Ruby implementation really needs to solve before reporting benchmark numbers. You know...the sort of problems that might invalidate early perf numbers because they impact how you optimize Ruby. This post is a rework of my response...I hope you find it informative! Fixnu
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all While at GoGaRuCo this weekend, I finally made good on an experiment I had been thinking about for a while: a static compiler for Ruby. I thought I'd share it with you good people today. First we have a simple Ruby script with a class in it: We compile it with fastruby, and it produces two .java source files: Hello.java a
AWSEB is really slow to deploy stuff. Several times it got "stuck" and I waited for more than 30 minutes for it to recover. It did not appear to be an app issue, since the app came up just fine.The default instance size is t1.micro. I was able to get a Rails app to boot there, but it's a very underpowered size.It appears to start up JVMs with 256MB of memory max and 64MB of permgen. For a larger a
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all This should be a great Christmas present for many of you. After over three years, the "ruby-debug" gem finally installs properly on JRuby. ~/projects/jruby ➔ gem install ruby-debug Successfully installed ruby-debug-base-0.10.4-java Successfully installed ruby-debug-0.10.4 2 gems installed Back in 2007, folks working on Ne
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all As you've probably heard by now, Oracle has decided to file suit against Google, claiming multiple counts of infringement against Java or JVM patents and copyrights they acquired when they assimilated Sun Microsystems this past year. Since I'm unlikely to keep my mouth shut about even trivial matters, something this big o
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all After my post on Browsing Memory the JRuby Way, one commenter and several other folks suggested I actually show using Eclipse MAT with JRuby. So without further ado... The Eclipse Memory Analyzer, like many Eclipse-based applications, starts up with a "for dummies" page linking to various actions. The most interesting use
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I mused today on Twitter that there's just a few small things that the JVM/JDK need to become a truly awesome platform for all sorts of development. Since so many people asked for more details, I'm posting a quick list here. There's obviously other things, but these are the ones on my mind today. Current JVMs start up pre
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I originally started to send this to the JRuby dev list and to the Ruboto list, but realized quickly that it might make a good blog post. Since I don't blog enough lately, here it is. I've been looking into better ways to precompile Ruby code to classes for deploy on Android devices. Normally, JRuby users can just jar up
Saturday, April 03, 2010 Using Ivy with JRuby 1.5's Ant Integration JRuby 1.5 will be released soon, and one of the coolest new features is the integration of Ant support into Rake, the Ruby build tool. Tom Enebo wrote an article on the Rake/Ant integration for the Engine Yard blog, which has lots of examples of how to start migrating to Rake without leaving Ant behind. I'm not going to cover all
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all JRuby has become notorious among Ruby implementations for having a slow startup time. Some of this is the JVM's fault, since it doesn't save JIT products and often just takes a long time to boot and get going. Some of this is JRuby's fault, though we work very hard to eliminate startup bottlenecks once they're reported an
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all (How long has it been since I last blogged? Answer: a long time. I'll try to blog more frequently now that the (TOTALLY INSANE) fall conference season is over. Remind me to never have three conferences in a month ever again.) Hello friends! It's been a busy week! I thought I'd show some of what's happening with JRuby, so
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all It's been one of those nights, my friends! An outstanding night! All day Sunday I had the stupids. It was probably related to a few beers on Saturday night, or the couple glasses of red wine before that. Whatever it was, I didn't trust myself to work on any JRuby bugs for fear of introducing problems if my brain clicked o
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all It's been a while since I was able to work on JRuby's Android support, but tonight I managed to finally circle back. And I've got something much more impressive working today: a real IRB application! (And yes, this works just fine on the phone too) It turned out to be incredibly easy to get this working. I'm not using any
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all One of the largest problems plaguing Ruby implementations (and plaguing some other language implementations, so I hear from my Pythonista friends) is the ever-painful story of "extensions". In general, these take the form of a dynamic library, usually written in C, that plugs into and calls Ruby's native API as exposed th
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all Hello friends! How long has it been? Too long! This post marks the beginning of a return to blogging about JRuby, the JVM, and everything in between. Today we’ll cover a topic that never gets old: JRuby’s startup performance. ... Hello, friends! Long time no blog! I'm still here hacking away on JRuby for the benefit of Ru
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all Today David R. MacIver pinged me in #scala and asked "headius: Presumably you guys have spent quite a lot of time trying to make things like system("vim") work correctly in JRuby and failing? i.e. I'm probably wasting my time to attempt similar?" My first answer was "yes", since there's no direct way to exec a program lik
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I've merged changes into master (to be 1.3 soon) that should make Nailgun easier to use. And 1.3 will be the first release to include all NG stuff in the binary dist. jruby --ng-server starts up a server. You can manage it however you likejruby --ng uses the Nailgun client instead of launching a new JVM for the command yo
It occurred to me today that a lot of people probably want a JRuby deployment option that works with a front-end web server. I present for you the trivial steps required to host a JRuby server behind Apache. Update: It's worth mentioning that this works fine with JRuby + Mongrel too, though Mongrel doesn't automatically multithread without this patch and Rails' production.rb config.threadsafe! lin
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all At least once a year there's a maelstrom of posts about a new Ruby implementation with stellar numbers. These numbers are usually based on very early experimental code, and they are rarely accompanied by information on compatibility. And of course we love to see crazy performance numbers, so many of us eat this stuff up.
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I have finally released the first version of BiteScript, my little DSL for generating JVM bytecode. Install it as a gem with "gem install bitescript". require 'bitescript' include BiteScript fb = FileBuilder.build(__FILE__) do public_class "SimpleLoop" do public_static_method "main", void, string[] do aload 0 push_int 0 a
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all # cat test.rb require 'java' import java.lang.System class Ruboto def greet(who) puts "Hello, #{who}!" end end name = System.get_property('java.runtime.name') Ruboto.new.greet(name) # dalvikvm -classpath ruboto.jar org.jruby.Main -X-C test.rb Hello, Android Runtime! Portions of this page are modifications based on work cr
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all I probably start up a JVM a thousand times a day. Test runs, benchmark runs, bug confirmation, API exploration, or running actual apps. And in many of these runs, I use various JVM switches to tweak performance or investigate runtime metrics. Here's a short list of my favorite JVM switches (note these are Hotspot/OpenJDK/
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all Short thoughts on KirinDave's post The Opposite of Momentum, which the anti-Ruby crowd has latched on to as more evidence that Ruby is "falling flat on its face". Dave's post appears to largely lament the lack of progress in the C implementations, be it their lack of performance, presence of memory leaks, or relatively pr
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all Greetings, readers! Over the past couple weeks I've had a few departures from typical JRuby development. I consider it a working vacation. I'm hoping to report on all of it soon, but for now we'll focus on one of the most exciting items: JSR-292, otherwise known as "InvokeDynamic". I've reported on invokedynamic previousl
Charles Oliver Nutter Java, Ruby, and JVM guy trying to make sense of it all There still seems to be confusion about the relative simplicity or difficulty of deploying a Rails app using JRuby. Many folks still look around for the old tools and the old ways (Mongrel, generally), assuming that "all that app server stuff" is too complicated. I figured I'd post a quick walkthrough to show how easy it
次のページ
このページを最初にブックマークしてみませんか?
『Charles Oliver Nutter – Java, Ruby, and JVM guy trying to make sense of it all』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く