What Passes for Excellence in Silicon Valley - <AUTHOR> https://medium.com/@espiers/what-passes-for-excellence-9b568eb5115a# <comment><USER2> Well thankfully that listing includes the actual address and an aerial view of the property. Will facilitate the drone strikes when the revolution comes.

</comment><comment><USER3> uhm, i think the original post is quite obviously satire. i've never met anyone that would qualify in my entire life.

<comment><USER4> It has to be. Case in point, look at the list of current residents and what they do. A lot of those jobs require business formal wear (read: a suit) at least part of the time. You can get great suits under $500, sure, but as someone who recently went new suit shopping, $500 doesn't get you much.

<comment><USER5> Garage sale in rich-people areas. Scored a like-new Brioni for $75, I think it looks fantastic.

</comment></comment></comment><comment><USER6> Sounds like a slightly stupider version of Hitler's youth.

<comment><AUTHOR> I wouldn't go that far. More like a party house for posers who refuse to admit that they're a party crowd because they outgrew drugs (should we applaud them?) and bike. In 5 years they'll be golfing and hiring social tutors to help them with the hard questions, like whether it's "trying too hard" in 2015 to use "summer" as a verb.

Oddly enough, I love biking, work out every day, avoid car commutes, and don't use drugs. I can't stand self-righteous assholes who think their choices make them superior, though, so that might be a problem.

<comment><USER6> I understand wanting to be around others who are trying to live well. But attempting to enforce this at some social level has always been and always will be, a recipe for disaster (see... every cult ever).

Maybe the "Hitler's youth" thing is a little off (although the values portrayed sound pretty close the ideas of clean living etc. the "youth" was all about). That being said, I wonder what percentage of the referenced twerpwads hold racist beliefs? My guess? 100.

(edit) From the sounds of it, in 35 years most of this bunch will probably be on association boards of gated communities and spend much of their time policing the neighbourhood for hedges that are too high and fences that are painted a slightly wrong color.

</comment></comment></comment><comment><USER7> I don't see how this can't be a satire.

<comment><USER8> It appears to be sincere: [http://money.cnn.com/2015/05/14/technology/startup- castle/](http://money.cnn.com/2015/05/14/technology/startup-castle/)

<comment><USER7> Indeed, and here is the original ad for renting a room: [http://supost.com/post/index/129734920](http://supost.com/post/index/129734920)

</comment></comment></comment><comment><USER9> This does not gratify my intellectual curiosity.</comment>


Facebook's Payment Autofill - <AUTHOR> http://techcrunch.com/2014/04/30/facebook-ecommerce/?ncid=rss <comment><AUTHOR> A wonderful area for Facebook to attack. But not clear if they will go after it hard enough. Or if users will trust them enough.

Also interesting is the vague mention of integration with PayPal / Stripe "backends" what does that mean exactly?</comment>


What is the best resource to publish my own article for free? - <AUTHOR> I've written an article - a kind of general instruction about a process of participation if a common Ethereum based ICO. Could you suggest a resource to publish it? <comment><USER2> Blogger

WordPress

SquareSpace

Webly

Wix

If you need a domain, check out [https://freenom.com](https://freenom.com) \- actually free domains (so long as they point to a real website).

</comment><comment><USER3> Maybe you wanted to add: "without signing my rights away"?

</comment><comment><USER4> Medium and it's not close.</comment>


Basel Problem - <AUTHOR> https://en.wikipedia.org/wiki/Basel_problem <comment><USER2> My favorite consequence of this problem is a rather unintuitive answer to the following problem:

You find yourself in a circular arena with a hungry lion that will hunt you through whatever strategy it likes. You are able to run at exactly the speed of the lion. Assuming that you don't get exhausted and that both you and the lions are point-shaped, is there a strategy that allows you to avoid the lion forever?

<comment><USER3> Wouldn't running to the perimeter and then always running whichever way creates distance from the lion along the perimeter achieve this?

<comment><USER2> No. The fundamental problem with that strategy is that moving along the curvature of the perimeter forces you closer to the lion, and it turns out that that's just barely enough for the lion to catch up in finite time.

<comment><USER3> Oh I see. The lion shaves the circle if I stay at the wall. It's less intuitive than I imagined. I feel almost compelled to code it just to see how different strategies pan out.

</comment></comment></comment></comment><comment><USER4> This video is a nice illustration of a geometric proof: [https://www.youtube.com/watch?v=d-o3eB9sfls](https://www.youtube.com/watch?v=d-o3eB9sfls)</comment>


Revisiting PG's New Reality, 7 Months Later: Ticketstumbler vs. Fansnap - <AUTHOR> http://siteanalytics.compete.com/ticketstumbler.com+fansnap.com/ Based off this post 7 months ago, where PG compared TicketStumbler ($15k in funding) to FanSnap ($10.5 mil): http://news.ycombinator.com/item?id=458925<p>This is not a criticism of PG's submission OR of TicketStumbler, just an interesting observation that I hope will generate some debate. <comment><AUTHOR> Based off this post 7 months ago, where PG compared TicketStumbler ($15k in funding) to FanSnap ($10 mil): <http://news.ycombinator.com/item?id=458925>

This is not a criticism of PG's submission OR of TicketStumbler, just an interesting observation that I hope will generate some debate.

<comment><USER2> If you spend enough on ads, you can make your traffic whatever you want. But that kind of traffic doesn't prove anything (except the initial premise: Fansnap has a lot of money). A more meaningful comparison would be organic traffic, which Compete doesn't break out.

<comment><USER3> The traffic might not prove anything, even if it were reliable, but the bottom line might. It may prove that sometimes its better to raise a bunch of money and spend it on ads.

At the end of the day it's all about profits. If they're spending $1m on ads that bring in $5m in revenue, and TicketStumbler is getting only a fraction of that organically, then Fansnap will come out way ahead in the end. And users you buy from ads frequently have a higher RPU than organic ones, and the difference is often more than enough to offset the increased acquisition costs.

Not saying that's the case in this particular instance, but I think it's a mistake to say organic traffic is necessarily a more meaningful metric than overall traffic when the end metric is money.

<comment><USER2> Organic traffic is not necessarily the best predictor of a mature company's revenues, but it is a more meaningful way to compare two newly launched companies.

The impression you get from the traffic graph is that Fansnap is leaving Ticketstumbler behind, while in fact it is entirely possible (indeed likely, under the circumstances) that it reflects mainly a gradual ramping up of ad spending. I.e. that what you're seeing is a graph of increasing losses rather than increasing profits.

<comment><AUTHOR> I personally believe it's too early too tell, either 7 months ago or even now. Consumers will decide in the end who they prefer, even if it's not one of these two companies.

</comment></comment></comment></comment></comment><comment><USER4> Well duh, Fansnap has a 1 million dollar per year ad budget :). And now it's 15k vs 15 million!

In seriousness though, Fansnap has done a kick ass job on many many fronts. Luckily the market is a $4 billion industry so I think there's room for a few companies to play. I believe PG's point was that a bootstrapped company can now compete with a venture-backed company. That wasn't always the case.

Compete isn't very accurate anyway.

-Dan, Co-founder, TicketStumbler

<comment><USER5> Wait a second! Are you saying that marketing and advertisement actually work and that you need more than just a good product?!

<comment><USER4> Indeed.

</comment></comment></comment><comment><USER6> TicketStumbler might still be the better business; that's a lot of funding to earn back.

But really, I wonder what happened in February-March that gave FanSnap such a traffic boost.

Looking on the two companies' blogs for that period, the only thing that sticks out as a possible major traffic driver is a FanSnap partnership to list eBay tickets.

Or was it some promotion associated with the NCAA tournament that drove awareness and continuing use to a new level?

Or maybe FanSnap is just buying the traffic with advertising dollars -- ROI and longevity TBD?

<comment><USER7> That appears to be the time when they had a major launch, a meta-search for ticket comparison shopping:

[http://www.techcrunch.com/2009/03/13/fansnap-is-the-new- kaya...](http://www.techcrunch.com/2009/03/13/fansnap-is-the-new-kayak-for- event-ticket-searches/)

</comment></comment><comment><USER8> I wondered when somebody was going to bring this up.

For the record however, Fansnap has spent a significant amount of money purchasing traffic. There were ads on finance.yahoo.com at one point. The fact that they only amassed 94k uniques is almost laughable, poor retention/use of money--imo the whole ticketing business is a tough sell if you're just aggregating--

Tom and Dan have definitely put in a heart full effort--I think they probably understand the business just as well as fansnap (if not better) and spent much less money learning about it at the end of the day. Kudos to those guys bootstrapping an idea.

<comment><USER9> If Fansnap is pouring money and resources into business development (getting long-term partnerships and contracts in place), then this might not be reflected in their numbers for some time. It still makes them a very dangerous competitor.

A three-orders-of-magnitude difference in development resources might not be scary to people who believe smaller is better when it comes to programming, but it's hard to make up that kind of ground in other areas.

</comment></comment><comment><USER10> Startups are a lot of work. I'm guessing it's fairly indisputable that $15.7m funding can really help your growth. Case in point, employee count: FanSnap 21, TicketStumbler 2.

Given that tidbit, I'd say TicketStumbler is still doing a very respectable job by comparison.

</comment><comment><USER11> If we're going to revisit what PG linked to, should we revisit what Dan said about having a long way to go?

<http://news.ycombinator.com/item?id=458946>

</comment><comment><USER12> There is such a huge variation in sites estimating visitor numbers.

<http://www.cubestat.com/www.ticketstumbler.com>

<http://www.cubestat.com/www.fansnap.com>

I think it's pretty obvious that given the variation and low absolute numbers we are talking about that it's impossible to tell the two means apart given the data.

<comment><USER10> For our site, Cubestat's "Estimated data" is completely and horribly wrong compared to compete.com and alexa (which are only mostly wrong).

<comment><USER12> As I said, there is a huge variation. Quantcast often has dramatically different results as well.

</comment></comment></comment><comment><USER13> We don't know the conversion rates of each site, so the traffic metrics are useless. One could convert at 15% and the other only at 2% and be comparable in terms of revenue.

Metrics are good, but they can be blinding.</comment>


On Writing a Book - florian-hopf http://blog.florian-hopf.de/2016/06/on-writing-a-book.html <comment><AUTHOR> "It's no secret that this book won't make me rich. I don't know how many copies will be sold but in the end I expect the hourly rate for the writing to be in the low one digit € range. You might not be surprised that my consulting rates are a bit higher than that, but of course the book is good marketing for services."

Unfortunately that is exactly what I think when looking at a lot of publications in that field. Many books about OS technologies are just printed out manual pages, others look like advertising for consulting. Always make me a bit suspicious.</comment>


IBM completes successful field trials on Fully Homomorphic Encryption - <AUTHOR> https://arstechnica.com/gadgets/2020/07/ibm-completes-successful-field-trials-on-fully-homomorphic-encryption/ <comment><USER2> Fully homomorphic encryption (FHE) looks to me like the WET DREAM of every business that wants to _control the software and content_ on your hardware without ever having to decrypt sensitive code or data residing on that hardware.

That's because FHE-encrypted software is _locally unhackable_ as long as its implementation of FHE remains unbroken.

Think:

* FHE-encrypted mobile operating systems, applications, and data.

* FHE-encrypted desktop and server operating systems, applications, and data.

* FHE-encrypted "smart home" devices -- from light bulbs to dishwashers to fridges.

* FHE-encrypted transportation infrastructure -- from automobiles to trains to airplanes.

* FHE-encrypted industrial machinery of all kinds.

If FHE ever becomes practical, we're looking at a _very unhackable_ future.

Remarkably, I've never seen this issue mentioned anywhere else before.

<comment><USER3> FHE gets brought up all the time. There are great discussions down thread about why this isn't practical for most use cases.

The killer thing is the performance penalty for doing FHE on any dataset of meaningful size. This is because if you want to do an operation on one member of the set you need to do an operation on all members of the set otherwise you leak which member you care about. For sets of a very small size this performance penalty might be ok. For sets of a large size, like the set of all users of a service, the performance penalty will grow at least linearly to the size of the set.

This is the problem at the core of ZK-style proving systems. You can push the proof construction work into the client and have a sub-linear verification time relative to the proof, but the proof construction in the first place is going to be slow and expensive (and slower as the size of the set increases!).

The edge of research here is being done by cryptography labs all around the world. If someone does manage to solve this in a purely-software based manner with a performance penalty that is acceptable for a monotonically increasing set, that's the holy grail. I remain unconvinced that this will be solved in a reasonable fashion for this use case in my lifetime (but I would be thrilled to be proven wrong!!). If you know of research which makes inroads on this problem, please point me at it.

<comment><USER2> Agree. That's why I wrote, "If FHE ever becomes practical..." \-- because at present it isn't.

Currently it's a wet _dream_ for a lot of businesses.

<comment><USER3> FHE style systems are possible if you use a hardware-based encryption approach like a Secure Enclave, but then you have a trust narrative that includes a Secure Enclave. For most use cases this is unacceptable.

Note: I work on a system design that I believe is acceptable that uses Intel's SGX which we detail in this tech talk entitled "why sgx": youtube.com/watch?v=Hwf_Q31woLo&utm .

<comment><USER4> If you believe in a Secure Enclave then there is no need for Fully Homomorphic Encryption anymore as all the computation can be carried securely in the SE. The question is the SE is not trustable for many people.

<comment><USER3> It's more complicated than "do you believe in SE". There's a difference between using a SE for storing durable secrets (a bad idea in most implementations I've seen) and using a SE for provably destroying a piece of information. The former means that a break is full jackpot, the latter means that a break compromises the system for a window in time and forward secrecy can be restored with a patch.

</comment></comment></comment></comment></comment></comment><comment><USER5> The comment by "Ibmresearcher" says that:

> Once one can do multiplication and addition all other operations can be > bootstrapped from there so you can indeed do anything a Turing complete > computer can do.

This is apparently iterated on many articles about FHE, but it seems false to me: to do Turing-complete stuff you also need comparisons, and the ability to change your flow depending on comparisons. But clearly you cannot do that with FHE, otherwise you could extract the encrypted content, one bit at a time.

My understanding is that an FHE computer can only execute a fixed net of additions and multiplications (or whatever operations they've got). So you can emulate an "if" clause by computing both branches and then selecting one of the two multiplying by 0 and 1 appropriately; you can do bounded "for" loops always executing the maximal number of times, but you can't do unbounded loops, therefore bye bye Turing completeness.

Of course there are a lot of interesting algorithms that can be executed without being Turing complete, but the general statement is false. Am I missing anything?

<comment><USER6> Code might finaly look like with movfuscator (MOV on a intel processor is also turing complete).

<comment><USER7> Movfuscator only works because x86's MOV is like the Swiss Army knife of move instructions. It doesn't just copy bits from one location to another, but has parameters for conditionality and arithmetic, which is what allows it to be so general. That still doesn't address the parent's confusion (that I share) of how you get Turing-completeness just from addition and multiplication.

<comment><USER8> True, but there are simpler (abstract) machines that also achieve Turing completeness: [https://en.wikipedia.org/wiki/One- instruction_set_computer](https://en.wikipedia.org/wiki/One- instruction_set_computer)

> That still doesn't address the parent's confusion (that I share) of how you > get Turing-completeness just from addition and multiplication.

I wouldn't say arithmetic circuits are Turing complete since they can only perform bounded computations, but we could say that they're functionally complete. It is known that boolean AND and OR gates are functionally complete, and we can reduce them to multiplication and addition in any finite field:

        x and y = x * y
        x or y = ¬(¬x and ¬y) = 1 - (1 - x)(1 - y)

<comment><USER5> What does "functionally complete" means for you?

<comment><USER8> Informally, I mean reducible from time-bounded Turing machines. Given a Turing machine TM and a time bound T, a (binary or arithmetic) circuit can be constructed to simulate TM for T steps. Or in other words, a circuit can be constructed to solve any particular instance of FNTIME(T).

</comment></comment></comment></comment></comment></comment><comment><USER9> But just 2 months ago there was an article on HN that stated:

 _The database is a key value store prepopulated with the english names of countries and their capital cities from the continent of Europe. Selecting the country will perform a search of the matching capital. On a 2019 Macbook Pro laptop, the example searches take under 80 seconds._

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

And today this article claims _only_ a 40x compute cost for "machine learning"?

What is the cause of the disparity?

<comment><USER10> My layman guess is that the FME penalty goes up exponentially to the complexity of an operation.

<comment><USER11> Doing a exact string match on 200-ish rows in 80 seconds on a modern computer is so inefficient that I have a hard time seeing any less complex but useful operations whatsoever. Perhaps I'm just not clever enough, but for now homomorphic encryption seems like it isn't useful for common, real world usecases to me.

</comment></comment></comment><comment><USER12> Someone please correct me if I'm wrong, wouldn't this still be vulnerable to side channel or pattern analysis attacks? Also, how can all operations on a DB like projection, and equality be represented by addition and multiplication? Are we in the peano arithmetic space here? Can somebody break it down from me?

<comment><USER13> You answered your own question accidentally: side-channel attacks are not possible in this model of computation because everything is represented as addition and multiplication. The homomorphic ciphertext doesn't tell you when it's done, you sort of just do all the operations you're told and hand back the answer gaining no knowledge about the computation you just did.

That's not to say that a badly-designed usage of homomorphic computation can't _introduce_ a timing channel, though. If there's a point in time where the result is handed back to the client, they inspect it, and then conditionally send more computations, you might be able to infer something with either the client's timing or if they happened to send back more computations or not. However, that assumes that we'd be able to trace multiple API requests associated with the same data set (as opposed to unrelated computations), and that we know enough about the computations we're being told to do to infer a timing channel from them. That's why I use the qualifying term "badly- designed", which in practice will probably be most uses of this technology.

<comment><USER12> So basically I tell you to do a bunch of stuff and give it back, and you have no idea if the computation is a partial application/full application etc. Neat. Next question: if my previous statement is correct it seems that it may push a lot of the work back onto the client, otherwise I don't get how a server couldn't figure out relationships from access patterns on blocks. This would limit the utility of the server right?

<comment><USER14> Yea, fully homomorphic querying of a database necessarily requires reading all of the data, or you could glean information from the access pattern.

<comment><USER3> You can get a lot of the benefit of a linear scan using a technique like oblivious RAM but I'm not convinced it's possible to build such a system without using a Secure Enclave. There are some papers that purport to implement this but once you're dancing in the realm of Secure Enclave's you're out on a different limb.

I don't think it's possible for a circuit to operate over a large set quickly and use a fully homomorphic pure software design.

<comment> Ar-Curunir With some minor interaction between client and server, you can use ORAM in conjunction with FHE to enable sub linear database scans. It's not practical for deployments, but is probably feasible for implementations

<comment><USER3> I'm not convinced you can do ORAM without a Secure Enclave. If you're already using an enclave, you don't need FHE.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> > Above, we can see charts indicating the additional compute power and memory > resources required to operate on FHE-encrypted machine-learning > models—roughly 40 to 50 times the compute and 10 to 20 times the RAM that > would be required to do the same work on unencrypted models

Are those multiplicative factors specific to machine learning tasks, or is it the same for general purpose computation?

In other words, is there something about the structure of machine learning tasks which makes them more suited for FHE than other computing tasks?

<comment><USER14> > In other words, is there something about the structure of machine learning > tasks which makes them more suited for FHE than other computing tasks?

Yes, FHE is not (currently) good at general-purpose computing. Complex conditional logic for example is a non-starter because every branch has to be evaluated. But tensor multiplication is well supported with existing FHE schemes, and many kinds of machine learning tasks consist of non-conditional tensor multiplications.

<comment><USER15> > Complex conditional logic for example is a non-starter because every branch > has to be evaluated

Is overcoming this limitation of FHE anywhere on the horizon?

<comment><USER14> No, it's pretty fundamental. If the executor were able to know which side of the branch to execute it would mean the executor knows the value of the conditional.

<comment><USER15> So [1] claims "A variant of fully homomorphic encryption scheme for Turing machines, where one can evaluate a Turing machine M on an encrypted input x in time that is dependent on the running time of M on input x as opposed to the worst-case runtime of M".

I admit understanding this paper is a bit beyond me. But, does their construction evaluate Turing machine conditionals by evaluating both branches? If it did, how could the running time be "dependent on the running time of M on input x as opposed to the worst-case runtime of M"? It seems to me that having to evaluate every branch irrespective of the input would result in the running-time always being M's worst case, not varying runtime depending on the input.

[1] [https://eprint.iacr.org/2013/229.pdf](https://eprint.iacr.org/2013/229.pdf)

<comment><USER14> I think this is a different approach to FHE that concedes to timing based side channels to get this speedup.

</comment></comment></comment></comment></comment></comment><comment><USER16> I found the comment at the bottom of the page from the "Ibmresearch" user helpful in understanding FHE.

To quote his TLDR:

> TLDR Huge polynomials are what are operated on instead of plaintext values > by hiding the real data in the polynomials with intentional noise to make it > infeasible to extract the real data without the decryption key that knows > how to remove it. All operators are bootstrapped from addition and > multiplication and elegant modulus trickery. Noise is managed at each > operation because the noise compounds with every logic operation you do. The > result of an operation chain or circuit be it one operation or infinitely > many, therefore, has some noise but can be decrypted by the person with the > encryption key. The decryption effectively drops all the noise and hones in > on the bits that matter. The person doing the computation is doing a lot of > adds and multiplies on big polynomials so they cant understand what you are > really trying to do.

</comment><comment><USER17> Is there a recent breakthrough in FHE? The last I checked its no where near practical.

</comment><comment><USER18> > With SEV enabled, an operator who has root privilege on a host system can't > inspect or meaningfully alter the contents of RAM in use by a virtual > machine running on that system.

Is that true? I would like to know more on what kind of garanties SEV gives / how it works high level, any resources you can recommend? I assume that at least when the VM is being launched, the sysadmin can mess up with the VM?

<comment><USER19> It is true if you assume SEV has no sidechannel vulnerabilities and that noone can uncap your CPU and read out the cryptographic material with an electron microscope.

Which both are probably untrue assumptions :-)

</comment></comment><comment><USER20> I think this is exciting stuff. We're actively building prototypes around FHE concepts. Basically asking the question: "Can we make meaningful care and hospitality predictions, without ever seeing sensitive data?"

We've banged out some stuff with HElib, and some other interesting implementations, but are just beginning.

And we're hiring for both backend and data science positions. :) email@example.com

<comment><USER21> But how much slower? At what cost?

</comment></comment><comment><USER22> The article claims that oblivious query, set intersection, and machine learning on private data are not possible without FHE. However, aren't they all possible either with secure MPC or hardware based enclaves e.g. AMD SEV?

<comment><USER23> I would argue that secure enclaves do not exist in practice. You have to assume a physical device where the private key cannot be extracted and the operation cannot be observed. The threat model is much weaker than for FHE, and imo not really useful for operating in large sets of private data.

MPC introduces a trust assumption. MPC is only private if some threshold of the multiple parties are honest and destroy their secrets. Though often this threshold is just one, efficient MPC often only has 3 participants total.

FHE gives you a better security model than either of these, as it neither relies on physics for safety nor needs to assume any level of honesty from the person running the computation.

<comment> Ar-Curunir In many MPC schemes you only need to trust yourself; as long as you keep your stuff private, nobody can learn the MPC secrets

</comment></comment></comment><comment><USER24> The extra computational power requirement is still pretty large... The math behind it doesn't seem to be anything new, there's a reason why these solutions aren't very commonplace yet

</comment><comment><USER25> Is anyone working on this for contact tracing? if encrypt( my_long_lat, PK ) - encrypt( your_long_lat, PK ) <= 5m; raise_alarm

</comment><comment><USER26> Reminder, FHE not being Turing complete isn't important. Every computer ever built has a finite memory and isn't technically Turing complete.

</comment><comment><USER27> [https://eprint.iacr.org/2019/1113](https://eprint.iacr.org/2019/1113)

</comment><comment><USER28> Just in time for the EARN IT Act. :P

<comment><USER29> Even if it worked, I wouldn't want the government scanning through data for whatever they decided was subversive or suspicious through undefined filters and unaccountable agencies.

</comment></comment><comment><USER30> If this works, see a huge impact on federated learning or training of NNs in general

</comment><comment><USER31> this still isn't making sense to me, is there a simple math example of how this is even possible if encrypt(1) = a, then how can encrypt(1) + 2 ever give me the correct answer?

<comment><USER32> You need encrypt(1) + encrypt(2). You would not be sent instructions to add 2. No information about what you are doing is sent, except the operations + and x.

As the comments in the article state, it's actually all done with operations on polynomials with encrypted coefficients. As + and x can be done on polynomials, it all works out.

The maths behind it is of course much more complicated.

As for a simple maths analogy, consider adding 1 + 2.

I'll encrypt your values by multiplying by 3 mod 7. So encrypt(1) = 3x1 mod 7 = 3 mod 7 and encrypt(2) = 3*2 mod 7 = 6 mod 7. Only the encrypted values are sent, along with the operations I want to perform on the values.

Now this scheme is homomorphic, as I can just add the encrypted values, encrypt(1) + encrypt(2) = 3 + 6 mod 7 = 2 mod 7. That is the only computation that would be done before sending back the result.

To decrypt it, I would have to divide by 2 mod 7 by 3, which gives me 3 (you can easily check that encrypt(3) = 2 mod 7). And indeed 1 + 2 = 3. So the decrypted answer is correct.

Of course this scheme is too easy to crack. The FHE scheme is not.

<comment><USER31> 3 mod 7 + 6 mod 7 = 9

i think you meant divide by 3 mod 7:

9 / 3 mod 7 = 3

<comment><USER32> Yes, I meant divide by 3 mod 7.

</comment></comment></comment></comment><comment><USER33> > roughly 40 to 50 times the compute and 10 to 20 times the RAM that would be > required to do the same work on unencrypted models

Too bad Moore's Law is dead, otherwise it would have been possible to run everything we run now in 10-12 years using Fully Homomorphic Encryption for the same cost!

<comment><USER5> To me the practical problem with FHE is that, if it costs 20 times doing the equivalent non-encrypted computations, it is cheaper to do it on your premises rather than rent 20x the same computational power from a cloud host, unless the cloud host is able to provide computational power at 1/20 of the cost it has for you (which seems too much to me).

</comment></comment><comment><USER34> IMO a more practical approach would be to use ordinary encryption inside a CPU, so it wouldn't be possible to extract any data without extremely advanced methods.

Rough description: CPU have secure memory which contains a private key. Also CPU have certificate with corresponding public key. That certificate is signed by Intel.

Hosting provider publishes an API which allows remote user to communicate with that secure CPU, basically just transmitting encrypted stream to and from CPU.

When you're starting your communication, you establish an encrypted link between your machine and target CPU, located in a data center. You can check authenticity of that CPU by checking certificate signature. Then you're sending any code you would like to execute (encrypted by session key). CPU executes that code. It encrypts RAM in process, so it's not possible to read its contents. And sends back some information (again, encrypted) which you're interested in.

So you have computing resources which are protected from anyone except very few who could extract private key from secure chip. I think that this kind of protection should be enough for many uses. And it would not compromise on performance. The only real world issue would be side channel attacks.

<comment><USER35> You're essentially describing AMD's SEV[1] as mentioned in the article. It piggybacks on the memory encryption implemented in the Zen architecture by giving a separate key for each VM. Ostensibly, the host can't interfere or snoop in the VMs, assuming you trust AMD. I'm surprised it hasn't been more widely adopted.

> protected from anyone except very few who could extract private key from > secure chip

The way I understand chip manufacturing it would be hard to diffuse a separate key into each chip. This means it'd only take one of those very few people to extract and leak the key (or cut out the middleman and leak it from inside AMD) to break it for everyone.

> The only real world issue would be side channel attacks.

This is probably a much bigger problem in practice. Spectre & related attacks have been effective against Intel SGX[2], another "trusted environment" inside a larger system.

[1]: [https://developer.amd.com/sev/](https://developer.amd.com/sev/) [2]: [https://arstechnica.com/gadgets/2018/08/intels-sgx-blown- wid...](https://arstechnica.com/gadgets/2018/08/intels-sgx-blown-wide-open-by- you-guessed-it-a-speculative-execution-attack/)</comment></comment>


Conversations with a six-year-old on functional programming - <AUTHOR> https://byorgey.wordpress.com/2018/05/06/conversations-with-a-six-year-old-on-functional-programming/ <comment><USER3> Brent is one of the greatest teachers I've ever experienced. I used to take classes from him (and TA some others he taught) and was consistently blown away by his enthusiasm and capacity for sharing concepts. He has a great essay on pedagogy as well ([https://byorgey.wordpress.com/2009/01/12/abstraction- intuiti...](https://byorgey.wordpress.com/2009/01/12/abstraction-intuition- and-the-monad-tutorial-fallacy/))

If you're interested in learning some of the beautiful foundations of functional programming, I highly recommend checking out the lecture notes and assignments from his Penn CIS 194 class ([http://www.cis.upenn.edu/~cis194/spring13/lectures.html](http://www.cis.upenn.edu/~cis194/spring13/lectures.html))

<comment><USER4> I'll second this; he is a fantastic teacher. I had the incredibly fortunate opportunity of learning from Brent in my undergrad at Hendrix, where he currently teaches.

There are other comments here that praise his patience with regard to teaching these topics to a child. I can say without a doubt he maintains the same patience with all of his students - not just his children. If you ever have the opportunity to learn from Brent (be from a course, blog, or talk), I would highly encourage it.

I'm glad to see a post of his making its rounds on HN.

<comment><USER5> You did CS at Hendrix College? I did too ('11) and can't help mentioning it even though I have little to say... because hey, small school, tiny department, it's not often you run into another Hendrix CS alum, even virtually. And after years in "industry" I really appreciate the surprisingly good CS education there for a not well known school

How's the dept doing these days? Is Ferrer still there?

<comment><USER6> Hi Domingo, This is Dr. Ferrer. I am pleased to tell you that I am still at Hendrix College, now completing my 16th year. We're doing well. We hired Dr. Mark Goodrich after Collins retired (2014), and we hired Dr. Brent Yorgey (the author of this blog post) in 2015 after Burch departed for Google. Both have been fantastic contributors to the CS program and to Hendrix College.

I'm glad that your education has served you well! I'd love to hear an update from you when you get a chance.

<comment><USER7> I love HN for all these random connections, even if I have no skin in the game!

<comment><USER8> Me too. I feel like the world is not as big as it actually is!

<comment><USER9> It's not surprising, it's actually a birthday paradox kind of thing.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> What is truly astounding about this is the patience to even attempt to explain free theorems to a 6 year old. Most parents would likely answer "math" and that would be the end of it. I don't (yet) have kids, but when I do I hope I have the wherewithal to recognize and take advantage of moments like these.

<comment><USER11> Note kid asked "dad what are you doing", not "what is functional programming". That's a simple call for attention, and it was equally suitable to close the book and play frisbee with him.

<comment><USER12> No. Children like to copy their parents, and want to learn about what they do. If a six year old wanted to play frisbee, he probably would have asked to play frisbee. At the very least he would've made his boredom clear pretty quickly. Yes, he wanted attention from his dad, but best of all was being able to learn about dad's grown up stuff by doing something they both enjoyed.

</comment></comment></comment><comment><USER13> >\lambda x.\, 6 was also surprisingly difficult for him to guess (though he did get it right eventually). I think he was just stuck on the idea of the function doing something arithmetical to the input, and was having trouble coming up with some sort of arithmetic procedure which would result in 6 no matter what you put in! It simply hadn't occurred to him that the machine might not care about the input. (Interestingly, many students in my functional programming class this semester were also confused by constant functions when we were learning about the lambda calculus; they really wanted to substitute the input somewhere and were upset/confused by the fact that the bound variable did not occur in the body at all!)

Just goes to show, our intuition works on linear types.

<comment><USER14> I'm curious what you mean. Is the problem that it is a constant function, or that you are asking them to ignore parameters? Or is that missing the point, still?

<comment><USER15> A function with a linear type uses it's parameters exactly once. The concept of "linear type" doesn't relate to a the concept of "linear function" except in an abstract mathematical way.

<comment><USER16> Well, a linear function is a function where you can only use the parameter once when expressed in its Taylor expansion. E.g. these are not linear: x^2=x*x (used twice), exp(x)=1+x+... (used infinite times). It's a very symbolic way of thinking about it though, and not what you usually consider an important property of linearity.

<comment><USER17> Not all linear functions possess a Taylor expansion, as not all linear functions are continuous, example: [https://en.wikipedia.org/wiki/Discontinuous_linear_map](https://en.wikipedia.org/wiki/Discontinuous_linear_map)

But, your statement is true for all _real-valued_ linear functions AFAIK.

<comment><USER18> You still need to worry about the domain, in general there are plenty of real valued discontinuous linear functions (or functionals) from an infinite dimensional Banach space to R.

In finite dimension however linear functions are continuous

</comment></comment></comment></comment></comment></comment><comment><USER19> Fun(ctional)!

When my daughter was in 4th grade, I volunteer-taught a group of pull-out 4th–6th graders, so that she could have some peers to do math with.

You might enjoy this set of math worksheets I created for them. [https://www.scribd.com/document/15720543/Squarrows](https://www.scribd.com/document/15720543/Squarrows) [EDIT: now also at [https://drive.google.com/open?id=1hfzm3Rvm4xpwp_xHUKBHxuIEgf...](https://drive.google.com/open?id=1hfzm3Rvm4xpwp_xHUKBHxuIEgfecZkiI)]

I was learning category theory at the time. I gave them some element-chasing problems so they could work on the same areas I was studying, although at a different level of abstraction.

We also did some stuff on permutahedrons, and relating single-character- replacement paths (I think Nabokov calls these "rooks path", when each step is a word) from AAA → BBB, to geometric cubes, and 2³, etc., but I didn't collect the worksheets for those into the same document.

<comment><USER20> Is there a non-scribd (Google Drive) way to download the PDF?

<comment><USER19> I put it at [https://drive.google.com/open?id=1hfzm3Rvm4xpwp_xHUKBHxuIEgf...](https://drive.google.com/open?id=1hfzm3Rvm4xpwp_xHUKBHxuIEgfecZkiI). Please let me know if that fails, and I'll try to fix it.

<comment><USER20> Thank you!

</comment></comment></comment></comment><comment><USER21> When my son was around five or six, I did a similar exercise to explain the difference between prime and composite numbers.

I told him that a number X is composite if you can fit X apples into buckets and end up with the same number of apples in each bucket.

I drew 6 apples and asked whether they could be divided into buckets with an equal number of apples in each. It was immediately obvious that they could. My son circled one group of three apples, then another group of three apples.

Then I drew 7 apples. He realized that you couldn't divide 7 apples into baskets and have each basket contain the same number of apples.

Voila! A prime number.

Then we started talking about the frequency with which prime numbers occur on the number line, how important they are to fields such as cryptography, and the existence of dense Bragg peaks among primes in judiciously chosen intervals. By the end of the conversation, he had discovered a new recursive prime generator and submitted a paper on it to arXiv. Who knew?!?

<comment><USER22> > _I told him that a number X is composite if you can fit X apples into > buckets and end up with the same number of apples in each bucket._

Wrong; X is composite if you can fit X apples into buckets and end up with the same number of apples in each bucket, _with at least two apples in each bucket_.

 _" You gotta tell the children the truth. They don't need a whole lot of lies. Cause one of these days, baby, they'll be running things."_ \- Jimi Hendrix, "Straight Ahead"

<comment><USER23> This is something I saw over and over again long before I had a serious interest in technology or science at all. It's an attitude that's rampant in liberal arts courses.

There are "kiddie" versions of everything from History to to Music Theory to Grammar. It used to really frustrate me in undergrad how many things taught as almost moral absolutes were upended the following semester.

I sort of get it that even in junior high and high school, the teachers don't really know anything beyond the kiddie version, so that's what gets taught.

But at the college level, there's no excuse for that. There's a certain amount of science envy that some liberal arts professors have. They want to be able to say that there is one and only one way to understand a historical event or way to compose music.

Milton Babbit was famous for this in the music composition world and argued that music needed to be "elevated to a higher form like that of math or physics" and that no one expects advanced math to be accessible to lay persons. Therefore music shouldn't be comprehensible by anyone who doesn't have a PhD in music theory or composition. This was actually a pretty popular attitude in the "classical" music world from the 1950s to the early 80s, and the music written during that time reflects it.

Sorry to get so far off on a tangent, but while that specific fad has come and gone in music composition, there remains an inferiority complex among liberal arts academia that is extremely problematic and a general attitude among professors of all stripes that some people just can't handle the truth: that outside of religion, there are no absolute truths.

Getting back to the Hendrix quote, I absolutely agree. Teach children as much of the truth as you know. They can take it. In my own experience teaching violin, I've found that I get the best response when I treat the students the most like adults. About 20 years ago I started bringing in little vignettes about music theory and history with my youngest students (4-6 years old) as a break between lesson segments where we were focusing very intensely on specific violin techniques. When I realized that they enjoyed both the context switch and the color commentary about why exactly we do these kinds of things, I brought more and more of that to the table, and it's been very successful.

Obviously, this isn't a robust study, it's not meaningful in a larger scale, and it doesn't prove anything at all.

But if the theory is that young students can handle a lot of uncertainty and a lot of advanced material at a young age, then my experience is, at least, not evidence that it's false.

Deep down inside, I think that we need to be a lot less careful, protective, and hand-holdy about what we expose our children to. They can handle it.

<comment><USER24> I agree with a caveat, Sometimes I see people take this sort of complexity (there are limits to what we know, science is fallible, there are different interpretations of pretty much everything) and run with it (YouTube conspiracy theories constitute "doing your own research", experts are no better than amateurs and therefore there's no reason to study anything hard). It's kind of a fine balance between going independent too little and too much.

<comment><USER23> I agree this can be a problem. I think the best vaccine against people going too far that direction though is honesty and a deeply understood sense of how we know what we think we know and how we can separate crazy-talk from legitimate possibilities. I guess, what I mean is that it's never to early to talk about epistemology, the scientific method, falsifiability, and the things that guide us down that sometimes narrow path.

</comment></comment></comment></comment></comment><comment><USER25> This game can be played in a group, too: [https://en.wikipedia.org/wiki/Zendo_(game)](https://en.wikipedia.org/wiki/Zendo_\(game\))

> once the guesser thinks they know what the function does, the players switch > roles and the person who came up with function specifies some inputs in > order to test whether the guesser is able to produce the correct outputs.

In Zendo when the guesser offers the wrong rule, the 'master' must tell them an (input,output) pair where the guess disagrees with the rule the master had in mind. Then play continues.

<comment><USER26> Come to think of it, I find Zendo much harder than the game described in the article. I think it's because the inputs (arrangements of shapes) are more complex than numbers, and the outputs (Booleans) give you less information than numbers.

<comment><USER25> I've actually never gotten to play real Zendo, but you can make up your own class of koans, like Lisp programs or regexes. Maybe the real-worldness of arrangements of pyramids does give them more of a Zen feel?

</comment></comment></comment><comment><USER27> This is fantastic. Reminds me of Hofstadter's conversations between Achilles and a Tortoise.

The trouble with most math I've encountered isn't the concepts, it's the quality of the abstractions we use to represent and interpret them.

The best(worst) example I can think of is the Alice/Bob description of cryptographic protocols, where somebody's idea of teaching is, "let's take these symbolic representations and instead of just shouting them at you slowly, I will obfuscate them with a set of conceptually unrelated words and repeat the representation word for word in a more patronizing way."

Great piece of writing.

<comment><USER28> I disagree with your example being a bad and reason is right there in your comment: the word "protocol". From wikipedia we find that a "communication protocol is a system of rules that allow _two or more entities_ of a communications system to transmit information...", where I have underscored the essential phrase and cryptographic protocols are just a subset of communication protocols.

The reason that Alice and Bob are introduced is because they are different entities and each has different powers, restrictions and goals. If you want to do a correctness or security analysis of a protocol, introducing and defining these parties is hugely important and useful. Otherwise, its very easy to make mistakes about where information is in the system and how it is being manipulated. More generally, there is a philosophical approach called operationalism [1] that demands that all science theories be couched in terms of protocols so we don't make mistakes about what they say.

[1] [https://plato.stanford.edu/entries/operationalism/](https://plato.stanford.edu/entries/operationalism/)

<comment><USER29> What about a definition of protocol that allows sending messages to yourself for recursion.

<comment><USER30> What about it? Why should it be treated differently?

<comment><USER29> It doesn't require an extra party to do useful things across a protocol, where the discussion implies it does.

</comment></comment></comment></comment></comment><comment><USER31> And it works with procedural programming also! I've been teaching programming in schools since I was in school myself - teaching the kids who know more than their teachers, as well as the kids that teachers don't think are ready to code.

Procedural thinking is something that anybody who knows socks come before shoes can do. Conditionals can be understood by anybody who wears different clothes on a weekend than on a schoolday. Loops can be understood by anybody who can eat a bowl of soup by drinking a single spoonful and then doing that again and again until the soup is gone.

Kids can definitely engage in computational thinking from a young age. We just need to offer them the opportunities to do so.

</comment><comment><USER32> I had a somewhat similar encounter with a 4 year old (!), who blew me away with his ability to solve arithmetic puzzles:

[http://heinrichhartmann.com/blog/2016/06/12/Box-Counting- Ari...](http://heinrichhartmann.com/blog/2016/06/12/Box-Counting- Arithmetic.html)

It's a great joy to work with such gifted young minds.

<comment><USER33> Such precociousness is often[1] an indicator of abnormalities and handicapped general intelligence. For example, if our son independently began to read too early the initial reaction of my spouse, a Speech-Language Pathologist, would be to freak out rather than to be filled with pride.

Perhaps you know this and used "gifted" in its more euphemistic sense. In any event, I mention this not to correct you but to address the parental anxiety engendered by examples such as you gave.

[1] Depending on the activity and age of onset, they can be so strongly correlated that attentive educational professionals would recommend diagnostic tests to identify any condition (often some category of autism) and permit early intervention to minimize the negative developmental aspects.

<comment><USER20> The comment above is condescending and misleading.

Being precocious doesn't mean autism, and no professional SLP would "freak out" at an early reader.

Being smart is an "abnormality", and autism is not "handicapped general intelligence".

Warning signs for autism include obsession with letters and numbers _without understanding meaning_ , not being able to reason about math and discuss mathematical topics.

<comment><USER34> It isn't misleading or condescending. In fact as a parent of an autist I find your comment to be the condescending one. The person you're responding to didn't say autism was the same as handicapped general intelligence, but that extreme precociousness is often correlated with atypical development in other contexts.

<comment><USER33> FWIW, to be honest I had autism spectrum disorders in mind, though I certainly don't equate autism with handicapped general intelligence. I intentionally avoided using the term autism (even though some of the best examples I had in mind come from studies on autism spectrum disorders) as it's such a very broad label with different etiologies and different constellations of traits. An autistic child with fragile X syndrome is likely to have many objectively identifiable and severe disabilities, whereas some other child with autism might have few or no disabilities, especially in a more diverse and accommodating society that isn't organized to punish people who don't easily fit into a mold. I wanted to point out that some seemingly desirable trait can actual reflect other, categorically undesirable traits. Such value judgments are especially tricky when label like autism are thrown into the mix, and in any event I wasn't keen to attempt to identify anything in particular as negative.

Back to my original point: there are many more ways for things to go wrong than for things to go right. Similarly, abnormal faculties often coincide with abnormal deficiencies--were it otherwise genetic evolution dictates it wouldn't be abnormal. That basic calculus means that when abnormalities emerge, all things being equal and long before we can know anything about how things will play out individually, it's not rational to be envious or given to feelings of inadequacy, which is precisely what we're doing, intentionally or unintentionally, when we're drawn to stories about precocious behavior.

It was eye opening to come to learn how my spouse as well as other people I've spoken with who have studied various aspects of child development have a very different perspective on abnormal and out-of-order milestone development. At the same time, these are the people least likely to construe debilitating abnormalities in the same negative light as wider society. But they understand 1) the cold, hard calculus and 2) that any abnormality, whether widely construed as positive or negative in society, comes with a real, _additional_ cost in time and attention, particularly for attentive parents who wish to ease their child's transition to independence given the harsh realities of the world. Simply recognizing and internalizing differences so as to avoid confusion later on in life is a real burden on everybody involved.

</comment></comment></comment></comment></comment><comment><USER35> I've failed as a parent. My oldest is 9 already, and we still haven't discussed functional programming.

Well, maybe the 3 year old still has a chance.

<comment><AUTHOR> Mines 1 1/2...Better have "The Talk about FP" soon.

</comment></comment><comment><USER36> > "A function is like a machine where you put something in one end and > something comes out the other end. For example, maybe you put a number in, > and the number that is one bigger comes out. So if you put in three, four > comes out, or if you put in six, seven comes out."

Examples are such a useful tool to explain complex subjects and make them approachable.

<comment><USER37> This is my biggest complaint with manpages, historically. Many of them don't have examples and only describe the command switches in a list.

<comment><USER20> EXAMPLES is one of the primary categories of man pages. Your broader problem is that "The full documentation for * is maintained as a Texinfo manual", and most people never learned how to access and navigate those.

[https://www.google.com/search?q=%22The+full+documentation+fo...](https://www.google.com/search?q=%22The+full+documentation+for+*+is+maintained+as+a+Texinfo+manual%22)

</comment></comment></comment><comment><USER38> Teaching CS by simple analogs is the most intuitive way for people to grasp it. I wrote lectures for a 8 week 3hrs a week CS50 level course and completely nontechnical people loved every analog. Example: Front end vs backend vs middleware development is like a Macys window display. The figures and placement are Html, colors are CSS, backend database is the store warehouse and the employees are RoR, PHP, Go or another middleware that connects the pieces. Just like any warehouse - you want most frequently accessed items in the front - so you need to design your database for quick and efficient access to the information you will need to show users most frequently.

Since then I've been thinking of a wikihow- or w3schools- like site that explains a CS50 level class online and can expand to reach Python, or Go or another language in depth. A second parameter to teaching is the pace - <USER2> speed of lecture and the steepness of the learning curve. Maybe we could structure a slow or fast paced versions of each module and the viewer can pick or customize a track for themselves. Is anyone interested in joining or contributing to such an effort?

</comment><comment><USER39> Jesus that shows you how uneven of a baggage children have when they start going to class.. this little dude has a computer science prof as his father, & is doing abstract logic problems at 6 yo, for fun no less!!

my cabinet maker father can't spell a sentence without making four different mistakes in his native language, and my social worker mother literally grimaces with pain anytime something resembling math is distantly mentioned

</comment><comment> d--b I am surprised. Growing up in the 80s in France, this was a classic exercise for 7/8 year olds. I remember doing it a million times in school. They presented the problem as 2 columns with numbers on the left and on the right, and a box at the top, which we also called the "machine". It had a little arrow as well to show which way the numbers would go through the machine. The exercise was either "find what the machine does" or "guess the input" or "guess the output", sometimes combined together.

</comment><comment><USER40> This reminds me of when I explained inverse functions to my kids. I was about to teach them to my grade 10 students and I wanted to use the Dr. Seuss book, The Sneetches to give an example. I asked my kids if I could borrow their copy. When they asked me what for, I told them and they ended up asking what inverse functions were. I similarly played a game where I told them what a certain function machine did and they had to come up with a machine that undid what my machine did.

</comment><comment><USER41> [http://worrydream.com/AlligatorEggs/](http://worrydream.com/AlligatorEggs/)

</comment><comment><USER42> This is so awesome. I'm consistently amazed at how much kids can understand intuitively, even when they can't express their understanding in precise language. For example, my partner teaches lower elementary at a Montessori school. Not everyone understands it, but she's managed to teach some basic algebra, including to several of her first-graders.

</comment><comment><USER43> This sounds a lot like the card game "New Eleusis": [http://www.logicmazes.com/games/eleusis/index.html](http://www.logicmazes.com/games/eleusis/index.html) [http://matuszek.org/eleusis2.html](http://matuszek.org/eleusis2.html) [http://matuszek.org/eleusis0.html](http://matuszek.org/eleusis0.html)

It's meant to "simulate scientific research", sorta: one player ("God" or "Nature") comes up with a secret rule for what cards are legal to play in a given situation, and then the other players take turns playing cards to figure it out. It's a lot harder than you think, even with quite simple rules. (The scoring system is meant to reward a "God" player for coming up with a rule that's not obvious but still guessable.)

</comment><comment><USER44> I hope my kids want to learn and are curious about how things work like the OP's kid!

I dont want to be one of those parents that pushes their kid to the point that they dont enjoy learning or suffer socially.

Asking for a future me: how do you give your kid the best chance / environment to develop socially, but still enjoy learning & embracing the nerdier things?

<comment><USER45> I sent mine to a Steiner / Waldorf school on the hope that this is more of a social / confidence building environment. Then I surrepticiously feed her inner geek at every opportunity I can find. My personal current favourite is Wild Kratts [0] which teaches a amazing number of things.

Also we send my daughter to a violin school where they teach the suzuki method which has a fairly nerdy type of group of parents that go there.

So it means she's in a school that accepts most types of people whilst exposing her to nerdy things outside of school.

Curiously I found that a lot of the parents who send their kids to a Steiner / Waldorf school tend to be nerdier. The best example was a couple where the mother was had a Philosophy degree with a Physics PhD and the father travelled around the world as a street puppeteer.

[0]: [https://en.wikipedia.org/wiki/Wild_Kratts](https://en.wikipedia.org/wiki/Wild_Kratts)

<comment><USER46> this is super expensive. How much do you need to earn to send your kids to schools like this.

<comment><USER45> In Belgium the Steiner school is free

</comment></comment></comment></comment><comment><USER47> I love to hear about conversations with people who aren't exposed to these kinds of concepts. I think it's interesting to hear a more simple opinion. Sometimes I talk to my wife about ideas I've been thinking about and she can give some helpful feedback despite not having experience with any of the underling concepts.

</comment><comment><USER48> Side question: maintenece of functional programs is easier, because you don't need to think about state.

Could it be used to create a functional programming language, easily understood by non-programmers or beginners , so they too could take a program and adapt it to their needs ? Does such language exist ?

<comment><USER49> Maybe Pyret?

[https://www.pyret.org/](https://www.pyret.org/)

<comment><USER50> One of the folks behind that is also involved in this:

[http://www.bootstrapworld.org](http://www.bootstrapworld.org)

They're claiming to get good results teaching young people a number of important topics, including coding. They're also either using Pyret or planning to use it.

</comment></comment></comment><comment><USER51> Functional programming? What he's describing is machine learning! :)

<comment><USER9> Actually, for a rather unconventional understanding of the term "machne learning", which is basically anything that makes living and working with machines easier, you don't necessarily need to make the machine's functionality more versatile. It might be enough to boost its user's understanding. With more effect, too, because an informed user by far beats any RNN-based AI.

What I'm actually trying to say is that brains are simply better at learning to grok machines than machines are at figuring out how to brain.

</comment></comment><comment><USER52> I've grokked programming only after being exposed to Lisp. Before Lisp, learning how to programme seemed like a never ending exercise. After, I realised I already know everything I need to know - data in, data out…

<comment> cup-of-tea Yes. There is an old piece of sage advice: learning Lisp will make you a better programmer, whether you actually end up using it or not. Any paradigm you can think of is really just something you could do in Lisp...

</comment></comment><comment><USER53> > (and to be fair, free theorems are only interesting when polymorphism is > involved which I definitely didn't want to go into).

"there's a thing called polymorphism, and it means 'of many forms', what it means is that if you put the thing in, you're guaranteed to get a specific type of thing out, but it might be different depending on what you put in. So you put words into the machine, and letters come out, but if you put lists of numbers in, numbers come out."

</comment><comment><USER54> I remember exercise sheets at school (in the UK) like this - I think called 'number machines'.

I _hated_ it; felt patronised by the illustrations of these machines, so I rebelled by trying to come up with a different correct solution - aware that there were infinitely many answers given just a few example domain/range pairs.

But if anyone's interested in them for a car journey or some time you can't play this game aloud, there ought to be examples available online aimed at teachers.

<comment><USER20> What's to hate? You solved the problems correctly and creatively. Any given reasonable limits on complexity of solutions (simpler -> better, Occam's razor), there are only a few solutions to any given problem.

<comment><USER54> I was just being facetious. It was too easy to identify that numbers are being doubled, so I'd contrive something else instead, that happens to be equivalent for the few examples given.

</comment></comment></comment><comment><USER55> I always liked to imagine a scenario where my daughter would invite me to her class to talk about what I did, and I would try to explain the concept of programming to young children. I would pretend to be a robot, and they would have to command me to do things, but I would only do them exactly as they described them.

I had a similar experience when I was in school and it really stuck with me. Kids love this shit, they just need it in a way that lights up their minds a bit.

</comment><comment><USER56> The difficulty in conceiving of a constant functions seems similar to the difficulty in recognizing that

> if 4 is prime then all numbers are prime

Is a true theorem (and things along these lines)

<comment><USER57> >> if 4 is prime then all numbers are prime

>Is a true theorem (and things along these lines)

Saying "4 is prime" "primes are non-composite, ..." reduces to error; at least one of these premises is false.

?

</comment></comment><comment><USER58> > It's called the function machine game. I will think of a function machine. > You tell me things to put into the function machine, and I will tell you > what comes out. Then you have to guess what the function machine does.

Cool, this sounds like a general form of the picnic game[0].

An input to the "picnic" function is a food (or other object), and the output is whether or not it can be brought to the picnic. The picnic game's hidden function that needs to be uncovered is a predicate function. E.g. if the hidden function is "Things that start with the letter A", then "apples", "anchovies", and "albatrosses" could be brought to the picnic, but not "bananas", "cameras", nor "dessert". In that example, the function would look like:

      lambda x: x.firstLetter() == 'a'

[0] [https://www.thegamegal.com/2011/06/11/going-on-a- picnic/](https://www.thegamegal.com/2011/06/11/going-on-a-picnic/)

<comment><USER59> my favorite snack is "" ! (pronounced " ")

</comment></comment><comment><USER60> I wish someone would explain all of Category Theory like this to _me_.

<comment><USER49> You might enjoy [https://graphicallinearalgebra.net/](https://graphicallinearalgebra.net/). The author uses Legos to describe algebras and diagrams to describe symmetric monoidal categories.

<comment><USER61> Thanks for this!

</comment></comment></comment><comment><USER62> What a great and heartwarming story! It really puts a great example to the old rule of thumb that 'you can be sure you understand the concept once you successfully explain it to a five-year old'.

</comment><comment> your-nanny Cool game; used to do something like that with kids, but more in context of sequence patterns. still, the game is limited to functions that are specified intensionally. Extensionally specified functions with no readily identifiable intension (like a function whose pairs are the result of a random pairing) are not really guessable. Oh well those are boring anyway...

</comment><comment><USER63> I enjoyed reading this story :) Nice buildup to the gate of complex problems.

I remember that at elementary school we turned on a bunch of C16-s at the same time and we tested random number generators and some showed the same value, cool demo of determinism

instead of xλ6 I would have chosen xλ3.14159265359 it might lead to different questions, but who knows, just deeper rabbit holes :)

</comment><comment><USER45> > Or maybe there is a function machine where you put other function machines > in and get function machines out!

Made me think of higher order functions as self-replicating machines [0].

[0]: [https://en.wikipedia.org/wiki/Self- replicating_machine](https://en.wikipedia.org/wiki/Self-replicating_machine)

</comment><comment><USER64> If this anecdote is credible (and I don't see any reason it wouldn't be) then in four years this kid will ask, "What are you reading?" and then the father will say what he's reading - and then sheepishly as for help from the ten year-old on the part he's stuck on.

I mean this kid is clearly superlatively gifted.

<comment><USER20> The parent is also superlatively gifted.

[http://ozark.hendrix.edu/~yorgey/](http://ozark.hendrix.edu/~yorgey/)

</comment></comment><comment><USER65> When I was working as a math tutor I would sometimes have to explain composition to a student for an introductory algebra class. When it finally clicked to them that you could pass functions into other functions many other concepts seemed to come to them more easily. Those were some of my favorite moments at that job.

</comment><comment><USER66> Poor kid...I imagine how his classmates would react if he offers them to play machine function game

</comment><comment><USER67> I loved reading this. When I was that age, I used to ask so many questions to my father and I was lucky that he was always happy to not just answer, but explain everything. If he didn't do that, I may not have followed the path to where I am today.

</comment><comment><USER68> If you like this article I would definitely recommend this one too: [https://hackernoon.com/how-my-10-year-old-learned- javascript](https://hackernoon.com/how-my-10-year-old-learned-javascript)

</comment><comment><USER69> For beginner who wanna learn Haskell and Purescript, I recommend those resources:

[https://github.com/allenleein/brains/projects/9](https://github.com/allenleein/brains/projects/9)

</comment><comment><USER70> beautiful read, thank you. Does anyone collect these educational inspirational stories?

<comment><USER71> > Does anyone collect these educational inspirational stories?

That might be really useful. Maybe one barrier to improved education, is people having difficulty visualizing it?

Last summer, I tried to explore teaching atoms in early primary, with a focus on nucleons and nuclei.[1] One big surprise to me in discussions, was a pattern of non-linear response to my saying "teach nucleons to kids".

One physics postdoc, one with a professional focus on introductory physics education, replied basically "Absurd! How could you teach muons to kids!" It turned out that for them, "teach nucleons and nuclei" meant understanding muons. "Teach ... to kids", wasn't enough to change that image. So they tried to imagine teaching muons to kids, and exploded.

Another physics postdoc tried to picture kids chalking quantum math on some graduate seminar blackboard. And was "WTF?" baffled.

A primary-school teacher heard "teach atoms", and tried to picture early- primary students memorizing and regurgitating 4th-grade paragraphs of definitions. Because for them, that's what "teach atoms" meant.

And more. These weren't outliers.

I ended up using an analogy. That it was like proposing to teach kindergarteners about traffic lights. And having highway engineers declaring "Absurd! There's no way kids could understand those standards documents! And they're expensive! And the Chinese ones are in Chinese! You're think you can teach technical Chinese transportation standards documents in kindergarten!?!"

"Red means stop; green means go." "Atoms are sticky little balls that jiggle."

I'd expected that crafting accessible _leverageable_ descriptions would be hard. And that how well one could achieve transferable understanding, at various ages, would be an open question.

But I didn't expect that people would initially be so dramatically unable to _picture the possibility_ of teaching some topics.

People were fine after a "kindergarten traffic lights ... green means go... not network theory" story to set context. But I wonder...

Might there be a badly underappreciated need for stories like OP? To provide "Oh wow... I wouldn't have imagined one could teach that... Now I can picture it..."

That's an idea for helping to disrupt education that I've not seen before.

[1] a crufty slow-loading page, intended merely to set up in-person discussions, but I've nothing better: [http://www.clarifyscience.info/part/Atoms](http://www.clarifyscience.info/part/Atoms)

</comment></comment><comment><USER72> I enjoyed it.

I spend a lot of time listening to people ramble in meetings or troubleshooting, where I _wish_ they understood the subject matter enough to explain it as if talking to a six year old.

</comment><comment><USER73> I'm taking a discrete math class right now.

How is this read: \lambda x.\, x - 3 and what is a simple example?

In a discrete math perhaps it is the same as "All x, x is an integer such that...."?

<comment><USER74> The '\lambda x' is just another way of saying "f(x)"

So '\lambda x., x-3' \--> 'f(x): x-3'

Also, I really enjoyed my discrete math courses! The proofs were.. tedious.. but the amount and breadth of 'stuff' covered was excellent.

<comment><USER73> It is a difficult course! We are doing graph theory right now.

</comment></comment></comment><comment><USER75> This is the best thing I've read in really long time.

</comment><comment><USER76> "If you can't explain it simply, you don't understand it well enough." \- Albert Einstein

Brent definitely understands it well enough.

<comment><USER77> Einstein never said that, though: [https://skeptics.stackexchange.com/questions/8742/did- einste...](https://skeptics.stackexchange.com/questions/8742/did-einstein-say- if-you-cant-explain-it-simply-you-dont-understand-it-well-en).

<comment><USER76> Good find! Looks like he said something similar, but never those exact words.

</comment></comment></comment><comment><USER78> Functional parenting.

Cool!

</comment><comment><USER79> Ad redirect on mobile, beware subway commuters

</comment><comment><USER80> great stuff. what is consciously learnt and discovered by one generation can be intuitive to the next, precisely because of teaching.

also, i love the idea of experimenting on your own children and then writing blog posts about it :)

</comment><comment><USER81> Obligatory "Mindstorms" recommendation: [https://www.amazon.com/Mindstorms- Children-Computers-Powerfu...](https://www.amazon.com/Mindstorms-Children- Computers-Powerful- Ideas/dp/0465046746/ref=sr_1_4?ie=UTF8&qid=1525736070&sr=8-4&keywords=mindstorms)

</comment><comment><AUTHOR> Mines 1 1/2...Better have "The Talk about FP" soon. ;)

</comment><comment><USER82> And _that_ is how a programmer is born.

</comment><comment><USER83> This is really just a conversation about functions...

</comment><comment><USER84> omg is that kid gonna be a hacker.

</comment><comment><USER85> This brings me back to ~20 years ago when my dad was explaining me Bresenham's circle drawing algorithm. I was 8 at the time I think.

</comment><comment><USER86> Functions? Algebra? How is comprehending _any_ of that, possible without the sort of abstract/counterfactual thinking that develops around age 12?

<comment><USER87> ...who told you that lie? An educational psychologist?

More like "at age 12 even the most incompetent teacher can teach things involving abstract/counterfactual thinking to even the least intelligent child"... the bad ol' _" lowest common denominator thinking"_ and the other horrors of our standardized educational systems :| Unfortunately it's not economically feasible to lecture to children in a classroom unless you calibrate on the lowest common denominator.

Also, it's the huuuge difference between "understanding" and "being able to communicate efficiently in words". People can "grok" very advanced stuff even if they don't fully command the language for expressing it. Unfortunately most incompetent teachers are totally incapable of "trying to explain something beyond the level of the language" but the human brain's pattern matching engines are not always tied to language...

<comment><USER86> > ...who told you that lie? An educational psychologist?

[https://en.wikipedia.org/wiki/Piaget%27s_theory_of_cognitive...](https://en.wikipedia.org/wiki/Piaget%27s_theory_of_cognitive_development#Formal_operational_stage)

Fine, I was off by one year.

<comment><USER88> Still a lie. And you still believe in it even after seeing an example in contrary.

<comment><USER86> It takes far more than one anecdote to outweigh the evidence in support of Piaget's model.

</comment></comment></comment></comment></comment><comment><USER89> Hii

</comment><comment><USER90> The link to the article is not working for me right now, so I cannot see how they define functional programming. In my years of programming I have seen the concept of functional programming defined in one of two ways: in context to call/response or in context to containment/scope.

The call/response perspective emphasizes that functions are instantiated against a reference that can be called and that such a call returns a value. The containment/scope perspective emphasizes that functions are a bag of instructions containing a child scope and thus a lexical structure if nested. While both descriptions are valid they produce wildly different explanations and code examples that are often completely unrelated.</comment>


Drizzle team leaves Sun, Joins Rackspace - <AUTHOR> http://oddments.org/?p=282

<comment><USER2> Oracle is losing the most valuable assets at Sun - the brains. What a clusterfuck.

<comment><USER3> They still have an AMAZINGLY good sales team. As for Drizzle, if it didn't have a multi-hundred-thousand dollar price tag, I'm guessing Oracle isn't too beaten up about it honestly.

<comment><USER4> Eventually they won't have anything left from Sun to sell...

</comment></comment></comment><comment><USER5> Good news. Basically, it means Drizzle won't die from lack of internal support from Oracle.

</comment><comment><USER6> One has to wonder how this fits in with FathomDB who recently partnered with Rackspace on the heels of Amazon RDS. Could be collaborative or a replacement. Thoughts?

<comment><USER7> If they want to offer Drizzle to customers, they probably need something like FathomDB. Considering that they're already collaborating, I could see them acquiring FathomDB sometime soon.

</comment></comment><comment><USER8> This is wonderful news!

</comment><comment><USER9> I suspect we'll see more of this in the next month or so.

</comment><comment><USER10> good stuff</comment>


Will Meteor kill Rails? Don't know, but Passenger open sources Meteor support - <AUTHOR> http://blog.phusion.nl/2013/11/01/will-meteor-kill-rails-i-dont-know-but-phusion-passenger-open-sources-meteor-support/

<comment><USER2> The first 7 words of this post's title are worthless. Why do people feel compelled to use marketingspeak? Now the discussion here [I'm guilty of this too, now] is about those words instead of the content of the article -- which is actually a decent read. Meteor is interesting and has a ton of potential, and Phusion Passenger support is a great step forward in its production readiness and future adoption rate. I would love it if we could just focus on that.

<comment><USER3> The title is a direct reference to an article from the front-page of HN yesterday titled "Why Meteor will kill Ruby on Rails"

article: [http://differential.io/blog/meteor-killin- rails](http://differential.io/blog/meteor-killin-rails)

HN discussion: [https://news.ycombinator.com/item?id=6642893](https://news.ycombinator.com/item?id=6642893)

<comment><USER2> Aha. Thank you for the context.

</comment></comment></comment><comment><USER4> Meteor is not going to kill Rails. I don't know why I've seen such an amount of news about this in the past week. You are making Meteor look like it's going to solve world hunger, and it's nothing more than another tool that is going to be incredibly helpful for certain things, and not so helpful for some others.

<comment><AUTHOR> That's actually exactly what the article says. It says that each framework has its own strengths and weaknesses.

<comment><USER4> I was not refering to what the article said. Maybe I should have posted this in the thread that gave reasons for Rails dying. I just find amazing that such an amount of people think something like Meteor can kill Rails. I'm not a big fan of Rails, either, but I find kinda stupid to compare both; while both overlap at certain points, they are not as similar as people make it look like.

<comment><USER5> "Such an amount"? Aren't you blowing things out of proportion a bit?

<comment><USER4> Based on the feedback people has given in the other threads and how voted it was, there's certainly a good amount of people that think that Meteor will kill Rails. Yes, I might have exagerated a little bit, I agree.

</comment></comment></comment></comment></comment><comment><USER6> Very excited to see this. Hopefully, it'll make Meteor an attractive option for professionals who are deploying mission critical web applications.

</comment><comment><USER7> @FooBarWidget, does the scaling/load balancing feature support sticky sessions?

</comment><comment><USER8> I think Meteor can "kill" things like backbone, angular, ember.</comment>


The Rumors Are True. I am Leaving TechCrunch. - <AUTHOR> http://techcrunch.com/2011/11/18/the-rumors-are-true-i-am-leaving-techcrunch/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29

<comment><USER2> I normally ignore Techcrunch, but I admit there is something satisfyingly "meta" about an organization that is devoted to dramatizing other people's private business dealings dramatizing its own private business dealings.

I don't say this in a mean way. Perhaps people like Sarah Lacy are simply walking their own talk and living the kind of transparency they have forced other people to display.

<comment><USER3> I'm right there with you, if by meta you mean "pathetic." That their editorial policy has been turned in on itself is no Jamesonian wormhole.

</comment></comment><comment><USER4> TechCrunch has always had that soulless, canned "edginess" and casual gloss characteristic of in-flight magazines and checkout-aisle gossip rags. If they've had anything insightful or interesting to say ever, they've done a remarkable job burying it under a pile of press releases disguised as journalism.

</comment><comment><USER5> I tried to play catch-up with all the drama yesterday (i.e. read through a number of articles/reports from the last few months). I only feel more confused about what the take-away from all of this is.

Didn't they receive ample compensation for their work? Why do they want to try and buy back TC? I understand that since their acquisition there has been a slew of disagreements but I fail to understand the mass of continuing drama.

Perhaps there is a good article I missed that sums it all up tidily? Basically, all I have learned from the mess is don't expect life to stay the same once you accept an offer from a mega-corp.

<comment><USER3> _Why do they want to try and buy back TC? I understand that since their acquisition there has been a slew of disagreements but I fail to understand the mass of continuing drama._

These two observations are related, but suffice it to say that "drama" is their lifeblood. They are the TMZ of tech.

</comment></comment><comment><USER6> Who is Sarah Lacy, and how does her leaving TechCrunch impact me?

<comment><USER7> In my opinion, Sarah Lacy is one of the best writers who reported for TechCrunch. Wired-level. Very good research, engrossing details, captivating style.

One of my favorites: "Inside the DNA of the Facebook Mafia" (the last paragraph, the bang)

[http://techcrunch.com/2011/02/13/inside-the-dna-of-the- faceb...](http://techcrunch.com/2011/02/13/inside-the-dna-of-the-facebook- mafia/)

</comment></comment><comment><USER8> ok, we get it, you are awesome and important and now need a job.

</comment><comment><USER9> I guess it is fitting that something as self promoting and and dramatic as TechCrunch covers the startup industry that is self promoting and dramatic.

</comment><comment><USER3> What's the likelihood that this will result in less TC drama to hear about? That's pretty much the only angle I'm interested.</comment>


How did they link a domain I own to my gmail email addres? - <AUTHOR>

I just received an email from findsway.com:  Hi Jonathan Someone at Picutive has a crush on you !
Your admirer and 3 of your Facebook friends are using Sway to anonymously meet new people.
 Picutive.com is my domain (it's not very popular).  I have the only email address associated at that domain, so it's obviously a scam, but how did they link Picutive to my email address? <comment><USER2> Findsway is gathering infos from linkedin: i know it because i set a very specific company name in my profile (no one else uses that name) as i am a single freelance so that company has no employee except me!!!

They write in their email that someone at my company loves me and that other 3 facebook friends of mine are interested in me...but i don't own a facebook account!

They are spamming a lot and i didn't post an article on my blog because i don't want to make publicity or advertisement in any way for them.

That's a very bad way to promote their apps: i would have preferred them to take my address from linkedin and say "well, why don't you try our app?"

</comment><comment><USER3> I received the same email. I am assuming what is happening is that someone downloaded their app and connected it to LinkedIn. LinkedIn has your current job and email, so they used this information to spam you. Do you have Picutive.com as one of your jobs on LinkedIn? My theory at least.

</comment><comment><USER4> Yeah .. Same here .. I got a similar one few days ago. The funny thing is that the link in the email is broken and responding with "bad request". Wait! .. Or may be I've just confirmed an active email address in their db .. I shouldn't fall for that! :)

</comment><comment><USER5> The WHOIS database publishes the name, address, phone number, fax number, and email address for owners of domain names.

[http://www.domain.com/whois/whois.bml](http://www.domain.com/whois/whois.bml)

</comment><comment><USER6> it's not firstname.lastname@example.com is it?

<comment><AUTHOR> We have a winner</comment></comment>


I created Wire Storm, an Electronics Themed Puzzle Game for iPhone/iPad - <AUTHOR> http://www.wire-storm.com

<comment><AUTHOR> I recently released this game for iPhone and iPad. It was developed 45 days and is written in Objective-C and using the Cocos 2d framework. My inspiration came from my interest in electronics. I would love some feedback on the game.

<comment><USER2> I've actually tried this game out and it is very clean. Good work sprite. What was the most challenging part of the app development process?

<comment><AUTHOR> The most challenging part was perfecting the level generation while maintaining generation speed on the slower devices. I ended up generating precompiled level seeds. Each level seed is then randomly shuffled 20,000 times on the device.</comment></comment></comment>


Mozes SMS Service Raises $5m - <AUTHOR> http://www.techcrunch.com/2007/02/21/mozes-sms-service-raises-5m/ <comment><USER2> first impression i got was that they spammed me like 6 months after I signed up. not god</comment>