Malicious hackers completely destroy flight sim site - <AUTHOR> http://news.bbc.co.uk/2/hi/technology/8049780.stm

<comment><USER2> Obligatory reminder:

Back up your system. Now. Automate your backup process.

That is all.

<comment><USER3> They did backup - but the hacker (attacker) killed the backup server too.

How do you handle that? I mean, your server has to be able to write to the backup server - so the attacker can also.

It would need to be some sort of append only filesystem, and who does that?

I use ssh to copy the tar to a different server - remotely distant. Which I thought was enough, for fires in the datacenter, or going out of business without notice. But who protects backups from an attacker? With ssh they can attack the remote machine easily and remove the files.

Maybe I should add a cron on the remote machines to chown the files away (and hope that server also isn't vulnerable).

<comment><USER2> Pull, rather than push. (For instance, set up a cron script on your home PC to SSH into your production box and download a backup from time to time (rather than having your production box push a backup elsewhere).

</comment></comment></comment><comment><USER4> Sounds like they used two servers, and the other was probably a backup server, maybe even a db slave, designed to run the entire web app in case the other was down. This probably lead to it being compromised in the same way the main server was.

There are many good solutions mentioned to this problem, whether it be backing up to physical media once a month, or using tarsnap. I feel though that this could have been easily prevented by running a dedicated backup server, instead of one that was probably vulnerable in the same way as the main server was. In my experiences, vandals usually aren't the most brilliant bunch and usually won't go deeper into your others servers unless it's related to the original exploit, or possibly easier. Of course this could have been more than vandalism, maybe a personal vendetta or something.

</comment><comment><USER5> not sure if I'm more annoyed by the dumbass crackers or webmasters...

<comment><USER3> How was the webmaster a "dumbass"? They had backups, but the hacker (yes I know it should be cracker - too bad - that battle is lost), took it out.

<comment><USER6>
        "Unfortunately, we backed up the servers between our
        two servers."

It sounds like two servers ran the site and backups were jsut swapped between the two, that is a hackneyed setup.

Besides, all it takes is burning the backups to DVD once every blue moon to prevent massive data loss.

</comment></comment></comment><comment><USER7> The site's absence from the time the content was deleted until the time it would have taken to restore a backup is the fault of the dirty, stinking crackers. From that point onwards, it is the fault of the person who decided on the backup scheme as, evidently, it was insufficient.

If I don't wear a seatbelt and am thrown from the car in a crash, that is my fault. The crash itself and injuries I would have sustained anyway might be someone else's fault, but anything resulting from the difference between wearing a seatbelt and not wearing a seatbelt is my fault. I'm negligent from the instant I put myself in a position where I could conceivably have a crash without having put a seatbelt in place.

</comment><comment><USER8> This is very sad news.

 _its main focus was on Microsoft's Flight Simulator._ So this was a game review site, I had initially thought it was a place where you physically go (the false cockpit kind of training place).

Lesson: _"Some have asked whether or not we had back ups. Yes, we dutifully backed up our servers every day. Unfortunately, we backed up the servers between our two servers. "The hacker took out both servers, destroying our ability to use one or the other back up to remedy the situation."_</comment>


Double Brace Initialization in Java - <AUTHOR> http://www.c2.com/cgi/wiki?DoubleBraceInitialization <comment><USER2> I know this is blasphemy in the Java world, but I'd probably use a preprocessor to transform some clean syntax into the normal Java code. I'd rather have the slight increase in build complexity over the potential issues with the extra classes and the breaking of assumption about how things compare and such.

<comment><USER3> Something like Xtend ( <http://www.eclipse.org/xtend/> ) ?

<comment><USER4> Never heard of this. Thanks

</comment></comment></comment><comment><USER5> Check out the Immutable Maps feature, does the same with some nice syntactic sugar - [http://docs.guava- libraries.googlecode.com/git/javadoc/com/g...](http://docs.guava- libraries.googlecode.com/git/javadoc/com/google/common/collect/ImmutableMap.Builder.html)

<comment><USER6> You don't even need to use the Builder directly, just use the structure's "of" method:

       ImmutableSet<Foo> foos = ImmutableSet.of(a, few, elements);
       ImmutableMap<Key, Value> map = ImmutableMap.of(k1, v1, k2, v2);

</comment></comment><comment><USER7> This just makes me glad I don't have to write Java any more.

<comment><USER8> > This just makes me glad I don't have to write Java any more.

You don't have to do it even if you are writing Java. This is a perfect example of clever for the sake of being clever.

<comment><USER9> The issue of course is that both the clever way and the 'normal' way are not exactly pleasant compared to most other modern languages.

</comment></comment></comment><comment><USER10> This seems to add more complexity than what it's worth. Non-final requirement and the equals problem, i'd rather ignore it all together!

</comment><comment><USER11> I am no Java expert but they write that this syntax automatically creates a anonymous inner class - every time you create a collection instance in this way. Or am I wrong about this?

Most of the examples given are creating static objects but the last example a non-static object is created in the same way. Imagine you are doing this a couple of times then you end up with a lot of anonymous classes. Isn't there a limit on the number of classes you can have? At least it makes debugging problematic.

But I might be wrong about this since I am not a Java expert...

<comment> brown9-2 In the majority of cases where you are deploying your java code on a server you own, having a few dozen or hundred extra classes is not a big deal. Each adds maybe a few kb to the size the jar, and as for loading costs, a class is only loaded into a running JVM once.

The cases in which to worry about stuff like this is if you need to load the code on someone else's machine, like with an applet or Android.

<comment><USER12> Isn't this what jars are suppose to make transparent and simple?

</comment></comment></comment><comment><USER13> I consider this to be an antipattern, in part for some of the reasons listed in the article. The syntactic convenience being attempted here is more appropriately encapsulated as a utility method.

</comment><comment><USER14> It can also make UI code much more readable, but it also comes with the cost of making the bytecode much larger (each use of the double-brace initialization creates a new class).

</comment><comment><USER15> I had known of this before, and I'm fairly certain I've used it before. However, one thing I didn't consider is the equals issue commented on the site. As attractive as it may be to use, I think from now on I will refrain from using the double braces.

<comment><USER8> > I had known of this before, and I'm fairly certain I've used it before.

I consider myself pretty liberal when it comes to coding standards and being clever, but this is something that will badly piss me off. I can't quite put my finger on why I feel so, considering I am perfectly fine with most of the perl tricks. For example, <https://gist.github.com/3392206> looks good to me(you are using Perl, you should know about list and scalar contexts).

<comment><USER6> Ah yes, the goatse operator.

</comment></comment></comment><comment><USER16> Collection literals for inclusion in JDK8:

<http://jcp.org/en/jsr/detail?id=337></comment>


A look at people who have persistently high spending on health care - <AUTHOR> https://www.healthsystemtracker.org/brief/a-look-at-people-who-have-persistently-high-spending-on-health-care/ <comment><USER2> Some of this analysis may seem obvious, but it's really interesting to see how much prescription drug spending plays a role. Could a reason that U.S. healthcare spending is higher on average than other countries be partially due to us essentially subsidizing new drug development? It sort of leads into a question of how effective is our prescription drug spending?

<comment><AUTHOR> The pharmaceutical industry would have us believe the cost driver is R&D and the money well spent. Aside from patent regreening and out of control marketing [0] I think the change in pricing methodology from cost-plus to value-based [1] explains most all of the delta.

[0] Advertising chemotherapeutic agents directly to the consumer ought to be disallowed as an expense under the tax code, IMO

[1] [https://en.wikipedia.org/wiki/Value- based_pricing](https://en.wikipedia.org/wiki/Value-based_pricing)

Copyedited.</comment></comment>


Ask HN: Would anyone be interested in using a new Codeigniter Admin Type Module? - <AUTHOR>

Please note that the project is not a front-end utility but more of a starting point for new projects.
Last year, I had started work on a personal project as I was working on a lot of Codeigniter based websites, but then I was just one year old into the Web and work got haywire. My modules were quite messed up as I had picked them up from a number of my projects.
The motivation behind the project was that as a developer I needed a better and faster starting point for my projects. A set framework with a decent UI for my local projects. So, I used Twitter Bootstrap and quickly wound up a small project which I could just fork off for my new projects.
What I was able to build over the couple of months was an admin dashboard with these features -
* bcrypt for password hashing (was using SimpleLoginSecure)
* Add/Edit/Delete Users
* Add/Edit/Delete/Assign User Roles
* Separate website sections for Administrators and Users
* Master Site Management - Site Name and Description
* Notifications for users - Text based (static, manual)
Most of the modules built were quite flexible to be extended/rewritten easily.
After sometime, earlier this year, I started using Laravel and then I felt that most of the features I felt were missing in CI were there in Laravel, and I stopped my project.
From whatever I have learnt over the last few months is quite worthwhile in working on my project again as I can imagine the architecture better. And I have thought of some new interesting modules to incorporate in this version like -
* Modals (based on Twitter Bootstrap) - which can be called via a common controller and extended for different functionality
* User Role based feature assignment
If you would be interested in using such a project for starting your work, I would appreciate some feedback in terms of the features you would be looking  for, because each developer has his personal preferences in terms of his starting stack.
Note: The project name was "Igniteplate" <comment><USER2> I use Codeigniter for a lot of my projects since its so easy to get going with it, with that said, I would definitely be interested.

For authentication I use Tank_Auth. Are you happy with SimpleLoginSecure?

<comment><AUTHOR> Tank_Auth was my first go actually, but then SimpleLoginSecure had all these premade functions which were easy to use and configure. And it had bcrypt too. It's quite awesome, but I plan to rewrite the library for the project.

<comment><USER2> I might look into SimpleLoginSecure, thanks. Good luck with the project.</comment></comment></comment>


Show HN: Distraction Free Writing - <AUTHOR> http://www.dailyoje.com

<comment><USER2> Hey Kyle, looks good. Tis the season of the notes applications, as if the rest of the year was not enough =)

As you said, it has similarities with Giantpad no doubt about it, although my main differences are the markdown and the projects part. These apps don't vary much from one to the other, at the end it's all about the details.

What is that 1 that appears at the end of the notes list?

<comment><AUTHOR> Artur, you should only be seeing the list of notes that you created, would you mind sending me a screenshot so I can see what exactly you are referring to?</comment></comment>


Exploring Impostor Syndrome in Technology – SXSW '15 - <AUTHOR> http://www.hanselman.com/blog/ExploringImpostorSyndromeInTechnologySXSW15.aspx

<comment><USER2> I think my girlfriend has impostor syndrome and she has this bad. We just finished out master's degree in physics. She believes that she didn't even deserve the degree. While it's true that I helped her a lot with learning but she never cheated on a single exam.

It's really bad and just because it occasionally turns her down. It really affects her decisions and makes her nervous on verbal exams. I'm sure that the teachers are well aware of this syndrome even if they don't know it's name because it's quite common among students. So it really didn't matter at verbal exams. Now that she starts job hunting it could be a huge problem.

I just read about impostor syndrome like two days ago and I really don't know how to introduce it to her. If you tell a paranoid person that he/she has paranoia than the answer could be that "well, it's not paranoia if they really follow you everywhere".

<comment><AUTHOR> I believe I "suffer" from imposter syndrome myself. In highly technical and forever knowledge expanding fields like tech and science it's easy to always feel behind. Odds are someone somewhere knows more than you about a particular topic. The more we know, the more we know that there's even more we don't know. I think that's the curse for me. I focus on the unfinished rather than the accomplished. When a superior asks me a technical question I may not know the answer off the top of my head but I have confidence that I can learn or find the answer or a solution. I fear others will see an imposter instead of a valuable skillset: ability to quickly learn and discover.</comment></comment>


Crowd Helps Replace Boat Ruined in Tsarnaev's Capture - <AUTHOR> http://www.bloomberg.com/news/2013-04-23/crowd-helps-replace-boat-ruined-in-tsarnaev-s-capture.html

<comment><USER2> Was the boat not insured? (Or does his insurance not cover this kind of thing?) Would he not be reimbursed by the police department for destruction of property in pursuit of a suspect?</comment>


I Lost $50k with One Bad Investing Decision. Here's What I Learned - <AUTHOR> https://calvinrosser.com/investing-guide/ <comment><USER2> It's amazing how quickly one can go from a "disciplined" investor to making decisions contrary to their principles, regardless of how much you _think_ you believe in them.

I too, found myself making emotional investment decisions throughout this pandemic, despite typically just leaving my money in ETFs and rarely checking them.

<comment><AUTHOR> It was a perfect storm for me. Other life events – moving, buying a car, burnout at work, etc. – helped create a psychological cascade that eventually won out on one rainy afternoon. Had a few other events not been there, might have been a different story, but that's the point of this guide. Regardless of the event or series of events, it will help keep the strategy clear and psychology more intact.

</comment></comment><comment><USER3> Love to see Crypto as 5% of the portfolio. It's one of the few asset classes that's not very correlated with the overall market, so reasonable addition to classic MPT.</comment>


Ask HN: What do Microsoft employees think about the new Scroogled campaign? - <AUTHOR>

See http://www.scroogled.com/ <comment><USER2> I, for one, generally like to pretend that none of Microsoft's ad campaigns actually exists.

My suspicion is that Microsoft's current spate of negative advertising can be traced directly back to the Mac vs PC ads of a few years ago. These happened to coincide with a remarkable rampup in the popularity of Apple's PCs, and that cannot have gone unnoticed at the C-levels. Whether or not the ads were actually a driving factor in the change is, of course, hard to say -- but they certainly didn't seem to discourage anyone from buying Apple.

What the decision-makers seem to have missed, though, was that 1) the ads themselves were gentle and somewhat charming (or at least John Hodgman helped make them that way) and 2) although these things were largely exaggerated for comic effect, they often targeted real pain points that consumers actually had with Windows.

Of course, in implicitly painting Microsoft as buffoonish and perhaps even incompetent, I think these ads generated more rage in the boardroom than they would have if they'd been merely full-on attack ads in the style of "Scroogled".

</comment><comment><USER3> Seems like they're spending a lot of money on the campaign. We're getting local radio station adverts here in Glasgow, Scotland. Are they placing them on radio stations everywhere?

</comment><comment><USER4> Personally, I'm not a fan of the Chromebooks BUT that tacky-ass website makes me want to love them. Did a billion-dollar company really make that crap?</comment>


Does not GPU compute - <AUTHOR> http://www.alexvoica.com/does-not-gpu-compute/ <comment><USER2> For actual mobile devices, yes there is no need. FP64 only has a use in scientific research, maybe finance and a few other fields. Even there you would do a lot of mixed precision stuff.

The reason that the support was there was probably that they wanted to design a single chip and either remove/disable cores for truly mobile or general purpose boards while having the logic available for customers that would actually want it.

</comment><comment><USER3> I once needed FP64 in a GPU for physics calculations. One reason that impulse/constraint won out over spring/damper is that spring/damper has a total loss of precision problem with 32-bit floats.

</comment><comment><USER4> I don't remember there ever was a time were FP64 was considered a big deal for mobIle GPUs. The article is trying to debunk a claim that was never popular to begin with.

<comment><AUTHOR> Allow me to refresh your memory then. How does the following sound to you?

"We also support Full Profile and 64-bit natively, in hardware. After years of evangelising the benefits of such an approach it is nice to see other players in the industry join down this avenue." [https://community.arm.com/groups/arm- mali-graphics/blog/2013...](https://community.arm.com/groups/arm-mali- graphics/blog/2013/06/03/mali-t622--bringing-full-profile-gpu-compute-to-mid- range-devices)

"Mali-T622 was specifically tailored for this job. Mali-T622 also supports OpenCL Full Profile and includes double-precision FP64 and full IEEE-754-2008 floating-point support which are essential features in order to enhance the user experience" [https://community.arm.com/groups/arm-mali- graphics/blog/2013...](https://community.arm.com/groups/arm-mali- graphics/blog/2013/06/03/mali-t622--bringing-full-profile-gpu-compute-to-mid- range-devices)

I could go on with the examples but I think there's no need to spam the thread with tens of blog articles that say FP64 and "native 64-bit" (whatever that means) are essential to the mobile experience.

</comment></comment><comment><USER5> Is there any point in actually damning FP64 this hard anymore? There is no reason, imo, for a modern GPU to get worse than 1/3rd performance on FP64 over FP32.

Side note: Non-Quadro/Tesla "professional" GeForces have FP64 performance specifically locked out, and AMD has started also doing this with GCN-era chips.

<comment><AUTHOR> My focus was on mobile, not desktop GPUs. However, I've noticed that energy and area efficiency are starting to become more relevant in desktop too.

At the end of the day, I guess it's all about finding the right balance for your target application.

</comment></comment><comment><USER6> Even if you're doing fintech simulations, FP16 could well be plenty of precision for a first pass, and then you'd get all those extra cores and ops/watt.

FP64 seems like a very small use case for most of the parallelized workflows I can imagine.

<comment><USER7> For scientific workloads, double precision is a must have. The 7 digits of FP32 is not enough. In my lab, we haven't updated our Kepler based GPU since 2013 for this reason.

<comment><USER8> I agree but the article has an answer to this.

 _Since I don't plan to run any DNA analysis or fintech simulations on my smartphone anytime soon, I am very satisfied having FP32 /FP16 precision in mobile right now. And so should you._

<comment><USER7> You are right, I thought vessenes meant: "FP64 seems like a very small use case for most of the parallelized workflows I can imagine" for any platform.

</comment></comment></comment></comment><comment><USER9> It's not just mobile either. The original Titan card released in early 2013 has much higher FP64 performance than any later Nvidia card.

</comment><comment><USER10> It may be that mobile graphics gets by fine with FP32 or less, but I worry that if FP64 gets sidelined then none of the effort going into this hardware today will benefit applications that need real precision like science, weather prediction, GPS, etc.

<comment><USER11> Not really a problem. NVIDIA sells cards based around 32-bit (and now increasingly, 16-bit) ALUs for desktop usage, while offering more expensive ones with more 64-bit-focused ALUs for workstations and compute. Compute is important enough to their bottom line to justify it.

The real problem is that NVIDIA has compute locked down with CUDA. Mobile chipset vendors can't expand into compute if they're barred from entry at the API level.

<comment><USER12> Given the quality of OpenCL and its cross platform nature, it's amazing that everything is still written directly for CUDA...

There were no CUDA -> OpenCL toolchains last time I checked. Which is even more frustrating.

<comment><USER13> There is CU2CL: [http://chrec.cs.vt.edu/cu2cl/](http://chrec.cs.vt.edu/cu2cl/)

The cross-platform nature is actually part of the problem--the whole point of doing GPGPU work is that you're playing to the hardwares' strengths, which can be difficult when the hardware can be nearly anything from a CPU to a GPU to an FPGA.

It doesn't help that until recently, AMD hasn't tried to push OpenCL nearly as hard as nVIDIA pushes CUDA.

<comment><USER14> Modern AMD and NVIDIA GPUs are fairly similar hardware-wise, and it is not hard to write OpenCL code that executes efficiently on both. I agree that it is pretty hopeless to write performance-portable OpenCL across entirely different architectures, however.

<comment><USER13> Sure, but if you go with nVIDIA, you also get access to all the other goodies they distribute (thrust, cudaFFT, cudaDNN, etc) and all the CUDA-compatible stuff other people have written, like Theano and TensorFlow.

It does seem like people have gotten a little more interested in OpenCL lately, but it still lags pretty far behind. As dharma1 says below, AMD seems weirdly uninterested in catching up. If I were in change of AMD, I'd be throwing money and programmers at this: "Want to port your library to OpenCL? Here, have a GPU! We'll help."

</comment></comment></comment></comment></comment></comment><comment><USER15> A more optimal approach might be to look at what you are trying to accomplish and figuring out the scale that works best for what a local view appears to be.

For example, if I imagine a game world where it's open, but there are natural limits to useful render distance, then it is possible to define absolute maximum scale sizes.

My new to this problems space view is that even if the world is larger than those sizes, there is probably still some limited observer and scale that makes sense. Building in some spare room and padding in to the scale and it can then be transformed to center on different points. As movement towards one of those points happens the new centering for each object could be pre- computed in spare cycles (or at least spread out so it isn't a single noticeable hit).

<comment><USER16> > My new to this problems space view

I'm going to be downvoted because this isn't particularly on-topic, but nonetheless I'd like to suggest you try hyphenating phrases like this to make them easier to read, so you don't construct garden-path sentences where the correct parse exists but isn't obvious.

Thanks!

<comment><USER17> Garden path sentences make pleasent experiences in parsing that accentuate the means to the end resulting communication. Smell the roses

<comment><USER18> I like garden path sentences in my Joyce, but keep them off HN, please.</comment></comment></comment></comment>


The Quiet Revolution Is Here. Help Us Map It - <AUTHOR> https://www.freelancersunion.org/blog/2014/03/05/quiet-revolutionary-map/

<comment><USER2> OK, since someone already trolled about Google Maps (in a poorly reasoned way), I'll lodge my own curmudgeonly criticism: mapping is _rarely_ the way to solve anything.

Especially in New York, and with standard Google Maps service, it's not hard to find where things are. It's hard to find that they exist -- and, if they do, whether they fit your need...and clicking around on a map is not the efficient way to do it. Nor to enumerate it.

Even the most famous map -- John Snow's cholera map -- was not revolutionary in itself. Snow didn't find out anything from mapping, it was just part of the documentary process and the one made famous by Tufte. But Snow himself would've concluded that the map was of little evidence, because such maps were used to _prove_ the miasma theory that he was trying to _disprove_. And his map, without the data that he collected, fell into this visual trap.

So what is the way to do things? Use a spreadsheet. Think about the important facets about each entry. And hell, one of those could be "address", and in literally one step, you can also make a map out of it if you want.

And when I mean "especially in New York", I mean that geographical distance is not the most useful metric. Even when it comes to geography. I prefer proximity to what subway station, and that is a kind of metric that is obscured/obfuscated by a map

<comment><USER3> I agree with you, in a way.

The map itself may not be a way to solve anything, but the data it's collecting could be. Like you say, you prefer knowing proximity to subway stations - not just seeing a map. But the need to figure out that proximity is what makes collecting locational data (in a fun and user-friendly way, like OP's map) so important.

Regarding my apparent trolling, I think HN may have missed my point. Using the Google Maps API implies agreement to their ToS, which restricts one from using non-Google basemaps, and limits usage of the map in certain ways. While many people ignore, or are never affected, by usage limits, this still obligates developers to Google's quotas and pricing tiers (updated significantly in late 2013). There are other, similarly-implemented mapping APIs with more options, where you aren't locked-in to a particular vendor's load quotas. Tying OP's project to this particular API is a bit like saying "Support Local Businesses! ...click here for our Cafe Press site."

<comment><AUTHOR> Thank you for more information on your critique. I'm not familiar with how Google leases out their mapping software, but it sounds like it's definitely worth having a conversation about. Unfortunately, I'm in no ways tied to Freelancer's Union - Just admiring from afar.

</comment></comment></comment><comment><AUTHOR> Now that it's had some time to develop analysis without my input, I wanted to explain why I posted this...

I've had some thoughts rattling in my head for a couple years now on building networks/tools to unify/empower small organizations, and to reduce hierarchical structures. There are multiple ways I hope to go about this, and would love to discuss it with anybody who wants to email me.

More or less, though, this is a very basic form of one of my ideas - or a decent starting point. I definitely agree with some of the criticism of a map- only set-up as danso mentioned, etc... I prefer the way Yelp is set up, for instance.

Also, I don't believe Freelancer's Union has been covered here much (if at all), and I believe that they could be a great resource to many of the people here.

</comment><comment><USER4> I hope you haven't chose the name based on [http://en.wikipedia.org/wiki/Quiet_Revolution](http://en.wikipedia.org/wiki/Quiet_Revolution). A wonderful revolution that left Quebec in its current advanced state ;-)

PS: not all of it was bad.

</comment><comment><USER5> Great idea, but the rhetoric is a bit overblown.

</comment><comment><USER6> ...I'll give it a couple months.

<comment><USER7> It's obviously a step in the rivht direction, but the branding and creative is too uninspiring for a mass onboarding. While I share their frustrations, I would never become "Quiet" because the people behind it appear naive and fail to address complexity in their manifesto (ie: cororates = bad, yoga = good). I think it is also highly derivative of the "slow" movement that sprung up a few years back.

I don't like to hate on creativity , but faux-revolutionaries that don't address complexity really annoy me.

</comment></comment><comment><USER3> Big, grandiose talk... Google Maps API. Amusing.

<comment><USER8> I don't see what is wrong with using the tools at hand.

<comment><USER9> There isn't. It's just a troll (an anti-Google troll which is a common variety).

Made an account for this purpose, pay it no mind: [https://news.ycombinator.com/user?id=pepperax](https://news.ycombinator.com/user?id=pepperax)

<comment><USER10> That doesn't invalidate the comments.

Your name is also green, does that invalidate your comments? No.</comment></comment></comment></comment>


The Silent Majority of Experts - <AUTHOR> http://prog21.dadgum.com/143.html

<comment><USER2> There's some sort of point about experts in general which I am not sure exactly how to articulate but I think is relevant. I'm going to try to klutz through it anyway.

There are lots of fields where fundamental theories are relatively weak or have poor predictive powers. Macroeconomics, climatology, nutrition etc. Basically, we don't have real Knowledge. We have a bunch of data and a bunch of theories. Some of the theories that aren't very general or aren't very applicable to real life scenarios _are_ predictive but relatively useless. We know that certain nutrients have some importance. We know that restricting caloric intake leads to weight loss. We know that money supply, inflation and other things are linked together in various ways. The theories don't answer the questions we want then to with any kind of certainty. Still, we sometimes need to make decisions and some knowledge is better than none so we go and find experts anyway. There _are_ people who are experts. They're experts in the study and they are aware of our knowledge in the field such as it is. But they don't have real answers because there just aren't useful answers to be had at this point. All of medicine was like this until pretty recently.

When Darwin published "The Origin of Species" evolutionary biology came to being as a different kind of field. One where the knowledge was real and the theory predictive. The theory was fundamental and strong. Darwin could make claims & predictions with a lot of confidence. Subsequent biologists could keep making predictions and when new discoveries (like genetics) were made, they were found to be consistent with the predictions of evolutionary biology. In fact, if they hadn't been, a careful researcher would probably assume that the mistake was in their own conclusions, not in Darwins. So if Chimpanzees are closer to humans than to Gorillas, we share common acceptors not shared with Gorillas and the distinction between Humans and Apes (if we want to keep Apes as a category) is morphological (which is allowed by Darwin) rather than one of proximity on a family tree.

Darwin was careful. He didn't publish until he was sure. If he didn't been sure we wouldn't have published. There are lots of Darwins in every one of the former type of field. They haven't discovered real Knowledge that can tell them what to do in an economic recession or what people should eat so they shut their mouth and keep looking. They are still experts but their expert opinion is "I dunno." That doesn't register as expertise so we go on to find someone that will explain about Aggregate demand, antinflamatory diets, carbohydrates or something like that.

Development methodologies, executive compensation, distributed companies etc. are in the category of things that we don't have real "scientific" knowledge about. Most business-ey knowledge is like that.

Now it sounds like I'm bashing people who talk about this stuff and I don't mean to be (hence my disclaimer at the start). I'm just pointing out that our knowledge in different fields is different. Joel Spolsky is very insightful in his essays about the Software industry, for example. But there are certain people that are comfortable with anecdote and generalities and assertions that may turn out to be untrue. There are certain people (like Darwin) who are not. If we're talking about development methodologies, the people we here from are self selected. They are comfortable making grand statements, manifestos and such even though they may be wrong.

That's still useful and certainly interesting, but there is a big category of people we aren't hearing from and they are relevant to the discussion.

<comment><USER3> This comment is sufficiently interesting that I want to grab a coffee with you and talk about it IRL, but you don't have any contact information in your profile so I don't know where in the world you are.

The next time you roll through Austin make sure to look me up.

<comment><USER2> Dublin Ireland, If you're over digging up ancestors, give me a shout.

And thanks for the compliment :)

</comment></comment></comment><comment><USER4> But without any way of correcting for this silent majority, or any sort of predictable systematic tendency, so what? We don't know everything? There's a lot of things we don't know, and on most topics we hear from only a small fraction of people, both expert and otherwise. Why is this worth pointing out?

(The point of knowing about things like publication biases in science is that they _are_ systematic: once you know about publication bias, you know that estimates are on net, higher than they should be, and this is something you can apply to evaluating science that you read.)

<comment><USER5> But the non-expert bias online _is_ systematic. Time spent participating online is time _not_ spent honing your craft, and so there should be a strong inverse correlation between posting frequency and expertise.

There are real, pragmatic ways to correct for this bias and get more useful information out of online forums, too. For example:

1.) Look for people who have a solid, independently-verifiable track record who are now just starting ventures that need publicity. For example, Marc Andreesen had an absolutely awesome weblog in the ~1 year prior to founding Andreesen-Horowitz, but now his comments are largely limited to snarky one- liners and occasionally insightful one-paragraphers. Why? There's no incentive for him to spread his knowledge around the general public; his firm already has enough of a reputation to draw the top potential founders. The entrepreneurs he funds get his advice, but everybody else has to make due with occasional soundbites.

2.) Look for people who post only brief, offhand comments, but then follow up on those comments and do the research yourself. Many "silent experts" may have time in between compile breaks to throw in a throwaway comment or correction, but they don't have time to write a long missive. However, if you follow-up yourself and do a bit of Googling, you can take their clues and learn what they were talking about. This is how I found out about Haskell, it's how I found out about writing scalable event-driven servers, and it's how I found out about writing multi-language systems where a scripting language is embedded inside a larger program.

3.) Look for people who can see & acknowledge both sides of an issue. Practical experience teaches you about trade-offs, it teaches you about alternatives, and it teaches you that there are often multiple solutions and oftentimes you need to give up some desirable properties to get others. Blog posts by Internet Fanboyz teach you that there is One True Way Of Doing Everything that will solve all your problems, because that is the only way they've ever encountered.

4.) Similarly, look for people who stay out of flamewars. Folks with real jobs who care about their craft don't have time for that shit, because becoming an expert takes _a lot_ of time. So the folks who _do_ have time for that shit are generally either folks without jobs or folks who blow off their jobs to score points on the Internet.

5.) And perhaps most effectively - work directly with an expert. Start contributing to open-source and understand why the maintainers make the choices they do. Take a job at a well-respected company. Work with the gruff neckbeard at your employer. When experienced programmers have to clean up the messes you make, they have a very strong vested interest in not letting you make any messes.

<comment><USER6> "Time spent participating online is time not spent honing your craft, and so there should be a strong inverse correlation between posting frequency and expertise."

Anecdotally, this is absolutely wrong. I can think of almost no one who participates online, who isn't better than most people who don't participate online.

Maybe it's an issue of averages, and at the edges this is true - that the average "superstar" spends less time online, but that the average "OK" person does spend time online.

But I can certainly say, the silent majority of programmers, the ones who don't take part in anything except just focusing on their work, are almost always worse. I've seen this time and time and time again.

<comment><USER7> Availability heuristic.

I think your perspective may be warped by two things: not having worked with excellent engineers in person, and only considering relatively famous devs in your set of people who "participate online" \- e.g. you're excluding the denizens of the last 80% of pages on StackOverflow.

One of the most capable engineers I've ever worked with is a guy called Yooichi Tagawa. The guy has an incredible appetite for complexity, as well as spooling up on old codebases and new technologies. But you'll find very little by him online, both because he's Japanese and doesn't use English often, and also he's squirrelled away inside Embarcadero, working on Delphi compiler as he's been doing for the past 15 years or so.

<comment><USER6> "Availability heuristic."

It's certainly possible. And there are definitely a great many devs who don't participate online but are brilliant, don't get me wrong.

But I still think the average person who _does_ participate online is better than the average person who _doesn 't_.

In retrospect, what bothered me was the implication that participating online is detrimental, when I think it's just the opposite, if for no other reason than that people who do participate online tend to care more about programming than people who don't, and are therefore better.

Also, availability cuts both ways. Don't think about the amazing devs you've worked with, think of the averages. Trust me, I've worked with people of wildly, _wildly_ varying ability, I know what's out there. Both on the amazing side, and on the "can't code worth a damn" side.

<comment><USER8> The problem is that you're missing a huge swath of deep (as in, learned over decades of practical work) knowledge that exists within the community of engineers -- not just programmers, but all types of engineers -- in the 40+ age range, who have been working and learning and applying in industry since before the social/online boom, and may well be uncomfortable participating in the same way as the current generation tend to. Generally speaking, and I know this is an unfair generalization, that generation tended to have an approach to problems of "let's reduce this to it's core pieces and see what we know, then experiment until we understand it well enough to solve the macro- problem" In other words, the scientific method. My experience with folks who've entered the market in the past 5-10 years is that, when they first receive a problem, their inclination is to search the web for possible solutions and then hack other people's code to address the 80% easy part of the issue, while often completely ignoring or potentially just misunderstanding the more difficult 20%. This kind of behavior is one of the reasons company culture is critical, and employing senior, experienced engineers & technical managers who have at least a partial focus on engendering critical thinking and problem solving skills in their younger team mates.

Point of reference: I manage a team of about 100 programmers, analysts and DBAs in India, Mexico, Brazil, Scotland, and the US.

</comment></comment></comment></comment></comment></comment><comment><USER9> We see this in the diving community too, there are a bunch of forums where people have prolific arguments, usually about which agency or brand is best, stuff that has been done to death and barely matters anyway. Whereas if you get off the Internet and go to dive sites you will find a ton of friendly people who have a thousand dives and are happy to share real knowledge, who never bother to go on the forums.

</comment><comment><USER10> One place in which this problem was particularly apparent was (is? I haven't kept up with it for a while) the PHP community. PHP gets a bad rap as a terrible language, but a large part of this was the ease of beginning the learning process with PHP; download [X|W|M]AMPP, spin up an Apache instance, and get just dive in. What this led to was a lot of sub-par instruction material from people who didn't have a solid grounding in design principles, or "tutorials" created from people who had little experience.

Despite this, there were clearly experts who could "finely craft" PHP applications. Although Facebook may not be the best example, it is the first one that comes to mind.

<comment><USER11> I've worked on huge web applications that were super maintainable and fun to work on, solving pretty interesting problems for multi-billion dollar companies... In PHP. I sometimes want to defend the language, but it does have some terrible parts to it, and a lot of the people that use it aren't software engineers. But a lot of them are, and so I just choose to work with them instead of complaining about it all!

On top of that, the latest developments in the language and community have seen some big changes for the better around tooling, best practices, and the like. So I'm firmly of the belief that with the RFC, PSR and Composer/Packagist trio, as well as things like HHVM, we will see things begin to change for the better on this front in the future. Call me Mr Optimistic ;)

</comment></comment><comment><USER12> That's why I tried to stop caring about the [current] web and embraced the future by reading mailing list or irc channels of actual projects. Going close to where things actually happens, raw.

</comment><comment><USER13> It's true. I'd label it "indirect knowledge hoarding." But the excuses/reasons are usu. most people are busy or don't feel they'd make good teachers.

There has to be an incentive / prioritization by the person to do something about it. Also, some people don't even think they're experienced enough.

Maybe useful knowledge transfer via teaching or at least reviewing teaching material.

</comment><comment><USER14> The point that resonated the most with me here was that people need to be given big opportunities to fail without prejudgement, otherwise they'll never build their skillset significantly. Obviously nobody is ever hired in a vacuum, but the takeaway for me was:

remember to judge others on their past behaviors, and nothing else.

</comment><comment><USER15> As the adage says, empty vessels make the most noise.

Or: Those who can, do. Those who can't, talk about it.

</comment><comment><USER16> This seems wrong to me, and fairly obviously wrong.

If you take a group X, a certain percentage Y hang out in newsgroups and blog. He himself was part of that Y for Forth.

Why would the percentage Y be significantly different for any given language?

The number of bloggers/newsgroup users is like a survey, it's not complete, but it's a very good indicator of how popular a language is. The popularity of a language increases its ease of use by a considerable factor (libraries, help, documentation, etc.).

Hence Forth being a language no-one uses today, which actually contradicts his point, rather than illustrating it as he seems to think. Elizabeth Rather was right, there were people doing interesting things with Forth, but there weren't many.

And for most of us, that's an important thing to consider when using any tool.

That there is a huge number of bloggers looking down their nose at Perl & C++ simply shows there's something wrong with both those languages. It doesn't mean that they're not still useful though, nor does it mean something else solved the problem until a lot of 'I used Go/Rust/Haskell/Whatever to make non-trivial program' posts appear.

<comment><USER17> > If you take a group X, a certain percentage Y hang out in newsgroups and > blog. He himself was part of that Y for Forth. Why would the percentage Y be > significantly different for any given language?

There are lots of reasons I can imagine: people trying out newer languages have more reason to talk publicly about what they're doing, since they usually have a vested interest in the growth of that language. Organizations with tight rules on secrecy are often risk-averse in general and less likely to try out new languages. So new languages wind up with users that are more open, and they appear even more active. (I don't know if this is true -- it's just a guess. But your assertion that the percentages would likely be uniform across languages feels unlikely to me.)

I'm not sure the argument is that the percentage who _hang out_ in newsgroups and blog is different, anyway, but rather that looking at newsgroup activity and blogs specifically selects _out_ many of the actual experts. This has absolutely been my experience, and one of the most damaging assumptions I see is that surveying blogs and twitter feeds is enough to get a complete understanding of how people use a piece of software and what they think of it.

</comment></comment><comment><USER18> Everything popular is wrong.</comment>


Travis CI is down - <AUTHOR> https://www.traviscistatus.com/ <comment><USER2> Unbelievable how much of the internet goes down when one company's network has issues.</comment>


Facebook's Advertising Attribution Con - <AUTHOR> https://jafferaliblog.wordpress.com/2019/06/27/facebook-con-will-it-lead-to-its-collapse/ <comment><USER2> The authors trysera company had a truly horrific business model. Selling consumer data to companies based on website _visit_. No opt in.

They claim it's legit because the companies feeding them customer data "opted in".</comment>


iTunes Store Slowdowns With Google DNS - <AUTHOR> http://daringfireball.net/linked/2010/12/29/itunes-store-dns

<comment><USER2> I don't understand this at all.

Is there any reasonable theory for how the choice of DNS changes download speed this dramatically?

I can see it taking longer to resolve the ip address of the download server, but that should only be a one-time thing - and the total impact should be a couple seconds at most. Unless the download is constantly flipping between servers, I don't see how DNS latency is going to make a noticeable difference in the time it takes to download / stream a movie.

<comment><USER3> I think the deal is that it's returning an IP from the lookup based on the IP of the DNS server that's making the request. This is so it returns a server that's closer to your network. If your DNS request is going through Google, it's going to return a server that's close to Google's DNS server and not your own ISP's DNS server (which would of course be much closer to you networkingly-speaking).

<comment><USER4> The problem is that Apple's CDN is being extremely naive about DNS — 184.108.40.206 is not "Google's DNS server" at a particular geolocation, but many servers distributed around the world, with different routes advertised to different destinations depending on the client network (anycast).

Even without anycast the DNS server's geolocation is going to be way off for a lot of ISP defaults. Why look at a cached second-party side channel instead of the real routed packets from the client anyway? Anycast is the right mechanism for distributing this stuff — Apple's keying off of DNS is a bad idea, implemented poorly.

<comment><USER5> Apple's CDN is Akamai, which is definitely not "naive".

Google DNS is broken as a concept, and shouldn't have been released until they were anycasted in either all Google CDN POPs (where ever www.google.com is proxied from) or had talked the major CDNs (AKAM, LLNW, L3, etc) into supporting their proposed DNS extension ([http://tools.ietf.org/html/draft- vandergaast-edns-client-ip-...](http://tools.ietf.org/html/draft-vandergaast- edns-client-ip-01)).

As it stands, using Google DNS is optimizing exactly the wrong thing -- it may be "faster" than your local ISP (which I've actually never seen), but you're trading a couple of ms on an easily scaled distributed system (which every single ISP in the world provides) for a huge hit on network performance because you get a non-optimal CDN pop.

I'd even go as far as saying that Google DNS is ruining the network experience for anyone outside the US (and from Gruber's article, apparently in the US too) -- the very problem people pay CDNs to solve in the first place.

<comment><USER2> Couldn't the CDN redirect to a closer node if DNS doesn't bring the user to an optimal pop?

I'm pretty sure we're talking about an HTTP protocol so a 302 redirect ought to work, and it seems like that would give the CDN way more control than trying to distribute traffic using a cached and not reliably localized DNS mechanism.

Edit: foobarbazetc has a good point, but it still feels like the CDN has reasonable ways to work around and do a better job of selecting the correct pop than DNS. Adding a layer of subdomains which force locality (us- ny.host.com) would keep urls readable & virtual hosts intact.

<comment><USER5> Unfortunately not, because your redirect would have to use an IP address instead of the hostname, so your browser address bar would look like:

<http://184.108.40.206/>

Which would send the wrong 'Host' header to the server, and won't serve the right site and/or content through the CDN. :)

<comment><USER6> apple tv

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> <http://code.google.com/speed/public-dns/faq.html#locations>

"Here are the subnets from which Google Public DNS sends requests to authoritative nameservers, and their associated IATA airport codes"

So in theory, if you live in one of those cities, you shouldn't have this problem. Right?

Some of the reported numbers are too astounding to be covered by this explanation, however. I wonder if something else is at work.

</comment><comment><USER8> I can definitely attest to having this type of experience. My first time trying to rent a movie was quite miserable. I first tried renting it from iTunes like I do TV shows which apparently doesn't work. I then started streaming it from the Apple TV and was greeted with these wait times a couple times during the movie. I can't wait to try experimenting with this to see if that was indeed the cause.

</comment><comment><USER9> Anyone seen any problems with OpenDNS? iTunes Store has been running extremely slow for me over the last several days for no apparent reason...

<comment><USER5> OpenDNS suffers from the exact same issue.

</comment></comment><comment><USER10> Google's DNS is a pain in the ass. They either go OTT with the caching or it's _really_ slow to deal with nameserver changes as I've encountered this myself (when all other servers I tested were OK) and advised people on IRC with similar issues.

</comment><comment><USER11> I've always been a fan of:

      126.96.36.199

and I believe it has a family of DNS servers in a similar range. Has never let me down (whereas my ISP, Rogers, has done so countless times).

<comment><USER4> I use Level3's DNS servers also, but they're also distributed with anycast routing and would likely suffer from the same interaction.

<comment><USER12> It is not the fact that they dns server is using anycast routing that is the problem, it is the fact that the dns provider does not have a widely distributed set of POPs. When you send out a dns query to google dns or opendns you are going to a small set of boxes, the anycast address will route you to the closest one in this set but it is unlikely that any of the POPs are actually close to you. Level3 has a widely distributed set of POPs and if you are going to use a dns service that is not provided by your ISP this is probably the one to use.

</comment></comment></comment><comment><USER13> Mine says this with the default DNS settings too. It starts a few minutes later anyway.

</comment><comment><USER14> So how do you turn off google DNS? (If it is even on)

<comment><USER15> It won't be on by default, you have to enable it (<http://code.google.com/speed/public-dns/docs/using.html>)

You can check by opening a command line (Run -> cmd) and doing a "tracert _random web site.com_ " (or Terminal, then traceroute in OSX/mtr in linux). If it doesn't come back with 126.96.36.199 or 188.8.131.52 as any of the servers (should be in the first few), you're not using Google's DNS servers.

Otherwise, remove the servers and revert to automatic or ISP settings (instructions are at the bottom of Google's doc).

EDIT: Sorry, confused DNS server with my ISP connection node. Check out the explanation by jonburs below.

<comment><USER16> The traceroute family doesn't show DNS info; they show intermediate routers on the path the the resolved destination address. The early servers are the local routers in your ISP's topology, not the DNS server used to resolve the destination address.

A tool such as dig, on the other hand, will show you what server you're using, and easily see the results from an alternate. For example, compare the results of 'dig www.apple.com' (configured DNS) to 'dig www.apple.com @126.96.36.199' (Google DNS).

<comment><USER15> Ah, whoops - thanks for the correction.

Quick question: dig (with no @server argument) turns up my router's IP. Is there a way to get around that?

<comment><USER16> That would happen if your router is providing DHCP services (common) and returning itself as the DNS server. A good reason for that configuration is so that you can resolve the names of other computers on your local network.

If that's the case there's a good chance your router's admin interface will let you view and configure the DNS server its resolver is using.</comment></comment></comment></comment></comment>


My Sudden Synaesthesia - <AUTHOR> https://mosaicscience.com/story/-synaesthesia-blind-seeing-colours-synasthesia <comment><USER2> I have weed-induced music -> shape, texture, etc. synesthesia. Each instrument (or voice) in a song has its associated brightness, shape, texture, size, location in space, and they all are animated with the song. This form is much less common than the types of synesthesia relating to colors but I think it's the most fun. There are quite a few consistencies that make sense to people who don't have it: lower frequency sounds look darker, louder sounds are larger, drums have a "sandy" (non-solid) texture. It all comes together and makes the song look beautiful.

I'd like to make a VR animation for one song to show others how it looks sometime. There are some videos produced by others but I don't think they give the full experience and they are missing something. On the other hand, I'm happy I don't have this ability normally because I would've probably gotten involved in some music-related field and that might not be a great career path. It seems to make music composition much more intuitive and just "obvious."

A couple good books on the subject: "Oxford Handbook of Synesthesia" and "Sensory Blending: On Synaesthesia and related phenomena."

<comment><USER3> On the other hand, I wonder how much of a competitive edge someone with synesthesia would have with music over someone without it.

My understanding is you can perceive when music looks/feels/smells right or whatever your sensory blend is, which means you can perceive things that work well together that others might not. Of course I could be completely wrong about this.

<comment><USER4> IIRC one or more of the members of Tool has synaesthesia for reference.

<comment><USER5> Off the top of my head, Jimi Hendrix had it...and Blood Orange

</comment></comment></comment></comment><comment><USER6> Discovering you have (what this article calls) classic synaesthesia is a very interesting experience. Suddenly many many things fall into place, but you also realize you experience the world in a fundamentally different manner than anyone else.

<comment><USER7> I remember I was 18, at college, and was eating in the dining hall with my friends one evening. We somehow started talking about our favorite colors and I said my favorite color was yellow probably because my name looks so yellow. They stopped eating and stared at me like I was crazy. They asked how does your name look yellow? I was like, what do you mean, it just is yellow. Do words not have colors for you? And just saying that out loud I realized how bizarre that sounded and that I didn't have an explanation for it. I honestly had never thought that much about the fact that words had colors for me. They proceeded to ask me what colors a ton of words were and then tested me again a few days later to see if I said the same things because they didn't believe me.

And that's how I found out I had synaesthesia.

<comment><USER8> Do you actually physically see yellow with your eyes or is it more in your mind, or a feeling of yellowness? Also do different people with synaesthaesia see the same colors for the same words?

<comment><USER9> With my grapheme→colour and word→colour synaesthesia, it's definitely in my mind—when I look at the letter A, for example, my brain has the same _reaction_ as if I were looking at a yellow object, even though I can see that it's not actually yellow.

An upside of synaesthesia is that I have very good clerical accuracy, which is helpful for programming—typographical errors "stick out" because things appear the wrong colour. A downside is that I can't really use syntax highlighting, because I find it distracting. This is what my terminal Emacs looks like: [https://imgur.com/m76W8eF](https://imgur.com/m76W8eF) (with soft wrapping because there's not really a line length limit in this codebase).

</comment></comment></comment></comment><comment><USER10> The article described an SSD (sensory substitution device) that converts a particular color under a stylus into a sound.

I wonder if you could build an SSD that did a playback of a 2-dimensional scan of an input image in such a way that a blind person could rebuild the 2-dimensional image. Perhaps the brain could pick up something akin to CRT horizontal scan lines. Also, I wonder whether stereophonic output would be advantageous.

<comment><USER11> This is actually exactly the topic of the 3Blue1Brown video on Hilbert Curves: [https://www.youtube.com/watch?v=3s7h2MHQtxc](https://www.youtube.com/watch?v=3s7h2MHQtxc)

Space-filling curves are a sort of optimal mapping strategy for compressing two dimensions down into one.

</comment></comment><comment><USER12> I find it easy to approximate various flavor types with audible pitches. Bitter flavors are deep bass, oils tend to be a little higher, complex carbs are a bit higher, sweets are in the middle or a little higher (carbs and sugars make up the 'vocal range' in my estimation), and sour flavors are way up high. People have tried to convince me that this is a mild/odd synaesthesia, but I feel it may just be imagination and an overeagerness to draw parallels/similies.

</comment><comment><USER13> So, Sensory Substitution Device. There's an app for that?

<comment><USER13> I've just found out this [http://tdwright.github.com/Creole- SSD/](http://tdwright.github.com/Creole-SSD/) [https://github.com/tdwright](https://github.com/tdwright)

</comment></comment><comment><USER14> I wonder how far Vanessa has been able to recover.</comment>


Linear Logic Flavoured Composition of Petri Nets - <AUTHOR> https://golem.ph.utexas.edu/category/2020/07/linear_logic_flavoured_composi.html <comment><USER2> If you're interested in this topic, you may enjoy James Fairbanks' talk on Catlab.jl, which is an applied category theory software package: [https://youtu.be/7zr2qnud4XM](https://youtu.be/7zr2qnud4XM). Petri Nets are one of the examples.

</comment><comment><USER3> This is the most excellent introduction to Petri nets that I've seen. It's super thorough but at the same time efficient while covering all the main ideas.

Great job!

</comment><comment><USER4> How does this compare to TLA+?

<comment><USER5> Basically, it doesn't.

TLA+ is first-order temporal logic, where you can write formulas describing how the state of a system evolves over time. If you have a concurrent process, you can describe it as a state machine, and then write TLA+ formulas to describe the evolution of the system state as the system reacts to events and evolves through time.

In contrast, Petri nets are not a logic. They are a generalisation of finite state machines tuned for describing concurrent processes. In Petri nets, the state is decomposed into a set of "places", and you mark the places with "tokens" to indicate what the current state of the system is. Depending on the state, different state transitions are enabled or not. The variant of state machines that Petri nets correspond to are called "vector addition systems with states" \-- basically finite state machines plus a finite number of integer-valued registers. (However, the post this article links to describes a restriction of Petri nets where the markings are 0-1, which makes them exactly the same as FSMs.)

Since the logic of TLA+ describes infinite-state systems, if you want, you can represent Petri nets pretty directly as a set of integer-valued variables and then just write TLA+ formulas about them.

However, the main interest in Petri nets comes from the two facts that (a) they do a good job of describing concurrent systems (you can mix state- and event-based descriptions easily), and (b) are very well-behaved algebraically -- there is a wide variety of constructions which build bigger Petri nets out of smaller ones, which preserve various good properties of the smaller ones. (This latter thing is in fact what the linked post is doing.)</comment></comment>


Don't let Google take over Berlin - <AUTHOR> https://fuckoffgoogle.de/ <comment><USER2> Wow, this is not just a pamphlet site for a political movement. It's actually full of informative articles about the origins of Twitter and other subjects related to the evil of "don't be evil." Bookmarked, and I can't wait to dig in.</comment>


Triggering Video Playback with Bots and Crawlers - <AUTHOR> https://mux.com/blog/do-androids-watch-videos-of-electric-sheep-how-bots-react-to-web-video-2/ <comment><AUTHOR> Post author here: this post was written in June 2017, and the subject has become increasingly relevant since the MySpace video advertising bot fraud reported by BuzzFeed on October 27, 2017: [https://www.buzzfeed.com/craigsilverman/remember- tom](https://www.buzzfeed.com/craigsilverman/remember-tom)

</comment><comment><USER2> The conclusion that Facebook has bots other than Facebot is interesting. I wonder if Scott was able to identify how many problematic user agent strings were on Facebook's network.

<comment><AUTHOR> Great question! There was a fairly even distribution of slow-performing requests across the many user-agent strings coming from the Facebook ASN.

My hunch is that the Facebook crawlers send user-agent strings that Facebook has seen in requests to their own services. This allows them to crawl content in linked posts masquerading as a device that their users would actually use.

<comment><USER3> > My hunch is that the Facebook crawlers send user-agent strings that Facebook > has seen in requests to their own services. This allows them to crawl > content in linked posts masquerading as a device that their users would > actually use.

Very interesting theory, I'd love a follow up post if this can eventually be confirmed or denied :). That would be very clever of FB but very, very rude to all of the small fish they crawl.</comment></comment></comment>


Ask YC: I built this to learn Rails in 2 days. What do you think? - <AUTHOR> I sat down last week and felt determined to learn Rails as quickly as possible. I skimmed the Agile Web Development With Rails book and got to work on a fuel-calculating mini-app. Time to completion: 2 days with very little sleep.
Site: http://fuel.dustincurtis.com
While I was building the site, I kept wishing that I could look at an app's code in its entirety for help with syntax (searching google gave me nothing), so here's the code (it's probably very shitty): Code: http://itsalltaken.com/fuelcode
What do you think of the design and implementation?
PS. I need to add in a bunch of higher-level validations to prevent people from using obscene numbers/dates/etc. Also the mobile version isn't quite done yet. <comment><USER2> The design is very clean and appealing. Also the function is user friendly. Some cursory testing uncovered the following bugs:

Location: /

       Sign up

          - "email address" should select or disappear on click.

          - password should be empty.

          - login cookie?

Location: /account/login

          - Tabbing should go from the "Login to fuel" field to the password field. Currently focus vanishes on tabbing from this field.

Location: /fuelings

       - Past fuelings: The time calculation is wrong. It shows 21 hours for an edit I made ~5 minutes ago.

       - /edit

          - commit button still says "Add this fueling". Should say something like "Update".

          - values are old (e.g., change the "Gallons" value, and click the button. Dashboard shows new value. Click to "edit" the fueling again, and old value still shows here).

          - Date text box allows invalid date values. Replaced "JANUARY" with "PLUTO", and date disappeared from dashboard. On the next access of dashboard, got a "NoMethodError" on line #68 of fuelings/index.html.erb.

I was never able to access the app again after the last error.

<comment><AUTHOR> Wow, thank you so much.

The javascript stuff to make the forms pretty (and disappear when active) is the very next step. Login cookie is next.

account/login tabbing: I'll fix that. Thanks.

The time calculation is based on midnight of the date you select on the Add Fueling page. I'll add the time of day, but I don't think people keep track of their fueling habits that closely.

Regarding editing, I've removed your NULL date, so you can log back in. I'll add verification to prevent that from happening in the future.

Again, thanks. Awesome.

</comment></comment><comment><USER3> Very nice visual design.

Your code will improve at once if you read a Ruby book. For example, you confess to being confused in your fueling.rb model file --

<GOBBLEDEGOOK>

\-- where you define a class method on the Fueling class, then set an instance variable (@current_id). I believe this will set @current_id in the scope of the Fueling class. Then you define a Fueling instance method (validate) and try to read @current_id inside it -- but it fails, because when you're in an instance method @current_id refers to a variable in some actual Fueling _object_ , not to the @current_id that's in the scope of the Fueling _class_.

</GOBBLEDEGOOK>

You may have no idea what I just said. Even experts can get lost in Ruby's class hierarchy. So get a Ruby book and it will help you sort out the Ruby approach to OO programming.

People seem to like "Ruby for Rails", and its author is smart. The Pickaxe book ("Programming Ruby") is more famous and I liked that just fine, too. (Don't tell Zed Shaw.) If you're not already intimately familiar with another OO language, you might _not_ want to learn Ruby from _Why the Lucky Stiff's _Poignant Guide to Ruby_ (with cartoon foxes!)... although that's what I did.

P.S. Just _today_ I had my accountant explaining to me the importance of separate tracking for "business" miles that I drive for my company, as well as tracking total miles driven. Food for thought. Just don't offer that feature if you plan to take the service down sometime during a tax year...

<comment><USER4> I've been finding a bunch of errors[0] in the Pickaxe book lately. If you're using it as a reference, and finding that things don't behave as expected, double check at ruby-doc.org.

[0] or at least differences between Ruby 1.6, which is covered in the book, and 1.8, which most people use.

</comment></comment><comment><USER5> Good job dcurtis!

My friends and I built the app in the link below with Rails and in 48h too.

<http://pagestacker.com>

ThereXs an interesting story behing its development.

It was in september. At the time, we were pretty much still learning about Rails. We had heard about a contest in which participants should build a complete web app from scratch in 48h using Rails. It was called "Rails Rumble".

<http://www.railsrumble.com>

After those initial 48h, there was a 14 days period of voting that was open to the public in order to choose the "best" apps (whatever that means). Although we led the voting almost since day one, the organization decided to disqualify most of our votes and gave us an "honorable mention".

In the link below you can find a Twitter feed with the ranking results that were published as the voting developed.

<http://twitter.com/railsrumblerank>

We still donXt fully understand the reasons why the organizers decided as they did. Maybe it had something to do with the fact that weXre from Brazil in our team ("I didnXt even know brazilians had computers" =)). Who knows...

Anyway, what matters is that weXre seing some traction among users, not only in Brazil but around the world (not much, but some), and we must decide if we should invest more and try to enhance the app.

What weXve found is that most users never heard anything about the segment to which the app belongs, much less about its leader, which has only some 3 million registered users around the world.

So, IXd really appreciate some honest feedback about it.

Thanks!

</comment><comment><USER6> 15.3 mpg? Jesus christ get some better cars!

</comment><comment><USER7> I know people who meticulously keep pen & paper records of their mileage... I'm sure those people would love this site.

It's very elegant in its simplicity - well done!

Bonus points for being from Santa Rosa. I spent four awesome years living there. Pepe's still has a special place in my heart for best vegetarian burrito, evar.

</comment><comment><USER8> Not bad for a first shot. One suggestion is to use the "fat model, skinny controller" way of thinking. It'll help clean up your code significantly.

[http://weblog.jamisbuck.org/2006/10/18/skinny-controller- fat...](http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model)

I've pastied an example of how this approach should help.

<http://rafb.net/p/P4YMM359.html> (Pastie.caboo.se is down now for some reason, so this is good enough for now)

Generally, the only major issue I see throughout is the repeated Fueling.find(:all) calls. Not only will that hit up the database quite a bit (Rails 2.0's query caching would help a little, but that's beside the point), but it would take up a crazy amount of memory once you get a lot of fuelings in the system.

Keep at it!

</comment><comment><USER9> Wow! Great design, nice clean look to it. congratulations on your first rails app. To add to mechanical_fish's comment, David Black's "Ruby for rails" is a good book. Another good book which I have not read, but have heard great things of, is Peter Cooper's book. Again, congratulations! Great work...

Along a similar note, I wish I could work along these lines. I tend to be too much of an academic, and spend endless weeks reading about whatever (rails in this case) and never actually get down to implementing much, then get attracted to the next new shiny toy, and move on. So from my perspective, great job!

</comment><comment><USER10> Looked at your code: looks very much like mine :-) I suppose it's a good thing since the mantra of opinionated Rails means just that: "stay on it".

I saw your confusing comments for non-working Fueling validate(). Why don't you just check for nil there? It's always nil for 1st time users, no?

</comment><comment><USER11> For the code hilighting part, you could probably hack something together with <http://pastie.caboo.se/>

</comment><comment><USER12> I think there's an underlying sentiment here: design is fantastic. Great job!

</comment><comment><USER13> Nice job. Looks like you had some fun doing it!

</comment><comment><USER14> Two days, eh? I'm impressed. It looks good!

</comment><comment><USER15> Neat! Love the design!

PS: Could you add km/h and L as well?

<comment><AUTHOR> Yup, that's on the list of things to do!

</comment></comment><comment><USER16> Nice work. I like the design!

</comment><comment><USER17> where are you hosting it ?

<comment><AUTHOR> Dreamhost. And they're pretty good about it, too.

<comment><USER18> Well... it's down right now at 9:24 CEST. Or at least 'loading...' is taking forever.

<comment><AUTHOR> Yeah, <http://dreamhoststatus.com/>

They're rebooting after a failed update or something.

edit: it's back up (12:41am pst)

</comment></comment></comment></comment><comment><USER19> I like the clean design

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER20> pretty neat idea.</comment>


S&P: UK likely to lose AAA credit rating - <AUTHOR> http://www.independent.co.uk/news/business/news/sp-says-uk-to-lose-top-credit-rating-after-vote-to-leave-the-eu-reports-a7099581.html <comment><USER2> [http://www.independent.co.uk/news/business/news/sp-says- uk-t...](http://www.independent.co.uk/news/business/news/sp-says-uk-to-lose- top-credit-rating-after-vote-to-leave-the-eu-reports-a7099581.html) for a longer article (ft is paywalled and 2 paragraphs only)

(sending dang signal)

<comment><USER3> Ok, we changed it to that from [https://next.ft.com/content/6a74d22c-b399-3da2-a86c-476bd27e...](https://next.ft.com/content/6a74d22c-b399-3da2-a86c-476bd27e7483).

</comment></comment><comment><USER4> Apparently we cannot read this article without a payed account.

<comment><USER4> I am not sure why my observation merits downvotes. The original artical was indeed paywalled.</comment></comment>


Ask HN: Best invoicing app? - <AUTHOR>

Hi, I made a search lately of a good invoicing app. I found Freshbook good. However they don't support moneybookers; and I failed finding one.<p>I wonder what invoicing app you use and if you know one that supports Moneybookers. Thanks <comment><USER2> I think the question would be if there's any invoicing app that supports moneybrookers, not which one is the best.

Personally I use blinksale for my invoicing needs. Its well done and simple. A more complete (feature-wise) version is in the works, but who knows when they will launch it.

</comment><comment><USER3> Give a try on CurdBee - <http://curdbee.com>.

We currently do support Paypal, Google Checkout, 2Checkout and Authorize.net. We do have plans to add support to other gateways including Moneybookers.

<comment><AUTHOR> All of them have plans to support moneybookers since 2006... but they still think of it to the moment</comment></comment>


IPhone 5 to be shaped like a Pillow. Here is Why. - <AUTHOR> http://www.i4u.com/47043/iphone-5-be-shaped-pillow-here-why

<comment><USER2> "The iPhone 4 design is iconic and sets itself apart from other smartphones. You can see from far if somebody is using an iPhone 4. Only real geeks can tell Android phones apart."

Except, you know, the Samsung phones that Apple is suing Samsung over because they look so much alike.

For my money, each Android phone is as much different from each other as they are from iPhones.

I think what they were trying to say is that you can't name the model unless you're a fan, but that's true for anything that such wide diversity. I can't put a name to most cars, for instance.

</comment><comment><USER3> There is another reason apple needs a lot of curved glass cutters:

<http://mashable.com/2011/06/08/apple-cupertino-campus/></comment>


Make Google Chrome accessible - info & petition - <AUTHOR> http://www.webdragon.com.au/2945

<comment><USER2> A petition seems sort of useful, at least to get the ball rolling, I guess. It would be nice to have Google put more people on it.

But it seems worthwhile to note that if you don't like Chrome's accessibility, you _can_ do something about it yourself. Google Chrome is just a corporate- branded release of Chromium, an open-source project that anyone can contribute to - and Chromium has had a call out to work on accessibility for a while now:

[http://www.chromium.org/developers/design- documents/accessib...](http://www.chromium.org/developers/design- documents/accessibility)

Nothing like diving in and getting our hands dirty, eh?

<comment><AUTHOR> I think the idea that users that need/advocate these features can contribute fixes to an open source project is one of the unfortunate myths (for want of a better word) of the FOSS movement. The idea is noble, but, as with Mozilla, the items that project sponsors want fixed/sorted get fixed/sorted, while other "unsexy" features/bugs/components just get left behind for years.

</comment></comment><comment><AUTHOR> Despite all the flack that Microsoft gets, its browser is far and away the strongest for accessibility, with Mozilla a close second. Sadly Opera, Apple and Google almost need not bother...</comment>


Private firm may track all email and calls in UK - <AUTHOR> http://www.guardian.co.uk/uk/2008/dec/31/privacy-civil-liberties <comment><USER2> <http://en.wikipedia.org/wiki/Pretty_Good_Privacy> see Phil Zimmerman's Why I wrote PGP article</comment>


Google bans apps that facilitate sale of marijuana - <AUTHOR> https://www.reuters.com/article/us-alphabet-play-store-marijuana/google-bans-apps-that-facilitate-sale-of-marijuana-idUSKCN1SZ2NZ <comment><USER2> Illegal markets? It is legal in all of Canada, in pretty much the way alcohol is. Are the apps unavailable in Canada where the legal pot (which is in some cases far superior to the shaggy bits one would get on the streets) comes from government certified sources?

But then again, I haven't seen a Google booze ad. Do they allow alcohol ads?

<comment><USER3> It's the danger that we're getting as these global companies have more influence over the entire planet. The morality of the home country is pushed on those who want to use the service. Same thing with the whole Google / Huawei stoush. US priorities have an impact on users all over the world.

<comment><USER4> The morality of the largest economies (generally backed by the largest military) has always been pushed onto others. Isn't this the way the world has worked since the dawn of the first civilizations?

Not you specifically, but most people on HN have probably been the overwhelming beneficiaries of this approach.

<comment><USER5> >Isn't this the way the world has worked since the dawn of the first civilizations?

Not really, for most of humanity's history people could barely even figure out what happened on the other side of the mountain or the sea.

The extreme degree of globalisation that carries these policies and attitudes across the globe is pretty new. It wasn't even the case in the 60s or 70s say. It's predominantly online markets that are dominated by individual companies, control used to be significantly more national.

<comment><USER6> > Not really, for most of humanity's history people could barely even figure > out what happened on the other side of the mountain or the sea.

And yet, for around 30,000 years people have been going off to battle to impose ideals, take stuff, or stop other folks imposing ideals and taking stuff. The average mook in those battles may not have known what was going on, nor did the folks who stayed home in relative safety, but make no mistake, the wealthy and powerful have been imposing their morality as long as there has been a threat to wealth and power... it just happens much more quickly and broadly these days.

<comment><USER7> Is this a good thing?

<comment><USER8> The southern USA was forced to give up slavery. Not to condone war in general, but there are at least a few examples that weren't strictly bad

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> More than likely, Google's lawyers were worried about DA's in various US states, cities or feds going after them. This has little or nothing to do with "morality" or "ethics." This is CYA, not a moral panic.

<comment><USER10> It has become a real problem for Canadians visiting the States[1]. The US government doesn't seem to care whether it's legal in Canada or not. Presumably that's because the law is written such that foreign legality is irrelevant.

[1]: [https://www.thestar.com/vancouver/2018/07/05/canadian- cannab...](https://www.thestar.com/vancouver/2018/07/05/canadian-cannabis- workers-targeted-by-us-border-guards-for-lifetime-bans.html)

<comment><USER11> I'd hope they would apply this rule to people who engage in sex tourism with children, legal in that nation or not for example. At the federal level the crime of cannabis distribution is on the same level as that.

<comment><USER12> It does already - I looked it up. It even applies to interstate lines with varied age of consent - although it is a bit more intent based and grayer.

For example - going from say California - an 18 age of consent state to sleep with a 16 year old in Nevada is illegal sex tourism. Likewise bringing a 16 year old from California to Nevada to try to evade the age of consent is illegal.

But going to Nevada from California and sleeping with a 16 year old while not there for that purpose (say on a business trip) would be legal.

</comment></comment></comment></comment><comment><USER13> And yet a large chunk of Google employees and executives enjoy all of the freedoms provided to them in the state of California, including legal marijuana.

<comment><USER14> "Legal marijuana" is a bit of a misrepresentation. In the eyes of the law, cannabis remains illegal nation-wide. Federal law supersedes state laws on controlled substances. States like California and Washington has not so much legalized cannabis so much as they have repealed all their state laws and deliberately refuse to enforce federal law on cannabis. For everyday people, this effectively legalizes it. We can go to a store, buy a pack of joints, and walk home with zero threat of legal repercussion. But for large organizations, they still have good reason to be afraid of being subject to repercussions if they monetize or facilitate the sale of marijuana.

And regardless, plenty of large tech companies have blanket policies of avoiding controversial markets. Amazon does not sell ammo and many gun accessories (e.g. magazines). They don't sell porn either as far as I know.

<comment><USER15> This is not an accurate representation of the current status quo. Medical marijuana is effectively legal at the federal level in states where it is legal. The federal government, via the appropriations bill has not allocated any funding to prosecuting these crime. More recent case law has clarified the meaning of this, it explicitly forbids prosecuting these crimes in states where medical marijuana is legal. In a number of cases where the accused was charged and plead guilty, prosecution was later stopped(and hundreds of thousands in cash, and precious metals that were seized, were all returned) because of this.

<comment><USER14> > Medical marijuana is effectively legal at the federal level in states where > it is legal.

Do you not see the contradiction in this statement?

> Medical marijuana is effectively legal at the federal level in states where > it is legal. The federal government, via the appropriations bill has not > allocated any funding to prosecuting these crime. More recent case law has > clarified the meaning of this, it explicitly forbids prosecuting these > crimes in states where medical marijuana is legal. In a number of cases > where the accused was charged and plead guilty, prosecution was later > stopped(and hundreds of thousands in cash, and precious metals that were > seized, were all returned) because of this.

Which completely agrees with the point I'm making. It's still against the law, it's just that some states are refusing to enforce it. This is not the same thing as something being legal. This is not just pedantic quibbling, it has real consequences. The constitution forbids persecution for illegal actions so long as they were legal at the time they were committed. But cannabis _isn 't_ legal. Which means that if the attitude towards cannabis changes, it is possible for a future administration to persecute everyone that bought or sold pot. Individuals like you an I may not care very much about this possibility, but the shareholders and executives of multi billion dollar companies unsurprisingly have a different mindset.

<comment><USER15> It is not states that are refusing, but that the federal government is barred from enforcing it. Legal marijuana spending in the US and Canada totaled $12 billion last year and is expected to hit $18 billion this year, in large part because of the current status of the law.

</comment></comment></comment></comment></comment><comment><USER16> Someone I know started a b2b business in the marijuana industry. Tried doing google ads and got all their ads blocked. Every time they reached out to support they gave them a different reason for blocking the ad. And every time after complying and re-submitting, the ads would get blocked again. Finally they gave up on Google ads.

<comment><USER17> I bought and sold stock from a Marijuana ETF when they first got introduced. And 3 days later my bank called me and told me I cannot do it again. Of course I immediately tried doing it again after the call, but the online brokerage system would return an error. So, if I can't trade stock from weed-related business, but those tickers are listed and valid on NASDAQ (which is an american index), who can?

</comment></comment><comment><USER18> Has anyone opposing this action thought maybe an aggressively competitive tech corporation doesn't want to be held liable for assisting in distribution of a drug that isn't nationwide legal? They have way larger concerns than worrying about this.

<comment><USER13> Big national banks and credit card providers now openly take and store payments for marijuana dispensaries. Companies happily provide them with insurance and mortgages. There are mutual funds and ETFs on national exchanges that invest in such businesses (and you can buy into them as well, from anywhere in the country).

Somehow I don't think Google is scared of getting into trouble for allowing an app that has a web browser with a reference to marijuana. It is a moral stance, nothing else.

<comment><USER19> I've sampled plenty of wares and yet to see a vendor that isn't cash only. Is this very recent news? Hasn't trickled into my neck of the woods yet. Those ETFs and stocks are for canadian companies too I believe, even though they are on the NYSE.

<comment><USER13> Every dispensary and website in California I've seen takes cards.

</comment></comment></comment></comment><comment><USER20> For the love of god can we please make weed legal here in the US? Anyone, anywhere can buy weed at anytime, and its been that way for like 50 fuckin years now. Can we all agree that the war on weed is over, and the US Gov't lost. WTF!!

</comment><comment><USER21> I've been spending some time in California and I noticed a worrying trend that it gets harder and harder to purchase marijuana. ID requirements are getting more onerous, MasterCard no longer accepted, etc. Things are going backwards!

<comment><USER22> Dispensaries cannot accept credit cards because the federal banking system is off limits to them. But as far as id requirements go, you can walk into any dispensary with a valid California drivers license (haven't really tried with out of state ones), and cash purchase anything they have in stock.

</comment></comment><comment><USER23> Thank goodness they shut this down quick. It's not like this was just a straightforward app designed to keep tabs on your chattel, I mean female family members. Marijuana actually hurts people!

<comment><USER24> >Marijuana actually hurts people!

How old are you again

<comment><USER25> The comment is pretty clearly sarcasm.

</comment></comment></comment><comment><USER8> I'm literally texting a friend today about helping him with his legal Canadian pot site. The importance of the "open web" sure got more concrete today

What is the real world small business alternative to the play Store - progressive web apps? Fdroid?

</comment><comment><USER26> A key difference between Android and iOS: on Android, there are alternatives to Google's app store; on iOS there are not. So it would be entirely possible for someone who lives in a country where marijuana is legal and wishes to facilitate the legal industry there to set up an app store (cloning F-Droid could be a quick start) which offered such apps. He'd be out of luck on iOS.

The federal marijuana laws are — mostly — blatantly unconstitutional, of course, but they are still on the books. I don't blame Google for not wanting to litigate the issue; their lawyers are probably acutely aware of the Backpage case.

</comment><comment><USER27> It's dumb, but all they have to do is put the shopping cart on a responsive website instead, minor inconvenience.

</comment><comment><USER28> I'll miss venmo.

This article is a bit thin on details. is this just black market? All sales? something else?

</comment><comment><USER29> Wonder what they mean by "facilitate"? Were certain mail order places offering apps they're banning? directly taking payments?

Or are they seriously going after stuff like Weedmaps that just offers references to places that sell.

<comment><USER30> Better source with answers to those questions: [https://www.androidpolice.com/2019/05/29/no-chill-google- jus...](https://www.androidpolice.com/2019/05/29/no-chill-google-just-banned- marijuana-delivery-apps-from-the-play-store/)

</comment></comment><comment><USER31> But yet they have booze delivery apps all throughout the Play Store. They said no cannabis because the Play Store is for kids. But I suppose quick booze delivery is fine for "their" kids.

"At Google Play, we're committed to providing a positive, safe environment for children and families," the blog post read. "…After taking input from users and developers we are evolving our Google Play policies to provide additional protections for children and families."

</comment><comment><USER32> Better ban signal. Do you want that wrapped in "fighting terrorism", "war on drugs" or "think of the children".

We google should not be in a position of power to decide what is allowable and what is not. That is for elected officials. If they have more than reasonable influence, break them up.

Same for any group of people anywhere. Get elected.

<comment><USER33> By using their services, we elect them.

Still, yes, citizens could attempt to effect government intervention.

But probably the average person has more leverage as a consumer than as a political actor.

<comment><USER32> Nope. They have market power.

If there's 30 equivalent services to choose from and using none is also a viable option there's no market power and no issue. I hope they get rich without market power but it's of no significance to me.

As soon as they (for all values of they) have market power and can have a huge effect over what you can and can't do - they need to be bound by law and regulation. This is the textbook definition of market failure. Libertarians and Bernie should see it much the same way. I personally believe you keep regulation the hell out it until you have market failure (so I'm not with bernie) - which this is, they're enacting defacto laws and taxes on the population here for an agenda not agreed to by that population. Same as if standard oil could tell you where you could drive your car. Same as if your electricity company could tell you what you are allowed to read with your electric lights. Same as if your phone company dropped your call for saying "f __k " out loud.

Market failure is a thing that happens often (public goods, property rights enforcement, industries that tend to monopoly) and we bring in regulation when it does and watch those regulators closely(!!) We have elections to make sure the regulation is done in a way that we can live with.

</comment></comment></comment><comment><USER34> This is a bit asinine, they'll have to ban messaging apps and everything because it all does the same thing.

</comment><comment><USER35> This is a matter of geographic laws conflicting with worldwide applicability and something we're seeing more and more of, both with things like GDPR but also certain states having much tighter regulations around things like biometrics. In that light, it's interesting to see what Google has done with things like their Arts and Culture app, which has a "take a selfie and see what artwork you most resemble" feature. That feature (but not the whole app) is disabled if they detect that you're within the bounds of Illinois which has some of the strictest regulations about personal data.

</comment><comment><USER36> Thank goodness I just use skype and email to communicate with my dealer. Oh, hang on, they're applications too :S

</comment><comment><USER37> This is disappointing indeed.

</comment><comment><USER38> I can't use gmail to communicate with my weed dealer any more? Damn.

</comment><comment><USER39> Time to convert to PWAs

<comment><USER40> PWA?

</comment></comment><comment><USER41> Are these apps available on the Apple App Store?

</comment><comment><USER42> But did they get rid of the apps to buy shrooms?

</comment><comment><USER43> Is Messenger getting banned?

</comment><comment><USER44> Just build progressive web apps already, break app store duopoly

</comment><comment><USER45> Well, this is a request for a startup!

</comment><comment><USER46> And what coder at Google is not a weekend stoner. I'm sure they're having a laugh at this one.

<comment><USER23> I'm not a weekend stoner. More of a weekday type to make the drudgery more entertaining.

<comment><USER47> Back in the day, we used code words so no one would know what we were talking about.

Our favorite code word was "programmer's fuel."

<comment><USER48> In my mind, that can only be one of the four: Adderall/ Dexies, weed, alcohol, or maybe coffee. Not sure the code word is subtle enough!

<comment><USER29> I mean, there's the old joke about programmers being machines that convert coffee into code. I think it's pretty safe.

</comment></comment></comment></comment></comment><comment> alex- My guess is it's less about a moral issue with marijuana and more about a fear of upsetting people displaying the adds. Many of whom won't want to be associated with something federally illegal. The alternative headline being "Google displays illegal drug adds on school site" (or some other page that probably should not be showing ads)

<comment><USER13> This has nothing to do with advertising. It applies to apps in the Play store.

<comment> alex- Not sure how I missed that, thanks.</comment></comment></comment>


No More Phones and Other Tech Predictions for the Next Decade - <AUTHOR> https://www.nytimes.com/2019/12/31/opinion/2019-in-tech.html <comment><USER2> I'm afraid that the predictions made in this article are more or less based on a faulty second-hand magic eight ball.

Due to the abundance of companies floating on the markets, This decade will introduce a long awaited tech crash that will reset and purge those companies unable to turn a profit. It will get harder for startups to seek capital since most of FAANG and other established companies with strong portfolios will move into novel industries that will invade their market share.

The claim that automation is going to replace those in 'medicine and law' is nonsensical for this decade. The deep learning algorithms used to obtain very accurate models are still not transparent enough to be trusted by professionals to be taken seriously or to understand the decision process. These tools will get as close as being supplementary in the medical and law professions to make their jobs easier.

Some technologies required to tackle climate change such as battery, wind and solar power are already here but it is still expensive. It would take time for the costs of this to be cheap enough to be trivially affordable for all, thus allowing start-ups and companies to innovate over expired patents to address climate change which will happen in the mid-late 2020s or early 2030s.

Handheld phones will still be here in the 2030s as they would have already replaced GPSs, modems, mini-PCs and even entry-level laptops. They will just not be used often like what we see today.

> President Trump's tweets will probably be gone, too.

Highly unlikely. When we follow the loudest sock puppets on the internet, they will always be held to account and their actions and whatever they said will be preserved forever, just like in the past.</comment>