How Microsoft Uses C++ to Deliver Office Applications Across Multiple Platforms - <AUTHOR> https://www.youtube.com/watch?v=3HROqnw-nf4 <comment><USER2> Is very interesting how people on Microsoft got to the same conclusions that we got: get rid of Java and any other exotic language in the sharing code and use only c++.

Use other languages in the interface for different platforms,or in the testbench code.

We got to this conclusion after years of painful practical problems, but it is hard because it goes against the common philosophy of theoretical people that write best practice books(but not code too much) and natural inclinations of programmers(to use the new shiny thing).

<comment><USER3> You can not share Java on all platforms (such as iOS). Unfortunately if you want to share code on Windows/OSX/Android/iOS C/C++ are you only options.

<comment><USER4> Wow, but wasn't Java supposed to be "write once, run everywhere?!!?"

Yeah.

<comment><USER5> It's kind of hard to be "Write Once, Run Anywhere" when someone with control over the platform only allows specific runtimes. Of course there are tools that would allow you to write Java for an iOS app and transpile to Obj-C, but you can't directly run Java bytecode for an iOS app.

<comment><USER6> I want to know why the EU hasn't come down on Apple over this. They're shutting out Flash and Java and yet Google get nailed to the floor despite supporting a pretty liberal, almost completely open source mobile OS.

<comment><USER7> > _I want to know why the EU hasn 't come down on Apple over this._

Because it's their platform, and they are not a monopoly in the mobile market (more like 20-30% in EU).

>* They're shutting out Flash and Java*

Yes, amen to that (though it's: Flash and Java _applets_ ).

> _and yet Google get nailed to the floor despite supporting a pretty liberal, > almost completely open source mobile OS._

Well, "almost" is the key word. The main value proposition behind Android is in the Google apps integration, and Google is very adamant about who and how gets that in a MS circa 1995 way.

Besides, the reasons they "nail" Google to the floor has nothing to do with Android, but about it's monopoly on search and the abuses of it.

</comment></comment></comment></comment></comment></comment><comment><USER8> We do this as well, targeting Mac, Windows, Linux, iOS and Android with the same C++ core libs. It seemed to be the only way to target multiple platforms without a huge team. It's not all easy though, the work of maintaining the JNI bridge is large, even with most of the code being generated automatically, With the woeful state of native debugging on Android it may have been almost as easy to recode in Java, but maintaining two code bases would have been a real hassle, its hard enough keeping all the UI's in sync.

<comment><USER9> Same here, C++ for the business logic, maths, engine, etc., OpenGL for the graphics, and then a relatively thin platform-specific layer of Obj-C,Java/JNI,Qt just for the UI. Saved a lot in terms of not having to have multiple teams basically writing the same stuff in different languages.

One of the weirdest things we had to overcome was actually the cultural aspect. For the Linux client, nobody had any problem with the architecture: Get the Qt client working and hook it up to the plumbing. Done. For the iOS guys, still no problem, but let's make sure we separate the C++ cleanly from the Objective-C through a solid, well-understood interface so our food doesn't mix. The Java guys basically threw a hissy fit, objecting to all of this C++ nonsense infecting the purity of their Java. Every time the app crashed: they blamed the C++ code. Every performance problem was because C++. Grandma got sick? C++. When tracking down a bug, they'd step through their Java layer, and as soon as it hit the JNI, they'd just stop and file a bug to the core team rather than dirty themselves stepping through C++. They culturally wouldn't accept C++, and wanted to instead have a separate parallel tree with Java business logic, Java math, Java graphics, etc. The hard reality, however, was that the Android client wasn't bringing in enough revenue to justify a full parallel team and code base. Despite all the grumbling, going the C++ route was a huge success, letting us support multiple platforms with mostly the same code base.

I'm curious as to whether this borderline religious anti-C++ attitude is common in the Java/Android ecosystem, or an outlier? I found it really bizarre.

<comment><USER10> It's a common article of faith among Java guys, who will tell you that there is no way you can write a safe program in a native language, although they can't really say why (it's effectively hearsay) other than pointers are involved. If Gosling said to use Java, who are they to question it?

<comment><USER10> For fun, mention that OpenJDK has over a million lines of native code (C and C++: [https://gist.github.com/shipilev/2fddb1d2943a4cbb6080](https://gist.github.com/shipilev/2fddb1d2943a4cbb6080) ). Looking at the numbers for the hotspot directory, more than 2/3 of the code in the JVM itself is native code. I realize that this is caused by bootstrapping issues. But if someone believes it is truly impossible to write safe and secure native code, ask how they can trust the JVM to correctly run their safe program, given that it has so much native code.

I know the old argument was that it was easier to audit the (small) amount of native code in the JVM than the code in your specific project. But half a million lines isn't small by any definition I'm aware of. It's larger than any native projects I've worked on.

<comment><USER11> It's quite likely that the skill and experience level of the average OpenJDK Hotspot committer is a couple notches above the average... and to them things like the manual resource management you have to put up with in C/C++ are not a pointless distraction from their business problem, they are a core part of it.

Besides there are JVMs implemented in Java too, just not with as high performance as Hotspot... search for Maxine or Jikes RVM.

<comment><USER10> So is it possible to write safe software in a native/unsafe/unmanaged language if you know what you're doing? Wow, that's exactly what I tell people, but it isn't what you read on the first page of any number of Java programming books (of course, those books tell you that you must do manual resource management in C or C++ which is not, in fact, true ( e.g., [http://www.apachetutor.org/dev/pools](http://www.apachetutor.org/dev/pools) and [http://www.artima.com/intv/modern3.html](http://www.artima.com/intv/modern3.html) )).

And, really, who wants to use a language designed for people who don't know what they're doing?

I'm not saying that it's impossible to write a JVM in a managed language. Just that it's funny to hear people talk about native languages with a hint of fear, and then run their "safe" programs on a VM that is implemented with a half million lines of C and C++.

</comment></comment></comment></comment></comment></comment><comment><USER12> Second part is here: [https://www.youtube.com/watch?v=MGMoRu5yrVc](https://www.youtube.com/watch?v=MGMoRu5yrVc)

</comment><comment><USER13> There is another area where this approach is common - games programming. I work on a project which is written entirely in C++, and compiles from the same codebase(and from within the same IDE - VS2012) on Wii/WiiU/X360/XOne/PS3/PS4. It's interesting because every one of them uses a different compiler and builds for entirely different architectures and yet the same code builds on all.

<comment><USER14> Have you considered writting about your experiences? It would be very interesting to learn more about the good, bad and ugly of developing code for such a range of platforms.

<comment><USER13> Quite possibly :-)

At the moment I can definitely share an Ugly part - the code has thousands of #defines everywhere, and you will find parts with C++11 code(for PS4/X1) and parts which use some hardcore custom methods for everything since they don't have access to STL(for WII....which is a horrible console to write for). So within one file you can see code which uses autos and for each(C++11 parts) and then bits which can't even use Vectors. It's bizarre. And then you have gigabytes of ram on next gen console, but everything you do also needs to fit in the tiny, 128MB ram of WII. It makes you really aware how you write code - which I think is good.

</comment></comment></comment><comment><USER15> Great stuff!

The biggest takeaway for me is that investing in c/c++ paid off immensely for Microsoft. For a massive codebase that's 30+ years old this is a huge win. No other programming language could have and still give that level of ubiquity.

It also highlights how important it was for C++ to have stayed backwards compatible with C, despite the pain.

c++ (and c) is here to stay.

<comment><USER16> Yes, absolutely. C++ is the silent workhorse that is used almost everywhere. It's especially huge in embedded and systems programming. There'll be a significant number of programmers paid to maintain and enhance C++ programs for at least the next 50 to 100 years, probably longer.

</comment></comment><comment><USER17> tl;dr they use a client-server model, then use the ui frameworks that are provided by the vendor. Really excellent talk, highly recommend it if you're interested in this sort of stuff.

</comment><comment><USER18> looks similar to this old submission: [https://news.ycombinator.com/item?id=8486627](https://news.ycombinator.com/item?id=8486627)

<comment><USER19> It's a technically deeper version of the talk in that link.

<comment><USER18> thanks for the clarification

</comment></comment></comment><comment><USER20> hmm if Linux could get something like Android runtime - this could bring Office to Linux desktop ?

<comment><USER21> Android is almost Linux. I believe it has been done, although I am not sure about the user experience or the compatibility with native applications, you are still running an x86 computer...

[http://www.sabayon.org/article/sabayon-runs-android- market-g...](http://www.sabayon.org/article/sabayon-runs-android-market- google-play-apps-natively)

<comment><USER22> There is a huge difference between your run of the mill desktop distribution and Android - all they have in common is a Linux kernel and that's about it, Android replaces pretty much all user space.

(Also kernel is patched and GPU drivers don't use X compatible interface for acceleration.)

<comment><USER21> Seriously? If I build my Gentoo differently it won't be Linux, because I used a different userland? Take a look at the link, there is the store running native.

<comment><USER23> If you replace glibc, coreutils, bash, Xorg, and just about any other part that you as either a developer or user interact with, then no, it's not recognizably linux, any more than the BSDs are Linux. In fact, as far as I know, the BSDs will be easier to port to, because Bionic libc is really a stub, with lots of Posix bits left out.

<comment><USER21> >>If you replace glibc, coreutils, bash, Xorg, and just about any other part that you as either a developer or user interact with, then no, it's not recognizably linux, any more than the BSDs are Linux

I had to add a driver for a USB device and it was Linux to me. I could not have done the same for BSD (never used it) or Windows using code from Kernel.org . I have personally used an Android kernel to boot one of those arm `mini-netbooks` into xfce.

Indeed you would find that _glibc_ has iterated through different ABIs but we don't call these different operating systems, and we can fix them by simply installing the appropriate binaries.</comment></comment></comment></comment></comment></comment>


Is your JavaScript function actually pure? - <AUTHOR> http://staltz.com/is-your-javascript-function-actually-pure.html <comment><USER2> I disagree with some of the claims, as I think these sorts of edge-cases mostly serve to highlight how imprecise the given pure/impure distinction is, and how we can't always take a semantic concept from one language (e.g. Haskell) and apply it in another (JS).

For example, if you always get "TypeError" when calling "sum()", you can replace "sum()" with its result ("throw TypeError") and get the same behaviour; it doesn't break referential transparency, so is it "pure"? What do we even mean by "result" in a language with exception handling? Do thrown exceptions count, or only return values?

Similarly, using "valueOf" doesn't show that the sum function is impure, it shows that the sum function is _higher-order_. If we mapped 'Math.random' over an array, does that make 'map' impure? What does it mean to be pure/impure when any variable can be replaced by a 'valueOf' function/procedure?

If two expressions call the same procedures, the same number of times, in the same order, and return the same pure function of their outputs, are those two expressions the same? Would replacing one with the other maintain referential transparency, and does that imply "purity"?

I think the answer is that such examples need more fine-grained notions than just "pure"/"impure". Otherwise it's just arguing over the semantics of English, rather than semantics of programs.</comment>


The IPO Bonanza - <AUTHOR> https://avc.com/2019/04/the-ipo-bonanza/ <comment><USER2> Going to be pretty crazy in the public markets this year...</comment>


Hacking into Your Immune System - <AUTHOR> http://www.wimhofmethod.com/ <comment><USER2> Although it looked like spam, he partnered with a university to study the 'immune modulation'. [https://en.wikipedia.org/wiki/Wim_Hof#Scientific_research](https://en.wikipedia.org/wiki/Wim_Hof#Scientific_research)

<comment><AUTHOR> Yes it does look like spam doesn't it? :) But him did lots of efforts to put outself there for scientists to study him. Many people report extraordinary results, both scientists and just practitioners

</comment></comment><comment><AUTHOR> ah, I copied the wrong link in a hurry here's a lot more about the method [http://highexistence.com/the-wim-hof-method-revealed-how- to-...](http://highexistence.com/the-wim-hof-method-revealed-how-to- consciously-control-your-immune-system/)</comment>


Show HN: AliceToBob - share files/text securely with friends - <AUTHOR> https://www.alicetobob.com

<comment><USER2> Challenge: Why would users trust you with sensitive information?

I don't believe "Hilla Zino" really said "Now I can keep my affair secret" to you.

Why separate "contact" and "feedback" links?

Typo: "More Securiry Options" on page <https://www.alicetobob.com/create>

Love the domain name.

<comment><AUTHOR> Typo fixed.

Trust is a challenge, I might just open source it. Although that doesn't guarantee that people will trust the website.

Separate links since they're for different purposes

I like the domain as well!</comment></comment>


S3 was down - <AUTHOR> http://status.aws.amazon.com/ <comment><USER2> Quick tip for those using static (jekyll, hugo...) sites on s3: If you have cloudflare in front of it, you can turn on aggressive html caching by creating a page rule: __example.com /* => Cache level => Cache everything

[https://support.cloudflare.com/hc/en- us/articles/200172256-H...](https://support.cloudflare.com/hc/en- us/articles/200172256-How-do-I-cache-static-HTML-)

This downtime made me realize we weren't caching any html on cloudflare. I just turned it on and all our static sites are doing fine now (and our bills are smaller!).

If you're fancy you can even programmatically purge the cache when you do CI deploys using the cloudflare API.

<comment><USER3> Programmatically purging caches is slow and costs extra. Just use normal cache-busting techniques like a different URL after a deployment.

EDIT: Oops. Misread cloudflare/CloudFront.

<comment><USER4> Cloudflare and all other modern CDNs do this instantly and for free. Only the legacy ones take longer (usually minutes at most) and might charge a small extra.

<comment><USER5> Akamai takes far longer than a few minutes if you use all their POPs. It's in the 6-12hr range.

<comment><USER6> This is not true. Purges on akamai take less than ten minutes for entire cp codes or specific objects. Deploying new cache rules is less than an hour in many cases

<comment><USER5> How many POPs are you using? I can assure you, I am not wrong here and have internal knowledge of why if you are truly using all POPs it takes so long.

<comment><USER7> That's not correct. Site delivery on Akamai globally is purged within several minutes

<comment><USER5> Look, I know what I'm talking about. Just because you can purge faster because of a different deployment doesn't mean that's the case for everyone. "Fast Purge" is not available for every type of deployment.

<comment><USER7> You are confused.

"Site Delivery" is purged globally within 7 minutes.

"Fast purge" enabled products (site delivery) is purged globally in under 20 seconds.

All assets for websites are site delivery. Only media services family of products are not site delivery. Those purge within a couple of hours. If you are someone who uses media services products, you know how to force Akamai to go back to origin globally instantaneously and how to trigger invalidation. In media services you should never serve stale.

<comment><USER5> As I said, it depends on your deployment. Thanks for the reply and confirming what I said was correct, that under some deployments it can be a multi-hour purge.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Every time there is an outage at some cloud provider, I enjoy knowing that my site has maintained 100% availability since its launch. I run 3 redundant {name servers, web servers} pairs on 3 VPS hosted at 3 different providers on 3 different continents. Even if the individual providers are available only 98% of the time—7 days of downtime per year—my setup is expected to still provide five nines availability (details: [http://blog.zorinaq.com/release-of- hablog-and-new-design/#co...](http://blog.zorinaq.com/release-of-hablog-and- new-design/#conclusion))

Edit: It's not about bragging. It's not about the ROI. I want to (1) experiment & learn, and most importantly (2) show what is possible with very simple technical architectures. HN is the ideal place to "show and tell" these sorts of projects.

<comment><USER9> I guess the part I'm confused about here are the DNS records and DNS pinning. If your zone returns 188.8.131.52 and 184.108.40.206 and 184.108.40.206 as IP addresses to use, and I'm browsing your site while resolving to 220.127.116.11 and 126.96.36.199 goes down -- your site will appear down for me, correct?

My browser won't automatically try 220.127.116.11 or 22.214.171.124, or would it?

<comment><USER10> Not the op, but won't browsers fall back to the other IPs? In olden days some browsers would not handle multiple IPs per DNS record correctly, hopefully it works now.

<comment><USER9> Not sure, that's what I'm wondering. Sounds like a good solution if they automatically do fallback. I also wonder how browsers behave depending on how the server at a particular IP address is responding, as they can respond in different ways. (i.e. a server might respond with an error, accept a request but timeout on a response, or appear totally unreachable)

Any HA solution I've seen that attempts to reliably achieve this five nines capability relies on network-level things like virtual IP's and what not. And I don't consider it a five nines solution if only some customers can access it. How the browser behaves in this case could be critical depending on how your visitors use the site. I would not consider a site "up" if it's only available to some people and not others.

<comment><USER11> > And I don't consider it a five nines solution if only some customers can > access it.

Well, that depends on the SLA/SLO, which is really what "nines" is speaking to. Intuitively I agree, but it can, realistically, not be the case and be "valid". Doesn't make it right. Just is.

</comment></comment></comment></comment></comment><comment><USER12> Nice to see this getting reported on the AWS status page during the actual event, for once.

<comment><USER13> It was around 10 mins before anything showed up, actually, and 'status1' for a while after that.

<comment><USER12> For anyone else, I'd say that's letting us know a bit late. For AWS? Huge improvement.

</comment></comment></comment><comment><USER14> Kudos for Amazon sorting out their status page. The last time this happened, the status page didn't show anything until hours after the outage began. I just noticed this one maybe 15 minutes ago, and 5-10 minutes later they acknowledged the problem.

On the other hand, I'm feeling a strong case of "Not this shit again". Wondering if US-East-1 is more trouble than it's worth, as these outages seem to happen mostly there.

<comment><USER15> Us-east-1 is where all the shiny new features are released and where most customers are. From experience the other regions are much more reliable.

<comment><USER16> I thought us-east-1 had the most issues because it is the oldest region and thus uses the oldest hardware.

<comment><USER17> It's primarily just due to the incredible scale of the region. It's easily twice as large as any other, so any issues relating to scale appear there first and are fixed before they affect any of the other regions.

<comment><USER18> It might also be related to IAM and some other stuff being "based" there.

<comment><USER19> What do you mean "based" there?

<comment><USER17> As in, most global services run primarily within us-east-1, and have only subsystems running in each region.

For example, it's likely that the actual master data stores for IAM are solely within us-east-1, but the key data is cached and services run in each region.

Similarly, Cloudfront is theoretically a global service, but only ACM certificates set up within us-east-1 can be used with Cloudfront.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> In us-east-1. Don't worry me like that! It's definitely not down _globally_ or else I'd have been paged by now...

<comment><USER21> Ha, I got paged anyway since one of our monitors hits the S3 API which is hosted in us-east-1

<comment><USER22> Does this mean your infrastructure is actually dependent on multiple regions? Just curious.

</comment></comment></comment><comment><USER23> If you want to understand the impact of an S3 outage (or many other kinds) ahead of time, Gremlin ([http://gremlininc.com](http://gremlininc.com)) has built a tool to run these scenarios on your infrastructure.

Happy to answer any questions about the tool, either here or over email.

(Disclaimer: I work for Gremlin)

</comment><comment><USER24> Now let's see who learned from the last major outage 200 days ago :)

<comment><USER25> This was us! Added CloudFlare in front of every bucket with our own "cdn.example.com" DNS name and changed every reference to s3 in code. Didn't even know S3 had problems today until I saw this on HN. (note: This outage taught us to set up monitoring of the S3 assets separate from the "cdn")

</comment></comment><comment><USER26> Lots of people confirming this on Twitter[1], and we're also seeing it at resin.io

[1]: [https://twitter.com/AlecSanger/status/908402829349572608](https://twitter.com/AlecSanger/status/908402829349572608)

</comment><comment><USER27> The great thing about AWS is that you shift the burden of responsibility to Amazon.

<comment><USER7> [https://www.whoownsmyavailability.com/](https://www.whoownsmyavailability.com/)

</comment></comment><comment><USER28> Good time to setup cross region replication with multiple CouldFront origins. I made a tutorial site to show you how: [https://spwa.io](https://spwa.io)

</comment><comment><USER29> They've fixed the status indicator, it's now a static asset on the status page:

* [http://status.aws.amazon.com/images/status1.gif](http://status.aws.amazon.com/images/status1.gif)

</comment><comment><USER30> I've just launched [https://pub.latency.at/](https://pub.latency.at/) which give you free Prometheus metrics for various cloud endpoints like S3. Doesn't look too bad right now though.

It's also hosted on S3 but still up and running. (The main service is independent of S3 anyway after setup)

<comment><USER30> I've added a play-with-docker button to give you a prometheus+grafana instance scraping this.

Spun up this few hours ago, will be gone soon but if anyone wants to check it out without waiting for the metrics to trickel in:

[http://pwd10-0-33-3-3000.host3.labs.play-with- docker.com/das...](http://pwd10-0-33-3-3000.host3.labs.play-with- docker.com/dashboard/db/http-duration-site-per-region?refresh=1m&orgId=1&var- site=s3.ap-northeast-1.amazonaws.com&var-site=s3.ap- northeast-2.amazonaws.com&var-site=s3.ap-south-1.amazonaws.com&var-site=s3.ap- southeast-1.amazonaws.com&var-site=s3.ap-southeast-2.amazonaws.com&var- site=s3.ca-central-1.amazonaws.com&var-site=s3.eu-central-1.amazonaws.com&var- site=s3.eu-west-1.amazonaws.com&var-site=s3.eu-west-2.amazonaws.com&var- site=s3.sa-east-1.amazonaws.com&var-site=s3.us-east-1.amazonaws.com&var- site=s3.us-east-2.amazonaws.com&var-site=s3.us-west-1.amazonaws.com&var- site=s3.us-west-2.amazonaws.com&var-region=All&var-ssl_expires=All)

</comment></comment><comment><USER31> As always I recommend people practice Chaos Engineering [0] to minimize the impact of such events. Even if the complexity of cross-region failover is to expensive, having some sort of graceful failure is preferable to simply dying. Netflix's Simian Army [1] toolset is particularly useful here, though I don't see an OSS version of Chaos Kong (which simulates the failure of an entire region) sadly.

[0]: [http://principlesofchaos.org/](http://principlesofchaos.org/) [1]: [https://github.com/Netflix/SimianArmy/wiki](https://github.com/Netflix/SimianArmy/wiki)

</comment><comment><USER32> It happens pretty often, so I started awesome list: [https://github.com/ro31337/awesome-aws- alternatives](https://github.com/ro31337/awesome-aws-alternatives)

Please contribute if you know alternatives.

</comment><comment><USER33> What do people use for mocking S3 behavior with high fidelity, to test exponential backoff and other resilience strategies in this situation?

I've seen a handful of test libraries but none of them seem to make realistic up-to-date error injection a priority.

<comment><USER34> We use S3-proxy internally and are pretty happy with it.

<comment> rob-olmos [https://github.com/andrewgaul/s3proxy](https://github.com/andrewgaul/s3proxy) ? (no hyphen)

</comment></comment></comment><comment><USER35> I'm getting issues as well. Here's to hoping this issue is just a hiccup and not like the last outage.. otherwise, it may be time to seriously consider alternatives. Anyone know of a good solution for a self-hosted s3-esque service?

<comment><USER36> > it may be time to seriously consider alternatives

they have multi-az support if you use it

<comment><USER14> Not exactly. S3 doesn't have AZs at all, it's only split on regions. Further, a bucket can exist in only one region. You can set up cross-region replication, but you of course need to flip the bucket coordinates in all your applications to fail over. It's not nearly as easy as Multi-AZ support in things like RDS.

<comment><USER19> > split on regions

I think you really meant s3 objects are redundant in each region, which actually is spanned across multiple DCs.

<comment><USER14> I meant that a bucket exists in only one region and that you have to replicate to a different bucket if you want to do anything to improve S3 availability.

</comment></comment></comment></comment></comment><comment><USER37> Still 99.99% availability just the averaging time was increased by another 100 years :-)

<comment><USER38> S3 commits to being 99.9% available (~9 hours a year). You may be thinking of the object _durability_ numbers.

</comment></comment><comment><USER39> Most of the recent issues seems to be in this particular colo (us-east-1), which is also their oldest facility. Maybe its prudent to move resources to other newer colos or pay for multi-zone availability.

<comment><USER40> Amen. We moved everything to US-West-2 years ago and never looked back. When we see VA on fire, we just sigh.

<comment><USER19> Well, if your users are in the east cost / London, you want to build something closer without spinning up one in Europe yet, us-east-1 is your choice. So.. YMV.

</comment></comment></comment><comment><USER41> Yup, its taking all our stuff down now too. We are working on moving our static site to S3 behind cloudfront, testing it now. Its down.

Our Airflow tasks that use S3, they are all down.

Basically, we are down :)

<comment><USER2> Unrelated to the downtime but what do you use Airflow for? We've been considering using it for our ETL, but I'm even wondering if we could replace our Jenkins instance with it (Jenkins currently only runs cronjobs and one-off tasks; for CI we use travis).

<comment><USER41> We use airflow mainly for ETL work, backfills, and batch processing. We do a lot of work with clickstream type data, be it taking data from analytics.js and loading it into redshift, or taking analytic data from redshift and loading into Google analytics. We have developed many pipes and connectors for airflow that allow us to connect to many data sources, both at the source and sink ends. I mainly work on the DevOps team, running our infrastructure and working on back end systems, so my knowledge of airflow is more high level. I just keep the system up so it can run ;P FYI I work for a startup out of Cincinnati, OH called Astronomer, you can find us at [https://www.astronomer.io](https://www.astronomer.io)

Also, we weren't like all down, we just saw lots of time out issues when reading/writing to S3.

<comment><USER2> Your site's ssl cert is not setup correctly :)

Very interesting re redshift => google analytics though, I've never heard of it done in that direction.

Do you think airflow is suitable for one-off/cron task management as well?

<comment><USER41> Actually yes. Airflow has cron support baked in, when you run a task you can give it a cron schedule. It then takes care of running your tasks when scheduled.

As for the ssl, I messed up my link. We are in the process of moving the site, so some of the redirects are not working perfect at the moment >.>

</comment></comment></comment></comment></comment><comment><AUTHOR> New update from AWS: 12:21 PM PDT We can confirm that some customers are receiving throttling errors accessing S3. We are currently investigating the root cause.

</comment><comment><USER42> Is Slack using S3? I can't seem to upload anything.

<comment><USER43> Yes, Slack uses S3 for attachments and shared items.

</comment></comment><comment><USER44> Unable to deploy with Elastic Beanstalk currently. Internal 500 error. They put up the Blue Diamond icon, so this must be serious.

<comment><USER45> knowing them the datacenter must be flooding with lava.

</comment></comment><comment><USER46> Thought I was going crazy. We're seeing 'Please reduce your request rate.' for a lot of our requests as well

</comment><comment><USER47> Definitely seems like that... And we should back off and reduce our request rates, HN, otherwise we'll make it worse!

<comment><USER48> I tried CTRL+ALT+DEL but it didn't help!! :)

<comment><USER49> Turning it off and back on again as we speak.

<comment><USER50> Before the popularity of SSD in the average computer, and the theoretically low downtimes for AWS, telling someone to just restart their computer a few times until the website shows up might actually have "fixed" it.

</comment></comment></comment></comment><comment><USER51> We're seeing the same thing. Been tracking it via Twitter for the last 15 minutes or so: [https://twitter.com/search?q=s3%20slow%20down](https://twitter.com/search?q=s3%20slow%20down)

</comment><comment><USER52> I've gotten a lot of those errors while using the AWS CLI for S3, but it was intermittent. I was using the sync command, so I just kept kicking it back off again as soon as it finished, and eventually got everything up there.

</comment><comment><USER53> From status page: ([https://status.aws.amazon.com](https://status.aws.amazon.com))

11:58 AM PDT We are investigating increased error rates for Amazon S3 requests in the US-EAST-1 Region.

<comment><USER53> 12:21 PM PDT We can confirm that some customers are receiving throttling errors accessing S3. We are currently investigating the root cause.

</comment></comment><comment><USER54> Does anyone else have some of their buckets missing from the console list?

<comment><USER55> Our buckets are there, just we cannot GET content, with error messages about reducing the rate.

</comment></comment><comment><USER56> _" 12:49 PM PDT We are now seeing recovery in the throttle error rates accessing Amazon S3. We have identified the root cause and have taken actions to prevent recurrence."_

</comment><comment><USER57> looks like s3 apis are starting to respond correctly now.

hopefully this raises awareness on how important planning for failure is before you make a design choice to introduce a dependency.

</comment><comment><USER58> Yup, it is down for our site. Some of the images are not being loaded. (US- east-1)

Console says: Failed to load resource: the server responded with a status of 503 (Slow Down)

</comment><comment><USER59> We are seeing increased error rates for GET and HEAD requests. So far we have not been having any issues with PUT requests. We are in us-east-1.

</comment><comment><USER60> Not sure if related but had unusual SES timeouts and "too many requests" errors around the same time this was posted.

</comment><comment><USER61> Down for us as well. `An error occurred with the message 'Please reduce your request rate.' when writing an object`

</comment><comment><USER62> Confirmed this is also impacting CodeDeploy in us-east-1, makes sense since it has S3 dependency on revision location.

</comment><comment><USER63> I can see our us-east-1 buckets, and just pulled a file out. WFM, FWIW. IAM got me a few weeks ago though. :(

</comment><comment><USER64> We're see 'Please reduce your request rate' frequently on read and write operations.

</comment><comment><USER65> It's effecting heroku deploys that rely on build-packs hosted on S3 (like ruby build-pack).

<comment><USER66> That's really disappointing - why isn't something so critical to heroku deployments distributed across multiple AZs and regions?

</comment></comment><comment><USER67> "Slow Down"s for me. We started seeing some weird S3 behavior since about 11:45 PST.

</comment><comment><USER68> We're getting 503s on s3 assets. Definitely having issues. Cloudfront is still good.

</comment><comment><USER54> Does anyone else have some of their buckets missing from the console list?

</comment><comment><USER46> Seeing the "reduce your requests" error message on our end

</comment><comment><USER69> Everything seems to be running normally again, at least for me.

</comment><comment><USER2> [https://news.ycombinator.com/item?id=15251374](https://news.ycombinator.com/item?id=15251374)

</comment><comment><USER70> [https://www.whoownsmyavailability.com/](https://www.whoownsmyavailability.com/)

</comment><comment><USER71> Happening here too (NYC, us-east-1).

</comment><comment><USER72> Seems to be resolved.

<comment><USER73> Status page claims resolution, but errors are still ongoing for us.

</comment></comment><comment><USER74> Seems like Github might be affected as well? Can't comment or merge PRs.

<comment><USER75> Github isn't hosted on AWS btw.

<comment><USER76> At least downloads are hosted on S3.

</comment></comment></comment><comment><USER77> Can't receive orders :D

</comment><comment><USER78> yup

EB interface is affected too

</comment><comment><USER79> I wish that AWS would settle on a standard timezone (preferably UTC). Troubleshooting the fallout had me mentally converting their PDT status pages with console graphs in both UTC and 'local browser' time[1]. All for a region located in EDT.

[1] I think they even have a graph somewhere whose axes are in UTC, but whose tooltips are in local browser time, but I can't recall for sure.

</comment><comment><USER80> We are seeing errors in US-EAST:

error: S3ServiceException:Please reduce your request rate.,Status 503,Error SlowDown,Rid

</comment><comment><USER81> Oh boy.

</comment><comment><USER82> Russia? China? Jealous of our cat pics much?!

</comment><comment><USER83> I am having trouble on my vultr VPN as well. Any chance it's related?

<comment><USER84> No

</comment></comment><comment><USER48> Definitely affecting S3 bucket ops, static site hosting on s3, and even things like CloudTrail. Anything that uses S3 East VA my guess. Rather severe impact. Maybe less focus on avocados is what's called for...</comment>


Pixelhead - the ultimate in anonymous?  - <AUTHOR> http://www.thelocal.de/lifestyle/20120823-44537.html

<comment><USER2> The artist's page: <http://www.martinbackes.com/pixelhead-limited-edition/>

He sells them for 158 euro.

It's also worth looking at CV Dazzle if you find this interesting. It looks at ways to beat current face detection mechanisms while not looking like that's your only intention: <http://cvdazzle.com/>

</comment><comment><USER3> How's this different from wearing a balaclava?

<comment><USER4> It's art with big pixels (appeal to the gameboy-generation) on it.

<comment><AUTHOR> From the artist's page.

A _Pixel-style print of the German Secretary of the Interior Hans-Peter Friedrich_

So it's a bit of inside joke as well

</comment></comment></comment><comment><USER5> What about using infra-red lights to "blind" cameras? On a collar or something.

<comment><USER6> It's been done <http://boingboing.net/2008/02/20/infrared-leds-make-y.html>

</comment></comment><comment><USER7> Reminds me of the film Scanner Darkly

</comment><comment><USER8> I want a green one!</comment>


Air France Flight 447: A detailed meteorological analysis - <AUTHOR> http://www.weathergraphics.com/tim/af447/

<comment><USER2> For those of us who don't follow news much, there's more factual detail here: <http://en.wikipedia.org/wiki/Air_France_Flight_447>

_There were 228 people aboard the flight including three pilots and nine other cabin crew. The passengers were one infant, seven children, 82 women and 126 men_

:(

<comment><USER3> It is doubtlessly an unfortunate tragedy :-(

Nonetheless, everyday over 3000 people die in car accidents all over the world. Over 5000 people die everyday due to preventable water diseases. Over 3000 people commit suicide every day. One can also argue that these tragedies could be prevented. From this perspective, it's all but cold statistics...

</comment></comment><comment><USER4> Just the idea of a plane vanishing, gone, with well over 200 people on board, boggles the mind. No distress calls?

I can only imagine the sudden chaos that erupted.

Technology v. Nature.

<comment><USER5> perhaps there was rapid decompression caused by the turbulence caught the pilots without their masks on, and they fell unconscious, thus no distress call, and a crash. there could have been a structural failure and the airplane may have broken up on descent to a lower altitude. remember the American Airlines crash in New York in October, 2001, where the vertical fin broke off, it was an Airbus A300. The BOAC crash caused by turbulence near Mt.Fuji in 1966 was a massive structural failure as well. Hard to believe the pilots would not have seen this weather on the radar and steered around it. Then again, they depend on meteorological reports and guidance from the ground in these situations, and may have been waiting for instructions. I've never flown through severe turbulence (few have and lived to tell about it) but I've experienced light turbulence, the kind where your butt leaves your seat very briefly, and it's not fun. 4 hours of that and you have a back ache.

</comment></comment><comment><USER6> As a pilot, I'm tempted to speculate on various crashes.

I've learned that this is a bad habit.

Best case, you get the cause right, and you look like a jerk. Worst case, you get the cause wrong, and you look like a jerk.

I will say that in general, flameouts due to ice ingestion and the complete fly-by-wire system of the Airbus have been generating interesting conversations in the aviation community for some time. Whether this has anything to do with the current situation is anybody's guess. I feel very sorry for all of those involved.

<comment><USER7> For an interesting counterpoint on 'fly-by-wire-is-bad' read the Vanity Fair article about the Airbus that landed in the Hudson and how the fly-by-wire augmented the pilot's own ability.

[http://www.vanityfair.com/style/features/2009/06/us_airways2...](http://www.vanityfair.com/style/features/2009/06/us_airways200906)

<comment><USER8> Boy, there is some fabulous choice of words in that Vanity Fair article. For example in the part telling the story of an Airbus 330 that ran out of fuel over the Atlantic. Both engines are going out, the flight attendants have instructed passengers to don life vests, the main lights have failed, the PA system goes dead and then finally "as the cabin pressure leaked away, the oxygen masks automatically dropped, and this caused another round of fussing."

Yeah, I bet those passengers were "fussy" alright.

</comment></comment></comment><comment><USER9> Many things he discusses are well above my level of comprehension but turbulence is likely to be the main cause of the crash although other planes passed that same region without problems. It sounds likely to me that heavy turbulence just 'broke' inner electronic equipment/circuits/meters/connections?

<comment><USER10> This particular airplane (F-GZCP) was involved in a ground collision incident with another Airbus in 2006, where its wing hit the other Airbus' tail. The wing was repaired.

An improper fix would certainly lead to an in-flight breakup after many operating cycles (see Japan Airlines flight 123 - <http://en.wikipedia.org/wiki/JAL_123>; China Airlines flight 611 - <http://en.wikipedia.org/wiki/China_Airlines_Flight_611> for example), especially in conditions of heavy turbulence that this airplane obviously experienced.

Either that or a bomb is my educated speculation.

<comment><USER11> However, considering the maintenance transmissions were spread over 4 minutes, I'd suspect the plane didn't entirely breakup within a shorter period of time.. although this doesn't rule out that a bomb or breakup was the straw that broke the camel's back - just that it probably wasn't the sole cause.

</comment></comment></comment><comment><USER12> "Terrorism has been ruled out"

I hate it when they try to manipulate mass opinion when they haven't even found the damn plane.

The first thing that comes to my mind is a bomb in a suitcase blew the plane in pieces.

Occam's razor.

<comment><USER11> I think you're probably not being serious, but just in case.. you probably aren't going to be getting 4 minutes of maintenance transmissions from a plane that's been blown into pieces ;-)

<comment><USER12> Totally serious. Nowhere I've read about those 4mins you claim.

Here is what I've found:

The Washington Post: "among the key questions are how long the plane kept flying after its last automatic satellite transmission and why no mayday call was received from the pilots."

"the aircraft emitted a series of automatic messages via satellite indicating that its electrical system was not functioning and that it had suffered a loss of cabin pressure. Those were the final signals from the plane. "

As soon as it explodes, the transmitters start sending info about electrical failure and cabin pressure, of course, and they do so for as many minutes as they fall from 30K feet.

Why there was no mayday call?

They were already dead. Remember Columbia.

<comment><USER13> It's in the CNN Article (the four minutes). Here is the relevant bit:

"But about 4:15 a.m. Paris time, Flight 447's automatic system began a four- minute exchange of messages to the company's maintenance computers, indicating that "several pieces of aircraft equipment were at fault or had broken down," he said."

You can read the full article here:

[http://www.cnn.com/2009/WORLD/americas/06/01/air.france.braz...](http://www.cnn.com/2009/WORLD/americas/06/01/air.france.brazil/index.html)

My instincts tell me that if power was lost, they wouldn't be able to send a mayday call. Of course, if total power was lost, how was the plane able to communicate with the server?

A bomb could have caused this explosion, but doesn't fall within the usual terrorist M.O. No group has stepped forward to claim the attack- half the "fun" of a terrorist organization is spreading fear through your message.

Additionally, it would not make sense for a terrorist to blow up the plane 4 hours into the flight over the Atlantic Ocean. It would make more sense to blow it up as soon as it takes off or lands, to maximize damage on the ground as well.

I am not a pilot, nor a security expert. This is all just my street-instincts talking.

<comment><USER14> > No group has stepped forward to claim the attack- half the "fun" of a > terrorist organization is spreading fear through your message.

I don't have any reason to think this was a terrorist attack, but I have the impression that (credibly) claiming responsibility for attacks is less common than it used to be. The Mumbai attacks last year, for example, were just miscellaneous mystery terror.

<comment><USER13> I agree with you, but to use your Mumbai attack example, "everyone" (everyone I've read) basically believes that the Pakistan CIA-equivalent helped sponsor the attacks. An organization taking responsibility for the attack would lead back to this organization, which would involve a lot of political drama.

As long as Pakistan doesn't openly claim responsibility, there's no real loss in political capital to them- Indians hate them anyway, and any time an attack happens, India seems to rattle its sabers for a few months before backing down and they remember that Pakistan is also nuclear capable.

Then business returns as usual.</comment></comment></comment></comment></comment></comment>


Number of tweets by World Cup team, real time using Splunk - <AUTHOR> http://splunkd.com/worldcup/

<comment><USER2> Need log-scale on the y-axis. Hard to see some of the other teams.

</comment><comment><USER3> Very interesting, but how do you search for the tweets? Will any message containing the letters "USA" trigger you system? What about tweets like "USA should host the next World Cup"?

<comment><USER4> I suppose by counting the hashtags per team. (#ger #aus #mex etc).

</comment></comment><comment><USER5> Ledio, this is sweet! Welcome to HN :)</comment>


Ask HN: Equity for sales people (early startup)? - <AUTHOR>

Hi,
I am in the process of building a SaaS company. The service will take me about one year to build and then I will have to maintain and support the system 24/7 since it will be critical for my customers daily business.
When my service is complete I want to add a sales person that will knock on my customers door and try to sell them a subscription to my SaaS. This person have no sales education but is gifted with the ability to sell (at least I think so).
What is a resonably equity share for this person? since I don't have money to pay him.
I am thinking about 30%, is that to low or high you think? Of course it depends on many variables that you don't have. My hopes is to make a yearly turnover around $500k in year 2. <comment><AUTHOR> The person will not quit his job, but work days of, weekends and evenings.</comment>


Microsoft Contractors Listened to Xbox Owners in Their Homes - <AUTHOR> https://www.vice.com/en_us/article/43kv4q/microsoft-human-contractors-listened-to-xbox-owners-homes-kinect-cortana <comment><USER2> <Tech Company> contractors listened to <smart device> recordings

These stories feel like mad libs at this point. I don't personally have a problem with anonymized recordings being used to improve models, but maybe these assistants should prompt for affirmative consent whenever they hear a new voice. "Some recordings may be reviewed by humans for quality assurance and to improve our services. These recordings are not linked to you or your identity. Do you accept?"

<comment><USER3> Call me old fashioned, but someone recording my nephews, without them knowing, and then selling/giving that recording to just about anyone, is cause for a bit of concern and possibly a headline. But then again, I may be old fashioned.

<comment><USER2> The Xbox case is notably more important because of the disproportionate number of children using the service and the associated COPPA implications.

But can you provide a source for any of these companies "selling/giving the recording to just about anyone"? The only stories I have seen involve contractors working for the company on QA/labelling. It seems like a pretty gross misrepresentation to imply they're somehow selling or trading voice recordings.

<comment><USER3> Per the Amazon Privacy notice [0], they claim that they do not 'sell' your data. I've not parsed it in detail, but a quick preusal of it does not specify the sharing of the information of children specifically. Nor does the privacy notice mention what 'sell' means. Is rental of data included, is lonaing the data included, what is meant by data, what is meant by secure, what happends when a contrator just runs off with the data and then sells it?

I've not looked at the policies of the other various 'mic is in the house' devices, as Amazon's privacy notice is suprisingly readable and short in comparison (hence why I linked it above).

Suffice to say, there are enough weasel words in these privacy notices that you agree to that these companies can claim non-liability over just about anything. Look, I'm not a lawyer and I'm not an expert in these EULA thingys, but they smell really fishy and I'm pretty sure at this point in the internet that they are not written for my benefit.

I'm not too pleased with such practices and such an ethos involving personal conversations of the people that I love and that love me.

If they end up selling the data to just about anyone, I'm not going to be suprised, just very disappointed in those people and the people that have to forgive them for trading the (perhaps very personal) conversations of children and adults for some more numbers on a checking account screen.

[0] [https://www.amazon.com/gp/help/customer/display.html?nodeId=...](https://www.amazon.com/gp/help/customer/display.html?nodeId=468496)

</comment></comment></comment></comment><comment><USER4> An Xbox was on my list of things to buy, but I think now i'll give it a pass and choose an alternative console, for the same reason I wont buy an Alexa.</comment>


Show HN: Arxiver.org – Browse and save your favorite arXiv papers and feeds - <AUTHOR> A few months ago I decided I should read more arXiv papers to stay up to date with machine learning, but I found the UI and lack of features of arXiv.org to be unwelcoming. So, as a fun project, I decided to build my own site to browse arXiv and that's where Arxiver.org came from. I'd love to get some feedback on site! <comment><AUTHOR> Clickable link: [https://www.arxiver.org/](https://www.arxiver.org/)</comment>


Ask HN:  Has anyone tried the p90x exercise program? - <AUTHOR>

The youtube makeovers look great but I'm not sure how many of those were staged by the company or how difficult or time consuming the program actually is. <comment><USER2> The P90X program is amazing if you stick to the six-a-week workouts and are really strict about your diet. It will kick your ass in the beginning, so be ready for that. By the end, you will be enjoying the workouts that you dreaded when you started.

There is no gimmick here: you have to work hard and diet hard (although "diet" just means eat smart and healthy, not follow some bullshit fad). The main benefit of the program for me was that it provided variety, structure, and intensity levels that I didn't have to think about.

I would HIGHLY recommend it.

One note: if you are WAY out of shape, start with a more basic program to get you up to speed. This isn't a program for people who are way overweight or haven't worked out in years. It is not for beginners.

<comment><USER2> I want to add an additional comment about the diet for you. The diet is BY FAR the most important part of this. Finding an hour in your day is not that hard. People who say otherwise are full of shit and just making excuses -- I work 60-70 hours a week, easily. If you have small children, that's a different story ;-) I don't, but I can see that their schedules and responsibilities are far more demanding than mine.

If your diet is not already clean, and you're not used to eating five or six smaller meals spread out over the day, it will be a lot to get used to. You can easily burn 6-700 calories in a workout. But you'll want to cut your calories and eat very smart and healthy. If you consider that you need to have a calorie deficit of about 3,500 compared to what your body needs in order to lose a pound, you can burn 500 calories and cut 500 calories in a day, and that will give you about a two pound loss for the week, which is a good goal. But you only have to worry about the workout for an hour a day. You have to worry about your diet ALL DAY.

The good part, as I mentioned above, is that there is no fad here. You have a tonne of flexibility as far as what you can eat, and as long as you cut out junk like soda, junk snacks, burgers, pizza, etc. you should the pounds drop off very quickly. I didn't even think I had 20 pounds to lose, yet I had lost 20 pounds in 60 days.

But the workouts make you want to eat better, the healthy diet makes you want to workout more, and when you start seeing real results (which you will very quickly if you follow the system religiously), that will motivate you even more.

Really, I cannot speak highly enough about this program if you're willing to commit to it.

<comment><AUTHOR> This might get answered once the DVDs arrive, but in your opinion can I pretty much just do the program in the morning before work and then drink a protein smoothie afterwards for breakfast?

<comment><USER2> For sure. I can't workout first thing because I'm too hungry, but if you can, then a lot of people do it. Since your post-workout meal is also your first meal of the day, you'll want to male it more than a smoothie. There is a lot of info that comes with the program, so you can read that.

</comment></comment></comment></comment><comment><USER3> Yep, I've gone through a couple cycles of it -- it's pretty solid. It's going to take ~1hr of your day for those 90 days, but it's well worth the effort.

You don't need any fancy equipment. A few dumbbells and the corner of a room will do just fine.

</comment><comment><USER4> Does anyone know of an open-source alternative? I don't mean "lift up heavy shit until you get tired, don't eat bad food" either, I mean a tested, regimented, and focused system?

I participated in the 911 Fitness Challenge <http://www.911fitness.com/> a few years ago and it was particularly helpful to have everything spelled out for you, but it was expensive to implement, given the gym membership and dietary requirements.

</comment><comment><USER5> I have a number of friends who have tried the program and rave about it. One of them lost around 15 lbs over the summer.

<comment><AUTHOR> Thanks, that helps. Do you know if they spent a lot of time on it each day?

<comment><USER2> About an hour a day, six days a week is what you'll need.

</comment></comment></comment><comment><USER6> Haven't tried it, but I have a NIB Bowflex if you want to get in shape ;)

<comment><AUTHOR> The Bowflex scares me. I think I'll pull one of those levers the wrong way somehow, let go and it'll smack me in the face.

<comment><USER7> I've never understood the fascination with all the high tech machines. They're more expensive and more complicated than something everyone already knows works the best: picking heavy things up and putting them down again.

<comment><AUTHOR> Difficult to pick up heavy things with certain muscles, like the triceps, without a pulley system.

Anyway, I do think p90x basically consists of listing heavy things.

<comment><USER7> Sorry, in re-reading my comment I kind of sounded like a jerk - I promise, it was unintentional.

I guess my point was that you can do a heck of a lot for yourself with basic situps / pushups / floor squats with a bag full of books or sand and it doesn't take anything that requires payments to do so.

<comment><USER8> A machine does two things.

(1) It sits there and says "you spent $500 - are you going to use it?"

(2) It sits there and gives you another place to hang junk.

If (1) works for you, great.

BTW - These are two reasons why the "put under your bed" machines are a bad idea. Out of sight, out of mind.</comment></comment></comment></comment></comment></comment>


Yesterday's Drugs Are Tomorrow's Medicines - <AUTHOR> http://aeon.co/magazine/health/yesterdays-drugs-are-tomorrows-medicines/

<comment><USER2> There's a lot here. It's mostly hidden behind a thickets of taboo, bias, laws and paradigms that have no room for it. Politics, in short.

There's the universally unacknowledged right of adults to freedom in this regard. There's the potential for new medicines. There's the value of non rational thought and states of mind. This is plain in art, but generally derided everyone else because of the relationship to antirational arguments, insanity and other persona non grata. There's the always nebulous concept of personal, indescribable spiritual experience. There's an unavoidable wrestling with philosophical ideas about reality from Des Cartes' solipsism, to Socrates' Parable of the Cave even The Matrix.

There's possibly more to the treatment of mental disorders with psychedelic medicines than simply new and useful drugs. There might be a different approach here to supplement, compliment or partly displace the prevailing paradigms of mental illness. Diagnosis. Pathology. Symptoms. Treatment. The language of medicine is somewhat awkward when dealing with mental illness.

I wish someone had worked out a way to to HN with threaded posts. Something that works in like a collective wikipedia wormhole starting with elephants and ending in Archeology of the early Holocene. but for now, here's a link:

Incredible photographer Phis Borges photographed a lot of indigenous people and developed an interest in Shamanic or Animistic cultures. These usually have a medicine man who performs a role in the culture usually involving trances, healing and visions. He asks them how they got the job and most describe an experience early in life which is diagnosed as schizophrenia inhere psychiatrists are available.

[https://www.youtube.com/watch?v=CFtsHf1lVI4](https://www.youtube.com/watch?v=CFtsHf1lVI4)

<comment><USER3> > here's the value of non rational thought and states of mind. This is plain > in art, but generally derided everyone else because of the relationship to > antirational arguments, insanity and other persona non grata. There's the > always nebulous concept of personal, indescribable spiritual experience. > There's an unavoidable wrestling with philosophical ideas about reality from > Des Cartes' solipsism, to Socrates' Parable of the Cave even The Matrix.

I am currently reading a book called "Privacy in Context" by Helen Nissenbaum. A portion of the book was pointed out to me,if I may quote.

>> .."for even when we are uncertain whether or not we are being watched, we must act as if we are. When this happens, when we have internalized the gaze of the watchers and see ourselves through their eyes, we are acting according to their principles and not ones that are truly our own (Bentham 1995; Foucault 1995). But pan-optic effects might be even more insidious than this, leading to a diminishment in our capacity to formulate principles, plans, and desires with which we truly identify. According to this framing of the relationship between privacy and autonomy, it is not conceptual but causal for privacy is claimed to be an important aspect of an environment in which autonomy is likely to flourish, and its absence likely to undermine it."

<comment><USER2> I can't quite understand it either.

Is he saying we should act as if watched or that we're being forced to act as if we are?

I assume it's the latter. BTW, I've actually heard recently a description (in the context of Adam Smith) of internalizing the voice of a watcher as the origin of 'Moral Sentiments.' He considered it a good thing. IE, your parents tell you hitting is bad. You eventually tell yourself its bad to hit and morality ensues.

There's a parallel to moral shifts in culture, like the ban on gay bashing, domestic abuse, littering & such. In the beginning a few police the many deriding them for littering. Then everyone stops doing it in public. Eventually the ethic is internalized.

</comment></comment></comment><comment><USER4> The definition of what makes a "good" drug (i.e. one that is used medicinally) and a "bad" drug (i.e. one that is addictive and/or used recreationally) is somewhat arbitrary to begin with, and in quite a few cases, it solely depends on how a substance is used (and/or by whom) - ethanol is a prime example, being used medicinally as a disinfectant and sometimes to treat methanol poisoning. The recreational uses of ethanol are, of course, well known, although the line between enjoying a good wine or whiskey or whatever (something that is considered kind of sophisticated by some people) and making a fool of yourself or even being an alcoholic is fairly fuzzy.

The situation is not entirely different for a number of prescription drugs. Sometimes, the benefits of medicinal use are considered to outweigh the possibility of "abuse" (as is the case with codeine, oxycontine, ketamine, a number of benzodiazepines and so forth), sometimes the possibility of non- medicinal use kind of poisons the well (heroin, psychedelics).

Personally, I think it is time to rethink the public policies on drugs. Prohibition has been shown - repeatedly - not to work and to cause a number of problems. Lifting the restrictions on many mind-altering substances would also make it easier to evaluate their possible medicinal uses (and to actually put those substances to use if they are found to be beneficial). Also, it would allow society and politics to start viewing addiction and all the problems that go along with it as a health issue rather than a law enforcement issue. The only substantial difference between an alcoholic and a meth or heroin addict is that alcohol is legal and that alcoholism is - to a degree - tolerated (or ignored) by society.

<comment><USER5> >>Prohibition has been shown - repeatedly - not to work

Unfortunately, those promoting the drug enforcement agenda do not care whether it works. In fact, they are probably most familiar with the fact that it doesn't "work" in the sense of healing social ills.

The way it does "work," however, is by giving purpose to large and politically powerful organizations and structures, such as the prison industrial complex.

The fact of the matter is that without a war on drugs, effectively a war against a subset of a nation's own citizens, there would be little justification for large standing police forces in small towns. They need these laws to give them something to do, as solving actual crimes with victims is difficult. So, by some accounts, the war on drugs is "working" just fine.

<comment><USER6> Drug wars are nothing new. Its almost cyclic - drugs considered harmless, followed by overuse and destroyed lives, followed by harsh campaigns suppressing their use, followed by laws and 'wars'. When a generation gets appalled at the inconsistencies in prosecution of what are now 'victimless' crimes, rinse and repeat.

In the 1700's and 1800's these cycles were repeated; today we're where we are. But now there are really effective drugs that are both less corrosive to general health, and simultaneously shockingly addictive and dysfunctional. We've upped the ante by 100X.

So where do we go from here? Suggestions? And 'repeat the cycle' is not going to really solve anything.

<comment><USER7> Allow modern science to develop drugs of recreation that minimise the downsides. We have a far greater understanding of pharmacology and Neuroscience now than ever before.

It would have to be done carefully - a pure market-based solution would likely optimise for addictivity so other constraints may need to be imposed.

But for an example, have a look at some of Prof. David Nutt's propositions about creating a less harmful alcohol substitute.

At the moment any research into making a 'better' recreational drug is highly controversial. Particularly where harm reduction is concerned - many on the 'anti' side consider it a moral issue and reducing harm goes directly against their sense of justice and punishment of those that transgress.

<comment><USER6> I remember that syphilis was considered a just reward of the promiscuous. There was much resistance to the idea of a cure. AIDS was considered by some to be the judgement of God. Some things never change.

</comment></comment></comment></comment></comment><comment><USER8> And in the case of heroin, yesterday's medicines are today's drugs.

<comment><USER9> Or cocaine, or ecstasy...

</comment></comment><comment><USER10> And vice versa (see Heroin, MDMA, LSD...)

</comment><comment><USER11> Welp, now I have a slight interest in making poppy water. I didn't know quinine had those effects either.

<comment><USER12> I think most reading the article had that same thought, which is why the author didn't go into much detail on the preparation or exact process. Not that this article was the place, but when you combine an intellectual audience with the idea of mind altering substances your bound to pique some interest.

</comment></comment><comment><USER13> Although it's undoubtedly true that much of allopathic medicine is based on religious superstition and racism, probably even more of the superstition underlying western medicine comes from modernity, the patent system, and arbitrary regulations.

<comment><USER14> 1\. "Allopathic" is a term used by some medical cranks to refer to real medicine. (It simply means medicine that isn't based on the principle that "like cures like", i.e., that a remedy for a disease with certain symptoms will be something that causes those same symptoms. Since that principle is bullshit, and cases where "like cures like" arise only rarely and by coincidence, essentially all medicine is allopathic.)

2\. It is not undoubtedly true that much medicine is based on religious superstition and racism (nor does the article linked here either make or justify that claim). In particular, I doubt it. (Unless you take "much" to mean something way too weak like "at least one instance".)

3\. It may well be true that "the patent system" and "arbitrary regulations" have bad effects in western medicine. I see no reason to categorize those bad effects as having anything to do with "superstition", nor have you given any. Would you like to expand on your claims?

4\. "Modernity" is waaaaaaaay too broad a category for it to be useful to blame things on. Again, would you like to say what you actually mean? Are you, e.g., objecting to the idea that medical treatments should be evaluated by scientific experiments that compare their effectiveness with that of alternatives?

<comment><USER13> > "Allopathic" is a term used by some medical cranks to refer to real medicine

It's just a synonym for mainstream medicine, but one that specifically highlights the assumptions underlying mainstream medicine. It's not a great term, but it's probably the least worst alternative that exists... Other terms like evidence-based medicine, western medicine, modern medicine, etc., are inherently misleading or biased. E.g. the term 'evidence-based medicine' presupposes the idea that mainstream medicine is mostly or entirely based on evidence, 'modern medicine' presupposed the idea that everything outside of mainstream medicine is inherently inferior, the phrase 'western medicine' is hegemonic, etc.

<comment><USER6> Another post on HN yesterday shows that 'allopathic' medicine is deeply fractured. Most follow the 'pastoral care' model where folks are kept comfortable in a recreation of their normal environment. Instead of modeling different care regimens and using statistics to choose treatments with the best outcome. Individual medical professionals tend to use personal experience alone in guiding their decisions. Medical researchers struggle to convince them to try varied regimens so they can measure and prove what is best.

This schism is slowing down adoption of good treatment, as well as enshrining pointless protocols far beyond the time they are known to be ineffective.</comment></comment></comment></comment>


Why Choose Vue.js - <AUTHOR> http://hire.jonasgalvez.com.br/2017/Jun/23/Why-Choose-Vue <comment><USER2> I really don't get how separating templates is a good thing. Been there, done that. Not going back. Not going back to separate CSS either. Because having everything together is great. Not to mention using JS for render logic. That's great too. It's what I always wanted. People kept pushing "best practices" on me—like not using the style attribute, separating templates—and I am so grateful for the people at Facebook for ending that.

Like most articles about Vue.js—and I keep looking because I keep wanting to understand the appeal—there's never a clear explanation regarding why separating templates and not using JS for render logic is good. Maybe it's a matter of taste. For me, having everything about a component in one place is very convenient and simplifies abstraction and composability.

Maybe I just need to try Vue.js to understand the draw. That was true for me with React. But React was a totally new paradigm for me. Vue.js seems like a combination of several familiar paradigms in a way that doesn't really make sense having gone React.

<comment><USER3> Vue components have the html template, the javascript code, and the component's scoped CSS all in one file. You can define the template in a string, or even in JSX if for some reason you wanted to do that, or you can just use regular old HTML which is stored alongside the javascript that controls it and the css that styles it.

<comment><USER4> But a template is not "regular old HTML". HTML is a standard for declaring marked up text. What Vue and similar libraries do is make adhoc variants of HTML (all different) with extra looping constructs and if/then constructs and so on. The templates also require embedding snippets of JavaScript code in them -- code which standard JavaScript/TypeScript IDE tools don't know about and so can't refactor, validate, or navigate.

These templates may look declarative because the look HTML-ish but they are not -- because of the embedded code that can call arbitrary functions in your application. The result is hard to debug and reason about. Where do you put a breakpoint in such a template? How do you abstract part of a template into a function? How do you add logging to such templates? How do you know what object is having its data accessed for templating languages like with Angular that do complex contextual lookups behind the scenes? How do you get code coverage reports? How do you get code completion? How do you get precise error reports? And so on. For more on why templates are a bad idea, see: [https://blog.dantup.com/2014/08/you-have-ruined- html/](https://blog.dantup.com/2014/08/you-have-ruined-html/)

That is why I feel these sorts of template-based approaches will eventually be discarded as obsolete for writing single page applications as web programming continues to progress (in favor of generating UIs directly from code). HTML- ish templates feel familiar to people with experience building progressively enhanced web apps by sprinkling a bit of CSS and JavaScript on top of HTML generated from a server -- but for single-page apps that spend most of their time converting JSON from a server into HTML (or just doing stand-alone activities), a templating HTML-first approach make little sense. You just don't need extra templating machinery that you need to learn and maintain and that just gets in the way of development.

By contrast, consider the HyperScript API for generating HTML from JavaScript/TypeScript (as used in Mithril, Maquette, and optionally in Inferno and some other vdom libraries).

For example:

        h("div",
            h("ul",
                h("li", "one"),
                h("li", "two"),
                h("li", "three"),
                someExtraListItems(),
                otherItems.map((item) => h("li", item.name))
            ),
            isListEditable ?
                h("button", { onclick: editList }, "Edit extra list items") :
                []
        )

If you use the HyperScript approach (especially with Tachyons.css or similar), you are just writing JavaScript/TypeScript/whatever and can leverage all of the language's features. JavaScript-first for modern SPAs!

<comment><USER2> > These templates may look declarative because the look HTML-ish but they are > not

Yes! Precisely. How many of these "regular old HTML"s I've seen and even used. Each with their own looping constructs, their own if/then constructs. The benefit, honestly, was lost on me then and is still lost on me.

React is not perfect. JavaScript is horrible. But pretend "HTML" templates are so much worse for all the reasons you describe.

I still suspect there must be something to Vue, though. So many people like it. Many of them have tried React, so I'm sure it's not like they're all ignorant to the glory of JS-based rendering. I wonder what it is.

</comment></comment></comment></comment><comment><USER5> Love the article! But wow this site hurts my eyes. Yellow and red font on a black background aligned very far right?

<comment><AUTHOR> Thank you! It looks great here but I'll keep that in mind.

<comment><USER6> Just to add my voice to this, I read about 3 sentences before closing the tab. That is extremely difficult to read.

Also seeing issues with the right column overlapping the left

<comment><AUTHOR> Jeez, CSS is hard :) Thanks guys, I'll get on fixing this.

<comment><USER7> If i may..? The equally symetrical layout is hard to read, you should rather use an one third - two thirds layout, or about. Then i'd try something like #FFF1CA for the left hand column, so it looks like the text (i know they right now are the exact same color but one being surrounded by black making it look lighter). Also, maybe increasing the padding up of the right col up to a 100px would prevent eyes from being lost between both columns when jumping lines. Overall contrast is way too high. Hope that helps.

</comment></comment></comment></comment></comment><comment><USER8> I embraced Vue after making multiple attempts to digest the React platform with little success. I have found that Vue's templating system and APIs have brought so much clarity to the complex projects that I set out to build, and would highly recommend it to anyone. It is my hope that React may learn from some of Vue's triumphs.

</comment><comment><USER9> I initiated the adoption of Vue.js in our agency about a year ago and we never had to regret it. One positive aspect that I didn't expect is that the architecture of Vuejs apps kind of forces you to write cleaner code: methods, states, mutations, every piece has its own place.

</comment><comment><USER10> Remarkable that Vue.js (Single dev) is holding up well against React. I was recommending Vue.js to others while react was the craze. It somehow felt more cleaner to me and the performance, if I am not wrong was on par or better than React.

<comment><USER11> Vue.js is heavily backed by Alibaba, the 7th biggest tech company in the world by market cap.

<comment><USER12> I like to see some evidence of this claim. Certainly Alibaba.com is not built with Vue.

<comment><USER13> [https://medium.com/the-vue-point/the-state-of- vue-1655e10a34...](https://medium.com/the-vue-point/the-state-of- vue-1655e10a340a)

Doesn't say anything about being sponsored by Alibaba, but Evan does indicate adoption there.

<comment><USER12> That's the thing. All claims of Alibaba's adoption of Vue comes from the author himself. I think it's reasonable to have doubt. I'm sure they use it. But to claim that they heavily invest in it may be exaggerated.

<comment><USER10> Yes, he has openly said he is funded through patreon. Now that the framework is super popular, he may have other sources of income, but it's not built by/for/in Alibaba afaik.

</comment></comment></comment></comment></comment></comment><comment><USER14> We love Vue at our company. I'm personally a fan of how Vue separates and handles templates.

That said, it was a bit difficult to read this article on a fullscreen monitor since it's aligned to the far right.

<comment><USER15> Agreed. Just run this in the console for a little better experience.

        document.getElementsByClassName("left")[0].style.right = "55%";
        document.getElementsByClassName("articles")[0].style.width = "50%";

<comment><AUTHOR> Thanks, I fixed it with something close to this.

</comment></comment></comment><comment><USER16> So, I was told to separate html, css and js into different files and such, now web components, vuejs are saying no let us mix three into one component instead. IMHO, too much abstraction kills productivity, I am choosing vuejs and polymer for future projects, yes I like to mix html/css/js together and make them components for reuse.

</comment><comment><USER17> "specialising in UI/UX work with both React and Vue".. "rare occasions I needed to write javascript in the past 5 years"..

Hmmm

<comment><AUTHOR> Well, that's not entirely accurate if you're going to be nitpicky about it. I did work on a multitude of frontend projects in the same period ([http://linkedin.com/in/jonasgalvez](http://linkedin.com/in/jonasgalvez)), just took me a while to consider updating my toolset (which was my point).

</comment></comment><comment><USER18> This color scheme gives me extreme anxiety... good article though.

</comment><comment><USER19> Previously used Vue and switched back to React. I have a few gripes about Vue for larger projects. Most have to do with a lack of 'namespacing' or ability to isolate functions.

1\. Plugins - Eg. Recently VueResource plugin was deprecated, but i had a hard time finding out where all the plugin was being used. The dependencies were hard to figure out.

2\. Functions introduced in Plugins added to a parent component are inherited in all the child components' 'namespace'. It was hard for me to determine if a function that I am writing has a naming conflict with a plugin function, until runtime.

3\. Since this dependency is not obvious, a new dev looking at a piece of code that is using some functionality inserted by a plugin, needs to be aware of all plugins that have been interjected at any of it's parent level components and the functions they introduce.

4\. Mixins help with re-use code, but can lead to potential function naming conflicts.

Maybe I was doing things wrongly w/ Vue. If so, any recommendations are welcome.

</comment><comment><USER20> Is this a CSS joke that backend people won't get? Or why does this site look like a 90s parody of web standards? I am not sure if I can take him seriously over which JS framework to use just by judging on his site.

<comment><USER21> Since when does expertise in javascript have anything to do with design? The site is simple, why does it need to be more complex or flashy for you to take it seriously?

</comment></comment><comment><USER22> "no need to bind methods", that's true but just letting you know its not a thing if you use es6 arrow functions.

class SomeClass extends React {

      someMethod = () => {

       // already bound

      }

    }

<comment><USER23> To be clear, that's not just an ES6 arrow function. That example relies on the Stage 2 Class Properties syntax, which currently requires a Babel plugin. Now, the React team does recommend using that syntax as a viable option, but it's not yet implemented in browsers, and _might_ still change down the road.

<comment><USER22> interesting point. that reminds me of the "..." syntax on object properties that isn't supported on es6 for objects but still is a pretty sweet feature.

<comment><USER23> That one's a lot closer to being finalized. Object Rest/Spread is currently at Stage 3, and is already implemented in Chrome/V8.

For reference on proposal status and details, see [https://github.com/tc39/proposals](https://github.com/tc39/proposals) .

</comment></comment></comment></comment><comment><USER24> I think Front End development is so insane because Front End dev is chained to the browser and javascript/css implementation by the browser makers. With web assembly, hopefully browser developers can separate from making languages and instead make language targets. Then the separately developed language can stay stable while its underlying implementation can adapt to the dumb browser madness. Then we can have some sanity in web development. It's what we are trying to do now with all the maddening layers of transpilation.

</comment><comment><USER25> > In React, you need to use the setState() to trigger rendering updates as you > modify the state. In Vue, you simply assign things to this and, if > necessary, the component's automatically rerendered. You do need to provide > an initial state (data) for safety.

Hoo boy. "Simply" assign directly to `this`! This may come down to preference for/against functional tools, but on this point Vue loses big for me. Seems way less testable...

<comment><USER26> You can still use vuex for the flux experience.

</comment></comment><comment><USER27> I was very interested in Vue.js initially, but I had to pass once I realized it uses two-way data-binding. I prefer React.js since it has less behind the scene magic than Vue.js or Angular. Although I like certain aspects of Vue.js which I think React could learn from.

<comment><USER28> I'm not sure I understand rejecting a library because it allows two-way binding. If two-way binding doesn't work for some control, nothing is stopping you from falling back to one-way binding.

<comment><USER29> There's something to be said about staying as close to the "intended" way of doing things as possible with libraries.

Yeah, you might be able to stick with one way binding, but anything that interacts with vue will most likely expect 2 way binding, as well as most learning resources. Updates and improvements will be made with 2 way binding in mind, and you won't have nearly as many "coded with vue in mind" tools or libraries to use.

It's possible, and it might actually work out just fine. But in my experience going "against the grain" with libraries only leads to pain.

<comment><USER3> I really haven't found this to be the case.

One-way data binding is the default for just about everything in Vue; the only exception is v-model which is generally used only for form fields or similar elements where two-way binding makes sense -- two-way binding is definitely not pervasive throughout the framework as in Angular.

Apps of any complexity tend to use vuex (which is a sort-of-flux-like data store) for state management.

<comment><USER29> Well then it seems I'm horribly wrong here! I haven't really used Vue (only angular) and I made a bad assumption, but my point still stands in a more general form.

<comment><USER3> Oh, I totally agree with you -- I'm an Angular refugee myself. I'm genuinely surprised by how many people in this discussion seem to have such wildly incorrect impressions of what Vue is like.

</comment></comment></comment></comment></comment></comment><comment><USER30> This guy really ought to read [Practical Typography]([http://practicaltypography.com/](http://practicaltypography.com/)).

<comment><USER31> Why is this site's content off-center...? 1920x1080 desktop on Chrome. Is that slightly ironic?

</comment></comment><comment><USER32> Almost all of his arguments are also true for Ember.js, with the notable exception of compatibility with "web components" (but there's Glimmer for that).

</comment><comment><USER33> JSX being transformed into JS allows you to test your logic (minus brower/acceptance testing) in node, even if you load css and do weird stuff with webpack. I am not looking at anything else until that is true for <put your backbone/angular evolution here>.

<comment><USER34> Take a look at this example of relatively complicated component-tests w/ markojs. It is an example of testing a transcluded component's variation (arguably very valuable and complicated to test) and all the code, setup, tests, etc. are very straightforward to understand.

[https://github.com/marko- js/marko/blob/master/test/autotests...](https://github.com/marko- js/marko/blob/master/test/autotests/components-browser/transclusion-body-slot- tag/test.js)

</comment></comment><comment><USER35> This site doesn't render properly for me on latest Chrome (dev) on Linux.

[http://imgur.com/a/umXXB](http://imgur.com/a/umXXB)

<comment><AUTHOR> Okay, I think I fixed that.

<comment><USER35> Looks good now, thanks!

[http://imgur.com/a/mbLoI](http://imgur.com/a/mbLoI)

</comment></comment></comment><comment><USER36> The two tabs on your website overlap on my 15" screen. I think you might need to do .left { left: 100px } instead of .left { right: 740px }

<comment><AUTHOR> Fixed that with right: 55%, thanks.

</comment></comment><comment><USER37> Using vue without webpack or any build process becomes a maintenance issue when you got dozens of x-template in a single html file.

<comment><AUTHOR> I thought it was implied that using Webpack eliminates the need for said inline templates. Should have made it clearer.

</comment></comment><comment><USER38> I've used Vue.js in projects for the better part of a year now and have enjoyed it, for the most part. It's easier to grasp, is very usable right out of the box without any build tools, and the documentation is solid. I've mostly used vanilla Vue without Vuex or other dedicated state management (so I can't speak well to how that would improve the experience), but my gripes with it so far have mostly been:

\- Less explicit behavior leads to more magic. There are few if any 'gotchas' with the React component lifecycle. If state changes in the component or in its ancestry, React will re-render unless you explicitly tell it not to, every time. There's a performance trade-off to this, but for most applications it's not a problem, and you can handle it explicitly. By contrast, Vue decides when to update components, and its algorithm works perfectly 95% of the time. The other 5% of the time I find myself writing workarounds with watchers, and it's a frustrating experience. Additionally, while Vue 2 got rid of many magic variables, there are still a few that can lead to confusing behavior. For example, the magic variable '$event' for emitted event data is needed only when the event handler uses other variables too - otherwise it's included for you automatically. It's convenient, sure, but I've seen more than a few developers get tripped up by the ergonomics of Vue's magic. There are also a number of gotchas around handling reactivity in arrays.

\- Size of community. While the community is certainly existent and growing, you're still far more likely to find what you're looking for in the React community. Additionally, much of what exists for Vue is written for the Chinese community, which sometimes means less-than-ideal English documentation. This should change over time but it's something to consider in the present.

\- _Everything_ in Vue is reactive, which has added some real performance overhead for us in some pathological cases.

\- This is purely personal preference, but I've never been quite sold on extensions to HTML for templating. It might be a bias from working with React but I prefer HTML-in-JS to JS-in-HTML.

As for the points the article brought up: \- Explicitly bound methods: Sure, but this isn't a React thing, that's how ES6 classes work. If the extra line or two per method is that troubling React.createClass() inserts all that magical binding for you. \- State management: I don't really find setState all that difficult to use. By contrast, Vue requires that all class properties for the component be setup initially. If you decide to add one later, Vue will simply ignore it unless you use Vue.$set() to register the property as a reactive one. \- Mixins: This is certainly a controversial topic, but I tend to agree with the React team, at least when it comes to larger codebases: [https://facebook.github.io/react/blog/2016/07/13/mixins- cons...](https://facebook.github.io/react/blog/2016/07/13/mixins-considered- harmful.html) . Mixin-like functionality is possible with either library, regardless. \- Templating: I don't find the overhead of either JSX or Vue templates to be problematic after spending a day or two with either. My experience has been that developers with a background in Angular gravitate towards Vue templates as they have a similar DSL. The biggest differences to me seem to be that Vue templates are slightly easier to read while React templates offer the full flexibility of JS.

Don't let any of this detract you from Vue - I've enjoyed using it and would recommend giving it a shot. Despite the caveats I've encountered with it there's certainly good reason for its recent popularity!

</comment><comment><USER39> "if the main application code is under 1000 lines, keep it in a single file"

NOPE. I like .vue because you can easily avoid large files.

</comment><comment><AUTHOR> Alright guys, updated stylesheet and color scheme due to popular demand :)

</comment><comment><USER40> taking frontend framework advice from a website that is arguably uglier and more poorly laid out than the bulk of geocities pages is a tough pill to swallow.

<comment><AUTHOR> Aside from the Jakob Nielsen-y vibe to the color scheme (intentional), it's not that much different than any other developer blog out there -- but if that's the angle you want to take to discredit what I am saying, fine.

<comment><USER41> > _if that 's the angle you want to take_

I don't think its some _" angle"_ out of left field. Its a valid point.

<comment><AUTHOR> Well, to be frank, I honestly don't know what to think. I've had people telling me it looks great, people telling me it looks awful -- it does look amazing to me: [http://imgur.com/a/yMTz8](http://imgur.com/a/yMTz8)

Having said that, I'll definitely work out a update that's readable to wider audience.

<comment><USER24> It's not that ugly. The layout is ok, the typography is fine. It's just that yellow color that's not the best. As far as the rest it's fine.

</comment></comment></comment></comment></comment><comment><USER42> web development is such a retarded mess

its really amazing how much effort is spent on building the same CRUD apps over and over again

<comment><USER43> Their constant jump from one framework to another is simply hilarious. PHP! Yuck; jQuery! Eww, Ruby on Rails! Yawza; Angular! Err, React! Nope; Vue. And all that (and much more), in, what, 10 years? Meanwhile, proper software development has had frameworks that last for decades.

<comment><USER44> Had a similar opinion until dusting off my browser for some front end work recently..

Browsers being roughly standards compliant, and those standards congealing is a relatively new thing (last 10 years), having this happens facillitates alot of browser-side dev (e.g. JS) which simply wasn't possible before, throw in the growth of mobile/tablet UI's, and server side javascript, and the shift from 'CGI extensions' into web-native applications where the browser is the GUI and the 'web server' is really the 'application server', and the appropriate paradigms to deal with this change rapidly.. the frameworks have changed because the underlying platform and its use is rapidly evolving.

I think if you look at GUI toolkits early on as the desktop evolved and you'll find a similarly chaotic and changing picture (e.g. Cocoa is not MacOS v1; WinNT is not Windows 1.0, and neither are dosshell, etc)

<comment><USER43> Uhm, huh? The DOM model has not really changed at all. All those framework just purport to make some improvements on how nodes are configured and accessed.

On the other hand, you are very much wrong on the technologies you mention. Cocoa was developed in Next, and a huge amount has remained as was at the time of creation. NT is a kernel, not API. Assuming you mean Win32, which debuted with Windows NT 3.1, it was very compatible in concepts and source with the Windows API (retrofitted as "Win16").</comment></comment></comment></comment>


Build what you want. Create from the heart. - <AUTHOR> http://zackshapiro.com/post/34500875306/build-what-you-want-create-from-the-heart

<comment><USER2> I understand that this type of post is useful to many people, especially younger folks looking for career direction. I'm turning 43 this week and I've been down that road many times, so this post doesn't mean much to me.

This is not a complaint about the post, but about Hacker News. If Hacker News had subsections like Reddit does, this post would belong under inspiration/self-help. I would unsubscribe from that section and I wouldn't see it. As things stand, these posts take up too many slots on the one and only, one-size-fits-all front page of a site called Hacker News.

I find it a bit ironic that Hacker News is so unhackable / uncustomizable.

<comment><USER3> This is the prime pain point for me with Hacker News.

I'm not turning 43 this week, but I am exhausted to death of the inability to filter out categories/sub-cultures of content like this.

<comment><USER4> Agreed. I think the community could grow if this functionality was done properly. I believe the care exists and good moderators would be found / come into being.

</comment></comment></comment><comment><USER5> "The first time I held a build of Beeline RTD in my hand, after getting it from my developers, I literally jumped up and down at the though that this app had come out of my head and I could now put it in my pocket and use it whenever I wanted."

I find it contradictory that you use "my developers" and "out of my head" in the same sentence.

</comment><comment><USER6> When I bring this idea up with the most successful business people I know, they say that making a successful business is what they want. Truly, they'll have no trouble pivoting with that opinion, since what they want is to make a winning company, not any particular company.

</comment><comment><USER7> Great post! I build things often to fulfill the needs and wants that I have, and in doing so I learn, grown and happen across ideas I wouldn't have had without building something in the first place.

<comment><AUTHOR> Thanks for reading, Josh!

</comment></comment><comment><USER8> "Scratch your own itch".

<comment><AUTHOR> Exactly

</comment></comment><comment><USER9> "I'd be humbled if you followed me on Twitter."

Insta-followed. Can we please make THIS be the typical tagline at the end of every article instead of the aggressive "you should follow me"?

</comment><comment><USER10> It's a good goal if you can support yourself while you do it. Otherwise, it remains but a dream.

<comment><USER11> You can still do the things you love part-time and support yourself with a job/contract work etc.

That's what I'm doing with Summon the Warrior: <http://summonthewarrior.com>

My interest is in hypnosis and self-improvement, and I want to use my imagination, so I carve out the time to do these things. My goal is to be able to walk away from contracting altogether and just work on hypnosis et al.

Just be prepared for possible economic hardships and be willing to sacrifice your free time to make your dream happen.

</comment></comment><comment><USER12> I need more problems in my life</comment>


Valve Now Accepting Applications for Steam for Linux Limited Beta - <AUTHOR> http://www.maximumpc.com/article/news/valve_now_accepting_applications_steam_linux_limited_beta

<comment><USER2> Looks like Valve is beginning to abandon Windows...</comment>