Debunking the Java Performance Myth - <AUTHOR> https://medium.com/@elliot_f/debunking-the-java-performance-myth-29b842955a24 <comment><USER4> I'm not sure that there's a myth to be debunked, is there? Java's known to be high performance as a web application server, if good architectural choices are made. The well referred to [https://www.techempower.com/benchmarks/](https://www.techempower.com/benchmarks/) reliably has some of the better Java frameworks ranking near the top along with C and C++ servers.

<comment><USER5> Yeah, the title confuses me greatly. I assumed this was going to be an article about how Java is _slow_ , debunking the myth that it's really fast.

<comment><USER6> Really? You've never heard people joke about Java being slow? Half the programmers I've met have this cult like hate of java and cite performance as the main reason.

<comment><USER7> Java _is_ slow, but not in this case. Tight loop java is fast. Anything that touches memory is slow. Anything that involves loading jar files is slow. Anything that involves starting the VM is slow. But tight loop java is fast, indeed, being a JIT, potentially faster than C (better branch prediction given that the JIT can optimize at runtime).

So the claim that Java is slow is true. That's why so many people hate it. The fact that Java is fast is also true.

<comment><USER8> To be more fair, java is mostly slow on startup which which is mostly due to:

1) Swing. I have no idea what this does on startup but it is bad. This is what killed most java GUI apps. A simple AWT or SWT app will pop open while a simple swing app will take a few seconds to get started

2) Jars on systems with virus scanners. Jars are just zip files. Many virus scanners will unzip and scan a zip on every open which leads to each jar being unziped at least 2 times and often more if the app has to load more things from the jar at a later time.

3) Spring. Really spring is just a bad idea all the way through and most of the reason people hate java is Spring. Huge XML configuration files instead of code? Spring (mostly annotations now). Stupid names like AbstractSingletonProxyFactoryBean? Spring. That aside, on startup Spring will auto generate classes which really slows things down. This could have been done during the last build but spring does it at each startup which is really slow. Spring Boot has helped with startup times but it is still slower.

After startup Spring continues to kill performance. The underling code is full of maps to control request lifecycle so instead of just calling a method it has to ask "who all is configured to do something at step PreParseRequestEncoding?" then again at ParseRequestEncoding, PostParseRequestEncoding, PrePareRequestBody, ParseRequestBody.... Not real names but the idea and number of steps is. Most of the time the answer is "nobody" but it has to ask for every step that might ever need something done.

Add on top of this JPA which is super easy but quickly breaks down to a lot of DB calls. JPA is great for people who don't want to learn SQL and simple CRUD apps but anything with any amount of data will quickly slow down to thousands of DB round trips.

<comment><USER9> I like Spring, I find it makes Java development pleasant, plus I have unfair access to the Spring team members by working for the same company. So I'll bite.

> _Huge XML configuration files instead of code? Spring (mostly annotations > now)._

Spring 3, yes. Spring 4 and 5, no. XML has not been the blessed configuration approach for ~4 years.

> _Stupid names like AbstractSingletonProxyFactoryBean? Spring._

Java is a language that has evolved enormously in expressiveness since Spring began, meaning heavyweight Go4 patterns were necessary early on to maintain a flexible substrate with a uniform interface serving very many use cases? Spring.

> _That aside, on startup Spring will auto generate classes which really slows > things down._

I believed this urban legend too.

Dave Syer, who is understandably interested in Spring criticism, has done more empirical investigation than anyone on this topic[0].

The tl;dr is that boot time is proportional to total classes loaded. That's all, that's it.

In-memory reflection operations are hilariously, stupidly, insanely faster than I/O. The JVM fetches and loads classes _individually_. So if you have a lot of classes, it takes a longer time to load.

The other thing to bear in mind is that Spring relies on this much less than it used to. As the language and JVM have evolved, so has Spring.

> _The underling code is full of maps to control request lifecycle ... Not > real names but the idea and number of steps is._

Are you talking about servlet filters? Because any web framework is going to have a few of these. Spring MVC adds a handful and all of them can be removed, replaced or added to. Spring Security adds a bunch and all of them can be removed, replaced or added to. But the defaults are chosen because of feedback, not just for the heck of it.

> _Add on top of this JPA which is super easy but quickly breaks down to a lot > of DB calls. JPA is great for people who don 't want to learn SQL and simple > CRUD apps but anything with any amount of data will quickly slow down to > thousands of DB round trips._

In general, yes, I agree that JPA is a PITA. For a small to medium system I would try to avoid it where possible. For a sufficiently large codebase -- thousands of domain objects, dozens or hundreds of programmers -- it might be a necessary evil.

Mind you, if you want to see a world where the database goes from abused to outright mocked and ignored, pay a visit to Rails land. It drives me batty.

[0] [https://github.com/dsyer/spring-boot-startup- bench](https://github.com/dsyer/spring-boot-startup-bench), particularly [https://github.com/dsyer/spring-boot-startup- bench/tree/mast...](https://github.com/dsyer/spring-boot-startup- bench/tree/master/static)

<comment><USER8> I will admit that spring has gotten a lot better recently, but it is still a mess (IMHO of course) and this "benchmark" seems to agree.

The biggest issue I have with spring isn't performance but is the huge internal state that is the basis of Spring's DI.

After a few versions you end up with code that depends on bean named 'Abd" to preform a task, but in the next version is renamed to "Abc" which fixes the typo, but makes all the documentation off. And the 3 other classes that also needed that task still look for it under the name "Abd". And then the next major version replaces this entire module and the bean name is now "Xyz". To me this IS spring programming. Googling the DI names and trying them one by until you get the desired run time functionality.

I've had apps in production with unused beans defined (It only had 1 function that only throw an exception and was never called) but had to be defined or something would break. Multiple team members wasted some free time trying to locate the code that was requiring that bean but nobody could ever figure it out. At some point everybody gave up, it was easier to just let it be.

Most developers have little to no idea what is actually going on inside their spring apps (or even what half their dependencies are). When a struts like vulnerability comes along in the spring world it is going to be a massive PITA to fix. With how complex this all is I have little doubt that a vulnerability exist somewhere in there.

<comment><USER9> The Struts vulnerability was less about _Struts_ and more about the universal difficulty of dependency management.

Which Spring Boot ameliorates by providing starter POMs. Curated, levelled, updated collections of dependencies for common cases. No need to play whack-a- dep with Maven or Gradle. No need to track 50 different dependencies yourself.

The thing is: I don't care how Spring does the magic. I care that I don't _have_ to care.

I came to Spring and Java-for-real development relatively late -- by fluke I was on what is almost certainly the first Boot production app ever deployed, back in early 2014.

Later I got a chance to see the primordial world of Spring 3. I understand the residual hate.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Spring Boot really comes away awful in this article (and the one he links in the article). I have mostly worked on projects using Dropwizard and Spring Boot and have come to like some of the easy to use abstractions but I have only scratched the surface of these frameworks, I assume, and most of it I will probably never use. Most of the time it did not matter that much to give the Server a GB more memory but recently we had some real issues with CloudFoundry. To me it seems that it's not possible to somehow magically tweak Spring Boot to behave better. So I came to wonder, what other framework would strike a better balance? Maybe not offer the crazy specialised stuff Spring offers or maybe needing some more work to get something to run but then offer vastly better memory and speed charactersitics?

I guess one way would be to implement the things I actually use myself with less abstractions but that honsetly feels very daunting to me. The Java ecosystem is so vast and between Handling the Requests, DB access (with or without ORM), persistance, caching, security, I really have no clue on where to even start doing something like this myself. If someone more seasoned here has some input, I would be highly interested!

<comment><USER11> You mentioned Dropwizard early on, in my experience I have found it to be the polar opposite of Spring.

Where Spring is an "everything but the kitchen sink" framework, Dropwizard is just a collection of best-in-class libraries that are easily swapped out if you prefer something else.

I don't get to do so often professionally, but if given my choice of tools ill generally opt for a combination of Dropwizard in Kotlin.

<comment><USER10> One big drawback of Dropwizard (at least for us) was that it was very problematic to deploy it as a war in a tomcat environment. There is wizard-in- a-box but there were a lot of issues with that as well.

<comment><USER12> If you're deploying a dropwizard app as a war in tomcat you're doing something a bit odd.

<comment><USER10> True but sadly project specs sometimes change in odd ways.

</comment></comment></comment></comment></comment><comment><USER13> The primary reasons for choosing a particular language for your application server usually come down to developer ergonomics, developer availability and library availability / integration for your specific domain. Performance rarely comes into it; performance while scaling into astronomical request numbers is important for top web sites, but most app servers don't see that kind of load.

Even if some requests needs crunchy CPU power, it's better to offload them into something asynchronous than try really hard to make them perform well enough to be synchronous. Typically, hefty CPU jobs come in varying sizes, they're rarely guaranteed to be runnable under the 200ms or so latency bar for synchronous requests.

<comment><USER14> I find that laughably generous. In my experience, Java gets a pass because it's "enterprise", whatever the hell that means. I've never heared anyone make a compelling case for Java on technical merit. It's always "we're a Java shop, because we're enterprise".

<comment><USER15> You say there is no technical merit to use Java ecosystem over something else?

<comment><USER14> Nope. Thats not what I said.

</comment></comment></comment></comment><comment><USER16> Well, I have not taken a look at the implementation yet, but java is certainly known for delivering a decent performance even if the programmer is a little careless regarding perfromance.

In Go on the other hand, doing simple 'mistakes' like declaring a variable inside a loop can bring you to performance hell:

Declaration in a loop:

            var sum int
            for i := 0; i < n; i++ {
                    x := i + i
                    sum = x - <USER3>
            }

Declaration outside the loop:

            var sum int
            var x int
            for i := 0; i < n; i++ {
                    x = i + i
                    sum = x - <USER3>
            }

Benchmark results:

      BenchmarkInLoop-8       2000000000               0.40 ns/op
      BenchmarkOutLoop-8      2000000000               0.47 ns/op

And the same is certainly true for C/C++.

Src: [https://nopaste.xyz/?68c6800acd9200d6#mDstI36uBPBU4Td8k//GNC...](https://nopaste.xyz/?68c6800acd9200d6#mDstI36uBPBU4Td8k//GNC+P7mmbB1ldMw3DGMuxeQo=)

<comment><USER17> What go compiler are you using? On my machine those run in exactly the same amount of time (go version go1.9 linux/amd64 ).

      $ ./tmp.test -test.bench .
      goos: linux
      goarch: amd64
      BenchmarkInLoop-4       2000000000               0.46 ns/op
      BenchmarkOutLoop-4      2000000000               0.46 ns/op
      PASS

      (pprof) disasm fast
      Total: 1.95s
      ROUTINE </comment></comment><comment></comment><comment></comment><comment></comment><comment> _/tmp.fast
           970ms      970ms (flat, cum) 49.74% of Total
               .          .     4ed7c0: MOVQ 0x8(SP), AX                             ;main_test.go:23
               .          .     4ed7c5: XORL CX, CX
               .          .     4ed7c7: MOVQ CX, DX
               .          .     4ed7ca: JMP 0x4ed7d6                             ;main_test.go:26
           660ms      660ms     4ed7cc: LEAQ 0x1(CX), BX                             ;_/tmp.fast main_test.go:26
           110ms      110ms     4ed7d0: MOVQ CX, DX
           170ms      170ms     4ed7d3: MOVQ BX, CX
            30ms       30ms     4ed7d6: CMPQ AX, CX
               .          .     4ed7d9: JL 0x4ed7cc                               ;main_test.go:26
               .          .     4ed7db: MOVQ DX, 0x10(SP)                           ;main_test.go:30
      (pprof) disasm slow
      Total: 1.95s
      ROUTINE </comment><comment></comment><comment></comment><comment></comment><comment> _/tmp.slow
           960ms      960ms (flat, cum) 49.23% of Total
               .          .     4ed790: MOVQ 0x8(SP), AX                             ;main_test.go:14
               .          .     4ed795: XORL CX, CX
               .          .     4ed797: MOVQ CX, DX
               .          .     4ed79a: JMP 0x4ed7a6                             ;main_test.go:16
           690ms      690ms     4ed79c: LEAQ 0x1(CX), BX                             ;_/tmp.slow main_test.go:16
           100ms      100ms     4ed7a0: MOVQ CX, DX
           100ms      100ms     4ed7a3: MOVQ BX, CX
            70ms       70ms     4ed7a6: CMPQ AX, CX
               .          .     4ed7a9: JL 0x4ed79c                               ;main_test.go:16
               .          .     4ed7ab: MOVQ DX, 0x10(SP)                           ;main_test.go:20

<comment><USER16> Well, the assembler looks the same to me too, but I can confirm different runtimes on two different machines (fast is always faster here).

      $ ./main.test -test.bench . -test.cpuprofile=test.profile
      goos: linux
      goarch: amd64
      BenchmarkInLoop-8       2000000000               0.42 ns/op
      BenchmarkOutLoop-8      2000000000               0.47 ns/op
      PASS

      (pprof) disasm fast
      Total: 1.86s
      ROUTINE </comment></comment><comment></comment><comment></comment><comment></comment><comment> command-line-arguments.fast
           990ms      990ms (flat, cum) 53.23% of Total
               .          .     4ed7b0: MOVQ 0x8(SP), AX                             ;mem_test.go:16
               .          .     4ed7b5: XORL CX, CX
               .          .     4ed7b7: MOVQ CX, DX
               .          .     4ed7ba: JMP 0x4ed7c6                             ;mem_test.go:19
           650ms      650ms     4ed7bc: LEAQ 0x1(CX), BX                             ;command-line-arguments.fast mem_test.go:19
               .          .     4ed7c0: MOVQ CX, DX                               ;mem_test.go:19
            10ms       10ms     4ed7c3: MOVQ BX, CX                               ;command-line-arguments.fast mem_test.go:19
           330ms      330ms     4ed7c6: CMPQ AX, CX
               .          .     4ed7c9: JL 0x4ed7bc                               ;mem_test.go:19
               .          .     4ed7cb: MOVQ DX, 0x10(SP)                           ;mem_test.go:23
      (pprof) disasm slow
      Total: 1.86s
      ROUTINE </comment><comment></comment><comment></comment><comment></comment><comment> command-line-arguments.slow
           870ms      870ms (flat, cum) 46.77% of Total
               .          .     4ed780: MOVQ 0x8(SP), AX                             ;mem_test.go:7
               .          .     4ed785: XORL CX, CX
               .          .     4ed787: MOVQ CX, DX
               .          .     4ed78a: JMP 0x4ed796                             ;mem_test.go:9
           560ms      560ms     4ed78c: LEAQ 0x1(CX), BX                             ;command-line-arguments.slow mem_test.go:9
               .          .     4ed790: MOVQ CX, DX                               ;mem_test.go:9
            20ms       20ms     4ed793: MOVQ BX, CX                               ;command-line-arguments.slow mem_test.go:9
           290ms      290ms     4ed796: CMPQ AX, CX
               .          .     4ed799: JL 0x4ed78c                               ;mem_test.go:9
               .          .     4ed79b: MOVQ DX, 0x10(SP)                           ;mem_test.go:13

</comment><comment><USER18> I think an important element in comparing Go to Java for webserver apps is language design. While Java 8 and Go's performance may be similar in small single-threaded request handler benchmarks, Java's baseline design encourages the creation of lots of expensive runtime abstractions, and makes parallelism difficult. Go on the other hand encourages a minimum of abstractions and makes parallelism trivial. That means that the marginal cost of business logic is much higher in Java, in both response times (due to unnecessary serialization) and overall computation. Some of this can be averted by careful engineering, but Java definitely isn't a "pit of success" in this regard - the easiest thing to do is usually the wrong thing.

<comment><USER19> > Java's baseline design encourages the creation of lots of expensive runtime > abstractions

Abstractions yes, expensive, perhaps not. One of the nice things about Java is that the JIT can collapse a lot of abstraction at runtime. Not all of it, but a lot of it. I am skeptical about the idea that Java naturally guides programmers towards expensive abstractions.

> and makes parallelism difficult

Presumably, you mean something like "makes lightweight concurrency difficult, because all the backend APIs for database access etc are blocking", which is unfortunately true.

<comment><USER20> I think perhaps it's more of a "pure OO" approach than the language itself. I've seen plenty of Java _and_ C++ code where there is one interface class for every concrete class, even when just one concrete class is ever implemented, for example. I've also seen cases where some "factory" pattern is force-fit into the architecture, and the objects it creates are kinda sorta related, but ought not be in code. It gets exponentially worse as more interfaces and more levels in a hierarchy are allowed.

The compiler isn't always going to be able to collapse or elide these.

</comment></comment></comment><comment><USER21> The JVM has indeed matured to the point where it's on par with other VM style languages, and better than interpreted languages. This wasn't always the case: early in Java's lifetime it was a slow, memory intensive hog. That stigma has stuck.

That said, it's still pretty heavyweight (both the language and the runtime).

It also wouldn't be my first choice for compute intensive tasks (for example, a non-toy ray tracer). It would do the job eventually, but at a cost. Of course, I wouldn't pick Go or Python either.

<comment><USER22> Reminds me people blaming clojure slow boot on the JVM when it was in fact clojure tooling that took time.

Things aren't straightforward, we need to go deep before concluding. Profilers, profilers, profilers.

</comment></comment><comment><USER15> One more dumb test not even giving the code and test environment fully. Btw, this tests are useless. Add some real usecase, a database, some number crunching, jobs execution and see python fail even more for example.

</comment><comment><USER23> Flask is synchronous and it shouldn't be labeleld "Python 2.7 or Python 3.6". Comparing that to async frameworks is not quite fair. (Also is SpringBoot async?)

<comment><USER15> Spring Boot can be both reactive or ordinary thread pool based to serve requests or anything from the stack really. It is very very powerful framework and comparing something barebones to Boot is really dumb. Not to mention that author intentionally made java look like a monster when he could use some simple tweaks to reduce jvm memory usage by much and he hid what dependencies really imported. And also if he did not like Boot he could just fire barebons Jetty up and use 20mb heap tops.

</comment></comment><comment><AUTHOR> Hi All, this has received an incredible amount of views and comments since I posted this and left the house!

I appreciate the feedback comments! I'm very much still playing around with different technologies and writing about them as I go, this is more a learning experience for me that I've documented and I would take what I'm saying with a pinch of salt.

I thought I'd also clarify that I'm using the code/docker images that I created in the previous article as the base from which I'm running my tests as that seems to have gotten missed by a few peeps!

<comment><USER9> I definitely missed it. Maybe adding a link to this one as well would be helpful.

Edit: I see the code using the `com.sun.net.httpserver` package, but not the Spring Boot version.

</comment></comment><comment><USER24> Would be interested in seeing Elixir/Phoenix compared here. I've seen some amazing scalability figures from those folks: [http://phoenixframework.org/blog/the-road-to-2-million- webso...](http://phoenixframework.org/blog/the-road-to-2-million-websocket- connections)

For posterity sake, throw in Ruby on Rails as well.

<comment><USER25> Elixir is more focused on concurrent performance than raw performance. It's still very fast but favors consistency above all else. I remember seeing a great benchmark that compared Elixir to Python and Go where they charted the variability of response times. Python and Go were very spikey with Go producing the fastest overall time. Elixir was extremely steady. Makes it an ideal choice for real time ops, holding millions of web sockets, ensuring a heavy process doesn't affect the experience of everything else that's executing.

You'll also get natural clustering ability and a level of fault tolerance that's almost silly.

I've been trying to find the time to demonstrate this with the tech empower benchmarks honestly. I want to see what will happen if you run all of them at the same time for a particular platform.

<comment><USER26> It baffles me how people give Elixir the credit for this. Everything you mentioned here have nothing to do with Elixir, but with how Erlang and its preemptive scheduler were optimized for soft real-time apps.

<comment><USER25> BEAM gets the credit but the parent mentioned Elixir so that's how I responded. It's just quicker than writing Elixir/Erlang/BEAM/OTP everytime.

Wasn't trying to misappropriate the credit.

</comment></comment></comment></comment><comment><USER27> Did you publish the source code for the test servers (in the various languages)?

I am curious to what a "normal" Java microservice look like.

<comment><USER28> Not very different than a "normal" Node microservice.

It might even take fewer lines.

</comment></comment><comment><USER29> The myth that java is slow is not a myth it is true for medium to big programs with lots of interconnections, because with the abstraction you loose control on the program behavior.

You gain in other things, like abstraction, but the penalty is enormous. We use very high level languages in house, but when we do it performance is not the priority.

Doing "Hello worlds" is not a valid debunking of anything because , guess what? printing a Hello world in a screen is a very simple operation.

We have millions of lines of code and we have done tests on just converting 20-30Ks of our c,c++ code to java and the result has been disaster: Hundreds or thousands of times slower. That's right.

In my opinion if other companies are deluded wanting to be lazy, much better for us as competitors, but children should not be intoxicated with bad advice.

My advice is do not believe me or anyone else, when in doubt just test on your own.

<comment><USER30> Like with any language, the level of abstraction is up to you... one could just as easily "lose control" with C++.

Hundreds or thousands of times slower Java? Have you considered that the conversion was done with a weak mastery of the language or runtime?

The HFT folks working in Java would be taken aback to learn the language doesn't work.

</comment></comment><comment><USER31> 1,000 requests per second for a hello world micro service is horribly slow. I don't know what architecture they are using bit ~100,000 / CPU for simple requests is completely reasonable making this test very dubious IMO.

<comment><USER32> Some of the stacks he tested had significant failure rates at 1000/sec though.

Bumping it up would have made the comparison less interesting.

Perhaps it was just a small VPS?

</comment></comment><comment><USER33> How does an "Hello world" request on localhost take an average of 50~100ms using any framework ? 1ms would already be too much. Something seems way off with this benchmark.

</comment><comment><USER34> One issue here is that it'd really be more appropriate to run the test twice and take the second result. This should get most JITing out of the way.

It's hard to be sure what's happening given the lack of source code, but 1000 requests per second where the request doesn't do much is a fairly minor load for a well-written java service on modest hardware. I would expect the 'lightweight' java example to do better, assuming it's just jetty or something.

</comment><comment><USER35> Pretty good article but I wish we had the source code so we could compare code complexity also.

</comment><comment><USER36> Damn, I will have to take a look at aiohttp. That's impressive, I'm glad that python, my favorite language, can have that kind of performance.</comment>


PadMapper (YC S10) is Joining Zumper - <AUTHOR> http://blog.padmapper.com/2016/02/25/padmapper-is-joining-zumper/ <comment><AUTHOR> Hey everyone, thanks for all the support over the years, we're pretty excited about the next part. I might write more about Our Incredible Journey at some point if anyone's interested, let me know if there's anything that you all want to hear more about.

<comment><USER2> Hey Eric, I'm a Canadian living in the Greater Toronto Area who used PadMapper to find his last 2 places, including the one I am sitting in now.

Sad to see that Zumper isn't open to those outside the USA, hopefully that will change. I showed PadMapper to a number of friends and they loved it. Let us take advantage of this new platform too!

<comment><AUTHOR> Oh cool! I've been really pleased at the reception we've gotten from Canadian users. Thanks for sharing it with your friends.

I don't know if they'll bring their platform to Canada as well, we'll see.

</comment></comment></comment><comment><USER3> What a refreshing write up compared to the usual corporatespeak acquisition posts. You can tell this company operates differently than many and I hope they were rewarded financially for their innovation.

<comment><AUTHOR> That's great to hear, my explicit goal was to make it not be a waste of time for people to read.

</comment></comment><comment><USER4> Really disappointed they removed all of advanced filtering features (commute time, neighborhoods hightlight, some others i don't remember) that made it the best app for apartment hunting

<comment><AUTHOR> Sorry about that, I love those too, we just haven't had time to reimplement them yet. This was a ground-up rewrite to replace the old PHP app with a new Flask app, and we need to rethink how the features work. The old code was getting really long in the tooth, with 7 years of cruft baked in. If you or anyone else has any suggestions, please email them to me at firstname.lastname@example.com.

</comment></comment><comment><USER5> I havnen't heard of PadMapper or Zumper but I clicked the link anyway to see if there'd be a fun "our incredible journey" type statement in there. It turns out is a thoughtful and well written piece with a bonus direct reference to "our incredible journey."

Nicely done and congrats on the acquisition.

<comment><AUTHOR> I'm really glad you liked it, in my delirium last night following swapping out the entire backend and hoping it didn't die a horrible death under load, it was hard to tell if the sentences were even grammatically correct.

<comment><USER6> Complement not compliment was the only one I spotted _pat pat_

<comment><AUTHOR> Haha score, good enough for startup work.

</comment></comment></comment></comment><comment><USER7> Congrats. I used to be a big fan of Padmapper until recently and kept recommending it to my friends and family, but I've noticed that it has become a cess pool of scammers. When I encountered one of these scammers and reported them to Padmapper support, I was assured it would be dealt with. This was a month ago and the scammer's profiles are still active on the site (his newer profile still has listings: [http://www.padlister.com/profile/show/469392](http://www.padlister.com/profile/show/469392)). I emailed Eric directly about it too, but received no further response. I was pretty disappointed by the lack of action on their part and I ended up switching back to Craigslist for my latest apartment search.

<comment><AUTHOR> Agh, I'm sorry for not following up, I've been hammered recently, and I've let some things slip as we've been working to transition things. Our anti-scam system works pretty well once the scammer gets a message, but we need to work more on our preemptive scammer banning. They're a crafty bunch, and it takes ongoing work to stay effective at fighting them.

One thing to note, though, is that when we ban them, they get hellbanned, so that it looks to them like they're still up, but their listings just don't show up on the map. If you (or they) go directly to their listing, you can still see it, with the theory that it'll make it harder for them to tell when they've been banned, and make it slower for them to repost. That user you posted was, in fact, already hellbanned.

Also, you can always hit Flag as Bad on the desktop website to report a scam.

That's a good point that it's not very satisfying to report a scam and then have no visual indication that it was taken down, though.

If you're willing to give us another chance and try us out again, and you encounter any scams, please send them along to firstname.lastname@example.com. We've got a full time customer service person now!

<comment><USER8> Would requiring postings be tied to a mobile number and using SMS verification slow them down?

Sidenote: Congratulations!

<comment><AUTHOR> It might help, but it's a bit tricky, because there are virtual numbers (Google Voice), and banning those catches real users who use GVoice (like me). It's a tricky balance, and my sense is that like DRM, it usually ends up hurting legitimate users more than bad ones who will just use one of their many workarounds.

One thing we've had good success with in the past, but just couldn't afford once they raised their prices, was Sift Science. We've been meaning to try some of the alternatives to that.

Zumper also has some interesting ideas about it that they've used successfully in the past, that we're planning on integrating.

Having the time to do this (and not focusing on dealmaking) will be really nice :-)

</comment></comment></comment></comment><comment><USER9> Congrats Eric! You built an something amazing with very little capital investment, and that's always commendable. You're going to bring immense value to the Zumper team.

<comment><AUTHOR> You're too kind, and it wasn't just me, I had a lot of help from a large cast (see the Oscar speech section). Rob and I are definitely going to try to help!

</comment></comment><comment><USER10> Adding my voice to the chorus: Congrats, and a great writeup.

I note that 3 full-timers managing a 100M-sessions site would be another interesting writeup. Hint hint, nudge nudge.

<comment><AUTHOR> Haha thanks! Pretty big topic, anything in particular? Time management? Focus? General things we learned?

On the technical side, big multicore Xeons and SSDs have made it possible to run a veritable server farm in only a few physical machines recently.

<comment><USER10> All the above + stack you chose, and the curve balls along the way. Yeah, big topic no question...

</comment></comment></comment><comment><USER11> Congratulations on the acquisition! As a fellow small company I feel like it's one (of many) fantasies to join a larger team and continue working on your product.

<comment><AUTHOR> Thanks Sam! Yeah, it's certainly a change going from a team of 3-4 to a team of 29. So far it's been a really nice change, though.

<comment><USER12> I wonder how many of us (small yc funded companies) exist? FWIW I love and use both of your products.

<comment><AUTHOR> Yeah, that'd be interesting to learn. When we were going through YC in the aftermath of the financial crisis, a lot of the advice was to "be a cockroach" [1] to be able to survive anything, since the most common way startups die is running out of money. You could say that we took that to heart... :-) Maybe it's shifted away from that with the rosier funding environment more recently?

[1] [http://paulgraham.com/badeconomy.html](http://paulgraham.com/badeconomy.html)

</comment></comment></comment></comment><comment><USER13> Can someone answer how exactly sites like padmapper make money? Love the site, but still confused by the biz model.

<comment><AUTHOR> A variety of ways, but the major way is that big apartment complexes are willing to pay for leases you generate, because it's expensive to have units lie vacant. A lot of big sites list those paid listings exclusively, in order to maximize revenue generated, whereas we try to include every vacancy we can. We think that in the very long run, ours is the winning approach.

</comment></comment><comment><USER14> Congratulations! Great product, and sticking it out for eight years is one heck of an achievement.

<comment><AUTHOR> Thanks Simon! Oof, has it really been that long? More like 7 and change, but still, twice as long as I was in college, and that felt like an epoch.

We're coming to the Python world finally, after bouncing between PHP and Ruby.

And belated congrats to you too!

</comment></comment><comment><USER15> IMO Zumper has a shitter user experience than PadMapper.. also Zumper hosts a third of PadMapper's growth..kinda makes you wonder how companies are successful today... seems like making money is more important than a better product or more growth

<comment><USER16> Businesses are in the business of making money.

Everything else is a function to generate profit.

</comment></comment><comment><USER17> Great work! I miss the ability to specify "house", it seems now I have to turn off different sources in order to do that.

<comment><AUTHOR> Planning on bringing back the keyword filter shortly. Thanks for the feedback!

<comment><AUTHOR> (As a heads up, it's back now, as of yesterday)

</comment></comment></comment><comment><USER18> Wow! What a great writeup! Please do write more, we sorely need this kind of refreshing honesty.

<comment><AUTHOR> Thanks very much. I'm guessing the reason you don't see more open posts is that most acquired companies probably don't have the luxury of writing exactly what they want to - Zumper gave me pretty much free reign, they didn't even have suggested edits when I showed them a draft. I think if I submitted this post to BigCo's PR department, it would have come back thoroughly lobotomized. Bodes well for the future of PadMapper, I think.

If there's any part you'd like to hear more about, let me know!

<comment><USER18> Yeah, good point. Kudos to Zumper!

Well, I would love to read about keeping focus, high productivity and a lean team after 7 years. I just love stories about high-productivity small teams. On the technical side, the PHP to Flask migration would be very interesting too.

<comment><AUTHOR> Good idea. The biggest productivity boost I found juggling so many jobs was minimizing context switching - block off big chunks of time to focus on just one thing, or grouping things that don't require focus together, and then leaving things like programming uninterrupted. For example, pure business development until 5 Eastern, then programming until you're done working for the day.

Batching email into a couple of times per day is another big boost.

One of the big benefits of such a small team is there's much less communication flying around, and far fewer meetings, so it's easier to get real work done.

</comment></comment></comment></comment><comment><USER19> Still going to support Canadian cities? I noticed that Zumper doesn't.

<comment><AUTHOR> Definitely. We're working on deals with other Canadian sites to get more listings there.

</comment></comment><comment><USER20> Congrats Eric, Rob and Ed!

<comment><USER21> Woohoo thanks Dan for coming over to help us eat food! =D

<comment><AUTHOR> Basically an unofficial team member, only comes to work on team dinner nights.

</comment></comment></comment><comment><USER22> I really like the casual thanks to Ashton Kutcher.

</comment><comment><USER23> Congrats Eric! Give Clymer a high five for me.

<comment><AUTHOR> Ha, who should I say it's from?

<comment><AUTHOR> Ah duh, should have read the profile. Done, he sends his (very high) regards. Thanks very much for the congrats.</comment></comment></comment>


Michael Moore Presents: Planet of the Humans - <AUTHOR> https://www.youtube.com/watch?v=Zk11vI-7czE <comment><AUTHOR> One thing seems certain about Michael Moore. He "calls them as he sees them".</comment>


Ribbon Lets You Buy On Twitter, Launches YouTube Support, Price-Matches PayPal - <AUTHOR> http://techcrunch.com/2013/04/10/payments-startup-ribbon-now-lets-you-buy-right-on-twitter-com-launches-youtube-support-price-matches-paypal/

<comment><USER3> One key difference over other payment processing sites is that Ribbon lets vendors be in any country of the world (as long as you have a Paypal account). Most similar services are very restrictive over which country you can be in is vendor.

The huge caveat, however, is that Ribbon's payment form for customer only allows US addresses.

</comment><comment><USER4> From their site:

Payouts are quick

Get your money out of Ribbon every two weeks via wire transfer, check request, or PayPal.

Every _two_ weeks. That's a great way to create float, but not very useful to the average Joe/Jane. Even though Paypal stinks, I can, at least, get some money out of it in a couple of days, or instantly with their card.

<comment><USER5> "Withdrawal Details - Payouts are deposited into your account at the end of each month"

Not clear that it's 2 weeks yet , 2 weeks starts being manageable , but having 1 month worth of sales tied up...

<comment><USER4> Yeah, that's a bit ridiculous. That makes me operate on a de-facto net30 standard. Lots of businesses/people don't have enough cash flow to operate like that.

</comment></comment></comment><comment><USER6> The YouTube integration looks awesome. I see so many indy artists put up janky iTunes links on YouTube - that needs to be fixed.

</comment><comment><USER7> Isn't this just the same thing as Gumroad!?

<comment><USER8> No man! You can accept payments directly in-stream on Facebook and Twitter to leverage your social networks for selling your product or service. And today the pricing model was lowered to just 2.9% + 30 cents per transaction - <USER2> affordable for all sellers.

<comment><USER4> That's not really that affordable, either. Its just copying the same rates as everyone else. Rates that are simply a bit on the high side.</comment></comment></comment>


The American suburbs are a giant Ponzi scheme - <AUTHOR> http://www.underpaidgenius.com/post/6948964696 <comment><USER3> Buried in the hyperbole is this nugget of truth:

 _It is only the last two generations that we have scaled places to the automobile._

City, suburb, whatever the residential setting, this is the true enemy of creating a network of livable communities. Any jogger, cyclist or volksmarcher can tell you that a continuous green ribbon connecting communities enhances the quality of life many times over. It's a crime that road/highway development rarely takes this into consideration, especially when some of the nicest trails I ride go alongside or beneath some of the busiest roads in my metropolitan area. A well-planned paved trail can can offer a cycling commute comparable to that of an automobile (sometimes even shorter), only far more pleasant and healthier. Unfortunately, sharing the road with cars in any metropolitan or suburban area is a life-threatening experience.

<comment><USER4> I have trouble believing that simply making cycling more attractive will be enough to deal with the massive transportation problems that suburbs (and more so exurbs) create. No matter how nice the trails are, most people will not communicate by bike or walking.

The solution is to pack people more densely in mixed-use communities. Ideally most people would have their necessities within walking distance (grocery store, drug store, restaurants, movie theatre, bank, etc.) and public transportation to everything else, including work. Both of these goals can only be implemented affordably if population densities are high.

<comment><USER3> Experience tells me you're wrong. I know people who walked one block to work every day of their lives, only to be critically injured by passing cars or trucks. I know plenty of of cyclists injured by buses pulling over to pick up passengers, or even by parked cars suddenly opening doors. Population density does not protect you from motor vehicle traffic density. Even bike lanes are dangerous when the only barrier is a line of paint. There is no reason pedestrians or cyclists need to be anywhere near motor vehicle traffic. Once this becomes a principle of residential planning, communities become far more liveable.

<comment><USER4> Those are anecdotes that don't address my main point, which is that there will be no mass turn towards biking merely because it is made more pleasant.

I offer as counterpoint Santa Cruz, CA, where I grew up. It's hard to imagine a more bike friendly city: there are bike lanes on nearly every road, there are special bike trails along many busy routes, and there are bike racks everywhere. And a lot more people bike than in other places I've lived.

But it's still a tiny minority, and the vast, vast majority of people drive everywhere because the city is too small and spread out to have decent public transportation.

<comment><USER5> No offense, but Santa Cruz is hardly a bicycling mecca. It's actually kind of bad for cycling - downtown is too congested, Pacifc Avenue is a one way, the east side is too spread out, once you go up the hills on the west side it's also too spread out, there are a lot of small and winding busy roads with no shoulder that you need to use to get from one part of the city to another, and the cops are hostile to cyclists. Even in California, you don't need to imagine a more bike friendly city, you can just visit Sacramento.

The parent is right - studies have shown that if you improve bicycling infrastructure, you increase the number of bicycle commuters. However, you are also correct... even in the American city with the most bicycle commuters (Minneapolis) the total percentage of commuters using bicycles is less than 3%. Unfortunately, the density of American cities does not lend itself to bike commuting. Even though it's not even ranked in the "best places to bike" articles, I thought Manhattan was the easiest place in the USA to get around on a bike.

<comment><USER6> Sac is a good place to bike? Better than SC? You've got to be kidding me. Davis - now that's a great place for biking.

<comment><USER7> Exactly, but that proves the point: Davis is a not a suburb -- it's exactly the kind of small town that started to disappear fifty years ago.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The damming problem is that not very many Americans are aware that there are other ways to live besides suburbs where all work-commutes require driving, every trip to the grocery store-- driving, everytime you take your kid to school-- driving, soccer practice-- driving, shopping/sports/gym/entertainment/socializing-- driving, civic participation (if you even have time left)-- driving.

All these different destinations have been spread-out, miles apart, often because of zoning requirements. This has been going on for so long that people have forgotten that in the past, many families didn't even have cars and all these destinations were within WALKING DISTANCE (or a street-car trip away). And yet, people had lives that were just as fulfilling, perhaps more so than they are today.

As the "New Urbanist" movement has been painstakingly re-discovering, communities do need to have "a center" to them. In America, these were called "main street" in Europe it is "the square". Whatever it is called, the idea is to have worthwhile destinations that are short distances away from where many people actually live. This creates environments that people care about and grow to love and that serve their needs much better than forgettable box stores surrounded by oceans of asphalt parking lots,

<comment><USER9> Honestly, no, that's completely wrong. There are in fact plenty of places like that to live _in America_. And americans like them, in fact routinely paying far higher prices for property there than they do in the awful suburbs.

Americans live in sprawl because they like it. It's simpler in many ways, cheaper (often due to hidden subsidies, but cheaper nonetheless), and broadly more attractive than life in the urban core is.

And this isn't a trait unique to Americans. I work, as do many here I suspect, with a very international group of people. When european and east asians arrive in the US and look for housing, where do they live? Yup, in the sprawl.

Basically, if you want to win this argument (and really, I'm on your side) you have to get off the high horse. You can't just rely on people finally "getting it" and moving back into the city.

<comment><USER10> I am moving into San Francisco from Europe, and exactly in this situation of city versus further out.

By Americans SF is probably considered a car-free, and public transportation friendly city, but as an European I am shocked to see that almost every street more resembles a free-way than a living-space, and not just in SOMA. China- town so far is the only bit that reminds me of an European city in terms of it's street-life.

And I went looking for apartments/rooms to the north of Market street today, and was shocked to see that what could have been an exciting urban neighbourhood (and the only one built to human dimensions, within walking distance from the financial district), is a shady place, the Tenderloin.

It seems a critical mass issue as well, to some extent. In Europe the exciting young people live in the center, in human-sized communities, while in the US even for Europeans that want to be in the city, the city is made unattractive by crime, drugs, and trash in the street.

I guess I will be settling for something a bit further out, the Haight neighbourhood, or something north of Chinatown (people there don't seem to put their rentals/rooms on Craigslist), and a daily commute on the bus. Still pretty central probably on US-terms, but almost a flight to the suburbs in European terms...

(am still looking, if anyone has anything, mail at wybowiersma dot net)

<comment><USER10> Some images of the way cities should be built (and can be, as these are from real Dutch cities): [http://www.aankoopmakelaargroningen.com/images/websites/56//...](http://www.aankoopmakelaargroningen.com/images/websites/56//024.JPG) [http://cache.virtualtourist.com/789252-AMSTERDAM_ZUIDERKERK_...](http://cache.virtualtourist.com/789252-AMSTERDAM_ZUIDERKERK_GROENBURGWAL- Amsterdam.jpg) [http://home.kpn.nl/hemmoheidekamp/32/ooftstraat%20concordiab...](http://home.kpn.nl/hemmoheidekamp/32/ooftstraat%20concordiabuurt%20groningen.JPG) [http://v6.cache4.c.bigcache.googleapis.com/static.panoramio....](http://v6.cache4.c.bigcache.googleapis.com/static.panoramio.com/photos/original/22590551.jpg?redirect_counter=1)

Core ideas: \- More room for green, less room for driving, still some parking- space (it is the fast driving, not the sitting cars that kill city life) \- Very slow driving (15 miles an hour max) within residential blocks (a single narrow lane + speed-bumps and obstacles/hedges can enforce this) \- No cars at all in certain streets, playgrounds instead, keeps young families in the city \- Finally, build more densely, so shops / public transportation becomes economically viable. How hard can this be? (/me wonders what stops architects from simply copying historic styles and neighbourhood-layouts)

<comment><USER11> Now scale this idea to American metropolitan areas. 27 US metro areas are bigger than the Amsterdam metro area, and about a dozen are at least twice as big. Having been to Amsterdam, I can say that while it's denser then most American cities, it's not that dramatically different then say DC.

<comment><USER12> London?

</comment></comment></comment></comment></comment></comment><comment><USER13> We really need to stop calling everything a Ponzi scheme. A Ponzi scheme is a very specific thing: <http://en.wikipedia.org/wiki/Ponzi_scheme>

Adding that label to everything you think is bad cheapens both the meaning and the point you're trying to get across.

<comment><USER14> It isn't being applied to "everything [people] think is bad"; it is being applied to situations where the form "bad" takes is a reliance on continuous growth/investment/new-rubes to prevent collapse/disaster. It may cheapen the technical use of the term, but it most certainly conveys "the point [people are] trying to get across". Apparently, people find that of more general use than preserving a term-of-art of limited audience.

<comment><USER15> Why not use "unsustainable" instead of "Ponzi scheme?"

<comment><USER14> I think people are emphasizing the peculiar relationship between investment/growth and staving off disaster. Oil is "unsustainable" it is not a Ponzi scheme (in the popular sense) because if people doubled the amount of oil they bought this year this would, in general, bring the endgame closer and not further.

</comment></comment></comment></comment><comment><USER16> I expected this article to be much more inflammatory and generally wharrgharbl than it turned out to be.

But I hate suburbs, personally, so my opinion might be biased.

edit: a few more thoughts.

I live in a fairly 'typical' US smaller town ( _not_ a small town). Here, new houses are jammed on their 1/2 acre with a minimal back yard, row after row after row of them. They are made poorly and there are no trees lining the streets. Streets curve round and round, making it difficult to travel from place to place. New apartment buildings follow a similar fashion, but are very small: suitable for student roommates in size, not suitable for more than two- three single people living together (or a married couple).

Contrast this with the older downtown, where houses are somewhat original, trees are planted (leading to shady sidewalks), and the streets are straight, leading to easy travel.

I was thinking about this on a recent trip to Seattle's downtown. There, not only are there trees and original buildings, but the businesses as housing are intermingled, plus they go up, allowing a much greater compaction of space. I would believe there is quite a nice economy of infrastructure scale going on there. Further, it is not like you have to travel between Zones to go shopping or go out to eat: you wander on down half a block, and you're there. Both my town's downtown and downtown Seattle present a much nicer experience than the row housing suburban monotony.

<comment><USER17> I live on Capitol Hill in Seattle, a fairly dense neighborhood just east of downtown. I can walk to no less than two supermarkets, one Trader Joe's, and one food co-op. My job is a ten minute walk on foot. I am surrounded by terrific restaurants and bars. I actually get irritated when I'm required to get into my car to go somewhere now.

When I first moved to the Seattle area, I lived in Microsoft corporate housing in Redmond, a smaller suburb about 12 miles east of Seattle. The area felt depressing, isolated and uninhabited most weekends.

<comment><USER16> I stayed in Madison Park? region, and wandered over to Capitol Hill a bit. I liked the liveliness of the area! I really, really, _really_ like the jumbling of businesses and homes.

<comment><USER17> Me too. I can no longer imagine living in an area where I have to drive _anywhere_ five-or-more days a week.

<comment><USER18> I used to live on Capitol Hill, on 12th across from Seattle U. Then I moved to Tucson for grad school. The city is a giant suburb; you effectively can't walk anywhere. I miss Seattle.

<comment><USER17> A friend of mine from Seattle moved to Phoenix for grad school last year and says the same thing. Very unfortunate.

Surprisingly, another friend of mine who moved to Los Angeles for grad school a year now lives in a neighborhood of LA that she compares quite favorably to the Hill in terms of walkability. That, I would've never expected to hear.

</comment></comment></comment></comment></comment></comment><comment><USER18> By this definition, any real estate is a "giant Ponzi scheme," since it depends on people after you buying the asset.

Cities are great, but suburbs have their place (in large part because of a) building codes that prevent tall buildings and b) how schools are funded), which the author gets to some extent. If you're interested in the issue, try Edward Glaeser's book _The Triumph of the City_ : [http://www.amazon.com/Triumph-City-Greatest-Invention- Health...](http://www.amazon.com/Triumph-City-Greatest-Invention- Healthier/dp/159420277X?ie=UTF8&tag=thstsst-20&linkCode=as2&camp=1789&creative=390957) .

<comment><USER19> Bulding codes that prevent tall buildings are an asset particulary if you make money from selling petroleum, as they make it difficult to build walkable neighborhoods.

<comment><USER20> As someone who lived in a suburb and tried going without a car for a (short) while, it is near impossible to get around.

Biking on busy 35mph four lane streets where bored suburbanites go 50mph with no median is a prescription for death by invisibility. I had to double my short-lived bike commute to take advantage of back roads (which was even scarier because bored high schoolers barreling down the hill don't expect you).

Taking the bus to a destination (if it is even possible) can be a maddening version of real-life Candy Land in which you loop around and around and double-back and eventually reach point B.

Cul-de-sacs and the Fleur-de-lis style layout of suburban enclaves make public transportation a virtual no-go as the shortest-path distance from point A to point B is impossible as it would require jumping fences or at the least, going through people's sacrosant backyards.

Bottom line, in the suburbs you need a car to live - to go grocery shopping, to go to Applebee's to meet your friends and carry that annoying table buzzer around like an embarassing vibrator while you wait for your table, to go to the Multiplex, to go park in the deadly silent except for lawn mowers parking lot of your rental apartment megaplex, and (most importantly) to go to the closest major city to escape the burbs for real nightlife.

But, witness the explosion in mega corporate office parks, and realize that the growth was because not everyone wants to live in a city - especially once you have kids. Companies built office parks because that is where their employees wanted to live. Or was it a chicken-before-the-egg issue?

<comment><USER16> Yeah, what is _up_ with that "Cul-de-sacs and the Fleur-de-lis" layout going on? It's maddening!

<comment><USER21> It's because the market (that is, home buyers) don't want to live on streets that can be used as cut-throughs to get to other places. As traffic density increases, drivers will try to find shorter or less-congested routes to get where they want to go. The street on which I live (in an area built approximately 30 years ago) is an example of this: it is a wide two-lane street that connects two major roadways. There are other, non-residential streets that connect these same roadways but those routes are clogged most of the time. Therefore, people use my street with all of its attendant problems such as speeding, extremely loud exhaust and/or sound systems, not watching for people walking or biking, etc. So, non-connecting streets became the popular thing to do, along with curving streets to force drivers to slow down.

<comment><USER22> This design, by the way, isn't just some evil plot by the Robert Moses's and Henry Fords of the world; it's an idiom endorsed by Christopher Alexander in _A Pattern Language_.

<comment><USER3> I live on the "stalk" of such a development and therefore my street is the busiest. Nonetheless, it is extremely pleasant, as only residents or service people use it. It isn't a shortcut to anywhere. The biggest shortcoming is that no consideration was made for pedestrians. Even though we live close enough that my kids could walk to school, there aren't any trails or sidewalks that offer the opportunity. By road, we're a few miles away, so my kids take the bus. It's kind of sad.

<comment><USER23> That is exactly what they solved in my community. There are cul-de-sacs but they have also built bike-able and walkable paths between the back yards so you can still cut through if you wanted on foot or bike but cars can't pass through.

<comment><USER24> They do this frequently in french suburbs (at least the ones I've visited near Tours)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> There is no better place to see this than Cleveland. Especially because it's all starting to bite them in the behind. People in the suburbs depend on the main city to be the heart of the region. But, almost everyone with a family who possibly could has moved out to the suburbs, even ones that are only marginally better (Warrensville Heights, North Randell). This has caused a HUGE loss of tax base, even larger than the numbers would suggest (Cleveland has 50% of the population it did in 1960), because the populace is significantly poorer.

Now, there are water mains breaking all the time, gas lines that are leaking, the roads that are down to the brick under layer that they were built on, many, many abandoned buildings that are a concentrator of crime and cost. For example, a former clothing factory on E 55th caught fire this past week. It's been abandoned since 1992, so the city hasn't gotten any tax from it since then. Crime is really bad, especially on the east side.

People in the suburbs resent giving the city any money, because everyone in the city to them is stupid and lazy, and their taxes are really high already. And now the people are starting to move even farther out to Medina, Geauga and Lorain counties, and complain the taxes are even higher. It's ridiculous. Unfortunately, I really don't see this changing anytime soon, due to the way schools are funded though local property taxes.

<comment><USER26> Why would Cleveland be the best place to see this?

Wouldn't Detroit be better? Detroit has already collapsed, and is well into a long contractionary period. Local government (sans Kwame) have basically said "well we gotta get used to a smaller tax base and scale back".

Oh, and i absolutely agree on Ohio's school system being totally batshit (Michigan's too). The fact that state funding for the Ohio public schools was declared unconstitutional by the state supreme court, and then the state government just simply did nothing is a fucking outrage. To this day, nothing has been done to fix the fundamental injustices of Ohio's schools (rich suburbs can afford rich public schools, and poor towns get nothing. Not even intact school buildings).

<comment><USER25> You're right Detroit might be better. I'm just more familiar with Cleveland, and was using it more as a figure of speech.

And too be fair, Cleveland is collapsing almost as fast as Detroit, save for Downtown, Tremont, and the Gordon Sq. area.

Edit: And possibly UC, but that's still debatable. It's certainly not falling as fast as the surrounding neighborhoods, that's for sure. But there are also 5+ police departments patrolling to try and keep the riff raff out.

<comment><USER26> Yeah, i don't mean to detract from your point. Cleveland has problems, and it needs to find a way to jump start some development.

</comment></comment></comment></comment><comment><USER27> Why didn't you link to the original source? [http://www.grist.org/sprawl/2011-06-22-the-american- suburbs-...](http://www.grist.org/sprawl/2011-06-22-the-american-suburbs-are- a-giant-ponzi-scheme)

<comment><AUTHOR> Because the attribution in the article wasn't nearly visible enough. Sorry about that!

<comment><USER27> Good point, the contrast between link and text was subtle at best.

</comment></comment></comment><comment><USER28> Ponzi scheme is wrong-- a Ponzi scheme is a specific thing.

But it is true that the suburbs are unsustainable, barring the invention of Mr. Fusion or similar. When cheap oil is gone, the suburbs are gone.

Oh there are replacements, but none of the replacements can deliver at scale at a cost cheap enough to keep the suburbs going. The suburbs don't just require oil... they require very very _cheap_ oil. Otherwise they are simply not economical.

Electric cars are feasible, but they're going to need a _lot_ of extra grid capacity. Keep in mind that after oil peaks gas and coal will peak too, and keeping the grid up and growing capacity in the post-fossil-fuel age is going to be a major undertaking requiring the full development of pretty much every post-fossil-fuel energy source: gen-IV nuclear, wind, solar, etc.

All that adds up to cost... which brings us back around to the original point: it's not going to be cheap. Thus, the suburbs won't be economical. It will be cheaper to just abandon the suburbs and save the energy than to support them.

The suburbs will be the slums of the future. You can already see this happening.

<comment><USER29> "But it is true that the suburbs are unsustainable, barring the invention of Mr. Fusion or similar."

Nuclear should be pretty cheap once we are forced to stop building reactors as unique works of art, and stop powering them with one-time-use fuel elements.

</comment></comment><comment><USER30> The End of Suburbia is a rabidly biased documentary that takes another perspective on why the suburbs will fail, the cost of oil:

<http://www.imdb.com/title/tt0446320/>

And in free as in beer, glorious 240p:

<http://www.youtube.com/watch?v=Q3uvzcY2Xug>

It's entertaining and, IMO, well worth watching even if you disagree with some of the people they interview or prefer your documentaries balanced and dispassionate. You're sure to come away from the movie feeling you know more about the history of the relationship between the automobile and the suburbs.

<comment><USER18> "The End of Suburbia is a rabidly biased documentary that takes another perspective on why the suburbs will fail, the cost of oil:"

I dislike the suburbs as much as the next wannabe new urbanist type, but a) given development patterns of the last 70 years, it's hard to see anything happening to suburbs save on the same timescale and b) hybrid and/or electric cars will replace gas-powered ones if the price of oil rises high enough. Sure, the (current) higher stick price of hybrid / electric cars means that cities will become more attractive at the margin, but given how easy the substitutes are, I think electric cars (and the infrastructure necessary to run them) are now advanced enough to ensure that oil prices alone won't damn suburbs.

<comment><USER30> There's actually a section in the movie on the subject of electricity:

[http://www.youtube.com/watch?v=Q3uvzcY2Xug&t=16m15s](http://www.youtube.com/watch?v=Q3uvzcY2Xug&t=16m15s)

And later on they discuss hybrids and electric cars specifically. But to be clear, I don't recommend the movie because it's _right_ , but because it asks interesting questions and leads you to think about interesting possibilities.

We use a lot of energy. If we're going to replace the energy from fossil fuels with energy from electricity, we are going to need a lot more capacity than we have today. And as you can see from recent news, doubling or trebling our capacity is no small feat.

</comment></comment></comment><comment><USER31> There was an awesome talk by an architect Jan Gehl that I managed to catch ([http://www.abc.net.au/tv/bigideas/stories/2011/06/21/3248796...](http://www.abc.net.au/tv/bigideas/stories/2011/06/21/3248796.htm)) talking about how new development projects have been built to look good from the Plane and Helicopter perspectives (from 5000feet/metres and rooftop/helicopter) while completely ignoring the street level at which most people operate on.

While the talk was more about large building projects, in the second half he does talk about how Copenhagen has transformed itself into a more bike and people friendly environment. More specifically he details how people's behaviour has changed in response to the different environmen, where walking and riding has been made more accessible and safer (for instance bike lanes on the inside of parked cars, so the cars protect the bike lane from the street), more people end up walking and riding.

Now suburbia has pretty much been designed for cars rather than people, and as such it is no real wonder that you have to drive everywhere rather than cycling or walking.

It should be possible to change this suburbia to something less car friendly, perhaps in cities like Detroit and others, which are in the process of removing suburbs entirely (or so I have read), so that people's behaviour changes. However I don't see this happening easily in the USA. People will relinquish their suburbs, cars, SUV's only when pried from their cold dead hands.

</comment><comment><USER32> _The Power Broker_ by Robert Caro is a fantastic biography of Robert Moses, the person who set the template for this kind of development. Though in power in New York, the projects he built (highways, parks, bridges, public housing) was at a scale never seem before him. He figured out how to cut through municipal red tape to build at a large scale using public money.

Not that he wasn't a terrible person. But he wrote the rules that allowed a lot of this kind of development to happen.

</comment><comment><USER33> It's not really a problem as far as suburbs go: those who want can certainly live there as long as they consider them fit. If suburbia is a bubble, it'll come down crashing eventually.

If there's something to change with regard to the suburbs is that we should distribute the costs of living in a suburbs vs cities fairly. That is suburbanites should be paying much larger portion of the costs of public infrastructure and roads that stretch dozens of miles out to the countryside and are of no use except for suburbanites themselves.

However, there's a much more serious problem related to the effects of suburbia.

The fundamentals of current city planning and urban design, largely borrowed from the Garden City utopia, for the suburbia are so detached from the reality of urban development in cities that the greatest danger is in blindly applying these incompatible principles to the urban environment and, in effect of doing so, crippling the _real fundamentals_ that actually govern a vibrant city life. We are killing the whatever health our cities might still possess by making them more fit for automobiles, segregating different uses into different zones, and doing huge disruptive redevelopment projects that wipe out and reset to zero big parts of city neighbourhoods.

The result from this is be the devastation of cities by applying governance and design principles incompatible with city development--which has already been going on for decades--which effectively leaves people only the suburbia.

Such a monotonous development is bad for the survival in general as is anything that lacks diversity. Think of Windows viruses versus virii for other platforms. Such a big disruption that could wipe out suburbia for anybody but the richest of the people is the rising of the price of oil. The oil price has already reached levels where daily automobile commuting from the farthest backwaters of suburbia becomes an actual economic obstacle. If, or when, suburbia fails, I'd like that we would still have cities where to retreat.

</comment><comment><USER34> Hacker News Memes:

_________ Considered Harmful

_________ Is a Ponzi Scheme

I don't know why those phrases resonate here, but throw in some nouns and half an hour writing, and you can say hi to the front page.

<comment><USER35> Don't forget this one :)

_________ Bitcoin _________

</comment></comment><comment><USER36> I'm beginning to think that the term "Ponzi scheme" is a semantic Ponzi scheme.

</comment><comment><USER37> The author's vague assertions that suburban development in America represents an enormous unfunded liability are supported in part by a considerable body of recent research suggesting that suburban lifestyles are far less efficient than their urban analogues.

To get you started, Geoffrey West, one of those physicists at the Santa Fe Institute who stick their noses into everything but physics, does a schtick introducing the idea of power-law scaling in urban agglomerations that you can find in various versions on YouTube [1].

An easy-reading overview of the same idea is Luis Bettencourt's paper with West, recently published in _Nature_ , which points out that "doubling the population of any city requires only about an 85% increase in infrastructure, whether that be total road surface, length of electrical cables, water pipes or number of petrol stations. This systematic 15% savings happens because, in general, _creating and operating the same infrastructure at higher densities is more efficient, more economically viable, and often leads to higher-quality services and solutions that are impossible in smaller places._ " The already classic reference is their 2007 paper in PNAS [3].

But the power-law approach ignores the true city-suburb distinction by focusing solely on size. (Suburbs are not small cities.) Edward Glaeser, a top urban economist, and Matthew Kahn recently did a panel study of geographic greenhouse gas emissions that includes a direct comparison of cities to their suburbs [4]. They found that suburban household emissions are higher than those of city households, usually substantially, in 48 of the 50 largest American metros. (See Table 5 for the money-stats.) The methodology reveals a wide urban-suburban disparity in energy-efficiency that I imagine is mirrored in the efficiency of use of many other resources.

(Next up, someone needs to integrate these approaches by comparing urban and suburban power-law residuals [5].)

None of this bears directly on the author's point in the linked article, but it does suggests that suburban development is a poor investment if an urban option exists.

1\. A recent (and short) version: <http://www.youtube.com/watch?v=4m-jM_Z9LtA>

2\. [http://www.cabdyn.ox.ac.uk/complexity_PDFs/Publications%2020...](http://www.cabdyn.ox.ac.uk/complexity_PDFs/Publications%202010/Nature_Cities.pdf) [PDF]

3\. <http://www.pnas.org/content/104/17/7301.full.pdf+html> [embedded PDF]

4\. [http://www.hks.harvard.edu/var/ezp_site/storage/fckeditor/fi...](http://www.hks.harvard.edu/var/ezp_site/storage/fckeditor/file/pdfs/centers- programs/centers/taubman/working_papers/glaeser_08_greencities.pdf) [PDF]

5\. The residual approach is presented in another recent paper by Bettencourt, West, and crew: [http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjourna...](http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0013541)

<comment><USER38> I recently made the choice to go from the suburb to urban environment, and while I have to say that personally, it has been way better.

While I do pay more for rent, I do have a more enjoyable day. No commute. Walking distance everywhere of importance. Cool back-drop.

So, the ultimate question then, given what we have, how do we scale this up?

<comment><USER39> I'll tell you what doesn't work. Overbuilding the place. Staten Island is a tragic example of this. In Manhattan, it's like they're repaving the streets with park.

You need a certain amount of density. But the overriding purpose of the density is to be able to cram more stuff-you-want-to-do near your house.

Also, keep in mind that the "stuff" in stuff-you-want-to-do can be replaced with "people".

<comment><USER40> Yup. This has been borne out in studies of high-rise buildings as well - <USER2> just don't work to efficiently house large numbers of people, it ends up cheaper overall to put people in traditionally-sized houses.

</comment></comment></comment></comment><comment><USER41> There must be a corrolary to Godwin's law that says any financial system will eventually be compared to a giant Ponzi scheme. New metaphor, please!

</comment><comment><USER42> I guess some people have found more sustainable healthier ways of living inside a city:

"Bicycle Rush Hour Utrecht (Netherlands) III" -> <http://www.youtube.com/watch?v=n-AbPav5E5M>

<comment><USER43> Flat land helps; see Davis, CA.

Now try that in wide swaths of San Francisco: [http://maps.google.com/maps?q=22nd+st+and+rhode+island+&...](http://maps.google.com/maps?q=22nd+st+and+rhode+island+&hl=en&ll=37.75426,-122.401578&spn=0.009857,0.01929&sll=37.0625,-95.677068&sspn=40.052282,79.013672&z=16&layer=c&cbll=37.753334,-122.401107&panoid=mCWNoN_KpD5p3WE9NygDDQ&cbp=12,339.65,,0,0.5)

</comment></comment><comment><USER44> I already knew this. This is why Europe will continue to do well whatever the oil price. Most cities are still built around public transport. The UK and some others are not.

When nobody can afford to commute from their homes to their work, and there is no alternative, Roger Rabbit will seem bitterly unfunny.

<comment><USER45> There are certainly cities in the UK that still depend on public transport far more than cars - I live in one: Edinburgh. I work in an office right in the center of Edinburgh and of the thirty odd people here _nobody_ drives to the office - most take the train, some take the bus and a few (including me) walk.

<comment><USER46> And London too, which manages half the bus trips in the UK, among other things.

</comment></comment></comment><comment><USER47> Off-topic, but what is up with the font size changing seemingly at random?

<comment><USER48> Bugged me too. I quickly gave up trying to read it.

</comment></comment><comment><USER49> I'm sympathetic to this viewpoint, but I'd be much more interested to read some research on this topic than a bunch of unsourced opinion.

To make a claim like this you need some hard numbers, in my opinion.

</comment><comment><USER50> Governments don't have money for infrastructure any more because, since the '60s, they have been spending this money on social programs.

</comment><comment><USER51> But suburbs are also taking themselves back. Many suburbs have been working to bring the jobs (and taxes) back into themselves. They also have their own utilities and water supplies, and clearly the shopping is there. The biggest gap is food, and cities aren't going to fare any better than suburbs if our transportation industry gets disrupted.

</comment><comment><USER52> Can I get a raise of hands from those people who have a mortgage and actually support this?

</comment><comment><USER53> In a sense, America is a giant Ponzi scheme. We're in the middle of a long, slow currency bubble and drenched in the spoils of centuries of imperial expansion... at present, the average American adult works less than four hours per day and has inferior work ethic and basic education than an increasing percentage of the citizens of the third world, most of whom are ruled by corrupt despots installed by the US.

<comment><USER54> Where'd you get this «less than four hours per day» thing?

<comment><USER53> [http://www.huffingtonpost.com/2011/06/24/americans-work- less...](http://www.huffingtonpost.com/2011/06/24/americans-work-less-than- four-hours_n_884037.html)

<comment><USER55> That's four hours per day averaged over the entire study. These statistics are more telling:

"Employed persons worked an average of 7.5 hours on the days they worked. More hours were worked, on average, on weekdays than on weekend days--7.9 hours compared with 5.5 hours."

This about matches what you would expect for full-time employees. I'm not sure how this can be construed as laziness. In fact, there are several studies that show the exact opposite: Americans working more hours than most other first- world countries. I do not have links handy, but I believe one was posted on HN a few months ago.

Source: <http://www.bls.gov/news.release/atus.nr0.htm></comment></comment></comment></comment>


With Hacks and Cameras, Beijing's Electronic Dragnet Closes on Hong Kong - <AUTHOR> https://www.nytimes.com/2020/08/25/technology/hong-kong-national-security-law.html <comment><AUTHOR> Twitter thread by the author of the article: [https://twitter.com/paulmozur/status/1298185498062594050](https://twitter.com/paulmozur/status/1298185498062594050)</comment>


Show HN: Side project turned startup - Online Privacy via Client-side encryption - <AUTHOR> https://www.socialfortress.com

<comment><AUTHOR> Started working on the Social Fortress platform 7 months ago when there wasn't a solution that satisfied a need. Eventually turned it into a funded start-up and now it is live.

Social Fortress provides consumers with unparalleled privacy online by integrating transparent client-side encryption transparently into major social networks, webmail service providers and desktop email clients. Consumers' data is encrypted prior to leaving their device and stays that way until it reaches the device of trusted contacts where decryption is also done on client devices.

Social Fortress protects messages and photos using AES 256 CTR method with rolling keys. No two messages or photos are encrypted with the same key. Social Fortress maintains the central key management server as well as the consumers relationship and authorization trees.

All of the encryption and decryption is done in the background, directly inline, so the end user experience on his or her favorite online communication platform does not change. Messages are stored wherever they would normally should be except they are protected with AES encryption every step of the way. Photos are stored encrypted in a separate data center with no access to the key management infrastructure.

It takes less than a minute to get Social Fortress, and it installs as a single browser plugin for web apps or application plugin in the case of Outlook or Thunderbird. We just launched into an open beta and would appreciate your feedback.

If you have any questions that are not answered on our site, we will be here to answer them.

<comment><USER2> Where are you based? How much funding did you get? Was it angel funds or VC funds? Did you go after funding yourself, or were you approached about it.

Just curious.

<comment><AUTHOR> We are based in Atlanta.

We have raised around $100k and currently in multiple discussions for series A. Self funded the first $25k with the rest from Angels.

We were recently accepted into a incubator program which comes with funding that is not included in the number above.

Our current discussions for a Series A were initiated by the other parties.</comment></comment></comment>


Show HN: My Weekend Project, Socialgrain - <AUTHOR> https://socialgrain.launchaco.com/ <comment><AUTHOR> I've always been intrigued by how we humans are evolving and leaning towards technology, devices and what not.

And as we hold our hard skills super high in the hierarchy, we are at the same time drifting away from our essence, i.e. human interaction; we feel super uncomfortable while talking to people, articulating ourselves, dried up communication skills, high spirited teamwork, humbling towards others, Public speaking and a lot more.

To which, shouldn't there be a medium or platform that helps you with all this as this knowledge can't be taught via books or reading blogs, but via peers or professionals.

So, I had the idea to build a sort of 1-1 marketplace specifically for soft- skills, believe it or not, these are super underappreciated, yet they carry a huge role in our professional growth and personal well being.

There have been many times in the past where I wanted to improve and learn a specific soft skill. But to all that I ever come across was prerecorded videos or some professional carrying a colossal fee - but did not want to go through that. Instead, I got mentored by people in my peer group who have innate talent in this.

Here are some of those soft skills:- \- Communication (Public Speaking, Clear Articulation of idea within a group/peer group, Interview, Conversation) \- Persuasive Writing / Written Communication(Clarity of thoughts) \- Time management \- Independent Thinking(Critical Thinking)

<comment><USER2> I visited the site and wasn't really sure what it was offering, or what/if I have to pay anything. After reading your comment I have a better idea though. Perhaps add some of this copy in your comment to the website itself?

Also your tagline "Build yourself. Build your soft skills." may be better if it's reversed. So "Build your soft skills. Build yourself." It seems like a better causality flow.

Good luck!

<comment><AUTHOR> Appreciate your insights. Yes, I agree, need to make multiple changes to it.</comment></comment></comment>