Your developers aren't slow - <AUTHOR> https://sprint.ly/blog/your-developers-arent-slow/ <comment><USER2> Nice start, OP (especially with unclear specs, my personal pet peeve), but you've only hit upon the tip of the iceberg.

Just a few other things I call "work prevention" that make good developers appear to be slow:

      - unclear specs
      - context switching
      - peer review (both giving & receiving)
      - code review
      - status meetings
      - waiting for others to show up at meetings
      - others not prepared for meetings (no agenda, etc.)
      - unnecessary but enforced standards (stupid, pointless)
      - programs locked by other devs (get in line)
      - pre-existing technical debt (must be fixed before amended)
      - framework can't handle it
      - works but won't scale
      - can't recreate bug
      - platform issue (server, DBMS, etc.)
      - environmental issues (test server out of date)
      - waiting for server resources (testing)
      - waiting for regression tester
      - waiting for user acceptance testing
      - specs changing during user acceptance testing
      - uncontrolled deployment "freezes" (month-end, release schedule)
      - noisy office
      - meetings when emails would have sufficed
      - phone calls when emails would have sufficed
      - text messages when emails would have sufficed
      - continually changing priorities
      - delays in offshore communications
      - lack of training (technology)
      - lack of training (business subject matter)
      - too much training (HR bullshit)
      - not enough donuts

<comment><USER3> \- reinventing the wheel because a perfectly serviceable existing solution cannot be licensed

I can't stand hearing that there's no room in the budget to pay a flat $500 to license a 3rd-party grid control (for example) only to have a $90k/yr salaried developer spend 20 or more hours recreating barely a tenth of its features. It's even worse when the license is free (as in speech), but it still can't be used, because the code hasn't been blessed by the security department, or because management simply has a prejudicial bias against the terms of the LGPL.

<comment><USER4> On the flip side, as one of those guys in the security department, it aggravates me to no end when developers can't understand why we won't allow them to open up direct production database access to some unheard-of SaaS startup that's been in existence for a total of a month.

<comment><USER3> While you present a reasonable example of why certain things have to be cleared before implementing them, most of the time you are used as an excuse to issue a knee-jerk denial of some suggestion, without even bothering to consult with you first. And people at other companies are not necessarily as competent or diligent as you are about doing your job.

Usually, the argument goes like this: \- We cannot use X until it has been cleared by legal and/or security. \- Legal and/or security do not have the resources available to clear X for our use within a time span that would allow X to be useful. \- As a result, we won't even ask them to try. \- Therefore, screw you, nerd.

Alternately: \- We don't have room in the budget to license X. \- The budget won't change until after the end of the project. \- We can't justify altering the budget to accommodate licensing X unless it would be useful for an ongoing project. \- You won't be allowed to comment on upcoming projects until after the budget is fixed. \- Therefore, screw you, nerd.

Or in the worst case: \- Here is a detailed proposal to use invented-elsewhere thing X in our product Y, with gobs of research and references, and oodles of possible pros and cons. \- We don't understand what you are talking about. \- So we're going to fixate on some tiny, mostly-irrelevant detail, and then blather about it until you go away. \- Therefore, screw you, nerd.

</comment></comment></comment></comment><comment><USER5> "Writing good specs is important" \- it's also really really hard.

It is all too easy for a developer to blame difficulties on poor specs.

But if you're doing agile properly, you shouldn't consider a user story a 'spec' \- a user story should be a placeholder for a conversation.

It is unrealistic to expect a non-technical stake holder to deeply and accurately describe anything but the most trivial feature. It needs a developer mindset to poke the idea, see what holds water, see where it falls apart, foresee the consequences.

You can't do that in a spec. It _needs_ to be a conversation.

Agile favours 'Individuals and interactions over processes and tools', and this is too often forgotten when someone is pimping their tool, or blaming their process.

Have a conversation, understand what's needed, build good software.

<comment><USER6> > "Writing good specs is important" \- it's also really really hard.

Yes, this is a very good point. Unfortunately it's also a point that many non- software developers miss. Writing software is hard. Very hard. We, as an industry, should be pointing that out more.

> But if you're doing agile properly, you shouldn't consider a user story a > 'spec' \- a user story should be a placeholder for a conversation.

I'll submit that there's no way to know whether you are doing agile properly or improperly, unless you move to another company.

> It is unrealistic to expect a non-technical stake holder to deeply and > accurately describe anything but the most trivial feature. It needs a > developer mindset to poke the idea, see what holds water, see where it falls > apart, foresee the consequences.

This smacks of elitism and it is what makes non-developer scoff at us. Developers are not gods, we're not even the smartest people.

We are simply the people that have to crystallize the requirements into a computer that only understands logic. Non-tech stakeholders can completely describe business requirements and also be made to understand the how their requirements fit into the logic of a computer. Non-technical people are not stupid, they just have different interests.

> You can't do that in a spec. It needs to be a conversation.

The spec is the output of the conversation.

> Have a conversation, understand what's needed, build good software.

And this is the most important thing said.

The trick with adhering to your statement is to define the parties involved in each step. Minimize those parties and then implement each step in order as fast as possible without sacrificing quality.

Remove the word "Agile" and the concept of software development, and what you've just described is how work has been completed for thousands of years. I fail to see how Agile comes into play.

<comment><USER5>
      > This smacks of elitism and it is what makes non-developer scoff at us. Developers are not gods, we're not even the smartest people.

I don't mean to imply that developers can do this because they are cleverer. Merely that developers have a mindset to understanding software systems that business people often lack.

      > The spec is the output of the conversation

As I've said in another comment I don't think there should be a spec (in the traditional sense at all). There should be a story, a conversation, and acceptance criteria (ideally defined in code)

</comment></comment></comment><comment><USER7> Wholeheartedly true. Vague requirements are definitely the bane of my existence, just this last week I had a massive story I was working on which I implemented only to be told that I misunderstood the story at hand. After pointing out the confusion with the task, product admitted they got the requirements wrong.

Don't get me wrong, I like the story format of detailing requirements, in most cases it definitely helps (although I know many developers who dislike the story format), but it is not without its issues. The weak leak is always the product owner writing the wrong stories within a task.

In my opinion the biggest contributor to tech debt is NOT lack of stories in tasks or poorly written ones leading to vague requirements (although it doesn't help), it is unrealistic timelines and failing to factor in testing. When people are pushed to achieve a long list of things in a short amount of time, they take shortcuts to get them done which appeases the product owners but leaves some landmines in the codebase waiting to be stepped on.

The biggest issue with Agile in my opinion is lack of time devoted to testing. It works on a cycle of "You estimated we can get this much done within this much time" I have never been in a planning meeting that even mentioned testing as part of the normal development cycle, it is always an afterthought when the other big ticket items are done and time is running out. Time for writing tests and testing should be instantly baked into the Agile process (maybe it is and my experience has been unfortunate), this will significantly reduce tech debt.

I think the issue with testing and technical debt in my experience has been the fact the places I have worked in like to call themselves Agile, they have the daily standups that always descend into debates and meetings, they have the planning poker events and we do sprints, however they don't fully adhere to the rules of Agile. When you start slipping in extra tasks that were not estimated on or were just added and slip them into the current sprint, that is not Agile. When you start changing deadlines and priorities midway through a sprint, that is not Agile. I think this is a problem that is more prevalent than people realise. There are misconceptions as to what proper Agile is.

<comment><USER8> Your experience is definitely unfortunate - stories/features being fully tested before being considered done, and therefore potentially shippable, is a key part of a successful Agile process. Without it, you are missing out on a lot of the possible benefits of the process, and I have seen first-hand the difference having QA engineers, even not particularly strong ones, integrated into the sprint can make to product quality.

A good first step to take would be to get your team together and work to define a Definition of Done, which should include both unit and integration/E2E testing (manual and/or automated) being complete - any stories not meeting these criteria cannot be considered as "done" and you can't count the points for them in the sprint.

Of course, initially this will probably cause lots of failed sprints and will decrease your velocity, but you have to see this as a positive, in that this raises visibility of the problems, and once you can identify the specific issues you're having and take the steps you need to resolve them (whether that's a lack of QA resource, or poor testing culture among developers, or whatever), you'll know when you say something is "done", it actually is done, rather than hiding a load of extra testing work that isn't complete.

On the requirements front, again defining a Definition of Ready can help - these are the criteria stories need to meet before you will estimate or start working on them. This should include things like requirements being clear, designs/UX being complete (if appropriate) and the story being testable and of a suitably small size for you to estimate with a reasonable degree of confidence.

Once you start pushing back on estimating stories because they don't meet these requirements and educating your product owners what they can do to improve the situation (for example, breaking stories down into smaller chunks, or defining requirements more clearly), you'll hopefully find the situation improves.

Of course, none of this is a substitute for conversations and working with the product team to help them understand what does and doesn't work for you, but I've personally helped make big differences to a team's quality and productivity by taking small steps such as these, in addition to educating the team and business on what "agile" is (without all the BS that some people will try and sell you!) and why this is important to us as developers and therefore to the wider organisation.

</comment></comment><comment><USER9> I've found that, when building applications for clients, they never know what they really want. I try to explain that writing an application is just like formally documenting your business process.

If you don't have the process, then you don't have an application to write.

</comment><comment><USER10> I have seen huge improvements in quality and productivity by using stories plus wireframes. The first thing a UI dev does is create a quick mockup for feedback from the end user (specified in the story in the blank after "As a ____" Unfortunately implementing this can be a political struggle because it takes a lot of the decisions away from the business and the project manager and hands them to the developers and users.

<comment><USER11> My boss in previous company forced analysts to write bug reports and feature requests in the form:

"how it works now, how it should work".

This took at most a month and made life for everybody a lot better.

</comment></comment><comment><USER12> We learned this the hard way. After months of development we really didn't use (or know) any tools for _proper_ development so we just wrote code in the most disorganized manner possible, which resulted in shipping far apart with poorly written code. After hiring a consultant on the matter, to introduce dailys, user stories, agile and whatnot,... well the world changed for us. Significantly. For the better, of course.

<comment><USER13> I think yours is a different scenario?

The article suggests that developers trying to match business concerns with technical implementation disproportionately takes up time, as each feature was not spec-ed out and described properly in a technical manner.

Accumulating technical debt would be a delay purely on the engineering side. The engineering team is not always to blame, though.

<comment><USER12> Nope, not much different - There were two developers in the team (me + another dev) and my co-founder, who's a business (non-technical) co-founder. So it was between me and him where the specs and activities were not properly defined (it was my responsibility, and I didn't know any better) so we'd always have these long debates on what to do, and what's worse, these debates usually occured in the middle of other activities, so everyone was working on a lot of things at the same time, which resulted in work not being done on time, or even at all.

</comment></comment></comment><comment><USER14> Context switching can be the worst. Particularly when it's caused by "hurry up and wait" brought on by clients.

PM: Client wants feature X and they need it now!

Developer: Great, I can get started today, but first I'll need clarification on X, Y and Z.

PM: I'll e-mail the client...

Then hours turn into days, days into weeks. By the time they get back, I've completely forgotten what it was we were going to do on the project or why I needed to know X, Y and Z.

<comment><USER15> remove the PM.

<comment><USER16> You've never had clients that take that long to get back to you about something that is actually important to them?

That's pretty lucky.

<comment><USER17> I learned to send follow up emails to remind them I was waiting on their input. If I don't hear back in a reasonable amount of time it's an email.

</comment></comment></comment></comment><comment><USER18> Oooh boy do I hate that style of user story. In my experience it just seemed to degenerate into "as a business owner, I want developers to make this feature so that our product can have this feature".

<comment><USER19> That might follow the pattern but it breaks a bunch of typical user story rules. It's easy to blame the format, but it sounds like the product owner needs to be educated on the process.

</comment></comment><comment><USER19> I don't think specs are ever going to be perfect. Simply because the people typically writing specs (project managers, user experience designers, business analysts etc.) view the requirements through a different lens than a developer.

In my experience the best solution is for them simply to be available to the developers to answer questions that arise in a timely manner.

</comment><comment><USER20> Accurate reporting is great, after "accurate" guestimations. As a 15-year developer, I still get it wrong. Careful planning _before_ you start is so crucial. And my boss knows to take whatever I say, double it, and then add a day. We're finally all on the same page :-)

I love the Mad Libs-style form in sprintly, btw.

<comment><USER21> Joe Stump told a story on his podcast about this: the VP of Engineering would always tell the business side, "Everything always takes 60 days." He had a high confidence that most tasks take 60 days.

Here's the link to the audio: [https://soundcloud.com/business-of- coding/business-of-coding...](https://soundcloud.com/business-of- coding/business-of-coding-michael-sopp)

</comment></comment><comment><USER22> To me the root cause is generally a lack of resources in terms of time and money. Contributing to that is the general inability for people to grasp the complexity of software development.

After implementing the requirements, it is found that they did not reflect the actual desired system. Then there are technical issues that were unforeseen. Rather than accepting these technical issues as additional costs, they are blamed on the developer, "if they knew what they were doing, there would have just done it already". Incorrectly or poorly communicated requirements are also blamed on the developer. To me the root cause is generally a lack of resources in terms of time and money. Contributing to that is the general inability for people to grasp the complexity of software development.

Personally, I have never had a client or budget that I could say was really reasonable throughout. I believe this unicorn may exist somewhere. Certainly I haven't been finding my clients in the most auspicious places.

</comment><comment><USER23> > it also appears that teams have a hard time transitioning from "done" to > "tested and ready to be deployed" (look at Completed to Accepted above).

How can it be done if you don't know if it works? It's troubling that it takes a long time to go from 'done' to 'ready to be deployed', when they sound like the same thing.

I mean, really it's just terminology, but it suggests that there's a lot of tasks that are not being considered as 'real work' that are actually quite time-consuming in practice. It can be useful to look over what work was actually done historically so that perception of a task matches reality.

</comment><comment><USER24> Here are a few of the resources I have used in the past to help explain to non-technical folks some of what a developer needs to deal with when involved in a large project.

1) Ward Cunningham explains "technical debt": [https://www.youtube.com/watch?v=pqeJFYwnkjE](https://www.youtube.com/watch?v=pqeJFYwnkjE)

2) comic strip - "How Projects Really Work": [http://www.projectcartoon.com/cartoon/2](http://www.projectcartoon.com/cartoon/2)

</comment><comment><USER25> "The second biggest complaint we see from developers? Constantly changing the specs once work has begun." Of course this is called being agile. If everything has to be known before you start work how is this different than waterfall? People don't know what they want or need until they see it. So you have to find some way to let me see it which means writing something based on incomplete information.

<comment> UK-AL Waterfall is all up front. Agile is up front at the task level. Normally when commited to a sprint it doesn't change.

<comment><USER26> > Waterfall is all up front. Agile is up front at the task level.

Agile isn't a methodology, its a meta-methodology (a set of principles for selecting and dynamically adapting the methodology in use.) If waterfall is the process that produces good results for the set of people you have working on the problems you are addressing, then _waterfall is Agile_.

What you say is about sprints is accurate about Scrum, but while an Agile shop might use (and especially start with as a baseline) Scrum, Scrum is not the same thing as Agile.

There's a good reason to argue that not committing to requirements at some point so that work can proceed directed at a fixed target is suboptimal in the general case, but arguing whether its Agile or not -- and even moreso describing Agile as definitively being up front at some specific level, is confusing metamethodology with methodology and reducing Agile to a fixed methodology, of which it is very much the antithesis.

</comment></comment></comment><comment><USER27> > \- Unclear requirements

> \- Changing requirements

> \- Context switching

That's Agile Programming!

</comment><comment><USER28> What incentive do your developers have to ship faster ?

<comment><USER29> Feel more accomplished? Smarter? Have more unhassled free time to spend with their families? Get it over with so they don't have the "oh my god we're going to die" feeling hanging over them 24/7?

</comment></comment><comment><USER30> Why do they call them "Stories" in this article? Is it because of Agile?

They are called "Change Requests". Put on your big boy pants and replace "Stories" with "Changes" and it makes much more sense.

<comment><USER31> In my experience of building new things, rather than modifying existing ones, "Changes" would make less sense, as there is little or nothing to change.

</comment></comment><comment><USER32> Fail. All of this shows the same problem that "Agile" in general has: it's an attempt to patch closed-allocation, business-driven software engineering. It does not work. Maybe it turns the 0.5x developers into 0.75x players, but it alienates the shit out of the top talent. Fuck user stories. Fuck letting the passengers fly the plane. Fuck "sprints" or "iterations" or whatever nonsense you're calling these artificial time periods. Just let the people who can build great things, and who want to do so, go at it.

I agree with some of what's being said here, but not the direction it's heading. Business-driven engineering is a dead end and it can't be patched by hiring consultants to tell people how to play planning poker. If you want to build great technology in-house, you can only do it as an engineer-driven firm.

 _The real lesson from all this is that you should never let people work on more than one thing at once. Make sure they know what it is._

Neat idea. Fails horribly in practice. Why? The problem with "one thing only" management is that the matter of who chooses each person's "one thing" gets _horribly_ political, and fast. "One thing only" works only if the workers get to choose their one thing, which brings us to open allocation, which leaves me questioning whether we need all of this process that the engineers wouldn't impose on themselves...

Also, "one thing only" tends to create dead time and throughput issues, (a) due to communication issues and blockages, and (b) because people who'd rather have a different "one thing" will often do other stuff anyway. It also tends to lead to a high burnout rate when people can't _voluntarily_ switch between at least two tasks.

<comment><USER33> Mike, you're one of my favourite commenters on HN. But this is one of your concepts that I've never been able to wrap my head around. Specifically:

>....business-driven software engineering. It does not work.

My interpretation "business-driven software engineering" (and please correct me if I'm wrong) is one where business determines the requirements of the software. But if business doesn't drive those requirements, who will? You've repeatedly shown how terrible the typical dev is at business, and most devs would seemingly cozy up to their IDE rather than navigate the mess that is determining requirements. So who's gonna do it? Besides, which dev doesn't hate a fuzzy spec?

Additionally, or perhaps more fundamentally, a business hires devs to the ends of furthering their, well, business objectives. What, exactly, is so wrong with business setting the agenda of what gets built?

I ask because of a lesson I learned early (and painfully) in my career as a sysadmin. Technology exists for the business - Not the other way around. Unless, of course, you're a tech firm, where tech itself is your business. And even then, a business has to make economic sense, and as a programmer, I think I'm allowed to say we typically make poor economic choices. McLeod 'Clueless', if you will.

<comment><USER32> _What, exactly, is so wrong with business setting the agenda of what gets built?_

I don't think that it's good when the business (usually, this means _the executives_ ) do it unilaterally. Obviously, it's not good for engineers to build with no concern whatsoever as to whether they're building something useful. It needs to be a collaboration focused around letting each side do what it's good at.

I'd like to believe that _enough_ of us have sufficient business sense that we don't need the Agile-style waterfall (no, that's not a contradiction) in which requirements flow from business into "product" into technology. Not all of us make sound economic choices, but I think that a large part of that comes from the fact that most companies promote people with any business sense "out of IT".

As one who's trying to look forward for us as technologists, I guess I'd say that we need to take some responsibility for learning business and politics. The head-in-sand strategy is bad for us individually, but also bad for us as a group.</comment></comment></comment>


Do hackers care about workstation ergonomics? - <AUTHOR>

Do hackers care about seat height, table height, monitor height and distance, etc.? <comment><USER2> If they don't, they should. RSI sucks.

At Google, they've got ergonomics evaluators on staff. You can schedule one to come by and check out how you're working. They'll fix your chair, remind you how to sit, mouse, and keyboard, and also put in orders for special equipment should you need it. Things like vertical oriented mice, natural keyboards, and boosters for your monitor can make a lot of difference for comfort.

<comment><USER3> _how you're working_

Ass goes on chair.

 _They'll fix your chair_

Ass goes on chair.

 _remind you how to sit_

Ass goes on chair.

<comment><USER2> Or huge yoga ball ([http://cache.lifehacker.com/images/2006/06/exercise%20ball%2...](http://cache.lifehacker.com/images/2006/06/exercise%20ball%20office%20chair.png))

<comment><USER3> I see the certified color coordination evaluation engineer made a stop by her office.

</comment></comment></comment></comment><comment><USER4> Seats? Tables? What are those? ;-)

I suspect I'd give any ergonomic evaluator a heart attack. Right now, I'm lying down on the floor, propped up on my elbows. Other favored positions include cross-legged on the floor, kneeling on my bed with the laptop on my thighs, half-kneeling on the floor with my chin on my knee, prone in bed with about 3 pillows under my chest, in bed on my side wit my elbow propping my upper body up, reclining in a chair with the laptop on my lap and feet up, and sitting in a tree (no, I don't take the laptop up there, but I'll frequently bring pencil & paper to work out some design problem).

The one place I absolutely will not work if I have a choice about it is at a table or desk. Been like that since before I had a computer; in elementary school, I absolutely refused to do my homework at the table, always preferring the floor.

You'd think this would result in lots of RSI problems, but I haven't had anything since I was 12, which ironically was when my parents made a concerted effort to get me to sit at a desk and do my homework like a normal person. I suspect it's because I don't actually do anything repetitive at a computer. I get up to pace _a lot_ \- 5 times in the process of writing this comment, and I've switched to 3 different positions. That's another reason I really dislike desks - they make getting up a chore, so I don't get up, and so I find my productivity dropping off from lack of exercise.

</comment><comment><USER5> Am I the only one who is not that thrilled by Aeron chairs? I took one over from my father, because he didn't like it, either, but I am also not happy with it. I find the plastic parts tend to cut into my legs and hurt me, because I sink into the rubber net too deeply. Also the settings are unstable, every now and then the chair collapses and I have to reconfigure it again.

OT: does anybody know how I can determine the exact model type of my Aeron chair, as I would like to put it up on ebay?

<comment><USER6> I have the exact same problem with "sinking in" and I'm not especially large (I'm 6'2", 180 lbs). I haven't had any stability issues, and I like the Aeron much better than most other chairs I've used, but it has some drawbacks in addition to the front of the seat jutting into my thigh:

The plastic on the sides makes it difficult to sit cross-legged in the chair. Granted, I've never had a chair that let me do this very well.

It's impossible to kneel on the chair comfortably. This sounds silly maybe, but the last chair I used had a very soft cushion to sit on, and the back was adjustable such that there were spaces where you could dangle your feet. It was possible to kneel without causing much strain on feet or ankles.

I've found both kneeling and cross-legged positions to be very stable, comfortable, and conducive to proper breathing-- so long as you don't wind up losing circulation in your legs.

<comment><USER5> I am also not "large", but tall. Probably I have the "oversize" version of the chair, as my father is also very tall. Perhaps the normal version works better (smaller size of net -> less sinking in).

</comment></comment></comment><comment><USER7> If you don't now, you will in a few years. It gets more painful as you get older--by the time I was in my mid-twenties I had to have a good chair or I'd have serious back pain. I also had to find ways to work with less mouse usage, or it would lead to shooting pains in my forearms.

I've settled into a nice place now, with a good monitor that raises up almost high enough (a Dell 2005), an Aeron chair, an IBM small form factor keyboard with good IBM keys, and a Logitech mouse that I still try to use as little as possible. I still have occasional back and shoulder pain, but I have some injuries from bike accidents in my youth. But I definitely take ergonomics seriously. I can't concentrate when I'm in pain.

One thing that I've found makes a big difference for me: Exercise. Almost all of my various aches and pains are less pronounced and less debilitating when I'm getting regular exercise.

</comment><comment><USER8> I think so. I care enormously much. I spent an inordinate amount of time finding a correct keyboard position and chair configuration. I ended up with a GoldTouch adjustable-angle keyboard I found lying around my workplace, plus two books taped together held up by a waterbottle stolen from a coworker to hold up my wrists. Then, I pilfered a sideways mouse that wasn't being used in another part of the office.

Nobody else at the company goes quite so far, but the two other main programmers do have Aeron chairs, at least.

<comment><USER2> Just a tip I picked up: if you're resting your wrists on anything, you're putting contact force on them that could lead to exhaustion if it's too hard or for too long. Try to keep your wrists floating, if possible.

</comment></comment><comment><USER9> The thing I care about most is my keyboard.

[http://www.microsoft.com/hardware/mouseandkeyboard/productde...](http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=043)

</comment><comment><USER10> Yes, it goes with Paul's latest post. A crappy or messy work station can clutter your thoughts and keep you from "Holding a program in one's head"</comment>


How we wrote our app for MS Office 2013 - <AUTHOR> https://www.lucidchart.com/techblog/2013/03/22/how-to-write-an-app-for-microsoft-office-2013/

<comment><USER2> If you're going to put up source (or in this case, XML), may I suggest two things?

(1) Please indent.

(2) Consider syntax highlighting. <http://softwaremaniacs.org/soft/highlight/en/> will do it for you.

<comment><AUTHOR> Thanks for the tips. Wordpress was being extremely uncooperative. Wasn't parsing <pre> or <code> properly. I will throw that .js script up on the next release. Thanks!

</comment></comment><comment><USER3> Have you found any significant increase in users from the "discoverability by being in the Microsoft App Store"? Also, any reason you didn't implement this as a classic COM plugin?

We wrote similar apps for Outlook 2013, but didn't see much traction. Also, compared to classic COM plugins (which are also still supported by 2013), the API is very limited. That combined with no backwards compatibility makes me think that it would have been better to implement this as a COM plugin for better coverage and functionality...

</comment><comment><USER4> Any experience embedding an application into Excel?

<comment><AUTHOR> It is a diagramming app so it is really more useful to add into a word doc or powerpoint. What use case were you thinking of for Excel?

<comment><USER4> I wasn't thinking about the LucidChart per say. I was wondering how an Web based-app could be intergrated into Excel such that a user was prompted to login and then import user specific data directly into a Excel spreadsheet range using an REST API.

<comment> T-hawk Excel has had that capability forever. Excel VBA code had access to XmlHttpRequest as soon as Internet Explorer did, at version 5.0. XHR is a COM object that can be invoked from just about anywhere in Microsoftland. I was doing this in Excel way back in 2000.

Nowadays XHR is a bit limited as far as exception handling and other niceties you'd like for API calling. But Excel VBA can access anything through COM interop, such as a more robust C# library using .NET objects like HttpWebRequest.

Excel also has a notion of web queries, to populate a range by making an HTTP request and scraping a table out of the HTML. I think that existed as long ago as Excel 2000 and was brought out to the UI in 2007. It doesn't play well with websites requiring a login or a nontrivial click path, though. I have vague memories of wrestling with this, through the spectacular method of launching an IE window from Excel and relying on the MSHTML layer to share the login cookies between that and Excel!

</comment></comment></comment></comment><comment><USER5> This whole "tabbed apps for MS Office" business looks interesting -- any tutorial anyone would recommend for getting started?

<comment><USER6> Microsoft's Development Center has a lot of good information on building apps as well as documentation on all the APIs.

<http://msdn.microsoft.com/en-us/office/apps>

</comment></comment><comment><USER7> This brings back memory of OLE/COM/ActiveX control.

</comment><comment><USER8> This looks so much better than the vbscript API from the past. Is it as functional?

<comment><USER6> The Apps for Office API seems to be fairly limited right now to reading from a document and inserting text and images. For insertion, you can only insert data at the cursor point or replace currently selected text. There aren't yet options to move the cursor or insert more advanced document objects. (Although, the Outlook Mail apps are an entirely different story) I think the typical use cases that work well with this API are easier information retrieval while working on a document and inserting images or passages of text.</comment></comment>


On Leadership, Teams, Success & Happiness - <AUTHOR> http://feedproxy.google.com/~r/BothSidesOfTheTable/~3/3u64zR2Pves/

<comment><USER2> Original link [http://www.bothsidesofthetable.com/2011/01/28/on- leadership-...](http://www.bothsidesofthetable.com/2011/01/28/on-leadership- teams-success-happiness/)

</comment><comment><USER3> Great submission. That's a pep talk for any startup company :)</comment>


Show HN: Hpak.py – package manager for hackers - <AUTHOR> https://github.com/hypsurus/hpak <comment><USER2> Curious about what elements make Hypak specifically tailored to pen testing.</comment>


ClipperCard – Personal Privacy Audit - <AUTHOR> http://nelz.net/2010/10/21/clippercard-personal-privacy-audit/

<comment><USER2> I don't want to sandbag your privacy article, but did you know that the ClipperCard requires synchronized clocks amongst all the buses to properly implement the 90 min. transfer? Want to guess how well that's working?</comment>


If Zoom Is Wrong, So Is Apple - <AUTHOR> https://sneak.berlin/20200604/if-zoom-is-wrong-so-is-apple/ <comment><USER2> Zoom's explanation is that they do not want the free accounts, which can be easily gotten with burner email accounts, to be used for child sexual exploitation (picture trading, etc). This in my mind is at least a reasonable explanation since the same sorta situation happened in the early days of Discord.

I think in the current situation they should have been much more upfront about this.

</comment><comment><USER3> The article misses the fundamental difference between Zoom and iCloud's data: Zoom's is transient content and iCloud's is persistent content.

If your stored data were encrypted with your key rather than Apple's, and you lose your key -- you lose your data.

If your video call were encrypted with your key rather than Zoom's, and you lose your key -- you generate another key for your next call.

</comment><comment><USER4> Poorly written, but true. However I ask the writer this, how do you restore a backup if you lose your phone?

</comment><comment><USER5> Who keeps nudes in iCloud? Instagram is way better</comment>


Ask HN: Rewrite or Refactor? - <AUTHOR> I'm working for a company that has an older Rails app, that is about 12,000 LOC heavy.  It is currently running Rails 1.2.6.  I am new to this project, but just looking at the code, it seems very PHP-like (at least one of the controllers is 1000+ lines) and is IMO garbage.  It has VERY VERY slim unit tests (1:0.1 Code to Test Ratio), and those are mostly just the blank tests that the generator builds for you.  They want my recommendation on what to do.  I am leaning heavily to rewriting in the latest version of Rails, using the correct development and programming practices, as well as actually planning it out.  They want to just keep maintaining the current app until they can rewrite it in .NET.  They think that they can rebuild it in .NET in 6 months, which I believe is a gross underestimate.  Should I suggest rewriting it from scratch in the new version of Rails, or should I try to refactor what they have into something better, possibly avoiding the need for .NET?<p>Thanks! <comment><USER2> Nobody can tell you what's best for your application and team. But here's some comments:

Rewrites from scratch are pretty much always a stupid idea, and so you and the rest of your team are both probably wrong. Rewriting, in .NET or "new" RoR, is probably a waste of resources, and will probably introduce a whole new slew of stupidities and problems. Citation: <http://www.joelonsoftware.com/articles/fog0000000069.html>

12k LOC is less than 6 months worth of work for one motivated developer, for a reasonably specified application (a working example implementation is a reasonable specification). If you're a _team_ working on it...well, if it takes you longer than 6 months, you've got bigger problems than just the ugliness of your codebase or the lack of test coverage. Then again, both you and your team are amateur enough to think rewriting is a great idea, and you're just arguing over which technology to rewrite it in, so maybe you can't actually finish it in 6 months. Maybe the practice and experience of doing dumb things and learning from those mistakes will help you all become better developers.

Anyway, even if it only takes 6 months, do you really want to be six months behind your competitors?

</comment><comment><USER3> Is it already in production? Making money/creating value? Refactor.

No, this is not a rule of thumb. But an app already in production has a lot of little quirks already ironed out. That report one person really needs every third Friday of the month. When an Korean speaking costumer on a Spanish Windows Vista 64bits running Flash 7.0 reported a bug on Internet Explorer 6 with Norton blocking the referer.

Code has knowlegde. Use it.

</comment><comment><USER4> If it is modular, reimplement one module in parallel and test. If there are no tests, add those first. If it is not modular, make it so, first.

If a single module can be ported to sane code successfully, you have a chance to fix the rest. If not, start reimplementing the whole thing in parallel. If you have no parallel test environment, create one first (so you can "deploy" your copy as if it were real).

It's all about the order in which you tinker with it. :)

</comment><comment><USER5> The solution to having no tests is adding tests. The solution to overgrown, unreadable, unmaintainable code is refactoring.

A rewrite would take about 2 years probably (using some very naive calculations).

</comment><comment><USER6> Dive in and start the re-write immediately.

This will inform either decision, and you'll look like you show a lot of initiative because you do.

</comment><comment><USER7> In my experience the best way to end these types of design arguments is just to start coding. If you're good you'll have a decent prototype to show off before the rest of the team has reached a decision.

</comment><comment><USER8> A lot depends on whether the code is unusable as-is - but it's a well established rule of thumb that a re-write of any codebase takes 3 times the back of the envelope calculation.

</comment><comment><USER9> refactor

It may be slim on unit tests, but it passes one huge integration test (people are using it!). You can add unit tests as you refactor, and make gradual progress.

Rewriting from scratch you will need to relearn all of the knowledge that already has been put into that code, and it's an all-or-nothing bet.

</comment><comment><USER10> If they want to rebuild it in .NET, it's a lost cause.</comment>


Science and scientific expertise are more important than ever - <AUTHOR> https://www.scientificamerican.com/article/science-and-scientific-expertise-are-more-important-than-ever/ <comment><USER4> Given the track record of institutional science and the ever-growing list of regulatory failures, moral failures and outright abuses pushed in the guise of scientific expertise, why do so many people seem to think that simply doubling down and bullying the general population into compliance with expert consensus will ever work? What if institutional science in the US has a legitimacy crisis because it has failed to police its own corruption and failed to address its own limitations and vulnerabilities? What if everyday people can see this more clearly than those striving on the margins of these institutions?

Personally, as a scientist, I am comforted that there are enough others out there who doubt the entire notion of a scientific establishment that the population should "trust" to make decisions without oversight. Our numbers are growing, and I know many people who fight every day to ensure we will never be ruled by unquestionable expert consensus. Anyone who has been inside these institutions knows exactly how petty and arbitrary the hierarchical structures can be. I'd rather be ruled over by elite families than squabbling, territorial, overconfident scientists who can be bought off for nothing and blackmailed easily.

I think the constant stream of these articles just illustrates the massive social blind spot that comes from training STEM professionals solely for careers rather than for citizenship, communication and community membership. STEM training itself has sadly become a hierarchical, cult-like, anti- intellectual system that deprives students of critical thinking skills.

<comment><USER5> > scientists who can be bought off for nothing and blackmailed easily.

Bought off by who? I presume the "elite families" you mention. So either way we are ruled by the wealthy in this model. There are other options of course and I assume you would agree, I just wanted to point out my surprise at this false dichotomy (that's not even a dichotomy since they're mostly the same scenario).

I also agree 100% that STEM professionals should be trained to be citizens first.

<comment><USER6> I heard of tailoring findings to the preferences of the grant giver (advocate a wrong view and kiss your grant good-bye). This is very worrisome as a lot of experimental science labs are so grant dependent.

I actually think this is partly a self-inflicted wound -- a large fraction of major grant givers want truth and can stand findings that go against their beliefs, but given the heavy dependence of labs on grants there is a tendency to sugar coat findings to the taste of the money source.

Which is totally, completely and absolutely against the spirit of real science. My 2c.

<comment><USER7> Hence the reason science has always been an aristocratic pursuit. Georg Feuerbach demonstrates this point with the thought-provoking claim that only a polytheistic tradition (such as Athens) can breed a love of natural beauty which obligates a love of knowing its ways.

But it is principally a love of Nature (and it's universals) and not a love of wealth which moves the civilization higher. Galileo, Descartes, Newton had pretensions but immortal ones.

<comment><USER8> Don't follow the part about polytheism. I would say, if anything, polytheism is a hindrance to the development of science. For one, the capriciousness of the gods makes nature arbitrary and unpredictable.

FWIW, Stanley Jaki argues something quite different to what you've written in "Science and Creation" and "The Road of Science and the Ways of God".

P.S. A quick search doesn't bring up any noteworthy Georg Feuerbachs.

<comment><USER7> [https://www.marxists.org/reference/archive/feuerbach/works/e...](https://www.marxists.org/reference/archive/feuerbach/works/essence/ec11.htm)

George, my mistake. (Polytheism brings up the relevant passage starting with Jews)

The philosophers did not follow the gods, they believed in the divinity of reason. If anything, and consistent with the Scientific Revolution, the confidence in the self-certainty of reason permitted the imagination to expand "beyond" the natural, to examine it, to know it, to necessarily effect it for our reasonable ends.

Where I think the pagans fall short is in their worship of visible objects, where they have no concept of an invisibly present permanence in nature, ie electromagnetic radiation.

<comment><USER8> Oh, _Ludwig_ Feuerbach.

If I restrict myself to the topic at hand, then I have to say I don't see how he manages to construe the doctrine of creatio ex nihilo (CEN) as intrinsically opposed to contemplation or speculative knowledge—science that seeks knowledge for its own sake and not merely to master nature—or how he construes it as essentially utilitarian. I have a suspicion that this is a corollary of his position that God is merely a projection of Man, but my understanding is that this position is a consequence of Kantian skepticism and the resulting agnosticism. If you can't know things in themselves, then all you have left is science as mastery of nature.

One difficulty with the claim that somehow CEN is intrinsically opposed to theory is the failure to explain the entire Christian intellectual tradition. Since we're talking about science specifically, it becomes impossible to explain the enormous successes of the sciences in the West and historically the relative poverty of their success in every other civilization. While the stirrings of science occurred in a number of civilizations—and we should give them their due—and while the Greeks may be argued to be the most successful of the bunch, nowhere but the West, whatever its faults, do we see the flourishing of a sustained and vibrant scientific culture. If we take a broader and classical view of science, one embraced by the Greeks, to include any systematic body of knowledge, then this period of flourishing extends far into the centuries preceding the rise of modern science and includes the intellectually vibrant Middle Ages. Indeed, without the Middle Ages, it is difficult to imagine how modern science could have emerged in the first place. Without arguing that this could only have happened in the West (that is Jaki's position, as far as I understand it), it suffices to note that it did happen in the West and it did so in a culture that embraced CEN.

The fact that neither Jewish civilization, nor Islamic civilization for that matter, ever truly had a sustained and sophisticated philosophical or scientific culture does not support Feuerbach's thesis. Again, his claim is that CEN is intrinsically opposed to theoretical endeavors (which includes philosophy). But all I need to show is one example of where CEN did not stifle science.

Here I would add that one thing that stifled science in the Islamic world is not CEN, but the belief that Allah is essentially pure will, and a pure will that can contradict itself. Accepting that kind of creator can only discourage speculative science. Here, we can appeal to Feuerbach's own words when he says that the origin of a thing tells us about that thing. A world created by a self-contradicting creator doesn't inspire much confidence in the intelligibility of what he's created.

In stark contrast, Christianity (certainly Catholic Christianity) conceives of the world as utterly intelligible. To put it somewhat poetically, the world is divine thought or divine word and therefore intelligible and knowable through and through (we have to note both the immanence and transcendence of God to avoid both pantheism and deism). When John says "In the beginning was the Word, and the Word was with God, and the Word was God.", the original Greek uses the word "λόγος" for word. Anyone familiar with Greek knows that the English translation of λόγος is utterly inadequate to express its meaning (the Latin "verbum" does a better job). In Exodus, when Moses asks God who he should say has sent him, God responds with "I Am" (or "Ehyeh", from which we get Yahweh). God is revealing himself as Being itself and in revealing himself is making himself known. So God himself is intelligible and therefore Being is intelligible. (Aristotelian metaphysics dovetails nicely because while Aristotle managed to provide us with a rich and robust theory of being, he stops short of discovering the act or principle of existence which Gilson argues was stifled by pagan eternalism. We have to wait for Avicenna for that to happen, later refined by Averroes and finally Aquinas.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I've seen the term 'evidence-based policy' pop up all over the place. I take issue with people who use this phrase because most of the time their definition of evidence is not very well developed, and when the evidence is something they don't like they start to stretch their definition of evidence so they can dismiss implementing a certain policy. If evidence is only restricted to, and dictated by, academic papers, you leave room for companies and news media to start selectively reporting and funding studies they want to see or want people to see. And where are the scientific papers dedicated to studying this problem? No one is going to fund them. Now you have an entire society believing that corporate influence is not real because there is seemingly no evidence for it.

If you only make decisions based on science you can pretend problems aren't real without a scientist's approval, and you can pretend solutions to those problems are bad if there is even a tiny bit of counter-evidence that supports your viewpoint.

<comment><USER10> _If you only make decisions based on science you can pretend problems aren 't real without a scientist's approval, and you can pretend solutions to those problems are bad if there is even a tiny bit of counter-evidence that supports your viewpoint._

And if you make decisions based on anything other than science, is the final outcome going to be any better?

I admit that something that we might call "misuse of science" is a real thing, and a problem. But I don't see any solution that in any way involves de- emphasizing the importance of science in decision making.

<comment><USER9> Here's a scenario: You are tasked with dealing with a problem where there is little research and no scientific consensus. There is plenty of video evidence and other related pieces of non-so-scientific evidence, but most people don't count that in evidence-based policy. What do you do?

Sometimes, I think, we have to make decisions when there's no clear solution, and it's better than just dismissing a very obvious problem as non-existent. So yes, include science in every decision, but it's not the be all end all of society, it never has been, and it's not good to teach people that you can't tackle issues without a known best solution.

<comment><USER11> > a problem where there is little research and no scientific consensus.

> There is plenty of video evidence

I can't even what you talk about. "Video evidence"?

Edit: if I'd guess it's about "UFOs" for these there practically exists scientific consensus: no aliens proved, ever. "Video evidence" _isn 't_ the evidence of aliens.

<comment><USER12> Lmao, turtles all the way down my friend.

</comment></comment></comment></comment></comment><comment><USER13> > An engaged and well-informed public has always been the foundation of our > democracy

Is there even a shred of scientific evidence to support this hypothesis? I see it in print so often that it appears to be a axiom that is considered so correct as to be unquestionable.

<comment><USER14> Democracy has never really relied on people being well-informed. The "wisdom of crowds" incorporates a lot of ignorance. It just assumes that ignorance is random, while informed opinion will tend to have a bias in favor of reality. If 49% of the people make a random guess one way, and 49% of people make a random guess the other way, then 2% of people who actually know something will put the best-informed answer over the top.

So democracy is robust against ordinary ignorance. It's just not robust against deliberately-induced ignorance[1]. The nudge towards reality is easily overwhelmed by a thumb on the scale of the wrong answer.

Ignorance has never been really random, but the press of misinformation is more widespread than ever. As is the press of information, but when people don't know which to choose, misinformation is often more attractive.

[1] [https://en.wikipedia.org/wiki/Agnotology](https://en.wikipedia.org/wiki/Agnotology)

<comment><USER15> Huh, never thought about the math like that. It makes a lot of sense, thanks for sharing.

P.S. Before the age of social media, was there not the same level of risk of induced ignorance through traditional media campaigns and propaganda? If not, why not?

<comment><USER14> Propaganda has always been a problem, and it's hard to quantify if it's actually worse now or merely different. Even if it's merely different, though, it feels like it's the kind of problem that should be solvable. In so many cases people aren't merely misinformed but actively hostile to science in a way that should bite them in the butt sooner rather than later. Surely, one thinks, that should make it possible to resolve it, at least a little.

<comment><USER16> > Propaganda has always been a problem, and it's hard to quantify if it's > actually worse now or merely different.

I think that part of what makes it both different and worse now is the way that, thanks to automatic personalisation of content, what _feels_ like honest intellectual inquiry will be met with automated replies that drive us deeper in the direction of our beliefs (inadvertently; they optimise for engagement, but it's more likely that a random browser will engage with something that supports their beliefs than that challenges them).

Of course, there was always propaganda before, but there was at least the chance of realising critically that it was being forced upon you, and so choosing to resist it; or, if you _wanted_ to be swallowed up by the propaganda, at least you had to make some effort to find the material that would support that position. It's the way that our filter bubbles are now more than ever hidden from us and, even worse, presented as ever more rarefied intellectual inquiry that I think causes so much 'unswayability'.

<comment><USER15> Is there any way to realistically and gradually reduce the prevalence and thickness of these filter bubbles, so that people can be encouraged to practice critical thinking in a sustainable way? Will this have to necessarily be a governmental effort, or can there be business value in such practices? Will there ever be sufficient incentives for any government to work on this?

Sorry for all the questions, I'm just thinking out loud.

<comment><USER16> > Is there any way to realistically and gradually reduce the prevalence and > thickness of these filter bubbles, so that people can be encouraged to > practice critical thinking in a sustainable way? Will this have to > necessarily be a governmental effort, or can there be business value in such > practices? Will there ever be sufficient incentives for any government to > work on this?

The problem that I see is that filter bubbles keep people happy, so the effort to fix it has to be an effort that's going to make people unhappy—and what business or democratic government is going to do that? To me, it's like being a teacher (my profession); there are ample studies that show that teaching _effectiveness_ is in many ways inversely correlated with student satisfaction (because true learning is often uncomfortable), and yet the incentives for teachers are all in the direction of encouraging student satisfaction even when everyone knows it can be at the expense of learning.

<comment><USER15> I see, that makes sense. Kind of a "eat your vegetables" type of situation.

I really hope we can learn and get to a better place from here, but I'm not holding my breath. The way I see it, there's a good chance that the world will only continue to become increasingly more authoritarian and dictatorial. Because in a world filled with more and more widespread filter bubbles and entrenched divides, authoritarianism and dictatorships logically become the optimal solution to get society to cooperate and function.

It saddens me to think about it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> There's science and then there's the theatre of science and the fans of the theatre of science will attempt to browbeat you into ignoring the science because they are concerned with the continued operation of the theatre.

So, for instance, when the CDC recommended no mask usage and all the conformist fans of the theatre of science started pulling their shit, the ones who follow the science ignored them.

Government scientific institutions have reputations that are shot through with these "for the greater good" lies. Science is important, but no one is going to listen to the Scientific Theatre any more.

<comment><USER18> [https://www.cebm.net/covid-19/masking-lack-of-evidence- with-...](https://www.cebm.net/covid-19/masking-lack-of-evidence-with- politics/)

<comment><USER17> Interesting. Semi-convincing. Adjusting priors on the mask thing downward slightly.

</comment></comment></comment><comment><USER19> Politicizing science will make science less scientific and more political. It will not work the other way.

<comment><USER20> "When you mix politics and science, you get politics." — John M. Barry

from [https://en.wikipedia.org/wiki/The_Great_Influenza](https://en.wikipedia.org/wiki/The_Great_Influenza)

<comment><USER21> As far as I can tell, that quote does not appear in the cited book.

[https://books.google.com/books?id=BYsW6qTP0pMC&printsec=fron...](https://books.google.com/books?id=BYsW6qTP0pMC&printsec=frontcover&dq=%22When+you+mix+politics+and+science,+you+get+politics.%22&hl=en&newbks=1&newbks_redir=0#v=onepage&q=politics&f=false)

A nearly identical quote appears in this editorial by the same author:

[https://www.nytimes.com/2020/07/14/opinion/coronavirus- shutd...](https://www.nytimes.com/2020/07/14/opinion/coronavirus- shutdown.html)

<comment><USER20> Ah nice thx!

</comment></comment></comment></comment><comment><USER22> Honest question, why is democracy always the "flag" people wrap themselves in when defending these kinds of positions?

I get that democracy is somewhat better than feudalism, but at the end of the day I don't really care if the king is standing on my neck, or if its a mob of unruly peasants. Tyranny is tyranny, and democracy has demonstrated a great affinity for it when it suits the mob. Democracy seems to be the best of the bad options available, but without the strong protections afforded by an deep seated respect for individual liberty and freedom, there isn't much difference in end result.

If anything modern academia's treatment of "Science!" is a nice little peak under the covers of what happens when you let the mob make the rules - <USER2> becomes regimented to the point of absurdity and you either get on board, or get (thrown) over board.

</comment><comment><USER20> First thing that came to my mind was..

"Guys, guys, Galileo wasn't actually cancelled. He just found out that free speech has consequences." @KonstantinKisin

Good luck!

<comment><USER23> He wouldn't be the first academic in history to get the facts right and the delivery wrong.

<comment><USER20> Eric Weinstein talks about the DISC - Distributed Idea Suppression Complex.

I had a friend get tenure at a university, and her stories added fuel to the fire in my mind that the DISC is very real, and _everywhere_.

<comment><USER23> One man's DISC is another's memetic immune system.

Communicating new ideas is hard, and the burden is carried exclusively by the originator of the idea.

</comment></comment></comment></comment><comment><USER24> Science is important. Science is great. I love science. Let's just be extremely careful when trying to apply the latest scientific achievements in our day to day lives.

Phlogiston theory of 17th century was wrong.

Race theory of 18th century was wrong.

Semmelweis was laughed at in 19th century.

And lobotomies were perfectly scientific for treating depressed patients for most of 20th century.

I doubt 21st century's science is any special here...

<comment><USER25> Four examples of bad science? I see a trend in these comments that people here are pretty anti-science. I would like to remind us all to just take a peek around us, and look at what was not even possible, not even imaginable, a mere fifty to one hundred years ago. We are speaking to one another using faradays laws and discoveries, teslas fascination with wireless and countless physicists and engineers that build practically everything you see. Computers, the internet, wireless... does anyone here remember polio, or how the flu used to kill far more than today (with the exception of the COVID)? I find it fascinating how easily we beat down on science and academic scientists in general. Are there bad scientists? Sure. Are there bad people? Sure, but the narrative I find myself reading more and more is all scientists are bad, and all research should be stopped, as it is somehow costing everyone else money or the money is being used wrongly. I think the percentage of that is incredibly small. I only hope we are still educating our children enough in the future to realize the tiny bad percentage of people we hear about (be it in science or the general population) is not representative of all.

<comment><USER26> Were all of them bad science? (The first two were clearly so, but I'm not sure about the last ones.) Because if so, it's easy to look a bit more and find completely wrong conclusions taken from good science too.

But anyway, all of those were mainstream at some time. The point is that yielding to experts is anti-science. The fact that your experts work in a research lab instead of a church makes little difference here.

Scientific decision making requires that at a minimum you verify your experts results, and be ready to notice when they are wrong. This article is as anti- science as the policies it is trying to fight, and this is a bad thing that can only create mistrust from the public.

<comment><USER27> Is it possible for non-experts to verify science in most fields? It's possible and important for other experts to verify, but research is _very_ hard to contextualize and verify without being or becoming an expert.

<comment><USER26> > Is it possible for non-experts to verify science in most fields?

If they don't know a thing about statistics and science methodology, no it's not. If they do know those, settled research with real impact is not that hard to verify (that's why it's settled), verifying science without impact is not important, and unsettled science shouldn't get a lot of trust anyway.

That would be a good subject for an article with that same title. But for the current article, the question is not really relevant.

</comment></comment></comment></comment></comment><comment><USER28> Independent interpretation (ie. done not for clicks and views) of scientific data is more important than ever.

</comment><comment><USER29> That's why I started a content project earlier this year but my admittedly very small evidence is not in the line of this article: my readers just want easy & simple bullet point to grasp "facts", instead of first-hand expertise, references or debates. Science is a process, though, not black or white definitive assertions.

</comment><comment><USER30> What's the point of being an expert if no one will listen?

</comment><comment><USER31> A lot of what is said in this article only really makes sense if you define science to be "what is said or done by someone called a scientist."

</comment><comment><USER32> Then fund us. I'm about to leave science because I can't find a position.

<comment><USER21> I'm almost done my PhD (defense next week) and I'm starting as a patent examiner later this month. That was the only job I was offered, and I applied overwhelmingly to research positions. There really aren't enough research positions out there. (And before someone asks: I worked in a very practical area of engineering.)

With that being said, increasing total funding can only go so far. A bigger problem to me is that the available funding is not allocated well. When certain professors make $300K+ per year yet can't find money for postdocs and their students make less than $20K per year, CERN asks for billions that could be spent on more important projects, and universities take a huge percentage of grants as overhead (often without clear justification), it seems obvious to me that there are plenty of ways to improve the situation without increasing funding. I could go on. I think the research enterprise is incredibly inefficient, and not by necessity.

<comment><USER33> Good luck at the USPTO. I worked with some former examiners (patent attorneys now). The early years are a grind to say the least.

</comment></comment></comment><comment><USER34> This is true, but at least in the US, its more and more devalued everyday.

</comment><comment><USER35> It's a pity they didn't use the word "truth". that's what's at stake here: not just the lack of science but the total abolishing of truth, no matter how trivial.

</comment><comment><USER36> Mods have deleted this question with no reasoning- Why is the "science" solution to lockdown? This is a prioritization of a minority population at the expense of an overwhelming majority.

Logic would say to prioritize (pick your numbers, I don't care) the 99.5% over the 0.5%.

My hypothesis is that since it's a healthcare issue, the leaders are less math/statistics inclined and more focused on biology.

<comment><USER37> That's just wrong. Is Japan, or Korea, or Germany needlessly locked down to "prioritize a minority population"? No. Those economies are largely open now.

The US isn't making the wrong decision about prioritizing hard choices, it's simply _MAKING THE WRONG CHOICES_. This was a largely solvable problem. We just failed.

<comment><USER36> The question isn't what we should have done, that's easy. What should we do now?

<comment><USER37> Exactly the same things! There's no too late with a virus, the same things work to treat it no matter what the infection counts are.

Stay home. If you can't stay home, wear a mask and stay outside. Don't travel. Get tested regularly if you can't meet these rules. Follow the instructions of the scientists we've all been ignoring. Vote for people who will (or against those who won't).

Your argument seems to be of the form "Well, we fucked up, but it's too late now so we might as well open up." That's just not true. We can still fix this and save tens or hundreds of thousands of lives.

</comment></comment></comment></comment><comment><USER38> Maybe the reason we are in this mess is because we relied too much on science, and too little on actual humanities (rhetoric, logic, and so on)? I hear about hermeneutics more and more in my circle: how to communicate trumps what is communicated.

I can see why Fauci and many top scientists fail to convince people like Trump and his supporters: he knows, but can't communicate what he knows so that information is conveyed, and not simply stated.

<comment><USER39> > he knows, but can't communicate what he knows

One example of this was when he knowingly misled (as one player in a coordinated effort) the public about the usefulness of the general public wearing masks at the initial outbreak of the pandemic. Now that the truth came out, Trump supporters have indeed latched onto this as proof that what the medical establishment says is not always true. Whether the benefit was worth the cost is another one of those things that is unknown.

[https://www.youtube.com/watch?v=0XHC5Kxxv_w](https://www.youtube.com/watch?v=0XHC5Kxxv_w) (1:30 onward)

[https://www.facebook.com/BettzDNS/videos/10216890195312387/](https://www.facebook.com/BettzDNS/videos/10216890195312387/) (Note the rhetorical "fact checking" warning about the video.

Whether you like it or not, people will react to this behavior in ways that are non-beneficial to overall society. I wonder if that is taken into consideration when strategic decisions are made behind closed doors on what _representation_ of reality is projected into people's minds. Another one of those things that will remain unknown I imagine.

<comment><USER40> mistermann says> _" Now that the truth came out,... "_

Are you sure of the truth?

In recent news, the Dutch aren't requiring masks (except under limited circumstances, e.g., on buses):

"Dutch Dr. Fauci Thinks Masks Won't Work. Here's Why":

[https://www.newsweek.com/netherlands-mask- policy-1522917](https://www.newsweek.com/netherlands-mask-policy-1522917)

<comment><USER39> > Are you sure of the truth?

Not at all, I am only going by what Dr. Fauci said in those videos - <USER3> he is once again saying something that is not actually truthful. Maybe Donald Trump is not the only person in Washington who is skilled in the black art of 4D Chess...I seem to recall one or two items in the past where the public was told, in a coordinated fashion, things that were not true. In fact, this behaviour seems to be a rather common attribute in most any human being I've encountered, in any community.

> Dutch Dr. Fauci Thinks Masks Won't Work. Here's Why

Another interesting behaviour I've noticed is how doctors and the media portray the masks issue as being essentially universal consensus in the medical field.

I often wonder what is really true. I wonder if the experts ever wonder what is really true.

</comment></comment></comment></comment><comment><USER41> Translation. "Is year of elections and we should say something about science".

To enjoy the article at this fullest, play this in the background with an orchestra of tiny violins

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

My pleasure</comment>


8 Marketing Secrets of Successful Startups - <AUTHOR> http://marketingstartups.com/2011/09/16/8-marketing-secrets-of-successful-startups-futurem/

<comment><AUTHOR> These are notes from this week's FutureM session in Boston.</comment>


Show HN: Boilerplate generator for Python 2 and 3, with various configurations - <AUTHOR> https://www.python-boilerplate.com <comment><USER2> This is great! Any plans on adding in a boilerplate for packaging (e.g. setting up setup.py with its tests, etc. and having the correct file structure for imports). Its the one thing that drives me crazy when writing Python.

<comment><AUTHOR> Thanks! Yes, I know what you mean and share your pain. This is on the feature ideas list pretty far up top.

</comment></comment><comment><AUTHOR> Hello all, author here. I built this during the past few weeks as fun and hopefully useful micro-project, playing around with Vue.js for the frontend.

Happy to answer any questions!

<comment><USER3> Looks like a useful tool, do you have any plans to implement the plugins for editors? e.g. Vim.

<comment><AUTHOR> Great idea, thanks! Adding it to the feature ideas ;-) Btw I'm happy to help with contributions!</comment></comment></comment>


The Case For Replacing Java With Python In Education - <AUTHOR> http://thinkingdigitally.com/archive/the-case-for-replacing-java-with-python-in-education/

<comment><USER2> The case for replacing language X with languages X, Y and Z:

I believe that if you really want to call yourself a computer scientist, you can not only learn one language, and that's it. Apart from the fact that languages evolve and eventually die anyway, for a deep understanding of computer science, you have to be able to choose the right tool for the job. It should not be the teacher who chooses for his students which language they should use for the rest of their lifes, but the teacher should teach how to choose from the available languages and also how to learn different technologies.

I think 3 is the minimum number from which you can start learning how to make a choice. And they should be really different, e.g. not Python, Ruby and Perl.</comment>


Facebook dating launches today - <AUTHOR> https://www.theverge.com/2018/9/20/17871690/facebook-dating-release-colombia-test <comment><AUTHOR> I seriously can't imagine this taking off, and even if it does, staying strong and growing bigger than other matching platforms that charge their customers for verification and other features.

Facebook is already quite creepy and needy. [1] Please dissuade people from using this service if you can.

[1]: [http://bradfrost.com/blog/post/facebook-you-needy- sonofabitc...](http://bradfrost.com/blog/post/facebook-you-needy-sonofabitch/)

<comment><USER2> I seriously can't imagine this _not_ taking off, as far as a dating app can "take off". The incumbents should be worried.</comment></comment>


Losing the sense of smell predicts death within five years - <AUTHOR> http://www.theguardian.com/science/neurophilosophy/2014/oct/01/your-nose-knows-death-is-imminent

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

</comment><comment><USER3> I don't what to think about that, because due to severe sinusitis I kind of lost my smell sense when I was a teenager (I'm almost 30 now), yet I can smell pretty strong odours (mostly alcohol smell sensation and peppermint). It can't be really true that it's "5 years and you're dead" :D

<comment><USER4> From the sampled individuals, they calculated:

P(die within 5 years | healthy sense of smell in 1st test) = 0.1

P(die within 5 years | moderate sense of smell in 1st test) = 0.19

P(die within 5 years | bad sense of smell in 1st test) = 0.39

<comment><USER5> Notably, all participants were at least 57 years old.

</comment></comment></comment><comment><USER6> The paper is open access: [http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjourna...](http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0107541)

<comment><USER7> Thanks!

> 3,005 community-dwelling adults aged 57–85 were studied in 2005–6 (Wave 1) > and their mortality determined in 2010–11 (Wave 2). Olfactory dysfunction, > determined objectively at Wave 1, was used to estimate the odds of 5-year, > all cause mortality via logistic regression, controlling for demographics > and health factors.

</comment></comment><comment><USER8> Previous discussion: [https://news.ycombinator.com/item?id=8397264](https://news.ycombinator.com/item?id=8397264)

</comment><comment><USER9> My Grandmother lost her sense of smell at 20 and lived to 85 - Yes, anecdotes are not data but for those concerned, don't sweat it too much.</comment>


Ask HN: Joining a startup, need invention assignment agreement legal advice - <AUTHOR> (normal account changed for privacy)
I have an offer to join a startup in San Francisco but I have some concerns over their invention assignment agreement with respect to prior work.  I think it's mostly mooted by California labor code 2870 but I'm not a lawyer and won't risk it to my understanding of the law.  Furthermore I do not live in CA so I can't just ask a local attorney.
In the past I've tried finding lawyers from internet searches and had terrible results and I'm on a bit of a deadline.  How can I find a CA attorney with experience in this sort of thing who can review the agreement within a day or two for a reasonable fee?  Are there any legal services I can pay for this kind of one-off help?  Any other options I'm missing?
Thanks! <comment><USER2> I'm sure you could find a lawyer who can help. What about contacting the California state bar association?

Also, if an invention agreement is giving you heartburn, then that is a signal in and of itself. If you can't find a lawyer to look it over, then don't take the job.</comment>


IP Geolocation API - <AUTHOR> http://ipinfodb.com/ip_location_api.php

<comment><USER2> When loading the IPLocator it should auto fill the form with my ip. This would help try the service :)

</comment><comment><USER3> when I try to register I get error: "Lost connection to MySQL server at 'reading initial communication packet', system error: 110"</comment>


Ask HN: Why did Instagram need to raise $57M? - <AUTHOR>

I'm having trouble getting a <i>good</i> answer as to why Instagram found it necessary to raise $57M? Please enlighten me. <comment><USER2> It's the VCs that make the decision to pump that money into a company like Instagram. They do it for only two big reasons:

1\. Align the interests of the founders with that of the VCs.

How else are you going to convince the founders to "swing for the fences" (read: IPO or $1B+ exit) except to let them take a large chunk of money "off the table" now?

Any company as hot as Instagram is getting offers for $100M+ acquisitions on a regular basis. That would likely mean $10M+ for the founders. It's just not rational to pass up a personal windfall like that unless you're already very very wealthy.

The neat thing is that VCs have solved this problem. In the past few years it's become common to let founders sell some of their equity for $N millions when they've reached a certain level of success.

Once the founders have banked millions of dollars they start seeing things from the same perspective as VCs. It's completely rational for them to attempt world domination. Instagram would have eventually tried to threaten Facebook's position. Had they succeeded they might have ended up with $20 billion (like Zuck). They also might have ended up with nothing.

2\. To fund expansion.

You can't plan world domination if you don't have the servers and manpower to attempt it. Servers and datacenter space are expensive. Employees are even more expensive.

</comment><comment><USER3> To prove their valuation and get a stronger hander at the negotiation table. Many companies raise money not for capital investments, but for:

a) create news and get free PR (press loves such eye-popping numbers)

b) get higher valuation numbers that will motivate the employees more (they have the stock options after all)

c) get more powerful/influential shareholders who will help clear the hurdles in the company's way

This is not exactly how capitalism is supposed to work - capital has to be used judiciously to build future growth.

</comment><comment><USER4> It's likely that they were already in the process of closing the round (i.e. had signed some term sheets) prior to having the acquisition conversation with facebook. At that point they probably were legally bound to close the round prior to the acquisition (and is likely a reason the company went for such a high price... the investors wanted to at least double their money).

</comment><comment><USER5> To build a perception of value. An investment of $57M allows an argument to be put forward that the company value is $1B.

</comment><comment><USER6> mark suster wrote a good post on this: [http://www.bothsidesofthetable.com/2012/04/14/dont-try-to- pu...](http://www.bothsidesofthetable.com/2012/04/14/dont-try-to-pull-an- instagram-heres-why/)</comment>


NaN Gates and Flip FLOPS - <AUTHOR> http://tom7.org/nand/ <comment><USER2> Every one of this guy's SIGBOVIK papers/videos are pure gold. His video about the printable x86[1] is my favorite engineering video of all time.

^1: [https://www.youtube.com/watch?v=LA_DrBwkiJA](https://www.youtube.com/watch?v=LA_DrBwkiJA)

<comment><USER3> "Now, for good reasons that I will explain later, this paper must contain 8,224 repetitions of the string "~~Q(", another weird flower."

Quotes like this from the paper put me in mind of exposition from a Culture series (Iain Banks) novel.

</comment></comment><comment><USER4> From Tom7's description of the video on YouTube, "Note: Everything in here is real (IEEE-754), but the target is computer scientists and the troll level is set to ULTRA."

<comment><USER5> I instantly remembered my informatics teacher's first maxim: "Not Number Is a Number"

</comment></comment><comment><USER6> Is this Cyberneodadaism?

Never mind. Whatever it is, I like it. Especially the part about just _knowing_ a beautiful, completely random computation is happening, at 1/150000000000 the speed of a so-called "normal" computer.

</comment><comment><USER7> The amount of effort that must have gone into this video is insane. What a unique presentation style - definitely kept me engaged.

</comment><comment><USER8> tom7 videos are pure gold. I particularly liked his chess video: [https://www.youtube.com/watch?v=DpXy041BIlA](https://www.youtube.com/watch?v=DpXy041BIlA)

</comment><comment><USER9> TL;DR; you can construct a logical computer, that uses +inf and nan (because it is fun?) as true/false and some combination of floating point operations on these as NAND gate.

Then he proceeds to implement it in hardware.

<comment><USER10> Someone should take this to the next level and implement a floating point ALU with this.

<comment><USER9> Sounds like you'd be interested in Greg Egan's "Permutation City", if you haven't read it yet.

</comment></comment></comment><comment><USER11> All tom7 things are glorious.

</comment><comment><USER12> Can someone ELI5 how this differs at all from normal binary? It's the same thing, just with a different name, right?

<comment><USER13> indeed it is the same thing, I think it is

looks like it's a joke in the vein of turing complete PowerPoint but way more hardcore

</comment></comment><comment><USER14> That's super interesting, how MAX() coupled with NAN and Infinity creates a truth table the same as OR, and the multiplication table of NAN and Infinity creates a truth table the same as AND...

Fascinating, in fact!

</comment><comment><USER15> The video's quick and relentless descent into more and more madness is a wonder to behold

<comment><USER16> I kept wondering when it would level out, but at some point I realized I was on a track straight to logical hell and just buckled in for the rest of the ride.

Most fun headache I've ever had! ∞/10, would watch again.

</comment></comment><comment><USER17> Harry Q. Bovik would likely weep tears of both pride and joy for everything Tom7 has ever done

</comment><comment><USER18> I've seen a few of this guy's videos but what the eff is SIGBOVIK??

<comment><USER19> Here's Dr. Bovik's website: [http://www.cs.cmu.edu/afs/cs/usr/bovik/www/](http://www.cs.cmu.edu/afs/cs/usr/bovik/www/)

</comment></comment><comment><USER20> Dude probably spent a couple of weeks putting this together, if not more. I wish I had this kind of motivation. :-)

</comment><comment><USER21> This guy is so awesome LMAO! The comparison monies were the best part.

</comment><comment><USER22> seems like an fpga would have been much easier to implement this.

<comment><USER23> seems like just about any other way would have been much easier, including just doing the 'computer' emulation on paper.

</comment></comment><comment><USER24> WOW ;o; speechless ;_;

</comment><comment><USER25> I saw the best minds of my generation...

<comment><USER26> I see your point, but this sort of argument depends on the assumption that productivity/enthusiasm is fungible, which it rarely is. You can't just chain Tom7 to an office desk and say, "ok, now channel your creative energies towards optimizing this Excel macro."

(The other prong of the argument is that this type of work is of little value, which is certainly debatable too.)

<comment><USER27> One day I was writing an Excel macro, and I wanted to hash something (I forget why), and I was looking for a way to compare hashes in a relatively efficient way, meaning storing them in a built-in VBA data type.

Unfortunately, there seemed to be no convenient data type larger than four bytes, except for double precision floating point. I couldn't come up with a way to control all of the bits in a double, and there were no 64-bit integers, but then I discovered an alternative - there is a 64-bit type called "Currency", which is basically a fixed point decimal usable for my purpose.

So, I suddenly realized I'd created a currency system based on hashes...in Visual Basic.

<comment><USER28> Coincidentally, one of Tom 7's SIGBOVIK 2018 papers [1] actually describes the emulation of uint8_t with floating point operations and nothing else. A working library is available [2].

[1] [http://tom7.org/papers/fluint.pdf](http://tom7.org/papers/fluint.pdf)

[2] [https://github.com/ixchow/fluint8](https://github.com/ixchow/fluint8)

<comment><USER29> > Future Work

> Design a processor for which this library is relevant.

Putting the cart in front of the horse ;)</comment></comment></comment></comment></comment>