Ask HN: Nightmares with Stripe? - <AUTHOR>

Have anyone of you had a nightmare with stripe? failed payments... holding of money... random charge backs... etc... I am about to deploy it on a project where the 'director' is a bit worried about not having a merchant account associated with stripe.
If you could share any bad times that would be great!
I have heard a ton of good but no bad so I don't have much ammo on possible situations...
Thanks HN! <comment><USER2> We've been using Stripe to accept payments at <http://telerivet.com> for about 9 months now, and generally we have been very happy with their service.

One thing Stripe doesn't really mention up front is that it's actually your responsibility to make sure that your customers aren't using stolen credit cards. (I assume this is the same for other payment processors, not just Stripe.)

We received a few payments that seemed suspicious (probably stolen credit cards), which resulted in a couple of chargebacks ($15 fee each) that showed up 3 months later. Since refunding suspicious payments to avoid chargebacks still incurs Stripe's transaction fees, we ended up developing our own heuristics to require manual approval of suspicious payments before sending them to Stripe.

<comment><USER3> Not to pry, but would you consider sharing the heuristics, even if at a general level, perhaps via a blog post? I think that many hacker peers would love to know what works for your team.

<comment><USER2> Here are some of the things Telerivet looks at to detect suspicious payments:

\- Credit cards that fail the address, zip, or CVC check. Stripe tells you whether these checks fail, but will still process the payment anyway.

\- Unusually large payments. For some reason we often see suspicious credit card payments of exactly $100. Maybe they're just testing if a stolen credit card works?

\- Payments for very new customers, or for customers that aren't actively using our service yet. Our service has a free plan for testing, so most real customers don't pay immediately.

\- Same credit card used on multiple accounts. We store Stripe's card fingerprint for each account so we can easily search our database for duplicates.

\- Multiple payments in a short amount of time.

When someone tries to submit a payment, we create a "customer" record on Stripe and test their credit card first without charging it. If the customer looks suspicious, our servers send us an email and save a record for the pending charge in our database. Then we can investigate further and either process the charge on Stripe or delete it. If the customer is legitimate after all, we'll mark their account as trusted so any future payments will be processed automatically.

<comment><USER4> What is your process for investigating further to prove the card is not stolen?

<comment><USER2> We can't really prove that the card isn't stolen. One of the frustrating things about the card-processing system is that there's no way for merchants to actually initiate a fraud check (where the bank calls the cardholder to verify a purchase), or even any way to warn the cardholder that their card may be stolen.

Our manual review process usually consists of looking at:

\- When the customer first registers, we ask them an open-ended question, "How do you plan on using Telerivet?". Did they provide an answer that would indicate that they are a legitimate customer?

\- Does the customer's verified email address look suspicious (e.g. a disposable email account, or something that seems randomly generated)? Actually now we automatically block accounts from known disposable email providers from registering for Telerivet in the first place, but that's a whole different story.

\- Does the customer's name look suspicious (e.g. random letters/numbers)?

\- Does the customer's use of our service so far look suspicious?

Potentially we may also follow up with the customer over email. People who seem suspicious typically don't respond.

</comment></comment></comment></comment></comment><comment><USER5> We have been really happy with stripe as well. Past year or so we have built several projects using stripe. The only time we had a scare was due to a rogue administrator. Stripe helped us investigate the problem.

</comment><comment><USER6> my experience w/stripe just adds to the pile of awesome. on a couple of occasions, i was in their support chatroom trading code snippets w/their engineers who were incredibly smart, responsive, and friendly.

</comment><comment><AUTHOR> Thank you for all of your comments :)!</comment>


Ask HN: Why do software toolsets change so fast?  Will it ever slow down? - <AUTHOR>

Was talking to a friend who said he quit programming because it changes so fast that he felt he wasn't building durable skills.<p>Why is it that we have to constantly be re learning new tools and frameworks?  Why does our industry change so fast?  Will it ever slow down? <comment><USER2> Because you choose to?

No One says you have to, unless maybe you are in an area that values the latest and greatest over proven results.

Established programs don't get re factored or rewritten in new technology all that much, especially big corporate systems. If you are freelancing or haven't worked on a long term project you probably are stuck in code du jour mode.</comment>


School Daze - <AUTHOR> https://nplusonemag.com/online-only/online-only/school-daze/ <comment><USER2> > But eventually this second generation of school gentrifiers started pushing > the black students out. [..] Gradually those students and their parents > began to feel less welcome at P.S. 8. It is still more integrated than the > Park Slope schools, but it is at 59 percent white students and rising.

Could this be applied to white students as well? I.e. they leave minority- white schools because they "feel less welcome"?

<comment><USER3> > Could this be applied to white students as well? I.e. they leave minority- > white schools because they "feel less welcome"?

Why wouldn't it be the case as well? Racism knows no race.

</comment></comment><comment><USER4> I don't understand this: "We wanted to try to do no more for our child than other people were doing for theirs, because that was bad for both parent and kid, but we felt guilty doing too much less." They seriously are _trying_ not to do more for their children than others?

So, since one of the criteria they mentioned in the article was the percent of students on the free/reduced cost lunch, will they start underfeeding their child because most of their classmates are probably undernourished?

<comment><USER5> No, this seems to be a misreading of the article.

They want to do everything they can to make their child succeed, and also feel bad that the opportunities their child has are not available to other children because of those children's socioeconomic status

Someone can have two conflicting opinions at the same time.

Everything in the world is not black and white, or all or nothing. Different things can have both good and bad parts that go with them.

</comment></comment><comment><USER6> This is a good article about a deep problem, but one side point up front jumped out at me:

> Once I began to see the schools, of course, I could not unsee them. I > realized how much of life—and by life in this case I mean real estate—was > organized around them.

It goes meta as well: JFK was shot by an assassin who had set up in a schoolbook depository. Yes, not only do the schools themselves take up a lot of space but simply looking after the textbooks requires a large physical plant!

Despite the fact that pretty much everyone attended a school and the majority of people have kids who did so at some point, school spending is a small percentage of overall GDP (and tiny proportion of federal spending), and is, as the article points out, distributed and spent in an ad hoc fashion.</comment>


Why Mixpanel switched from Erlang to Python - <AUTHOR> http://www.readwriteweb.com/hack/2011/08/switching-from-erlang-to-python.php

<comment><USER2> Actual link (grrr): [http://code.mixpanel.com/2011/08/05/how-and-why-we- switched-...](http://code.mixpanel.com/2011/08/05/how-and-why-we-switched- from-erlang-to-python/)

</comment><comment><USER3> "However, the team lacked an Erlang expert and the code became difficult to manage over time"

So I guess they had decided to go for Erlang because they had the expert ;)</comment>


Git Tower v3 beta: interactive rebase, reflog, PRs, more - <AUTHOR> https://www.git-tower.com/blog/tower-public-beta-2018-whats-new <comment><USER2> I've been a Git Tower user for a few years now. The company I work for has been moving from Assembla to GitLab, so I'm happy to see the GitLab pull requests feature and am excited to try it. Interactive rebasing looks great as well. Nice work, Tower team!

<comment><USER3> Thank you! Looking forward to your feedback.

</comment></comment><comment><USER4> SourceTree's interactive rebase GUI has been one of the biggest things keeping me using it. I'd very briefly tried out Tower, but wasn't impressed. I may have to take another look at it.

Any ETA on the rest of those "coming on Windows" features?

<comment><USER5> Great to hear you're giving it another try!

No ETAs, but the team is fully and exclusively focused on making Tower better every day (meaning: no other projects). We're working on Tower full steam!

</comment></comment><comment><USER6> I tried Git Tower for Windows when it first launched, it was pretty nice but didn't hit the mark for me to want to spend money on it. If they're going to make "hard" maneuvers like rebasing and cherry-picking easy to do in the UI though, it may be worth another look. GitHub hasn't given really any attempt to expose that sort of capability in their UIs, and as someone who doesn't Git enough to put the time into learning the command line... very interesting.

<comment><USER5> Disclaimer: I'm part of the team behind Tower!

Our goal with Tower is to make working with Git easier and more productive, for both Pros and Beginners. We're putting a lot of time and effort into design, workflows, and usability.

Additionally, we're making a lot of Git's "power-features" more accessible: it's not enough to just "somehow provide" a feature like Interactive Rebase. It's only helpful when it's carefully designed and really useable...

With the current Beta version (www.git-tower.com/public-beta-2018), I think we've made great progress to achieve these ambitious goals. However, of course: please see for yourself :-)

</comment></comment><comment><USER7> It would be great to get a nice Git GUI client for Linux. Hope they can add Linux as a supported platform in the future.

</comment><comment><USER8> Ooo nice one. Once interactive rebase lands I'm switching from SourceTree.

<comment><USER5> Interactive Rebase (as well as Pull Requests) is already implemented! I suggest you check it out while it's still in Public Beta (= free) --> www.git- tower.com/public-beta-2018

<comment><USER8> I did sign up, but there's no way to download directly and need to wait for an invite. Still waiting...</comment></comment></comment>


Why does this Java program terminate despite appearing that it shouldn't? - <AUTHOR> http://stackoverflow.com/questions/16159203/why-does-this-java-program-terminate-despite-that-appears-that-it-shouldt-and <comment><USER2> One of my biggest WTF moments as a programmer was dealing with a high performance spectrum analyzer. It was a cost no object bit of experimental military hardware, and was very impressive from that perspective. But the software was buggy. We would see lockups, as well as discontinuities in the readouts, which were screwing up our post-hoc data analysis. When I dug into the code, I realized that the program used several different threads, but there was not a lock or other synchronization mechanism in sight. You had a thread pulling data off a socket from the device and storing it in a (single) memory buffer, a thread writing commands through a socket to the device, a thread pulling data out of the buffer to draw it to a waterfall plot, and a thread writing data to disk. The lockups happened because the device didn't like to change the scan state while reading data, and there was no synchronization between the command thread and the readout thread. The discontinuities happened because there was a single buffer shared by the readout thread and the write out threads, with no synchronization. So as one thread was writing out a sample, the readout thread was replacing part of that data with the next sample.

I remember grepping the source for pthread_mutex or pthread_cond and slowly realizing that whoever wrote the code didn't even see the need for locks. To be fair, I later heard it was some poor hardware guy who knew some C who got roped into writing the software as an afterthought to show off the awesome hardware, a common problem with hardware companies.

<comment><USER3> > I remember grepping the source for pthread_mutex or pthread_cond and slowly > realizing that whoever wrote the code didn't even see the need for locks. To > be fair, I later heard it was some poor hardware guy who knew some C who got > roped into writing the software as an afterthought to show off the awesome > hardware, a common problem with hardware companies.

"Oh, you wrote a quick demo for the sales people? Well, now it's a product sold for some ten thousand!"

<comment><USER4> You joke, but in military contract world that is totally fine. Everyone already got paid and bugs will certainly not stop the acquisition process in the future. It is all about who knows who and more about jumping around red tape certifications, ATOs, ATCs, rubber stamps and so on.

That is often why soldiers on the ground end up with overpriced yet crappy tools and weapons.

<comment><USER2> To be fair, it's not just red tape. If you are the Army and your one of the kind custom spec piece of hardware has software bugs, what exactly are you going to do? Buy the compatible version produced by the competing vendor?

<comment><USER4> Ideally you have prototypes and tests before hand that should discover these issues. Then in the future you would pick a different vendor. You can also set up your contract to account for maintenance and for penalties for serious bugs.

A lot of things are possible but they are not happening the incentives are just not there.

</comment></comment></comment></comment></comment><comment><USER5> How can anyone program sanely in the presence of this:

currentPos = new Point(currentPos.x+1, currentPos.y+1); does a few things, including writing default values to x and y (0) and then writing their initial values in the constructor. Since your object is not safely published those 4 write operations can be freely reordered by the compiler / JVM.

So from the perspective of the reading thread, it is a legal execution to read x with its new value but y with its default value of 0 for example. By the time you reach the println statement (which by the way is synchronized and therefore does influence the read operations), the variables have their initial values and the program prints the expected values.

I'm not anywhere near smart or careful enough for that... I think I'll stick with Haskell.

<comment><USER6> The One Commandment of multithreaded programming:

1\. Thou Shalt Not touch shared data without synchronization.

You _must_ know what data is shared, and you _must_ synchronize all access to shared data (with one exception, when _all_ access is read-only).

People try to find exceptions to this One Commandment. They think, I'm only writing one value, so what's the harm? Well, this is the harm. Follow the One Commandment and you'll be safe(r).

<comment><USER7> My exception: If all operations on the shared data are atomic, and always leave it in a valid state, then you can get away without explicit synchronization. Unfortunately, the only way you can really achieve this (without some sort of a synchronization API) is to use assembly code, and take advantage of architecture-specific data access mechanisms.

<comment><USER8> But you'll need memory barriers. Let's say you have two variables, x and y, satisfying x >= y at all times, and the values of x and y are never allowed to decrease.

        // Thread 1
        atomic_inc(&x);
        atomic_inc(&y);

        // Thread 2
        local_y = atomic_read(&y);
        local_x = atomic_read(&x);

If you go through it logically, it's always in a valid state, right?

No. You need explicit synchronization. If we start at x=1, y=1, then thread 2 can see x=1, y=2, which seems impossible!

Or in short, your exception sucks. (By "sucks" I mean it is not sufficiently detailed enough to prevent errors.)

<comment><USER2> This is only the case on architectures where atomic operations don't imply memory barriers. On x86, there is a total order on atomic operations, do another CPU will never see the write to "y" before the write to "x". Indeed on x86, there is total order on stores, so if you had two threads like that, where one thread only did reads and the other thread did updates, you can get away with an unlocked increment (x++; y++).

</comment></comment></comment></comment></comment><comment><USER9> It's amazing what kind of yarns people on SO will spin to get help with their homework.

<comment><USER10> I often feel that it's necessary to stretch the truth a little bit on SO. Otherwise you ask "How can I do X?" and all your answers will be "Don't do X. Use Y instead."

<comment><USER11> That happens because of the "old shoe or glass bottle?" question.[1] When newbies (or even oldbies) ask how to do something, often the real question could be solved much better by taking a completely different tack. This has also been called the "XY problem".[2]

The best answers would ideally answer the question as asked (or explain why it can't be done) _and also_ show a still more excellent way.

[1]: [http://weblogs.asp.net/alex_papadimoulis/archive/2005/05/25/...](http://weblogs.asp.net/alex_papadimoulis/archive/2005/05/25/408925.aspx)

[2]: [http://meta.stackoverflow.com/questions/66377/what-is-the- xy...](http://meta.stackoverflow.com/questions/66377/what-is-the-xy-problem)

<comment><USER12> _The best answers would ideally answer the question as asked (or explain why it can 't be done) and also show a still more excellent way._

There are times I've asked how to do X, and for various reasons X is really, no kidding, _exactly_ what wanted to do. Still, numerous people would question my desire to do X, turning the discussion into an inquisition on motives or skill comprehension.

I'm sure in some odd way they all meant well, but they were spending a lot of cycles not actually answering the question.

In those cases the better strategy is to, under some crafty pretext, bluntly assert that _X cannot be done._

This will evoke numerous rebuttals with full details on just how incredibly _wrong_ and _foolish_ that claim is.

Both cases play to a trait all too common to many people on discussion boards: replying to questions with the primary goal of showing that you are, in fact, _smarter_ than everyone else.

</comment></comment></comment></comment><comment><USER13> If you look through the questioner's history it seems like they enjoy making these sorts of threading/synchronization errors, as well as getting angry/trolling. I wouldn't be surprised if the story about losing the 12 mil electron microscope is total BS designed to garner rep (I see it's getting tons of votes).

<comment><USER14> Most of those upvotes are from one day though, so they only get about 200 reputation due to the cap. (Also, they gave away 50 points on a bounty for the top answer, so I'm not sure if reputation was the motive or not.)

<comment><USER13> That is a good point, although I still find it suspicious, especially given some of their previous questions. E.g. the one where he/she created two Haskell data types that looked the same but were using different characters in their names and then complained it wasn't working, really?.

</comment></comment></comment><comment><USER15> Oh come on! This title rewriting is getting silly now. The Java application is not the story - there are thousands of those on SO. The story is the (real or made up) destruction of equipment by a failing program...

</comment><comment><USER16> At the core, the use of threads for any embedded system required to operate in hard real time is a mistake. Threads and interrupts are the minefields of real-time embedded systems.

Based on study and years of experience I conclude that the ONLY way to build such as system is to use a time-triggered approach as opposed to event- triggered. No threads. Only one interrupt --the timer-- in the entire system if at all possible.

This is where I fall back to the raw simplicity of C. You really have to work hard to do stupid shit like threads in C. By that I mean that you have to go out of your way to bring in the code and a framework that might allow you to do that. I've successfully written and applied at least a couple of RTOS's for use in mission critical applications (definition: you fuck up and someone gets hurt or dies). Again, only one interrupt. No threads. Carefully --and I do mean very carefully-- shared data between tasks only if absolutely necessary.

A corollary to this is that I could not fathom programming an electron microscope (the subject of the SO question) or anything that might lead to millions of dollars in losses with Java. Couldn't pay me enough.

Anyone interested in working with hard real-time embedded systems would be wise to study the following well-known books:

      - Patterns for Time-Triggered Embedded Systems, Michael J. Pont
      - Embedded Systems Building Blocks, Jean J. Labrosse
      - uC/OS-III, Jean J. Labrosse  (uC/OS-II by the same author includes
        the source to the prior version of the OS)
      - Doing Hard Time, Grady Booch
      - Operating System Concepts, Silbershatz, Galvin, Gagne

There are other good books on the subject. The above should provide a very solid foundation.

Don't just hack away without the necessary background. The consequences of making mistakes out of sheer ignorance could be dire.

</comment><comment><USER17> I think the real wtf was testing in production. At least their lab now has an environment to do their qa on.

</comment><comment><USER18> I'm curious, could he (or you) have written a program in any other languages (like Go) and not have worried about these issues?

Honestly, I got some mild goose-bumps after realizing the number of Zeroes that 12 million had.

<comment><USER19> you could, but it's not very clear why you would want this to be multithreaded to begin with, since it appears the author wants the program to quit as soon as the value fails validation. It looks like it's multithreaded just for the hell of it.

Anyway, you could do it in Go like this: [http://play.golang.org/p/3Wy_S42jVj](http://play.golang.org/p/3Wy_S42jVj)

basically what you do is you create a goroutine that reads a pointer to the Point value, checks it, and if it's bad, exits. In your main loop, send a * Point down the channel. That basically means: I made this thing. It's yours now. Do what you want with it. Then in the reporting channel, the value is read and checked. The same pointer is sent back in a reply, meaning "I'm done with this, you can have it back now". You almost certainly shouldn't be doing this; I'm just doing this to emulate the fact that the original example is using the same reference from both threads. Yes, this is very, very weird and no, you should not do this in your own programs. Anyway, we take that pointer back, dereference it, and assign it to a _new_ Point value, which is completely weird and I still don't understand. (presumably the original author mistakenly thought this was an atomic way to set both fields on the Point.) In this way, the two goroutines (the main and reporting goroutine) are able to use channels to synchronize access to some shared memory.

This is a pretty silly use of concurrency, though, because in this case, it's probably more clear to just use a mutex to lock and unlock your Point. Again, yes, this is sloppy and weird, but it represents the same behavior as the original program, but properly synchronized.

<comment><USER20> IMHO, there is a subtle difference between your version and the version posted.

You assuming a "real" producer-consumer relationship. But the posted code seems to imply a sort of "supervisor-worker" relationship.

The "supervisor" "snoops" on the worker's state and raises an alarm if the worker is doing something weird.

As you stated at the end, synchronizing around currentPos seems to be most reasonable solution (assuming that's possible). That guarantees that no Point method is running while currentPos's state is being examined.

<comment><USER19> I'm under the impression that the supervisor wants to stop the worker as soon as its doing something wrong; not do something like check every so often, and stop only when the supervisor notices.

Anyway, what you're describing is pretty easy too. Basically all you do is make a channel of Point, and have the supervisor read on that. The worker just does some work, and tries to send his value down the channel. If someone's listening, send the value. This is pretty straightforward, but probably not safe in the real world, because the worker just keeps on working; it doesn't wait for a confirmation that its work is ok. [http://play.golang.org/p/J8Xgh8S18b](http://play.golang.org/p/J8Xgh8S18b)

If you want to structure it such that the supervisor can stop the worker, ask the worker what it's doing, look at the data, and then reply with "ok, you can continue now", there's a handful of ways to do it. Now we're getting pretty real-world, and things get a little bit more intricate, but you can do it like this: [http://play.golang.org/p/hXYNmCm8lg](http://play.golang.org/p/hXYNmCm8lg)

the trick being that you send a channel over another channel. There's a handful of ways you could structure this; there may be a cleaner way.

</comment></comment></comment></comment><comment><USER21> You would think that equipment valued at $12m would have safety features to prevent damage from rogue commands. Interesting.

<comment><USER22> Those who do not read the history of Therac-25 apparently _are_ doomed to repeat it.

If the hardware can be destructive under the control of software then you _must_ have _hardware_ interlocks, not just software safety features.

<comment><USER23> Huh. I learned a different lesson from Therac-25: "never write mission- critical software." :)

For those who haven't read it, [http://sunnyday.mit.edu/papers/therac.pdf](http://sunnyday.mit.edu/papers/therac.pdf)

<comment><USER6> There are three kinds of programmers:

1\. Those who read about Therac-25 and decide never to work on any systems where bugs could threaten lives (your chosen course, and mine).

2\. Those who read about Therac-25, get frightened, and work _very carefully_ on such systems.

3\. Those who read about Therac-25 and think, "Those idiots! Good thing I'd never make a mistake like that."

The prevalence of (3) in all professions and walks of life is kind of frightening.

<comment><USER24> You should walk through a building construction project sometime. Your "all professions and walks of life" part is ... disturbingly accurate.

<comment><USER6> It no doubt applies to doctors too, which is even more disturbing.

<comment><USER25> Not as disturbing as finding this attitude in hospital construction projects.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> Without looking at it too closely, there's no synchronization on the point. The synchronized this (with an empty block - wtf -- that's meaningless) has nothing to do with the point...so the point is possibly stale. I haven't assessed the logic more than that to see if that's a possible state that would program exit, but it's the first thing I noticed. Also, this program, as others have pointed out, is weirdly complex -- and that's a euphemism.

<comment><USER27> I think the logic is more to elicit a strange occurrence (bug, dare I say?) that doesn't occur unless under some weird circumstances. In this case, this behavior would be possible unless the value of a variable, currentPos, is set to an object before that object's constructor finished, and all in the same thread!

The only possible explanation is that the JIT decided to reorder the execution so the variable was set to memory allocated for the object, and then ran the objects constructor.

It's all very surprising behavior.

</comment></comment><comment><USER28> That program is shocking. I'd be interested if there was even a need for threading, perhaps you could have just time stepped your actors with a simple Tick interface.

for all actors actor.tick(timeDelta);

</comment><comment><USER29> Side question: with $12M of equipment, wouldn't it make sense to have an independent limiter of some kind to prevent damage? Is there something about this equipment that makes that greater than $12M in difficulty? Because relying on having no bugs just so your hardware isn't destroyed seems like a bad idea...

<comment><USER30> I'm willing to bet the question has a fabricated back-story. If you look at the user's question history: there are some interesting ones, but they all could be justified as a collegiate homework problem.

<comment><USER31> Also, $12 million for an electron microscope seems somewhat on the expensive side, by an order of magnitude.

<comment><USER32> The poor bastards might have had the entire reticle set (photo mask) set for fabricating a microchip loaded in the microscope for inspection.

</comment></comment></comment></comment><comment> chris-allnutt THIS! is why you should always write tests.

<comment><USER33> Actually, concurrency is one of the areas where tests aren't particularly reliable. Whether the tests pass might depend on how the threads happened to be scheduled on that particular run.</comment></comment>


Reanimating Bertha, a Mechanical Behemoth Slumbering Under Seattle - <AUTHOR> http://www.nytimes.com/2014/08/02/us/reanimating-bertha-the-mechanical-behemoth-stuck-under-seattle.html <comment><USER3> If you like this, then you'll really like the series currently running on the BBC about the crossrail excavation - they have some great video of the TBMs in operation.

[http://www.crossrail.co.uk/news/articles/the-bbc-goes- behind...](http://www.crossrail.co.uk/news/articles/the-bbc-goes-behind-the- scenes-for-crossrail-documentary-series)

If you are in London, you might also like the Brunel Museum which is at the end of a tunnel under the river which was hang-dug using a human powered TBM. You can go down into the Rotherhithe shaft which was the staging post for a lot of the digging. The museum itself is pretty small but the guided walks are great.

[http://www.brunel-museum.org.uk/history/the-thames- tunnel/](http://www.brunel-museum.org.uk/history/the-thames-tunnel/)

</comment><comment><USER4> This animation shows the plan for fixing it. I can see why it will cost $125m.

[http://www.youtube.com/watch?v=QlPgkPo_vGQ](http://www.youtube.com/watch?v=QlPgkPo_vGQ)

</comment><comment><USER5> Pretty cool how a project that took 10+ years to agree on is going to make traffic worse in the 4th most congested metropolitan area in the US and cost 2-5x as much. All around a fine bureaucratic job by everyone involved.

<comment><USER6> Well one alternative floated was to simply to demolish the unsafe viaduct with no replacement, as San Francisco did with the Embarcadero Freeway after the '89 earthquake. My preferred alternative, and much cheaper! However that wasn't a popular suggestion, probably because it would be worse for traffic (at least in the medium-term), especially given Seattle's not-great public transit. Another alternative is to rebuild the viaduct, which would be cheaper than a tunnel but still very expensive, and would probably require it to be closed in the interim anyway, because it basically needs a complete replacement of the unsound 1950s structure, not just more reinforcement. Or, of course, keep the viaduct as is and hope there aren't any major earthquakes...

<comment><USER7> > Seattle's not-great public transit

I like Seattle's public transit. As for the tunnel, how about giving the right-of-way to Sound Transit and let them build the Ballard/West Seattle rail route through there? They seem to be doing quite well at digging tunnels pretty much everywhere.

<comment><USER8> What there is of Seattle's transit is good. The problem is that coverage is poor, it relies too heavily on buses (I'd love some more comprehensive regional rail...) and the buses are over capacity and underfunded. Otherwise it is sanitary (some other cities seem to have trouble keeping feces off of everything, but Seattle does well there) and often on time.

</comment></comment></comment></comment><comment><USER9> It's so funny that I spend hours aligning a box 1px to the right and then there are people doing this Bertha stuff. Man, I feel like crap now :P

<comment><USER3> Unfortunately "big engineering" is 10% fun and 90% filling out paperwork - <USER2> with a few exceptions the paperwork part is the only bit that offers any career progression.

Documentaries rarely bother filming the 200 guys who spend years working in office parks on P6 plans and CAD models to plan everything to the Nth degree!

<comment><USER10> And even the "fun" is 90% boring. The tunneling itself is maintaining the TBM as it's doing its thing and crawling along at ~30ft/day. Seeing them in action for 10mn is fun (I did and the scale is awe-inspiring) but I'd expect working on them to be more on the boring side.

<comment><USER11> Fortunately, when you're working on them you're away from the boring side. ;)

</comment></comment></comment></comment><comment><USER12> I enjoyed the animations and videos of the repairs here: [http://www.wsdot.wa.gov/Projects/Viaduct/About/followbertha](http://www.wsdot.wa.gov/Projects/Viaduct/About/followbertha)

I spotted a UFO in the repair pit video, I'm curious if someone can identify it (upper left in the frame): [https://www.youtube.com/watch?v=J4cCmM43IYk#t=91](https://www.youtube.com/watch?v=J4cCmM43IYk#t=91)

<comment><USER13> It appears to be a kite.

</comment></comment><comment><USER14> "So obviously they're doing a lot of planning and engineering work to ensure that it will fit back in there," he added.

Anybody that's worked with engineers had to laugh at that.

Yes, obviously they've done all the work they could possibly do. Otherwise they would be phonies. But I'll bet there's a huge difference between how this fine-detail work looks on paper an how it's actually going to happen.

<comment><USER15> I bet they try to fit the new bit on at least twice before they get it to work properly.

</comment></comment><comment><USER16> How far did they get before jamming? If I recall correctly, with borers like this, they lay the concrete tunnel sections behind it as it digs, and the diameter of the finished tunnel is obviously smaller than that of the raw tunnel, which means you can't back it out without demolishing all of the tunnel sections you've already laid. The article doesn't mention any of that, unless I missed it. Were they "lucky" enough that the breakdown came before any concrete was laid?

<comment><USER17> It says that they made it 1000 feet.

In the section describing the rescue, I think they mean it is going to move forward into the rescue shaft.

</comment></comment><comment><USER18> For a second there I thought this had something to do with Bertha, the tropical storm.

[http://www.weather.com/news/weather-hurricanes/tropical- stor...](http://www.weather.com/news/weather-hurricanes/tropical-storm- bertha-20140801)

<comment><USER19> More likely [http://en.m.wikipedia.org/wiki/Bertha_Krupp](http://en.m.wikipedia.org/wiki/Bertha_Krupp), from there (disputed) to [http://en.m.wikipedia.org/wiki/Big_Bertha_(howitzer)](http://en.m.wikipedia.org/wiki/Big_Bertha_\(howitzer\)), and from there to [http://en.m.wikipedia.org/wiki/Big_Bertha](http://en.m.wikipedia.org/wiki/Big_Bertha)

<comment><USER20> Here's the official namesake: [http://en.wikipedia.org/wiki/Bertha_Knight_Landes](http://en.wikipedia.org/wiki/Bertha_Knight_Landes)</comment></comment></comment>


The Weirdness of CRISPR - <AUTHOR> http://alliance.nautil.us/feature/190/the-unbearable-weirdness-of-crispr <comment><USER3> Now that we've made economical the tools to sequence, search, and have some understanding of an organism's genome, we're reaping fast rewards in learning what the natural world is actually capable of in terms of astounding feats of nano-engineering. There's a massive nanotechnology textbook in our ecosystem's genomes that's a few orders of magnitude more impressive than our best semiconductor patents.

The CRISPR system here was discovered in a single-celled organism that likes brine water - a tool it used to intercept hijackers. The 'standard' Cas9 that is being used extensively in the rest of the CRIPSR stories comes from the bacteria that causes strep throat. Studies are now mining the genomes of organisms found in 'mud pits' and 'pond scum' to find all sorts of smaller, faster, more efficient variants of Cas9. And that's just for the single purpose of editing a genome.

The capabilities of proteins found (off the top of my head) in jellyfish, in sulfur springs, in colored algae, in electric eels, in little pond creatures, in HIV, in waterbears, etc. are all depositing huge amounts of technology into our collective knowledgebank. We have been given a store of 'alien' technologies to sift through that are applicable in every condition to be found on Earth, literally. The cures to many of our ills will not be engineered from scratch, but rather will be adapted from existing technologies found in extant organisms literally scattered across the globe. _This_ is how 'basic science' works. A magnanimous scientist is curious how a little cell can survive in really salty water, and owing to his curiosity we discover a nanotechnology that can edit an organism's genome. We humans are smart - <USER2> not yet that smart.

(some of those protein technologies we like to talk about here on HN: [https://serotiny.bio/notes/proteins/](https://serotiny.bio/notes/proteins/) )

<comment><USER4> Which is also a reason we should stop destroying the environment. There is a wealth of knowledge out there we have yet to acquire. If you ran a deep- learning algorithm using an entire planet for 3 billion years, the results would be considered invaluable. Well what is natural selection and evolution but that?

<comment><USER3> Yes.

If in a sci-fi novel an alien handed a character their 'magic rock' (iPhone) and they smelted it for its gold content rather than reverse-engineered it's wireless charging, communication, and computation capabilities you would scream at the character for being horribly short-sighted. Such a waste of sophisticated technology laid right in front of them for such little temporary gain.

<comment><USER5> Why can't we do both . At least smelting until we have enough energy to reverse engineer and then keep smelting space rocks. I think that's actually what we are doing, birds eye view.

<comment><USER6> Once a species is gone it is gone. Lots and lots of species disappear now and many of them we are not even aware about, let alone any DNA samples taken or research done (e.g. burn down rainforest). So you can't "have both".

</comment></comment></comment></comment></comment><comment><USER7> BTW there is a patent pool being formed by MPEG LA to license CRISPR. It seems to be similar to patent pools for video codecs.

* [http://www.mpegla.com/main/pid/CRISPR/default.aspx](http://www.mpegla.com/main/pid/CRISPR/default.aspx)

* [http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachme...](http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachments/102/CRISPR%20PrsRls%202016-12-06.pdf)

<comment><USER3> You have got to be kidding me...

...you are not. What is this insanity?

<comment><USER8> From the about page of mpegla.com:

 _" We are the world's leading packager of patent pools for standards and other technology platforms used in consumer electronics, as well as chemical, eCommerce, education, energy, environment, healthcare and biotechnology, manufacturing and materials, transportation and wireless technology. We developed the pool market space. (view link) Our business model supports a large number of patent users – creating reasonable access and profitable opportunities for all parties."_

</comment></comment></comment><comment><USER9> CRISPR, Gene Drive, and IPSC biotech is incredible.

Right now I'm killing time until my residency starts and I've been reading recent journal articles relating to each of these.

One of the weirder journal articles I read was about this one group taking fibroblasts from XX and XO (Turner's syndrome) females and XY cells from a male and de-differntiating them into induced pluripotent stem cells. They then re-differentiated the cells into germ cells. Sure, that's not controversial just yet, but then they decided to put the XX female germ cells into a teste. The female germ cells (XX and XO) and the male XY cells all differentiated into cells that could succesfully undergo meiosis. And these cells, could terminally become sperm. That means an XX skin cell could be induced to become a sperm and possibly fertilize an egg from another woman. Of course all offspring would be XX female. This process totally bypasses males.

Anyways, very interesting to me, maybe it will be to others. Here's the journal article.

[http://www.nature.com/articles/srep06432](http://www.nature.com/articles/srep06432)

I know this article I'm posting under is about CRISPR, but I feel like new/controversial biology research could be posted here too. Hopefully anyone reading gets the same feeling of discovery/wonder/incredulity that I had when reading about it.

<comment><USER10> I didn't read the paper but it's in scientific reports (minimal and rushed peer review, bottom of the barrel nature subjournal)...I'd be a bit skeptical.

It's not exactly anyone's first choice place to publish.

Crispr/Cas9 is not as robust as people make it out to be, but it's promising. (I do some work with crispr/cas9)

<comment><USER11> > Crispr/Cas9 is not as robust as people make it out to be, but it's > promising. (I do some work with crispr/cas9)

Please expand on this. I feel like CRISPR is being overhyped, and would love to hear form someone educated on the subject as to what its possible limitations are, or at least some of the known challenges ahead.

<comment><USER3> Cas9 is a protein with two _functions_ : 1) locate a DNA sequence that matches the little RNA it grabs ahold of, and 2) cut that DNA at that location. The first of those functions, it's ability to locate particular and arbitrary sequences, is its comparative advantage against all other technologies we know of. The second, cutting DNA, well, works I guess, but will likely be engineered to be more useful, or turned off in order to make way for other more useful functions.

The protein is _special_ for two different reasons: 1) it is able to locate DNA sequences with very high precision 2) and the sequence it locates can be swapped out as easily as changing the sequence of the RNA it grabs ahold of (trivial to do, can be done in a day, and can cost >$1 per target sequence to swap). Note, it is not special because it can cut DNA - there are lots of proteins that do that, and there are lots of better ways to change or alter DNA once you get to a particular sequence - but Cas9 was originally a self- defense mechanism, so it's evolutionary function in strep throat bacteria was to kill invaders by dicing up their DNA (at particular sequences that strep throat doesn't have).

Cas9 is powerful because it could be used to direct _any_ function at a _particular_ DNA sequence, where the sequence can be altered in the lab quickly and cheaply. As it is a protein encoded by a particular sequence, you can fuse it to other proteins with other functions to build a more powerful machine. (see [1] if you want to play with those sequences yourself.) As an experimental tool it will likely become a foundational tool used all throughout molecular biology - and for that alone is is worth it's fame. Thermophilic polymerase used in PCR is another such tool. As are restriction enzymes. As is GFP. That's the scientist's perspective.

However, Cas9 also _previews_ the capability of directly and arbitrarily editing of a genome - a holy grail of biomedical sciences. Though unengineered Cas9 it's not great at editing a genome (we're not entirely sure why what it does even works) - but some 2-10% of the time it can actually edit a genome with fidelity. And that's good enough for many experiments (though not good enough for therapies). It has off-target cuts, and when it cuts it slices all the way through the double stranded DNA, and if it isn't properly stitched back together you have a broken chromosome. And getting payload DNA to the site that Cas9 cut is still really tricky. It's also a multi-part system (it needs it's little RNA as well as the protein itself), and so it's hard to deliver directly as a therapeutic. So the wild-type Cas9 is likely limited in its direct therapeutic relevance in terms of pure genome editing. But it will be used extensively for its ability to 1) further research quickly and cheaply, 2) prototype what genomic changes would do if they were successful (when you only need 10% efficacy to conduct a study), and 3) act as an engineering platform upon which other functions can be placed, and its own wild-type limitations can be overcome.

It's powerful. It's not perfect, there's lots more engineering to do with/to it. It's not going to get to the holy grail of genome editing all on its own, but it's a very solid platform to start building off of, as well as simply being a solid tool that will become a workhorse of further synthetic biology.

[1] [https://serotiny.bio/](https://serotiny.bio/)

<comment><USER12> >"Though unengineered Cas9 it's not great at editing a genome ( _we 're not entirely sure why what it does even works_) - but some 2-10% of the time it can actually edit a genome with fidelity."

Can you expand on the part I italicized, preferably also linking to some journal articles?

<comment><USER3> Cas9 finds, then cuts both strands of DNA. Now you have to flat edges of a braid you must rejoin. This is called Non-homologous end-joining of DNA (NHEJ). The recognition, repair, fidelity, and correct repair during NHEJ is not well understood. Cas9 does no joining, no ligation, no pasting, it only does the snipping. The joining is done 'on it's own' by the cell at some rate, sometimes correctly, sometimes even uptaking an insert into the process. So insofar as Cas9 is doing any 'editing', the repair process is entirely an accidental after-effect of Cas9's targeted DNA breakage.

Here is CRISPR breaking DNA and creating the insult: [https://www.ncbi.nlm.nih.gov/pubmed/27866150](https://www.ncbi.nlm.nih.gov/pubmed/27866150)

Some recent work on understanding how those double-stranded breaks actually repair themselves: [https://www.ncbi.nlm.nih.gov/pubmed/27924007](https://www.ncbi.nlm.nih.gov/pubmed/27924007)

Some basic research in Yeast: [https://www.ncbi.nlm.nih.gov/pubmed/27915381](https://www.ncbi.nlm.nih.gov/pubmed/27915381)

Double-stranded break repair in breast cancer: [https://www.ncbi.nlm.nih.gov/pubmed/28053956](https://www.ncbi.nlm.nih.gov/pubmed/28053956)

<comment><USER12> I quickly looked through your links. The first article you link seems to lack any control group (which we need to assess the proportion of pre-existing mutant cells), the second is primary research but does not mention CRISPR- Cas9, and the other two are review articles that don't contain any quantitative data.

As mentioned, I only looked quickly, but I do not think any will be helpful on the point I am bringing up. Let me know if I missed it.

<comment><USER13> If you want to know why people are assuming NHEJ occurs at a double-stranded break, you might look at the dozen or so references in the first paragraph of [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC231204/pdf/1621...](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC231204/pdf/162164.pdf)

<comment><USER12> Frequency of survival is shown in table 2... it ranges from 5/1,000 to 1/100,000. So cell death is a 200-100,000 times more common result than NHEJ using those methods. I have no idea how well that would correspond to the conditions we are interested here, but see no way this paper can be taken to support NHEJ is a more likely result than cell death.

It also says: "Yeasts, like other eucaryotes, exhibit cell cycle arrest in response to DNA damage (17)."

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> I learnt a bit from listening to this Podcast from Radiolab. [http://www.radiolab.org/story/update- crispr/](http://www.radiolab.org/story/update-crispr/)

<comment><USER15> That's what I immediately thought of as well. Fascinating episode, I highly recommend listening to it.

</comment></comment><comment><USER16> Do humans have the same low level immune system bacteria have? It seems like passing immunity between generations would be extremely unlikely, but it could still be useful for offering some immunity to viruses that one has already had.

Would it be possible to introduce a genetic template from a viral disease into an embryo to produce a human essentially immune to that virus?

<comment><USER17> CRISPR is a solution to just retroviruses. Bacteria through phages actually come under more attack than humans in this way. If you've got a single cell for the next generation you care a lot about this. Humans any old crap can happen to litterally trillions of cells without affecting the germ line. CRISPR itself has capacity to introduce damage to the genome.

So its a balance between error correction and error introduction. In Bacteria its worth it, in humans not so much, especially as we have a bunch of other subtler more complex ways of handling viruses _before_ they get all the way to the nucleus [https://en.wikipedia.org/wiki/RNA_interference](https://en.wikipedia.org/wiki/RNA_interference) Bacteria dont have this luxury as their DNA lacks this extra barrier. The biggest difference is simply cells dont matter in a human and can just kill themselves if all else fails.

The rest of the "innate" immune system has similar proteins involved nearly everywhere e.g. [https://en.wikipedia.org/wiki/Toll- like_receptor](https://en.wikipedia.org/wiki/Toll-like_receptor) These are the components involved in cell surface recognition of sugars. But much more similar between all animals than animals and bacteria.

Answer to your second question is yes you could add a CRISPR construct with templates for known disease and add artificial immunity. However, finessing this so that CRISPR doesnt cause lots of damage from randomly cutting your DNA throught your life leading to a higher risk of systemic cancers... is a big hurdle.

</comment></comment><comment><USER18> Small sans-serif body text means you hate your readers.</comment>


How Segment survived its brush with death to become a customer data unicorn - <AUTHOR> https://venturebeat.com/2019/12/04/how-segment-survived-its-brush-death-become-customer-data-management-unicorn/ <comment><USER2> Apparently user fingerprinting is where the money is.

I note that the uMatrix web browser add-on blocks the _entire domain_ of the company.

<comment><USER3> Must be on one of those lists, because my pi-hole blocks it too. It's funny, just yesterday I was searching around for some server log analytics solutions for my site (settled on GoAccess for now) and they kept popping up in my search results. Never clicked on them though as the link descriptions made it clear they weren't what I was looking for.

</comment></comment><comment><USER4> An abbreviated version of this story is included in this great post on how 22 now-successful companies got their first users/customers [https://www.referralcandy.com/blog/how-to-get-first- customer...](https://www.referralcandy.com/blog/how-to-get-first-customers/) (Segment, Tinder, Quora, Reddit, etc.)

</comment><comment><USER5> Segment won developer mindshare because Peter and the team made a strong commitment to developer success.

For my project, he came onsite to help me, then invited me back to HQ to meet the team, debrief, and share the roadmap.

I have recommended Segment many times since then, and I'm stoked for the company's success.

</comment><comment><USER6> The title is a bit misleading IMO. The company was in a state of flux _before_ they pivoted and rebranded as Segment as far as I can read (when they had a different name). The actual company 'Segment' seems to have been on a great course of growth since then.

</comment><comment><USER7> Surprised to see that mparticle isn't listed as a competitor. I've seen what Salesforce is working on in this space and it's nothing compared to mparticle and segment.

<comment><USER8> Thanks for the shout. Just wait to see what else is coming from us in the coming months...

</comment></comment><comment><USER9> This is an all-too-common story with startups, as PG points out in several essays. Often startups only make sense looking back, and don't lend themselves to business-plans & analytics.</comment>


Ask HN: Programmer career problems - <AUTHOR>

Just thought I might get some good advice here. I'm a little troubled about my current career path. I have always known I wanted to run my own business (tech) so I jumped into programming figuring I would learn the ins and outs. Fast forward 10 years, I've been in a role of lead developer with experience managing teams of ~5 and I understand product pretty well. However, I feel like I am not that much closer to my original goal. What is it that I'm missing and would help?<p>I know a lot of people will kill to be able to do what I do, but I am seriously troubled. Any advice is appreciated. <comment><USER2> Do you love VAT, taxes and payment problems ? Three people buying your software and then the $10 000 consulting payment keeping you afloat is delayed another month ? 1 star reviews, angry emails from paying customers and dangerous programming errors ? Being alone is brutal. You probably need partners who believe in the same idea as you.

<comment><AUTHOR> Some of the issues you mentioned seem to arise when you do single consulting gig at a time (which I've run into before). It sounds like you have had a particularly bad experience, but I agree these are things I'm willing to put up as part of getting the company up and running. Sorry if I was unclear, but I'm primarily interested in developing a product or SaaS or even PaaS, rather than a consulting company so hopefully I wouldn't run into the issues to the extent that you did

</comment></comment><comment><USER3> So, you want to start a business and you're reflecting on the last 10 years and wondering why it hasn't happened yet? Not to be cavalier but I'm guessing the simple answer is because you "haven't started a business yet." And if you spend the next 10 years "not starting a business" its not gonna happen then either.

There's a reason why few people choose the entrepreneurs route, and why even fewer succeed. It takes guts, determination, a tolerance for high-stress, and a general savviness that most people just don't have.

I'm not saying you don't have it in you. But it's definitely not gonna happen "to" you. You have to take the initiative in a much more proactive way than you've already demonstrated if you want to start taking steps toward your goal.

</comment><comment><USER4> > I wanted to run my own business (tech)

A key question to ask is why you want to run your own business? For the freedom? For the money? For the challenge? Which of these are you not getting at your position and how can you get it?

> What is it that I'm missing and would help?

Do you have a tech idea that you are passionate about? Can you survey 30 businesses that want it? Do you have enough savings to not have a client for several months?

Have you attended any startup weekends or incubator lectures?

<comment><AUTHOR> I want to run my own business for several reasons * The challenge of building a business from ground up. * Working for something that is my own. * The idea that I can be financially free if I'm successful (but this is secondary)

I don't think I'm getting any of those from my jobs so far.

With regards to ideas that I've had that I'm passionate about definitely. Your second question is more of a problem in that I'm not quite sure how to gauge and maybe this is something that I should work on. I do have savings for a couple of months.

I've worked at several startups and been to hackathons, lectures, pitches etc.</comment></comment>


An Open Letter to California Air Resources Board on VW Cheating Scandal - <AUTHOR> http://www.takepart.com/open-letter-to-california-air-resources-board-chairman-mary-nichols <comment><USER2> Note point 5:

> 5./ Allow VW some flexibility in the execution and timing of this plan by > allowing it to be implemented via zero emission vehicle credits.

Which, together with the rest of the requests actually means:

> Force VW to pay a lot of money to an existing EV manuctarurer.

<comment><USER3> Which, together with the rest, means:

> Force VW to pay Tesla, instead of producing its own vehicles.

(VW is already killing its "efficient Diesel" program, and instead focusing on EVs)

<comment><USER4> I have seen nothing tangible so far that shows that VW is backing off Diesel cars - perhaps they cancelled their marketing campaign in the US. I would very much like them to focus on EVs, but whether they do remains to be seen. (A very good indicator for that would be that they start building charging infrastructure and introduce some vehicles with more than 100 miles range...)

<comment><USER3> This article might give you more information: arstechnica.com/cars/2015/10/vw- responds-to-diesel-scandal-says-the-future-is-electric/

They're focusing on EVs now a lot.

<comment><USER4> Being from Germany and a Volkswagen owner, I believe it, when they show some real actions, not only declare to focus on EVs. I would be very happy if they do - my next car is electric for sure - but they got to show first.

</comment></comment></comment></comment></comment><comment><USER5> City dwellers who park on the street or even in apartment garages do not have the authority to install chargers. EVs are 100% off the table for me for at least 20 years (until I own a home) and probably forever (unlikely that I will own a _suburban_ home).

Sure, there are public chargers, but not nearly enough, considering that you have to sit at one for 45 minutes or more.

<comment><USER6> In 20 years, most cars (electric or not) will probably be self-driving ones owned and controlled by a centralized ride-sharing service. You won't need to charge/refuel them.

<comment><USER7> > In 20 years, most cars (electric or not) will probably be self-driving ones > owned and controlled by a centralized ride-sharing service

This is not true. Just to give an example, how do you plan to implement that "centralized ride-sharing service" in a city like Cairo (current population 10+ million)? Sometimes HN users need to get out of their bubble.

<comment><USER8> Or in a city like Huntsville, AL, with a population of 200,000 and a surprising number of workers who commute from 40 or more miles away?

</comment></comment></comment></comment><comment><USER9> I would hardly call being forced to make EVs a punishment. In ten or twenty years, when EVs really take off, Tesla/Apple/Google/Samsung/etc are going to eat the lunch of anyone left behind.

Investing in electric vehicles could save VW in the long term. I would argue that if they don't want to make EVs of their own accord, then they don't deserve to be saved.

EDIT: I would also worry that if they're only making EVs because they're forced to, then they're only going to put in the minimum effort to make a crappy second-rate electric car. Flooding the market with low-quality, short- range electric cars doesn't seem like it will help push EVs into the mainstream any quicker.

<comment><USER10> They are already being forced to -- California already has a ZEV mandate, and VW is selling the Golf EV here. This would just accelerate the process.

</comment></comment><comment><USER11> I've got no problem with fining intentionally deceitful companies into bankruptcy, if that's what it takes to stop the rest from destroying our world for short-term profit.

<comment><USER12> I have little problem in quartering the executives of those company if need be, but bankruptcy condemns the lower-level workers a lot more. Many of those are needed to transform the industry, so I hope they'll find better position, and bankruptcy could help them realise that — but it is going to be painful. Firing those responsible and everyone above them sounds preferable.

<comment><USER13> Right now not even the former CEO Martin Winterkorn (who resigned after "taking responsibility" for VW's fraud) has been fired: [http://uk.reuters.com/article/uk-volkswagen-management- idUKK...](http://uk.reuters.com/article/uk-volkswagen-management- idUKKBN0U02S020151217)

 _VW 's former CEO to draw salary until December 2016_

 _During almost nine years as CEO, Winterkorn amassed a pension pot of 28.6 million euros (21 million pounds) and last year was the highest-paid CEO among the heads of companies listed on Germany 's DAX-30 blue-chip index with remuneration of about 16 million euros._

<comment><USER10> No, he was fired, he just continues to get paid.

This would be true for almost any worker in Europe, unless you could prove in court that he/she had been grossly incompetent -- and such a case could drag on for years and cost as much as the severance pay.

<comment><USER11> Was he fired? I thought he just swapped positions with the CEO of Porsche.

</comment></comment></comment></comment></comment><comment><USER14> This HuffPo piece adds nothing. The original content is actually here: [http://www.takepart.com/open-letter-to-california-air- resour...](http://www.takepart.com/open-letter-to-california-air-resources- board-chairman-mary-nichols)

<comment><USER15> Ok, we changed the URL to that from [http://www.huffingtonpost.com/entry/elon- musk-volkswagen-emi...](http://www.huffingtonpost.com/entry/elon-musk- volkswagen-emissions-scandal_5674686de4b014efe0d56bba).

</comment></comment><comment><USER16> This is exactly what I've been thinking, too. By all means "fine" VW with billions of dollars, but instead of actually _taking_ those billions of dollars from them, force them to commit to a very strict plan of investing those billions into bringing EV cars to the market (but not hybrids - EVs!).

But they should also have audits every 6 months or so to make sure those money go where they're supposed to.

<comment><USER17> It's a really good way to get around the way companies usually weasel out of punishment "well, you'll really only be punishing our workers..."

<comment><USER4> Still, what is the benefit of driving a company into bankruptcy while the actual responsible have left with a golden parachute? The only thing that works is to go after all responsible managers. The Sabanes-Oxley act was a start, perhaps it needs to be extended. And I do like the idea of rather forcing the company to invest in making up for their wrongdoing than plain fines which vanish in some budget.

<comment><USER9> The only trouble there is that what if a company wants to (for instance) invest in EVs anyway? Now the incentive is to first make a quick buck cheating and lying, and then when they get caught the punishment is to do the same thing they were planning to eventually do anyway.

</comment></comment></comment></comment><comment><USER18> Agree about it being more efficient to invest in emission reductions moving forward. I'd still like to see heavy jail sentences for the executives involved (assuming there's some law they actually broke, and all that). As if the forced recalls ever would constituted true "punishment" for those responsible for this crime.

</comment><comment><USER19> Every time I read an article, and 20 seconds into it, mid-paragraph a modal window tries to get me to register it evokes such an rage I just stop what I am reading and click back. This UI pattern is one of the worst I've ever seen.

<comment><USER12> I do not see this, and I believe this is thanks to me using _Ghostery_. It's a plug-in that allows you to see, choose and filter in or out the scripts that run on your page. In this case, I see about 15 of them (and block most, out of experience that those are from company with disreputable practices) so I couldn't tell you which is the culprit.

I strongly recommend that plug-in to any one, technically inclined or not: the savvy because that level of control makes sense, marginally more than AdBlock; the less so to appreciate how much data-gathering is happening, and what are the names of the main actors.

<comment><USER20> I have Ghostery installed and enabled (along with uBlock Origin) and I still saw the modal popup:

[http://thumbsnap.com/i/PQ0bY923.png?1219](http://thumbsnap.com/i/PQ0bY923.png?1219)

<comment><USER21> Depends on your settings. (right click -> options)

I have uBlock (additional lists) and Ghostery (block all) and don't see that.

</comment></comment></comment></comment><comment><USER22> I wonder why Elon Musk is involved in the panel and quoted here. Isn't there a conflict of interest where "investing in research, development and manufacturing facilities for new battery technologies" will indirectly benefit Elon by driving the industry forward?

<comment><USER23> That's true - but, on the flip side, it would also create a massive competitor for the Tesla.

</comment></comment><comment><USER24> Well he seems like an unbiased observer. "Hey California, you should use that settlement money to accelerate the rollout of the product I sell."

</comment><comment><USER25> He would have, wouldn't he?</comment>


FAA proposes rules for drone use; Obama issues curbs on surveillance - <AUTHOR> http://www.washingtonpost.com/world/national-security/faa-releases-proposed-rules-for-domestic-drone-use/2015/02/15/6787bdce-b51b-11e4-a200-c008a01a6692_story.html

<comment><USER2> No, these rules are not "surprisingly reasonable". Businesses have already been waiting at least a year, now they have to wait two more for the rules to go into effect? Worse, limiting flight to line-of-sight utterly undermines the real potential of UAVs -- you know, the whole "U" part.

<comment><USER3> Yup. The restrictions look exactly like the restrictions for model aircraft. All they've done is make a license for people who would fly model aircraft commercially.

</comment></comment><comment><USER4> "The proposed FAA rules for small drones would not apply to people who fly drones for fun or for recreational purposes. Small hobby drones have become hugely popular in the United States, but under a law passed by Congress in 2012, the FAA is largely prohibited from regulating them as long as they do not interfere with air traffic."

This is an interesting thing to see mentioned in passing. For anyone else interested in more details, here is official FAA guidance regarding personal drone use: [http://www.faa.gov/uas/publications/model_aircraft_operators...](http://www.faa.gov/uas/publications/model_aircraft_operators/)

<comment><USER5> Interesting clause at that link you provided. Do I understand correctly that there are no weight limits currently if a drone is certified by "a community- based organization?"

3) the aircraft is limited to not more than 55 pounds unless otherwise certified through a design, construction, inspection, flight test, and operational safety program administered by a community-based organization;

<comment><USER6> The AMA large model program information is available from here

[http://www.modelaircraft.org/files/520-a.pdf](http://www.modelaircraft.org/files/520-a.pdf)

In summary, a model weighing between 55 and 100 lbs needs to comply with FAA, FCC and AMA rules. It needs to pass an inspection, and there are a fair few details, like receiver backup batteries and wiring quality that will be checked.

The model also needs to pass a flying test.

I doubt any organisations other than the AMA, or one of its subgroups or special interest groups will be recognised by the FAA.</comment></comment></comment>


A Scheduler for the Internet - <AUTHOR> https://medium.com/the-prefect-blog/a-scheduler-for-the-internet-fd706336e2fe <comment><USER2> I don't really understand. What could I do with this that I couldn't do with cron? Or is it that somebody who can't use cron could use this? Or that this is more reliable than cron?

<comment><USER3> While cron is a nice tool, people should not be using cron for any production grade automation.

Tools have been created to that orchestrate automation with more powerful capabilities, and Airflow has become a defacto standard in the industry.

Prefect is an open automation tool, comparable in a lot of ways to Airflow. The author of the post is an early committer to Airflow.

<comment><USER4> >While cron is a nice tool, people should not be using cron for any production grade automation.

?????????????????????????

<comment><USER5> Look, don't get me wrong, cron is a super useful tool for doing system-level tasks on a schedule but "grep a timestamp and run a program if it matches" is practically the definition of "doesn't scale."

Unless you code it yourself in your program cron doesn't...

\- understand dependencies

\- run jobs across multiple hosts

\- handle errors (e.g. if err run this)

\- do any branching whatsoever

\- handle timespecs with more granularity than 1m

\- do any reporting (mail counts-ish but if you're telling me you have an email based automation flow I won't believe you)

\- do any metrics collection

\- run pools of jobs

\- understand priorities

\- allow you to queue jobs

The value prop of things like airflow is that they factor all this logic out of your applications. At the point where you need these things "run a thing at a specific time" is the most trivial part.

<comment><USER4> Then it's the wrong comparison, because cron simply schedules other commands, it's not a programming language.

<comment><USER6> Yes, chron is just a very simple, single-node, low-time-resolution, system- level scheduler. While it may be good at that, that is very often (always would be an exaggeration, probably) not a great tool to be used (at least as an exposed component) in automation of modern production systems.

</comment></comment></comment></comment></comment></comment><comment><USER7> What's the context for this? Seems like it's a marketing piece to get people to sign up for their fake scarcity early access program.

Very little interesting in the article.

<comment><USER8> You can't possibly have read the article.

<comment><USER7> Your comment is in violation of HN guidelines.

All I saw is a marketing piece designed to tell me about the product line of a company I'd never heard of. No context as to things I could relate to, mostly just information and excitement about this prefect platform.

Outside of prefects products and features, what is the information you took away from this article that made it worth your time?

</comment></comment></comment><comment><USER9> How does this compare to Airflow? It's unclear from the website - can you create DAGs (task sequences)?

<comment><USER3> This post is focusing on Scheduler, but the parent project, Prefect, has the concept of Flows, which are similar to DAGs. You can convert an Airflow project into a Prefect project.

One of their employees wrote about the comparison of the two:

[https://medium.com/the-prefect-blog/why-not- airflow-4cfa4232...](https://medium.com/the-prefect-blog/why-not- airflow-4cfa423299c4)

</comment></comment><comment><USER10> Yeah, this introduction/launch needs a lot of work. I've read over the first paragraph or two and all I see is buzzwords: "turn-key", "orchestration", "cloud", etc...

If you can't explain your value proposition simply and concisely so anyone that is not familiar with your product ecosystem can understand, you have a big problem in your hands.

This product seems like a simple scheduling tool, but your marketing jargon fluff piece says otherwise.

</comment><comment><USER11> I would think that Quartz is more of a competitor than cron or Windows Scheduler to Prefect Scheduler.

How does Prefect Scheduler compare to something like Quartz?</comment>


Ask HN: Good niches to get into? - <AUTHOR> I've been coding professionally for 10 years and have always claimed to be a quick learner, looking to first be handed a challenge so I could learn on the job.
I need a change, so I am instead taking 6-12 months of my own time to get good at something new before looking for projects in that area. It's obviously just a start, but I expect it to  count as a couple of years of experience since I'm cutting out the overhead.
What are some tech niches, currently short of knowledgeable people, that would have a good above average return on investment for this kind of self study? <comment><USER2> Ad tech is hot right now with programmatic and header bidding and the future looks brighter with programmatic TV ads.

</comment><comment><USER3> Curious what you are interested in because being interested in a subject might increase the amount a person learns.

<comment><AUTHOR> Bonus points for anything that directly touches the real world (interfacing with hardware, automation, some parts of finance) and for stable fields (e.g. more like embedded C, less JavaScript).

<comment><USER3> Conceptually, I separate embedded from C because:

1\. Embedded systems are increasingly less subject to the constraints that require C.

2\. Embedded systems are increasingly used for tasks where the difficulty in writing correct robust code in C produces life safety failures.

3\. Gaining above average professionally applicable knowledge regarding embedded systems is likely to be more easily acquired in a short timeline than professionally applicable knowledge in C for reasons 1 and 2. Particularly for a self study course.

4\. Building stuff that touches the real world is more a matter of embedded systems than choice of language. Building such systems is as easy as buying an Rpi or Arduino and some wire and some sensors.</comment></comment></comment>


Show HN: AboutThisWebsite Is About This Website - <AUTHOR> http://aboutthiswebsite.com/ <comment><AUTHOR> Author here. AboutThisWebsite is my fault.</comment>


Dune II and the three rules of a good licensed game - <AUTHOR> https://www.gamesindustry.biz/articles/2018-03-13-why-i-love-dune-ii-the-battle-for-arrakis <comment><USER2> Same topic, a very nice and interesting article about Dune II: [https://www.filfre.net/2018/12/controlling-the-spice- part-3-...](https://www.filfre.net/2018/12/controlling-the-spice- part-3-westwoods-dune/)

The previous one about Dune I is also very interesting.

</comment><comment><USER3> I played it on 386 with CM8330 sound blaster clone, and although I've heard the soundtrack many times later on, different versions too, it never sounded as good as it did back then. I wonder if it is just my imagination.

<comment><AUTHOR> Wikipedia has a bit about the different versions (e.g. the Mega Drive version also had quite different unit graphics).

[https://en.m.wikipedia.org/wiki/Dune_II#Release](https://en.m.wikipedia.org/wiki/Dune_II#Release)

</comment></comment><comment><USER4> Yep, the rules definitely make sense here.

Key being 'make a good game to begin with'. Too many licensed games just take the IP, slap it on a poorly done, generic template and call it a day.

Of course, there are some exceptions to every rule here. Ecks vs Sever was a series of two amazing video games based on one of the worst films of all time. In that case, ignoring the IP altogether was probably the best move.

</comment><comment><USER5> Am I the only one who saw IP mentioned like a hundred times without knowing what it meant?

<comment><USER6> Intellectual property, i.e. the Dune branding/universe in this case.

<comment><AUTHOR> link: [https://en.m.wikipedia.org/wiki/Dune_(franchise)](https://en.m.wikipedia.org/wiki/Dune_\(franchise\))

</comment></comment></comment><comment><USER7> That read... forced. More to plug this guy's company than to offer any actually interesting insight.

<comment><USER8> Actually I've played Dune-II for a very long time on my 486, and have many fond memories from that era.

Maybe because of that, the read didn't feel forced. It also enlightened me, why everything in the game clicked so well in my head.

I still play it in DOSBox sometimes. It's worth a spin.

<comment><AUTHOR> it definitely is an angle through the lens of someone who cares about licensing IP.

That's what I found interesting because the combination of licensing aspects + creativity + execution is what makes these game (book, and movie) adaptions amazing evergreen pieces or really bad.

so few examples that transitioned well from medium to medium (just think of all the movies turned/forced into video games and vice versa).</comment></comment></comment>


Law Enforcement's Possible Use of Surveillance Technology at Standing Rock - <AUTHOR> https://www.eff.org/deeplinks/2016/12/investigating-law-enforcements-use-technology-surveil-and-disrupt-nodapl-water <comment><USER2> See also the documentary "The Feeling Of Being Watched". An insider's look at an Arab community that's been under FBI surveillance since the '90s [http://www.feelingofbeingwatched.com/](http://www.feelingofbeingwatched.com/)

EDIT: apparently it is a Kickstarter project which met its goal [https://www.kickstarter.com/projects/beingwatched/the- feelin...](https://www.kickstarter.com/projects/beingwatched/the-feeling-of- being-watched-a-documentary-film)

<comment><USER3> Surveillance apparatus of the modern state is intensive and deep. So imagine if they are already watching everybody as Snowden pointed out, how much more info can they dig up on much smaller groups that they are really watching.

<comment><USER4> This is where I think Obama failed. He had too much trust in government -- "these are good guys". Then, BAM! Trump.

Trump is the Apocalypse for Libertarians.

</comment></comment></comment><comment><USER5> Quote "Sudden mobile phone battery draining"

Yikes! It sounds like the camera and microphone had been activated remotely and were being use to spy on _citizens_.

<comment><USER6> Or more mundane stingray behavior. It tells your phone to increase transmit power to make triangulation easier.

<comment><USER7> Mundane? Stingray? Maybe in your fascist country...

</comment></comment></comment><comment><USER8> Previous HN discussion here: [https://news.ycombinator.com/item?id=13100191](https://news.ycombinator.com/item?id=13100191)

(though sadly there seems to be no more actual evidence (as yet,) than previously reported by Cracked)

</comment><comment><USER9> This is sad, but not surprising. I would even feel a little better if there was a warrant.

<comment><USER10> As a side point, "not surprising," "I don't know why anybody's shocked by this" and related reactions are how apathetic people help normalize bad behavior. It's the cutting-edge of acceptance for early observers to assert that they're already jaded and besides that what's taking everybody else so long?

If you don't like it, the key is to _remain surprised that it 's continuing_. Backbiting on those who do is the exact wrong thing to do, and essentially works to turn change agents against each other. Call it political hipsterism.

<comment><USER11> You might be overreacting a bit to the comment you're replying to. The way you quoted something he didn't say next to something he did say is uncharitable.

<comment><USER10> I was describing a class of responses of which the actual quote is only one. This seems evident by the grammar I chose, but maybe not?

<comment><USER11> You did a bit more than that, and there was nothing unclear about your grammar.

<comment><USER10> Of course I did more than that. Are you trying to say you didn't like my point?

<comment><USER11> A person who says such a thing is "not surprising" could mean many things, and they're not necessarily trying to normalize bad behavior. A person who says "I don't know why anybody's shocked by this," the statement you made up, had gone a lot further down the road of normalization.

It would have been less douchey to feel out the person you were responding to as to what they meant, rather than simply assigning them to a category.</comment></comment></comment></comment></comment></comment></comment>


Why Event-Based Systems? - <AUTHOR> https://khalilstemmler.com/articles/enterprise-typescript-nodejs/why-event-based-systems/ <comment><USER2> He's not rubbing anyone off, he's making an article with a low barrier of entry.</comment>