History and Derivation of the Fast Fourier Transform - <AUTHOR> http://michaeljflynn.net/2017/03/20/history-and-derivation-of-the-fast-fourier-transform/ <comment><USER2> In computational seismology we've long had our own creation story for the FFT:

"The first machine computation with this algorithm known to the author was done by Vern Herbert, who used it extensively in the interpretation of reflection seismic data. He programmed it on an IBM 1401 computer at Chevron Standard Ltd., Calgary, Canada in 1962. Herbert never published the method. It was rediscovered and widely publicized by Cooley and Tukey in 1965." [1]

[1] Claerbout, J., 1985, Fundamentals of Geophysical Data Processing, p. 12.

<comment><USER2> The Claerbout book also gives a 27-line Fortran program to perform an FFT.

</comment></comment><comment><USER3> I remember a math professor retiring in the late 1980s, who was giving away all of his books. Looking through them I saw one from the early 1960s that was on numerical methods for certain classes of problems.

Several chapters started off by describing a problem, explaining that ideally you'd do a Fourier transform, and then coming up with a special case hack that worked well enough and performed well enough to actually be done.

The FFT made all of this knowledge obsolete.

<comment><USER4> Especially in math, a distinction is often drawn between

        FT   f(real) -> F(real)
        DFS  f(real) -> F(int)
        DTFT f(int)  -> F(real)
        DFT  f(int)  -> F(int)

Only one of these, the DFT, is easily handled by a computer, but they all have an important role in both theory and practice. For example, why does JPEG use a Discrete Cosine Transform rather than a Discrete Fourier Transform? What are the pitfalls of approximating a continuous domain with discrete samples? Why are engineers obsessed with window functions? A continuous domain will lead you to the right answer. You can't easily understand the DFT (or FFT) without the FT and DFT. DFS has its own uses.

To many (applied) mathematicians, the fact that a computer uses the FFT algorithm to compute a DFT is largely immaterial and not particularly worth mentioning, because they are more interested in the questions in the preceding paragraph than questions like "how many points can I take on X hardware while maintaining Y performance?"

</comment></comment><comment><USER5> Also notice the awesome "Sparse FFT" [https://groups.csail.mit.edu/netmit/sFFT/](https://groups.csail.mit.edu/netmit/sFFT/) which takes time just about `k log (n/k)` to recover the `k` largest coefficients. So often a complete Fourier transform is taken only to immediately discard nearly all of the computed values. (Compression for example.)

</comment><comment><USER6> Additional resources I'm finding helpful:

[https://betterexplained.com/articles/an-interactive-guide- to...](https://betterexplained.com/articles/an-interactive-guide-to-the- fourier-transform/)

[http://jackschaedler.github.io/circles-sines- signals/](http://jackschaedler.github.io/circles-sines-signals/)

[https://books.google.com/books/about/Who_is_Fourier.html?id=...](https://books.google.com/books/about/Who_is_Fourier.html?id=89UpAQAAMAAJ)

</comment><comment><USER2> I recommend Fast Algorithms for Digital Signal Processing, by Blahut, 1985 for a mind-expanding survey of all the work in this area up to that time. Winograd FFT is even lower complexity than C-T. And the book spends a lot of time on fast DFTs over integer fields of size a Mersenne or Fermat prime. It's tragic how many transistors we've wasted doing floating point math on what is essentially an integer problem.

<comment><USER7> My impression is Winograd FFT is still O(N log N), i.e. exactly the same complexity as Cooley-Tukey. That said, they work best on different N, which is possibly what you're referring to?

<comment><USER2> A nice table from the book at [1]. For block length 1024, CT radix 2 requires ~20k multiplies and ~30k adds. Block length 1008 Winograd requires ~4k multiplies and ~35k adds.

[1] [https://books.google.com/books?id=8sbS2Bi4BmIC&pg=PA396&lpg=...](https://books.google.com/books?id=8sbS2Bi4BmIC&pg=PA396&lpg=PA396&dq=blahut+winograd+fft&source=bl&ots=fpxNovGZgd&sig=lg7WxOLB2rfVMBAuagSKzfQPxVM&hl=en&sa=X&ved=0ahUKEwjFpKT5rObSAhWBKCYKHTRSAXgQ6AEIJDAC#v=onepage&q=blahut%20winograd%20fft&f=false)

<comment><USER7> I see. That sounds like a smaller constant factor, rather than a lower complexity.

</comment></comment></comment></comment><comment><USER8> Is is just me being a n00b or are there a few errors in the equations? Like the exponential definitions of sin and cos, a missing negative sign in proof of m≠n, maybe more later not sure. Somewhat perplexing for someone learning the stuff BUT then again, I'm in medicine; so it might actually just be me.

Relevant for other learners is the digital signal processing lectures on Coursera, highly recommended with python notebooks and quizzes. [https://www.coursera.org/learn/dsp](https://www.coursera.org/learn/dsp)

<comment><AUTHOR> You are correct on the sine and cosine thing, the minus is switched. Will fix, thanks.

</comment></comment><comment><USER9> dumbish question: if cosine is simply sine but offset by pi/2 radians, why are we approximation these functions with an infinite sum of sines and cosines and not doing it just with sines?

<comment><USER10> Well, you may not like this answer, but:

If cosine is just sine rotated by 90°, then we really just use sines. Except we write cosine instead of a sine with a 90° rotation because it looks less confusing :)

The real goal is to arrive at the exponential representation, where the sines and cosines are absorbed into the exponential functions, which is later needed to write down the fourier integrals.

Your question boils down to preference. The two things you name are, in fact, equal. Math people just choose to write cos(x) instead of sin(x+pi/2)

</comment></comment><comment><USER11> A Chevron geophysicist coded it before Tukey, but did not publish it

<comment><AUTHOR> I am genuinely interested in the source for that if you have it.

<comment><USER12> Here [1] is a mathforum.org thread discussing the unpublished predecessors of the FFT. Vern Herbert of Chevron is mentioned, but so are several others. The mathforum thread has a link to a pdf that supposedly contains more information, but that link is dead.

[1] [http://mathforum.org/kb/message.jspa?messageID=1640228](http://mathforum.org/kb/message.jspa?messageID=1640228)

<comment><USER11> Correct. Since I am a geophysicist I met him a few times. He was pround of his achievements despite limited recognition. A defect of the US R&D system which promotes competitive secrecy over scientific gain.

</comment></comment></comment></comment><comment><USER13> Here's another history, of sorts, of the FFT that traces similar mathematical techniques back to Gauss. Here's a snippet:

"In a recently published history of numerical analysis, H. H. Goldstine attributes to Carl Friedrich Gauss, the eminent German mathematician, an algorithm similar to the FFT for the computation of the coefficients of a finite Fourier series. Gauss' treatise describing the algorithm was not published in his lifetime; it appeared only in his collected works as an unpublished manuscript. "

[1] [http://www.cis.rit.edu/class/simg716/Gauss_History_FFT.pdf](http://www.cis.rit.edu/class/simg716/Gauss_History_FFT.pdf)

</comment><comment><USER14> Great article. The FFT and it's many applications (especially convolution- based ones such as matched filtering) is one of my favorite algorithms, and possibly one of the more important ones developed in the 20th century.

I'd put the Simplex method as a close 2nd.

</comment><comment><USER15> There are a couple misspellings of "Fourier." One example is the table about half way through the article which spells it "Fouirer."</comment>


In New Procedure, Artificial Arm Listens to Brain - <AUTHOR> http://www.nytimes.com/2009/02/11/health/research/11arm.html <comment><USER2> A couple years ago the developer of this and his patient did a presentation at Pop!Tech.

<http://itc.conversationsnetwork.org/shows/detail763.html>

</comment><comment><USER3> Never mind arms, I just need enough muscle/neuron attachment to control 101 inputs! (<http://en.wikipedia.org/wiki/IBM_PC_keyboard>)</comment>


Callback hell is a design choice. - <AUTHOR> http://blog.caplin.com/2013/03/13/callback-hell-is-a-design-choice/

<comment><USER2> It doesn't have the "pyramid of Doom" feeling of the "traditional NodeJS" version, but it does not make it easy to follow the flow. A better approach, IMHO, would be to use a promise library like q [1]

1: <https://github.com/kriskowal/q/>

<comment><AUTHOR> Author here: I like promises and I think they have their uses but I think for most cases simply writing well structured and encapsulated code will make them superfluous. You also have the problem of working with APIs that don't return promises.

</comment></comment><comment><USER3> I think maybe you didn't understand why callback hell exists in node in the first place. Everything is evented in node, so that you get non-blocking IO and all the speed that comes with it. Which means, that by default you have callback hell. If you take away the evented everything nature of node, it's a single threaded, blocking dynamic language, which is to day much like traditional ruby or python code.

You can't just OOP everything in node because evented code breaks that. Once you touch a database or filesystem, you are in evented land, and all the callbacks that come with it. Saying you should just OOP things in Javascript is not wrong, but it doesn't work for node.

There are a few libs that make callback oriented things nicer, but they still kind of suck and OOP is not as much fun even with those tools in place.

<comment><AUTHOR> I understand the evented nature of Node.js and I'm not taking that away. In the code example I gave I'm still using the async methods.

DirectoryScanner.scanLibraries = function(librariesRoot) { // Asynchronous Function Callback function // | | fs.readdir(librariesRoot, this.onLibrariesDirRead.bind(this)); };

All I've done is pass in a bound method on an object as the callback function. OOP does work for Node as far as I can tell I broke nothing with my code, it's all async/evented...

Can you give me an example as to how my coding style would break Node? I'm genuinely confused.</comment></comment>


Is anyone working on this concept for a VR device? - <AUTHOR>

https://www.youtube.com/watch?v=4BkY8LGjW4w<p>Seems way cooler than an omni directional treadmill, but I haven't been able to find any companies even proposing to try something like this. <comment><USER2> I've got a reasonably good knowledge of the current state of play in VR, and to the best of my knowledge the answer's "no".

Why not? Looking at the device, I'd say there are three problems that would put me off working on it:

1) Lots of moving parts. Likely to make it expensive to make and a pain to maintain. 2) Risk of injury to user. Powerful motors attached to the user's feet mean that software glitches could be really bad, for "permanent injury" values of bad. Not a great profile for a Kickstarter or other software startup. 3) How would you turn? Adding the ability to turn, which is pretty key for VR, looks like it'd make the entire thing an order of magnitude more complex as you're now looking at having free-moving robot arms.

If you want to be sure that no-one's doing this (and get feedback from people considerably more expert than me) I'd recommend asking on www.reddit.com/r/oculus or www.mtbs3d.com .</comment>


Build a Geodesic Dome Solar Greenhouse to Grow Your Own Food (Slideshow) - <AUTHOR> http://www.treehugger.com/files/2009/07/build-a-geodesic-dome-solar-greenhouse-grow-your-own-food-slideshow.php <comment><USER2> Rather expensive way to grow your own food:

12 ft. Diameter Dome Greenhouse Kit

* 110 square feet of floor area.

* Height 8 ft 8 ins

* Fresh produce for 2 to 3 people.

Complete Greenhouse Kit with:

Standard double glazing $4,570.00

<comment><USER3> It's expensive but the joy from growing your own food, the aesthetic pleasure of the dome, the mathematical pleasure of the structure and the knowledge of EXACTLY what's in your food are worth it IMHO.

For more pleasure: get a pen and paper out, design the structure, calculate the angles, buy wood and build it yourself.

<comment><USER4> "get a pen and paper out, design the structure, calculate the angles"

In that vein, this can be quite fun -

<http://sketchup.google.com/></comment></comment></comment>


Can NASA change in order to survive? - <AUTHOR> http://www.latimes.com/news/science/la-na-nasa-costs-20101228,0,5202597.story?track=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+latimes%2Fnews%2Fscience+%28L.A.+Times+-+Science%29 <comment><USER2> It's a bit unfair to say SpaceX spent only 800M to build the Dragon. A lot of the technology it uses was developed by and for NASA with NASA's money.

Not to say that NASA has been doing design-by-politics for a very long time. When practicality gives way to what politicians want in order to increase their own constituency, the technological endeavor is pretty much doomed.

Of course, Feynman said it much better than me.

<comment><USER3> _A lot of the technology it uses was developed by and for NASA with NASA's money._

While Dragon may be standing on the shoulders of giants, isn't that equally true of the Orion program? I mean, sure, SpaceX has benefited from past lessons, but so does the current NASA development program. Those giant numbers quoted for Orion/Constellation surely don't include moneys spent on Apollo, Space Shuttle, etc.

<comment><USER2> If you read the following paragraph (I should have edited it, but when I realized, it was too late) you would see that NASA is a politician-driven endeavor. It also has a mandate to generate new technology, while SpaceX only needs to apply it.

Obviously, Orion/Constellation is not money well spent. At least it teaches that basing a project in common parts with an existing system and then specifying them in a way they are no longer common is appallingly stupid. Ares V may look like a shuttle tank with shuttle SRBs attached, but it's not.

</comment></comment></comment><comment><USER4> NASA proved it was possible to spend money and gain practically nothing of scientific value (ISS & the entire Shuttle program). Of course, the main reasons it got those money was to spend it in favorable political endeavors.

<comment><USER2> There is a lot of value in learning how not to do something. The shuttle is a valuable (albeit costly) lesson on why you should keep committees out of a design process, on focusing on doing one thing well instead of many things badly, on why graceful degradation is important and so on. Likewise, I don't think the ISS is a complete failure - it teaches us every day how you can (and can't) build huge structures in LEO.

And it's not that the ISS is horridly expensive - it's shipping its parts to its final location that's expensive. I wonder how much would it cost if we had the Falcon-9 Heavy, a couple Saturn V's or a shuttle-derived expendable cargo pod available in 1980.

Could the money be better spent? Could politics be less of a problem? Probably. It's a shame we still rely on chemical rockets and solar panels. It's a shame we never deployed a deep space probe with a large solar sail and that there is no Aldrin Cycler station in place yet.

OTOH, we still don't have flying cars.

<comment> DanI-S Summary: The first time you do anything, it usually sucks. NASA do things first, so that we don't have to.

<comment><USER5> I think we could accomplish many more firsts with less money if we used the X-Prize model. (If we did this, we wouldn't have to abandon the NASA model either!)

<comment> DanI-S I'm not sure, but I suspect that some things are expensive enough to be beyond private investment. Mega-projects like the Apollo missions, the Hubble telescope, the LHC and such seem likely to be too risky to embark on with a prize as the incentive.

Edit: I know the LHC has nothing to do with NASA; it is just in a similar vein.

<comment><USER5> I think a $20 billion prize for a manned Mars landing could pay off handsomely for both the winning contestant and the government, particularly if the government received a license to the technology used to accomplish the prize.

$2 billion for a fully reusable TSTO lofting 5000 pounds to LEO would also be money well spent.

</comment></comment></comment></comment></comment></comment><comment><USER6> Why do you need an escape system? Doesn't it just add tremendous cost and complexity for a, possibly imagined, modicum of safety?

<comment><USER2> Tell that to Vladimir Titov and Gennady Strekalov

<comment><USER7> Also, compare the PR impact of "The pilots safely ejected from the enormous explosion" vs. "the pilots died screaming in the enormous explosion". One instance of the latter cost us about five years. Even just on a PR basis the money may be well spent.

And no, I don't think just accounting for the PR is a good idea, the human factor is very important. I'm just saying that the PR factor alone is adequate to justify it before you consider the human factors.

The greatest threat to private spaceflight is the government stomping on it, and the most likely way that will happen (/most likely excuse the government will use) is fatalities in the program, because our culture not only doesn't want to take risks like that, it doesn't want anyone to be able to choose to take risks like that, for better or worse. (I'm serious about the ambivalence in "for better or worse"; I can muster good arguments either way. It is not sarcasm or snark.)</comment></comment></comment>


Our Brains Are Not Multi-Threaded - <AUTHOR> http://www.calnewport.com/blog/2019/09/10/our-brains-are-not-multi-threaded/ <comment><USER2> The language here is weird. He's talking about doing more than one thing at a time. If you're talking about multi-threading in the context of the brain, the obvious comparison is with neural architecture. The brain does a massive amount of parallel processing and it very much _is_ multi-threaded. But "multi-threading" sounds a bit cooler than "doing more than one thing at a time" I guess.

<comment><USER3> There is a big difference between multitasking and parallel processing. As a former neuroscientist I get rankled when I read gross conflations like this, it doesn't help anyone understand how the brain actually works, nor does it effectively underscore the attentional drawbacks of trying to multitask.

<comment><USER2> Fellow former neuroscientist here! The proliferation of pseudo-neuro explanations and analogies is infuriating. I envy people like theoretical physicists who work in a field where laypeople don't feel like they have an intuitive understanding of their subject area.

<comment><USER4> I for one am a specialist on quantum mechanics since I read Steven Hawking. It's all bonkers, I can tell you that, but because of the uncertainty principle, I'm not really sure. That's OK because there is some parallel world in the multiverse in which it isn't. And please don't ask me to explain, I've read enough to know that by Hoffstadter's Incompleteness theorems I cannot prove it.

<comment><USER5> I know that dog created the universe with a pair of parentheses and after that it was pretty much backwards and uphill.

ok maybe not: [https://xkcd.com/224/](https://xkcd.com/224/)

</comment></comment></comment></comment></comment><comment><USER6> In the tech community, we talk a lot about not interrupting programmers (or other knowledge workers) because of the cost of so-called "context-switching." I think this post raises the very interesting point that, much of the time, the sources of these interruptions are not external, but internal. Stop interrupting yourself! You're a knowledge worker! His advice to cultivate systems that afford one focus and prevent context-switching is salient.

<comment><USER7> It's a cliche that IT as an industry is hostile to women, and it's also a cliche that women are good at multitasking.

How do we know that people's opinions on the difficulty of multitasking are representative and not biased?

I'm not even speculating on whether gender differences might be innate or trained.

</comment></comment><comment><USER8> Cal's essay is backed by empirics. I'd add that, for those like me who used to believe that women are better multitaskers, both men and women are equally bad at multitasking. Early studies would sometimes show a female advantage or a male advantage (not sure why the female advantage idea came to be popular), but they were based on humans performing tasks that didn't resemble the real world... or at least tasks from the world of business/office work.

A newer study, based on a real world task of meeting preparation, showed that both men and women were quite bad at multitasking: [https://link.springer.com/article/10.1007%2Fs00426-018-1045-...](https://link.springer.com/article/10.1007%2Fs00426-018-1045-0)

</comment><comment><USER9> I feel like everyone in this thread arguing about multi- threading/hypterthreading/multi-core/multi-processor as an analogy is missing the poing. The post is about how you can focus your _attention_ on a single task only (true multitasking doesn't exist) and that you should keep focus longer instead of switching context too often.

<comment><USER10> That's because the author is saying that the brain cannot perform parallel processing, which is clearly not true. You are making a distinction that the author does not.

</comment></comment><comment><USER11> Consciousness about what our brain does is single threaded. Everything else is massive parallel processing.

<comment><USER12> Right. Thank god I don't have to think about breathing or making my heart beat.

<comment><USER13> What you don't think happens on its own and what you think also happens on its own. The illusion is that thinking is you, identification with thinking. Once that is seen as an illusion you can observe yourself talking, thinking and verify all this happens on its own.

</comment></comment></comment><comment><USER14> Effective task switching is a learned skill.. I often find that switching between 2 or 3 tasks a few times over the course of a day, helps me be more productive because blocking is less of an issue and sometimes blocking due to problems needing to be solved, can be iterated on subconsciously while you're forebrain is doing something else.. I think there are parallels with neural networks.. task switching helps make your network generalize better.

</comment><comment><USER15> > In a world before multi-core processors, these threads weren't actually > running simultaneously, as the underlying processor could only execute one > instruction at a time.

This is not true. Before multi-core processors there were _many_ computers with multiple CPUs.

Is the author under 30 or something?

<comment><USER16> You don't think its true that before there were multi-core processors, processors could only execute one instruction at a time?

It doesn't say computers could only execute one instruction at a time. It says processors.

If you're going to do needlessly pedantic bikeshedding, at least get it right.

<comment><USER17> > You don't think its true that before there were multi-core processors, > processors could only execute one instruction at a time?

It is not true.

Instruction-level parallelism existed before multi-core.

> If you're going to do needlessly pedantic bikeshedding, at least get it > right.

Pot, meet kettle.

<comment><USER16> I don't care at all about this discussion! I was just trying to ding the commenter for going off on a tangent. Also, the person I'm replying to wasn't talking about instruction-level parallelism, they were misreading the article.

<comment><USER18> >I don't care at all about this discussion!

Then don't say shit like "at least get it right".

</comment></comment></comment></comment></comment><comment><USER19> Whenever these comparisons of brains and computers come up, I am reminded of Freud's comparison between the brain and the steam engine.

People think about the world (and brain in this case) in terms of what they are familiar with. Today computers are ubiquitous and we try to see computers in nature. In 100 years it will be something different and we'll try to imagine the brain like that.

</comment><comment><USER20> Lacking in evidence and uses vague terms like "psychic toll".

<comment><USER21> I think simple observation provides plenty of evidence. It's not a real scientific-method approach, but if you want to dismiss the relationship he's talking about, you need either to find a flaw in his reasoning or offer a better alternative explanation for the observation that when people try to "multitask", they usually do a shit job of it.

<comment><USER20> You can feel free to have whatever standard you want as to what makes up a worthwhile article. Someone's personal feelings on how the human mind functions, described with vague terms, is essentially worthless to me.

Given that the same complaint seems echoed in other comments, I'm not alone there.

<comment><USER21> My atttitude toward a Cal Newport article is that he's published multiple highly regarded books that I've read and found very insightful and applicable in practice. So when he writes something that's brief and does some handwaving, but fits within his overall worldview (like this article), I'm inclined to take it more seriously.

If you've never heard of Cal Newport before now, I can see reason for some doubt, but I also think you're maybe missing out on a lot within the field.

<comment><USER22> His blog articles were both more concise and more valuable than his bloated books.

</comment></comment></comment></comment></comment><comment><USER23> Multi-threading is not a good analogy. If you think of the conscious brain as a hyper-visor which is switching execution context between multiple virtual machines, the analogy sticks slightly better. Running too many VMs (on what seems like a single core processor) will slow things down and is akin to context-switching between "neural activities". It's a whole host of things that the processor needs to setup before executing instructions in a sandbox. Switching between threads is cheap and the conscious brain does it all the time, even when you're focused on a single task.

But it's all so relative and comparing it to a "computer" and claiming it's not efficient is not fair. In fact, I'd argue that the human brain is a lot more efficient at handling tasks because not only is it executing instructions, it's constantly learning and programming the next set of instructions.

</comment><comment><USER24> A better title would be "Our Brains Are Not Multi-core' \- so multitasking, just like multi-threading on a single core CPU, will incur a penalty of context switching, cache misses, and so on.

<comment><USER25> Looking at split-brain patients, it does seem like each hemisphere is a "core" which communicate via the corpus callosum. So you could say that our brains are multi-core.

</comment></comment><comment><USER26> "it's often much easier for the programmer to write independent threads, each dedicated to its own part of the larger system."

oh, if only it were true...

<comment><USER27> Im one of these people who reaches for threads to solve many a task, and that statement resonates for me. I've never understood why threads are considered so difficult, other than people not getting the message to sparingly share data other than via message-passing.

Any time you need to do something asynchronously, things get trickier, but whether you keep it single threaded or not barely makes any difference. Race conditions exist in single threaded code too as soon as it is interacting with a network or the OS or anything that takes time and you don't want to block.

It's not threads that are hard, it's the explosion of the state space of your program when you commit to accepting further user/network input whilst some task is ongoing, whether you implement that with threads or not.

</comment></comment><comment><USER28> If you want to read something interesting on how thinking works I suggest 'Thinking, Fast and Slow' by Daniel Kahneman.

<comment><USER29> I enjoyed TFS but tend to agree with this review:

> Thinking Fast and Slow is my runner-up for "book most overrated by > investors" (with Klarman's Margin of Safety the champion.) People who pitch > this book as "required reading" simply haven't read broadly enough about > cognitive biases: while the content is certainly useful and I don't take > anything away from Kahneman as a researcher, his > writing/communication/worldview leave much to be desired, and the same > lessons can be learned far more effectively and enjoyably via a variety of > other books (many of which are suggested below).

[http://www.askeladdencapital.com/daniel-kahnemans- thinking-f...](http://www.askeladdencapital.com/daniel-kahnemans-thinking- fast-and-slow-book-review/)

</comment></comment><comment><USER30> AKA our brains are hyperthreaded. The observation doesn't seem that salient.

That said, I believe the article to be incorrect. Our brain does do various sorts of parallel processing (visual cortex, keeping your heart beating, maintaining sense of balance, etc). It's just that the cores happen to be more specialized.

<comment><USER31> You can add many learned things, like driving, riding a horse, playing the piano, and attacking math problems under time pressure to the sort that apparently involve parallel processing.

</comment></comment><comment><USER32> > Imagine, for example, you're creating a basic game. You might have one > thread dedicated to updating the graphics on the screen

Has the author has never actually written a game? The majority of games are single threaded. You calculate the positions, moves, strategy of the AI, etc. etc. and then eventually render the frame. For years, certain releases of Doom and Quake were the benchmarks for games because they were some of the first to use multiple threads and could scale to multiple CPUs/processors.

Sure, modern games tent to be able to use more cores and have some independent threads, but the majority of the work typically still happens in the main event loop.

</comment><comment><USER33> Listen to Terence McKenna's recordings where he describes tripping experience, or somebody doing DMT, or Michael Stevens doing ayahuasca. Maybe all these observations are anecdotal and not scientific, but it feels like ideas and thoughts live their own lives inside neocortex.

Our brain's potential is harnessed with reptile and mammal tasks which are more asynchronous than parallel. Even if we could overclock ourselves into massive parallel thinking it would have ended up with oxygen or glucose deficit. And mind overheating, whether cpu is made from silicon or grey matter, there's a limit for FLOPS per joule.

</comment><comment><USER34> I've generally found that a context switch from one programming task to another can be pretty easy (even if totally unrelated), but switching to something non-programming related is often much more painful.

</comment><comment><USER35> The brain is the hardware, consciousness is experienced in the mind, the mind is the faculty for processing thoughts it is also the same faculty we use to perceive the self/ego and our reality with help from sensed data. The highest level of our consciousness the mind appears single threaded because the perceived self/ego is attached to the minds thread, multi threads will be like multi self. But we can be conscious of the fact that we are thinking, that is itself a sort of thread running, and we can perceive that one also, and the other...

<comment><USER36> Sometimes when I'm meditating I experience a mini ego-loss. I come out of it feeling like I'm merely a collection of running processes over which I have little to no control. I feel like I get a brief glimpse of 'multithreads,' and it's somewhat emotionally unpleasant.

<comment><USER35> Yes exactly. My first comment was based on what I experience when meditating.

> I feel like I get a brief glimpse of 'multithreads,' and it's somewhat > emotionally unpleasant.

I think it helps not to identify the self as the thoughts/processes of the mind, the self is the observer/awareness

</comment></comment></comment><comment><USER10> This article is nonsense and I don't think any background research was done before writing it. It takes almost no effort to come up with an example of parallel processing in the brain. Pat your head and rub your tummy at the same time. How many times have you been driving and talking and listening to the radio at the same time?

He must mean that conscious attention is not multi-threaded, and that is obviously true because the nature of paying attention is that you are focusing on a single thing.

</comment><comment><USER37> As I read it, it seems to be saying that our brains _are_ multi-threaded, but not multi-core or multi-processor.

The lower priority 'threads' which are not the intended focus still do take cycles in brief moments when the main task is idle only to be preemptively interrupted at the cost of many context switches and adding very little value. The same happens with hardware CPUs which is why coroutines are much more effective when the number of tasks >> number of processing units.

<comment><USER37> Also we do have multiprocessing abilities, just not multiple 'foreground' conscious ones.

<comment><USER38> We sort of do, but at best it's not more efficient, at worst it's much slower.

<comment><USER37> I've never experienced being aware of two unrelated things at the same time so I definitely have a single-core consciousness.

</comment></comment></comment></comment><comment><USER39> > This is all to say that the closer I look at the evidence regarding how our > brains function, the more I'm convinced that we're designed to be single- > threaded, working on things one at a time, waiting to reach a natural > stopping point before moving on to what's next.

So it's another hypothesis, parading around as a common claim.

</comment><comment><USER40> My brain is. I am simultaneously looking at the screen while writing this comment by tapping my fingers too.

</comment><comment><USER41> I'm not sure this is a great example of memorization or multithreading but playing chess blindfolded against three opponents, is out there: [https://youtu.be/xmXwdoRG43U](https://youtu.be/xmXwdoRG43U)

<comment><USER42> That's actually pretty easy for any experienced chess player. The world record is simultaneously playing 45+ opponents blindfolded, which is actually incredibly hard.

</comment></comment><comment><USER43> Multiplexing in the brain is apparently achieved by maintaining a high and low (theta) peak frequency -- when at a ratio of the golden mean, each separate period of high activity doesn't interfere with the other. Makes sense, when you think about brainwave bands being harmonics (frequency doublings), as that is what permits frequency coupling-- whereas irrational ratios prevent coupling.

Pletzer, B., Kerschbaum, H., & Klimesch, W. (2010). When frequencies never synchronize: the golden mean and the resting EEG. Brain research, 1335, 91-102.

<comment><USER43> Btw, I know that anything involving golden mean smells like crank science. Note that Wolfgang Klimesch is field topping in EEG research citations...

</comment></comment><comment><USER44> A computer is a bad metaphor for the brain, there's no reason to strain the metaphor even further by dragging threading into it.

</comment><comment><USER45> There's a special irony to being distracted enough by a Cal Newport article to feel the urge to comment on it!

</comment><comment><USER46> not in the time slice way we programmer usually think when taking about multi threading, but how many times you let a problem be only too have an epiphany some time later? background thinking is very real and albeit not a fair allocation system it is, in a sense, threading.

</comment><comment><USER47> Yet! Give it time, we'll add a peripheral port soon enough

</comment><comment><USER48> More complex than any man made machine</comment>


Ask HN: Digitizing Books That Aren't Available Electronically - <AUTHOR>

I am the new owner of an ereader, and while there are lots of books to buy, some of my favorites are still not available electronically. Because of this, I am considering taking some of my old paperbacks and converting them myself, using a scanner and OCR.<p>Considering the fact that I would be doing this for myself, and will never share them with anyone else, does anyone see anything unethical in doing this? <comment><USER2> I do it all the time. I take the poor book to work, slice it's spine off with the hydraulic cutter and then feed it through my Fujitsu Scansnap. The whole process take about 15 minutes for a reasonable sized book. The software that came with the scanner makes it into a searchable PDF automatically. It's a bit ..ahh.. destructive for some people's taste but I figure by sacrificing the paper copy, I can keep the electronic one with me for a lot longer.

<comment><USER3> How accurate is the OCR?

<comment><AUTHOR> That's what I was wondering. I would imagine that it could be pretty tough, especially if you are OCRing a fantasy or SciFi book.

<comment><USER4> Scansnap uses abbyy software and it is very accurate, regardless of the topic of your item because it analyzes the letters not the words.

<comment><AUTHOR> Thanks!

</comment></comment></comment></comment></comment><comment><USER5> You are absolved of your sins my son. Digitize away. If we don't do it, the books will rot and be lost for ever. It is your life and your brain AND your books. So feed your brain, don't ask for permission.

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER6> If you own the books and you aren't planning on sharing them then you are just format-shifting which is perfectly ok.</comment>


Den, a New UK Home Automation Platform - <AUTHOR> http://techcrunch.com/2014/11/25/den-is-a-new-uk-home-automation-platform-raising-crowd-financing/

<comment><USER2> I really like this idea. The major downfall to me of other connected light/plug systems was that if you turned the physical switch off the whole system was offline until you turned it back on again. Integrating the physical switch in the connectedness could see a lot of support for this.</comment>


Bitcoin Miner does the math, calls it quits - <AUTHOR> http://www.bitcoin-board.com/index.php/Brand-new-Sapphire-5830-on-NewEgg-which-Im-passing-up <comment><USER2> What's interesting, is that this is what should happen. Since Bitcoins are generated at a constant rate (from my understanding) regardless of how many people are working on them, the market should eventually even out so that its a break-even at best. Likely it will be a little worse than break-even, because there are always some people out there willing to attempt to generate coins even if what they are doing doesn't financially make sense, breaking the market.

Just because you've got a competitor in business, doesn't mean that they are profitable or running good business. Trying to meet them can easily run you into the ground. It just happens in bitcoin-world, everyone has the same 'product'.

<comment><USER3> In fact, it's worse than that, because the global rate of BTC production goes _down_ over time. After 2025, hardly any new bitcoins will be generated. [https://secure.wikimedia.org/wikipedia/en/wiki/Bitcoin#Monet...](https://secure.wikimedia.org/wikipedia/en/wiki/Bitcoin#Monetary_differences)

<comment><USER4> That's the whole point. As the amount of Bitcoins gets closer to the maxim, it will become harder and harder to mine them. But ideally, this should be overcome by Bitcoin's increasing popularity and value.

This isn't happening right now, and it appears to have stagnated, but that's not a problem for Bitcoin's future, because the continous mining of Bitcoin is not necessary to ensure its success.

This simply means that there has to be a bigger real economy behind Bitcoin's value, and once that economy is strong enough and catches up with Bitcoin's inflated value, the value should start rising again, and miners will appear again as it becomes profitable to mine them.

<comment><USER5> It doesn't matter how many people are mining, coins are generated at a fixed rate. The difficulty to mine coins is varied automatically to assure this.

It's this difficulty that affects miners when more folks start mining. In effect they are taking the known portion of the pie (coins to be mined in a given time frame) and slicing it into many more pieces. This means that you have to work for a much longer time to have a nice large piece of pie with plenty of room for ice cream and whipped cream on top.

</comment></comment></comment></comment><comment><USER6> I'm a bitcoin speculator. So far, I've made a very good ROI on a relatively small (4 figure) investment. It's been a lot of fun, really.

MtGox, and other exchanges (though I've got less experience with them) publish raw market data. I've written some analysis tools using mongo and python, they run on an Ec2 instance and buy/sell automatically. I send myself an SMS when I make a trade.

It's been so much fun to build. It's like SimStockMarket (or SimForex) to me. I've always been fascinated by the high frequency trading platforms. Obviously mine isn't high frequency, but it was a chance to build a trading system that had enough skin in the game to be interesting but little enough to be a hobby and not a stressful investment.

I really don't see myself mining at all. That part has never interested me.

<comment><USER7> Sure, sounds like fun...

I hope people understand that the success of bitcoin speculation in no way demonstrates bitcoin's practicality as a _currency_. A currency doesn't benefit from being the subject of speculation - it benefits from having a stable value so you can just use it to buy and sell stuff.

<comment><USER8> Currencies (and other assets) benefit from liquidity: someone willing to buy it when you want to sell and to sell when you want to buy. It can be difficult to distinguish beneficial market-making activity (which still involves turning a profit) from harmful speculation, regardless of the way it's described by the person doing it.

</comment></comment></comment><comment><USER9> This isn't really news. I did the math a month ago and came to the same conclusion. That I could probably make a little money if I don't mind heating up my house (costing more in AC costs) and dealing with the noise of the computers running all the time.

The projected profits, at the prices that day, were pretty sad.

A week later I learned that the better the machines and programs get at producing bitcoins, the harder it is to actually earn one, so the machine works harder for the same output. (The whole market is in on this, not just 1 machine, so it's possible to be ahead of the pack... But they -will- catch on eventually.)

At that point I realized that even if I built a perfect rig that paid for itself every 3 months, I would have to continuously upgrade it to keep up with the market.

It's simply not worth it.

<comment><USER10> Why buy a new machine after 3 months? Once it makes back it's cost, wouldn't you still be able to earn money from it so long as it can cover the cost of running and storing it?

<comment><USER11> Only if more performance/watt machines haven't driven the output of your machines below the cost of electricity.

<comment><USER10> Wow. I know very little about mining and had no idea that the market moved that fast.

<comment><USER9> Yeah, that's the bit I learned a week after doing the calculations. When people first started, they were using CPUs. When GPU usage became available, CPU-miners became so horribly inefficient that electricity cost alone killed them.

Now, granted, I can't imagine anything being that much better than GPUs, but new GPUs are usually much more efficient than old ones, and they come out all the time. It could quickly became an arms race just to break even.

On top of that, apparently there's also a built-in cycle that makes it harder even if the machines don't change. The linked article touches on that briefly as part of his decision.

<comment><USER12> FPGAs and ASICs are in use by a few people/companies. They have the opposite cost structure of GPUs. The two main measures are MegaHash per $ and MegaHash per Watt, roughly analogous to fixed expenses and operating expenses though the MH/Watt also influences investment in power and cooling infrastructure. GPUs have a high MH/$, but a rather poor MH/W.

I own 2 Radeon 5830s, $110 each, that still spit out about $5 a day at current prices making for a rather impressive rate of return in spite of high power requirements. From what I have read, FPGAs require about an order of magnitude higher capital investment with the benefit of a drastically reduced power consumption. Last I checked about 6 weeks ago, a decent GPU rig could pay for itself in a month or two, while an FPGA setup could pay for itself in about a year. The tradeoff is that the GPU rig's payout may dip below power costs before it pays itself out (likely the case for any rigs purchased in the past month) essentially betting on the short term difficulty increases, while FPGAs are betting on the long term health of the bitcoin system itself.

FWIW, the newer ATI GPUs aren't as good for mining as the older 5800 series.

I was a PoliSci/CompSci/Econ mega-nerd in Uni, so Bitcoin is my fantasy come true.

</comment></comment></comment></comment></comment></comment><comment><USER13> > The fact that every 2016 blocks (about 11 days), 100,800 new BTC are minted. > That means that, to maintain the CURRENT price of $13.50, we'd need > $1,360,000 of NEW MONEY entering the system every 11 days.

I don't know anything about economics - literally nothing - but that doesn't seem right to me.

<comment><USER14> It isn't right. It would only be true if every miner was immediately liquidating the bitcoins they were awarded. Such a massive oversupply would likely overwhelm demand and push the price much lower.

In reality this is not what BTC miners are doing (from what I can see). They are mining and hording BTC for later use meaning that the mined coins require $0 to enter the system to maintain equilibrium.

<comment><USER15> That doesn't mean the math is wrong. What he's saying is each day the total value of bitcoins is going up by that amount because # of bitcoins * current price. He's also saying that it doesn't make sense, he sees irrationality in the behavior. If more bitcoins are added than value created, prices should go down, but aren't, they are stable. Something seems to be out of whack, the market isn't behaving rationally. Essentially bitcoins are becoming more overvalued as more get unlocked because supply is increasing faster than demand but the exchanges aren't reflecting that (yet).

<comment><USER16> This is just the market cap effect. You can't buy or sell a company for its market cap; usually the real price is much higher or lower. Likewise just because you can buy or sell 1 BTC for $15 does not mean that 6.7M BTC are really worth $103M.

<comment><USER15> With a market cap there is still a finite number of shares, there aren't new ones being constantly created. We're also talking about a commodity, not shares of a company which is a value creating entity.

</comment></comment></comment></comment></comment><comment><USER17> The Mtgox hack has kept BTC prices fairly depressed, but in my opinion that is a good thing. There was never a good reason to _build_ something around the BTC currency before because it was going up so fast that you were better off billing a client _half_ your normal rate, convert it into bitcoins and end up with 4x the money in a month or so.

Hopefully BTC will see some medium term stability around the 10 to 20 mark while actual, usable clients get made, and actual stable markets get setup.

(Disclosure I own a nontrivial, although nonmassive amount of bitcoins, but I've broken even by selling some while it was over 30)

</comment><comment><USER18> As a market approaches being perfectly competitive, risk-adjusted profits approach zero. If I understand correctly, that's basic economics, and it's not limited to just Bitcoin. If you want to make money in a market, you either need a sustainable competitive advantage or non-average risk tolerance.

What could amount to a sustainable competitive advantage in Ⓑ? Reputation isn't it: the whole point of Ⓑ is that Ⓑ100 is computationally infeasible to counterfeit and equivalent to any other Ⓑ100. If you developed an especially money-efficient SHA-256 chip, or for that matter a pure Ⓑ-mining chip, you could perhaps remain profitable mining with it for a while, until the market caught up with you. (Does that depend on whether you use the chip yourself or sell it into the mining market where people compete with each other?)

</comment><comment><USER19> It seems like a shame that all that computational power is being wasted. I mean other than generating some hashes, what good does that really do? I think it'd be cool if somehow it tied into the folding@home type of stuff. Where the computations solved something meaningful, but there could also be some "monetary" incentive.

<comment><USER20> It seems a shame that all the effort that people put into making padlocks is being wasted, what good does that really do?

Answer: padlocks, like bitcoin hashes, are a way of allowing people to collaborate without having to trust each other.

<comment><USER21> The rate of padlock production doesn't stay approximately the same when people double the amount of resources they put towards producing padlocks.

<comment><USER22> But the security of the bitcoin network also increases as the amount of computer resources put into mining increases.

</comment></comment></comment></comment><comment><USER23> I should point out that this is classic blogspam: You can see that the forum linked is dead except this one link.

Original post where the text was copied from is this: [https://forum.bitcoin.org/index.php?topic=26099.msg325505#ms...](https://forum.bitcoin.org/index.php?topic=26099.msg325505#msg325505)

Incidentally, the original poster is fairly infamous troll/critic in the biggest bitcoin forum. (Sadly, I agree with most of his conclusions and pessimism).

Pretty sure it is NOT original posters forum, someone just took his text to stir up some traffic for his forum.

<comment><USER24> I thought I recognized this rant...same one that has been repeated for the last 2 months in the BTC forums. Miners don't care...I should know, I am one...and given my current power cost I may be one of the last. I will start worrying about mining profitability when Vladimir starts shutting down one of his 3 data centers...since he pays 7 times the power I do. At that point folding@home or seti gets my GPU cycles...that is if nobody figures a better way to profit from leasing these machines for other than bitcoin use (legal ways that is).

</comment></comment><comment><USER25> The bitcoin miner's experiences can also be found in the world of gold mining: <http://www.economist.com/node/18774624>

</comment><comment><USER26> To be honest, when I read the original idea behind the bitcoin, I was thrilled. I thought This Is It (TM).

The monetary system, as it exists today is based on debt as a lever for growth. Banks can get a deposit of 1$ and God/King/Char/President/Whatever gave them the right to lend 5$ with it, and hold the 5th person under obligation of debt, to pay back that one dollar which the bank that gave it to him DIDN'T HAVE in the first place. You have to give back that 1 dollar or you will lose what you bought with it. Proponents of this practice call it "value" of potential, they argue that banks can do this because if they lend 5$ for every 1$ they have, people who borrow these 5$ will really work their asses off and pay 5$ back, which means that banks valuate the "potential" of the market to create 5$ out of 1$. Then come investors, speculating the value of this "potential", buying the debt and selling it again for 12$ this time etc.

I thought that bitcoin was a chance to fight back the economy of debt. Every coin is 1BTC, no bank would be able to get it and magically transform it to 5BTCs any more. Potential would once again be expressed as ability to produce more or better of your products made for the same cost and EXCHANGE them for more or better products made by someone else, REAL things as assets against REAL things as liabilities exchanged through a non manipulatable medium.

Then, I woke up :) Bitcoin adopters and proponents are so unbelievably vested in the current status quo that they managed to create a caricature of the same, old monetary system replicated in the bitcoin world: exchanges that don't exchange bitcoins but integers, speculators, market crashes... like Wall Street No.2... and naturally "It is not profitable any more, sell"...

<comment><USER27> It's a nice thought but BitCoin doesn't change the debt-leveraged practice of the banks. Sorry to rain on the parade.

The fractional reserve requirement allows the banks to lend multiples of their incoming deposits no matter what the currency. BitCoin is just another currency, like the dollars. M1/M2 in circulation is much smaller than the actual money used in the economy. BitCoin will be the same way.

The banks can very well open BitCoin accounts, allowing people to deposit actual BTC. The bank then lends the BitCoin out in multiple of deposit, like 5BTC lent out for 1BTC deposited. The BitCoin lent out are not delivered in actual BTC, just some numbers in the borrowers' accounts. Only when the borrowers withdraw that they get back BTC. Like the dollar accounts, most people don't withdraw large amount of dollars; they just write checks or wire transfer them. Same way for the BitCoin accounts. Thus the debt-leverage economy with BitCoin will arrive.

If everyone withdraws from the BitCoin accounts, there would be a run on the bank and the bank won't have enough BTC reserve to meet the demand and collapses. Banks can put daily withdraw limit like ATM and tell people to write BTC check. It's just as good as BTC.

The digital nature of BitCoin will probably allow people to withdraw more easily and thus lower the possible leverage multiplier.

<comment><USER28> It will be possible to audit BitCoin banks in a way that's not possible for today's banks. Specifically, transactions are public, although anonymous. Even so, it ought to be possible to perform a kind of traffic analysis against the public block chain to determine whether a group of addresses are participating in fraud (in the form of fractional reserve banking) given that initially a customer has to send their BitCoins to some address owned by the bank.

</comment></comment></comment><comment><USER29> Now that the hype is dying down, maybe people will start thinking more about how to make bitcoin easier and more available and less about how they can profit off of mining and trading.

<comment><USER30> Start? People have been thinking (and working) on that even before the hype began (see for example the Android client now on the frontpage, or the new client UI being developed, wallet encryption being tested now, and various web payment services), it just gets drowned in all the trolling, mining related talk and price speculation.

<comment><USER31> What you call "trolling," others call "pointing out the obvious flaws in an unsustainable system."

<comment><USER30> Replace "trolling" with anything you want, how you call it doesn't figure into my argument at all.

</comment></comment></comment></comment><comment><USER32> No surpriseWhen you're competing against people who are doing bitcoin mining using someone else's resources (eg [http://thenextweb.com/au/2011/06/23/abc- employee-caught-mini...](http://thenextweb.com/au/2011/06/23/abc-employee- caught-mining-for-bitcoins-on-company-servers/)) then bitcoin mining will not be cost effective for you unless you are using someone else's resources as well.

</comment><comment><USER33> Seems pretty obvious to me that "mining" is a loser's game, you are fighting over what slice you get of a fixed size pie. By contrast, selling stuff for BTC actually grows the "market cap" of coins, that seems a lot more sensible.

That said, I have a technical question. What happens to the BTC system if people mostly quit mining?

<comment><USER34> The system contracts and it becomes easier to mine. As long as the number of clients doesn't approach zero, transactions should be OK.

<comment><USER33> What about when the number of BTC has gotten close enough to 21 million that mining nearly never returns any new ones? The number of miners could fall to something approaching zero.

<comment><USER35> The hope is that miners will still make money off of transaction fees (a "tip" to the miner which verifies the transaction). Each new block assigns 50 BTC to the miner that found it, plus the accumulated fees of all transactions included in that block. The idea is that as mining new bitcoins becomes unprofitable, the transaction fees (set by the initiator of the transaction) will make up the difference.

That theory has yet to be tested, though.

</comment></comment></comment></comment><comment><USER36> I also did the math - figured I was better off buying Bitcoins than mining them. It's marginal though.

<comment><USER37> Out of interest - why did you buy bitcoins? For purchasing goods? Or for speculation (to re-sell when, you hope, the price goes up)?

<comment><USER36> Well I mined about 10, bought another 10, it's just speculation right now.

</comment></comment></comment><comment><USER38> This comes to mind: [http://www.reddit.com/r/Bitcoin/comments/i0r4o/ready_for_a_l...](http://www.reddit.com/r/Bitcoin/comments/i0r4o/ready_for_a_little_casual_mining/)

</comment><comment><USER39> do you think the bitcoin mining chip will become a reality? Is this <http://asicminer.net> a scam?

</comment><comment><USER40> Power and wifi are free at many coffee shops and fast food joints. When I'm in one, spending the time between my work and martial arts training group, I mine on my laptop. If I were especially ambitious, I'd bring a tower with a bunch of ATI cards in it; but the McDonalds manager might complain when the lights dim.

<comment><USER41> This is why we can't have nice things (e.g., free power in cafes and fast-food places).

</comment></comment><comment><USER42> Wouldn't more people joining your pool increase your chances of more bitcoins? I know your % in the pool will go down, but your pool has a better chance overall.

<comment><USER43> More people joining a pool doesn't increase your personal Bitcoin production (in theory), it simply lowers your variance. That is, your payments will become smaller but more steady.

</comment></comment><comment><USER44> The hardware doesn't have to pay for itself, just the discount if you want to resell it. So maybe 20-30% of the initial cost.

</comment><comment><USER45> I dont know... 79 days to return your investment is a nice deal in my book.

</comment><comment><USER46> I always did prefer tulips.</comment>


Ask HN: Given these circumstances, would you switch to a small startup? - <AUTHOR>

I currently work for a large consulting firm as a developer and have been for about a year now (a year out of school). I'm back on the job hunt (voluntarily), and I've been in contact with a small startup. They have a handful of employees, only 3 or 4 that are full-time. They got Series A funding (between $2-10 million) earlier this year, and the service they're offering doesn't require any ridiculous sums of money (no complex manufacturing, etc). There's no guarantee or anything that I'd be the right candidate, but I guess I'm just looking for general advice/insight should a decision to join the team arrive.<p>I know there are a lot of details I'm leaving out, but I'm hoping there's something to glean from what I've shared. Should I make the switch? What sort of questions should I be asking the team when I meet them? What sort of offer should I expect (again granted I'm the right fit)? What would be some positive signs that things are going well? How about negative signs? <comment><USER3> It's a huge decision and it is a completely different world than the consulting one you are used to. The uncertainty is hard but having input (not just being a cog) is unbelievably liberating. No one can answer this question for you. Make your decision. But I do recommend that whatever decision you make, don't look back later. Fully commit yourself to it.

As for questions, will the work be interesting and rewarding? Are the people honest and feel like those you can work with? Is there a sign that the company is succeeding (funding is not market success) like traction and paying customers? There are a few anyway.

Good luck!

<comment><AUTHOR> Thanks! By all means I understand this is my decision. Just wondered if anyone could see some other things that I don't see.

Yeah, as a developer for a consulting company, you use your one skill and the company is pretty much satisfied with that. Try to encourage the use of another technology, and you're met with "ask Joe about it" who will tell you, "Ask Jim" and so on. I have a lot of surface knowledge (in addition to an area or two of reasonable depth) that I'd love to be able to leverage in a work place.

Those are good starting point questions. The overall concept itself is not something I'm overly passionate about, I'll admit. The work - <USER2> used, day to day tasks, environment - sounds like what I'd like though. Gotcha. Yeah, I figured funding was a good start but wasn't sure that meant they'd "made it."

</comment></comment><comment><USER4> If you are asking this is because you definitely want this new job and need the acceptance for a community. You are looking for support more than anything else.

And if that is what you want to, and there are not risks, you should go for it.

<comment><AUTHOR> Can't say I'm looking for a ton of acceptance before making the switch. Just looking to get some general advice. Figured this community would be able to provide some interesting insight.</comment></comment>


An actually usable .NET virtual machine in javascript - <AUTHOR> https://github.com/mkol/il2js Small comment: I see this as a dart contender, from what I hear, there is a Visual Studio debugger coming, meaning we will be able to debug c#, but have it walk through javascript on page. Sounds amazing to me, thought I should share.
Follow the link in the readme to more detailed documentation. The amazing thing here, is that the produced javascript is small enough to warrant using it for real projects.<p>The compiler is not yet open source, they said that if there is more interest, they will open it later. <comment><USER2> Coincidently, I'm currently creating a similar project: <https://github.com/chrisdunelm/Cil2Js>

This is absolutely not yet ready for real use, but can convert a sub-set of CIL to JavaScript and is fully open source :)

Update:

il2js and Cil2Js work significantly differently. il2js interprets the .NET IL in a JavaScript virtual machine, whereas Cil2Js directly converts the .NET IL into JavaScript.

Having now looked at this il2js project in more detail, it appears to have some subtle (and some not-so-subtle) differences between running on .NET and running in JS. For example, integer division will return a double in JS; Stack<T>.Last() returns wrong end of stack on JS; no/little support for non- primitive value types; etc... Hopefully these will be sorted out soon, as it's these sorts of inconsistencies that can lead to extreme frustration.

I am unconvinced that a JS VM is a good technique, as I suspect it will be an order of magnitude slower that the same IL converted to JS (although I have no test data to prove this).

However, these aside, it's an impressive project.

<comment><AUTHOR> If I understand correctly, one advantage of il2js should be that all the core .NET libraries won't have to be ported to JS, as the needed library methods get expanded into IL.

<comment><USER2> This will also happen in Cil2Js. Any .NET library method (including system libraries) that is implemented as CIL can be converted directly to JS.

In mscorlib however, there are many methods that are implemented directly by the .NET runtime; i.e. they are not implemented in CIL. Cil2Js will provide replacements for these, either written directly in JS, or in CIL (compiled from C# source) that will provide identical functionality.

For example, string.Length is not implemened in CIL. In fact, may of the methods on 'basic' types such as System.String, System.Array, System.Int32, etc... are implemented internally by the .NET runtime.

</comment></comment></comment><comment><AUTHOR> Small comment from me: I see this as a dart contender, from what I hear, there is a Visual Studio debugger coming, meaning we will be able to debug c#, but have it walk through javascript on page. Sounds amazing to me, thought I should share. Follow the link in the readme to more detailed documentation. The amazing thing here, is that the produced javascript is small enough to warrant using it for real projects.

The compiler is not yet open source, they said that if there is more interest, they will open it later.

</comment><comment><USER3> Nikhil Kothari's Script# ( <https://github.com/nikhilk/scriptsharp> ) "enables developers to author C# source code and subsequently compile it into regular script that works across all modern browsers".

Uptake was hampered in the past by the author's unwillingness to open-source the compiler; I'm not sure what the community is like at this time. [http://stackoverflow.com/questions/1579192/should-i-use- scri...](http://stackoverflow.com/questions/1579192/should-i-use-scriptsharp)

<comment><USER4> Script# is being used to compile Microsoft's online Office apps from C# to JS

[http://blogs.msdn.com/b/ie/archive/2011/11/22/evolving- ecmas...](http://blogs.msdn.com/b/ie/archive/2011/11/22/evolving- ecmascript.aspx)

(see "Larger Scale JavaScript" in there). Given that, I am assuming it is quite mature and usable.

<comment><USER3> I have little doubt that Script# is mature and usable; the project's home page lists a who's who of large internet sites that use it in production.

Unfortunately from what I can tell, expertise on usage of Script# stays locked up within each company (eg. 'a variant of Script#' from the blog post). Perhaps I am demonstrating my ignorance, but the most public activity I could find was the project's GitHub issues list.

</comment></comment></comment><comment><USER5> In 2008 Microsoft Labs "Volta" Project(the GWT for .NET) used to translate MSIL to Javascript. Ironically it was dropped in favor of Silverlight the same year. [http://web.archive.org/web/20080512000549/http://labs.live.c...](http://web.archive.org/web/20080512000549/http://labs.live.com/volta/docs/)

</comment><comment><USER6> Interesting, though the first thing I looked for the was the source for the compiler. Meh, call me when it's ready.

</comment><comment><USER7> Compiling is fun! If anyone is interested in a Lisp-like language that compiles to Javascript, I'm working on one: [http://jlongster.com/2012/01/04/outlet-my-lisp-to- javascript...](http://jlongster.com/2012/01/04/outlet-my-lisp-to-javascript- experiment.html)

<comment><USER8> I don't know if you're aware of it or not, but you might be interested in ClojureScript for comparison or contrast: <https://github.com/clojure/clojurescript>

</comment></comment><comment><USER9> C# has closures but not when evented. That's the problem with these Language X to js projects. No language is really like JavaScript. Except CoffeeScript, of course. I'm sure you can write clean C# dom code but it won't be like js or like Silverlight. It will need new patterns.

<comment><USER10>
        var outer = 2;
        var btn = new Button()
        {
            Text = "Click Me"
        };
        btn.Click += (obj, eventArgs) =>
        {
            var local = outer + outer;
        };

How is the above any different/better/worse than what javascript can do?

<comment><USER9> I reserve the right to be wrong here, but I'm pretty sure in your example outer will be be null on the onclick.

<comment><USER11> Outer is (implicitly) typed as an int, so it cannot be null under any circumstances. The default value for ints is 0. However, outer will be 2 in this case. Environment capture makes it do what it looks like, just like javascript.

I don't know what you mean by "has closures but not when evented."

</comment></comment></comment></comment><comment><USER12> Just because Coffescript is transformed into Javascript, doesn't make this a VM written in Javascript.

</comment><comment><USER13> Atwood's Law applies: [http://www.codinghorror.com/blog/2007/07/the-principle- of-le...](http://www.codinghorror.com/blog/2007/07/the-principle-of-least- power.html)

<comment><USER6> With this implementation, there's a chance Atwood's Law actually enters a recursive loop, since C# can actually write _itself_ as Javascript.

Boggles the mind.</comment></comment>


Ask HN:  Starting a company for an iphone app/game? - <AUTHOR>

Hi, I want to start a company just for an iphone game with a friend.  I'm based in NY, and I want to offer shares(?) to a fellow artist for helping out.  What kind of company lets me do this, and is there a relatively inexpensive way to do this to get an MVP out? <comment><USER2> Look into an assumed name, or a DBA. It costs around $100 and takes an hour. (You will need to see the County Clerk at 60 Centre Street).

It doesn't give you much in a way of legalities but it does enable you to open a business banking account, which you can do jointly with your partner. Coupled with a one-pager contract, the business account will establish a business entity separate from your persons and will allow you to keep track of profits and expenses.

You can always convert it to an LLC or a Corp later on, should your app get traction. Good luck.

<comment><AUTHOR> Thanks for a good start, will definitely look into that!

</comment></comment><comment><AUTHOR> I've talked to a few accountants but they don't seem to have a clue about how to set this up, and I'm not quite sure what I'm looking for either, so any tips would help. Thanks!

</comment><comment><USER3> Have done this before, am still doing it now :) E-mail is on my profile, shoot me an e-mail and I can tell you how we did it - only 1 data point, but hopefully will be helpful.</comment>


Firefox OS has a long way to go to compete with Android - <AUTHOR> http://www.androidauthority.com/can-firefox-os-compete-with-android-118797/

<comment><USER2> I've written a huge amount about Firefox OS (B2G) and how much I feel that the undertaking it required for a company of Mozilla's size, was a mistake. I believe in Firefox and the power of Sync and I also believed in Thunderbird, especially the concept of an Android port.

Firefox on all platforms is a guest and I can understand wanted to have some firm roots. In one blog post I wrote that I'd have loved to see Mozilla put out a version of Android where they gut it and remove Webkit and replace that with Gecko.

Firefox's greatest problem of late is often described as a lack of imagination, but in truth, that's simply a symptom of limited resources. They're unable to induct a steady flow of volunteering coders and it's a shame. It's meaning that features are being neglected and delayed.

Take Panorama for example, users should be able to open Panorama and see all their windows on all their devices and open that in the existing viewport (window). The possibilities of Panorama are like something straight out of the future and yet it's been neglected to keep bread and butter features up to date along with implementing what is perceived as the uninspired design. Think about when Mozilla unveiled their plans for the Download Manager, literally a month or two later it was implemented by Safari, while Mozilla still hasn't completed their own idea. And I still think they should work on improving their feed reader, implement it in a way like Brief. I know when Limi came over from Google, he mentioned how little traction RSS has, but sometimes it's worth reaping the marketing on your niche features, rather than simply catering to the mass market and being thought of as just-the-same.

In regards to the philosophy behind Firefox OS, it doesn't take a genius to work that the App culture is here to stay for a while at least and that Mobile Web Apps are simply a Eutopian daydream. That can't be changed for now. What can be changed is that Mozilla work hard on making sure people understand the role of the web and the benefit that coding openly can bring. i.e. not using an embedded browser for authentication in your Android apps. Allow users to use Firefox so as they can use their stored passwords. But then, I'm a big believer that the Evangelism Team over as Mozilla needs more resources. The time for Mobile Web Apps will come, I'm sure, but not for now. The alternative is just so much easier from an end user point of view and it would seem that attempting to force the issue isn't helpful from a developers point of view either, ask Facebook.

Right now, Firefox OS's only competitors are Chrome OS and WebOS. It'll be interesting to see how each of those three evolve.

<comment><USER3> I wish the best for Firefox OS, because we need it badly, but Mozilla will had to improve its relationship with developers. I spent a lot of time for an app in XUL and feel betrayed when Mozilla removed native support for webapps in FF 4. Another point that worries me is the rapid release cycle. Most app developers are small teams and I wouldn't bet on a platform that change every six weeks, following iOS and Android every six months is painful enough.</comment></comment>


How Adam Neumann's Over-the-Top Style Built WeWork - <AUTHOR> https://www.wsj.com/articles/this-is-not-the-way-everybody-behaves-how-adam-neumanns-over-the-top-style-built-wework-11568823827?mod=rsswn <comment><USER2> Can I just point out that I called this a year ago?

BTW, I quit not long after posting this.

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

> (regular HNer here, posting anonymously for obvious reasons). I work for > WeWork, and you don't know the half of it. In mid-August WeWork had their > "Summer Camp" event, which was a three day all-hands company meeting in > England. About 5500 of 7000 WeWork employees were flown into Heathrow and > shipped out to a campground in Tunbridge Wells. Everyone was required to > sleep in a tent, generally with four or five other tent mates, on air > mattresses on the ground with thin mattresses.

Because of the vegetarianism thing, everyone was forced to eat WeWork-provided food, sans meat (though fish is okay!). This totally broke my ketogenic diet, which made me quite mad. See other comments about this being a form of group control.

For the first day and a half, we were subjected to a number of corporate "talks" which largely revolved around the cult of personalities of Adam Neumann and Miguel McKelvey. Adam Neumann particularly styles himself a televangelis or Jesus-wannabe and walks out into the audience, asking people about their deepest fears, delivering some ersatz corprorate sermon on the mount. There is no "me", only "we".

See also the time when Rebecca Neumann commands the gathered WeWorkers to hold hands, close their eyes, and pray.

Or the time that Deepak Chopra comes out and shows a disturbing video about childbirth (people were like, "is this an anti-abortion video?) and talks about how evolution and child development are intimately related, and how we should take our shoes off to let the ions flow, and leads a meditation session.

A fish rots from the head down, and this is one crazy fish.

<comment><USER3> Glad you made it out

</comment></comment><comment> vincent-toups Can't say that this is surprising, given the startup types I have worked with in the past.

[EDIT] I want to elaborate on this, actually. Rewards are good incentives until they become so large that they eclipse the value of the thing one is working on. At that point, you no longer attract people who want to accomplish things for their own sake or who even think they know how. With a large enough reward, what you attract are assholes who want rewards.

I hope we figure this problem out before people like this drive our whole civilization/planet off a cliff because they want to be rich. You'd think it would be obvious, and I think it is to many of us. But there are enough of these reward seekers and the rewards are big enough that they dominate the scene.

<comment> vincent-toups Further elaboration: a financial award is a great way to tempt an innovator out of their risk adverseness: it says, you can quit your job or whatever and not risk much if your innovation is valuable.

The ideal startup person is someone who already has the idea and knows its good but doesn't want to take the risk without some kind of reward to justify it.

But if the rewards get big enough, you get reward seekers without any fundamental idea who are just going to sit around trying to come up with them until they find one someone is going to bite on.

These two populations of people are totally different and only one of them actually cares about the product or making the world a better place.

<comment><USER4> I am actually pretty skeptical of financial rewards, I think after a certain point they are far better at attracting the wrong type of person.

Of course, that leaves us with the question of how to attract productive innovators. I don't know. I'd probably lean toward some combination of restrained capitalism + massive subsidies to talented technical people + prizes for innovation.

</comment></comment></comment><comment><USER5> "Both Neumanns could be impulsive at times, former executives say. Ms. Neumann has ordered multiple employees fired after meeting them for just minutes, telling staff she didn't like their energy. She and Mr. Neumann have sent maintenance and IT staff to their homes to fix various items."

This really bothers me. I know that if I was at WeWork I would probably be fired for "bad energy" because it would be obvious that I was just working at a job and not part of the WeWork cult.

</comment><comment><USER6> As crazy as it sounds, after having worked at a few high-profile startups/tech cos it's not as easy as it looks to find a co where the CEO/founder is not an eccentric billionaire or multi-millionaire.

<comment><USER7> For high-profile places, you're not wrong. And it isn't just tech (though I think tech has its own special set of eccentricities), finance, Hollywood, fashion, media, transportation, the restaurant industry, food and beverage -- the places that become high-profile (which is not the same thing as successful), are usually helmed early on or during that success by someone eccentric.

Most of the time, the person isn't even a millionaire or billionaire when the company starts/grows -- but even at the very early stages, there is something different and slightly batshit about them.

And speaking from personal experience as someone who has also worked at high- profile startups (some very early stage), that's kind of part of the appeal. An audacious leader can be charismatic and compelling. And then once you're "in it" you start to normalize the increasingly batshit stuff you see, writing it off as "that's just X being X" \-- which can often be unhealthy because with no accountability, things can go from "eccentric/audacious but ultimately helpful" to "this is insanity and is harming more than it is helping."

<comment><USER8> I call it "weird results require weird behavior."

Two problems tend to arise from it:

1\. Ex ante, people who don't understand it think that just by being weird, they will have exceptional (weirdly good) results. So they are libertine or uncivil and that alone doesn't drive anything useful.

2\. Ex post, people who achieved highly attribute the success to the weirdness, and take it as extra license to let the id flow free.

In fact, my belief is that a good bit of weirdness both causes and is the effect of some other qualities that in turn correlate with success: obsessive knowledge of a domain, obsessive levels of effort, single-mindedness, manic level charisma, inordinate confidence (itself charismatic), and willingness to be contrarian / unorthodox.

But man is it annoying when people are just assholes and wave it off blithely as coming with the territory.

</comment></comment></comment><comment><USER9> Sounds like another Elizabeth Holmes to me. What's surprising is that these snake oil sellers have made it so far? Are investors so stupid? Are they so detached from reality? Whatever happened to due financial diligence?

<comment><USER10> To be fair, you can actually give money to WeWork and get some office space. They seem massively over-valued, and investors seem weirdly OK with Neumanns using self-dealing to feather his own nest, but its, like a real company with an actual business model, and so far as I can tell, they aren't really making objective lies to investors to get them to hand over crazy amounts of cash.

On the other hand, no could ever actually buy an "Edison" blood test machine from Theranos. They were purely a fraud.

I guess its sort of an interesting question about wheter it looks worse to lose money investing in a billion dollar product that would legitimately be worth billions but doesn't exist, or one that does exist but isn't worth billions.

<comment><USER11> > and investors seem weirdly OK with Neumanns using self-dealing to feather > his own nest

Well, sort of. The fact that this IPO has apparently attracted so little interest that it's getting pushed back or canned entirely tells me investors _aren 't_ OK with it. It's more like "SoftBank seems weirdly OK with it", and this fiasco is going to cost them so much money that I have a feeling they won't be so lenient with the next set of founders.

<comment><USER12> Even Softbank wasn't okay, they did one round, but they then reduced their most recent round from 14b to 2b

source: [https://techcrunch.com/2019/01/07/for-softbank-no- majority-s...](https://techcrunch.com/2019/01/07/for-softbank-no-majority- stake-in-wework-as-it-scales-down-talks-from-a-new-16-billion-investment- to-2-billion/)

<comment><USER13> I know the Vision Fund is massive but the fact that SoftBank was even considering having _one_ fund make a $16 _billion_ investment in _one_ company is insanity to me.

</comment></comment></comment></comment></comment><comment><USER14> Looks like this guy is the new Travis Kalanick. I don't know anything about WeWork or the CEO but its interesting that the personality of the CEO is what is causing grief for the company which the individual was instrumental in building.

<comment><USER15> Was Travis Kalanick involved in these kinds of self-dealing?

</comment></comment><comment><USER16> On the off chance that some WeWorkers are reading this. My #1 request is for 24/7 hot desk availability. The 9am-6pm hours aren't working for me. Something like one credit per six hour block would be ideal. Often I don't even get started on deep work until after five o'clock ;)

I love the culture. And anecdotally at least, the method clearly attracts talented designers and developers outside the pale. Concentrating creative folks together. Fomenting spontaneous frissons at the various bagel breakfasts. Or around the tap at quitting time. I find it a welcome antidote to pre-packaged and polished corporatism ;)

<comment><USER17> On the off-chance that some WeWorkers are reading this, the only way I could be persuaded to share a space with someone who foments spontaneous frissons at bagel breakfasts is if you also supply high-powered Nerf guns.

</comment></comment><comment><USER18> > One day, he proposed, the company could "solve the problem of children > without parents," and from there go onto other causes such as eradicating > world hunger.

>Mr. Neumann has told several people over the past two years that a personal goal is to become the world's first trillionaire.

Am I the only person to think these two ambitions may be somewhat at odds? Or rather, they both seem to be egomaniacal in nature, and being an egomaniac doesn't seem to lend itself to solving nearly impossibly hard problems.

Maybe after he has his exit, he'll put his money with his mouth is and start working full time on a foundation like Bill Gates.

<comment> xkcd-sucks Maybe he wants to grind up all the orphans in the world and tirn their blood serum into an elixir of youth, thereby solving the problem of their existence

<comment><USER19> A Modest Proposal for the internet age

</comment></comment></comment><comment><USER20> "In a videoconference with the whole company Tuesday, Mr. Neumann, dressed uncharacteristically in a gray suit and a white button-down shirt, told the staff it has "played the private market game to perfection," listeners said."

He is living in la-la land...

</comment><comment><USER15> > The two have committed giving $1 billion to charity over the next decade.

<comment><USER21> Introducing "WeGive", controlled and operated by Neumann and family.

</comment></comment><comment><USER22> I want to learn more about the WeWork Summer Camps and what happened there....

<comment><USER2> I just re-posted my account of Summer Camp 2018 to the comments for this article.

</comment></comment><comment><USER23> Highlights:

> After the group landed in Israel and left the plane, the flight crew found a > sizable chunk of the drug stuffed in a cereal box for the return flight, > according to people familiar with the incident. The jet's owner, upset and > fearing repercussions of trans-border marijuana transport, recalled the > plane, leaving Mr. Neumann to find his own way back to New York, these > people said.

> Many former employees said they didn't always know how seriously to take > some of Mr. Neumann's pronouncements. Early on, he would throw out seemingly > random ideas, like adding a pool in the basement of the company's > headquarters or starting an airline.

> He told at least one person directly that his ambitions included becoming > Israel's prime minister. More recently, he said that if he ran for anything, > it would be president of the world, according to another person who spoke > with him.

> One day, he proposed, the company could "solve the problem of children > without parents," and from there go onto other causes such as eradicating > world hunger.

> In a 2015 investment round, Mr. Neumann sold tens of millions of dollars of > shares. Soon after, the company launched a buyback program offering to > purchase employees' shares too. But the company gave employees a different > arrangement, giving them a payout per share worth substantially less than > what Mr. Neumann was paid

> A few weeks after Mr. Neumann fired 7% of the staff in 2016, he somberly > addressed the issue at an evening all-hands meeting at headquarters, telling > attendees the move was tough but necessary to cut costs, and the company > would be better because of it. Then employees carrying trays of plastic shot > glasses filled with tequila came into the room, followed by toasts and > drinks.

> Both Neumanns could be impulsive at times, former executives say. Ms. > Neumann has ordered multiple employees fired after meeting them for just > minutes, telling staff she didn't like their energy.

<comment><USER24> You left out:

>He previously has instructed staff to fire 20% of employees a year, bemoaning the number of "B" players hired amid rapid growth. Managers were unable to hit the target even when they included attrition.

<comment><USER25> Also that when the tequila was served after the people got fired, Run DMC popped out and started singing It's Tricky

<comment><USER26> I downvoted you for making a non sequitur joke... but then I actually read the article! (I've removed my downvote.)

<comment><USER27> Truth that you wouldn't believe if someone made it up...

</comment></comment></comment></comment></comment><comment><USER28> Naming your company "We" sure leads to some grammatically awkward and confusing sentences:

 _We now expects an IPO valuation far lower than the $47 billion price it got in a January funding round._

 _We said the new structure was created in part to make it easier to expand into new businesses beyond co-working, according to IPO filings._

 _He relishes trips in private jets. Last year, We bought one for more than $60 million..._

<comment> 52-6F-62 This is why in a lot of writing names of organizations and publications often get contrasting style in the text. Name in italicized text is romanized, or the opposite.

eg:

> _We_ now expects...

or

> We _now expects..._

Because... yes. It can produce some ridiculous results

<comment><USER29> First, click on your My Computer...

<comment> 52-6F-62 You got me there. I'd put something like that in quotes!

I actually ran into that last week with a publication. Didn't have rights to a certain font's italics. Too much deliberation with design and edit. Solution ended up being single quotes. ex:

> click on 'My Computer'</comment></comment></comment></comment>