German chancellor's drone "attack" shows the threat of weaponized UAVs - <AUTHOR> http://arstechnica.com/information-technology/2013/09/german-chancellors-drone-attack-shows-the-threat-of-weaponized-uavs/

<comment> philipp-de This was staged by the german pirate party. They wanted to "take pictures" / draw attention to the surveillance issue.

The incident wasn't discussed in terms of being a threat in german media. Merkel was photographed smiling as the drone crashed down in front of her.

See also: [http://www.spiegel.de/international/germany/merkel- campaign-...](http://www.spiegel.de/international/germany/merkel-campaign- event-visited-by-mini-drone-a-922495.html)

<comment><USER2> They would have been more effective if they had 50-100 individually-controlled quadcopters, and had them hover near specific individuals, looking at facial expressions, phone screens, gestures, etc. Crashing the drone at the guy's feet makes them seem harmless, or even hapless.

</comment></comment><comment><USER3> > The drone was harmless, aside from potential political collateral damage to > Merkel's Christian Democratic Party, and the pilot of the drone was released > after being briefly held by police.

Can you imagine where this guy would be right now if he had attempted this near President Obama?

<comment><USER4> Gitmo. But Europeans are generally a bit more reluctant to freak on non- existing threats than US (not impossible though).

And you just don't have grounds on which to accuse him - flying drones is legal, he didn't endanger anyone and it was a prank.

</comment></comment><comment><USER5> Drones are sensational but a deer rifle with a scope is going to be a much bigger threat for a long time to come. RC planes were available in '63 but I doubt Lee Harvey Oswald considered one of those.

You can stop "drones" like these with a simple net if they really become a problem.

<comment><USER6> You're thinking short term. DARPA was already testing drones that can see who you are from 1.8 KM above.

<comment><USER7> See [http://www.popsci.com/technology/article/2013-01/darpa- can-s...](http://www.popsci.com/technology/article/2013-01/darpa-can-see- you-17500-feet-air). 17500 feet is about 5km, but the video does not indicate that this can see "who you are", although it is close enough for tracking persons.

I wonder why they released that video, though. Do they need more funding? Is it semi-faked to scare off would-be villains? Are the real things way better, and is this a diversion?

</comment></comment></comment><comment><USER8> lol @ the countermeasures being high tech lasers.

Spray them with water or vegetable oil. Water is easiest - just use a high pressure hose to knock them out of the sky / potentially break flight-critical components. Oil requires some special equipment but would presumably ruin the propellers/rotors.

<comment><USER9> The threat is not in a single one of them, the threat is in drone swarms. We (as in: the general public, I'm quite sure secluded labs have working prototypes) don't have the technical details figured out, but in 5 years, it will be possible for a swarm of 100's of these things to appear out of nowhere (from backpacks, rooftops, garbage cans, sewer drains) and, blitzkrieg style, overwhelm even largish targets within minutes. It will take very sophisticated counter measure technology to correctly identify, isolate and attack a sufficiently large part of such a swarm; technology that will not be available at the time motivated amateurs will be able to deploy such weapons.

These are interesting times to live in, indeed.

<comment><USER10> > It will take very sophisticated counter measure technology to correctly > identify, isolate and attack a sufficiently large part of such a swarm

Or, you know... nets.

</comment></comment></comment><comment><USER11> It is really depressing that we live in a society where our first instinct is to think "what would happen if someone strapped a bomb to that".

In contrast, in Germany this wass a prank, and only about surveillance. And the police let the guy go after a short interrogation.

</comment><comment><USER12> The blog Marginal Revolution considered the question a few months ago: "What is the political equilibrium when insect-sized drone assassins are available?"

[http://marginalrevolution.com/marginalrevolution/2013/06/wha...](http://marginalrevolution.com/marginalrevolution/2013/06/what- is-the-political-equilibrium-when-insect-sized-drone-assassins-are- available.html)

Adapting my comment from there:

One possibility is that in the future, high-status (and thus also high-office) can only be safely held by pseudonymous cryptographic identities that can't be linked to soft, locatable, assassination-prone meatspace bodies.

Note that this also makes it possible for a high-status identity/officeholder to be a branded collective (or AI) that continues beyond the death of any its members.

So, potential news from that future:

 _The Supreme Court, on a 5-4 ruling authored by Chief Justice @CyberJeffersonian_7, rejected the suspiciously-late election returns from Puerto Marte, throwing the 2096 election to Senator @Verax1983 over Governor @Locke2001, in the closest Electoral College contest since Bush-Gore in 2000.

From his/her undisclosed location, President-Elect @Verax1983 praised the ruling and again denied allegations that he/she has been a software-only entity for the last 17 years._

I, for one, welcome our new pseudonymous overlords.

<comment><USER13> I see some Enders Game references in there.

You may very well be right about your future vision, I'd love to be a fly on a wall somewhere in 2100.

<comment><USER14> You might be able to do that, If Brain-Machine interfaces become advanced enough.

</comment></comment></comment><comment><USER15> This sort of thing could be done almost as easily without the drone. For example, the 1991 Mortar attack on the British Prime Minister:

[http://en.wikipedia.org/wiki/Downing_Street_mortar_attack](http://en.wikipedia.org/wiki/Downing_Street_mortar_attack)

It's worth noting that his response was "democracies cannot be intimidated by terrorism". Our current politicians are more craven.

</comment><comment><USER16> If Battlefield 3 has taught me anything, someone is going to strap a brick of C4 to one soon enough.

<comment><USER2> I know quadcopters are very sensitive to weight, and a 10oz (285g) quadcopter could probably not carry more than a 1oz (28g) payload. How destructive is 1oz (28g) of C4?

I want to see the destructive potential of a quantity of C4 graphed against its weight.

<comment><USER17> Kinetic energy might be enough to do some serious harm. Or imagine putting a knife in front and via!

But they'll probably buy larger drones, take out some parts /weight and replace it with c4.

<comment><USER2> I'd never thought of stabbing someone with a drone. How much pressure does it take to puncture the average human's skin? How fast can a quadcopter fly? How much does a steak knife weigh? We can build the future weapons of war...

<comment><USER4> Less than you think unless you hit a rib or bone. But if you are really nasty just put pressure operated container that fires a poison into the body [http://en.wikipedia.org/wiki/Bulgarian_umbrella](http://en.wikipedia.org/wiki/Bulgarian_umbrella) style. Depending on the payload they won't save him even if he is in ER the moment he gets shot.

</comment></comment></comment></comment></comment><comment><USER18> There was a similar politically-motivated drone "attack" against Gary Kasparov 5 years ago: [https://www.youtube.com/watch?v=vbnySBqioB0](https://www.youtube.com/watch?v=vbnySBqioB0)

</comment><comment><USER19> Oh great, a lot of fear-mongering about to happen.

We honestly can't defend against all of these things--might as well simply try to structure society to be resilient in the face of inevitable attacks, and try not to make such things desirable to anybody even remotely sane.

<comment><USER20> The obvious solution of course is to move all the people (except select few) underground for their own safety.

<comment><USER13> I'm going to be in any one of the following businesses:

\- light guides

\- vitamin D pills

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


Ask HN: What taxes you should pay for app stores income? - <AUTHOR> We are 3 friends that develop music apps for the app store and play store. We recently created a multimember LLC in the US but we are not residents there. Does anyone know about the taxes we should pay in the US? I read something about income tax but I don't think we have "effectively connected income", we do not have any infrastructure in the US besides the LLC (no office, no employees, no servers)<p>Any info on the subject will be welcome :D <comment><USER2> Disclaimer, I'm not an accountant but I can act like I know something about accounting :)

You have a multi-member LLC. Any money received as revenue, and any money spent as an expenditure, must/should be reported on the LLC's taxes. Some LLCs pay taxes as if it was an individual human, but since there three of you, I believe the LLC entity would be taxed first.

If you are receiving an income (w2 or 1099) from the LLC, then I believe you must pay taxes on that too, either in the USA or in your home country or possibly both if you are really unlucky.

If you aren't receiving an income from the LLC, then you personally are fine. You presumably would only be taxed if you sold your shares in the LLC to someone else.

Also, I think you might have to collect sales tax in some jurisdictions. It's pretty complicated, but the statistics show that you don'r get audited unless you are making over maybe 100k, or commit some seriously obvious fault like claiming 1 million USD in expenditures on food every year :)

<comment><AUTHOR> I think the LLC is not taxed, but we as owners /shareholders do.

[https://www.nolo.com/legal-encyclopedia/how-llcs-are- taxed-2...](https://www.nolo.com/legal-encyclopedia/how-llcs-are- taxed-29675.html)

My question was if I should pay income tax. Foreign people should pay this tax if the income "effectively connected" to the US. I wondered if selling apps in the apple app store constitute "effectively connected income"

<comment><USER2> Hmmm ok, so then based on that article and your opinion of the situation, it's debatable if you owe personal income tax on your share of the yearly income, which let's say is 33%. Is there a way to make sure you are only paying taxes on the yearly profit and not revenue? 100k in revenue is nothing if the business had 100k in expenses that year.

What state is the LLC registered in? That will affect if you owe state taxes too, even if you live abroad.

I'm sure if the income was large enough, the IRS would send you an audit saying you owe xyz +5% late penalty.

If it's small and you have no physical address here and the income is entirely online, then perhaps you owe 0% tax. Confusing to me, really, as I've only ever worked W2, 1099, and cap gains for income

</comment></comment></comment><comment><USER3> The Apple App Store will collect sales tax on your behalf, I believe. Not sure about the Play store. Income taxes are almost certainly an issue. I'd suggest finding a few tax accountants and asking for free 20-min consultations to a) quickly assess whether you're likely to owe income taxes at all; and b) decide which you'd like to work with.

</comment><comment><USER4> Does Apple not allow businesses from your country to sign up?

No one should create any sort of nexus with the US without understanding the implications.

You need to talk to an accountant who understands your country's tax law and US tax law. Usually that's like 2-3 people in the whole country.

<comment><AUTHOR> We are from Argentina, the constant fluctuation of the country economical stability makes it really difficult to establish the business here. They force you to charge in local money and you can really loose a lot of money since the peso is currently sinking.

<comment><USER2> My gut instinct here is to say you owe 0% taxes. If you don't have an SS number or a TIN (taxpayer identification number), there's no way for you to even file taxes.

If your share of profit is less than $10,600 USD, then you owe 0% taxes anyway because of the standard deduction.

Good luck in Argentina my friend! It is really so sad that the peso is being pressured like this.

<comment><AUTHOR> Yes, Argentina is in a really awful spot since we owe a lot of money to everyone and the economy is in resession. It is really sad to see happen again and again. I didn't know about the standard deduction, I'll look into it. Thanks

<comment><USER2> It's my pleasure to help, friend! The world financial authorities have been very unfair to Argentina, I think, regardless of the debt situation.

Yes, definitely check out the standard deduction. In your case it will probably save you a lot of money. Here's how a typical US tax return looks:

W2 worker non married:

~15% tax rate federal (first 10k is tax free)

~6% tax rate state (some states do not tax)

~7.5% payroll tax (15% if you are a 1099 contractor, not w2)

So you can see that it's typical to pay less than 30%. Even if you make $110,000 per year, your rate will be about 30%. Only if you are an athlete or insanely senior programmer will you pay 40-50%.

But, since you do not physically live here or work here (like for example a bartender), I think you will be ok.</comment></comment></comment></comment></comment>


Why We Love 1Password Memberships - <AUTHOR> https://blog.agilebits.com/2017/07/13/why-we-love-1password-memberships/ <comment><AUTHOR> This is interesting because there's been some controversy with 1Password pushing people to use subscribe to use a cloud membership as opposed to a single purchase for a version using standalone vaults.

They had 5 of their employees post super positive responses in the comments about how awesome Agilebits is and how at first they didn't think it was a good idea, but then they realized how great it is. I haven't seen this technique used before.

It's also interesting that they are trying to use an appeal to emotion to respond to people who explained that they only want local for security reasons(Pathos vs Logos):

"I remember fielding a request once from a woman who was asking for our help. She was distraught. Her husband had passed away suddenly. He handled their finances and important paperwork... It was one of the saddest moments for me having to tell her that without the master password, the data simply could not be recovered."

</comment><comment><USER2> I run 1Password (the nonsubscription version) and LastPass side by side. LastPass is the company's stuff and 1Password is my personal stuff.

Remotely stored data makes me nervous. No one is infallible so sooner or later massive collections of extremely valuable data will fall prey to the relentless efforts of . . . those people. LastPass will fail us. They are nice, they are smart. But they are not omniscient and infallible.

Now Agilebits have placed themselves in the same boat. They are nice. They are smart. But they are now just a "me too" player in this game.

And once you are a "me too" player, pricing becomes a factor. Agilebits will face pricing pressure.

Once you are a "me too" player, marketing becomes a factor. LastPass was swallowed up in an M & A deal. Agilebits is independent. I submit that Agilebits is at a "capital availability" disadvantage, barring bonehead executive decisions at LastPass and its parent.</comment>


Show HN: Ballpoint SVG editor - <AUTHOR> https://ballpoint.io/files/examples/google <comment><USER2> This is really impressive! I mostly use Inkscape normally, but it feels dated and painful in all sorts of ways, and a capable web alternative is a great thing.

Personally, the most obvious limitation I can see here is font choices. Is there a way I can use custom fonts? Really just being able to pick from google fonts would be amazing.</comment>


History of Spring Framework and Spring Boot - <AUTHOR> https://www.quickprogrammingtips.com/spring-boot/history-of-spring-framework-and-spring-boot.html <comment><USER2> Spring as a framework has come a long way since the year 2006 when it required multiple XML files for configuration to the now Spring Boot which requires virtually zero configuration. Now it is easier to develop MVP web app using Spring Boot than Rails. With the framework such as Angular 2, people withe server side programming experience are finding it easier to develop client side app with much ease. I have found Angular 2 and Spring Boot a great combination for client server app development.

<comment><USER3> > Now it is easier to develop MVP web app using Spring Boot than Rails.

BWAHAHAHAHAHA! Good one.

Seriously, though, I'm really, really glad to see this come up this morning.

I've done a lot of .NET lately, but Rails has been my main tool for 10 years. However, because it's (apparently) a strange, new, unproven-and-potentially- exceedingly-insecure framework, and because I'm the ONLY PERSON in a company of SIXTY THOUSAND employees who could possibly write a program with it, I've been forced to stop using it. I took FOUR MONTHS of arguing about it with the powers-that-be to conclude that I should use Java instead. I have 3 web applications to write, right now, with some flavor of Java EE.

For a couple of weeks, I've been trying to bootstrap an environment to read an existing database I had already created with Rails, and filled with production data. I thought it would have been straightforward. I'm trying to use current versions:

* Netbeans 8.2 * Java 1.8 * Gradle 4.6 * SpringMVC 5.0.4 * Hibernate 5.2.15

I can't find a single, working example that demonstrates this stack. Not a single one, on the entirety of the internet! Every example I can find switches out some part of that stack, and makes the flow different. Netbeans and Eclipse do things differently, and both have about 3 different ways to generate a Java web application.

Then there's the whole Maven thing. I guess most of the world hasn't really switched to Gradle, despite their site's glowing description of the advantages?

And what is "Spring Framework?" There's really several different pieces of that puzzle, and that's fine, but, at the end of the day, show me the code, AND TELL ME WHERE TO PUT IT IN THE FILE STRUCTURE TO MAKE IT WORK.

Most of the examples I can find about how to write a Java web application never even get to the point of pulling data from a database, and so finding an example that uses either Hibernate OR JPA is almost non-existent. This just makes me shake my head.

My current direction, which I was all set to get serious with today, was to use Groovy on Grails, under IntelliJ IDEA. After a couple of weeks of experimentation, it's the only stack I've been able to bootstrap, and actually get a listing of objects from the database. I feel it probably takes too many liberties to simplify the workflow, and will quickly lead to a bottleneck I don't know how to get out of, but, dammit, it's the only thing I can find some reasonable examples for.

(But even IDEA wants to generate a stack based on the non-current Spring 4.3.14, and Hibernate 5.1.5. Spring 5 is released. Why doesn't IDEA "support" it yet? What little examples I can find show that a lot of things are changing from Spring 4 to 5.)

Through this learning process, I've realized just how much tribal knowledge I've absorbed about Rails. I "grew up" with Rails. I was playing with it in the 0.x days, got serious with it in the early 2.x era, and have stayed with it ever since. I understood that learning how to use another web stack would be a challenge. While the actual language is hardly a concern to me, I had no idea that the chaos of choices and versions would complicate the process of just trying to get started. At the very least, when you say "Rails X.0", you've described all the major pieces of the stack, and the IDE is immaterial. That is simply not the case in the Java world.

So I've said all of this to set the context in order to ask you this: What is the "right" framework stack to use to create a Java web application TODAY? And by "right," I mean "most popular," in order to make finding answers as easy as possible. For the sake of argument, the 3 apps I need to write are essentially simple CRUD applications, so there are no esoteric requirements to consider. What's the most straightforward and maintainable approach, and where's the definitive documentation on how to configure it? I'm ready to go all-in on SOMETHING, but I'm overwhelmed with choices and a lack of examples.

<comment><USER4> Just mentioning your IDE as an essential part of the "stack" shows how little core understanding you have. You should read up on the documentation of the basics of java, gradle and spring first. Not sure maybe rails developers expect everything to be spoon fed to them in pieces of 5 minute screencasts or something?

<comment><USER3> > shows how little core understanding you have

Really? You dismiss my clearly-not-ignorant comments by belittling me? OK. I should have known.

Part of the frustration here is this: given a clean sheet of paper, and a desire to write a Java-based web application, where do I start? What files do I download? I don't know! How do I start developing with Spring? The site says "add this line to your build file." WTF does that even mean, to a Java noob? What's the file I'm supposed to be putting that configuration into? Unless you have a file structure bootstrapped, and know that they're talking about pom.xml, in the case of Maven, or build.gradle, in the case of Gradle, it doesn't mean anything!

How did I figure that out? By using an IDE and generating example file structures for a "web application" based on those 2 options in the stack. So getting started with Spring requires an existing bootstrapped structure that I STILL don't know how to generate by hand. (Feel free to enlighten me. How do YOU start a new Spring project?) Hence, my frustration with the various IDE's, and their multiple ways of generating what should be a pretty standard stack of files to get started.

As I tried to indicate, I "get it" that I have a lot of this stuff internalized with respect to Rails, and that's what I'm trying to get across. I don't think that the Spring folks understand what they need to do to "onboard" someone to their system. At least Grails seems to do a better job with this.

<comment><USER5> You might not like it, but I think that you need to start from scratch. Learn Java language, learn how javac compiler could be called, compile simple application from console. Then learn about Maven or Gradle, how to use them to build things. Then learn a bit about IDE. I suggest Idea, but Eclipse or NetBeans should work fine. Learn about Java Servlets, it's the underlying library for almost every Java web application. Deploy simple servlet to tomcat, learn how to handle GET/POST requests. Learn about JDBC, combine servlets and JDBC. Actually here you can stop and write production code for some simple REST service, for example. Only after you have some understanding about every underlying part, you should start with Spring framework, JPA, etc. And still it'll take a lot of time to learn those things.

I'd suggest not to search for various "stacks". They might be written poorly and incomplete. Learn each part and learn how to combine them.

I guess Rails is a complete solution, with Java there are many libraries which you should choose and glue together. Every non-trivial application probably will use somewhat unique combination of libraries.

</comment></comment></comment></comment></comment><comment><USER6> The price one pays for the flexibility Spring offers is in terms of performance. Spring uses a lot of reflection. It makes it very slow. The startup time of Spring applications tends to be around 20-30 secs. If you add Hibernate to the mix the situation becomes even worse.

Yes, Spring offers a lot of flexibility in terms of IoC and testability. I generally avoid Spring for B2C apps. (For B2C apps, I tend to favor Jersey + MyBatis) But for B2B apps and in-house enterprise apps, Spring is a very good candidate.

<comment><USER7> > _Spring uses a lot of reflection. It makes it very slow. The startup time of > Spring applications tends to be around 20-30 secs. If you add Hibernate to > the mix the situation becomes even worse._

The load time of Spring apps is dominated by the number of classes loaded from disk, which is a function of the libraries pulled in. This is because the JVM loads classes out of JARs more or less linearly.

Think about it for a second: which is faster, in-memory operations (reflection) or I/O (loading classes from disk)?

Dave Syer has done more actual empirical investigation[0] of Spring's launchtime behaviour than anyone. If you can produce better evidence of _actual_ behaviour, I'll be very surprised.

[0] [https://github.com/dsyer/spring-boot-startup- bench](https://github.com/dsyer/spring-boot-startup-bench)

Disclosure: I work for Pivotal, we sponsor Spring development. I do not work on Spring.

</comment></comment><comment><USER8> When I was doing Java development full time, it felt, like at the time, Spring Boot was a direct response to Dropwizard, which I was using everywhere I could. In either case I am almost certain Dropwizard's rise in popularity placed a fire underneath Spring and eventually Spring Boot caught up and the ecosystem as a whole was better off, IMO.

<comment><USER9> FWIW, the SPR-9888 JIRA issue [1], which prompted the creation of Spring Boot and is quoted in the article, actually names Dropwizard as an inspiration.

The article quotes:

 _" I think that Spring's web application architecture can be significantly simplified if it were to provided tools and a reference architecture that leveraged the Spring component and configuration model from top to bottom. Embedding and unifying the configuration of those common web container services within a Spring Container bootstrapped from a simple main() method."_

The very next lines are:

 _" Though there are many frameworks and platforms today that no longer require a container I think inspiration can be drawn most from DropWizard ([http://dropwizard.codahale.com/](http://dropwizard.codahale.com/)).

Another project I've seen inspired by DropWizard but leveraging Spring is HalfPipe ([https://github.com/32degrees/halfpipe](https://github.com/32degrees/halfpipe)). Though I don't think HalfPipe goes far enough. I think to truly provide simplification the entire architecture, wherever reasonable, must be embedded within the Spring container rather than without. Though it does have several other interesting ideas."_

[1] [https://jira.spring.io/browse/SPR-9888](https://jira.spring.io/browse/SPR-9888)

<comment><USER8> I know my comment here isn't adding much -- but that is awesome.

</comment></comment></comment><comment><USER10> Spring is a very powerful but complex framework. It's very easy to get started (Spring Boot). I especially love JPA as I just need the persistence to be getting done. The architecture is clean and standardized.

However, you have to be prepared for a serious learning curve when needing customizing (e.g. attribute based authorization with Spring Security and AOP). It's a jump in the cold water after the pain- and effortless start using Spring Boot.

I haven't mastered Spring yet (in depth understanding of DI, AOP and the configuration), but I feel that when mastered, Spring is the ultimate framework to build concise and clean applications.

<comment><USER11> > However, you have to be prepared for a serious learning curve when needing > customizing

Can be said about everything in this world, right?

<comment><USER12> Yes and no -- I often found the difference between a well architected and modularized (when possible) system and one that isn't is that the learning curve is more linear.

Frameworks that are large often have lots to learn in them, necessarily, but _how_ that learning has to be done can differ. Good frameworks will be simple enough that you can almost ignore the ocean of complexity until you need to dive in, and when you dive in all of the pieces that you now must need to learn and know are almost obviously necessary.

For example, compare/contrast a system like express (nodejs) with a system spring in java. The func(req, res, next) paradigm gets you VERY far, but doesn't expose you to too much before you need to. Implementing middleware is much more delightful in nodejs (and other frameworks that adopted the func(req, resp, next) abstraction) than it is in Sprint.

<comment><USER13> Implementing simple middleware in Spring (boot) is pretty much the same. One class with one method that has access to req, res and the next filter. The @Component annotation is all it takes to enable the filter in your web stack.

      @Component
      public class MyMiddleware extends OncePerRequestFilter {

          @Override
          protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
              // your code
              filterChain.doFilter(request, response);
          }

      }

<comment><USER12> I think this is a good example of the difference in complexity grades of both langauges/frameworks. That spring boot example is indeed pretty simple (for java), but to understand it, here's what I'm pretty sure has to happen:

1\. Set up your spring boot project properly

2\. Set up all the XML that supports your beans properly

3\. Know how and when to use @Component

4\. Know that OncePerRequestFilter exists, and/or to extend it, which method to override

5\. Know to call filterChain properly

Most of these are trivial with some IDE support and maybe a templating school, and probably not even an issue after your second week with Spring boot (or spring in general), and it's an improvement over what life used to be like but compare this with the general jist of how to do it in JS:

1\. set up expressjs properly (usually a two-liner). It won't have things like @Cachable that spring boot provides to you out of the gate, but it generally has enough to get you up and serving requests.

2\. Know what req/res are (the fact that calling res.send(...) sends stuff and .ends as well is arguably nontrivial) and how to use next

3\. Know what a function is.

the code snippet I'm thinking of is:

        app.use(function(req, res, next) {
          // your code
          next();
        })

It is "pretty much" the same, but how much work it is really depends on who you ask -- you can get up to speed with a simply built expressjs app in tens of minutes (many express apps follow a very simple setup pattern), but I've never seen that happen in a spring boot app for an absolutely fresh developer, even worse if the codebase is transitioning from spring to spring boot or has some other hacks in it.

Spring Boot is marvelously simple one of it's best parts (it _almost_ makes me want to use Java for a greenfield project), but there's so much noise in that code -- it should just be a function -- IMO all started with the decision in 1.1 (??) to choose Runnable over lambdas. Most of the complexity I'm ribbing Java over is just due to _how you write the langage_ \-- java on it's simplest day just can't be as simple as some of the stuff that came after it, since they had the benefit of hindsight.

<comment><USER13> 1\. setting up a Spring Boot project is just File/New Project/Next/Next/Next, or download a starter project from [https://start.spring.io](https://start.spring.io)

2\. It's 2018, we don't use XML anymore, a Main class annotated with @SpringBootApplication is all the configuration you need (and autogenerated by step 1)

3\. All you need to know about @Component before you get started is if you annotate a class with it, it will get instantiated with all its dependencies and made available for use in the container

4./5\. Yes, to know about Filter, the filterChain and how to use it might take some minutes looking into the documentation or stack overflow, but that is what you are going to have to do anyway if you are going to use a framework.

I put knowing how to use @Component and figuring out what you need from the docs on the same level as knowing about the (req, res, next) pattern and knowing about async/callbacks/promises.

I agree that Java is verbose and has much ceremony but modern IDE's take away a lot of that pain. For my filter example the only things I typed are:

* the class name

* extends OPRF<tab>

* <alt><enter> <enter> to generate the 1 method to implement

* the `// your code` comment and filterChain.doFilter()

I'm not sure what you mean about choosing Runnable over lambdas. Runnable `is` a functional interface so anywhere you can use a Runnable, you can pass a lambda (or method reference)

</comment></comment></comment></comment></comment></comment><comment><USER14> Article is already a bit date because Spring 5 and Spring Boot 2 are both in GA now. A big new feature of Spring Boot is first-class support for Kotlin. Sprint Boot 2 + Kotlin is really a dream.

<comment><USER15> That's awesome! I experimented with server side kotlin some time ago and couldnt quite get things comfortably working (I had no previous JVM experience).

Do you know of any good intro materials?

</comment></comment><comment><USER16> Spring as a whole is pretty great, but due to its long history there's a lot of out of date information on the web out there, from the likes of mkyong and so on.

Not a problem with the framework per se, but it does add an extra layer of frustration when trying to search for an answer to your specific problem

<comment><USER17> Some stuff is out of date on best practices, but usually a lot is still supported, which is another reason Spring is popular, you can mostly follow the releases without much rework on code if at all.

</comment></comment><comment><USER18> Recently I wrote a service using embedded tomcat libraries. It contains few lines of code to boot up tomcat, add servlets, set some context parameters. There are no configuration files, no annotations or a readymade stack of libs that I must use. Now it works fine but no hope of going in production because it does not use the next generation state of the art Spring boot microservices framework as recommended by architecture group.

I guess point here is unless code is smothered with multiple layers of frameworks companies will not like it.

<comment><USER19> FWIW this is just the way life is in large companies: you have to trade-off individuality vs. company-wide productivity.

Granted, both extremes are bad, and finding a happy medium is hard.

 _Hopefully_ the architecture group's "recommended"/mandated stack also includes great out-of-the-box, company-wide tooling like metrics, error logging, etc., etc.

If their solution doesn't provide these perks, well, yes, that's not as useful.

<comment><USER18> > Hopefully the architecture group's "recommended"/mandated stack also > includes great out-of-the-box, company-wide tooling like metrics, error > logging, etc., etc.

Mostly they jump on hype train. Few months back it was netflix stack now it seems they are moving to something else. My main work is on a large(ish) application which is in production long before merger. So for now I am not forced on to jump on their architectural astronautery. I just play around with other technologies etc.

</comment></comment></comment><comment><USER20> I'm a big fan of SpringBoot and have been using it since the beta version. For enterprise environments that often involve things like security, ActiveDirectory/LDAP integrations, SSO tokens, SOAP/XML, OWASP filters, CSRF tokens, custom logging, audit trails, etc, SpringBoot provides good plugins.

But if I'm doing a new greenfield project, I would rather prefer serverless architectures with light weight libraries and no frameworks (and perhaps golang). Yes, the serverless still lacks proper tooling and has few gotchas like no resource/connection pooling, cold starts, etc.. but the pros far out- weigh the cons. I'm still highly productive with springboot, but I am willing to discard my favorite tool and as I clearly see serverless stack as the next evolutionary step for application development.

<comment><USER7> As it so happens, a lot of Spring team members are working on Project Riff, which is a FaaS system.

</comment></comment><comment><USER21> I see CDI as all the good experiences learned in Spring, rolled up and distilled. Spring was my first though, and it's extensibility had withstood the test of time.

<comment><USER22> Not sure if serious or trolling.

1\. CDI has no testing story, this is the biggest point, everything else pales to this. Arquilian is a joke compared to Spring TestContext Framework and strictly speaking not part of CDI.

2\. CDI is in general lacking what Spring calls "enterprise integration", convenience layers over a lot of the a bit annoying to use Java EE layers like JDBC.

3\. CDI is in general hampered by the Java EE / JCP release model. Spring can in general and does roll out new features quickly. For example we got new functionality into 5.0.4 within a few weeks without having to wait three years for a specification to be perfect and another three years for a supported application server to ship.

4\. CDI/Java EE has still no caching story, even in 2018.

5\. CDI has no MVC story.

<comment><USER23> 4\. JCache (jsr107) is really awful. I don't think you want one.

<comment><USER22> I was not particularly asking for JCache/JSR-107. Since you seem to have insight in this area would you mind sharing it? Is your beef with the API or the RI?

<comment><USER23> The API, though I am not a fan of the RI for one reason. It is the first JSR RI that I am aware of where the authors advice against using, it is unsupported, and intentionally low quality. All other RIs that I know of were production grade quality to ensure it met user's needs. This one was to pass a specification requirement.

\- The API violates many of Josh Bloch's guidances [1], including items in Effective Java.

\- Many of its features are incompatible with itself. For example, the AOP support cannot be used with loaders, writers, or listeners.

\- The AOP support does not support atomic memoization (dog piling [2]) and can crash if initializing the same cache concurrently.

\- The JavaDoc dictates implementation details that matched the lead's product, rather than being open ended to allow alternative algorithmic choices.

\- The JSR defines an configuration API that is not suitable for production use and promotes the silent usage of unbounded anonymous caches.

\- The interfaces do not attempt to feel natural alongside the Java's Collection Framework nor the direction that the language has been heading. It redefines terms, like "access", in an incompatible way.

\- Despite numerous delays in being accepted, the JSR was not modified to take advantage of significant changes in the language (java.time, lambdas, CompletableFuture, etc).

\- The TCK is not robust, does not check concurrency, and bugs in it languished.

\- Most importantly, writing code using JCache is not enjoyable and it is often not flexible enough to solve most needs.

There are likely many more, but that is a short list that comes to mind in a few minutes.

[1] [https://www.infoq.com/articles/API-Design-Joshua- Bloch](https://www.infoq.com/articles/API-Design-Joshua-Bloch)

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

<comment><USER22> Thank you for sharing.

<comment><USER23> I should have mentioned that the API flaws breaking with Bloch's advice can be really nasty. I bundled up a bunch of items under that, which might mundane if you don't know of them. Some of the wonderful design choices are,

\- Cache.iterator() may return a null entry, despite null key or value is disallowed. This occurs when the cursor points to an entry that no longer exists - hasNext() was true, but the entry disappeared due to removal/eviction/expiration. This is a performance optimization to avoid underlying I/O that leaks to users and violates their assumptions.

\- Cache.putAll(map) first invokes CacheWriter.writeAll(list<entry>) prior to storing them. The writer uses an in/out parameter so that if an exception is thrown, the user must remove the successfully written entries first. Then cache must store those successfully written entries before propagating the exception to the caller.

\- An amusing bug was that their custom future could not be consumed by multiple threads. It used notify(), not notifyAll(), so only one waiter would wake up. The concerning part was that this existed for a few years due to lack interest in releasing a new version.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I've been using Spring and now Spring Boot for years. I'll I say is thank God for Maven heh

</comment><comment><USER25> We used spring boot heavily at my last job. It was very fast to stand up services and it led us to move away from a massive monolithic weblogic stack.. changes were pushed out so much faster...

</comment><comment><USER26> Why do or don't people like IoC?

<comment><USER27> Personally, when I build something, I prefer to know exactly what will happen prior to compile/build, not hope some configuration will handle things.

I can deal with both, but just a preference.

In general, dynamic integrations like IoC, etc make things harder to troubleshoot/debug as well.

<comment><USER21> Exactly, right? That's what DI/IOC allows you to do. You can test a component where the variables always return simple deterministic results for one unit of code, or/[preferably] and you can also have a set of tests where you integrate all components.

<comment><USER26> I think he's talking about autowiring.

<comment><USER28> Exactly, and a lot of Spring discussions conflate the things and blurry the image a lot.

Inversion of Control is really good and there are no reasons not to use it. When you have something that can be done in multiple ways, make a small interface and several implementations for it.

The trick now is how to decide what to use. The simplest way is just to parse your configuration file or application flags/arguments in main and instantiate the concrete implementation of your classes there, then pass them down all the way until you need them. This is explicit, simple and clean.

Spring makes you (at least) do two things wrong:

1\. Configure the concrete implementations the wrong way. You don't want your users to decide which class implements a certain interface. You want them to decide something higher level, like for example "get crash data via e-mail" or "get crash data in logs". The rest is implementation details.

2\. Annotations for autowiring: my feeling is that those are just to go around Java verboseness. Instead of typing "VeryLongName veryLongName = new VeryLongName()", "@autowire" it easier to type. I have always seen it misused (used for stuff that is not Inverted/Configurable) and it makes code more magic. Even worse, you are back at having classes pick their dependencies, even if they are interface implementations. If your classes take their dependencies as constructor parameters, everything is much more explicit.

<comment><USER7> > _If your classes take their dependencies as constructor parameters, > everything is much more explicit._

This is the guidance that Spring team members give, to the point that Spring now defaults to injecting constructors without annotations.

I agree that field/setter autowiring is Satan's handicraft.

Not all of this is Spring's fault. Java has the JavaBeans standard, which created a universe in which setter injection is common. JPA, for example, _requires_ no-arg constructors. It makes me sad.</comment></comment></comment></comment></comment></comment>


I switched back to Firefox and had an epiphany - mkr-hn http://mkronline.com/2013/03/28/i-switched-back-to-firefox-and-had-an-epiphany/

<comment><AUTHOR> Soaked it all in until I saw that the read previous post link was titled "I don't get google+". Seems like someone just isn't a fan of Google anymore.

As for it being released when Blackberry was still king, I suppose technically that's true but...

[chrome] "The browser was first publicly released for Microsoft Windows (XP and later versions) on September 2, 2008 in 43 languages, officially a beta version.[18]"

[iPhone] "The two initial models, a 4 GB model priced at US$ 499 and a 8 GB model at US$ 599, went on sale in the United States on June 29, 2007, at 6:00 pm local time"

iPhone was released by that point, which although it may not have had market share, the technology existed. Comparing it to the blackberry is an obvious ploy to relate it to something known to be old and shabby, but honestly:

"The Firefox project went through many versions before version 1.0 was released on November 9, 2004."</comment>


Is success an accident or pursued? - <AUTHOR> http://sharecred.com/viewPost?id=20130718,1

<comment><USER2> False dichotomy.</comment>


Analyzing pitches to find what gets VCs interested in a meeting - <AUTHOR> https://www.feedback.vc/venture-capital-advice/this-is-what-gets-a-vc-interested-in-a-meeting <comment><USER2> I wouldn't trust these data, not because there is anything wrong with the analysis but because the inputs are inaccurate. What VCs say was the reason they were interested is not necessarily what made them interested. It may be what they tell themselves or tell you, but I think the decision criteria are rarely that objective or explicit. Decisions are made, then back justified with a plausible explanation.

<comment><USER3> 100% agreed. Most VC funds are necessarily good at very specific skill: convincing people who control lots of money that the VC is smarter and better than their competitors. The easiest way to sell that is to truly believe it, and then perform that belief convincingly. That's not something one switches on and off, so their answers here are likely to be skewed in the direction of things that make them look valuable.

Things like "team" and "gut check" are especially useful answers for that, because a) it lets VCs sound like intuitive geniuses who can't easily be replaced, and b) the I-know-it-when-I-see-it nature of those lets VCs smuggle in all sorts of irrational biases. As one well-known investor said, "There was a guy once who we funded who was terrible. I said: 'How could he be bad? He looks like Zuckerberg!'" Points for honesty, but you can bet that wasn't the official reason they invested.

<comment><USER4> In general I agree with you, but I would say that alot of VCs either

1) diversify their investments amongst many areas in tech (or maybe some non tech things, not stereotyping all VCS but for this example I'll say diversity of problems being solved using technology/software etc) and thus see commonalities of problems amongst teams in their experience despite whatever the specific niche industry is. I think it is pretty important to agree the cofounders are important. Specifically I've heard from CEOs of startups I use to work for they are really good at hunting out "weaknesses" in the bonds between cofounders.

Basically, they don't want a good idea to fall apart because two cofoudners fundamentally don't see eye to eye, which will make it hard for any decisions they make (whether good or bad) to come to fruition and indicates future struggles with the company, in addition to weak leadership/unified approach when hiring new people, who might be disoriented at understanding the direction the company is going in.

2) Focus on particular niches (a startup who focus specifically on funding AI startups, for example) often they will even fund competitors knowing that if one of them dies, they are almost gauranteed to reep benefits from the remaining on in the niche field. This also means they keep a close track on the variations between two or more companies approach in a specific industry and why one failed and the other didn't.

Someone from Marc Andreessen's team recently published a blog post going into great depth about 5 factors amongst ten or so AI teams that indicated their levels of success in the field, and most of the tilting factors are not what I would say is common knowledge amongst AI startups.

They may have their biases, but they also have unique experience in understanding or seeing repeated dynamics in what could make a relationship (between cofounders) fail (like seeing that one bad relationship where the couple can't see it but it is so obvious to you because youve either now been through it or seen it happen before, imagine this for VCs looking at cofounders over and over again for ten years...) and otherwise have lost lots of money over failed business ideas, so I would say they are incentivized to be as objective as possible with themselves, even if just selfishly for the benefit of their own bank account.

<comment><USER3> If your point is, "Some VCs can be good at their jobs," I definitely agree. My point is more that all VCs have a strong incentive to _appear_ to be good at their jobs, especially in ways that sound impressive and are hard to verify.

<comment><USER4> I think you could say that about anyone.

<comment><USER3> I really couldn't. E.g., I've hired a number of programmers who are terrible at self-promotion. And even many of the ones who are good at it talk about specific, verifiable, repeatable skills.

<comment><USER4> yeh I guess nerds are an exception to the rule, but honestly relative to all of the industries out there outside of engineering alot of business, marketing, etc etc is fluff. VCs are in business and finance.

At the end of the day, they have money. Assume they are selfish and want to not lose money, so they probably have some rationale on which they give out money in hopes for a return on investment. That being said, I've seen way too many tech bros with bad blockchain ideas get way too much money which usually goes straight to their heads before they lose it all, and I assume the V.C.s have a really good strike price and know exactly when to liquidate.

For others, it was my general understanding VCs lose money on most investments, hoping that a few end up going really big and canceling out the losses on the rest, but I don't really know anything about VC stuff. I'm not sadomasochistic enough to try to start a company, I just try to work on my skills and people are willing to pay me to invest in myself because I tend to discover interesting things while I tinker about and also keep things from failing often in a raging dumpster fire but I don't know if thats a good way to market my skills.

<comment><USER3> Nerds are not the only exception by far. Quite a lot of people making an honest living are reasonably honest. The people at my corner store are not going to BS me about what's in stock. The person cutting my hair has always been frank about what she's good at and what she's not. I've worked in a library, a restaurant, and a few factories; all were populated by people who were generally straightforward.

It's a relatively small percentage of jobs that require people to be good at manipulating the opinions of others. As you say, marketing is an exception to that, but their business is manipulation, so that's not surprising.

<comment><USER4> marketing, finance, ad tech. My point is most fields propogated by modern technology is propped up by VC and finance...

I have friends in healthcare as well, and I don't hear things are much better too, in regards to the business ethics of the healthcare system.

My overarching point is that anything that involves finance is likely to be corrupt, and VCs are just one segment of them, but there are a lot of more corrupt financial entities with way less transparency and as a result, way less criticism.

It's not really a fair comparison to match factory work, cutting hair, and being a cashier to being a hero of honesty in relation to finance related jobs. Take cashiers for example, their job is to accurately ring up listed prices decided by a much more complex decision making system, leaving very little decisions for them to mess up at that point, and anything they do unhonestly, is likely to be relatively black and white in comparison to the unethical lobbying behaviors multi billion dollar corporations that bankrupt farmers that farm the seeds they make to monopolize food markets, that the cashiers are ringing up.

Yes, VCs are able to lose alot of money and not really be accountable for it, but so are many other industries related to finance...

Not sure why you are so convinced VCs are the one evil entity in the thousands of permutations of finance, but if I had to call out evil entities in finance it would be the credit market, corrupt government, wallstreet investors, but atleast somewhere at some point VCs gave value to some entity you can track other than transiently through a stock from an algorithm to maximise their profits, but I get it, you hate VCs.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> I thought VCs were interested in companies with superstar teams with a killer idea, an established and lucrative monetization mechanism, an established defendable innovative product, in a global market with hockey stock growth and for some reason still willing to sign ridiculously unfavorable investment terms with no downside or risk for the VC at a very low price, but at a very high price to the next round of investors to drive up ponzi scheme valuations. Oh and a CEO/founder who at first they love but later can be shoved out by the board. Or have I been watching too much Silicon Valley?

<comment><USER6> > Or have I been watching too much Silicon Valley?

Too much, or not enough.

</comment></comment><comment><USER7> I would say that absolute best predictor of getting a meeting is strong introductions. I hate to say this, but you'll have an easier time with a strong network.

A trusted introduction can even overcome a bad deck in some cases. But there should be no reason to have a bad deck now-a-days as there is ample reference and knowledge share.

First-time founders: Please don't pay for access. Services like this, in my opinion, are dubious at best. Work on building a network, blogging, open source, meeting other founders, going to VC events, tapping your alumni network, etc.

<comment><USER8> Best advice is just to be born wealthy so you can use your parents "connections," and then go to a top-tier business school to make more "connections." The startup scene is so boring because there's no diversity of thought when everyone comes from the same basic background.

<comment><USER9> In tech, my experience is that founders with a business school background are a fairly small minority. The most common ways to bootstrap connections are getting into an accelerator or working at a VC-backed startup.

</comment></comment></comment><comment><USER10> I am not sure what value this post is besides a sales pitch for the poster. Don't mean to be overly critical, but really the number one factor is always customers. Do you have any? Also, How do you get more (cost of acquiring customers)? Market size? I suppose that's in the "underlying economics" section, but that's such a common question it should be addressed. VCs are looking for 100x return. Can you meet in person (or Zoom these days) and present yourself well? etc...

<comment><USER11> _Don 't mean to be overly critical, but really the number one factor is always customers. Do you have any?_

This is 100% true and 10,000% annoying. Effectively it blocks anyone who has an idea for an idea for a business that needs seed capital from competing unless they're already wealthy (directly or able to raise funds from within their own network of friends and family). 15 years ago seed capital was exactly that - money that was available to fund a startup based on little more than an idea and a persuasive team. It was _massively_ high risk but that was kind of the point. The taste for risk that VCs once had is gone. Today what people call seed rounds are really Series A. You need to have already done the high risk proof of concept work and actually have something on the market before VCs will take your call.

That's entirely up to VCs of course. If they want to do that they can. And no doubt they'll still make a lot of money. But society as a whole is faced with dull ideas thought up by middle class kids who want "innovative" ways to pay someone to do their chores because of it, and that pisses me off a lot.

End Rant.

<comment><USER3> I don't disagree, but 15 years ago it was much more expensive to do a startup. This was before AWS and Rails was just getting started, so just getting something up and visible was a major technological effort. Now I can spend a day writing some Terraform code and have an infinitely scalable, load-balanced cluster up and running. A day later and I can have a decent-looking basic CRUD app on the cluster.

Then I can spin a lot of the other work off to pay-as-you-go SaaS tools. Payments, sales support, CRM, support, marketing, analytics, feature flags, landing pages, A/B testing: all of these are things I don't have to build any more. And now thanks to the rise of things like Slack, Zoom, and Trello, remote and/or part-time work is much more tenable, meaning we don't need an office and full-time commitment to get going.

So yes, VCs are going to take minimum risk for maximum return. But they always have. What's different now is that you don't need to convince some rando that you need $250k in seed money just to find out if your idea might work. If it does, you'll at least be in a better negotiating position. And maybe you won't need to seek investment at all.

<comment><USER12> > This was before AWS and Rails was just getting started, so just getting > something up and visible was a major technological effort.

Before rails there was LAMP. That's what Facebook used. Java servlets existed as well. And rented clouds existed before AWS as well. Despite the hype for them on pages like this, neither AWS nor Rails were really big disrupting inventions. The market for both existed before them, and will exist after they've fallen out of favour.

Where innovation happened is in the scaling domain. Terraform, kubernetes, etc, as well as in the SaaS tools you mentioned. But most of those things aren't needed for earliest stage startups. You don't need to be super scalable from day one. You can just run everything from one very powerful box for a while.

Of course this all depends on what your application is. If your product is a cloud based tool to post process movies, it will be a different setting from a CRUD app to plan events.

<comment><USER3> In some sense, nothing has been really disruptive since the web browser. But that doesn't matter because what I'm talking about is reduced cost, reduced accidental complexity, reduced systemic latency.

Having lived through it, it's just loads easier to get something up and going these days. I ended up back in some Java code again recently, and servlets are a) a pain, and b) a general-purpose abstraction. They're adequate for a lot of things, but not particularly great at anything. Whereas these days people have had 15 years to come up with special-purpose code to accelerate all sorts of common activities. My point wasn't that AWS and Rails were the only good things that happened in 15 years. It's that those, which now seem old and boring, were near beginning of a whole wave of innovation aimed at making it easy to have a consumer-grade user experience up and running.

</comment></comment></comment></comment></comment><comment><USER13> Interesting. Investors are interested in making money on their money.

</comment><comment><USER14> Is "team" a measure of how good the team is in general, or how well-suited they are to the area they've chosen to build a startup in?

<comment><USER15> Everyone always says team without elaborating on what that means. It seems to me it's generally a shorthand for how many of your founders/employees went to Harvard, Stanford, Yale, etc. You can't say pedigree these days because that doesn't fit with the current Bay Area politics.

</comment></comment><comment><USER16> Excerpt:

The Problem & Market Segment - Moderate to Strong Predictor

"This would have been a stronger predictor had it not been for a few outliers at the top. Aside from a few companies who got a high number of intros despite scoring relatively low here, this was overall a very good predictor of who get intros. Picking the right problem to work on seemed more important than having the right solution by more than 2x.

So what was the most important factor?

Which area, if a VC only knew one thing about your company, was the most predictive of enticing a VC to want to meet?

Some founders might be disappointed, because its that age old question that they love to hate…

 _"How does it make money??"

Yes, the underlying economics of the business was the strongest predictor of whether a VC wanted an intro over any other aspect of the company. Founders who could clearly articulate an economic opportunity fared really well with investor interest._"

Hmm, reminds me of some song lyrics...

"Come on, come on, listen to the money talk..."

-AC/DC "Money Talks"

Observation: Just as Scientists talk science, and Lawyers talk law, Venture Capitalists speak "Venture Capitalese", aka "Money", aka, "How much money could I the VC make with this?

That, and _give me compelling proof of what you 're saying in under a minute..._"

Ideas, on the other hand, even great ones (to a VC point of view!) are the proverbial "dime a dozen" (or less even! An idea and fifty cents will get you a cup of coffee... Or, an idea and five dollars will get you a cup of coffee if you go to Starbucks...<g>)

</comment><comment><USER17> That site needs the base font to be bumped up by 400% or more.

</comment><comment><USER18> Great work by Charlie on this.

As Charlie is an NYC VC, I assume most investors on this are from NYC and there may be an Easy Coast bias in the data here. It's a stereotype of East Coast VCs to overly focus on monetization compared to West Coast.

</comment><comment><USER19> stop worrying about VC's. trust me, it's a rabbit hole of pain and perpetual disempowerment.

better to focus on figuring out what perspective you're currently missing to how you can better help your customers THRIVE.

</comment><comment><USER20> What are the demographics of the VCs whose responses are summarized here? Were they from a wide array of cultures and histories? Were they primarily rich white men?

Ethics in AI would ask us to consider the unconscious bias introduced into the algorithm's outcomes. The same interest applies to human-generated outcomes. Either way, the input is a group of humans making subjective decisions, and since unconscious bias survives summarization, it should be accounted for.

</comment><comment><USER21> Love it - there's a startup in analyzing startup chances.

<comment><USER22> To iterate is human, to recurse, divine.

</comment></comment><comment><USER23> It's often been said that VCs invest in people not products and there's certainly some truth to that.

That said, having a realistic plan on how your idea turns into a sustainable business is certainly key too. That's even more important with the economy we're heading into where startups that are not financially stable are not long for this earth.

</comment><comment><USER24> Humans choose first, rationalize later. Humans are bad at explaining why they made their choices but they have a narrative.

VCs are no different. The survey would need to be far more rigorously designed to correct for those tendencies and I dont even know if it can be done.

</comment><comment><USER25> How do they measure team quality? Is it just number of elite school and FAANG alumni?

<comment><USER4> I would imagine they know the difference between a team full of "ideas" people who answer the question of "how will you solve this problem" by saying "easy, we don't need to code, were "business people" we will higher an offshore team in India for cents on the dollar to code this for us overnight."

Where software development is just an example of one of the skills you would need

Vs.

"We prototyped this ourselves based on our experience coding with best in class teams for scalability, performance and optimizing cost savings for scaling (lets say web platform?) web platform, and we have a working MVP with some customers onboarded and seem to be growing faster than we can handle due to demand, and even though we are all pretty good at running this platform ourselves, we know some key people we want to hire to take over the scaling our existing backend devops teams so we can focus on the UX/UI and feature development to respond to specific asks from our current customers because we know these will keep them on board with us vs our current competitors."

In general, they are looking for people who are realistically engaged with the resources it needs to implement the solution to the problem where many people have the attitude of "I have the idea, I will hire minions to do it for me, I just need $5million from you to do that so I can hand out tshirts and take credit for their work at conferences while my minions do the work, duh".

You may think this does not happen. It happens quite alot....

</comment></comment><comment><USER26> There should not be a single factor, sometimes the team make up becomes the multiplier factor. Say Jony Ives joins a team solving a not so good problem.

</comment><comment><USER27> Analyzing common sense seems to be getting more popular.

</comment><comment><USER28> I didn't see any pricing anywhere. Anyone knows how much do they charge?

</comment><comment><USER29> Beware of survivorship bias.

</comment><comment><USER30> After contacting many VCs and getting only meager responses, I concluded much the same things as in the OP.

The VC Web sites were deceptive: They claimed interest in new, advanced, powerful, for big markets, secret sauce, barriers to entry, high margins, etc.

Nope. Much as in the OP, the main thing they want is just current revenue, or at least proxies such as monthly unique users, significant and growing very rapidly.

So, I switched projects to one I can do as a sole, solo founder funded with just my checkbook.

Let's get a view of something VCs do not like but their Web sites implied they would like:

To the users, my project is just a Web site. The project is a new search engine for Internet content. The main _business idea_ , drawing in part from some old work at Battelle, is that quite generally keywords are good for only about 1/3rd of content search. My project is for the other 2/3rds. Keys in the work are some new data and new ways to process that data. The new ways are from narrow, advanced pure math and some original applied math I derived (users will not be aware of anything mathematical) -- this use of math is the _intellectual property, trade secret, secret sauce, technological advantage and barrier to entry_ , etc.

Status: Code for the project as envisioned, not just a _minimum viable product_ , is ready for significant production, say, if enough users like the site, a one person company with revenue of $10 million a year, nearly all pre- tax earnings.

Team? Just me, and that's enough for now. Qualifications? Plenty in computing from IBM's Watson lab and much more. For the math, I hold a Ph.D. in applied math from a world class research university -- one advisor had other students build on my research and was later President at CMU.

Status: Code (.NET and SQL Server) for the project as envisioned, not just a _minimum viable product_ , is ready for significant production, say, a one person company with revenue of $10 million a year, nearly all pre-tax earnings.

Lesson: My project is of zero interest to any well known VC. They don't care about any such project. Period.

Before going live, I need to add data -- doing that.

Got delayed by some outside interruptions, e.g., moved.

Early on, but not really now, the work could have been helped by some VC funding. Now, if the project gets even $1 million a year in revenue, then I will not want or need VCs.

So, net, with VCs, when I would have wanted them, they didn't want me; if I get to where they want me, then I won't want them.

There is some advice about VCs: Wait, that is, be successful enough, for them to call you. If that time comes, I will just check my old files and tell them the dates when I did contact them and they were not interested.

I want to make two broad points:

First, the economic shutdown for the COVID-19 pandemic has revealed that "50% of the US economy" (whatever the details on that are) is "small business". Next, as I have looked around at the families doing well, e.g., money enough for a 50' yacht, to pay full costs at Harvard, they are nearly all from running a family owned business and never got even 10 cents from a VC. Okay, start and run such a business where computing, the Internet, maybe some _secret sauce_ (now these three can be just dirt cheap, less than some people spend in restaurants for a year) help but without VC funding.

Point: To do well in the US, don't really need VCs; e.g., nearly all the US families doing well are running family owned businesses, all across the US and not just along the east and west coasts, without any VC funding.

Second, there should be some big opportunities in applying what is in the research libraries in math, science, and engineering and/or doing and then applying more such research.

This fact has been well known for ~70 years by the US Department of Defense, CIA, NSA, Department of Energy, NSF, NIH, CDC, NASA, ONR, etc., well known and heavily exploited with huge benefits for US national security, health, and economic prosperity. E.g., we got GPS from a project of the USAF. For some decades, there were similar contributions from Bell Labs -- information theory (e.g., upper bounds on data rates), error correcting codes, the transistor, tiny solid state lasers lighting long haul optical fibers, etc.

Typically these projects are submitted and approved just on paper. The batting average is high: E.g., Keyhole (like Hubble but before Hubble and aimed at the ground instead of the stars), LIGO, the A-bomb, the H-bomb, the SR-71, navigation satellites (first from the US Navy and later from the USAF), nuclear fission power, the SSBNs, TCP/IP, NSF Net (now the Internet), DNA sequencing (the key to detection of SARS-COV-2 and now maybe to a fast vaccine), ..., all worked just as planned, essentially the first time, on or close enough to on time and on budget. Batting average! ROI!

Gee, if the USAF charged a penny for each use of GPS they would have how much money?

If Bell Labs got a penny for each transistor they would have how much money?

Point: The VCs just will not evaluate and fund projects presented just on paper and, thus, are missing out on such developments.

Final Point: VCs make some money and do at times help some projects, but their methods of working are quite narrow, and in the US the paths for making money are in principle and at times in practice much wider. There is a lot of opportunity doing projects the VCs won't fund.</comment>


Ask HN: Is there an app that shares data only by geolocation - <AUTHOR>

As in, I have to be in a radius of something in order to unlock a certain type of data. Does something like this exist? <comment><USER2> I think Ingress is a close match to your description. Also, Lyft and other ride-sharing apps work along the same principles, I think. Similar techniques are also being used for the new-age anonymous messengers, but I may be wrong about those.

I knew of people attempting to create 'discount floats' based on geo-location - as in, a retailer with the app would 'float' a specific discount at a specific point and anyone with the app who happened to pass within a certain radius would get a notification/coupon of the discount.

However, it didn't pick up here in India because smartphones and app downloads weren't all that ubiquitous two years ago, when they tried to implement this idea. Now, the results may be different, who knows.

<comment><AUTHOR> Wonderful. I'm founder @ parcel.io and we're doing just this. For regular people to just discover data. We have a few built in layers, one for history, politics, etc. When you enable them, you can view a layer of locations in that categories specific color. Lets say I walk beside a certain monument, I can grab data of it (pictures/videos/text) and learn more about it by being in proximity.

<comment><USER3> is it similar to foursquare?

<comment><AUTHOR> Nope. You don't check in everywhere. It's literally like picking up/dropping off/tracking packages, just it's virtual data instead of a physical package.

</comment></comment></comment></comment><comment><USER3> like a game?</comment>


Show HN: Minimal Recipe – Recipes without the bloat - todd-davies https://minimalrecipe.com <comment><AUTHOR> Not much you can do about it, but when I saw the URL I thought it would be minimalist recipes, i.e. the "core" of a recipe like the ones in books like Ratio [1] where the author describes recipes simply in simple ratios of its main ingredients, and then only mentions how it can be customised in different ways.

[1] [https://books.google.co.uk/books/about/Ratio.html?id=yXwYoXm...](https://books.google.co.uk/books/about/Ratio.html?id=yXwYoXmYTD4C)

<comment> todd-davies Yeah, I agree. We'd be open to re-branding the site at some point which wouldn't be too hard. We'll keep open eyes and ears for a potentially improved name!

And, whoa, I'll check out that book!

</comment></comment><comment> todd-davies Some friends and I wanted to make a recipe website without cookie notices, ads, long descriptions, etc.

We focused on making it simple, privacy aware with no tracking (why should recipe websites need tracking cookies?), and accessible. It's our first time making something like this, feedback, suggestions for recipes and general advice is appreciated!

<comment><USER2> What is the model for sustainability?

I mean how does the project keep going. I love the idea enough to use it. Probably not enough to work on it because I have other things I love to do more. That's going to be typical of people visiting the site.

So basically, it's up to you and your friends to keep it going and my question is how do you plan to make that happen? If that's what you want to do of course. You're not obligated to continue making the site better. That makes sustainability harder because the work will be mostly thankless and by design, unpaid.

Good luck.

</comment></comment><comment><USER3> I love idea but basically you can use a Git repository with markdown files who represent a recipes. There are plenty of repository who represent this idea like this one : [https://github.com/Donearm/Cooking- Recipes](https://github.com/Donearm/Cooking-Recipes)

You can also add a Jekyll static site generator if you want to publish on your website.

This seem nerdy but you can use all Github ecosystem to add or edit your recipes. I love this idea.</comment>


Ask HN: Regular Expression to Remove Script Tags and Their Contents? - <AUTHOR>

Hello,
I am currently working on a Ruby web parser for reading webpages and extracting the text only.  I am using the following lines of code to strip scripts, styling, and tags:

    cleaned = html.gsub(/<[^(>|\/)]*?script.*?>[^<]*?<.*?\/script.*?>/, "")
    cleaned = cleaned.gsub(/<[^(>|\/)]*?style.*?>[^<]*?<.*?\/style.*?>/, "")
    cleaned = cleaned.gsub(/<\/?[^>]*>/, "")
 The only problem is that if the script tag contains a less than sign such as:

    <script type='text/javascript'>
        var foo=3;
        if(foo<5) {
            alert("bar")
        }
    </script>
 In that case the first regular expression for removing script tags and their contents does not work.  It all boils down to the part of the regular expression:

    [^<]*?
 I can't seem to figure out a better way though to make the star grab everything in a lazy fashion (in other words don't match the first opening script tag with the last opening tag in the HTML).
Has anyone else worked around this problem in the past?  Are there any regular expression ninjas who might be able to lend a hand?
I thank you in advance for your time and consideration. <comment><USER2> "ninjas" <\- <http://news.ycombinator.com/item?id=1591573>

Anyway, try the Ruby port of Python's BeautifulSoup: <http://www.crummy.com/software/RubyfulSoup/>

<comment><AUTHOR> _ninjas_

I was thinking of the XKCD comic where the hero swings in to save the day with his regular expression. ;)

I will look at Beautiful Soup and see if that can work as an alternate technique.

Thank you.

</comment></comment><comment><USER3> <http://wonko.com/post/sanitize> _Sanitize, a whitelist-based HTML sanitizer written in Ruby. Given a list of acceptable elements and attributes, Sanitize will remove all unacceptable HTML from a string._

</comment><comment><USER4> You'll probably want to read this:

[http://stackoverflow.com/questions/1732348/regex-match- open-...](http://stackoverflow.com/questions/1732348/regex-match-open-tags- except-xhtml-self-contained-tags)

<comment><AUTHOR> Okay, I get the point. Trying to write regular expressions instead of using a real XML parser is a bad idea.</comment></comment>


'AeroNabs' Promise Powerful, Inhalable Protection Against Covid-19 - <AUTHOR> https://www.ucsf.edu/news/2020/08/418241/aeronabs-promise-powerful-inhalable-protection-against-covid-19 <comment><USER2> _Competing Interest Statement_

 _" M. Schoof, B. Faust, R. Saunders, N. Hoppe, P. Walter, and A. Manglik are inventors on a provisional patent describing anti-Spike nanobodies described in this manuscript."_

PR for this has reached every outlet from USA Today to sci.electronics.design on Usenet. However, there seems to be zero commentary on it from serious medical sites or journals.

<comment><USER3> Derek Lowe has now covered it: [https://blogs.sciencemag.org/pipeline/archives/2020/08/13/na...](https://blogs.sciencemag.org/pipeline/archives/2020/08/13/nanobodies- against-the-coronavirus-something-new)

Single-domain antibodies have been around for a while: [https://en.wikipedia.org/wiki/Single- domain_antibody](https://en.wikipedia.org/wiki/Single-domain_antibody)

</comment></comment><comment><USER4> "Promise" is maybe too strong a word for something that has only been shown to neutralize the virus in liquid form in in vitro cell culture so far.

<comment><USER5> School press releases are always like this for alumni projects.

</comment></comment><comment><USER6> Long way to verifying the safety, given the particle size, but that's a fairly novel mechanism of action from my limited knowledge.

</comment><comment><USER7> Wonder if it's similar to eg [https://www.molecularpartners.com/molecular- partners-announc...](https://www.molecularpartners.com/molecular-partners- announces-agreement-with-swiss-government-securing-rights-to-purchase-doses- of-first-anti-covid-19-darpin-program/)

</comment><comment><USER8> A friend (PhD researcher) introduced me to nanobodies and the science around them a few years back, it's pretty fascinating and cool to see more and more practical applications.

</comment><comment><USER9> > As the world awaits vaccines to bring the COVID-19 pandemic under control, > UC San Francisco scientists have devised a novel approach to halting the > spread of SARS-CoV-2, the virus that causes the disease.

Not clear at all how this thing can be ready for use before vaccines become available. This is a long way before Phase 1 clinical trials, while quite a few vaccines are well into their Phase 3 trials.

<comment><USER10> Vaccine efficacy is not yet proven. Even if highly effective, vaccines will take years to circulate the world. Something like this, much easier to produce, supposedly, can fill that vaccine gap.

</comment></comment><comment><USER11> This is super cool, but unfortunately a little too late to the game. We will likely have a vaccine by Feb next year. To scale-up a protein antibody, run trials, and get approval for such a novel idea--plus you would need the device to be either CE or approved already because that would take a whole lot longer if not--will take best case 1 year. Doesn't mean they shouldn't find an industry partner to go for it, but I doubt anyone would pick it up without government backstopping and right now the focus is on vaccine and mAb scale- up.

</comment><comment><USER12> This sounds like a great way to solve the "vaccines don't give recurring income" problem.</comment>