There is also ftype:
(declaim (ftype (function (number string) number) add-string))
(defun add-string (a b) ...)HN user
There is also ftype:
(declaim (ftype (function (number string) number) add-string))
(defun add-string (a b) ...)It sounds like what you're describing is not figuring out at a high level what to do, but formalizing that into low-level instructions for a computer. This goes exactly to my point. What I meant by "algorithm design" is strategy selection, which I want to be careful to separate from strategy formalization for a computer. It is the latter that I think laypeople struggle with the most, however, the fascination with algorithms often drives attention to the former. For example, it's easy to be impressed by the cleverness of binary search, but it's actually relatively straightforward to understand as a high-level concept. The harder thing for a layperson is to formalize binary search into a working set of computer steps. I think there is a certain cognitive bias at play, where the formality of fine detail seems lowly and menial, so we want to skip over it, in spite of the fact that it's actually the biggest hurdle for most people to overcome.
The ill-conceived notion that parents giving children procedural instructions is somehow like programming brings me to a question for you as a teacher.
I've noticed that the industry really prides itself on algorithms and this is commonly reflected in interviews.
However, it seems to me that merely discussing algorithms, however clever they might be, is actually an intuitive human activity not unlike the example of the parent verbalizing procedural instructions to their child. Therefore, I would argue that algorithm design, though clearly an intellectual challenge in its own right, does not target the essential part that makes programming hard and inaccessible to so many people. (Disclaimer: a high-level algorithm discussion is usually followed by whiteboard coding, which I'm ignoring in this critique as a separate kind of activity).
Do you agree with this claim that algorithm design is not actually the thing that makes programming so difficult for laypeople? Can you give your take on what does make programming hard or what students struggle with the most?
Well there is the Steve Jobs solution: don't have license plates.
And this meant that the great danger to the peace and freedom of the world came not from Moscow or "international communism," but from the U.S. and its Empire stretching across and dominating the world.
Can anyone explain how this statement makes any sense for a supposed libertarian at that time? Any way you look at it, the Soviet Union 1) suppressed freedom and 2) espoused militarism. I'm puzzled why it seems to get a free pass here.
neither Windows, Mac and Linux have any kind of permission system
Actually, OS X now has the beginnings of an iOS-like permission system for location services and access to your contacts.
Airbnb's technical quality has been obviously crap for its entire existence. Why are we taking engineering cues from a glorified room rental site that is frequently buggy?
The whole tone of this question smacks of "gold fever". I'm guessing you're thinking about entering the field, so I'm going to tell you what someone told me during the original dot-com bubble:
Only become a programmer if you truly enjoy it.
If you're getting into programming solely because you think it's "on fire", you're going to have a bad time. It is always possible at any given moment for various reasons that VCs could collectively pull back on tech, or some major employers could downsize, and flood the market with excess talent. No one can predict this shit. There was a time post-bubble when many programmers could hardly give away their skills let alone make big bucks. Not long later there was a time when it was a foregone conclusion that all software development was going to India. Now here we are talking like "is this money wagon going to go to infinity?" and I say stop. Just stop. Do it because it suits you. Do it because you like the work. Please don't do it for "the money" which may or may not deliver for you, ever.
Please don't complain about one of the most fertile job environments and wish for it turn it into another Europe.
Be careful not to conflate offshoring with outsourcing, which the article does. Some startups will have their own employees overseas, but my point is specifically about outsourcing to other companies.
Two things:
1) You don't outsource your core in business, so outsourcing tech is not appealing for tech startups, period.
2) Typically tech startups are more of a growth optimization problem than a cost optimization problem. Outsourcing to cheaper parts of the US, let alone overseas, usually doesn't increase the startup's growth potential.
Here's Lisp (SBCL) vs. Python 3: http://benchmarksgame.alioth.debian.org/u64/compare.php?lang...
Summary: crushes it.
Greenspun's tenth rule rears its ugly head. Go reinvents Lisp macros, poorly.
I strongly disagree that the high cost of living is beneficial for startups. Keep in mind the very term Silicon Valley comes from chip companies (Fairchild, Intel, etc.) who came to SV because it was cheap, open farm land. There isn't a business in the world that doesn't want to optimize on costs.
Take a look at a modern SV company now: Apple. It creates lots of jobs in SV, but far more in China.
SV succeeds in spite of the costs, not because of them.
I think too often people make social rather than technical decisions
Indeed. It's sad that as engineers (who theoretically espouse logic, reason, and evidence) we still end up making so many decisions based on herd behavior.
Jon Huntsman, the politician and businessman, speaks Mandarin. As such, he served as US Ambassador to China. Zuck's not the first – I'm sure there are more examples out there.
For me something like list comprehensions is simply a matter of learning and expertise, not cleverness. Somebody banning them for "cleverness" reasons should be called out for what they are really doing: setting a (sadly low) knowledge ceiling.
The real problem of cleverness is when people are bored of being code monkeys and start inventing things that complexify their project without any legitimate justification. Like "a cron job and a two line shell script would do but why don't I design my own multi-tier scheduling cluster"
Nonsense. It could be steered (well, maybe rotated) with flywheels :)
All good points. I wasn't trying to suggest a solution, but merely trying to point out that job creation should not be the sole bar by which we measure the investment of capital, but that it should do something useful too — whether that investment comes from private actors, or government.
Employment is all good and well, but one needs to consider: what are the second-order effects of that action? For instance, you could employ people to dig holes that serve no purpose. Or, you could employ people to build public infrastructure that continues to pay dividends over its lifetime.
Buying the yacht is a little bit like digging useless holes, because it's basically a very costly form of recreation that doesn't do much for society. Ideally, money goes into things that both employ and have desirable second-order effects.
The explanation of greater longevity is simple. Heart disease and stroke, at least in the US, together account for slightly more deaths than cancer. Suppose that moderate alcohol consumption increases cancer risk by 5%, but decreases heart disease and stroke risk by 10%. Although there would be more cancers due to alcohol, the overall death count would still be reduced, because of the protective effect on the cardiovascular system.
No one is saying that alcohol doesn't have negative effects on health. It's just that the positive effects of moderate consumption are stronger, enough so that overall mortality is reduced (at least according to the available scientific evidence, which I admit may not tell the whole story).
promoted by people wanting to feel better about their alcohol consumption
Maybe, but this works in reverse too. There is a bias towards assuming that behavior perceived as sinful must also be harmful. This manifests in bad science in any number of examples: meat consumption, fat consumption, and yes, alcohol consumption. The USDA food pyramid (1992 one) came out against sinful fats and guess what happened? A low-fat/high-carb craze that was completely ruinous to public health.
I agree that it is silly to think that not drinking is actually a risk factor for heart disease. I was never trying to support that claim. I was just trying to point out the institutional biases that may be at play when AHA makes recommendations about alcohol consumption.
I would also like to point out that the very AHA page you linked to states "The incidence of heart disease in those who drink moderate amounts of alcohol (no more than two drinks per day for men or one drink per day for women) is lower than in nondrinkers." So there may be a potential benefit there that AHA acknowledges.
Don't single out cancer without considering all-cause mortality. A number of studies show that moderate alcohol consumption results in overall less death even if cancer risk is increased.
"The beneficial effects of alcohol are not only evident in cardiovascular disease, but also in reducing mortality from all causes."
http://www.medhelp.org/heart-disease/articles/Alcohol-Consum...
Keep in mind that almost no organization (outside alcohol sellers) can "recommend" alcohol consumption for the simple reason that alcohol is extremely negative for certain cohorts (i.e., alcoholics). Therefore, even if there are demonstrated benefits for the majority of the healthy population, no one wants to be seen as supporting the harms, which, in fairness, are often extremely bad. That said, even your quoted text admits that there may be potential health benefits to alcohol consumption in moderation.
Yeah the title should be something like "Study identifies the most nutrient-dense foods". Of course, I doubt that would get upvoted as much.
And software built by volunteers, like OpenSSL, has proven to be so much more secure. It's not like heartbleed left practically the entire internet vulnerable to abuse. Oh wait, yes it did.
Palantir is an SV company too. It was founded by Peter Thiel (et al) and its HQ is in Palo Alto.
Java vs. Lisp/OCaml/etc.
It is thought that these niche languages are more productive in the hands of an expert, but then, you need an expert, which is scary for the corporate bottom line. Hence the mass adoption of Java to keep workers interchangeable.
Thankfully a few companies have realized what Jane Street did: niche languages actually make hiring easier if you are looking for top talent, and of course, the productivity is better too.
Related: http://flownet.com/gat/jpl-lisp.html
"The management world has tried to develop software engineering processes that allow people to be plugged into them like interchangeable components."
Excellent point. I found myself struggling to describe Lisp in terms that non-Lispers would understand (blub paradox I guess), and I figured almost everyone knows what a REPL is. You're absolutely right that a REPL itself is just scratching the surface, and there is all kinds of interactivity beyond that.