Sequoia Capital on startups and the economic downturn (2008) - <AUTHOR> https://www.slideshare.net/eldon/sequoia-capital-on-startups-and-the-economic-downturn-presentation <comment><USER2> I recall conversations with some uber-rich individuals in those dark, early days of the financial crisis, and I was struck by their pessimism. These people didn't have their money in Lehman, and yea they took a huge haircut in the stock market – but they were still insanely wealthy. And yet, the news of the day put a rain cloud over their heads and they started making emotionally- fueled decisions about tightening up on this investment, or that investment...

And then, on the other hand, there were a few folks who saw it as a massive opportunity, who fully expected things to recover even if it took a while, and – this is key – didn't radically change their approach to things.

Guess who did better?

The piece of advice that really stands out in this article is "have a safety net, ideally one year's worth of expenses." Advice that's good for any of us.

I have friends in the music industry, and there's been a few instances of people getting these really big advances. Then come the big, expensive sushi dinners, flashy parties, etc. It _looks_ like the record company is picking up the check... but not really. The artist is on the hook.

I think there's a lesson there for startup founders too. If the fundamentals aren't there, it can be hidden by a lot of frothy cash floating around. That cash can be addictive, and people get used to a certain quality of life. Retaining control means knowing when to say no to taking on more than you actually need. If you let money people inflate your balloon further than it should go because _they_ need a huge balloon to pass along to someone else, ask yourself whether it's really good for your company.

<comment><USER3> _> Retaining control means knowing when to say no to taking on more than you actually need._

Isn't the lesson the opposite though? When easy funding is available, take on more funding than you need and then don't spend it, so that you have plenty of reserve when things get tight.

<comment><USER4> There's a timing problem with this approach, when you get the money vs when the investor expects a return. The investor usually wants clear indications of what you're doing with the cash to increase their investment. Holding it generally doesn't sit well with investors as they could have given it to someone who would be doing things with it.

</comment></comment></comment><comment><USER5> One of the first YC Startup Schools (the first?) was held in April 2008. I was there and distinctly remember one of the presenters, an editor from one of the financial monthlies IIRC.

He claimed that subprime defaults (no mention of housing bubble among the mass media at that point) were no big deal and wouldn't be much trouble to the economy. The real metric to watch was the direction of worker productivity.

Having witnessed the collective madness of the bubble that inflated relentlessly for well over ten years (zero-down mortgages almost by default, flip-o-mania, price appreciations far in excess of inflation, non-stop chatter about real estate the double-digit gains made in the last year), I was stunned. This guy didn't have a clue about what was right in front of his nose.

He wasn't alone.

A similar effect operates in the early phases of a bull market.

Take the years following 2001. Interest faded fast in building riches through day trading nasdaq shares. Silicon Valley looked more ridiculous by the day. Sock puppet commercials and online grocery delivery services became the butt of jokes. An entire business model (making money online) lay in ruins.

As the nasdaq clawed its way back, very few noticed.

Two points:

1\. You'll know it's a bubble when only cranks are calling bubble.

2\. You'll know its a new bull market when each advance is greeted with yawns, laughs, or eye-rolls.

<comment><USER6> i have no idea what your last 2 points mean. Can you clarify, instead of sugar-coating it

<comment><USER7> At least what the first is saying is that when even bearish investors capitulate that the rise is justified the crash is around the corner.

</comment></comment></comment><comment><USER8> I have a different take: We were in a recession in the last 10 years. We are just turning around for the real bull-run. Interest rates just started to go up. If we were in a heated run, they should reach the double digits. We are probably 4-6 years away from that.

It is a good time to invest but probably a bad time to leverage as interest is going higher. The right time to leverage was a few years ago. Interest was cheap back then. Remember buy low sell high? Looks like everyone was freaking out back then and waiting for the "recession".

We are being far from a heated global economy and given how globalized and inter-connected the world did get in the last 10 years, the world wide economy might affect the US more than its own.

No this it is not different this time. But probably the baseline of your "recession" and "bubble" got re-adjusted for the new realities.

<comment><USER9> What's your rationale for this? Beyond interest rates, which are clearly the result of more aggressive, far larger-scale easing by central banks than we've ever seen before.

<comment><USER8> P/E ratios in the USA are more favorable than many emerging countries. Given how expensive some of these countries got; and how shitty they are still are they'll need to correct. They still make very decent money even though they are well below the US or the western world on a per capita basis.

The rich of these countries will need to flock somewhere. While you might think that the prices of the USA stock market is high, these guys will find the deal favorable to what they have in their own countries.

It is not only Turkey that seeing the correction. Many countries in North Africa, South America, SEA, Russia, South Africa are getting squeezed. You'll be surprised at how much money is looking to leave these countries and settle shop somewhere safe.

You just need a passport and a tourist visa to open a bank account in the US. Moving your business there is pretty straightforward if you have enough turnover and will to pay some taxes.

<comment><USER9> I strongly agree that capital flight is a huge and under-recognized driver of high asset values in the US (particularly equities and real estate).

But how do you even begin to estimate the rate of this effect, or how much further it might go, or what asset classes it might affect? For example: this was likely a major force in the surge in Bitcoin value almost a year ago, but that asset has since collapsed; will a similar effect take place in other assets?

</comment></comment></comment></comment><comment><USER10> Thank goodness we have fixed all the things wrong with our economy's approach to housing and debt, so that all that won't just happen again.

<comment><USER11> You may get downvoted so I just want to say that I agree with you. The dot bomb and housing bubble were political events, not financial. We have fundamental problems in our economy that aren't being addressed:

* Tax brackets haven't been adjusted in decades, so when people begin making modest amounts of money, say $50-100,000 per year, their taxes increase too fast and they don't feel wealthier. I would suggest keeping the bracket shapes but shifting them to the right by at least 2x to account for inflation. This amounts to a tax cut for the poor and keeping taxes roughly the same for the rich (the opposite of what's been done since 1980). Then we should (obviously) gradually raise taxes over 5-10 years to match the deficit.

* Interest rates are too low because politicians don't want to put the brakes on the economy. The flip side is that they have no way to press the accelerator when the economy tanks. The end result being exaggerated booms and busts, exactly as we have seen in 2000/2001 and 2008 (which means that we're overdue for a bust with current Fed interest rate policy).

* Corporations can be based in the US but act as foreign multinationals by hiding their taxes. Fixing this is trivial but depends on getting money out of politics. See: Citizens United, campaign finance reform and publicly funded elections.

The above are econ 101. My personal thoughts on this are that rents, houses and cars cost an order of magnitude too much for what they provide. We spend an order of magnitude too much on the military. We don't build enough or reward makers enough because the financial sector of the economy is twice as big as it used to be and we're obsessed with 40 hour weeks instead of progress or quality of life. I'm 41 and have never seen any of these things change in my lifetime, so am expecting a major downturn in the economy sometime in the next 2-5 years, followed by a series of knee-jerk populist reactions that ensure a repeat 10 years later (downturns are where the wealthy make more money, as they have the capital to buy up assets).

<comment><USER12> 1\. I think tax brackets are adjusted for inflation: [https://taxfoundation.org/us-federal-individual-income- tax-r...](https://taxfoundation.org/us-federal-individual-income-tax-rates- history-1913-2013-nominal-and-inflation-adjusted-brackets)

2\. The fed funds rate is low, but has been rising: [https://tradingeconomics.com/united-states/interest- rate](https://tradingeconomics.com/united-states/interest-rate).

<comment><USER11> Hey cool thanks. I think the tax bracket page may only work in Edge, which I don't have on my computer, but I found this image associated with it:

[https://commons.wikimedia.org/wiki/File:Historical_Marginal_...](https://commons.wikimedia.org/wiki/File:Historical_Marginal_Tax_Rate_for_Highest_and_Lowest_Income_Earners.jpg)

I'm having trouble understanding what it's saying though. All I see is that the top bracket was highest during WWI and WWII, approaching 90% on the wealthy, but is effectively zero since Reagan. The low rate's pretty flat and the high rate has gone down. And there are fewer brackets today (that might be why I perceived them as not having been updated).

One takeaway though is that the last time tax brackets were similar to today was from 1925-1931...

Also if you try clicking MAX on the second link, it seems that we've hit a floor on the fed funds rate, so maybe if it rises then it could move our economy back towards production instead of consumption by making capital more expensive. I might be reading my own gut feelings into that though so take it with a grain of salt.

<comment><USER12> 1\. Sorry, I gave you the wrong link. Here's the info in a PDF: [https://files.taxfoundation.org/legacy/docs/fed_individual_r...](https://files.taxfoundation.org/legacy/docs/fed_individual_rate_history_nominal.pdf).

2\. We certainly have historically low rates. It's not the case that the Fed has refused to raise them--they've cautiously raised them. One contributing factor is that wages haven't been increasing, and inflation is very very low. The early 80s were an outlier in another way: Paul Volker shot interest rates incredibly high to deal with historically high inflation numbers. So the relevant comparison is arguably 4-10% (late 80s/90s/2000s) vs. 2.25% today.

</comment></comment></comment></comment></comment><comment><USER13> "Winter is coming".

For a more recent warning, see [https://medium.com/@jason/this-is-your- captain-speaking-im-t...](https://medium.com/@jason/this-is-your-captain- speaking-im-turning-on-the-fasten-seat-belt-sign-a901eaa39f12)

<comment><USER14> > I'm not calling a top to the market, or a crash

<comment><USER13> > In my estimation there is a 20–30% chance we could have "an event" in the > near term (the next two years), and since there is never a bad time to make > long-term plans you should read this email twice, and discuss it with your > senior team.

<comment><USER12> That corresponds to a 50-65% chance of an event in 6-8 years. That's about the average length of the business cycle. I too am willing to bet that are better than even odds of an "event" in the next 6 years.

I expect my prize will be in the mail.

</comment></comment></comment></comment><comment><USER15> I'm releasing my diary from 2008, if anyone is interested. It comes out in November 1 on paperback and Kindle format. You can pre-order. It's from my Princeton dorm room, and has interesting stories and stuff from the time. Many smart people did not see the crisis unfolding.

There's a lot of interesting investment lessons from the book, and it's the first time a crisis has been covered in real time.

[https://www.amazon.com/When-Decades-Became-Days-Princeton- eb...](https://www.amazon.com/When-Decades-Became-Days-Princeton- ebook/dp/B07GCV4356/)

<comment><USER16> Ok, I'll bite. Why would a person be interested in your views of the crisis as a college student?

This is an honest question, I'm not tying to be critical.

I couldn't figure it out from the amazon description.

<comment><USER17> not just any dorm room.. a PRINCETON dorm room

</comment></comment></comment><comment><USER18> If we could add a slide to this today, it would be about the building rate of new homes. We need to double it. Else we face a crisis soon.

</comment><comment><USER19> I have been thinking for the past few days that one thing that is being missed here is even that the few people who are viewed as "perma-bears" (John Hussman for example) are in reality bulls in disguise; they are just being a little more picky about waiting for the right buying opportunity. But they're still planning to buy. As is everyone, and if you fully expect the market to recover _no matter what happens_ then you're likely to buy whenever it dips even a little bit. Faith in the ability of the Fed to rescue whatever has gone wrong with capitalism has reached such levels that the bull market won't really end until people start to believe that things are so bad that _even the fed_ cannot rescue them. So my question is, given that the bull market can't continue indefinitely, what would have to happen to convince people that the next dip is not just another buying opportunity?

<comment><USER20> The stock market is not 'people', but rather composed mostly of institution money and their managers. And due to the short term and relative performance goals, if they want to keep their jobs or fund from withdrawal better escape the stampede before everyone else. As to your question though, people may think the Fed has little room for stimulus this time around.

</comment></comment><comment><USER21> timing the time is impossible for any market. It's easy to be contrarian but hard to be a contrarian that will be right (on time).

Reality is no one really knows, what will break the camel's back!</comment>


Image of the Day: One Trillion Stars Andromedea Galaxy in Infrared & X Ray - <AUTHOR> http://www.dailygalaxy.com/my_weblog/2011/03/image-of-the-day-one-trillion-stars-massive-andromedea-galaxy-in-infrared-x-ray.html <comment><AUTHOR> The great Carl Sagan was at times mocked for his seemingly outrageous claims that "we live on this pale blue dot, amongst a billion other solar systems, amongst a billion other galaxies." If anybody remembers him standing on the beach in the opening episode of Cosmos -- or read the book, my childhood favorite, still have it in hardback! -- you'll know the scene I'm thinking of.

It appears even he had underestimated the vastness of the amazing universe around us.</comment>


The New York Times Website Is Back After Two-Hour Outage - <AUTHOR> http://www.businessinsider.com/new-york-times-down-2013-8

<comment><USER2> It's amazing to me that such a high profile site had such a vulnerability. The postmortem on this is going to be interesting..</comment>


Three academics are launching a new journal for arguments to be made anonymously - <AUTHOR> https://www.theguardian.com/society/2018/dec/02/journal-of-controversial-ideas-jeff-mcmahan-peter-singer-francesca-minerva-identity-politics <comment><USER2> Free speech always posed the risk of persecution. This isn't news. The risk is only mitigated if a culture is developed to accept different opinions and frown upon those who feel the need to punish those who express different and opposing viewpoints, but that's a very unstable equilibrium.

In this day and age where all public statements are stored ad eternum, it only takes a change in heart in how free speech is handled for an inoquous statement made in the past to serve as an excuse to punish you in the future.

<comment><USER3> > In this day and age where all public statements are stored ad eternum, it > only takes a change in heart in how free speech is handled for an inoquous > statement made in the past to serve as an excuse to punish you in the > future.

We don't have to refer to the future, this is already happening now if you have conservative views.

<comment><USER4> "Conservative" views that are punished somehow always end up being racist, sexist, homophobic or some combination of those.

<comment><USER5> According to whom, though?

There are a lot of people out there absolutely chomping at the bit to label things racist or sexist.

Outright unambiguous racism is one thing, disagreement with the activists is another.

</comment></comment></comment></comment><comment><USER6> Most anonymous forums have low information quality because I don't trust the raw data. While Reason requires no Speaker, Data does.

Efficient knowledge acquisition requires me to push some data gathering off elsewhere, and then the provenance of the data and the trustworthiness of the person become a big deal.

Hopefully, this bypasses those by being a signing authority that ensures the data are high quality.

<comment><USER7> Yes, learning everything in detail as an expert is impossible, we need experts, and because by definition we take their opinion at face value, we need some way to judge their credibility.

Of course we have those, i.e., "signing authorit[ies]" that validate that the opinion/["data"] of the expert is of high quality: they are generally called universities.

(I find it amusing when programming jargon is applied to the real world outside of programming, but presented as new concept. Especially like where, where we have had institutions that accomplish the same thing as "signing authorities" for several thousand years).

<comment><USER6> Ah no, you've misunderstood. Yours is a different argument from mine, though it is similar. You're talking about the cost of being informed enough to understand stuff. I'm talking about trusting the raw data.

The conclusions someone draws from data can be fully verified by another party (what you appear to have called opinions or "data" with quotes). The raw data itself cannot be, even by the most informed party. I can attempt replication but I'll never be able to verify your data even if you opened your dataset to me.

For instance, I may say that on being given drug A, patients' self-reported pain reduced within two days, unless they'd been taking drug B for a related condition. Now, you can read my paper and see if my hypothesis is reasonable, if my experiment actually tests my hypothesis, if my sampling method is reasonable, if my results actually reject the hypothesis, etc. etc. The thing you can never check is whether I made up the numbers. Even if you were the foremost authority in the field, you can't tell that from the paper or my data.

<comment><USER7> > Ah no, you've misunderstood. Yours is a different argument from mine, though > it is similar. You're talking about the cost of being informed enough to > understand stuff. I'm talking about trusting the raw data.

You're right, I was focusing on false analysis, not false raw data. But perhaps I overlooked it because it's rare to see original raw data cited in anonymous forum. Do you see this? Also, the very fact that it was cited anonymously, and also in an internet forum rather than a serious publication should raise enough alarm bells to distrust it, no?

I agree with you that having false data spread through discourse is problematic. It's just not terribly common. What I see more often, is accurate raw data being contorted and misrepresented to promote some viewpoint.

Mark Twain had a nice quote... facts are stubborn things, but statistics are more pliable.

</comment></comment></comment></comment><comment><USER8> If the coordinated persecution of individuals is a democratic exercise of freedom of speech and association, then a commensurate protection to ensure these freedoms for all, whether they are the persecutors or persecuted, is a reasonable action. The new journal in the OP would meet this criteria.

</comment><comment><USER9> Eliminating skin in the game won't result in quality. Just like trying to impress peers won't.

<comment><USER10> Fearless contrarianism adds its own value. It can keep a field honest rather than encourage an echo chamber.

<comment><USER11> Or it can provide safe cover for people who want to keep defeated ideas alive and provide legitimacy for people who want to present those ideas as silenced rather than defeated.

<comment><USER10> If you can provide some evidence that published ideas that have been soundly defeated get resurrected unjustly and that this has harmed progress, then you might have a point. This hasn't happened that I know of.

For instance, the best example I can think of are local, realistic interpretations of quantum mechanics, which most physicists consider to be soundly defeated by this point. However, some of them are completely warranted (like 't Hooft's cellular automata interpretation of QM), and the debate has actually driven some great work in quantum foundations.

</comment></comment></comment></comment><comment><USER12> previous discussion: [https://news.ycombinator.com/item?id=18469230](https://news.ycombinator.com/item?id=18469230)

</comment><comment><USER13> This needn't involve publishing politically sensitive material. "Student" W.C. Gossett published his paper on the T-distribution in statistics anonymously, because his employer Guinness frowned upon publication. This attitude is still prevalent today among many employers. Rather than putting measures in place to vet and approve publication of material that does not involve a conflict of interest, they simply discourage it. This is net loss to society. Conversely, many academic journals have policies prohibiting anonymous publishing. Gossett would be unable to publish in such journals today. Hence the need for this new journal.

</comment><comment><USER14> Even assuming this is a good idea in theory, it's probably not possible. If you're going to publish a full paper defending an idea, it's going to have enough of your writing style in it to identify you.

Academics early in their careers have to publish a lot in order to advance. With more of that publishing moving to freely available online sources, it will be pretty easy to automate attribution. If this journal is freely available online, there will probably even be a browser extension to add attribution.

The only way to publish anonymously is to not also publish under your real name. Even then we'll be able to at least apply a consistent pseudonym to your writing and you'd always be one named publication away from full identification.

<comment><USER15> I disagree. Text analysis only really works when someone attempting to publish anonymously is unaware that someone will do that analysis.

At the point where there are simple tools, you can use them to put together a report on what is most identifying, and then fix it, before publication.

Or one can even publish false flags. If anyone remembers the "lodestar" speculation from earlier this year, that's a single word that someone could have put in to get the writing completely misattributed in the public sphere.

<comment><USER14> What you're describing will only work against current publicly available tools. You can't fool the tools that you don't know about as easily. Would you bet your career against the next few years or even decades of AI research just to publish an anonymous paper?

<comment><USER15> The more "sophisticated" a textual analysis tool is, the less interpretable it is, and the more difficult it will be to get people to believe the output.

And yes, I think the people involved in this will take that risk.

</comment></comment></comment></comment><comment><USER16> > _Another historian, and anthropologist, Gemma Angel, who is an expert on the > European tattoo, tweeted that the programme was "basically an opportunity > for white male rightwing politically motivated researchers to whine on about > how unpopular their abhorrent ideas are." It was, she said, "disgusting"._

Way to prove their point about the importance of such a journal...

(Also, a university professor that's an "expert on the European tattoo" sounds like an Onion parody).

<comment><USER4> There is no reason at all that conservative views about how they no longer can say the n-word or how "those people" don't deserve rights should be defended.

<comment><USER16> Yeah, because any free speech issue can be summed up in a caricature of racism and wanting to say the n-word, and "conservative views" (where "conservative" = bad, because of course all over the world should share mainstream USA's issues and ethical considerations).

And that in a place when just a few decades ago people were losing their jobs and badmouthed because of being gay, or using marijuana, or before that because they were communist sympathizers and so on...

It seems whoever is in the mainstream in the US feels like they sniffle any other voice because theirs is the voice of history, whether they are right or left.

<comment><USER16> "feels like they should stifle"

</comment></comment></comment></comment><comment><USER17> Interesting discussion about why this journal is needed:

[https://m.youtube.com/watch?v=folcWax6d7k](https://m.youtube.com/watch?v=folcWax6d7k)

</comment><comment><USER18> Ring Signature constructs are ideal for this.</comment>


Ask HN: Is there a virtual machine for C - <AUTHOR> I want to know if there are any Virtual machines in the C standard spec (old or new). I wanted to take a deeper look at how is compilled and executed for different arch <comment><USER2> [http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf](http://www.open- std.org/jtc1/sc22/wg14/www/docs/n1570.pdf)

<comment><USER3> To emphasize wahern's comment, I'll quote from the linked-to document: "The semantic descriptions in this International Standard describe the behavior of an abstract machine in which issues of optimization are irrelevant."</comment></comment>


The future of computers – Part 1: Multicore and the Memory Wall (2011) - <AUTHOR> http://www.edn.com/design/systems-design/4368705/The-future-of-computers--Part-1-Multicore-and-the-Memory-Wall <comment><USER2> Nice overview on modern CPU limitations but I find it more interesting that the continual pitching of Venray Technology didn't seem to pan out. Not much online since around 2012. I wonder what went wrong with their idea to integrate CPUs onto DRAM. Weird architectures usually fail I guess.

<comment><USER3> > Weird architectures usually fail I guess.

They did (and maybe still do), mainly because of Moore's Law. Without constant incredible gains on fab technology, mainstream architectures have less of an advantage over niche ones.

</comment></comment><comment><USER4> This is a classic, the folks at Sandia are really interesting to talk to about computer architecture, one of the few places where solid research continues.

The interesting thing for me when I got to Google was understanding how the entire Map / Reduce paradigm worked. It really manages to greatly increase the amount of compute you can apply to a problem with a fairly painful restructuring. An interesting debate broke out about HPC (High Performance Computing) vs MPC (Massively Parallel Computing) and whether or not the architecture was irrelevant to the problem. Put specifically could a problem be expressed as an HPC problem, and then tranformed in some way to be expressed as an MPC problem. There is a pretty nice PhD in computer science in there somewhere, combining Amdahl's law with the theory of computation.

Generally most folks started in the "some things can't be done by map reduce" camp but over time more and more things have been shown to be doable that way, especially if you let the intermediate results float around inconsistently. I've always felt that combinators[1] had a role to play here. Sort of like the Z transform in signal theory, if you can decompose the problem into a set of combinator operations, is seems like you should be able to convert it from and HPC algorithm to a MPC algorithm. Just a conjecture as far as I can tell though.

[1] [https://en.wikipedia.org/wiki/Combinatory_logic#Combinatory_...](https://en.wikipedia.org/wiki/Combinatory_logic#Combinatory_logic_in_computing)

</comment><comment><USER5> Whoever posted this, thanks! I started looking into Venray Technologies. The latest paper series on their site is dated 2014: [http://www.edn.com/design/systems-design/4429530/Two- Views-o...](http://www.edn.com/design/systems-design/4429530/Two-Views-of-the- Post-PC-World--Part-1)

</comment><comment><USER6> These articles date from 2011 and 2012. They are an interesting snapshot of CPU architecture and implementation issues, but are already somewhat out-of- date to very out-of-date.</comment>


Intelligent analysis of a deeply flawed Daily Show interview about Islam - <AUTHOR> https://www.youtube.com/watch?v=kAbNjRmKeIE

<comment><AUTHOR> Please skip/sit through the intro (first minute), after that it gets really interesting. I'm curious about people's opinion from a US perspective...

</comment><comment><USER2> Thanks for this link - I found it very interesting!</comment>


Tell HN: Fermat's Little Theorem fails on complex numbers - <AUTHOR> Fermat's Little Theorem says that, if p is prime, then a^p = a mod p.  You can take complex numbers mod p as well, but for them, the little theorem fails.
More specifically, for p > 2, if c = (a, b), then c^p = c mod p iff p is of the form p=4n+1.  If p=4n+3, then c^p = c conjugate mod p.  In this context, the conjugate of c is (a, p-b).
Why?  Because i^4n+1 = i, but i^4n+3 = -i.  The rest follows from the binomial proof of the little theorem (see https://en.wikipedia.org/wiki/Proofs_of_Fermat%27s_little_theorem). <comment><USER2> You have discovered a fascinating nugget from the subject of _algebraic number theory_.

It is a theorem that if every prime p of the form 4n+1 can be written as a sum of two squares: 5 = 1 + 4, 13 = 4 + 9, etc. Conversely, no prime of the form 4n+3 can be (reduce it mod 4).

Let Z[i] be the set in which you're doing arithmetic, of complex numbers of the form a + bi, where a,b are both integers. These are called the _Gaussian integers_ [1].

If p = a^2 + b^2, then p = (a + bi)(a - bi) in the Gaussian integers. So that means that whenever p=4n+1, p _is no longer prime_ in Z[i]. So you shouldn't expect the machinery of Fermat's little theorem to work. Conversely, any prime p=4n+3 is still prime in this bigger set, and so the machinery underlying Fermat's little theorem still works.

The rabbit hole goes _very_ deep :)

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

</comment><comment><USER3> ...no one ever said it worked on complex numbers.

Per the wiki link, it only works with _integers_.

<comment><USER2> Ah, but this is the heart and soul of mathematics. Taking a theorem that is known for one setting, and seeing if it works in some other setting as well. Can you prove it, or alternatively find a counterexample?

There is a version of it that always works in "complex numbers" (or more precisely in "integer rings" inside the complex numbers), but unfortunately it requires a long technical digression to state precisely. (And, once you've developed all the language, it's trivial to prove.)

This Wikipedia page discusses it: [https://en.wikipedia.org/wiki/Algebraic_number_theory](https://en.wikipedia.org/wiki/Algebraic_number_theory)</comment></comment>


Microsoft deploys first major server application on Ubuntu - <AUTHOR> http://www.zdnet.com/article/microsoft-deploys-first-major-server-application-on-ubuntu-linux/ <comment><USER2> Aren't Skype's nodes Linux boxes, too?

<comment><USER3> Yes, initially around 10,000 of them running a grsecurity kernel when they switched over from Skype the corporation's "volunteer" supernodes.</comment></comment>


Erlang: A Generalized TCP Server - <AUTHOR> http://20bits.com/articles/erlang-a-generalized-tcp-server/

<comment><USER2> Aww, I dismissed Erlang about 4 months ago because I didn't see anything like this existing and didn't want to bother writing it myself.

<comment><AUTHOR> Well, time to revisit it!

In truth, the team I work with tried to use Erlang to power some real-time components of the website we were building at the time but we couldn't get it to work. We kept hitting scalability walls and the problems were too opaque to diagnose.

We decided to go with something better understood by the development community at large and built a Ruby/EventMachine solution.

I'm not an Erlang pro by any stretch, so you know it's bad news when your blog posts about the language are some of the highest ranked for obvious search terms like "Erlang tutorial."</comment></comment>


Who the hell creates a social network? - <AUTHOR> https://thewebb.blog/thoughts/2017/who-creates-social-networks <comment><USER2> Link bait promotional content.

<comment><AUTHOR> My apologies, am I not allowed to share links to my posts?</comment></comment>


ICombinator original address / mirror - <AUTHOR> http://code.seedlessmedia.com/iCombinator/ If one looks into the "about -> more infos" page of icombinator, there is a link to this "mirror"/original. This site is usually up regarding of the state of iCombinator.net itself. <comment><USER2> www.icombinator.net seems to be back up.</comment>


Ask HN: simple analytics api to offer analytics features on my platform - <AUTHOR>

I'm working on a webinar tool that has an analytics component. I am already using mixpanel + GA + other tools to record customer usage patterns, but I'd like my customers to be able to track their own analytics on such things as # of viewers, time spent on page, links clicked, and other things.
Is there some kind of analytics api I can use to input and output the results data and perhaps generate the graphs?
I think this question is so trivial because I could obviously code this myself but I'd rather see it as an easy api I could plugin.
so, is there an easy tool I can use to add analytics as a feature for the customers on my platform?
I feel like there is something obvious I'm missing. Any help would be greatly appreciated. <comment><USER2> Keen.io

<comment><AUTHOR> Thank you! This is exactly the product I was picturing</comment></comment>


Why doesn't React (and similar libraries) support async rendering - <AUTHOR> In my work I frequently encounter situation where an async render methods would be the cleanest way to solve an architectural challenge.
I have looked at the source code of React and Preact, and it would seem to be pretty straightforward to provide this feature
Is there any deep, intractable technical reason why async rendering hasn't been (or cannot be) implemented? <comment><USER2> The React team is working on it right now :) That's what the "React Fiber" rewrite is intended to enable. See Andrew Clark's tweets from yesterday: [https://twitter.com/acdlite/status/909926793536094209](https://twitter.com/acdlite/status/909926793536094209) and [https://twitter.com/acdlite/status/909968784328245248](https://twitter.com/acdlite/status/909968784328245248) .</comment>


Spotify Enlists Its Users to Add Music Metadata - <AUTHOR> http://variety.com/2018/digital/news/spotify-line-in-music-metadata-1202723757/ <comment><USER2> For no compensation? Sure.</comment>


Cell (microprocessor) - <AUTHOR> https://en.wikipedia.org/wiki/Cell_(microprocessor) <comment><USER2> I got a PhD dissertation out of how difficult it was to use the Cell processor: "Shared Memory Abstractions for Heterogeneous Multicore Processors", [http://www.scott- a-s.com/files/scott_dissertation.pdf](http://www.scott- a-s.com/files/scott_dissertation.pdf). Code for the project here: [https://github.com/scotts/cellgen/](https://github.com/scotts/cellgen/)

Cell made a big splash in the high-performance computing community because it gave software the kind of fine-grained control that people with a detailed knowledge of processor architecture and their own algorithms could exploit. But the difficulty with how that kind of control was exposed meant that it was kind of all or nothing: you either optimized your code to use the SPEs correctly and efficiently, or you didn't use the SPEs at all.

I had the opportunity to talk with one of the main processor architects a while back, and I asked why they did not include any hardware-level caching for the SPEs at all - which I think would have allowed people to get that kind of incremental performance improvement. His answer was that they wanted all of the chips real estate and transistors towards the fine-grained control approach. Fair enough, but I think it would have been a lot more usable otherwise.

I think that Roadrunner ([https://en.wikipedia.org/wiki/IBM_Roadrunner](https://en.wikipedia.org/wiki/IBM_Roadrunner)) was the only major deployment of the Cell processor, outside of the PlayStation 3. I always wanted to talk to videogame developers who programmed the PS3 to ask them what techniques and patterns they used for the Cell. I suspect that for some games, they ended up running much of the main game logic on the PPE, didn't bother using the SPEs, and use the GPU for all acceleration.

Disclaimer: I actually work for IBM Research now, but not on anything related to Cell.

<comment><USER3> There's a bit of public information about PS3 game development that's trickled out over the years. A couple of game developers have released slides about how they used SPU, for example in Killzone 2: [http://twvideo01.ubm- us.net/o1/vault/gdc09/slides/GDC2009-vd...](http://twvideo01.ubm- us.net/o1/vault/gdc09/slides/GDC2009-vdLeeuw-KZ2SPUsCaseStudy.pdf) .

I think a lot of PS3 games used middleware to leverage the SPEs rather than writing the code themselves. The PS3 SDK shipped with an SPE task scheduler called SPURS and a set of libraries called "Edge" that offloaded a lot of common tasks onto SPEs. Probably the biggest Edge component was Edge Animation / Edge Geometry, which basically re-implemented a mesh skinning / geometry pipeline on SPEs instead of the RSX: [http://www.jonolick.com/uploads/7/9/2/1/7921194/gdc_edge_07_...](http://www.jonolick.com/uploads/7/9/2/1/7921194/gdc_edge_07_final.pdf)

<comment><USER4> Insomniac R&D has a great handful of presentations on the crackheadedness of programming the Cell.

One of the most annoying things that we ran into was that it was basically impossible to buy a system to learn Cell programming on--you either had to somehow root a PS3 (which still didn't let you get all cores), or you had to buy something from Mercury Computer Systems (I think it was?) that was super expensive.

It was a niche embedded processor, and hobbled because they didn't make it easier to develop for. :(

<comment><USER5> This was before launch I guess? The consumer PS3 did support Linux in the early days, Sony still has a page about it: [https://www.playstation.com/ps3-openplatform/index.html](https://www.playstation.com/ps3-openplatform/index.html)

Then they decided to put a stop to it and just removed it in a software update...

I heard speculation that it was about getting some preferential tax/customs treatment for it because it could pass for a "computer" then.

WP article: [https://en.wikipedia.org/wiki/OtherOS](https://en.wikipedia.org/wiki/OtherOS)

</comment></comment></comment></comment><comment><USER6> I worked on the Sony cell tool support before it was released. Besides the great point scott_s mentions, the Cell never lived up to the hype. The (original) hype that got people excited was: dual-thread dual-issue 4.0 GHz PowerPC code + 8 SPUs. Reality was: a 3.2 GHz processor with performance crippling bugs (load-hit-store was one), 7 SPE but really only 5 (one was hardwired to the OS, another to sound processing). The SPE had even worse bugs that made branches absurdly expensive. If that wasn't enough, developers balked at the cache penalty of 64-bit code so Sony imposed a truly mindboggling terrible 32-bit mode that _didn 't_ use the physical 32-bit mode but instead effectively emulated it (effectively all arithmetics need to truncate to 32-bit). Finally, the whole inter-SPU communication primitives were way more expensive than they should have been.

There's more, but I have willfully flushed it from memory. Cell was a failed design that deserved to die. I will forever after be skeptical of "heterogeneous" designs like these.

<comment><USER6> Forgot a great bit: they originally thought the SPUs were good enough that they didn't need a GPU. That NVIDIA GPU was the only thing that saved the PS3.

</comment></comment><comment><USER7> "The Race for a New Game Machine"[1] is a pretty good read on the development of the Cell and Xenon[2] processors. Giving up the out-of-order seems like a really bad decision and the internal fighting at IBM, if accurate, is really sad.

A side question: What in the POWER architecture makes it hard to implement? I was told the addressing modes are complicated enough that it will always be slower and harder to create than other processors. I'm wondering if this is urban myth or has some basis in reality?

1) [http://www.amazon.com/The-Race-New-Game- Machine/dp/080653101...](http://www.amazon.com/The-Race-New-Game- Machine/dp/0806531010) with a lot of articles written about the book such as [http://www.wsj.com/articles/SB123069467545545011](http://www.wsj.com/articles/SB123069467545545011)

2) [https://en.wikipedia.org/wiki/Xenon_(processor)](https://en.wikipedia.org/wiki/Xenon_\(processor\))

<comment><USER8> It wasn't due to the POWER architecture, it was the SPEs, which were not based on POWER. The biggest problem for compilers and developers of the day was the fact that each of the SPE cores had their own local memory ("scratchpad") that is similar to a cache, but is not hardware managed.

My company (REX Computing) is working on a new processor architecture that is built around scratchpad memory... the main benefits of a scratchpad are that it is lower latency (which basically means faster), uses less area and power, and can be built into larger arrays than your regular hardware managed caches. The big drawback, as seen by Cell, is the fact that it is difficult for most programmers to manually manage their memory.

Our big advancement is that we've developed new compiler techniques (which have been DARPA funded), that would not only make it a lot easier to program the Cell architecture, but allows us to go even further than they did with Cell in making a highly parallelized and energy efficient processor.

<comment><USER7> Actually, I wasn't referring to the SPEs, I specifically heard the POWER architecture had some stuff that made it hard to implement and slower than other RISCs.

<comment><USER9> As was aptly demonstrated by x86 systems (both now and in that era), transistor budgets had grown enough by the time Cell came of age that the impact of ISAs could have on overall performance was comparatively trivial. POWER had a lot of funny things about it, but it wasn't that hard to get POWER architectures to move quickly.

<comment><USER7> You still have to implement the spec, and my question is about the spec. Yes, we can overcome crap which let us end up with the least liked ISA for the winner.

<comment><USER9> POWER inherited a lot of baggage from the IBM R/T, the first real go at RISC, so it was the most un-RISC-like of the RISC ISA's. That was the included all the addressing modes and a surprisingly rich ISA. Those were all considered no-no's for unlocking the advantages of RISC.

<comment><USER7> Thanks. Is there a document / blog post that tells exactly what the baggage and addressing modes were? I've heard the problem but never found the actual specifics.

<comment><USER9> Well, a fairly handy reference might be the PowerPC 601 ISA docs: [http://www.freescale.com/files/32bit/doc/user_guide/MPC601UM...](http://www.freescale.com/files/32bit/doc/user_guide/MPC601UM.pdf)

Chapter 3 touches on memory addressing modes.

The 601 was more compatible with the full POWER ISA that came before it, but looking at the docs for the POWER ISA itself would probably be more instructive.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> This thing was very hard to use from a practical perspective.

The PS3 was a popular console, and game developers had to get the most out of it. I was one of those unfortunate people at times. The PS2's Emotion Engine was already a pain to use (the emotion refers to anger, btw), but the Cell raised my emotions to new levels.

The PPC core was slow and main memory latency was terrible, you had to tune code for memory access, no problem, this was understood problem, though, and workarounds were known, if painful.

Then, you ad this wonderful array of SPE's. You could access five of them, but what are these things? They're really fast vector units with a little bit of local memory - 256k, if I remember correctly, and no access to main memory.

To write code for these things, you use a different compiler, and have to manage the DMA engine yourself to keep their local memory filled with useful input, and to pull out the output. If you're doing streaming computation, you'd basically have to schedule close to 100% ideal utilization of the DMA engine and double buffer data in and out of these things (reducing useful memory to 128k/SPE). DMA had high bandwidth, but also high latency. From the time you initiate a DMA, it was something like 1800 cycles before the first block arrives. This turns into a really complicated memory and latency scheduling problem very quickly. You have to identify specific workloads which you can run asynchronously, and then how to chunk them up for DMA transfers. All this book-keeping work is actually taxing on the anemic PPC core, which has a really difficult times with performance of conditionals.

Bah! Good riddance.

</comment><comment><USER11> I wrote some code for this beast once:

[http://adam.ierymenko.name/files/MersenneTwister32_spe.cpp](http://adam.ierymenko.name/files/MersenneTwister32_spe.cpp)

Was working on genetic algorithms at the time and managed to port one to run on the Cell. It's a good "embarrassingly parallel" work load for that kind of chip. The MT code above was the PRNG for the genetic algorithm.

Makes me want to hack GAs again... boy are those things barrels of fun.

<comment><USER12> I implemented Gaussian elimination on the Cell for my uni coursework... that was fun.

SPE portion: [https://gist.github.com/gigablah/1c72acbe718844310b10](https://gist.github.com/gigablah/1c72acbe718844310b10)</comment></comment>


PxCode D6 – Mobile App,React Native – Give Us Your Sketch, We Give You the Code - <AUTHOR> https://youtu.be/K0AgGpxcnYQ <comment><AUTHOR> pxCode Challenge ! - Day 6 Mobile App, React Native Give us your Sketch, and we give you the Code!

We make this page within 7 mins. Check our results below! Source code and Preview the result here: [https://bit.ly/35JmxdT](https://bit.ly/35JmxdT)

Send us your Sketch; We will show you how powerful pxCode is.

pxCode Official Site: [https://www.pxcode.io/](https://www.pxcode.io/)</comment>


Categories for the Practicing Physicist (2009) [pdf] - <AUTHOR> http://www.cs.ox.ac.uk/people/bob.coecke/ctfwp1_final.pdf

<comment><USER2> And for the practicing computer scientist, category theory provides a single structure suitable for expressing linear control theory, automata, and more: Arbib, Michael A., and Ernest G. Manes. "Machines in a category: An expository introduction." SIAM review 16.2 (1974): 163-192.

"Category theory, not always a total waste of time." (TM)</comment>


What Does an Architect Do in an Agile Shop? An Agile Architect Explains  - <AUTHOR> http://adtmag.com/articles/2011/08/12/role-of-an-architect-in-agile-dev-shop.aspx

<comment><USER2> I like this quote:

 _Perhaps my biggest advantage is that, while I do spend some time coding, when I think about our software I am not constrained by the fear that I will have to implement my own ideas. It may seem crass, but as someone who has worked long years in the trenches I know that there is a subconscious tendency to discount ideas that may have huge long-term benefits if it means a lot of work in the short term._

Hate to admit it, but it's true. It's something you fight against.

<comment><USER3> Someone who isn't hands on can't make decisions on behalf of those that are. What have they got to go on but hype and vendor white papers? Only if you are immersed every day can you see the forest for the trees.

<comment><USER2> Sure, but as the guy talks about in the article, he is hands on. He just spends a certain fraction of his time trying to maintain a global picture of the project and applying insights that come from that.

I haven't worked on a project with more than 4 people for ages, but I don't think I would mind this.

</comment></comment></comment><comment><USER4> I give him points for being aware of the normal pitfalls of designated architects. But even in a good Agile shop I think it's incredibly dangerous to give somebody an "architect" title.

If architecture is one person's job, it means it's suddenly not anybody else's job. Software architecture is a pervasive concern, so everybody should be thinking about it. I think that's much more likely if anybody can notice an architectural issue and is encouraged to take the lead on sorting things out.

<comment><USER5> Agree completely.

You are simply not a well-rounded programmer if you can't architect an application / piece of functionality to do whatever it needs to do.

Designating someone to be the architect just causes strife / encourages 'normal developers' to shut up about architecture because there is no credit to be made.

<comment><USER4> Yep! And the "architect" is forced to strive for credit, because nobody is really in the position to evaluate their work results. At the best, it results in self-promotion like found in this article. At worst, it involves claiming credit for everything that goes well, while blaming "those developers" (and their failure to obey the architect's dictums) for any and all problems.

</comment></comment></comment><comment><USER6> The same thing they should do anywhere else, and this has not changed since the days of building cathedrals from stone:

1\. Design.

2\. Supporting the implementation effort of the design.

3\. Governance, i.e. making sure that what was designed is what is delivered.

Of course there are many other tasks that a software architect in particular has to carry out, but in my day job I never stray too far from the three fundamentals above.

</comment><comment><USER7> He sounds more like a PM than an "architect." Is it because he codes and works in an agile shop that he suddenly becomes an Agile Architect?

</comment><comment><USER8> That sounds like the foreman on the construction site and not an architect.

</comment><comment><USER9> Hey look, my employer is getting some HN love..

</comment><comment><USER10> Haha, hey guys, us Agile Ruby guys are so much cooler than those stupid people that don't use Apple MacBook Pros and chill at Starbucks.

Sure, they write code and get things done while we talk about how awesome our Ruby code is, but hey, All the cool kids use ruby[1].

\-- Send from my iPad

[1] <https://www.youtube.com/watch?v=5GpOfwbFRcs>

</comment><comment><USER11> This is the author on the job: <http://tinypic.com/r/2vifkw6/7>

<comment><USER12> well spoken</comment></comment>


Ruby on Rails "location hack" to better engage with your users - <AUTHOR> https://medium.com/@nicolasleroux/this-location-hack-helps-you-engage-with-your-users-15ce6f04bc94 <comment><USER2> This is fraud. It's not made in that country. The few people complaining are because a) the barrier to complaint is high b) not many people read it c) they don't know that it's false.

If your a digital nomad, have it follow you round the world, or list all the countries you've done substantial work on it in.

<comment><USER3> Not mentioning taxes, counterfeiting laws, and immigration issues if you claim you made something in the US when you are not.

<comment><USER4> Same goes for claiming to be made in most countries when it is not. I'm pretty sure the author/company founder is in France and EU law has quite a few things to say on the matter of misrepresenting goods and services provided. His post is pretty much a confession of such misrepresentation.

</comment></comment></comment><comment><USER5> Shady as fuck. This tactic is also known as lying. Just some more Medium trash

<comment><USER6> I agree. The author should just omit the "Made with love in $COUNTRY" line. No need for all these hoops.

<comment><USER7> Or you could have it display the country the client was accessing the site from only if you have done work in that country.

I get that there is some value in knowing that your software is made in the country that you live, but this is just deceptive

</comment></comment></comment><comment><USER8> Classic "growth hacking" — it feels deeply unethical, and makes me question the judgment of the person behind Botletter.

</comment><comment><USER9> I'd do it only for the visitors from the country the web app was made into.

I'd leave out the "with love" part that always sounds phony to me.

</comment><comment><AUTHOR> Thank you for your feedback! I changed the formula for "Made with love for {{user_country}}". My intention wasn't to fool people but just experiment something to get to know them better.

</comment><comment><USER10> Yeah, no thanks. You better engage with your users because you're lying to them and develop a false sense of connection with them.

I really with HN allowed users to downvote on article.

</comment><comment><USER11> Given what their product does, I'm not surprised at the lack of ethics on display here.

Hooray for "growth hacking"</comment>


Show HN: ReportDash – Reports and Dashboards for Digital Marketers Made Easy - <AUTHOR> http://www.reportdash.com <comment><USER2> This looks cool, but it seems like yet another data aggregator. What I would really pay for is data interpretation. Tell me what to do based on the many charts available.</comment>


Prototyping with Malo CSS Library - <AUTHOR> http://www.vcarrer.com/2009/01/prototyping-with-malo-css-library.html

<comment><USER2> this looks pretty cool, might be worth giving it a try next time I build a fairly small site.</comment>


U.S. DoD needs "immediate action" to win the AI war - <AUTHOR> http://readwrite.com/2016/09/04/dod-ai-defense-sl1/ <comment><USER2> From the report[0] itself:

> _There is no need to solve the long-term AI problem of general intelligence > in order to build high-value applications that exploit limited-scope > autonomous capabilities dedicated to specific purposes._

I'd argue that statement is inclusive of robotic infantry. We already have self-driving cars, so the prospect is not that far-fetched.

[0] [http://www.acq.osd.mil/dsb/reports/DSBSS15.pdf](http://www.acq.osd.mil/dsb/reports/DSBSS15.pdf)

<comment><USER3> If you are fighting an army in uniforms, your targets have like bull eyes painted on them. But if you look at all the modern conflicts since the viet nam war, how do you tell the difference between a viet peasant and a viet cong, between an afghan villager and a taliban, between a kurd fighter and an ISIS fighter?

I doubt we are that close. Recognizing road signs and making judgement calls on the above are not the same order of magnitude of complexity.

Remotely controlled infantry, that would be more realistic.

<comment><USER4> Well, depending on how hot the area is, just shoot anyone (automatically) that doesn't have some sort of IFF-like beacon on their uniforms.

(please no one do this.)

<comment><USER5> Humans can do that perfectly well [https://en.m.wikipedia.org/wiki/1994_Black_Hawk_shootdown_in...](https://en.m.wikipedia.org/wiki/1994_Black_Hawk_shootdown_incident)

</comment></comment></comment></comment><comment><USER6> Interestingly enough, Nikola Tesla discussed the concept of "telautomatons" for use in war in his 1900 article: "The Problem of Increasing Human Energy."

[http://www.tfcbooks.com/tesla/1900-06-00.htm](http://www.tfcbooks.com/tesla/1900-06-00.htm)

</comment><comment><USER7> Fully autonomous weapons are going to come, and the squeamishness around it is going to disappear when its necessity becomes apparent in a shooting war.

We already have autonomous weapons, their called mines. Even these can be somewhat targetable, in particular with antivehicle mines.

The most immediately plausible development in autonomous weapons I've read is in anti-shipping and anti-radiation missles. Israeli Areospace new anti- radiation weapon is a loitering drone than can autonomously target fire control radars.[0] Lockheed's new LRASM[1] is designed to loiter in an area and automatically identify and target enemy ships within an area. However, it right now asks for permission to conduct the attack. So we're just a firmware upgrade from fully autonomous with that weapon.

In both these cases, autonomous weapons aren't really troublesome. Fire control radars send out a very different signal than civilian radars, and so are explicitly a military target. Furthermore even civilian radar could be considered a legitimate target if you don't want to be observed at all, as opposed to be seen but impossible to shoot down.

Antishipping historically has explicitly allowed targeting of both military and civilian ships. So just as long as you can identify the vessel as not being yours using an electrolytically sensors, it's permissible to sink it.

The real problem with autonomous weapons tend to be when their deployed on land, especially when civilians are around. In the sea, and in the air even, there's no one around.

[0] [http://defense-update.com/20160215_loitering- weapons.html](http://defense-update.com/20160215_loitering-weapons.html)

[1] [http://www.scout.com/military/warrior/story/1634058-navy- wea...](http://www.scout.com/military/warrior/story/1634058-navy-weapon- destroys-target-semi-autonomously)

<comment> semi-extrinsic If by "historically" you mean "WW2 and earlier", then firebombing enemy cities with civilian casualties in the hundreds of thousands is also OK.

<comment><USER7> I honestly don't know what to make of this comment. There hasn't been large scale naval combat, or challenged transoceanic supply lines since World War II. So... what's your point? Also, you seem to be implying that targeting supply lines is somehow illegitimate. It is legitimate. It's been a tactic of war since war evolved beyond cattle raids on neighboring villages. The fact that you're comparing this to a war crime, shows you don't know what you're talking about.

Next you'll being saying false flags[0] and arming civilian[1] ships are war crimes. Again, they're not.

[0] [https://en.wikipedia.org/wiki/False_flag#Use_in_warfare](https://en.wikipedia.org/wiki/False_flag#Use_in_warfare)

[1] [https://en.wikipedia.org/wiki/Q-ship](https://en.wikipedia.org/wiki/Q-ship)

</comment></comment></comment><comment><USER8> The US seems well ahead in AI without needing any immediate action.</comment>


IOS 4.2 For iPad, iPhone, And iPod Touch Now Available To Developers - <AUTHOR> http://techcrunch.com/2010/09/15/ios-4-2-for-ipad-iphone-and-ipod-touch-now-available-to-developers/ <comment><USER2> I wished that Apple would release PATCHES rather than having us download the entire SDK + Xcode every single time.

</comment><comment><USER3> How convenient, just finished downloading the previous version of Xcode!

<comment><USER4> That's how it _always_ is. :(

</comment></comment><comment><USER5> This guy's posting pictures: [http://www.razorianfly.com/2010/09/15/breaking- ios-4-2-beta-...](http://www.razorianfly.com/2010/09/15/breaking- ios-4-2-beta-1-for-iphone-ipod-touch-and-ipad-now-available-continually- updating/)

Interesting that the hardware orientation lock is now "mute" (so, more like other iOS devices) and they've moved the orientation lock function — and added brightness control — to the multitasking dock.

<comment><USER6> "added brightness control to the multitasking dock"

Hooray!! I turn the brightness all the way down when I use it late at night or early morning and this will be much easier then Home > Settings > Brightness

<comment><USER7> Definitely. The iPad desperately needs this control, because brightness can only be controlled in an app using a private API reserved for iBooks.

</comment></comment></comment><comment><USER8> Once someone gets it on their iPad, can you report back with supported AirPlay apps? Does anyone know if it can be supported with say the MLB app or AirVideo?

</comment><comment><USER9> Appears that AirPrint will only work directly with HP ePrint printers. Kind of disappointed...

<comment><USER10> Where do you get the 'only' from? I'm sure it is all standards based and that Apple wants all printer manufacturers to support this.

Also, it works with Printer Sharing on your Mac. Which will be the gateway to whatever printer you already have.

<comment><USER11> Why not just use the standard print queues instead of inventing your own print queue standard and calling that standard?

<comment><USER12> So they don't have to pack 6gb (or whatever ridiculous size it is on OSX) of printer drivers in iOS?

<comment><USER11> For one: Linux packs them quite small and somehow Ubuntu fits everything in it's 700MB ISO. Second, you could have the more obscure drivers download over the air, or as a package from the app store.

<comment><USER13> Even if they can minimize their size, it's one of those things that has persisted in its present state for too long. Why _isn't_ there a standard for (at least consumer-level) printer communication? I think this is just another case of mobile device constraints necessitating overdue reform.

<comment><USER11> If that's what you want, you could have the best of both worlds if printers ran CUPS. Then you could have backwards and forwards compatibility.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Does anyone have airplay working yet? I was kind of hoping that it'd support streaming music from iTunes to the iPad, but that doesn't appear to to be the case. =/

<comment><USER15> Airplay is meant to work the other way around - _from_ your iOS device _to_ another device - e.g. an AppleTV, a fancy receiver, a networked TV, etc.

<comment><USER14> I was hoping it would support both means of playback. I don't really see why it shouldn't _.

_ For example, I have far more music on my laptop and such than I do on my iOS device, so it's significantly more convenient to stream music from iTunes to an iOS device when I'm at home (say, downstairs with my iPad) than to sync that music over manually.

</comment></comment></comment><comment><AUTHOR> have it working and installed now. it's great. runs well and smooth.</comment>


Ask HN: Why Shouldn't I Use Lisp? - nicholas-cc I've been following people like Jonathan Blow,  as well as Paul Graham. I've learned Lisp and kind of like it, but I've heard Jonathan Blow say that A) GC is bad, and B) not to use Lisp and other similar languages. Could you explain these reasons not to use Lisp/higher-level languages with more features? <comment><AUTHOR> To paraphrase Ansel Adams (who was speaking of cameras), there is no one best language only the best language for the project you're doing. It may very well be that Lisp is the right language for your project. That depends largely on what the project is and what advantage you are seeking from Lisp (or another choice) that helps complete your project and, most importantly, reduces debugging time later since that's where you'll spend 60% of your coding effort.

We are building our product with a Lisp back end because it deals with NLP and large bodies of text where Lisp is ideal. The user interface, however, is HTML/JS (Angular) because that language offers much more flexibility for UI design.

<comment><USER2> > _because that language offers much more flexibility for UI design_

Sure, for values of "flexibility" approaching "the only darn way to make UI run in the browser".

<comment><USER3> You could use TypeScript, like VSCode does.

</comment></comment></comment><comment><USER4> Jonathan Blow is an opinionated game programmer/language creator who is eg concerned about memory management eating into his 360 Hz display frametime[1]. GC is still used in many games, eg Unity engine, so it's not a universally held view in the field of games. You should probably tell us more about what domain you are working in and/or read his opinions in the contex of his domain.

As for your (B), besides the "is it bad" essay question you probably want to look at languages specifically. As you know there are many Lisp style languages and they have big differences. Eg Clojure, Scheme and Common Lisp are all very different and have different kinds of communities. It's a language family of more internal variety than eg modern Algol style imperative managed statically typed languages (Java/C#/Go).

[1] A topic of some of his tweets recently

</comment><comment><USER5> Sounds like your question is about high-level GCed languages in general. The person you're referencing appears to be in the gaming industry where GC is especially problematic.

If we're talking about Lisp specifically vs similar languages, people probably end up not using it for non-technical reason. Community, hire-ability and so forth.

</comment><comment><USER6> I've read a lot about Lisps with an open mind, worked through SICP in Racket, and worked on some personal projects in Clojure. It was all fine, but at no point did I feel like there wasn't another language that would have done as well, possibly better. The one area where I was never fully comfortable was the lack of static type checking. I've also dabbled with Haskell and though it it is the most clean and consistent language I've used. I never got to the point where I could wield higher kinded types to my advantage, I felt like I was doing extra work to satisfy the language requirements without necessarily getting the benefits back from it. I realize there's benefits of doing so, but it's unclear when/if I'll even break even.

Recently I tried F# having seen OCaml in the past but not really using it. F# seems to have progressed quite a bit since it was just OCaml on .NET. I'm able to work rather fluently with it having already been exposed to Java/Kotlin/Scala/Elixir which seemed close to what I want but seeming to fall short in ways I couldn't quite describe. F# came the closest to what I've always hoped to find in a language. It too has its quirks, some within itself and partly from interoperating within .NET Core. I've yet to use it on larger projects and on a team but the static type checking has already helped me save so much time on iterating design that I wont look at any Lisp for generic work. If I had a need for some specific DSL task it may come in handy as I've often baked minimally expressive configuration languages in the past for no good reason.

<comment><USER7> Right. Lisp totally outshines every other language at building DSLs, so if you reconceptualize your project as a bunch of DSLs that utilize one another, you win big with lisp.

<comment><USER6> What I'm finding is that I can effectively do the same with a statically-typed functional language. The worst are DSLs with poor grammar and concept-fit which add-to rather than solve problems. The ways in which Lisp doesn't scale (people-wise) are well known and relate to each application essentially being its own programming language.

<comment><USER2> > _The ways in which Lisp doesn 't scale (people-wise) are well known_

Well, _memes_ about Lisp not scaling people-wise are well-known on forums like HN.

The actual data on this is lacking, like reports about someone having _actually_ gathered five hundred Lisp developers onto one project and failed.

> _each application essentially being its own programming language_

Meme-fueled nonsense, I'm afraid.

Every complex application in any language is its own programming language.

New types and functions introduce new syntax, just like macros, along with new semantics.

So you know C? Okay, what's this, from the Linux kernel?

      struct usb_host_endpoint {
        struct usb_endpoint_descriptor          desc;
        struct usb_ss_ep_comp_descriptor        ss_ep_comp;
        struct usb_ssp_isoc_ep_comp_descriptor  ssp_isoc_ep_comp;
        struct list_head                urb_list;
        void *hcpriv;
        struct ep_device                *ep_dev;
        unsigned char *extra;
        int extralen;
        int enabled;
        int streams;
      };

When and where is this allocated? What does it represent? How do you use it?

Guess what, this is new syntax. No, wait, what, it's just using the regular C grammar, right? How can it be new syntax? The same way that a Lisp program have new syntax if continues to be made out of parentheses, symbols, strings, numbers that conform to a rigid grammar.

The new syntax is in the _schemas_ built with the definition abilities provided in the underlying fixed grammar.

<comment><USER6> Perhaps less well known are the well-meaning explorations into why isn't Lisp more popular. The absence of a 500 Lisp developers on one project is itself the datapoint being discussed.

<comment><USER2> The absence of that is because it would require a substantial global recruitment and relocation effort to get that many Lispers into one organization. It speaks nothing to their ability or inability to co-operate on a project.

The vast majority of all software tech ever invented is unpopular today. If we just pick a tech stack, language, editor, OS or anything from the last 70 years at random, it's almost certainly unpopular. That's our first-order effect that forms the bulk of the rational explanation for why anything is unpopular. By definition, not everything can be popular: popularity is the selection of a very small number of artifacts (almost always chronologically recent) to the exclusion of everything else.

<comment><USER8> The challenge to that prior is that there is substantial overlap in the features and capabilities that were in, say Commmon Lisp a long time ago and yet there was a substantial delay in those features being accumulated in other languages with vastly greater adoption to this point (like Java, although that example might be disingenuous since the releases of Java and CLOS were only a year apart...)

Likewise during the last seventy years some languages saw wild uptakes in popularity for some languages much later in their life-cycle. Who would have expected the modern successes of Ruby?

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Depends on what you are implementing and how.

I find Lisp good if you have a rough top-down design and lots of bottom-up implementation details to suss-out. You can test each bit as you build and in passing you might implement a DSL for your domain. There are many compiled Lisps (both CL and Scheme) so performance can be quite good.

Generally, it is hard to deploy Lisp on client systems (if that is a requirement) without introducing many dependencies. Loko Scheme being an exception, since it (like Golang) compiles to a single executable with no dependencies.

GC and VMs are common in many alternative environments so that's not a point of difference.

If you like Lisp and your dev and target environments are suitable and you are a solo developer or have a team of Lispers then why not use it? In most general terms Lisp is no better nor worse than the alternatives.

<comment><USER2> Loko Scheme is certainly not an exception in producing a single executable with no dependencies. All major Common Lisp implementations do this. I shipped a program for Windows quite easily using Clozure Common Lisp ("CCL").

<comment><USER10> Generally that's true. Loko Scheme is interesting, though - but probably not widely used. Check the documentation.

Probably he meant 'zero' dependencies. Like not depending on C libs. I see that Loko Scheme depends on running on Linux (unclear, which versions) and AMD64 cpu - it seems to be able to run on bare metal, too - but the dependencies on the hardware are unclear. To bootstrap, it might need another Scheme implementation.

Many Lisp systems can generate executables, some of which then may depend on some external libraries (maybe in specific versions), specific OS versions or even specific CPU variants (not unknown on ARM hardware which has a lot of CPU variants).

<comment><USER2> A language implementation that depends on no C libraries, on a platform whose documented interfaces are C libraries, still has a platform dependency, and that platform dependency is worse.

</comment></comment></comment></comment><comment><USER11> Assuming performance isn't a problem (which it may well not be), this does a good job of laying out all the other arguments against Lisp: [http://winestockwebdesign.com/Essays/Lisp_Curse.html](http://winestockwebdesign.com/Essays/Lisp_Curse.html)

Basically: Lisp projects have trouble scaling to larger teams (and communities) because of how fluid it is. That said, for a solo project or a small team, no language has more expressive power.

That said, Jonathan Blow has the occasional good opinion and a lot of really bad ones. His anti-abstraction zealotry is the basis of most of the bad ones. As another commenter here said, there are no universal truths when choosing a technology; it's always about using the right tool for the job.

<comment><USER4> But: 99% of software projects are made by solo devs or small teams, and shooting for scalability in its many dimensions from the outset has doomed many a project from making it out of the door. (Or hobbled them enough that the "happy problem" of scaling is never encountered)

</comment></comment><comment><USER12> ((

</comment><comment><USER3> Because static typing is important for working productively with medium-to- large programs, because the Lisps have decrepit ecosystems, and because they aren't even good dynamically typed languages either, with the possible exception of Clojure. There is nothing that Common Lisp has, that other languages don't have, that makes it necessary.

<comment><USER13> That's a pretty opinionated statement... Could you elaborate on why you think the Lisps aren't "good dynamically typed languages?"

And I don't think "necessary" is a good metric when comparing programming languages; "pleasant to use" or "efficient to write" strike me as more pertinent (as well as the obvious runtime efficiency questions).

<comment><USER3> Use of a bad language like C or Java or Emacs Lisp (if that can be called bad) can be necessary -- the best choice.

I don't have a novel explanation of what makes Common Lisp and Scheme bad dynamically typed languages, just the ordinary obvious reasons, so there's no point in writing it out.

<comment><USER13> Unfortunately, my CS background isn't strong enough to see the "ordinary, obvious reasons". But I do like Common Lisp, so I am rather interested in discovering what bothers you about it?

And as an aside: what makes you call C and Java "bad languages"? (Especially since you are so much in favour of static typing?)

<comment><USER3> The short version is,

In C it's easy to make mistakes with gotchas like implicit conversions, and nowadays it's archaic, lacking in basic features it could have, e.g. something akin to D's scope(exit) statements.

In Java it's very expensive, in effort and code bloat, to define new types; in general the language actively fights against making well-organized program, or even just moving data around.

With Scheme or Common Lisp, you might look at Clojure or Oz for some inspiration (as well as features we take for granted in Perl/Python/Ruby/PHP/JavaScript) in regard to what sort of features might make a dynamically typed language, even a Lisp, "not bad." Part of it is that statement-based function bodies are actually a good thing, and infix syntax is a good thing. Scheme is just lacking in basic stuff you need, and it relies on tail calls without explicit tail call syntax. And it has call/cc. Common Lisp is bad in detail -- it has all sorts of clever little features, like setf, that don't solve real problems, they solve Lisp problems. And they handle defining and using new types badly, even simple ones like plain record types. Back in the day, CL's advantage was that the competition was so weak. If you gave CL the Python or JS ecosystem today, it would be usable, but that's the nicest thing you can say about it.</comment></comment></comment></comment></comment>


Show HN: Audiograph – WebGL/WebAudio Music Visualizer - <AUTHOR> http://audiograph.xyz/ <comment><USER2> Besides the space key, are there any other ways of interacting with the music?

<comment><AUTHOR> Yup, just space key at the moment.</comment></comment>


Ask HN: Which software/SaaS do you use to keep track of your project development - <AUTHOR> I'm interested to know if there is a particular service simple enough for side/hobby development projects, not the industrial grade tools. <comment><USER2> [https://wakatime.com/](https://wakatime.com/) full disclosure: I built it, but still use it every day to track my features and productivity.

Trello for closed-source projects and GitHub issues works perfectly for open- source projects.

</comment><comment><USER3> Trello.</comment>