Government obtains wide AP phone records in probe - <AUTHOR> http://bigstory.ap.org/article/govt-obtains-wide-ap-phone-records-probe <comment><USER2> Let's not forget the IRS having authority to pull all electronic communications from an entity without any kind of oversight at all (because they are a "special" agency) and now word that some of the documents they've been pulling, perhaps against policy, were leaked to the press.

I tried to post an analysis of why the IRS story was important to hackers everywhere earlier. It was killed. Beats me why. Some wag said it was just more political bullshit.

I quite understand people who want to hear exclusively about Erlang innards and point out there are plenty of other places for articles that involve any politics at all. But this is the world we live in, and the technologies we are developing are being used for this stuff.

One day some guy writes code to exploit MITM attacks for web devices, and one day very soon afterwards some despotic government uses it to target and kill people. You can't continue to hide your head in the sand and pretend that somehow some really cool tech will come along and save the day, so back to the Apple and SV gossip tripe. That's simply not realistic. We don't write pure technology. We create powerful tools that impact the lives of people everywhere. It is not rational to pretend that impact does not exist. I guarantee you that some hacker in the audience probably played a role in the software used for the AP intercept.

ADD: And the joke I've been thinking about all day which must come out: they don't make a Hallmark card for this.

<comment><USER3> As far as I can tell, there was no real "intercept" in this case other than the government asking for records of calls. So the software involved was probably just a SQL query.

That said, I do agree with the point you're making that there can be a larger context to our work. Indeed, it can give meaning to our work.

I don't begrudge anyone who enjoys writing iPhone apps; but the prevalence of things like Stuxnet, and Chinese cyber spying, and Bitcoin (in particular the political philosophy behind its origin), and Facebook (and its implications for privacy), and now the AP subpoena, is increasingly telling me that there's a huge opportunity to use tech skills to make a difference in the world. And the people most suited to do it are people who understand both politics and technology.

<comment><USER2> More to the point, _we're involved in this whether we want to be or not_

</comment></comment></comment><comment><USER4> This- to put it mildly- is Not Good. I'll quote David Carr's tweet[1],which best sums up my feelings on the matter:

 _Lemme see, IRS going after political opponents plus DOJ tapping AP reporters. Nixonian optics on "the most transparent admin in history."_

I do wonder what kind of a legacy the Obama administration will leave to history when these kinds of events are stacked up.

[1] <https://twitter.com/carr2n/status/334055243379785728>

<comment><USER5> If you're making a list of the most tyrannical Presidents ever, you'd have to put FDR near the top of that. And his reputation has survived.

Obama is a progressive. So are history professors. His legacy will be fine.

<comment><USER6> I'm not so sure. I think he's done some good work. But he's also on the precipice of having a whole generation of young idealists getting the shaft when it comes to the price of healthcare next year - if a new congressional report is to be believed.

Disclosure: this is my submission from earlier today on the topic: <https://news.ycombinator.com/item?id=5702248>

</comment></comment></comment><comment><USER7> Maybe my memory's failing me, but I can't think of a similarly-sized press surveillance operation by the Bush Administration.

Keep in mind that under Obama, more alleged government leakers have been prosecuted than all of his predecessors combined:

[http://www.bloomberg.com/news/2012-10-18/obama-pursuing- leak...](http://www.bloomberg.com/news/2012-10-18/obama-pursuing-leakers- sends-warning-to-whistle-blowers.html)

This includes administrations that oversaw such problematic eras as the Cold War, the Vietnam War, the McCarthy Era, and of course, the War on Terrorism.

<comment><USER8> This was an interesting argument, so I did some quick research. Apparently, six (6) Espionage Act cases have been filed under Obama. I found and read the indictments for each (they're easy to find, since FAS tracks them). They were:

* Thomas Drake, an NSA employee who favored "ThinThread" instead of the later-adopted "Trailblazer" internet surveillance scheme, who then created a Hushmail account and fed classified documents to a reporter from it.

* Shamai Leibowitz, an FBI contractor/interpreter, who fed the contents of an cable intercepted from the Israeli embassy to a blogger because he felt it implicated Israel in an attack on Iran.

* Stephen Jin-Woo Kim, a career civil servant at State who worked on counterproliferation and North Korea and fed classified documents about North Korea to Fox News, and then lied to the FBI about having any contact with journalists.

* Bradley Manning

* Jeffrey Sterling, who was fired from the CIA, lodged a series of employment law disputes with the CIA, attempted to write a memoir about his time at CIA, and then fed classified details about Iranian counterproliferation to a reporter which put a human intelligence resource at risk.

* John Kiriakou, a CIA counterterrorism official who worked in Pakistan, who outed two covert operatives to a reporter (they had allegedly been involved in the Bush-era interrogation program).

Of this list, Kiriakou and Drake are sympathetic to me, but every single case here seems like a valid prosecution; when you take a role that requires you to handle the most sensitive data the government handles, you cannot share it with the press expecting not to end up arguing your side of the story in a court of law. You certainly can't out covert operatives, or feed foreign intercepts you translate to bloggers!

<comment><USER9> ...But not Karl Rove

<http://en.wikipedia.org/wiki/Plame_affair#Karl_Rove>

<comment><USER8> Karl Rove was not a federal government employee when Obama assumed office.

</comment></comment></comment></comment><comment><USER10> They told me if I voted for McCain that we'd end up living in a police state after 8 years...and they were right!

Credit to Instapundit if you care to see more from the most transparent administration ever [http://pjmedia.com/instapundit/?s=%22They+told+me+if+I+voted...](http://pjmedia.com/instapundit/?s=%22They+told+me+if+I+voted+for+John+McCain%22)

<comment><USER11> Pretty much both sides of the spectrum look pretty grim.

I used to be a hard-ass liberal, but now I've changed my outlook, matured a bit, and become a libertarian.

Their philosophy makes the most sense, but no one seems to listen.

<comment><USER12> Demosthenes and Locke are the only voices allowed... and you _must_ rabidly adhere to one or the other. Ah, Ender, didn't you know?

<comment><USER11> <http://xkcd.com/635/>

</comment></comment></comment></comment><comment><USER13> This is the May 2012 story the AP claims to have set off the investigation, the writers of which were allegedly the targets (linked from Business Insider): [http://usatoday30.usatoday.com/news/washington/story/2012-05...](http://usatoday30.usatoday.com/news/washington/story/2012-05-07/al- qaeda-bomb-plot-foiled/54811054/1)

<comment><USER14> Ironically, that story reads like yet another NYTimes "well informed insider" report:

 _U.S. officials, who were briefed on the operation, insisted on anonymity to discuss the case, which the U.S. has never officially acknowledged._

</comment></comment><comment><USER15> The CEO of AP, Gary Pruitt, responds to Holder (DOJ) regarding the record seizure- [http://www.ap.org/Images/Letter-to-Eric- Holder_tcm28-12896.p...](http://www.ap.org/Images/Letter-to-Eric- Holder_tcm28-12896.pdf)

<comment><USER16> Have you come across any DoJ justification? As Pruitt notes, "[t]hese records potentially reveal communications with confidential sources across all of the newsgathering activities." That's a pretty good way to inhibit future "newsgathering operations," turning potential future sources into fearful non- sources.

</comment></comment><comment><USER17> Actually we need more of that! Whatever it takes to help media wake up and become more critical of government intrusion tactics.

<comment><USER18> No we don't. Most of this is already reported, if you want to look for it. If you're worried that citizens of your country aren't _interested_ in those stories, _you_ should get out and make more people aware.

<comment><USER17> This is about agenda setting. Media coverage determines what gets covered and what not.

Scandals like these make government's ongoing privacy intrusion a real, tangible issue. If I go around spreading the gospel, I am just an internet tinfoil head. If it is the headline on a national newspaper, it is a real issue that needs discussion.

<comment><USER19> You seem to be assuming the direction of causation there. Not that you're wrong, necessarily, but you never can be sure.

<comment><USER17> Well, it is certainly bi-directional. Probably we can settle for the good old echo-chamber description. :)

</comment></comment></comment></comment></comment><comment><USER20> Is anyone even surprised by the actions of the U.S. Government anymore?

</comment><comment><USER21> Are there currently any VOIP+Tor type technologies that could reasonably replace existing telephone services and prevent this sort of thing in the future?

<comment><USER11> VOIP is just as easily snooped as regular lines. It's not as easy, but you can do it with the right tools.

<comment><USER22> > VOIP is just as easily snooped as regular lines. It's not as easy, but you > can do it with the right tools.

Wait, is it just as easy or not as easy?

<comment><USER23> The point is that there's no difference when the resources of the government are put to the task.

</comment></comment></comment></comment><comment><USER24> How does the government "secretly" obtain information? Did they hack the AP? Was it an inside job? Better yet, if it was so secret, how did the AP even find out that the DoJ obtained their records? Something doesn't add up...

<comment><USER15> The AP was with "notified" in a letter...

From the article, "News organizations normally are notified in advance that the government wants phone records and enter into negotiations over the desired information. In this case, however, the government, in its letter to the AP, cited an exemption to those rules..."

and then,

"It is unknown whether a judge or a grand jury signed off on the subpoenas."

<comment><USER23> I guess the point is that it's not really a "secret" (which implies that a cover-up has been blown). Rather it's post-facto notification.

</comment></comment></comment><comment><USER25> I posted this on my FB wall, pretty outraged, and a friend of mine who is a former federal prosecutor had this to say in response:

Let me provide some context: this was certainly not unchecked or without oversight. In fact, any time phone records are requested by federal subpoena as part of a criminal investigation (which is what happened here), the subpoenas are checked by a federal grand jury and -- later in the process -- open for judicial and public review. During the investigative phase, subpoenas are kept sealed in court records to protect the privacy rights of innocent people and to maintain investigative integrity. This is a normal part of our legal process, and consistent with best international practices. Also, because of obvious free press concerns, there are special checks in place whenever you want to subpoena records of press officials. You have to prove that it's necessary for the criminal investigation and that there is no other way to get the info. It's actually such a pain in the ass (lots of paperwork and waiting for a long line of signatures) that no one would want to go through it unless it was absolutely necessary. Here, they're investigating criminal leakage of classified information about a CIA's disruption of a terrorist plot to blow up an airliner on the anniversary of bin Laden's death. Whoever leaked the information committed a serious crime and likely put lives in danger. (Confidential sources are important to reporters, but they are perhaps even more important and certainly harder to come by for intelligence officers. CIA may have worked for years to acquire the source that allowed them to foil the terrorist plot, and that source may now be dead as a result of the leak of classified information.) The article has fairly limited information but says that there were 20 phone lines for which records were subpoenaed. This number would be consistent with investigation of a leak to one of a small handful of people, and although we won't know until court records are ultimately unsealed, I suspect the records requested for the office lines were probably tailored in scope to match that set of people. Like I said, the approval process is onerous, and you have a much better chance of getting things signed if you really narrow the scope of your request (e.g., "We know the data was leaked in this 3 day period, and we suspect the info was received by this person, who worked in the office from 4-8pm those days, so we'll request those times.") The records you get back from the phone company include phone numbers called and duration of calls, and then you can subpoena other records if you see any numbers that match up with the person suspected of leaking the classified info. I think it's important to keep in mind that our intelligence operations play a critical role in keeping us safe. If we're unwilling to accept law enforcement's role in protecting our intelligence services, then we should expect more attacks like the one that happened in Boston.

<comment><USER26> I am a fiscal conservative and a constitutionalist (don't confuse me with a Republican). No fan of president Obama. Here is my viewpoint.

Someone in the Obama Administration wanted to brag a bit and leaked confidential information to the AP.

They blew a British agent's cover and he had to pull out of Yemen.

His Yemeni associates may now be subject to torture/imprisonment/death.

That's illegal and irresponsible. The people responsible should be tracked down and punished.

The Justice department got a warrant and obtained relevant information from the AP. Just because they are US media doesn't give them the right to publish state secrets.

I think the US government is acting properly here.

</comment></comment><comment><USER27> Shouldn't this posting be from a neutral source, say Reuters, or some distinguished blog rather than the AP themselves?

Otherwise, I'd recommend putting the quotes around the accusagion (ie, AP claims Govt has obtained their phone records, etc).

Perhaps the government here is actually in the correct?

<comment><USER28> Well, since the AP is breaking the story, do you suggest we hang out until Reuters covers it?</comment></comment>


Ask HN: Good software for interactive exploration of quantum/particle physics? - <AUTHOR> I've been on a big math and physics kick lately and have started reading Feynman's "Six Easy Pieces".
It's got me thinking - what software is out there that is kind of like a particle / quantum physics sandbox? Any environments where you can start playing with things, such as particles and forces, with lots of graphics / interactivity?
To put it another way - what are some of the best 'software physics toys' that people have come across?
I've seen 'The Powder Toy' (http://powdertoy.co.uk/) and 'Algodoo' (http://www.algodoo.com/).  Algodoo seems to deal mainly with mechanics and The Powder Toy is extremely fun though not really meant to be realistic as such.
Anything like 'The Powder Toy' but more in-depth? <comment><USER2> For quantum physics, you have to try "Quantum Moves" which is a citizen science project studying optimal control for a particle wave packet. The preliminary results were recently published in nature ([http://www.nature.com/news/human-mind-excels-at-quantum- phys...](http://www.nature.com/news/human-mind-excels-at-quantum-physics- computer-game-1.19725)).

The game is available for many platforms (including iOS and Android) at [https://www.scienceathome.org/games/quantum- moves/game](https://www.scienceathome.org/games/quantum-moves/game). Be aware that the game is highly addictive!

</comment><comment><USER3> At the more serious end; the quantum optics toolbox in python (QuTip) [http://qutip.org/index.html](http://qutip.org/index.html) is what I used for my PhD research. Combined with Jupiter notebook [http://jupyter.org/](http://jupyter.org/) it gives you a great sandbox to quickly setup Hamiltonians and plot their dynamics. It also has extensive docs and examples too. You can simulate simple systems in just a few lines of python.

</comment><comment><USER4> There is "Quirk" by Craig Gidney, a Quantum Circuit Simulator.

[http://algorithmicassertions.com/quirk](http://algorithmicassertions.com/quirk)

<comment><USER5> The github repo: [https://github.com/Strilanc/Quirk](https://github.com/Strilanc/Quirk)

The blog post introducing it, with a bit more context: [http://algorithmicassertions.com/2016/05/22/quirk.html](http://algorithmicassertions.com/2016/05/22/quirk.html)

</comment></comment><comment><USER6> OP, we're in the same boat. I also am in a deep, deep QM hole, and just finished reading Six Easy Pieces, Six Not-So-Easy Pieces, and QED (HIGHLY recommended), and have been trying to work through several quantum physics textbooks. It's astonishing to me how few high-quality visualizations there are: smatterings of videos on youtube (which you can't always guarantee are trustworthy).

I've been dreaming of a WebGL-based 'quantum lab' to revolutionize this. Would anyone be interested in helping attack this problem with me?

Lastly, I'll add in my recommendation since I don't see it here yet: Falstad's terrific simulators, with a whole section just for QM. (Note: java applets. SIIIGGHHHHH) [http://www.falstad.com/mathphysics.html](http://www.falstad.com/mathphysics.html)

Note—all of Falstad's stuff is open source, and I've been dying to port a few to webgl as a way to get started. Anyone with an interest in this would be a very welcome help!

<comment><USER7> Check out Processing.org

You might be able to sketch something up fairly easily. It's a code-based visualizer/interactivity used mainly for art but I imagine it'd be easy to plug in some algorithms to mimic QM.

</comment></comment><comment><USER8> It's still quite hard to do simulations on the timescales needed for any sort of interesting chemical reaction or physical effects.

Foldit ([http://fold.it/portal/](http://fold.it/portal/)) is probably the best there is – a game that actually contributes to the science of protein folding.

You can also try GROMACS to actually run physical simulations, but it's more involved and not what you'd consider interactive. But you can look at your molecule wiggling in space with any pdb viewer.

</comment><comment><USER9> Quantum puzzle game where you have to guide your wavefunction through obstacles. [https://linkingideasblog.wordpress.com/2016/04/25/learning-q...](https://linkingideasblog.wordpress.com/2016/04/25/learning- quantum-mechanics-the-easy-way/) (Java required)

</comment><comment><USER2> If you are into quantum computing, IBM has recently made runtime on an actual hardware quantum computer available for free at [http://www.research.ibm.com/quantum/](http://www.research.ibm.com/quantum/)

</comment><comment><USER10> Totally not a simulation and more of a particle-themed game is Particulars. [1] It is a game with a story but it stays true to the underlying science of combining quarks and other fundamental particles.

I found it to be pretty fun but since it is based on such un-intuitive physics it's sometimes pretty hard to understand what you are doing or why you've won or lost a level.

[http://store.steampowered.com/app/259470/](http://store.steampowered.com/app/259470/)

</comment><comment><AUTHOR> Thanks all, these are great suggestions!

By the way, re- The Powder Toy - despite my comment in the question it actually seems like it's pretty realistic in many ways. The number of different things it models at once is impressive (interactions between substances, airflow and pressure, ambient heat and heat flow, etc) plus it has a ton of visualisation modes for seeing properties of the simulation (such as visualising temperature). Highly highly recommended - I've already spent a large amount of time in it! :)

</comment><comment><USER11> The book "Visual Quantum Mechanics" by Bernd Thaller includes a CD-ROM. I didn't use the software, but I found the book interesting.

EDIT: I'm not sure if the latest edition still includes the CD-ROM.

EDIT2: There are some materials on the book's website, [http://vqm.uni- graz.at/index.html](http://vqm.uni-graz.at/index.html)

<comment><USER6> I had stumbled upon this recently, and it kills me that these kinds of resources aren't more available. Even the few (outdated .mov) videos are extremely helpful.

</comment></comment><comment><USER12> Excellent question! I found the CERN Virtual Atom Smasher [0], which you might find interesting. I haven't personally played with it enough to be able to tell you how it is; it is directly from CERN, though.

0: [http://test4theory.cern.ch/vas/](http://test4theory.cern.ch/vas/)

</comment><comment><USER13> A good powerful simulation tool you should look into should really be GEANT4. It really sets the standard by which all Nuclear Physics simulation try to adhere. It is not a 'toy' but more like a collection of tools you can use to simulate anything from x-ray radiation to a Photon's path inside a scintillator.

</comment><comment><USER14> The SpinDrops app for iOS draws representation of QM state and gives some feeling for time evolution:

[https://itunes.apple.com/en/app/spindrops/id891357240?mt=8](https://itunes.apple.com/en/app/spindrops/id891357240?mt=8)

</comment><comment> Ono-Sendai This might not be very helpful, but I have some code that does a QM simulation - single particle in arbitrary potential, can do hydrogen atom etc.. Quite a lot of fun to watch. I plan to make some videos of it some day, and maybe release it as a program.

</comment><comment><USER15> There is a research project around here called SAMSON [https://youtu.be/kjegYq4hflo?t=51s](https://youtu.be/kjegYq4hflo?t=51s)

</comment><comment><USER16> the nanohub.org is a good place to play with model systems of quantum conduction, EK dispersions, and such if you're interested in learning about molecular transistors, for instance. Along the same lines, you can play with Quantum Espresso ([http://www.quantum-espresso.org/](http://www.quantum- espresso.org/)) to do your own full blown abinitio quantum simulations.

</comment><comment><USER17> On Linux you can use KDE's Step [0]

[0] [https://edu.kde.org/step/](https://edu.kde.org/step/)

<comment><USER18> Does that do quantum physics? It says classical in the information on that page.

</comment></comment><comment><USER19> If you want to tinker with gravity, you can try ThreeBody (Lite or Full) on iOS/Android.

Disclaimer - I'm the developer.

</comment><comment><USER20> sympy has recently added some modules, see the quantum subfolder in particular

[https://github.com/sympy/sympy/tree/master/sympy/physics](https://github.com/sympy/sympy/tree/master/sympy/physics)

</comment><comment><USER21> There's an iPad app called "The Particles". Last update was in 2013 though.</comment>


Science Is About Truth; Engineering Is About Compromise - <AUTHOR> https://hackernoon.com/science-is-about-truth-engineering-is-about-compromise-uucg376x <comment><USER2> Is science actually about truth? I hear this a lot but it seems like, in most fields, truth is actually a colloquialism for useful truth. Take the various domains of theoretical physics, the fields of gender and social justice studies, and basically any field that is an applied version of another; our theories that guide our beliefs about the universe surpassed what's actually verifiable (for now if nothing else) a long time ago. This isn't to say that we should suddenly rebel against academics, but it's worth bearing in mind because we are quickly entering an age where it's unreasonable to expect non- specialist to actually understand basically anything in a manner that comports with academic consensus on the topic. For democracies this is a big deal.</comment>


TSA checkpoint groping - <AUTHOR> http://www.economist.com/blogs/gulliver/2010/11/checkpoint_groping

<comment><USER2> Might as well just wear these for your flights: <http://www.bigfeetpjs.com/pajama-sleepwear/201.html>

Footy pajamas: no shoes or belt to take off. With the drop seat for easy TSA access.</comment>


A Google self-driving car was involved in crash in Mt. View today - <AUTHOR> https://techcrunch.com/2016/09/23/a-google-self-driving-car-crashed-in-mt-view-today/?ncid=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29 <comment><USER2> Tldr: A human driver ran a red light and hit the Google car.</comment>


Haskell Programming - <AUTHOR> http://haskellbook.com/

<comment><USER2> Copypasta from the first time this was posted (with the wrong URL):

Pretty thrilled about this book.

There are rather few recent Haskell texts with beginners in mind, and Chris of the [https://github.com/bitemyapp/learnhaskell](https://github.com/bitemyapp/learnhaskell) fame is probably one of the most qualified people out there to teach the subject. At Front Row we actually use learnhaskell pretty heavily with our new developers. For us it's the central hub for devs to start learning the language.

Anything that helps people get started and advance through the skillset is a huge boon to the community.

<comment><USER3> He may possibly be a qualified teacher of Haskell, but he's a terrible ambassador for it. A cursory glance through his post history shows him time after time attacking people who dare write about something they like about other languages...all with his smug air of superiority. Want to write a post about asynchronous patterns in your favorite language? He'll be right there dismissing everything you say with some smug comment about how Haskell had it first. I've seen his handle pop up everywhere from Rust threads about Traits to JavaScript threads about async/await. That is exactly the type of personality I found prominent when I decided to learn Haskell, and it is a huge contributing reason to why I won't go back. There are far better ways to evangelize your language than to troll and abuse fans of other languages.

<comment><USER4> This twitter exchange I had with him and the infamous Tony Morris was all I needed to know I don't want or need to have anything to do with either of them --and furthermore spending time learning from either of them may actually hurt me, if it encourages me to starting thinking the same way they do:

[https://twitter.com/dubitable/status/469359776074563584](https://twitter.com/dubitable/status/469359776074563584)

I love Haskell and spend a lot of time learning it, but I've gotten by just fine without his resources. The fact is that a lot of far more tolerant and far less self-aggrandizing folks have been patiently teaching Haskell for a long time. Check out #haskell (or #nothaskell, lots of nice folks there too) and ask for help if you need it.

<comment><USER5> > I love Haskell and spend a lot of time learning it, but I've gotten by just > fine without his resources.

An author/creators personal qualities does not detract from their work. For example, Orson Scott Card, the author of Ender's Game has some pretty homophobic and bigoted views. However, that does not take away from the fact that his books are enjoyable.

</comment></comment></comment></comment><comment><USER6> Perhaps this is the wrong way to phrase this question... but what's wrong with [http://learnyouahaskell.com](http://learnyouahaskell.com) ? Personally I found it very approachable, but then I've never tried another way of learning Haskell. Just curious to hear what the common critiques of it are.

<comment><USER7> Given how widely known LYAH is, it's totally a reasonable question to ask.

I've collated most of my thoughts on different Haskell learning resources and where the challenges are for learners in this post: [http://bitemyapp.com/posts/2014-12-31-functional- education.h...](http://bitemyapp.com/posts/2014-12-31-functional- education.html)

Please let me know if you have further questions.

<comment><USER6> Wow, great - thanks! Sure wish I had taken cis194 while I was at Penn, people always talked about how great the course was but I didn't realize it was best- course-in-the-world good. (I wasn't a CIS student and didn't think I would be programming professionally upon graduation).

<comment><USER7> >best-course-in-the-world good

Well, best that we're aware of. It's a total accident and the friendly insistence of a nice Australian Haskeller (they're really lovely people btw) that I even discovered it.

I think a lot of the value of cis194 is also in who is teaching it. Yorgey has been at this for awhile and wrote the incredible typeclassopedia: [https://wiki.haskell.org/Typeclassopedia](https://wiki.haskell.org/Typeclassopedia) which my coauthor and I are so fond of we had bound printed copies made.

Then you had Richard Eisenberg teaching it in '14 - he's really good too. I took his GADTs workshop at Lambda Conf this weekend and it was phenomenal.

Afraid I don't know anything about the current instructor.

Do note that because of what the courses do and do not cover, the Spring '13 cis194 is what's recommended for independent learners despite some errata that have been noted.

I would really love a chance to talk to several people from UPenn's CS department - a very impressive bunch.

</comment></comment></comment></comment><comment><USER8> I would really like to purchase this book - Haskell is fantastic - but I'm afraid it's too expensive for me. But also, when I study, I want a real book not an ebook. So I will have to skip this one, sadly enough. If it comes in print I might reconsider.

<comment><USER7> By all means wait then! The ebook-only is because this is early access, we're looking for people that want to send us feedback and help us with the book without committing to a more laborious review process. It might also be worth waiting in your case because we haven't released the majority of the content yet. The early access should make sense for a wider audience when about ~50% of the book is part of the current release.

We're determined to get a print run but we won't start preparing for print until the book is done in January. For now we've been testing samples from printers and figuring out costs. One problem is that a lot of places charge a _lot_ for shipping internationally so we might need separate printers for US and EU. Another problem is the book's length is going to make things expensive, so it'll have to be a black & white book, with the color syntax highlighting being ebook only. The cost estimates I've been getting for a color print have been $100++ per unit.

We talk about the price a bit in the FAQ at: [http://haskellbook.com/faq.html](http://haskellbook.com/faq.html)

Thanks for sharing your thoughts.

<comment><USER8> Thank you for answering. :-)

</comment></comment></comment><comment><USER9> Any recommendation to get started with Haskell for a person who is pretty comfortable with functional programming (Racket, OCaml)?

<comment><USER7> Guide as usual, [https://github.com/bitemyapp/learnhaskell#how-should-i- learn...](https://github.com/bitemyapp/learnhaskell#how-should-i-learn- haskell) (so, cis194 -> NICTA Course)

but you can skip the first four weeks. You can try skipping more, but I suspect some backtracking will be required.

Also be aware that the rules are different for recursion when non-strictness is involved. It doesn't necessarily matter if functions are tail recursive or not.</comment></comment>


Timing-independent array comparison - <AUTHOR> http://rdist.root.org/2010/01/07/timing-independent-array-comparison/

<comment><USER2> The title is rather misleading (not the submitter's fault -- it's the title of the original post). It's not "array comparison that's independent of timing", whatever that might have meant, it's "array comparison whose timing is independent of the contents of they arrays". (To avoid side-channel attacks on your crypto.)

I think there's an oversimplification in the first section, though it may be a deliberate one for the sake of clarity. Your goal isn't really to know each byte with 95% confidence, it's to know enough about the bits that you can do a small search and be likely to find the right key / hash / whatever. Which means that what you really want to do is to have a model of how the timings (noise and all) relate to the actual values, and keep going until the _total entropy_ of the secret you're trying to extract gets small enough.

<comment><USER3> Your first paragraph is correct. Your second is not in most cases.

You're right that, in general, once you've guessed enough of a secret, you can just brute-force the rest offline. However, a timing attack is online, so you have to issue a query for each guess. Thus, there is no way to turn this into an offline attack and thus nothing changes about the process along the way. You do the same thing for the last byte as for the first.

The other is that entropy has nothing to do with this really. You have to guess bytes sequentially from first to last, you can't gain information about the last byte from the first.

Now if the secret is a password and not a cryptographic key or MAC, incremental information does help you. So in this case, you're right.

PS. no idea about your downvote</comment></comment>


Ask HN: The most interesting current approaches to teaching programming? - <AUTHOR> Are we trying any genuinely new strategies? Or are we still trying to successfully implement ideas from the 70's? <comment><USER2> Was there something wrong about the approaches of the 70's?

I think we look for something that makes it easier for large numbers of people to become programmers. And I guess that's OK, for some definition of "programmer". Teaching people to be professionals still takes a degree, or basically an apprenticeship, or both, and I don't see that changing. (You don't see a new approach to teaching chemical engineering dramatically changing things.)

But perhaps I have misjudged the thinking behind your question...

<comment><USER3> I think your right up to a point but when people talk about apprentices in IT terms you really mean Technicians.

Classically apprentices left school at 15 or so did 4 years learning how to use lathes ect before going on to the more academic day release.

In the IT industry there is no real analog to spending your first year "filing" and making tea.

<comment><USER2> Well, I meant as a programmer specifically, not just IT. In my own experience, people who are self-taught (myself included) might be good enough to be entry- level programmers, needing a high level of supervision. If you're going to learn good judgment rather than just knowledge, though, it really helps to work with more experienced people for a few years. That's what I meant by "apprentice", more being mentored rather than a formal apprenticeship.

</comment></comment></comment><comment><USER4> I wrote this article a while ago to point out some games-based approaches: [http://www.gamasutra.com/blogs/RobLockhart/20130905/199667/G...](http://www.gamasutra.com/blogs/RobLockhart/20130905/199667/Games_That_Teach_Programming_A_Brief_Overview.php)

Since then, even more have cropped up: Code Combat: [https://codecombat.com/](https://codecombat.com/) Empire of Code: [http://www.checkio.org/blog/empire-code-space-strategy- game-...](http://www.checkio.org/blog/empire-code-space-strategy-game- checkio/) Code Kingdoms: [http://codekingdoms.com/](http://codekingdoms.com/) Taken Charge: [https://takenchargegame.com/](https://takenchargegame.com/) ComputerCraftEdu (Minecraft Mod) : [http://computercraftedu.com/](http://computercraftedu.com/)

</comment><comment><USER5> One thing I've found concerning is the continued lack of secure coding curriculum being taught to computer science and software engineering students.

No doubt, this has only contributed to the divide between software engineers and information security engineers.

</comment><comment><USER6> I'd really like to see some deliberate practice approaches. Kahn's academy seems close.

For developers, something like laracasts (or other screencasts) is working well it seems. Not very revolutionary though.

<comment><USER7> Solving programming puzzles (or competitive programming) is a good basis for a deliberate practice plan. There are a lot of sites that provide puzzles of increasing difficulty. So you can work on problems slightly above your current level, which is one of the tenets of DP.

I wrote a blog post on this topic with more details on a specific process: [http://www.redgreencode.com/deliberate-practice-for- software...](http://www.redgreencode.com/deliberate-practice-for-software- developers/)

Khan Academy is a reasonable way to start learning programming, but like other learning sites (Codecademy and others) they focus on learning things the first time, and not as much on getting better. CodingBat ([http://codingbat.com/](http://codingbat.com/)) takes a more drill-oriented approach, which is more effective for learning the basics well. But there's not a lot of content there, in comparison with a puzzle site like SPOJ ([http://www.spoj.com/](http://www.spoj.com/)).</comment></comment>


Ask HN: Mathematics in computer science - <AUTHOR>

I have been asked to give a talk on applications of mathematics in computer science to a set of post-graduate and doctorate students in math. I am looking for ideas to convey the beauty of math in CS. The obvious topics are probability and stat in ML, Trig in graphics, number theory in cryptography, category theory in OO, sets in relational algebra. Let me know if you can think of more connections :) <comment><USER2> One of the most beautiful applications of math+cs (for me) involves genetic algorithms. Being able to have two models duke it out (via survivorship), or mutate - to see your code select the best models to fit a set of data is beautiful.

Basic Info: <http://en.wikipedia.org/wiki/Genetic_algorithm>

You can also increase the complexity of this field by using GAs to train neural networks for fitting data or processing it in innovative ways: <http://www.generation5.org/content/2000/nn_ga.asp>

YOUTUBE: NN + GA simulation: <http://www.youtube.com/watch?v=LXDUqAmdEq4>

Neural Network at work: <http://www.youtube.com/watch?v=T2aZAWXyw6c>

</comment><comment><USER3> I'd call these "interplay" rather than applications:

* combinatorics in computational complexity, analysis of algorithms, optimization, etc. * logic in formal methods. * lambda calculus and category theory in programming languages (more so in functional languages than OO). * linear algebra in graphics, graph theory, etc.

</comment><comment> C-ford Geometric algebra: [http://www.amazon.com/Geometric-Algebra-Computer-Science- Rev...](http://www.amazon.com/Geometric-Algebra-Computer-Science- Revised/dp/0123749425/ref=sr_1_2?s=books&ie=UTF8&qid=1314888629&sr=1-2)

It is to linear algebra what Lisp is to assembly.

</comment><comment><USER4> Kolmogorov / Chaitin complexity. A measure of the simplicity which a given pattern (program output) can be represented. A question that will get the applied math majors going -> Is Kolmogorov complexity a good measure of the generality of a physical law or mathematical theorem?

</comment><comment><USER5> Try graph theory: possibly exploring some of Erdös's work on random graphs.

</comment><comment><USER6> Semantics, especially Denotational and Axiomatic.</comment>


DESPERATELY WANTS TO STAY IN DENMARK - <AUTHOR> Hello everyone,
I work as an au pair right now in Denmark and desperately wanted to stay here. I have a boyfriend who is Danish. My visa will run out in November 2015. I am from Non-EU country so it is not easy to stay here when my contract in done. I appreciate any help that someone can help or any advice. Please, please help me :-(
Leave a comment so we can discuss more, thank you! <comment><USER2> This isn't really the best place to ask. Your best option is to save a bit of money and consult a lawyer who specializes in immigration. If you come from a country with a lot of problems then it might be possible to stay as a refugee; you should also look into whether you can renew your visa if you get a job with a different employer. Also, call your country's embassy, or talk to other people from your country, and ask for information about organizations of your people in Denmark - often other people from the same country have valuable advice and experience to share. You have a year left on your visa, so if you start researching now that's probably enough time to work something out.

</comment><comment><USER3> You could seek advice at "Marriage Without Borders" ⌘ [http://www.aegteskabudengraenser.dk/](http://www.aegteskabudengraenser.dk/)</comment>


Ask HN: How do you actually layer a chip? - <AUTHOR> All the fab videos I could find on the internet talk about taking a single sheet of silicon, performing lithography and connecting components with copper wires. I don't see how they build 10-30 layered chips. Is it that they layout all the layers on a single sheet and form virtual layers by copper wire interconnects? <comment><USER2> As I understand it, they deposit a layer of oxide on the first layer, pattern it, and preferentially etch in order to allow selective interconnection to the existing layer, then deposit fresh layers of silicon on top to do it all over again.

Chemical vapor deposition or sputtering is how they do deposition. Put wafer in vacuum chamber, suck out all gas, then make the desired compound form by zapping targets or cooking exotic gases like silane.

Sometimes, as with top-end solar cells, they'll even change the material from layer to layer.

<comment><AUTHOR> I thought CVD is used for laying out interconnects, no? It's used for laying out silicon?</comment></comment>


New iOS Update Kills Touch Functionality on Repaired iPhone 8s - <AUTHOR> https://motherboard.vice.com/en_us/article/59jwvz/iphone-8-aftermarket-touchscreens-ios-update <comment><USER2> This could have been entirely innocent. It happened to an android device I am familiar with as well. Third-party screens will usually identify over i2c/spi/whatever the same as original, but you cannot apply original firmware updates to them (they are different internally and will get bricked). However, as they are designed to appear original, there isn't always a way to tell. The two options both suck: do not ship firmware updates (bad) or ship them and risk damage non-original screens (marginally less bad). The choice in the case I know of was made to not ship update (it was minor). Apple chose otherwise.

</comment><comment><USER3> This article is lacking a critical piece of investigative reporting: Has this issue affected anyone who used — with proof! — an Apple Authorized Service Partner in current standing to repair their phone?

EDIT: They're very clear that it's aftermarket screens, but that's no excuse for failing to say it plainly. Authorized shops have tools that can fix the crypto-pairing between the screen and sensor chip. Unauthorized shops don't. Either we have secure phones or we have insecure phones. Unauthorized service providers would have you prefer the latter.

<comment><USER4> its a touch screen, is your apple computer crypto linked to apple keyboard?

<comment><USER3> I wish - it would be nice if my keyboard's electronics has the same level of electronics anti-snooping defenses that Apple codes into the phone hardware.

</comment></comment></comment><comment><USER5> This is probably a security feature designed to prevent people from altering a phone in order to brute-force it.</comment>


Ask HN: How much of your time at work do you spend not working? - <AUTHOR> Let's include meetings/email as job related. <comment><USER2> Throwaway for maximum honesty: I am pretty sure I spend at least 75% of my time "at work" not working. HN, Reddit, messing around with side projects or learning a new language or framework. This has been the case for my entire working life.

I seem to get as much done as other people (sometimes better) so part of me wonders if I'm not as unusual as I feel. Part of me wonders if I should get evaluated for ADHD, since I find it such a struggle to focus on my work. And part of me is just frustrated with myself, that theoretically I could spend like 3 _good_ hours at work each day, get more done, and have more quality time to myself.

<comment><USER3> The best way to describe ADHD is: _The TV is always on, but you don 't get to choose the channel_.

Some things are easy to focus on—I can sit down to program for a bit and lose track of time for 5 hours. On the other hand, if something is boring, it's _mind-numbingly boring_.

It was the worst while I was in school, since teachers and professors just thought, "oh, he's unmotivated" when in reality it was more along the lines of, "I'd rather cut my toenails with a rusty butter knife than write the paper." (Okay, perhaps that's a _slight_ exaggeration.)

Anyway, if it affects your life and managing it yourself isn't working (give it an honest effort, of course) definitely speak with a doctor. While too many parents think their kids have ADHD when the kids are really just, well, kids, trying to cope with ADHD without some sort of guidance sucks. A lot. It's amazing how much more productive you can be if you get some help coping with it.

Just my $0.02.

<comment> J-dawg >"I'd rather cut my toenails with a rusty butter knife than write the paper." (Okay, perhaps that's a slight exaggeration.)

This totally describes me. The line I quoted resonates because sometimes the idea of a boring task is actually _frightening_ to me, in the way you described. Like I get a really sick feeling about it and will do almost anything to avoid it. On the other hand I feel like I have so much going on in my head, and so much I could _produce_ if I could only channel it properly. The TV is most definitely always on. My lack of focus and procrastination has definitely held me back in my career.

One thing I'm wary of is medicalising what might just laziness. How do I know it's not a version of "special snowflake syndrome"? Is my own inattentiveness (and inability to get over it) really so much worse than what a "normal" person experiences?

To give a parallel, I heard a podcast where Ramit Sethi was talking about "introvert porn", where he's saying there is all this stuff online about how hard life is for introverts, how extroverts don't get it, basically making people feel good about being an introvert and telling them that it's an integral part of who they are rather than something they can change. And he's saying that this is a dangerous and self-defeating trap to get into because people don't realise that social skills can be learned. All these "introverts" are just falling back onto an excuse to avoid confronting the thing that's holding them back.

If I start blaming all my problems on ADHD am I just falling into a similar trap? After all, not everyone can be successful. Maybe I'm just not successful because I'm not that _good_ at anything, not because of a medical condition.

Possibly relevant: I am in the UK where ADHD seems to be a lot less recognised than in the USA. People here are often critical of the idea of medicating ADHD in kids (which is relatively unusual here afaik). I don't know how a British GP would react to someone asking for an adult ADHD diagnosis - I imagine it wouldn't be taken very seriously.

<comment><USER4> It's true that adult ADHD (and non-hyperactive ADHD, and ADHD in women) is under-recognised in the UK.

However, NICE (the National Institute for Clinical Excellence) has published guidelines about diagnosis and the short version iirc is that you're well within your rights to point out that your GP is not a specialist in this area and ask to be referred.

The bad news is there may not be anywhere locally to refer you to, so you may need to travel out of area, pay to see someone private (and then fight to have your prescription accepted and paid for by the NHS). There are more kids' specialists but they may not recognise the nuances of the adult condition.

No, I haven't done it - I've been meaning to for over a year and keep putting it off, ha ha.

Links: [https://www.nice.org.uk/guidance/CG72](https://www.nice.org.uk/guidance/CG72) \- NICE guidelines; [https://aadduk.org/forum/](https://aadduk.org/forum/) \- AADD UK forum

<comment> J-dawg Thanks very much for your comment. I hope you go and do it soon. I'd love to hear about your experiences when you do.

</comment></comment></comment></comment></comment><comment><USER5> Over the first 15+ years of my career as an engineer and engineering manager, I've repeatedly surveyed colleagues and friends in engineering roles about this question. I've asked it of people I consider low-performing, all the way to folks I'd consider 10x developers.

I have never met a single software developer who, when pressed to give an honest assessment and when "working" is defined along the lines of "actively defining, coding, or debugging a feature", self-identifies as working more than 50% of the time. There are occasional stretches of 12+ hour working sessions, but they are very rare.

I'd say I've asked this of over a hundred people.

This isn't to say these people only do 4 hours of work a day. Often, peers have described how they hit a wall at work, go home, and then work on personal projects in the evening.

I've come to the conclusion that is generally impossible to do mentally intensive tasks for more than 4 continuous hours over the long term.

<comment><USER6> Thats interesting because 4 hours is exactly the limit I've seen cited by researchers as the max for highly focused work but even that much is a kind of skill that has to be developed, so a beginner might have much less concentration.

<comment><USER7> Can you give a reference for that number? Sounds intriguing...

<comment><USER8> This article also references about four hours as the limit that a creative professional can work every day:

[http://nautil.us/issue/46/balance/darwin-was-a-slacker- and-y...](http://nautil.us/issue/46/balance/darwin-was-a-slacker-and-you- should-be-too)

<comment><USER7> A fascinating article, thank you for sharing!

</comment></comment></comment></comment></comment><comment><USER9> Arguably, time spent reading HN is a legitimate part of becoming/remaining a good developer. Certainly, spending time socializing with coworkers is a required part of work, many places. Spending some amount of time unwinding at the office is arguably required for mental health and therefore a functional component of remaining a worker -- does that count as working?

"Working" is an ambiguous category, it seems to me. One definition of work (call it "productivist") says that we're only working when we're literally producing something valuable. A more organizational view might hold that "work" is _whatever_ you're socially (often implicitly) required to do to keep your job (whether measurably productive or not). And a third more holistic definition would include stuff like exercise or professional development that are not always directly "required" by anyone, but that you might go crazy without doing...

<comment><USER10> I'll be honest; I don't think using HN is anything close to what I would consider "working." At best it's marginally optimized random browsing.

<comment><USER11> While it isn't work, reading technical articles regularly on HN can be very beneficial.

In fact, the first thing I tell aspiring developers is to start reading HN on a regular basis if they already aren't. It confers a sort of broad awareness of various stacks and ecosystems over time that's hard to obtain otherwise.

<comment><USER9> Yeah, learning the culture of your profession -- with a broad awareness of different ecosystems and things -- isn't "immediately productive," but it's a simple form of professional development. (And in my opinion, enlightened employers understand that decent professional development is a really important part of the work process.)

<comment><USER12> It falls into the important but not urgent quadrant of Stephen Covey's Time Management Matrix.

</comment></comment></comment></comment></comment><comment><USER13> I probably spend half my time not working. I'm burnt out though. After a few years at my current position, I just don't care.

Why is this?

I've had a few promising projects languish because my manager is slow or hesitant to allocate resources. That's a bit demoralizing. When I'm on a path to production for a functioning system I get caught up in the devops meeting vortex. That's a waste of time and it takes several weeks to get any sort of resolution. In these cases my time is mostly spent looking for workarounds and not "working". I feel there are a lot of politics and favoritism in the company, and my manager (and our team) is not on the right side. It's demotivating to have your work ignored because you're not a priority. I don't know how anyone stays for more than a year.

Edit: In the first few months I worked on random on-going projects, but was quickly made lead on some new projects. It was good at first, but after about 9 months I'd say most (90%) weeks I don't put in anywhere near 40 hours of work.

The sad thing is I've always gotten a raise (double digit in two cases) and full bonus every performance cycle.

I've finally started looking for another job.

Does anyone have recommendations? I'm really looking for a company that enables their individual contributors (engineers) to actually get shit done.

<comment><USER14> Work for a startup, preferably one that is already somewhat profitable. I have worked for this type company my whole career and this "devops vortex" you speak of is a foreign concept. I run a small IT dept and we have one 30 min staff per week plus a one-on-one for each dev. And they code and solve other problems all day, and of course surf the web or socialize to break up the day too.

<comment><USER13> I'm already in talks with two well known pre-IPO startups (<500 employees). The devops vortex is a new animal to me as well. I've never had so many problems moving systems into production than I have at this company.

Edit: I've talked with many in my professional network and they describe similar meeting loads (~1 hr/week) as you do. I'd estimate I spend on average 3 hr/week in meetings. And most of these meetings don't result in action items. They're essentially pointless.

<comment><USER15> Coming from an organization where I spent > 10 hours a week on meetings, I hear you. I believe I spent more time writing emails than writing code. The code I did write was done at night after everyone left and there would be no more meetings and useless phone calls. Managed to create the most used/useful application in the organization and still nothing changed.

When it occurred to me that things are not going to change in my lifetime even with all the promises of upper management, I started creating side projects where I am in control of the full direction. When that wasn't enough, I also started looking for a new job. Joined a startup as a CTO/Lead Dev and was happier.

</comment></comment></comment></comment><comment><USER16> You're almost certainly getting a sampling bias by asking this question at ~2pm Pacific Time on a weekday.

</comment><comment><USER17> Some days almost the entire day. I'll read, watch videos, do some tutorials. But its offset because usually when I do this it's because I'm hung up on something and it just isn't going to get solved unless the ole brain has time to do its subconscious thing.

<comment><USER18> Letting the subconscious work through a hard problem while doing something else is a truly underrated trick. Taking a shower or going for a walk also works wonderfully.

<comment><USER19> I used to take hour long lunch breaks, which I'd spend about 35mins walking to get food and finding a nice spot to sit outside, most days I done this I would come back into the office refreshed and often fix the issue I was working on shortly after coming back. But the hour-long break was always founded upon, which is why I ended up leaving. (it was also the only break I took each day, but the culture in the team I was in was to take no more than 30mins break)

<comment><USER17> 30 minute breaks? Sounds unbearable! Plus knowing that you're being judged creates a pressure that doesn't help solve problems.

</comment></comment></comment></comment><comment><USER20> Speaking as a solopreneur, I work only 3 hours a day, more like 3 x 50 minutes laps with 15 min breaks in between.

Also each lap is dedicated to one activity, first is manufacturing where I work on my project (the actual coding part), second is traffic (this is the dreaded marketing/outreach part) and finally is the optimization part (seo, increasing conversion rates, improving design, etc).

I've seen that the diversity of this work prevents you from getting bored and also is very good for your sites because if you keep working on just coding your sites seldom make any money.

The 3 hours limit is because after that i can happily watch tv, spend time with my family or just work on my other hobbies besides computers guilt free.

P.s. When you try to do as much work as you can, i believe you still only get 3 hours of work done - yet you feel guilty of not doing enough which causes unhappiness.

<comment><USER21> Sorry is this is rude but how do you make a living only working 3 hours a day? Are you products already established?

<comment><USER20> No it isn't rude at all. Yes, some sites are already established but I also launch at least one new site every month to add to my income.

3 hours is a lot of work if done without distraction. _I think the key is to make your work more mechanical and less creative_.

I have a system that I have perfected over the years which helps me do this[1]. It's like a stupid step by step list where each item links to a document which is another stupid step by step list that I follow like a "Robot" for these 3 hours. When you do it this way, it makes it quite easy and 3 hours daily is more than enough to launch a small to medium size project in a month (I think there are less than 200 items in total and about 50% of it you can easily outsource).

[1] [http://i.imgur.com/i1oBM2t.png](http://i.imgur.com/i1oBM2t.png)

<comment><USER22> I've had some success with that approach and am considering adopting it as my "goto" approach (over my current approach, Trello, for which I just stare at all the cards on the board and panic at how much I have to do).

When a deadline is coming up, I take a 10 minute "organization break" and list the actual, concrete steps that need to be mechanically performed in order to complete the task. I think the problem is that my mind tends to get hung up on abstract task descriptions and I start overanalyzing. For instance, "Design welcome page" will turn into a wasted day of messing around with colors, fonts, and layout positioning. On the other hand, "Add X, Y, Z to prototype welcome page" is a much more concrete task and it defines _completion_ so that I can move on to the next task on the list.

(Btw, you could turn your nested-robotic-link-list into a quick webapp that I bet would get a decent number of users.)

</comment></comment></comment></comment><comment><USER23> I sit in a cubicle and I update bank software. I'd say in a given week I probably only do about fifteen minutes of real, actual, work.

<comment><USER24> I would go crazy in less than 6 weeks. Simply for the fact that I have to be present, but with nothing to do.

</comment></comment><comment><USER25> I've been an employee for like 20% of my career and a the rest I've been a freelancer.

I never worked more than 4 hours (of real work a day). There's the occasional super productive day where I have done over 8 hours of productive work, but that's the exception, not the rule.

I usually work around 3-4 hours of productive work daily. Heck I'd even say 20%-30% of that time is not even productive (meetings, emails and necessary yet unproductive things).

When I worked for companies doing 9 to 5, I wasted a looot of time doing nothing: reddit, fb, and stuff. I also recognize that I need that distraction to do some real productive work.

I'm very fast and productive when it comes to actual work, but if I don't get the procrastination time then I just become a blurry mess of a brain and take 10 times longer to do the same things.

<comment><USER26> I think procrastination time is also important and necessary.

I just completed a course on Coursera (Learning How to Learn - [https://www.coursera.org/learn/learning-how-to- learn/](https://www.coursera.org/learn/learning-how-to-learn/)). One of things mentioned is that our brain has a focused and diffused mode and both are needed for us to learn.

So, I guess, something similar happens when we are working. You need both focus time but also a down time to achieve things. Of course, too much procrastination is also not a good thing.

</comment></comment><comment><USER27> 60% or more :(

But there are SOME DAYS that I work 150%! ("in the flow")

So how to achieve flow consistently?

One of the few things that works for me is to get started working first thing in the morning: no news, no HN, until 10am, etc. _When_ I can do this, I know I'll have a productive day.

<comment><USER16> Does this cause a productive mental state, or is it merely a symptom of it? I suspect it's causal (based off what I know of brain chemistry), but I could definitely be wrong on that part. Like, "get assigned bullshit work, can't focus on it because it's bullshit, end up on HN" is definitely also a plausible story to me.

</comment></comment><comment><USER28> Pre-, during, or post-burnout?

<comment><USER29> the real question

</comment></comment><comment><USER30> I'd like to see where people are from if they're replying to this thread. I wonder how cultural norms affect effectiveness (do Americans work less at work because of the work-oriented culture which requires them to stay at work longer for no reason?)

<comment><USER31> I work in the USA and i would say I'm about 30-40% productive, maybe less. My productivity is strongly related to the density of meetings throughout the day: My productivity killers are relatively short gaps between meetings (<45m) during which i am completely unable to focus because of the anticipation that i will soon be completely distracted. So if I have three 1hr meetings with 45minutes gaps between them, my daily productivity plummets to nearly 0. Open office plan also doesn't help with staying focused.

</comment></comment><comment><USER32> (Throwaway for honesty)

Significantly less now that I work remotely, on my own schedule, and at a reasonable company. I get 6+ hours a day of real work in, usually more, but try not to overdo it. (For awhile I was becoming a bit workaholic without the boundary between work and not-work, spending 10+ hours at it.) I take breaks and do spend a little time on HN or Stack Exchange to clear my head, but I don't do Reddit, webcomics, facebook, or any random sites during work. That's my relax after work stuff, done on a different PC. So in terms of productivity, I'd say around 75-85% work, 15-25% slack most days.

I previously worked an 8:30-5:30 where management measured productivity by the butts-in-seats metric, scheduled a lot of meetings, and was quite anal about punctuality. I was lucky to get 4 hours of serious work in most days (between all the interruptions, bureaucratic stuff, and having to work based on my manager's sleep schedule). Sometimes I ended up doing more work at home at night than I did while 'at work'. Maybe 50% productivity, often less.

Before that I worked at a 9-5 where we had to record our time per task so specifically that we even had a task to enter the time spent filling out the timesheet. I could have done better there about focusing on solving problems and improving business if I wasn't constantly distracted by the clock ticking and all the estimating and meetings about estimates and deadlines and timesheets. Maybe 50% productivity.

</comment><comment><USER33> Hm. Given an average week, probably on average 35% of my day is not working. Average being a reasonably interesting bug and/or project to sink my teeth into. Somedays I'll work 10 hours. Others I'll work 4 to 6.

Unlike most people, if I finish my work in 5 hours, I go home. If I'm not going to be working, I'd rather not be working at home. I've never had any complaints about work quality or throughput. I have had one complaint about not being seen in the office.

[edit] clarified the 35% bucket

<comment><USER34> How do you assess "finished my work"? Unless you are working on tickets that might stop coming in is really hard to be "out of work", specially in projects.

I ask this because I see a lot of people saying the same but there's always more work to do, being testing something that should be working, fixing bugs, refactoring that old piece of junk you left behind due to times constraints, etc.

<comment><USER33> For me, it starts during sprint planning. I know what work is going into the sprint, and what work is being assigned to me (we don't run sprints in the natural way of grabbing the next card that's free. I disagree with it, but it is what it is). So I plan out what I need to do on a day-to-day basis to finish that amount of work. For a normal sprint (i.e executing on plans and agreed upon designs) I try to plan the day to be ~6 hours of coding work a day. Sometimes my estimates are long and I finish in 4 or 5 hours. Could I start on the next card? Absolutely. And if I finish all my work early, I'll pull something from the backlog.

But in general, I find it more sustainable to just go home after I finish in 5 hours because I know there are going to be times that I work 10 or 12 hours (or a Saturday). Also, for me, depending on the next card, it might take an hour or so to get going at the end of a day. So I'm now at 7 to 8 hours which is when I normally leave. Was that hour or two wasted? No. I retain the knowledge till the next day. But again for me, I've found that coming in and starting a new task fresh reduces that one or two hours to less and gives me a singular focus for the day.

If I finish in 2 or 3 hours, I always move on to the next task. That would be silly to go home after 2 hours (most days).

I adapt this style for wherever I work. It has worked for me at start ups as well as BigCo.

[Update] For the side things (refactoring messy code, flakey tests, automating a tedious process, etc.) - I create cards/tasks for them and get them into the sprint.

I know this makes me sound like a "terrible" employee. But it allows me to give my best on a more sustainable basis. And if it is something that truly needs to be done in a month, I'll work those 10 or 12 hour 7 day work weeks...

<comment><USER35> How do your coworkers feel about you only being a few hours at the office?

<comment><USER36> They probably make snide remarks because they don't understand that someone executing according to plan, consistently over several years and projects, working 5 hours per day, is more valuable than someone working 8 hours in a less organized manner and sometimes missing deadlines.

<comment><USER37> It sounds like you're only allocated to one project at a time, correct?

In many big corps it's common to be on four or five projects at any one time. Finishing one discrete piece of work is only a signal for the next project manager to appear at my desk and demand that I get working on _his_ piece of work.

And I can see his perspective, he doesn't particularly care if i was super- productive that day on Project-A when he's managing Project-B and there are still hours left in the working day.

</comment></comment></comment></comment></comment></comment><comment><USER38> I have recently gone freelance/self-employed and I have quickly missed the reality of being able to not have to question if I'm actually getting work done every minute of the day. The truth is, I can't do brain-intensive work for more than maybe 5 or 6 hours.

<comment><USER39> I worked for myself for about a decade (web dev) and always considered getting 6 billable hours in a good day.

<comment><USER40> as much as keeping the pipe full and working for organizations that...have such internal problems they have to hire contractors does kinda suck.

working when you feel like you can contribute, billing exactly those hours, and filling the rest of your time with activities of your choice feels very honest and liberating.

if i feel like i can't get things done because of the environment then i don't work, and i don't bill. if i finish a job and they have no more work for me then i say, thanks, keep me in mind, let me know if you have any problems.

not really a capitalist, but the transactional nature removes all the festering emotional complications. and you can be a lot more straightforward about where things are broken.

</comment></comment></comment><comment><USER41> I have a follow up question: For the time that you spend "not working" would you prefer to "work"?

For me the answer is "absolutely!!!". Reading through some of the responses, it really seems that people are mixed. Either their "non-working" time is spent with side projects/training or they have become demotivated by problems with the work flow on their team.

For me the latter is by far the biggest problem. I was just thinking the other day that, as programmers, we need a kind of statement that indicates what we expect from the organisations we are in.

To be honest, I really want to work instead of write stuff on HN, so I'll leave this as an exercise to the interested. As an example, I think it is reasonable to expect to be able to spend whole days writing code (which means that someone else has to go to the meetings, and someone else has to clarify requirements, and someone else has to prioritise). There should be some clear resolution of differences of opinion (whether that be in technical direction, or whatever) -- a programmer shouldn't have to spend time arguing. A programmer should expect to have spaces both for interacting with groups of people and for quiet contemplation. I sure there are other (and better) ideas, but that's what I have off the cuff.

<comment><USER12> I got sick of feeling like I am wasting my life away at work not working, so I submitted my resignation. Time to get on doing my own things so I don't feel I'm wasting my little yet precious time alive. After a few meetings, I am not quitting yet. I have been re-classed from salary to hourly and I will be able to have fewer and more flexible "hours" so that I can get out and do my own thing and side projects (which require business hour meetings/calls/etc).

</comment></comment><comment><USER42> Reading this thread has made me feel a whole lot better about myself. Been struggling with burnout and have been working on side projects a good 50% of the time while I overestimate projects to give me larger buffers. I just don't give a fuck anymore. I thought I was alone.

(Yes, I know it's wrong and I _want_ to be more productive, but I hate the work I do and I hate the culture here. So I want to start my own thing.)

</comment><comment><USER43> Developer here. Going by my time Rescuetime logs, 62.5% of my time is spent outside of the IDE or any other work related application. I do not enjoy this work and spend a lot of time walking around/thinking about the problem/surfing non work sites.

<comment><USER44> Thinking about the problem is working.

</comment></comment><comment><USER45> I spent 60-70% of my time not working because even though I'm working with interesting technology, it's stuff that won't get used by almost anyway, my peers don't seem interested, my manager is absent and the requirements are all over the place (symptom of nobody caring, whatever is done is okay as long as it impresses, for some random definition of "impresses)...

... so it needs to be done to check an item in a list but nobody cares. If nobody cares, I don't care either, which makes me think I'm wasting my time, which leads to depression, feeling burnt out, procrastinating even more, etc.

</comment><comment><USER46> Unfortunately I'm paid hourly and remotely, so while getting settled, checking an email or two, getting coffee, etc are all things I would do as part of a normal workday, I don't tend to log those hours or get paid for any of it

</comment><comment><USER47> I spend around 90% of my time at work doing real work. There are often days where that number is nearly 100%. At past jobs that number was closer to 50-60%, but I've moved into a lead role (Marketing Director) where slacking means getting buried. I don't mind it one bit, either. I'm helping to steer the company and that's very rewarding, even if it is a lot of work.

</comment><comment><USER48> I record my time pretty religiously. 5 hours seems to be a standard "working day" of actually solid in the flow (face buried in a screen) work, assuming I'm sat at a desk for 7/8.

That said, if I'm rolling and happy it can be way more, if I'm tired/struggling to hit the flow/not creative - way less. I can get an awful lot done in a day (or few days) if I push, but doing that long term becomes counter productive.

On a regular day, I'll also get a bunch of smaller 'work' done, but it's mostly the admin-y stuff. Sales, email, help, calls, networking. Sometimes that can be my whole day - I suppose it depends how important those things are at the time (sales!) as to how much they're considered 'work'.

Edit: Just to add, decent headphones are a godsend.

</comment><comment><USER49> In all honesty, I try to stay full throttle at work.

Important breaks I do take: Coffee walk (unfortunately on some busy days I simply can't make it out), Quick chats with the team, and Pomodoro-timed walks to stretch/ease the mind.

I usually eat lunch at my desk, which annoys me, because I always want to socialize and be better at that. I don't find it easy to do this since the days are so busy.

I'm a product manager, so I spend much of my days in meetings that are a mix of working sessions, scoping exercises, communications with external clients, and team-focused meetings.

On the days I don't have any meetings (they do exist), I zone out and get some work done. Lately I've been focusing on the DevOps for our team.

</comment><comment><USER50> It really depends on the day. Sometimes I've got basically nothing to do whereas other times I'm overloaded and there basically isn't a moment I'm not. It's hard to figure an average.

</comment><comment><USER51> Working from home. Last month I tracked 270h on my Mac workstation: 190 hours (70%) were productive, 24h (9%) neutral tools, and 56h (21%) distracting (mostly chats with friends).

I also spend 1-2 hours a day on my "leisure laptop" (for example reading HN from there but also some useful RSS feeds). So it feels like 65% would be a correct productivity score.

Tracked with [https://qotoqot.com/qbserve/](https://qotoqot.com/qbserve/) of course, most of the productive time was spent on its development and marketing. :]

<comment><USER52> Also use that app. But because of single machine for job and everything else my stats is around 45-50% productive, another ~10% neutral.

</comment></comment><comment><USER53> Busy day = only when I go to the toilet

Quiet day = maybe half my time

Most of my days are busy; if I'm not busy with my main work then I'll be busy making the more mundane aspects of my job disappear into the background.

 _edit: formatting_

</comment><comment><USER54> It depends on how talkative my coworkers are that day.

</comment><comment><USER55> Probably 25% on the average day. Occasionally 0%. There are entire days that I'll spend working on nothing but side projects, but our company is getting big so no one notices or cares. Sometimes I work from home just so I don't have to do anything other than be around for a couple meetings.

The bigger we get the more lawyers and compliance people we ad, and the less noticeable it is that I'm not doing shit.

<comment><USER56> I find this brutal honestly hilarious

</comment></comment><comment><USER57> I use RescueTime. Productive time is about 90% each month.

The reality is that 100% of my time, if meetings are included, is productive (excluding minimal breaks).

I feel sorry for the people trying to run businesses with all of these employees not working.

I'm a QA engineer. The most experienced QA engineer on a 3-person team (the other two have either more experience with testing but less with development, or vice-versa). I have waaaaay too much to do to get away with not working.

I do empathise with those for whom maintaining a high level of productivity is impossible because of how demanding their work is. I'm fortunate that I have so many different tasks to perform that if I don't have the energy to concentrate on something demanding, I can switch to something fairly basic.

I'm also fortunate in that, for me, problem solving activities are almost always energising. So if I feel like I'm getting burnt out I can dive into one of the tricky but non-urgent problems I hadn't got around to yet.

</comment><comment><USER58> I consider myself rather productive compared to most devs I've worked with. On a good day, I spend 75% of my day "working". On a normal day, it's closer to 50/50\. I'm a tech manager, though, so the "good" days are when I'm really busy all day long, and the "normal" days are when I spend most of my time coding. Like others have said, it's really difficult to do more than 4 hours of solid coding in a day, particularly if you're interrupted frequently like I am.

That said, I don't necessarily care that much about the hours my employees work, so long as they meet the deadlines and are reasonably productive. I have a good idea of how long a task takes, so if they take too much longer than that, we'll have a chat. Otherwise, I just want to make sure they're happy and not burnt out and staying as productive as possible.

</comment><comment><USER59> Do you count meetings as "work", or as "not work"? (I don't spend much times in meetings at my current job, thankfully, so it doesn't change the question for me.)

Honestly, my best guess is 50%, or close. I still get my work done as fast as everyone else, though. No complaints on performance reviews.

<comment><AUTHOR> Eh, let's assume that it's work in that you're not able to just freely browse HN or work on a side project. What would your % be then?

</comment></comment><comment><USER60> Definitely depends on the day.. some days I'm working the entire shift, other days I get paid to just sit here and work on my side projects. I work for for a project-based department and with that comes deadlines that could mean I have to be done within 3-6 hours which can be stressful.

While our company goes with the rest of the world, I wish the company would consider 10 hour days 4 days a week, with half the department working in the earlier part of the week, and the other half working the later half of the week instead of all of us working the traditional 8 hour days 5 days a week.

So I make the best of it and enjoy those days where I do mostly nothing the entire time. But I'm never not doing anything.. I build web apps and run a popular website, so I'm always kept busy.

</comment><comment><USER61> I recently started my first full time job associated with my career. I'd say I spend between 65-80% either doing my work or something related to it such as training or reading documentation (which take up about 20% of my time at the moment).

</comment><comment><USER62> According to RescueTime, I spend around 83% of my screen time on "productive" things. My total screen time averages about 25 hours / week, whereas my at- work time is roughly closer to double that. I'd say that 67% of my off-screen at-work time is "productive" meetings and the other third is things like lunch, walks, etc.

Putting this all together, I spend 37.5 hours / week productively and 12.5 hours / week at work slacking off (or doing human things like eating and pooping). So call it 75% productive time.

I generally enjoy my job. I've counted writing this post / assembling this data as "not productive" time.

</comment><comment><USER63> It is an interesting question which, in my opinion, hinges entirely on a fairly puritanical notion of 'work.'

One of my 'problems' is that I can't "not work" in the sense of a laborer who is no longer building widgets. As a person who is asked to solve complex problems with a high degree of dimensionality inside of an arbitrarily constrained solution space, much of the 'work' I do consists of turning the problem over and over in my head while I explore the solution space.

A good example of this was an early review I got at Intel by my manager (a really solid EE type guy). He added some criticism of my time management (considered a 'ding' in the vernacular) for a embedded compiler/assembler/driver thing I wrote as part of the evaluation of a graphics processor. He said I had 'sand bagged' the time estimate.

When I asked him to describe that a bit more he explained that I had told him it would take 6 months to do, and it was 2 weeks late, and I had spent 5 months "goofing off and not working" and then about 6 weeks doing the work. So my estimate should really have been '8 weeks' and if I had started on time it would have been done two weeks earlier than that.

I thought about that for a long time. And explained to him the for five months I had no idea what the best way to write the software was, and in that five months I had learned about 8 different technologies that all came together into the final solution. I had to learn how to write device drivers in Xenix, how to map I/O space memory into the kernel, design a language which was human understandable and could be compiled into the odd little RISC instruction set of the Graphics chip. And until I had figured out all of that precursor information, I didn't have a clue how it would be written, but then after figuring out that information actually writing the code was fairly mechanical.

In this one case the problem was that hardware has so many great milestones you can call out, parts captured, schematics done, netlists verified, layout started, design rule verification, first films, films checked, first boards, boards checked, first assembly. Bringup in stages 1, 2, and 3 etc. All along the way there are pleasant milestones to say "this is done" now on to the next thing.

But software is _never_ like that for building something that nobody has ever built before. And it is even rarely like that when you have the same software but you are building it on a different system. The linkages, the entanglement between the system and the software (and now the network and the services) makes each new implementation its own special snowflake, with its own kinds of problems.

Have you ever woken up and "knew" the solution to a tricky software issue? Or had an idea for a change to an existing system that might make it better? That happens to me all the time when I'm designing stuff. And a case could be made that I'm working even when I'm asleep! Not because I'm sitting there typing in lines of code but because I'm going through the solution space, somewhere in my subconscious, looking for clues to places that hold better answers than the answer that is currently checked into the git repository.

As a result I tend to measure my own productivity by 'solutions over unit time' versus 'hours typing into employer owned equipment'. It still bites me from time to time when a supervisor needs a constant stream of 'still flying' type status messages to feel comfortable.

<comment><USER64> Interesting. So despite the apparent success, your manager put on paper that you were "goofing off and not working"? Did he mention that verbally one or two times beforehand? How did you react?

Once things hit paper, I generally start interviewing. Not sure whether that was right. But looking back over my career, I usually should have left earlier rather than later in those cases.

<comment><USER63> It was verbal vs on paper. What was in the review was that I needed to improve my time management. And oddly enough I left for Sun Microsystems not to long after that, but not strictly because of the review, rather it was that I preferred a work culture that understood what programmers did in addition to understanding what EEs did.

And for what its worth, I took it to mean that I wasn't communicating _how_ I was spending my time well enough and suggested ways that would work for both of us. I expect that had I stayed at Intel it would have been fine.

<comment><USER65> I've a hard time communicating what I'm doing in that "research" phase.

During standups, most people are reporting concrete tasks that got done and I feel a bit embarrassed to say I spent the whole day trying something out that's remotely related to the final product but was interesting for the ideas.

It's stressful to have to report those things, I feel like I have to justify them, what's my train of thought, etc, and a 1-minute update has to turn into an essay. Not really sure how to improve on that.

During your time at Intel did you have to report on your work quite frequently?

<comment><USER63> Intel was my first exposure to "management by objective" and "key results". And yes, there were weekly reviews of your progress. Every quarter, a set of objectives and under each objective key results, and then weekly you reported on how you were doing with respect to those.

I think the key to your stress is either that you aren't clear in your head what you're trying to figure out, or your trying to figure out things that aren't actually relevant. In my life what I have done is to do get very very disciplined about what I'm to understand and how that will relate to the final goal. Not surprisingly that is different as a manager than it is as an individual contributor.

If I were your manager, and you came to me with this (and I would hope your relationship with your manager is good enough that you could talk to them about it) I would start with three questions;

1) What parts of your assignment are you completely confident you can build/write?

2) What parts are you unsure of how to build?

3) What things that you are unsure about are between you and building the things you know you can build?

Perhaps you can imagine how the conversation goes after you answer those questions. But lets say for this hypothetical that you were unsure if you could build a database fast enough to respond in time to meet the response requirements of the product.

At that point we'd talk about what steps you could take to understand what sort of performance to expect out of a database, what variables had the biggest impact on that performance, and which databases were designed to be fast. And you and I would agree that you would spend this sprint perhaps developing your understanding of database performance. So at the stand up I'd expect you summarize and article you read, a set of benchmarks you set up, a set of test tables you created in the existing system, or maybe the top 5 blogs/books/videos you've found on analyzing database performance. At the retro I'd want to know what sources gave you the most information for the time invested, what were the time wasters, if you were more or less confident about the database choice and its performance and maybe how you had, or would, quantify your understanding with something objective.

From your perspective you would probably have spent the time 'surfing the web' to find out various sources of information or perhaps prototyping some things on AWS or on a local server.

If instead you came back and said, "I really don't know anything more about databases yet but I learned Rust, and got stuff running in the new Angular release and updated my server to the latest Ubuntu and read a book on containers. Then we're going to have a different talk :-)

<comment><USER65> That's really very useful, thanks a lot.

</comment></comment></comment></comment></comment></comment><comment><USER66> Depends what you mean by work? I'm reading an article on Async with C#, that's not coding but is work.

I watch some videos on latest tech, thats work too....

Only thing that matters is if have I completed tasks in my sprint or are there any critical issues

</comment><comment><USER67> Reasonably ~5 hours of coding, maybe sometimes less on days with a lot of meetings.

Rest of time on HN, reading, or admin type stuff (planning, ticket & branch management), and of course meetings

</comment><comment><USER68> I have my days where literally ZERO gets done. On days like that, if I can put together a PR with two lines of code, it's a win.

However, most days, probably 4.5 out of 5 on average, I am super productive, taking very few breaks aside from lunch.

In a typical day I probably get 5-6 hours of solid work done. But there is a downside too.

In order to achieve this, I sometimes skip meetings and ignore requests from other people.

I am considered a high performer and seem to be an anomaly to most people.

</comment><comment><USER18> 99% of my 5 hour day. Because I discovered I can't usually stay in flow mode for more than 5 hours, so I get in the office around 12pm and leave around 5.30pm

<comment><USER69> So that's your working time?

<comment><USER18> Yes. When I sit at the desk I start working and time tracking and I don't slack off till I leave, except maybe to browse some music on Spotify to keep me concentrated.

When I was spending 9 hours/day as an employee, I'd be slacking off a cumulative 2/3 hours every day.

</comment></comment></comment><comment><USER70> Does depend on what you call "working". I deem the time I spent on tech sites like HN as working. So does my boss. He similarly considers the time I spend at the odd tech conference working. There are good reasons for this - I drive change around here, and most of that change originates from exposure to ideas from those sources.

If you could that (and I do), I'd say at least 75% of my time is spent working.

</comment><comment><USER71> Depends how you want to define work.

I think of stuff that is beneficial to the company in one way or another like 95% of the time.

Re structuring thoughts, digesting ideas.... talking to others to understand how they think.

But if someone that did not know me came and looked at what i did during work hours and did not get to ask questions to me. I would assume they would think that i only worked 20-25% of the time.

Things are not always what they seem.

</comment><comment><USER72> I'm surprised by the responses here. I didn't think it was as prevalent as comments suggest. At the beginning of my career it was probably around 50%, though after spending two years at a consulting company, it's dropped to 5-10% maximum. I find that reducing interruption and having music going keeps me engaged.

</comment><comment><USER73> Days at the office mean meetings and socializing. Its not really working but hey I get paid.

Working from home is getting things done.

</comment><comment><USER74> 90%, not including lunch.

The other 10% is making tea and drinking some, usually looking out the window or chatting with someone.

</comment><comment><USER75> These days less than 10%. I take lunch and a coffee break or two though.

I used to read reddit and hn to saturation on many days before getting into consulting; these days, i hardly read anything until before or after my core hours, not because i can't but because there is more interesting work to do

</comment><comment><USER76> At least 90%. If I'm at work and not working, I'm usually working on one of my own projects.

</comment><comment><USER77> Not counting lunch break, I'd say I probably spend ~90-95% working.

</comment><comment><USER78> When I worked for other companies I would say I worked around 70% of the time I was "working". When working for myself I think I am putting 60-80 hours of real work in a week.

</comment><comment><USER79> I only spend around 5-15% of my time at work, not working.

Work in my context is time spent on things I planned to do and want to do, including the small breaks I take to recharge and socialize.

</comment><comment><USER80> I believe I'm productive for about 70% of the time. I'm most distracted when I'm swiching to other project. I need to re-focus again.

</comment><comment><USER81> 100% of the time, because I do what I love.

</comment><comment><USER82> My number are all over the place but according to WakaTime about 152 hours last month was spent in the IDE.

</comment><comment><USER83> aderall keeps me going anyways. probably 2-4 hours depending on the day.

</comment><comment><USER84> 0%. I work as a upwork freelancer. More precisely by hourly rate and upwork desktop app takes screenshots at random times, so i can't really browse HN and other sites. But I will tell you honestly, i don't want to go back to normal work. I get shit done( there is also that "gambler" feeling, when you see how much money you earn each week ) and in good quality( I get reviews from my clients, so i can't code bad either ).

So yeah, a hour paid is a hour worked.

</comment><comment><USER85> If I have to go to the office: maybe 2 hours a day of actual productive work.

If I work from home: usually 4-6 hours of productive work.

Going to the office adds up to a ten-hour day, with the commute. Working from home is usually a 6-7 hour day, and I get to stay in my pajamas, take the dog for a walk, take a break to do some housework, and be in a comfortable environment.

I don't work from home enough anymore.</comment>