Larry and I want to learn Ruby (Larry first), using Windows. What should we download? ruby-lang.org the place to go? Anything else we need to know? Should we use git hub?
Second the "consider not using Windows). If you ever move to Rails, you're going to have trouble
- Deepak Singh
If you want to learn Ruby and you're new to programming, http://www.javapassion.com may be a good start, but they use jruby rather than the vanilla ruby. Look for the "Ruby/JRuby/Rails Application Development (with Passion!)" course.
- imabonehead
Thanks, everyone! I don't think I'll advise Larry to switch OS at the moment...maybe down the road.
- Steve Koch
If you've ever used Eclipse, Aptana RadRails (basically Ruby/Rails on Eclipse) is a good way to transition yourself while remaining in your comfort zone. Although it's far from perfect.
- Andrew Clegg
One year ago, I was hooked by the video that showed off the ORM and database capabilities. The freedom to redefine some of the language also tickled my fancy. Then I got nowhere. Why are you thinking of using Ruby? Doing the Google Insights search on Python and Ruby shows that, even with Ruby's meteoric relative growth in 2005, Python is still twice as popular. < http://www.google.com/insight... > And none of these even come close to Perl, C#, Java. My recommendation is: if you are interested in playing with the language, then Windows will be fine. If you want to solve a problem that wasn't already solved for you, that isn't related to Ruby language-specific features, the probability that you'll get a solution is greatly increased by (1) doing it in LabVIEW instead; (2) using Python instead; (3) changing to a Linux or Mac OS X computer. Doing things that interface with other areas (image files, databases, etc.) will require you to load a driver that someone else wrote --- and since most Ruby users use Linux or Mac OS X, many drivers (except "pure-Ruby" solutions) historically had hidden dependencies on things available in those environments. Python has more-mature libraries. See: < http://www.rubyinside.com/is-wind... > (May 2008). < http://rubyonwindows.blogspot.com/ > In my copious spare time, I am checking out < http://www.pythonxy.com/ >. But I use R at work.
- Richard C Yeh
There are two big reasons we want(ed) to learn another language: (1) It's a bit difficult to share LabVIEW code, being a proprietary language, and (2) Larry seems well-suited for a career where he codes frequently, and I figured learning another, more mainstream language would be good. From a purely selfish standpoint, you're correct that we'd be much better off using LabVIEW. Both he and I are really good at it and have a lot of synergy working together. The reasons for choosing Ruby were: (a) I had thought that you liked it (probably from hearing you try it out a year ago) and thought you were using it in your work, (b) many of the people on FriendFeed seem to like it (maybe this is a bioinformatics thing?), and (c) it seemed like Ruby was mentioned more than any other language at the conference I was just at (ScienceOnline2010). Having you correct me on point (a) is really making me rethink things. I had also been thinking that R would be a good thing to learn. If we learn R, will that replace my perceived need for Origin, as far as publication figures goes?
- Steve Koch
The thing we had in mind was a relatively-tractable stochastic simulation that Larry already has working in LabVIEW. It's an agent-based model, where each agent is a state machine whose rate constants depend on the state of the neighboring agent. Then it's a big while loop that those state machines run in. It looks very nice in LabVIEW, given how LabVIEW is a graphical language. I have no idea whether perl, Ruby, python, or R would be best for this. But we do have a project in mind.
- Steve Koch
Re (1): agreed. Re (2): I would pick two languages: one where you can hack quickly, and then if you have to do high-performance stuff, check out: < http://shootout.alioth.debian.org/u64q... >. (LabVIEW is good for both; but starting from scratch, I'd recommend python and C++ (and note the GSL library). Side note: to interface the two, check out Swig (< http://www.swig.org/ >).) Re (a): it was a passing infatuation due to my first glimpse at an object-relational mapping (ORM) framework. Re (b) and (c): I note your conference and this forum has a slant towards web publishing and communication. I must say, the Rails ORM is slick --- and knowing how web sites work can be useful if you want to build one. If you ask Jeff Jarvis ("What Would Google Do"), we cannot think of the web (and social networking) as separate from life. Following Neil Saunders's comment, the ideal problem would be: make a web site to make your experimental data available, complete with your comments on each run.
- Richard C Yeh
One of the purposes is to bolster Larry's skillset and resume. So, in that sense, there's some validity to "use X instead of Y." What would help him get hired? Probably an unanswerable questions without knowing where he's going.
- Steve Koch
Richard -- that's right, we are struggling with the idea of how to share our data, code, etc. So we can't ignore the web. I would love for people to be able to simulate kinesin (the project I was describing above) using some kind of web interface: user loads their own rate constants, and then use our code to see what happens. I know so little about how to do that, though.
- Steve Koch
I have to second Neil although I prefer the term "dynamically typed language" over scripting language :). From the job side, understanding programming principles beats specific languages. You have to decide what kind of programming you want to do (front end/back end, etc) if you want to really dig in deep.
- Deepak Singh
Re (publication-quality plots in R): it depends on what you mean by publication-quality. Enhanced/windows metafiles (vector) are easy, but then gradients don't work. Browse the examples at < http://addictedtor.free.fr/graphiq... > --- and I think you'll say that sophisticated graphics (which require programming) are more possible in R than Origin. (But I imagine that each of those examples was refined dozens of times before the final product was shown.) On the other hand, if you use Origin only as an interactive tool, then R will not replace that.
- Richard C Yeh
Re (sharing data): How much data? I am guessing that OWW doesn't have the space. < http://drop.io/ > gives you 100 MB for free. < http://www.dropbox.com/ > gives you 2 GB for free. Maybe that will have to be organized per project. You should outsource the data hosting because then you don't have to think about security. On the blog with the public comments and downstream analysis, you can just include a link to the data.
- Richard C Yeh
Circling back, besides OWW, what third-party resources have you considered for distributing code, data, etc, and why are they unsuitable? For the kinesin demo, are you considering something at the level of interaction of the mfold server, where you enter something, wait while the computer thinks, and then receive results?
- Richard C Yeh
Yes, that's what I was thinking for kinesin demo. I admire mfold quite a bit in terms of how useful it is to science. But I could also imagine it working via java or something. Also, for data / hosting, I'm going to see what my library can do. I believe that digital library is one of UNM's strengths, but haven't yet had those discussions (but I know whom to talk with now). @Neil, that's a good idea googling state machine. I started doing it and can see that it's valuable. I'm going to have to pause this thinking for tonight, though, probably. Appreciate the advice, everyone!
- Steve Koch
Python v. Ruby? I'm a big Ruby fan, but both Ruby and Python are great languages, and learning one will make it pretty easy to learn the other. If you are doing lots of statistical and scientific work, you might want to look at Python's NumPy and SciPy. There are scientific computing libraries for Ruby, but they aren't nearly as mature as NumPy/SciPy - see http://stackoverflow.com/questio...
- Tom Morris