For what it's worth, there is a lot of movement in the Federal government to open source code that is written for the government. The GSA, which is the kind of meta agency that helps other federal agencies do stuff talks a lot about this. They also have a site called https://code.gov/ that lists open source projects created for the Federal government. A lot of their own repositories are completely open source and they do development in the open.
I work on a contract for the CDC and we open sourced an older version of the software we display data on maps in: https://github.com/CDCgov/CDC-Maps
I'm working on switching our development to open so we use the same codebase that is available to everybody and adding other visualizations. It's slow going but there is movement there. I do agree it would be beneficial to fund open source projects, likely by including some requirement in contracts.
I think them funding projects directly with cash could cause a lot of problems though. The increase regulations that would need to be added would probably not be worth it for open source projects. People who get funding would likely need to submit a lot of documentation, there'd also probably be weird rules about non U.S. citizens etc... and laws would need to be passed.
Brookings seems to be advocating funding open source IT projects that already exist, for example a big ($10m+) check to the Apache Foundation. Apache already has the compliance competency.
It may be more efficient to use existing grant writing for universities. The Apache Foundation can redistribute the money it can’t hire programmers competently the way a university research department can. However it would be bigger impact to write smaller checks for many tools.
The real problem is that single purpose / single feature IT software tends to be the best at what it does but is the hardest to fund this way.
The compromise will probably be funding people to write and evangelize standards. This is too bad, because people who apply for grants aren’t Google, they aren’t standardizing an existing, widely deployed real piece of successful engineering without any economics brakes. They’re people writing things like SOC 2 or ISO 27000xxx that arguably do not provide any meaningful value at all - standards that could vanish overnight and absolutely nothing about a single person’s daily life would change at all.
18F or whatever publishes a lot of stuff like this. Markdown policy documents. I think it’s profoundly wasteful, it is taking talented people’s intellectual energy and diverting it to something that not only hardly anyone will use, but perpetuates the worst aspects of government - the belief that text and bureaucracy and the way lawyers do things is intrinsically valuable, as opposed to something normal people routinely completely and utterly ignore.
I'm not sure who I would trust, but I don't generally trust university research departments to produce high quality, reusable software. Not that industry projects produce consistent quality software either, but fewer of those projects are open sourced.
While I agree with your, let's call them reservations, about the quality of said software written by scientists who are not professional software engineers -- I still believe it would be a net benefit to the world if Congress tied all federally funded research dollars to an open source license, up to and including disclosure on hardware specifications and firmware source code.
I've got a friend on the data science/visibility team at CERN, and she has some fun stories. It's absurd to me that the reproducibility path for so much modern day research in nearly every field passes through proprietary closed source software, proprietary pre-compiled signed binaries, ditto for firmware, and then (sometimes) hardware where the entirety of the documentation consists of 'A service contract with the vendor'.
The reproducibility crisis in the sciences right now is essentially an excess of inputs and deficit of testing those inputs -- closed source hardware/software is not helping.
Sure, but there is no reward for research departments to produce high quality code. Their job is to experiment and publish, maintainable bug free(unless it effects their code) doesn't get rewarded.
With that being said there are tons of high quality open source scientific computing projects e.g. lammps, abinit, dakota, Deal.II which are open source, ran by people at government research labs and universities and funded by e.g. NSF which work really nicely and are (I assume) quality software products. I will note that the Europeans seem to be better and producing these kinds of works than the Yankees.
One wants to get something that is worthwhile, of course. It would be fairly easy to vet existing projects and codebases for their quality at a high level. Mostly at a binary level, with the goal to weed out total junk.
Like a license, I think it would be nice if projects adopted a development guideline, code formatting, the commit, code review, merge process, etc. So that everyone can have a common set of known operating norms around how that project is developed. It would be a lot easier for a funding organization to review if that were in place. The Robert's Rules of Code Review. Bonus points if this were all encapsulated into an automatic process.
I think there is a ton of value in funding projects (Apache,Rust,Blender,etc) as well as individuals. It would be wonderful if someone could go on sabbatical, full or part time and get paid to work on OSS. Maybe you apply for a grant, show them the git repos (process above analyzes), one has a plan (fix bugs, new features, evangelism, tPM, etc) for the time and with time with the bare minimum of goals. Like an agent can watch your activity log and do a roll-up.
I think 50k a year would be a number that many technical folks making much much more would jump at the chance to just work on OSS.
> Sure, but there is no reward for research departments to produce high quality code. Their job is to experiment and publish, maintainable bug free(unless it effects their code) doesn't get rewarded.
This isn't completely true. I'm familiar with at least few projects which got grants specifically to build tools for other scientists and those were great for funding general software engineering jobs not tied to the usual academic publication/job cycle. That was good for supporting ongoing upgrades — nobody gets a publication for upgrading a dependency, which is how you end up with someone keeping a Windows 95 box on life support for years because they were focused on science – and also for supporting things like good documentation since that's a serious time commitment.
It'd be an idea to scale up things like that for identified high-impact projects, with the trick being finding someone capable of overseeing software engineering rather than the usual academic focus of existing grant panels. Seems like something which might be a fit under the Commerce department since there's a lot of stuff which American businesses benefit from but generally do not directly support.
You're a right, it isn't completely thankless. And it was suggested to me as a great way to increase citations was to write my algorithm to work in LAMMPs. Nevertheless, I looked at the risk-reward (and also considered the algorithm I was working on worthless and decided to punt).
Oh, I completely agree. The projects I saw were considered novel for actually getting funding for staff engineering positions which didn't follow the regular academic track. They had to do that to get the right people since the grad students were heavily incentivized to focus on things which would get noteworthy publications and you couldn't get experienced software engineers on the academic pay scale unless you hit the unicorn of someone who was really interested in the domain and didn't like money.
There is plausibly an easy enough solution for this, if the grant structure allows/encourages departments hiring developers to help with this. If your primary source of labor for this is short term grad students with no expertise in software development, and not training mechanism, the results are predictable.
Another thing that works against this is a lack of academic credit for doing,overseeing, or steering the work. This also could change.
Changing the incentives can easily change the results.
> 18F or whatever publishes a lot of stuff like this. Markdown policy documents. I think it’s profoundly wasteful
I think you’re under-estimating the value of publishing a good policy from a respectable source within the Federal government.
Many of the government’s technology problems are actually self-inflicted policy problems. Publishing a good policy gives internal reformers a place to start. When the lawyers and security people start telling you no, it’s much more effective to say “actually this language comes directly from GSA, who approved it for X, which has the same compliance requirement you’re concerned about” than to simply protest that it’s industry best practice.
I do agree that this lawyers-first way of doing things kinda sucks. It’s certainly not the way to maximize tech success. But it’s the system/culture we’ve got. I’d love to hear ideas for changing it, especially if you can figure out a way to accomplish the privacy, security, integrity, and fairness objectives that the current system prioritizes.
A government agency struggling to serve the public good because it’s hobbled by obsolete tech is better than an agency enabled by cutting edge tech unshackled from the public interest and democratic legitimacy.
We wind up with a lot of political and business family dynasties despite the terrible incompetence of sons and daughters. Part of that is that families can operate totally without policies, that they are having horrible dynasty lawsuits because nothing is written on paper or litigated that way. Yet as long as they don’t sue each other, the lack of policy friction - a “liquidity” that may not show up as a dollar amount but as something else - makes the family dynasty surprisingly competitive.
Wouldn’t it be ironic that policies - specifically the hundred+ page markdown output kind of policies, not something succinct like I don’t know, the Ten Commandments or the Bill of Rights - make the corrupt family dynasty more competitive?
For what it's worth a large amount of the DOE work (where they have the super computers) is open source. You got ORNL (with Summit and soon Frontier)[0], ANL[1] (soon to have Aurora), and LLNL[2]. I think what needs to happen is that things could be better organized, for example ORNL has [3] which still open sourced but not grouped under the ORNL GH. Also if we got to code.gov and search "ORNL" and "C++" we only see DCA++ which isn't on the GH but here[4].
I think as long as code isn't sensitive to national security (LLNL...) it should be open source. But I think the big problem is that organization and discovery is very difficult. code.gov is an attempt to solve this, but it doesn't do it well.
And I'll add Idaho National Lab [5] to that list - particularly the MOOSE multiphysics finite element code [6] is a largish project with significant momentum/funding:
The funny part about a lot of the national security code at LLNL is that I bet there is approximately no one else on the planet with the computing resources to actually run it (HPC simulations of weapon effects) Except the few countries that possibility could are exactly the ones we wouldn't want to get their hands on it... funny how that works out.
Just remember, what was the actual reason ENIAC was created? It wasn't just for fun:
>its first program was a study of the feasibility of the thermonuclear weapon.
I work on a contract for the VA, which includes open-source repos [1] for VA.gov's frontend + backend systems. We work closely with USDS [2], who has been a huge ally in advocating for doing our work in the open, including our project management. It seems like GSA does a lot of similar advocacy work, though I haven't interfaced with them directly.
One interesting thing we've run across is that Public Domain source code is not considered "Open Source" in terms of OSI licensing [3]. This isn't usually relevant, but has blocked use cases like software services offering free use for OSI-licensed projects.
(To other readers: If you're interested in chatting about working on modern, open-source projects in the federal space, drop me a note! Email in profile).
The reasons look to more nuanced than that article (especially for government work) but the crux AFAIK is that public source is not a license, so there is no license that the OSI can approve. From https://opensource.org/faq#public-domain
: There are certain circumstances, such as with U.S. government works as described above, where it is not easy to apply a license, and the software must be released into the public domain. In these cases, while it would be inaccurate to display the OSI logo or say that the license is OSI-approved (since there is no license), nevertheless we think it is accurate to say that such software is effectively open source, or open source for most practical purposes, even though it is not officially released under an open source license. (This is assuming, of course, that in the laws of releasing jurisdiction the meaning of "public domain" is compatible with the Open Source Definition.) After all, the freedoms guaranteed by open source licenses are still present, and it is possible for the familiar dynamics of open source collaboration to arise around the software.”
The next FAQ heading explains that the CC0 license was not OSI approved due to its patent clause.
Public source does have its issues with some jurisdictions, but surely jurisdiction problems are no worse than the specific problems each other license has.
One other issue with the public domain and the USA govt is that while US govt works are public domain in the USA, they can, at the same time, be copyrighted by the US govt outside of the USA. So public domain in the USA but proprietary outside of the USA.
This is the VA we're talking about, so they can't do that unless congress changes the law. All works produced by direct employees of the federal government (ie not contractors) are in the public domain. (https://en.wikipedia.org/wiki/Copyright_status_of_works_by_t...)
Hey, I just sent you a connection request on LinkedIn. Definitely interested in learning more about your open working experiences. I'm really surprised that they're also including project management with that.
> I think them funding projects directly with cash could cause a lot of problems though. The increase regulations that would need to be added would probably not be worth it for open source projects. People who get funding would likely need to submit a lot of documentation, there'd also probably be weird rules about non U.S. citizens etc... and laws would need to be passed.
I think 18F's modular contracting methodology is highly effective for this sort endeavor, if you can take the opinion that they're the sponsor and benevolent dictator driving that part of the codebase (and the code developed is open sourced upon confirmation acceptance criteria has been met).
Thank you for switching to an open development model. A rising tide lifts all boats.
Nice link, I've followed 18F a little and I'm interested in everything they're doing.
I think whipping contractors into shape is the easiest path to increasing government participation in open source. It's easier than coming up with new regulations specifically around open source funding.
Billions of dollars are spent each year by the federal government on custom software development anyways. And on the whole, they end up spending about what big tech companies do for engineers (but not getting the same level of quality) Forcing the contractors to be more open will probably keep them more honest and make them write less shitty code.
I think the contracting model (which has it's place!) is really at the root of the problem. The time for contractors is when you need something that is very rare in the world or you need a large temporary expansion of capacity.
A lot of government contracts are the kind of work that will be consistently taking place over decades and can be done by any of hundreds of thousands of similarly competent people. Imagine if you didn't even need to write a contract, didn't need a bidding process, that could be substantial time and money saved on its own.
Then with FTEs minor initiatives like finding interesting internal libraries to open source can just happen. What I'm saying isn't a new idea (really it's an old idea) and I very much admire those who are actually taking the risk to make this kind of thing happen because the failures can be very visible and successes sometimes aren't.
I found a small bug in a GSA site (plainlanguage.gov) and was able to PR a fix that was merged almost immediately. It's a shame that we can't do the same with all of the bugs in other government websites.
The work we do for the VA is open source! I am a contractor working alongside the US Digital Service - there are a TON of projects out in the wild and lots of movement in the "Government should build open source software" direction.
It's definitely becoming more common. Many agencies have organizations up on GitHub where development of various products are done out in the open (for example, https://github.com/cmsgov).
I think one piece in federal scope would be school courseware. How many poor schools fork out for something to do forums, grades, homework submission, lesson notes. There's a ton of duplication and there's no point. Get one decent cloud implementation, host it, and scale for several million users. Then give all schools and students free access.
Moodle is GPL. The expensive part is training, not the license fees. Lots of teachers really need extreme amounts of hand-holding, even younger ones who have been using websites for their entire lives. (And you can replace "teacher" there with any other profession, including "programmer".)
Let's call it clearly, all educational software is badly designed. Moodle is no exception. It's not only different from the teachers mental model, it's also different from the students mental models, and administrators mental models, besides it imposes complex and low productivity workflows.
The newer proprietary educational portals are usually designed after Moodle, so it's not only bad, it's also trend setting. The good news is that this means they are better than the old ones from before people had something to copy.
I'm a professor. Our department has run its own Moodle for years, despite the university switching to Canvas. The university has exerted lots of pressure and this is the first semester in which all classes are primarily on Canvas. There has been no end to complaints about pedagogy that isn't expressible in Canvas, resulting in bad compromises or huge amounts of labor for large classes.
Bottom line: if universities could contract for support and pay developers a fraction of what they currently pay for proprietary LMS, Moodle (or another open source platform currently starved for resources) would have much better usability and student data wouldn't be in the hands of private equity firms.
CodeRunner, group scheduling features for interview grading, batch capabilities with mastery grading, and customizable grade aggregation, to name a few.
Canvas core is AGPLv3, but many important plugins are proprietary so I'm not aware of universities self-hosting.
I disagree. I use Canvas to teach, and while I could write a 100 bug reports, I wouldn't classify it as badly designed. There are many features I do want, and I hope they get implemented at some point, but it's definitely over the threshold of good software.
As a student on Canvas this year and Sakai last year (and Blackboard before that), I can tell you that Canvas is atrocious and easily the worst of the bunch.
Just so I'm not making an empty comment, here are a few quick complaints:
- Confusing differences between calendar vs module views that differ from class to class depending on where the professor tries to put things
- Zoom is shunned to its own tab rather than integrated with the calendar, causing students to constantly ask each other for the password for every session
- Everything (tests, midterms, homework assignments) is called a quiz, and it's often unclear what is going to be graded or what allows multiple submissions until it's too late
- Notification settings are terrible and most people stick with the settings they set in the first week, meaning some of my classmates are just now realizing they've been missing announcements or grade postings
- If I get an email that a teacher has released grades, I have to go to Canvas to open it - and sometimes it's not even true
- Notification counts are ignored because they appear even on things I've already seen but just not clicked on from the "home" view
- Replies to my own discussion posts are mixed in with replies to everyone else's posts, meaning no real discussion is had
> - Confusing differences between calendar vs module views that differ from class to class depending on where the professor tries to put things
This is actually a feature, not a bug. Courses are wildly different, professors think wildly different. I would not want the software to shoehorn everyone into the same schematic. After all, in-person courses are organized in wildly different ways. You just have learn and communicate.
> Zoom is shunned to its own tab rather than integrated with the calendar, causing students to constantly ask each other for the password for every session
That is a misconfiguration on your uni/prof's part. If they do it right, every calendar entry should a zoom link with the password included, resulting in one-click joining of class.
> Everything (tests, midterms, homework assignments) is called a quiz, and it's often unclear what is going to be graded or what allows multiple submissions until it's too late
Are we using the same software? If you click on any assignment it clearly shows every one of these things at the top. I just checked in student view.
--
I completely agree with your comments about notification settings. Also, the email system within Canvas is atrocious.
The calendar entries for the professors who use the Canvas Zoom feature don't have Zoom links (I assume it should be in the location?) - the only classes in my schedule that have working Zoom links have them copy/pasted into the event description, where the password has been embedded in the link.
And this is what I see at the top of two of my next submissions:
Due Monday by 11pm / Points 30 / Submitting: a file upload / File Types: pdf, doc, and docx / Available until Oct 20 at 12pm
Due No due date / Points 1 / Questions 1 / Time Limit None
Neither says how many attempts I have. I believe the file upload has unlimited re-uploads and the latter only allows for one submission, but I really have no idea how to confirm that without risking it.
If they use Canvas Zoom to schedule all classes, if you hover over a calendar entry, this box pops up https://imgur.com/lIQk5am and you can just click the Zoom link in description. The prof does not have to manually copy-paste anything anywhere.
If there is still trouble in your courses, ask your prof to paste the Zoom link with password on the hompage of your Canvas course (they can add it as first module item if using Modules as homepage)
As for the submission issue, I think Canvas will only tell you about multiple or unlimited attempts on an assignment if you have them. If only one attempt is allowed, then it says nothing. I agree that this is a bug.
Are they using the Zoom LTI or doing something themselves? The Zoom LTI automatically adds links to the calendar and the front page schedule view (I can see them right now).
Also, if you click on an assignment you should be able to see attempts allowed in the top view. If you can’t then your teacher may be hiding it (or you only get one). If they are hiding it, you can still see it through graphiql if you feel like looking (your-institution.instructure.com/graphiql)
I guess that further bolsters the point that FOSS isn't a cure-all for ed tech. A for-profit company that can reduce training costs by half would be much cheaper than a FOSS solution that requires more training.
FOSS movement is dominated by geeks. Fine with me, I am one as well. But the relative dearth of artists and UX designers results in very well written software that users struggle to use.
Sure, but training (and, I guess, support, but in the "helping users" sense not in the "installing patches/upgrades" sense) is the vast majority of the expense.
I remember talking to the whoever was developing moodle at the time about 10 years ago and he didn't like the "MVC" pattern because it had too many files.
It took forever to implement at our organisation (it was a non-profit) and was generally a waste of time.
I'm not saying that yours is a bad idea, but the lobby for companies who make the existing software in that space would likely disagree with that position.
In the 00's I was part of an effort to merely get the State government to consider OSS.
The lobby was powerful and effective.
Despite broad bipartisan support (we did a great job educating legislators on open software and open data and how that resonates with the work of the public) our house speaker blocked it solid.
Had there been a vote, it would have passed.
Tons of people lobbied that speaker for literally months. Fax, phone calls, visits to her office, the works.
4 guys in expensive, black suits, and some number of zeroes to the right of a donation got it done.
For what it's worth, the same group was successful in part of removing that speaker from office.
The damage had been done. It was hard to even bring the matter up in committee going forward.
I too was involved in OSS wrt Government in the early 2000s and Office file formats were a huge moat that prevented a lot of adoption of OSS within government.
MS did a really good job of pushing off web technologies as threat to their platform. We are only now getting to where we should have been. Netscape was way too naive and MS saw two or three steps ahead and blocked their move.
> While some FOSS contributors are paid by their employer to contribute, most contributions to FOSS are made without direct compensation. Therefore, another option is to provide tax credits to the people who volunteer their free time to help create and maintain FOSS. A bill for such a credit has been introduced in the New York State Assembly every legislative session since 2009 but has never made it out of committee. If passed, this bill would provide a $200 tax credit for expenses related to FOSS development, which would help incentivize more individuals to contribute, likely leading to spillover benefits for the state of New York similar to those from the French procurement regulation.
It's like Hacktoberfest, but instead of a free t-shirt it's $200.00 off your tax bill. What could possibly go wrong?
Hacktoberfest learned the lesson, just have the project agree to participate. (Or say that you only get the credit if the development was for a foundation, like Apache or Mozilla)
One problem with this approach is that you need to know about the existence of the software in order to craft a FOIA request such that you can see the code, this can mean sending multiple FOIA requests. Combine that with the delay in fulfilling a request, on the order of months, or sometimes longer, and you could be looking at a year or more before you get the source code you were looking for.
Work done by US government employees as part of their official duties is in general not under copyright within the US.
But that is a much narrower statement.
Most software developed using government funds is not exclusively developed by government employees as part of their official duties. Most Government funding of software development goes to contractors, where that rule does not apply.
The no copyright only applies to the US, not necessarily outside. Outside the US it definitely can have a copyright.
There are also some weird exceptions for government employees, specifically for the u.s. postal service and for certain materials created by NIST.
You can absolutely make a request. If you are interested in the software, go ahead. However, the Freedom of Information Act only applies to records, and software is not always considered a record.
So Freedom of Information Act request will work if they're already predisposed to release the software, it's no guarantee.
My understanding is that that only applies to software written by government employees. Put more rhetorically: if the government pays for Windows (which it does), does that mean you can access the Windows source code via FOIA request?
It's paid for by the people of United States, but if made Open Source in the conventional sense it's going to belong to people of all the countries?
People of all the countries are not a problem, but governments that are in political opposition to the US can be. I could imagine them using the source code to target technological and social structures of the country. They could do it now as well, but with much more effort than cloning stuff from GitHub.
I would suggest that the government does not directly fund existing OSS development, unless it's using said OSS and wants to buy development of a particular feature
I would suggest that the government reimbursed 80% of small contributions, e.g. below $300 a year per project, and matched larger contributions, e.g. up to $3000 a year per project.
As always, when an influx of free money is involved, cunning criminals would try to siphon it out without producing useful software. This is why I would limit such contributions to small amount per individual contributor.
It makes really easy for a large enough group of fans fund a popular project for free, and double their larger contributions, without the government choosing the projects. It also would still require spending money, or just effort, to donate, so donating just for kicks is limited.
Also worth considering is open source software grants for academics. This would increase the number of people in academia who are major contributors to open source projects. Added benefit would be that, as practicing software engineers, those people would be good at teaching software engineering to their students.
The government should make open-source software, paying developers handsomely to do so.
I know I live in cloud-cuckoo fantasy land here, but I know plenty of developers that would love to work on projects for the civic good, but they don't because they also want to earn good money so that they can live comfortably, raise a family easily, etc. etc. So they go and work for Facebook and Google, etc.
There's an inbuilt assumption that government can't or shouldn't ever compete with tech giants for salary. But look at the incredible sums of money wasted on contracts with borderline useless consulting shops. You can't tell me that money wouldn't be better spent on hiring smart developers and project managers and just getting stuff done.
I know it'll never happen, but a developer can dream. There's no actual reason why it couldn't.
That's the ideal situation, but anybody that has worked in the public sector can tell you the outcome. You'd have an office full of incompetent people that are making $150k/yr just because they're a friend or relative of someone. That's a really big problem in government and there's no simple solution here. Even if you started doing background checks and not allowing partners/relatives of current employees to be hired, they would just get picked up as favors by other districts. A sort of friend hiring exchange program if you will.
It’s not like that doesn’t happen in the private sector as well, though. Literally can’t count the number of top execs you see parachuted into top jobs because they’re friends with the CEO.
There are USDS and 18F, that were initially populated with ex-Googbooksoftlix engineers. Of course, everyone with a brain left USDS after Trump was elected.
How does the licensing work? According to the GPL FAQ[1] code written by government employees is public domain and can't be licensed with the GPL. I'd imagine similar restrictions would apply to other copyleft licenses.
Most code written for government use is not written by government employees, but by contractors. Here's the second paragraph from the section you linked:
"However, when a US federal government agency uses contractors to develop software, that is a different situation. The contract can require the contractor to release it under the GNU GPL. (GNU Ada was developed in this way.) Or the contract can assign the copyright to the government agency, which can then release the software under the GNU GPL."
For a non-American, it is amusing to see Americans believing that their Congress are the people's servants.
Unlike other developed democracies, the U.S. is a country where bribing the Congress is actually legalized, in the form of campaign donations. In fact, the main work of most congresspeople is to run after money to finance their next campaign. Therefore they will serve primarily the ones that pay them, not the ones that elect them.
When open source bribes politicians then they'll pay attention.
As a european, to me it’s amazing the amount of disinformation we’ve been fed about how the US works.
Spend enough time in both continents and you’ll see that the proposition that the US is somehow more corrupt is not only disingenuous, it’s also probably dead wrong.
This is only perception, but it's still pretty interesting and useful.
FWIW according to that the US is more corrupt than some European countries, less corrupt than others. You can probably even guess the countries that are less corrupt and more corrupt in Europe.
> Unlike other developed democracies, the U.S. is a country where bribing the Congress is actually legalized, in the form of campaign donations.
That's not remotely true. It is illegal to actually give any gifts to any government official (including elected officials). This extends in practical effect to "we have to charge the DoE for coffee when they're doing a site visit."
You can donate to political campaigns--just as you can in every democratic country I'm aware of. Candidates can solicit donations--just as they can in every democratic country I'm aware of. What's atypical in the US is that the party structure is incredibly weak (which means you get less relative funding from party sources, and therefore candidates have to get more funding from fundraising), and elections are so eye-wateringly expensive that you need to spend more time fundraising to be competitive.
Those numbers are just what they're spending on staff doing lobbying around the country, right? Most of those don't seem too crazy. Like the AARP is spending $3 million, but how many lobbyists is that actually employing? 10?
For a company that made $180 billion in revenue, $16 million is only .009%. I'm not denying that lobbying is effective, but there's clearly a limit.
There are probably thousands of individual government regulations that each could cost AT&T more than $16 million per year. If lobbying was as powerful as some think, why don't they lobby even more?
As someone who doesn't live in the US, I should tell people here that legalizing "bad" actions can be a net good. The lobbying market is big, and you can't extinguish it; You can only make it a black market. This makes the laws more suited to the interests of "shady elites." Consider that Google serves the whole world a very valuable service; What do the corrupt beneficiaries of most other countries do? They have near zero output.
Yes and that doesn't mean that legalizing it carte blanche is a net good either. There are important pieces of legislation missing around controlling how and when politician's can fundraise. Most normal countries legalize lobbying & restrict electioneering to a ~3 month window prior to an election. Additionally, they usually line up election cycles so that you're only having an election every 4 years on all parts of government.
America has no such restrictions. Members of Congress & the President start running & fundraising now ~2 years before an election (& unofficially before that). For the House of Representatives, that means members are in an electioneering & fundraising mode non-stop. The staggered election cycle in the Senate means that a large portion of the Senate is constantly campaigning further making focusing on the act of governing difficult. Fixing these issues doesn't solve all problems obviously but making no reforms isn't going to improve things either.
Lobbying as “too big to fail” is an interesting argument, although your “black market” argument could be made for pretty much any law. On the other hand, we know that legislation and court decisions have a large impact because we’ve witnessed the results of McCain/Feingold and Citizens United. At the same time, we can observe how other democracies manage the same issue.
“black market” argument could be made for pretty much any law
Not the OP, but ... murder or genocide is very clearly a crime, while lobbying starts with "talking to an elected official about laws that concern you", which is sorta normal in democracy, the elected officials should be available to talk. It only becomes problematic if it is overdone or done too secretively.
I think that a good and transparent lobby register is probably more useful than outright ban; at least an external observer can glean some information from it.
> while lobbying starts with "talking to an elected official about laws that concern you"
For the purposes of discussing government corruption, "lobbying" mean "talking to an elected official about laws that concern you, with the implication that their response will affect how much and in what direction you use money to pervert the electoral process". (Obviously, corporations generally don't actually explicitly say that part, because plausible deniablity.)
What you describe is more the contrapositive of 'legalizing "bad" actions can be a net good.', in that it's "illegalizing 'bad' actions can be a net bad".
Lobbying is already legal, and is mostly a bad action; but if we make it illegal, it will create a black market that isn't regulated. It's the same problem (one of many) that the "War on Drugs" had, in that any activity that's illegal tends to be unregulatable. It also attracts to the market for people who are already doing illegal things.
I think the root of the problem is that politics in the US (and in most other places) is a popularity contest; it attracts people who are charming, lie effectively, and who's goal is to be popular. They, of course, have other goals too, but having the accolades of the represented is a requirement, and people that seek that status end up drawn towards politics.
Just to be clear about the law, there is a limit of a couple thousand bucks on campaign donations under the federal election campaign act.
The issue is under the first amendment, the government is not allowed to curb speech by people or organizations advocating for a candidate as a third party (which people can contribute to instead).
Campaign finance transparency is a complex problem.
Of course, having a president who equates civil fines for late paperwork with criminal prosecution for dispensing hush money as equally benign "process crimes" is a major problem as well.
Big movement in Iceland on this. Ministry of Finance has multiple teams working in a shared codebase that is open on github, that is supposed to be a shared repository to aggregate the whole gov user experience in one place (island.is). Another example; I’m using an NLP library (Greynir) that was recently MIT licensed because of Icelandic government grants (was previously on a less liberal, but still open license).
As the author of a moderately popular open source project, I have to agree. Whenever the government intervenes, they tend to distort markets and cause a huge amount of suffering.
They will end up funding low quality competing projects which will harm my project by using money and media coverage to steal attention.
That's basically the story of my career. The government, working with corporations have been ruining my career so far.
I would be much better off if VCs and governments had stayed out of our industry entirely.
The government has shown time and again that it's terrible at investing. Most people/entities are when they're spending other people's money. This would result in the same issues as all government spending does - the powerful Reps and Senators will funnel money to open source projects in their districts and to their donors. We'll see a lot of open source projects in Kentucky get funded because of McConnell. Liberal & Democrat based projects will see little funding as Republicans block their funding. It would be a mess.
Debatable.
Venture capital in the technology market hasn't shown consistent return on investment in terms of revenue.
Contrawise, the interstate system and the CCC were effective government investments.
This would be a very big deal in my industry - civil/environmental engineering. In the river/stream flood modeling space, the US Army Corps of Engineers' HEC-RAS program [1] is king. It's a critical part of FEMA's National Flood Insurance Program. HEC-RAS is free, but it's not open source, and USACE doesn't appear to have any plans to make it so.
HEC-RAS is a Windows-only GUI application. Supposedly USACE has an internal Linux version, not publicly available. HEC-RAS has a limited COM API, but it's not officially documented. I suspect that the API was exposed unintentionally. Most of the input files are text, but the format is very strange (very old-school), again with no official documentation. I spend much of my days reverse-engineering HEC-RAS file formats in order to make the process of building flood models more efficient and less error-prone. Other developers like me exist at competing civil engineering firms, working on similar reverse engineering projects and secret sauce tools for HEC-RAS.
If HEC-RAS was made open source, it would be a game changer. We'd be able to accomplish so much more. If the input/output files were officially documented, it would be a game changer. FEMA would benefit tremendously.
Hi, I sent an email to the team in the listing to see if they can provide additional information about the file formats involved in HEC-RAS. Finger-crossed.
Based on your username, you're at US Digital Service? Thanks so much for taking to time to reach out. Glad to see they released a Linux version of the rasUnsteady64 executable! I was able to run the example on WSL! It wasn't there the last time I looked, for sure. There's a lot more to HEC-RAS than that, but it's certainly the most important component.
Mike Bannis has done great work wrapping the HEC-RAS controller and creating parsers some of the file formats. There's a very helpful _unoffcial_ book [1] laying out the win32com control and file format details. Making HEC-RAS open source would allow many more projects like these, with significantly less guesswork.
Yep, I'm with USDS. It's not a problem, I'm glad to help if I can and civil engineering is a bit out of my depth.
Are there anything specific about the formats I should be asking for? I'm assuming there are hundred of different file formats (input and output alike). If I knew more about the file formats, that may make the conversation with the team easier.
This sounds good as a soundbite, but how? Knowing how federal bidding works in general I can't imagine the funds being used constructively, it would end up as some kind of popularity contest.
Put 10 million a year for 5 years as an experiment. It takes an extra administrator and some part time experts in the field who are compensated for the work.
Is that any different than any other "government funds X" proposal? If this is a consistent problem, then government is just plain broken. Which is of course a problem, but an orthogonal one to software funding specifically.
Accessibility would probably be the biggest difficulty that might be legally required through poorly interacting laws.
(Not to say that things shouldn't be accessible, but we've already seen good-will gestures ruined because of this case. Some university posts lectures online to be nice, forced to take them down because they aren't accessible.)
The federal government has a requirement by law (called Section 508) that requires agencies to provide people with disabilities equal access to electronic information and data. Agencies have teams whose sole job is to evaluate any software that is built or deployed meets accessibility standards.
I've been a proponent of something here for awhile. For context, currently, gov requires something like 1% of budget to go to 'small' business (where small is < 500 employees!). Doing 1% to OSS would be huge, and get around the problem of NSF/NIH/etc. having to fund novel research but largely failing at common data infra.
The main sticking point I struggled with here is around beltway contractors. They already largely prevent good software from making it into gov. Today, they prefer to write their own crap or live on OSS without really giving back. Most proposals I thought about here would result in beltway bandits getting the OSS contracts without doing real passthrough to the actual devs. They're the ones with the contract relationships and can tell funders their OSS value-add layer is the part needing funding to make it gov-ready. Most folks in this community are nice as individuals, but due to the lengthy & uphill nature of pushing a contract through, they've locked down the system, and it'd take a tight policy & strong org to work around them. I'm not a fan of Linux Foundation, Apache, etc. as financial stewards either, so it's tough.
If congress invests in open source, it subsidizes all software development for the world.
If congress invests in software from companies (like MS or Amazon), it subsidizes software development for these U.S. companies to compete on the global stage.
I can see the first case being in the best interest of humanity, and the second case being in the best interest of the U.S.
"These U.S. companies" are not the U.S., they have international shareholders and employees. The rest of U.S. would benefit from better open source just like the rest of the world, especially now that so much of the technology stack relies on it.
Who would do this when a Software Engineer can get paid £400 a day working in the private sector and live well while saving money up for things like property or a new vehicle?
That is before we get into the potential problems of UBI itself. Which there would be numerous.
Europe is ahead of the curve here, wonder if anything they do influenced the Brookings institute to say this.
> This research shows that the passage of such a law in France led to as much as an 18% increase in the founding of French IT-related startups and as much as a 14% increase in the number of French workers employed in IT-related jobs.
If anything it should be the law that all federal software should be open sourced. This is after all created with the people's money. Companies that write it get money to write it but should ultimately belong to the people. We all know its never going to happen though.
Life isn't software engineering where anyone can just contribute. I literally had a conversation today with someone that thought Common Law was "Christian Law" and then called me Dumb when I explained where that didn't really make any sense.
I think we should have an National Science Foundation level federal institution for free software. Stallman advocated for this early on I think. The NSF funds fundamental research to the benefit of all (setting aside the issue of pay-walled journals...). Anyone can apply for a grant to fund research, and in fact this is how "soft money" researchers who are not tenure-track professors fund their salaries. Using the academic community as an anchor for a free software equivalent to the NSF would also solve the problem that academics have no incentive to develop or maintain software.
I've been saying that too, especially for the crypto space.
Everyone just has an incoherent mix of gaslighting regarding everything that went wrong, and inadequate regulation.
Governments can be helping contribute to industry standards, the protocols, the smart contracts that would help some industries function more seamlessly. A state-contributed escrow smart contract would basically fix the escrow industry. A backdoor in it would be laughed at hilariously within a day.
This would be a more collaborative role of the state and propel things forward much faster.
Don't we already do this via National Science Foundation (NSF) grants? A lot of open source has come out of them. If you look at academic papers associated with the source, you'll often see NSF grant numbers.
I'm biased seeing as I'm a software engineer, but this is actually a great idea. It could provide much needed competition to expensive gov contractors creating proprietary software.
Asking for government support is really an admission of failure.
It is an admission that the open source concept cannot survive on it's own merit in the marketplace.
It is asking government to pick winners and losers by way of funding, instead of the marketplace.
What could possibly go wrong? Everyone knows that government lives on the cutting edge of technology and will always respond instantly to the open source community --- rather than say corporate donors and lobbyists. They would never demand things be steered in their direction.
As they say, be careful what you wish for --- you just might get it.
If the marketplace controlled the interstate highway system, every on and off ramp would have a toll booth --- not to mention that the roadways would likely receive minimum upkeep.
Some things are simply unworkable under the "free market" and transportation is one of these --- but software is not.
Clearly there are toll roads and many other forms of commercially viable "free market" transportation, so your argument is that some forms of transportation demand public funding.
The same applies to software: like cheap and versatile transportation, libraries and infrastructure are force multipliers for commercially-viable and public-interest products. Despite such software being heavily used in industry, there's a lot that is funded from a combination of public sources (e.g., a side-effect of federally-funded basic research by groups with deeply-held open source convictions) and volunteer effort. This could be improved by direct public funding or by tax incentives for companies that contribute to independently-governed open source projects. Either way, it takes legislators recognizing that open source infrastructure has sufficient value to create policy that helps sustain it.
Lots of things couldn't survive on their own, but aren't failures at all.
For example, we're currently subsidizing multiple vaccines for COVID-19 because it's important that we collectively take on the risk that a single one might fail. Those billions in spending to pay for something that might be worth $0 is worth it because it's likely at least some of the vaccines will be safe and effective.
Sometimes things start out as unprofitable and then only later, because of those dollars invested, become profitable. Space, for example. Government investments in solar power have also been super important.
Or, more relevant to Hacker News, how about ARPANET being funded by the military, and then later that funding going to the National Science Foundation? Eventually, of course, it got privatized.
COVID-19 is a national emergency, open source is not.
Vaccines easily survive on their own merit in the marketplace. Government funding is being used to speed up the process and insure redundancy in case of failure.
ARPANET is another questionable comparison.
A world wide, failure proof network had never been done at the time so the military subsidized the basic research and development. Once the basic R&D was done, the funding ended.
I would be inclined to support new, innovative R&D but I am not willing to pay taxes simply to clone existing commercial software.
I'm not saying you should, for example, support changing federal procurement regulations to favor open source software (though the author makes a strong point). Or that you should favor tax incentives for them.
I was taking issue with your broader principle that "asking for government support is really an admission of failure." In fact, subsidies can be incredibly valuable for the societies that collectively pay for them. I think it's best to evaluate on a case-by-case basis. This author has done a ton of research and so I didn't like it being dismissed out-of-hand on principle.
Here's the paper linked from the piece about procurement (need a free account to access):
Also, for the record, vaccines are highly subsidized, particularly for children. Those subsidies are one of the best things we've ever done as a nation.
Indeed, I once did some work for the Library of Congress. Despite all of it being developed and served on Linux, I was forced to boot a Windows VM to connect to their VPN and work through it.
Huh? Microsoft Teams is a centralized real-time text/video chat service, not a federated microblogging service like Mastodon. They aren't even remotely similar.
I think this would backfire. The cash cow contracts will be viciously defended, and OSS will invariably be labelled "socialist" or "communist" (at it is socialist at a fundamental level).
Essentially it will politicize it, probably to a degree it has not been publicly subjected to.
And OSS has little to no professional PR to defend it, at least in relation to the vendors that will employ armies of PR flacks.
I think I'm going to disagree with the sentiment of the article and say that congress should not be investing in opensource generically any more than they should be building cars, computers, or whatever other shared technologies we all use (except maybe to boost some really fundamental research, AKA Sematech).
But that isn't to say, that congress shouldn't be allocating budget to open source projects where it makes sense. Another poster pointed out the education software market, which is a good example of a case where the government is basically creating a whole industry that exists primary to service a government need. In that case there should be a strong bias to libre licensed software, even going so far as to create it if needed.
Blanket statements though, about all software the government uses should be free is crazy. Why can't the government actually do cost/benefit analysis and make that determination on a case by case basis and pick the tool for the job. It would be crazy to say that they should write their own internet search engine, or niche software for the two guys in the government that use $commercial_off_the_shelf_package that only runs on windows.
So, why not identify a few places that need change and fix those rather than these all encompassing statements. Tax filing software is another area where anyone who isn't h&r block or Intuit thinks the government should actually spend a few million and write some software, or for that matter voting software.
PS, in case it wasn't clear, if the government writes some software is should absolutely be opensource with a liberal license.
I work on a contract for the CDC and we open sourced an older version of the software we display data on maps in: https://github.com/CDCgov/CDC-Maps
I'm working on switching our development to open so we use the same codebase that is available to everybody and adding other visualizations. It's slow going but there is movement there. I do agree it would be beneficial to fund open source projects, likely by including some requirement in contracts.
I think them funding projects directly with cash could cause a lot of problems though. The increase regulations that would need to be added would probably not be worth it for open source projects. People who get funding would likely need to submit a lot of documentation, there'd also probably be weird rules about non U.S. citizens etc... and laws would need to be passed.