PdfMeNot: Awesome New Tool From Makers of BugMeNot - <AUTHOR> http://www.readwriteweb.com/archives/pdfmenot.php <comment><USER2> I made a quick Firefox extension for this. It automatically replaces PDFs with links to PdfMeNot.

While the service is passworded: <http://why.gd/downloads/pdfmenot_extension_passworded.xpi>

For when they unpassword the service, install this one: <http://why.gd/downloads/pdfmenot_extension.xpi>

Releasing these into the public domain, free to use/release, do whatever. Enjoy!

</comment><comment><USER3> Ughh... where can I sign up for FlashMeNot, a service where annoying flash "black boxes" (scribd in particular) get replaced with proper HTML/CSS?

</comment><comment><USER4> Let me get this straight... it replaces PDF files with Flash. And that's good because..?

</comment><comment><USER5> It needs a password. How ironic.

</comment><comment><USER6> How to the Scribd guys feel about this? It's something I would expect Scribd to do (and maybe it does, just needs to advertise it more).

I guess this would be really useful on a Mac where PDF plugins only work for Safari (and one for Firefox but only on PowerPC).

</comment><comment><USER7> viewing PDFs in safari is nice</comment>


Google avoids £100m UK tax - <AUTHOR> http://www.timesonline.co.uk/tol/news/uk/article6122329.ece <comment><USER2> _This structure, condemned this weekend as "unfair" and "unacceptable", allowed Google legally to avoid paying £110m of UK tax in 2007, according to research by an expert on corporate tax avoidance._

So Google followed the rules the UK set up, and now they're in trouble? That doesn't make much sense. Corporations don't have a responsibility to behave in the ways the government wishes it had actually told them to behave.</comment>


BinaryJS, Streaming realtime binary data to your web browser - <AUTHOR> http://binaryjs.com

<comment><USER2> Very cool, I'll have to play around with this.

One request: could you also include an explicit LICENSE.TXT file stating that you have licensed it under the MIT license as opposed to just putting it in the comments? It would make it a lot easier for people to find if they might have requirements in terms of various licensing.

<comment><AUTHOR> My bad! Added to all the repos.

</comment></comment><comment><USER3> This is a huge step forward for the javascript community. Having _real_ binary communication for WebGL games, media streaming, data analysis, etc etc is going to be huge.

Can't wait to see what people do with this.

<comment><USER4> For now the problem is consuming it. For instance, it seems Google still hasn't implemented a full API around the Audio object which could be used to flow wave data through your program. See here: [http://code.google.com/p/chromium/issues/detail?id=113676...](http://code.google.com/p/chromium/issues/detail?id=113676&can=5&colspec=ID%20Pri%20Mstone%20ReleaseBlock%20OS%20Area%20Feature%20Status%20Owner%20Summary) (and many other similar issues exist within the more advanced parts of the V8 JS arch runtime)

<comment><USER5> You can stream binary data through the Web Audio API to play it.

That bug is really for capturing audio, but the spec has substantially changed since that bug was filed. If you want to get started with it, there are several decent tutorials about WebRTC and getUserMedia out there...just keep in mind that the spec is still being written, so problems are to be expected.

(also, minor nit: WebRTC and the like are implemented in the browser (for Chrome, often at the Webkit level, but sometimes in Chrome itself), not in the Javascript engine. V8 is pretty isolated from those APIs)

</comment></comment></comment><comment><USER6> Yes, perfect timing! I've been needing something like this for a video streaming project I've been working on. I've been using Node for everything and haven't wanted to resort to (and purchase) Adobe Flash.

Thanks for making this!

Are there are disadvantages to this in terms of optimization compared to something like Flash?

<comment><USER7> You can build a streaming Flash app without having to pay a cent to Adobe, the Haxe compiler or the Flex SDK are some of the solutions available. So I don't really understand the "(and purchase)Adobe Flash" part.

<comment><USER6> To explain what you don't understand, I didn't know about those. Thanks for the information!

<comment><USER8> Yes Haxe(.org) would definitely be the way to go.

</comment></comment></comment></comment><comment><USER9> They state that performance is untested. While this is interesting for transporting binary data that needs no encoding or decoding, i suspect the use cases will be minimal. JSON is actually highly efficient already. Ebay did benchmarking of the various binary formats for server-to-server api's, and while JSON wasn't the fastest, it was fast enough. [http://www.infoq.com/presentations/Dealing-with- Performance-...](http://www.infoq.com/presentations/Dealing-with-Performance- Challenges-Optimized-Data-Formats)

</comment><comment><USER10> I'm on Firefox 17 but <http://examples.binaryjs.com/hw.html> tells me

> Your browser doesn't support binary websockets and is not yet supported by > BinaryJS. Fallbacks are in the works but not yet complete. Chrome 15+ and > Firefox 11+ are known to work.

I do see a picture of a flower, so it looks like it did actually work despite the message..?

<comment><AUTHOR> It was a problem with feature detection method. Fixed, tested, committed, tagged, pushed, deployed!

</comment></comment><comment><USER11> I can't wait to see a real, scalable game on the full javascript stack: webgl/html5 graphics , node.js / binary.js backend, and a mongodb database.

</comment><comment><USER12> Very nice! Could you explain a bit about the choice to go with BinaryPack, specifically what is wrong with sending ArrayBuffers over the wire?

<comment><AUTHOR> I felt that it'd be helpful to allow people to send any JSON type rather than just binary data. You can actually write Javascript objects, arrays, strings, and numbers to any stream or stream metadata in addition to binary. By using it as part of wire protocol it only adds exactly one byte to each message, so why not.

<comment><USER13> First of all, this looks great. But is there a reason to use this custom BinaryPack format, over another binary JSON-alike such as msgpack, which already has a lot of bindings in other languages?

<comment><AUTHOR> I'm glad you asked! BinaryPack is actually a extended version of msgpack. Specifically msgpack doesn't differentiate between binary and string types. This is fine for most dynamic languages as "strings" can hold both string and binary data. However Javascript has very distinct binary types and thus we need separate types within the serialization format.

</comment></comment></comment></comment><comment><USER14> Pure javascript p2p video streaming, here we come!

</comment><comment><USER15> Video or audio chat? Why? You need the new media stream components to get a usable stream for those anyway, and if you have that, you might as well use PeerConnection.

<comment><USER16> Javascript can do real-time audio decoding in modern browsers, and can almost do real-time video decoding as well. While in general a site should use the standard components rather than reinventing them, the ability to do so allows experimentation with creative ideas that browser vendors haven't thought of yet. The more you can do without increasing the surface area of the browser- to-site interface, the better.

<comment><USER17> And browser-site-browser!</comment></comment></comment>


Ask HN: Do you think there's room for a Point of Sales webapp? - <AUTHOR>

I've been working the past couple of months on a Point of Sales webapp, and it's getting to the point where it's almost good to go, however, I'm beginning to wonder about the actual business potential for it.
I've been looking online for possible competing business or other webapps that do similar things, but so far I've been unable to find anything really up the same alley.
So what do you guys think?  Could this be a good lifestyle business if executed correctly?  Have you noticed a need for this on your field?
Thanks! <comment><USER3> I think the two prior comments about having a robust system with 100% uptime are on the money. It definitely can't be laggy, either.

I'd suggest the following reality check. Set up a "head to head" test vs. a cash register. Give someone basic training, and have them run through a list of transactions. Is your app as snappy and responsive as the hardware of the cash register? How does it compare to the cost of a cash register? I'd suggest doing this competitive analysis of the cost and performance before going any further.

<comment><AUTHOR> The head to head test vs. a cash register is a fantastic idea, thank you! Basically, from what I've seen thus far, cost-wise I'd like the webapp to be the affordable solution, 'cause most of these POS setups can get really pricey from the get go.

Speed is pretty snappy right now, but this can vary once it's running with a couple of actual clients on, so I'll have to look into it a bit more carefully, start caching whatever's possible to, and so forth, so thank you for that suggestion as well.

</comment></comment><comment><USER4> You need to make sure you have near 100% uptime. If someone is using this as a PoS and it's down, they will lose money. You may also need to get some sort of insurance.

<comment><AUTHOR> Thanks, will definitely be looking into various forms of reliability and maybe have some mirror servers just to provide 100% uptime.

</comment></comment><comment><USER5> Having researched potential PoS systems for a local shop I can say there is a lot of room for improving the PoS products but I'm far from convinced it's actually lucrative to provide such solutions.

As rick888 is pointing out you will definitely need a solution that is forgiving towards system threats. The system needs to be functional in all sorts of conditions.

<comment><AUTHOR> I was looking at a suscription model, kind of like what the 37 signals guys do, but with more affordable pricing. I was thinking something like $20-$30 a month for the basic package.

Thank you for your pointer about functionality and system threats, I hadn't really thought about that and will be looking into it very thoroughly.

<comment><USER5> In my case suscription models with somewhat absolute pricing were attractive because it provides a way to even out the money cost over time.

But the price was not the only thing in consideration when it came to costs. The concerns my client had with suscription model was if the provider would still exist and provide same service in a year, or in five years for that matter. The amount of time they had to invest for the PoS (which was with inventory management) needed to be secured. They were okay with phasing in the inventory over a long period (it was a specialty store with a huge inventory) given the system didn't rely on being functional if only it knew the inventory - as long as the time investment couldn't be lost. Should the PoS provider go bankrupt or otherwise stop the service they wanted to be sure their effort time-wise wasn't worthless and could be ported somewhere else. Contracts with a minimum binding periods was okay as long as it didn't mean the time they used the system couldn't benefit them elsewhere.

Someone pointed out that the robustness wasn't a deal-breaker because you could revert to handwriting receipts. It's true that you can just do that but the point about PoS isn't just that it's slightly more effective than a calculator that can print out receipts for customers. A PoS grants valuable data. Even older cash-registers have data capabilities such as who the salesperson was and time of purchase. If you can provide great analytic tools for the data it has gathered, that'll be a major improvement of many available PoS systems.

But store owners also care about stability very much. If the system doesn't work when there's internet shortage they won't be happy. No electricity is probably only acceptable factor when it comes to having a PoS on a computer. If the system is slow and customers are waiting because there's unstable internet they will also be dissatisfied. Debit card processing all goes over the internet and when it's slow customers have bad experiences but at least they know it's because the internet is messing up and some ISP probably is to blame. If the cash-register is screwing it up they will blame the store.

I've worked in a store for a couple of years as a sales person so if you have more questions I'd be happy to help. I'm available through email: email@example.com.

<comment><AUTHOR> Hi Pierre, thanks a lot for your comment, you raise some very valid concerns about the application that I will have to take into consideration, and will definitely hit you up via email in the next couple of days.

I guess I should start considering some options so the shops can have an offline app, or some sort of offline synchronization options at least.

</comment></comment></comment></comment><comment><USER6> A few potential competitors from a list I had built earlier this year (unrelated project):

<http://www.getpose.com/>

<http://www.erply.com/>

<http://www.vendhq.com/>

<http://www.cashierlive.com/>

<http://www.merchantos.com/>

<http://www.camcommerce.com/>

<http://www.posterita.com/>

<http://shopkeep.com/>

</comment><comment><USER7> Take a look at Vend: <http://www.vendhq.com/>

They are a cloud-hosted, browser-based POS system with full offline service. And they've just announced series B funding so others also believe there is a market there.

<comment><AUTHOR> Thanks julian, definitely hitting up many of the same areas as my idea, but hopefully there's room for another option in the market. As they say, always nice when someone else validates the idea.

</comment></comment><comment><USER8> Not sure of the market you are targeting. It has been my past experience developing and selling stock/sales system in India that it's very hard to break in with a browser based remote model (vs. FoxPro, curses) based interaction model. The main reason being adoption. Some of these adoption issues are.

\- Hot keys

\- Popups (like FoxPro) and selections.

\- Local vs remote (availability) vs sync later. Syncing has to be automatic with extremely good fail over mechanism.

\- Install once and forget about it. What I mean here is that retailers (at POS) are not thirsty for new features/functions.

\- Forgiving.

My2Cents worth.

<comment><AUTHOR> Hi Yesh, thank you for your comment, it raises some very good points and concerns I've been having lately.

The target market is pretty much small to medium retailers who are looking for an affordable POS solution.

I love the idea of having hot keys on the webapp though, it would really make the whole processing faster.

</comment></comment><comment><USER9> I hate to break this to you, but for any larger merchant, you're going to be SOL, for one basic reason: PCI compliance. Unless you spend a ridiculous amount of time and money researching and implementing things like key management, credit card tokenization, and the like, no level 1 or level 2 merchant will look at you.

For level 3 and level 4 merchants, you may have a shot-- especially if you can seamlessly upgrade the application to add more functionality, allow for customization, etc. Basically a Shopify for the real world.

<comment><AUTHOR> Hi mark, thank you for your comment. The product is definitely more geared to smaller shops, level 3 and 4 as you said. However, I'm beginning to think that maybe looking into PCI compliance wouldn't be a bad idea.

Thanks again.

</comment></comment><comment><USER10> I think multi-site stores would be a good target for this kind of app. Removing the need for networking/synchronisation across multiple sites can be handy. Especially if you show stock levels that let them easily look up accurate numbers at other stores.

I am not convinced 100% uptime is a showstopper, shops can revert to a paper receipt book temporarily if needed. Internet outages are inevitable, even if your server is still up.

<comment><AUTHOR> Hi redguava, thank you for your input.

As you mention the app currently does allow you to run a multi-site setup, as well as a multi-company setup for those lucky people running more than one company.

Seeing the concern for 100% uptime I will be looking into offering as high uptime as possible, maybe adding some EC2 instances ontop of my Linode servers or something of the sort.

Thanks again!

</comment></comment><comment><USER11> I'd be happy to look into trying it out for a retail store of general merchandise, like a local grocery store.

The only issue is some kind of guaranteed connectivity on one hand or just good uptime and is it a real time database or is it using push changes from the client?

Would need 2.

<comment><AUTHOR> Thanks ottoid, I'll let you know via private message or email as soon as I have a beta setup online, which should be coming in a couple of weeks tops so you can give it a go. It would be tremendously helpful to have someone actually try it out with real data.

The database is real time, and I'm definitely beginning to look into some sort of setup that would allow me to offer near 100% uptime.

<comment><USER11> David, Good news is I won't be needing a PCI compliant system because I use a separate credit card machine. So let me know if you want to get started sooner.

you can email me @ lrmyotherid followed by the @sign followed by gmail.com - <USER2> get enough spam already!

<comment><AUTHOR> Sure thing ottoid, I'll let you know as soon as we get a beta online which soon be really soon, thank you!

</comment></comment></comment></comment><comment><USER12> OP, care to share an email? I have been floating this idea around for a long time, and have a ton of experience programming/installing PoS systems etc.

<comment><AUTHOR> Sure! firstname.lastname@example.com

Thanks for taking the time!</comment></comment>


HardCIDR will query ARIN and a pool of BGP route servers - <AUTHOR> https://github.com/trustedsec/hardcidr <comment><USER2> Beware, this script will hose / clobber and then silently clean up (delete) a ton of various different files if files with those names happen to already exist. To see the exact file names you'll have to carefully pick through the script. So obviously? run it in its own directory, which is no guarantee of safety, but should be safer.

If you have a subdirectory where you run it named after your email hostname (such as "example/" for "example.com"), then it will prompt you to "overwrite the contents of the directory" and then, if you accept, it will not only overwrite the contents, it will remove the entire contents with:

        cd $outdir
        rm * 2>/dev/null

There's a slight violation of user expectations here. Removing and replacing the contents isn't quite the same as overwriting the contents. It may be a fine line, but it's better to err on the side of protecting the user's files, not deleting them, when deciding where to come down on that fine line.

And if $outdir is empty or not there, it tries to detect that by first doing a check for -d $outdir, but this won't save the user if $outdir gets moved aside by another process while they are reading the prompt and before the cd happens, leaving them in another directory. Hopefully the user has rm aliased to rm -i but that still won't help since the rm is being run in its own shell in the script.

I know we're not supposed to focus on the negative here on HN. I'm sure the script is awesome for whatever it does. Just be careful out there!

<comment><USER3> I wish modern OSes made this easier. I would love to have an easy bullrtproof way of saying "give me a temp directory for writing, don't let me write anywhere else, clean up my directory after me".

<comment><USER4> Chances are that every system this script runs on has "mktemp," and trapping exit makes it easy to clean up when things are finished.

[https://www.mktemp.org/manual.html](https://www.mktemp.org/manual.html)

[http://redsymbol.net/articles/bash-exit- traps/](http://redsymbol.net/articles/bash-exit-traps/)

<comment><USER5> Yep, makes it much simpler to write scripts like this [https://github.com/psypete/public-bin/blob/public- bin/src/st...](https://github.com/psypete/public-bin/blob/public- bin/src/stage_git_app.sh) (run an application that's stored in git, but in a temp working directory, and clean up after)

</comment></comment></comment></comment><comment><USER6> OK, but what does it _do_? The README is pretty sparse. Some examples would really help.

Edit: the header from the script is good, toss it into the README for great success.

<comment><USER7> It simplifies the process of finding the IP address blocks allocated/assigned to an organization.

> _HardCidr is written by Jason Ashton, Senior Security Consultant at > TrustedSec_

I'm guessing it was written with pen-testing in mind.

</comment></comment><comment><USER8> This might give it some more context: [https://www.trustedsec.com/march-2017/classy-inter-domain- ro...](https://www.trustedsec.com/march-2017/classy-inter-domain-routing- enumeration/)

<comment><USER9> It all makes sense now! This is much more pertinent than the code if you don't know much about the subject matter.

</comment></comment><comment><USER10> Note that this script installs "ipcalc" (or really, whatever is in [http://jodies.de/ipcalc-archive/ipcalc-0.41.tar.gz](http://jodies.de/ipcalc- archive/ipcalc-0.41.tar.gz)) without user interaction.

I'm generally pretty _not okay_ with scripts that curl | tar things (or apt- get install things, which this does if it's run on a linux) from the interwebs without my explicit consent.

<comment><USER7> That shouldn't be an issue if you don't run it as root.

By running it as root, I'd argue that you _did_ give explicit consent for the script to do anything it wants.

<comment><USER11> Sorry, no. The opposite, in fact. A script that demands to run as root on my computer needs to be extremely well mannered.

<comment><USER7> I certainly don't disagree with that.

If one downloads and blindly runs some random script as root, however, you are effectively allowing it to do anything it wants.

It sounds like _javajosh_ took the time to look the script over first which, of course, is exactly what one should do.

</comment></comment></comment></comment><comment><USER12> Oh, this is superfly. Easy way to build your own up-to-date ASN DB, similar to the one from Maxmind. Think: embellishing Apache/Nginx logs with up-to-date information about the IP address of the client, including ASN/OrgId. Useful for identifying snowshoers spreading their footprint across a lot of discontiguous IP addresses in one ASN/Org.

<comment><USER7> If you just want to build your own IP-to-ASN table, you can download dumps of "RIS Raw Data" [0] from RIPE and parse them if you don't yourself run BGP.

I'm a network engineer at an ISP and it's pretty common to use something like this for analyzing traffic network when considering peering sessions, for example. Even if you don't run BGP, you could use it for answering questions like "how much traffic do we send to/receive from Facebook?" and such.

RIPE's RIS dumps are performed every five minutes from more than a dozen different "vantage points" across the Internet.

ARIN used to provide an "originAS" file [1] but it looks like they quit doing that a few years ago. You may be able to find some interesting stuff browsing around /pub on their FTP server, though [2].

[0]: [https://www.ripe.net/analyse/internet- measurements/routing-i...](https://www.ripe.net/analyse/internet- measurements/routing-information-service-ris/ris-raw-data)

[1]: ftp://ftp.arin.net/pub/originAS/

[2]: ftp://ftp.arin.net/pub/

<comment><USER12> I always forget that this exists - thanks for the reminder.

</comment></comment></comment><comment><USER13> I guess this is on hn because it sounds cool? It's impossible to understand what it is.

<comment><USER14> From the top of the script:

> A tool to enumerate CIDRs by querying RIRs & BGP ASN prefix lookups

> Currently queries: ARIN, RIPE NCC, APNIC, AfriNIC, LACNIC

>

> Queries are made for the Org name, network handles, org handles, customer > handles,

> BGP prefixes, PoCs with target email domain, and 'notify' email address - > used by

> some RIRs.

>

> Note that severl RIRs currently limit query results to 256 or less, so large

> target orgs may not return all results.

>

> LACNIC only allows query of ASN or IP address bloks & cannot search for Org > names

> directly. The entire DB as been downloaded to a separate file for queries to > this RIR.

> The file will be periodically updated to maintain accurate information.

>

> Output saved to two csv files - one for org & one for PoCs

> A txt file is also output with a full list of enumerated CIDRs

>

> Author: Jason Ashton (@ninewires)

> Created: 09/19/2016

<comment><USER13> This might well be Arabic. I have been in the industry for over 10 years and that explanation is meaningless

<comment><USER15> you might want to go back an re-read your networking books.

<comment><USER13> Care to point to a book that talks about these acronyms. They are not in comer or Stevens both which are networking bibles

<comment><USER7> Some of these acronyms are specific to BGP. You could work in networking for years and not encounter some of them, especially if you aren't running BGP.

As far as "bibles" go, however, Halabi's _Internet Routing Architectures_ is the BGP variant.

TCP/IP Illustrated _might_ not mention CIDR since it was still pretty new when those books were written. My copies haven't been opened in years so I can't be sure.

If you've performed any subnetting in the last 15 years or so, however, I fully expect that you have encountered CIDR.

</comment></comment></comment></comment></comment></comment><comment><USER16> Those are some cool acronyms that I've never heard of. Reading the README does not explain any more. It's quite the mystery how this got to the top-30...

<comment><USER7> Perhaps because some of the people here _do_ know what the acronyms stand for?

</comment></comment><comment><USER17> I can't find how to make it work for european companies. For instance, fnac.com doesn't give any result with the -r option. Did I miss something ?

</comment><comment><USER2> >The script with no specified options will query ARIN and a pool of BGP route servers.

To what end?

</comment><comment><USER18> see also blockfinder:

[https://github.com/ioerror/blockfinder](https://github.com/ioerror/blockfinder)</comment>


Farmers look for ways to circumvent tractor software locks - <AUTHOR> http://www.npr.org/sections/alltechconsidered/2017/04/09/523024776/farmers-look-for-ways-to-circumvent-tractor-software-locks <comment><USER2> My dad is a farmer and I can assure you that this is a real problem. Every piece of equipment now as its own proprietary, closed-source and, most of the time, incompatible software. Plus, many of them don't get any update after the product launch. When you are in rush to plant or harvest you just can`t afford to wait for an authorized dealer. And if they fail, good luck trying to find a replacement that is not 100x overpriced because it has been discontinued one year after you bought it. I tried repairing a GPS system once and it required a special serial cable + software which costed more than 100$ just to update the driver...

<comment><USER3> Sounds like an opportunity...

<comment><USER4> I co-founded a company in this space a few years ago. We ultimately pivoted out of the space because for all of the user buy-in that we got, the legal encumbrances were way too high to be able to successfully operate without raising a lot of money just to pay lawyers. If we'd decided to go the VC route instead of bootstrapping we might have been able to make a go of it, but raising VC money for a startup in the midwest working on something as mundane as farming was looking pretty untenable.

<comment><USER5> Couldn't you make a full electronics replacement kit? It's a bit more involved, but DMCA and other DRM issues just go away. All the original electronics just get removed, to be boxed up and maybe discarded.

You run your own software on your own computer with your own sensors.

<comment><USER4> It might have been with a much longer team, and a much longer time to market. We were 4 people, and as I mentioned in another comment, getting VC funding for a company in the rural midwest is essentially impossible.

The other issue is that I'm not sure we would have gotten as many buy-ins from the farmers. Many of them were very frustrated by the lack of interoperability between different pieces of equipment, their sensor data being locked behind DRM schemes, etc. They wanted to integrate the hardware and software that they owned, and wanted something that would let them do it piecemeal and with relatively little risk to their hardware. A complete overhaul wouldn't have helped with integrating their historic data, and would have definitely had a higher upfront cost and risk associated with bricking their equipment.

</comment></comment></comment></comment></comment><comment><USER6> I think we'd all be better off if basically everything was open source, by way of eliminating intellectual property protections provided by governments.

As an alternate solution, those of us with engineering skills can work to create an open source economy with open source factories, computers, and products.

This would never be a problem nor would it be likely to happen if genuinely competitive options existed for farmers that were not locked down.

Another way we in this community can help is by helping smaller businesses learn the value of open source and get them using and creating it.

I believe with a sufficiently open source base in our economy, we can make great headway into eliminating material poverty.

I write a little about this on my personal site, here:

[http://tlalexander.com/machine/](http://tlalexander.com/machine/)

<comment><USER7> If the software was open source, it would be modified and tuned to maximize power output, and would belch huge plumes of particulates, CO, and NOx. How do you balance openness against the public good of controlling this pollution? These are, perhaps, the primary reasons that engine control software is so complicated these days, on diesels and gas engines.

<comment><USER8> Since the software is closed source we don't know if it's cheating emissions testing or not.

<comment><USER7> Touche.

</comment></comment></comment></comment><comment><USER9> I have the feeling that somehow the actual _need_ has been put aside for phylosophical (or Open Source, etc.) reasonings (nice but not the original issue).

More or less what the good farmers are asking for (which is not about the code, the kernel or whatever, they are not "hackers" as much as the authorized JD technicians are not computer experts or programmers or software engineers) is just access to the "database" of parts serial number of the machine.

Loosely the way it works (simplified) is a database where the (say) pressure sensor #42 has been registered (authorized) in the operating system as having serial number #0123456789. When the sensor breaks, after it has been replaced with a new (original or verified third party) sensor, you need to update the database telling it that sensor with serial #0123456789 has bee replaced with sensor serial number #2223334445 and - of course it depends on the specific part - possibly run a "self-test" program to verify that the sensor works properly and maybe tune/regulate it.

The farmers do not want the source code, they don't want to modify it, they don't want to "hack" anything, they simply want to be able to replace a part and have the thingy work.

Going back to software, let's talk of - say - Windows 7 (yeah I know that all the rage is about Windows 10 nowadays) and its activation, imagine that instead of having one month time to activate a new install either through the internet, the automated phone call in case it doesn't work and a support phone call for particular cases where the previous two options do not work, activation was:

1) Immediately mandatory (i.e. the OS wouldn't work until activated)

2) ONLY available through a local visit of a MS agent (9 to 5 , Monday to Friday) at a cost of (say) US$ 100.00/hour + US$ 1.00/mile

<comment><USER10> >The farmers do not want the source code, they don't want to modify it, they don't want to "hack" anything, they simply want to be able to replace a part and have the thingy work.

One way to fix this would be for a farmer to sue the manufacturer for business interruption for millions of dollars.

When planting or harvesting, especially when bad weather is coming in, you are on a tight deadline.

Inability to replace a perfectly functional physical part due to this kind of software lockdown could cost a farmer lots of money.

<comment><USER11> I'm guessing JD has lawyers smart enough to protect the company against something like this. For one, I'm guessing the purchaser / licensee agreed to binding arbitration. As well, the purchaser / licensee probably also agreed to release JD from any responsibility for losses due to malfunction (where _malfunction_ is defined by JD).

</comment></comment></comment><comment><USER12> I don't get why all this chat is about software, licensing and software safety.

The way I read it, a farmer can't change even, say, a brake pad (or whatever tractors use) without authorization from John Deere. I very strongly doubt that they want to mess with the software, they just want to perform minor maintenance themselves.

<comment><USER13> Some farmers want to change engine curve profiles to get more power out of their engines, likely at the expense of Tier IV emissions regulations and possibly damaging the drivetrain. I don't believe this is the normal case, but I have heard this expressed in the past.

<comment><USER14> This does seems to be John Deere's primary motivation. They make the exact same mechanical machine to serve many different market segments, and then assign each model's capabilities, like horsepower, in software. Of course, the consumer soon figures out that by flipping a couple of bits they can buy the less expensive machine and upgrade it at little to no cost.

Thus ensues the debate of who owns the tractor.

<comment><USER15> > They make the exact same mechanical machine to serve many different market > segments

Do you know that they do? Parent only talked about running the machine out of spec altogether but your theory could explain a few things if it's true.

<comment><USER13> I used to work in John Deere Power Systems. The parameterization exists to allow Deere to sell their engines all over the world (different emissions regulations), to a variety of different equipment manufacturers (barges have different power requirements than tractors than cranes than etc). I'm not aware of any "pay to unlock more power" schemes, but I also wasn't particularly attentive toward pricing.

</comment></comment></comment></comment></comment><comment><USER16> Hey all, I worked on software for John Deere. This is a throwaway account for obvious reasons. Opinions expressed here are MY OWN. I no longer work for John Deere or am associated with them in any way.

I was part of one of the many teams that work on this software. Specifically I was part of John Deere's ISG division also known as the Intelligent Solutions Group. The ISG division (was at the time) responsible for tying together various software built by OEM's, for building the central UI within the cabin, and for building various debugging and build tools. The team I was on, consisted of about 8 very senior engineers, and I think there were around 20 total engineers working for ISG at the time (though I saw, and knew only a handful of them). Now, when I say OEM integration, I mean suppliers and other John Deere divisions with their own teams mirroring ours. All told, I would estimate that John Deere has somewhere between 150-300 engineers working full- time on their codebase for their tractors.

Let me disabuse you of any myths. I have worked in software for 20 years. I have worked in large enterprises, and scrappy startups. This software is by FAR the largest, most complex codebase I have ever interacted with. Submission of any new code was seriously considered and reviewed before it entered production (sometimes to a pedantic degree), after which JD put all new code through 10s of thousands of hours of testing on production equipment. Production and release cycles take on the order of months to ensure that we don't kill people.

These are not riding lawnmowers. They are 30-ton combines, and 20 ton tractors tilling fields, with massive horsepower behind them. They have a real potential to end peoples lives in the event of failure, and these tractors do (in testing) fail in spectacular ways. If a team of hundred of engineers struggle with their codebase internally, Joe Farmer isn't going to have a fucking clue how to repair their software correctly.

Now should you, in theory, have the right to modify equipment you own? Sure. Absolutely. Hell, John Deere tractors run on open source software. But trust me on this, locking this down is a very good idea.

If you have the drive to make open source tractor software AND can make absolutely certain no-one ever dies from code you write, then go do it. Just keep in mind that the engineers that work on this shit really care about keeping people safe.

<comment><USER17> > If a team of hundred of engineers struggle with their codebase internally, > Joe Farmer isn't going to have a fucking clue how to repair their software > correctly.

> But trust me on this, locking this down is a very good idea.

Joe Farmer may not know, but Joe farmer has "the internet", and ability to pay an independent software engineer. And people would absolutely find and fix bugs that john deer is missing.

Honestly, your argument sounds so ridiculous, it sounds like saying "it's to protect the children from terrorism."

<comment><USER18> What happens if this independent fix results in a death? Do you really think JD will escape liability?

<comment><USER19> This is not exactly uncertain ground. Car manufacturers don't have liability when their customers modify their cars. Whoever made my clothes dryer doesn't have liability for any unsafe condition I may or may not have created when I removed that stupid annoying buzzer.

</comment></comment></comment></comment><comment><USER20> Among the most successful cars were those with straightforward replacement parts, a defacto standard, and reasonably well documented and available maintenance manuals.

Tesla wants control over this, by literally renting the maintenance manual, and remotely disabling the car if repairs or parts aren't authorized. I don't expect the model 3 market will appreciate this business model. It will be a much more price sensitive market compared to the early models which has been relatively inelastic for repairs and resale.

Consider the x86 computer market, if every component had signed firmware, and the main system verified this signature in case of component replacement, and would fail to function at all if signature verification failed. What a pain...

Consider voting machines, proprietary hardware, expensive to design, maintain, audit, and go obsolete in as few as 1/2 dozen uses. Compare that to pencil and paper.

The older I get the more Darth Vader I become: "Don't be too proud of this technological terror you've constructed." (Let's say the Force is common sense in this metaphor.)

</comment><comment><USER21> Previous discussion [https://news.ycombinator.com/item?id=13925994](https://news.ycombinator.com/item?id=13925994) (177 comments)

</comment><comment><USER22> This really reminds me of how Richard Stallman started GNU. It was because he can't modify the software on a printer he uses.

<comment><USER23> And the Pro-corporate shills would say "What if he made printer into a ink bomb? we should respect the right of manufacturer to offer printer as a service".

This kind of blind slavery to ideology of blind market instead of intelligent systems to provide the best outcomes in a information era is only setting back innovation.

All software should be free as in freedom of speech at the very least. And I say as automation progresses, and material needs of society can be fulfilled freely, it should also be free as in free beer.

</comment></comment><comment><USER24> While this is a fascinating question in the context of tractors, it gets even more interesting in the context of cars, houses, personal electronics, light bulbs. The First Sale Doctrine is being eroded by DRM.

<comment><USER25> The problem with DRM is the early internet era community wasted all of its screaming and yelling about stealing movies and MP3's, and now anytime you mention DRM in a context that matters like those, it's ignored.

<comment><USER24> I really should have said "is being eroded by DMCA"

</comment></comment></comment><comment><USER26> It's not just the farmer paying for this: it's everyone who eats food.

The time wasted is lost productivity. The extra fees just for a software unlock is lost money. The farmer has to either charge more, or go out of business sooner. Either way, the cost of food rises.

<comment><USER27> The only problems is that the creators of those software did not get their food and tools for free.

Was that also lost productivity?

Maybe we could fix it by giving everything for free!

</comment></comment><comment><USER28> Every time I read or hear about new developments in creating safer/more secure software, I am reminded of scenarios like this. Companies could use formally verified crypto and such to provably and completely lock out users by destroying all means of circumvention. In that sense, I think these secure technologies are like nuclear weapons --- extremely powerful, _too_ powerful. Society in general seems to rely on some insecurity to maintain its freedom; so I believe anyone who advocates for more secure systems should also carefully consider all the _negative_ effects which will appear if their vision comes true, and whether they are, however indirectly, locking themselves out.

<comment><USER29> That first thing you said was what Trusted Computing Group was all about but with whitelisting & chips instead of perfect crypto. Such things were fought well but App Stores succeeded. For "security" reasons, hardware support will show up in products that incidentally reinforce the DRM parts. Good news is vendors keep differentiating on increased control of product & ASIC costs means there's usually debug hardware in it to tap into. ;)

</comment></comment><comment><USER30> It seems so unbelievable to me that there are enough people that are a) John Deere equipment owners/renters and b) capable of debugging and patching issues in a C++ codebase for these stories to keep appearing.

Debates on the virtues of open source aside, is this actually the solution? Or is it a symptom of, say, poor quality software releases? or service visits that are too costly? or overloaded dealers who can't handle harvest-time support loads? I just don't believe that allowing people to tinker with the software is going to be the magic answer that these folks seem to think it is.

<comment><USER31> > It seems so unbelievable to me that there are enough people that are a) John > Deere equipment owners/renters and b) capable of debugging and patching > issues in a C++ codebase for these stories to keep appearing.

There doesn't have to be any overlap between these groups of people. The issue here seems to be that some mechanical parts that are easily replaced, are not accepted by the controlling computer, unless it is authorized using specific administration software. Basically, ink cartridge lock-in, but for tractors.

To circumvent the restrictions, no farmer has to know C++, they only need a pirated version of the software to integrate the replacement parts into the system. So what the farmers want is not the ability to arbitrarily modify the software running on their equipment, but simply a way to do purely mechanical repairs on their own.

</comment></comment><comment> shawn-butler The motherboard/vice article NPR is blatantly ripping off here is much better in my opinion.

[https://motherboard.vice.com/en_us/article/why-american- farm...](https://motherboard.vice.com/en_us/article/why-american-farmers-are- hacking-their-tractors-with-ukrainian-firmware)

</comment><comment><USER32> "farmers could damage the machines, like bypassing pollution emissions controls to get more horsepower."

Isn't this the problem with warranties? People could try to mod it, end up damaging it and try to get it replaced with warranties.

I also don't fully understand this software. Is it just completely vendor locked? That sounds really unreasonable. It should allow for at least basic debugging and trouble shooting.

Is this software locking only in large $100k + harvester type equipment? Does the vendor have other reasonable explanation of doing this?

I wonder if the software designer for this equipments would have reasonable arguments for such locks or if this is just profit driven decision.

<comment><USER33> Can confirm it's usually proprietary and locked. An old roommate is employed by an implement manufacturer--his sole job is traveling the western united states, making housecalls to upload newer versions of control software to equipment. They absolutely DO NOT trust the owners to do it themselves.

This has pretty frightening implications for the state of consumer goods, if industrial goods are already going this direction.

<comment><USER34> Consumer electronics have been disposable for 25 years now. You don't exactly see an electronics repair shop in every town anymore.

<comment><USER35> Or even basic electrical appliances. I have a toaster, a kettle and a vacuum which are all bricked because of peripheral failures - two poorly (deliberately..?) designed mechanical switches and a charger - which in many cases would cause the whole otherwise functional appliance to be junked. Only somewhat resourceful and stubborn folk like myself bother to fix these things themselves.

</comment></comment></comment></comment><comment><USER36> This seems to be a regular way to lock in customers, I think of ink jet cartridges and even 3d printer refills use similar tricks. I wonder if there is a case to be made in making this illegal or optional

</comment><comment><USER37> There's going to be a huge market in used pre-DRM heavy machinery. The purely mechanical/hydraulic versions of this stuff is virtually indestructible, with a little maintenance.

<comment><USER14> I'll _gladly_ pay the cost of a John Deere mechanic from time to time before I go back to the purely mechanical tractors we used to have on the farm.

When I hear this kind of comment I have to wonder if: 1. The person has never spent time in a tractor. 2. Has never spent time in a modern tractor. 3. Has never spent time in an old tractor.

<comment><USER38> What're the benefits of newer models in terms of daily usage?

<comment><USER14> Comfort. In the grain business my tractors don't get anywhere near daily usage, but when their window of usefulness opens, the days are long and the longer you can handle keeping the machine rolling the better.

Not all of the advancements are directly related to computers, but they sort of come part and parcel at this point.

<comment><USER38> Gotcha, thanks

</comment></comment></comment></comment></comment><comment><USER39> I don't like the idea that we have to pass laws to force companies to make a better product. Why can't a company take the initiative and grab all the customers who value this?

<comment><USER40> > Why can't a company take the initiative and grab all the customers who value > this?

You make it sounds so easy to start a tractor company.

<comment><USER41> The result of a free market is that the better products will always win out. By your logic your statement could just have easily as been "to start a car company" or "to start a rocket company" or "to start a computer company". These are all examples of industries whose existing players were supplanted by a better idea with smart, passionate and dedicated entrepreneurs.

<comment><USER42> The result of a free market is that the better products will always win out. Then if the firms behind those products are well-run, they will use the dominant market position their products have granted them to try to raise barriers to entry and smother upstart competitors in their crib.

"Car company" and "rocket company" are interesting examples, since the "smart, passionate and dedicated entrepreneurs" in those areas needed billions in government subsidies to get off the ground [ _]. And "computer company" includes the software side, with its low capital costs, and the hardware side, where the competitors are firmly entrenched (what's the last laptop/desktop upstart to hit it big?).

[_] [http://www.latimes.com/business/la-fi-hy-musk- subsidies-2015...](http://www.latimes.com/business/la-fi-hy-musk- subsidies-20150531-story.html)

<comment><USER43> > The result of a free market is that the better products will always win out.

That is patently incorrect. There are _many_ examples of market failures that produce incorrect, poor quality, or even predatory results. A recent example is the total disregard for security in many (most?) "IoT" products, and the market for lemons[1] is the canonical example of a market that specifically selects for bad results ("lemons"). Note that the latter example of markets _not_ producing "better products" was worth a Nobel Prize.

In a truly free market, the product that is most efficient for the market wins. This is often (but not always) the most _profitable_ product. Sometimes it may also be the "best" product, depending on your point of view, because profit (or price) is not the only metric that is used in determining which product is "best".

[1] [https://en.wikipedia.org/wiki/The_Market_for_Lemons](https://en.wikipedia.org/wiki/The_Market_for_Lemons)

</comment></comment></comment></comment></comment><comment><USER44> I wonder, is the a GPL tractor software project out there yet?

<comment><USER45> I don't know, but there is an open source tractor design:

[http://opensourceecology.org/wiki/LifeTrac](http://opensourceecology.org/wiki/LifeTrac)

Primitive but think of Linux when it was released.

It's part of the Global Village Construction Set, open source machines that could make up the technological basis for a civilization:

[http://opensourceecology.org/wiki/Global_Village_Constructio...](http://opensourceecology.org/wiki/Global_Village_Construction_Set)

<comment><USER46> Is it self bootstrapping?

</comment></comment></comment><comment><USER47> Couldn't they organize and sue the manufacturer for their losses due to the tractor malfunctions in critical periods and being prevented to service them promptly? I understand it's a bit naive, but you don't solve this by hacking around the problem, but by attacking the problem through the institutions of the system.

</comment><comment><USER24> The jet engines in a modern airplane have some analogies here. You can think of an engine as a PaaS (Propulsion-as-a-Service). A tractor is HaaS (Harvesting-as-a-Service). Our technologies have reach this level of complexity - the must be offered as a service. Cars will soon be Mobility-as- a-Service. Putting on my economist hat, I'd say that it is the ultimate manifestation of "comparative advantage". If JD abuses their monopoly position, then fix that through the courts and legislation, or by buying a competitors product. Don't try to hack the terms of service. But JD and other "product" vendors need to make it clear that they are in fact selling a service.

<comment><USER48> Many people do not want to buy things as a service, they want to buy and own something that was built correctly the first time, and if not, is supported for the reasonable lifetime of the product for the cost stated upfront, and can be supported by people outside the company out of their pocket after that.

This as a service model is not inherent to the complexity, it's usually a cash grab.

<comment><USER24> But in an open capitalists society, such rent-seeking will be resisted by the market and by the law. A vendor has every right to make their offering a service. Unless, of course, they are abusing their monopoly position. IBM was taken to court for this in 1969.

</comment></comment></comment><comment><USER49> SmartTV and other appliances are closed too, so that users must purchase a new one when for example codecs become obsolete. Sadly, the closed source model is not just being used where there are safety concerns involved.

</comment><comment><USER50> The big boys have obviously cornered the market. Is there any farming equipment company that provides more open access for maintenance and repairs? If not, why not? It seems there is an opportunity there.

</comment><comment><USER51> Can someone please explain what software has to do with repairing a tractor?

Edit: it looks like the physical components themselves are DRMed? Wtf?

</comment><comment><USER52> I'm starting to wonder if these articles are driven by a PR firm paid by John Deere's competition. They're always about John Deere and only John Deere. Aside from the Motherboard / Vice article, they never provide any specifics about the maintenance or repair operations that farms are prevented from doing on their own.

With the Vice article, 2 of the 3 things they mention are modifying the tractors to operate in ways the manufacturer did not intend which could result in damage.

<comment><USER53> I've had the same thought. It's such a niche issue and really it's incredibly standard for any kind of business hardware, which is what tractors are. Also nobody's being forced to buy new tractors, there's tons of old tractors still out and running and working every day.

So why do these articles appear with such regularity?

(To be clear I think that all software should be open source and vendors should charge for support, but that's beside the point here.)

<comment><USER54> > Also nobody's being forced to buy new tractors, there's tons of old tractors > still out and running and working every day.

There are also fewer every day.

<comment><USER55> You'd be surprised how long old, robust vehicles live for. I don't have any clear data for tractors, but older trucks that can be repaired with minimum tooling get used and re-used in places in Africa, almost to no end.

<comment><USER56> This is not so relevant for modern agriculture, but my family still has the Valmet 361D tractor my father bought in 1963. It runs as good as ever. The diesel engine needed to have the cylinder tubes replaced some 30 years ago, and other mechanical parts do wear out and are replaced, but this thing isn't going to be out of use because of software issues.

It's too small to be very useful in modern farming, though.

</comment></comment></comment></comment></comment><comment><USER57> What's ironic is most of these farmers are republicans and voted in the people who enable this crap.

</comment><comment><USER58> And [https://www.iphoneasyunlock.com/](https://www.iphoneasyunlock.com/)

</comment><comment><USER59> Everybody likes to feel taken advantage of.

If I was a business owner or engineer that built systems this complex and you asked me to not lock it down, I'd call you freaking crazy.

These are very expensive and complex machines, and you want my competition or some farmer who has no idea what he's doing to access and modify it?

No thank you.

Google keeps proprietary code. And that's for auto complete...

<comment><USER60> You address two different issues here competition and users.

In the case of users you have no right after sale to feel a right to control how your users make use of your product. Just because software and contracts give you two venues to potentially do so doesn't mean it would be rational to allow you to. The world is 99.99% users.

On the second point, competition has always quite legally taken apart the competitors products to see how they tick. If you have something truly innovative you can file a patent, if not then you have nothing that deserves protection.

<comment><USER59> No, In this case I have complete right to control how my users make use of my product because we agreed to it. It might not be rational because I might lose to an open competitor, but that's a completely different subject.

There's trade secrets at every company in existence that they don't share with their competition. They can't patent them, but that doesn't mean they don't deserve protection. Companies exist because they don't give up how they work to their competition...

<comment><USER60> Properly we limit what you are allowed to contract away all the time. This isnt any different. You want to retain control see leasing.

Regarding trade secrets you misunderstand them. Please see

[https://www.law.cornell.edu/wex/trade_secret](https://www.law.cornell.edu/wex/trade_secret)

The Uniform Trade Secrets Act ("UTSA") defines a trade secret as: information, including a formula, pattern, compilation, program, device, method, technique, or process, that derives independent economic value, actual or potential, from not being generally known to or readily ascertainable through appropriate means by other persons who might obtain economic value from its disclosure or use; and is the subject of efforts that are reasonable under the circumstances to maintain its secrecy

There are two basic situations in which obtaining the use of a trade secret is illegal; where it is acquired through improper means, or where it involves a breach of confidence. Trade secrets may be obtained by lawful means such as independent discovery, reverse engineering, and inadvertent disclosure resulting from the trade secret holder's failure to take reasonable protective measures.

Anything that can be gleaned from tearing your product to pieces that isn't suitable for patenting gets zero protection.

<comment><USER59> I understand they don't get legal protection. That's not my point. My point is that companies don't just dump out information on how they operate. They protect their trade secrets, which as the definition you provided says, are worthy of protection. Thanks.

<comment><USER60> I would argue that the consumers right to have access to a lot of that information is considered normal and is vastly more important that the companies need to protect it. Enough so that we ought to legally protect the consumer even at the expense of the company. After all there are more of us than them why shouldn't we protect ourselves?

<comment><USER59> The law you cited seems to do that. Companies have no right to stop consumers from purchasing goods that use their trade secrets without their consent.

</comment></comment></comment></comment></comment></comment></comment><comment><USER61> Imagine not so long in the future if self-driving cars were forced to reveal their code because of the right-to-repair bill, 1. who without a vast depth of knowledge in C++, etc. would be able to go anywhere near it? 2. even if they did is it in their best interest or anyone else's if they tinker with the code and made the car take undesirable actions?

Maybe buying a tractor should be replaced with leasing tractors, if they never want you to fully own everything in it. I think very soon there will be more and more of a need for a new way to determine what products are allowed to be sold partially with a secret OEM key.

<comment><USER27> They lock down the software in their well understood interests:

\- vendor lock in (this is not good for customers)

\- safety (testing this stuff is expesive and lengthy. Every change forces a re-test. They are liable for this stuff)

\- defending the brand value (if there is an accident because of modified software non-hackers will blame the manufacturer for making it possible)

This all weill get worse with neural networks:

Imagine people poking around bits in the matrix representing the neural network of the sel-driving AI.

They will not have the slightest clue what they are doing, but they don't want their System to be locked down. They download "steering optimizers" and similar stuff from sites and overwrite the neural network.

Who will be to blame for the accident because of this?

With neural networks even the manufacturer cannot completely understand every nauron's effect on the complete system, as opposed to traditional software. Manufacturers have huge responsibility, and curently only locking software down is their only way to defend themselves.

<comment><USER60> You are arguing for accepting lockdowns on tractors so that john deere can screw their customers harder based on the safety of systems that don't exist yet. Drivers who cause accidents will end up liable just as they are now.

<comment><USER27> Except for self driving stuff I was arguing about. We are not yet sure who will be liable for them. Also there is pretty much self driving in some agricultural machines, for use on the fields.

But seeing this topic I'd make it possible for farmers to mod their machinery, with a complete loss of warranty.

Imagine a modded component accidentally sending false or misleading data on the CAN bus, or not yielding the bus, or simply being incompatible with a component. These scenarios can cause serious troubles.

These stuff are not JS frameworks, a page reload does not undo a bad trial and error round.

Also the supporting tools are expensive not only for farmers and machine shos, but also for vendors. I remember the price tags for calibrated instruments from my time in automotive industry...

<comment><USER60> You can't void the warranty unless the modification/repair results in the damage we already made a law for this even.

</comment></comment></comment></comment></comment><comment><USER41> When we buy a piece of software, we own and "physically" posses a binary which we feel we can rightly take apart, modify, and mess with it because we view it as analogous to owning a toaster or stereo in the physical world. It's in our home, we can touch it, and we in essence control it.

Now the same is never said for software as a service. We buy subscriptions to services all the time but don't demand an ability to modify or control the software. It's defined in our agreement. Now it seems to me that the companies that sell these tractors have decided to pursue a model by which their software is more or less SaSS (providing encrypted updates over the air). Why is it that these farmers believe they have a right to modify that software?

<comment><USER62> Why is it that farmers don't have a right to modify and fix equipment that they purchased in 2017 because some software they didn't ask to be installed on their equipment prevents them from doing what they've been able to do for generations?

Up until a few years ago, farmers used to be able to buy farm equipment with the understanding that they could fix it whenever issues arose and didn't need a gatekeeper to come fix their hardware.

<comment><USER63> I suspect the main reason is that it makes economic sense to most farmers to keep buying the tractors, despite the gatekeeper.

Sucks, but there you go. If they managed (as a group) not to buy the tractors, the gatekeeper would go away.</comment></comment></comment>


None of My Apple Gear Connects Together, Dammit - <AUTHOR> https://zachholman.com/posts/apple-accessories-ecosystem-problem <comment><USER2> I find this overwrought.

First, I thought this would be about wireless, though that works (for me) _amazingly_ well: airpods work seamlessly across phone, ipad, TV, computer; watch unlocks computer; start a message on ipad, finish it on computer, etc. I don't physically interconnect my apple devices any more at all.

Second, I doubt apple with ditch lightning any time soon as it's physically a lot smaller than Type C and allows phones to be smaller. I do imagine it will go away on a future iphone X when wireless charging improves -- then the device will go completely portless.

And I do agree about the watch charger nonsense -- I can't wait until they switch to a nonproprietary inductive charger. Across the board I get the impression Apple don't think they gain anything by using proprietary chargers

I may be in the minority but I've really been happy with the transition to Type C and wireless connection (the exception is the stupid WiFi built into cameras which can only download low-res pictures). My usage for the past couple of years has been pretty much dongle-free.

</comment><comment><USER3> _" It seems like they're asleep at the wheel, or, more likely, there's no one team in charge of accessories and the ecosystem anymore at Apple."_

That's my concern. It seems like they've become a highly siloed organization and as such are fragmenting. That's not good for their customers. They really need to get their act together and behave like they're a single company with a complete vision and a continuous product line that just works. As it is they just look like they're running off the rails.

</comment><comment><USER4> "A fool and his money are easily parted..."

He could've easily purchased a previous gen MBP with magsafe and USB-A, and let the USB-C sort it's self out over time. But hay, had to go with latest/greatest devices with no ports and requiring a bunch of adapters/dongles.

I really hope Apple's "courage" comes to bite them in the ass on this, and they at least bring back one USB-A, 3.5mm headphone jack, and magsafe.

<comment><USER5> The 3.5mm jack is still on all their laptops. But I guess you're referring to the iPhone. In which case I agree, bring it back!

<comment><USER4> Yes, sorry, was referring to the phones. I can't count how many times I've dropped my headphones on an airplane (or they've slipped off when doing something physical), and I'm easily able to retrieve them by grabbing the cord.

Can't imagine dropping an airpod bud on the plane, then having to try and figure out where it rolled. Also, there are times when my bose headphones have died, and at least I've been able to use the free shitty ones they hand out.

<comment><USER5> Wireless Bose headphones also have a 3.5mm fallback, which is only useful if your phone supports it, or you have a _shudder_ dongle.

</comment></comment></comment></comment><comment><USER6> What are the advantages between USB-C vs Lightning? Is there any reason to keep Lightning beyond its incumbency?

<comment><USER2> I posted a comment about this: it's size -- the phone can be thinner. I suspect it will go away when non-proprietary inductive charging becomes widespread.</comment></comment>


Sandspiel – A falling sand game built in Rust and WebGL - <AUTHOR> https://sandspiel.club/ <comment><USER3> Wow! This thread brings back some fond memories. Long ago, I came across a tiny Java applet linked on Fark to a Japanese forum post. Everyone loved it but I found it annoyingly small. It was barely 300px x 400px. I had been coding my senior thesis in Java and had recently learned how to use a Java decompiler.

So I downloaded the applet, decompiled it, spent a few minutes figuring out exactly where the dimensions were setup, changed them to 960x640, compiled it all, and hosted it on my site: [http://chir.ag/stuff/sand/](http://chir.ag/stuff/sand/)

I'm always apprehensive about taking any credit for the Falling Sand Game because I DID NOT make it but I'm always glad to see it in the wild. First it was Fark, then a few months later Digg, then Reddit. At one point someone created a Wikipedia page linking to the enlarged version I was hosting, then it got deleted as not-notable, then someone wrote a song about FSG, then a hundred different versions of FSG popped up, many non-Java and functioning much better than the applet, then the Wikipedia page came back up.

I've long stopped getting giddy emails from office slackers about how much time they waste on my site but even though I didn't really create this amazing game/toy/zen-garden, I feel lucky to have been a tiny part of the arcane pop- culture movement.

<comment><USER4> Wow, what a great look into internet history. Do you still have the original forum post? I wonder who the original author was.

<comment><USER5> Maybe this is the original author? World of Sand by DOFI (2005)

[http://ishi.blog2.fc2.com/blog- entry-158.html](http://ishi.blog2.fc2.com/blog-entry-158.html)

can anyone find an earlier falling sand type game?

edit: Found this after some googling: [http://cowboyprogramming.com/2007/03/05/falling-sand-game- fr...](http://cowboyprogramming.com/2007/03/05/falling-sand-game-from- the-80s/)

very interesting! (includes assembly source code)

<comment><USER6> There was a similar Archimedes program printed in Acorn user in the March 1992 issue.

Atari ST game, in the same genre, from the Jan 1993 issue of ST Format: [https://www.youtube.com/watch?v=SHZB9nIzZ64](https://www.youtube.com/watch?v=SHZB9nIzZ64)

<comment><USER5> Fantastic! For those wondering how such a program was printed (and then had to be typed by hand from the magazine), here's a scan cap of the page in question [https://imgur.com/a/Mng21o3](https://imgur.com/a/Mng21o3)

And here you can find the full issue: [http://8bs.com/aumags.htm](http://8bs.com/aumags.htm)

</comment></comment></comment></comment></comment><comment><USER7> A nice bit of web programming. The smoke effects look cool. Pity solids don't conduct heat - the first thing I always try and do in these is boil a pot of water.

If you've never seen this kind of thing before, the canonical PC example is The Powder Toy, which is so amazing I wish there a 3D Minecraft-like version. But it's really CPU-heavy even in 2d.

<comment><USER8> also.. mites don't reproduce..

<comment><USER9> and water doesn't pool

<comment><USER10> and the water turns into plants as fast as fire burns the plants.

<comment><USER11> And the water seem spectacularly incapable of putting out fires.

<comment><USER12> There's no way to put out a fire burning on top of the cloner.

<comment><USER12> I mean - if you already managed to put plants in the cloner.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> This is great, I love falling sand games.

The only downfall is that the Pythagorean Cup didn't work?

[https://i.imgur.com/ejqBwR4.png](https://i.imgur.com/ejqBwR4.png)

[https://sandspiel.club/#cCZB5Un0exri2UajMjcu](https://sandspiel.club/#cCZB5Un0exri2UajMjcu)

<comment><USER14> Are there any falling sand games where it does work?

<comment><USER15> The Powder Toy with water equalization

<comment><USER16> The Powder Toy wouldn't simulate the vacuum required for it to work. It'd get closer than most other falling sand games if you turn on water equalisation though.

</comment></comment></comment></comment><comment><USER17> Several years ago I wrote a falling sand game for the Parallax Propeller chip, which is an 8-core microcontroller. One core was needed to drive the video output, and I had up to 7 other cores running a simple ruleset:

1\. If a sand pixel had an empty pixel below it, exchange them. 2\. If more than two sand pixels are stacked but there's space to the side, kick one sand grain out to that side.

These rules were enough to make the sand form simple hill shapes. All of the cores bash on the same shared memory array; rather than use locks or synchronization I just had each core start in a different column of the screen and all move left to right by columns - in theory there should be enough separation that they'd never conflict.

However - and this is the part I thought interesting to post about - <USER2> after a few seconds or minutes the 7 cores would catch up with each other and start running in lockstep (effectively reducing the speed of the simulation to equivalent of 1 core).

Barring a bug that was simply crashing cores, what I think was happening was that not every control flow path took the same number of cycles, so a core processing a column with a complex sand pattern might slow down and allow another core to catch up to it. Once two cores were operating on exactly the same data, they'd be doing the same deterministic logic on the same inputs and writing out the same result, effectively just duplicating the work in lockstep.

</comment><comment><USER18> I wasted hours on these types of games back in the flash era, people were constantly releasing new ones with more types of sand and various effects and combinations, its a shame that whole segment of internet history was deprecated along with flash, good times.

<comment><USER19> Well... castle crusher "became" angry birds... so we've got that going for us...

<comment><USER20> I think you mean Crush the Castle :) [https://en.wikipedia.org/wiki/Crush_the_Castle](https://en.wikipedia.org/wiki/Crush_the_Castle)

</comment></comment></comment><comment><USER21> What's the performance difference from a pure JavaScript version?

Recently, I made a particle game which originally planned to be implemented with WASM. However, I decided to implement it with pure JS firstly. The result is some surprising that the JS version runs so smoothly that I think a WASM version is not essential any more.

<comment><USER22> I'm interested in this too. The dev would probably have a good answer since they previously made a pure JS sand game too: [https://github.com/MaxBittker/dust](https://github.com/MaxBittker/dust)

</comment></comment><comment><USER23> This brings to mind a game that many people here might enjoy once it gets released – Noita: a magical action roguelite where every pixel is physically simulated.

[https://store.steampowered.com/app/881100/Noita/](https://store.steampowered.com/app/881100/Noita/)

(Disclosure: it's being developed by a bunch of my old co-workers.)

<comment><USER5> My big hope for this game is that it does not go the Spelunky way in terms of game design. In Spelunky you have all these toys that are fun to use, but the punishment for using them "wrong" just takes all the fun out of the game.

I hope they can find a balance that allows you to take risks with the physics interactions without loosing your entire run.

</comment></comment><comment><USER24> Fun feature: on mobile, if you drop a bunch of lava on a bunch of fireworks, your phone gets hot.

Nice work.

</comment><comment><USER25> Brings me back some good old memories from this game:

[https://dan-ball.jp/en/javagame/dust/](https://dan-ball.jp/en/javagame/dust/)

</comment><comment><USER26> Got tired of all the phalic-volcanoes so I made something nice for you [https://sandspiel.club/#2scDpZpyMACGp65FrkPT](https://sandspiel.club/#2scDpZpyMACGp65FrkPT)

<comment><USER27> What I enjoy about this one is that it's a beautiful scene... that immediately ignites when you press play :)

</comment></comment><comment><USER28> This very strongly reminds me of a game called "Hydroxis" (or at least I think so) for the Amiga. You started with water pooling in some cavity in an otherwise static level and had to move it to a target location by means of enabling and disabling some blocking segments in the level. That was fun!

I had remembered that one a decade or so ago and it turned out to be the single hardest thing I tried to find for my WinUAE collection :-(

<comment><USER29> This must be it; Hydrocis: [http://www.lemonamiga.com/?game_id=4277](http://www.lemonamiga.com/?game_id=4277)

<comment><USER28> YES!

Funny how one misremembered character can make an internet search _that_ hard. :-)

You most certainly made my day! Thank you very much!

</comment></comment></comment><comment><USER30> Grow some plants. Light a fire. Frantically try to put it out with water and watch helplessly as the plants grow due to water, providing more and more fuel for the growing flames, until you have an unstoppable conflagration on your hands. There must be some moral lesson to learn from this.

<comment><USER31> People in flammable houses shouldn't complete the fire triangle?

</comment></comment><comment><USER32> Make a lake of oil, set it aflame and then pour water on it. A small amount of water causes the burning oil to flare and spread. A large amount of water extinguishes the fire. Very cool!

<comment><USER33> _A small amount of water causes the burning oil to flare and spread. A large amount of water extinguishes the fire._

Interestingly enough, while we've all been taught "never use water on an oil fire", this is actually pretty similar to real life. Generally speaking, using water on a flammable liquids fire will just spread the fire and make it worse. But if the fire is small enough and the application rate of the water is sufficient, you can sometimes extinguish such a fire with water.

Note: do NOT take this as advice to ever try to extinguish a kitchen fire or something like that with water. When I talk about "application rate" above, I'm thinking of the 100+ gallons per minute you get from a 1-3/4" (or larger) handline from a fire engine. If your frying pan catches on fire, call 911 and then use a class B rated fire extinguisher, or smother the fire by putting a lid on the container. If you have any doubts whatsoever about your ability to extinguish the fire, exit the structure and let the fire department handle it.

<comment><USER34> For an oil fire in the kitchen, use baking soda.

<comment><USER33> Baking soda can work, but it can take quite a lot of it. Depending on how big the fire is, you might not have enough in your kitchen. It may also be packed away in a cabinet somewhere out of reach. Of course the same might be true of the fire extinguisher as well... :-(

</comment></comment></comment></comment><comment><USER35> I wish fire or lava would make steam out of water, but I love the smoke effect. It was a really nice surprise when the rest of it was so low resolution, great combo.

<comment><USER36> My wish is always to create a self-sustaining environment with clouds and rainfall but it never works...

<comment><USER37> Have you tried the "cloner" type ? I managed clouds that rain, using a cloner with ice above a cloner with fire. The cloner with fire make the ice melt which release some water which reduce the fire and help the plant grow. Once the plant below grow enough to reach the fire almost all the plant burn and the cycle begins again. You can then add mites which will eat the plants and reproduce and be almost destroyed by the cycling catastrophe yet survive thanks to the wanderers. Mites usually eat the bottom plants so sometimes for plants to start again from the ground you need to accumulate enough water to form a lake which will reach the preserved from the mites plants. Once the lake reach the plants it is consumed by them, and allow mites to have close to the ground food.

<comment><USER38> Here's my take on this idea:

[https://sandspiel.club/#52oSclzynCddZWyelRsm](https://sandspiel.club/#52oSclzynCddZWyelRsm)

</comment></comment></comment></comment><comment><USER39> If you like this game, you might find this project interesting:

[http://tinlizzie.org/~ohshima/shadama2/live2017/](http://tinlizzie.org/~ohshima/shadama2/live2017/)

[http://tinlizzie.org/~ohshima/shadama2/](http://tinlizzie.org/~ohshima/shadama2/)

It's a bit similar, but uses GPU and spawns millions of particles. On the other hand, it's less of a sandbox and more of a demo. You can write your own code in the browser too, but it's a bit tricky to program, because it compiles to shader language and it has some weird limitations.

</comment><comment><USER40> This is awesome! A few years ago I built a more rudimentary version of a falling sand game with just Javascript and WebGL: [http://ericleong.me/sand.js/](http://ericleong.me/sand.js/)

I tried to embed the "scripting" language as a texture in WebGL to keep the implementation very fast (note that every pixel is a cell), but I think I worked myself into a corner.

Source code here: [https://github.com/ericleong/sand.js](https://github.com/ericleong/sand.js)

</comment><comment><USER41> Any source code for this? I'm learning rust right now and it would be really cool to see how this was made

<comment><USER42> [https://github.com/maxbittker/sandspiel](https://github.com/maxbittker/sandspiel)

</comment></comment><comment><USER43> Once I realized that pausing the FSG was a thing...

[https://sandspiel.club/#Mt35KuNUFTZW9ITyWDxe](https://sandspiel.club/#Mt35KuNUFTZW9ITyWDxe)

</comment><comment><USER44> This is a perfect example of why I'm still in Chrome. At least for me this runs at 60fps in Chrome on my Mac but 30-45 in Firefox. I see this often in animated sites.

<comment><USER45> Another data point: on Windows I get 60 fps on both Chrome and FF

<comment><USER44> That would arguably mean your machine is fast enough to get 60fps since the browser basically throttles to 60. So a slower machine would show the difference but an even faster machine would still show 60

<comment><USER46> In my experience, FF performance is much better in Windows than in Mac or Linux, unfortunately.

</comment></comment></comment></comment><comment><USER47> Thousands of particles and the worst frame rate I saw on my iPhone 6 was 25fps. Impressive.

</comment><comment><USER48> Not seeing vaporizing water when lava was put into it was a bit of a bummer, otherwise it's great

</comment><comment><USER49> Love the performance, no trouble with 60fps. The swirly wind, fire, and smoke effects are beautiful! It's also the only part here with which I would not know how to get started building, could anyone share their thoughts on the implementation?

<comment><USER50> I was interested in this too so I took a dive in.

The smoke effects are based on another project about Fluid simulation [https://github.com/PavelDoGreat/WebGL-Fluid- Simulation](https://github.com/PavelDoGreat/WebGL-Fluid-Simulation)

It also has a working demo with controls (it's collapsed by default I think, and kind of hard to see if you're not looking for it in the upper right hand corner). It's pretty astonishing how beautiful it is.

As far as I can tell, the filters and the code isn't too complicated. I am just wondering how they got those values to begin with because that's where the real magic is. There are some references there as well. One of them links to a gpu gems page that I am pretty sure I've seen before that looks really similar to this. So it's really just incremental improvements from previous works. But this version looks a lot more polished.

</comment></comment><comment><USER51> This feels wayyy smoother than I remember this game being.

<comment><USER52> Because this is in Rust and WebGL, not flash.

<comment> black-tea No, it's because computers are many times faster.

<comment><USER53> Actually, both.

</comment></comment></comment></comment><comment><USER54> A question to the creator: is the fungus growing respecting the rules of Conway's Game of Life? It seems very much like that. Very nice app!

</comment><comment><USER52> My current map set up, paused. [https://imgur.com/71p1H8W](https://imgur.com/71p1H8W)

<comment><USER55> Try setting a gas cloner on fire.

</comment></comment><comment><USER56> Holy shit, I remember playing something very similar to this for hours on end in the early 90s as a kid; it might have even been an early version of the powder toy (another user mentioned it), not entirely sure, but regardless this thread is making me go back down memory lane and now I'd love to get into the insides of a game like this one and understand how it works!

<comment><USER16> You might have played one of Burning sand II, WXSand, or danbal. There's a fairly rich history of these games, but The Powder Toy basically ate everyones lunch at this point.

</comment></comment><comment><USER57> You can get some interesting effects if you put a grid of one-pixel cloners, make them clone gas and put some lava at the bottom.

</comment><comment><USER58> Literally unplayable, exploding gas goes through thick solid walls without even damaging the wall.

Awesome game, I love the options :)

</comment><comment><USER59> There's an off by one error on sides, fire and it's effects can go along the sides.

</comment><comment><USER60> You can create a little self-sustaining motion with a cloner covered in something that falls over a lake of acid.

[https://sandspiel.club/#IbQHF3edJmCy1dLJAWO8](https://sandspiel.club/#IbQHF3edJmCy1dLJAWO8)

</comment><comment><USER61> This is great. I'm almost tempted to redo this with believable thermodynamics.

<comment><USER62> lol the arrogance of your phrasing is weird. Just stick with the compliment, and then maybe: I think we could improve thermodynamics, not "I'm almost tempted", which sounds like "I'm a god, and could really outdo this but I'm not sure I have time since I'm SO important and busy".

<comment><USER63> Doesn't really come across as arrogance to me, just interest in the project.

<comment><USER64> same

</comment></comment></comment></comment><comment><USER65> Working in Safari on iOS 12

</comment><comment><USER66> Reminds me of The Powder Toy, which is great by the way, lots of fun!

</comment><comment><USER67> Drop oil on lava.

The effect is worth it.

<comment><USER68> have you tried dust yet?

<comment><USER69> Dust is volatile, and too much fun: [https://sandspiel.club/#l9z7gueXwwTAHj6hI0Zh](https://sandspiel.club/#l9z7gueXwwTAHj6hI0Zh)

</comment></comment></comment><comment><USER70> I remember watching Confetti Factory on After Dark, which I think of as a primitive precursor to this. Must have been very early 1990s. Any earlier examples?

</comment><comment><USER71> I love fungus. It makes the plant grow. Pour some acid on it, it will regrow! On the other hand, fire is pretty destructive.

You know what feature I miss? Fast-forwarding!

</comment><comment><USER72> Does this game have any objective? I didn't get it.

<comment><USER73> no, it doesn't have an objective. It's a sandbox game.

</comment></comment><comment><USER74> This was mesmerizing. Well done, thoroughly enjoyed it.

</comment><comment><USER75> Wind effect is beautiful and looks like a Julia set.

</comment><comment><USER76> Really liked lava and fire. I don't know why gravity doesn't affect the blue stuff. Can you disable page swipe gestures on mobile chrome?

</comment><comment> ok-repl I've always been fascinated by these simulations. Can anybody give a rough overview of how these (I guess?) fluid simulations work?

</comment><comment><USER77> Great ! Was just looking for something like this for a snow effect. I used to do something with falling snow on text for Christmas.

</comment><comment><USER78> It's weird, but I can't share the link on Twitter, and goo.gl shortlink doesn't work either.

Does anyone have the same problem?

</comment><comment><USER79> Weird, I was just looking at this today. Very cool project! I have a feature idea on my stack of ideas I hope to get to

</comment><comment><USER80> Site is got down of big HN hug I guess

</comment><comment><USER81> This is excellent fun. I'm kind of curious though as to why blowing wind at the dust ignites it?

<comment><USER82> Check for dust explosion. Pretty dangerous event in silo storages etc.

<comment><USER81> That's usually caused by a spark or something though, not just air movement. I understand why fire/lava ignites the dust, but not why the wind does.

</comment></comment></comment><comment><USER83> The smoke and explosion effects are amazing, better than any other FSG I've tried. Very cool.

</comment><comment><USER84> I had fun with this. Great effects. Lava, lol.

I got a lot going, 25fps Samsung Note 8, Power Saving Mode

32 fps Performance Mode

</comment><comment><USER85> Will activating WebRender improve framerates?

Not that it needs improving anyway... just curious.

<comment><USER86> WebRender is a mapping from CSS (and perhaps SVG and Canvas 2D in the future) to the GPU. But this game is already built on the GPU, so there's nothing for WR to do. :)

</comment></comment><comment><USER87> Fun little game! 42FPS on my iPhone X, too. And best of all no excessive heat

<comment><USER88> Weird, I am getting almost all 60fps on iphone8.

</comment></comment><comment><USER89> Lava cannot melt ice? :D

</comment><comment><USER90> Ice can hold lava?

btw, adding oil over lava produces a very cool smoke effect.

</comment><comment><USER91> This is incredible. Runs flawlessly and surprisingly smooth

</comment><comment><USER92> Reminds me of Clonk!

</comment><comment><USER93> I get 1-2 FPS running this in Chrome on macOS Mojave.

<comment><USER94> I'm getting good speeds but it seems terribly inefficient. Taking 60% CPU and now it's busy spinning up my fan. I have an i7 MBP.

</comment></comment><comment><USER95> Lava should make water turn to gas and blow up!

</comment><comment><USER96> I like the smoke when you burn the fungus.

</comment><comment><USER97> This is fun

</comment><comment><USER98> nothing happens on mobile

<comment><USER99> Working fine in Firefox Android

<comment><USER19> Not for me (android firefox). If webGL uses facilities not available on your GPU, it well doesn't work. That's likely it, and we've just not seeing the error message.

e.g. my phone lacks float textures (i.e, to render-to-texture to output floating point calculations), so this fluid simulation doesn't work [http://jamie-wong.com/2016/08/05/webgl-fluid-simulation/](http://jamie- wong.com/2016/08/05/webgl-fluid-simulation/) (not a guess; I've been through the source, reimplemented some in java)

</comment></comment></comment><comment><USER100> Fun, but a bit blurry.

</comment><comment><USER101> create some plants, and drop some seed on it

</comment><comment><USER102> This is fun!

</comment><comment><USER19> Is it really a "game" if there's no goal or "win" condition? Or is it a "webtoy" or "simulation" (or... "sandbox". Think it's a sandbox).

<comment><USER103> It is unfortunate that you're downvoted. At one point, there was an article on HN discussing games, including what made a "game" a "game" — and one of the article's requirements was that there must exist some risk of losing. Otherwise, you're just messing around or following predefined steps towards an end, but there is no challenge. Not that that can't _entertain_ , but plenty of things entertain that aren't games. (E.g., a movie.)

The article also discussed some weird things that existed outside of the definition that the article arrived at, such as ClickerHeros and similar "grinding" "games".

(I wish I could find a link to it. Perhaps someone else here remembers and can find it…)

<comment><USER104> Not unfortunate at all; arguing definitions is rarely useful or interesting, and "game" has dozens of worthy contenders that disagree with GP and with the article you read.

E g.: Sid Meier's famous definition: "a series of interesting decisions". (But what would he know?)

<comment><USER19> Says "arguing definitions is rarely useful"; argues a definition usefully. :-)

FWIW I asked the question because I'm designing a simulation "game" without explicit win-conditions, but I'm concerned it won't be very engaging without them. e.g. Minecraft added monsters (to survive the night), and the enderverse.

<comment><USER104> Don't get me wrong, the question of whether this or that game is better with or without win conditions is perfectly interesting. It's just the raw "is it a game or not?" that's not useful. It's like asking whether comic books are books - the answer is "yes under some definitions, no under others", simple as that.

For the case of your game[0] specifically, one option is to expose game stats that the player can form their own challenges around. E.g. if the game UI shows how many times you've jumped, that implicitly lets the player form "do X without jumping more than Y times" sorts of challenges, etc. Or the more formal way to do it is like e.g. Minecraft achievements - there's no "win condition" for putting a saddle on a pig or whatever, but the mere fact that there's a piece of UI tracking whether you've done it or not, creates a challenge by itself.

[0] yeah I said it! ;)

<comment><USER19> I've thought about that - and it's not that big a jump to have a GUI that allows a user to specify a win condition (and locations to traverse, other conditions etc). Then, the user can share it online. I haven't played GTA V online, but I think it does something like that.

But actually, I don't want those sort of win-conditions for this particular game, not even DIY stats. It's just an immersive simulation. Guess I'm just not too sure it WILL be immersive or engaging - even for me to play! Just have to see, I guess.

Taking your lead, I suppose if a movie can be immersive, why not a "game" which has no win-condition? But the moment I say that, I immediately realize that movies _do_ have "win-conditions" \- just of the protagonist, not the viewer/player. Goals, stakes, motivation, obstacles are all important narrative components.

Can you have an immersive _movie_ without narrative? Sort of maybe, some experimental/arthouse, but they aren't very popular (and arguably do have some kind of narrative).

You're probably right about definitions, but they do inevitably lead to the components of a game/non-game, and whether they are engaging, and what _makes_ them engaging... and they're easy to ask.

</comment></comment></comment></comment></comment></comment><comment><USER68> [https://sandspiel.club/#A6xPmAP4TSEpcwThAFSB](https://sandspiel.club/#A6xPmAP4TSEpcwThAFSB)

erase the thingy to the right, and the planets on the left grow upwards again.

<comment><USER68> flower pixel sort hurricane

[https://sandspiel.club/#7oUTxtqzUoLJTVuapqmc](https://sandspiel.club/#7oUTxtqzUoLJTVuapqmc)

</comment></comment><comment><USER105> I've never played Powder Toy, but I do remember playing something called Powder Game. Are they related in some way?

</comment><comment><USER106> This is the most satisfying thing I've ever seen on HN!</comment>


On the Trail of a Silver Theif - <AUTHOR> http://gardenandgun.com/article/trail-silver-thief?src=longreads&mc_cid=4b55df7694&mc_eid=5a612a474e

<comment><USER2> s/Theif/Thief/

It's right in the web page title.</comment>


Why CRISPR-Edited Food May Be in Supermarkets Sooner Than You Think - <AUTHOR> https://gizmodo.com/why-crispr-edited-food-may-be-in-supermarkets-sooner-th-1822025033 <comment><USER2> While I am sure there will be some pitchforks and torches for this, it seems mostly harmless to me. One of the most common objections to GM crops goes something like "what if scientists add a peanut gene to my tomato? I am allergic to peanuts!" (What is 'a peanut gene' anyhow? Genes code for proteins, one gene won't give that tomato a shell - and as an aside, if you're allergic to aflatoxin from mold that grows on peanuts, that won't be a problem either). So knocking out genes isn't be adding anything to the plant. I'd still like to think we'd do some testing, but it seems generally likely to be safe...

<comment><USER3> I wonder if they could use this technology to make a hypo-allergenic peanut?

<comment><USER2> That would require making peanuts resistant to Aspergillus sp. which would probably involving adding, not removing genes (but I am not a geneticist...).</comment></comment></comment>