Are interruptions worse for programmers than for other knowledge workers? - <AUTHOR> https://dev.to/_bigblind/are-interruptions-really-worse-for-programmers-than-for-other-knowledge-workers-2ij9 <comment><USER3> I would say "creative" workers instead of "knowledge" workers. If your job is to regurgitate a bunch of stuff from memory, interruptions might not be a big deal. If your job is to create new things that don't exist yet, then interruptions derail you as you need intense clarity and focus to do so. And it affects everyone who is in a creative class job equally when they are in a creative mode: Designers, architects, musicians, writers, engineers, chefs, mathematicians, scientists, etc.

I like to think of it like this: A musician can play for a busy stadium, or a chef can cook for a busy restaurant, if they are playing a song they rehearsed or preparing a dish they made many times. But to write that song or create that dish in the first place, like hell you could do that with all that noise and distraction.

<comment><USER4> So, here's my experience in another creative process.

I'm an artist. The vast majority of my thinking and planning time happens with a sketchbook or drawing program open in front of me, and me rapidly generating rough sketches and/or story notes. I have learnt over the years that, sure, I can sit there staring off into space trying to work stuff out in my mind's eye all I like, but things go a _lot_ faster if I work it out by creating a rapid feedback loop between what I'm sketching out in front of me, and how I want it to look when it's done.

Sometimes when I am very stoned I can enter a state where I'm holding a nearly complete image of the whole drawing in my mind's eye and "tracing" it onto the paper. It's a pretty cool place to be in. But it's super fragile; interrupt me and I'll lose it, with an incoherent fragment of a drawing. So normally, _I don 't work like that at all_ \- I'll quickly draw the roughest version possible of the important parts of the drawing, and iterate on that until it's done, or until I decide this approach is not working, and try another one. My ideas are in tangible form _as soon as possible_.

When I'm writing (I mostly make comics, so I get to draw AND write), it's the same thing. As soon as I have the germ of a baby idea that sounds okay, I pull out paper or Evernote or whatever and _write it down_.

Interruptions still suck. Interruptions can still take time to recover from. But I don't have to spend a half an hour building up an intricate mental model of what I want to do afterwards from scratch, because I have a pile of roughs and notes that _documents_ the process of getting to where I was.

So my suggestion, from how I practice my craft: As soon as you realize you're getting into complex territory, _open up a notebook and start scribbling questions and answers and inspirations to yourself_ , draw little diagrams (or big ones). And mess up your copy of the code with a ton of comments - what's this section doing, what do I need to investigate further, here's some pseudocode for how I might fix this, etc, etc. _Document as much of your thinking as possible_ , put as much of the headspace you're generating _outside_ of your head as you can so that it's easier to pick up the pieces after an interruption.

<comment><USER5> Oh, it is the same for programmers!

As soon as we have an idea we immediately open up an IDE, and then get a GIT repository going, and get Yarn to prepare all the libraries we need, and get a quick little back end database api set up, and then a quick little front end framework and then we are...

finally ready to start experimenting.

<comment><USER6> You can, for the most part, do that _once_ and never again, though.

`cp -R` is a thing.

<comment><USER7> or

        git clone https://github.com/myaccount/proj_template.git newproj

</comment></comment></comment></comment></comment><comment><USER8> > I don't believe we're as special as we think we are

I don't like the premise.

In my opinion and from personal experience, it's more to do with keeping an abstract of the problem you're trying to solve in your head, which is what the cartoon is portraying, than any thought of somehow being special in some way.

I mainly work from home, and I'm married, which means quite often I could be working on a piece of code - abstract in my mind - when the goodly wife enters my room and starts asking or talking about domestic subjects or issues. And then just like the cartoon, the abstraction I had so carefully taken the time to build up in my mind goes _POFF!_

That _POFF!_ is most frustrating. It's not that I think I'm special, or that the _POFF!_ is different for other types of workers/professions, but it does take time to settle down and begin to build the abstraction back up in one's mind again.

<comment><USER9> I'm in the same boat as you. I work from home and so does my wife. I'll just be passing by to go to the bathroom or something and she'll want to have a 20 minute conversation about something. I don't want to be rude, but I'm thinking "I gotta get back at it.."

My memory has never been great, which isn't ideal for being a programmer. Lately, I've had a text editor opened up separate from my code editor where I kind of document my train of thought - especially on fuzzy, complex stuff.

For example, we run everything out of Azure, but I've noticed that for our various environments, but same applications, things are setup in an ad-hoc manner and a little bit different, but still work.

So basically I'm just documenting my train of thought as I setup a new application environment - nothing formal.

That might seem obvious to other development shops, but we're just a couple guys flying by the seat of our pants and things get messy quickly, and memories fade.

<comment><USER10> > Lately, I've had a text editor opened up separate from my code editor where > I kind of document my train of thought - especially on fuzzy, complex stuff.

I do something similar. I have a dedicated to-do app, but I like having a more freeform text log as well. On a Mac, [https://github.com/glushchenko/fsnotes](https://github.com/glushchenko/fsnotes) works well.

<comment><USER11> Thanks for the link. This app will solve some needs I have.

</comment></comment></comment></comment><comment><USER12> I don't accept the premise. Who are all these people saying they're "worse for programmers than for other knowledge workers"?

I've seen many times on Twitter non-programmers basically calling us cry- babies. However, they are often arguing against an opinion they invented.

"I hate interruptions" does not mean "I hate interruptions and I believe I'm the only person in the world affected by them"

<comment><USER13> One of my grandfather was building huge oil extractions platforms. You can bet 50 years later he was still complaining about his work being interrupted.

It's not a new thing, but it does affect engineers a lot because their job is to solve new problems on complex systems regularly, and it involves creativity, abstract thinking and holding a lot of variables in your head.

Today, IT is one of the field where you have the most engineers, and by nature they master the most important communication device made by man: the Internet. So you hear them the most. They are not cry babies, they are more numerous and can be more vocal than other professions with the same problem.

</comment></comment><comment><USER14> Aside of the critique that already appeared there about the fact that if you believe that you suffer from being interrupted it does not mean at all that you think you're any kind of special, there's one thing this note completely fails to mention.

One of the most mentally demanding parts of programming (and the part that I personally enjoy the most) is debugging. In small, managable chunks it probably takes most of one's time, while the bigger sessions of finding a particularly nasty bugs are more rare, yet awfully demanding. You can't "come up with a solution to a problem before you start writing code" nor "divide the solution you came up with into small chunks", as your whole job there is to slowly unravel the interconnectedness of all things and produce a mental model of how the code works, how it should work and where the expectations differ from reality. It just requires a lot of concentration, just as any other job that suffers greatly from interruptions.

(also, I fail to see how "come up with a solution to a problem before you start writing code" changes anything. You will still lose your train of thought when being interrupted while coming up with a solution before starting coding - and it will be even harder to justify being annoyed at interrupting party when you can't even show them your IDE on your screen :P)

<comment><USER15> Divide-and-conquer approaches are very effective in debugging. When you are debugging, you don't break down the problem before starting the process; breaking it down _is_ the process.

With debugging, you have a concrete implementation and a specific problem to work with. In development, you have to try to anticipate every problem, and coming up with a concrete implementation is the goal, not a given. These complications, IMHO, make design ultimately harder than debugging.

If your progress on something is dependent on a mental image that collapses with the slightest interruption, then you are working at the limits of your ability. To go beyond that, you need to be able to record what you know so that you are not limited by your mental working storage. I am interrupted by sleep every day, and the first thing I do the following morning is to review any notes I made on the previous day.

Interruptions are certainly disruptive, but your claim that these techniques will not mitigate the problem does not mesh with my experience.

<comment><USER14> Your post matches what I meant - you don't do these mentioned things before doing "proper" work; your work _is_ doing there things, so there's nothing to actually learn from the article. The interruptions will be just as painful (or not) for you as they were before reading it.

Sure, notes are useful, but your mental representation of the issue is your cache. With lots of cache misses, you are much slower ;)

</comment></comment></comment><comment><USER16> I did science (PhD in physics), work in information security and develop (pro and personal).

Interruptions in science were not a problem, I would say that they were welcome. My brain was processing a lot in the background when the thoughts were bent formed. I had my best ideas in unusual conditions.

The same interruption when coding is disastrous. My thoughts are "stacked" and run in the foreground. When I am interrupted, I have to build the stack again almost from scratch.

Information security is a middle ground. A lot of the work is not creative and I do not care about Interruptions. The creative part sometimes look like science and summertime like coding, so it really depends on the subject.

</comment><comment><USER17> I'm not a developer, but I work in tech. Interruptions are still quite costly for me. It's less about "holding a lot in my head at once" and more about getting into a "flow"-ish state. Once I get going, I get momentum and am able to continue to get things done. Once I stop, I lose momentum and my pace of work slows.

It's harder to quantify but when I get uninterrupted work done, I "feel" better while I'm working. I'm happier and more productive while working. I have a pretty one track mind, so focusing on one thing at a time and doing that one thing really well is important for me.

</comment><comment> jim-davis The advice about "chunking" when writing new code does not apply when, like the cartoon character, you are _debugging_ , perhaps post-facto, an event in a complex system where you must recreate the state while considering multiple hypotheses. You are constructing and exploring a fault-graph, formulating various 'experiments' you can try next to prune (or expand) the graph, weighing the relative costs/benefits of each next action, and assessing your confidence in multiple beliefs. All this with imperfect information (e.g. as the cartoon shows, missing course code; but also empty commit messages, obscure or obsolete comments.

The most useful 'chunking' I do is to actually _write down_ the multiple hypotheses and evidence pro-and-con. Often the mere act of putting the idea into words helps, and at least it gives me something to come back to when I get interrupted.

<comment><USER18> +1 on _write it down_. Leaving myself an unusually effective trail of notes is the secret weapon that makes me substantially more resilient to interruptions and task switching than many of my peers. Paper, osx notes app, google docs, emails-- the right tool depends on the exact task, but step 1 to solving any problem is always "start a doc".

<comment><USER19> Do it in something searchable so you can look for "have I ever puzzled through this class before?"

</comment></comment></comment><comment><USER20> Something I noticed (having worked as both a non-programmer and programmer) that hangovers affect me much worse as a programmer than not.

As a non-programmer there were always mundane things I could do to keep things ticking over: sending emails, updating reports etc.

As a programmer who solely codes, there's not many places I can hide in my work if I'm off form. If my concentration is impeded, my output will very visibly suffer.

<comment><USER21> I work on something else. Docs. Code reviews. Backlog. Automation. Or I read up on what the broke in version 1.5.4 of the library we use for this part of the code. Read up on the new language features coming out later this year. Or review the keyboard shortcuts for my editor.

It doesn't help me so much with this week's story (I fuckin hate Scrum now) but it helps in the long run.

</comment></comment><comment><USER22> I'm a lawyer (day job) and programmer (now hobby, former side job). I find interruptions just as bad for both kinds of work when you are in or trying to get into the zone.

By that, for coding, one good example is trying to work out how something new would be implemented, then how it would fit with existing things, then getting down to implementing. For that, you need a clear mental model of all the moving parts -- what's there, what's not there, what has to be added, and what has to change. When you're in the zone, you know where you are, where you're going, what to add and how to add it. Things just flow. Code appears, and you keep track in your head of files you need to visit and what you need to do in each. If left uninterrupted, you will eventually get there, and hours can disappear without you noticing. Same with debugging, when you're trying to map in your head what is going on, what should be going on, and what might be causing a deviation between the two.

You have to rebuild that model when you get interrupted, and the extent of the rebuilding is usually proportional (and monotonically increasing) to the length of the interruption and the extent you have to commit thought to it.

For legal work, I find that kind of work usually occurs in writing submissions or preparing cross-examination. You're thinking about your overall journey to win the case (usually all or part of your case theory) and how you help get there with what you're working on. You're keeping points made in dozens of cases that you have to interleave when you get to the right place, or that you have to take account of in the evidence (eg what kind of evidence does case X require me to adduce to prove point Y). You're thinking about what is _persuasive_ (the key to all good legal writing) but also about what is accurate (duty to the court), what is admissible into evidence, and what is understandable to your audience (usually a judge). Again, when you're in the zone, it just flows and time has little meaning.

The overall interrelationship is the same as coding -- lots of moving parts in your head, lots of reliance on short-term memory -- and it suffers the same way from interruptions.

My pet theory is that the more that mental work requires saturating short term memory, and making use of it when saturated, the more vulnerable it is to interruptions.

</comment><comment><USER23> > Are interruptions really worse for programmers than for other knowledge > workers?

Who cares? It's not a competition. The fact is that it sucks for programmers and we want to avoid them.

</comment><comment><USER24> > But I do think that you can improve your resilience to interruptions if you:

> 1\. Come up with a solution to a problem before you start writing code, and > think about which parts of the system that solution will impact.

The problem is, for me, that _"come up with a solution"_ is the part that is at most risk of getting derailed by distraction. Writing the code, after I've come up wth a solution, is quite a minor aspect of programming for me (almost trivial, often). The hard part is understanding the problem, its contraints and requirements, the context within which it lives and all of the different things that I need to take into account to create a solution. That often takes a lot of working through things in my mind: visualising input data, transformations and output, visualising dependencies, simulating the algorithms and processes in my head. Determining what affects what and if that has any impact on something else. That's the hard part. Actually coding it is usually not so hard nor is it usually particularly sensitive to interruptions.

<comment><USER25> This. I personally don't feel that I spend all that much time in the "trenches" when programming. Most of my work is thinking and then hopping over to the computer to tap out a few lines. Or sometimes interacting with something through the debugger/reading the code to get an idea of how something works. I very rarely have my nose in the keys trying to grind out a solution.

</comment></comment><comment><USER9> I don't agree with the premise of "we think we're special either", but

 _Come up with a solution to a problem before you start writing code, and think about which parts of the system that solution will impact._

 _Divide the solution you came up with into small chunks, so you can take them one at a time._

This makes a lot of sense. I see junior programmers flying by the seat of their pants without a plan too often - I do it too.

I find that stepping away from the IDE/code editor (not looking at code) and thinking about the problem helps a lot. That could also involve a piece of paper and pencil, or a text editor and just writing train of thought stuff. But the key is not to be looking at the code.

His second piece of advice about dividing the solution up into smaller chunks, I also apply to debugging.

When someone comes to me with a debugging issue, the first thing I ask "ok, how do we simplify the problem? How do we get rid some of the extraneous details?" And then keep on iterating over that - keep on simplifying.

<comment><USER26> > Come up with a solution to a problem before you start writing code

Oh, so " _figure out how to_ draw the rest of the freakin' owl".

<comment><USER21> ?

The rest Of the post is about how you don't need to draw the entire owl.

</comment></comment></comment><comment><USER27> I have written and published two non-fiction books (about e-commerce and education) and I code. Interruptions during coding cause more disruption to my flow of work than during writing.

</comment><comment><USER28> In another HN article today [1]: "Logic will get you from point A to point B, but imagination will take you everywhere." — Albert Einstein

Programming (more generally, problem solving), especially of the creative sort, is not logical. It meanders and takes a non-linear path to the solution, and is not always amenable to chunking.

[1] [https://undark.org/article/book-review-mlodinow- elastic/](https://undark.org/article/book-review-mlodinow-elastic/)

</comment><comment><USER29> I think it depends a lot on two things: Flow and Complexity of the necessary scope.

A broken flow is much worse e.g. for a musician, but still very important for programmers as well.

A big, special part of the flow can however be the complexity of what you have to keep in mind to make a good next step. Programming can have a lot of concepts and connections to be juggled at the same time and non broken commit needs tons of things to be kept in mind, too small to write a todo for it. Those need to be read in to ram again after an interruption. I think programming is indeed special here.

Good code minimizes complexity, but you want to map out as much of the complexity in your head before even starting to archive exactly that. Especially at that point you really don't want to be interrupted. A good indicator for work that suffers a lot from interruptions might be when you already turn to some whiteboard just for yourself, because you need to get some little bits of your mind to mentally work on other parts of the project and still have them within reach.

Most other work is much more linear and e.g. reading your last few sentences rather quickly gets going again to write the next.

<comment><USER30> Agree with your point on complexity, I was thinking along these lines too. I realized that the real problem comes when you have a lot of information in your head, and you are trying to keep everything in mind at the same time, designing the solution of a complex problem, tackling many of the small details in parallel. That requires a lot of focus and a very specific state of mind, and getting distracted when you are at that point is really bad. If you are just going through a buglist or a list of simple tasks, it might not be such a big deal, but most of the time, even when not actively designing, you need to put a lot of effort to get in the right mental state, load into your mental cache the complexity of the codebase you are working in.

And realizing this also helped me concentrate better. Sometimes I have trouble starting to code, and I found that focusing on a very simple problem helps you get back on track and you automatically start remembering everything you need for your work. In the past I used to make the mistake of trying to solve everything at the same time, have a perfect plan before starting to write, and I was completely blocked. I think it depends a lot on the person and their mental processes while programming.

</comment></comment><comment><USER28> I don't agree with the premise.

Chunking helps to break down problems, but some problems require one to wrestle with many chunks of the problem at the same time, while building intuition. The boundaries between chunks are also not that well-defined, especially when one is working with a new problem that has no solution.

Author assumes that all problems are decomposable to interrupt-proof tasks/units.

This is untrue in many complex problem domains.

</comment><comment><USER31> I've been involved in 2 very different situations as a programmer.

When I'm working on some random problem that I don't care about it's going to be difficult to recover my original line of thought if I was "in the zone" at the time.

If it's a problem I care about and am involved in intimately it's not difficult to recover from interruptions.

</comment><comment><USER32> One underappreciated aspect of pair programming, which I grant you has its downsides, is that in some organizations there is a special room where those two developers go to pair program, at a booked part of the day, and that tends to raise the threshold for interruptions. Not saying pair programming is without downsides, but I have had the experience work, and afterwards wondered if it wasn't only that two pairs of eyes was better, but also that two people in a room doing a scheduled meeting seems (to most people, not all) less interruptable than a single person at their desk.

</comment><comment><USER33> Just saying "sorry can't talk now" to people doesn't really break me away from being able to solve a problem or loose my train of thought. Other people I work with don't understand this and move on. Being interrupted is never a big deal as long as the person knows to leave me alone if I'm not ready to talk and the interaction is short.

Distraction is more of a problem for me when the environment is loud and there are people having other conversations nearby or other things going on that I can't control.

</comment><comment><USER34> I remember at university the professors had doors on their offices. When they were working on something they'd lock the door. Its more difficult to do when working in an open plan office.

<comment><USER35> Yep. As a grad student, it was _much_ easier for me to avoid distractions than it is now as a software engineer. If I needed X hours of uninterrupted focus, I would go to the library for X hours.

</comment></comment><comment><USER35> """ But I do think that you can improve your resilience to interruptions if you:

Come up with a solution to a problem before you start writing code, and think about which parts of the system that solution will impact. Divide the solution you came up with into small chunks, so you can take them one at a time. """

That may be true, but I think it comes at the cost of taking more cumulative time. I can either knock out this feature in three hours, or I can spend an hour breaking it into six half-hour chunks.

<comment><USER36> This approach is known as 'Top Down'[1] and was VERY popular in the early days of system and program design.

When I started my career I encountered a beardy-sandal-wearing systems programmer[2] , who 100% believed that there should be more comments than code in a program. His approach was to use the comments to write out long-form exactly what the program would do. He would write the whole solution as 1000's of comment lines, from start to finish in one big comment block. Once he'd done that, he'd then start again at the top, and split the comments at a natural point and insert real code to reflect the 100 or so comments above it.

At the time, I thought it was a crazy way to do it, and even now I wouldn't do it. But it had it's upsides. His code was really easy for others to maintain, and it was also fundamentally self documenting.

\---

[1] [http://dept- info.labri.fr/~strandh/Teaching/MTP/Common/Stran...](http://dept- info.labri.fr/~strandh/Teaching/MTP/Common/Strandh-Tutorial/top-down- programming.html)

[2] Ironically, my beard is now WAY longer than his ever was.

</comment></comment><comment><USER37> Article: "Divide the solution you came up with into small chunks". The idea is to use less of your short term memory for the work; by applying this approach to your working memory, you'll have a few slots left over for office conversations. An analogous strategy is for programs to hold less data in RAM so you can dedicate a portion of the CPU's RAM to keeping track of shopping lists and baseball statistics for your neighbor.

<comment><USER38> That is assuming the everyone has the same ability with working memory - <USER2> quite obvious that one of the diagnostic's for neurodiversity is poor short term memory - and guess what industry's have more neurodiverse people?

<comment><USER37> Yes! All the more reason to keep all your short term memory for your work.

</comment></comment></comment><comment><USER39> What's the point of comparing with other "knowledge workers"? And how can you pretend to make an argument when those other knowledge workers are not considered at all?

Surely interruptions are bad when you are programming, but interruptions are as bad when you are doing any other intellectually intensive task.

</comment><comment><USER40> _> 1\. Come up with a solution to a problem before you start writing code, and think about which parts of the system that solution will impact._

how could the programmer in the comic strip apply this advice?

a lot of programming, possibly most of it, is about reading code and making sense of it, not writing it.

</comment><comment><USER41> I work in a role that is part development and part DBA/sysadmin. Interruptions are bad in both cases, but a lot worse when I'm coding. I also work in a noisy office, so it's hard to get into a coding mood in the first place, so interruptions are that much more annoying.

</comment><comment><USER42> We (the industry) have done a poor job at delineating different kinds of people who type code into a computer. Our jobs run the entire gamut from "read specification, type code" player-piano type work to intensely creative endeavors.

On this spectrum, what do we call these people? I have a sense that "software engineer" to "computer scientist" seems to bookend the range.

This is important because converting specifications is generally less focus demanding than new algorithm development, and workplaces can adjust their shape to fit the different kinds of work they do.

<comment><USER26> > I have a sense that "software engineer" to "computer scientist" seems to > bookend the range.

I think the extremes you want are more "code monkey" and "architect".

<comment><USER43> Except that "architect" is synonymous with "bullshitter" for insiders.

</comment></comment></comment><comment> awinter-py > a lot of interruption aversion we feel is caused by not breaking our work > into small enough chunks

Some kinds of work (not just programming) is difficult to plan well in advance because you're reading & writing at the same time.

Doing a good job at creative work is an optimization process and you need to be able to change direction as you explore the space. Staying open to that is a hard mental workload.

In a lot of cases where I outline ahead of time, I end up going in a different direction once I start work.

Also _planning_ takes as much concentration as anything.

</comment><comment><USER44> I'm not a professional developer but my train of thought is very easily derailed. Closing down the windows on my computer is like an archeological dig, unearthing the strata of tasks I started and forgot about.

The solution is to write everything down. I have a Dynalist window permanently open and put thoughts, things people ask me to do and anything else in there.

And when I do write code, it takes such concentration that even 10 minutes later I can't remember how it works. I have to comment almost every line with a narrative as to what's going on.

</comment><comment><USER45> I buy this, in a general sense. If you're able to fully understand the problem and plan out the solution before starting to make changes you should be able to pause and pick up again more easily than if you are designing on the fly. But of course all that planning requires thought, and thought requires time and the freedom to concentrate, and "ding" there's an email in the inbox.

</comment><comment><USER46> Lets just say "problem solvers" and avoid the semantics. Problem solving is abstract reasoning. It requires flow state.

<comment><USER47> I don't think anyone is being paid for creating problems outside of academia.

</comment></comment><comment><USER48> I am surprised to not see anything about debugging in the comments here. I can write new code fine with regular distraction without facing too much mental model rebuild downtime, but debugging is something else. The mental model of a complex code base when debugging takes me a long time to rebuild after any interruption.

</comment><comment><USER49> Samuel Coleridge famously claimed he was interrupted by a "man from Porlock" while writing down the poem Kubla Khan. There's some debate about whether he was using interruption as an excuse for not finishing the poem. In any case, it's not just coders who hate having a train of thought broken.

</comment><comment><USER50> This line stood out for me ... _This in turn is caused by not understanding the scope of what we 're doing. Very often we just dig in, thinking it'll be a small change._

Many times I start where I _think_ it will be a simple change but it turns out to involve much more than I realized.

</comment><comment><USER51> it's worth reading maker's schedule vs manager's schedule [0]

[0] [http://www.paulgraham.com/makersschedule.html](http://www.paulgraham.com/makersschedule.html)

</comment><comment><USER52> Nope. Just ask Samuel Taylor Coleridge [1].

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

</comment><comment><USER53> I'm learning Python in College, I am not a programmer at all probably never will be but it is fun.

When working on a project any noise, any interruption at all I find extremely distracting to the point I have to stop and collect my thoughts for later.

During exams for Python I use earbuds and play a Brownian noise sound file turned up very loud to block out all sounds. It's probably damaging my hearing but it helps. Music has patterns and songs have words both are distracting, classical music is not too bad though it seems to help.

<comment><USER54> I've had Bose sound dampening earphones (qc20) and I urge you to buy them or similar. You'll be able to listen to your noise sound file at much lower volume while massively improving efficiency.

They are expensive, but if you truly are listening to too loud sounds you need them.

<comment><USER55> Do such earphones cancel just background noise (like street traffic) or are they also effective against human speech? I ask, because the kind of noise I'm most interested in cancelling is my coworker's chit-chat.

<comment><USER56> I have qc20's and they are mostly effective against droning, repetitious noises (think airplane noise). If the chitchat is far enough away, quieter, and random enough (think coffeeshop/library) it helps a lot. If it's a couple of co-workers sitting 6 feet away, it's not going to help enough unless you listen loud enough to damage your hearing. That's my experience, but I already got tinnitus from trying to drown out coworkers and have to keep music very low these days.

</comment></comment></comment></comment><comment><USER57> I can't code, but if someone interrupts me when I'm imagining, it's _gone_.

</comment><comment><USER58> I was hoping for more comparison to other types of knowledge work here, and I think there's something deeper than what the author is describing, but this post still makes a good point that likely applies in many cases.

I'd restate the author's thesis as: the problem of having to hold a ton of state in your head which can be poofed out of existence by a small interruption is mostly due to a lack of planning and of breaking the problem down before diving in.

I have to agree with that. Many times I have wandered into a change and expected it to be small, and after many small steps ended up in a mess of a big commit that I need to break back down. Stopping at that point to "re-do" the work in a smarter order feels wasteful, so I just try to split things up logically and move on, but that place is dangerously susceptible to interruption. Pre-planning my actions, perhaps with some notes or a drawing, all taken while just reading the code, could likely reduce the end-work significantly and also reduce the state that's poof-able.

However, I think that there are often complex things to keep track of in large systems that small changes can impact, where trying to take notes of all of these would be prohibitively time-consuming, and may even reduce what you can fit in your head overall. You might not know what pieces to focus on until you begin really working into things.

Good programmers have the ability to build this construct of actions and state entirely in their head, and to see a manipulation of it that will result in the change they want -- a kind of "large system comprehension" that the classic comic embedded in the post demonstrates beautifully. It's a very useful and complex skill!

So I don't think that it's something to always avoid. There's a middle ground where you plan out things that are complex and you stop yourself from wading into a swamp that's deeper than you realized to take some notes and break up the work, but where you also work quickly and efficiently by exploiting this very useful skill. I believe that becoming aware of this and finding that middle ground comes to good developers with experience.

As to whether it's 'different than for other knowledge workers', I armchair- hypothesize that you could break knowledge work up into classes of interruptible activity: mathematics, engineering, programming, architecture, probably work in medicine and chemistry etc. all likely have similar "large system comprehension" as a fundamental skill that enables competence in the field, and that requires real concentration -- they can have work that can be poofed.

Other work like art, writing, argumentation, filing, etc I think are also disrupted by interruptions, and they're annoying in the same way and can cause a loss of flow, but the magnitude of the time lost, I think, is far smaller. You can resume these tasks immediately but may be slower at it, versus needing to spend 10+ minutes just to remember what you were even thinking about.

So, I'm tempted to apply the classic 'no' response to the headline, but I still think there's real value in what the author said: planning is a part of the skill of our work, and when we don't do it, we over-rely on our large- system-comprehension skill, which exacerbates the interruption problem. The relative boom of less experienced professionals in dev work may have led to a lot of wading-into-swamps, and thus to an over-inflated sense among us of the importance of not being interrupted -- even if interruptions are a major issue.

</comment><comment><USER59> > I don't believe we're as special as we think we are

Maybe if you believe this it becomes true. You allow people to tell you what to work on, when to work on it, interrupt you, and generally walk all over you. And you don't deserve any royalties right, because you aren't special? Your fellow developers don't deserve higher pay or royalties, they aren't special either.

Lets just see what happens when this mentality spreads. Developers will get no choices and must all program uniformly. Creative solutions must be approved by the board first. All decisions are made by shareholders and executed by project managers. You will be judged solely on your story point outputs in a perpetual 'sprint'. We can boil down every abstraction and implementation to the lowest common denominator.

Self hatred and crab-in-a-bucket mentality are a straight path from this self devaluation. I suggest we treat ourselves and each other as unique and special, regardless of our hijacked 'scrum' processes that tries to turn us into cogs. Not only do you avoid the risk of devaluation, you start to tap into the potential in people that has been beaten out of them by 22 years of indoctrination. This will only fully be untapped when developers realize we are special, and we deserve things like flexible hours, unlimited remote work time, planned vacations, and fair royalties.

<comment><USER60> >. This will only fully be untapped when developers realize we are special, and we deserve things like flexible hours, unlimited remote work time, planned vacations, and fair royalties.

Ok, but why do programmers exclusively (being "special") deserve these things, but not employees in other fields, or employees in general?

<comment><USER61> I think whataretensors's point is that we should be assertive to our own needs regardless of how employees in other fields are typically treated. IOW, it's not that they must be below us or us above them, but that we should not settle for less than what we can and allow our de-facto standard conditions to worsen on the rationalization that those are the conditions other employees in other fields work in. If other fields demand better conditions and get them, good for them.

<comment><USER47> But then that isn't "programmers should be assertive", it's "workers should be assertive".

I don't even think knowledge/creative work is that special, really, or that there is even non-creative work. (You should read about carpentry in either Heidegger or Graham Harman's book about Heidegger).

</comment></comment></comment></comment><comment><USER62> Programmers are just self-important.

<comment><USER63> and that's a helpful description in what way?

<comment><USER62> Helpful? It's just true.

</comment></comment></comment><comment><USER64> It is a tradeoff in my experience. Being interrupted by small requests does jank me out of my flow but on the other hand immediately responding to a problem can save them hours of being stalled by some issue. It's simply necessary as a senior developer.

For the same reason I immediately often stop whatever I am doing when I get a code review request as it allows others to get a specific issue done faster and iterate on it instead of having to look for a different task in the meantime and come back later to the issue under review.

On the other hand the tradeoff is not worth it if the issue is not an immediate blocker.</comment>


Ask HN: how do I find unpaid intern? - <AUTHOR>

Not that I am looking for a cheap labor, but the task itself is social media marketing to FB groups, forums, twitter, and blogs. so it is not extensive work, probably 10 hours a week.
if the campaign works well, it can be extended / continued to a paid role. if not, this is a short term position that should last a month.
Am I too unrealistic for this?
Thanks. <comment><USER2> I would drop the part about "if it works well it can become a paid role." This line is usually insincere.

If it's not extensive work, just pay for it. Treat your employees with respect. Unless you really are looking for cheap labor.

A month long internship with an unknown company/project is not going to be very appealing. If your project is famous and is going to look great on a resume, and you have amazing people and the intern is going to learn a lot from them, that's a different matter, but with what I see in your post, I don't think so.

</comment><comment><USER3> You should not expect to find free labor unless you are offering a substantial opportunity of education or useful skills, which it sounds like you are not.

Either you are looking for unskilled labor, in which case you should expect to pay the going/nominal rate for unskilled laborers with computer/internet skills, or you are looking for skilled workers with above-nominal technical skills, and you should expect to pay commensurate to their skills.

It sounds like you are looking for astroturfers, honestly I would not expect your campaign to end in success.

</comment><comment><USER4> fyi, unpaid interns can not by law produce work that would benefit your company's bottom line.

[0]Federal labor law clearly states that the employer is to receive no benefit from an unpaid intern's labor and, in fact, the intern might actually be an undue burden on the employer.

you should probably look into it and word your job description wisely before looking for one.

[http://internjustice.com/2013/08/06/californias-unpaid- inter...](http://internjustice.com/2013/08/06/californias-unpaid-internship- rules-and-laws/)

<comment><USER3> OP is apparently from Brazil, based on his posting history. Your Laws May Vary (YLMV)

</comment></comment><comment><AUTHOR> ok, i understand your points. Thanks for the feedback.

what would be a reasonable rate to pay then?

Thanks.

</comment><comment><USER5> Why would someone want to work for you, unpaid? Is the paid job worth a 40 hour job interview distributed over 1 month? Or is it the reference they should be after?

The first step is to pitch/sell the position.</comment>


Massive data failure leads to loss of Sidekick users' personal data - <AUTHOR> http://topnews.us/content/27651-massive-data-failure-leads-loss-sidekick-users-personal-data

<comment><USER2> <http://news.ycombinator.com/item?id=873862>

<http://news.ycombinator.com/item?id=873882>

<http://news.ycombinator.com/item?id=873925>

<http://news.ycombinator.com/item?id=874362>

<http://searchyc.com/sidekick?sort=by_date>

</comment><comment><USER3> From yesterday:

Microsoft/Danger lose Sidekick user data in server failure

<http://news.ycombinator.com/item?id=873882>

54 points by bensummers 1 day ago | 63 comments</comment>


Redefining the Operating System - <AUTHOR> http://whydoeseverythingsuck.com/2008/09/redefining-operating-system.html <comment><USER2> There already is a term for what the browser is becoming:

<http://en.wikipedia.org/wiki/Operating_environment>

Why are people arguing? Instead of applications running on X or in bash, they run in the browser. No need for arguments, or redefining anything.

p.s. I actually came up with this term, and then googled it, and found out that it already existed :D

</comment><comment><USER3> "Standing on the shoulders of giants" is the phrase that comes to mind when people say that browsers are the new operating systems.

</comment><comment><USER4> I helped my neighbor by replacing IE and its default home page of MSDN with Firefox and google and adblock plus and bugmenot.

The next day he was super happy and his exact words were "Wow, it's like a whole new operating system!".

I was glad to help, found it a bit funny how a non techie gets the terminology all mixed up, but I didn't think anything of it.

Until today, now I'm thinking that a whole lot of people really do see the browser as the OS.

<comment><USER5> When the day comes when it doesn't matter if the user gets the OS, the disk, the browser, and the computer confused, then designers and programmers will have done their job correctly. (And it never happens because they never see these distinctions and don't have to care.)

Right now, the only computer that approaches this is the iPhone.

</comment></comment><comment><USER6> Too bad this language argument is covering a more interesting point made by one of the two critical articles linked ( [http://www.drama20show.com/2008/09/02/chrome-hype-when- non-t...](http://www.drama20show.com/2008/09/02/chrome-hype-when-non-techies- blog-about-technology/) ):

 _Lots of incremental revenue to Google?

Like Google Docs, which Arrington last year wrote was "tearing the Office wall down"?

Or Google Checkout, which Arrington called "Google's roundhouse punch to PayPal"?_

The fact that Google gets 97% of their revenue from advertisement really puts the impact of all their releases back into perspective. Their browser is a welcome improvement on the browser market, but this might not be such a game- changing event.

And to put my comment into perspective now, I'm not better qualified than all these people blogging about Chrome and Google web applications in general; just noticing that desktop (compiled) software still sells. I would be very interested to see a global comparison between the revenues brought by the sale of software as (web) services and the sale of desktop software. I have a feeling Microsoft Office alone might bring more money than all web companies, though I would be glad to be proved wrong by actual facts :)

</comment><comment><USER7> I'm not entirely convinced by this: the fact that the OS is still there and operating means that there's still a layer of abstraction. That's important not because it gets in the way, but because it helps out.

For instance, on OS X, the Command-Control-D shortcut to auto-define any word you're overing over. Or the universal spell-check. Things that make things easier for developers and users alike.

I think a part of it is the operating system in question. Some really do stay out of your way, and it makes the browser in question something of importance. Others are much more pervasive.

I said on another thread that I couldn't imagine using a desktop mail app until I got my Mac, because it wasn't until Mail that I had something that really felt like a part of the system. And from what I know of fellow Mac- using students, they all feel the same way. I know a lot of Windows students who use Meebo as their default chat. Linux users almost all use Pidgin or Kopete. Mac users almost always stick with iChat. On Windows, where Meebo is more accessible than downloading something new, the web will be used more often. With more well-rounded platforms, though, the web isn't seen as being quite so pervasive.

<comment><USER8> Technically, your example has nothing to do with the operating system itself, and is just the desktop environment. I know, I'm being pedantic, but I have a real point to make.

All nontrivial systems programs converge on an operating system. By which I mean the kernel, not the desktop environment. Google's Chrome is, I think, the closest a browser has gotten to being an OS kernel. This is an interesting development because if browsers have to replicate much of the same behavior as an OS kernel, then functionality can move from the actual OS kernel up into the browser. OS kernels may then become leaner as more applications are run inside the browser instead of natively on the OS kernel.

Which is close to a micro-kernel architecture, except in a form I don't think anyone anticipated 10 years ago.

Where the desktop environment lies may change, too. Will browsers start co- opting that as well, or is it still best to run that directly on top of the OS kernel? I think so, but I'm going on intuition, not experiment or practice.

<comment><USER9> In what way is Google's chrome close to being an OS kernel? Is it handling device drivers, or scheduling, or address space management, or file system I/O?

<comment><USER8> Scheduling. It looks like the Chrome process is really a kernel of sorts for the tabs.

<comment><USER10> _NO_ , it is not a scheduler, it is not a kernel.

That is exactly what Chrome is _not_. It's not a monolithic process, with a large pool of green threads being scheduled to run on native threads using runtime trickery.

Instead it's just a bunch of shared-nothing exec-ed processes that are scheduled by the OS kernel, have their mallocs handled directly by the OS libc, and have their address space mapped and reclaimed by the OS kernel's VMM.

<comment><USER8> In my own work, when I fork threads that are run and executed by the kernel, I still make decisions outside the kernel about how those threads run. I may tell threads to go to sleep, wait for another thread to finish something, or prefer a certain thread to run over others.

Yes, they are still scheduled by the OS kernel, but they are also being controlled by my own scheduling algorithms. I call this scheduling, because it's the same problem as OS level scheduling. And if I have to do it, I imagine Chrome has to do it. In this scenario, if you want to understand the runtime behavior of the threads, you must consider both OS kernel level decisions and my scheduling decisions.

I would also be surprised if there was no Chrome memory management inbetween malloc and the OS kernel.

<comment><USER8> Addendum, directly from the design docs, [http://dev.chromium.org/developers/design- documents/process-...](http://dev.chromium.org/developers/design- documents/process-models):

"Web content has evolved to contain significant amounts of active code that run within the browser, making many web sites more like applications than documents. This evolution has changed the role of the browser into an operating system rather than a simple document renderer. Unlike current browsers, _Chromium is built like an operating system_ to run these applications in a safe and robust way, using multiple OS processes to isolate web sites from each other and from the browser itself."

Emphasis mine.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Hank Williams gets it right. The article at drama20show (which thamer links) looks on the surface like the kind of pedantry that tries to show how smart you are by showing how dumb everyone else is. By this narrow definition that limits the OS to just the kernel, neither Windows nor Linux are OSes. They each _include_ an OS, but they also include one or more desktops and standard applications. Actually, the fact that there exists a distinct word for the kernel - that would be "kernel" - is probably evidence that there's a basic problem with the narrow definition.

BUT ...

This is all just another pointless semantics argument. It fails to see what's really going down here: Google wants folks to write their applications for Chrome. Not for Windows. Not for Linux. Not for Solaris. For Chrome. That's the point. And that's interesting: they want the platform for writing applications to be their browser.

Whether this means you can now call Chrome the operation system is beside the point.

</comment><comment><USER12> I believe when people call the Browser the new Operating System, and the web a Platform, it's all about perception.

"Operating System" means something totally different to a lay person than it does to a Computer Scientist. Business will normally follow the lay person's perception if it helps marketing campaigns.

Here's what I believe, since business drives I.T., eventually the scientists may have to change their definition of the Operating System to agree with the perception of the public. Alternatively, the phase may be given different meanings with one being it's technical definition. Polymorphism :)

It should be acceptable to have the phrase bare both meanings, this is how language evolves, and develops.

</comment><comment><USER13> OS are going to evolve. Some will see it as a regression...

Me I'm an old school, I like my apps running under my palms and not on a buzz word (The Cloud...) Having say that distributing and sharing are great features (of The Cloud).

I suggest a compromise. A virtual OS, like the blackberry! An OS that its entire API will be run on a virtual machine. It's like killing the middle man. Instead of writing a kernel and VM that will talk to its API, write a VM that directly talks to the hardware.

By doing so we can achieve a stable, secured OS which enable fast app development.

There are some open source projects out there that are trying to prove the concept...

</comment><comment><USER14> Perhaps the YouOS folks were a couple years too early?</comment>


Edward Snowden surveillance powers ruled unlawful - <AUTHOR> https://www.bbc.co.uk/news/uk-45510662 <comment><USER2> "Edward Snowden surveillance powers ruled unlawful" ?

Shouldn't the title be instead "UK surveillance powers ruled unlawful" ?

<comment><USER3> Not only the title -- the article is horribly muddled. Just look at these two lines:

 _The court ruled agencies had violated rights as there were no proper safeguards._

 _The court crucially said bulk interception was legitimate..._

Apparent contradiction. Further down the page I saw what the reporter was trying to say... maybe. I think it's more likely that he muddled everything and we should wait for better clearer reporting (or read the original court decisions).

<comment><USER4> Yeah, it turns out editors are actually pretty important to publishing. QA is important.

</comment></comment></comment><comment><USER5> Could you not have a better title, jesus christ

<comment><USER6> I am not sure substituting Jesus Christ for Edward Snowden would achieve your intended result.

</s>

</comment></comment><comment><USER7> Duplicate of [https://news.ycombinator.com/item?id=17977799](https://news.ycombinator.com/item?id=17977799)

</comment><comment><USER8> > The judgement said: "While there is no evidence to suggest that the > intelligence services are abusing their powers - on the contrary, the [then > British watchdog] observed that the selection procedure was carefully and > conscientiously undertaken by analysts, the court is not persuaded that the > safeguards governing selection of bearers [internet cables] for interception > and the selection of intercepted material for examination are sufficiently > robust to provide adequate guarantees against abuse.

It's unclear what - and why - are criteria for sufficiency and adequacy.

<comment><USER9> If UK court decisions are anything like the ones from the US Supreme Court, it's a fairly safe bet that the actual judgment is a lengthy document that explains those criteria. I wouldn't judge the thoroughness of the decision itself from a few out-of-context snippets.

<comment><USER4> Journalists are also notorious for overstating and misinterpreting court rulings, to the extent that when actual monumental decisions are made it's often difficult to tell as journalists treat them the same as the extremely narrow and largely circumstantial rulings.

It's almost always worth it to find the published opinion and to read that. The language is not that bad.

</comment></comment></comment><comment><USER10> I think you a comma. And this post's title is just awful.</comment>


Now it's illegal to write down prices in a Tesco supermarket - <AUTHOR> http://www.guardian.co.uk/money/blog/2011/sep/16/tesco-shopping-supermarket-prices-check-writing <comment><USER2> Being a private establishment, they have a right to kick you out for whatever reason. That said, some supermarkets do publish their prices online and openness should be encouraged.</comment>


Skunk Works Reveals Compact Fusion Reactor Details (2014) - <AUTHOR> http://aviationweek.com/technology/skunk-works-reveals-compact-fusion-reactor-details <comment><USER2> I haven't come across any meaningful news on this project since the article linked here. I search every month or so. I do that with several projects that had a moment of hype.

I've thought about setting up a small site for it. Tracking promising sci/tech stories with unknown likelihood to ever actually come about. It's the kind of thing I have a natural interest in, as I think it's where the cool things happen.

Is there such a site? Dedicated to tracking the status of these kinds of things on an ongoing basis?

<comment><USER3> That's the thing with these type of hyped things. General Fusion is another company that was going to do something 5-7 years ago and has received much funding from energy companies and has yet to put out anything substantial.

[http://www.burnabynow.com/news/27-million-for-general- fusion...](http://www.burnabynow.com/news/27-million-for-general- fusion-1.1949072)

<comment><USER4> Perhaps the funding has produced exactly what was asked for.

<comment><USER3> I am not a conspiracy nut, I don't think they actually have anything yet. There was a 90s Keanu Reeves movie called Chain Reaction that had that exact plot but I don't think this is the case here. The opportunity is too big to just sit back because if it can be cracked, someone will crack it soon.

<comment><USER5> There does exist such a thing as the Invention Secrecy Act to suppress patents that the government wants to keep secret.

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

Quite a few patents every year, and certainly a small fusion generator would be of interest to the government.

<comment><USER3> As I said, if someone can crack it they will. If the US wants to sit on the technology they can do so at a great cost to themselves and the world. We need cheap, safe energy for the world. It has the ability to literally save the world.

</comment></comment></comment></comment></comment></comment><comment><USER6> When it was invented the Tokamak was talked about in similar ways - and a half-dozen more schemes after it. Only the Tokamak is still here, with the finicky details still being worked out and bigger machines necessary to bring it together.

The reason ITER is huge is because it's a lot easier to confine a big plasma then it is to confine a small one - all your path lengths mean your field strengths keep fast moving ions inside the vacuum chamber. Building compact reactors invites a whole new world of confinement problems and there's some hard limits on how much magnet you can get from materials science at the moment.

I want them to succeed but the odds are against them that they don't run into the usual crunch of balancing problems which most "otherwise stable" confinement schemes do.

</comment><comment><USER7> But probably won't.

[http://lee-phillips.org/lockheedFusionAgain/](http://lee- phillips.org/lockheedFusionAgain/)

<comment><USER8> Jury is out. I wouldn't bet against research 75 years in the making. Anyway, Phillips isn't.

<comment><USER9> I think Lee Phillips is probably a good judge of Lee Philips' current opinions. But maybe that's just me.

</comment></comment></comment><comment><USER10> > The team acknowledges that the project is in its earliest stages, and many > key challenges remain before a viable prototype can be built.

There you go. Fusion be a harsh mistress.

I would put my money on Thorium reactors, to be honest.

</comment><comment><USER11> As far as I can tell, this is just a magnetic mirror with neutral beam injection.

The problem with mirror devices has and always will be plasma squirting out of the sides. Sure, at any given moment, that may represent a small fraction of the plasma (only particles that have a certain velocity will exit). But collisions eventually change particles' velocity, eventually dooming them to the path outward.

It looks like they're relying upon the neutral beams to replenish particles that leave. That takes energy, and is one of the primary heating mechanisms in tokamaks. Whether they can break even with such a scheme is entirely unknown since they're not providing details.

More power to them, but I remain skeptical until they _actually_ release details (this hardly counts). If it's secret, it's not science.

<comment><USER12> He talks about recirculation, maybe they figured out a way to plug the ends? Ie if the plasma is positive charge, then would placing negative chargs at the sides seal it? I don't know if this was ever tried.

<comment><USER11> Plasma is almost always quasi-neutral. It's very hard to separate positive and negative charges, especially along the field line. Electrons move very quickly to cancel out any excess charge.

</comment></comment></comment><comment><USER13> While it's probably true that increasing the iteration time on design will get you to a stable tokamak design faster, comparing the time it took to get to ITER is not really a fair comparison.

With large scale mechanical engineering projects, scaling the size down will create a world of new problems that ITER never ran into. They will need to solve these all in house, whereas the tokamak design for ITER had the best researchers all over the world working on it.

I'm actually more surprised that skunk works makes youtube videos now. I can almost feel the engineers cringing when PR came to them with this idea...

</comment><comment><USER9> Lockheed Martin has at least managed to gum up the Google search for "Fusion in 10 years".

<comment><USER12> Putting my aluminum foil hat on, and tying into your 'information obscuration' idea, I speculate the Lockheed announcement may have been diversion for some other activity they have previously or currently working on in secret.

</comment></comment><comment><USER14> This is a lot of talk and hype for something that hasn't been built yet.

</comment><comment><USER15> No new news since October 2014? Lockheed's own site hasn't changed. That's not good. They were going to have a new prototype each year.

<comment><USER16> The first public announcement was in October 2014.

They estimated they could build a test reactor within one year (by October 2015) and the prototype within 5 years.

[http://www.lockheedmartin.com/us/products/compact- fusion.htm...](http://www.lockheedmartin.com/us/products/compact-fusion.html)

</comment></comment><comment><USER17> Spheromaks, specifically the Dynomak, look much more promising than this.

</comment><comment><USER18> Url changed from [http://sploid.gizmodo.com/lockheed-martins-new-fusion- reacto...](http://sploid.gizmodo.com/lockheed-martins-new-fusion-reactor- might-change-humani-1646578094), which points to this.</comment>


Belarusian Officials Shut Down Internet with Technology Made by U.S. Firm - <AUTHOR> https://www.bloomberg.com/news/articles/2020-08-28/belarusian-officials-shut-down-internet-with-technology-made-by-u-s-firm <comment><USER2> This is the company since the title isn't calling them out [https://en.wikipedia.org/wiki/Sandvine](https://en.wikipedia.org/wiki/Sandvine)

They also we're used by Comcast to mess with anyone using Peer2Peer networking. I wonder if all the companies like Palentir, ClearView, and these guys all get together on weekends and decide how to strip away any ethics from computing as a discipline

<comment><USER3> They don't get together on weekends, they chat on hacker news. we call it "adding value to the world"

</comment></comment><comment><USER4> Last week, I said there's a 100% chance there's a US (or western) company behind the recent internet outage in Belarus and was downvoted to oblivion.

I also stated that there's a very high chance of this happening in the United States in 70 days and was again downvoted.

Maybe 3rd time's the charm?

<comment><USER5> Why would this occur in the us? The cia already had control over the media.

<comment><USER4> There's a lot of people who are most likely going to prison if they lose come November. I'd definitely try it if I was in their position.

<comment><USER6> Nobody is going to jail come on. Maybe a fall guy here or there but since when have wealthy people gone to jail in the us? Maybe early 90s after savings and loan crisis and even then not that many

<comment><USER4> Remains to be seen. I don't think any single person has made so many people in the US this angry in the last 100 years or so (with the exception of Hitler or Bin Laden).

</comment></comment></comment></comment></comment><comment><USER7> Weird seeing Sandvine declared a "U.S. Firm", as a Waterloo resident

</comment><comment><USER8> I bet they also use Linux.

<comment><USER2> Apparently it's FreeBSD; the evilest of operating systems</comment></comment>


NeverBlock - library for non-blocking IO calls in ruby - <AUTHOR> http://www.espace.com.eg/neverblock <comment><USER2> I echo again my misgivings about systems that try to make pure async code look like threaded code. You can string together very, very fast code from async callbacks, and you can write simple code with threads. Try to do both at the same time, though, and you end up with the same problem as RPC: the complexity you tried to hide eventually bites you in the ass, and you're in worst-of- both-worlds country.

That said, I'm liking the async renaissance in Ruby, and I really love EventMachine. I wrote a trivial async MySQL client library in it:

<http://github.com/tqbf/asymy/tree/master>

<comment><USER3> I wonder how and when is it going to bite? I can see some issues with error reporting and a convoluted stack trace. But other than that I really see no big deals.</comment></comment>


New biosensor visualizes stress in living plant cells in real time - <AUTHOR> https://phys.org/news/2020-06-biosensor-visualizes-stress-cells-real.html <comment><USER2> 0 detail about the sensor, or did I miss it?</comment>


EXT4 Data Corruption Bug Hits Stable Linux Kernels - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=MTIxNDQ

<comment><USER2> It's worth reading to see how this bug is being resolved... and then contrast with how another recent bug was handled. The difference is stark. Maybe it's a culture or generational thing, I really don't know.

[https://plus.google.com/111465598045192916635/posts/Ckmmbjmv...](https://plus.google.com/111465598045192916635/posts/CkmmbjmvebM)

"yeah it's kinda tough when you have 250+ OSS projects, inevitably some get messed up over time and I merge broken shit haha"</comment>


The Angry Rich - <AUTHOR> http://www.nytimes.com/2010/09/20/opinion/20krugman.html?src=me&ref=general

<comment><USER2> I don't think it's any mystery why the rich are angry. Whether it's right or wrong, they see it this way:

"I've spent my entire life working to build wealth. I've sacrificed and it's paid off. Now I'd like to use my wealth in the way I see fit. Whether that's spending it, saving it, investing it or giving it away, it should be my decision, not a government planner's decision."

Again, right or wrong, that is how the rich view the situation when they are facing increased taxes and dilution of their wealth through inflation. Whether you agree with it or not, it's not hard to understand.

Krugman believes that the government can, and will, spend money in a way that benefits society as a whole more than the people who earned it would if they were allowed to keep it. The rich disagree.

<comment><USER3> I think you're mostly right but not quite all the way there.

These people are basically being told that they've hit their limit. Society has hit it's limit. They have been reaching for the American dream, and by everyone else's standards they've achieved it. But they think, as society's golden children, that they shouldn't have to make any sacrifices on their journey (while asking everyone else to sacrifice to bail them out).

That's really what it is. They're being told they can't have everything, and they are apoplectic about it, and are taking it out on the bearer of that message. It's kind of a sad temper tantrum. Unfortunately it may drag America back into the mire from which Culture Warriors like Sarah Palin and Bill O'Reilly plan their verbal asymmetric warfare.

The really galling part about all of this nonsense (at least when it comes to bankers) is the notion that they weren't complicit in creating the situation that we're in, that requires everyone to cut back. This isn't something that's being done to them. This is a direct result of the consequences that our society chose to do, two wars, massive tax cuts to the wealthy, all deficit spending. This has a good explanation: [http://delong.typepad.com/sdj/2010/09/in-which-mr-deling- res...](http://delong.typepad.com/sdj/2010/09/in-which-mr-deling-responds-to- someone-who-might-be-professor-todd-henderson.html)

<comment><USER4> You are aware that the main audiences for Palin and O'Reilly aren't exactly ivy league silver spooners, right? And that their audiences in general opposed the bailouts? You are lumping together everyone that doesn't agree with you and attributing to them positions that they do not hold.

</comment></comment></comment><comment><USER5> The Economist (a magazine that is very pro-business) had an interesting article recently about social psychology experiments that showed that the rich are less able to enjoy the day to day pleasures of life. And this effect also happens among people temporarily made relatively rich (say given $100) or even just shown pictures of money.

The need of our economic system to keep people consuming creates advertising indoctrination that pulls our attention away from what really satisfies: Day to day relationships with other people and the details of our life. Excess wealth is more a matter of aggressively possessing things that other people don't have than enjoying those things for themselves. It leads to an empty narcissism that leaves the rich unsatisfied and without empathy for the victims of their greed. And frustrated and angry and in search of scapegoats.

<comment><USER6> Oh, so it is ok to take away what someone else's earnings because you know better than they do?

<comment><USER7> In a complex society with specialized occupations like "entrepreneur", "economist" and "congress-critter"? Yes. BTW, how's DARPAnet working for you these days?

<comment><USER6> I'm happy to pay (reasonable) taxes for needs that cannot be easily serviced by private industry. That isn't what my post was about.

The post I was replying to was trying to insinuate that having "excess wealth" leads to being unhappy and therefore (in the context of the OP) it is ok to tax the rich more because it will make them happier in the end. And that is a bullshit reason for taxing someone.

</comment></comment></comment></comment><comment><USER4> Krugman is such a hack. He never acknowledges the good arguments of the other side. Always makes it seem like the other side is full of drooling selfish evil idiots. Can't stand reading the man's columns.

<comment><USER8> Then you should perhaps point out the good arguments of the other side.

<comment><USER4> While this is a general problem with Krugman, and not a problem specific to this column, people who disagree with higher rates of taxes on the rich would do so for the following reasons:

1) Efficiency concerns: decentralized allocation of capital versus political allocation of capital

2) Business cycle concerns: raising taxes in a recession was one of the things done during the Great Depression, and there's a reason it lasted 12 years.

3) Fairness concerns: The rich already give about half their income to government (depending on the state and the method by which they earn their income). How much is too much?

4) Revenue concerns: the income of the rich is highly volatile, and so is the revenue of a country that depends on heavily progressive taxation.

5) Long term economic growth concerns: Capital is more mobile than ever, and people will prefer to invest in countries with lower taxes, ceteris paribus.

6) The Laffer Curve: it has an inflection point.

I'm not saying the anti-taxers are right, but any honest commentator should acknowledge that some arguments exist on the other side. But in Krugman's world, people only disagree with him because of personality flaws (angry, selfish, myopic, stupid, etc.). I can't stand the man's smug self- righteousness which he keeps regardless of how mainstream or controversial his opinion on the topic at hand. The man sold his soul to democratic socialism a long time ago to the point he pretends that no other valid worldview exists.

I can't think of a single economics columnist who is more partisan or who treats his opponents with less regard.

In particular, this article scans like a college newspaper op-ed. It is a simple Rah Rah piece for his side. It could have been written by a campus Marxist group. "Look at the poor rich folks, struggling to pay for their private schools and limosines". Gosh Mr. Krugman, with such incisive commentary I can see why you got that Nobel.

And of course he forgets to mention that most rich people vote Democrat, so his entire argument that the rich are "angry" is questionable to start with.

<comment><USER9> Too many different logical fallacies and false premises here to even start, so we will just jump straight to the end:

> most rich people vote Democrat, so his entire argument [...] is questionable > to start with.

Not even close to correct. Gender, age and state of residence are good proxies for voting patterns, but none is better than wealth/income. The rich, as a class, support republican candidates. The basic rule is that rich states vote Democrat, rich people vote Republican.

<comment><USER4> >Too many different logical fallacies and false premises here to even start

Keep in mind that I am merely stating that an argument exists, an not making it per se. I am questioning Krugman's rhetorical strategy of assuming that no reasonable disagreement exists.

The only data I can find puts people making over $125,000 as 46% Democrat and 51% Republican in 2004[1]. Of course, this was before the banner Democratic years of 2006 and 2008 when Barack Obama beat McCain in campaign contributions 3 to 1 among employees of large Wall Street banks.

So you're right, it more even than I thought. Rich people probably went Democrat in 2008 and may swing Republican again in what is shaping up to be a huge year for team GOP.

[1]Ugly google link:[http://www.google.com/url?sa=t&source=web&cd=2&s...](http://www.google.com/url?sa=t&source=web&cd=2&sqi=2&ved=0CBsQFjAB&url=http%3A%2F%2Fwww.nd.edu%2F~cwolbrec%2FPartyID.pdf&ei=IeyXTJnHKdDuOaiUvOwM&usg=AFQjCNEzmQ3F8E5-KLgn8hfPpM66lfqJIw&sig2=ssFkh3gYdEKGdKvxzZjUoA)

[2]-[http://www.opensecrets.org/pres08/contrib.php?cycle=2008&...](http://www.opensecrets.org/pres08/contrib.php?cycle=2008&cid=n00009638)

-[http://www.opensecrets.org/pres08/contrib.php?cycle=2008&...](http://www.opensecrets.org/pres08/contrib.php?cycle=2008&cid=n00006424)

<comment><USER9> $125K/year may be "rich" in Kansas, but is lower middle class in California. Try breaking the data out on a state-by-state level and the pattern becomes blindingly obvious: those at the top of the per-state income scale vote Republican, regardless of which state they are in. (And the reason Dems picked up all those Wall St. contributions was because Wall St. is not stupid and knew which way the wind was blowing; bankers knew it was better to try to buy a bit of leniency than annoy the people who would be writing the new financial regulations)

The authors of the book Red State, Blue State have all the data you need to answer this question, and they helpfully blog various tidbits and state breakdowns on various issues like this.

<comment><USER10> It is so not lower middle class in California.

While the couple earning that in the Bay Area may be doing it hard, the difference between that and the lifestyle of the poor is immense.

There is a fairly thick layer (my bet is at least 35% of the population) of middle class people between your Californians on $125k and hopelessly hardscrabble folk on the breadline.

Edit: it looks like it might be a little higher percentage, actually, if we extrapolate from old data from the 2000 census <http://ccsre.stanford.edu/reports/report_13.pdf>

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Krugman makes me so angry, not as someone who is rich, but as someone who understands the difference between earned and entitled:

"... consisting of people who feel that things to which they are entitled are being taken away."

If I am rich in America, chances are that either I, or my family before me, earned the money in the most effective free market known. I'm not saying it's perfect, but it's the best we've got. The assertion that I should be able to keep what I have earned is _not_ entitlement. Entitlement is the assertion that I have a right to something, without regard for effort or trade.

I _am_ entitled to keep what I have _earned_. Taking my earnings is a moral wrong. There is no two ways about it. It is no more right to take a dollar from a man who has a hundred of them than it is to take a dollar from a man who has one.

<comment><USER12> _I am entitled to keep what I have earned. Taking my earnings is a moral wrong. There is no two ways about it. It is no more right to take a dollar from a man who has a hundred of them than it is to take a dollar from a man who has one._

Just to be clear, you are stating your moral _opinion_. There is nothing inherent about these opinions. Just like my _opinion_ that if you are rich you have likely benefited disproportionately from and made use of the structures of society that made it possible for you to get rich, and as such it's perfectly reasonable to ask you to contribute from your wealth to the upkeep of society is also just an opinion.

And speaking of moral wrongs, what about the moral obligation to help people those who are less fortunate?

<comment><USER13> I just want to point out that most of the taxes you pay in the US do not go to the upkeep of society you may benefit from (which we can define as schools, police, education, etc).

Most of your tax money either goes to propping up a bloated military- industrial complex, maintaining bases overseas, counterterrorism ops, foreign aid to oppressive regimes, etc etc.

If you're a pro-tax liberal you're probably against high defense spending, but you're perfectly happy to keep funding it with your tax dollars.

Just food for thought.

EDIT: If you want to quibble, the majority of _discretionary_ spending is military(not counting Social Security/Medicare). Since that's where your income tax dollars go, it's a reasonable argument to make.

<comment><USER12> It's true that if I had grown up in the US and not in Sweden, I might be more tax-averse than I ended up being... There is a difference between what you get _in practice_ for paying your taxes in the US and the _principle_ of taxation in general.

One of the things that amaze/frustrate me about the US taxes is that noone ever suggests that maybe the military budget could be cut by 50% or so...

<comment><USER14> Oh, people suggest it often enough, but they're successfully shouted down afterward (which is probably why you haven't really heard of them).

</comment></comment></comment></comment></comment><comment><USER15> For a while last year, and into this year, the Denver Post newspaper would put a little side-bar by Krugman columns, advising people that the "Cafe Hayek" web site could provide an anti-dote to Krugman's editorial.

They did this for no other editorials. After reading this column, I finally understand why.

<comment><USER16> And yet, I am confused. I read lots of right-wing op-eds and left-wing op-eds. Why would this particular more-left-than-right op-ed deserve to be treated differently?

</comment></comment><comment><USER17> Here in Spain rich people are not angry, the gov don't want to increase taxes because rich people will fly away, so they are who pay less, why should they be angry?

Pensioners should be the angry people, they will see their pension be lower each year (and nowadays it is extremely difficult to pay for food with an average pension) just to help government to reduce its deficit. They don't have lobbies and this year is not time for election so put more weight on the back of poor old people this is just the face of justice.</comment>


23-Year-Old Makes Over $100k in 24 Hours From Bin Laden's Death - <AUTHOR> http://www.businessinsider.com/maurice-harary-bin-laden-2011-5

<comment><USER2> I admire his entrepreneurial spirit.</comment>


WikiBinge: discover how all things are vaguely connected - <AUTHOR> http://www.wikibinge.com <comment><USER2> Love the idea. Indeed everything is connected and that's a nice tool to discover "how".

</comment><comment><USER3> Nice point of view. Everything is linked for real.

</comment><comment><USER4> Congrats Giacomo :)</comment>


StratifiedJS: Javascript + structured concurrency - <AUTHOR> http://onilabs.com/stratifiedjs

<comment><USER2> If you prefer vanilla JS and are only working with Node, you should check out <https://github.com/laverdet/node-fibers>. I use it in my <https://github.com/olegp/common-node> package to address the same issues as those tackled by StratifiedJS.

</comment><comment><USER3> I'm probably missing something, but isn't this race condition galore? As per the front page example:

        var news;
        waitfor {
          news = http.get("http://news.bbc.co.uk");
        }
        or {
          hold(1000);
          news = http.get("http://news.cnn.com");
        }
        or {
          hold(1000*60);
          throw "sorry, no news. timeout";
        }
        show(news);

This starts the first 'or' clause the moment the http.get(BBC) suspends, which it does quickly because http.get is async. Now, if the BBC get returns _just_ after my hold(1000) has completed but before http.get(CNN) had the time to really launch the http request and suspend, i'll have done the CNN get for nothing.

Of course in this case this only means a wasted request. But what in case of side effects?

<comment><USER4> Ignoring WebWorkers, the underlying Javascript engine is single-threaded, so the problem you describe can't exist. Once you start down a code path, it will continue until it finishes and yields execution.

Further, "hold" is almost certainly a magical statement that actually compiles into a pattern of calls to .setTimeout and various handlers, and has no literal existence, so there probably isn't any point at which the hold is "executed".

You can't actually turn a single-thread runtime into a threaded runtime at the user level. You can apply a series of increasingly sophisticated hacks that may make program like it's multithreaded, but you can't escape the fact you have only one program counter. (This isn't a criticism of the library. It looks quite useful. It just doesn't magically make browser Javascript truly multithreaded.)

This approach is actually quite useful, and is part of what makes the event- based programming style practical. For all the stuff that's going on, you do always have the guarantee that any given event handler will fully execute, and no other hunk of code will be able to observe the half-executed state of any given handler. Without that property you'd basically just be doing conventional multithreading with a really inconvenient code structure.

</comment></comment><comment><USER5> After the IcedCoffeeScript post the other day, I found Oni Labs' version -- which I don't remember seeing before -- Stratified CoffeeScript:

<https://github.com/onilabs/coffee-script>

</comment><comment><USER6> Eliminating nested callbacks would be one hell of a feat.

<comment><USER7> It's not too _too_ hard to do the appropriate transformations--the literature is vast and there are practical implementations today. The hard part is producing readable, debuggable output.

I've whipped up a tiny project with the priorities inverted: readable output at the expense of completeness: <https://github.com/lalcmellkmal/nestless>

It only does the minimum desugaring to prevent nesting in the common case, no more.</comment></comment>


Ask HN: report system, Excel or HTML? - <AUTHOR>

Hi Developers & Designers
I am a Rubist and now working on one report system, and decided to using excel(and template) to build the report, I chose the excel template because of two:
1. let the end user design the report by excel 2. let end user print the report in excel
but the problem is that it is hard to deal with the report with huge data, and now I want to choose raw HTML, the long report can be easy handled by adding pagination. And do you know any clean HTML report available on www?
Thanks! <comment><USER2> You need to do both. dump the report to a page in html with pagination and have an export to excel button. For file export do it as tab delimited with a .xls extension.

</comment><comment><USER3> What specifically is the problem? Are you likely to have more than 65K rows?

If not, Python's xlwt and xlrd modules handle support for native Excel in a very simple, OO, pythonic way, without any scary Windows or COM shit. I regularly generate and parse pretty big Excel files most days so I'd be happy to answer any questions.

</comment><comment><USER4> If you render the report as an HTML document and serve it with a mime-type of application/vnd.ms-excel the users system will prompt them open it in excel.

Excel will parse it with all of the nice formatting and everything!

<comment><AUTHOR> thanks, clscott. I will try it

</comment></comment><comment><USER5> For reports (people like to print them), I normally use

(a) pdf (b) HTML

In that order!

If anyone needs excel I give them comma delimited for import!

<comment><USER6> A nice hack: if you give them comma delimited, but name the file ".xls", Excel will silently import it. and they'll never know the difference.

<comment><USER7> Years ago I submitted a resume to an HR dept. It was plain text, with a .txt extension.

They said "we only accept Word files for resumes."

So I changed the .txt extension to .doc and resubmitted it.

I got the job.

</comment></comment></comment><comment><USER8> Like choosing which bullet to get shot by.</comment>


Universities Race to Nurture Start-up Founders of the Future - <AUTHOR> http://www.nytimes.com/2015/12/29/technology/universities-race-to-nurture-start-up-founders-of-the-future.html?_r=0 <comment><USER2> The current academic environment is not conducive to a startup founder.

I started one a few years ago and it not only takes huge risks, but the ability to stand up to people all over the place that will try to bring you down and only hinder your success.

'safe places', which have become more prevalent at universities, is the exact opposite of this.</comment>


Facebook takes on Twitch with a new video gaming portal - <AUTHOR> https://www.neowin.net/news/facebook-takes-on-twitch-with-a-new-video-gaming-portal <comment><USER2> Apart from mostly copying competitors (especially startups), I don't think Facebook has introduced useful, original idea products for a long time now.</comment>


Skype Blog: Skype for Windows 8 - <AUTHOR> http://blogs.skype.com/en/2012/10/skype_for_windows8.html

<comment><USER2> "Always On" frightens me. Receiving a Skype call these days involves answering it on my laptop, then finding and silencing all my iPads and other mobile devices that continue to ring at me obnoxiously. "Hang on a second while I... [hop hop hop on one foot while headphoned to the laptop and slowly dragging it off the table while trying to grab that backpack in the corner witn my toes]... Got it. Anyway, what were you saying?"

The iOS version of Skype has no "quit" option at all. If you ever open it for any reason, it'll dingle at you incessantly from there on out until you hard reboot the device. It's my current top annoyance with Skype.

So when they start announcing that annoyance as the big feature of their new version, it doesn't exactly get me excited to try it.

<comment><USER3> Yeah, my friends love the constant ONLINE! OFFLINE! ONLINE! OFFLINE! When I go in and out of wifi range on my iPhone. Have had to set it to appear offline...

</comment></comment><comment><USER4> Now we see Microsoft's marketing department, always these smiling, good looking, ethnic diverse, people with too perfect illumination and image coloring. There is one guy at Microsoft who thinks this is the only way of making pictures.

It always looks so artificial and impersonal. Also kinda boring. Nokia is worse, it's similar but only people in their twenties and "hip".

</comment><comment><USER5> I have Windows 8 (desktop). I cannot express enough how much I DON'T want that version of Skype.

If Skype force me to use their "app" version then I will literally stop using Skype entirely.

I also don't want to be "always on." In fact things like Google's Circles where I can select with greater granularity who I am "on" for is my number one request for Skype. At the moment I am forced to have two Skype accounts, one for home, and one for work for that reason.

<comment><USER6> Do you like Windows 8 so far? Why did you switch? I tried the Release Candidate for like 10 minutes, but hated it so much I deleted the VM it was running in immediately afterwards.

<comment><USER5> I switched to Windows 8 because I wanted to familiarise myself with it for its eventual launch. It is my opinion that you cannot have a valid opinion on something (good or bad) unless you've given it a fair shot. I am running the RTM (retail) version released on MSDN/Technet+/Volume Licences/et al.

I've ran it for about a month and while Windows Explorer is a big step forwards, everything related to the "Modern" UI (Metro) is a big step backwards. The apps are poor, the finish is poor, and the intuition is non- existent.

The whole thing feels like an unfinished product. It is like they released it mid-production and thus ideas are only half baked. For just one example, the old-fashioned Control Panel is still used to configure 75%+ of the system but yet getting to it is now buried.

Originally I was going to recommend you get W8 if you had a touch device, but given how badly Modern UI is currently performing I am instead recommending getting either an iPad or an Android Tablet. Both of which will give a better user experience.

The biggest issue I would say is not the design/concepts but instead just how poorly they have been carried out, how rushed, and how messy.

Imagine for a second that Apple's development philosophy was 70% features and then 30% polish. Now imagine that Microsoft's previous development philosophy was 85% features and then 15% polish. Well on this same scale Windows 8 would be 99% features 1% polish (with a rounding error of 1%).

</comment></comment></comment><comment><USER7> Look at the 2 fake comment at the blog page :)

<comment><USER4> "I love metro version of Skype!"

I doubt that, "metro" is used. This is so funny, it was actually a good brand for the new interface. Now they try it with Windows 8....

</comment></comment><comment><USER6> This is even worse than the Mac version of Skype (though many users complained about the inability to fully customize the contactlist column-size, e.g. for seeing the full name of the contacts instead of the meaningless status-column, nothing happened).

</comment><comment><USER8> Why are all of the images 1,680px × 1,050px then scaled down in the image tag?

Also, every version of Skype I use gets progressively worse. Facebook integration! Status updates from your friends! We moved feature A to menu B. Just make my calls not fucking suck.

<comment><USER9> They are 1,366x768 resized to 600x350 for me, which I guess could ha started as a retina thing.

<comment><USER10> It would indeed be hilarious if Microsoft mangled web-standards to comply with Apple's broken non-standard additions.

The circle of incompetence would be complete.

<comment><USER9> This is not a Windows blog, it's a Skype one. I find it entirely plausible that someone on their web team has been sold on resizing to 50% in the browser, which is one suggested way to engage Apple's spare pixels.

edit: Also, even if it were a Microsoft blog, I still wouldn't consider it an impossibility. There are devices running Windows Phone with Retina-comparable pixel densities, so Microsoft must have considered taking advantage of the super-resolution capabilities in a compatible manner. I don't know if they have done so, but it would be silly if they didn't use any of that spare hardware capability.

</comment></comment></comment></comment><comment><USER11> Sick of seeing video conferencing using SUPER HD IMAGES to show the broadcasting. I doubt it even looks that good in lab conditions.</comment>


Ask HN: Personal knowledge management/note-taking: How do you do it? - <AUTHOR> The idea of having a note-taking system that can support one in any context and for any duration of time, almost as a second brain seems quite popular.
FOr instance, the Zettelkasten methodology is quite frequently cited. However, most note-taking systems I saw so far are either too simplistic (missing support for embedded images, tables, easy linking between notes, ...), are only designed for input but not recall (i.e. plan text, monospace input and one needs to render the output for it to be readable), or only work online (e.g. Roam).
So, I was wondering what HN uses for full-fledged personal knowledge management <comment><USER2> I worked at a startup where it seemed every week we tried out some new SAAS tool (Slack, JIRA, ...) because we had the problem that nobody could find anything.

Of course adding another SAAS tool just makes it harder to find things, so the disease feeds itself.

I think the first step of this kind of system is being able to suck in data from other places (email, web history, document folders, ...) and search for content. At that point you might get away with just taking notes with whatever text editor or word processor you like (it is very easy to work with docx documents) or build a special note-taking system oriented around "annotate everything".

One 'brain extension' ability I find quite useful are systems that can break work into small chunks and manage their workflow.

</comment><comment><USER3> I use [https://roamresearch.com](https://roamresearch.com) it is like notion but without a note limit

</comment><comment><USER4> Have you tired [https://joplinapp.org/](https://joplinapp.org/) ?

</comment><comment><USER5> I like notion : [https://www.notion.so/](https://www.notion.so/)</comment>