Why I Tell Everyone My Age - <AUTHOR> https://medium.com/@ckdarby/why-i-tell-everyone-my-age-f41767ce630e

<comment><USER2> > You Control Exactly How To Be Perceived

I think that this is exactly what it all boils down to. There are two types of people in the world: victims and doers. Victims see themselves as the object of every sentence: everything happens _to_ them. They tend to see conspiracies as explanations for bad things ('everyone thinks that I'm too young!') in their lives.

Doers see themselves as the subject of every sentence: they _do_ everything. The tend to see themselves as the explanation for the good and bad in their lives.

Incidentally, the above doesn't mean that the victims are wrong and the doers are right: it's entirely possible that one's misfortunes _are_ the result of others' actions, and it's entirely possible that one's belief of empowerment is a delusion.

But here's why it's better to be a doer than a victim, even if you're wrong: because the only person whose actions you can truly control are your own. If you want to be seen as young-and-daring, then _be young and daring_. If you want to be seen as wise and thoughtful, then _be wise and thoughtful_. If you want to do something and ought to do it, then _do it_.

A victim wails on about how others ought to see him one way or another, about how he ought to be allowed or enabled to do something. A doer decides what he wants, and achieves it.

Which would you rather be? Which would you rather work with? Which would you rather the world be full of?

<comment><USER3> In psychology the term for what you are describing is "locus of control" \-- your "doers" have an internal locus of control, and your "victims" have an external locus of control.

There is evidence that having an internal locus of control correlates positively with increased happiness, success, etc.

See [http://rationality.org/2015/03/22/taking-control-of-your- hap...](http://rationality.org/2015/03/22/taking-control-of-your-happiness- and-productivity/) and [http://lesswrong.com/r/discussion/lw/lzy/against_the_interna...](http://lesswrong.com/r/discussion/lw/lzy/against_the_internal_locus_of_control/) for further discussion of the topic.

</comment></comment><comment><USER4> I don't disagree with anything the author writes in this article but I still think he's missing the point. When you're male and in tech of course you can shape how people perceive your age. You can do that as a male even outside of tech but that is not what the original article is talking about. This author is using an apples to apples comparison when in this case it's really more apples to oranges. The author of the original piece repeatedly and consistently reinforces the point that she's speaking of an issue that affects woman. Again she's also not in tech proper. As usual things work very differently in tech than they do elsewhere in Corporate America. Youth is seen as advantage in tech and that's not the case in a lot of industries.

<comment><AUTHOR> The author in the original piece starts off pointing out the new era of age discrimination, then starts to add 'women' through her statement and at no point states the issue is age discrimination only for women in a specific industry.

The original piece also has broad statements such as, "Every woman".

It is nearly impossible to write a response post with a perfect comparison when someone structures their post without a clear message.

<comment><USER4> Agreed with your last point. However her language very clearly indicates she is speaking about an issue woman face. She almost exclusively uses female pronouns and variations of woman and female.

She doesn't speak to industry at all, I just noticed that all of her examples are non tech related while as the author of the response piece specifically uses his own personal example as a startup founder. Which to me makes it seem like we are not dealing with like things. Male Vs Female. Tech vs Corporate America

</comment></comment></comment><comment><USER5> A good piece, I think. The author is entirely correct that perceptions can be managed in one's favor. Simply withholding your age isn't going to do much anyway - if you seem confident people will guess older, if you seem more flighty or whatever they'll guess younger.</comment>


Show HN: My Raspberry Pi 2 Cluster - <AUTHOR> http://rcarmo.sl.pt:8888 <comment><USER2> Would love to know what its like to use this cluster with distcc .. for example what impact it would have on compiling the Linux kernel?

Also, I'm a Lua fan. Anyone know of something similar that can be done in Lua instead of Clojure/Python?

</comment><comment><USER3> For more info, see [https://github.com/rcarmo/raspi- cluster/blob/master/README.m...](https://github.com/rcarmo/raspi- cluster/blob/master/README.md)

</comment><comment><USER4> Nice to see some people posting from Portugal! Can you provide more info about your setup?

<comment><AUTHOR> It's all on Github. Also, I blog at [http://taoofmac.com](http://taoofmac.com), but this week I haven't had much time to write about the cluster itself.

</comment></comment><comment><USER5> "He's dead, Jim!"

<comment><AUTHOR> IP changed, and DNS failed to update.

</comment></comment><comment><USER6> Please post more details about the build .

<comment><AUTHOR> It's all on the About link, on Github :)

</comment></comment><comment><USER7> what are you using this cluster for? mathematical data processing?</comment>


How to Install GitLab as Your Private GitHub Clone - <AUTHOR> https://vexxhost.com/resources/tutorials/how-to-install-gitlab-as-your-private-github-clone/ <comment><USER2> We recommend that people install out Omnibus packages, they are much easier to install and more reliable [https://about.gitlab.com/downloads/](https://about.gitlab.com/downloads/)</comment>


Ask HN: SaaS in Germany – How do you handle international customers? - <AUTHOR> How do you handle international customers, when it comes to billing and taxes?<p>How can I setup a payment system, which handles international customers, how do you generate invoices ? <comment><USER2> We use Stripe + Quaderno. Quaderno does the invoice creation and adds tax lines based on customer vs business, they validate VAT numbers, make sure there is multiple evidences (billing address, IP address, bank location) and we can download a monthly report broken down by country. Stripe's Billing product does invoice creation but it lacks features when it comes to international taxes, Stripe's Checkout product can't handle tax at all last time I checked.

We could replace Quaderno, we already remove their Checkout and QuadernoJS from our frontend and use only their API in our backend, but building our own invoice creation (with history, one-off invoices, PDF export etc) is too big of a project given our small revenue.

source: running a SaaS in Germany

<comment><AUTHOR> Thank you for your reply!

I will check these services out. I hope that they can fit my needs. :)</comment></comment>


Ask HN: Why are certain posts to HN getting 'Dead"-ed? - <AUTHOR>

I recently enabled "showdead" on my account, & I'm seeing posts get "dead"-ed, in which its not immediately clear as to why they get killed.
Examples:
jonathanhadams.com
-and-
socialposter.org
It leads me to wonder what criteria is implemented to determine which to kill... <comment><USER2> The first website is a blog that contains one entry. It's about getting banned by a bank. The second is a domain that styles itself "The Right Way To Automate Your Facebook Groups Marketing". It's easy to see either or both sites winding up as the endpoint for problematic link submission patterns.

</comment><comment><USER3> Some die because they get flagged by users. Some die because the submitter is banned. Some die because the domain is banned. There may be other reasons, but I don't know of any others for sure.

<comment><USER4> "Flagged" links explicitly have a [flagged] tag now.

</comment></comment><comment><USER5> Those examples are top level domains.

Usually people post specific articles vs. top level domains. Perhaps you can find specific examples?

</comment><comment><USER4> Both people who submitted those links are hellbanned. (check their submission history)

</comment><comment><USER6> how do you know if your account is banned/hell banned?</comment>


AMD EPYC Performance Testing with systemd - <AUTHOR> https://www.percona.com/blog/2018/07/11/amd-epyc-performance-testing-ps-systemd/ <comment><USER2> Fun fact: a lot of user benchmarks of Ryzen Threadripper have lower averages than standard performance. For example passmark and userbench. This is because many are running TR with just 2 dimms rather than 4 dimms. This basically reduces performance by +20%. I almost think that AMD should have just not made TR work in this case because the lower than accurate benchmarks hurt then.

I do not know exactly why it has this performance characteristic but I've witnessed it first hand. It is very ease to reproduce with Passmark on Windows.

<comment><USER3> Who coughs up boku bucks for a Threadripper and an X399 board and then cheaps out on RAM?

<comment><USER4> s/boku/beaucoup/

Interesting eggcorn; where'd you learn it that way?

<comment><USER3> Noted. I have no idea. I appreciate the corn removal.

<comment><USER5> I'm totally going to say it your way from now on. But only for currency: "boku bucks", "watashi won", and "ore reals".

<comment><USER6> Is that "bokuno bucks", or did I miss the idea?

<comment><USER7> It's a reference to the (grand?)parent typo.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I am pretty sure it has something to do with kernel.sched_autogroup_enabled = 1 which places process from different sessions into different scheduling groups.Bash terminal is session leader and all processes are part of it, unless they explicitly break away with setsid(2) call

<comment><USER9> Found some more details here: [https://www.postgresql.org/message- id/50E4AAB1.9040902@optio...](https://www.postgresql.org/message- firstname.lastname@example.com)

</comment></comment><comment><USER6> Most likely the change is from cgroups, and not systemd itself. This could be verified by booting with and without cgroup_disable=cpu.

<comment><USER10> And running systemd-cgtop might help see what's going on.

</comment></comment><comment><USER11> This is perhaps tangential to the article, but what is the advantage of running the MySQL server with more than 48 threads on a 24-core, 48 thread CPU anyway?

The fact that performance is in the EPYC cpu increasing on the older 4.13 kernel when you use 100 instead of 40 threads is surprising to me. On the Epyc (Kernel 4.15 | Ubuntu 18) and and Xeon CPU you can see it stalls or decreases from ~48 threads upwards.

<comment><USER12> The thread count in these graphs is typically on the client side -- it's the number of concurrent client threads (connections) coming from the benchmark. So with more client threads than CPU cores/HT threads, the benchmark can show the results of increasing the amount of CPU contention/saturation.

On the server side, MySQL defaults to using a model of 1 thread per connection, plus various additional background threads for I/O, listening for new conns, replication, signal handling, purging old row versions, etc. Most of these are configurable, but it's not as simple as "running the MySQL server with N threads". Basically, if the benchmark is using N threads on the client side, then you can assume the server actually has N + M threads, as the server-side thread count is dynamic based on the workload.

<comment><USER11> Ah, this is the answer that makes the most sense. Thank you.

</comment></comment></comment><comment><USER13> Its the infinity fabric. AMD EPYC doesn't have 64MB of L3 cache. It has 8x8MB of L3 cache.

* If CCX#0 has a cacheline in the E "Exclusive Owner" state, then CCX1 through CCX7 all invalidate their L3 cache. There can only be one owner at a time, because the x86 architecture demands a cohesive memory.

* All 8-caches can hold a copy of the data. In the case of code: this means your code is replicated 8x and uses 8x more space than you think it does. Code is mostly read-only. With that being said, it is shared extremely efficiently, as all 8x L3 caches can work independently. (1MB of shared code on all 8x CCXes will use up 8x1MB of L3).

* Finally: if CCX#0 has data in its L3 cache, then CCX#6 has to do the following to read it. #1: CCX#6 talks to the RAM controller, which notices that CCX#0 is the owner. The RAM controller then has to tell CCX#0 to share its more recent data (because CCX#0 may have modified the data) to CCX#6. This means that L3-to-L3 communication has higher latency than L3-to-RAM communication!

\</comment><comment></comment><comment>-

In the case of a multithreaded database, this means that a single multithreaded database will not scale very well beyond a CCX (12-threads in this case). L3-to-L3 communications over infinity fabric is way slower, because of the cache coherence protocols that multithreaded programmers rely upon to keep the data consistent.

But if you run 8x different benchmarks on the 8x different CCXes... each of which were 12-thread each, it would scale very well.

\</comment><comment></comment><comment>-

Overall, the problem seems to scale linearly-or-better up to 16ish threads. (8x is 6762.35, 16x is 13063.39).

Scaling beyond 6-threads is technically off a CCX (3-cores per CCX on the 7401), but remains on the same die. There's internal infinity fabric noise, but otherwise the two L3 caches inside a singular die seem to communicate effectively. Possibly, the L3->memory controller->L3 message is very short and quick, as its all internal.

The next critical number for the 7401 is 12-threads, which is off of a die (3+3 cores per die). This forces "external" infinity fabric messages to start going back and forth.

Going from 12-threads (10012.18) to 24-threads (16886.24) is all the proof I need. You just crossed the die barrier, and can visibly see the slowdown in scaling.

\</comment><comment></comment><comment>--

With that being said, the system looks like it scales (sub-linearly, but its still technically better) all the way up to 48 threads. Going beyond that, Linux probably struggles and begins to shift the threads around the CCXes. I dunno how Linux's scheduler works, but there are 2x CCXes per NUMA node. So even if Linux kept the threads on the same NUMA node, they'd have to have this L3 communication across infinity fabric if Linux inappropriately shifted threads between say... Thread#0 and Thread#20 on NUMA #0.

That kind of shift would rely upon a big L3-to-L3 bulk data transfer across the two different CCXes (although, on the same die). I'd guess that something like this is going on, but its completely speculation at this point.

<comment><USER14> That doesn't really answer the question: What's with the systemd performance being slow?

<comment><USER15> I, too, read the article incorrectly the first time round. What it's saying is that for an EPYC CPU, performance under systemd is _better_. For a Xeon CPU, performance under systemd is _worse_.

So, the EPYC's architectural differences won't explain why an EPYC CPU runs slower under systemd, because it's the opposite.

</comment></comment></comment><comment><USER16> I'm not an expert, I'm a lowly systems admin-

But I imagine the difference is that size of systemd itself and how mysql does fork().

SystemD is 1.5MB itself on my systems where I have it, but upstart (for example) is 148KB on centos 6.

Since an AMD Epyc has roughly 64Mb of L3 Cache, a larger binary would not have to be evicted from L3 cache as often.

One of Intels generally powerful all-rounder CPUs (2687Wv4) only has 30Mb of "Smart-cache" (which is fancy speak for; not that much)

A complete guess on my part though..

<comment><USER17> I'm upvoting you because even though you turn out to be wrong, you appear to have been sincere about it. You shouldn't be punished, even in fake internet points, for offering a hypothesis in good faith.

<comment><USER18> I don't think imaginary internet points serve entirely or even mostly to punish.

It served to highlight valuable content and in some venues to weed out low value content entirely. This is more significant in large bodies of comments. Example highlighting the most useful 20 comments out of 700.

Interestingly sometimes wrong information can lead to good threads where people provide helpful corrections. In this case the thread is valuable for stirring up discussion even if the information may be wrong.

</comment></comment></comment><comment><USER19> > I ran the same benchmark on my Intel box

What was the Intel box? I'm also wondering the EPYC system was configured properly.

<comment><USER20> It was listed in the first few paragraphs, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz

</comment></comment><comment><USER21> systemd not SystemD

<comment><USER22> Irrelevant

<comment><USER21> Kinda. It does make me feel like the author doesn't have enough knowledge about it.

</comment></comment></comment><comment><USER23> Implying that systemd is somehow the root-cause for this performance disparity strikes me as ridiculous.

I've noticed a pattern over the years with anyone spelling systemd as SystemD: They tend to not really know what the hell they're talking about with regards to systemd, while possessing significant bias against the project, actively searching for reasons to disparage it.

<comment><USER22> Feel free to illuminate us with what the possible performance discrepancy is instead caused by ?

<comment><USER23> A kernel bug, that systemd exposes by attempting to utilize more of the kernel's newer features.

<comment><USER24> Possibly, but it might simply be that systemd using the shiniest new features just for the sake of it is not the most performant or sensible approach.

<comment><USER15> When running Percona under systemd the EPYC system was getting 24% _more_ throughput.</comment></comment></comment></comment></comment>


Agility Requires Safety - <AUTHOR> http://themacro.com/articles/2016/03/agility-requires-safety/ <comment><USER2> Google is failing me right now, but I remember Kent Beck explaining why he used the term "extreme" in XP. It refers to things like extreme skiing. You can helicopter to the top of a mountain and do crazy things, but you will get killed. Extreme skiers avoid getting killed by reducing risk. You break down all of your movements to their absolute basics and you perfect them. Then when you are skiing, you stick to those basics, performing them almost perfectly time after time. You never do anything extraordinary. By doing this you de- risk each movement to the point that you can chain them together and do something astonishing. In reality, though, extreme skiing (and extreme programming) is simply monotonous repetition of basic skills executed to near perfection.

To me, this is what "agile" means. It means boiling it all down to a small set of skills that you can perfect and repeating them over and over again without exception. Because you are never taking any risks, the overall project can appear to be insane, but still be accomplished.

If you are negotiating what you are doing by saying, "maybe we can get away with X", or "maybe this will be good enough", then you will not be able to achieve this kind of agility.

And before someone asks: yes, the code will still not be perfect in the end. You goal is the perfection and de-risking of your _actions_ not your artifacts. It is a subtle but important point.

<comment><USER3> No risk, no experiments, no innovation and getting caught in a rut of mediocrity and boredom.

I love experimenting and taking chances with code and ideas. Yeah you end up spending more nights and it might take more time or it might blow up in your face but what's the point of being a programmer if you can't push limits.

<comment><USER2> This is actually a good point. In XP this is one of the reasons you do spikes. Often you will throw away all of your rigour when you do a spike and just see what comes out the other side. Then you throw away the code and reimplement it using your rigour. That way you get the best of both worlds with a small penalty of having to do some rewrites. It takes a considerable amount of discipline, though, to throw away working code when people are screaming at you to deliver ;-)

<comment><USER3> Haha, I thought it needed more discipline to keep working coder as I keep renaming and rewriting.

</comment></comment></comment></comment><comment><USER4> While I agree with the content, I dislike the straw-man pattern that is so commonly found: "you can use method A stupidly or method B (my favorite) intelligently. Hence method B is the best."

Take for example:

> Developers work in total isolation for weeks or months at a time on feature > branches and then try to merge all their work together into a release branch > at the very last minute.

You have also option 3: Come up with a _specification_ (not design) for all the components up front in such a way that it minimizes integration risks. Split tasks and define interfaces and/or protocols so that the work can be developed in parallel. Still, try to follow up with the changes in other branches and keep your work up-to-date with _major_ changes that may happen in the main branch. Try to merge to see if there is any conflict, but don't push half-work. However, if you have to modify a main component that is used by other in order to implement your thing, and that change can be merged back safely, do it as soon as possible.

<comment><USER5> Author here. FWIW, that sentence "Developers work in total isolation for weeks or months at a time on feature branches and then try to merge all their work together into a release branch at the very last minute" is actually the exact opposite of a straw man: it's a real occurrence I witnessed first hand at a number of companies (if you want to hear all the gory details about one of them, check out the book: [http://www.hello-startup.net/](http://www.hello- startup.net/)). There certainly are companies that are able to make feature branches work for them the way you described, but based on my personal experience and interviews with several dozen other successful companies, feature branches usually lead to disaster.

<comment><USER6> Using one anecdotal experience as proof is not the exact opposite of a strawman.

Similarly: "That one hour you "saved" by not writing tests will cost you five hours of tracking down a nasty bug in production, and five hours more when your "hotfix" causes a new bug."

These numbers don't line up with any experience I've ever had. In my opinion the value of testing should stand on its own without having to exaggerate.

<comment><USER5> > Using one anecdotal experience as proof is not the exact opposite of a > strawman.

A strawman argument is an argument no one is actually making, but one that's easy to debate against (to "knock down"). So even "one anecdotal experience" implies there _is_ someone making that argument and it's not a strawman. Moreover, as I said above, it's not a single anecdote, but experience with many, many companies, including ones I worked for directly, those that are the clients of my company ([http://atomic-squirrel.net/](http://atomic- squirrel.net/)), and the many companies I interviewed while writing my book. Of course, the plural of anecdote is not "data", but I'm pretty sure that you don't need statistically significant data sets to show your argument isn't a strawman.

> These numbers don't line up with any experience I've ever had. In my opinion > the value of testing should stand on its own without having to exaggerate.

If anything, it's not an exaggeration, but an underestimate. I can't count how many hours I've lost to debugging that could've easily been saved by a handful of automated tests. But perhaps you're a better programmer than I am, and I envy that your code works perfectly regardless of whether you write tests or not.

<comment><USER6> > I can't count how many hours I've lost to debugging that could've easily > been saved by a handful of automated tests.

Undoubtedly, but be careful you're not suffering from confirmation bias, are you properly accounting for all the tests you wrote that never detected an issue, where they didn't save tons of time in a major refactor (because it never happened)?

> But perhaps you're a better programmer than I am, and I envy that your code > works perfectly regardless of whether you write tests or not.

[http://blog.dilbert.com/post/141657128476/the-sarcasm- tell-w...](http://blog.dilbert.com/post/141657128476/the-sarcasm-tell-with-an- absurd-absolute)

</comment></comment></comment></comment></comment><comment><USER7> I've been having some trainings on agility and software development, at an european Big Corp™ (where I work).

Here at european Big Corp™, management is worried that our size is making us slow, and they also want to be cool like the start-up _kids_ in the valley. As such, we've been using/trying to use Agile, but with very limited success. Big Corp™'s solution to this obviously low success is to buy thousands and thousands of Euros worth of training, with Agile and Scrum certified trainers and partners, which - every single time - repeat _ad nauseam_ the same doctrine and dogmas, much like liturgy in a church. A few examples:

* "So your colleagues are over-estimating every single task - pardon me, user story! - to have time to browse reddit? Estimate with story points, they'll see that their velocity is slow.";

* "So your colleagues don't like resolving bugs? Put a bug chart in the office where everyone can see it, they'll feel guilty and solve them!";

* "So your colleagues don't like to create tests and write half-assed code, totally ignoring definitions of done and the like? Just wait until velocity drops because of technical debt, they'll understand and learn!".

Well, what's my point here? Agile may require "safety" and all the technical _goodies_ described in this article, but - before that - it requires a team of committed people. This is the basis of Agile and Scrum. And that's where my company fails, and that's why Agile - or any other approach - won't work here until people are responsible and committed. The build is now broken, will a team of uncommitted people will care? They'll push around the responsibility until someone fixes it.

So, yeah, Agile requires safety; but, before that, it requires commitment. I feel it's an engineering-type trait, to try to solve human issues with tools (bug charts, code coverage, continuous integration/delivery), and many engineering-driven companies seem to play the game that way. But all these tools won't solve the real problems which explain why a team might be failing. And if a team is committed, they'll eventually succeed, even without the shiny tools and cool approaches.

<comment><USER5> > So, yeah, Agile requires safety; but, before that, it requires commitment.

Completely agreed. There are certainly tools and processes that are more effective than others (as I discussed in the post), but for a creative discipline like programming, no process or tool will be effective unless the creators (the programmers) buy into it. That reminds me of a quote from _Peopleware_ :

> The maddening thing about most of our organizations is that they are only as > good as the people who staff them. Wouldn't it be nice if we could get > around that natural limit, and have good organizations even though they were > staffed by mediocre or incompetent people? Nothing could be easier—all we > need is (trumpet fanfare, please) a Methodology.

<comment><USER8> Tellingly, the "high discipline methodologies"[1] page on c2 was kicked off by listing XP and the Personal Software Process.

(You _can_ create systems for enabling median folk to accomplish things, even if they are disinterested. We call it "bureaucracy", and it sucks, but a lot of the time it kinda-sorta works. A bit.)

Anyway, as usual: you need good people, good process and good tools.

 _None of these are substitutable for the others_ , despite what methodologists, tool vendors and various worthies might tell you.

[1] [http://c2.com/cgi/wiki?HighDisciplineMethodology](http://c2.com/cgi/wiki?HighDisciplineMethodology)

<comment><USER7> > (You can create systems for enabling median folk to accomplish things, even > if they are disinterested. We call it "bureaucracy", and it sucks, but a lot > of the time it kinda-sorta works. A bit.)

Yeah, it's true. And the _kinda-sorta_ might be just enough to some companies (which are too big to fail and have enough leverage to push mediocre stuff to the market).

On a side note, I've been _feeling_ , lately (and within the context of all this Agile BS my company tries to indoctrinate me with), that management is really the _art_ of accomplishing _stuff_ without making large assumptions about your resources (in software, without assuming any kind of talent, commitment or responsibility from the team). And, although it seems horrible to me, there's really a lot of knowledge and value in achieving things even when you only have a bunch of uncaring, undedicated and uncommitted monkeys which only care about collecting their paycheck.

</comment></comment></comment></comment><comment><USER9> Agile enthusiasts really enjoy applying agile methodologies to functional requirements such as user stories.

But non-functional requirements are rarely explicit: security, reliability, redundancy, durability, concurrency, performance, scalability, configuration, deployment, documentation, logging, monitoring, supervision, maintainability, construction for verification...

You don't get a user story saying: "as a user i would like my information to be private" or "as a user i would not like to experience a concurrency bug".

To neglect those non-functional requirements in favor of perceived progress is not in the company's best interest. A solution that doesn't comply with those requirements also has a name: a functional prototype. There's a difference between developing production software and developing prototypes, even if you consider yourself agile.

Now, as a software engineer, you should be able to identify these requirements and include them in estimations. You can also ignore them, and project an image of a highly productive engineer, but some day your code will crash and you won't have 10 days to fix it. That day you will be miserably fired to the sound of a trumpet.

<comment><USER8> > _You don 't get a user story saying: "as a user i would like my information > to be private" or "as a user i would not like to experience a concurrency > bug"._

Uh, you do. You totally do.

"As a User, I want the site to appear on my browser quickly".

In acceptance criteria, "Quickly is defined as 98th percentile 400ms full roundtrip to AWS US-east-1".

How do you do this? You write a test. What kind? A performance test. When does it run? _Every time you check into CI_.

How is this different from standard agile practice?

It isn't.

<comment><USER10> The quote is about 'privacy' and your user story is about 'speed' \- these are different criteria and 'privacy' is much harder to specify in a user story.

<comment><USER8> That's what I get for reading too quickly :)

I focused on performance because that's one example I've had brought up several times. And it's probably the easiest one.

I've seen privacy stories too. The style I like is to create a malicious user and _deny_ them.

        As a Malicious User
        I want to steal credit card numbers
        So that I can sell them on the black market

        Given I have access to the web app
        When I supply malformed URLs
        I am ignored

        A/C
        Pentest tool with decent corpus

Another approach, also used, is exploratory testing. Security and privacy are tricky because you're dealing with humans who can react creatively; so the best test is humans who react creatively.

</comment></comment></comment></comment><comment><USER11> I have done agile development successfully, and yet, the article rings very hollow for me, because most of its examples have very little to do with the principles the author tries to explain.

For instance, he talks about working strategies, and puts Google as an example. Google is a terrible example for almost every other company out there. They have a gigantic monorepo, which is only manageable because they have custom tooling from hell. For most of us, the organization doesn't have said custom tooling from hell: The OSS version of bazel just doesn't work quite as well out of the box. If you aren't running a highly modified version control system like they do, check in performance dies. You might be able to pretend to be Google if you are tiny instead, but anyone in between will just meet suffering. It's a bit like trying to match apple in industrial design.

Then there's the talk about feature flags. They are great, useful things, but there is also hidden suffering behind feature flagging all the things. There is much extra gardening required, and a completely different set of headaches when relatively large changes affecting the same parts of the code are being hidden behind feature flags. They have weird interactions too! And don't forget how much fun it is to have intermediate data structures changing for features that aren't active: He is just glossing over big, big problems, that happen to be different than the one he discusses.

Given that the author is consulting for tiny startups, chances are he hasn't stared at those problems in the face, but they exist, and they are especially pernicious when your tiny company believes that imitating google will work, and then reaches 60-80 programmers: Then all the advice above starts to crack, and it only gets worse when you get into the 200 engineer range.

The difficult part is not being a small company, where any and all practices will work. It's not that hard being huge either: Just invest heavily in your own ecosystem. PHP too slow? Rewrite it! Git too slow? Write a new engine for Mercurial! It is when a company is growing fast, bit isn't really large, when your technical practices can cost you your company, and the article's advice is PRECISELY the way to get murdered.

<comment><USER5> > For instance, he talks about working strategies, and puts Google as an > example.

First, I also listed LinkedIn and Facebook. Second, many small companies use the same strategies, but most people probably haven't heard of them, so they don't serve as particularly useful examples.

> Given that the author is consulting for tiny startups, chances are he hasn't > stared at those problems in the face

If you're going to make an ad hominem argument, you should at least do a more thorough job of looking up my background :)

I've worked at and with small, medium, and large companies. Every single tool and technique involves trade-offs, and no one approach will fit everyone, which is _exactly_ the point I discuss at the end of the post.

</comment></comment><comment><USER12> Agility requires prior knowledge and any action that puts that knowledge at risk of catastrophic lose is questionable. That said, agents taking on risks that are expendable without major loss of knowledge or unreasonable expenditures of resources will outperform competing systems that avoid loss at all costs.

</comment><comment><USER13> > all the teams would use the metric system, except one

We all know which one. Side question: why don't tech companies help push the USA public towards the metric system and the SI (International System of Units) in general?

<comment><USER14> Because units don't matter anymore ever since the _units_ command line utility was created. I can use watts/hogshead or horsepower/liter just as easily as kilometers or miles.

In practical terms, for the UI, it's best to use whatever customers are most comfortable with, since you don't want to scare them away over irrelevant issues.

<comment><USER13> I'm sure in 1998 there was a similar utility such as _units_ ; still the Mars Climate Orbiter disaster [1] and the Gimli Glider [2] happened. By Engineers or technical people, not the general public. I'm sure everyday small misunderstandings/errors happen from the disparity.

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

[2] [https://en.m.wikipedia.org/wiki/Gimli_Glider](https://en.m.wikipedia.org/wiki/Gimli_Glider)

<comment><USER15> >I'm sure in 1998 there was a similar utility such as units; still the Mars Climate Orbiter disaster

The utility did exist then, but a reading of the mishap report[0] for that event makes it clear that NASA was not using it. It looks like someone assigned a constant using the Imperial measure rather than Metric representation of a value. The function that used this constant did not verify the unit of measure, and the constant was likely just a floating point number, not a data type that even stored unit of measure.

I haven't read the Gimli report yet, but it's probably the same story: human error.

Edit: The Gimli Glider [1] was caused by human error.

[0] ftp://ftp.hq.nasa.gov/pub/pao/reports/1999/MCO_report.pdf see page 16

[1] [http://aviation- safety.net/database/record.php?id=19830723-0](http://aviation- safety.net/database/record.php?id=19830723-0)

<comment><USER16> > probably the same story: human error.

 _Right_. Humans are error-prone. That's why you want to remove places where human can make errors, such as unnecessary unit conversions.

<comment><USER15> I agree, and I don't mean to argue against moving to the metric system. I only intended to dispel the notion that software safeguards that would have prevented these incidents were in place and failed.

Educating developers about this potential issue and ensuring safeguards are in place to prevent disaster seems like a more readily achievable goal than inducing a national migration to the metric system.

<comment><USER17> Sod national, I'm talking about corporate. If my company mandates that all code must be written in Lisp, then that's what I'll do. If they mandate all monetary values must be stored as USD then that's what I'll do. And if they require that all code must use the metric system - with display options to convert to imperial? Thats. What. I'll. Do.

I don't care what the coding guidelines are - I only care that they exist. [within reason]

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> basically: write some tests, write some docs, add some automated tests, checkin often, be sensible and try not to cut corners.

how about: code like you are going to have to remove 2 features and add 3 new features to your code in 6 months time without the place burning down.

<comment><USER19> Yep, that is the reality most of the time. It would be easy if you had a fixed list of features for a project. But they change most of the time throughout the development. You get used to it and start planning accordingly.

</comment></comment><comment><USER20> So do more faster?

Sounds like something pointy-haired boss would say.

<comment><USER21> That's not quite what I got from it. More like, here's a more robust way to go about writing software, that may end up saving you time in the long run.</comment></comment>


Shopify launches independent Payment service - <AUTHOR> http://www.obj.ca/Technology/2013-08-13/article-3349197/Shopify-launches-independent-online-payment-service/1

<comment><USER2> Nice move by them :)</comment>


Show HN: A compiler for Markov chains written in the DOT language - <AUTHOR> https://github.com/calebwin/margin <comment><USER2> I like this, this could be linked to a larger program for solving Markov decision problems and stochastic games.

<comment><AUTHOR> Thanks! Yeah, I suppose so.

</comment></comment><comment><AUTHOR> Just a tiny thing I made for compiling DOT graphs to Markov chain implementations in Python.</comment>


Credit Where Due: Why the Mac design team got credit for their work (1983) - <AUTHOR> http://www.folklore.org/StoryView.py?project=Macintosh&story=Credit_Where_Due.txt&sortOrder=Sort+by+Date

<comment><USER2> _In fact, Steve eventually decided that giving recognition to the designers was a bad idea. Nowadays, Apple has abolished programmer names in the "About Box", and closely guards the names of their designers, allowing only a select few employees to interact with the press at all._

I wonder why he decided giving recognition in this way was a bad idea. It's a shame the thousands of people coming up with ideas, building hardware and implementing software at Apple aren't credited anywhere.

<comment><USER3> Well he went to lengths to establish anti-competitive no-hiring agreements between the major tech firms. Crediting employees just might mean someone would find it that much easier to hire them away and pay them a competitive wage.

<comment><USER4> Also there will be always be mistakes in apportioning credit - someone will always feel bad.

<comment><USER5> The model Apple used was that Jobs and Ive got all the credit for the whole company -- that was a much worse apportionment.

</comment></comment></comment></comment><comment><USER6> Here's the original "About" box from MacPaint.[1]

There was a concept back then that programmers were authors, and should be credited as such.

Apple later issued guidelines to _third-party developers_ suggesting that programs should not have developer names associated with them, because programming was a group effort.

[1] [http://www.geekculture.com/images/MacPaint.gif](http://www.geekculture.com/images/MacPaint.gif)</comment>


Why you can't cash out pt 3: Bitcoin is not a Ponzi! It just works like one - <AUTHOR> https://davidgerard.co.uk/blockchain/2018/01/04/why-you-cant-cash-out-pt-3-bitcoin-is-not-a-ponzi-scheme-it-just-works-like-one/ <comment><USER2> title: Why you can't cash out pt 3: Bitcoin is not a Ponzi! It just works like one

but if you're cashing out, doesn't that mean you already made your money? cashing out is completely orthogonal to actually making money. at least your first two posts were at least vaguely related to "cashing out" .

>This makes Bitcoin a zero-sum investment

>This is, again, why "market cap" is a misleading and useless number. If someone bought a fraction of a bitcoin at $19,000 per BTC, that doesn't make anyone else a "Bitcoin billionaire" whose bitcoins could be sold at $19,000 each — the total actual money recoverable from the system hasn't gone up.

so basically, just like any asset?

<comment><AUTHOR> You shouldn't expect not to be the bag holder; statistically, you will. _Most people are simply not going to be able to cash out_ at anything other than a _massive loss_ , and this is important and worth saying.

Perhaps I'm missing something, but I'm failing to see what's unclear about this ...

> so basically, just like any asset?

The difference being that if you buy all of a stock, you've bought a company, an enterprise that exists. Also, non-penny-stocks tend to have rather fatter order books than any crypto (even Bitcoin).

Think of it like this: what was the market cap of Beanie Babies in July 1999? Let's keep it to "investment grade" Beanies, per the jargon Beanie speculators were using. _Where did all that value go??_ Answer: nowhere, it was illusory.

<comment><USER2> sorry, asset isn't the right word here. "commodities" (ie. goods) is a better description.

<comment><USER3> The money doesn't go up with traditional goods, but the total value in the system does.

This is easier to understand if you think about a specific traditional commodity, say timber futures. A timber future is created by some arborist who has some trees to sell, and will hopefully be ultimately purchased (after probably passing through a few investors' hands) by someone who has need of trees, like a sawmill operator.

But here's the magic bit: the same tree is worth more to the sawmill operator than it is to the arborist. Because she owns a sawmill, she can make finished boards from the tree which she can then sell at a profit. The arborist, who lacks a sawmill, can't take advantage of that opportunity. So there is some range of prices for a tree where the arborist and the sawmill operator will both think, correctly, that they benefited from the deal. By moving the same tree from someone who can't make further use of it to someone who can, the total value has gone up. And as long as the price of the future remains in that magic range, any number of middlemen can skim some off in between and everyone still wins.

Bitcoin doesn't work like that. There's nothing one can do with a bitcoin other than sell it, so there's no two parties who will mutually benefit from an exchange at any price. If two people disagree about the value they, personally, can extract from a fixed amount of BTC they can't both be right. They may disagree about their predictions or their risk appetite. But there's no sale of Bitcoins that both parties can look back on with perfect hindsight and agree that they both benefited.

<comment><USER4> > If two people disagree about the value they, personally, can extract from a > fixed amount of BTC they can't both be right.

This is a absolutely not true if either party has outside opportunities (including the "opportunity" to avoid a unique personal disutility) not available to the other party; sure, all you can do with a Bitcoin is exchange it for other goods/services, but the goods/services A can exchange it for may not be the same that B can exchange it for. And even if they are, the utilities each party attaches to those things may not be the same.

</comment></comment></comment></comment></comment><comment><USER5> Dude, if I offer to buy your Bitcoins now for 1% of their market price, will you stop writing about how you can't cash them out? I mean, if they have no value, then 1% of the market price is a generous offer you should not refuse.</comment>


The C64 Re-Reborn – Preorder - <AUTHOR> https://retrogames.biz/the-c64/ <comment><USER2> Where's the US ordering option? Can you emulate the clunking sound of the 1541 drive while reading from the USB?

</comment><comment><AUTHOR> Info from the website:

The C64 is back, this time full-sized with a working keyboard for the dedicated retro home-computer fan.

Featuring three switchable modes – C64, VIC 20, and Games Carousel.

Connect to any modern TV via HDMI for crisp 720p HD visuals, at 60 Hz or 50 Hz.

An updated joystick, now featuring micro switches, companions the hardware making the included games even more fun than ever.

The Games Carousel has 64 pre-installed games including classics such as California Games, Paradroid and Boulder Dash, with new additions like Attack of the Mutant Camels, Hover Bovver, Iridis Alpha, and Gridrunner.

Topped off with the recently released shoot 'em up Galencia and text adventure Planet of Death to let you relive the glory days of true keyboard gaming! Plus, THEC64® allows you to load and save your own files and games via USB stick (including multi-disk titles) and program in C64 or VIC 20 BASIC.

</comment><comment><USER3> I get why the C64 Mini didn't have peripherals, but is this the same device (ARM SoC) with a keyboard pre-attached? If so, that means:

      * No cartridge interface
      * No drive or other peripheral interface (except USB)

I suppose I expected more effort to be put into a full-size recreation, but this is another "mini" console aimed straight at nostalgia. The joystick has microswitches this time around, at least.

</comment><comment><USER4> Will the case be compatible with the old motherboards and keyboards? Probably not but that would be great!</comment>


Chomsky: Spying Does Not Protect You - <AUTHOR> http://www.commondreams.org/headline/2013/06/19-3

<comment><USER2> Nor does listening to that loon Chomsky...</comment>


Show HN: Reselectie, a smaller/faster replacement to reselect and re-reselect - <AUTHOR> https://github.com/ralusek/reselectie <comment><AUTHOR> For those unfamiliar with the concept, it is essentially just a library for memoizing the response values from selectors/computed values. The memoizing functions are composable, allowing arbitrarily complex structures of computed values which will only recompute when any of their dependencies have changed.

It is meant for usage with immutable data structures of any kind, though the most common use case is usage in reference to an immutable redux store.

Please feel free to ask any questions.</comment>


Understanding Python metaclasses - <AUTHOR> http://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/

<comment><USER2> Metaclasses are awesome.

But the moment you put one in your codebase you have a ticking time bomb just waiting to blow up in the face of some unsuspecting programmer who doesn't know how they work. I've seen this in production with Django forms. Someone had to extend a form class and couldn't do it and couldn't figure out why, they had to ask me for help. (We wrote a little factory function to make the form instance first and patch it after but that's damn rude to have to do.)

The point is this: there is a _HUGE_ conceptual overhead to using metaclasses, huge. People like me will read GVR's "Killing Joke" article for kicks, because we _like_ the feeling of our brains catching fire and exploding. But junior devs' brains should NOT be exploding at work! (For goodness' sake, he named it after the Python skit with the joke so funny it kills you from laughter, the English use it on the Germans in WWII. He named it that for a reason!)

If you want to use metaclasses do it in your own home and wash your hands afterwards.

Seriously though, please _only_ use metaclasses in your production code (anything you want other people to use, and that isn't some experiment) if you absolutely cannot think of a simpler, more conventional way to accomplish what you're trying to do.

And, really, Python is so powerful and expressive I don't think you will find yourself stumped very often.

</comment><comment><AUTHOR> It would be very interesting to hear how the object system looks (comparatively) in other languages.</comment>


Peerconnect a P2P CDN implementation - <AUTHOR> https://medium.com/@peerconnect18/introducing-peerconnect-js-272b3f8d11eb <comment><USER2> We worked really hard on this project. Any feedback is appreciated!</comment>


What We Can Learn from the Epic Failure of Google Flu Trends (2015) - <AUTHOR> http://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/ <comment><AUTHOR> I just figured out that Google Flu Trends was shutdown in mid. 2015. This article gives some insights why it was shutdown about half a year later. Some of the data is still accessible for research purposes. [0]

PS: If you have issues reading the page, I'd suggest you to reloading and enable your browsers "Reader View".

[0]: [https://www.google.org/flutrends/about/](https://www.google.org/flutrends/about/)

*Update: Add link and change some phrasing.</comment>


Quick case: Char Pointer vs. Char Array in C++ - <AUTHOR> http://www.bfilipek.com/2014/07/quick-case-char-pointer-vs-char-array.html#.U8VtnVFFOhg.reddit

<comment><USER2> This is one of these unexpected things that make C++ really annoying sometimes. It would have been better to pick just one behavior and use it in both cases. For example, make it mutable (array allocation) in both cases, and if you really need to place the string in the RODATA block (to save memory for repeated immutable strings for example), you could have a compiler directive.

<comment><USER3> So, you're suggesting that we take a standard language feature and replace it with an implementation-dependent one?

</comment></comment><comment><USER4> Strange, never had problems with such constructions. That's quite intuitive actually: first you create a const char array then assign a pointer to it and because this array ("string") is const, any modification is forbidden. That's all - no magic here. In other words, it all boils down to "arrays vs pointers" \- a basics of C/C++.

<comment><USER5> still, it can happen and you get 'unexpected' runtime bug...</comment></comment>


Mark Cuban: place a 25 cent-per-share transaction fee on Wall St. trades - <AUTHOR> http://wallstreetpit.com/26503-tax-the-hell-out-of-wall-street-and-give-it-to-main-street

<comment><USER2> For whatever reason, Mark Cuban seems to feel that the only legitimate form of investment is long term speculation:

 _If you don't think the company you are buying is worth at least a quarter more than what you are paying, why are you buying shares?_

But markets need more than long term speculators. Suppose you want to sell shares to cash out of your long term speculative investment. Who do you sell to?

If another speculator wishes to buy shares _right now_ , there is no problem. But what if the other speculator wants to buy next week?

Enter market makers. They buy from you right now and sell to the other speculator next week, making money off the spread and taking the risk that prices will move unfavorably in the short term. Everyone gets to execute their trades almost immediately and this makes the speculative activity which Mark Cuban favors much easier. Why is this activity deserving of being taxed into oblivion?

</comment><comment><USER3> A per-share tax makes no sense, because a share is an arbitrary measurement. This would effectively be a regressive tax on small-time investors.

As Cuban himself mentions, it would put pressure on companies to do reverse splits. But I believe he underestimates how much pressure. You'd see stratification, with most companies issuing the A-class big investor shares with prices in the $10s of thousands ($100s?) and B-class cheap shares.

Middle class people buying small amounts of cheap shares in retirement plans would pay the bulk of this tax.

<comment><USER4> You could limit this tax to short term trades so it wouldn't penalize long term buy and hold investors.

<comment><USER5> Yes, the simplest solution is a 0.1 % tax on short-term trades. It's actually pretty strange that practically everything else one buys is taxed by the government but not shares. No surprise that we get all this useless and dangerous high frequency trading, and an obscenely large financial sector.

<comment><USER2> Capital gains on shares are taxed. Short term capital gains are taxed at a higher rate.

</comment></comment></comment></comment><comment><USER6> Two problems:

1) _Acquiring a company worth $100mm pre-tax?_

\- After tax, the cost just went up to $125mm.

2) _Global competition_

\- Foreign exchanges would under-cut domestic exchanges, attracting many US based companies to list there and if the US attempted to tax foreign transactions by domestic persons, then foreign investors would end up with an unfair advantage.

The idea of disincentivising short-term investments is a good one. Changes to existing capital gains rules or a progressive per transaction tax may be more feasible though.

<comment><USER7> _After tax, the cost just went up to $125mm_

That's only assuming the company is trading at $1/share, which Cuban's proposal is saying should be taxed at $0.05/share, raising the cost to $105mm. The actual tax will be dependent on the valuation of the company divided by the number of shares there are. It's not a straight 25% tax across the board.

<comment><USER6> Thanks, this illustrates the first problem well, I was just pointing out the kind of impact Cuban's proposal _could_ have on a valuation. Any tax implemented like this would still have a proportionate effect on returns.

Not sure that anyone is trying to make a case that we need less shares; rather, we need a system that incentivises a focus on fundamentals.

</comment></comment></comment><comment><USER8> For all those people that consider this a good idea, have you ever really considered what high-frequency traders do for the market? High-frequency is a significant source of liquidity. Had high-frequency not been place during the financial crisis, the drops would have been much more significant than what we actually saw. Congress and the American public don't seem to understand this. If you pull the plug on high-frequency trading, you are pulling the plug on automated market makers, and the less market makers there are, the wider the spreads will be and the more volatile the markets will be. Now, I'm not saying that all high-frequency is market-making, but it surely a significant portion of it.

</comment><comment><USER9> Here's an idea Mr. Cuban might like- a 99% tax on people who sell their companies, retroactive.

It's easy to suggest taxes that don't affect you personally.

</comment><comment><USER10> I'm still confused as to exactly what problem he thinks he's solving here. That one-off weird glitch that happened for the first time in history yesterday and will probably never happen again? Or perhaps just sticking a few billion dollars extra into the gaping maw of the US Treasury?

And at what cost? Driving businesses out of the US? Severely lowering the attractiveness of listing a company on the US stock exchange? A billion other unforeseen consequences which neither I nor he is smart enough to see?

</comment><comment><USER11> What about bonds, options, futures, etc.?

But anyway, it seems like the volatility that automated trading causes _is_ the tax on the automatic traders. Anyone who bought, say, Accenture the day before this happened and sold it the next day just took losses similar to the wider market. (And the market is on a downtrend for good reasons, not "some computer program fucked up".)

Only the algorithms that were trading as it fell to zero lost money. It's unlikely a real person or long-term investor would have noticed it at all. So people that have their retirement savings in an S&P500 index fund have nothing to worry about, and the people that trade every millisecond have the same concerns as always.

</comment><comment><USER12> What about a better idea - take away the tax incentive / mandated 401k contributions and allow "Main St." to stop being at the mercy of Wall St.

<comment><USER13> And how is removing an incentive to save for your own retirement (vs. relying on "social security") a good thing?

</comment></comment><comment><USER14> The madness of the market seems to stem from the tight feedback loop. Want to really make a difference? Pool it by hour. All calls have to be in by a millisecond before the hour, and after resolution no more transactions occur until the next hour. Now everyone has to cool off for a bit before making a trade based on changes to the market, and algo trading is relegated to stocks that don't matter. Any transaction worth making will have a human thinking about them for an hour, and it regulates the top speed of a crash.

</comment><comment><USER15> "Every time markets crater, there is never a lack of liquidity."

To me this just reeks of misunderstanding of what happened last Thursday. The 20 minute nosedive was largely due to a lack of liquidity--bids just disappeared in most markets (hence trades that happened at 1c).

</comment><comment><USER16> It will take the people on Wall St. about 2 days to stop trading 'shares' and start trading '1 millisecond options'. Firms like Goldman Sachs make money by skirting the laws and regulations. While the average investor would end up paying this tax.

</comment><comment><USER17> This particular proposal isn't very well thought out, but plenty of other people have had similar ideas, going back at least to Keynes:

<http://en.wikipedia.org/wiki/Financial_transaction_tax>

[http://news.google.com/news/search?q=%22financial+transactio...](http://news.google.com/news/search?q=%22financial+transaction+tax%22)

</comment><comment> daniel-cussen You realize that, as much or as little sense as this makes, it's roughly what every voter wants to see happen?

<comment><USER10> Only the most ignorant. And even most of those could be talked out of it once somebody explained the downsides to them.

</comment></comment><comment><USER18> supposedly 2/3 of the market is from automatic trading applications - the ones that try to make a little money here and there. this would proposal would kill that portion of the market. at least market volume would represent something more meaningful than it does now.

<comment><USER2> Supposedly 2/3 of the packets on the network are sent from one server to another (e.g. webserver to DB) rather than from the server to the end user. Eliminating those packets would make network traffic represent something more meaningful than it does now.

Granted, your web server can't talk to the database anymore. But at least we've killed a portion of the internet which I don't understand, and which is mostly used by a bunch of geeks I don't like!

</comment></comment><comment><USER19> Here's a much better solution for stabilizing wall st. and our financial system: end fractional reserve banking. It's completely unnecessary for financial intermediaries to rely on the fractional reserve system to function and generate returns, look at venture capital firms and hedge funds. It is an unsustainable business model injecting a lot of the root fear into the market that is propped up by the federal subsidy of Deposit Insurance in order to function. FDIC is nothing more than a subsidy for banks to take on unnecessary risk and arbitrage the yield curve by making riskier loans.

</comment><comment><USER20> There's a lot of shares worth less that $0.25 (edit: I missed the thing about smaller tax on low-price stocks on first reading...but IMHO that'd just feed pump & dump schemes). I'd prefer a small per-transaction tax which would cut into the margins of HF traders a bit. People object that that would reduce liquidity but the market does not and should not depend on speed trading. Frankly I'm not a fan of algorithmic trading strategies, I really feel that trades should be human-executed at all times.

</comment><comment><USER21> eh, then Wall St. will just pass the extra expense on to Main St. in the end.

its a lose-lose solution

<comment><USER11> Indeed. A high cost of investment means no more insurance, retirement funds, or loans.

</comment></comment><comment><USER22> Why tax 25 cents on a $80,000 stock (like whatever Berkshire-Hathaway is now), and 25 cents on a "penny dreadful"?

I understand the point of view - tax away high-frequency trading, but have we really thought things through? Obviously not.

<comment><AUTHOR> FTA: "You could reduce the tax per share for stocks under $5 dollars to 5 cents. But I would leave it at 5 cents even for stocks priced at pennies per share or less."

<comment><USER10> Crazy. Imagine what this would do to any stock hovering around the $4.99 mark.

</comment></comment></comment><comment><AUTHOR> ( This article located due to mention by ruang: <http://news.ycombinator.com/item?id=1331269> )

</comment><comment><USER23> This is actually one of the most reasonable proposals for fixing Wal Street that I have seen in a long time.

</comment><comment><USER24> Tax Silicon Valley! And give it to those without factory jobs!!!! After all it was Silicon Valley innovation that allowed the robots to take our jobs!!!

edit: you laugh now...

<comment><AUTHOR> Did you read the article? The proposal seems reasonable to me, much more so than your comment gives it credit for: a small per-share transaction fee which could be fed into "an annual payment towards the next time Wall Street screws up and we have a black swan event that no one planned on".

It's just an inflammatory, link-bait headline (which maybe I should edit).

\-----

edit: I changed the title from its original, "Mark Cuban: Tax the hell out of Wall St. and give it to Main St.", to the current "Mark Cuban: place a 25 cent-per-share transaction fee on Wall St. trades"

<comment><USER24> Not only is the title link-bait. The plan is pure red meat. We all know that it's not _just_ financial engineering responsible for the crisis. It wasn't just Wall Street. Wall Street just happens to be Washington's latest political scapegoat. What I'm saying is beware when their attention turns westward.

<comment><AUTHOR> Adding a little bit of friction to vast, interconnected networks of automated high speed trades doesn't seem like the worst thing in the world to me. It seems like it might dampen otherwise wildly oscillatory behavior from the system.

<comment><USER2> Why do you feel that raising the bid/ask spread to $0.25 will prevent wildly oscillatory behavior?

If anything, it will probably increase strange behavior. If you want to buy shares, you'll either need to pay a largish premium or else you'll need to wait a while. Fun fact: for the most part, prices have stabilized and spreads have narrowed as HFT has entered the game.

<comment><USER25> If everyone, even the huge institutional players, has to deal with non-zero bid/ask spreads, it does reduce incentive to spend a lot of effort exploiting tiny arbitrage opportunities with huge-volume trades, which could stabilize things overall. Admittedly, it's something economists disagree on.

<comment><USER10> Arbitrage-exploiters do the worthwhile task of removing arbitrage. Putting arbitrage back into the market, visible to everybody but which everybody will sit on their hands until it becomes worth the 25 cent fee to exploit, seems like a way to create _more_ instability.

<comment><USER25> It can add instability though, if the arbitrage-exploiting is too large a proportion of the market. If 95%+ of trades are trades based on statistical market patterns, which are themselves created by those same 95%+ of trades, you get weird feedback loops that have more to do with chaotic systems and attractors than with supply or demand.

<comment><USER10> Looking at prices of any given share for any day other than Thursday (was it Thursday?) would you say that such instability and big feedback loops are a big problem?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> Actually there is a share trading tax in India it is equal to 2 percentage points of the value that is 0.02% of the value this makes sure that if anyone is going to do HFT there margin is at least bigger than 0.02% Learn more here : [http://www.smartmoneyindia.co.cc/2009/01/all-about- securitie...](http://www.smartmoneyindia.co.cc/2009/01/all-about-securities- transaction-tax.html) (not my link)

</comment><comment><USER27> It might be better just to put the damn money in a trust to pay off the national debt. God knows everyone with the money to be trading on Wall St. is responsible for that debt.</comment>


Ask HN: Better pay vs no work weekend? - <AUTHOR> Huge pay increase but 6days a week, what should be my decision? <comment><USER2> If you can get a 6-day job that pays that, you can get a 5-day job that pays it.

Smart companies know that people burn out when they work too many hours and end up being _less_ productive. Work for a smart company.

</comment><comment><USER3> This really depends more on your current lifestyle and status.

Some people are driven during their young age to work more (while the energy is there and personal commitments are less) and try to save up for the years ahead. Others have a more laid-back lifestyle where they value their personal time off than just being able to earn a lot more.

In the end, you are going to make your decision based on the circumstances surrounding yourself, whether it is _really_ worth it to sacrifice that extra day of possible rest and recreation time with a somewhat generous pay to beef up your bank account.

</comment><comment><USER4> You should consider whether the pay increase really is a pay increase per actual work hour (including overtime), and considering that you might be moving up to a higher tax bracket.

When I say work hour, keep in mind that places that honor overtime pay policies do so at higher rates (IIRC 1.5x base hourly rate). Realistically, that's pretty generous considering the level of exploitation some companies get away with, but remember that in addition to adding a work day, a 6-day week _subtracts one rest day_.

That means you get roughly half the number of days other people would for socializing, family time, errands, house chores, etc. The higher work-to-rest ratio can also negatively affect your health and your romantic relationship (or limit your prospects, if you're not in one).

If the pay increase involves relocation, also consider cost of living, house prices and future employment potential.

If the pay increase involves a change in type of employment type, again, consider tax implications and benefits (particularly healthcare benefits)</comment>


Show HN: TodoMVC Todo List App in VanillaJS TDD Example - <AUTHOR> https://github.com/dwyl/todomvc-vanilla-javascript-elm-architecture-example <comment><AUTHOR> We wrote this example/tutorial App for complete beginners to learn JavaScript & TDD while building a fully functional TodoMVC clone without any frameworks. Would love feedback from the HN community. Would you have found something like this _useful_ for learning JavaScript & TDD?</comment>


Ask HN: Wouldn't Vim be great on iPad? - <AUTHOR>

Diet Coda just hit the iPad. Several programmers are turning to iPad for simple reasons of portability. I was just thinking of using Vim for iPad. Is such a thing available? If it is not, wouldn't it be great to have Vim on iPad? Vim would be a dream on iPad with its small keyboard requirement. <comment><USER2> See: <http://itunes.apple.com/us/app/vim/id492668168?mt=8>

Both iPhone and iPad screenshots available.

It was released awhile back.

<comment><AUTHOR> wow. I am downloading right away</comment></comment>


The Animal Origins of Coronavirus and Flu - <AUTHOR> https://www.quantamagazine.org/how-do-animal-viruses-like-coronavirus-jump-species-20200225/ <comment><USER2> An _early 2019_ review paper[0] by Chinese authors has this to say in its abstract:

During the past two decades, three zoonotic coronaviruses have been identified as the cause of large-scale disease outbreaks–Severe Acute Respiratory Syndrome (SARS), Middle East Respiratory Syndrome (MERS), and Swine Acute Diarrhea Syndrome (SADS). SARS and MERS emerged in 2003 and 2012, respectively, and caused a worldwide pandemic that claimed thousands of human lives, while SADS struck the swine industry in 2017. They have common characteristics, such as _they are all highly pathogenic to humans or livestock, their agents originated from bats, and two of them originated in China. Thus, it is highly likely that future SARS- or MERS-like coronavirus outbreaks will originate from bats, and there is an increased probability that this will occur in China. Therefore, the investigation of bat coronaviruses becomes an urgent issue for the detection of early warning signs, which in turn minimizes the impact of such future outbreaks in China._ The purpose of the review is to summarize the current knowledge on viral diversity, reservoir hosts, and the geographical distributions of bat coronaviruses in China, and eventually we aim to predict virus hotspots and their cross-species transmission potential.

Is this prescient or purely coincidental or something else?

[0] [https://www.mdpi.com/1999-4915/11/3/210/htm](https://www.mdpi.com/1999-4915/11/3/210/htm)

</comment><comment><USER3> Should be noted that the numbers in the intro are a bit off, the U.S. now has 57 cases.

[https://bnonews.com/index.php/2020/02/the-latest- coronavirus...](https://bnonews.com/index.php/2020/02/the-latest-coronavirus- cases/)

<comment><USER4> Is there any sense for how accurate the case numbers are?

I've been thinking about it and I can't fathom how we would know of every case.

What percentage of adults who get the seasonal flu go see a doctor and get diagnosed, 10%? Coronavirus symptoms mimic the flu and can even by asymptomatic in people, meaning people can easily attribute symptoms to a bad cold/flu or not even notice them. On average someone with coronavirus spreads it to 3-4 other people. It's estimated that the virus started infecting people in early January, but China didn't start quarantining people until 3 weeks later or so.

I just don't see the math adding up, all it takes is a handful of people not seeking treatment in order for it to start spreading without our knowledge. There has to be thousands of additional cases around the world of that just aren't diagnosed, which is how we're suddenly seeing unexpected diagnoses in places without any previous outbreak like Iran.

<comment><USER5> We can't even test for it properly in the US right now:

[https://www.washingtonpost.com/health/2020/02/25/cdc- coronav...](https://www.washingtonpost.com/health/2020/02/25/cdc-coronavirus- test/)

And yeah, there are going to be a bunch of people here who won't seek help unless it gets really bad, and who will go to their jobs even if they feel crummy because they need the money, thus spreading it farther and more rapidly.

BTW, we were warned: [https://www.washingtonpost.com/national/health- science/the-t...](https://www.washingtonpost.com/national/health-science/the- trump-administration-is-ill-prepared-for-a-global- pandemic/2017/04/08/59605bc6-1a49-11e7-9887-1a5314b56a08_story.html)

<comment><USER6> Our healthcare system is really going to bite us here too - people are extremely hesitant to seek medical care since there's such a crapshoot of costs that you could pay.

(e.g. the story of the person who was fearful after developing flu systems after traveling to China so he checked into the ER for testing and got a $3,500 bill that 'might' be knocked down to $1,400 if he provides 3 years of medical history to prove it wasn't a preexisting condition: [https://www.miamiherald.com/news/health- care/article24047680...](https://www.miamiherald.com/news/health- care/article240476806.html))

So we have people who don't want to miss work and people who won't seek medical care unless they're in the later stages of the disease to avoid thousands of dollars of cost. Hopefully it peters out but this could get really ugly.

</comment></comment></comment></comment><comment><USER7> Fun fact: Coronavirus also recognises sialic acids (but they need an extra acetylation on top).

Fun fact 2: Sialic acids are important for protecting your gut / balancing the microbiome.

Fun fact 3: Bats apparently have a much simpler microbiome (less weight, better flying), and can tolerate low levels of coronavirus infection.

I would bet the closest non-flying relative of a bat would get respiratory infections too.

<comment><USER8> Bats really do seem to serve as viral reservoirs at an exceptionally high rate[1]. SARS, MERS, coronavirus and ebola all likely seem to have originated in bats.

One thing we may have to consider is a policy of bat eradication. At least in populated areas. It would have some ecological consequences, but the risk of mass pandemic probably outweighs that cost.

[1][https://books.google.com/books?hl=en&lr=&id=JnBpAgAAQBAJ&oi=...](https://books.google.com/books?hl=en&lr=&id=JnBpAgAAQBAJ&oi=fnd&pg=PA195&dq=bats+as+viral+reservoirs&ots=NnUojPhgh5&sig=9eFGutqoVZGppcEs- SO6hoWfMmg#v=onepage&q=bats%20as%20viral%20reservoirs&f=false)

<comment><USER9> I don't often say this outright, but that's a dumb idea.

"Insectivorous bats in particular are especially helpful to farmers, as they control populations of agricultural pests... It has been estimated that bats save the agricultural industry of the United States anywhere from $3.7 billion to $53 billion per year in pesticides and damage to crops."[1]

1\. [https://en.wikipedia.org/wiki/Bat#Economics](https://en.wikipedia.org/wiki/Bat#Economics)

<comment><USER8> > It has been estimated that bats save the agricultural industry of the United > States anywhere from $3.7 billion to $53 billion per year in pesticides and > damage to crops

In comparison, the coronavirus scare has wiped out $1.5 trillion from US equity valuations just in the past two days. Even taking the higher end of that estimate, preventing one coronavirus epidemic every 20 years still passes cost benefit analysis.

<comment><USER10> I do not consider vagaries of the stock market a valid reason to potentially wipe out an entire species.

More than that, you correctly identify it as a scare, which should be a clear indication how a short-sighted policy that may be.

</comment></comment></comment></comment></comment><comment><USER11> i thought humans are just another animal. why the surprise about diseases jumping from other animals to humans

<comment><USER12> There's no surprise, zoonotic viruses are well known. That said, viruses are usually highly adapted to a specific host. Jumping host species isn't trivial, and the mechanisms for how this happens are worth exploring.

<comment><USER13> The bulk of our diseases are zoonotic in nature.

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

Has the figure at 61%.

<comment><USER14> Sure, but here is a key line from the Wikipedia article you reference: "Most human diseases originated in other animals; however, only diseases that routinely involve non-human to human transmission, such as rabies, are considered direct zoonosis"

You aren't going to catch the current coronavirus from your dog.

<comment><USER13> True. But you could catch Rabies.

</comment></comment></comment></comment></comment><comment><USER15> As with other attempts at sparking discussions on the origin [1], I'm not a virologist, just a bystander whose curiosity was piqued by the proximity of the sole lab in all of China that's equipped to handle/research extremely infectious viruses and that of the outbreak.

My observations (all facts)

1\. Proximity of outbreak to sole advanced virology lab in all of China, suspicious

2\. Publications ( [https://jvi.asm.org/content/82/4/1899](https://jvi.asm.org/content/82/4/1899) )from lab suggest they were dealing with CoVid-19 like viruses for a while.

3\. State of China would strongly deny/cover-up the lab to be the cause of outbreak, even if that did happen. I'm not suggesting they engineered the virus, just suggesting that they were researching animals with the virus, and a freak case of violating safety protocol let to the virus leaking to the nearby seafood market. Again - attributing this to clumsiness, not malice

Given the above, I think an investigative journalist would find the circumstances fertile enough for a deep investigation. Given how hard it is to identify patient zero of the outbreak, I think journalists need to go down this path of investigation

[1]: [https://news.ycombinator.com/item?id=22424013](https://news.ycombinator.com/item?id=22424013)

<comment><USER16> There are US based researches on it already, and the evidence so far is it's not engineered. Your observations don't include all relevant facts, hence the conclusion can still be wrong. Like scientists in 18th century had all kind of weird ideas based on the facts they observed about the world. In today's world, for most of us, especially non experts on the fields, what really matters is all the facts out there that we don't know (or chose to ignore).

[http://virological.org/t/the-proximal-origin-of-sars- cov-2/3...](http://virological.org/t/the-proximal-origin-of-sars-cov-2/398)</comment></comment>


EFF Database of Police Agencies and Tech Tools They Use to Spy on Communities - <AUTHOR> https://www.eff.org/press/releases/eff-launches-searchable-database-police-agencies-and-tech-tools-they-use-spy <comment><USER2> Funny how the EFF only cares about police spying and not any other spying by the corporate mega corporations, which can be used as evidence by the justice system to prosecute.

<comment><USER3> > Funny how the EFF only cares about police spying and not any other spying by > the corporate mega corporations

[https://www.eff.org/wp/behind-the-one-way- mirror](https://www.eff.org/wp/behind-the-one-way-mirror)

"Behind the One-Way Mirror: A Deep Dive Into the Technology of Corporate Surveillance".

It should also be noted that the police (along with governments) have a lot more power to affect your life in ways that even "corporate mega corporations" cannot. This can be read as it being more important to affect change and keep people accountable who can have more of an impact on your life.

Another useful article: [https://www.eff.org/nsa- spying](https://www.eff.org/nsa-spying)

</comment></comment><comment><USER4> Ironically they don't allow you to access the Atlas Of Surveillance using the Tor browser, lol.</comment>


Architecture of a high performance GraphQL to SQL server - <AUTHOR> https://blog.hasura.io/architecture-of-a-high-performance-graphql-to-sql-server-58d9944b8a87 <comment><USER2> Article poorly titled - it using Postgresql, and most at first glance would assume SQL Server (though concepts pretty much the same)</comment>