79
I Use This!
High Activity

News

Analyzed about 6 hours ago. based on code collected about 6 hours ago.
Posted over 18 years ago
So I landed a patch which defaults JRuby to use lighter shared positions in interpreted mode.  The parser itself can accept a parameter asking for extra position information.  This way a live JRuby process can still parse ASTs and get useful ... [More] information for lexical hoohah while the main interpreter uses the lithe shared position nodes.Many many moons ago JRuby used to do this sharing, but when we added support for IDEs in the parser we ended up getting heavier.  How much heavier?When running the minimal rails application (e.g. 'rails heh') and hitting the splash page:Shared Positions: 1225000Created Positions: 155003~90% less object creation.  HEH.  Thats nice.  In the case of running anempty rails application we end up saving about 3-5Mb of heap.  For a larger application we will obviously save more (I have no idea how much memory the AST itself takes relative to positioning information). [Less]
Posted over 18 years ago by Charles Oliver Nutter
Rumors of my demise were greatly exaggerated!I've been mostly MIA the past couple weeks, largely due to the Ruby Kaigi and related events in Tokyo and a short family trip this past week to Lake Michigan's eastern shore (warm sandy beaches and a ... [More] much-welcomed rest). But I figured I'd check in so everyone knows I'm still around and the wheels are still turning.I'm at Foo Camp this weekend, and so far it's been a great time. Lots of good discussions, games of Werewolf, and staying up too late (I think I got about 3.5 hrs of sleep...more than enough!) Today I'm going to try to talk about something outside my usual subjects, mostly as a discussion facilitator, but with a bit of opinion tossed in for good measure. Here's the description I posted to the Foo calendar:The Transformation AgeThis is a collective presentation. There are no attendees; only nodes in the matrix. Expect to share.Part 1: Individuals to collectives, isolated to connected, The Next Evolution.As the exchange of information has become progressively more rapid, the communication boundaries more transparent, we are transforming into a new kind of collective entity. The swing from isolated individuals or isolated communities with their own distinct stores of knowledge toward a single global community with all stores of knowledge available to everyone is more than just an interesting trend...it represents a new evolutionary direction humanity is taking. It is the dawn of the transformation age for humankind.We will explore what it means to be more and more a collective being in this new era, what it will mean for our children and grandchildren and nth grandchildren as pervasive interconnection becomes the norm. As all minds become so intimately connected that being disconnected from the global consciousness is like losing an arm...or one's own identity. And we'll look at how this new evolution is affecting and has affected successful and unsuccessful technologies, business models, and governments over the past several decades.Part 2 (time permitting): Knowledge represented as transformation of information rather than as desperate attempts to snapshot or categorize information at a given point in time.The idea of categorizing information has served us fairly well when information itself was slow to change, slow to be communicated, and largely static. Books can be sorted in a categorization scheme because the information they contain does not change over time; the categories remain as valid as when they were assigned. But what happens when the entirety of humanity's knowledge is now not only instantly available, but rapidly changing and evolving along with us? Is not categorization of changing information inherently flawed when information snapshots are almost immediately out of date? What can we do to allow everyone in this age of transformation to participate in information sharing in scalable way?I would propose that when information itself has become so fluid it defies static categorization, that the transformation of knowledge is the new information we need to track. Already you see the signs of this:Wikis are updated far more often than they have completely new entries added; the success of wiki is in transformation of knowledge over time, and in continuous evolution of the information contained therein.Scientists in all fields build new ideas upon old; there are no new ideas that don't synthesize existing parts, transforming our understanding of those parts into a new entity.Agile development emphasizes small, rapid, interactive transformations of data (a software algorithm user interfaces on the large) rather than as big bang snapshots and releases.Open source licenses reduce the barriers to accessing data effectively to zero explicitly to allow for rapid transformation of that data into today's entity. "Build from trunk" is becoming a normal recommendation for rapidly transforming projects, since snapshots are immediately out of date.We'll talk about whether this all makes sense, whether moment-in-time snapshots of information are becoming more or less relevant than the changes over time to that information, and what can be done to both facilitate transformation and adapt our traditional information management ideals to this constantly changing information sea.If you're interested in hearing more about all this, about how the session goes, or just would like to talk sometime along these lines, gimme a shout. [Less]
Posted over 18 years ago by Ola Bini
Yesterday I spent 2 hours chatting with Fabio Akita, of AkitaOnRails (the largest Rails blog in Brazil); the result is a long interview that was published today. It's got some good stuff, and some Ola-stuff, which you should recognize by now.And I ... [More] note that he calls me a workaholic; but he got this interview prepared in less than a day too, and also translated it into Portuguese.You can find it at http://www.akitaonrails.com/pages/olabini. [Less]
Posted over 18 years ago
I decided to show off strange misfeatures of Ruby when I run across them.  Ruby has many cases in the parser where a construct can be just about anything.  Check out this default value abomination:def foo(a=def foo; puts "BAR"; end) puts ... [More] "FOO"endfoofooThis will end up printing:FOOBARIn fact, you can do anything you want for a default value that you do in the body of a method definition itself.  Cool and scary! [Less]
Posted over 18 years ago by Ola Bini
I've finally started. I've finally moved to London. I've been working for two weeks at ThoughtWorks now, and it's been quite crazy. Everything is very nice and I'm having loads of fun. Of course, it's also lots of hard work, and I feel that I'm ... [More] stretching my capacity considerably more than I ever did at Karolinska Institutet. That's great, and I feel that I'm really doing something real now. We have so many interesting things going on, and I wish I could tell you all about it.What I can tell you is that I'm working quite much on Mingle, and I'm also spending time on other JRuby related issues. I've been planning on getting SQL Server and Oracle working as good as possible with AR-JDBC, and I've spent time on Derby performance. Hopefully I'll continue the database work this week, since especially SQL Server and Oracle is very important.The most important work for this week is probably to prepare for TheServerSide in Barcelona. I still haven't had time to prepare my demos, so it's about time now. I hope to see many of you there.In conclusion, my first weeks at ThoughtWorks have been awesome. I really like the pople, and everything is just neat. I like being able to walk to work and working in the very nice TW office on High Holborn. I'm very happy about it all. [Less]
Posted over 18 years ago by Ola Bini
As you know, I am writing on a book about JRuby on Rails. A few minutes ago I finished the first draft of chapter 14. That means that there are just 3 chapters and 3 appendixes left to write (chapter 1, 2 and 15). So the writing is going very well ... [More] , but it's taking a heavy toll on me personally. I seriously don't recommend writing a book like this in your spare time, while at the same time switching employer, moving abroad and try to be a core developer in an open source project which is getting lots of attention.So, in summary: it's going well, it still looks like it will be out in October, and I'm deadly tired. [Less]
Posted over 18 years ago by Charles Oliver Nutter
We have finally released JRuby 1.0, based on the last release candidate, RC3. And what more is there to say? Not really a whole lot...It's almost entirely RC3, with one or two minor fixes added in. But it's really turned out to be an outstanding ... [More] release, and already reports are coming in of folks trying it out en masse. We're very happy.So I'll do a little recap here. JRuby 1.0 was focused almost entirely on one goal: Ruby 1.8.x compatibility. To that end, we are now the only alternative Ruby implementation that can reasonably claim we're "compatible". It's no longer a question of whether we can run Ruby applications or not...we've proven that again and again. The issues people run into now are those requiring minor behavioral tweaks, minor parser tweaks, and occasionally exploration of some peculiar threading or memory concerns. It's been a long time coming, but the compatibility issue is largely answered.Now we start looking toward the future. Once you have a working Ruby implementation, what next? I believe we've shown that the correct way to approach Ruby is to get it right first. The next step is making it run as well as possible. Ok, so we've cheated a bit along the way, introducing interpreter optimizations and a JIT compiler, but that's all fun stuff. The heavy lifting for performance and scalability are coming up, and there's a lot of low-hanging fruit we can start to tackle with 1.0 safely behind us. So action item #1 for the future of JRuby is plucking that low-hanging performance fruit.The second item for any working implementation would have to be platform integration. Our platform is Java (and of course we've cheated a bit here by doing additional work to make Java integration really useful and usable), so integration involves making Ruby a better citizen of the Java platform. In this area, expect to see us further reduce the disconnect between Ruby and Java, allowing you to construct Ruby objects directly from Java code, define real Java classes using Ruby (classes you can then compile Java code to call), and minimizing to as large an extent possible the performance impact of calling from dynamically typed Ruby code into statically typed Java code. Java integration is action item #2.And then what? Well, there are many options, all very attractive. I personally would like to see time spent implementing potential Ruby 1.9/2.0 features, to provide a second testbed where people can try those features out. I would like to find ways to share code with Rubinius (beyond tests), either by implementing just enough Rubinius logic to run its pure-Ruby core-class implementations or by implementing a full Rubinius kernel on the JVM. I would like to see JRuby expand to the rest of the Java world, bringing the Ruby Way to Java EE. But most importantly, I want to reach out to the Ruby community and find ways for them to be a part of the JRuby process.Up to now, JRuby has really existed in its own, separate world. There was the Ruby community and also the JRuby community, and although members might identify themselves with both, there was always this perceived boundary.We need to break that boundary down...not only for JRuby but for the other Ruby implementations as well.Ruby is coming of age. Multiple implementations shows that Ruby has really matured as a language...and also shows it has a lot of maturing left to do. Ask Evan (of Rubinius) or me how we feel about retry behavior or block argument processing or thread event processing or SAFE levels and tainting and you'll start to understand some of the ugly, hidden bits of Ruby. We need to make sure that Ruby development proceeds as a whole...not necessarily as a single project or a single codebase, but as an open, direct exchange of concerns, complaints, solutions and ideas. We need to start treating the Rubinius community and the JRuby community and any other implementations' communities as part of the whole...different facets of the same gem.If you have never tried an alternative implementation of Ruby: do it today. Pick out your favorite app, library, or framework and build your next app using something other than Matz's Ruby. Start running your continuous integration tests against JRuby trunk (or Rubinius trunk, if it runs your code ok; those guys sorely need more CI hits). Make sure your gem releases work on JRuby too, and if you have native (i.e. C) code, explore what it would take to do a JRuby port. Show that you welcome diversity into the Ruby world...that you recognize that diversity is an essential part of language evolution.JRuby has always been a community project, and only by absorbing the JRuby community into the Ruby community will JRuby continue to be successful. If we can make that happen, I see wonderful things in Ruby's future...regardless of which implementation you use. [Less]
Posted over 18 years ago
The JRuby community is pleased to announce the release of JRuby 1.0!Homepage: http://www.jruby.org/Download: http://dist.codehaus.org/jruby/JRuby 1.0 is a major milestone for our project.  Our main goal for 1.0 has been Ruby compatibility.  We feel ... [More] this goal has been reached.  When we seecompanies like ThoughtWorks offering commerical JRuby support; we know this goal has been reached.  Please download JRuby and take it for a test drive.  Try running your Ruby and Ruby on Rails applications with it.  Give us feedback.  Join our community.  Help us continue to improve JRuby.We cannot say this enough...Our community really makes working on JRuby a treat.  Whether it is a decent discussion on IRC or a nice reduced test case attached to one of our bugs. We really appreciate all the time people are spending on JRuby.  We all get along well and I think the progress madebecause of this really shows.  To think a little over a year ago we just starting to see simple Rails controllers route...It is amazing how far we have come. [Less]
Posted over 18 years ago
Charles and I are in Tokyo this week speaking/attending RubyKaigi.  Our lack of Japanese has been a mild impediment, but several organizers has been very helpful in translating.Our talk went well and I think a lot of people seem excited about ... [More] JRuby.  Charles irb swing demo was extremely well-received.Here are a couple of picture I took during day one.  Firstly, is Tim Bray in what looks like he has been possessed by the dark power on Unicode:Here is a picture of Naoto Takai receiving a well-deserved JRuby tshirt: [Less]
Posted over 18 years ago by Ola Bini
The JRuby community is pleased to announce the release of JRuby 1.0!Homepage: http://www.jruby.org/Download: http://dist.codehaus.org/jruby/JRuby 1.0 is a major milestone for our project. Our main goal for 1.0 has beenRuby compatibility. We feel ... [More] this goal has been reached. When we seecompanies like ThoughtWorks offering commercial support; we know this goalhas been reached. Please download JRuby and take it for a test drive. Tryrunning your Ruby and Ruby on Rails applications with it.Give us feedback. Join our community. Help us continue to improve JRuby.It is important to notice that JRuby 1.0 is not the end all of Ruby interpreters. It's not perfect. This is just the beginning. We now have a very good base to work from. This is were the real work begins. Join us. It will be a fun ride, and JRuby will just get better! [Less]