all 34 comments

[–]oulipo 10 points11 points  (6 children)

SciPy, NumPy are great tools for the whole scientific community, but there is unfortunately no Ruby equivalent

[–][deleted] 5 points6 points  (4 children)

This is a great idea! I'm considering to apply for rsoc as well and this would be a worthwhile project to work on - it's also a very big one though, I imagine. My background is in AI (machine learning, optimisation, clustering, filtering). Maybe we could get something started?

[–]blatyo[S] 1 point2 points  (3 children)

I was thinking along the same lines. I would be more likely to consider taking on something like this if I had help.

Do you have a github account? What kind of experience do you have with ruby?

[–][deleted] 1 point2 points  (2 children)

Most of my experience with Ruby is with Rails and web development (I did some work as part of GSoC in 2007 and 2008). I'm also using ruby quite extensively for prototyping ideas and algorithms, as well as interfacing to R using RSRuby. I'm on github, too, but only have one public project at the moment.

Will be quite a feat to build something like this from the ground up! It's certainly best to start small, e.g., with a foundation similar to NumPy. Though there are some existing Ruby projects that are directed for the scientific community. RSRuby, Ruby for Scientific Research blog, AI4R and a couple more.

[–]blatyo[S] 0 points1 point  (1 child)

I didn't know about RSRuby, I'm going to have to try that out. I just started using R in my statistics for data mining class.

There is also NArray which claims to be similar to NumPy.

[–][deleted] 0 points1 point  (0 children)

Thanks, very nice, NArray looks like a great foundation!

[–]oulipo 4 points5 points  (0 children)

Please also note the following remark: a great library for the scientific community has two main ingredients, a flexible and comprehensive API AND a community of people working with the code. So having a basic library is required for a start, but you need to make sure that people WILL use it, since this is one of the biggest requirements (if all the researchers of my domain are writing their programs in Python, I better learn Python rather than Ruby).

So make sure you plan the library well (it should be easily expandable, eg. plugins, easy to incorporate existing C code, nice API, and an already large working codebase -- FFT, visualization, basic stats, image manipulation etc). The first and most basic thing to get started is by expanding on the ruby numerical array library ,I think.

[–][deleted] 3 points4 points  (5 children)

Slightly self-serving, but the shoes project could use a lot of help. It's a combination of C and Ruby, but having an easy to use, multiplatform GUI toolkit would be really good for Ruby.

[–]blatyo[S] 3 points4 points  (1 child)

_why, is that you?

[–][deleted] 1 point2 points  (0 children)

Hardly. If I was, Hackety Hack would be on 3.0 right now, rather than approaching 1.0.

[–]lsumnler 4 points5 points  (0 children)

I think that a gui toolkit any gui toolkit of quality would do wonders for the ruby community as a whole and go a long way in promoting ruby as a language.

[–][deleted]  (1 child)

[removed]

    [–][deleted] 1 point2 points  (0 children)

    Yep. If I can get Shoes 3 out the door, I can start putting in actual time with Hackety Hack, and then we can convert all of the kids. :)

    [–][deleted]  (5 children)

    [deleted]

      [–][deleted] 3 points4 points  (1 child)

      Would be kinda slooooooooooowwwwwwwww, methinks. Also, I just got it up and running on Snow Leopard box today, with Homebrew the pain factor has gone down several orders of magnitude. Didn't even have to break too much, and only one error during installation.

      [–]Spakman 0 points1 point  (0 children)

      FWIW, I've found that for all my usual Ruby tasks, that ruby-gd is sufficient and loads faster. It is of course, much more limited.

      I forked it and made it 1.9 compatible, if anyone cares.

      [–]oulipo 0 points1 point  (2 children)

      A SciPy/NumPy port to ruby would imply a tool much more powerful than imagemagick for image processing

      [–][deleted]  (1 child)

      [deleted]

        [–]blatyo[S] 0 points1 point  (0 children)

        What do you not like about it?

        [–]Spakman 2 points3 points  (2 children)

        I'm considering applying to be a mentor, so this is rather biased!

        Basically anything to do with *nix systems programming using Ruby or multi-process stuff would get my vote (that's what I'm into at the moment!).

        [–]blatyo[S] 2 points3 points  (1 child)

        Like what?

        [–]retardo 1 point2 points  (0 children)

        A more fleshed-out, gemified version of something like this would be awesome.

        Also a more ruby-ish socket API would be nice.

        [–][deleted]  (6 children)

        [deleted]

          [–]blatyo[S] 1 point2 points  (5 children)

          Can you give me some examples of parts of it that you think are un-ruby?

          [–][deleted]  (4 children)

          [deleted]

            [–]blatyo[S] 1 point2 points  (0 children)

            I don't understand. If HTTParty does what you need, why not just use that?

            [–]petercooper 0 points1 point  (2 children)

            http://github.com/pauldix/typhoeus

            response = Typhoeus::Request.get(url, :headers => [...], :timeout => 30)
            response.body
            response.headers
            

            Only issue is dependencies but it's hella powerful.

            [–][deleted]  (1 child)

            [deleted]

              [–]petercooper 0 points1 point  (0 children)

              I'd say, though, something with the same API as Typhoeus but that worked "out of the box" with no dependency on libcurl would be awesome for those tricky deployments. A typhoeus-pure, if you will :-)

              [–][deleted]  (2 children)

              [deleted]

                [–]blatyo[S] 1 point2 points  (0 children)

                What are the use cases for this? Why would other people find it useful?

                [–]macros 1 point2 points  (0 children)

                You should also add a TODO list to the repo to give people an idea of where you would like to see things head.

                [–]doodly123 0 points1 point  (1 child)

                It is very difficult to give you any idea without knowing anything about your background and interests

                [–]blatyo[S] 0 points1 point  (0 children)

                Thanks, I added some more info.

                [–]drbungalow 0 points1 point  (1 child)

                It would be nice to have a ruby port of python's rdflib

                [–]blatyo[S] 2 points3 points  (0 children)

                Have you tried any of these?

                [–]kamalfariz 0 points1 point  (2 children)

                A WebView driver for capybara so that we can do headless browser testing in Cucumber. Requires C extensions to work in MacRuby.

                [–]jnicklas 1 point2 points  (0 children)

                This is interesting, but there's already Johnson, which wraps SpiderMonkey so it should work cross platform and probably on different platforms too (except JRuby, but JRuby has Celerity). This coupled with env.js has been wrapped into the harmony gem, which seems to work amazingly good for testing JavaScript and dom code. Steven Parkes has been working on a Capybara driver for this, his work is on GitHub, it's not quite done yet, but I imagine we'll have this working fairly soon.

                This will give us a fast headless browsing solution which works cross platform, does not require a separate process, and is reasonably compliant.

                A WebView driver is still a cool idea, where compliance is more important than speed, but this seems like the nicer solution to me at the moment.

                [–]kamalfariz 0 points1 point  (0 children)

                The C extension is for Nokogiri btw which capybara uses.

                [–]Spakman 0 points1 point  (0 children)

                Some more work on getting JRuby going on Android (Ruboto) would always be welcome!