Ask HN: What's your biggest struggle with Microservices? - <AUTHOR> I'm working on a book about microservices and want to know what questions and topics you'd like to see covered.<p>What were your biggest hurdles when first adopting microservices? Was it hard for your team to determine service boundaries? Did you struggle with developing and managing them? <comment><USER2> Convincing people that microservices are not a cure-all but just another design pattern.

You have to start out with a monolith and only if you realise along the way that some components might work better as a service (micro or not) you should extract those. Until then, commonplace modularisation will serve you just fine.

Once you have more than 1 microservice running infrastructure becomes a huge problem. There's no real turnkey solution for deploying and running internal / on-premises microservices yet. You basically have to build monitoring, orchestration and logging infrastructure yourself.

<comment><USER3> One rules of thumb is "one team one service". If you have multiple teams working on a service then it _might_ start making sense to migrate to multiple microservices.

<comment><USER4> That's a nice rule of thumb but it's radically different from the team I work on. We run half of one logical service (visible to users outside the team), but that logical service is implemented with a dozen or more microservices internally. We have user-facing services which need high priority, different flavors of batch jobs which need to be orchestrated and prioritized, and various other pieces of infrastructure.

The number of different services is close to the number of people on the team.

This is working very well for us, and it provides us with some welcome isolation when there are problems with one of the microservices. Maybe we can go into read-only mode or stop processing batch jobs for a while, depending on what services have problems.

But we also have good infrastructure support, which makes this a lot easier.

<comment><USER3> Yeah I could totally see how if you have very strict uptime requirements and you want to allow different pieces of the infrastructure to be able go down at different times then it's an exception to the rule.

Just for every team that I see that has a good use case for micro services, and does the hard work of instrumentation and deployment, I see 8 teams that go with microservices because they think it's a magic bullet. Then they don't spend the time and effort necessary to get instrumentation and orchestration up and running. They don't aggregate logs, they don't spend the time to create defined contracts between the services, they don't make services robust to the failure of other services. They just complicate their debugging, deployment, uptime, and performance scenario without getting any of the benefits.

<comment><USER4> In this case, we don't have strict uptime requirements. But there are enough times where our integration tests don't catch some kind of error, and it's nice that the service doesn't have to go completely down for that.

It's also a lot easier to prioritize process scheduling than it is to prioritize thread scheduling.

</comment></comment></comment></comment></comment><comment><USER5> Our org made all the right decisions at the top, invented their own microservice fabric stuff with way too much tech debt, end result was a very bad (inefficient and painful) development experience with way more technical debt than the monolith we replaced.

There was so much fragmentation between each autonomous team that we were forced to standardize on a common framework (think of build/integration pipelines and common modules) which could almost never be changed or refactored.

The upside was that there was way more automated testing and flexibility in deployment, so overall it was a net gain.

Still, the actual ergonomics of working with the build/release system was so painful it made me leave to work somewhere where I could do actual innovation.

There was so much waste that was already 'baked into the system' and the other teams finished their work so if _you_ had struggles with it it was your problem

<comment><USER6> Overall a net gain, but it made you leave?

That definitely does not sound like an overall net gain.

<comment><USER5> It was a net gain for them..

They were doing even worse before. They upgraded to a CD style pipeline to AWS instead of monolithic java apps. It was better but nobody realized there were deep and very wrong tech debt. The complacency around this was a big factor in causing me to seek new challenges.

The biggest pain points were always not the OSS stuff that was adopted, it was all the "NIH" innovations that were developed because the OSS stuff wasn't quite right, stuff that "worked" but had no support or allowances for improvement.

</comment></comment></comment><comment><USER7> Integration testing, dev environments, and data sharing.

When we started switching over to microservices, originally we were going to have some sort of standardized message format, which would include all of the info that service would need to do its job.

However, there were too many people building it too quickly, and it's since devolved into a spaghetti pile where almost every microservice has about 3-4 others on which it is dependent (and a handful on which those are dependent) - to query for some bit of data, set off an async task, etc. This obviously complicates the development environment significantly.

When I want to add a feature to a service it can take hours trying to bring up the correct dependencies, update their configuration, fix the errors that they're returning due to their dependencies being down, and set up the necessary databases and ssh tunnels.

</comment><comment><USER8> Testing and debugging inter-service concerns. These, in my opinion, are inherently difficult to do when working with this architecture. In other words a lot of ugly real-world complexity hides in the space between the neatly maintained gardens that is the inside of a single service giving a somewhat false view that the problem has been successfully chopped up into small, compose and manageable pieces.

<comment><USER9> This is interesting. Can you provide an example - where it wouldn't have made sense to collapse two such interacting services into one? My understanding is that an important litmus test for carving up microservice boundaries is ensuring 'true' isolation/separation of concerns. Admittedly, I don't have enough practical experience to know if this is a misguided assumption.

<comment><USER10> Someone here mentioned a great rule of thumb that addresses most of issues here: one team = one service.

<comment><USER11> This is kind of weird rule since a MS is said to contain 1k loc. And having a full team (other than one guy) for 1k loc is... well how can you screw up so little code? The hard part isn't the teams. The hard part is to know what a MS should contain and still be useful.

</comment></comment></comment></comment><comment><USER12> My biggest struggle is people want to use them. I can't tell you how many junior devs I've ran into who dream of every single function call becoming a distributed read/write in the message bus.

It's tough to fit this in a small comment, but I would say avoid microservices until you know they are the right solution. They are often the right solution when you have multiple teams with independent development schedules. They are often the right solution if you have daemons that have fundamentally different characteristics (web server vs message consumer).

They are often not the right solution when you decide you need another module in your app.

Distributed systems are moving parts. Moving parts break. You shouldn't have more than necessary. Deciding what "necessary" is is a pretty tough task.

</comment><comment><USER13> We started with a monolith which made determining service boundaries that much easier. What we struggled with the most is the concept of sharing data between services. We started off with publish/subscribe method which quickly became very strenuous to maintain. Ended up switching to plain service-to-service communication over HTTP/S. This allowed us to focus on resiliency and performance of each micro-service more so than before. And so far it's been paying off great. Other things like having an overall view of the health of the entire system and having a way to consume and analyze logs in one place is absolutely detrimental to success in this type of architecture.

<comment><USER14> detrimental?

<comment><USER13> instrumental is the right word lol :)

</comment></comment></comment><comment><USER15> For us, it was managing them, in all senses (development, logging, secure communcation between, etc.). Kubernetes and (Calico for networking) help dramatically to address these problems. I finally really see the value in microservices; before we started using Kubernetes, all my attempts with a microservices approach made me hate them.

</comment><comment><USER16> One of my biggest hurdles was trying to figure out if microservices were right for us (a small distributed team) and then communicating/selling the benefit of them to my team and bosses.

This involved creating a mutually agreed upon definition of what we actually meant by "microservices". I literally repurposed paragraphs out of Sam Newman's book to do this.

As a small team, I also didn't have examples to support my argument that microservices would benefit us.

<comment><USER17> What did you end up deciding? And what were you thinking the benefit might be?

My sense is that for a small team a microservices architecture might be more trouble than it's worth, but I can definitely see how some kinds of applications - or even kinds of teams - it could be a good fit.

</comment></comment><comment><USER18> Integration testing. Unit tests are not enough. You need to test the interactions between microservices at runtime because there are a lot of things outside of the code that can break, such as version incompatibilities, caching problems, timeouts, etc.

</comment><comment><USER19> Running microservices is like running a city: you need roads, highways, police departments, fire departments, and so on.

Without an abstraction layer and proper planning, different teams will start building microservices with lots of common functionality like security, authentication, logging, transformations that over time will increase the complexity and the fragmentation of the entire system. Ideally you would want services to simply receive a network request, serve a response, and delegate all the complimentary middleware execution somewhere else, like an API gateway.

Traditionally API gateways in a pre-container world were centralized in front of an API, but modern API gateways can also run in a decentralized way alongside your server process, to reduce latency.

Then once you have everything in place, you end up with a bunch of microservices that your developers (maybe belonging to different departments) will have to use. You will need to fix discoverability, documentation and on- boarding. Some of these services may be also opened up to partners, so there's that too. Traditionally developer portals were only being used for external developers, but they are becoming a requirement for internal teams as well.

Finally, you need to carefully monitor and scale your services. Without a proper analytics and monitoring solution in place it will be impossible to detect anomalies, scale horizontally each service independently, and having an idea of the state of your infrastructure.

Generally speaking running microservices can be split in two parts:

1\. Building the actual microservice.

2\. Centralizing common functionality, documentation/on-boarding and analytics/monitoring.

Most of the developers or project managers I regularly speak to tend to forget the second part.

Disclaimer: I am a core committer at Kong[1]

[1] [https://github.com/Mashape/kong](https://github.com/Mashape/kong)

<comment><USER20> This. I really like the analogy that of running a city. There are just so many concerns in and around building and running microservice architectured systems: security, logging/analytics, failure modes/recovery/detection/self- healing, message protocol versioning, data persistence, capacity scaling and many more. Much of these are easy to defer/overlook early in dev't stage but will later become very hard, if not impossible to incorporate in.

Btw, we thank you and your team as we are Kong users as well. :)

</comment></comment><comment><USER21> Development environment becomes somewhere between extremely hard and impossible to set up. Resign yourself to running tests locally with staging as the only place to test your services talking to each other. This is my experience at a medium size public company on the bay area.

<comment><USER22> This is common, but it shouldn't be. If you have setup scripts to run each service, or if they're containerized, it's just a little additional work to get to where you can spin them up with a single command.

</comment></comment><comment><USER23> Orchestration: Keeping track of what versions of what services need to be live, where services should find the correct versions of the other services they need to talk to, spinning up staging, production, and test versions of services, feature flagging services, etc.

</comment><comment><USER24> On a technical note, distributed transactions are tough to get right.

</comment><comment><USER25> Authentication / Authorization. If you end up with a round trip to your big iron anyway, the benefits get muted.

</comment><comment><USER26> Micro-services must be under the same mantra as bomb defusers:

1- You first mistake is wanna to (be a bomb defuser) use micro-services.

Don't

2- You second mistake is (getting close to the bomb) start building a micro- service infrastructure.

Not.

3- You third and worst mistake is believe (you can defuse the bomb safely) you can build a microservice solution correctly.

The only reason to (be a bomb-defuser) use microservices is (you are part of the police or army and somebody must do this) you ALREADY HAVE SOLVED THE MAIN THINGS FOR YOUR APP and now are in the hostile territory where micro-service truly make sense. You are facebook-alike.

<comment><USER27> Totally agreed. Few months ago we started building micro-services infrastructure. We were waiting with that for a bunch of years until things started to get harder and harder to maintain within one app. This is really costly at the beginning if you want to do that correctly.

</comment></comment><comment><USER28> Convincing people that "stateless" really does mean "stateless", and if you hold state, you're going to have a bad day when your service is stopped.

Latency is another big one - the communication latency between any two points is miniscule, but throw together even 4 services, and suddenly the time required to encode, route, transmit, receive, and decode adds up quickly. If you want to keep round trips to under 100ms in your own code, each microservice you add could easily subtract 10ms from that budget.

</comment><comment><USER29> I'm privately skeptical about starting with microservices-first for new application development. I have seen a lot of literature about starting off with a monolith and then breaking that down as you see fit. This makes more sense to me than introducing a ton of complexity up front.

Or is it better to deal with that complexity up front and then adding new services/functionality will be easy as time goes on?

<comment><USER30> I'd recommend starting with a monolith, but pay extreme attention to properly separating modules and hiding them behind a small, well-defined API. Then it will become easier to separate these modules out as necessary.

<comment><USER31> Whether you work with a monolith or microservices, decoupling is the key, and the best way to ensure decoupling is using the proper abstractions and APIs.

</comment></comment></comment><comment><USER32> Each services need to communicate with each other. And, 100 things can go wrong in that and lot of effort and fail-safe mechanisms has to be put in order for it to scale. Having said that there are lots of solutions out there but does require good amount of understanding and work

</comment><comment><USER33> Just some topics, can elaborate on those later, if you want: \- Development Setup (e.g. minikube) \- Circuit Breakers \- Managing Backpressure \- Service Discovery \- Encryption \- Monitoring / Metrics \- Domain Translation \- Load balancing / Fail over / retry

</comment><comment><USER34> The biggest struggle is dealing with the dependency chain when you need to update multiple microservices in order to deliver a major new feature to customers. You have to get everyone to agree on changes to the service APIs, then change the lower level services, deploy them, then move up a level and repeat. This is especially problematic if different developers are responsible for each service; lots of opportunities for delay and misunderstandings. It seems counterintuitive, but if you need to move quickly then a single monolithic application can actually allow for more rapid changes.

</comment><comment><USER35> One big challenge I've found is the balance between standardization vs autonomy. E.g. monitoring, log formats, deployment, service discovery, etc are things that can benefit from being standardized across all services, but implementing it can be tricky. Too much autonomy and you end up reinventing the wheel (inevitably with variations) - too much standardization (e.g. by providing centralized libraries) can make development slower and create dependency hell.

</comment><comment><USER36> I haven't seen anyone mention developer skill yet. We tried microservices where I work, but the developers skill in debugging async code proved to be problematic.

</comment><comment><USER37> Long term ownership of services is always a problem.

</comment><comment><USER38> In enterprise you might end up with different gate keepers, each maintaining a differe service... getting changed or added is impossible

</comment><comment><USER39> Architecture, Architecture, Architecture.

The easiness to develop a single service makes many engineers loose focus on the big picture. Without an proper architecture and governance in place, larger microservice projects tend to fail pretty fast and in horrible ways.

</comment><comment><USER40> I'm still not quite sure how to think about and code for eventual consistency.

</comment><comment><USER41> Segregation and service discovery. How to avoid multiple jumps between networks that separate Microservices. Also distributed transactions. Reliability is a huge problem with network separated Microservices.

</comment><comment><USER42> testing infrastructure: we have a bunch of teams that now need to run jenkins full suite tests, that comprise many servers, so there is an explosion of servers X branches that makes managing all of that very difficult.

</comment><comment><USER43> Doing microservice right with proper data isolation is a challenge. Once you do that the next challenge awaits - strategy and infrastructure to replicate the right data set to other domains

</comment><comment><USER44> From my experience, there are several issues that were mostly touched by the other commenters:

      * auth / authorization: easy to grasp, tough to implement,
        opens a world of architectural wtfs
      * service configuration files / variables
      * understanding that more microservices can run on
        the same host
      * system entry point, credential based, jumpbox

And the most important issue I keep seeing across the systems I work with is documentation and speed of onboarding new staff.

Happy to chat more, I am definitely not an expert on the domain but for what is worth I was technical lead (whatever that means to you) on an AWS Case Study project.

<comment><USER45> Well, I'd like more info...

What was the case-study? Can you link to it?

What has been your best resource to support/inform any of your arch design considerations?

<comment><USER44> Sure, the case study would be this [https://aws.amazon.com/solutions/case- studies/rozetta-techno...](https://aws.amazon.com/solutions/case- studies/rozetta-technologies/)

For architecture debates ( yes there were some :) ) the resources used would vary depending on the level of the issue at hand.

For inter-service communication we had a standardized API interface that would need to be exposed and most of the discussions would circle around how does the service solve a problem and what API does it expose to the outside world.

For general system workflow issues we would resort to diagrams or good old fashioned whiteboarding whose artifacts would also get converted into diagrams.

A general rule-of-thumb that I pushed was that every single service would be documented starting with the design process and ending with support info.

Hope that makes any sense :)

</comment></comment></comment><comment><USER46> I've worked at least one place that did Microservice as a trendy tech salad. How do you write microservices without lots of lock in?

</comment><comment><USER45> Can you please do an intro that is an ELI5 on Microservices, how/why/when/where they are used etc...

</comment><comment><USER47> Determining the difference between a service boundary and a library boundary.

</comment><comment><USER48> New docs / APIs / terminology / versioning

</comment><comment><USER49> Management/orchestration. It's really convenient to be able to deploy things in different docker containers, and isolation, and etc., but the actual orchestration seems to be unnecessarily painful. In no particular order:

* k8s is apparently ridiculously hard to set up if you want to use something that isn't AWS / GCE / GAE / non-"big-cloud"-provider-here.

* Many of these have questionable (IMO) default authentication choices. I can understand if it's running on an internal network or something, but if you can't set up an internal / private network to hide the management interface (ex Marathon, k8s dashboard, ...) inside, you're SOL it seems. Ex. Openshift Origin having a login UI, but the default allowing logging in with basically anything you want.

* Rancher seems nice, but between the internal DNS service randomly failing all DNS queries until a full restart and rancher-server's internal MySQL server writing to the disk at 500Mbps, it's... iffy. At least it's a nice UI/UX otherwise and supports lots of authentication options out of the box.

* Straight-up not working. For example, I tried running Openshift Origin on stock Debian and Ubuntu installations, and it couldn't even finish starting up before it crashed and burned. I did file an issue against openshift/origin about this, but so far it's been unresolved. Another example with Openshift, after figuring out how to work around it failing to even start up, it can't even create pods/containers. This is apparently a known bug that's been around for a while (~4 months) with seemingly no resolution.

* Weird docker version requirements. I can get that things like k8s would want to pin to LTS versions of docker. That's fine. But if I can't even import the signing key to install the LTS docker version because it doesn't even exist in the keyservers anymore, that sounds like an issue to me.

Maybe this would be different if I was using one of the Big Cloud (TM) providers. Who knows. But with my budget of "poor college student," OSS offerings are all I can do when my entire budget is consumed by server bills - and I can't cheap out here; a few TB of bandwidth and maxing up to 16 CPU cores isn't cheap :( - and it just seems like the "state of the art" is pretty terrible, at least from the UX perspective. I spend enough time staring at text and delving into the CLI and whatnot when I'm writing software. Why is it seemingly so hard to get even a simple UI to cover the basic functionality - create a master node, add slave nodes, deploy containers, and scale them up? Rancher seems to cover this use-case the best, but I've run into enough issues with it that I'm starting to seriously consider figuring out how to write my own orchestrator. I'd rather not, since it'd be a lot of work, but setting up these "standard" tools is a ridiculous Herculean task if you don't have a massive budget, it seems.

Ninja-edit: For a bit of perspective, I'm talking about a spare-time project that ended up gaining far more users than I ever expected. I'm the only person working on it, so trying to figure out all the development, ops, etc. on my own has been a huge struggle since so many of these tools just have a god- awful UX.

</comment><comment><USER50> Handling common concerns in each microservice such as authentication and authorization, building resiliency in each µservice, managing each µservice configurations. This causes duplicated effort in each µservice. Need to look at service mesh (istio, linkerd).

Handling service discovery, API gateway in ever-changing kubernetes ecosystem.

</comment><comment><USER51> Is Building Microservices book not enough? Hope to see no overlap of ideas and topics in the new book.</comment>


Ask HN: How can I convince a team member to try TDD - rooam-dev Hello,
I hope someone could share their experience with a similar situation.
Basically, I get a strong push back from a fellow co-worker to try TDD. He thinks it's a waste of time, giving examples of random articles that validate his point of view. I trust him and he is a hard-working person, but in this case I think he doesn't want to get out his comfort zone. I don't want to overrule him, but it may get to it, because it gives a bad example to newer team members.
So far my best argument is: "Don't do it for you, do it for the team".
What do you think g(uy|irl)s?
Thank you in advance.
PS: Not sure if it matters, but we use groovy + spring. <comment><AUTHOR> Consider how things might look from the other side:

 _I 'm getting a big push from a fellow co-worker to try TDD. He thinks it's the best thing since sliced bread, giving examples of random articles that validate his point of view. I trust him and he is a hard-working person, but in this case I think he doesn't want to get out his comfort zone and at the end of the day, just isn't seeing the bigger picture. I don't want to overrule him, but it may get to it, because it gives a bad example to newer team members. And because for some random reason I have weight to throw around and he doesn't._

 _It 's like I keep trying to tell him, 'Yo -- Been There, Done That... back in 2003, bro'. But still he keeps pushing and pushing and pushing._

Do you see the pre-set bias here? "I'm the one who's innovative and well- rounded and following best practices; _he 's_ the one stuck in his comfort zone, trotting out random articles to support his point of view."

<comment> rooam-dev Haha, good one. My goal is just to try it before saying no.

</comment></comment><comment><USER2> > So far my best argument is: "Don't do it for you, do it for the team".

What concrete problems are you having that you think TDD is going to make better? Are too many bugs making it to production? Are you not writing enough tests? Are your tests poor quality?

I would have a bad reaction if somebody was trying to push TDD on to a project without objectively weighing up the benefits as TDD isn't suitable everywhere.

Instead of citing random articles, you should all work together to objectively weigh up the pros and cons for your team, then perhaps give a version of TDD a trial on a suitable small project or subproject.

If you can't convince people, maybe you're not selling the specifics of how it's going to help with the issues your team is facing or you haven't considered this aspect hard enough yet.

<comment> rooam-dev My main goal is to improve our development process. I understand everyone is different and has their own ways, but if somebody doesn't use a tool at its full potential then in the end company/team loses, because instead of improving things, people fight/use less efficient process.

In this case I think TDD or a version of TDD acceptable to the team can really speed up development. I want that feeling if I run all the tests I can deploy.

All devs are remote devs with different timezones.

</comment></comment><comment><USER3> Maybe TDD just isn't for him/her/other?

I prototype, then tests, then refactor and I know some people would be zealously against this style; demanding tests before everything. However my mind just doesn't work this way, I need to play with code to get ideas out of my head; coming up with relevant test cases takes a magnitude of time longer than making the prototype.

Now if your co-worker is not writing tests at all, this is a different matter, but as long as the code he writes is covered by a test suite in the end, what does it matter which order he/she does it in?

<comment> rooam-dev The goal is to try it as a team. Having 2 devs on a project with different approaches won't be efficient.

The part I strongly believe is that before writing a piece of code I need to know what I am writing. Similar to a task/story, I need to have an acceptance criteria. Knowing to write a test means knowing what are you writing.

Thanks for your input.

<comment><USER2> > The part I strongly believe is that before writing a piece of code I need to > know what I am writing. Similar to a task/story, I need to have an > acceptance criteria. Knowing to write a test means knowing what are you > writing.

Is there an existing problem in the team where people don't know what they're writing though?

<comment> rooam-dev I think at a high level only. Try and see how it goes (write some code, execute it and see the results) could be improved.

</comment></comment></comment></comment><comment><USER4> TDD can be counter-intuitive for a lot of people, but I think that the most important thing that anyone should be aware about TDD, and you as a Manager/Lead/Overlord should use as your battle cry is that "TDD is all about measuring".

Measuring? No! not code coverage, but rather as in real life...

If you drink coffee, and you like to add some sugar/milk/gold or whatevs, do you just blindly add a random amount? or do you use a spoon or a pre-"measured" packet? The later? Yeah? And why is that? Because you could ruin the coffee if you add to much or too little!

The test is the measure!!!

Try with anything else: if you doctors prescribes something, do you take the amount prescribed or do you just shake the bottle, or throw some dice to come up with the amount to ingest? (granted, people these days... _rolls eyes_ )

So you see, if you want to guarantee that your program, function, App, etc. works correctly with certain confidence, and that parts can be changed as needed while also having some assurance that it won't "OD" your users, you have to have some measures for it!!! Or not and be sued for negligence, or enjoy some bad coffee, or whatever your analogy is!

So tell your co-worker if he lives by the same philosophy he codes, you're gonna tell his life/health insurance about it ;-)

Also, ask him how he would feel about being the passenger of someone that drives a car that's never maintained, sometimes is fueled with gasoline but some other times with diesel, and really enjoys driving blindfolded... you know, be he can "sense" stuff... HA HA HA HA HA

BUT, if you are the kind of TDD-nut that what to test abs-ol-ute-ly everything, even the variables... then, you, are, crazy! And wrong! Be mindful of the things that should be tested... you know what's really important, and what makes sense... every project is different. If you aren't mindful with your TDD, everybody will hate you and your project will suffer.

Thanks for your question!

<comment> rooam-dev Thank you for your answer, I will try to come up with some analogy as well (so that I don't use yours).

No, I am not TDD nut, which is the opposite of the TDD, from what I understand "write enough code" for the test to pass.

</comment></comment><comment><USER5> I didn't "get" tdd (even after what I thought was a fair shake) until I paired with a person who was well versed in it. Suddenly, it clicked. It even happened in a code base that I said you can't do tdd in!

Even after this great experience, I would not say that tdd is for everyone and for all situations. I like to have some layer of test that I see red then green, and tdd helps with that. But I find tdd _only_ works when I know what the end result will be. I often don't. I know that something kinda foggy has to happen, and I'll build a first pass, then go from there. As long as a test gets done, I'm good to go.

<comment> rooam-dev Thank you.

</comment></comment><comment><USER6> Try evaluating pros and cons for TDD on your current project and make a decision together based on them.

Currently you're just proselytizing and thinking about only what you like and how you want to work.

<comment> rooam-dev Thanks, it makes sense. I personally try to apply some of it (TDD) at a smaller scale (e.g. 1 service class) and I see the benefits. I tend to over engineer so following some rules would help me, but others may write tests after whole day of work as a separate effort which I would like to improve.

</comment></comment><comment><USER7> For Further Information: What is the existing testing strategy (if any)? Do you have QA testing? Etc.

<comment> rooam-dev We have a good coverage, but we don't have that feeling that after running all tests we can release. Currently each dev decides how much tests to write, but usually after the fact to make sure whatever he wrote behaves as expected, at that time.

The problem arises when some changes are made and random tests are failing and it becomes more difficult to fix.

<comment><USER8> No, when some changes are made, _very specific_ tests start failing, and that conveys some information. (It can take some work to sort out what the information means, though...)

How does it become _more_ difficult to fix? Because you have to fix the tests, too? Don't just fix them. Use them as a guide to where to think a bit more. "This change broke that test. Is that telling me that the change broke the assumptions of that code, _and that therefore the change is wrong?_ Or is it just that the test itself didn't expect this?" You should know which it is _before_ you fix a test.

I think the situation you're describing here is not TDD-vs-after-the-fact- testwriting. It's incomplete-vs-close-to-complete test coverage.

<comment> rooam-dev Could be. You could have close to complete coverage, but slow integration tests. Not a big problem, CI can run those all the time. The problem is the feedback cycle. The slower the tests, the slower the feedback is. So, with each change I have to wait for integration test to run. There is a difference between 2 seconds and 20... it's ok intially but later feels like restarting the server just see if my changes work.

I think and hope with TDD (or some sort of it) to get everyone into a discipline mode, which will lead to better tests. Coverage should follow.

Anyway, I think it's worth trying, but it needs commitment and discipline, similar to agile... it has to be tried as a team.</comment></comment></comment></comment>


Modulecounts - <AUTHOR> http://modulecounts.com/ <comment><USER2> Here's the thing. CPAN is pretty damn comprehensive. The problem is rarely not having a solution for your problem, but finding which of the few solutions best fits your need, is well maintained, etc.

According to this, CPAN has ~30,000 modules with aout 3/day being added, rubygems has more than twice as many modules at ~67,000 with an additional 43/day, and npm has ~50,000, but is gaining _111 modules a day_.

What is being added? Is it just the thousandth personal version of someone's lightbox implementation that they feel the world needs to see? I sure hope not, because that doesn't bode well for those repositories, IMHO.

Edit: I guess lightbox doesn't make sense with node, or at least is less likely than some other possibilities.

</comment><comment><USER3> What happened to npm in August?

[http://i.imgur.com/dUr1B9t.png](http://i.imgur.com/dUr1B9t.png)</comment>


1MB Sorting Explained  - <AUTHOR> http://preshing.com/20121026/1mb-sorting-explained <comment><USER2> While I believe the author's approach is the correct one, I am very curious to see a proof that an arithmetic encoding will always fall within the 1MB limit. The pigeonhole principle guarantees an average of slightly less than seven bits per number, but it doesn't follow that a particular encoding will always consume nearly the same number of bits--especially for the worst case input. Prefix codes are useful, but not that efficient when the probability density function is uniform and there are a lot of potential numbers to encode. Golomb coding works well on an exponential distribution, not a flat one. Does an adaptive encoding save the day here?

<comment><USER3> Is the probability density actually uniform? Once all million numbers have been processed (which is the only case that matters - anything with <1M numbers has a strictly smaller encoding than it would if you tacked a bunch of zero deltas on to the end to reach 1M) , you're guaranteed that the 'average' delta value will be <= 100.

This means that even in a worst-case input set, "low" delta values will be substantially more common than "high" ones.

<comment><USER2> I think in the worst case it can be uniform: you can have an average delta value of 100 where the values range uniformly from 0 to 200. I think that case is fine, as you can still encode 200 in less than eight bits, but I'm worried that some worst-case number spacing will waste bits in any encoding scheme chosen, and that wastage will be enough to ruin the result. You have to pick an encoding scheme in advance but you don't know the distribution. Say you encode using 8-bit words. When the high bit is not set, the word ranges from 0-127. When the high bit is set, what follows is the full 27 bits. This will fail for certain distributions. For example, say a quarter of the numbers are spaced 257 apart and the rest are spaced 47 apart. You'll go over budget. Perhaps an adaptive scheme can be proven to work in all cases, but I don't know what that scheme is. Or maybe there's a simple scheme which can be proven for all distributions.

<comment><USER3> Arithmetic coding avoids the "wastage" of entropy you're talking about entirely - there are no "waste bits" in the middle of the stream like there would be with a fixed-size encoding.</comment></comment></comment></comment>


George Soros Was 'Long' on Pound Before Vote on Brexit - <AUTHOR> http://www.bloomberg.com/news/articles/2016-06-27/soros-was-long-the-pound-before-brexit-vote-says-spokesman <comment><USER2> All the short sighted articles are surprising. It is uncertain whether the "brexit" is better long term solution for the UK. Taking a look at the stock market a day after the vote is not going to show the true impact.

Mr Soros's comment reflects my current opinion...

"Britain eventually may or may not be relatively better off than other countries by leaving the EU, but its economy and people stand to suffer significantly in the short to medium term,"

<comment><USER3> This isn't a short sided article... George Soros is famous for "breaking the bank" in the early 1990s so there were tons of people curious as to where he was positioned on Friday. That's it. It doesn't matter if this turns out to be a disaster, neutral or a good thing for the UK. All that people wanted to know was if Soros hit the lottery twice.

[http://www.investopedia.com/ask/answers/08/george-soros- bank...](http://www.investopedia.com/ask/answers/08/george-soros-bank-of- england.asp)

<comment><USER4> The thing is, we don't know how or even if Soros bet on Brexit. The article doesn't say. We know he was long the pound, but we don't know what the rest of his portfolio looked like. (If he was short European stocks or long gold, he might have done really well.)

It makes sense that people were curious about his pound position, given his history. But we haven't got the knowledge needed to compare his massive public outright pound bet to his pre-Brexit referendum positioning.

</comment></comment></comment><comment><USER5> not really that surprised; despite the razor thin margin I think most people (myself included) thought a Leave majority was just incomprehensible. I've just returned from a month in London - this has been a good learning experience for me in terms of how my personal biases help rationalize expected outcomes. And also why I just throw money at passive index funds - I'm not experienced enough yet to gamble on these sorts of things.

<comment><USER6> Here's a legitimate question, have index funds ever "crashed?" If you look at the last ten years, they didn't do well during the recession years, but over the entire period either matched or exceeded most managed funds but without nearly as high of a fee.

People act like index funds are a "risky investment" compared to bonds. But is that actually true? Seems like countries getting into trouble is so common now that bonds aren't as rock solid as they used to be, and over tens of years index funds have shown to be extremely stable.

<comment><USER7> Conventional wisdom is that they are risky if you might need to sell right away. Not so much if you're going to hold for 5-10 years or more.

<comment><USER8> I've always heard 20 years. Look at stagflation in the US in the 70s.

</comment></comment></comment></comment><comment><USER9> "Now the catastrophic scenario that many feared has materialized, making the disintegration of the EU practically irreversible" is I think something that people aren't considering enough regarding the recent Brexit vote.

<comment><USER10> High value words like "Catastrophic", "feared", "disintegration", "irreversible" are all markers that indicates propaganda, not analysis.

Cooler heads will prevail.

<comment><USER11> Cooler heads have completely failed to prevail so far.

I'm not sure why you think that comment is propaganda. Catastrophic things do happen sometimes.

<comment><USER12> > Cooler heads have completely failed to prevail so far.

We are halfway through day 2 of a process that will take many years

</comment></comment></comment></comment><comment><USER13> I doubt he was long and I doubt he's going to disclose to the press his real strategies...

</comment><comment><USER14> Link should have an autoplaying video warning.

<comment><USER15> Didn't autoplay with Firefox + NoScript.

<comment><USER16> No shit.</comment></comment></comment>


Fixed price vs. time and material – Which one should you choose for your project? - <AUTHOR> http://sensinum.com/blog-post/fixed-price-vs-time-and-material-which-one-should-you-choose-for-your-project/ <comment><USER2> Great read!</comment>


How to Run your Minecraft server on dotCloud - <AUTHOR> http://blog.dotcloud.com/guest-post-deploying-minecraft-on-dotcloud-in

<comment><USER2> Doesn't the Minecraft server want to use 1+ GB of RAM? Will dotCloud really do that for free, in a usable longterm way?

<comment><USER3> Looks like about $200/mo for the 2GB RAM it takes to run a ~20 user server.

<comment><USER4> Where did you get that info? I could only find a DB instance gets 10MB in the free plan.

<comment><USER3> <https://www.dotcloud.com/pricing/pricing-faq/> – $1/10MB of RAM per month.

<comment><AUTHOR> That pricing FAQ is out of date. Not sure why it still says that.</comment></comment></comment></comment></comment>


Six California plan has enough signatures to hit the ballot - <AUTHOR> http://m.bizjournals.com/sanjose/news/2014/07/15/tim-draper-s-six-californias-plan-eyes-space-on.html?r=full

<comment><USER2> I heard this guy talk at this year's Launch.co conference. It's great that people are actively trying to solve California's famous issues, but it's hard not to see the Six California plan as socio-economic gerrymandering. The wealthy Bay Area essentially gets to wash its hands of the less wealthy interior cities. I think there's a better way.

<comment><AUTHOR> I'm conflicted about this. I strongly believe in focused local government, and California is awfully big. At the same time, I'm with you on socio-economic gerrymandering. This would be awful for much of the state.</comment></comment>


Show HN: All-in-one automated workspace powered by your web history - <AUTHOR> https://digital-brain.co/ <comment><AUTHOR> Hi there!

Co-founder and CEO of DigitalBrain here We built this product because we were frustrated copy-pasting links while we took notes and annotated from articles on the web. Please feel free to sign-up and we will email you with a link to the Chrome Extension: [https://digital-brain.co/sign-up](https://digital- brain.co/sign-up)

Here is the demo:[https://youtu.be/hLSRbT-IBOc](https://youtu.be/hLSRbT-IBOc)

Please feel to ask us anything! Looking forward to hearing what you guys think!</comment>


Can't get there from here - <AUTHOR> http://www.mckeay.net/2014/01/24/cant-get-there-from-here/ <comment><USER2> This is a route leak, plain and simple. Don't forget to apply Occam's Razor. All of those sites which are "coincidentally" misbehaving are located in the same /24.

This is what is actually happening. Virgin Media peers with Cogent. Virgin prefers routes from peers over transit. Cogent is turrible at provisioning and filtering, and is a large international transit provider.

Let's look at the route from Cogent's perspective:

      BGP routing table entry for 220.127.116.11/24, version 2031309347
      Paths: (1 available, best #1, table Default-IP-Routing-Table)
        54098 11557 4436 40015 54876
          184.108.40.206 (metric 10105011) from 18.104.22.168 (184.108.40.206)
            Origin incomplete, metric 0, localpref 130, valid, internal, best
            Community: 174:3092 174:10031 174:20999 174:21001 174:22013

If Cogent was competent at filtering, they'd never learn a route transiting 4436 via a customer port in the first place, but most likely someone at Lionlink (54098) is leaking from one of their transit providers (Sidera, 11557) to another (Cogent, 174).

Also, traffic passing through Switzerland is a red herring -- the poster is using a geoip database to look up where a Cogent router is. GeoIP databases are typically populated by user activity, e.g., mobile devices phoning home to get wifi-based location, credit card txns, etc. None of this traffic comes from a ptp interface address on a core router. GeoIP databases tend to have a resolution of about a /24, whereas infrastructure netblocks tend to be chopped up into /30s or /31s for ptp links and /32s for loopbacks, so two adjacent /32s could physically be located in wildly different parts of the world. More than likely, that IP address was previously assigned to a customer. The more accurate source of information would be the router's hostname, which clearly indicates that it is in London. The handoff between Virgin and Cogent almost certainly happens at Telehouse in the Docklands.

If someone were, in fact, trying to intercept your traffic, they could almost certainly do so without you noticing (at least at layer 3.)

<comment><USER3> > _If someone were, in fact, trying to intercept your traffic, they could > almost certainly do so without you noticing (at least at layer 3.)_

Then again, doing it like here would give them plausible deniability ("what? we? tracking? no, someone misconfigured a router."). Or maybe, given how those sites visibly disappear, it is an example of Zersetzung[0]?.

Welcome to post-Snowden world. We just cut ourselves with Ockham's razor and now are bleeding paranoid.

[0] - [http://en.wikipedia.org/wiki/Stasi#Zersetzung](http://en.wikipedia.org/wiki/Stasi#Zersetzung)

</comment></comment><comment><USER4> Would be interesting to know if you can get to [https://conference.hitb.org/check-status/](https://conference.hitb.org/check- status/)

Partly because it is HTTPS and partly because hack only appears in a url on the page.

This might answer if it is the result of the site, or the site content. Like for some reason LionLink is filtering based on the content on the page.

<comment><USER5> I'm on Virgin Media in the UK and it starts loading the page in Firefox (the title changes to the title of the page) but never actually completes, so I get a blank page.

</comment></comment><comment><USER6> Both websites hitb.org (22.214.171.124) and thc.org (220.127.116.11) have A records part of the Rokabear's CIDR 126.96.36.199/21 and some IPs in that block are responding as expected i.e. 220.127.116.11 and 188.8.131.52

However not a single IP in the range 220.127.116.11/24 responds to ICMP or TCP probes. My only guess is this is more likely a faulty or misconfig router.

        # Dirty TCP check
        nmap -v -Pn -p 80 184.108.40.206/24

        # Dirty ICMP check (1 means failure, 0 means success)
        for i in {1..254}; do echo -n "199.58.210.$i "; ping -c2 "199.58.210.$i" >/dev/null 2>/dev/null; echo " $?";  done

</comment><comment><USER7> Cant access any of those sites either, they just time out. Virgin Media UK. Trace for THC: [http://pastebin.com/raw.php?i=qmv3cYse](http://pastebin.com/raw.php?i=qmv3cYse)

</comment><comment><USER8> Quite a while ago now, there was a period where you couldn't get to Stackoverflow on Virgin media. There were some quite long threads in Virgins forums about it, and apparently not all virgin customers were affected! It did eventually resolve itself, but it was very frustrating!

[http://community.virginmedia.com/t5/Up-to-120Mb-Setup- Equipm...](http://community.virginmedia.com/t5/Up-to-120Mb-Setup- Equipment/stackoverflow-com/td-p/1722156/page/16)

</comment><comment><USER9> Interesting. Are any groups attempting to track odd routings like this? Seems like it would make for a good research project that would garner plenty of publicity.

<comment><USER10> When such a group crops up it will inevitably also have its website blocked

</comment></comment><comment><USER11> Thus we see the inevitable result of a culture which encourages internet filters: full on censorship of divergent, but legal, views.

<comment><USER12> This doesn't strike me as an effective demographic to "full on censor" in this way. Generally speaking, people interested in hacker conferences know how to proxy around a net nanny.

Could this be a botched poor-mans wiretap?: i.e. traffic sent to black-listed domain get's transparently routed to an adversarial middle host, who is intended to eventually forwarded it on to the original destination, but in this case someone misconfigured the wiretap, causing traffic to get lost. (/tinfoil hat)

I'd like to see the tracert for other hosts near the same destination.

</comment></comment><comment><USER13> Well that would be pretty serious.

He should run that 45 min internet scan through his home network and diff with his work network, get a list of all the sites that have this behavior. Alternatively he could write a script to ping his bookmarks or browser history, that would probably take less time.

</comment><comment><USER14> We know that routing sometimes takes strange hops - it doesn't always mean malicious intent. He says he also can't acccess the site of the hosting provider - so my take is, that it might be just a fucked up route somewhere. Happens all the time.

</comment><comment><USER15> The IP that you're trying to reach belongs to a US hosting company, so routing to the US should not be a surprise.</comment>


Podcasting: Turning Chinese? - <AUTHOR> https://jacobsmedia.com/podcasting-turning-chinese/ <comment><AUTHOR> The article mentioned MasterClass. Has anyone tried the courses?

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


Leader of U.S. vaccine push says he'll quit if politics trumps science - <AUTHOR> https://www.sciencemag.org/news/2020/09/leader-us-vaccine-push-says-he-ll-quit-if-politics-trumps-science-approval-process?rss=1 <comment><USER2> I like the pun in the title.</comment>


Ask HN: Thoughts from the US? Weekend protests, looting, ANTIFA, new hacks/leaks - <AUTHOR> #Anonymous and #OpDeathEaters are now trending on Twitter, after hacking police websites and leaking new revelations about cases regarding defendants Donald Trump and Jeffrey Epstein. ANTIFA is soon to be an illegal organization, while peaceful protestors and violent looters are mixing in the streets with both state police and the national guard. Not seeing any of these topics really discussed too much here, and the discussion on other online forums feels brigaded. <comment><USER2> My sister lives across the street from one of the first buildings to burn in Minneapolis. I'm devastated by the number of libraries, community centers, black owned businesses and low income housing complexes that have been destroyed especially in black neighborhoods. The forces driving the destructive behavior seem like they can be described as Americans being "blood drunk". I have my own theories about why things are so destructive right now, but it seems that many of my connections aren't interested in considering that the angry destructive actions may be harming black folks more than helping. I haven't seen enough people talking about the real problems of police unions and "qualified immunity" and how to solve those problems. But some people, like Killer Mike in Atlanta, are on the right track and that gives me hope.

</comment><comment><USER3> I'm actually near Atlanta where some of the looting is. I'm mixed and partly AA, can't say I particularly approve of the violence given how dangerous and destructive it is.

Of course, what originally happened in Minneapolis is not excusable either.

<comment><AUTHOR> Hope everything is ok for yourself, family and friends in your community and neighbourhood. Any idea how it might impact your work and living situation next week?

<comment><USER3> Everything is fine for me fortunately. The football hall of fame was really hit hard, and the CNN center took some damage from burns.

I really don't understand. ATL is the home of MLK(his house is open to walk- in). There is a sizable appreciation for the black community in Atlanta.

I am aware that part of the black community in Atlanta, especially black business owners don't identify with CNN. But clearly, it wasn't black business owners burning down CNN.

There is another side to the equation. Stone Mountain is also next to Atlanta. Stone Mountain is where the Ku-Klux-Klan(the organization at the heart of racism in the south) was reborn in 1915.

Fortunately, I work in software, so not much has impacted my job security :). In fact, I usually spent most of my day in front of a computer writing software, so not much has changed.</comment></comment></comment>


Ping Stick - <AUTHOR> http://sensitiveresearch.com/Ping%20stick/ <comment><USER2> It's not clear that this tool proves or even suggests anything at all about the relationship of mind and body. At best it indicates something about how our "sensorium" operates, but many philosophers would be seriously hesitant to equate our sensory awareness of our spatial surroundings with the mind. After all, animals have such a sensorium, but it's debatable whether they have mind in the sense(s) that philosophers, mystics, zen masters, or poets mean it.

<comment><USER3> You might want to try it first. This language is pretty close to what the people who can echo locate by clicking their tongues say.

As for whether there's a philosophical link between the senses and the mind, I think it would be really weird for any philosopher to not link them. All the mind has is what the senses give it, they _completely_ intertwined.

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

</comment></comment><comment><USER3> This is a cool project, it'd be fun to make, and I'd bet enlightening to walk around with your eyes closed for a while.

There are a few things I'm sure I'd have done differently, and I'm not criticizing, I'm saying mine might have come out worse the first time. But I'm curious if anyone who's tried it can speak to the choices.

The case seems huge, the components could definitely fit into a tube half the diameter. Maybe it'd just take more time to pack, but maybe a large tube is actually beneficial for feeling the vibrations?

I'm sure I'd have tried audio over vibration, seems like you can get a much better range with less battery power. But vibration is perhaps less annoying to use for longer periods of time, or just more tactile?

And the PING sensor in my experience is extremely, surprisingly narrow. It feels like real life ray tracing. I've been curious about, but too busy to buy & play with, the infrared proximity sensors - I'm wondering if they have a somewhat wider spread but could still work here? Anyone know?

<comment><USER4> > I'm sure I'd have tried audio over vibration

After vision, audition is your main way to perceive the world around you; you probably don't want to interfere with that sense. My guess is, if you consider proposing such a device to blind people, sound feedback would be an instant deal-breaker.

> the PING sensor in my experience is extremely, surprisingly narrow.

It would be very interesting to try and encode a wider sensing in finer ways: more buzzers, different "tones" of vibration... giving simultaneously information about what's exactly in front of the stick, and what the wider surroundings are like. I wonder what kinds of encodings are easiest to learn.

<comment><USER3> > My guess is, if you consider proposing such a device to blind people, sound > feedback would be an instant deal-breaker.

I think you're right if the audio takes over the environment. Beeping and buzzing would be especially irritating. But OTOH, echo location is audible, and it's the main way that some blind people "see", so there's already evidence that audio is not a deal-breaker, or doesn't have to be.

> It would be very interesting to try and encode a wider sensing in finer > ways: more buzzers, different "tones" of vibration... giving simultaneously > information about what's exactly in front of the stick, and what the wider > surroundings are like. I wonder what kinds of encodings are easiest to > learn.

I agree completely. If you think about echo location, the source sound, a tongue click or whatever, has a wide spread. The sound that goes out echoes off everything nearby, it's not just a point-sample of distance. Furthermore, the echo that comes back has all kinds of texture to it, and blind people often talk about how they can hear the shape and material of things. They're getting multi-dimensional information from the echoes, not just a guess of how far away something is. They get amplitude and reverb/decay and stereo to work with, just for a start. It would indeed be very interesting to explore how a sensor device could achieve this same subtlety and multi-dimensionality!

</comment></comment></comment><comment><USER5> This would be even more interesting if you had a hat with a ring of 4 of these sensors and vibrators. This way you could even "see" whats behind and next to you.

<comment><USER6> That would be really interesting, although for people without sight I think being able to aim the device would be very important.

perhaps a glove with a sensor on each finger once the technology catches up.

What if you had sensors like these all over your body. Do you think the body would hit some kind of sensory overload and it would cease to be useful?

</comment></comment><comment><USER7> Video demonstration is available for download here: [http://sensitiveresearch.com/Ping%20stick/images/wall,%20edg...](http://sensitiveresearch.com/Ping%20stick/images/wall,%20edge%20emphasis.mov)

</comment><comment><USER8> Seems like it could make a useful aid to people with vision impairment?

<comment><USER9> That product already exists, a blind friend of mine has one and freaks out his neighbours with it.

I was visiting him one day and he'd used it for a walk around around the block and his neighbour asked him how he "knew where all the cars where" and he responded "well, I ring Mary down the road and she describes the entire block to me and then I memorize it."

This guy nodded his head as if that made sense and left and then my friend promptly burst into laughter and showed me his secret.

<comment><USER10> Do you have a link to this product?

</comment></comment></comment><comment><USER11> This would be a great phone app.

<comment><USER12> Especially for phones with dual cameras and haptics.

</comment></comment><comment><USER13> What if in addition to 'distance' there were 3 more vibratory channels: red, green, blue?

<comment><USER14> How should that work? Three color-filtered light sensors and A/D converters on the Ardunino? With optics to get some sense of where the sensors are "looking"? Or a full-blown video camera? But that's not very Arduino-friendly, and synthesizing three numbers from a whole image seems hard.

In general, I think the appeal of this solution is its simplicity, it could be implemented on something even smaller than the Arduino. Adding video processing would be a move in the opposite direction, I think.

<comment><USER13> To me, the appeal of this device (and potential variants) is all in the new perceptive capabilities it grants the user – independent of any implementation details.

So to send color, I'd say sure, add a cheap video camera and whatever optics/CPU/software that's necessary to read the color, out along the same line for which the distance is being measured.

</comment></comment></comment><comment><USER15> I accidentally clicked on the up arrow for this article. Then I decided to check the article to see if it was worth an up vote anyway.

>This page uses a plugin that is not supported

I guess my Chrome doesn't do .mov files in embed tags.

Well anyway, as far as embodied cognition goes, I believe that, in a certain sense, a star is part of my body while I'm looking at it. Post-it notes are part of our memory.

Seems interesting. Reminds me of the glasses that flip your vision upside down until your brain flips it back right side up and then when you take the glasses off you see upside down with no glasses. And also of blind people echolocating.</comment>


Former MI6 agent's frustration as FBI sat on Donald Trump Russia file for months - <AUTHOR> http://www.independent.co.uk/news/world/americas/donald-trump-russia-dossier-file-investigation-hacking-christopher-steele-mi6-a7526901.html <comment><USER2> That's a funny article. It's all about the history of the report, but not a single word about corroborating evidence for any of the claims found in said report. That sort of silence becomes deafening after a while.

Given that the details that are verifiable are faring poorly--the wrong Michael Cohen was in Prague--that's not so good:

[https://twitter.com/jaketapper/status/819187673961287681](https://twitter.com/jaketapper/status/819187673961287681)

Worse, there are (disputed) claims that the most infamous allegation in the report is a hoax from this guy:

[https://twitter.com/trsprudence](https://twitter.com/trsprudence)

The hoax appears to have passed through a lot of hands, so it may never be possible to establish sourcing on this one, but other journalists report having seen the hoax, and it certainly reads like something the chans would dream up. They also point to this as one of their inspirations:

[https://www.reddit.com/r/todayilearned/comments/2gk74a/til_w...](https://www.reddit.com/r/todayilearned/comments/2gk74a/til_when_the_kgb_tried_to_blackmail_indonesian/)

In short, I'll wait until I can get some verifiable facts here. The media has had this doc for months now, too, from other reports. If they had something out of this that they could report, someone should have done so by now.

<comment><USER2> I see that I've touched a nerve here. Can anyone explain which of these facts they disagree with?</comment></comment>


United States dollar almost doubles in value in a single day - <AUTHOR> http://www.coinion.com/2013/12/07/united-states-dollar-almost-doubles-in-value-in-a-single-day/ <comment><USER2> It's telling that I could tell exactly what the story is about without clicking the link. And it's disappointing that the story, after clicking the link, didn't add anything else.

I'm wondering if this is a false-flag article to make bitcoin proponents look clueless and gullible...

<comment><USER3> The site is satire.

[http://www.coinion.com/2013/12/07/employee-asks-to-be- paid-i...](http://www.coinion.com/2013/12/07/employee-asks-to-be-paid-in- bitcoins-buys-company-the-next-day/)

[http://www.coinion.com/2013/12/07/after-bitcoin-congress- als...](http://www.coinion.com/2013/12/07/after-bitcoin-congress-also- considering-banning-surgery-and-space-exploration-says-too-complicated/)

<comment><USER2> Ah, I missed the "onion" part of the URL. My bad. :/

<comment><USER3> haha, truth be told I didn't notice that until you just pointed it out, I only realized it was satire after visiting their home page.

</comment></comment></comment></comment><comment><USER4> The point of this is obviously that the USD is just as much as a construct as Bitcoin, which, sure! But of course the difference is that the dollar's value doesn't change by 20%+ in a day, so you can rely on it to execute transactions, sign contracts, set salaries, etc.

Bitcoin apologists have generally seemed to see Bitcoin's rise as a positive, which is somewhat true, but it has to be stable to be useful for ordinary people. A volatile currency is not a useful currency.

</comment><comment><USER5> Bad-Joke Website Continues to be of Little Value

</comment><comment><USER6> Does this type of currency have any intrinsic value?

<comment><USER7> Yes, it's intrinsically useful. See [https://en.bitcoin.it/wiki/FAQ#Where_does_the_value_of_Bitco...](https://en.bitcoin.it/wiki/FAQ#Where_does_the_value_of_Bitcoin_stem_from.3F_What_backs_up_Bitcoin.3F) for a longer reply.

<comment><USER8> So the answer to "is Bitcoin useful" is "Bitcoins have value because they are useful"? You need a better link to make that point.

<comment><USER7> Um, no, his question was not "is bitcoin useful" but "does it have any intrinsic value"...

<comment><USER9> Actually, the question wasn't "does bitcoin have any intrinsic value" it was "does this type of currency have intrinsic value" in response to an article that was, nominally, about the _US dollar_.

</comment></comment></comment></comment></comment><comment><USER10> Clever article, for those that bother to read and understand it.

<comment><USER7> Personally I think it's rather silly, or, if you prefer, funny. Anyway, seems like enough people flagged it as it disappeared from the front page after a few seconds.

<comment><USER10> Actually, it's the key to the next level for Bitcoin.

Realising that BTC has a more consistent value which the USD does not, being systematically de-based n' all.</comment></comment></comment>


Do the economics of self-driving taxis make sense? - <AUTHOR> http://ftalphaville.ft.com/2015/10/20/2142450/do-the-economics-of-self-driving-taxis-actually-make-sense/ <comment><USER2> The main point (and fairly interesting critique) of the article;

        Except there's a major problem with that utopian
        view. The vision totally underestimates the true value
        humans bring to the car market or the degree to
        which Uber's "urban saturation" depends on a
        dedicated human element to absorb the bulk of the
        capital cost and risk of public vehicle ownership, with
        very little personal reward.

        As Felix Oberholzer-Gee, a professor at Harvard,
        tells Nautilus, if Uber can't outsource costs and
        market fluctuation risk to contractors, especially the
        cost of maintaining idle fleets during off-peak hours
        directly to Uber, it quickly swaps an asset-light
        business model for an asset-heavy low-margin
        model instead.

        This is problematic because Uber's already low-
        margin business model depends heavily on being
        able to overstep regulation, licensing and — most
        importantly — transfer maintenance, cleaning,
        insurance and market-risk exposure to drivers. It
        also benefits from drivers' ability to draw value from
        vehicles in personal time.

<comment><USER3> I see where the author is coming from, but uber doesn't need to own the autonomous vehicles. They can still be owned by third parties who maintain them. The owner just "recalls" the vehicle when he needs it,

<comment><USER4> As a former part time uber driver, the challenge is convincing people to send your car out to uber alone. Even with me in the car, at a minimum passengers would leave trash or gum.

<comment><USER5> >at a minimum passengers would leave trash or gum.

Doesn't the review system handle this? Goes back to one of the other points the article makes: this system depends upon your personal information being available to uber as well as the ability to 'blacklist' bad users.

<comment><USER4> one complication to that is groups of passengers, where only one person's info is available

</comment></comment></comment></comment></comment><comment><USER6> Perhaps my perspective is too nescient (I'm an engineer — not an economist), but this claim seems sketchy to me:

> How does [sharing] add value to the economy over the longer term? There is > no production. It is entirely consumption. Recycling is all very well – and > we do need secondary markets – but we cannot build an economy solely on > sweating existing assets. An economy that exists solely on consumption has > no long-term future.

Sharing is a process that optimizes usage of available resources. Why should we make more cars than we need? Why should everyone have a boat if not everyone needs a boat? Sure, more boat-building jobs are "created" if we feel everyone really needs their own personal boat, but there seems to be a strong opportunity cost that is being forgotten here: the labor necessary to build boats could instead be directed into a more _useful_ form that advances society as a whole much more quickly.

What do I mean by advance? Well, I guess to some degree that's subjective. But I'm fairly certain everyone can agree on at least _some_ universal goals that humanity would like to achieve, and artificially increasing the number of jobs available for the sake of having more jobs available seems like it would hurt our overall progress in the long run.

I think this quote from Warren Buffet sums up what I'm trying to say much better than I can:

> The way I see it is that my money represents an enormous number of claim > checks on society. It is like I have these little pieces of paper that I can > turn into consumption. If I wanted to, I could hire 10,000 people to do > nothing but paint my picture every day for the rest of my life. And the GNP > would go up. But the utility of the product would be zilch, and I would be > keeping those 10,000 people from doing AIDS research, or teaching, or > nursing. I don't do that though. I don't use very many of those claim > checks. There's nothing material I want very much. And I'm going to give > virtually all of those claim checks to charity when my wife and I die.

<comment><USER7> That Buffet quote certainly reminds me that the rich are different from you and I. He could also hire those 10,000 people to do AIDS research, etc., but he really wants to die with the most toys. "Charity" can have them afterwards.

<comment><USER8> That's certainly true for many super-affluent people, but Warren Buffett is hardly the poster child. He lives a relatively modest lifestyle, and has already given away a large portion of his fortune.

<comment><USER7> I agree, he seems not to have lost his moral compass -- he's no Larry Ellison. But something about the phrase "enormous number of claim checks on society" suggests that he's collecting points, and trying to rack up a high score by the end of the game.

<comment><USER9> If Buffett wants to try to rack up a high score, and plays by fair and equal rules in the process (not hurting anyone, not pressuring people into transactions, paying his taxes on time, et cetera), what's wrong with him doing that?

<comment><AUTHOR> I'm veering off-topic here, but Buffett's large deals are often cunningly crafted so that taxes are eliminated. He's got the right to do that, but it doesn't make him a shining example of a taxpayer.

Still, the charities he is giving his wealth to will get some of this benefit!

</comment></comment></comment></comment></comment></comment><comment><USER10> Interestingly enough, all of the bullet-pointed problems are problems inherent in physical plant management for manufacturing (except privacy). This is possibly due to the lessons capital-intensive industries that have to date been manufacturing are also applicable to capital-intensive services that are largely commoditized and interchangeable (like getting transported from point A to point B). Taxi service is a good textbook example of a service that requires a minimum level of knowledge, but is extremely repetitive and doesn't benefit exponentially from human intervention.

</comment><comment><USER11> Since they didn't provide any numbers, here's an analysis I did on this topic using estimates for LA: [https://www.linkedin.com/pulse/how-cheap-can-uber- self-drivi...](https://www.linkedin.com/pulse/how-cheap-can-uber-self-driving- ride-get-michael-dorazio)

Uber can absolutely make money even if they own their own cars, provided the up-front cost of the cars is low enough. You can think of it like a high-use, low-distance rental car fleet - the same car economics down-sides apply to Hertz and Enterprise and yet they still make money.

<comment><USER12> And as self-driving fleets take over and cease to be tied in to the driver's self-image, my guess is that the cars will look more like the $15,000 Toyota Yaris. I also imagine that as fleet owners gain greater control of design, they'll find ways to make maintenance easier and cheaper. Insurance should also get cheaper with fewer human drivers (and by the time automated cars are on the road, there will be a lot of cars with crash-mitigating technologies too).

</comment></comment><comment><USER13> This article and the 2 linked source articles are a big hot mess of half baked thoughts and misunderstandings. However it did remind me again to think of all the impacts that driverless cars will have.

Does anyone know of a thoughtful analysis of how things (like public transit, parking, etc) will likely change as driverless vehicles become more common?

<comment><USER14> Brad Templeton's essays are the place to start: [http://www.templetons.com/brad/robocars/](http://www.templetons.com/brad/robocars/)

</comment></comment><comment><USER15> IHS Automotive forecasts that the price for the self-driving technology will add between $7,000 and $10,000 to a car's sticker price in 2025

Uber will probably use it's own fleet supplementing people during peak times. if you can get 70% utilization that's about 60k/yr you don't pay a driver.

<comment><USER5> Do you happen to have a link to this forecast? I've never heard of IHS Automotive but it sounds interested. Could the 7-10k increase be offset by other efficiencies in engineering that bring down the cost?

Side note, could we be entering the era where one person does not own one vehicle, but many people own a few? I could see something like an apartment complex offering a few self-driving cars as an amenity, or cities investing in them like they do bike-shares. Lots of the discussion has focussed on the extremes: individual ownership or megacorp ownership. There might be a place for this technology in between.

<comment><USER11> Not sure which IHS article OP is referring to, but BCG did an analysis as well: [https://www.bcgperspectives.com/content/articles/automotive-...](https://www.bcgperspectives.com/content/articles/automotive- consumer-insight-revolution-drivers-seat-road-autonomous-vehicles/)

Relevant section is "The Price Tag". Here's a helpful image from the paper as well: [https://www.bcgperspectives.com/Images/Revolution_Drivers_Se...](https://www.bcgperspectives.com/Images/Revolution_Drivers_Seat_ex06_large_tcm80-185056.png)

The biggest cost driver is the LIDAR, which is anticipated to cost Google $8k per car next year when they move to a cheaper system.

</comment></comment></comment><comment><USER16> Anyone else getting a paywall?

<comment><USER2> FT has a free registration as well, do it once, stay logged in.. Their content is pretty good all around.

<comment><USER13> I was a long time subscriber to FT and still think it is above average but sloppy articles like this make me think the quality has been declining with the rest of the industry.</comment></comment></comment>


My recent (not so good) experience as a freelancer - <AUTHOR> There is such a company that adopts the 'human cloud' concept, which is simply outsourcing the project from client to freelancers in other countries, such as China, India etc. I was one of their human in cloud.
Firstly, they do not pay advance, not even 1%. A project usually lasts for 2 months at least and they only pay after 30-45 days after client has accepted the final output. So this basically means the developer must be able to survive at least 3 months without any income.
Secondly, they happened to get a project from a website that I loved very much. So after I sent them my estimation (they would add their profits to my estimation and sent that to the client), I told them, if the client felt the price is high, I would be happy to make a discount (I explicitly stated the discount was for the client). Soon, client seemed to be happy with the original number and they signed the agreement. But my discount did not go to the client at all. They kept that for their profit.
Thirdly, for a project, they sent me a design and I made an estimation. Then they told me the design was wrong, but they already signed an agreement with the client and they asked me to do the almost totally different project doubling the workload for the wrong estimation, which downed my hourly rate to less than $30. My salary before I quit my regular job, was $100+/hour. And I charge my other clients for at least $75/hour.
So I quit. I am quite a professional freelancer, never missed a deadline and always deliver quality code. I am not a blind person and hate to be thought as one. I am not sure exposing the company's name is good here so I just want to warn all fellow freelancers. If you meet a company acting the same as in my description above, be careful. <comment><USER4> No client is worth a discount that takes your rate to essentially a worthless rate. If you know you can make $80/hr, and you let a client take you for $30/hr, or if the numbers are $10 and $2, it doesn't matter, you were taken for a ride. Do NOT let a client take you for that ride.

Make sure clients show you the same respect and consideration you are giving them. If they do not, walk away and find another. They are out there, do not disrespect yourself so much as to think they aren't.

<comment><AUTHOR> Thanks, that was exactly what I did - <USER2>

</comment></comment><comment><USER5> >if the client felt the price is high, I would be happy to make a discount

Why would you do that? Why would anybody not take you up on the discount?

>totally different project doubling the workload for the wrong estimation, which downed my hourly rate to less than $30

Here is how I would respond to that 100% of the time:

"No"

<comment><AUTHOR> >> if the client felt the price is high, I would be happy to make a discount

> Why would you do that? Why would anybody not take you up on the discount?

I know that could happen, but I wanted that client as it would be an honor to have them in my portfolio. The company in the middle were just so careless that I found it out easily.

</comment></comment><comment><USER6> really curious who the company is (email me it if you don't want to post it here)

i've taken jobs similar to what you described - scope changes after the fact, no payment until 30-45 days after completion (though if its multi thousands, i ask for half down)

The difference being I maintain a day job; freelance to me is a bonus - <USER3> for vacation, nicer things, etc...

Sucks to get burned like that, but to me, thats a normal client... 1 mans trash is another mans treasure ?

<comment><AUTHOR> Sent.

Well, even in China (why did I say even :p), freelancers get advances, at least it is for me. I had freelancing as bonus too before but later I found out freelancing has taken too much time and generated way much income. Thanks to god that my other clients are 'abnormal'...

</comment></comment><comment><USER7> Can you email me which company this is? I have also had similar issues occasionally and am wondering if it's the same.

</comment><comment><USER8> Couldn't you have protected yourself from these things by defining some requirements in the contracts?

<comment><AUTHOR> Sadly no, and there was not even any kind of contract but an NDA.

<comment><USER9> Please post the company name. There is no need to worry. Every one should know about it.</comment></comment></comment>


An Analysis of Linux Scalability to Many Cores (2010) [pdf] - <AUTHOR> http://www.stanford.edu/class/cs240/readings/analysis-linux-scalability.pdf

<comment><USER2> I have just upgraded from AMD Athlon 64 X2 5200+ to AMD FX 8350 Eight-Core 4GHz, the Handbrake video compression FPS went from 10 to 120-300. This makes for almost linear boost for GHz and number of cores.

</comment><comment><USER3> The conference talk video is up here: [https://www.usenix.org/conference/osdi10/analysis-linux- scal...](https://www.usenix.org/conference/osdi10/analysis-linux-scalability- many-cores)

</comment><comment><USER4> Nothing newer on the topic? Given that 64-core nodes have become standard in high performance computing, and there are talks about 100s of cores on a single chip, the research may benefit from revision.

</comment><comment><USER5> Love how this is old MIT work, with HN pointing to "stanford.edu"

</comment><comment><USER6> This study is from 2010 (Linux kernel 2.6.35-rc5).

<comment><USER7> Yes, i am wondering how much this holds true with a recent kernel. Still interesting though!

</comment></comment><comment><USER8> illumos kernel is known to scale better.

<comment><USER9> Any references?

<comment><USER8> I'm not sure if anyone made a strict quantitative analysts. This is what I remember reading: <http://gdamore.blogspot.com/2010/02/scalability-fud.html></comment></comment></comment>


Ask HN: Babies and self driving cars - <AUTHOR> My kid ask me "dad, once we have self driving cars will parents be able to put a baby in the car and have the computer just drive it around to help it fall asleep?" What does HN think? Safe or parent neglect? What if there is video feed of baby they can watch? <comment><USER2> What if the car break down?

<comment><AUTHOR> ok how about not a real car, but a VR room that simulated a car ride. That's 100% safe and can't indanger the kid but gives the parent an hour break while the kid thinks he's being driven around.</comment></comment>


Fast-food breakfast sales decline as fewer head to work - <AUTHOR> http://www.washingtonpost.com/wp-dyn/content/article/2010/02/20/AR2010022003718.html

<comment><USER2> That was surprising relationship. If it will keep going for awhile, fast food can never recover due to very low quality of food at first place.</comment>


What advice would you give? - <AUTHOR> http://jthoyer.wordpress.com <comment><AUTHOR> The description to the above:

One of the hardest things for any 15-year-old is to face is the prospect of deciding what they want to spend the rest of their lives doing – that will bring them joy and satisfy their lifestyle needs.

One problem I can see that I'll try and solve – is awareness.

So I'm going to gather information from both sides and see what value I can bring to 15-year-olds and non-15-year-olds alike.

I think everyone has something to say – and everyone is curious about what others have to offer. So please click the link, and add your email if you'd like to be kept in the loop.

Feel free to discuss @jthoyer</comment>


Ask HN: Useful bug reporting tips? - <AUTHOR>

Hi chaps,<p>I'm currently working on a bug/issue tracker (purifyapp.com) and I'm writing an article about how to write useful bug reports. Do any of you guys have any tips you'd like to suggest? <comment><USER2> I don't use screenshots very often, but for that 20% case when I need them, they're invaluable. Still seems a little antiquated that I have to snap a pic, then go somewhere to upload it. Seems like something that could do that and submit it w/in the web app would be a plus.</comment>


I wrote and published a book in two months. Here's how - <AUTHOR> https://pascalprecht.github.io/posts/writing-an-ebook <comment><AUTHOR> Hi everyone,

I made it a challenge for myself to author and publish an ebook about Git in two months. This has worked out wonderfully and now I'd like to share my process, workflow, learnings and key takeaways.

I hope there's some useful tips for potential authors here!</comment>


Three Emerging Startup Hubs not in the Valley - <AUTHOR> http://nerdbusiness.com/blog/three-emerging-startup-hubs-not-valley#comment-23676 <comment><USER2> Singapore might be an OK fit for me. I live in Darwin, Australia. It's a few thousand kilometres away, to be sure, but a _hell_ of a lot closer than the valley, Vancouver or Amsterdam. Plus there are direct flights a few times per week.

Hmmm.</comment>


PG books free to a good home - <AUTHOR>

I have an extra copy of ANSI CL and On Lisp.  Free to a good home.  Tell me why you want them in the comments in 25 words or less.  Best story wins.  I reserve the right to decide, but I'll be strongly inclined to go with the story with the most upvotes :-)  (I'm not going to strictly enforce the 25 word limit, so if you really feel the need to write more feel free. But don't get too wordy. It's just a pair of books after all.) <comment><USER2> Ive not been able to find copies of these books in India. Been trying for past 2 years.

<comment><AUTHOR> You win. Post (or email if you don't want it made public) your mailing address and I'll send them out.

</comment></comment><comment><USER3> <http://www.paulgraham.com/onlisptext.html>

</comment><comment><USER4> Request Haiku:

      I just want On Lisp,
      to improve my coding style
      with advanced techniques

<comment><USER3>
      Like the stars and moon,
      the lambda calculus lists
      my parentheses

<comment><USER5> _To express oneself

in seventeen syllables

is very diffic_

<comment><USER6>
      "Haikus are easy,
      but sometimes they don't make sense.
      Refrigerator."

<comment><USER7> Someone was wearing that shirt at demo day. Love it

</comment></comment></comment></comment></comment><comment><USER8> I used to have a lisp as a child, and I think receiving the book would be my final moment of triumph. 25 words, no?

</comment><comment><AUTHOR> OK, looks like kraemate is the overwhelming winner, though I have to give an honorable mention to byrneseyeview. Post (or email if you don't want it made public) your mailing address and I'll send them out today.

</comment><comment><USER9> I'm starting a CS degree in a few weeks, therefore I'm poor and in need of Lisp books. :o

</comment><comment><USER10> I've enjoyed reading On Lisp on-line, but would like the book so I can read in the bathroom. It's not worth $150+ for that convenience though.

</comment><comment><USER11> Maybe I'm in a part of the lisp echo chamber, but I have to wonder why on lisp hasn't been reprinted. pg any comments?

<comment><USER12> Judging by the second-hand prices, there would seem to be demand.

See also: <http://news.ycombinator.com/item?id=264296>

</comment></comment><comment><USER13> (Nero Wolfe)

... Archie was in a shock, and reason was neither that all the orchids were stolen from Wolfe's gallery or is been out for (more than two) times in a day to solve mystery. Archie started thinking. Until in my career, I never saw that fat bastard taking money from a client without Solving the case and being satisfied that he has really earned the money. But what the hell is this? some 'Lisper offers him a couple books (and think what, those are related to LISP which I here are related to black magic, No wonder; Wolfe will enjoy those and will give me hell solving all the mysteries after reading those), And he accepts those? Something is wrong.

</comment><comment><USER14> Intertwined, language and data, the moulding of thought.

Lisp

</comment><comment><USER15> Too many wise people have told me that I don't know beautiful code until I know Lisp. I definitely don't know Lisp, and I want to know beautiful code.

</comment><comment><USER16> _On Lisp_ available via Lulu <http://www.lulu.com/content/3060872>

</comment><comment><USER17> Because I am an autodidact that happens to be rather poor at the moment, and has been meaning to master the use of lisp macros.

</comment><comment><USER12> Whoever you give them to, we can bring up your generosity wherever anyone doubts that lispers are nice people.

</comment><comment><USER18> I want to master the way of the Lisp Jedi.

      "These are your father's parentheses. Elegant weapons, for a more ... civilized age."

<http://xkcd.com/297/>

</comment><comment><USER19> I have been losing sleep trying to find out what the missing figures from the online edition actually look like. Please put me out of my misery.

</comment><comment><USER20> Students often express a vague interest in LISP when I teach AI. It would indeed be nice to have an extra book to loan out.

<comment><USER21> Practical Common Lisp is free online. Just give them a link.

</comment></comment><comment><USER22> I'll write a pair of reviews plus an additional article about LISP itself on bytepawn.com

</comment><comment><USER2> Ive not been able to find copies of these books in India. Been trying for past 2 years.

</comment><comment><USER23> I will sell them on ebay and donate the profits to charity.

<comment><USER24> I will hijack your shipment of books, and commit myself to studying them for years. After a long absence, I will emerge from my hideaway armed with a thorough understanding of Common Lisp. I will write a single macro, more profound than the deepest koan, more concise than the _Reader's Digest Condensed Edition_ of a haiku. When executed, this macro will generate the source code to a second program -- a program so powerful it will be a Google killer that evolves into a Google killer-killer, all while running on a single 386, even if it isn't plugged in. My Series A will empty Fort Knox, exhaust the New York Fed, and leave me with the Crown Jewels of a thousand forgotten dynasties.

I will sell some of these on ebay, and donate the profits to charity. Top _that_.

<comment><USER25> Definitely too wordy.

And I find the statement about running on a single 386 unbelievable. You'll need at least 2.

</comment></comment></comment><comment><USER26> lisp is cool.

<comment><USER27> learning lisp is my refuge from my VB6-centric workplace.</comment></comment>


JWZ, on Garbage Collection - <AUTHOR> http://www.jwz.org/doc/gc.html <comment> old-gregg What separates good thinking/writing from a mediocre noise is that it remains relevant and interesting to read even in 10 years, despite missing rounded corners and lack of randomly chosen photos that are supposed to help us to understand his point.

<comment><USER2> Everything JWZ writes, even the rants, have a builtin life-support and relevance of at least 10 years.

Maybe I'm just too involved with the community, but Lispers tend to make some of the greatest rants, aphorisms, epigrams and one-liners out of any other hacker group I know, even when they're downright hostile :-)

<comment><USER3> Or, in some cases, specially when they're being hostile ;-)

</comment></comment></comment><comment><USER4> And this was written before Java's garbage collector was even good.

<comment><USER5> As well as before Python got cyclic GC, while we're at it.

</comment></comment><comment><USER6> Perhaps slightly off topic and probably not worth its own submission, but anyone visiting this thread might be interested to know about the cool things in store for us with the next generation of garbage collectors:

<http://www.infoq.com/news/2009/04/g1>

</comment><comment><USER7> I agree with the points expressed on this article. Fully. But "I claim", "I claim", ..., will not convince a lot of people. Ah and... unfortunately after 10 years the situation is still the same, we are still writing malloc/free and no standard, high quality, widely accepted GC for C/C++ is here. At least now valgrind is able to remove most of the leaks without too much efforts compared to 10 years ago.

<comment><USER8> In a certain online forum, I was once taken to task for saying "I assert". People criticized it because it was "just" an assertion, not backed up with facts.

The thing is, I am punctilious about labeling the various parts of my arguments: _this_ is an incontrovertible fact, _this_ is strongly supported by evidence, _this_ is an assertion, and _that_ is a wild-assed guess.

A certain kind of engineering-oriented mind (a) wants to be fair in not claiming too much; (b) wants to have a productive debate that can actually move forward.

The ironic thing about me being taken to task is that I provided far more evidence in my posts than most people in that forum (a town social / political email list), but because most participants conflated their assertions with their defensible fact-based points, they were never called on it, but because I was more intellectually honest, I was perceived as asserting facts _more_ often, even though I did it less.

So, my point is this:

I applaud JWZ for labeling his assertions as such; agree with him or disagree with him, at least he's playing the intellectual game of debate on a fair and level playing field, and even helpfully labelled the stronger and weaker points of his argument. Win or lose, it's a lot more possible to have a constructive conversation.

</comment></comment><comment><USER9> Is it just me or does every GC is faster argument boil down to: "All working real world examples are noticeably slower, but trust me, I know of this amazing GC that's actually faster it's just not in production use anywhere yet."

<comment><USER6> That hasn't been my experience at all. The JVM garbage collector kicks ass today, right now in real applications all over the world, and the next one is going to be even better. There is very likely a class of application out there where extreme micro-optimization is still a good tradeoff (Google's search maybe?), but anyone arguing that they really need to write it in C and do their own memory management carries the burden of proof these days, not the other way around.

In fact many would argue that for small, short-lived objects that the Sun GC outperforms malloc/free. This is a topic of debate, obviously.

<comment><USER10> Yeah, for Google most of the code that runs when you do a search is C++. (There's a lot of backend servers that handle different things so it isn't 100%, but the core search engine is definitely C++.) It's not just that it's extremely micro-optimized... the general issue is that when your code is running on enough machines it's more often a good tradeoff to spend programmer time to increase performance.

<comment><USER6> Exactly. Spending programmer time to gain some marginal improvement in CPU cycle efficiency is almost always a bad call, except when that code is going to run on a GAJILLION CPUs all of which use a lot of electricity etc.

I still think that this is only the case for a tiny fraction of all the code out there (Java is f __*ing fast these days), and will become less and less true with each passing year.

</comment></comment></comment></comment><comment><USER11> As previously noted, this article was written a while ago, and is somewhat critical of 'bad' GC's: Perl, Python & Java in particular. I think Perl is still using reference counting, which has its own drawbacks, but I think most would agree that Java's GC has grown to be pretty good over the years. And now there's C#, which seems to have a decent GC as well.

</comment><comment><USER12> > This is because large applications have nontrivial object life cycles, and > so you end up spending all of your time trying to figure out what exactly > those life cycles are.

GC just abets to care less about memory management in applications.

</comment><comment><USER13> This text is more than 10 years old (1998).

Are you just indirectly polling if there is still controversy about GC?

<comment><AUTHOR> _Are you just indirectly polling if there is still controversy about GC?_

There is, apparently: <http://news.ycombinator.com/item?id=585094>

</comment></comment><comment><USER14> Nice 10 year old rant :-)

</comment><comment><USER15> Double meaning is the guy who picks up the litter in his nightclub.

<comment><USER2> When you spent your precious youth creating XEmacs, mozilla, and netscape navigator, you're sure as hell allowed to have a pet nightclub; can you think of a better way to hack the popularity problem than to own a kickass music venue for hipsters?

Don't hate the playa, hate the game! ;-)

<comment><USER16> I didn't think his comment was negative. It seems weird that it's downvoted. However, since you mentioned it...

DNA is a weird spot. It's a great space. JWZ obviously tried to recreate a subculture that was never hugely popular but sort of maybe had its heyday and died in the 90s. The sort of only-in-SF cyber-industrial-goth thing. Front242, Throbbing Gristle and Cabaret Voltaire remixes. Every guy looks like Robert Smith with a top hat, wearable computer, and zombie boots. Proto-burning-man meets blade runner sort of thing.

It's definitely not a favorite for hipsters. It only comes close on mashup night, and even those "hipsters" are all 38 years old. The whole hipster in SF thing is bit of a hoax. All those hipsters are really web designers who went to Stanford, which wasn't really hip ever, but certainly hasn't been hip since 1999. What is now known as hipster in SF was called "yuppie" 20 years ago. It's just different brands of shoes and alcohol - even the tight pants remain the same.

<comment><USER2> I didn't downvote the poster above, but it's unfair of him not to address the article and its content, and its make a snide remark about how the author makes his living nowadays. Borderline ad hominem, imo.</comment></comment></comment></comment>