Hacker News new | past | comments | ask | show | jobs | submit login
Code.nasa.gov (nasa.gov)
218 points by WD-42 on March 9, 2015 | hide | past | favorite | 28 comments



From the article:

>>libSPRITE defines engineering units as types (i.e., Meters or Radians instead of double or int).

I guess experience is a harsh teacher.[1]

[1]http://en.wikipedia.org/wiki/Mars_Climate_Orbiter#Cause_of_f...


Worth noting that F# has language-support for Units of Measures and countless new languages have come since 2008 without that in mind.


Added in Java 8 as one of its pluggable type systems: http://types.cs.washington.edu/checker-framework/current/che...


Ok, that's awesome.


> Worth noting that F# has language-support for Units of Measures

I had no idea. That is crazy cool. Do you have any recommended resources for learning how this works behind the scenes?

(I tried implementing something similar in Swift, without knowledge of prior examples, so probably ended up doing it in a really dumb way. I tried using structs ('Quantities') containing the underlying value and also dimensional information, and then enabling mathematical operations using operator overloading and generics. I'd love to know of a better/"proper" way of implementing it though. The big unknown for me was the best underlying type/data structure to use to represent SI dimensions, including fractional dimensions, and that would allow them to be combined algebraically. Might just have to have another go this weekend following F#'s example!)

Edit: found this paper if anyone's interested http://research.microsoft.com/en-us/um/people/akenn/units/CE...


> I had no idea. That is crazy cool. Do you have any recommended resources for learning how this works behind the scenes?

http://fsharpforfunandprofit.com/posts/units-of-measure/

The units are lost at runtime and are used for static type checking only. So if you were to consume an F# lib from C# (for example) then you wouldn't have a such strong system. Hopefully one day they'll end up as part of the CLR so it can be enforced at runtime too.


"Scientific and Engineering C++" by Barton and Nackman had a good example of doing units in C++ using templates. This blog post describes the basic approach http://learningcppisfun.blogspot.com/2007/01/units-and-dimen...


I just interned with the guy responsible for libSPRITE last summer at the Marshall Spaceflight Center in Huntsville. Kind of awesome to see he open sourced it. He really was hoping to get approval to do so.

I used his library for my internship. Cool stuff. And he was a great teacher.


Clicked on https://github.com/nasa/libSPRITE, but as of now the repo contains only a README with a "Coming Soon!" note... :/ dated 1 Dec 2014, so 3 months ago already...


Gah, how many different times has unit incompatibility hit our space program now?


> Meters or Radians instead of double or int

I was just thinking I've seen that at my job, but then I noticed [1] is my employer, heh.


I currently work on one of these: https://github.com/OpenMDAO/OpenMDAO-Framework

It looks like the fork linked to on code.nasa.gov is a few years behind.


OpenMDAO is cool, have an upvote!


It's refreshing to see a page about development & code which has some soul to it. So often now everything is presented either on Github's clean, dry interface or on an external page doing its very best to lack any personality.


https://github.com/nasa/code.nasa.gov hasn't been updated in years - if at least 1 or 2 people are interested in updating it quarterly I'll pitch in and set something up on aws. Would be nice to add a discussion board for each item too.


The awesome Java PathFinder[1] (a model checker for Java) seems to be missing.

[1] http://babelfish.arc.nasa.gov/trac/jpf


I find the cFE , http://sourceforge.net/projects/coreflightexec/files/cFE-6.4... pretty interesting - used as a base for actual spacecraft software, such as the LRO, LADEE, ATLAS and many others.



I dislike that they link to the full legal license without explanation or comment. I cannot read legal it makes my brain hurt. As a commercial closed-source software developer (aka leech) I just want to know can I use it?


See https://en.wikipedia.org/wiki/NASA_Open_Source_Agreement

OSI says it's an open source license, but FSF says no. In your case, I'd say you're in the clear, since you're clearly making an “original creation” in NASA terms.

Does anyone know why NASA's open source code isn't in the public domain like it's supposed to be [0]?

[0] https://en.wikipedia.org/wiki/Copyright_status_of_work_by_th...


>Does anyone know why NASA's open source code isn't in the public domain like it's supposed to be?

That only applies to works done by federal employees. Most of the coding is probably done by contractors, who are not required to release their work under public domain. However, it seems NASA might have made it a part of the contract to release the code under an open source license.


Exactly what we needed for our Kerbal Space Program softwares!


How long has NASA had this project and subdomain up?


unreadable with JS disabled ... wonder why that is


Because they're using AngularJS, apparently.


At first sight, I read code.NSA.gov. I had to read it at least 3 times to see it was NASA.


This is truly awesome.


You guys wanna make sure it crashes at run-time?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: