Julia 0.2 released - <AUTHOR> https://github.com/JuliaLang/julia/blob/05c6461b55d9a66f05ead24926f5ee062b920d6b/NEWS.md <comment><USER3> julia seems to be positioned as a kind of matlab / r replacement. but i'm finding it works very well as a faster python, for the kind of programs i am writing in my free time (learning about / analysing block ciphers, most recently).

its big idea is multiple dispatch, like clos (oo-lisp) multimethods. where you would define an "underscores" method in python (ie to extend the language for a new class), in julia you define appropriate functions for that type - <USER2> cute thing being that the new type doesn't have to be the first parameter.

so, for example, the equivalent of

        class Foo:
            def __repr__(self):
                ...

would be

        function show(io, f::Foo)
            ...
        end

and the end result is something that has more of a FP flavor than python. it's very appealing.

if you're looking for a "dynamic scripting" language that takes some of the good bits from static typing, and has decent performance, it's worth a try.

<comment><USER4> I think another big advantage of CLOS that Julia took is that you can dispatch on the type of not just the first argument but on the combination of the types of all the arguments

<comment><AUTHOR> Multiple dispatch is very powerful paradigm and Julia takes it a good bit further even than CLOS. There's a good comparison of Julia and CLOS in terms of parametric types and dispatch in Julia's Wikipedia entry:

[https://en.wikipedia.org/wiki/Julia_(programming_language)#L...](https://en.wikipedia.org/wiki/Julia_\(programming_language\)#Language_features)

It also compares with Dylan and Fortress, which are the other major non- research multiple dispatch languages. The unique combination of features that Julia has is

1\. a fully dynamic type system (code with type annotations is still dynamically typed)

2\. functions are all generic by default, including all the built-ins and operators

3\. support for parametric types that you can dispatch on.

This combination of features working smoothly together turns out to be very powerful, especially when designed so that you don't have to talk about types except when you want to.

<comment><USER5> > Dylan and Fortress, which are the other major non-research multiple dispatch > languages

What about R with S4 classes?

<comment><AUTHOR> Fair point, although R's multiple dispatch barely counts as a language feature at all, but is really more of a standard add-on library (read on). All S4 is doing is using a hash table keyed by method signatures to look up which function body to call. You don't even need any syntactic support since "defining a generic function" is just a matter of defining a function that does a hash lookup and then applies that function to its arguments. R doesn't provide any syntactic support for adding methods to generics – you literally have to give it a vector of strings of argument class names. Since you can do all of this in any language – even C – it's arguable that multiple dispatch isn't really part of "the R language" at all, but rather "the R system" happens to ship with a standard implementation of hash-based multiple dispatch and a few of the built-in function like "show" and "plot" are defined using it.

Due to not being a deep language feature, S4 lacks some crucial abilities. It doesn't support any sort of type hierarchy besides the special "ANY" class. Without the ability to define a type hierarchy and program to abstract types, most of the power of multiple dispatch evaporates. Even though it is technically an implementation detail, I've found that performance is a critical feature for multiple dispatch to really come into its own. R's S4 dispatch has been described as "slower than S3" [1] – and S3 dispatch is not exactly fast. Unless really basic things like + and array indexing can be generic and usably fast, you're not really cooking with gas.

[1] [http://www.r-project.org/conferences/useR-2004/Keynotes/Leis...](http://www.r-project.org/conferences/useR-2004/Keynotes/Leisch.pdf)

<comment><USER5> Thanks for the explanation. What do you mean by "It doesn't support any sort of type hierarchy"? I've contributed to a package that defines some S4 methods on a base class and relies on that implementation being called on derived classes as well.

<comment><AUTHOR> This may be a misunderstanding on my part because I am by no means an R expert (I've done a fair amount of stats work in R, but no library development). Can you add a method for base class "Foo" which will automatically apply to "Bar" which is a subtype of "Foo"?

<comment><USER5> As far as I know, yes, this works just fine. We rely on this in the BiocParallel package in Bioconductor.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> To quote the mailing list announcement [1]:

> We will be supporting a 0.2 line of releases that maintains compatibility > with 0.2 with minimally invasive bug fixes, so this is a good time to switch > to 0.2 for production systems.

This release was a fairly long time coming from the previous 0.1 stable release. If you've been considering trying Julia out but were worried that it was moving too fast (it's been moving pretty fast), this is a good time to try it out. Not only will the 0.2 release line be supported with minimally invasive bugfixes, but also the 0.3 release is going to largely consist of performance improvements.

[1] [https://groups.google.com/forum/#!topic/julia- users/-lh_g9eH...](https://groups.google.com/forum/#!topic/julia- users/-lh_g9eH4bk)

</comment><comment><USER6> For anyone interested in using Julia for numerical optimization/mathematical programming, see [http://juliaopt.org/](http://juliaopt.org/).

We have pure-Julia implementations of standard unconstrained methods [1] as well as a domain-specific modeling language [2] for (integer) linear programming with links to open-source and commercial solvers. Julia's performance and advanced language features such as metaprogramming really make it a great language for optimization [3].

[1] [https://github.com/JuliaOpt/Optim.jl](https://github.com/JuliaOpt/Optim.jl)

[2] [https://github.com/JuliaOpt/JuMP.jl](https://github.com/JuliaOpt/JuMP.jl)

[3] [http://www.mit.edu/~mlubin/juliacomputing.pdf](http://www.mit.edu/~mlubin/juliacomputing.pdf)

<comment><USER7> Here are the slides for a recent talk we gave about JuliaOpt:

[https://docs.google.com/presentation/d/1FlHt245YxPXFwOHmxLYW...](https://docs.google.com/presentation/d/1FlHt245YxPXFwOHmxLYW1z5_QjdCYHVPjy5Zo12lx1I/edit?usp=sharing)

</comment></comment><comment><USER8> I cannot express how much I want this project to succeed! Congratulations and keep it going!

</comment><comment><USER9> Congratulation to all of you, thrilled to see all the new improvement that will arrive in next version !

</comment><comment><USER5> I'd love to switch to Julia, but I rely on a lot of packages that are only available in R (e.g. lots from [http://bioconductor.org/](http://bioconductor.org/)). Is there any way to call R code from Julia?

<comment><USER10> [https://github.com/lgautier/Rif.jl](https://github.com/lgautier/Rif.jl) is what you're after.

The code to call R is a bit ugly, but it looks straightforward to learn.

</comment></comment><comment><USER11> After using it for smaller projects, one of the few things I don't like is multidimensional arrays. I would prefer if only arrays of arrays were possible and had some syntax sugar.

Edit: And perhaps some special treatment by the compiler for optimization. I find multi-d arrays counter-intuitive and clumsy on some situations. Also, currently I'm forced to write ugly code like array[x,y][i].

<comment><AUTHOR> You can of course use arrays of arrays if you like, but multidimensional arrays are indispensable for numerical work, especially linear algebra – matrices are 2D arrays after all. When doing numerical work in C, for example, you have to simulate multidimensional arrays by doing your own index calculations to translate back and forth between linear indexing and N-d indexing. Having language support for this is a must if you want to target numerical programming.

<comment><USER12> I'm confused about your reference to C. C has multidimensional arrays, and all the elements are laid out contiguously in memory. No index calculations are needed, it's all done by the array indexing operation.

If you have this code:

        int a[10][10];

then:

        &a[x][y] == ((char *)a + x * sizeof(a[0]) + y * sizeof(a[0][0]))

where sizeof(a[0]) is == sizeof(int) * 10.

quick edit: added a (char *) cast so the arithmetic doesn't multiply by sizeof(int) again

<comment><AUTHOR> Right, I should have clarified. That works for statically allocated arrays but not for dynamically allocated ones. Since matrix dimensions are generally not known ahead of time, in real programs you almost always end up needing to simulate multiple indices using explicit index arithmetic.

</comment></comment></comment></comment><comment><USER13> Does anyone know what the state of plotting is in Julia? I couldn't really find any convincing examples for that. For many applications, plotting really is a big requirement.

That said, I look forward to a future where Julia will take over many use cases that are served by Matlab right now.

<comment><USER14> Although there is no definitive plotting option, we are exploring a number of avenues. See:

[http://julialang.org/downloads/](http://julialang.org/downloads/)

With the IPython Notebook and Julia, you can use Gadfly to produce plots right in the notebook without any further installation.

</comment></comment><comment><USER15> How suitable is it to use for mainstream programming (building web app, etc)

<comment><USER7> That line of development hasn't been pushed very hard yet, but the fundamentals are good. For a example, check out [http://iaindunning.com/2013/sudoku-as-a- service.html](http://iaindunning.com/2013/sudoku-as-a-service.html) where I make a nice little webservice.

<comment><USER14> Also if you look through the package list, you will see people doing all kinds of stuff with Julia.

[http://docs.julialang.org/en/latest/packages/packagelist/](http://docs.julialang.org/en/latest/packages/packagelist/)

</comment></comment></comment><comment><USER16> Congrats on the release to everyone involved; very excited about the future!

</comment><comment><USER17> This is a dumb question, but is Julia named after anyone in particular?

<comment><USER18> From an interview:

InfoWold: Why the name, Julia?

Karpinski: That's everybody's favorite question. There's no good reason, really. It just seemed like a pretty name.

[http://www.infoworld.com/d/application-development/new- julia...](http://www.infoworld.com/d/application-development/new-julia- language-seeks-be-the-c-scientists-190818?page=0,1)

<comment><USER19> Really?? I was sure it was for Gaston Julia.

<comment><USER20> Or Julia Robinson: [http://en.wikipedia.org/wiki/Julia_Robinson](http://en.wikipedia.org/wiki/Julia_Robinson)</comment></comment></comment></comment>


NASA to Reexamine Nicknames for Cosmic Objects - <AUTHOR> https://www.nasa.gov/feature/nasa-to-reexamine-nicknames-for-cosmic-objects/ <comment><USER2> Looks like it's only the cosmic bodies formerly known as "Eskimo Nebula" (NCG 2392 [1]) and "Siamese Twin Galaxies" (NCG 4567 [2] and NCG 4568 [2] that are changing right now, but if anything else comes up, or if they have to refer to something with an offensive name they won't use the name.

[1] [https://hubblesite.org/contents/media/images/2000/07/940-Ima...](https://hubblesite.org/contents/media/images/2000/07/940-Image.html) [2] [https://apod.nasa.gov/apod/ap190201.html](https://apod.nasa.gov/apod/ap190201.html)</comment>


ViperDNS closed down - <AUTHOR> https://www.viperdns.com/ <comment><USER2> I trial:ed them. It actually worked.

However, the monthly cost was so low that I got paranoid about their business model. They could do all kinds of MITM things with people who used their DNS rewrite+proxy service, in addition to enabling Netflix...

</comment><comment><USER3> Would love to know more details about what Netflix is actually doing behind the scenes, and why they:

> have to replace servers every 24-48 hours with lots of downtime

Which part causes lots of downtime?

<comment><USER4> Presumably they have to change servers so often because that's how quickly Netflix detects them.

It's extremely unlikely Netflix will publish how they perform the detection, because that would make it easier for people to get around. My guess is that they know where your account should be located based on payment information or previous detection of region-switching services, and they use these flagged accounts to uncover new region switchers.

<comment><USER3> Spinning up servers these days is relatively quick, do you think it's ip addresses that are the issue?

<comment><USER5> There are a finite number of instant-provisioning VM/VPS hosts that such an organization can use, in terms of ASNs and IP blocks which are easily identified by netflix. Once Netflix has blocked a /22 or /20 belonging to a colo/VPS/VM hosting ISP, it's worthless bringing up a new VM with the same host. Repeat 30 times, you've run out of hosting companies to work with.

</comment></comment></comment></comment><comment><USER6> It would be nice to see some stats from more vpn providers since Netflix started blocking efficiently.

</comment><comment><USER7> Humans, we like to build fences.

</comment><comment><USER8> They talk as if the only concern of someone using a VPN is to pirate Netflix.

<comment><USER9> I agree, DNS as a service is still a relevant business model when targeting other use cases. But I disagree with the use of term 'pirate' here.</comment></comment>


Project CARS game's PC System Requirements Revealed - <AUTHOR> http://bestpcinfos.com/project-cars/

<comment><USER2> Project CARS game ?</comment>


Realize – Go build system with file watchers, live reload and output streams - <AUTHOR> https://github.com/tockins/realize <comment><USER2> A bunch of other excellent similar projects have been linked here, and here's mine - a general purpose tool that lets you put together flexible responses to file system change:

[https://github.com/cortesi/modd](https://github.com/cortesi/modd)

The use case here is deep and interesting, and I don't know of any tool that gets it 100% right. HN is often quick to grumble about reinventing the wheel, but where there is no clearly correct solution I think we should encourage experimentation.

Modd is my opinionated take: it differs from other tools by trying to have a "proper" configuration language in which you can embed shell commands, by separating prep commands (that run and complete) and daemons (that run, but might need to be restarted on change), and by being completely agnostic about languages, test methodologies and other specificities of external tools.

</comment><comment><USER3> Too much configuration.

You need literally no configuration: [https://github.com/skelterjohn/rerun](https://github.com/skelterjohn/rerun) (my similar tool, created about 5-6 years ago).

<comment><USER4> Thanks, as soon as I read the title about file watchers I was hoping it would be a simple rerun/restart tool.

</comment></comment><comment><USER5> If I may engage in a little self-promotion, my tool reflex

github.com/cespare/reflex

is similar, but more general-purpose. (It's written _in_ Go, but it's not _for_ Go.)

</comment><comment><USER6> There is also [https://github.com/go-godo/godo](https://github.com/go- godo/godo)

<comment><USER7> Another similar tool:

[https://github.com/smartystreets/goconvey](https://github.com/smartystreets/goconvey)

</comment></comment><comment><USER8> I always get anxiety when I read about these tools. In Windows, the kernel drops file update notifications all the time. There is a fixed sized buffer for them and overflows do happen.

I've not read the Linux code for them, but I think the implementation is probably similar.

This is not something I'd like to rely on.

<comment><USER9> I keep hearing this repeated, but when I've ran tests on this in the past (ReadDirectoryChangesW is the name of the function, if I recall correctly) it was actually quite difficult to lose messages.

<comment><USER8> For normal user behavior you will rarely encounter a problem. But build systems tend to update/create files very quickly. If there was a workload which would break ReadDirectoryChanges, it would be this one.

Reading the code for Realize, he gets the directory watching facilities from [https://github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). That library seems to drop the 'buffer overflow, please reset your assumptions' message. So if it did happen, I don't think the user would have a good experience.

If you do ever depend on ReadDirectoryChanges, you do need to fallback to stat-ing files if you get an overflow. Otherwise, your milage may vary.

</comment></comment></comment><comment><USER10> Finally!

<comment><USER3> Finally? :) There are at least three tools that do something similar that I have known about for years.

<comment><USER11> There are way more than three, literally dozens and thousands more DIY.

<comment><USER3> There certainly are, I'm just talking about the ones I know :)</comment></comment></comment></comment>


First Opinion Lets You Text A Doctor Anytime - <AUTHOR> http://techcrunch.com/2014/01/14/with-1-2m-from-greylock-yuri-milner-and-500-startups-first-opinion-lets-you-text-a-doctor-anytime/ <comment><USER2> I also feel like people will just throw mundane questions at the doctors and it won't even be worth the time to ask. Even now if you call and ask your doctor a question they will ask you to come into the office.

</comment><comment><USER3> Sounds like a good idea until you realise that some people will bombard their doctor with questions all the time.</comment>


Ask HN: Which companies have the best api documentation? - <AUTHOR> Sooo, I just had to integrate with a pretty crappy api with even worse documentation.
In order to be a good tech citizen, I'd like to offer some examples of companies that have gotten documentation "right" to the vendor I'm working with.
Which companies have particularly great api's and accompanying documentation?
Please reply with links and reasons ;) <comment><USER2> A bunch of companies use Swagger/IO Docs for their API docs, which allows you to enter parameters and actually try it out right there on the page - you can see the actual http request and response.

When it comes to API docs, my ideal preference is for curl command-line examples, since that is sort of a universal "least common denominator" that works anywhere, everyone can understand. It also takes your particular client out of the equation.</comment>


Where does your Node.js program spend its time? - <AUTHOR> http://dtrace.org/blogs/dap/2012/01/05/where-does-your-node-program-spend-its-time/

<comment><USER2> LOL, what time?</comment>


Chrome will soon ad-block an entire website if it shows abusive ads - <AUTHOR> https://www.theverge.com/2018/11/5/18063906/chrome-71-update-abusive-ads-blocking-december-2018 <comment> move-on-by If they cared about their users then they would follow suite with Firefox, Safari, Opera, and even IE to block intrusive tracking [1]. Instead they take this anti-competitive action and increase the amount of tracking by auto- logging users into their browsers.

[1] [https://www.eff.org/deeplinks/2018/11/google-chromes- users-t...](https://www.eff.org/deeplinks/2018/11/google-chromes-users-take- back-seat-its-bottom-line)

</comment><comment><USER2> With their tight grip on the internet ad market, this is trundling dangerously close to anti-competitive behavior. They must feel very secure in their lobbying efforts.

</comment><comment> 2-chainz As the article alluded to at the end there, this is yet another reminder that Google has way too much control. It's easy to hop on the bandwagon without reading into the implications here because almost everyone hates instrusive ads, but letting one company decide what does and doesn't get to be content on the web isn't healthy for a free internet.

<comment><USER3> The internet is in an uncomfortable position.

On one hand, users hate more intrusive ads.

On the other hand, if some people on the internet show intrusive ads while others dont, it's the people who show intrusive ads who will end up making most profit.

Google is trying to use their monopoly position to break out of that cycle.

</comment></comment><comment><USER4> Google's primary business is selling ads but they ad-block any website they consider "abusive"? How does that make sense? What stops them blocking all ads except Google ads?

<comment><USER5> Given the separation between chrome and ad words, I think the abusive ad could even be from google..

> How does that make sense?

Lack of regulation has led to Google erecting its own rules and Chinese walls that may or may not hold up to eventual challenges?

> What stops them blocking all ads except Google ads?

Google specifically wants to prevent its own ads on a web site marked abusive or otherwise imperfect. In general, Google is willing to forgo space to try to guarantee what brand marketers want. If some large brands stop bidding on a class of ads over any concern, Google looses a lot more value in its real estate than if it has less real estate.

<comment><USER4> > Given the separation between chrome and ad words, I think the abusive ad > could even be from google..

I'm not trying to get investment advice or trying to manipulate the market, this is an honest question. How should investors react in situations like this? If Google Chrome's this new feature ends up being very effective, Chrome will be more successful but Google will have less ad revenue (possibly). Is GOOG safer now or what?

<comment> move-on-by This has no negative effect on Google- but it is anti-competitive. If you read the title again you'll see it's only about blocking abusive ads- not abusive websites in general. Google's own advertising will not trigger this since google itself has already approved them. There is a 30 day review period for website owners to remove said abusive ads- so you can rest assured knowing that google will not flag a website to remove google ads. This new feature is definitely not an ad blocker. It's much more inline with a competition blocker or even a censorship tool. If not anti-competitive, perhaps it's come from new work being done for China.

</comment></comment></comment></comment><comment><USER6> Porn websites would hate Chrome and google!</comment>


ARM's dominance in smart phones is rooted in the 1980s - <AUTHOR> https://en.wikipedia.org/wiki/ARM_architecture#Collaboration:_ARM6 <comment><USER2> I have to admit I don't like ARM. I remember seeing an interview with them after they introduced a new processor virtualization feature. The interviewer was excited because the technology would allow any operating system to be installed on an ARM processor. The spokesperson for ARM laughed and said of coursr but it would never be used that way. It was instead going to be used to allow licensees to lock away access to the physical processor ensuring all code could only be ran through the virtual processor giving vendors total control of anything ran on the processor. He then went on abou how ARM simply designs and licenses it's processors and it was up to the licensees if they wantes to sell a processor capable of running everything. He laughed again and said, but we all know that's never going to happen.

<comment><AUTHOR> Those things are choices made by ARM device vendors. There are tons of open devices like the Raspberry Pi that use ARM processors, and x64 devices can be locked down just as effectively using TPM and system management controller features and secure boot.

<comment><USER2> Ya I know. Their licensing scheme gives them the ability to wave their hands and say not our fault, while specifically building the functionality in for vendors to lock awayand your right I'm not even going to get started on my feelings about secure boot. I've found I'm fairly diaagreed with on that so I'll just leave it.</comment></comment></comment>


Chip factory spending to hit all-time high of $67.5B in 2019 - <AUTHOR> https://venturebeat.com/2018/09/17/chip-factory-spending-to-hit-all-time-high-of-67-5-billion-in-2019/ <comment><USER2> China spends ~$60B from 2017 to 2020, lower than what I expected but as we are approaching the end of 2018 So far they have nothing to show yet.

>Of the 78 fab construction projects starting construction between 2017 and 2020, 59 began construction in the first two years (2017 and 2018), while 19 are expected to begin in the last two years (2019 and 2020) of the tracking period.

There are only a handful of construction project from SK Hynix, Samsung, Micron, TSMC, UMC, Samsung, GF, Intel combined. And that represent 80%+ of DRAM and NAND market as well as 80%+ of Fab market. Where are the rest of these 60+ construction projects coming from?</comment>


Ask HN: What snacks, food, or drink do you like to have while programming? - <AUTHOR> Foods with sugar really help me to focus, but I was looking what everyone was munching on. Especially, since I was thinking of reducing my sugar intake. <comment><USER2> I gave up soda several years ago. Switched to drinking water and Vitamin Water Zero. The Zero line contains Truvia and a little fructose. It was the only drink that fulfilled my sugar cravings without all the sugar. I do drink coffee as well.

</comment><comment><USER3> Black coffee and fruit</comment>


Interview with PacMan Game Designer Toru Iwatani - <AUTHOR> http://programmersatwork.wordpress.com/toru-iwatani-1986-pacman-designer/

<comment><USER2> It is a 1986 interview published in the book Programmers at Work, now republished on the web 20+ years later by the author.

It would be interesting to redo those interviews again and compare... How much the perspective has changed?

<comment><USER3> It's interesting that the John Warnock interview, on Postscript, has not dated in the least.

John Page's article, has dated somewhat with its mention of candidate programming languages, but it's the one I searched out, as his discussion of the philosophy behind pfs: File is one that has always profoundly influenced me.

Link and quote: <http://programmersatwork.wordpress.com/john-page-1986/>

>But here is the real "grabber." The programs that are more difficult to use make a selling point out of that difficulty. They turn it into a feature: The user of a complex system can specify exactly where the columns go, whereas PFS puts them where it wants. The truth of the matter is that almost anybody who uses the more complex program changes the report five times before it looks just right. Or else they put up with a rotten-looking report. I question if that's productive.

<comment><USER2> From that link:

 _Back then, five years ago, there was no C, so it was a choice between BASIC, Assembler, or Pascal._

Things already changed quite fast in the eighties...

<comment><USER3> And even then, there _was_ plenty of C, it just hadn't migrated down to small memory microcomputers yet.

By the mid-Eighties I was doing some dev on C on the Amiga, and on Sun boxes at Uni.</comment></comment></comment></comment>


Ask HN: Seemingly unable to recover from burnout. Please advise - <AUTHOR>
 Dear HN, Writing this post has been difficult for me. It has been months of procrastination before I've been able to put "pen to paper" on this.
tl;dr. I am suffering from what appears to be extreme burnout from programming/working at a startup. Half a year of "time off" has done little to repair me. I seek advice on how to get my life back on track and move forward.
I cut out of a ton of details in order to make this post as short as possible. Even so, it is a bit lengthy. It is about 4,000 characters, which is over the HN limit of 2,000. I have the full text pasted here. https://pastebin.com/0kx5jfrK It is a short read. Definitely under five minutes. Thank you for reading it.
Let me preemptively respond to some possible suggestions: 1) Exercise. I've been exercising daily and eating healthy for years now (well before X). That's not my issue. 2) Travel. I have been traveling more with my time off, both international and domestic. While I enjoy it, it doesn't seem to have changed much my outlook on my day-to-day life. 3) Therapy. I went to a therapist for a year or two while I was working at X. I don't know how much it helped, if at all. It has been about a year since I've been back.
Thank you, HN. <comment><USER2> What helped me un-burn myself was focusing on creating as many serendipitously boring moments as possible.

I canceled all pre-made plans, stopped pursuing any goal outside of existing, and did things because I was bored and felt like doing them.

Our culture is 110% fail-forward, goal-oriented, growth-mindset madness that doesn't give us time to relax and chill out.

I'm not talking about pursuing a hedonistic lifestyle nor walking into the woods and being a hermit.

Get a dumb job, go to work, go home, do whatever. Meet with friends if you want too, go out if you want too, but stop all forms of external pressure and just exist.

I remember eventually I was sitting around with nothing to do and spent an hour dreaming about dragons and then went for a walk around the block because I got tired of sitting.

Avoid anti-stagnation gamification bs that only exists to make money like meditation apps or fitness trackers. Just be.

As you said, people are going to tell you to sign up for a "prescription" like traveling more or exercising but that is just more of a burden to an already burned out person.

Travel or exercise if you want but do it because you want too not because it's on some path to a better you.

<comment><AUTHOR> Isn't that what I'm more or less doing now? Other than the "dumb job" part? There is no pressure on me to do anything, really. (Except pressure I put on myself to exercise once a day) I spend large quantities of my time watching Netflix/playing video games. Isn't that "just existing"?

<comment><USER2> >I have no passion, motivation, or purpose.

See this is what I mean. Is that bad?

Culturally we are forced to have those things but they aren't necessary.

My grandfather worked at a quarry for 50 years and came home every day to have dinner, a Budweiser, read a book and maybe tv.

His loved sitting outside and watching birds in the summer but I would never describe that as his "passion".

Seems boring but he was content and had a happy life.

</comment></comment></comment><comment><USER3> 1\. Sleep like your life depends on it [1]

2\. Exercise both cardio and weight lifting in a really generic way. Go hard on them if you honestly love either.

3\. Eat the "cleanest" food you can afford. I like Michael Pollan's guide [2].

4\. Get a social network, friends, family, dating. Spend at least 2hrs in a 1:1 scenario with someone you care about and cares about you. Spend at least 4 more hours with as many people who care about you that you like (ie 1:1 if you're more introverted, or as a group if extroverted etc.)

5\. Live the 40 rules for life [3]

[1]: [https://web.archive.org/web/20190306123706/https://www.super...](https://web.archive.org/web/20190306123706/https://www.supermemo.com/en/articles/sleep#Summary)

[2]: [https://www.webmd.com/food-recipes/news/20090323/7-rules- for...](https://www.webmd.com/food-recipes/news/20090323/7-rules-for-eating#1)

[3]: [https://www.quora.com/What-are-the-most-valuable-things- ever...](https://www.quora.com/What-are-the-most-valuable-things-everyone- should-know/answer/Jordan-B-Peterson)

</comment><comment><USER4> For me, the single most depressing thing in my life was working for someone else. I now set my own schedule (and have set) for years, working on my own products, and live a relaxed life.

Six months is nothing. Everything compounds. Working in a toxic environment compounds and takes a long time to cleanse. Good things also compound. You need to find something to work on that makes you happy, suited for your personality.

I went for a 2 hour walk today. It put my mind at ease.

<comment><USER5> That's the dream. I just never seem to be able to come up with products that actually make enough money to replace my salary though.

<comment><USER4> I must add that I live in a lower cost-of-living area. However, it works for me and I travel frequently.

Unless you're on a SFBay salary, most developers could replace their salary by doing contracting for 3 to 6 months a year. That's how I started, building my first product (an app) on the side.

I don't like developing enough anymore to do it full time. I however do have some specialised skills and will from time to time supplement my product income with some consulting or contracting if something cool crosses my path.

There are usually also some smaller tax advantages. Being able to tax deduct your computer, mobile phone, home office, etc, some office furniture helps with keeping as much of the money you are making.

<comment><USER5> I'm in a low-cost area too, so theoretical I just need to make a couple of thousand dollars a month to make ends meet. That's not as easy as it sounds, for me at least.

I have an app that will be released soon, hopefully that would bring in some extra income. Who knows. Will continue slogging on tbough!

</comment></comment></comment></comment><comment><USER6> The symptoms you describe sound very much like depression.

It's great that you're exercising and eating well, that'll make recovering from this easier, even if it's not easy. I've got some suggestions based on all the friends I've seen suffer through this:

I know you went to therapy previously but I think you should consider finding a new, better therapist. If you are friends with any therapists privately they're pretty frank about how the wide the skill distribution is inside the profession.

I would also seriously consider seeing a psychiatrist, some people respond extremely well to medication and if you're 6 months in that option should be on the table.

Finally, you don't mention whether your sleep schedule has improved since leaving X. If it has, great, if not I would advise enforcing a regular sleep schedule. Set a bedtime before midnight, and a time to wake up. Don't sleep less than 7 hours, don't sleep more than 9 (too much sleep can be bad for you as well). If you're having trouble managing this try taking a 2.5mg pill of melatonin 15 minutes before bed.

I wish you well, and hope things get better.

<comment><AUTHOR> I've considered that. I might be clinically depressed now, but since it's not nearly as bad as I used to be, I write it off as "I'm fine. I've been much worse."

I really hate the idea of taking mind-altering medication regularly. I was diagnosed with ADHD as a child (erroneously, I believe) and took medication everyday for _years._ A few years ago, I deemed it no way to live and weened myself off of it.

As a transitionary step, though, I guess I'd be open to it.

Ah, yes. I didn't touch on sleep. It has wavered over the months. It's better now, but not perfect. Often I sleep more than 8 hours, even though I have alarms set for 0800 and 0900. I do use melatonin when I have difficulty falling asleep. I think a lack of a "need" to wake up at a certain time (for work) induces laziness in me.

<comment><USER7> Sleep is super important, and maybe vitamin D, 5 HTP. I'd be very cautious of trying SSRI/ SNRI. The data is weak and mildly disturbing, but also, they aren't completely useless . or bad. I'd just leave it as a final option.

</comment></comment></comment><comment><USER8> Have you considered finding something a little more substantial?

I can relate to burnout, but the only thing that fixed me was getting some faith in me and my place in the world once again. Time off and being nice to myself (I mostly couldn't care less) did nothing. In fact it was worse than nothing.

No idea where your interests lie, but have you considered some months of volunteering? There's loads of options like medical service overseas, or for one of the overseas third world projects, or something environmental - to get you out amongst the world and environment again, perhaps at a charity or group restoring some historical artefact - whether machine, IT, steam engine or building there seem to be lots of places for willing, intelligent volunteers. Even some weeks at a commune or Buddhist retreat - many of those want temporary helpers too.

I'm sure you can find something that appeals to the deeper you, and doing something more concrete should give you a little faith once again. You may also get a clearer idea of where you want to go next.

</comment><comment><USER9> How is your sleep? I find that eating, exercising and sleeping are the base activities from which everything else follows. You mentioned the other two but not sleep.

You mentioned seeing a therapist, but have you taken your symptoms to a doctor? It is possible that your issues stem from a physical illness as opposed to a situation.

On the subject of practical advice, I suggest keeping a journal or diary of your moods and events of the day. I was able to use this to identify triggers that cause me to enter a depressive unproductive state so perhaps there is something that might help for you.

<comment><AUTHOR> Sleep answered in a comment above.

No, I haven't been to a doctor. I assume this is all mental. Is it possible I've developed a chronic, physical illness? What would be an example?

<comment><USER9> There are a number of illnesses that can cause the symptoms you are describing such as ME or Lyme disease. There are also other more dramatic possibilities that are more unlikely as I assume you are reasonably young.

It is also possible you have developed an illness like depression or dysthymia. It is possible that the strain of the previous few years has caused this to manifest somehow.

I also recently read an article about sleep apnea which can cause chronic fatigue like symptoms. Some people don't know they have it because they don't store the memories of waking up; often it is their partners who prompt them to seek medical help. Do you share your bed with anyone? Have they noticed anything strange about your sleep habit? A sleep study might reveal something you weren't expecting.

But for sure, the first thing to do is to just talk this over with an actual doctor and not a computer programmer (me) who likes to read Wikipedia for fun.

</comment></comment></comment><comment><USER10> Healthy mind in a healthy body. Eating well and exercising is not enough, you have to let your brain rest. Working crazy hours for long periods of time will affect your mental health more than your physical health.

Unfortunately I cannot give you more advice than what worked for me: taking long walks or going on hikes in nature. And switching jobs to work for a company that respects my free time.

<comment><USER10> A friend of mine who was also working at my previous workplace and also burned out took a job at the post office for a year. They didn't understand why he was applying there with his qualifications. He told them he was sick of intellectual work and just wanted to move boxes from point A to point B all day long. He was hired. It may sound stupid but it helped him and he's better now. I'm not saying you should take a silly job, but doing something simple that keeps you busy while putting your thoughts in order may help.

<comment><AUTHOR> I've considered that. I've considered applying for a job as an auto mechanic. I like working with my hands. However, other than basic stuff like changing oil and spark plugs, I'm relatively uneducated about working on cars.

</comment></comment></comment><comment><USER11> Therapy didn't seem to work. Have you tried Cognitive Behavioral Therapy?

If you have an Audible subscription there is "Cognitive Behavioral Therapy: techniques for retraining your brain"

You can do it on your own but I think you'd benefit from an actual therapist as it sounds like you have some deep seated problems. (I know you said it didn't work the first time)

There's a great line at the beginning of the book where the author compares people to appliances. Appliances have instruction manuals, what to do when stuff goes wrong. Wouldn't it be great if the same were true for us humans? There is no instruction manual. But the techniques in the book are a toolkit for different situations you may find yourself in. They're meant to stay with you.

To me it sounds like you currently have an error code. You're aware, and making some steps to address it but you don't seem to have got any traction

I wish you all the best

</comment><comment><USER12> Sorry to hear your story. I would encourage you to think about why therapy didn't help.

It can take a few tries to find a therapist that works for you. While you may feel safe talking to them, it still doesn't mean they're going to be able to help you in the way that you personally need.

I would look for a new therapist.

<comment><AUTHOR> That seems to be a common theme. I'm not opposed, but my health insurance situation is...complicated. (What with leaving my job etc) This country's healthcare system is absurd, but that's a discussion for another thread.

</comment></comment><comment><USER13> Saw your post earlier today and it left me wondering on how to help. Then I came across this tonight, thought it might be helpful in some roundabout way. [https://www.forbes.com/sites/laurashin/2013/05/22/7-steps- to...](https://www.forbes.com/sites/laurashin/2013/05/22/7-steps-to- developing-career-capital-and-achieving-success/#18efb9b27a9f)

(edited) I went on to discover this article, I found the comments just as interesting. [https://lifehacker.com/steve-martins-advice-for-building- a-c...](https://lifehacker.com/steve-martins-advice-for-building-a-career-you- love-5947649)

</comment><comment><USER14> Interesting read. It sounds like you lack a "mission" that your startup job provided, and just any old arbitrary mission can't replace it.

My advice would be to figure out what you want out of life: wife, kids, where would you live, what would you do, etc. And I don't mean look fir a new job I mean what do you want to dedicate your life to. Maybe religion, maybe service work, maybe cocaine and hookers. It's up to you.

Then, figure out a plan on what you need to do to achieve it.

You seem to believe that the point of working is the work itself, but the reality is that the point of working is to get money so you can fund your life.

Anyways, you are the only one who can answer what your life goals are and what you need to do to do them so be honest with yourself when your thinking about it

<comment><AUTHOR> The problem is, I don't know what I want out of life right now. I like to drink and party, but that's not a "mission." I would like a wife and children someday, but not soon. Same thing with home ownership. I don't really know what I want immediately.

> but the reality is that the point of working is to get money so you can fund > your life.

When I left X, I got some severance pay. So my life right now is essentially funded, and I still feel lost.

<comment><USER15> Sounds like that's a part of your problem. No sense of belonging/purpose. If you find yourself focusing on "What you want from life" and feel compelled to get an answer, maybe you need to distract yourself mentally from that and not force it.

A lot of people mentally struggle when they don't know what they want from life. It can make you feel "worthless". You end up sleeping late because.. why get out of bed.I took 2 years off of work and went through all of this. The answer for me was a) mentally accepting myself and b) find work that I felt good about. e.g, I did a days worth of work. Yes I'm not changing the world or solving Null Pointer Exceptions for everyone, but hey.. fuck it. I'm doing something.

I always remind myself to a) Not judge myself so hard because in 200 years or less no one will remember me. Thats okay and b) Life is better when you learn to accept yourself even if you're not gods gift to everyone else..

P.S., Everyone will learn to think of me as an amazing person! I'm just giving everyone time lol jk

</comment></comment></comment><comment><USER16> Is it possible that your addiction to work is a result of something else missing in your life?

I could possibly rephrase your statement "writing code used to give me a dopamine rush, it does not anymore, how can I reclaim that?"

I'm sure a part of that was the fantasy of riches, another part was being young and smart and good at what you do, feeling your worth / worthiness.

A better question might be "how can I find meaning and value in my life?" It's an important question that you could literally spend your life ruminating on. I nor anyone here can answer that for you.

My first direction would be to make a list of things that you like doing, and to make sure you do them regularly.

From there, search for things that can keep you fed and in housing / clothes, and achieve other goals that you have personally.

<comment><AUTHOR> Something else missing in my life? Possibly. Well, in university, it definitely was. I _hated_ (and I still do to some extent) the whole high school/university/9-5 career pipeline. I wanted nothing to do with FANG etc. I saw X as my "way out." My light at the end of the tunnel. My escape from the rat race that I so vehemently opposed.

</comment></comment><comment><USER15> You need to re-program yourself. It's hared when you program yourself to keep pushing, improving, growing etc and then you start feeling like you're always at rock bottom.

You might need to learn how to accept what you are and be comfortable and fully aware you're not going to be great. I had to learn how to just accept.. well me. Who I am and all my failures, waisted efforts with no "growth".

What have I done to reprogram myself? I go to a coffee shop and just read a book that is not tech related. I write in my book about what "depresses" me about myself. e.g, confronting my ego head on. I sit outside in a park listening to music like a crazy person the call my mom; which I do daily.

Feel free to email me at my user name followed by gee mail.

</comment><comment><USER17> Try finding a hobby that you enjoy that isn't related to tech. I personally find woodworking and knife making to be a fantastic escape from staring at a screen all day.

</comment><comment><USER18> I don't know much how to help. I'm sorry. I have one idea though. Maybe find a temporary work in some other industry? Something new could spark a new passion? Even a job like a waiter/ress, taxi driver could bring a new look at life.

I think that interacting with other people could help. IT is very specific workplace, especially, startups, in my opinion.

</comment><comment><USER19> Many of the comments mentioned previously help and do make sense. However, I'd like to add .... find a good partner who can relate to you and hopefully not judge you. It can be a romantic involvement, a friend, a family member. Self- evaluation and self-prioritization of activities important for you is important and can be very helpful.

</comment><comment><USER20> Write a diary and make yourself your own therapist.

Apart from daily writing, my own philosophy to life is to move very slowly and concentrate on the minutiae of everyday existence. There is joy in the patterns of the gravel.

Lastly, I would say study | create simply for the act in itself. This goes hand in hand with the writing, and the appreciation of the mundane.

</comment><comment><USER21> You could contact the American Red Cross and volunteer for disaster response. I volunteered for a month with them after hurricane Katrina hit Louisiana. International assignments are an option but require long term (multiple months) time commitments but it seems like you might be available for that.

Helping others will help you heal yourself.

</comment><comment><USER22> Find purpose.

If you can't, get yourself in a situation where purpose is immediate.

The problem with programming is that it is opposite of actual life itself. Everything reduced to symbols. Everything abstracted. Which is all beautiful in a synthetic way, but it has to tie back into a larger purpose for living or it's all no good for anything.

</comment><comment><USER23> I found a combination of these Ayurvedic herbal supplements taken in the morning before food to be beneficial (do your own research / I am not a doctor / etc): 1\. Ashwagandha 2\. Gotu Kola 3\. Bacopa

I'd also recommend considering a micro vacation to somewhere with a spa and just relax in some hot springs for a couple days.

Also exercise!

</comment><comment><USER24> In addition to others' suggestions, you might look into getting a dog. For me, my rescue dog puts a floor on my stress and its side effects, since I need to walk her quite a bit and she likes to "take care of me" in her own ways.

</comment><comment><USER25> Work with animals.

There are so many shelters that need help, like dog walking etc. and the dogs will love you for it.

</comment><comment><USER26> TL;DR Good luck, give it time, stay busy

It took me nearly two years after a 'startup' I was working at collapsed and I realised I was burned out until I was ready to consider writing code as a dayjob again.

I was in a comfortable position, but didn't really have the luxury of being able to do extended travel, so got back in to work as quickly as I could (mostly technical salss and consultancy type role - wasn't really 'me' but it helped me recover - there's something to be said for keeping bisy - and taught me a few new skills along the way)

I'm now back to programming basically every day and loving it - but it was a long road.

</comment><comment><USER27> From what you write, you need to start your own company/product. Find something YOU really passionate about and something YOU want to work hard on.

</comment><comment><USER28> As far as working, I think you might be happier doing your own thing. If you have some runway I would look at starting your own company.

It sounds like you might be happy with a lifestyle business.

Inspiration: @DHH Startup School Talk (2008) it's still relevant and a great talk. Lots of great quotes in this one. [https://www.youtube.com/watch?v=0CDXJ6bMkMY](https://www.youtube.com/watch?v=0CDXJ6bMkMY)

StartUpsForTheRestOfUs.com is a great podcast, start in the archives. You can follow Rob along from starting out with job board sites, he even mentions drop shipping beach towels, to an invoicing app to an SEO SaaS app, to founding Drip all the way through to a nice exit. Inspirational and sound advice along the way.

Check those out, that might be your path to a job you can be happy with.

I enjoy work and you have to make a living but there is more to life. Family, friends, pets, volunteering, mentoring, helping others. These might bring a new perspective of work time vs personal time and give you things to look forward to outside of work.

Reach out and find a mentor/group/mastermind to help guide you through this time.

Take care and good luck.

</comment><comment><USER29> I'll give you my recipe. I have a recipe because I've burnt myself out a couple of times in my career. Not the best thing to do, but I like to work and sometimes in pursuing one's passion one over does it.

1\. Forgive yourself. You worked hard. You made a couple of less than optimal moves. It happens to the best of us. You may not realise it, but often people feel "stupid" or "weak" for having gotten into the burn out situation. Give yourself a break. Also realise: it's likely to happen again because enthusiastic people get themselves into this situation. Don't fear it. Accept who you are and work within your own nature.

2\. Forgive others. I wrote a fantastical piece on this a long time ago: [http://mikekchar.github.io/portfolio//UsefulAndBeneficial](http://mikekchar.github.io/portfolio//UsefulAndBeneficial) (It's surprisingly short for something written by me). TL;DR: People strive to be useful and then complain when they are used. Instead do what you do because it is in your nature to do it and maneuver yourself into a place where this provides benefit for others. It's easy to blame others for the situation you are in because they selfishly accept everything you give them. They may even selfishly _ask_ for things that you give them. However, give them a break. It's fine if people ask for things, even if they are selfish. The key is learning how to break out of the "useful" mould.

3.Find out why you are a programmer. I can't actually give you good advice here because I don't know why you are a programmer. I can tell you that I never wanted to be a programmer. I wanted to be an author. But then my parents (wisely, I suppose ;-) ) suggested that the job of "author" is not very secure. So I picked my second best thing, which was programming. And then for at least the next 20 years I did my best to find a way to quit from that job. However, I kept getting sucked back in. I thought I was cursed. And then I realised it: I love programming. That's why I do it. Even when I don't have to program, I'm programming. My curse is that I love it, which is why I can never break free from it. See: you aren't the most screwed up person in this conversation! But anyway, you are a programmer for a reason. You might not realise what that reason is. Your reason is probably not the same as my reason. However, without knowing what your reason is, it will be hard to continue. If you suspect (which I bet that you do) that you don't actually have a reason to be a programmer, then try something else. Work at MacDonald's. Do whatever. It doesn't matter. You'll figure out pretty quickly why you are a programmer.

4\. Write code. Write code every day. Start small. I like doing pomodoros. If you can only do one pomodoro a day, then only do one pomodoro a day. Try to do 2 some days and eventually you will be able to do 2. Keep trying to do more pomodoros. Or whatever measurement of work floats your boat. But write code. Every day.

And that is it. I'll be honest, though. I think you are suffering from more than burn out. Depression can happen as a result of burnout, but thoughts of suicide, etc are pretty worrying. You may have an underlying health condition that needs treatment. I recommend continuing to see the relevant health professionals and getting whatever treatment you can. I know lots of people with mental health problems. It's important to understand that this is a _health_ issue. In the case of thoughts of suicide, it's a potentially fatal health issue and should be treated just the same as a heart condition, for example. Our science sucks for these kinds of health issues, but it's getting better over time. Many of my friends have had really good success and there is no reason to believe that you won't have similar success. It might take some time, though.

I hope that's helpful! It's always hard to give good advice on this kind of issue because it depends so much on the individual. Just try to keep a positive outlook. Belief is more than half the battle.</comment>


Uzbekistan offering $3k to tourists infected with the coronavirus - <AUTHOR> https://www.insider.com/uzbekistan-travelers-3000-dollars-coronavirus-2020-6 <comment><USER2> This title should be updated. I clicked because I interpreted it as I could make $3k by getting the coronavirus and then traveling to Uzbekistan, like a government-funded covid party.</comment>


Snap: open source performance monitoring framework - <AUTHOR> http://snap-telemetry.io/ <comment><AUTHOR> This is a performance monitoring software package developed by Intel (who are calling this "telemetry") – since 2015 as far as I know. I have taken a look at it and like it. It's very modular (there are collectors, processors and publishers of metrics) and can also serve as an example of a medium-sized well-written Go project that handles external dependencies with Glide, logs with Logrus and enables cross-language plugins with gRPC.

Strangely everyone working on the project seems to have stopped doing this somewhere around Nov/Dec 2017 (although one of the core developers just replied to an issue of the same topic that the "framework is stable" [https://github.com/intelsdi-x/snap/issues/1759](https://github.com/intelsdi-x/snap/issues/1759)). I would be a shame to see the project die, so go use it, star it or contribute plugins. There's good documentation and many examples on how to do this and it's also an opportunity to learn Go and gRPC :)

</comment><comment><USER2> They have one of my favorite logos: [https://landscape.cncf.io/grouping=landscape&landscape=monit...](https://landscape.cncf.io/grouping=landscape&landscape=monitoring&selected=snap)</comment>


On modern hardware the min-max heap beats a binary heap - <AUTHOR> https://probablydance.com/2020/08/31/on-modern-hardware-the-min-max-heap-beats-a-binary-heap/ <comment><USER2> And if you only need a monotone priority queue (i.e. priority queue where the popped elements are monotonically increasing/decreasing) you should consider using a radix heap. This monotone requirement can be satisfied more than you would expect when eg. using time as key or in pathfinding. I have a simple radix heap implementation here: [https://github.com/mpdn/radix- heap](https://github.com/mpdn/radix-heap)

</comment><comment><USER3> Like folks mentioned there, I wonder if a higher-fanout heap (people asked about 4-ary) might also do well in practice. Looking at Wikipedia ([https://en.wikipedia.org/wiki/D-ary_heap](https://en.wikipedia.org/wiki/D-ary_heap)), it looks like maybe so -- the growth in number of comparisons isn't that bad, and it mentions 4-ary heaps working well specifically.

(Like how linear search wins for small N, or insertion sort helps with small subarrays in introsort: more steps, but each step is also a lot cheaper on modern hardware due to fewer branch mispredictions, better cache locality, or something else that better fits the hardware's strengths.)

<comment><USER4> I don't have a formal background in CS. Any insight into why "d-" is used as the prefix?

<comment><USER5> There are only two important things taught in CS that most people don't seem to pick up on the job. The most important is order notation. The second is the relation between grammars and state machines. Both are worth as much attention as you can afford for a week.

Things not taught in CS that you need to know on the job are legion. By far the most important of these is the use of invariants. Second might be the memory hierarchy, and cache semantics. Third might be use of bitmaps and bitwise operations.

<comment><USER6> I'm learning about invariants in a relatively introductory cs course and I've been told they end up being relatively useless in actual practice. When have you found them useful?

<comment><USER5> Invariants are essential when designing a system, to ensure the resulting system can be understood by actual humans who will be responsible to maintain it.

They are right that invariants will not be essential for your assignments, at least for the first couple of years, although they would save you from some dead ends.

You will be able to code some of your invariants as assertions, but as often not. The ones you can't are the ones you have to pay the most attention to.

If the system invariants get too complicated, or hard to express, the design is wrong--reliably. That is when they are most valuable. Millions of systems designed without invariants could have been right, but we're stuck with what we got, instead.

</comment></comment></comment></comment></comment><comment><USER7> I have used a min-max heap once. I don't remember why I needed it at the time --it was a previous job--but I do remember that I had to roll my own, because it's just not that popular of a data structure, and it was the obvious and only good solution to the problem at the time.

So, it's nice to see a detailed analysis of the structure like this! Perhaps if it becomes more popular, I will find more places to use it.

<comment><USER8> IIRC it's used in chess programs to evaluate moves.

<comment><USER9> you're thinking of minimax.

<comment><USER8> Ah I was wrong. Yes, you are absolutely correct.

</comment></comment></comment></comment><comment><USER5> > " _...C++20 finally added a way of accessing this instruction, using > std::countl_zero. I don't have C++20 though so I had to do it the old > platform specific ways ..._ "

You don't need C++20. Even C++98 had std::bitset<>::count(), which has a nice conversion from unsigned long, and which, when compiled for SSE3 or better (e.g. Core2), uses a POPCNT instruction. It is pretty simple to produce various other results, including countl_zero, from a popcount, with just a couple of additional bitwise ops.

Modern compilers are happy to keep a bitset<32> in the same register as an unsigned long, so the conversion takes exactly zero cycles. POPCNT takes three cycles, and the extra bitwise ops another couple.

</comment><comment><USER10> In certain domains, the trend has been to give up constant factors in order to increase programmer productivity (e.g., python pays a 10x slowdown but is batteries included).

So in that case I would use this data structure even if it weren't faster. I can't count the number of times I have had to mess with inserting negative priorities into a min heap to create a max heap! We should just have one data structure that does both.

(though taking this idea to the logical extreme means we should just use Order Statistic Tree for everything since it not only gives you log(n) min/max, but also log(n) find kth and get rank of x)

<comment><USER3> So, kind of a non sequitur, but I occasionally think about Qt's QList<T>. When introduced, it was odd for reserving space at the beginning as well as the end, so you had constant-time inserts/removals at the beginning. That and storing pointers for any T larger than a pointer also reduced the constant factor on insertion/deletions from the middle. Since it was always stored as a list of pointer-sized items, some code could be shared between implementations for different types, so your program's binary could be a bit smaller. I think they said at the initial release that they benchmarked a bunch of options in some real code and this won.

That was waaay at odds with the mindset of the STL, which seemed to me and I think a lot of folks like the state-of-the-art of containers at the time: with the STL if you prepend/insert much you need to use a deque/linked list, you decide pointer vs. value each time you declare a type, and if you want to know about the constant factor on an insert in the middle of the list you probably already lost.

(Qt has/had some other fun pragmatic things, like copy-on-write types in a lot of places. I didn't really do nearly enough with it to discover the pitfalls, but was fun to read.)

So I think about that, about how there are likely some trees out there that could just as well be sorted arrays, about adaptive structures that change their behavior based on dynamically observing how they're used (one recently discussed here: [http://blog.erlang.org/the-new-scalable-ets- ordered_set/](http://blog.erlang.org/the-new-scalable-ets-ordered_set/)), even about tricks in in JS string implementations and VMs. I don't have answers, but I sometimes wonder if we should be thinking _more_ in terms of tools that may not be perfect on all axes but soften or eliminate performance cliffs we take for granted. Not that the zero-overhead fine-tuned types are going away, just that they aren't the only imaginable approach.

I wonder if we'll see progress in those sort of imperfect-but-resilient tools over time. I think the long-run trend is towards _some_ form of programming being accessible to more people more easily (like how, as you note, folks do real work in Python now). That certainly fits with trying to make your tools resilient to "misuse"\--or, better, properly supporting more patterns so they're not even misuse. No conclusions, just hand-waving, but I do wonder if anyone working in software construction tools will eventually more usefully wave their hands in that direction :P

<comment><USER10> You would probably enjoy reading about an alternative implementation for STL's std::deque, called a tier vector[1][2].

It supports O(1) push_front/pop_front/push_back/pop_back/operator[]/at (like you would expect from a deque) but also O(sqrt(N)) insert and remove from middle!!!

The paper was from 1999 and 2001 but I only learned about it from a recent HN post[3] where some guy rediscovered it (20 years too late). I still wonder why this design lost to the std::deque we have in STL today.

[1] [http://www.cphstl.dk/Report/Deque-first-attempt/cphstl- repor...](http://www.cphstl.dk/Report/Deque-first-attempt/cphstl- report-2001-4.pdf)

[2] [https://www.ics.uci.edu/~goodrich/pubs/wads99.pdf](https://www.ics.uci.edu/~goodrich/pubs/wads99.pdf)

[3] [https://news.ycombinator.com/item?id=20872696](https://news.ycombinator.com/item?id=20872696)

<comment><USER3> This made me search around about unsorted B-tree-like collections. Turns out Clojure[1] and the im immutable-collections crates in Rust[2] use a structure called an RRB-tree, and searching 'blist' (because why not) turned up a Python module[3]. So, yes, a thing!

Tricky bit is trying to work well when used like a plain vector too. Clojure's RRB-tree special-cased repeated small appends to the end to help with this, and the Rust page mentions a clever chunking technique for append/prepend. And I _imagine_ largeish leaf pages might help with average prepend/append/iteration overhead, at some cost when inserting in the middle?

Anyway, just neat that it's been taken further than I realized!

[1] [https://infoscience.epfl.ch/record/213452/files/rrbvector.pd...](https://infoscience.epfl.ch/record/213452/files/rrbvector.pdf)

[2] [https://docs.rs/im/15.0.0/im/struct.Vector.html](https://docs.rs/im/15.0.0/im/struct.Vector.html)

[3] [https://pypi.org/project/blist/](https://pypi.org/project/blist/)

</comment></comment></comment></comment><comment><USER11> If you need a min-max heap (or double ended heap) in Go here is one I've used: [https://github.com/aalpar/deheap](https://github.com/aalpar/deheap)

Very useful when you need it!

</comment><comment><USER12> It would be neat to fire this up on an older processor which doesn't have modern instruction-level parallelism and verify the difference in performance

<comment><USER13> On x86 you'd have to search pretty far back before the available ILP really dropped off. Some of the lower-end OoO ARMs might be a good testing ground, though. Say, a Raspberry Pi 4? Earlier-gen RPi used in-order cores.

</comment></comment><comment><USER14> I've been using the author's flat_hash_map ([https://github.com/skarupke/flat_hash_map](https://github.com/skarupke/flat_hash_map)) for several years now and have been really impressed. I've yet to find a single bug, it's nearly as fast as folly's hash maps (for my use case anyway) but far easier to integrate than folly.

</comment><comment><USER15> Impressive. Looking forward to the d-heap article.

<comment><USER16> Yeah I was going to say, it sounds like it is faster because it has higher arity rather than because it is min and max. So if you only need min or max a d-heap is probably better. Hopefully he will update the article.

[https://en.wikipedia.org/wiki/D-ary_heap](https://en.wikipedia.org/wiki/D-ary_heap)

(Also I didn't know they were called d-heaps, thanks!)

</comment></comment><comment><USER17> Wow. This is a very good analysis on a fundamental algorithm. Haven't seen a high quality analysis like this for a good while.</comment>


The challenge of decentralized marketplaces - <AUTHOR> https://arxiv.org/abs/1703.05713 <comment><USER2> responsible faculty member for this paper here. Note this is a student paper for course credits, not a full scientific paper.

We are on track to put our blockchain-regulated decentral market live this summer: [https://github.com/Tribler/tribler/issues/2559](https://github.com/Tribler/tribler/issues/2559)

</comment><comment><USER3> It is somewhat ironic that this paper comes from a Dutch University, since Holland has historically made a great deal of money from acting as a middle- man, as indeed it continues to do.

Searching some referenced papers I found [http://projectm- online.com/investing/the-value-of-trust/](http://projectm- online.com/investing/the-value-of-trust/) which is IMHO a nice high level treatment of the space.

The paper questionably approaches the subject theoretically through a pre- digital era reference which divides trust through conventional relations of 1990s society, which is of dubious currency.

It also refers to prior work from the same university [https://repository.tudelft.nl/islandora/object/uuid:c1816da8...](https://repository.tudelft.nl/islandora/object/uuid:c1816da8-c82e-47bc- bde2-4f35b9a3e775?collection=education) which appears to be a BS thesis on settlement-system neutral market protocols, post-dating my own published work on the same - [http://www.ifex-project.org/our- proposals/ifex/2012-04-11-pa...](http://www.ifex-project.org/our- proposals/ifex/2012-04-11-partial-draft) \- by some five (4-5) years.

The treatment of trust in decentralized networks is high level only and in parts not of an academic quality of writing, for example making inferences that 15 years of prior formal work is valueless because it has not been publicly deployed.

<comment><USER2> interesting. Are their implementations of ipex-project.org ideas?

<comment><USER3> I don't claim ownership of any ideas, but find the overall public advancement (or arguable lack thereof) in the cryptocurrency arena pretty interesting. My interpretation of the older paper in question is that it is some kind of hard- coded Bitcoin blockchain/sidechain centric multi-asset balance based reputation system: _To keep this project realistic, the focus will be on re- using existing code, to support only Bitcoin-Multichain trading, only use a single market maker, and offer no anonymity or DDoS protection._

Frankly this sounds like a pretty toy / naive implementation of multi-asset / multi-settlement-system reasoning given the year of publication. However, it's still great to see people pushing in this direction, and I certainly don't mean to dissuade anyone.

</comment></comment></comment><comment><USER4> It was hard to get past the grammar and other minor problems listed below.

* Ugly typesetting (words hanging out into the margin). Typesetting widows and orphans are not handled well. Odd capitalization is used, for example 'BlockChain'.

* A brazen claim that "Paper contracts could be replaced by Ethereum contracts." I'm an Ethereum proponent, yet I'm much more cautious about the application of smart contracts to legal contracts.

</comment><comment><USER5> These sorts of papers would be a little easier to read if the definitions were a little tighter and the goal of the article was a little clearer. "Marketplace" & "trust" are big-ish words, for example.

I'm still not sure what the " _The challenge of decentralized marketplaces_ " is. Securing reputation systems against spam? What's all the stuff about different market types for?</comment>


Fluidics - <AUTHOR> https://en.wikipedia.org/wiki/Fluidics <comment><USER2> "Fluidics, or fluidic logic, is the use of a fluid to perform analog or digital operations similar to those performed with electronics."

Not sure why this is on the front page of HN. I find it mildly interesting, but it's a wikipedia page and there's no relevance to recent facts or discussions.

Anybody could help me understand?

<comment><USER3> There was a post about a hydraulic computer here the other day, this looks like further reading. Interestingly, there seems to be a slow increase in intrest for ionotronics where logic is implemented using nanopores in salt water, where current is carried by ions instead of electrons. Generally the propogation delay is orders of magnitude longer than in electronic circuits, but the parallel between fluidic computation and biological processing (as in brains) is compelling. I was able to put together a few gates and oscillating electrofluidic circuits using electrically addressable nanopores in my PhD work, but others have more recently made complete circuits.

</comment></comment><comment><USER4> I wonder if something like this [0] (looks like moving liquids without pumps or power) would be possible to miniaturize this idea further? (maybe smaller amounts of electricity like in the brain combined with this kind of tech)

The stuff I have seen tends to be large on a scale reminiscent of the very first computers. (ie, large mechanical switches powered by solenoids or spinning gears)

[0] [http://www.surnetics.com/](http://www.surnetics.com/)

<comment><USER5> To be fair, miniaturization never has been a problem in the electronics industry evolution. Nowadays you can have more than 4,000,000,000 transistors in a 10nm chip and the lithographic process advances to produce these chips tend to evolve into even further miniaturization and more transistors.

</comment></comment><comment><USER6> Pretty sure this project is dead: [http://groups.csail.mit.edu/cag/biostream/](http://groups.csail.mit.edu/cag/biostream/)

But it has some pretty neat examples, not doing computation, but a programmable system for moving, storing, and mixing samples.

</comment><comment><USER7> Modern electronics have an effective limit of ~100 deg Celsius, which makes them unsuitable for some uses.

Fluidics are order of magnitude slower and larger, but proper material selection can make them withstand very high temperatures.

<comment> gene-h Fluidics have actually found useful applications at extreme temperatures. Fluidic capillary pyrometers have been used to measure the temperature of molten steel and here is an image of a fluidic afterburner fuel control operating at temperature's so hot it's glowing[0]

[0][https://imgur.com/uwPSpR5](https://imgur.com/uwPSpR5) from Fluidics Quarterly Volume 4 Number 2, page 54

</comment></comment><comment> gene-h Fluidics was a technology that was invented at the wrong time. It was invented in the 1960s just as transistorized computers were becoming common. One can only speculate on what the world would be like if fluidics was discovered say in the 1800s. It could potentially be mass produced with technology of the time. Right off the bat one might be able to attain switching speeds similar to relay computers for complicated circuits, audio-frequency operation for simple circuits, and analog computation at decent speeds. So we can get things like adding machines, somewhat automated factories, autopilots, sound amplifiers, gunnery computers, and what not. Of course, this alternate history is unlikely, because some of the knowledge necessary to develop fluidics came out of understanding airplane flight. The coanda effect, wherein a jet of fluid tends to stay near walls which is useful for making bistable flip flops, was discovered accidentally when testing a new airplane design[0]

Even though fluidics came out at the wrong time it did find some niche applications in aerospace and factory process control because fluidics was more reliable than similar electrical and electromechanical systems for a bit. Fluidics not having any moving parts is fairly robust and is tolerant of high temperatures, high shocks, high radiation, high magnetic fields, and more. The concorde actually used fluidic components in one of it's nozzle control systems at one point[1].

Because of fluidics inherent EMP resistance and acceleration resistance, fluidics has been considered shockingly recently for use in anti-ballistic missile guidance systems[2].

Fluidics still enjoys some niche applications today. Some HVAC and industrial control systems supposedly use fluidics. One interesting current day application of fluidics is kosher sound amplification[3]. Orthodox Judaism prohibits electronic sound amplification on the sabbath because it constitutes work. Using a speaker to produce sound constitutes labor because it creates a sound that did not exist before from electricity. Fluidics is able to get around this prohibition and can amplify sound in the range of human speech.

[0][http://www.thermofluids.co.uk/effect.php](http://www.thermofluids.co.uk/effect.php) [1][http://www.dtic.mil/dtic/tr/fulltext/u2/a049256.pdf](http://www.dtic.mil/dtic/tr/fulltext/u2/a049256.pdf) [2][http://www.dtic.mil/cgi- bin/GetTRDoc?Location=U2&doc=GetTRDo...](http://www.dtic.mil/cgi- bin/GetTRDoc?Location=U2&doc=GetTRDoc.pdf&AD=ADA204334) [3][http://acoustics.org/pressroom/httpdocs/132nd/2aaa8.html](http://acoustics.org/pressroom/httpdocs/132nd/2aaa8.html)

</comment><comment><AUTHOR> I wonder if side-channel attacks are possible on fluidics.

<comment><USER8> Sure. Any incidental effect related to the actual physics used to encode information potentially could leak information. Fluid has mass, and accelerations require forces, so acoustic, acceleration, and thermal side channels are all a possibility.

</comment></comment><comment><USER9> That is awesome. Thanks!</comment>


Offering Snowden Aid, WikiLeaks Gets Back in the Game - <AUTHOR> http://www.nytimes.com/2013/06/24/world/offering-snowden-aid-wikileaks-gets-back-in-the-game.html

<comment><USER2> How Lindsey Graham and others like him must read this: "Spy and traitor Snowden, seeks help from terrorist organization, Wikileaks"

</comment><comment><USER3> Back in the game? Wikileaks is as at the forefront of global human rights protection. Along with the Pirate Party, Wikileaks are _the only_ group proposing political change that is remotely in line with the technical reality that the world's youth are already familiar with. They are at once daring, unceasingly active and morally reasoned.

By contrast, individual old-world political or journalistic entities that may be said to share even _one_ of the above properties are few and far between.

A more appropriate title would be _NY Times Journalists Stick Heads Back in the Sand_.</comment>


Edward Snowden is no hero - <AUTHOR> http://www.newyorker.com/online/blogs/comment/2013/06/edward-snowden-nsa-leaker-is-no-hero.html

<comment><USER2> "The American government, and its democracy, are flawed institutions. But our system offers legal options to disgruntled government employees and contractors. They can take advantage of federal whistle-blower laws; they can bring their complaints to Congress; they can try to protest within the institutions where they work. But Snowden did none of this."

So, when the system has rationalized these violations of basic rights to itself through legal gymnastics all in the name of security, Toobin suggests we turn to the system itself for relief? Either he doesn't understand the scope of the issue, or he's a shill for interested parties.

Honestly, though, I've never taken Toobin seriously.

</comment><comment><USER3> The two main arguments in this article are that Snowden isn't a hero because he hasn't released any information that everyone didn't already know, and that Snowden isn't a hero because what he did was a crime. The former is ludicrous; the latter is the whole freaking point and the reason people call him a hero.</comment>


Samsung tried to profit from confidential Apple patent case discovery docs  - <AUTHOR> http://www.theverge.com/2013/11/9/5084250/judge-orders-samsung-explain-itself-apple-nokia-licensing-leaks#!

<comment><USER2> Likely outcome: Samsung gets fined, costing their shareholders, while the board and lawyers never blink.

Fair outcome: Find those responsible for leaking the documents, fire them, and throw them in jail for contempt of court.</comment>


Urthecast – APIs for Earth Observation - <AUTHOR> https://www.urthecast.com/developers

<comment><USER2> which api proxy you guys use to do the management?</comment>


AT&T releases earnings; iPhone customers not fleeing to Verizon - <AUTHOR> http://www.edibleapple.com/at-iphone-customers-not-fleeing-to-verizon/

<comment><USER2> I'm pretty sure a lot of them are waiting for the iPhone5</comment>


Learning from competition - <AUTHOR> http://www.marco.org/2012/03/08/learning-from-competition <comment><USER2> The Google bashing at the end makes no sense. On the one hand he mentions that Google have copied things from Apple. On the other he claims Google seem to think they don't need to change anything. Which is it?

It's pretty clear to me that each new version of Android takes inspiration from iOS (and vice-versa, not to mention things they've both seen in WebOS). I think it's great -- the competition is definitely driving both platforms forward. Methinks there is some prejudice at play if you can't acknowledge this.

<comment><USER3> Same here, the complete redesign of all Google main web products and the latest ICS show that Google is ready to make some big change such as making design one of the most important features of all of their products. There's also the changes that Larry Page brought to management etc. Marco is really anti-Google and it shows. I don't care if he's pro-Apple or pro-Whatever, I just don't understand the constant need to bash Google like that.

<comment><USER4> Design is about usability, which Google's redesigns seem to me to ignore in favor of looks.

</comment></comment></comment><comment><USER5> This reminds me of Ben Horowitz's post "Lead Bullets":

 _The issue with their ideas was that we weren't facing a market problem. The customers were buying; they just weren't buying our product. This was not a time to pivot. So I said the same thing to every one of them: "There are no silver bullets for this, only lead bullets." They did not want to hear that, but it made things clear: we had to build a better product. There was no other way out. No window, no hole, no escape hatch, no backdoor. We had to go through the front door and deal with the big, ugly guy blocking it. Lead bullets._

</comment><comment><USER6> "But Google has — publicly, at least — always seemed to think that Android is the best at everything and its dominance everywhere is inevitable. I wonder: do the higher-ups at Google really not see the flaws in their products? ... Google seems to think they don't need to change anything"

Wow. Cannot disagree more. The past year has seen Android 2.3, 3.0 & 4.0.

Google is changing at a faster pace than its competition.

<comment><USER7> 3.0 onwards might as well not exist since some 95% of the market is excluded from those versions.

It's not even really fair to call it change when nothing changed and nothing is about to change for almost every Android user.

<comment><USER8> The international version of the Samsung Galaxy S II, themost popular Android handset last year, will receive the ICS update on March 10 (tomorrow). All the major Android OEMs have promised updates to the their most popular phones. It's not happening as fast as users would like but it's a bit misleading to say 95% of the market have been "excluded" from those versions.

<comment><USER7> The 95% comes from Google themselves - [http://developer.android.com/resources/dashboard/platform- ve...](http://developer.android.com/resources/dashboard/platform- versions.html)

AppBrain puts the SII at a staggering 11% marketshare... so tomorrow only 84% to 95% of Android users will be excluded.

<http://www.appbrain.com/stats/top-android-phones>

</comment></comment></comment></comment><comment><USER9> The bigger problem with Instapaper AND Readability for me is that you are still kicking designers and their intentions to the curb. This is why I still think these services will not be widely supported by content providers and they will flock to aggregation services like Flipboard, because of the opportunity to brand your dang content.

These clients will continue to be dumb readers where Flipboard and (future) ilk will allow content providers to craft rich, custom experiences. The weapons of design are powerful and in the wrong hands can create a horrible experience but companies still want that chance.

And if Marco actually did learn anything from competitors, he would actually hire someone to make an Android client instead of continuing to ignore a huge section of the market for not meeting his delicate sensibilities.

<comment><USER10> Marco has explained why he doesn't make an Android client. It has nothing to do with delicate sensibilities. It's pure economics.

His business model is based on selling a paid app, and based on his numbers, doing that on Android won't pay for its development.

<comment><USER11> I'm thinking of doing a mobile app for our security tool, and as far as I can tell, trying to come up with a working security model for the Android version is impossible. iOS is trivial, and if I cared, I could do a blackberry app (but don't).

So iOS > Android for people who actually pay for software, or for anything where you want to keep credentials or data secure against loss/theft of a phone. You could maybe get away with using Good or something on Android, but that makes developing an app a lot harder.

<comment><USER12> Is this what you mean? [http://developer.android.com/guide/topics/admin/device- admin...](http://developer.android.com/guide/topics/admin/device-admin.html)

</comment></comment></comment></comment><comment><USER13> "That's why Microsoft is so much more interesting today: while Google seems to think they don't need to change anything and Apple's customers are brainwashed by marketing, Ballmer has shut up about Apple publicly and Microsoft is making radical changes."

He must not have seen the smear videos Microsoft has put out about Google recently. They certainly haven't shut up about their competitors.

<comment><USER10> He said they'd shut up about Apple, and instead are making radical changes.

Perhaps the fact that they continue to publicly attack Google means that they don't think they need to respond with a strategy change.

<comment><USER10> How is that worthy of downvotes? Seriously - it's not attacking anyone, it's an attempt to explain the difference in Microsoft's behavior towards two competitors, and it helps to clarify Marco's position.

</comment></comment></comment><comment><USER14> Interesting article if it wasn't for the mindless and completely out of place Google bashing at the end. Apple fanboys just can't restrain themselves, can they?

<comment><USER15> Yes, the Apple fanboy... that calls Apple a bunch of brainwashed sheep.

Nice random Apple bashing. You Microsoft fanboys can't resist, can you?

<comment><USER16> You do realize that you did the exact same thing that you are criticizing, don't you?

</comment></comment></comment><comment><USER17> His own story is interesting, but I think he vastly overstates the explanatory value of "being defensive vs. learning from your competition" IRT international, goliath corporations. It's almost sports fan-level projection/myth-making.

When introducing new versions of OSX, Steve Jobs used to joke about how quickly Microsoft would copy them, so the image of an arrogant MS that paid Apple no notice is off. The new prominence of design in Google products (including Android) exhibits at least a little bit of competitive influence from Apple, so it's strange to refer to them as arrogant and unresponsive competitors.

</comment><comment><USER18> I love Instapaper. It was one of the first apps I got for the iPhone and its got a permanent place on my iPad dock.

I think Readability could be the best thing that happened for users of Instapaper.

The competition is forcing him to do things he wouldn't have done earlier. Apart from fonts issue he addresses here, he also recently upgraded the bookmarklet to support paging - a pretty big feature he had put off with justification for some time now (<http://www.marco.org/2011/07/19/siracusa- multipage>)

</comment><comment><USER19> For apps which let you select from the list of installed fonts I came up with a script to install fonts onto devices:

<http://www.iosfont.com/>

</comment><comment><USER20> This doesn't happen often enough.

<comment><USER21> Absolutely. Respect for the competitor and open acknowledgement where it's due. Also, Instapaper is a one man show, and this piece made me have greater respect for him .

The article also links to his earlier post on Readability, which too was a welcome break from what one generally tends to see in the tech. scene.

Adding a link here (again), in case people missed it: <http://www.marco.org/2011/11/16/readability>

</comment></comment><comment><USER22> Marco goes to some length in the most recent episode of his podcast Build & Analyze (<http://5by5.tv/buildanalyze/67>) to grapple with the reality of Readability as (to his mind) his first competitor with a design ethos that seems to be in direct competition with his own. It's fascinating stuff, especially from the perspective of a developer with relatively little formal background in design.

<comment><USER23> I listened to a couple of his podcasts a few months ago and it was a real pain. Hypercritical is very good though, and I tune in every week.

Has build and analyze improved any? Because I like Marco and I think he has some good points here and there... It's just that his podcast was waaaaay whiny...

<comment><USER24> No, not improved. The recent episode where they talked about cars for practically the whole show was the end of it for me. Unsubscribed.

<comment><USER25> He actually turned this as an upside, saying during the show something like `I do a show about random things developers might also be interested in, not about developing` (I paraphrase heavily). Perhaps they should rename the show.

For technical matters, the Hypecritical podcast is way way better.

<comment><USER26> The "might" there is the thing. I _might_ be interested in his home renovation, his personal preferences in regards to coffee, music and leasing cars or the fact that he's having a kid. I might, _if_ he were my brother-in- law.

From the the Instapaper guy, all I want to know is what he thinks about web/iOS development and running his own business. I get the impression lately that Marco is either out of material on development topics, or just not interested in discussing them.

EDIT: That said, here's hoping Marco blasts out some awesome changes and makes Instapaper even better, love him or hate him he's an inspiration to one-man shops, and produces some great stuff.

</comment></comment></comment></comment></comment><comment><USER27> Henry Ford once said that "the competitor to be feared is one who never bothers about you at all, but goes on making his own business better all the time." Microsoft's history of wallowing in denial whenever something new emerges to threaten its legacy product is indicative of the reason why they always react defensively vs Apple. Google on the other learned from IOS and was quick to go on the offense with Android.

<comment><USER9> I think the most obvious case where this might be wrong in Microsoft's case is the Xbox. The original one was a salvo against Sony into a collapsing market. The new one is maybe the best general use consumer set top box on the market. Roads don't always lead you where you think they will, but if you focus on quality you can often come out ahead.

Of course, Microsoft has billions to sit on while they iterate. Most companies don't have that luxury.

<comment><USER11> Exactly -- I was really critical of the xbox at the time, but now I have a PS3, Google TV, Apple TV, and XBox 360, and the one I use for gaming the most is the XBox. PS3 for bluray, and probably Apple TV (2012) for netflix and other streaming content (due to 1080pness; using the PS3 for that now). Microsoft is relentless and has deep pockets and more than adequate technical skill.

I wouldn't be surprised if Microsoft manages to get an xbox-level win out of Windows Phone just by throwing absurd resources at it, along with great integration with their platform, as RIM self destructs.

Especially if Microsoft can use Nokia to pitch itself as the "European alternative" to Google or Apple, that plus enterprise is a pretty big protected niche.

</comment></comment></comment><comment> why-el I don't use Instapaper, but does it offer something like Readability's Send to Kindle? Thats _the_ killer feature for a Kindle user like me.

<comment><USER28> It does. <http://www.instapaper.com/extras> Search for "Kindle automatic wireless delivery". Haven't used it myself though.

<comment> why-el Oh good to know. The only reason I might consider this is because Readability sometimes does not parse long articles correctly, usually parsing only a portion of them.

</comment></comment></comment><comment><USER29> I thought the official Apple-community view on competition was that it was a "race to the bottom" and only lead to bad things for consumers.

</comment><comment><USER30> I don't have time to read the article, but I added it to my reading list on Readability. Oh, the irony. Even though I prefer Readability, Marco has done a fabulous job with a team of one.</comment>


Singapore: Fines employers who don't let employees work from home where possible - <AUTHOR> https://www.channelnewsasia.com/news/singapore/covid-19-work-from-home-singapore-jail-fines-coronavirus-12602224 <comment><AUTHOR> I wish we had something like this in the US.

I am in the house building industry which Texas has deemed essential/critical and can continue to function as normal during shelter-in-place orders.

As a software engineer, my job can be done entirely from home. However, the CEO has a deep distrust of employees and will not allow us to work remotely during this time since he can get away with doing so.

Technically we have 10 work remote days per year, but to work remotely at this time we must use those. It's not being given to us, and this situation will last more than 10 business days.</comment>


Physicists Are Closing the Bell Test Loophole - <AUTHOR> https://www.quantamagazine.org/20170207-bell-test-quantum-loophole/ <comment><USER2> +1 for the animated GIF, took me ages to understand what entangled particles were this would have made it clear instantly</comment>


The Idiot's Guide to Marketing Your Indie Game  - <AUTHOR> http://www.indievision.org/?p=1382 <comment><USER2> This is a great article. Concise, with good advice and straight to the point.

</comment><comment><USER3> Awesome.

I just need one for marketing my indie book, though this advice can be looked at as a general strategy.</comment>


3 American Professors Awarded Nobel in Economic Science - <AUTHOR> http://www.nytimes.com/2013/10/15/business/3-american-professors-awarded-nobel-in-economic-sciences.html?_r=0

<comment><USER2> [http://www.theguardian.com/business/2013/oct/14/american- nob...](http://www.theguardian.com/business/2013/oct/14/american-nobel-prize- economics-fama-hansen-shiller)

"Fama, 74, is notorious in left-wing circles for denying that financial bubbles exist and asserting that recessions are a largely unexplainable fixture of capitalism that should be allowed to take their course."

It should be noted that the Nobel prize in economics is nothing to do with the Nobel Prize or the Nobel family.

<comment><USER3> That's not true:

"Although not one of the Nobel Prizes established by the will of Alfred Nobel in 1895, it is identified with them, and prizes are announced with and awarded at the same ceremony."

[http://en.wikipedia.org/wiki/Nobel_Memorial_Prize_in_Economi...](http://en.wikipedia.org/wiki/Nobel_Memorial_Prize_in_Economic_Sciences)

The Nobel Foundation also lists the Prize in Economic Sciences on their website:

[http://www.nobelprize.org/nobel_prizes/economic- sciences/](http://www.nobelprize.org/nobel_prizes/economic-sciences/)

</comment></comment><comment><USER4> "Nobel" in economic "science".</comment>


OQaaS – Office Quotes as a Service - <AUTHOR> https://www.producthunt.com/posts/office-quotes-as-a-service <comment><AUTHOR> Hey guys! I made an API that will give you random quotes from the office!</comment>


Alien civilisations have a variety of options if they want to get in touch - <AUTHOR> http://www.wired.co.uk/article/the-best-ways-to-listen-out-for-aliens?utm_content=buffer2c947&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer <comment><USER2> name 1 reason why they would want to lol... bet u cant think of any...</comment>


Show HN: Updates for GOLO, a simple project management app - <AUTHOR>

Hello Guys
I was happy to receive positive feedback when I did show-hn for Golo few days back. I have added one critical functionality of sharing with your teammates. Sharing is extremely easy. You just share the project URL through mail.
Your teammate will have to register (obviously) before he could see the project.
Hope few of you find it decent enough to use and give feedback. Thanks for checking it out.
http://getgolo.com <comment><USER2> It's "generally" a good idea to show some screenshot on the home page, or have description about the product right at the landing page. I could see "How to Use" text, but list of features would help as well.

Also, state whether the product is free or paid (list pricing if paid).

<comment><AUTHOR> Hi,

Its free. Its not even a product, more like a personal project. I haven't put any screenshots as its still in development and would love to get your thoughts.

I want to build an extremely simple project management tool without extra bells and whistles. Something which may be suited for a specific size of team, or specific type of execution.

I personally think that its a good tool for very small teams...like 3-5 where current tasks and backlog tasks list are more important. Not even attributing tasks to people, because in a very small team, everyone pretty much knows what another teammate is working on.

Its a single page project. I hope you check it out.

</comment></comment><comment><AUTHOR> [http://getgolo.com](http://getgolo.com)</comment>