By my count, six of the sixty projects cited were initiated by the amazing Armin Ronacher (aka mitsuhiko), whose genius for designing and implementing clean, intuitive library interfaces has, for the past decade or so, been a boon to the world of open-source software development. Kudos to him.
[*] click, flask, itsdangerous, jinja, markupsafe, and werkzeug
Armin's work is great but I'm curious if the Mars rover really implements a web interface? Are all the boto AWS libs just dependencies of opencv with its mess of supported data sources? Why are they deploying unit testing code to Mars? Given the 28 minute average round trip time between Mars and Earth for a light speed signal, they can't realistically be running distributed workloads partly happening on Earth.
All the PKI libs are amusing, too. JPL isn't sending signals to Mars via public networks, are they?
It looks like Python libraries are somewhat over-represented here because they credited every library in the Python dependency graph, but didn't do the same for dependencies in other languages. For example: lxml depends on libxml and libxslt, which are not credited.
The reason for the discrepancy is probably the lack of a straightforward, programmatic way to view the dependency graph of a C library. But they could have probably gotten a pretty good approximation by looking at Debian package dependencies (e.g., 'apt-rdepends python3-lxml').
This would massively expand the credits, but that's sort of the point here, no? (i.e., to celebrate the massive tapestry that is the open source ecosystem.)
I think part of that is because these libraries do not live on github, or have different identities attached to them (different email addresses like @gnome.org for libxml2 stuff).
It is essentially a hard problem, one that ohloh.net (now openhub) tried to make fun a while ago, to encourage people to claim their own contributions to tie their identities together.
I do wonder if they could have used openhub data to improve identity links though. Still doesn't solve the dependency graph lacking.
> All the PKI libs are amusing, too. JPL isn't sending signals to Mars via public networks, are they?
They're using radio waves so yeah, it's public. In fact I suspect the protocols are pretty much standardized because why reinvent those wheels?
I'm sure there's some blog post at the bottom of an internet rabbit hole where someone figured out the protocol, or just knows it, or is the one who invented it.
It's not a defense thing, NASA may well have published the details themselves. In fact, that's pretty much the point of NASA.
The CCSDS provides full access to all their recommended standards on their website ( https://ccsds.org )
There are some recommended standards published regarding crypto and security: "Security Architecture for Space Data Systems" (CCSDS 351.0-M), "Space Data Link Security Protocol" (CCSDS 355.0-B) , "CCSDS Cryptographic Algorithms" (CCSDS 352.0-B), and others.
And to wrap up, they also have standards regarding deep space communications inside "Radio Frequency and Modulation Systems—Part 1: Earth Stations and Spacecraft" (CCSDS 401.0-B) https://public.ccsds.org/Pubs/401x0b31.pdf which has been an active recommended standard for over 30 years now, so everything currently operating at Mars (NASA, ESA, and the China National Space Administration (CNSA) are all participating in CCSDS) is likely conforming pretty closely to the radio communications standards in CCSDS 401.0-B
Overall its a pretty amazing amount of detail provided by them, a real wealth of technical information regarding spacecraft operations and engineering.
The airwaves can be intercepted, sure, but that isn't what I mean. I've done quite a bit of work that involved ground processing of signals from government owned spacecraft and all of it was encrypted using pre-shared hardware keys, not PKI. Granted, that was military applications and maybe JPL and NASA don't have the same security requirements, but seemingly they should? Maybe the Mars rover is less of a desirable attack target for a nation state adversary than a spy satellite, but it is a pretty expensive project you would seemingly still want to protect as much as you can.
I suspect the data streams are readable but the commands are encrypted, I mean satellites would be dropping out of the sky left and right (proverbially?) if that wasn't the case.
Ironically, people hated the contribution graph stats because it gamified code contributions, and now we're introducing "achievements".
This is kind of neat as a one-off, but it seems like it'll get weird with scale. Isn't it disappointing if your code is on the rover but you don't get a badge because your code isn't on the helicopter?
I've started making a decent amount of commits to a public repository, and I almost feel embarrassed having my stats there because the commits have been rather marginal. I wish there was a way to block the specific numbers or block certain repositories from filling the stats.
> I wish there was a way to block the specific numbers or block certain repositories from filling the stats.
This is somewhat related, but I'm working on impact based metrics that doesn't focus on commits, but is based on a contribution formula that I'm currently working on. You can get a sense of how the formula works by switching to the impact view in the following link:
As a side note, if you want, DM me your public repos and I'll add them to my public index list, as your contributions might have a greater impact that you may think. Plus it will provide me with more data points for refining my formula.
First, yes, commits is a terrible metric, because it lacks both the nuance of the size of commits and the substance of the commits. Also different projects have different norms around commits. Some people commit each step along a process, some force-push updates to their branches so a given improvement sits in a single commit. There's no good direct comparison between work across projects.
That being said, don't feel like "rather marginal" commits is unhelpful. Support, docs, and tweaks are woefully undervalued parts of public projects, and you don't have to be building core features to be a big part of adding to the long-term success of a project. Don't sell yourself short.
And on the flip side, I got the badge because I have a few commits in the Linux kernel, even though the code I touched is almost certainly not compiled into any of Ingenuity's systems. Feels a little undeserved.
Sound like the National Defense Medal you get in the US Military if you served during an ongoing war, regardless of what you did. I think it's the only medal you can get before you even finish boot camp.
It's called the Pizza Stain medal for a reason. Service-members are still eligible for it 20 years later, handily beating the Vietnam's 13 years of eligibility. See also the GWOT [0].
I think it's important to remember that the people who "hated the contribution graph stats" were the people who specifically complained about hating them. Many multiples of that number of people comprise the set of people who were indifferent about them + people who liked them. (Probably a lot more in the first subgroup.)
It's selection set bias. You only heard from the complainers, making it seem like "everyone" disliked them. I think the contribution graphs are cool, and so are badges/achievements.
Hi! PM at GitHub here. This achievement only accounts for packages used for the Ingenuity Helicopter, as it celebrates the first ever powered, controlled flight on another planet. Based on the article you shared, FFmpeg was used on the Rover.
It's informative to think about what is missed in the listed dependencies (https://docs.github.com/en/github/setting-up-and-managing-yo...), such as C and Fortran libraries vendored within NumPy and SciPy, packaging infrastructure like pip, interactive tooling (Jupyter, editors/IDEs), compilers and build systems.
The pace of innovation would have slowed. Some projects that didn’t succeed would have thrived and others that did succeed would have failed. I don’t think it would have fundamentally altered the trajectory of technology, just the pace and environment (which is still amazing but let’s keep things in perspective).
Looking forward to reading on haxx.se about how someone contacted Daniel for help with their Martian helicopter that, according to the manual, runs curl.
It would be nice if GitHub could allow opting out of all future achievements things so folks don't have to do it manually every time there is a new achievement.
Would also be nice to know what I did that counts for each of the achievements.
You say "a lot of", but the statistics say "a statistically insignificant percentage". I'm all for designing your static webpages with no need for JS, but the claim that a lot of people have it turned off is demonstrably false.
Anyway, hovering on an image to get a description shouldn't need javascript, that's an alt tag that is definitely supported by anything but hobby project browsers.
> the claim that a lot of people have it turned off is demonstrably false
Not unless you've taken a concrete definition for "a lot of people".
Even 1% of internet users is still a lot of people IMO. Like, on the order of tens of millions, right?.. That's bigger than whole countries.
Also keep in mind how outraging it feels to find yourself in that 1% that someone decided it was fine to ignore and discriminate against the mainstream. We all been there.
The group of people (and their choice of browser and it's possible security related constraints) accessing github probably does not correlate 1:1 with "all of the world"?
If Google could make a few cents from every comment on HN disparaging JS they wouldn't have to show us ads anymore
(edit: I realize there are legitimate reasons to block JavaScript so I just wanted to clarify this is a joke and I don't mean to insult OP, just commenting on how often this discussion pops up in comment sections here and how predictable they all are.)
I wonder why they chose to use Kernel 3.4 on the helicopter (https://docs.github.com/en/github/setting-up-and-managing-yo...). I wonder if they'll ever upgrade the kernel aboard -- it seems like they can do upgrades, given they have Python 3.9.2 aboard.
An aside -- I'm surprised how much Python is aboard. It seems like they're using Python + OpenCV for something. I'm particularly surprised by Boto. Perhaps this is the beginning of the newest AWS region -- mars-1.
Presumptively not all this code is running on Mars, but some of it in Mission Control to deal with data coming from the helicopter. Either that, or they’re running Flask on the helicopter with some really large timeouts set.
[*] click, flask, itsdangerous, jinja, markupsafe, and werkzeug