Slashdot Mirror


Open Source Software For Experimental Physics?

jmizrahi writes "I've recently started working in experimental physics. Quite a few programs are used in the lab for assorted purposes — Labview, Igor, Inventor, Eagle, to name just a few. They are all proprietary. This seems to be standard practice, which surprised me. Does anybody know of any open source software intended for scientific research? Does anybody work in a lab that makes an effort to use open source software?"

250 comments

  1. Fermilab... by samriel · · Score: 3, Funny

    has its own Linux distribution. Let's hope to god that it's stable enough to not crash the LHC.

    https://fermilinux.fnal.gov/

    1. Re:Fermilab... by MoellerPlesset2 · · Score: 5, Informative

      Actually Fermi's Linux is their build of Scientific Linux, which is a distro they have in collaboration with CERN and others.

      It's originally based off Redhat/Fedora IIRC. Or department uses it.

    2. Re:Fermilab... by AntiOrganic · · Score: 1

      It's basically a customization of Red Hat Enterprise Linux.

    3. Re:Fermilab... by Anonymous Coward · · Score: 0

      Ya this new version only creates miniature black holes in every 1 in 1000 runs now.

    4. Re:Fermilab... by JohnVanVliet · · Score: 1

      a old version of rhel4 and wont run on a lot of new hardware

      --
      "I don't pitch OpenSUSE Linux to my friends, i let Microsoft do it for me
    5. Re:Fermilab... by tenco · · Score: 1

      The LHC isn't located at Fermilab but at CERN.

    6. Re:Fermilab... by Roger+W+Moore · · Score: 2, Informative

      FermiLinux was what they used before switching to Scientific Linux. The original FermiLinux was about 1-2 years out of date because they took about a year to certify the corresponding version of RedHat (pre-Fedora). We never used it on the Desktop Linux cluster I designed and used to manage because of that although now they use Scientific Linux things are a lot better.

    7. Re:Fermilab... by Roger+W+Moore · · Score: 1

      Fortunately Fermilab does not run the LHC, CERN does.

    8. Re:Fermilab... by ushering05401 · · Score: 1

      I would never download a distro after clicking through on a splash page that lists five discontinued distros (or just name changes?) from the same people.

      What gives?

    9. Re:Fermilab... by atria · · Score: 1

      Scientific Linux is a clone of Red Hat Enterprise Linux (like CentOS). As such it follows closely the versions of RHEL and basically you cannot make difference between SL and RHEL.

      More on the subject : for the data analysis one can use ROOT (root.cern.ch) which is de facto tool for data analysis and simulation at CERN. It is used from online data taking from detectors to offline processing (even distributed - PROOF) of data.

    10. Re:Fermilab... by rev_karol · · Score: 1

      As someone who uses it everyday, I can tell you that it's a pile of crap. I like Linux, but Scientific Linux is about 4 years behind Ubuntu etc.

    11. Re:Fermilab... by comrade+k · · Score: 1

      I completely agree. Our department uses it too, and it's total garbage. Its based on old-and-busted RHEL4, and doesn't have half of the packages we need anyway. I'd be much happier with something with a scientific repository tacked on. But nooo, we have to use it because it has SCIENCE built in! Ugh

      --
      "Every vision is a joke until the first man accomplishes it; once realized, it becomes commonplace." -Robert H. Goddard
    12. Re:Fermilab... by Anonymous Coward · · Score: 0

      IMHO the LHC is unstable enough to crash the entire solar system.

  2. Your Reqs Are Too Specific, Try R or Octave by eldavojohn · · Score: 5, Informative

    Does anybody know of any open source software intended for scientific research? Does anybody work in a lab that makes an effort to use open source software?

    We discussed R which describes itself as:

    R is a language and environment for statistical computing and graphics. It is a GNU project which is similar to the S language and environment which was developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and colleagues. R can be considered as a different implementation of S. There are some important differences, but much code written for S runs unaltered under R.

    R provides a wide variety of statistical (linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering, ...) and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity.

    One of R's strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.

    While it's not geared specifically towards experimental physics, that's probably going to be your most fruitful endeavor.

    Then there's the Matlab knock-off of Octave which describes itself as:

    GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.

    Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.

    I'm surprised you're surprised that you only find proprietary software in the highly specialized realm of "experimental physics." I mean, you have to be like a PhD in physics with a good deal of programming knowledge to make something accurate & useful (and there's probably gotta be like 50 failed projects before you get a good successful one).

    You're probably wondering why there's not a project of Firefox or OO.o quality for experimental physics but I'll tell you why: it's too specialized and your user base is ridiculously small. You're not going to find a company that is going to benefit greatly (or at all maybe) by releasing their product into the wild for a community to grow. There's probably not a community for it to grow in.

    You should tell us what specifically you are looking for something to do ... I have no idea what Labview, Igor, Inventor, or Eagle do. Ask yourself why these programs are standards and then maybe add to Octave's wish list or contribute to it even! Unfortunately, this isn't easy--I myself started to implement proper handling of sparse matrices in Octave but gave up as I was trying to form low level requirements ... You probably already know though that this is going to have to be done in C or another very low level, very quick language.

    If you're looking for something specific or outline some high level

    --
    My work here is dung.
    1. Re:Your Reqs Are Too Specific, Try R or Octave by morgan_greywolf · · Score: 2, Interesting

      Agreed. I've know people who work in experimental physics labs. Some of them code. And the use of open source software is quite a bit more than one might think. Check out this guy's blog. He regularly hacks together interesting scripts in Python, for instance.

    2. Re:Your Reqs Are Too Specific, Try R or Octave by Hatta · · Score: 3, Insightful

      I'm surprised you're surprised that you only find proprietary software in the highly specialized realm of "experimental physics." I mean, you have to be like a PhD in physics with a good deal of programming knowledge to make something accurate & useful (and there's probably gotta be like 50 failed projects before you get a good successful one).

      To me, that makes it all the more important that ones work is distributed as widely as possible so that others may build upon it.

      --
      Give me Classic Slashdot or give me death!
    3. Re:Your Reqs Are Too Specific, Try R or Octave by gishzida · · Score: 1

      A quick google:

      Labview -- Instrumentation control been around since the '80's, started out as an IEEE-488 instrument controller software and data collector. Only reason I know about it is that National Instruments was one of the few companies in those days that sold '488 interfaces for IBM PCs...

      Igor -- Technical graphing for Mac & Win -- So why not GNU Plot?

      Inventor -- Autodesk prototyping - Didn't SGI originally create this?

      Eagle -- CAD Software? Yup all of the above are "specialty" apps... maybe the original poster needs to spend some time digging over a sourceforge to see what is available...

    4. Re:Your Reqs Are Too Specific, Try R or Octave by gmueckl · · Score: 1

      I do not agree with your assessment that the software that's being used is highly specialized.

      There is widely used off the shelf software for experiments. LabView is very common among scientists and engineers for controlling measurements. A lot of lab equipment has direct integration with LabView. Matlab is also used for this purpose on some occasions. Origin is a really good package for processing data recorded in an experiment. And if you have to calculate something that's a bit more complex you fire up Maple or Mathematica. Throw in the occasional odd control script or quick hack to get control over an interface and you've got a pretty typical working environment, based on software that's actually not that specialized. It's quite expensive, though. I am certain that a lot of scientists would go for cheaper alternative software packages, but there are none that come close enough to the commercial ones to replace them.

      --
      http://www.moonlight3d.eu/
    5. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 5, Informative

      It also depends on what is meant by "experimental physics". CERN has released one hell of a lot of physics software over time. That which is maintained and comes in a tarball is largely listed on Freshmeat, but there's also plenty of unmaintained but useful code, along with code only released via CVS. The same is true of many US experimental physics labs and NASA.

      Your question simply isn't specific enough for me to identify whether you want OpenAtom, MultiBody Dynamics, Geant3, Geant4, Electron Gamma Shower, MIT Photonic Bands, a statistical language like R, visualizing software like DX4, the Interactive Spectral Interpretation System or GGobi, plotting software like Octave, general acquisition/control software such as COMEDI, data acquisition software over VMS such as MIDAS, or just a driver like the Cogent CIF Driver for Fieldbus. Maybe those aren't your cup of tea and you're more into CFD, in which case OpenFoam and NASA's FUN3D might be more what you want, along perhaps with the CFD General Notation System. Or maybe something in geophysics will help, like Seismic Unix.

      Or maybe you've jury-rigged something Professor Heinz Wolff-style out of spare parts from an HVAC and need the BACNet package. Of course, data manipulation/storage then becomes useful and you'd need something like PETSc, the Vector Signal Imaging Processing Library, the Stanford Exploration Project Library or HDF5. Then, perhaps, the system you're controlling uses a modern high-speed, low-latency network, in which case perhaps DAPL would be of use. You could even use SensorWeb for general-purpose sensor monitoring.

      Yes, this post is saturated with names. Deliberately so. (It could hardly be accidental.) This is not to overwhelm you, as much as it is to emphasize that Open Source science is very well established - so much so that a highly general question cannot be meaningfully answered. Maybe what you want is in the list above, maybe it isn't, but Slashdot would run out of disk space before I ran out of packages out there. Since nobody wants that, it is far more practical to give you the general idea and some pointers on where to look.

    6. Re:Your Reqs Are Too Specific, Try R or Octave by NekoXP · · Score: 0, Flamebait

      He doesn't have to be a Microsoft-loving weenie, he just has to be a Firefox or OO.o user to think that.

      I really thought the whole "if you don't like it then YOU MUST LOVE BILL GATES AND MICRO$UCK!!!!! LOLOLOL" attitude had died away at Slashdot, too, but you seem to be keeping it alive and well. And you've brought back the paranoia that everything that's related to a bad comment about Linux is somehow officially sanctioned and a direct marketing or political ploy engineered by Microsoft itself..

      Congratulations, man.

    7. Re:Your Reqs Are Too Specific, Try R or Octave by TheKidWho · · Score: 1

      Inventor is just 3D CAD software from autodesk, theres better software such as NX or CATIA which do run on linux, but for a hefty price.
      Now there is Opencascade which is an opensource 3D Modeling kernel, but quite honestly as someone who uses NX on a daily basis, it is not up to par. I wouldn't want to waste my time with it at work, I waste enough time with NX which is written by a team of highly paid engineers.

      Labview is a lot more than just a data acquisition suite. Although that is a primary purpose of it, again you have to ask yourself how many scientists want to write controllers for a wide range of osclliscopes, etc... Labview also has the benefit of containing a graphical programming language which makes the manipulation of the incoming data streams much easier for a scientist.

      Igor and Eagle I've never heard of or used before, but GNUplot does work fairly well for technical graphing. From a quick google search on Igor however, it seems like it has a larger featureset and easier to use interface than GNUplot. It also seems to support direct interfacing to DAQs.

      The main reason you don't see a lot of open source software in experimental physics is because physcists want to do science, not play around with code.

    8. Re:Your Reqs Are Too Specific, Try R or Octave by SanityInAnarchy · · Score: 1

      You're probably wondering why there's not a project of Firefox or OO.o quality for experimental physics but I'll tell you why: it's too specialized and your user base is ridiculously small. You're not going to find a company that is going to benefit greatly (or at all maybe) by releasing their product into the wild for a community to grow.

      That raises another question: Why isn't there, then, a Linux or Apache of experimental physics software? Not ever open source project was born in the belly of a corporate beast which later got the Free Software Religion.

      I would also say that this is exactly the case where having source code available should be a requirement. Even if it stays a commercial program, and even if you have to pay to see the source, this is exactly the kind of specialized niche which is only likely to get more specialized, where chances are, for many things you want to do, you're going to want to customize the software in order to do it.

      I would hope, at the very least, that if one of those commercial versions fails, that the corporation releases it to the community before bankruptcy. The smaller the niche, the more harmful abandonware is.

      --
      Don't thank God, thank a doctor!
    9. Re:Your Reqs Are Too Specific, Try R or Octave by NekoXP · · Score: 1

      The great thing about buying commercial hardware and software like this is once you have it, you have it.

      And then it becomes part of LAST YEAR'S grant budget, and therefore becomes absolutely free :)

    10. Re:Your Reqs Are Too Specific, Try R or Octave by TheKidWho · · Score: 1

      Of course I should add, Labview is relatively simple, for anything really complex the controller software is going to written from scratch anyways.

      The question becomes, why would you opensource something that quite possibly, only you are going to use?

    11. Re:Your Reqs Are Too Specific, Try R or Octave by gmueckl · · Score: 2, Insightful

      Well, the average scientific experiment really is buggy, feature-incomplete and crash-prone. And this doesn't even include the software for controlling them. All that *really* matters is getting solid data.

      --
      http://www.moonlight3d.eu/
    12. Re:Your Reqs Are Too Specific, Try R or Octave by alexborges · · Score: 1

      Id like to thank the academy first, then my manager, then the community that made all of this possible.

      Of course, thank you too Neko: your intelligent remarks really keep all of us on our toes.

      Having said that, id like to say that a member of the Linux community would have no need to post as an AC to make a general and completely baseless attack on firefox (especially firefox, which kicks most other browsers in the nuts for most users) if he wasnt:
      a) Trolling
      b) A Microsoft Shill
      c) All of the above (astroturfing for microsoft)

      I actually can even agree with him (or you), on the state of oo.o or ff, but really: either everything else (in browsers and office suites) thats out there fits the general and unfair description he just made, or he is just trolling and/or astroturfing.

      Is that so hard to understand?

      Mhm... ah, its only my obnubilating hatred what makes me write this. I understand.

      --
      NO SIG
    13. Re:Your Reqs Are Too Specific, Try R or Octave by pentalive · · Score: 1

      "Feature-incomplete" and "full of bloat"? Is that not like dividing by zero?

    14. Re:Your Reqs Are Too Specific, Try R or Octave by diddleydoo · · Score: 1

      Oh not true not true. I'm a used of LAbVIEW for well over a decade and there are very few things which can't be done with LabVIEW if the programmer is experienced enough. Parallel processing, near real-time to real-time.... Of course LabVIEW is marketed as "simple" but this belays the huge sophistication of the system beneath. The marketing of LabVIEW as "Simple" pisses off a lot of seasoned programmers because a lot of people start thinking like you do. Shane.

    15. Re:Your Reqs Are Too Specific, Try R or Octave by NekoXP · · Score: 1

      It's more likely he's just trolling than astroturfing. As for posting as AC, I do that all the time, it's usually because I'm too lazy to log in.

      Firefox, I can't agree with you. Not in the slightest. It crashes all the time on every platform I've run it on (Windows, Linux x86, Linux PPC, FreeBSD) and has some real annoyances like still using far too much memory (which causes horrible problems if you want to do something like LTSP).

      Right now I've come to prefer things like Arora (simplicity at its best) and I'm toying with the developer channel version of Chrome.. which also has it's bugs but they're getting fixed faster than Firefox's release strategy, and I'm getting my work done faster even in a beta browser.

      Am I most users? No. I actually watched the development of Mozilla for a number of years for the sheer morbidity of it, while they were completely rewriting their entire codebase (I was working on a browser project at the time, and we just completely rewrote ours too) and I must say the development process, the code, is just frightful. The closest thing to a decent web browser right now is Safari. If only they'd get rid of that godawful brushed metal dark-on-dark monstrosity of a UI on Windows I might actually use it..

      OpenOffice, I like, but it's really falling down because for an office package that supposedly usurps the Microsoft monopoly on Office software, it's not any smaller once it's installed (so, still bloat..) and half the features I'm used to in Office are missing. It's not really an alternative; and it suffers the same memory usage flaws of Firefox (something I can't imagine Microsoft Word managing to do, which is make my system start swapping like a lunatic). The development process is ridiculously slow and yet again the code and the people running it are frightful..

      So basically neither project does it any better than the alternative, which right now seems to be IE8 RC1 (which I find pleasing to use if jarring moving from browser to browser and losing 10% of my screen real estate to that awful toolbar) and Microsoft Office 2007, which you can now run in a web browser too, if you can find one that doesn't suck :)

    16. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      Look, if I am going to do scientific computation, I'd rather the source code to look like this:

      http://sigfpe.blogspot.com/2007/03/shor-quantum-error-correcting-code-and.html
      (yes, that blog post compiles)

      than like FireFox, which now approaches 35 MB.

    17. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      Obvious troll is obvious. 0/10.

    18. Re:Your Reqs Are Too Specific, Try R or Octave by raymansean · · Score: 1

      You are doing experiments to get a PhD, the last thing you want to do is waste your time making sure the code is right to either a) run the experiment or b) analyze the results. The only time you will want to code is when you want to do something that the software will not do for you. If you are shocked by the lack of open source software, then why are you not shocked about all the name brand lab equipment?

      --
      insert inflammatory comment here!
    19. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      That raises another question: Why isn't there, then, a Linux or Apache of experimental physics software?

      The simplest answer I can think of is that the number of people who need an OS and/or a web server is several orders of magnitude higher than the number who need experimental physics software.

    20. Re:Your Reqs Are Too Specific, Try R or Octave by kandela · · Score: 1

      Well yeah, because your average Physics experiment is still in Alpha!

      --
      Conservation of angular momentum makes the world go round.
    21. Re:Your Reqs Are Too Specific, Try R or Octave by budgenator · · Score: 1

      Generic Mapping Tools will do some really spectacular plots, and is GPL'ed software, Cygwin or Windows Services for Unix let it run in windows YMMV. It's commandline but gui add-ons are available

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    22. Re:Your Reqs Are Too Specific, Try R or Octave by alexborges · · Score: 1

      There you go!

      That is a well thought out critique. Have a really nice browsing experience with chrome.

      I aint gonna try it till it does linux though, and well, i want my browsers open source.

      --
      NO SIG
    23. Re:Your Reqs Are Too Specific, Try R or Octave by tenco · · Score: 1

      Igor -- Technical graphing for Mac & Win -- So why not GNU Plot?

      I suggest grace instead. It's easier to use than gnuplot, has a GUI and a CLI, can read data over a pipe and the output looks nicer.

    24. Re:Your Reqs Are Too Specific, Try R or Octave by Bill_the_Engineer · · Score: 1

      I have a love/hate relationship with LabView. I always considered it to be the Visual Basic of the scientific world.

      A lot of times, it's too bloated, too resource hungry, and too expensive... But we buy it anyway.

      On the plus side, it does instrumentation really well, and GI has a catalog full of sensors to choose from.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    25. Re:Your Reqs Are Too Specific, Try R or Octave by Bill_the_Engineer · · Score: 1

      Well as long as the license server works at least...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    26. Re:Your Reqs Are Too Specific, Try R or Octave by Teun · · Score: 1

      Maybe you should upgrade that PIII 64MB.

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    27. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      The gentleman is asking for open source software for data acquisition and automated measurements. That is, he needs a collection of linux/unix drivers for high performance DAC/ADC cards and some software to run it. I imagine he already knows about octave, scilab, and of course fortan. Maybe even Labview for Linux, which probably sucks as much as Labview for Windows does.

    28. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      I'm the original AC. If you notice, I made no commentary about Microsoft's offerings being any better than FF or OO.o. I'll state for the record that IE & MSFT Office blow just as much as their open source competitors, if it makes you feel better.

      My point was to highlight the delicious irony of holding up FF and OO.o as somehow "high quality" pieces of software. I'd hope that a bit more rigorous scrutiny would be applied to software used in an experimental physics lab than is seen in FF (I use v3.0.5 on Windows XP), which crashes at least 3 or 4 times a day, and consumes tremendous amounts of memory) and OO.o (I use v3.0.1 on Windows) which is buggy, bloated, slow, and missing a lot of features which it should have by now as a competitor in the "office suite" space.

      Solid & stable software they're not, I don't care WHAT side of the Linux / MSFT fence you pee on. Repeat after me: a shitty open source product is still a shitty product, even if the proprietary alternative is also shitty. And it's not "unfair" to describe a product as shitty if it *is* shitty. Don't blame me because the person I replied to held up FF and OO.o as examples of "high quality" software. There are plenty of examples of good open source software - Apache & Linux in the server space are two that spring to mind. FF & OO.o, however, are not on that list today.

    29. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      Not if you have, say, the reading comprehension of a fairly average high school student.

      Here, try this: The features that they claim are in there don't work as they should or are completely missing (thus the product is "feature-incomplete"), and the code for the features that are in the software are obscenely bloated both from a storage & runtime perspective (thus "full of bloat").

    30. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      And how do you propose to get "solid data" with buggy, incomplete, and crash-prone control & collection systems? "Hmm... every time we run that LHC experiment, we get different results because our software crashes or freaks out. Oh well, time to publish!"

    31. Re:Your Reqs Are Too Specific, Try R or Octave by ConceptJunkie · · Score: 1

      So you're saying that to properly answer the question you'd have to /. /.?

      --
      You are in a maze of twisty little passages, all alike.
    32. Re:Your Reqs Are Too Specific, Try R or Octave by alexandre_ganso · · Score: 1

      Isn't it what happens most of the time? http://www.phdcomics.com/comics/archive.php?comicid=1069

    33. Re:Your Reqs Are Too Specific, Try R or Octave by Anonymous Coward · · Score: 0

      No, uncomfortable truth is uncomfortable.

      Then again, this is slashdot, where stating an unpopular truth is routinely labelled as trolling. So no surprise there. But since I'm trolling, why don't you go ahead and explain to everybody how Firefox & OO.o are, as the original post I replied to stated, examples of "high quality" software?

      Yeah... I didn't think so.

    34. Re:Your Reqs Are Too Specific, Try R or Octave by fyzikapan · · Score: 1

      The code to actually do something useful *is* frequently distributed fairly widely. Pretty much every major instrumentation company provides Labview support along with lots of example programs that you can use. That's the kind of stuff that requires a PhD to do. We're willing to pay NI a good bit of money for Labview because it works and it's easy. As experimentalists, we have neither the time nor the funding to sit around coding up drivers and writing our own programming languages. Labview makes it easy - easy to get data, easy to make multithreaded apps. Easy is good when you need to get papers published.

    35. Re:Your Reqs Are Too Specific, Try R or Octave by pjabardo · · Score: 1

      I work in a laboratory - a wind tunnel and I don't think the problem is too much specialization. I don't know what the guy's setup is but from my point of view the problem is hardware support. Most hardware manufacturers simply do not acknowledge that there is an OS different from windows and for these guys open source / free software is a completely alien concept.

      So basically, if you want to use free software you are going to have to do it all on your own. From low level hardware drivers (with no support or help whatsoever) up to libraries and high level environments.

      But do you know what is interesting? At our lab we have some old equipment (30-40 years old) and they all have service manuals that usually includes electronic circuits diagrams. Basically you had all the information to fix anything. But now the only option available is to send the instrument to the manufacturer and hope they are in the mood of fixing it.

      Software? It is a disgrace usually. You by a $200.000 equipment and you get a software that handles the instrument pretty well but does nothing else (how do you interface with anothe equipment???) and the damn software includes a hardware key!!! I ask myself who would "pirate" this software? It is useful only with the equipment the company sold for tons of money and nothing else. I mean you already payed a small fortune for it!!! Often they do not provide an API so that you can try to interface the software with another environment. This drives me insane!

      Why do we still by equipment from this company? The first reason is that I will usually have the same problem with other options. Another reason is that most of these equipments are expensive so you have to make sure it will work and the best way to ensure this is to get the same stuff some other lab you know uses.

      All this could change is there was an awesome open source environment. But here is the catch: most experimenters I know are very poor programmers. But there is light in the end of the tunnel there are projects like http://www.comedi.org/ that provides drivers for DAQ cards. National Instruments has binary only linux drivers for some of their boards.

      Just yesterday my boss agreed to release as open source some code I'm developing. It is basically interfaces to the R (http://www.r-project.org/) environment. Much of it is very similar to matlab's daq toolbox. For now I will mostly be using the code on windows (since many instruments we have do not offer any other option) but I will try to slowly migrate to Linux or some other free environment.

  3. Scilab is the GPL alternative to Matlab by swaltman · · Score: 4, Informative

    .. but the specialized libraries aren't as mature. http://www.scilab.org/

    1. Re:Scilab is the GPL alternative to Matlab by skeeto · · Score: 1

      Well, technically it's under the CeCILL license, which is GPL compatible. I am glad you brought it up because until now I thought they were still under that annoying semi-free non-commercial-only license.

    2. Re:Scilab is the GPL alternative to Matlab by Anonymous Coward · · Score: 0

      Octave is much more mature, and is almost perfectly matlab compatible. I did my master's thesis with it back in 2003.
      http://www.gnu.org/software/octave/

  4. Python, SciPy, VPython, etc... by Anonymous Coward · · Score: 2, Informative

    There are tons of opensource software tools used in scientific research. One widely used language for building and extending these tools is Python.

    Try a google search for +Python +physics to get started, but also try +Python Labview, +Python Igor, and so on. You will find that lots of people have built Python tools to extend the proprietary ones, or do preprocessing or postprovcessing of data.

    1. Re:Python, SciPy, VPython, etc... by bzipitidoo · · Score: 2, Informative

      There's Sage, for advanced mathematics. Built with Python.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    2. Re:Python, SciPy, VPython, etc... by Liquid+Len · · Score: 1

      I second that. If you add matplotlib and octave to this list, you can forget about Matlab altogether (unless you need some weird toolbox).
      Personally, I've also been using xmgrace to prepare the figures for my papers for a long long time.
      Finally, Fortran 90 (+ free libraries) for number crunching and I'd say you're all set.

    3. Re:Python, SciPy, VPython, etc... by MtHuurne · · Score: 1

      A good Python library for making 2D plots is matplotlib.

  5. Stay away from Labview by hankwang · · Score: 4, Informative
    I have some experience with Labview and Igor.

    Labview has the advantage of being easy to learn for non-computer-savvy people that want to control and read special hardware (electrical monitoring equipment, servo motors, etc.). Unfortunately, it rather terrible for complex programs that do not naturally fit in LabVIEW's paradigm of deterministic data flow paths from user input to screen or file output. For example, storing things in persistent variables that are not visible to the end user are a horrible kludge. Reusing VIs (program modules) in other projects require you to endlessly draw wires on your screen rather than simply copy/paste something in an editor. Data processing that involves anything else than applying a standard library function (such as searching arrays for special conditions) that would have been 20 lines of straightforward C code will take you half an hour in LabVIEW, even if you use the "C formula node" that has no debugging facilities whatsoever. You will find yourself spending most of your time moving lines on your screen because there is no free space left on the flow diagram for that extra feature that you need to implement. Stay away from Labview if you can. Even Labview representatives will tell you that more experienced programmers tend to not like Labview so much.

    I haven't used Igor myself, but I have watched over other people's shoulders. You can do quite a bit with it, but the syntax of the language is quite inconsistent; the central paradigm is that variables are either scalar or "wave", which is an array that implicitly represents a row of (x,y) values with fixed steps in x. Wave variables always have global scope, which makes functions that deal with wave variables unpleasant, especially if there is recursion.

    Myself, I have been a happy Gnuplot (FOSS) user since 1996. Gnuplot is quite limited in terms of data analysis and dealing with higher-dimensional datasets, and also has a very inconsistent syntax due to historical reasons, but the latter doesn't bother since I have used it as it evolved. For serious (CPU-intensive) data analysis, I have always written C/C++ programs (with gcc, of course), using Gnuplot only for plotting.

    I have played a bit with R (FOSS) for data analysis and visualisation, which I liked, but which I have never used apart from making a few drawings. Octave can be useful if you need to collaborate with Matlab people.

    For hardware control, I also prefer C/C++. Unfortunately you will likely have to do that under Windows unless you want to write your own lowlevel drivers for Linux (I tried once and gave up when I had to read a 200 page document describing the PCI bridge controller to figure out how to do a DMA transfer).

    (I'm out of the academic world now, working at a high-tech company where I have to work with Microsoft Office most of the time and god I do hate that...)

    1. Re:Stay away from Labview by goombah99 · · Score: 5, Informative

      Your knowledge of Labview and Igor seems limited and out of date. Labview is far more sophisticated now that the primitive description you use. (for example, you can bundle all the wires into a single "object" wire) so there's no "endless" drawing of connections like you describe. It becomes more like drawing UML, except when you are done making the vi, it actually runs.

      Igor is a very nice fast system. the command line syntax is a little archane but not terrible hard. But it has complete gui controls so you can use it before you memorize all the commands. It's not worse than GNU plot or matlab or perl data language or scipy or R in terms of having syntax oddities. it seems like all grpahics packages try to compromise between powerful short commands and completeness. (sort of the perl ethos out of neccessity to make it interactive rather than a structured program)

      but it's not as good a general programming language as say Scipy. But it is more user freindly.

      Labview can be frustrating because sometimes it is faster to write code. But here is one big advantage labview has over everything I have used for data acquisition. It's the only code I'm willing to modify during an experiment. it's not possible to make a syntax error, it is very hard to make big errors when simply moving or split, and you don't have to worry about the thread g wires in an existing program, and most importantly for DAQ since you dont' explicitly program the thread syncronization you cant screw it up with changes. So it's not too scarey to change a working program in the lab to do something a little extra right in the middle of some expensive instrument time.

      Labview is a extremely crappy language for data analysis. It's designed for live instruments and real time work not off line anaylis.

      right now I'm a big fan of scipy but it too has it's frustrations. it's wildley incomplete, undocumented, and they just changed all the 3d graphics to a much better but way too complicated system and the old programs can't be maintained with the new releases.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    2. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      LabVIEW is great for DAQ as others noted. I am also seen it used for programs that are completly not related to DAQ, and work just as good and efficiently as anything written in any other language. P and H mining use it in their gigantic mining cranes, I have seen some nuclear reactors us it for their control systems, etc.

      You can easily use OOP, multi-thread (LabVIEW automatically splits your parallel code to different cores), and utilize high speed I/O.

      You can call me a LabVIEW fanboy, but other people who usually use C will say that it is better than any other language, because they know how to use it better.

    3. Re:Stay away from Labview by JustinOpinion · · Score: 1

      Your knowledge of Labview and Igor seems limited and out of date. Labview is far more sophisticated now that the primitive description you use.

      I don't know. I use LabVIEW pretty routinely and the GP's experiences reflect my own. There's no question that LabVIEW can make setting up a new data acquisition system very fast. The tie-in with DAQ cards and many instrument control systems is fantastic. But the actual programming paradigm is terrible (at least for anyone acquainted with the power and flexibility of traditional text-code programming). Even with the various enhancements they've put (like bundling wires and all that), it takes a long time to code comparatively simple things. You end up spending way too much time drawing wires and figuring out where they come from.

      LabVIEW, in a sense, encourages all the "bad practices" of programming: it's not sufficiently easy to add comments: there should be more facilities for tagging, describing, and searching said info; almost everything ends up being global or having too large a scope; the wiring-diagram motif creates the equivalent of GOTOs, where you're trying to figure out where a value came from; overall code ends up tangled and difficult to maintain; ...

      Having said all that, LabVIEW's advantages (again, the rapid set-up of a decent hardware interface) make up for its disadvantages in many cases. (Although it would be awesome if they made a simple cross-language bridge so that I could create custom VIs written in a 'proper' programming language.)

      Everything else you said about LabVIEW and Igor is spot-on.

    4. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      Igor is /so/ worse than Matlab. As you say, the commands are very arcane and it's awkward to program. Takes me twice as many lines as the equivalent Matlab code to do the same thing.

    5. Re:Stay away from Labview by diddleydoo · · Score: 1

      Your knowledge of LabVIEW seems horribly incomplete. Somebody who starts programming (in ANY language) without trainingg will not be able to handle large programs, not even LabVIEW can solve that problem. As a seasoned LabVIEW programmer I can say that it's quite easy to develop programs which perform parallel processing, network communications and so on. As for "Stay away from LabVIEW if you can"... Sounds almost like a dare instead of a warning. LabVIEW is becoming more and more powerful with each generation. Shane

    6. Re:Stay away from Labview by diddleydoo · · Score: 1
      Deary deary me.

      You never grasped the idea behind LabVIEW did you?

      You mention bundling of wires as an "enhancement"? It's a basic functionality of all modern programming languages (record in Pascal, struct in others).

      Yes, LabVIEW's programming model is significantly different from "traditional" text-based languages but it's extremely powerful and flexible. The fact that you only attribute these characteristics to "text-code programming" is mind boggling to anyone who is properly skilled in LabVIEW.

      You're probably not aware thatg LabVIEW has inherent parallel execution (part of the terrible programming paradigm you mention). You seem to find one of LabVIEW's biggest advantages as a weakpoint.... The graphical layout of the code makes the code (when you know what you're doing) hugely intuitive and debugging is certainly a LOT faster in LabVIEW than the equivalent text-based program. DAta types are clearly distinguishable based on colour, the number of array dimensions by the thickness of the wire and so on. All lead to a huge increase in "visibility" of the code in question.

      The fact that distributed computing is relatively easy in LabVIEW probably wasn't known to you either?

      If you're willing to actually LEARN the programming paradigm of LabVIEW, I guarantee you'll be rewarded with a very flexible and very powerful and scalable programming language.

      Courses are STRONGLY recommended in order to be able to properly unlock the power behind G.

      Shane

    7. Re:Stay away from Labview by kabocox · · Score: 1

      Labview has the advantage of being easy to learn for non-computer-savvy people that want to control and read special hardware (electrical monitoring equipment, servo motors, etc.). Unfortunately, it rather terrible for complex programs that do not naturally fit in LabVIEW's paradigm of deterministic data flow paths from user input to screen or file output. For example, storing things in persistent variables that are not visible to the end user are a horrible kludge. Reusing VIs (program modules) in other projects require you to endlessly draw wires on your screen rather than simply copy/paste something in an editor. Data processing that involves anything else than applying a standard library function (such as searching arrays for special conditions) that would have been 20 lines of straightforward C code will take you half an hour in LabVIEW, even if you use the "C formula node" that has no debugging facilities whatsoever. You will find yourself spending most of your time moving lines on your screen because there is no free space left on the flow diagram for that extra feature that you need to implement. Stay away from Labview if you can. Even Labview representatives will tell you that more experienced programmers tend to not like Labview so much.

      So you are telling me that basically high end scientists/PHds use something similar to this (http://info.scratch.mit.edu/About_Scratch) to program there toys to gather their data?

    8. Re:Stay away from Labview by t35t0r · · Score: 1

      i built a fairly complex gui in labview but had to use the matlab code plugin to do the majority of the number crunching

    9. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      Bad programmers write bad code, whether it is in C or LabVIEW. It has its strengths and weaknesses, but don't let someone else's bad programming steer you away from a good tool.

      Commenting in LabVIEW only requires you to double click on the location you want the comment and then start typing... how exactly is that harder for you?

      LabVIEW allows you to call DLL's, so you are free to link in your own custom code.

    10. Re:Stay away from Labview by novakyu · · Score: 2, Informative

      for example, you can bundle all the wires into a single "object" wire

      Oh, yes you can bundle them, but that just means you have fewer visible wires; the underlying scheme hasn't changed at all.

      For example, suppose you write a sub-VI and later on, you want to modify it to take more inputs. In real programming languages like Python, that would be as simple as dealing with keyword argument lists. You don't have to mess with the function definition; you just pass the information to the function and write something within the function to do something with that input (i.e. you don't have to think about the whole pipeline, just the end-points).

      Try doing that in LabVIEW. When the smallest property of those bundles change (i.e. more number of wires in the bundle, or a different data type for one wire), you have to change a number of things to make the things connecting to that bundle work again.

      I've worked with LabVIEW for some time, and I've modified and re-written moderately complicated program, and at the end of the day, if I can imagine the program growing in its functions and me maintaining that program 1, 2 years from now, I would stay very far, far away from LabVIEW, regardless of how easy initial UI design is (it's not like designing UIs with toolkits like Qt is that difficult).

      Let me just put it this way: modifying a LabVIEW program is like trying to modify an electronic circuit---except that, very often, you won't have a circuit diagram in your hand, and you won't have any explanations as to why certain things were wired in a certain way.

    11. Re:Stay away from Labview by novakyu · · Score: 1

      Commenting in LabVIEW only requires you to double click on the location you want the comment and then start typing... how exactly is that harder for you?

      For one, you have to plan that space for the comment.

      And, if you write too much comment, you have to keep scrolling around in 2D to see all of the "code".

      Imagine if you had to write codes in normal languages and your "insert" was toggled on (and you couldn't toggle it back), so if you could imagine yourself adding anything additional (comment, additional code, etc.) later on, you have to plan for that space ahead of time.

      That's exactly how harder it is to comment in LabVIEW.

    12. Re:Stay away from Labview by goombah99 · · Score: 2, Informative

      Try doing that in LabVIEW. When the smallest property of those bundles change (i.e. more number of wires in the bundle, or a different data type for one wire), you have to change a number of things to make the things connecting to that bundle work again.

      Sounds like someone has not learned you can index bundles by name, not just by position in the struct. You are treating them like an array but you can also treat them like hash's.

      But agreed it's not as simple in some cases as writing code.

      On the other hand if you were writing the syncronization of multiple threads by hand your head can explode but in labview you don't even think about it most of the time.

      it's a terrible generla purpose programming language. it's a great data aquiristion language and RAD gui builder.

      plus it's the only language I know where it's safe to let the enduser mess with the gui.

      that makes it perfect for experimental laboratory environements.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    13. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      deary deary me, the is the most arrogant message i have read in quite a while.
      that probably wasn't known to you either.

      i am guessing he uses Labview to, you know, do things rather then to "implement the paradigm."
      that probably wasn't known to you either.

    14. Re:Stay away from Labview by Bill_the_Engineer · · Score: 1

      Courses are STRONGLY recommended in order to be able to properly unlock the power behind G.

      This may be viewed as a disadvantage.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    15. Re:Stay away from Labview by ultralame · · Score: 1

      I think your ideas of LV are out of date. I make my living writing labview code, and about 1/2 of what I write are off-line data analysis programs. This includes FFT, image analysis, complex math, matrix math, etc.

    16. Re:Stay away from Labview by ultralame · · Score: 1

      LabVIEW, in a sense, encourages all the "bad practices" of programming: it's not sufficiently easy to add comments: there should be more facilities for tagging, describing, and searching said info; almost everything ends up being global or having too large a scope; the wiring-diagram motif creates the equivalent of GOTOs, where you're trying to figure out where a value came from; overall code ends up tangled and difficult to maintain; ...

      Whoa. While some of that may be true (the facilities for tagging and searching are rather lax) the resulting code that is written is only as good as the programmer. It's absolutely true that NEW labview programmers write spaghetti code more often than not. But just like GOTO statements, the mantra of the trained community is "No Globals!". I will say this- when I step into a bad labview project, I can figure out what is going on fairly quickly. The debugging mode and visual nature excel in that respect. Opening a bad C# or even VB.net project can take days to figure out. Bad code is bad code in any language. I will agree that it takes a little more time to code very simple things, but it usually takes less time to code more complex things.

    17. Re:Stay away from Labview by Goldsmith · · Score: 1

      Coming from a more traditional programming background (I was a computational physicist before I was an experimental physicist), I had many of the same problems you have with Labview. There are very few people in academia (and no classes) which I feel properly use labview, but I was lucky to have someone recently back from industry to show me examples of what Labview should do. Everyone is caught up in hooking up hardware and learning the basic program design that most academics learn horrible, horrible programming habits for Labview.

      The "deterministic data flow path" is a mistake and should never be taught. You should have quickly learned that labview is multithreaded, even if your program is linear, so why not use it? It excels at parallel tasks with a minimum amount of work on your part, and works best as a lab tool when using multiple asynchronous loops. Buffers and queues should be some of the first things taught. That National Instruments makes both labview and some of the best scientific DAQ cards available means it's far to convenient to use anything but Labview and an NI card.

      As to why Labview and all these other programs aren't open source? I would love that. If the NSF or DOE had half the guts the NIH did, we would have open source tools. There's no reason for there not to be an open source version of labview when there's an open source tool for calculating protein structure. Physics started the internet, data sharing and public online journal articles, but we've been left behind the last 5 years or so by medicine. There's no leadership at the top (where is the top?) to push through the kinds of laws the NIH has used to make biology research transparent and more cost effective.

    18. Re:Stay away from Labview by ultralame · · Score: 1
      Yes and no. LV started out like that- as a tool for engineers to implement their DAQ ideas without having to teach a programmer about physics.
      But around 5 years ago NI came 'round and started to listen to the developer community- and continuously improved the "IDE" to bring it in line with other languages.
      Since around 1998, I do not hesitate to tell people that if it can be done in java/VB, I can do it in LV. There are probably exceptions to that rule, but I haven't come across them.
      By the way,

      ou will find yourself spending most of your time moving lines on your screen because there is no free space left on the flow diagram for that extra feature that you need to implement.

      is the equivalent of saying that C is a lousy language because eventually you have a 30,000 line program in on text file and you spend all your time hitting CTRL-F to jump around.

    19. Re:Stay away from Labview by ultralame · · Score: 1

      What kind of number crunching? I have never seen anything that couldn't be implemented in LV; albeit there are some cases where a DLL might have a faster interface.

      I guess I am saying that while MATLAB certainly has advantages over labview, if you get to that point, you should be able to find either a labview library or DLL/.net assembly that can perform your calculations.

      Why not recode the MATLAB routine in C, then create a DLL and avoid the MATLAB license fee?

    20. Re:Stay away from Labview by ultralame · · Score: 2, Informative

      Try doing that in LabVIEW. When the smallest property of those bundles change (i.e. more number of wires in the bundle, or a different data type for one wire), you have to change a number of things to make the things connecting to that bundle work again.

      If you have been working with LV for a while, you should know about Type Definitions and possibly LVOOP/LV Class architecture. In short, you can EASILY do what you are talking about, as long as you have some idea how to use good practices in labview (and no, it doesn't take significantly more time, any more than avoiding GOTO statements).

      In short, there are very simple "BKM"s in LV as there are in any language that will allow you to deal with exactly that (and other) situations.

      Let me just put it this way: modifying a LabVIEW program is like trying to modify an electronic circuit---except that, very often, you won't have a circuit diagram in your hand, and you won't have any explanations as to why certain things were wired in a certain way.

      And this is different from a poorly written text program how? I write my LV code in such a way that you can understand it by looking at it, amendable and commented.

      Labview's biggest weakness is that it IS so easy to get a working program up that people who have never seen it before and get things done- sometimes rather horribly. But compare that to someone trying to write a deterministic piece of code in VB who has never seen a line of code before. They just can't (in a short period of time). But like any language, there are good and bad practices.

    21. Re:Stay away from Labview by t35t0r · · Score: 1

      Recode all the fft routines? That's ok. Anyways, matlab is essentially "free" in a university environment because of the site licenses.

    22. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      The discussion was about using labview in relation to other languages- so how would it have been different if you had used any other language (VB, C++)?

      If your routine used std FFT routines, than you could have coded in LV with the std FFT functions. If you were using modified/special FFT functions, then you would have had to recode in any language.

    23. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      Just a small correction, GNUPlot is NOT FOSS, contrary to the name.

      http://en.wikipedia.org/wiki/Gnuplot#License

    24. Re:Stay away from Labview by toddestan · · Score: 1

      It's not surprising to see a lot of out of date information, as for some reason it seems that there are lot of really old versions of Labview still being used. I still see people programming in Labview 5, a version that dates back to the Windows 98 days.

    25. Re:Stay away from Labview by j_cavera · · Score: 1
      Two ways of doing this. Easy way (and the way that NI tells you to do it): create a control template for the cluster. When the template changes, everything that subscribes to the template changes accordingly. The limitation is that it is still a cluster and those aren't the easiest things to work with. Your circuit analogy is a good one in this case.

      Harder way (but worth it and something that NI doesn't tell you): Store all variables as a 2D array of either strings or variants. For each row in the table, the first element is the variable name, the second is the value, the third is the data type and the fourth is the units.

      This is a royal pain in the *** to code initially, but will save you limitless time later on as you end up getting things like state persistence, search-sort, type conversion, and so forth.

      Over the decades (yes, I've been coding LabVIEW for a couple of 'em), I've come up with an entire suite of VIs to work with these variables in 2D arrays just as though they were named members of clusters.

      Don't know if the paper and sample code is still up on ni.com, but I did a presentation on this at NIWeek 2006. Hope this makes your LabVIEWing much more pleasant...

      - Jim

      --
      #include "humorous_pop_culture_reference.h"
    26. Re:Stay away from Labview by Anonymous Coward · · Score: 0

      I use LabVIEW and C# or C++ along with Measurement Studio. If you have a copy of Visual Studio and the NI Suite together awkward stuff like you describe can be avoided by creating a text based DLL and add the DLL file to the LabVIEW project. Use the right tool for the right thing...That's how I included database queries and commands with LabVIEW as the toolkits are crap. Most of my DAQ stuff lately has been easier with Visual Studio anyway.

      Wires in bundles often seems goofy. NI likes to call it a "data structure". Don't most such things usually hold the same values all the time rather that whatever happens to be the latest value? Not with LabVIEW. I use it and it has its strengths but I'm not exactly a fan.

  6. Python usage in scientific computing by Anonymous Coward · · Score: 1, Informative

    You might be interested in checking out Fernando Perez' presentation at the San Francisco Bay Area Python User's Group on usage of Python in scientific computing:

    https://cirl.berkeley.edu/fperez/talks/0811_baypig_scipy.pdf

  7. Qtiplot & root by denominateur · · Score: 5, Informative

    For simple tasks, even with big data sets, I've had good results with qtiplot http://soft.proindependent.com/qtiplot.html. For really complex stuff, there's root from CERN http://root.cern.ch/

    1. Re:Qtiplot & root by klazek · · Score: 1

      Root is good, but I do get 'segmentation violation' errors a lot, accompanied by a core dump. It is often totally untraceable. I wouldn't say it's a "steaming pile if s**t" like the poster below me, by any means. I *RARELY* use the interpreter though, it might actually be a "steaming pile if s**t". But you can use the libraries right in your own C++, and some of the classes are truly great. Great histogramming, really easy to do graphing, easy function fitting (user defined as well as pre-canned functions), integrals, derivatives, you name it. The graphing is quite god. There is a Qt plugin for it too, so you can draw right on a Qt canvas. There is also a comprehensive python wrapper that comes with it, so you could do a PyQt-root analysis if you want, you can set it up kind of like an Igor experiment. It's actually really worth learning if you are a physicist, you'd be at a disadvantage if you didn't. Qtiplot? Ehhh.. klunky, I lose patience every time I try to learn it.

    2. Re:Qtiplot & root by Anonymous Coward · · Score: 0

      Last I checked a Fermilab, many of the experimenters use Root. It can make really eye-popping (from an uber-nerd point of view) charts and histograms and has powerful data analysis tools. It is basically a C++ REPL (gives you a persistent command line) implemented with Cint.

  8. Geist3D by dedazo · · Score: 2, Interesting

    I know of this one, if only because it's written in Python and I ran into it looking for some unrelated 3D tools. It does do physics simulations, AFAIK.

    --
    Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
  9. GDL is the open source replacement for IDL by oneiros27 · · Score: 1

    If you've ever wanted something FORTRAN-ish, but with matrices, see GDL.

    They're trying to make an open source interpreter that can take IDL scripts directly. Unfortunately, I don't know if it can open up IDL save files, due to various threats from lawyers.

    There's also PDL, which deals with large data cubes in Perl.

    --
    Build it, and they will come^Hplain.
    1. Re:GDL is the open source replacement for IDL by Dr.+Zowie · · Score: 1

      Not to attack the great work that the GDL folks have been doing, but friends don't let friends learn IDL. It's too evil and bletcherous, and stunts the mind away from producing beautiful, generalizable code toward a twisty maze of special cases, all slightly different.

  10. EPICS by ilbrec · · Score: 5, Informative

    Many larger places in the world use EPICS (Experimental Physics and Industrial Control System). An experiment I am a (small) part of use EPICS for control.
    It is an open source control systems frequently used for particle accelerator control and observatory telescope control. We use it slightly differently, but for what we need to do, it works very well. It is maintained primary by Advanced Photon Source at Argonne National Laboratory. You can read more at the following URL:
    http://www.aps.anl.gov/epics/
    In case you are wondering, no, they don't use EPICS for LHC. They use a commercial SCADA program called PVSS (for the most part anyway).

  11. He means I think experimental control by goombah99 · · Score: 5, Interesting

    The programs he names:
    labview, igor, matlab, are not simply data analysis tools but also have hardware control modules. You can run your data acquisition from Igor, and matlab and of course Lab view.

    things like R or octave or scipy dont' have control and acquisition modules that I know of.

    That said, it seems to me that since scipy is in python that any python DAQ system would fit the bill of a scientific software system.

    So the real question is, what DAQ's are available for python.

    and the answer is going to be, that daq softwares tend to get written to drive specific hardware systems. e.g. labview makes a whole suite of DAQ boards. there's oscilloscopes and so forth.

    As a scientist you don't want to get bogged down building a custom daq. SO the real bottom line is what commercial DAQs are open in design.

    The only system I know that might possibly be in the open is the OASIS daq's developed for flow cytometry. these are mass produced and were developed at the National Labs. But I don't know how it is lic.

    of course, one can always use an oscilloscope or DAQ made to be controlled by GPIB or simmilar common language. In that case it's pretty easy to write your own as long as you can find a suitable open source GPIB output driver.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:He means I think experimental control by PitaBred · · Score: 3, Informative

      For those of us (like me) who were confused when the DAQ acronym started being peppered in the parent post, it means "Data AcQuisition".

    2. Re:He means I think experimental control by Anonymous Coward · · Score: 0

      I have used Python, with both the scientific packages, and packages for building interactive applications, binded with a bit of C. I have had a huge success with this. I wrote a paper on this, trying to share the good decision that made this experiment-control system better than the other ones I worked with ( http://gael-varoquaux.info/physics/agile_computer_control_of_a_complex_experiment.pdf ). The data acquisition debian page ( http://cdd.alioth.debian.org/science/tasks/dataacquisition.html ) is also a useful resource.

    3. Re:He means I think experimental control by Chris+Burke · · Score: 2, Funny

      For those of us (like me) who were confused when the DAQ acronym started being peppered in the parent post, it means "Data AcQuisition".

      Oh man, that makes way more sense than what I was thinking, "Dark Age of Quamelot".

      --

      The enemies of Democracy are
    4. Re:He means I think experimental control by civilizedINTENSITY · · Score: 3, Informative
      Every lab I've worked in used GPIB controlled instruments. Python "import gpib" makes this trivial.
      If you want an environment like MatLab or LabView, there is Scilab:

      The scilab serial port interface provides direct access to peripheral devices such as modems, printers, and scientific instruments that you connect to your computer's serial port. This interface is established through a serial port object.
      If you want to communicate with PC-compatible data acquisition hardware such as multifunction I/O boards, you need the Data Acquisition Toolbox. If you want to communicate with GPIB- or VISA-compatible instruments, you need the Instrument Control Toolbox. Note that this toolbox also includes additional serial I/O utility functions that facilitate object creation and configuration, instrument communication, and so on.

      There are many such toolboxes: DATA ACQUISITION AND REAL-TIME

    5. Re:He means I think experimental control by Bill_the_Engineer · · Score: 1

      He may also have meant "Experimental Physics" versus "Theoretical Physics". I have practitioners of both where I work...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    6. Re:He means I think experimental control by Anonymous Coward · · Score: 0

      2 years ago I wrote an Octave wrapper for National Instruments' NIDAQmx interface if anyone is interested. It uses SOAP RPC, so you can issue commands over the network from a different computer from the one actually connected to the N.I. DAQ. I never released it but it's in SVN: http://neurodata.svn.sourceforge.net/viewvc/neurodata/e-rig/trunk/nidaqmxbase-soap/

      Caution: since i haven't touched it for 2 years, there may be some bit rot.

    7. Re:He means I think experimental control by Anonymous Coward · · Score: 0

      Try dataguzzler. http://thermal.cnde.iastate.edu/dataguzzler. This is an integrated, extendable package for experimental control, image, and waveform acquisition.

    8. Re:He means I think experimental control by NeuralAbyss · · Score: 1

      In my line of work (embedded system testing), we do a fair bit of product testing with Python. We have a SWIG wrapper around the National Instruments DAQmx API, which works pretty damn well (about as well as the C API), especially when doing buffered reads/writes.

      You do tend to get about a 4ms RTT for any of the USB-based NI DAQ boxes, which means that it's best to combine the commands into a single write, if possible.

      We also use Vector CANcases for network testing; again, a simple SWIG wrapper works wonders.

      Unfortunately, I can't release any of our libraries as open source, but it's pretty damn easy to get going - about as easy, if not easier, than in C.

    9. Re:He means I think experimental control by Anonymous Coward · · Score: 0

      National Instruments has a linux version of their nidaqmx driver. Ofcourse, the driver itself is not open source, but it does offer the possibility to control their hardware from C and therefore from python. In my experience, one doesn't need much more than national instruments hardware.

      Data analysis in using the python/matplotlib combination is in my opinion superior to matlab.

    10. Re:He means I think experimental control by hweimer · · Score: 1

      So the real question is, what DAQ's are available for python.

      Comedi provides Python bindings.

      --
      OS Reviews: Free and Open Source Software
    11. Re:He means I think experimental control by goombah99 · · Score: 1

      where?

      --
      Some drink at the fountain of knowledge. Others just gargle.
    12. Re:He means I think experimental control by kravlor · · Score: 1

      As a scientist you don't want to get bogged down building a custom daq. SO the real bottom line is what commercial DAQs are open in design.

      The only system I know that might possibly be in the open is the OASIS daq's developed for flow cytometry. these are mass produced and were developed at the National Labs. But I don't know how it is lic.

      As a plasma physicist myself, that's exactly the sentiment.

      In the plasma physics community, DTACQ digitizers have been becoming increasingly popular, not only because the hardware is top-notch, but they all run embedded Linux and all drivers are GPL.

  12. EPICS and RTEMS by joelsherrill · · Score: 5, Informative

    Since you said experimental physics... :)

    The Experimental Physics and Industrial Control System (EPICS) is a set of Open Source software tools, libraries and applications developed collaboratively and used worldwide to create distributed soft real-time control systems for scientific instruments such as a particle accelerators, telescopes and other large scientific experiments.

    EPICS is often used with the free real-time operating system RTEMS to build custom control systems.

    Users of EPICS+RTEMS include Stanford Linear Accelerator Center (SLAC), Argonne National Labs, Brookhaven National Labs, and Canadian Light Source.

  13. Asymptote Graphics by slonik · · Score: 1

    For everything graphical like 2D/3D plots, complex drawings and even solid-body shapes in PDF format I would recommend "Asymptote: The Vector Graphics Language"
    http://asymptote.sourceforge.net/. After some learning curve (it is a full-blown interpreted programming language) I never looked back on anything else.
    Asymptote is GPL software and comes with good manual and tons of examples in the Internet.

  14. Kicad by DeathOverlord3 · · Score: 1

    There is a free open source alternative to Eagle called Kicad for schematic drawing and pcb layout. I have never tried it because I use DXdesigner at the office and my personal projects have not yet exceeded the capability of expresspcb.

    I would probably go with eagle if I were setting up a new design shop because there is something to be said for having paid support people available to help when needed.

    1. Re:Kicad by Anonymous Coward · · Score: 0

      I have used KiCad (where I had previously used Eagle). It is a complete suite (schematics, pcb layout etc) without any limitations on the number of layers, components, nets, etc. It gets the job done quite well. The gerber output is fine for PCB manufacturing prototyping services and I'm about to try the output for professional assembly of a 4-layer SMT card.

      If you try KiCad, read the manual and make use of the wiki FAQ (http://kicad.sourceforge.net/wiki/index.php/FAQ), as it can appear a bit idiosyncratic. However, Jean-Pierre Charras (the original and main developer) has done a great job overall.

  15. Ask CERN? by northernboy · · Score: 1

    If you're looking for a high concentration of physicists with a history of openness and demonstrable experience with FOSS, why not try CERN? Didn't Tim Berners-Lee create the World Wide Web in order to facilitate collaboration amongst really large, geographically scattered groups working on high-energy physics projects?

    I guess back in the day, they couldn't find any commercial projects that would do the job...

    1. Re:Ask CERN? by Anonymous Coward · · Score: 0

      CERN ROOT, a C++ framework for data analysis and more... check out http://root.cern.ch/

    2. Re:Ask CERN? by neuralned · · Score: 0, Redundant

      I am intimately familiar with ROOT, the most giant steaming pile if s**t I have ever had to work with. It has a C++ "interpreter", which is an incredibly bad idea: it combines all the worst things about an interpreted language with all of the worst things about a compiled language. Add to that the massive, vague APIs, trainwreck of globals and memory leaks, and you're guaranteed pain if you try to put together anything significant with it. There is a code generator 'rootcint' that will make your life absolutely miserable if you try to write any C++ more modern than, say, 1997 (ie use the STL in standard ways). And this scientific linux stuff needs to die. It's just a version of redhat that is in even worse repair than redhat is. ROOT does make histograms the way HEPers want their histograms... the only good thing you can say here is that there are python bindings that will allow you to hand off data from numpy easily. See python + scipy + matplotlib, below.

  16. Labview's widgets by Anonymous Coward · · Score: 0

    Part of what makes Labview attractive is its set of GUI widgets for meters, knobs, charts, etc.

    I have looked around for a similar set for GTK etc. but not found anything close.

    Is there something?

  17. The Experimental Physics and Industrial Control System is open source. Many accelerators (APS, SLAC, SNS, LANCSE) and telescopes (KECK, SDSS) are using this system.

  18. RHIC and LHC by Rubedo · · Score: 3, Informative

    Here at the Relativistic Heavy Ion Collider at Brookhaven Lab, for large-scale data analysis at plotting we use the open-source C++ framework ROOT (root.cern.ch). ROOT is also used at the LHC. For hardware related tasks the needs of experimental physicists are very specific to the task at hand, and we must hand-write most of the code we need. Only for very small-scale projects can software like LabView (yuck) be useful, and there just isn't any open-source equivalent of Labview that I'm aware of.

  19. Labview by Brit_in_the_USA · · Score: 3, Insightful

    I find labview very very good for experimental work. There are educational licenses and site licenses, and with the compiler you can distribute your programs for free.

    At the end of the day I could always justify the expense of the software when the equipment it is controlling is orders of magnitude more expensive and some of the automation I was able to roll out saved weeks if not months of time.

    The is also a great community of labview users who freely share (source) code they have developed - many under specific open source licenses.

    At the end of the day I wouldn't get to hung up about open source when you are dealing with equipment and budgets where the software is 1% of the cost - just use the best tool to meet the requirement or risk project overrun and funding issues.

    1. Re:Labview by j_cavera · · Score: 3, Informative

      I've been a LabVIEW developer for 20 years now (since v2 came out in '89) and a C-coder for about almost as long and I can say this with about 99% certainty: LabVIEW is not for everything, but what it is good at, there is no good replacement (open source or otherwise). LabVIEW is second to none for data acquisition, control, (some) analysis, (some) simulation and (some) SCADA. On the flip side, unless you've a lot of experience with LabVIEW and/or a lot of time to kill, don't try anything with recursion, distributed computing or high-end visualization. I guess I'm not really sure what the problem is here: For less than $2k, you can pick up a copy of LabVIEW and save your boss hundreds of hours of your time. For about $5k, you can get the whole dev package and compile things to .exe's for deployment all over the company.

      Just my $0.02...

      --
      #include "humorous_pop_culture_reference.h"
    2. Re:Labview by JustinOpinion · · Score: 3, Insightful

      At the end of the day I could always justify the expense of the software when the equipment it is controlling is orders of magnitude more expensive and some of the automation I was able to roll out saved weeks if not months of time.

      Depends very much on the application. I once had a LabVIEW system that was getting camera input. I needed to do some simple image processing (and I mean really simple), but the only way I could do that in LabVIEW was to buy a gigantic add-on package that was very expensive. So in the end I coded it myself, but what should have been a 5-minute coding exercise (just modify one of the LabVIEW VIs to export some data) ended up being quite a bit more complicated because LabVIEW is closed-source (so I couldn't just go into a VI and make the simple change I needed).

      This is just one example where LabVIEW's closed-source nature slowed me down. On the other hand, the community is quite good and there are many useful VIs being freely offered on the forums.

      At the end of the day I wouldn't get to hung up about open source when you are dealing with equipment and budgets where the software is 1% of the cost - just use the best tool to meet the requirement or risk project overrun and funding issues.

      Open-source isn't just about money. The ability to modify the code can frequently be very helpful, especially when you're trying to do something non-traditional (which seems like all the time in experimental physics!). In science there is also the issue of "knowing what's going on" inside the software if you're ever going to trust the data that comes out of it. And we shouldn't ignore the educational benefit (and all-around fun) of being able to get into code and modify it. Science is about learning (in particular for students; but tinkering is also crucial for established scientists!).

    3. Re:Labview by diddleydoo · · Score: 2, Informative
      You know that you can bind external DLLs relatively easily in LabVIEW don't you?

      There's nothing stopping you from using a DLL from an open-source program for the image processing.

      Shane.

    4. Re:Labview by The_Wilschon · · Score: 2, Informative

      when you're trying to do something non-traditional (which should be all the time in experimental physics!).

      There fixed it for you.

      My experience with LabView (used it once for a little undergrad acoustics experiment) was that it didn't do things quite the way I expected from its presentation. The whole block diagram data flow model thing made me think that everything was going to run in parallel. In reality, it did not, so real-time processing just wasn't quite the same thing as building a circuit that did what it looked like LabView was going to do. Of course, this isn't a very strong complaint, and somebody who used it often would quickly learn exactly what it did and did not do and how.

      My own offering: In high energy experiment, we use primarily ROOT (root.cern.ch), which is a horrible, bloated, feeping creature, but gets the job done. Replacing or rewriting it would be too much effort, so everyone just limps along and pretends there isn't an elephant in the room. I can't say I want to recommend using it, but I do recommend using it anyway. At least it is FOSS, so you can in principle fix it if you want.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    5. Re:Labview by klazek · · Score: 1

      LabView is kind of an interesting concept I guess, but if you have time critical stuff, where order of operations is important, then you end up with lots of klunky nested loops that take up lots of screen. The overhead on LabView is insane, so forget about speed. You can access shared objects (.so files), dylibs, and dll's though. That helps if you need something to happen in a predictable way, and you can write your own drivers or numerical functions in C++ (like image processing or something, or I once wrote a special driver for a custom piece of hardware where I had to write I2C over two pins on the parallel bus). On the other hand, I have used it to control equipment in experiments (like fire some capacitors, read in the CAMACs, look at probes, etc). It's pretty good for that sort of thing. But I've been tending to scipy + Qt + my own c++ libraries with boost python wrappers lately. I would try different tools, most of the open source things are pretty powerful once you get your groove on (i.e. develop your own typical workflow, this is also true if you spend money. Think of how long it takes to get efficient with Mathematica or MatLab). The best ones IMHO are:

      octave
      scipy with PyQt
      root (with or with out pyhton, and the interpreter is kind of bad)
      Qt for easy GUI creation (again, with or with out python)
      VTK if you really want to get deep into data visualisation.

    6. Re:Labview by Compuser · · Score: 1

      Labview is horrible for memory management and very inefficient. So if you want something that pushes your hardware to the max (e.g. controls register allocation or defines custom communication protocol to minimize waste bits being sent over) then Labview is just not usable.
      The other problem with Labview is that they every so often release new versions which happen to be incompatible with previous ones. So if you developed stuff for, say, Labview 5, then by now you have probably recoded your stuff several times or are stuck running old environment. This is not a problem with ANSI C or matlab code.
      The other problem with Labview is that a good coder can make reasonably legible stuff but in a lab with two or three coders you will inevitably have someone coding spaghetti code. Yes, bad code exists in all environments but there is nothing like Labview spaghetti code to boggle the mind.
      Another evil of Labview is that there is no easy way to convert its diagrams to line code and use all the standard tools available for, say, C to improve code.
      In short, Labview is to DAQ what Visual Basic used to be (before .NET) for UI: easy for the clueless but evil for any real work. I would say that if you cannot use assembly and/or custom FPGA (which is the best way for DAQ), at least use C.

    7. Re:Labview by Eukariote · · Score: 1

      Since you are a C coder and aware of the limitations of LabVIEW, it may interest you to learn that there is a freely downloadable toolkit that closely merges LabVIEW with a modern scripting language (Lua). http://www.citengineering.com/luaview/. With that you can use many of the modern coding practices (run-time scripting, recursion, exception-like error handling, etc.) lacking in pure LabVIEW.

    8. Re:Labview by Anonymous Coward · · Score: 0

      Thanks, I'll check it out. For scripting purposes, I've written an interpreter using LabVIEW that runs a C-language subset. It was at first just a fun and kinda silly thing to do. Since then, I've used it in several test systems when the client asked for batch processing, extension interfaces, scriptability, etc. Go figure...

      - Jim

    9. Re:Labview by j_cavera · · Score: 1

      Oh, and that's me (j_cavera)... Just forgot to log-in. - Jim

      --
      #include "humorous_pop_culture_reference.h"
  20. Have a look at CAELinux by Anonymous Coward · · Score: 0

    Although it is based on an out-of-date PCLinuxOS, there are many interesting and very professional packages bundled in that distribution, mostly targeted at engineering, such as finite element codes and the like. I advise you to do as I did: check which ones are relevant for you from trying the live DVD, then install them on your favorite distro by hand.

  21. Useful programs by jschimpf · · Score: 1
    (1) Octave (Like Mathcad)

    (2) GnuPlot Plots all that beautiful data....

    1. Re:Useful programs by Anonymous Coward · · Score: 0

      I have try to use open source whenever possible for my research but i still find for the big number crunching programs like Origin or Mathamatica are still far superior. However for smaller tasks there are a few good one is use.

      GRI: Excellent scripting language for generating Scientific graphs, especially if you need to generate similar looking plots again and again.
      http://gri.sourceforge.net/index.php

      NeumericalPython: Add a lot of useful math libraries to the python language, you can do some quick models or data manipulation this way.

      Gwyddion: Program for scanning probe microscopy) data visualization and analysis. Great for AFM, STM and other similar images.
      http://gwyddion.net/

      LTSP: our lab actually runs one powerful Debian server and all the computers in the lab (save the windows machines that do data collection) are dumb terminals. Works surprisingly well as we are an experimental lab. most of our work is not system intensive and when you do need to run something system heavy it's usually only one person doing it.

      Being a physicist i assume I don't even need to mention LaTeX, but I will.....LaTeX.

    2. Re:Useful programs by 16384 · · Score: 1

      (2) GnuPlot Plots all that beautiful data....

      The data may be beautiful, but the gnuplot plot won't. Use Matplotlib http://matplotlib.sf.net/ for that.

    3. Re:Useful programs by feranick · · Score: 1

      3) XmGrace plots even more beautiful plots...

  22. NCL by Fishbulb · · Score: 1

    Try NCL - NCAR-Graphics Command Language.

    http://www.ncl.ucar.edu/

  23. KST by Anonymous Coward · · Score: 0

    KST is interesting if you need to plot data in real-time.

  24. For Great Success, Look at It Realistically by eldavojohn · · Score: 1

    To me, that makes it all the more important that ones work is distributed as widely as possible so that others may build upon it.

    Hey man, my heart is behind you 100% in this respect. Unfortunately, ideals/maxims/truth are not what create change/progress in today's world. Money/greed/market have replaced them. He was a great leader but Gandhi would not be a CEO today. I don't think it's a bad thing. Sure is unfortunate in some respects. But modern day people operating on the former usually get laughed at/written off. Look at Stallman!

    So I unfortunately have to point out that if you approach your boss (or one of these companies) with a business proposal yielding a net gain of karma or helping society without a tax write off ... you might be written off from that point on. No one needs that discouragement. Approach this from the point of what you can offer people that will bring them closer to their goals and not just yours that--in my opinion--is how a lot of the successful open source products work and is--again, in my opinion--core to the idea of open source.

    Realistically, these products are these company's bread and butter. Leave 'em alone if you can't offer them anything. Ask them to support open source plugins or provide an API but don't ask them to shoot themselves in the foot. Instead, look at your lab that (might not) have the sole objective of making money. Turn it into a directive of your lab, then show how other projects benefit from a community, then exercise all your community contacts asking for contributions and pray. Or you can throw your lot in with an existing successful product like R, GNU Plot or Octave or where ever you think it most applicable.

    --
    My work here is dung.
    1. Re:For Great Success, Look at It Realistically by Hatta · · Score: 1

      So I unfortunately have to point out that if you approach your boss (or one of these companies) with a business proposal yielding a net gain of karma or helping society without a tax write off ... you might be written off from that point on.

      Nope. As long as we get a good paper out of it, giving it away is no problem. In fact, the more people who use the results of our work, the better off we are. Science only works if we can build on each others results. And this is why there is a lot of very high quality open source scientific software. I don't do physics, but biology, and at least in biology the open source sofware is all superior to the proprietary versions. Things like primer3, EMBOSS, BioPerl, etc. In many fields, open source scientific software is the rule, not the exception.

      --
      Give me Classic Slashdot or give me death!
    2. Re:For Great Success, Look at It Realistically by civilizedINTENSITY · · Score: 1
      "He was a great leader but Gandhi would not be a CEO today."

      But he would still be a great leader. The real question is, do great leaders make great CEOs? If not, then whats wrong with business?

      "But modern day people operating on the former usually get laughed at/written off."

      You mean principles? Did you know that to maintain accreditation MBA programs have had to introduce a fixed percentage of ethics lecturing for *every* class? Looks like scandal and profound dismal failure in that culture are trying to be addressed.

      "business proposal yielding a net gain of karma or helping society without a tax write off"

      goodwill
      Goodwill is a long-term asset categorized as an intangible asset. Goodwill arises when a company acquires another entire business. The amount of goodwill is the cost to purchase the business minus the fair market value of the tangible assets, the intangible assets that can be identified, and the liabilities obtained in the purchase.

      Goodwill has recognized value. Get over it.

    3. Re:For Great Success, Look at It Realistically by alexandre_ganso · · Score: 1

      Not to mention that pretty much everyone in science today uses linux under every piece of experiment they do... Although some uses ms word to write their papers (which we can see quite clearly when we have to review ugly papers).

    4. Re:For Great Success, Look at It Realistically by nelsonal · · Score: 1

      Goodwill in accounting is a very dry joke by accountants. The trade name was blue sky before goodwill became standard. Essentially accounting was developed to help peddlers and traders know how their sales were going. The idea that peddlers would buy and sell other peddler's businesses wasn't really a concept, it was bolted on later. So the way it works is that for every transaction something goes out, and something comes in to the firm. When you buy a company, in the modern stock markets, you almost always pay a premium to the total value of inventory, cash, etc that that business owns. Accounting has nowhere to value that extra (essentially to an accountant a software business is made up of computers, patents, cash, and perhaps a lease). If investors value the firm on potential future developments (which they do) there's a lot of value that isn't there yet. So that value gets called "goodwill".

      --
      Degaussing scares the bad magnetism out of the monitor and fills it with good karma.
  25. Mod up parent by truckaxle · · Score: 1

    Thanks, nicely said.

    I fight all the time with Labview weenies. It does have a place but for complex jobs interfacing with other programs or systems it becomes cumbersome. One old timer senior scientist where I work refers to Labview as programming for kindergartners.
       

    1. Re:Mod up parent by diddleydoo · · Score: 1
      Sigh

      How many times must we seasoned LabVIEW programmers deal with rubbish of this sort.

      Yes there are things LabVIEW is cumbersome for, Yes it is targetted at test&measurement. So?

      As to people who refer to LabVIEW as "programming for kindergartners" he's simply never grasped the idea of data flow and inherent parallel processing. Nowadays with the availability of multi-core processors a reality the FREE multi-core usage of LabVIEW is of huge benefit.

      Scalable architectures are just as feasible and possible and also a reality in LabVIEW as with any other language. Components, Objects whatever you like, it's all there.

      Shane.

    2. Re:Mod up parent by Bill_the_Engineer · · Score: 1

      How many times must we seasoned LabVIEW programmers deal with rubbish of this sort.

      [humor]

      Probably for as long as LabView exists. If the PL/1 versus Pascal war is any indication, you have a long wait ahead of you.

      [/humor]

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    3. Re:Mod up parent by ultralame · · Score: 1

      but for complex jobs interfacing with other programs or systems it becomes cumbersome.

      Well, that's just wrong. LV excels at bringing together other systems. I'll admit right away that the old DLL interface nodes are a pain in the neck, but ActiveX/.NET nodes could not be easier.

      I have worked on OOP labview systems with thousands of VIs (I suppose you could take that to mean 25,000 lines of code?). And we never hesitated to "interface" to another system or program. Most problems we had were due to lazy documentation by the people writing other libraries.

  26. what kind of experiments?? by Anonymous Coward · · Score: 0

    I know it all depends upon what scale of experiment he is working on, but there are many open source physics solutions out there. At least in the world of high energy physics (and related), a lot of things are open source.
    On the other hand, as far as I can tell, biophysics and condensed matter folks are not necessary using open source solutions for their experiments. I know our biophysics group use LabView for the control when we do most of our controls with EPICS. They use Origin to plot their data, and we use ROOT to plot our data.
    I admit that EPICS may not fit very well with small experiment controls with only a handful of things to control when you can just program things in LabView with commercial support. I also admit that for a simple plot of data, something like Origin works just fine (you can even use Excel for somethings). As the system and data gets bigger, the usefulness of large control system such as EPICS and robustness of ROOT can shine.

  27. Geant4 by Anonymous Coward · · Score: 0

    The Geant4 toolkit is a pretty massive piece of software written by Fermilab people that does Monte-Carlo simulations of high energy interactions passing through matter. That is, you describe some orientation of matter to it, which can be pretty complex (like a hamburger or something), and ask it "what happens if I shoot a high energy gamma ray into this," and out comes a list of events and/or a pretty picture.

  28. astronomy by interglossa · · Score: 2, Informative

    A lot of astronomers use IDL but NASA projects in general must put their software in the public domain, so it is not surprising to find packages like the Astronomical Image Processing System (AIPS), the C Flexible Image Transport System (FITS) I/O (CFITSIO) libraries and many other packages and interfaces in SciPy.

  29. radware in nuclear physics by bcrowell · · Score: 1

    This is a big suite of software used for nuclear physics experiments (gamma-ray spectroscopy). It was open-source before the term "open-source" was invented. I believe all the acquisition software for big gamma-ray detector arrays is also open-source stuff written mostly at Berkeley.

  30. Python + scipy + matplotlib by kidtexas · · Score: 1

    A lot of labs in my field use IDL and Labview. Labview works pretty well for data acquisition and is nice because it interfaces with a ton of older equipment. And I can just buy a GPIB interface from NI and be done with it. For some of the bigger projects, EPICS is used as well.

    As far as data analysis, like I said a lot of IDL and Matlab is used. Some of the more simulation oriented folk tend to write their own code and most if not all of this is open source. But of limited use to the outside world.

    I made a break from my group and have been using Python + Scipy + matplotlib for almost all of my research. It's free and great. It does most of what IDL/Matlab would do. I think it's started to get up some steam too...

    A very cool 3d visualization tool called Visit is open source. I think it's build around VTK but I could be wrong.

  31. apt-cache search by RiotingPacifist · · Score: 1

    from ubuntu 8.04, im sure debain has more than this

    apt-cache search physics | grep -v game
    cernlib - CERNLIB data analysis suite - general use metapackage
    cernlib-base - CERNLIB data analysis suite - common files
    cernlib-base-dev - CERNLIB data analysis suite - dependencies checking script
    cernlib-core - CERNLIB data analysis suite - main libraries and programs
    cernlib-core-dev - CERNLIB data analysis suite - core development files
    cernlib-extras - CERNLIB data analysis suite - extra programs
    cernlib-montecarlo - CERNLIB Monte Carlo libraries
    dzedit - CERNLIB data analysis suite - ZEBRA documentation editor
    extrema - powerful visualization and data analysis tool
    geant321 - [Physics] Particle detector description and simulation tool
    geant321-data - [Physics] Data for GEANT 3.21 detector simulator
    geant321-doc - [Physics] Documentation for GEANT 3.21
    kuipc - CERNLIB data analysis suite - KUIP compiler
    kxterm - CERNLIB data analysis suite - KUIP terminal emulator
    libcojets2-dev - [Physics] COJETS p-p and pbar-p interaction Monte Carlo
    libcojets2-gfortran - [Physics] COJETS p-p and pbar-p interaction Monte Carlo library
    libeurodec1-dev - [Physics] Monte Carlo library for quark / heavy lepton decays
    libeurodec1-gfortran - [Physics] Monte Carlo library for quark and heavy lepton decays
    libgeant321-2-dev - [Physics] Library for GEANT 3.21 (development files)
    libgeant321-2-gfortran - [Physics] Library for GEANT 3.21
    libgraflib1-dev - CERNLIB data analysis suite - graphical library (development files)
    libgraflib1-gfortran - CERNLIB data analysis suite - graphical library
    libgrafx11-1-dev - CERNLIB data analysis suite - interface to X11 and PostScript (development)
    libgrafx11-1-gfortran - CERNLIB data analysis suite - interface to X11 and PostScript
    libherwig59-2-dev - [Physics] Monte Carlo event generator for hadrons (development)
    libherwig59-2-gfortran - [Physics] Monte Carlo event generator simulating hadronic events
    libisajet758-3-dev - [Physics] Monte Carlo generator for proton/electron reactions
    libisajet758-3-gfortran - [Physics] Monte Carlo generator for proton / electron reactions
    libkernlib1-dev - CERNLIB data analysis suite - core library of basic functions (development)
    libkernlib1-gfortran - CERNLIB data analysis suite - core library of basic functions
    liblhapdf-data - Les Houches Accord Parton Density Function
    liblhapdf0 - Les Houches Accord Parton Density Function
    libmathlib2-dev - CERNLIB data analysis suite - core mathematical library (development files)
    libmathlib2-gfortran - CERNLIB data analysis suite - core mathematical library
    libpacklib-lesstif1-dev - CERNLIB data analysis suite - core GUI library (development files)
    libpacklib-lesstif1-gfortran - CERNLIB data analysis suite - core GUI library
    libpacklib1-dev - CERNLIB data analysis suite - core library (development files)
    libpacklib1-gfortran - CERNLIB data analysis suite - core library
    libpawlib-lesstif3-dev - CERNLIB PAW library (Lesstif-dependent part - development files)
    libpawlib-lesstif3-gfortran - CERNLIB PAW library (Lesstif-dependent part)
    libpawlib2-dev - CERNLIB PAW library - portion without Lesstif (development files)
    libpawlib2-gfortran - CERNLIB PAW library - portion without Lesstif dependencies
    libpdflib804-2-dev - [Physics] Comprehensive library of parton density functions
    libpdflib804-2-gfortran - [Physics] Comprehensive library of parton density functions
    libphotos202-1-gfortran - [Physics] Monte Carlo simulation of photon radiation in decays
    libphotos202-dev - [Physics] Monte Carlo simulation of photon radiation in decays
    libphtools2-dev - [Physics] General purpose Monte Carlo routines (development files)
    libphtools2-gfortran - [Physics] General purpose Monte Carlo routines
    med-config - Debian-Med Project config package
    med-physics - Debian-Med packages for medical physicists
    montecarlo-base - [Physics] Common files for CERNLIB Monte Carlo libraries
    montecarlo-data - [Physics

    --
    IranAir Flight 655 never forget!
    1. Re:apt-cache search by habig · · Score: 2

      The vast majority of this list are packages in the old, fortran-based CERNLIB. Still around bug in legacy code mode. The modern replacement is Root.

      Aimed squarely at high energy experimentalists, and used for data analysis and simulation. In that field, DAQ code is nearly universally highly custom since the electronics it is interfacing with is also custom. Usually built with FOSS tools, though, such as gcc.

    2. Re:apt-cache search by wdconinc · · Score: 1

      Please, stay away from ROOT if you have the option! You could use EPICS or CODA for DAQ code.

  32. Anonymous Coward by Anonymous Coward · · Score: 0

    Comedi is open source linux DAQ software

  33. Lots by NobodyElse · · Score: 1

    You may wish to check out this page about "Education & Science over at OSalt.com.

    It lists science-related open source software, including some previously commented on examples, such as: Octave, Sage, or Scilab.

    Enjoy, and good luck!

  34. Numpy, Scipy, pylab, VTK etc. by monopole · · Score: 1

    Transitioned from matlab to numpy/scipy/pylab/PIL/VTK and I'm much happier, much cleaner and easier to use. I handle interaction w/ pygame. Presently (like at this moment) working on two major network controlled interferometer data collection and analysis systems in python.

  35. Open Source Physics learning software by avandesande · · Score: 1

    Although not targeted to research and more towards learning, I though it would be good to give props to the people at http://www.andestutor.org/

    Especially since my brother is one of the main contributors on the project ;)

    --
    love is just extroverted narcissism
  36. kdawson is an idiot by Anonymous Coward · · Score: 0

    Ever heard of the "askslashdot" section? Every time there's a fucking topic posted that is clearly a question aimed at slashdot readers, k-fucking-dawson puts it into some other category.

    1. Re:kdawson is an idiot by Anonymous Coward · · Score: 0
  37. It depends if you want to code by fermion · · Score: 1
    Labview, Igor, Inventor, Eagle

    For some applications, like Labview and igor, there are alternatives if you want to code. These applications, and those like it, are tightly intergrated packages that allowed automated workflow in the lab with minimal understading of the processes actually being used. For control this is not neccearily a big deal. For data aq and analysis, I think the researcher should know what is actually happening to convert raw data(for instance a voltage) to the pretty picture.

    It is quite possible to take to open source modules, glue them together, and do almost everything that Labview and igor does. Whether this is cost effective is another question. A long time ago, when these tools were less developed and quite a bit more expensive, I was responsible for writing the data aq and control systems for some of our experiments. As a lowly paid student, it was cost effective.

    As far as Inventor, that is a fish of another color. Like solid works, there is nothing else like it. It is a highly polished professional product that is not allowed to stagnant. Therefore, open source is not allowed to catch up, as it has in field of office applications. I am told that sketchup has many of the capabilities of Solidworks and Inventor. I am not sure how permissive the free license is.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  38. Replacement for Eagle by grimsnaggle · · Score: 2, Informative

    It's a tad less polished and maybe a bit more buggy than Eagle, but FreePCB ( here ) is FOSS Windows software. It works sufficiently well for me to be very productive. I've used it to make all of the circuitry for the Stanford Solar Car Project ( here ).

    It's much easier to use than Eagle and does make you go through as much bigma to get a board made.

  39. gEDA/PCB by dj.delorie · · Score: 1

    In addition to Kicad (already mentioned) there's also gEDA and PCB (http://www.geda.seul.org/), which run on Linux, Unix, MacOSX, and Windows. There are even some geda-designed boards in space :-)

  40. eagle open source equivalent. by arugulatarsus · · Score: 1

    Just a heads up, if you're looking for an open source routing software, gEDA and Oregano are good options. The UI is no where near as nice as eagle's. I kind of enjoyed gEDA though. They also has rather anemic libraries if you deviate from standard issue parts, just like eagle. I think these should be a good start on that front.

    On to matlab, have you tried scilab? Once again, not quite what you're asking for but it is open-source and can calculate matrices.

    In general, I cannot recommend open-source physics stuff to people due to UI issues. Physics students want results and many are not all that comfortable with a computer. I am not trying to flamebait, I actually applaud you in your interest in these products. I feel that need a bit more polish before being able to seriously threaten the big boys.

    A simple suggestion or two: if you're using ubuntu/debian, apt-get the packages, they are friendly and install nicely. Also, www.osalt.com is an interesting site to see if there are good open-source projects out there.

  41. GnuRadio as an Labview alternative by Falstius · · Score: 2, Informative

    I wrote the DAQ I use for my research using the GnuRadio framework (which is written in python and c++). It is relatively easy to write custom C++ modules for high speed computation. There is also a graphical programming utility called GRC for simple LabView style "programming". Unfortunately, the code still isn't very mature, but it is under very active development. It is difficult to argue with the simplicity of labview for a quick interface to NI hardware, but once you leave the academic world where licenses and hardware cost real money, the appeal is quickly lost.

    When I get time, I'll play with comedi and the comedi module for gnuradio for working with NI DAQ cards.

    1. Re:GnuRadio as an Labview alternative by Ruie · · Score: 1

      I would also add PCB (for design of printed circuit boards) and Qucs. The latter is great for prototyping that quick and dirty resonator or opamp circuit.

      For my work I extensively use Tcl, R and C. Verilog for FPGAs. Tried a few programs in python, the gpib module mentioned above sounds interesting. Maxima is great for making quick simulators - it has the ability to use variables as parameters that will get carried through, so you can look at how one part of the system is affected by changing parameters of another.

  42. Tragedy of progress by Zinho · · Score: 1

    The real tragedy about this is that there is already a vast library of Physics computational tools, but few new students are using it because it's all written in Fortran. Computing has moved forward (python vs. Fortran), but the libraries don't move forward with it.

    I once heard a story about a CS professor who every year assigned the translation of a Fortran library function into C to his students. I cry thinking about it, since C is rapidly being left behind as well.

    --
    "Space Exploration is not endless circles in low earth orbit." -Buzz Aldrin
    1. Re:Tragedy of progress by Bill_the_Engineer · · Score: 1

      Fortran isn't dead yet, and it executes faster than Python.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    2. Re:Tragedy of progress by maxume · · Score: 1

      Apparently, the reason should be more "because they don't know about them". Compiling some Fortran and an interface sounds a lot easier than rewriting stuff:

      http://www.scipy.org/F2py

      --
      Nerd rage is the funniest rage.
  43. Open Source is the best you can have in science by Snoboo · · Score: 1

    I have spent the best part of the last 15 year developing experimental setups at evaluating the data. You don't need labview to do that. Example: Most beamlines at large X-ray site like the ESRF are controlled by open source command line software (SPEC). There are a few beamlines which are controlled by labview and people usually dislike this interface as to clumsy. Most of the equipment we have at the university can either be interfaced via the serial port or the GPIB interface and you need Labview for neither of them. And I am not losing much time with my approach either. When I am evaulating data I usually use Python, Gnuplot for the plotting and fitting and C/C++ if I need all the computational power I can get. I also stay away from S....Plot, since it tends to crash in the most awkward moments. (I know what happend when I hear "SHIT" from my bosses office) This did not get better from release to release. The crashes and bugs just pop up in different places. And the most important thing is: You know what is happening to your data if you program you evaluation yourself. I don't trust someones blackbox anymore, after I had too many bad experiences. Open Source is just the thing for science, since it can actually help other groups to verify and understand your data and evaluation.

    1. Re:Open Source is the best you can have in science by FrankDeath · · Score: 1

      Is this the spec to which you refer? http://www.certif.com/index.html If it is then you are incorrect about it being open source. A license is required to run it. It is possible to obtain the code so you can build it, but sharing it is definitely not allowed. The macros you write for it, however, are as open as you'd like them to be.

    2. Re:Open Source is the best you can have in science by Snoboo · · Score: 1

      I stand corrected, never looked at the site. But it is still pretty open compared to Labview.

  44. GRACE by digitalderbs · · Score: 3, Informative

    I use all of the tools listed by other commentators. But one of the most useful tools not yet listed is GRACE (or xmgrace). It produces publication quality figures, includes many useful features like linear and non-linear regression, statistical analysis, convolutions, interpolations, Fourier transforms and it supports complicated multi-graph overlays well.

    1. Re:GRACE by 16384 · · Score: 2, Informative

      xmgrace graphics aren't very pretty, at least when compared with matplotlib (http://matplotlib.sourceforge.net/gallery.html. I still use it for quick and dirty graphics, otherwise I use matplotlib.

  45. All things considered, I recommend IGOR by BishopBerkeley · · Score: 2, Informative

    In the interest of full disclosure, I've been an IGOR user for about a decade, and I have worked for the company as a consultant.

    IGOR is a fantastic tool. Will it do everything? Just about. Its programmability makes it nearly infinitely flexible.

    But, for me, the two features that make me shudder at the thought of dispensing with IGOR are the support and OS interoperability.

    IGOR Pro is perhaps the best supported and best documented piece of software on the planet. (Yes, I have contributed a minor amount to said documentation.) The company stands behind the program completely, and the user community usually offers solutions to anyone's problem within minutes. And, the documentation is simply phenomenal: the comprehensive and highly linked pdf version of the manual ships with the software is also installed as a searchable, highly organized database that can be navigated many ways.

    Then, of course, is the bonus that everyone gets with their purchase of IGOR: you get Mac and Windows versions as part of your purchase. (I've been told the Windows version runs well on Linux under Crossover.)

    And, oh yeah, the cost is a fraction of Matlab's or LabView's.

    --
    "...who search the reason of things
    Are those who bring the most sorrow on themselves." --Euripides, The Medea
  46. For the circuit designer by Anonymous Coward · · Score: 0

    We use SPICE for our EE design needs. Its open source (it was when I was using it), I'm sure by now they might have added some graphic support for it.

    j

  47. R, GNU Octave. Necessary to good science. by OldakQuill · · Score: 1

    I am an academic biomedical scientist working with electrophysiology. A lot of proprietary software is used in this field, such as IGOR Pro, Matlab, Statistica and SPSS.
    These tools are, currently, better than open-source alternatives, and are sadly a little too entrenched in the field.
    In terms of statistics software, R is good alternative to SPSS and Statistica, and I tend to use R. GNU Octave is designed to replicate Matlab, and be compatible with Matlab, but it isn't as feature-rich as Matlab yet. IGOR Pro is the most important piece of software in my work, and is used for data acquisition and analysis. Unfortunately, I don't know of any open-source alternatives to IGOR Pro.

    Open-source software is crucial to good science, because expensive, proprietary software presents another barrier to replicating experiments and results. Ideally, there should be as few barriers to experimentation as possible. The current proprietary-based system ensures that science is bound to institutions (universities and companies, usually). It is very hard for scientists to work independent of these structures.

  48. LabVIEW is a full featured language by drval · · Score: 1

    FWIW, I've been programming in C since the early 80s as well as.... I've been a LabVIEW programmer for the last 11 years and use it exclusively for the neurofeedback software that I've developed. Not only does that program perform real time analyses that no other neurofeedback software does (or can), it's offline Analytic capabilities are also unsurpassed. While I'm sure that there are application arenas in which some other specific language might be superior -- esp if one is already well versed in the other language -- for ease of use, generalizability of use, scalability and extensibility I know of no other more powerful language. And it's actually quite easy to learn, which is both a plus and a minus. And to be clear, I've implemented functionality using LabVIEW that others said couldn't be done in LabVIEW. Your individual circumstances may, of course, vary considerably from mine but the idea that LV is a "toy" or "not a real programming language" or "unusable for serious development work" is really ludicrous.

    1. Re:LabVIEW is a full featured language by diddleydoo · · Score: 1
      I agree wholeheartily.

      I have experience in Pascal, Delphi (Arguably the same thing), C++ and C# in addition to LabVIEW.

      Given the choice I will start every project with LabVIEW once it has remotely anything to do with hardware control, parallel processing or visualisation.

      LabVIEW is easy to get familiar with but really quite detailed. In other words, it's easy to just get enough knowledge to shoot yourself in the foot with. Because it's easy to get started with people tend to disregard solid software engineering principles. Needless to say that larger projects will start falling apart if modularity is a word only other people use.

      I'm programming with it for over 10 years and I can't keep up with the new additions in functionality (OOP being the most important one recently).

  49. Nuclear/Particle Physics is heavily open-source... by Anonymous Coward · · Score: 1

    ...once you've got the data. Collection is proprietary, analysis is open source. Most of the bigger labs (CERN,SLAC, the LHC, Fermilab) publish the source and binaries for their analysis and simulation codes. It's just good practice, since a lot of people use their data, and there's no financial reason to close the source. Your peers can also check and run the same code you did to check your analysis and conclusions. The result is that there is a megaton of nuclear-specific and particle-physic specific open source stuff. Much of it is *NIX-only.

    The instruments are all standardized (in some case, virtually unchanged for decades), up until the point they need to talk to a computer. The analog-to-digital converters & collection interfaces all need proprietary interface software, because they need as much performance as they can get in order to handle the massive quantities information you toss at them.

    Vendor lock-in is a non-issue; when basic data collection hardware starts at a couple thousand and climbs exponentially from there, you can afford to maintain a couple computers indefinitely just to speak to it. As far as I know, one lab still is using a Mac OS 9 desktop because it's the only thing that will speak to their spectrometer. That was a lucky lab -- the next one I worked in used a DEC MicroVAX II dating back to the mid-80s.

    So, in answer to your question, yes there's open source software. But none of it will talk to your spectrometer board from 1985. Software like LabVIEW actually represents a huge step forward, because for a mere couple thousand per license you can avoid the vendor-supplied drivers for tons of systems.

  50. Grid stuff by VisionMaster.NL · · Score: 1

    I make a part of the software for the grid infrastructure thingies. All apache 2 licensed. Most of the experimental physics stuff, the infrastructure, technical plans, agendas, nearly everything is open to view.

  51. ROOT and scientific linux by neuralned · · Score: 1

    root is the most giant steaming pile if s**t I have ever had to work with. It has a C++ "interpreter", which is an incredibly bad idea: it combines all the worst things about an interpreted language with all of the worst things about a compiled language. Add to that the massive, vague APIs, trainwreck of globals and memory leaks, and you're guaranteed pain if you try to put together anything significant with it. And this scientific linux stuff needs to die. It's just a version of redhat that is in even worse repair than redhat is.

    1. Re:ROOT and scientific linux by Anonymous Coward · · Score: 0

      Yes, ROOT is quite horrible. I managed to get it to segfault with TMath::Sqrt(2). It crashes at the slightest provocation (and with no obvious reason), gives errors that are wrong (saying that a variable isn't defined when actually it is and the problem is elsewhere, for example) and the interpreter behaves significantly differently than compiled C++. You end up spending far too much time dealing with its idiosyncracies.

      In the end I gave up on it and wrote as much as possible outside it, with thin wrappers to the bits where ROOT was unavoidable. My code was much quicker to write and worked *far* more reliably this way.

  52. From an experimental physicist by DrLudicrous · · Score: 1

    I have used a lot of different stuff in my time as a physicist. Personally, the program that I prefer is not free. It is Igor Pro, which the parent post mentioned. While it is not free, a "student" license is only 90 bucks from Wavemetrics, its vendor. The student license gives you a full working copy of Igor for eternity. You are allowed to install it at work, at home, and on your laptop. It is a "makes sense" license, unlike other programs. If I had more time I would go into the details of why I like Igor so much, but I have a pressing meeting to attend to. Suffice to say that economics is a big motivator (and upgrades are very very reasonable).

  53. Scientific Linux Is for You! by b4upoo · · Score: 2, Informative

    Scientific Linux OS is written by the scientists and engineers at CERN!
          Its base is from Red Hat.
          It is a jewel of an OS and is exactly what you need.
          Distrowatch.com probably has it listed and a path to downloading it. It is free.
          Good luck and do something good that helps people!

    1. Re: Scientific Linux Is for You! by Anonymous Coward · · Score: 0

      Jevel of an OS? The RHEL5-based variety is OK. The RHEL4-based variant was horrible.

      And most people here (experimental particle physics dept. of some european Uni) install Fedora wherever IT allows them to...

  54. comedi drivers by Anonymous Coward · · Score: 0

    http://www.comedi.org/

    Open source drivers for lots of DAQ boards from national instruments, measurement computing and others.

    http://www.linux-usb-daq.co.uk/

    Open source hardware built for use with comedi drivers. Also labview compatible.

  55. Scientific software by xtronics · · Score: 1

    Well, there is R and kicad -there are 26951 packages in Debian right now - not sure how many are research related.

    wajig listall |grep science
    beneath-a-steel-sky - a science fiction adventure game
    science-astronomy - Debian Science Astronomy packages
    science-biology - Debian Science Biology packages
    science-chemistry - Debian Science Chemistry packages
    science-config - Debian Science Project config package
    science-electronics - Debian Science Electronics packages
    science-engineering - Debian Science Engineering packages
    science-geography - Debian Science Geography packages
    science-linguistics - Debian Science Linguistics packages
    science-mathematics - Debian Science Mathematics packages
    science-mathematics-dev - Debian Science Mathematics-dev packages
    science-physics - Debian Science Physics packages
    science-robotics - Debian Robotics packages
    science-statistics - Debian Science Statistics packages
    science-tasks - Debian Science tasks for tasksel
    science-typesetting - Debian Science typesetting packages
    science-viewing - Debian Science data visualisation packages
    texlive-science-doc TeX Live: Documentation files for texlive-science
    texlive-science TeX Live: Typesetting for natural and computer sciences
    zope-zms Content management for science, technology and medicine
    med-pharmacy Debian Med packages for pharmaceutical research

  56. What are you asking? by DoctorNathaniel · · Score: 4, Informative

    Professional experimental physicist here.

    There are two main types of software physicists have to deal with: hardware interface, and data analysis.

    Hardware interface is often the the tougher one: slow controls, data aquistion, environmental monitoring - these all need to interface to hardware through various drivers. LabView is an obvious candidate for table-top experiments, since it is possible to set up working control and readout systems more or less out of the box. There is really no good open-source solution for this for the same reason that open-source drivers took a long time coming to Linux: the user base is just too small to write the code.

    My own experience is that it's far better to write your own code, using whatever drivers you can scrounge - it's far more efficient at getting what YOU want done as quickly as possible once it's running. However, the time to write and debug this code is extensive. It's particularly bad since often students will write this code and then disappear, leaving you with badly-documented half-working code.

    However, this is basically true of many LabView installations as well.

    On the data analysis side, there are many good packages that serve as starting points. ROOT (http://root.cern.ch) is an excellent package for doing event-based data analysis in nuclear and high-energy physics, including efficient ntuple storage and histogramming. It's really a toolkit, not a program, so it allows you to do your own analysis by writing your own code.

    I'm not familiar with other big packages, but I know that I frequently use raw C, C++, gnuplot, perl, and python to do little jobs.

    There are other tasks as well. Blogging software can be good for logbooks. Wikis are good for in-house documentation.

    It really depends on specifics. But basically it depends on where your project falls on the quick-and-dirty vs long-life vs high-performance judgements.

    1. Re:What are you asking? by sugarmotor · · Score: 1

      Also include numerical computations and symbolic algebra?

      Stephan

      --
      http://stephan.sugarmotor.org
    2. Re:What are you asking? by amazeofdeath · · Score: 1

      Excellent post, I replied to the original question without reading this one.

      You are absolutely right. It's very hard for a proper lab to get any OSS solutions for the expensive measurement systems; in the best situation you can expect LabView which can be easily transferred to other platform, if suitable drivers are available. We do use LabView usually even when doing our own measurement programs, as it's a very simple way for doing the hardware interface, and you can get the data directly in plain text which is preferable to us.

      I already mentioned Gnuplot in the other post, but it's *the* tool for most of us, and combined with Perl it's also very flexible when you have a large number of datasets. Other people in the lab sometimes use other languages than Perl, but none of those programs have been in wider use.

      For our communication, we use a local blog (Wordpress hosted on an internal server) to keep people up with mainly hardware things: Computer upgrades and changes, measurement system problems and fixes, and so on.

      --
      U+F8FF
    3. Re:What are you asking? by Anonymous Coward · · Score: 0

      The question is so poorly asked it's hard to know what the OP wants..
      Root may be a bit heavy handed for a lot of things-- I've got nothin' against root.

      In retrospect I bet I wrote 20 or 30 little DAQ's in the 90's with CAMAC and FASTBUS. From that I would support the notion of letting the hardware determine the easiest driver path.

      For analysis: I'm a long time PAW user and there are still things that PAW/ROOT/CERNLIB do naturally which are difficult in nearly all other packages. I still haven't found a really easy histogramming tool to match PAW and company especially in support of the fitting through Minuit. Every time I use a different fitting tool I end up feeling like I am working in the dark -- minuit at least halfway knew when it was getting into trouble with variable metric methods and would fall back to simplex etc. All that being said, the learning curve for the CERN tools is steep. And it is specialized -- not many people really need to plot pseudo-rapidity histograms!

      For near real time development I am using mostly Matlab these days. The plotting tools are nice overall (histograms still suck!). Basic serial I/O isn't too bad.

         

  57. comedi drivers by Anonymous Coward · · Score: 0

    http://www.comedi.org/
    open source drivers for many DAQ boards from national instruments, measurement computing, and others. Use with C/C++.

    http://www.linux-usb-daq.co.uk/
    open source hardware for built for comedi drivers. Also labview compatible

  58. Sage by hoytak · · Score: 5, Informative

    http://www.sagemath.org/. Sage rocks. It's python based, brings together many of the useful libraries already mentioned (numpy, scipy, matplotlib, etc.), and has a very active mailing list. Can't recommend it enough.

    --
    Does having a witty signature really indicate normality?
  59. Comedi by Anonymous Coward · · Score: 0

    Check out the linux control and measurement interface Comedi (http://www.comedi.org/) for open source drivers and libraries for data acquisition. It written it C, but there are bindings to python, perl, ruby.

    It will also work with the real-time extensions for the linux kernel such as RTAI (https://www.rtai.org/) and RTlinux

  60. Scientific Workplace. Cheap. Not free. by gestalt_n_pepper · · Score: 1

    http://www.genesis-technologies.com/pubdetails.asp?ProductID=692036 Pretty good though. Easier to use than just about anything else.

    --
    Please do not read this sig. Thank you.
  61. Anonymous Coward by Anonymous Coward · · Score: 0

    If you are looking for DAQ which software package you use will depend on which hardware you already have or intend to use. I've had great luck with a piece of open source software called NSCLDAQ and it's viewer SpecTcl, both available on sourceforge. They were developed and are maintained by the National Superconducting Cyclotron Lab at Michigan State University and support a range of VME and CAMAC systems.

  62. PDL (from Perl), GDL (from IDL), NumPy/SciPy by Dr.+Zowie · · Score: 1

    Perl Data Language is my personal favorite for data acquisition and manipulation - it is an extension to Perl that gives you the usual data analysis and plotting goodies, plus a nice mix of access to C code (via XS), access to the huge CPAN trove of modules (via, er, CPAN), GUI-isms (via PerlTK), and serial port / USB port access for instrument control and data acquisition.

    It's based on Perl, which can either be a huge plus or a huge minus depending on whether you like Perl.

    If you want bondage-and-discipline, you can go with GDL, which is an open-source clone of IDL. GDL's main advantage is that it is a clone of IDL, which has become the dominant language in some sectors of physics. GDL's main disadvantage is that it is a clone of IDL, which is among the more evil, bletcherous, pitfall-laden, wretched buggy cesspits of quasi-language that exist.

    Numeric Python is reputed to be good, but it's not nearly as expressive nor as flexible as Perl. Matter of taste, really.

    Gnu Octave is a MatLab clone, but does not have access to the huge library of add-on modules that you can buy for MatLab. Still, many modules exist and if you like the syntax you can stick with it.

    Another good place to start is the wikipedia comparison of numerical analysis packages.

  63. Perl Data Language by Dr.+Zowie · · Score: 2, Informative

    Perl Data Language is quite nice -- it has all the blended hackish glue-code goodness of Perl (which could be a plus or a minus depending on your personal style). CPAN (the big Perl repository) has a lot of free stuff for access to serial, parallel, and USB ports so you can control your equipment and acquire data. PerlXS (built into Perl) gives you nice access to C libraries, and PP (a meta-language that comes with PDL) helps you sidestep a lot of cruft if you have to use a C module to import large volumes of data.

    PDL has built-in commands for plotting 2-D stuff via PGPLOT or PLPLOT, and 3-D stuff via GL. I use it for all my publications.

    Some prefer NumPy or SciPy, the Python equivalents of PDL, but (IMAO) Python isn't as expressive as Perl, and the external libraries, while extensive, cannot compete with CPAN for completeness or hugeness.

    1. Re:Perl Data Language by Jace+Harker · · Score: 1

      I second Perl Data Language. It's very good at fast calculation using large data sets. Also, if you need to do calculations or analysis involving many iterations (which is slow in Perl), you can write the code in C and inline it, doing the interface, analysis, and graphing in PDL.

      The flip side is that some area of PDL are incomplete, harder to use, missing features, or redundant. Maybe it's just me, but it does sometimes feel like an immature language. Still, it is very helpful for many common tasks.

  64. science links by Anonymous Coward · · Score: 0

    ElementList has good links for free science software.
    http://www.elementlist.com/lnx/13/

  65. f2py by goombah99 · · Score: 5, Interesting

    Python has mad fortran all the mor valuable. the combination of fortran and python is a match made in heaven.

    fortran is a wonderfully good algorithmic language but it is terrible at everything else. python is great at everything else, but slow as a dog.

    one of fortrans strengths when combined with python is oddly enough it's simplicity and lack of sophistication. unlike c++ It compiles so fast that you can feasibly have python write fortran on the fly optimized for the algorithm and compile it, all during run time.

    Fortran is good for non-computer scientist in part because it is quite hard for a typo to be a logic error. (e.g. = instead of ==) as a result it's comparatively easy to debug compared to C.

    but it can't do all the fun memory management tricks, introspection, or objects that advanced languages do.

    But with f2py you can push all of that into python and then just have it call short simple fortran routines for speed.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:f2py by Bill_the_Engineer · · Score: 3, Informative

      Agree. However, Fortran still evolves and Fortran 2003 (and 2008) is suppose to add some OO capabilities beyond encapsulation in modules.

      I will point out that I've seen more Perl than Python in scientific computing. But most of my scientist coworkers tend to be older..

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
  66. Depends very much on what you wish to do by amazeofdeath · · Score: 1

    We are mainly an OSS lab, doing experimental physics for superconductor and semiconductor research. "Mainly" comes from the wide variety of MS operating systems we need to use to operate our proprietary measurement systems, which need everything from Windows 3.11 (with *4* ISA controller cards) to XP to keep them running. I'm the lucky one who keeps them running...

    In any case, I do most of my scientific work with the combination of LaTeX+Gnuplot+Perl. Practically all the data from our measurement systems can be had in plain text format, so Gnuplot does the hard work to get nice plots, and Perl handles larger data sets as it can be easily scripted to use Gnuplot.

    --
    U+F8FF
  67. Depends... by Anonymous Coward · · Score: 0

    Depends on what branch of experimental physics you're in. Nuclear and high energy physics have quite a collection of open source softwware. I've got a pair of projects that are hosted at Sourceforge myself. The data acquisition system and online analysis framework for the National Superconducting Cyclotron Lab (http://www.nscl.msu.edu).

    http://www.sourceforge.net/projects/nscldaq
    http://www.sourceforge.net/projects/nsclspectcl

    You can contact me through those projects if you need more information or want to investigate using these projects for your work.

  68. A punny name and you're halfway there - by Savantissimo · · Score: 1

    Clearly this calls for a new open-source project to be called DAQuiri.

    --
    "Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
  69. Depends on your field, but.. by adrianbaugh · · Score: 1

    my researcher friends routinely use Octave, perl, I know of R being used... Not sure about data recording programs though, perhaps that is more specialised (or I just never needed them in my field). LaTeX, as auxiliary software, is pretty standard for writing up papers.

    Of course, since it's Turing-complete you could just use emacs for everything... or vi... :-)

    --
    "'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
    - JRR Tolkien.
  70. Comedi & RTAI by lckarssen · · Score: 1

    During my PhD research project in experimental physics I needed some fast (~200 microsec. resolution) Digital IO, but there was not enough money to buy a NI card with onboard memory. We did have an older NI card (PCI-6024E) with several DIO lines. I then used the drivers from the Comedi project [www.comedi.org] in combination with the RTAI real time kernel [www.rtai.org] to write a program that clocked out the desired timeing with approximately 20 microsec. resolution. So if you don't want LabVIEW, but do want OSS drivers for your NI card, comedi is the way. Of course, this means you'll have to program in C.

    1. Re:Comedi & RTAI by goombah99 · · Score: 1

      cool. thanks. I wish someone would make some python wrappers for these!

      --
      Some drink at the fountain of knowledge. Others just gargle.
    2. Re:Comedi & RTAI by NeuralAbyss · · Score: 1

      SWIG makes it pretty bloody easy to wrap any C/C++ library for Python, or even Ruby, C#, Tcl, Perl, PHP et al.

      http://www.swig.org/

  71. Please support Octave by spicifer · · Score: 1

    I'm a physicist (of the modelling kind, though, not an experimental one).

    Let me tell you, if you want to support Open Source in science, support GNU Octave. Matlab is the de facto standard in many fields just because students are conditioned to use it during undergraduate education. However, it's ridiculously expensive and many institutions are just looking for an excuse to dump it. Surprisingly often they haven't even heard of Octave.

    Octave has improved a lot in the past few years and version 3 is actually quite impressive. Matlab code often runs with minor or no modifications at all. It even supports multidimensional matrices now. At my lab Octave has become an integral part of the research process. We couldn't do without it, I never use Matlab any more.

    So, if you are in a position to try Octave instead of Matlab, or recommend it to scientist, I hope you do that. Octave project is also looking for help and I can assure you that by helping them you are helping numerous scientists around the world. Including yours truly.

    1. Re:Please support Octave by ishmaelflood · · Score: 1

      Seconded. v3 is entirely usable and stable, the new graphics engine is a step forward as well. It also handles large (1000x1000, ok I know that isn't especially big) matrices gracefully. It is not as pretty as Matlab, but they are working on a pretty front end.

    2. Re:Please support Octave by guetenburg · · Score: 0

      I'm just an engineer with a masters degree, so I know I'm outclassed in this discussion, but I'd sure like to get an explanation of why so many open source software offerings like "Octive" can't describe the software on their home page. The description given is pathetic. Sure it works if my friend is using it and I can watch them use it for 2 or 3 days, but not if I come in cold. To say that it's like MATLAB is no help to someone who hasn't used MATLAB. Besides which the whole idea behind MATLAB/Simulink is that it's graphical. So how the H_LL does Octive work, what does it do and what does it look like? Can you give me a picture of the interface? Is it just a command line and I have to take it from there? Earlier posts indicated that no-one knows about Octive. Well of course they don't because in order to know anything you have to completely commit and download the software and hope it works on your OS (since there is no listing of requirements) etc. Why make the user jump from a) Now I know the name to b)Download the software and try it even though I don't know what it does.

  72. Gwyddion for AFM/SPM data analysis by Jace+Harker · · Score: 1

    Gwyddion is a very nice open-source tool for processing, analysis, and export of AFM/SPM data sets. I find that it has many more useful and advanced features than the crappy program that came with our lab's AFM. It can also open (but not save) almost every data format used by most AFM/SPM manufacturers. (You save in the native Gwyddion format, or export to png, jpeg, tiff, etc.)

    A few quibbles: the UI is not very consistent, with some buttons having no menu counterparts and vice-versa. Also, it does not support batch processing, which is my most wished-for feature. Still, it is easily the best AFM/SPM analysis program I have ever used.

  73. Long term support by feranick · · Score: 1

    Whatever software you need to use, just make sure it will supported for a long time. Sometimes you use software that uses specific hardware, and thus specific drivers. Some other times, APIs change, so programs do not tend to behave in case of an upgrade. Although this problem is usually not that important for major applications (LabView, Matlab), it is a huge issue in case you go for an in house solution, or you used highly customized software. I can tell you this by experience since I had to rewrite a major hardware controlling program written originally in SCO-UNIX for i386 into something that works (drivers included) on a modern Linux distro.

  74. GEANT and ROOT by Anonymous Coward · · Score: 0

    Your question is a bit vague, but you may be interested in GEANT:
    http://geant4.web.cern.ch/geant4

    It simulates the passage of particles through matter, and the results. I am an undergraduate research assistant with the nuclear physics group at UNH, and we are using a program built on GEANT to simulate the impending upgrade of the particle accelerator at Jefferson National Laboratory. It is being used to help design and model the new sensors.

    For analysis, we are using ROOT:
    http://root.cern.ch
    It's well suited to making sense of large amounts of data.
    Both open source, though getting all the dependencies compiled is a pain!

  75. replacing labview with python by Anonymous Coward · · Score: 0

    labview fails if you need truly modular code, and particularly if you need to do non-trivial data analysis on-line during data acquisition.

    I had tried to replace Labview in my lab by writing python wrappers around C libraries. my first attempt was with the Comedi project (http://www.comedi.org/) which i couldn't get to work with our NI boards. Eventually i was able to write lightweight wrappers of the NIDAQMX drivers using Pyrex, so the data acquisition was fast. However, my boss asked me to focus on other things (such as experiments) for a while, and the project has basically been abandoned. So it's possible, but time consuming.
    NI offers C# drivers if you're in a windows environment, and i know people who are using those and are very happy about it.

    in general i do think that python/numpy/scipy is the best way to go in terms of high level language, high level tools, gentle learning curve, etc.

  76. Why and Why Not by DynaSoar · · Score: 1

    I use both open and proprietary software in neuroscience, including more generalized signal analysis and statistics including some far left field non-linear non-integer stuff. Proprietary is far more likely to have the advantage of having a history of validation. If you can address validity yourself, use OSS. If you haven't approached calculation validity yet, look into it before you decide whether to attempt it. Statisticians and experimental mathematicians (yes, there are such beasts) relish arguing about the finer points of calculative validity to a point that makes engineers' arguments about the relative merits and draw backs of various filters sound like arguments over the rules of whack-a-mole. Proprietary software generates income which can be used to pay the long, laborious process of validation.

    --
    "I may be synthetic, but I'm not stupid." -- Bishop 341-B
  77. Not specific enough by Roger+W+Moore · · Score: 1

    Too specific? I'd say no where near specific enough. I'm an experimental physicist, an experimental particle physicist and we use almost nothing but Open Source software. Mind you that is mainly because things like MatLab, LabView etc. cannot cope with what we need them to do. Hence most of the time we write our own software using Open Source tools and use the Linux OS both for massive clusters as well as embedded processors using in the detector's electronic frontends.

    There is one tool, root, that we use for I/O and analysis. It is by far the worst designed and written piece of C++ I have ever had the misfortune to encounter but its I/O is extremely fast and powerful...once you get it to work. I'm not sure I'd recommend it but if you do it is best used via the Python interface which offers a layer of insulation from the full horror of the interpreted pseudo-C++ environment.

    The only real exceptions to Open Source I can think of are the CAD software used to design detectors and electronics. Some of the embedded CPUs also used to use propriety OS's but I don't think that this is very common now - at least not on the projects I've had experience with. So perhaps if he explained what sort of experiment physics he was interested in it would help to be able to give advice.

  78. Things i have tried. by drolli · · Score: 2, Informative

    My different generations of meas and evaluation software stacks

    Measurement software:

    0) C
    1) C/perl/java evaluation
    2) C/java/jython evaluation:matlab
    3) matlab/labview (connected by http+xml+xslt)
    4) matlab with DAQ+instrument control toolbox
    5) C/tcl evaluation:matlab; real time plotting: gnuplot

    C was only used to bind non-preexisting daq functions. I dont write GUIs in C. For GUIs i prefer java, and the best free combinations i used were 2) and 5) would i be free to choose i would use 2), however in the environment i am currently working some co-workers write in tcl, so i found in more productive to learn tcl. (Not because of my productivity, but learn fast. However, one more conflict in the group could have killed the group. This selection was purely driven by social purpose - i gave to say: sucessfully.).

    Otherwise the general idea would be that to use java and implement the GUI in java and the scripting languange in one of the many languages existing on the top of java. If you use a standalon scriptiong language for performance reasosn (i tested that once, but i could affot to go without it): python is a great choice for semi-numerical (and numerical) programs.

    For evaluation i used and

    1) perl
    2) python
    3) octave
    4) matlab

    1-3) each plotting with gnuplot. I know there are other solutions around, but when i tested them, gnuplot was always the rock-stable, feature-rich workhorse (think: LaTeX friendly output: epslatex - great in combination wit a makefile for you figures in a thesis!), with the only disadvantage of some things beeing historically grown.

    4) is great, but do yourself the favor and alway try to keep the core functionality working in octave. I mean matlab is a great product, but you may prefer not to tie yourself to a package which costs than much money (think about what will happen after you leave your current univerity? do you still want to access you old data?). My current strategy is to keep the functions loading experimental data/evaluating it working in octave, and gui functions in matlab (only exception: i use the statistical toolbox moderatly. I could rewrite the function i use, but it would take a week. I am working in a reasearch company, and here it is more reasonable to buy the toolbox.

    Oh. and by the way from time to time i am misfortunate enough to work in labview. it is a PITA. My personal experience say: rewriting the program in another language usually saved time.

  79. Well by smoker2 · · Score: 1

    The answer you accept depends on whether you want something that does what you want without having to think, or if it allows you to ask the question. CERN has their own version of Scientific Linux, but us proles can't download it. If anybody at CERN would allow me a copy, I would gladly mirror it for the rest of us.

    (You can only get a floppy boot image, for a network install AFAICS, and to install on the network, you need a login)

    1. Re:Well by dorix · · Score: 1

      I'm not sure why you'd want the CERN-branded SL, as it's configured specifically for their network (their AFS, Kerberos, printers, etc). I used it because I wasn't aware of the more generic version:

      Scientific Linux download

  80. Root++ by jythie · · Score: 1

    I've been out of the physics loop for a number of years now, but when I was doing research we used RedHat/gcc(c++ and Fortran)/Root++. I think for actual graphics we used Motif but I can't recall now.
     
    The underlying distribution is one of the least important things to decide. Unless you need something exotic built in like clustering etc, any modern distro will give you all the libraries and tools you need. Pick your development libraries more carefully... but distrubution generally pick for ease of use. The less time you spend arguing with the OS the more time you have for actual work.

  81. Maybe it's Alzheimer's but... by Bentronathon · · Score: 3, Insightful

    Does anyone remember that category where you could submit questions to /. and then get responses from the community? I wonder what happened to that...

  82. Python(x,y) by artor3 · · Score: 2, Informative

    I'm sure this will be lost among the sea of comments, but I'll throw it out there anyway. As a former LabVIEW/Matlab user, I have had tremendous success with the Python(x,y) package.

    All the development is done in Eclipse. You have a WYSIWYG editor built into Eclipse, with which to design Qt GUIs. The signal/slot methodology in Qt is similar to LabVIEW, but easier to work with once you've learned it, since you can make connections in text or the drag and drop interface, whichever is easier.

    You can use the generic Qt widgets to display Matplotlib graphs, which use similar syntax to Matlab.

    You have numpy/scipy, which are fantastic for processing data.

    You have pyvisa/serial/parallel, which will control any instrument you have, or even ones you make/program yourself, such as FPGAs or MCUs.

    You can use Python's pickling to store your data in rapidly-accessible modes (I've opened hundred million datapoint sets in seconds), or CSV/Excelerator to store smaller chunks of data in more human-readable modes. Python also provides a fairly simple database system if you need one, and you can always use Zope or Django if you want a web interface (though that will be harder to learn).

    On top of all that, there are many more field-specific modules available in Python than in LabVIEW.

    I've been using it for months now (I should emphasize that I had never even heard of Qt or numpy or any of those things before that), and I cannot wait to drop LabVIEW. If you think Perl is bad, try to debug a 5 year old LabVIEW program, developed by ten different people, each of whom was using LabVIEW because they don't know how to program properly. One of our old VIs, which only sends a string of commands over a serial port and then reads a DMM, weighed in at over 350 MB. No one can even figure out how it works any more. The same system, done with Python(x,y), came out to under 200 lines of code.

    1. Re:Python(x,y) by j_cavera · · Score: 1

      You've a valid point with regards to the LabVIEW code. I've been a LV and C programmer for a really long time and, as an independent consultant, I'm usually called when things go awry. That said, some of the worst code I've ever seen has been written in LabVIEW. Loops nested 20-levels deep when a simple state-machine would do. Parameters passed solely via over 1000 globals. Logic so contorted that Godel would have shot himself in frustration.

      The problem is not that LabVIEW is bad per se, but that the coding bar is low. People who have only written "hello world" in VisualBasic get a copy of LabVIEW and try to conquer the test and measurement world.

      So I guess I feel your pain, but don't blame the tool for crap-code. - Jim

      --
      #include "humorous_pop_culture_reference.h"
  83. SageMath by Xamusk · · Score: 1

    You can try SAGE http://sagemath.org/ which is a Python-based CAS which describes itself as trying to build an alternative to Magma, Mathematica, Maple, Matlab, etc.

    I use it and it's pretty good. Also it's under heavy development and you can get to directly influence it's direction (if you can code).

  84. Kepler for workflows by __aapopf3474 · · Score: 1

    Kepler is a tool for managing workflows that has been used for physics, see Plasma Edge Kinetic-MHD Modeling in Tokamaks Using Kepler Workflow for Code Coupling, Data Management and Visualization. Disclaimer: I contribute to the Kepler Project.

  85. viewpoint of an experimental physicist by APL+bigot · · Score: 1

    Not exactly what you asked for, but read the article by experimental physicist Dr Beau Webber.

    http://www.vector.org.uk/archive/v233/webber.htm

    Then decide for yourself. I've already made my choice.

    --
    Heisenberg may have been here.
  86. One other problem: Version Control by systemeng · · Score: 1

    I inherited a bunch of labview code which was part of a million line software system with 13 different compilers and 3 architectures. The biggest problem I found was that there was no good way of doing version control on labview VI's. It's hard to tell if anything changed. I also never found a way to run them in an automated fashion to do testing such that I could be sure that the same control inputs had been applied each time. Labview may be good for convenience but it's death to a non-trivial system that has to be maintained over human generations.

  87. NIH Image Anyone? by this_is_art · · Score: 1

    NIH Image is an image processing program aimed at scientists, and distributed by US National Institutes of Health. It has been around since the early days of the Mac, although now it's done in Java, and runs on PC's as well. It's still free though and I just used it last week to process some engineering images. Cheers

  88. LabRAD by maffoo · · Score: 1

    In my lab at UCSB (http://www.physics.ucsb.edu/~martinisgroup) we have developed a package called LabRAD (http://sourceforge.net/projects/labrad/) for doing our data acquisition and experiment control. It is a network protocol that gives us network transparency as well as language independence. We have modules for talking to serial ports, GPIB, raw ethernet, etc, as well as servers that use these busses to talk to the various instruments in the lab. The backbone is written in Delphi, but most of the modules are written in python, which is also our scripting language of choice for running everything, and for data analysis. I can only agree with previous posts about the general awesomeness of python/numpy/scipy and matplotlib for plotting. The network transparency is great because we can monitor the whole lab and run experiments from anywhere. This is Santa Barbara after all, and nothing beats doing physics while lounging on the beach with a laptop!

  89. Igor by Neuronaut137 · · Score: 1

    Igor Pro can be extended with C code (compiled into libraries called XOPs), or code written in its own internal language. The support from the developers for both the parts they've written and for the parts you might write, as well as the support from the user base, is the best I've ever seen, by a mile. The graphics and the GUIs are also cleaner and more professional looking than any other software I've seen.

  90. It's a queston of what is the best tool for the jo by tsa · · Score: 1

    In our group, we are working towards a goal, which is to manipulate light in many intricate ways. We use a lot of software for managing our equipment and data. The choice of software depends on its performance and its ability to suit our needs, not wether it's open source or not. We use a lot of open source stuff though: Linux, Firefox, and some scientific software. We also write software ourselves if necessary. But we usually don't open source our software because we want to keep our position in the top of the field.

    --

    -- Cheers!

  91. Maxima CAS by Anonymous Coward · · Score: 0

    Maxima (http://maxima.sf.net) is just a CAS, but it is one of the most mature open source scientific software out there. If a CAS could be used for your purpose, give it a try.

  92. for control systems check TANGO too by Anonymous Coward · · Score: 0

    TANGO is an o-o, CORBA based control system. It's used in ESRF and other EU synchrotron radiation facilities. Google it.

  93. they mostly aren't specialized either by Trepidity · · Score: 1

    The stuff he's talking about is fairly generic data collection and analysis software, not really physics-specific. LabView is a semi-standard piece of software for interfacing with laboratory machines, setting up experiments and reading in the data and storing it somewhere. Igor is analysis and graphing software. Inventor is a 3d modeling/CAD package. Eagle is an ECAD (CAD for circuits basically) package with some automated layout capabilities.

    Some of these are easier to replace than others. Data analysis can generally be done by a mixture of R and Octave, as you note; and for just graphing/plotting/figures, there's a billion open-source alternatives, including a ton of Python libraries these days.

    LabView is going to be trickier to replace, due to interoperability: there's a lot of machines out there that interface with LabView out of the box, exposing APIs that LabView can use to control experiments, and sending back data in formats LabView can deal with. I'm not aware of even a significant attempt to replace it, really. (This is partly because what it does is really boring.)

    I don't know what open source alternatives for CAD are; that's a whole topic in itself probably.

  94. Have a look at Veusz by xiox · · Score: 1

    Veusz is a nice GUI/scripted scientific plotting program:
    http://home.gna.org/veusz/
    It works on Unix, Windows and Mac OS X

  95. Experimental physics software, CERN by penguish · · Score: 1

    I've been working at CERN for 15 years as an experimental physicist. I'm currently on the Atlas experiment. The prevailing operating system now is SLC (Scientific Linux Cern), having gone through various flavours of Unix and even OS9 (anyone remember that?). It is stable, which necessarily means 'outdated' with respect to Ubuntu etc. Various installation configurations are available (google is your friend...). For Data Acquisition, at the sharp end we have single board computers running homegrown software. The 'slow control' (measuring temperatures etc on a timescale of seconds rather than nanoseconds) we are using PVSS, but often in the lab (not on the main detectors) we run with LabView, using VME acquisition boards or PXI. Increasingly there is a move to USB for benchtop systems, but you still find plenty of IEEE (GPIB) instruments. For open source, maybe check out the python/C++ DAQ framework written by Carlos Lacasta. For analysis and data presentation most people use ROOT (open source), which includes a C++ interpreter for scripting. This has recently been ported to python in the form of PyRoot. In my (minority) view, Root is a dog of a software package. It is largely monolithic in its design, and the intrinsic data format is not well documented, so once you adopt Root you are really stuck with it. It has permeated all our software, and we suffer for it. The programming model mixes content and presentation. Many people love it. Igor (proprietary) is in many ways superior for small (5Gb) datasets. The presentation is superb. There are other packages (e.g. Hippodraw, Gnuplot) for presentation. I understand that Mathematica and MatLab are popular for magnetic field calculations, but much of our software is homegrown using the (open source) CERNLib.

  96. Open Source clone of LabView? by jamesmcm · · Score: 0

    I'm surprised there isn't an Open Source clone of LabView. It seems to be one area where a Free alternative would be very useful for education and would really help move things forward. I guess it's a huge job though. On Wiki I found these Free alternatives to MatLab: http://en.wikipedia.org/wiki/Scilab http://en.wikipedia.org/wiki/FreeMat http://en.wikipedia.org/wiki/GNU_Octave http://en.wikipedia.org/wiki/R_(programming_language) None are really like LabView though, nor as mature. I wish Mozilla, Google, the FSF etc. donated money to developing a mature, strong alternative to LabView.

  97. fsc2 by Anonymous Coward · · Score: 0

    If you're looking for an open source program for controlling spectrometers you may be interested in fsc2 http://users.physik.fu-berlin.de/~toerring/fsc2.phtml. Being its author I will refrain from pointing out it's advantages here;-)

  98. There is a lot OSS in physics by Anonymous Coward · · Score: 0

    There is a lot confusion about OSS. The question is always what you want. My departement buys a lot equipment for testing purposes. Most times the job is simply to get the data from the device and write it into a database for analysis.

    normaly the devices are much less complicated that a LHC but the general rule is: everyone is cooking with water. I hate this fancy GUI#s what make only problems, most devices have a serial interface you send a command and they send data. The programms are most time easly written. USB is normaly seriell in disguise, even ethernet can be used that way. Some shell scripting will help to send the data into a database.

    Afterwards you write some clever R code to analyse the results (or whatever). Sometimes gnuplot is handy (the "plot" is very powerfull for comparisons). The code people write is sometimes wired but the results are very good because the autor are ofter real experts of there area and spend a lot of time getting there knowledge into the code. We have some programm that are very good at spectrum analysis. A comparison with commercial programms showed lately that we are at least equal.

    It would be of much importance to get the scientific applications on linux (SAL) page back to live and get more people to contribute there knowledge.

       

  99. Best software ever for experimental physics. by Anonymous Coward · · Score: 0

    Sorry that it's not open source, but it is at least free-as-in-beer abandonware these days:

    http://tinyurl.com/d29zce

  100. stuff ive used by Anonymous Coward · · Score: 0

    QtiPlot is really a good gui graphing tool.
    pyplot is a libary of python plotting stuff.
    ROOT for yet annother graphing tool (developed by cern).
    xmGrace or gnuplot(plotdrop) for even more graphs.

    feynmf for feynmen diagrams in latex. not too mention latex its self and all the associated rasamataz. LyX for word processing.

    On the data collection side Linux makes it pretty simple to develop tool to collect data from pretty much any digital input.
    Also sourceforge is full of usefull stuff, i.e. pmidic, which i was able to use in a lab enviroment: http://uk.youtube.com/watch?v=pUCqO_vF2jo

  101. Some useful programs for chemistry/physics by sikanappikiisseli · · Score: 1

    Hi, Here is what I am mostly using: (I am skipping obvious things like LaTeX etc.) 1. Maxima for symbolic algebra (and some numerics too) with graphical user interface wxmaxima 2. Octave for numerical & matrix stuff 3. Grace or qtiplot for 2d plotting. qtiplot does also 3D 4. opendx for demanding 3d visualization 5. fsc2 for data acq or I directly program the hardware, although it is tough to get programming specs for most things :-( Octave and linux-gpib are also etremely useful.

    1. Re:Some useful programs for chemistry/physics by sikanappikiisseli · · Score: 1

      Ok.. typo change the last octave to comedi... ;-)

  102. Optical laboratory here by at_18 · · Score: 1

    I'm the resident "computer guy" in the optics laboratory of the local astronomical observatory...

    First of all, most people here is technically-minded. That means, if they need a simple program, they can often program it on their own. No one is scared by the command line, etc. The astronomers still have lots of Sun workstations still around, but in our department we basically only have PCs.

    There are three categories of software: hardware interface, data analysis and complete systems (in our case, that would be a telescope).

    For the hardware interface, you use whatever is available at the moment. Most experiments are one-off jobs that will last from a few days to a few months tops. Usually the hardware has an SDK with a C interface and, possibly, a Labview module. What I usually do is to wrap the C interface to the higher-level languages we use in the lab (see below)

    Data analysis is done in Matlab and IDL (IDL is quite popular in astronomical and medical environments). IDL's syntax is horrible, but it's a powerful data and visualization package. Most people here are proficient in at least one of those two languages, and if I write the appropriate wrapper, they can use the lab devices on their own. Windows and linux share about 50% each of the computers, and all window machines, including laptops, have putty, winscp and possibly X servers installed and regularly used.

    At the telescope, everything is custom-built from the ground up, because you want to know what it's doing down to the last bit. The lower level part is in usually in C, then you may have user interfaces written in Qt or whatever, databases keeping the records, modules in Python or perl or something else etc. Things are developed by teams rather than individuals, so there is lots of documentation to write and APIs to specify. Windows is usually banned from this environment, and *everything* is done in Linux.

  103. Visulization Tool Kit by Anonymous Coward · · Score: 0

    I personally can vouch for VTK does some cool sexy things both in visualization and processing. It runs on Linux, Win*, MacOS, etc. Source code is available, but it does have a steep learning curve. For me the advantage of learning VTK is that I can take it with me -- meaning that the time I invest in the tool is not waisted if I go away and start working in a place which does not have a license for that particular tool (which I got burned with via Khoros and Mathematica)...

  104. MX for Data Acquisition and Control by wmlavender · · Score: 1

    If you are interested in an intermediate sized data acquisition system, then you should take a look at the package that I have written called MX (found at http://mx.iit.edu/). MX currently has several hundred drivers for devices like motors, counter/timers, multichannel analyzers, 2-dimensional imaging detectors, and so forth. The core of MX and the device drivers are written in C in an object oriented style, but these days many of our user applications are written in Python, using wxPython for our GUIs. We have found Python to be an excellent language for writing scientific applications.