The Sad Reality of Post-Mature Optimization - <AUTHOR> http://blog.yafla.com/The_Sad_Reality_of_PostMature_Optimization/ <comment><USER2> I think something is lost in translation. Once upon a time, premature optimization was writing a subroutine in assembly because you "knew it would be slow." Now, people are using ill-fitted data structures and optimizing for developer time in the name of avoiding premature optimization.

These days, with the test suites we have and the highly decoupled architectures we have created, we can profile nearly instantaneously. Put ten million records (or more, depending on your expected volume) in a database and test your code against it. If your test begs for mercy, it isn't premature optimization to fix it.

From a startup's perspective, I understand the idea of failing fast, but getting some buzz and seeing your servers melt down is a good way to fail fast as well.

<comment><USER3> [http://the-witness.net/news/2011/06/how-to-program-independe...](http://the- witness.net/news/2011/06/how-to-program-independent-games/)

This was posted on HN recently. Skip to slide 18. In it, the guy talked about premature optimization, curiously, of the same thing: linear iteration over an array vs using a hash implementation.

His example was that in his youth, he was on the Doom forums, and he was doing mods, and took a look at the code that loaded the different asset files. And he was abhorred that the code used an array to linearly iterate over to find the asset to load. He started complaining on the newsgroups, and then Doom guys said you don't know what you're talking about, etc.

In this case, it was where that code just didn't matter in terms of run time, because the order of magnitude difference in looking up an asset and actually loading the asset was huge, and it just didn't matter. And because they used a dumb implementation, they could optimize for developer productivity and go on to code that mattered, like the rendering.

That said, I think the thing to keep in mind is, which parts of your problem space is of the core importance, and keep an eye on difference of order of magnitude in the different solutions you were thinking about implementing

<comment><USER4> I listened to his whole talk, and it was quite eye-opening.

And sure enough, just the other night, I ran into a really hard to find memory leak in some new code. At that point, I regretted tailoring a couple of strictly speaking, unecessary object as helpers, and just replaced them with arrays. It was then somewhat easier to nail down my memory leak.

Point being, that as soon as you need complete comprehension of some code, whether for performance tuning, or debugging, any reduction in the complexity of the code can pay massive dividends.

</comment></comment></comment><comment><USER5> Good software engineering practices (eg using good data structures, using appropriate algorithms, etc) is _not_ optimization.

Software always requires tradeoffs (I don't consider "it does what it is supposed to" a trade off; that's more an invariant). In general, we put human consumption factors (readability, etc) high on the priority list, which is where it should be, usually.

Optimization is taking code with one set of value priorities and making a different set of priorities. Until you hit the real world, though, you won't know which priorities you need to value: is it hard drive throughput, raw processor cycles, or network latency? Regardless, in the end, you will generally have code that is less fit for humans, meaning the cost of maintenance will go up, so you want to ensure you are only optimizing what really needs to be optimized.

If "optimization" means "I didn't think about what data structure to use", you don't have an optimization problem. You have a software engineering problem.

</comment><comment><USER6> I find that these debates often come down to an either-or proposition: "put off optimization indefinitely" or "optimize to the max the whole way through." But it should never be so black and white. From a business view, both approaches are wrong, as they tend to entail unnecessary costs.

The OP is right that if you completely ignore performance as you code, you'll be doing things so blatantly wrong everywhere that it's difficult or impossible to fix. But, Knuth is right too: It's counterproductive to spend 10 times as long developing version 0.1 just to make sure it's the fastest 0.1 there could possibly be. This is because your early code is likely to change a great deal over the course of the project. You'll refactor, you'll add and remove features, and you'll realize you were wrong about where the bottlenecks are. Much of your early optimization effort will have been wasted.

After much programming experience, including trying both extremes, I've learned that a middle road is the most cost-effecive. The real quote from Knuth, so says Wikipedia, is: "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." He's not saying to ignore performance. He's not arguing that you should blindly accept obviously unperformant architectures, such as the OP's example of iterating over a huge array when a hash would clearly be better. He's saying you shouldn't obsess over the "small efficiencies," the time-consuming rewrites of every little, rarely-called function to shave off 5% of execution time. At least not early in a project. I think Knuth would support doing that for a highly mature product, at least in some cases. Indeed, much of Knuth's most well-known work is entirely focused on performance. He's just telling people not to be overzealous.

So how does all this translate into everyday practice? I think a lot of it has to do with instincts and experience, which let you estimate the labor costs and performance benefits of individual optimizations. For example, as a web programmer, this ethos leads to decisions like this:

\- I WILL prevent a given method from loading the same database records twice, even if loading them twice is the easy way. \- I WON'T rewrite the SQL that my ORM generates in most cases. \- I WON'T worry about the performance difference between calling an object's instance variable accessor vs reading the instance variable directly.

<comment><USER7> This.

And to add, it's important to to decouple pieces of your project so that it's easy to refactor and optimize parts as you get to them.

<comment><USER8> However, optimization comes from "re-coupling" very often. see for example : monolithic kernels (monolithic, fast) vs micro kernel (decoupled, slow). If you really want something efficient, you'll have to think about it from the very beginning.

</comment></comment></comment><comment><USER9> It might be what kinds of stuff I write (the stuff that's at all performance- sensitive is mostly data-processing algorithms), but I've had reasonably good success with the write-and-then-profile approach, and found myself wasting a _lot_ of time on bad guesses if I tried to optimize things up front. I agree it's also possible to make something a really slow mess that's hard to fix, though.

My current method is to think about performance while writing code, but instead of doing anything particularly clever up front (unless it's easy), just make a comment to myself about potential places for improvements, like "doing the naive scan through the list for now, maybe could do [blah blah]". Then I'll profile later, and in a surprisingly large percentage of these cases, the places I identified for potential performance improvements don't matter, so it's a good thing I didn't bother doing something clever that would've taken more time to write, and been more error-prone.

</comment><comment><USER10> _"Just as you can't add quality to your code just before shipping, seldom can you significantly improve performance without dramatic rewriting."_

That statement struck me as odd and possibly revealing... You should be able to significantly improve performance with a few changes .. _in code written enough_. Here, the code is modular so a given sort of slow thing should happen in only one place.

But naturally, _in poorly written code_ , you need rewrite to optimize or to improve quality or to change anything else. It makes me wonder which kind of code he's looking at in making his generalizations. I'd agree it is never too early to write good code.

<comment><USER11> Yes, I disagreed with that. In almost any project I've worked with, which has never been profiled, then over 90% of the time is spent in a few functions, which can be easily optimised.

Of course, after a few passes through the profiler, things start getting harder, but that's a seperate issue.

<comment><USER12> I get to deal with the separate issue fairly often. After a few passes, 90% of the time is being spent in 90 functions taking no more than 2% each. At that point, I have to start ripping out layers of std::map<std::string, boost::shared_ptr<boost::any> >. That's even less fun than it sounds...

</comment></comment></comment><comment><USER13> there's a difference between non-optimized code and code that's just written by a bonehead. I don't think it's actually more complicated than that.

We of course are all boneheads at one time or another so we should go through our code continuously as we write and refactor it to fix bonehead-isms. But "optimizations", inlinings, making the code harder to read for performance, awkward caching steps that make the code harder to debug, that's always later, once the real world, usages, and data expose what's really important.

</comment><comment><USER14> _Update: A torrent of readers and my meager server's CPU usage sits at a constant <1%. Hardly miraculous — trivial even — but compare it to the countless sites that fall over when they receive any attention at all. When I built this trivial blog engine, largely for a laugh, efficiency was a principal consideration right at the outset, and was an architectural concern with every decision._

Web servers typically don't fall over because PHP or Rails can't hand a whole ten requests a second on a CPU that can do a billion operations a second. They fall over because of a performance optimization written into the default Apache configuration in1996 to increase throughput by ~2%

Death to KeepAlive.

</comment><comment><USER15> From the article: "When performance wasn't a consideration from day one, inefficiency becomes endemic, corrupting every square mibbibyte of the project. Why not iterate a giant array instead of using hashes?"

Spending 5 minutes choosing the right algorithm every time you write a component isn't premature optimization, especially if you know to within an order of magnitude or so what N is. If you have no idea what N is, then go with the simplest implementation that works at the time. (That assumes your design doesn't tie a bunch of internal component decisions together, in which case I must say, "good luck with that.")

In any case, the time to optimize is most likely _after_ you've written some tests to verify the code is correct. I've seen too many cases where people spent a lot of time making something really complicated--and completely untested--run faster, and then later said, "Now how can we make this correct?"

<comment><USER16> Yes, the classic 'It is easier to optimize correct code than to correct optimized code' quote comes to mind :)

</comment></comment><comment><USER17> Incidentally, I just finished reading Knuth's original article from which his now famous quote originated. If you'll forgive the large copy and paste I think it is insightful to see the quote in context.

The original quote from 'Structured Programming with go to Statements' Computing Surveys, VOL 6, No. 4, December 1974 on page 268 is:

 _"The improvement in speed from Example 2 to Example 2a is only about 12%, and many people would pronounce that insignificant. The conventional wisdom shared by many of today's software engineers calls for ignoring efficiency in the small; but I believe this is simply an overreaction to the abuses they see being practiced by penny-wise-and-pound-foolish programmers, who can't debug or maintain their "optimized" programs. In established engineering disciplines a 12% improvement, easily obtained, is never considered marginal; and I believe the same viewpoint should prevail in software engineering. Of course I wouldn't bother making such optimizations on a one-shot job, but when it's a question of preparing quality programs, I don't want to restrict myself to tools that deny me such efficiencies.

There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified. It is often a mistake to make a priori judgments about what parts of a program really critical, since the universal experience of programmers who have been using measurement tools has been that their intuitive guesses fail. After working with such tools for seven years, I've become convinced that all compilers written from now on should be designed to provide all programmers with feedback indicating what parts of their programs are costing the most; indeed, this feedback should be supplied automatically unless it has been specifically turned off."_

</comment><comment><USER18> The quote makes sense in its completeness:

 _"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil"_

The key expression is " _small_ efficiencies" - choosing the right data structures for any reasonable amount of data is not small.

</comment><comment><USER19> The idea behind not optimizing prematurely is there are some optimizations that come at a cost of decreased maintainability/readability. Not prematurely optimizing means choosing to prioritize your code structure to allow no- unexpected-side-effects changes and easy readability by other people, but it is not an excuse to use a O(n^2) algorithm when an O(n) algorithm can be used without cost. You should always be aware of the ballpark O(n) of your code, but in the initial stages of a project you might choose to prioritize other things.

<comment><USER20> I suspect the idea is more that people keep obsessing (and wasting time) about bullshit like whether iterating though a for loop forwards or backwards is faster, or whether they should have public fields to avoid the method overhead from accessors - stuff that is truely, utterly irrelevant except possibly in the most extreme hot spots.

</comment></comment><comment><USER21> Bentley's _Programming Pearls_ soundly differentiates solving a problem by taking into consideration all known information (including limitations such as the presence of duplicate values when sorting a massive list of numbers, for example), using the most appropriate data structures and algorithms, etc. from code-tuning.

I mention this because it seems that when people talk about premature optimization, they are generally referring specifically to code-tuning. Thinking about a problem holistically and making smart choices about data structures and algorithms is never premature optimization—those steps are absolutely definitive, while code-tuning can and should be reserved for later in the development process, because it is does not define the solution.

</comment><comment><USER22> Everything in moderation. Iterating over a giant array when a hash lookup is the correct approach is not avoiding premature optimization, it is incompetence.

</comment><comment><USER23> I disagree completely with this.

I have been a paid software engineer for 15 years, and have been writing code since I was 8 years old.

Numerous projects (I would say even the majority) had spots that could be optimized. Don't believe me? Ok, on the video pipeline I have been working on the last few years: When we finally got around to profiling we found that a large chunk of time was spent scanning for H264 start codes... And we immediately saw that if we simply scanned through the buffer the other way, we cut down it's run time dramatically. Or how about the time that the profiling revealed a "hash table" that was, due to a bug, actually a linked list!

Finally, I am tired of working on projects that "optimize" the whole time. The code bases are CRAP. Full of "optimizations" that usually are actually slower, and a nightmare to maintain. Do you know what works better: Concentrate on solving the problem at hand and writing high quality simple code, and don't do anything else.

</comment><comment><USER24> In my experience — and this does require experience — you can avoid big problems by simply factoring well. For me, the best proxy for "well-factored" is the least amount of code necessary for a defined task.

If the code is clear, then it's unlikely that performance problems will be expensive to fix. Caching is a good example — most of my methods will allow an "if cache exists" block to be inserted near the beginning in about 5 minutes, when the need arises.

But experience does matter. I've learned that LINQ can be expensive unless you understand a few key behaviors. Knowing the platform very well allows you to not make huge mistakes on a first-pass.

</comment><comment><USER25> How would you know the difference between the first chart and the third chart a-priori. Say you saw the third chart and mistook it for the first chart?

Having looked at 10's of profiles using frameworks and seeing the exact same profiles across the applications, can we ignore the framework part of it?

Recently we spent a week profiling an application trying to find a very bad, but very hard to reproduce bug. After a week of profiling, debugging, pouring over logs, etc. It turns out the problem might have been a defective controller on the storage appliance the database was using. How can you know a-priori what you are looking at?

</comment><comment><USER26> One really has to think of the WHY behind such idioms. The reason for not beginning to early are that you might not know what the real bottlenecks will be and therefor sacrifice readability and time for finishing an early version, which would actually allow you to have a look on how things work in practice. Usually you want to have some kind of small prototype/proof of concept to follow other idioms, like "release soon, release often" or "small is beautiful".

Also it depends on what you actually do. If you want to create something where you mostly care about performance it's not like you'd start when everything is already finished. Another thing is that such idioms are important to make you a good programmer writing good software which isn't always what you want to do in real life. Often you just care about making money or pleasing your customer/boss.

Think about Sun Tzu. A lot of people in the military read his books. He was very experienced and had a lot of knowledge, still it may be impractical to follow his idioms, even if they are one hundred percent correct in every situation.

I guess the world would be better, if everyone would listen and _always_ follow guidelines, as the UNIX philosophy, but the current situation real word sadly adds a lot of variables which cause you to ignore them.

Or in other words: It all depends.

Or to quote Einstein: All things are relative.

</comment><comment><USER27> It seems to me, that this article is based on wrongly understood idea.

"Premature optimization" should be rather considered as an idea to consider the whole picture first. It's scary sometimes, but engineers are usually paid because of creating something and that creation is usually more than a set of highly optimized code lines.

Consider the fact, that even when analyzing algorithms, you should consider whether your point of focus are allocations or comparisons. You have to remember about cpu time, memory, I/O, cache, data fragmentation and sometimes even power outages.

Thus, there is ABSOLUTELY NO EXCUSE TO CODE WITHOUT UNDERSTANDING WHAT GIVEN CODE IS SUPPOSED TO DO, but killing yourself over few extra miliseconds of cpu time, or even few extra megabytes of storage usually is SENSLESS.

What's more premature optimization can easily lead to mentall exhaustion (because "well, I spent 8 hours writing a function in assembly, so I'm tired") and eventually, decrease of quality of the rest of the code. And even if not, you have good chance of writing code, that is beyond reusability.

Summing up, pretty please, everyone, stop confusing 'code desing' and 'optimization'.

</comment><comment><USER28> The problem is: in a fast-moving startup we rarely have the time/luxury to spend time on optimizing after the fact. IMO your choice will depend on how isolated the optimization task is and how long it will take.

E.g., we're building a healthcare app with Google Web Toolkit on the front and Google App Engine at the back. On the front, I'm creating single instances of each page (e.g., one patient widget instance per patient) right now because changing that model from regular (new instance every time) to singletons after release is prohibitively expensive and risky.

On the other hand, I've postponed server memcache implementations to cache query results on the app server because the APIs are fluid/changing (so it's wasteful to do now), and I can take up all the memcache setups together comfortably after the release. I.e., that task unlike the widget instances is isolated and relatively safe to do.

</comment><comment><USER29> The problem with postponing optimization is that getting really good performance out of a system sometimes depends on picking a particular underlying model, which may subject your system to some unexpected constraints.

For example, who remembers DOOM? The distinctive 2-1/2 D level designs were done that way to simplify rendering, as an optimization. That's how the rendering engine could run at a remarkable framerate on the hardware of the time. If ID had started off with a full 3D rendering system and said "well, it runs at 2 FPS, lets go design some levels, we'll optimize the rendering engine later" ... well, the game would have worked out quite differently.

<comment><USER30> Sure. Thats picking the right algorithm though, so rendering is O(n) say not O(n^2). But yes these things do make a huge difference.

</comment></comment><comment><USER31> There is a certain kind of project where you're not sure, at the outset, if what you want to do is even _possible_ due to performance issues. Obviously, that question needs to be answered as early as possible, and so the project is about "optimization" from day one.

A good example is id games -- Quake, Doom, et al. They design games around technology. They need to figure out exactly what the engine can do before anything else.

Phones and tablets are making this sort of project common again as people push the limits of those platforms.

</comment><comment><USER32> _"Just as you can't add quality to your code just before shipping, seldom can you significantly improve performance without dramatic rewriting"_

That's total bullshit. I've seen massive improvements from just a few key optimisations on very large code bases.

Q: _"When is it a mature time to start to consider performance, however?"_

A: When you have problems due to slow performance.

The "premature optimisation is the root of all evil" catchcry is basically the same as "don't solve problems you don't have".

</comment><comment><USER33> "Why not iterate a giant array instead of using hashes? Why not use LINQ everywhere, repeatedly and inefficiently filtering a massively excessive superset of the needed data?"

There's not prematurely optimizing and there's criminal neglect.

Sure, if you take the First Year Student™ approach to problem solving then a simple database query and processing might be O(scary) and fail to perform.

Generally speaking though, a few milliseconds away from that clever bitwise operators hack would be fine.

</comment><comment><USER34> I use a simple rule, treat all new code as production code, don't assume you'll have time to go back and optimise it, because you won't, ever.

</comment><comment><USER35> > Most will say the time to optimize is once you're fairly well along in > development.

I call BS. But, if most do say that they are stunningly wrong. The time to optimize is after it is determined that some portion of code is too slow to meet a (non)functional or business requirement.

</comment><comment><USER36> Always avoid premature optimization and every optimization before you can run benchmark is premature.

But, hey, __don't do anything stupid __. Like pulling whole dataset over the net from database just to calculate some sum or average or do a join or iterate to find something.

</comment><comment><USER37> Unrelated comment, but the sidebar on that page sort of looks like a premature optimization...what's the purpose of making it hard to see? I didn't notice it was there until I accidentally moused over it. Can anyone explain the efficacy of that in design terms?

<comment><USER38> The point is that you're not supposed to see it until you are done with the article, and start mousing around. Just the fact that you couldn't see it means that it did its job.

Now whether that's a good idea is another debate - it's a design decision to "hide" the sidebar.

But do this - compare the page with and without the sidebar - you'll notice that you focus on the actual article much better without the visual clutter of the sidebar in the way.

<comment><USER39> I read this article then came back to read the comments. I hadn't even noticed there was a sidebar. So yes, I'd agree with you, I focused much better on the actual article with a hidden sidebar.

</comment></comment></comment><comment><USER40> An experienced developer can in many cases be explicit about when he is sacrificing performance for the sake of getting things ready. Usually ends up writing code whose performance can be fixed with relative ease. Those places will be the low-hanging fruits.

</comment><comment><USER41> Finally someone who can get some attention voices the truth!

It has been frustrating to see how people avoid doing a `bit of thinking` in the name of the gold words 'Premature Optimization is the root of all evil'.

</comment><comment><USER42> I suppose, that's what you call 'uniformly slow code'. <http://c2.com/cgi/wiki?UniformlySlowCode>

</comment><comment><USER43> I like the observation. It is a corollary of Amdahl's law: if every step is slow there is no point optimizing any of them until you can optimize all of them.

</comment><comment><USER44> Premature optimization is a skill. That is, you know how to write good code and never waste your time on neither premature nor postmature optimization.

</comment><comment><USER45> I imagine Knuth's first version of Tex was pretty darn fast even without 'optimizing'.

</comment><comment><USER46> As they say there is more than one way to mouth a cliche.

</comment><comment><USER47> My opinion is that an optimization that costs less than a couple of hours of development time, if it doesn't harm code quality, is invariably worth doing. Even if there's no evidence (because the code is being constructed at the time) that this matters from a performance perspective, you should spend the hour or two and get that low-hanging fruit and not worry about it being "premature". If you don't do this when you're in-context, it'll cost an order of magnitude more time later on if the problem is discovered in profiling and needs to be addressed in the future.

When premature optimization is evil is when it damages code aesthetics and maintainability. There is a limit, in performance, to what can be achieved with aesthetically clean code. What awful programmers (who think they're being clever) tend to do is write the ugly, dirty code because it's super-fast, but no one can maintain it and even they don't understand it.

What good programmers do is write clean code on sound fundamentals first, so that people can understand what's going on. Then, if a performance problem's discovered and a certain module needs to be optimized, they put the critical region behind a clean interface and allow the dirtiness (which they document heavily) to be in the implementation.

TL;DR: spend time to make your code performant if it doesn't damage code health; be very cautious about replacing clean code with faster, dirty code.</comment>


Looking for Cofounder - startup-founder Hi,
I'm looking for a developer cofounder for a startup. Any ideas? Suggestions? <comment><AUTHOR> A few suggestions: \- attend meetups, but not just one. Create a longer term relationship with those you would consider for this role. The likelihood of meeting the co-founder who completes the successful startup formula at a meetup is quite low. You're more likely to find this person in your existing network since that co-founder will also need to be capable of surviving the harsh peaks and valleys of the startup's lifecycle, together with you. Weak relationships are harder to maintain throughout this journey. There are, of course, exceptions. \- Evaluate tools that would allow you to build your product yourself. You'll be surprised at how far you can go with the tools available to non-technical founders. \- Consider hiring someone. A strong hire would create a working relationship and may end up being the best fit for the co-founder role. You might even get by with this as the long term arrangement. \- Be charismatic and open minded. You've probably already met your future co- founder.

</comment><comment><USER2> I'm game. Let's discuss.

[https://www.linkedin.com/in/jesseleehorne/](https://www.linkedin.com/in/jesseleehorne/) [https://github.com/jessehorne](https://github.com/jessehorne)

j.horne2796 AT gmail.com

</comment><comment><USER3> I'm a developer myself and I'm currently looking for new projects to work on. I'm interested in hearing about your idea if you don't mind sharing it. You can email me at email@example.com

</comment><comment><USER4> Join startup school which starts on 22nd [1]. YC is going to have co-founder matching part of the course.

[1] [https://www.startupschool.org](https://www.startupschool.org)

</comment><comment><USER5> If you can provide some details that'd be helpful. If you live in a larger city, you should also visit Meetups and the local tech and startup scenes. Finding a developer cofounder can be a real challenge.

</comment><comment><USER6> as a tech co-founder what convinced me to join my current co-founders was a prototype they build with bubble.is. It gave me confidence that they have at least some understanding of what it means to build a product.

</comment><comment><USER7> In about 10 words what problem will your start up solve?

I am interested. firstname.lastname@example.com</comment>


The Cost of Laundry - <AUTHOR> http://maxbeatty.com.s126963.gridserver.com/?p=1270 <comment><USER2> I could see an app in this space working. I used to work in a laundry place when I was a kid, and the quarters thing was certainly annoying (and some machines didn't work all the times, etc). The owners don't particularly like filling/depositing them, etc.

Big problems are a) Adoption (selling the system to SO many independent shops. If you can get in with big REIT companies then that's easy, but 90% of those have smart cards anyway b) Outside of the the super high rent areas (New York, San Fran, etc) most people that use laundry mats are lower income, who may not have smart phones and/or credit cards.

</comment><comment><USER3> Probably the biggest issue off the top of my head is that if you pay a monthly fee for laundry service, and the machines break, the tenants are losing money every second that ticks by and the machines are broken. Another way of looking at is is that the landlord all of a sudden has a lot more pressure to deal with when one of his machines break.

Contrast that to the per-use fee structure, in which case you don't lose any money when you go down to the laundry room and see the machines are broken - you haven't put your money in the machine yet.

</comment><comment><USER4> My tenants would run whole loads for a single pair of socks if there was no per-load cost. The charge is a barrier to waste. I hate counting quarters, though... I'd welcome a better payment system.

<comment><USER5> An alternate system is to pre-book the time. There are a number of ways to work out the mechanics, but the simplest is a piece of paper with time slots for the month. You write your name in the time slot, and can wash during that time. (Better is if the dryer reservation is one hour delayed from the washer reservation.)

It can be that someone frequently over-reserves wash periods. Here's a picture of a more complicated solution involving physical locks [http://askersundsflickan.blogg.se/images/2011/dsc05064_13323...](http://askersundsflickan.blogg.se/images/2011/dsc05064_133236936.jpg) . You can only reserve a time with a lock, and you only have one lock.

I have a friend who moved to Switzerland. He says that in his building your laundry times are pre-booked for the entire year. Don't miss your wash day!

<comment><USER4> Actually yeah I did see this done in Sweden as well but didn't think of it before. I think it creates a sense of 'shared limited resource' which IMO is more widely understood in Europe than NA.

An app for managing access to community/shared resources? Meeting rooms, ice rinks, laundry, coop cars, ??

</comment></comment></comment><comment><USER6> I'm surprised this isn't more common, but at my apartment complex the machines are all payed by card. They give you a special card for the machines, and you can put money on it whenever you want. It was like this at college too, but with your student ID card. The machines at college also had slots for quarters, but I only ever used that when I forgot to put more money on my card.</comment>


US: Saudis recruited Twitter workers to spy on users - <AUTHOR> https://apnews.com/2a04ef6d767347b1bb4308c66e65a8c6 <comment><USER2> If replace Saudis with China,I believe there would be tons of comments here to blame Chinese government. How lucky Saudis is :)

<comment><USER3> Just a nit pick, word Saudis mrans people of Saudi Arabia, like Americans means people of America. You can either say "replace Saudis with Chinese, or Saudi with China".

<comment><USER2> thank you pointing out :)

</comment></comment></comment><comment><USER4> >Investigators alleged that a Saudi working as a social media adviser for the Saudi royal family recruited Twitter engineer Ali Alzabarah by flying him to Washington, D.C., for a private meeting with an unnamed member of the family.

MICE. Especially considering what the Family may do to the people who displeases them. Anyway, reminds about the recent story of GitLab making moves to avoid Russians and Chinese. Time to add Saudis to the list i guess.

</comment><comment><USER5> How the hell did they even have access to this data?

Twitter isn't a 6 month old startup. How is there not strict access controls in place?

<comment><USER6> I think at least one of the princes of UAE is a major Twitter investor. And UAE has a strong relationship with KSA. Still doesn't make sense, but could be one way to find the connection.

</comment></comment><comment><USER7> >> Ahmad Abouammo ... was also charged with falsifying documents and making false statements when questioned by FBI agents at his Seattle home — offenses that carry a maximum penalty of 30 years in prison if convicted.

Lawyer 101: Don't talk to the cops. If the FBI are wanting to talk to you in your own home it isn't for your convenience. Thank them for their visit, shut the door, and get a lawyer. When he tells you to sit on the couch quietly, do it.

(Many defense lawyers would advise not even opening the door.)

</comment><comment><USER8> Duplicate: [https://news.ycombinator.com/item?id=21467921](https://news.ycombinator.com/item?id=21467921)

</comment><comment><USER9> The US government would never do this, because they can just send a National Security Letter directly to corporate to get private user info.</comment>


Cryptocurrencies: Last Week Tonight with John Oliver (HBO) - <AUTHOR> https://www.youtube.com/watch?v=g6iDZspbRMg <comment><USER2> It was cool to see him use a few concepts that I've used when trying to explain cryptocurrencies to friends: Chuck E Cheese tokens and Beanie Babies. (The other is Easter Egg hunts). Overall, I'm glad that John Oliver's done a piece on this because he's previously been successful at bringing once niche topics to popular culture (net neutrality and sport stadium financing).

I think blockchain (and to a lesser extent ICOs) does have long-term utility. However, the current lack of oversight combined with hype/FOMO for cryptocurrencies and ICOs is the perfect recipe for those "in the know" to rip off the less knowledgeable.

</comment><comment><USER3> This is geoblocked in Australia. Does anyone have an alternative source?

<comment><USER4> I usually evade geo-blocking with Tor.

Install tor, torsocks, youtube-dl. Then do:

      $ torsocks -i youtube-dl g6iDZspbRMg

HTH</comment></comment>


A Desperate Plea for a Free Software Alternative to Aspera - <AUTHOR> https://www.ccdatalab.org/blog/a-desperate-plea-for-a-free-software-alternative-to-aspera/# <comment><USER2> I hope that this post gains traction!

</comment><comment><USER3> Quic perhaps?</comment>


Ask HN: Remote workers, how could your email be more focused/helpful? - <AUTHOR> I'm working on making email better for people who want to work remotely / work from home.
I'm interested in what ways you'd like email made better for you. An example of the feedback I've gotten is - to have only the most relevant emails appear (conversations with other people, meeting invites) - to group emails by labels
I'm curious if you've got ideas of how to make your life easier. Thanks! <comment><USER2> In my honest and genuine opinion, I don't really need more email tools, I just need more legitimate people who want to do business mostly through email.

For every 1 million jokers who aren't looking to do a deal that will result in me making a fair profit for my hours, there is one perfect client that I would kiss the ground they walk on.

If email can help me sift through the jokers to find the perfect client, then I would pay x monthly for the tool, where the deal size is 5,000x

<comment><AUTHOR> That's great! How do you deal with identifying those currently? What would you rather like?</comment></comment>


It is better to be feared than to be loved - <AUTHOR> https://nubela.co/blog/it-is-better-to-be-feared-than-to-be-loved/ <comment><USER2> Aside from the blatant bigotry in this article toward the bottom, the article is correct. Most people need rules and if you are too lenient, you will have people abusing them.</comment>


What are the visa options/hacks for entrepreneurs or international employees - <AUTHOR> What are the visa options for entrepreneurs and international employees? How to get an H1B, other visas, or green card if you are an entrepreneur? <comment><USER2> O1 is a good option I hear.</comment>


And the privacy invasion award goes to …  - <AUTHOR> https://www.eff.org/deeplinks/2012/05/and-privacy-invasion-award-goes-to <comment><USER2> I might have a bleak vision of this place but unfortunately I think this article is not going to ring a bell in here. Well it might be upvoted but sparsely read.

A good portion of HN users don't care at all about privacy, or at least not when they could be the ones protecting it. I read this board every day and every time I am floored by the fascination for cloud services, the (relative) savings from it and monitoring software. As long as they are glossy and beautiful, that's it, sold.

Anyway I was shocked by the last one with Brita and that's great that EFF is publicly calling these companies and their actions.

Thanks for reminding us that we must remain vigilant.

<comment><USER3> Privacy probably doesn't strictly monopolize HN's concerns because cloud services are Good Enough when it comes to privacy for our Ruby on Rails MVPs, our benign blogs, and our JSconf slideshows.

Conflating privacy where privacy is needed with privacy for privacy's sake is a waste of time and dilutes real privacy concerns with a bunch of "Wolf!" cries.

<comment> loup-vaillant One example of a huge cloud-based privacy problem: Google Analytics, which I discovered by using NoScript.

So, google knows about me even when I don't use it. Even when I am explicitly _avoiding_ it, and use DuckDuckGo instead (I do, by the way). Your "benign blog" which uses this service is hurting my privacy big time. I'm okay with _you_ knowing that my computer is visiting your web site. I'm not okay with third parties such as Google, Facebook ("like" buttons, anyone?) or some advertiser automatically knowing that as well.

Same problem with Gmail. They look at and analyse your emails to send you those targeted ads, remember? You pay with your privacy to use it. Which may be fine. But you also pay with _my_ privacy, each time you send me an e-mail, and each time I send one back. That is definitely not fine.

Personally, my heuristic for privacy is this: By default, don't sacrifice your privacy. Think twice before you do. And never ever sacrifice others' privacy without their explicit, informed consent.

We're quite far from that.

<comment><USER4> I read someplace that 60% of the English language web sites use google analytics. add in any DNS requests passing through google's DNS, adwords js views, google searches etc and it's not hard to assume they can see pretty much whatever they need to build an advertising profile for you.

I suspect facebook is a close second with the tracking of outbound links from FB and "like" buttons all over...

</comment></comment></comment></comment><comment><USER5> Just wrote 'furious email tone' to Brita, as a long time user:

"Hello,

With respect, I am disgusted to learn apparently your company is responsible for forcing schoolchildren to use RFID chipped water bottles that need to be 'scanned' whenever they want to refresh themselves of surely a basic human resource, drinking water. I sincerely hope the following 'award' goes someway to you recognising how disgusting your conduct appears to the general public:

<https://www.bigbrotherawards.de/2012-en/.biz/>

I hope that you are a good company with well intentioned people working who has been misinformed or conned by some marketing clown, and that this is just a misjudgment on the part of bad management. Please ensure this programme is stopped as soon as possible, I have been a Brita user for years but this is unconscionable.

Thank you,

xxxxx xxxxx"

</comment><comment><USER6> Privacy (and anonymity) is worth defending right now precisely because it is under an unprecedented attack.

There is a real mania underway for registering and identifying users of even humdrum activities like using public transport, for instance. Increasingly, you can not get services, at least not at the best price, without registering all your details and being issued with some silly card to identify you. Yes, there are 'discounts' offered but this just proves the point that there is real pressure to identify everyone at every transaction. In practice, it means in fact a hike in price for those refusing to conform.

The Brita example of children not being allowed to drink water without identifying themselves is just the tip of an iceberg.

<comment><USER6> Contrast this modern lifestyle with those _terrible dark ages_ , when you could put a few gold coins into your purse, jump on your horse and ride to anywhere without a passport, without any idetification or documents whatsoever, without worrying about exchange rates. You could give or not give your name as and when you pleased and still get courteous services and make purchases with your gold anywhere in the whole world.

A _lot_ has changed since those days and, I would argue, not for the better in this respect.

<comment><USER7> If you really believe that was a better time to live in, there's some third- world countries that still operate that way. But it's pretty rough going when you have 1. no credit and 2. no distance communication, just to name two basic issues enabled by better identity management.

<comment><USER6> Poverty, though a real problem, is an orthogonal issue to this. You are right though that debt creation and 'identity management' go together. Interestingly, these dirt poor people who are not 'indentity managed' have better balance sheets (standing at zero) than your average US college graduate.

<comment><USER7> I actually only was referring to the lack of infrastructure, not the poverty (although the two generally go hand in hand, because per-capita GDP is driven by the level of infrastructure investment.)

As for balance sheets, that's why you don't assess company values based on their balance sheets alone. It's better to have a somewhat negative balance sheet and strong income potential than a zero balance sheet and 1/10th the future income. We complain a lot here in the US about how terrible things are, but we still have something like 10X the per-cap GDP of much of the world.

</comment></comment></comment></comment></comment><comment><USER3> The award to Blizzard, Inc. for memory scans to prevent cheating in an MMO video game (something that I'd wager most players would accept) sort of cheapens the award when it's shared by widespread government-disseminated trojans and citizen surveillance.

<comment><USER8> An example of what is developing into my biggest problem with EFF: an organization doing incredibly important work that at the same time has seemingly no scruples about muddying the water to gain attention and gin up outrage. It's hard to escape the thought that Blizzard is on this list because nobody cares about German frozen food companies, but everyone recognizes Blizzard.

<comment><USER9> How do you come to that conclusion? The German Big Brother Award is not an EFF event. It concerns itself with issues mostly relevant to Germany and is split into different categories. Blizzard "won" the in the consumer protection category. I would also argue that it's wrong that nobody cares about frozen food companies. Germany has strong privacy laws and while not nearly enough people care, a lot still do. Companies violating employees right to privacy _is_ a big deal in Germany and gets top spots in the news.

<comment><USER8> I agree that companies violating German privacy laws are a big deal.

</comment></comment></comment></comment><comment><USER10> I hate how often the EFF comes off as looking like a bunch of conspiracy theorists. "chat recording that captures text communications, game recording and player rankings that reveal how often and how long players have been playing" Um, yes, this was a highly desired feature.

There are so many legitimate problems in privacy, but these are not them.

<comment><USER11> It is, to be fair, also a feature that is of great use to stalkers - a problem which WoW players won't be exactly unfamiliar with.

I'm on the fence about this award for Blizzard - on the one hand, there are worse offenders, but on the other hand, Blizz do tend to make some remarkably dubious privacy calls.</comment></comment>


Cassandra NYC 2011 Presentation Slides and Videos - <AUTHOR> http://www.datastax.com/events/cassandranyc2011/presentations <comment><USER2> Thanks for posting this. I attended the conference and was wondering when I'd be able to get to see the rest of the presentations that I missed.

Anyone else from HN attend this event? What did you think?</comment>


Cisco warns iOS device customers on attack 'evolution' - <AUTHOR> http://secureall.org/news/blog/cisco-warns-ios-device-customers-on-attack-evolution/

<comment><USER2> Cisco has IOS (Internetwork Operating System). Apple provides iOS, with the lowercase i. Can we get the title corrected please?

\---

This attack requires having previously gained administrative permissions.

<comment><AUTHOR> Thank You for reading the blog, we have checked in the blog it is mentioned as IOS only.</comment></comment>


LinkedIn Kills Controversial iPhone Email Feature - <AUTHOR> http://blogs.wsj.com/digits/2014/02/07/linkedin-kills-controversial-iphone-email-feature/ <comment><USER2> [https://news.ycombinator.com/item?id=7197965](https://news.ycombinator.com/item?id=7197965)

</comment><comment><USER3> I don't it works well.</comment>


IKEA Click and Collect Availability Tracker - <AUTHOR> https://clickcollect.info <comment><AUTHOR> Just a quick update for everyone, with even more coming.

Update June 17th: We Just added several new Canada store locations.

Update: June 15th: We release an iPhone version of the app so you have mobile alerts of Click and Collect openings. You can get it here: [https://apps.apple.com/app/id1517900726](https://apps.apple.com/app/id1517900726)

Update June 13th: Added historical data of the last time a particular store was open.

</comment><comment><AUTHOR> We've added a few more features:

\- Each location shows the last availability of a Click and Collect opening. For example: Emeryville, CA last was 11:29 AM today. \- Auto refresh of the website so you don't have to click refresh. \- An iOS app so you can get mobile alerts on available time slots: [https://apps.apple.com/app/id1517900726](https://apps.apple.com/app/id1517900726)

</comment><comment><AUTHOR> My friend and I live in NYC and we were trying to use IKEA's Click & Collect (IKEA's curbside pick-up) in Brooklyn, but we never could find an opening! Since we're developers, we figured why not write an app to do the searching for us.

[https://clickcollect.info](https://clickcollect.info)

Feedback welcome, and if you want to sign up for email alerts it will help keep the site running and buy us a coffee.

</comment><comment><USER2> This is a very cool service. There are so many products out of stock at lots of stores. Just too much to keep track of.

IKEA click and collect is just too hard to keep track of so the push emails are great!</comment>


GitHub just got a small visual refresh - <AUTHOR>

All the icons are new and flat. Anyone else notice? <comment><USER2> Octicons got bumped to 3.0

[https://github.com/github/octicons/blob/master/CHANGELOG.md#...](https://github.com/github/octicons/blob/master/CHANGELOG.md#300)</comment>


Ask HN: We got a HN's redesign? - <AUTHOR>

Today I've noticed that the numbers ranking the stories have got some color, and also when replying / submitting, the title bar got a darker red.<p>Any other changes? What do you think? <comment><USER2> Happy/Merry Christmas colo(u)rs.

</comment><comment><USER3> Christmas.</comment>


New bill in congress would add cigarette like warning labels to video games - <AUTHOR> http://www.gamepolitics.com/2009/01/12/new-bill-congress-would-add-cigarette-warning-labels-video-games

<comment><USER2> "Warning: Studies have shown that playing video games is really fun, so you watch out now"</comment>


Source Code Pro Font on Github. - <AUTHOR> https://github.com/adobe/Source-Code-Pro

<comment><USER2> The actual binary font files have been removed for some reason. Available on an earlier commit:

[https://github.com/adobe/Source-Code- Pro/tree/14f25136552ea5...](https://github.com/adobe/Source-Code- Pro/tree/14f25136552ea5a048d8b811bdc68f5f1cadb403/Roman)</comment>


The Cutting Edge - <AUTHOR> http://www.wired.com/wired/archive/4.03/cutting.edge_pr.html

<comment><USER3> I hate stories like this. Given the topic and situation, I _can't not_ read it. So then I do and the story is pointless. Ugh. Precious minutes I will not get again. kthxbye.

<comment><USER4> your comment saved me those precious minutes - <USER2>

<comment><USER5> This story only works because some of the characters are psychologically "abnormal." It's the same kind of substitute for carefully fleshed-out motivation as certain creatures being "evil" in a fantasy context.

<http://badgods.com/orc.html>

(In fairness, a part of the "fun" would be wondering about your own professor. And some of the philosophizing about academia is interesting.)

</comment></comment></comment><comment><USER6> Michael Meloan (email@example.com) has published fiction in Buzz Magazine, LA Weekly, Chic, and Caffeine. He has also written for Joe Frank's National Public Radio show.

Copyright © 1993-2004 The Condé Nast Publications Inc. All rights reserved.

Copyright © 1994-2003 Wired Digital, Inc. All rights reserved.

</comment><comment><USER7> Why was this even posted? It took me a moment to realize it was fiction. I guess I'll start reading the comments first.

</comment><comment><USER8> This guy writes about as well as J.K. Rowling.

<comment><USER9> Thanks for the comments, i lasted about 30 seconds into the story</comment></comment>


Ask HN: I have constantly fallen prey to office politics. Need Advice - <AUTHOR> I have graduated from a top-notch university and joined a big tech company. I started my own business as a side job and eventually got acqui-hired by a bigger startup with ~50 employees (my hiring being the main reason of the acquisition). I joined this bigger startup as their highest paid employee (I wasn't named the CTO because the company had a "no roles, no bosses policy").
I was hired mainly due to my experience with high quality / scalable code. Soon, a few key employees begun downplaying this ability of mine – for instance, they loved to rewrite the components originally written by myself whenever they could. I would never criticize their work as a way to fight back. The "no bosses, no roles policy" also made things harder for me, since I didn't really feel like I could trust anyone.
Eventually, I left and took a top management position (reporting to one of the company's VPs) at a more established corporation. I gave my best at this new job, building a new development team from scratch and delivered solutions with real business impact throughout the company. My work was recognized, and I became known in the whole company. It felt truly amazing. However, there was one executive that made it clear, from the very beginning, that he didn't like me. Things went south recently after a reorg, when he began owning an area I worked closely with and loved the work we did. This executive (who happens to be the CEO's favorite) begun searching for motives to belittle our work. Things have now gotten to a point where even my boss is refraining from defending us.
I had to control myself not to quit this job today (and let go of my bonus). It would be fairly easy for me to find another similar position. However, I wonder if I am lacking some sort of skill. I do notice that I have a hard time saying no and that I generally like pleasing people. I don't want this to happen to me again, so any advice (books, therapy, "you shouldn't be a manager") is deeply appreciated. <comment><USER2> Allow me to disagree with you.

"Soon, a few key employees begun downplaying this ability of mine"

"begun searching for motives to belittle our work. Things have now gotten to a point where even my boss is refraining from defending us."

What IF... Your university have a high "pedigree" but the education and your skills are really not great?

It may surprise you.. But what if you are "average"? Or Worse.. You are smart but did not work/study hard?

Now you have 2 options:

1\. Be angry and defend yourself and your actions as you are doing and use "top notch" university as a shield.

2\. Consider what I am saying and search for "real" feedback.

#2 is very hard because people are so afraid to offend or loose their time discussing with someone that does not want to listen that they avoid giving feedback.

My strategy at similar situation was sit with my "enemies" and say:

"Ok, I can sense we are not getting along and may work is not to your standards. Can you really really give me feedback and tell me what I can get better?"

Now be aware.. One of my "worst" enemy rant for 40 min. talking about how I do X, Y ... etc. Mostly were his personal agenda but in the middle of that I grasp two things. And that really help me.

What I want to mean is: When people complain our become your enemy is not about YOU but it is about HOW they PERCEIVE YOU. They don't know you are a nice guy that teaches for free in a poor kids school or that your a nice neighbour that helps your senior.

They only "know" perceive you for small hours and with their glasses.

So if you adjust two or three things on your "representation" you can make leaps in positivity.

My Enemy perceived that I was not hard working despite I was the most hard worker. So Every Friday I went to his office and talked about what I did on week and my plan for the next.

In two months I was the "best employee" working the same load. Surely I did not work more but his "perception" was that I did...

You know... Humans...

PS. I really want to help you in a positive way

<comment><AUTHOR> I appreciate you trying to help me. I am sorry if I sounded arrogant in my original post, that wasn't my intention.

That being said, I don't think this is about me being "average" or not. I don' even think it is possible to measure how "good" people are in a global scale. People with different skillsets are good for different positions.

My main question is whether or not I am lacking a specific skill, what that skill is and how to acquire it. Or even if I should give up on managing people and going back to being an IC.

From what I understood based on your comment, sounds like you believe I should improve my communication skills. Is this the case? Do you think just communicating more with the people I am having problems with is enough?

</comment></comment><comment><USER3> Large corporate envs are highly political at senior levels. Sounds like you're focused on building solutions and making users happy, which leaves you exposed to backstabbing from peers and seniors. To operate successfully at senior levels in a big corp you need to manage outward and upward. Unfortunately this means spending less time with your team and users, and more time with key peers and seniors to form relationships and alliances.

<comment><AUTHOR> Indeed, this is good advice and rings a bell. I am definitely focused on spending time with the team and making sure they are delivering good solutions. I will make sure I spend more time building relationships.

<comment><USER4> Or, alternatively, try to find somewhere where your solution-focused attitude is rewarded.

Not saying you shouldn't try to build relationships but I'm not much for hand- holding just so people won't hate you for no reason.

It's ok, you don't have to be friends with everybody.

</comment></comment></comment><comment><USER5> When they rewrote your components was the solution better or worse?

In the 2nd position, do you know why the executive didn't like you? If you don't know, then that's the problem. Maybe you are too proud, perhaps you are too loud, perhaps you smile a lot, perhaps you don't smile a lot. It doesn't matter the reason, it could be valid or not. You need to discover why this executive doesn't like you.

If you figure out why, you can try to at least control it. Perhaps he doesn't like you, because your team was crushing it, releasing amazing stuff. Perhaps he wants credit. Sometimes giving people credit even when undeserved to get them off your back is worth it. You can ask him a question or two. Release your project and say you couldn't have done it with the amazing advice.

It would be nice not to have to play politics, but in most organizations, a lot of people are motivated by money and power. As you climb up it becomes a game of throne like environment. Ignorance to the happenings will frustrate you and be the end of you. You can either play or be destroyed. BTW, grab a book on "Nonviolent communication" best of luck.

<comment><AUTHOR> The startup actually used two different stacks / programming languages. They would generally just port my micro-services from one stack to the other and brag about the fact that they were faster than me in writing them, which, in my opinion, really isn't a fair comparison given that porting something is a lot easier than writing from scratch (since you don't have to make decisions about architecture, etc).

On your second question, I have no idea why this executive doesn't like me. I wrote a comment on another thread on my first negative interaction with him and someone suggested that my presence somehow messes up with plans he originally had. However, I can't really think of anything.

<comment><USER6> Have you tried _talking_ to the exec? Take him out to lunch or something and get to know him. Find out his professional interests, get a feel for his motivations, and understand his relationship to the CEO.

Once you understand him, you can make a gameplan. Since you said the exec is close with the CEO, he's probably a good friend to have, and patching things up with him can really improve how you look to the CEO.

Business is about people, and technical accomplishment only goes so far. Figure out how to make the right people happy and you'll go far.

</comment></comment></comment><comment><USER7> >that I generally like pleasing people

Wrong move buddy - this is 100% the cause of all the issues you're facing. People smell that, they kind of dislike you. BAD people smell that, they exploit your weakness to the max. There is no upside.

Work on fixing this immediately.

<comment><AUTHOR> The problem is... how do I actually fix this? I have considered therapy before, however, I find it particularly hard to pick a given therapist/approach. Do you have any recommendation?

<comment><USER4> Just accept that you don't need to be friends with everybody. Some people you just will not get along with. Whether it's you or them that's responsible is not really important.

I always try to be nice at the start, but if it goes south I just try to avoid that person. It has worked for me but YMMV.

<comment><USER4> Also something I read recently and agree with is this:

You do NOT have to be nice to people who are mean to you.

</comment></comment></comment></comment><comment><USER8> > that made it clear, from the very beginning, that he didn't like me.

How 'directly' was it made it clear?

How is your day to day contact with him?

It is also possible that misunderstandings at the start between you two can spiral out of control (even into hate).

Edit: formatting and spelling

<comment><AUTHOR> The area that I manage didn't use to exist in the company, so while I was still building the team (it was my 2nd month into the job) I invited him for a conversation and, before I began speaking, he interrupted me, asked the following question, which derived into the conversation below.

\- What have you done so far?

\- I am building the team, have already hired X people and they will begin next month. I have also mapped what all other areas are doing and I am planning our deliverables.

\- So, essentially, you have done nothing, right?

\- Well, there wasn't really much I could do other than that without a team. Besides that, I had to invest some time into planning and showing the executives the structures and resources I will need.

\- I got it, you haven't done anything. Listen, I am really close to the the company's CEO and we spoke about you yesterday. I didn't say anything bad about you this time. Besides that, I have a really good relationship with executives X, Y and Z and advisors A, B and C ... [he kept on bragging about himself]

The conversation above really sounded to me that he was threatening me. I spoke with some people in the company I already felt like I could trust about it and no one really understood why he did it.

I ended up thanking him for the feedback and moved on.

EDIT: Added further details that were previously included as a separate comment

<comment><USER9> It looks to me like your hire messed up something about this guy's plans and he set out to minimize damage as fast as possible. Since he had contacts and you didn't, he won (they usually do). Look, when you start at a new place, especially as a manager but even for ICs, it's because someone high up thought they needed an extra person (or a different person). And it's quite likely not everybody agreed with them. It's not really personal (although sometimes these people are OK with the hire but had a dream of a different skillset and don't think yours matches), but it's dangerous.

In those situations you have two options -- find someone he is close to who's more positive about you that you can leverage into brokering a truce, or try to use him for information. (You can straight up ask braggarts what they would do in your place, which usually makes it obvious why they aren't in your place already, in addition to giving you future bones to throw him to keep the hostility in check)

</comment></comment></comment><comment><USER10> You seem to be getting a bunch of criticism; so I'd listen to them. I don't like you might translate to "hey - can you improve your communication skills", and I'm rewriting your code to "this works, but is unmaintainable" etc.

Sure, some people are just jerks, but not usually consistently. So when someone doesn't like you, defuse the situation and ask what would help instead. You win listening points and also improve at whatever you were maybe messing up. And with people who are just being mean, you make them realise it.

</comment><comment><USER11> "Developer Hegemony: The Future of Labor" by Erik Dietrich is an interesting read. Erik talks about his experiences in office politics in large companies. He makes some interesting observations and analogies. Recommended. It would be interesting to get your thoughts on the book if you choose to read it<AUTHOR>
</comment><comment><USER12> First, I recommend you do not quit your job. No matter how frustrating it might be, it is always much easier to find a new job when you already have one. So if you decide it is best to move on, look for and accept another position before handing in your notice.

<comment><AUTHOR> You are definitely right. I controlled myself yesterday and ended up not quitting, but that was pretty close.

</comment></comment><comment><USER13> Bad streak, it happens, man. Wait for the bonus, then leave for something else. Plenty opportunities in the wide world.

</comment><comment><USER14> Based on your recounting of events I see four companies and you having "problems" at three of them. Working for a big tech company and the getting your side-job acquihired also raises some concerns.

You write that you got a "top management position" \- at how many years out of university? I am guessing less than 10 based on your summary. That also rings some alarm bells.

Granted there always will be people who are difficult to get along with. A situation that unfortunately goes with the territory in any corporate environment. There are many articles that suggest that many people in management positions are sociopaths.

In any confrontation there are two parties involved. You might need professional help, i.e. a therapist or career coach, to identify how you may be able to alter your behaviours to attain better outcomes for yourself and, ideally, for others.

<comment><AUTHOR> I spent 5 years at the big tech company and I was respected and had good relationships over there. I am pretty sure most my co-workers would hire me if they had open positions (granted, over there my work was purely technical). During 3 of those years I was also doing my business on the side.

I started my own business because I felt like the work at the big tech company wasn't challenging enough. I could have gotten my boss to make it more challenging, but starting my own business was a conscious decision, since I would have the opportunity to learn new skills and work with different technologies.

I was 9 years out of university when I got the top management position.

Fun fact: the startup I left wants to hire me back.</comment></comment>


Rent  your torso. - <AUTHOR> http://bits.blogs.nytimes.com/2009/01/20/torso-for-rent/

<comment><USER2> Why would you want to be a walking billboard?

<comment><USER3> Because people aren't satisfied enough with their day jobs, and they want to keep making more and more money so they can spend on frivolous bullshit.

 _In this up and down economy I'm outsourcing my wardrobe (namely shirts) to corporate america and you!_

I had a chance of talking with the guy, he talked about huge, extravagant vacations with the money which I think is awesome. "The economy is bad, so I'm going to whore myself out, then go overseas and spend the money instead of pumping it back into the economy".

But, I'm being an ass about it, so I'll leave it alone.</comment></comment>


An Open Letter To TED's Chris Anderson - <AUTHOR> http://www.realitysandwich.com/open_letter_teds_chris_anderson <comment><USER2> Hmm. The page has ads for something called "sacred geometry explained," astrology and "psychic science." The site at large contains heaps of further pseudo-scientific nonsense, including articles about Kabbalah, occult scholars, and the healing properties of herbs.

An excerpt from one article visible on the front page - "Health is the balance between the physical, Etheric, Astral and Mental bodies. We nourish the Etheric body with food that is enlivened with electro-magnetic energy, clean air, good water, sunlight, positive thoughts and loving feelings."

You'll pardon me for not taking this terribly seriously.</comment>


How Safeway Slashed Its Healthcare Costs, While Keeping Quality High - <AUTHOR> http://www.businessinsider.com/how-safeway-slashed-its-healthcare-costs-while-keeping-quality-high-2009-6

<comment><USER2> "By the end of the year, employees will be able to go on a Web site, punch in a zip code, and get a list of providers and costs."

Christ onna bike, finally someone arm-twisted an insurer to release price information. Now was that so hard?

<comment><USER3> Safeway's doing great work and genuinely innovating on multiple fronts. Our startup (URL in my profile) is working on this part of it; great to hear that people are interested.

The procedure code part of it is challenging. We're using a combination of plain-English descriptions of the various codes and some predictive modeling to try to get you to the right code. We can't guarantee anything there, but we're hoping we can narrow it down to a small subset and give you a pretty good idea of what your out-of-pocket is going to be.

<comment><USER2> Hell, if you can automate medical transcription, forget making a consumer website, sell it to hospitals and insurers. That's a whole industry unto itself.

</comment></comment></comment><comment><USER4> If the price of medical care were readily available, I believe the health care "crisis," as it has been called, would be considerably less of an issue. Once care givers responded to the transparency, prices would drop. Additionally, individuals would be able to determine the level of risk associated with purchasing more affordable high deductible insurance. Currently, most people just pick the insurance product that gives them the lowest deductible, never stopping to consider that the aggregate cost of their routine visits may amount to less than the difference between high and low deductible coverage.

</comment><comment><USER5> Burd's key observation: "cure for today's ills is simply removing the obstacles to a free health-care market." (from referenced WSJ article at <http://online.wsj.com/article/SB124536722522229323.html> )

</comment><comment><USER6> Great ideas. Somebody get that CEO a megaphone.</comment>


A Kindle trick changes the reading experience - <AUTHOR> http://goodexperience.com/2009/01/a-kindle-trick-to-cha.php

<comment><USER2> Imagine if the Kindle or other e-reader allowed plugins. Perhaps you could write a greasemonkey like script that automatically alters the reading experience for you.

The reader could write a simple script to replace "heart in his mouth" with whatever metaphor he wanted.

</comment><comment><USER3> A simple find feature -- which is what this article talks about -- isn't enough to crow about.

<comment><USER4> Right now it is, since many of the competitors to the Kindle (including Sony Reader) do not have any search capability.

</comment></comment><comment><USER5> _"his heart in his mouth." [...] just how many times did Follett use that ONE metaphor in a single book? [...] And the answer is: 13. Actually 17, if you count the four instances of "her heart in her mouth."_

Searching at that book's Amazon Reader page, I counted 16 instances of hearts in mouths. <http://www.amazon.com/gp/reader/0451166892>

Maybe there were 2 instances on a single page.

</comment><comment><USER6> I've got a great secret trick for the astute kindle owner - read it on paper!

<comment><USER7> I don't know how to say this entirely politely: where do you get off?

The sheer _hatred_ for this device staggers me. It's become a joke! People who've never used one call it ugly. They call it a waste. It's become a joke of the industry, and I _have no clue why._ It's selling well, isn't it? It's just selling to a niche audience of people who actually read things. So I guess the joke has to do with the implied functionality, like your wonderful joke implies.

I am an astute reader. I own a Kindle to go with my miniature library. I enjoy cuddling up with my Kindle just as much as I would with any other book. The screen is gorgeous. The _device_ is gorgeous. I've never understood the mockery. No, it doesn't feel "high tech" and gleaming, it feels very down-to- earth. It feels like a book ought to feel.

Now, I'm the sort of person who likes Shakespeare. And it's much easier to have The Complete Shakespeare on a Kindle than it is to have it in a backpack. I also have The Complete Asimov, and I'm considering The Complete Sherlock Holmes.

The Kindle got me into reading P. G. Wodehouse for the first time, because his stuff was free on Gutenberg. I managed to find a complete archive of Diana Wynne Jones stories: they're for teens rather than adults, but they're still very well-written and they're childhood favorites and I like that I can find them and read them when I couldn't purchase half of them physically on Amazon.

When I got to a meet-up an hour early, I had my Kindle, and I could go and search for half a dozen novels and read excerpts from each one. It's like window shopping but you can do it anywhere.

Not to mention the free wireless Internet I get everywhere, the NowNow asking feature (which I've used several times to get quick feedback on projects), and the music player, which I've loaded with Bach, and which isn't a _brilliant_ player but which makes for pleasant background music while I read. I value my Kindle more than I value my iPod.

So, you who would mock the Kindle, try planning out a 7-hour train ride when you read books often at the rate of one every 90 minutes. Try figuring out a better way to store 200 books in a dorm room without cluttering everything to hell. Try making a physical device that does as much, as unintrusively and as beautifully as the Kindle does. _Then_ mock it. But I don't hear the Kindle users complaining, and isn't that the important thing? The fact that the people who _actually_ use the Kindle enjoy their product a lot?

<comment><USER6> I don't know how to say this but... are you paid by Amazon?

Perhaps I'm being a bit too paranoid, I'll assume you're an honest kindle fan.

It is not the kindle that I hate, it is the Amazon marketing.

The kindle is in fact not selling well. It can't both: _sell to a niche_ and _sell well_ at the same time.

Not if you go by the standard definition of _well_.

It only sells well if you go by Amazon's much lowered sales expectations.

But honestly I sort of admire Amazon's hutzpa, they know what they're doing and they're dong it well.

The kindle, I don't hate, it's not for me, but I wish you the best with it.

<comment><USER8> Selling to a niche is a great way to sell well. Look at any company except the obvious humongous ones; they all specialize to niche markets. I don't know if the Kindle is intended to be a niche product or if it sells well according to the expectations of Amazon, but your general premise is wrong.</comment></comment></comment></comment>


France's Carmat implants its first artificial heart in human - <AUTHOR> http://www.reuters.com/article/2013/12/20/carmat-implant-idUSL6N0JZ3SF20131220?feedType=RSS&virtualBrandChannel=11563

<comment><USER2> Perhaps this title was initially Reuters' error? Their current headline reads, " _France 's Carmat implants its first artificial heart in human_".

This sounds like a big first step for this company, though as other commenters have noted, this is certainly not the first artificial heart implanted in a human.

Certainly, if there were a viable long-term replacement that didn't _require people to become brain dead_ so that others could get a heart transplant, that would be a major boon to humanity. And a 5-year bridge, if the hopes for the lifetime of this device pan out, would be a major forward step.

<comment><USER3> I suggest checking out the short video "Flatline" on Vimeo. I can't link to it from my phone but it's worth a watch.

<comment><USER4> Really worth a watch: [http://vimeo.com/46912551](http://vimeo.com/46912551)

</comment></comment></comment><comment><USER5> I was incredibly excited by this, but the article mentions that another company, SynCardia already has a thousand of these devices deployed into Production.

<comment><USER6> It seems it is the first device to really deserve the term "artificial heart". Before, it was blood pump.

</comment></comment><comment><USER7> > first implant of an artificial heart that can beat for up to five years

One: I don't think this is the first. Two: the artificial hearts I've heard of don't actually _beat_ ; it's more of a constant flow.

<comment><USER8> Reading their website ([http://www.carmatsa.com/index.php?option=com_flexicontent&vi...](http://www.carmatsa.com/index.php?option=com_flexicontent&view=items&cid=33&id=371&Itemid=63&lang=en)), as near as I can tell, they're basically claiming to be "closest yet" to a real heart, including "auto-regulation", which I _think_ means they're saying it can beat faster or slower as you need more or less bloodflow.

The scariest thing is that they also boast a significant increase in battery life ... to 12 hours. Jesus, I get angry when my _cell phone_ dies after 12 hours.

<comment><USER9> Shows how amazing evolution is at "designing" complex efficient systems. Our hearts beat for 70-100+ years without a charge.

<comment><USER10> Don't know about you, but my heart needs a charge every six hours and it goes in hibernation mode every 12 hours.

Can I upgrade to yours? :-)

<comment><USER9> If your heart stops beating for 12 hours, maybe you need to talk to your doctor.

</comment></comment></comment></comment></comment><comment><USER11> Why does it need to pump or emulate a real heart? Could one not create the same in a much smaller form factor with lower power usage?

<comment><USER12> Are you asking if pulsation flow is needed? Other systems depend on the pulsation nature of our circulatory system. I'm no expert, but off the top of my head CSF flow and bowel peristalsis depend on pulsation blood flow to a degree (or so I was taught, ages ago). I'm sure there are others who are more knowledgeable here though.

</comment></comment><comment><USER13> let's hope this doesn't go the way french breast implants went in the not too distant past!

<comment><USER8> On that note, it's important to set your expectations correctly on new medical technology. Early heart transplants were considered a success if the patient survived surgery long enough to wake up; it took a lot of work to go from that to many-year survivals.

I'm rooting for whoever got the first one of these off the line, but if he throws a clot and dies next week, keep in mind this shit is hard. Hopefully they'll work out any problems that develop, iterate on the product, and by the time most of us need one of these, they'll have 20-, 30-, 40-year survivals under their belts.</comment></comment>


Show HN: Ethical Resources – 300 ethical alternatives to mainstream stuff - <AUTHOR> https://ethical.net/resources/ <comment><USER2> How is ethical defined here? I cannot see a definition and I don't see what is the common denominator between all those tools. For example why isn't Telegram considered ethical but Signal and Wire are? What is unethical about Word or Excel (given that OpenOffice is mentioned as an alternative), is it the ownership by Microsoft? Or the use of proprietary format in the past? What is more ethical about Steemit or Mastodon than Twitter? I would understand if the focus was on privacy and taking back some control/ownership, but that's not really something I would consider to be an ethical argument.

<comment><USER3> I assume it's a mix of:

open source > proprietary

based in jurisdiction that respects freedom and privacy > based in authoritarian country

empowering users > empowering corporations and governments

privacy > no or compromised privacy

powered by green energy > powered by coal

recycling > no recycling

paid by users > paid by targeted ads based on analysis of your behaviour

<comment><USER4> interesting, one of the first apps is firefox...yet most of their funding comes from as this page would characterize as 'unethical sources' so wouldn't they then by guilty ?

<comment><USER5> So what you are saying Firefox is bad and instead it is better to use Chrome that is owned directly by a company they are trying to avoid?

Creating and maintaining a web browser is not simple, Firefox is the freeest usable browser.

<comment><USER4> i'm definitely not saying it's better to use chrome...where did i say that? What I'm saying is you can't label something ethical, if it gets all its money from what this site would label as 'unethical'. I don't know what the alternative browsers would be, dillo perhaps? I don't know they're the ones searching for 'ethical' alternatives. So what I'm saying is, I expected to see something different, not firefox.

</comment></comment></comment></comment></comment><comment><USER6> Not every tool on here fits everyone's ethics, but SOME tools fit SOME people's ethics. It's important to question what is ethical and what is not, but the question becomes moot if we never attempt to put the answer into action. Let's not hand-wring about "What is ethical?" so much that we never make any attempt to behave ethically.

I don't agree that all the tools on the list are ethical, but there are a few I plan to start using, because I do believe they are ethical and I didn't know about them before.

<comment><AUTHOR> Thanks for sharing, we've got this a lot, so kinda got used to it as the default reply, especially in the tech community :)

</comment></comment><comment><USER7> `ethical.net` is running a few third-party trackers (which I can't find on its own list of purportedly ethical resources).

<comment><USER8> Because there's a barrier to entry with some of these "less ethical" tools, especially analytics, hard to compete with free or having to self host. We can/need to do better?

<comment><USER9> Matomo (formerly Piwik) is an Analytics solution under the GNU GPL.

Website: [https://matomo.org/](https://matomo.org/)

GitHub: [https://github.com/matomo-org/matomo](https://github.com/matomo- org/matomo)

Demo: [https://demo.matomo.org/](https://demo.matomo.org/)

You can both self-host or use their managed service. They are absolutely competitive with Google Analytics.

</comment></comment></comment><comment><USER10> JFC, I skimmed top comments for something that wasn't "but, but...", and as of this writing all I got it is either that, or the page won't load with an ad blocker.

To the page author, I for one appreciate the effort. No, your definition of "ethics" probably doesn't fit mine. But having just skimmed it, I think it will give me something to chew on later. Like many, I'll have my share of "but, but..."s, but it's the thinking about it and not the curated list, that is important to me.

</comment><comment><USER11> I am not sure how ethics is defined here. In fact, I can totally see how some of these options can be considered unethical.

Before we proceed, recall that Facebook is now a "morally bankrupt liars" because it "enabled genocide", "facilitate foreign undermining of democratic institutions", "allow the live streaming of suicides, rape, and murders", and "host and publish the mosque attack video".

Let's compare this with one of the ethical browsers listed here -- Tor. Tor allowed Silk Road, which allowed dangerous drugs and fake IDs to be sold, and other sites that hosted child abuse and pornography content.

But privacy! Well, how about PeerTube? Interestingly, PeerTube "viewers don't have privacy" as it exposes the IPs of all viewers. Imagine if YouTube or Facebook does this.

So what gives?

<comment><AUTHOR> Hey, thanks for stopping by.

So better not bother even thinking about ethics at all?

More on the topic of ethics here: [https://ethical.net/ethical/future-ethics- with-cennydd-bowle...](https://ethical.net/ethical/future-ethics-with-cennydd- bowles-at-sustainableux/) [https://ethical.net/ethical/ethics-should-not-be-a- luxury/](https://ethical.net/ethical/ethics-should-not-be-a-luxury/)

<comment><USER11> Definitely not. Precisely because I care about ethics that I bring these up. The reason is that I think we as a society (well, at least a subset of the tech community) romanticizes free (beer and speech), open-source, decentralized, and non-profit projects so much that we automatically equate them as being ethical. (Exhibit A: this website, ethical.net.)

The truth is that ethics is hugely complex and nuanced. For example, what is your take on a super secure messaging app like Signal? Obviously, it is useful because it allows people to communicate privately (e.g., allows confidential sources to talk to journalists without being spied on). Now, what about the cliched scenario where it is being used by criminals to coordinate their bad deeds? Honestly, I don't know. I live in a democratic country whose government respects its citizen's privacy. As such, I am perfectly willing to give up a little bit of privacy (between myself and my government) if it means keeping the society safer. On the other hand, there are people (lots of em) who are not as fortunate as I am -- a wrong sneeze and you are dead.

Ethics is complicated. Even if we fully understand a product (or policy or project), it doesn't mean we fully understand its ethical impact. And even if we do understand its ethical impact, it is almost impossible for us to say if its entirety ethical or not. Because of these complexities, any attempt to consider ethics as a yes/no label (like this site, ethical.net) is almost certainly wrong. In fact, it trivializes this very important issue.

</comment></comment></comment><comment><USER12> Thank you!

There's a lot of negative feedback in here (which I mostly agree with) but I found a few gems on this page, and I wanted to thank the author and contributors.

</comment><comment><USER13> Ethical seems to be a very fuzzy expression here without any meaning whatsoever. Even most of the claims made next to the service are not supportable in any practical way (for online services owned by third parties).

</comment><comment><USER14> See also: [https://prism-break.org](https://prism-break.org), but there are no "organizations" there.

</comment><comment><USER15> mastodon on list, twitter in footer

<comment><AUTHOR> As others have mentioned here, there's a strong barrier to entry for most of things, including Mastodon :) We're still figuring things out, and that's totally OK: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

</comment></comment><comment><USER16> This is really cool. I (and I think some others around here) would like to move away from Google, etc, but sometimes it's hard to find other options. It's great having a semi-comprehensive list in one place! I'll definitely be looking into some of these.

<comment><AUTHOR> Feel free to share your journey on dm or on the forum [https://community.ethical.net](https://community.ethical.net)

</comment></comment><comment><USER17> Some of these services claim no adds, chronological timeline, etc., but that was Facebook and Twitter in the early days too. How do we know these services will remain add free?

<comment><USER18> "Eternal vigilance is the price of liberty". One part of a company being ethical is them letting you pick up and move out in the event that they do start showing negative behavior.

</comment></comment><comment><USER19> When it comes to ethics, I care way more about stuff like "not exploiting workers or the environment".

Most of the "ethics" here are pretty academic, and don't have a real impact on actual people. I'd love a version of this site that does the same thing for ethically produced goods (there are a number of sites like that out there, but none are this clean, and they tend to focus on specific niches (clothing, etc)).

</comment><comment><USER20> I'm surprised to not see keybase.io on here. Any ethical issues with their service I'm unaware of?

</comment><comment><USER21> Blank page with ad-block plus.

<comment><AUTHOR> On it. I am on Chrome with ABP and I don't get this issue. Which browser are you using?

<comment><USER22> Hmm, Chrome doesn't appear to be on the list of ethically approved browsers :P

</comment></comment></comment><comment><USER23> Some categories show a blank page, selecting the category all works fine though.

</comment><comment><USER24> Update: Adblock Plus was hiding body element as it had "headersocial" class. I have fixed the issue and the site is accessible with Adblock Plus on Firefox now.

</comment><comment><USER25> PLNKTN is a good carbon footprint calculator app. Great design ([https://plnktn.life/](https://plnktn.life/)).

</comment><comment><USER26> I was skeptical but there's actually a few things in there I might try. I'm very motivated to move away from Gmail, for example.

<comment><AUTHOR> Thanks for sharing! I've been personally trying to move away from everything google and it's SO difficult. Gmail and Maps are the last things I'm using, but I am still hopeful. I feel it's more of an addiction than anything else really.

</comment></comment><comment><USER27> Wasn't there a YC company where you could buy CO2 neutralization for your website? Anybody remember the name? Is it still around?

<comment><AUTHOR> hmm not sure which one you refer to but there are quite a few carbon offsetting projects like [https://www.myclimate.org/](https://www.myclimate.org/)

<comment><USER27> Thanks - it was something specifically for web hosting, iirc. You could then add a little "CO2 neutral" banner to your web site.

</comment></comment></comment><comment><USER28> Blank page with uBlock Origin.

<comment><USER24> It should be working now.

</comment></comment><comment><USER29> Runbox.com is missing from the email services

</comment><comment><USER30> bbc iplayer shouldn't be there. Great site though.

</comment><comment><USER29> Its missing runbox from email services

</comment><comment><USER31> This resembles orthodox rabbis discussing what is considered kosher.

I half expected to see my music player on the list, given it's popular, GPLv3 licensed and has no tracking, but I have no idea what the approval process is.

<comment><USER32> What music player?

</comment></comment><comment><USER33> You and whose ethics?

</comment><comment><USER34> I think one reason so many people in these comments are having issues with the definition of "ethical" is the partial realization that there isn't a way to ethically consume things, especially when capitalism is involved. You can use Firefox, but that still supports Google. You can recycle, but an ocean freighter burning bunker oil pukes out enough pollution in one voyage to invalidate your entire life's effort. You can make better or worse choices, but we live in a fundamentally unethical global economic system.

</comment><comment><USER35> I don't like this idea, just like I don't like the idea of ESG ETFs and whatnot. It presupposes what is ethical and what is not, despite the obvious personal nature of the problem. The 300 "ethical" alternatives are just things the OP thinks are ethical and it seems unlikely to me that such a personal list of stuff is applicable to really anyone else besides himself. Or maybe it is, but just not to me.

Or maybe it should be renamed to "Progressive alternatives to mainstream stuff."

<comment><USER36> Yeah it would be more apt to say the list is "open source, environmentally conscious software".</comment></comment>