Hi, co-creator of volkswagen here. Just some fun trivia about the project, which Kenneth and I obviously made as a joke years back when Volkswagen got caught cheating:
The Node module actually works. If you use it, it will make all your tests pass.
When writing the code, I put the logic for detecting if code is being run on a CI server into a separate node module called is-ci[1] (which the volkswagen module then depends on). That module (later split out into ci-info[2]) turned out to be so useful for actual work, that today it's being used by both React and the npm cli.
I only found this out recently. Imagine the surprise when a tiny part of a joke project you created years ago turns out to be one of your most popular open source projects :D
When Kenneth joined our team to work with us, I had no idea he was the co-creator of volkswagen module. One day over lunch we were making jokes over how funny that project is and we should legit add it to our workflow for shits and giggles. He goes “yeah, I created that”. Our faces dropped. Whoa!
"If you want your software to be adopted by Americans"
Not to get too off-topic, but while taking the piss out of America is all good fun it should be emphasized that the original nature of the scandal wasnt just Americans whining about dirty engines.
20 countries, the EU included, filed criminal charges against high level executives at Volkswagen factories across the globe. the CEO himself was arrested in Germany.
It's important to note that the regulatory bodies of UK, France and Germany lobbied to keep the loopholes in emissions testing: https://www.theguardian.com/environment/2015/sep/24/uk-franc... . Probably because the governments want to keep their car industry booming and the jobs secured...
I don't think that Martin Winterkorn (the former CEO of Volkswagen) was arrested. Maybe you are talking about Rupert Stadler (CEO of Audi, a Volkswagen daughter)
As an American I find it endlessly amusing when Europeans poke fun at us, the history of the 21st century so far makes it almost too easy. The jokes write themselves.
But yes, Europeans should be as mad as anyone, the con of clean diesel that has been foisted upon them has killed at least a few hundred over the years.
Which means people did a study, and drew some conclusions, which you reject in a comment on the internet. Do you have research that contradicts theirs? do you have concerns with their methodology?
That title though. I clicked thinking there was yet another scandal in the brewing but it's actually a software named volkswagen. If nintendo goes batshit when people refurbish gameboys I wonder what volkswagen will do.
Technically, parody is using X's IP to comment on X; satire is using X's IP to comment on something else. So if this is parody, it would plausibly fall under America's fair use test.
Satirical software would be a cool new trend in Open Source.
I think about things like a library for leader election, where there is a "Russian hacker" service that manipulates the election result or maybe a logging framework that accumulates logs and occassionally emails them to journalists.
VW, presumably, has armies of software engineers/other technical people (That you might find on HN, etc) so I don't think it's unreasonable to assume someone will stumble across it.
It's also worth saying that even if they don't have a automated system to look for x-infringement, they have many employees who when bored could end up searching for (say) Volkswagen on github.
There is definitely a credible risk of consumer confusion here - when a consumer faces a need to cheat a test it is unclear which Volkswagen the consumer would have to use. I think the original auto Volkswagen has a strong case here (note - IANAL, just another confused consumer).
>If nintendo goes batshit when people refurbish gameboys
Source for this? I know they've renewed their interest in going after ROM sites recently, but I've seen no indication they wish to stop people from repairing or refurbishing old, unsupported hardware.
Even if they raise an issue every once in a while you can tactictly tell them to go away. And the company will, swearing is sometimes useful in the response.
I am not a lawyer, but if somewhere it says "a work of parody", that should suffice for fair use. That said, nothing stopping VW from raking them over the coals. Github would probably just take the repo or account down if it came to that.
Well, their woes can't possibly be publicized any more widely, and 99.999% of the people who would read the news about such a lawsuit would have no use of the software, so I'm not sure the Streisand effect has any real meaning here.
Other fun software made at least partly in jest (though still quite useful):
eatmydata (https://packages.debian.org/sid/eatmydata) is an LD_PRELOAD library to disable filesystem syncs, to speed up test runs and other cases where you don't care about data integrity (such as if losing power would just mean you run the tests again from scratch anyway).
echochamber.js (https://github.com/tessalt/echo-chamber-js) makes it look like your page accepts comments, displays them to the person who submitted them, but doesn't show them to anyone else.
comcast (https://github.com/tylertreat/comcast) is really helpful for simulating poor network connections. Particularly nice when used in Docker to do network simulations.
> eatmydata (https://packages.debian.org/sid/eatmydata) is an LD_PRELOAD library to disable filesystem syncs, to speed up test runs and other cases where you don't care about data integrity (such as if losing power would just mean you run the tests again from scratch anyway).
Was never aware of this library and just used ramdisks previously, thanks for sharing!
This is nerd sniping at the finest. After reading that document I am embarrassed to admit that I now understand how this code is a UNIX `cat` implementation:
lick Trisha's toes ten times
make Clara moan
Until Amy is dominant towards Alicia
Have Mistress torture Brian's ear
If Brian is Trisha's bedtoy
call safeword
Have Brian hogtie Clara
Make slave scream Clara's name
Hints: 'slave' is stdout, and everything after a single quote is ignored. 'lick' is addition, 'moan' and 'scream' are print and println respectively. 'until' is while, and 'call safeword' is break. 'Mistress' is stdin, go read the tutorial for the rest.
Even this is toned down as I could not bring myself to post the original on HN. For instance, in the real tutorial it is not Brian's ear that is tortured...
I've got lots of respect for Kenneth Auchenberg [1], the author of the library. I suspect he's a driving force behind VS Code's current amazingness. He also frequently has a lot of good insights about Chrome DevTools (what I work on) and the web in general.
Hi, co-creator of volkswagen, is-ci, and ci-info here. I extracted is-ci into its own module during the time I wrote volkswagen. It then turned out a lot of people wanted a module like that for actual useful things. But they wanted more info than simply "is this a CI server or not" (which was all that volkswagen cared about). So I made ci-info and moved the logic into that module and then made is-ci inherit from that, so to not have to duplicate the logic
You're free to just depend on ci-info directly if that's all you need of course. The is-ci module does give you one added benefit however: It allows you to run this on the command line:
$ is-ci && echo "I'm running in a CI environment"
But of course that could technically be baked into ci-info. It's just more convenient to use with npx and to reason about if it's a self-contained module
I think there should be more digital art like this. By that I don’t mean something but done with a computer, rather something that truly articulates some genuine, sincere frontier of this digital landscape.
Kenneth Auchenberg: Well done! I hope that Volkswagen tries to sue you for trademark infringement and totally embarrasses themselves by bringing even more attention to their scandal, then gets slapped down and you can sue them back for wasting the court's time.
Volkswagen should be a generic term for cheater, just like Kleenex is a generic term for tissue.
I'd actually be happy if the name was changed ASAP, as it took me a couple minutes to figure out that the package was not an actual Volkswagon project. I thought the repo was extracted code from some official testing product.
Before I clicked the link I thought it would go to a Github repo owned by Volkswagen showing they had written code to forcibly pass CI tests. It's not clear from the title that it's not actually talking about VW the company.
so I wasn't the only one who thought this and grew concerned for the author-a legal battle with a giant corporation can ruin you financially I really hope he/she took good defensive measures.
This no legal advice, but in the USA to make a Satire you should be able to use the VW name. The same way the Silicon Valley series uses real company names on their episodes.
More so for using it in way that makes it technically correct to say that "Volkswagen detects when your code is only being tested and then makes it pass."
The funny thing is that this is actually how R development works. The main package repo is CRAN. If your package is not there, your inbox will fill with "can't install help". But getting your tests to pass on CRAN is an obstacle course. (see point 9 in http://kbroman.org/pkg_primer/pages/cran.html "put on your armor"). Your tests have to pass on Solaris when very few developers have access to that OS anymore. So there are directives to skip examples in the docs and what not (which should in theory run) but that weakens your test suit for everyone. So someone developed wolkswagen for R, for real (https://rdrr.io/cran/testthat/man/skip.html) It's part of a mainstream, widely adopted test package, testthat. It's how the R world goes.
The tech industry has its own examples. I remember that Nvidia and/or AMD had graphics drivers that would actually detect when they were running certain benchmarks/games and "cheat" to get better results. This was proven by simply renaming the .exe, which adversely affected measurements.
Detecting popular games and optimizing for them isn't "cheating", it's best practice for the graphics card companies although it makes some independent game developers unhappy. Detecting the card is being run in a benchmarking environment is cheating, though it may also be a sign the industry needs better benchmarks.
Not a lawyer or anything close, but I think Volkswagen is a trademark, and when used in a way that makes fun of them, you are likely to wake up their dogs (legal team) from their sleep.
Unfortunately, whether they profited or not won't make a difference. Just from the individual HN comments alone, there is enough to suggest that the title easily creates the notion that it is Volkswagen that has authorized this github. In fact, until I spent more time reading the comments and the github repo page, did I realize it was not actually Volkswagen but an individual.
Basically, if you publish on a platform that is being used by other large corporate brands, you should more or less expect zero legal protection from the platform as ToS is not a legally binding contract.
Ok, now where is the Google/Facebook/Microsoft privacy test repository?
If you want your software to be adopted by Europeans, good privacy scores are very important.
The Node module actually works. If you use it, it will make all your tests pass.
When writing the code, I put the logic for detecting if code is being run on a CI server into a separate node module called is-ci[1] (which the volkswagen module then depends on). That module (later split out into ci-info[2]) turned out to be so useful for actual work, that today it's being used by both React and the npm cli.
I only found this out recently. Imagine the surprise when a tiny part of a joke project you created years ago turns out to be one of your most popular open source projects :D
[1]: https://www.npmjs.com/package/is-ci [2]: https://www.npmjs.com/package/ci-info
Not to get too off-topic, but while taking the piss out of America is all good fun it should be emphasized that the original nature of the scandal wasnt just Americans whining about dirty engines.
https://en.wikipedia.org/wiki/Volkswagen_emissions_scandal#L...
20 countries, the EU included, filed criminal charges against high level executives at Volkswagen factories across the globe. the CEO himself was arrested in Germany.
> Not to get too off-topic, but while taking the piss out of America
I read the opposite into it. I figured it was a piss-take directed at VW.
But yes, Europeans should be as mad as anyone, the con of clean diesel that has been foisted upon them has killed at least a few hundred over the years.
"This new study estimates that ..."
You're trying to complicate something that is very simple.
Maybe you should pipe diesel to a tank containing a person, err wait not a person a money... Oh wait. Volkswagen did that.
Technically, parody is using X's IP to comment on X; satire is using X's IP to comment on something else. So if this is parody, it would plausibly fall under America's fair use test.
They had 'defeat devices' that detected test environments and changed how the car ran so that it would pass emissions testing.
And only 2 or 3 people are in jail afaik.
Only a light slap on the wrist.
I think about things like a library for leader election, where there is a "Russian hacker" service that manipulates the election result or maybe a logging framework that accumulates logs and occassionally emails them to journalists.
Out of more than 600'000? A bunch, I bet.
(Yes, I was shocked at the number too)
It's also worth saying that even if they don't have a automated system to look for x-infringement, they have many employees who when bored could end up searching for (say) Volkswagen on github.
Whether they care or not is another matter...
https://en.wikipedia.org/wiki/Trademark_infringement#Factors
>If nintendo goes batshit when people refurbish gameboys
Source for this? I know they've renewed their interest in going after ROM sites recently, but I've seen no indication they wish to stop people from repairing or refurbishing old, unsupported hardware.
Thats the joke though. It passes tests for you even when they would fail. Like Volkswagen AG
https://law.justia.com/cases/federal/appellate-courts/F2/828...
eatmydata (https://packages.debian.org/sid/eatmydata) is an LD_PRELOAD library to disable filesystem syncs, to speed up test runs and other cases where you don't care about data integrity (such as if losing power would just mean you run the tests again from scratch anyway).
echochamber.js (https://github.com/tessalt/echo-chamber-js) makes it look like your page accepts comments, displays them to the person who submitted them, but doesn't show them to anyone else.
Was never aware of this library and just used ramdisks previously, thanks for sharing!
This is nerd sniping at the finest. After reading that document I am embarrassed to admit that I now understand how this code is a UNIX `cat` implementation:
Hints: 'slave' is stdout, and everything after a single quote is ignored. 'lick' is addition, 'moan' and 'scream' are print and println respectively. 'until' is while, and 'call safeword' is break. 'Mistress' is stdin, go read the tutorial for the rest.https://github.com/fxn/i-told-you-it-was-private
[1] https://twitter.com/auchenberg
Well, I guess if you're using Travis, but it won't make much sense if you're on a self-hosted Jenkins instance.
Most of the heavy lifting on this one is done by the `is-ci` package [1], which is what does (obviously) the "is this a CI server" request.
But it doesn't end there. `is-ci` just does a single call within the broader `ci-info` library [2].
Any reason it couldn't have just imported `ci-info` and used its `isCI` function?
[1] https://github.com/watson/is-ci
[2] https://github.com/watson/ci-info
$ is-ci && echo "I'm running in a CI environment"
But of course that could technically be baked into ci-info. It's just more convenient to use with npx and to reason about if it's a self-contained module
Volkswagen should be a generic term for cheater, just like Kleenex is a generic term for tissue.
There would be no consumer confusion nor is this done for commerce. I think he's pretty safe as far as trademark goes.
https://github.com/ajalt/fuckitpy
Basically, if you publish on a platform that is being used by other large corporate brands, you should more or less expect zero legal protection from the platform as ToS is not a legally binding contract.
https://camo.githubusercontent.com/866c6cc451845f3de1f1487c1...
Good luck getting the petrochemical industry to admit to any wrongdoing they've ever done