Ask HN: Whats the best way to start web development on lisp? - <AUTHOR>

Whats the best way to start web development on lisp? <comment><USER2> For Common Lisp, the web server of choice would probably be Hunchentoot[1]. If you're using it directly, that would be similar to some of the more lightweight frameworks from other languages (Sinatra, Flask etc.). If you're looking for a bigger framework, Weblocks[2] could be of interest. Haven't worked with it myself, though. It does use Parenscript[3], which is a pretty neat way of writing JavaScript without dropping down to C syntax.

Common Lisp has pretty good support regarding books, libraries and developer mindshare in the Lisp community (which generally is quite fractured, albeit not on a Forth level). They can be pretty harsh at times, though.

Personally, I'd recommend going with some simple examples. Getting to grips with the language, the environment (probably Emacs+Slime) _and_ a somewhat novel web framework at once can be pretty daunting. So taking baby steps on the result level, i.e. making stuff that could've been done with CGIs, won't heap yet another helping of novelties on your plate.

[1]: <http://weitz.de/hunchentoot/>

[2]: <http://common-lisp.net/project/cl-weblocks/>

[3]: <http://common-lisp.net/project/parenscript/>

</comment><comment><USER3> Well, Clojure has Compojure & Ring (like Sinatra & Rack on Ruby). Pretty well made, but without batteries, and the documentation sucks massively (I've resorted to reading the source). Also, pretty much everything is still in beta and APIs change frequently.

For CL, Scheme, Arc, ..., I have no idea.

<comment><USER4> I recently rebuilt my site[1] in Clojure. Ring at the bottom layer (basically a given). Beyond that I'm using Moustache[2] for routing, Enlive[3] for templating and Clutch[3] to talk to CouchDB. I had previously tried with Compojure and Hiccup.

The hardest parts were learning enlive and moustache. Enlive is incredibly powerful and very clever, but can be a bit overwhelming for clojure noobs. You definitely want to check out David Nolen's tutorial[5] for it. Aside from that, #clojure and the ring google group are full of wisdom.

Deployment wise, I build the site with a basic leiningen[6] uberjar and run it from an ssh, background it and disown it. yeah, thats terrible, but im lazy and nobody visits my site anyhow ;) Caveat here: Clojure 1.2 has a small bug with interned keywords[7] that will knock my site over in a couple of days if i forget to start it up with the default JVM profile. the -server profile fixes the trigger issues

Aside from that, I have an nginx gateway server that handles serving my media, nowww redirection and proxies all dynamic requests through to the jvm. the site itself hosts a jetty HTTP server via ring to handle all the requests.

The 'hardest' part of getting started with clojure vs say Python+Django or Ruby+Rails is that there is a lack of 'get you going' magic / tools like scaffolds or djangos admin. Once you get past that though, it is a very enjoyable platform inspite of the API changes.

[1]: <http://brehaut.net>

[2]: <http://github.com/cgrand/moustache>

[3]: <http://github.com/cgrand/enlive>

[4]: <http://github.com/ashafa/clutch>

[5]: <http://github.com/swannodette/enlive-tutorial/>

[6]: <http://github.com/technomancy/leiningen>

[7]: [http://www.assembla.com/spaces/clojure/tickets/444?comment=9...](http://www.assembla.com/spaces/clojure/tickets/444?comment=9542151#comment:9542151)

<comment><USER5> _run it from an ssh, background it and disown it_

Ack! GNU screen will change your life.

[ <http://www.emacswiki.org/emacs/GnuScreen> ]

<comment><USER6> You mean SAVE his life.

</comment></comment></comment></comment><comment><USER7> I visited pg's arcforum today <http://arclanguage.org/item?id=12563> and got this info by "fallintothis":

 _<http://github.com/nex3/arc/blob/master/help/arc.arc> is from Anarki, a community-maintained branch of "vanilla" Arc. They wrote such a help function, but there are also other extensions and differences that are reflected in said help.

If you're new to Lisp, <http://ycombinator.com/arc/tut.txt> isn't a bad start. But there are countless Lisp tutorials out there.

As for online documentation: <http://files.arcfn.com/doc/> \+ <http://www.arcfn.com/2009/06/whats-new-in-arc3.html>; see also <http://arclanguage.org/item?id=12228>, wherein I technically have another suggestion for learning Arc without the web ;)._

[ Haven't dug in very far yet but Arc tutorial appears to be web development oriented, and you could look at the HN source code ]

</comment><comment><USER8> See the Racket docs for getting a simple web app set up: <http://docs.racket- lang.org/more/>

</comment><comment><USER9> Check out [http://postabon.posterous.com/a-simple-lisp-webapp-for- begin...](http://postabon.posterous.com/a-simple-lisp-webapp-for-beginners)

</comment><comment><USER10> Very interested to see what the experts have to say about this. I gave it a shot a few weeks ago, but I could barely get to hello world. As a Ruby/Python programmer, I seem to be spoiled by having _de facto_ interpreters (MRI and CPython, respectively) with rich standard libraries, all of which are doused with a great quantity of Google juice.

I was startled to find that "C lisp"--that is, the lisp interpeter written in C, which you get when doing _sudo aptitude install clisp_ on the latest Ubuntu distribution--is actually _not_ the "standard" lisp interpreter. I still have no idea which is, if any.

Still, it seemed like a few of the web frameworks out there should have worked anyway, so I tried to soldier on for a while. Unfortunately, it was in vain: my dependency-fu simply wasn't strong enough. I also couldn't find a lisp equivalent to rack and wsgi, which is something of a non-starter imho.

I'm sure I am making some foolish assumptions, facilitated by the vast chasm that represents my experience with lisp and its ilk. I also have only managed to devote a few hours to it so far, so please, no one take this post as gospel --I'm just sharing what little I have found in case someone else finds it useful.

<comment><USER11> I can't help but get the feeling I'm being trolled here, but: the C in CLISP actually stands for Common, not the C language.

<comment><USER10> You weren't being trolled; I am simply a moron.

<comment><USER12> Real morons never admit their mistakes, and are hardly self-critical. I suspect you're a fake, wannabe-moron: i.e. a closeted intelligent person, with human decency.

CLISP is not really written in C proper; but files with *.d suffix are C with heavy pre-processor use that make them look like Pascal. It also uses "var" keyword to declare new variables, along with shell-style # line comments. It also uses German for variables and comments. Things have been changing heavily as of late, and there is more push toward C style and English usage, but here is what it look(s|ed) like.

[http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/intc...](http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/intcomp.d?revision=1.4&content- type=text%2Fplain)

The code is beautiful and readable, but very unidiomatic.

<comment><USER13> I see you're a real one.

<comment><USER12> Calling me a moron, out of the blue, because we disagreed in another, unrelated thread? Classy.

<comment><USER13> I never used the word moron. It takes a lot of gall to use the insult you used against someone else and attempt to tar me with it.

Your lack of class is why having a reasonable discussion on this site is impossible.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> For Scheme, I find that fcgi[1] does the trick: not only is it supported by Apache, lighttpd, etc., but you get state-preservation between requests; which is touted, for instance, as one of the benefits of continuation-based servers[2].

I've shied away from Scheme-based servers[3] hosted behind e.g. forward- proxies, because it seems to violate Occam's razor; but that's a personal bias.

[1]: <http://wiki.call-cc.org/eggref/4/fastcgi>

[2]: [http://en.wikipedia.org/wiki/Continuation#Continuations_in_W...](http://en.wikipedia.org/wiki/Continuation#Continuations_in_Web_development)

[3]: <http://wiki.call-cc.org/eggref/4/spiffy>

</comment><comment><USER15> If I am using SBCL, then Hunchentoot. If I am using Franz, then I would use Portable AllegroServe and WebActions, both of which are installed and ready to use.

</comment><comment><USER12> For Common Lisp, Hunchentoot is pretty sweet.

You can use RESTAS framework <http://restas.lisper.ru/en/>

Example:

<http://restas.lisper.ru/en/tutorial/hello-world.html>

It's extremely well documented too.

<comment><USER16> RESTAS is actually one of the CL frameworks that I can sort of recommend because it doesn't try to do too much, and it doesn't have any continuation brain damage in it.

I don't like web frameworks, here's what I currently recommend: <http://news.ycombinator.com/item?id=1778708>

The RESTAS documentation just got translated from Russian, I'm actually supposed to proofread it this weekend.

<comment><USER12> That's weird, I could have sworn _I_ wrote that ;-)

Concur 100%; hunchentoot + postmodern. No continuation crap there.

</comment></comment></comment><comment><USER17> I think this depends a lot on what you're looking for. I love lisp, but I wouldn't bet a startup on it. Ruby/Rails is simply too complete to use something else.

Bliss could come from a combination of the two, however.

<comment><USER18> I disagree; Clojure on Google App Engine is a pretty solid platform for web development,and by now there's a lot of online help to get you started.

But your first sentence says it all - depends on what you're looking for. If you're outside of the cloud (by choice or necessity) Ruby/Rails, Python/Django, or even Groovy/Grails are all tough to beat.

<comment><USER17> Yeah, its just the whole "there are lots of gems" argument, and ruby is a pretty nice language anyway.</comment></comment></comment>


Do you really need a UUID/GUID? - <AUTHOR> https://rclayton.silvrback.com/do-you-really-need-a-uuid-guid <comment><USER2> With UUIDs for keys, you can shard your database, then later merge or migrate parts with no issues about collision or reindexing. That's useful. Whole coding tasks (and whole classes of bugs) disappear entirely.

</comment><comment><USER3> > Sequential values tend to index well because they don't require large > sections of the index to be realigned

Erm... What? I don't understand this sentence at all, and I know well how indexing works.

> [MySQL performance] Notice the nearly consistent insertion time of a long > integer vs. the UUID.

Oh boy. You just found out that (a) MySQL is a subpar product and (b) that inserting 4 or 8 bytes is faster than inserting 36 bytes.

How about inserting 8 bytes (int64) vs. inserting 16 bytes (deicated UUID type) in PostgreSQL?

> Auto incremented integers will almost always be smaller, meaning scans > against tables/records will be more efficient.

And this is because...?

You know how B-trees work, do you? And you do know that you _very_ rarely need a _sequential_ iteration over _artificial_ key in a database?</comment>


Software Freedom Conservancy Fundraiser - <AUTHOR> https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/ <comment><USER2> It's a bummer to see all corporate support drop once they support one lawsuit against a corporation. Expected, but sad. I guess no one wants to fund an org that might sue them, or they don't want to sour ties with VMWare by supporting the legal action indirectly. But it does show how little backbone / how fair- weather the corporate sponsors are. It seems like if there were any time to invest with a high moral-to-dollar rate, now would be it.

<comment><USER3> I don't know what's different this time, but suing bigcos isn't new. For example they sued Samsung, Westinghouse and a dozen others in 2009: [http://www.softwarefreedom.org/news/2009/dec/14/busybox- gpl-...](http://www.softwarefreedom.org/news/2009/dec/14/busybox-gpl-lawsuit/)

Maybe the GPL is growing less relevant and that shows up in bigco priorities. [https://www.blackducksoftware.com/resources/data/top-20-open...](https://www.blackducksoftware.com/resources/data/top-20-open- source-licenses) says the {,A,L}GPL{2,3} licenses are now down to 40% usage share, down from 70% in 2008. There are some oldish graphs at [https://blogs.the451group.com/opensource/2011/12/15/on- the-c...](https://blogs.the451group.com/opensource/2011/12/15/on-the- continuing-decline-of-the-gpl)

<comment><USER4> blackducksoftware statistics has been criticized for both lacking transparency and lacking context. A theory is that they based previously on mostly sourceforge, but has gone over to base their data on github, and the change in license statistics reflect how those places are used.

There was a study on Debian packages, and unsurprisingly it had a distinct 90% GPL license statistics which is neither shared by sourceforge or github. The theory put out from that is that GPL is generally favored by larger projects that has invested time to pass the selective process of debian, while one-time data dumps or weekends hacks tend to have a more permissive license.

I also recall someone doing a random walk in github, and their finding also highlighted that the average quality of an random chosen github repository was generally low and in most cases empty.

</comment></comment></comment><comment><AUTHOR> Looks like Linux Foundation decided to stop helping SFC defend Linux when the GPL got teeth.

[https://lwn.net/Articles/665739/](https://lwn.net/Articles/665739/)

</comment><comment><USER5> Not even RedHat supported them? Or did they pull out as well?

This post lost the opportunity to bring up any controversy on them suing vmware.

<comment><USER6> Problem is when corporation X uses RHEL, and RHEL supports lawyers going against corporation X.

So RedHat also can't support them.

Obviously, if the world was a better place, none of this would be necessary at all. But hey, if it makes money anything's acceptable.

<comment><AUTHOR> RedHat does support them:

[https://sfconservancy.org/sponsors/](https://sfconservancy.org/sponsors/)</comment></comment></comment>


TAKE WORK ON THE GO WITH UBERWIFI - <AUTHOR> http://blog.uber.com/uberWIFI

<comment><USER2> SHOUT AT EVERYONE AND WONDER WHY THEY DON'T LIKE IT

<comment><USER3> The OP most likely copy-and-pasted the all-uppercase blog post title.

<comment><USER2> Why not use the bookmarklet? It's quicker, less error-prone, easier, and generally better.

        <sigh />
        <shrug /></comment></comment></comment>


Ask HN: Why isn't there an insurance buying platform? - <AUTHOR> Why something analogous to uber or airbnb exist for insurance? Is it just an industry that hasn't been disrupted yet or is it a matter of regulations and other barriers? <comment><USER2> It's really challenging, people are trying. Are you specifically referring to auto, health, life...all of the above?

See [http://www.theverge.com/2016/2/23/11097642/google-shuts- down...](http://www.theverge.com/2016/2/23/11097642/google-shuts-down-compare- insurance-credit-card-mortgage).

<comment><USER3> They are all different, but Health Insurance is an entirely different animal from the others. (i.e. there is no GEICO health insurance)

</comment></comment><comment><USER4> I think you will run into a bit of a chicken and egg problem.

Insurance companies won't like it because it would be bad for them for something like this to exist at a consumer level. And consumers won't use it because they would need some companies there to participate. So I'd either factor in starting an insurance company as well (to sell on your market) or do P2P insurance, which would be very interesting. Let me know if you go the latter route, I might be able to help out.

Insurance is the most profitable industry out there, selling a mostly commodity product. It's definitely a very ripe industry for disruption.

</comment><comment><USER5> www.insurancequotes.com - auto.insure.com - offer quotes.

And to some extent there are marketplaces. They're called independent insurance agents. The problem is Agents cost a lot versus direct to consumer marketing.

Could you build and automated agency, possibly but you have a lot of hand holding people want.

Some of the problems at the carrier level:

-large players that are heavily invested in technology.

-Each state is different and regulated separately.

-Fraud, Fraud, Fraud

-Complex legal contracts that require lawyers and compliance people.

-acquiring customers is expensive and low margins leave very little to disrupt.

-it takes years to get enough underwriting data to get it right.

\- same with investing the money.

-federal regulations for integrating with medicare, terrorism database \- other integration's: tpa's, motor vehicle, claims data, third party adjusters, e-billing, banks, auto rental places, window glass shops, supplier auditing(did we pay an appropriate price.

\- plus for homeowners the better you sell in an area and lower your marketing costs the more concentrated your risk. hello hurricanes...

</comment><comment><USER6> There are. The industry is very challenging. I attended an insurance conference a few weeks ago focused on innovation. (lookup Global Insurance Symposium). Also look up ACORD innovation</comment>


Why pi? - <AUTHOR> http://stanford-online.stanford.edu/seminars/knuth/101206-knuth-500.asx

<comment><USER2> Since the article links straight to the video stream (OP: please add a note to the title), here's Knuth's introduction to this particular Christmas Tree Lecture (on Pi):

"Mathematicians have known for almost 300 years that the value of 'n factorial' (the product of the first n positive integers)is approximately equal to n/e to the nth power times the square root of 2(Pi)n, where Pi is the ratio of the circumference of a circle to its diameter. That's 'Stirling's approximation'. But it hasn't been clear why there is any connection whatever between circles and factorials; the appearance of Pi has seemed to be purely coincidental, one of the amazing accidents of nature. Recently however Johan Wästlund has found a nice explanation of this phenomenon, and the reason turns out to be connected with the theory of trees."

<comment><USER3> The formulae are similar; are they really related? Any more than the dance of bees are related to quantum mechanical states (another recent article)?

I'm sorry, I couldn't sit through the whole lecture (2 minutes actually); the digressions and glacial pace reminded me viscerally why I had such trouble in graduate school.

<comment><USER4> It gets going after the first 2 minutes, not many digressions, pretty much pure maths lecture. Summary below of the first hour or so if you want it, might be hard to follow, but it shows the depth of the lecture pretty well.

He will establish a link between Pi and factorials, as well as trees, using generally simple maths.

\---

The number of (ordered) forests with n nodes:

n=2 - 2 forests [o, o; o (o)], where , separates trees within forests, ; separates forests, () indicates child node

n=3 - 5 forests [o, o, o; o, o (o); o (o), o; o (o) (o); o (o (o))]

In general the number of forests with n nodes is Cn where Cn is the nth catalan number. For n=0..4, Cn=[1, 1, 2, 5, 14].

The nth catalan number is C(n):=((2n)!/n!(n+1)!). E.g. for n=3, 6!/(3! _4!)=5.

It turns out that:

C(n) approx= Exp(4,n)/(Sqrt(n_pi) _(n+1))

For n=1000, the first 4 significant figures match in a number with 598 digits.

Johan Wästlund published a result explaining the link between Pi and trees in Dec 2007.

\---

Problem inspiring JW's investigation is biasing two dice (changing their probability) so that 2..12 are all equally likely.

To do this set the probability of two 1s to x. This is the probability of rolling a total of 2.

Now the probability of a total of 3 is the probability of a 1 and a 2, times two. So we want the chance of rolling a 2 to be half the probability of rolling a 1.

Similarly the probability of rolling a total of 4 is the probability of a 1 plus a 3 times two, plus the chance of two 2s.

If we set p1 = probability of a 1, p2 = probability of a 2, ...

(1) p1p1 = p1p2 + p2p1 (since a total of 2 is as likely as a total of 3) => p2 = p1/2

(2) p1p1 = p1p3 + p2p2 + p3p1 = p1p3 + p1p1/4 + p3p1 => p3 = 3p1/8

(3) ... p4 = 15p1/16

(4) ... p5 = 35p1/128

(5) ... p6 = 63p1/256

This set of probabilities satisfies the original problem up until a total of 6.

( ^ ) Note the constants are: 1/2, 1/2 _ 3/4, 1/2 * 3/4 * 5/6, 1/2 * 3/4 * 5/6 * 7/8.

( ^^ ) Proof of this: Let pj=a(j-1)p1. We have a0=1, a1=1/2.

Form an infinite series, A(z)=a0+a1z+a2Exp(z,2)+a3Exp(z,3)+... Square it: Exp(A(z),2)=a0a0+(a0a1+a1a0)z+(a0a2+a1a1+a2a0)Exp(z,2)+... This equals 1+z+Exp(z,2)+Exp(z,3)+... (by hypothesis, ajp1=p1 for all aj), which is just a geometric series with total 1/(1-z).

(+) So A(z) = 1/(sqrt(1-z)) = Exp(1-z,-1/2). Using binomial theorem, this equals

Sum(n=0..infinity) of (-1/2 choose n [binomial coefficient])Exp(-z,n).

an=(-1/2 choose n) _Exp(-1,n)

E.g. a3= (-1/2 - 3/2 - 5/2)/(3 _ 2 * 1) * Exp(-1,n) = (1+3+5) / (2 * 3!), which is the result we had above at ( ^ ).

( ^^^ ) We know p1+p2+p3+p4+p5+p6=1 as the dice are six-sided. This gives p1p1 _(a0+a1+...+a5) = 1 (see ( ^^ )). So what's a0+a1+...+a5?

Take A(z)(1+z+Exp(z,2)+...) = a0+(a0+a1)z+(a0+a1+a2)Exp(z,2)+... . Let's call this S1 + S2z + S3z + ... . Then we want to find S6 = a0 + ... + a5. Remember that p1p1s6=1 from ( ^^^ ).

Well by (+) A(z)(1+z+Exp(z,2)+...)=Exp(1-z,-1/2) (1+z+Exp(z,2)=Exp(1-z,-1/2) Exp(1-z,-1). This is just Exp(1-z,-3/2).

Expanding that, we have Sum(n=0..infinity) of (-3/2 choose n)_Exp(-z,n). The - signs cancel out again.

Let's work out the values of Sn: S1=1, S2=a0+a1=3/2, S3=a0+a1+a2=15/8=3/2 * 5/4 ... and S6=3/2 * 5/4 * 7/6 * 9/8 * 11/10.

Picture here:

      6zzzzzz
      5""""""zzzzz
      4oooooo"""""zzzz
       xxxxxxooooo""""zz
      3xxxxxxooooo""""zz
       ######xxxxxoooo""zz
      2######xxxxxoooo""zz
       ######xxxxxoooo""zz
       ......#####xxxxoo""z
       ......#####xxxxoo""z
      1......#####xxxxoo""z
       ......#####xxxxoo""z
         1      2   3  4 56 (each number j has width / height a(j-1)), total width = S6)

This is meant to be symmetric around x=y. Each different character represents a different total. All these areas are the ones we've been trying to make the same: "." is the probability of getting a total of two on two dice. "#" is the probability of a 3 total, and so on. It gets closer and closer to a circle.

So this is the link to the circle. If n is the area shown in the diagram above, we have n approx= (pi/4) Exp(Sn,2), since this is a quarter of a circle with radius Sn. We want to prove the circle goes through the rectangles just outside the edge, if so we can show that n - 1 < (pi/4) Exp(Sn,2) < n + 1 (!) . This is because we are setting the area of each total (i.e 2..7) to be 1, so adding an extra total (which looks more and more like a circle as n gets bigger) will just add one to the total, and we are going to prove an ideal circle would go through the outer rim (e.g. the "z"s in the diagram above).

Let's look at some examples.

Exp(S6,2) = Exp(3/2,2) * Exp(5/4,2) * Exp(7/6,2) * Exp(9/8,2) * Exp(11/10,2) from above.

Exp(S9,2) = Exp(s6,2) * Exp(13/12,2) * Exp(15/14,2) * Exp(17,16,2)

Note Exp(1+1/2k,2)=1+ 1/k + 1/(4 _Exp(k,2)) > 1 + 1/k

So Exp(S9,2) > Exp(S6,2) (1+1/6)(1+1/7)(1+1/8) = Exp(S6,2)(7/6)(8/7)(9/8)=Exp(S6,2)(9/6) by cancelling. He also proves that Exp(S9,2) < Exp(S6,2)_(8/5).

In general Exp(Sa,2) _(a+b)/a < Exp(s(a+b),2) < Exp(Sa,2)_((a+b-1)/(a-1)). From this inequality (ineq), he can prove his result on the approximate value of Sn, (!) above.

He wants the circle of radius S6 to go outside the inner most notches in the diagram (between " and z in the diagram above). Note that these coordinates (S5,S1), (S4,S2), ... . By Pythagoras we want Exp(Sk,2) + Exp(S(n-k),2) < Exp(Sn,2) < Exp(Sk, 2) + Exp(S(n+1-k),2), this follows from his inequality (ineq) above.

(Incidentally you can do the same construction with 3 dice forming a ball, there is a picture at 56:00 which I won't try to reproduce in ascii.)

\---

So we now have a relationship between Sn and Pi, Sn approx= 4n/Pi. Also Sn is a sum of values of an, which are just (1/2) (3/4) ... (2n-1/2n). Finally Sn=2n _an (not quite sure why??). From all this we can get an=1/(Sqrt(Pi_ n).

The number an is famous in connection with a random walk of length n. The probability of flipping a coin 2n times and getting equal number of heads and tails is an. This probability is (2n choose n)/Exp(2,2n). But (2n choose n) is just ((2n) (2n-1) ... 1) / (n! n!), which is just an an above.

Rather than a coin, he takes the binary digits of pi/4 as heads and tails:

       .11001001...

This looks like this (- marks 0)

         x
        x x x
       x---x-x-x- etc.
              x x
                 x
                  x

We know Sum(ak, a(n-k))=1.

This is equivalent to (apparently!) Sum((2k choose k) * (2n-2k choose n-k)=Exp(n,4)

(A digression here on "balanced random walks" and the links to 2d barcodes like QR-codes. You decompose a finite random sequence of bits like the bits of pi, into two parts. The first part is the sequence up to the last point the sequence crosses the origin, this part is balanced. The second part diverges from zero and needs to be balanced by flipping some bits according to a "Christmas tree pattern".)

\--- c. 1h15m in at this point.

It gets a bit sketchy from here, but he goes to the Stirling formula from here, which uses the Catalan numbers.

</comment></comment></comment><comment><USER5> > Now I will go on with my own experience as a youngster in mathematics. > Another thing that my father told me--and I can't quite explain it, because > it was more an emotion than a telling--was that the ratio of the > circumference to the diameter of all circles was always the same, no matter > what the size. That didn't seem to me too unobvious, but the ratio had some > marvelous property. That was a wonderful number, a deep number, pi. There > was a mystery about this number that I didn't quite understand as a youth, > but this was a great thing, and the result was that I looked for pi > everywhere.

When I was learning later in school how to make the decimals for fractions, and how to make 3 1/8, 1 wrote 3.125 and, thinking I recognized a friend, wrote that it equals pi, the ratio of circumference to diameter of a circle. The teacher corrected it to 3.1416.

I illustrate these things to show an influence. The idea that there is a mystery, that there is a wonder about the number was important to me--not what the number was. Very much later, when I was doing experiments in the laboratory--I mean my own home laboratory, fiddling around--no, excuse me, I didn't do experiments, I never did; I just fiddled around. Gradually, through books and manuals, I began to discover there were formulas applicable to electricity in relating the current and resistance, and so on. One day, looking at the formulas in some book or other, I discovered a formula for the frequency of a resonant circuit, which was f = 1/2 pi LC, where L is the inductance and C the capacitance of the... circle? You laugh, but I was very serious then. Pi was a thing with circles, and here is pi coming out of an electric circuit. Where was the circle? Do those of you who laughed know how that comes about?

I have to love the thing. I have to look for it. I have to think about it. And then I realized, of course, that the coils are made in circles. About a half year later, I found another book which gave the inductance of round coils and square coils, and there were other pi's in those formulas. I began to think about it again, and I realized that the pi did not come from the circular coils. I understand it better now; but in my heart I still don't know where that circle is, where that pi comes from.

-Richard Feynman

"What is Science?"

1966 Lecture

<http://www.fotuva.org/feynman/what_is_science.html>

<comment><USER6> Very nice indeed. From the begining I felt it sounded like Feynman - he was an interesting guy.

</comment></comment><comment><USER7> On a purely superficial note, here are Knuth's recent Google searches, according to the Safari search box dropdown list that flashes by at 2:22:

• google calculator

• wolfram alpha

• williams cutlery

• craig gentry

• "the lost chord"

• acrobat scroll speed

• html bulleted list

• html subscript

• doerr "protocol partition number"

<comment><USER8> How do you know they are his?

<comment><USER9> The weird wallpaper can be a sign it's Knuth's Computer :)

</comment></comment></comment><comment><USER10> You should add "[video]" (or alike) to the title at least.

<comment><USER9> Just in case, the poster is not around, even the moderators can do that, right?

</comment></comment><comment><USER11> Dupe: <http://news.ycombinator.com/item?id=2008182> and: <http://news.ycombinator.com/item?id=1987994>

</comment><comment><USER12> `mplayer "mmsh://proedvid.stanford.edu/knuth/musings/101206/101206-knuth-500.wmv?MSWMExt=.asf"`

For those of you who hate it when your browser decides to try to embed videos...

<comment><USER13> Thanks!

Also,

> mplayer -dumpstream > "mmsh://proedvid.stanford.edu/knuth/musings/101206/101206-knuth-500.wmv?MSWMExt=.asf"

for for those you who'd like to download the video for later viewing.

</comment></comment><comment><USER14> I thought this was going to be pi's rebuttal to tau. :)

<comment><USER15> Me too, although in that vein I'll note that the π in the formula is actually a 2π, so the τists win again. ;)

</comment></comment><comment><USER16> What's the type of pen he uses while writing/drawing? I really would like to have one of those.

<comment><USER17> It looks like a permanent marker felt tipped pen. It's probably a Sharpie or Pilot brand.

I highly recommend the new Sharpie 'Pen' if you're looking for a nice writing pen. (This is not the one he's using.) <http://pen.sharpie.com/>

</comment></comment><comment><USER18> Good to see that Knuth's mind is still as sharp as ever.

<comment><USER19> so hard to listen to.

</comment></comment><comment><USER20> Very odd. My browser (Chrome Mac 8.0.552.237) downloads the page (101206-knuth.asx) instead of showing it. Is this a bug on my end or on the hosting end?

EDIT: Nevermind, just realized I was expecting a web page and its a streaming media file. I confused the extension with .asp

<comment><USER2> It's not a bug, that's actually a video stream. Open VLC, and then use Open Network to open the link. It'll stream the video lecture.

</comment></comment><comment><USER21> But what about Preset 3? Has it, at long last, been stored?</comment>


Tell HN: I'm launching in 30 days. No matter what. Hold me to it - <AUTHOR> First off, I'm sincerely grateful to this community. You blow me away with your generosity and honesty. I don't remember how I stumbled on HN but my life is better off because of it, and certainly my business.
I've been working on a web app for over a year now. It's more than a web app, it's a business I truly believe in, and have given all my heart and effort into. I've lived off our savings, and I've been procrastinating launching trying to get things perfect.
That's over now. I'm committing to launch in 30 days no matter what.
And I'm telling you this because I know that it will help keep me accountable.
Thanks for reading!
Edit: I guess we just launched. I was looking for a kick in the ass and I got it. Thanks! Here it is: http://rm.bettermeans.com/ <comment><USER2> Quickly make a form on your website to gather our email addresses. Email all of us in a month and we'll make great beta users for you.

Do this very quickly so that you can get as many email addresses as possible from the many people that will see you on the home page. You're the top story right now.

<comment><AUTHOR> Here's the form. If you're interested in getting an email when I launch <http://bettermeans.org/front/?page_id=408>

</comment></comment><comment><USER3> You're on the frontpage of HN, where is your landing page that explains what your app is about and captures our e-mail adresses? You don't have long before you lose your frontpage position!

<comment><AUTHOR> We don't yet have a landing page. Bettermeans is an open democratic project management tool.

It allows people to work together on a project with a meritocratic governance as opposed to command and control.

<comment><USER4> Stop coding and spend 1-3 days on your launch plan, brainstorm some marketing and PR ideas, cook up some inspiring screenshots, etc. Not having a landing page now is REALLY FREAKIN' SCARY.

<comment><AUTHOR> Ok, here's what we cobbled up in the last hour <http://rm.bettermeans.com/home/show?page=index>

<comment><USER5> This is what I get: <http://imgur.com/dbLty.png>

Opera on Ubuntu

<comment><AUTHOR> Fixed. Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER6> _I've been working on a web app for over a year now._

 _...I've been procrastinating launching trying to get things perfect._

If you're the only one who has used the site, you'll see both of these as mistakes in about 37 days. Just launch.

<comment><AUTHOR> I totally agree. These are both mistakes. Which is why I posted this so that I have a fire under my ass. I know that being witnessed by people I respect is a motivator for me. I wish I did this 6 months ago.

</comment></comment><comment><AUTHOR> Ok, here it is: <http://rm.bettermeans.com>

Guess I didn't need 30 days! This is totally overwhelming. Thank you everyone. Please be generous with your feedback.

<comment><USER7> Hey there is a typo on front page: "Using BetterMenas" I assume should be "Using BetterMeans".

<comment><AUTHOR> Thanks. Fixed it.

</comment></comment></comment><comment><USER8> Now that you got our attention, why don't you tell us about your product?

</comment><comment><USER9> is this it? <http://rm.bettermeans.com/projects/bm>

<comment><USER10> Interesting. Looks a bit like pivotal tracker. See for yourself:

<http://www.pivotaltracker.com/projects/482#>

<http://rm.bettermeans.com/projects/bm/dashboard>

<comment><USER11> Well, there's that one background image ("dropzone_repeating_pattern.png" in both; I'm not sure of the original source for this image). But otherwise it seems like a sort of standard JS-GUI interface, and not all that much exact overlap in functionality beyond commonalities you'd see in anything that tracks tasks through stages.

FWIW, it looks like BetterMeans is using JQuery-UI and PivotalTracker is using YUI, and I don't notice any commonalities in their source with a quick review... so it may well just be mostly that bg image (which they may have both gotten from a common & free source).

Dunno if you see a smoking gun somewhere, but I haven't thus far.

</comment></comment></comment><comment><USER12> This sounds like a web site idea in it self. "Announce" launches with firm commitments to a beta user community, and everyday you can go see what was supposed to "launch" that day, and give feedback. It'll put the pressure of public failure on the founder where it normally wouldn't exist (as is the case here).

</comment><comment><USER13> This sounds and looks exactly like a more modern version of a worker cooperative (I am a member in a worker co-op). The laws around co-ops tend to be very 19th century but this is really what they are all about -- are you plugged in to the worker co-op community? There would be many interested users, potential grants and investment, etc.

<comment><AUTHOR> That's the idea.

What would a worker coop look like if it was designed with the internet in mind. And what if the governance was baked into the project mgmt tool.

Here's a detailed doc explaining what we're trying todo: <http://bettermeans.org/front/?page_id=306>

It's a long read, and we need to make it shorter, but you're spot on.

No, I'm not plugged in to the worker co-op community. Loop me in.

This is the governance model we've come up with: <http://bettermeans.org/front/?page_id=312>

</comment></comment><comment><USER14> Since this is a democratic model of governing a company, is there a way to create a coalition to slowly overthrow the governing members and take over the treasury and ownership of the project? How would this then affect the actual ownership of BetterMeans - are all current members also equal shareholders?

<comment><AUTHOR> This video explains exactly how the governance works: <http://www.youtube.com/watch?v=IdcAxGGRafc>

Yes. It would be totally possible to overtthrow the governing members of bettermeans.

However, shares are not tied to your membership. Ownership is based on contribution, and cannot be taken away from you. Just wether or not your votes are binding.

This video explains our model in detail: <http://www.youtube.com/watch?v=IdcAxGGRafc>

As does this doc: <http://bettermeans.org/front/?page_id=312>

</comment></comment><comment><USER15> I'll email you on August 28th and if you aren't launching that weekend, I'll be very diappointed!

</comment><comment><USER16> Just a question: If you haven't launched, how can you claim to a "most popular plan"? Seems dishonest...

<comment><USER17> I wouldn't worry about that. "Most popular plan" is marketing-speak for "we think that's the plan most people want". Even if you have 0 users, I wouldn't be shocked.

Do not try to be 100% technically accurate. That leads to long, unreadable text. It's ok to rely on your reader's imagination to convey a message.

<comment><USER16> I guess that's why I'm not in marketing... ;-) I would prefer a statement that conveys that it's an opinion and not empirical fact.

<comment><USER18> They have 1 customer, themselves. They prefer that plan, so it's the most popular.

</comment></comment></comment></comment><comment><USER19> Can you launch any sooner? How about tomorrow?

<comment><AUTHOR> Ummm. It seems like I just inadvertently launched!

<comment><USER20> That's the spirit. :-) You just launched. Congratulations!

<comment><AUTHOR> Thanks. The problem is I don't have any supporting text, and folks are really confused about what we're doing!

Maybe there is such a thing as too early of a launch.

</comment></comment></comment></comment><comment><USER17> Hey BetterMeans... Alain here. I sure hope you will launch soon. You still owe me coffee :-)

To everyone: Shereef is cooking something great. Make sure he ships in 30 days!

<comment><AUTHOR> Hey Alain! Thanks for the kind words, and for all your support in this process. Here we go :)

</comment></comment><comment><USER21> Looks like a awesome webapp that I'm probably going to try out when it's ready!

Note that the images on the sales page are HORRIBLY compressed. Drop JPG for illustrative images and screenshots, start using PNG instead.

</comment><comment><USER22> Just wanted to wish you all the best. Nice to see some fellow Egyptians stirring things up!

<comment><AUTHOR> So you're the other Egyptian in the Bay Area. Thanks!

</comment></comment><comment><USER23> Don't forget to tell your loved ones, your friends, family, etc that you are working on the launch in 30 days. This way they know that you are not to be bothered, etc. I picked this up from this link here [http://www.webdigi.co.uk/blog/2009/how-to-get-your-side- proj...](http://www.webdigi.co.uk/blog/2009/how-to-get-your-side-project- launched/)

</comment><comment><USER24> Congrats on launching! I would append this css (for the footer)

      #top-footer .footer-logo {left:-21px;}
      #top-footer h3 {background:none;padding-left:0;}

There is no reason to use bullets (dots) when you use inline lists (#top- footer h3). #top-footer .footer-logo is not aligned with the paragraph below it.

<comment><AUTHOR> Done. Thanks!

</comment></comment><comment><USER25> I'm late to the party but I have been looking for something exactly like this. To make a tool like this to work, I would need to get the team on board, so I'll probably wait a bit for the initial bugs to get worked out, But we'll be a customer...just do regular email updates so I know when to jump in.

<comment><AUTHOR> Will do. Thanks for the encouraging words.

</comment></comment><comment><USER26> Your features page should be very well done and professional because it's how people will decide whether or not to sign up. Here are a couple issues:

spelling error:

The home screen of your project is the first page your will see. It shows an overview of your team's work with:

"Your" should be "you"

Also use PNG instead of JPEG for the screenshots. It's a big deal.

<comment><AUTHOR> Thank you Andy. I'm ignorant about why PNG is better. Can you teach me?

<comment><USER27> PNG is lossless compression so you won't get the artifacts you do with JPEG. (e.g the noise around the text at the top of your first screenshot)

EDIT Better explanation: [http://en.wikipedia.org/wiki/Portable_Network_Graphics#Compa...](http://en.wikipedia.org/wiki/Portable_Network_Graphics#Comparison_with_JPEG)

</comment></comment></comment><comment><USER28> Ehm...what is it and what do I use it for? I just see posts from people, something called workstreams and reading the text in the description on the right just makes me want to shoot myself out of boredom. Oh...and how the heck do I get credits because I see some people are already loaded.

<comment><AUTHOR> This governance model explains who an open enterprise works.

<http://bettermeans.org/front/?page_id=312>

Would love your feedback

<comment><USER29> The first thing that jumped out to me is "why should I care?". What's wrong with the "command and control" model? I don't know what the problem is which this tool is trying to solve.

<comment><USER30> If anti-authoritarianism isn't in your blood I'd say you aren't the target market.

</comment></comment></comment></comment><comment><USER31> Mabrook! Good work. Few cosmetic issues on main page. Remove "!" in "read more!" button. Does not look professional. There are some minor language errors on the main page which need to corrected.

On pricing page(<http://rm.bettermeans.com/front/pricing.html>) please change to 'take a tour' from 'watch the tour'. Surprisingly it there was only one video after clicking the button. I was expecting multiple videos to highlight features of your product. Include Safari 5 on browser list.

Made a good decision by announcing it to the public. Hopefully, it will make up and running smoothly soon.

</comment><comment><USER32> Interesting. I think you need something that succinctly explains exactly what bettermeans is and why its something a company would want to use. It took me awhile to get a feel for what the product really does, and how.

<comment><USER33> agreed! "If a traditional company was a network architecture, it would be client-server. We're building a platform for peer-to-peer companies that are more agile, resilient, and innovative."

You say an awful lot of what you do but no where could I find the "HOW" and I, personally, hate high-level BS talk.

Get to the point and put verbs in your sentences that say how you do these things.

</comment></comment><comment><USER25> An idea for the future might be to somehow tie in with sites like elance or have your own outsourcing program. It'd be nice to be able to manage the internal projects and outsourced projects in one place.

</comment><comment><USER34> The video "Better Means, Changing the World of Work" on the home page of your website has an incorrect aspect ratio. Everything is slightly horizontally stretched, so the text is wider than normal, all of the people look slightly fat, the proportions of people's heads change when they tilt them, the Wikipedia logo isn't circular as it should be, etc. You should fix that; it looks unprofessional.

<comment><AUTHOR> Thank you. Should be fixed now.

</comment></comment><comment><USER35> As long as "open democratic" doesn't mean anti free-market (as it seems to in the political world), great job on the quick launch :)

<comment><AUTHOR> Nope. Not anti free-market. Just pro transparency, and meritocracy.

<comment><USER35> Great, merit based compensation could be a powerful way to run a company. I sincerely agree with your belief that purpose-driven enterprises are more successful, especially when that purpose is to produce a fantastic product.

I read a bit of your "open enterprise manifesto" (which is way too long to read in my opinion, but that may not be your goal), and found conflict with this statement:

"We made our government democratic, and our corporations everything but..."

Actually, we made our government a Republic, with a set of laws and inalienable rights. The process for changing those laws was made democratic, but the system was created as a Republic to protect the rights of individuals from the arbitrary force of government.

I don't understand why so many people focus on the "greed" and "corruption" inherent in "top-down" corporations, but ignore the greed and corruption inherent in centralized government. Those who operate the government are no different than those who operate corporations. They're all human.

If you can't trust corporations, then you DEFINITELY can't trust government, because they are all run by humans of the same nature.

<comment><AUTHOR> I agree with what you're saying. The system of government is definitely far from perfect.

The reference to it in our manifesto is that we at least see the _value_ of democracy in our attempt to govern ourselves politically, but have made very few strides in that in our attempts to govern our businesses.

I would trust our government much more if it ran all its work transparently on bettermeans, and allowed me to vote, discuss, and comment freely.

Also, "greed" and "corruption" are IMHO _not_ a function of human nature, but a function of poor governance systems that we find ourselves in.

Our entire model is based on an inherit trust in our nature. That given the right circumstances, and a fair, transparent, accountable system we can rise above "greed" and "corruption"

We wrote a post about it here: <http://bettermeans.org/front/?p=565>

<comment><USER35> You may well be right about the idea that greed and corruption are not natural to humans, you've obviously done a lot more thinking about that side of it than I have and your logic is reasonable.

I really like the application you built. I need some more convincing on the model and how it would work, without reading the entire manifesto, do you have a document that explains it in much shorter form?

Great job on the design, it LOOKS like you spent about a year on it :)

</comment></comment></comment></comment></comment><comment><USER36> How does this app scale to really big projects and team sizes? Is it for the 1-3 team size? Or can it work for the 20+ company?

<comment><AUTHOR> The governance model borrows very heavily from the apache foundation. They use a similar voting / membership mechanism to self-govern. Thousands of devs on dozens of high visibility OSS projects.

So far it's scaled easily for us up to 15 people.

</comment></comment><comment><USER37> "We've put together a new organizational design that allows anyone to join us, to gain equity share, to make decisions, and to make a living. And we're building the technology platform to support it."

That's really intriguing, congratulations! If done right this can probably have a profound impact on the way businesses are run. The best of luck to you, sir!

<comment><USER37> Just some quick feedback on some of the site copy: It appears you like to use buzzwords and superlatives quite a lot. I'm not sure if this is appealing to everyone (it certainly isn' to me). After reading your three columns "Entrepreneurs", "Workers" and "Companies+Nonprofits" I still don't know what you do and how I would use your product.

All I know is that you "exponentially increase my agility" (which is most likely untrue). If I'm a worker you apparently also engage all of my humanity (which, as everybody knows, is made of passion, purpose and creativity). And as an entrepreneur, I feel that you are somehow trying to offend me ;)

Maybe a description of what exactly your product does (screenshots are better than stock images and icons) would be more helpful.

<comment><AUTHOR> Thank you for the feedback. I totally agree. The copy is vague, and was written before our product crystallized. It needs a serious rewrite.

</comment></comment></comment><comment><USER38> That's awesome man, good luck and have fun! I hope to be taking similar steps soon (hell, maybe I'll make the same 30 day commitment, seems like it would be helpful!), and coming across little bits of motivation like this keep me and many other thinkers in motion.

<comment><AUTHOR> Just don't post your 30 day commitment unless you're ready to launch in 30 minutes

</comment></comment><comment><AUTHOR> Just took a look at google analytics from yesterday.

4000 unique visitors from HN, and only 4.4% use IE!

</comment><comment><USER39> Mate, think about open sourcing your software and doing a wordpress clone.

<comment><AUTHOR> That's a very valid option, and we're giving it a lot of thought (come on board and think with us!)

Our business itself is open though, so anyone welcome to join us (no permission needed from anyone) and contribute to the code base, and gain equity.

As a member of bettermeans, you still can't take the code and run it elsewhere, but you do get full access to it in order to contribute to it.

So it's more 'shared' source, and 'open' business.

My sense is the wordpress business model works with very large numbers, and an already established community. Two things we don't have.

</comment></comment><comment><USER40> There's typo on <http://rm.bettermeans.com/front/features.html> "Get things done together, don't just doument"

<comment><AUTHOR> Thanks. Fixed.

</comment></comment><comment><USER41> Love that tag line - answered the first objection I had in mind!

\-- Trindaz on Fedang

</comment><comment><USER42> Typo on your features page (<http://rm.bettermeans.com/front/features.html>), search for "esitmate"

</comment><comment><USER43> Do you need help?

<comment><AUTHOR> Yes please. Do you speak rails?

<comment><USER44> Is the code out there somewhere? Do you want help?

<comment><AUTHOR> The code is in a private github repo I would LOVE help.

If you're willing to please check this out, and shoot me an email

<http://bettermeans.org/front/?page_id=253>

We're an open enterprise, so everyone who asks, and agrees to our governance model can join.

All dev worked is tracked here: <http://rm.bettermeans.com/projects/platform/>

</comment></comment></comment></comment><comment><USER45> You can launch 30 days later, sure. But if you put up a coming soon page now, today, it will be really great.

</comment><comment><USER46> How many people who hit your landing page actually make it to the end of the 3:56 introductory video?

<comment><AUTHOR> 200 people 'viewed' the video on youtube. I don't know how to tell how many watched all the way through.

Around 180 people signed up to be notified when we have an 'official' launch, and over 100 people created an account for themselves.

This story has been on the front page for around 10 hours now.

Don't know how many people hit the landing page until google analytics tells me tomorrow.

</comment></comment><comment><USER47> Spelling mistake on the homepage: the red text should read "Open democratic", not "Open democractic"

<comment><AUTHOR> Thanks. Fixed.

<comment><USER48> It's still showing up with the error for me.

<comment><AUTHOR> ok, now it's really fixed.

I'm telling you, being on the front page of HN for the whole day is a _ride_! Totally overwhelming.

More coffee now.

</comment></comment></comment></comment><comment><USER49> you have "-->" on your frontpage

<comment><AUTHOR> Thanks. Fixed.

<comment><USER49> it's still there (on my end) <http://imgur.com/vamm8>, check the mouse postion on the pic.

Feel free to be sponsortive :p <http://zemanel.posterous.com/>

<comment><AUTHOR> How on earth did you catch that! Thanks again.

btw, I looked hard for a sponsor link but couldn't find one. might want to make it more visible

</comment></comment></comment></comment><comment><USER50> Signed up.

Will bitch in t-minus 30 days and counting.

</comment><comment><USER51> Nice slow reveal.

</comment><comment><USER52> I believe on launching on day 1 of a project, and then just incrementally improving it afterward. Start with nothing, add something, add something else, repeat.

</comment><comment><USER53> Why 30 days? If you are just making little minor changes, features for "perfecting" it, you could launch now or even latest in a week. You don't need 30 days.

I'm not in your position so I don't know your product or what state your product's at, so I'm just basing this off the statement that you're been in the state of "perfecting" the web app.</comment>


Ask HN: How do you get ideas for projects? - <AUTHOR>

Rigth now I've been a while without any idea about what to code, so my habilities are getting worse. Any ideas? <comment><USER2> It varies. Often times I find myself doing something completely unrelated and an idea will pop into my head. It has even happened while sleeping (I woke up with an idea just begging to be explored).

The only consistent thing I've noticed is that ideas come to me when I am struggling or unhappy. Those are the ideas of the 'this could be improved' variety.

If you aren't coming up even with those, well, you can get outside help for ideas. Try attending a startup weekend. Listen to other people's ideas. What do you like? What don't you like? Why? Could you do it better? Start asking yourself (or even others) questions about them and see where it takes you.

</comment><comment><USER3> Hello! It's common to be out of ideas so I've tried to collect everything about ideas here: <http://www.ideaoverload.com/>

Happy idea hunting!

</comment><comment><USER4> I don't know, I have a lot of ideas for projects, the problem is to find the right one to work on. I think it's the compromise between ideas you like to work on and things people need.

</comment><comment><USER5> Ideas for projects (hobbies) are often different than ideas for products (startup)

I look at the problems people face.

What I face, what others face, what customers face.

Then, I try to imagine how it should be. I get input from someone who deals with the problem every day if I don't think I know enough about the subtle details.

Now I have a chance to build something, how it should be. I try to solve it.</comment>


Interview with Donald Knuth - <AUTHOR> http://www.simple-talk.com/opinion/geek-of-the-week/donald-knuth-geek-of-the-week/ <comment><USER2> Knuth always reminds me of my own passion that gets obscured by day-to-day work and life. Loving machines and the beauty within and not for any economic value.

Still waiting for his volume on lexing and parsing techniques. I always love his writing and how complete he expresses any particular problem.

<comment><USER3> It is my dearest hope that he lives long enough to finish AoCP, but I fear the odds are against it.

<comment><USER2> Nonetheless, his work thus far has been a remarkable achievement.

</comment></comment></comment><comment><USER4> It felt like it cut off at the end, am I missing something? Quite enjoyable read, it'd be fun to see Knuth play the organ, he should sell tickets!

<comment><USER5> "As Sportin' Life says in Gershwin's Porgy and Bess: 'Methusaleh lived nine hundred years. But who calls dat livin' when no gal will give in, to no one who's nine hundred years?' I may have mis-remembered that lyric, but you get my drift."

I think he pretty much had to wrap things up on that quote, as nothing else in the interview could possibly top it. At least it made me LOL.

</comment></comment><comment><USER6> This seems like a good time to point out that his annual "Christmas Tree" lecture is a week from today.

<http://www-cs-faculty.stanford.edu/~knuth/musings.html>

</comment><comment><USER7> <snip> Interviewer: Would you still study computers whether or not it had any commercial value?

Knuth: Thank you for asking that question. I have always been attracted to computer science because it involves beautiful patterns, rather like the way dancers enjoy choreography, and because questions such as "What can be computed efficiently?" are profoundly interesting and challenging. </snip>

The words and perspective of a master. His description of his work habits (no email, uninterrupted focus) is congruent with one who embodies the Tao of Programming. :)

</comment><comment><USER8> There is much to admire about Knuth's contributions to CS, but advancing the field in an open-ended creative way is not one of them.

The startup community has done more in that respect than academia, but why should academics not contribute to inventing novel applications?

We need to acknowledge such accomplishments more, even if they appear less mathematical/scientific.

<comment><USER9> As I see it, Knuth is to computer science what Tolkien was to literature. Neither man is what you'd call "hip and creative", but both produced a life time's worth of high quality, painstakingly careful work. (In fact, it'd be interesting to compare TAOCP and LOTR in more depth.)

If you try to be creative, you'll end up with nothing but emperor-has-no- clothes modern art (which won't get you very far in computing). But if you do quality work, you may well get creativity thrown in as a bonus.

<comment><USER10> > emperor-has-no-clothes modern art

I admit I have a hard time "getting" most modern art. But seeing the actual pieces in person, especially some Picasso and Pollock, is quite a different experience than seeing dinky little prints in an art book.

<comment><USER11> Jackson Pollock's paintings really stand out in a modern art gallery as being way too pretty to be there.</comment></comment></comment></comment>


Oct. 14, 1985: C++ Adds to Programming - <AUTHOR> http://www.wired.com/thisdayintech/2010/10/1014cplusplus-released <comment><USER2> He gives some good advice at the very end:

 _Know your fundamentals (algorithms, data structures, machine architecture, systems) and know several programming languages to the point where you can use them idiomatically.

Know some non-computer field of study well — math, biology, history, optics, whatever. Learn to communicate effectively in speech and in writing. Spend an unreasonable amount of time on some difficult topic to really master it. Try to do something that might make a difference in the world._

</comment><comment><USER3> _Sometimes, it is more important to have the right problem than the best solution._

Perhaps unwittingly, this statement fits C++ perfectly. It's popular to criticize C++'s design, but it solves the right problem for a lot of people, and that is why it's still very widely used.

<comment><USER4> I have a keyboard whose motto is "good feeling of oneness with cup rubber". I feel like C++ could have a similar slogan -- "good feeling of oneness with my imagination". People choose C++ because they want speed, and then they assume that no matter what they do, they'll get it. But what I've found is that after you add smart pointers and perl-compatible regexes and STL and ..., your code does not run fast anymore. You think it does, because hey, C++ is fast... but it doesn't.

So you're using C++ for speed, which is its only advantage, but you did it wrong and you aren't even getting the speed. But you are happy because you think you are. Sigh.

<comment><USER5> I feel compelled to disagree with people who insult C++ for the fun of it. In response to what you said, the STL is optimized and fast. You shouldn't be using that many smart pointers because allocating memory on the heap is usually not the best solution. If all you want is perl regex then you're right, perl would be the better choice.

<comment><USER4> What I'm saying is that people who are bad at C++ get all of the bad parts (memory allocation hell) but none of the good parts (supar speeeeeed). Since most people are bad at programming, it confuses me why they want to use a tool that makes them look bad when they could trade a little theoretical speed for a program that actually runs.

Wait, I answered my own question.

</comment></comment></comment></comment><comment><USER6> Stroustroup's comment on his intended audience seems common among successful software: _It was done for me and my friends and colleagues._

<comment><USER4> The "colleagues" part is what ruined it. Stick to pleasing yourself and your friends.

</comment></comment><comment><USER7> I would have named it ++C.

<comment><USER8> Most people won't get it, but you're right, that would have been more efficient.</comment></comment>


A LaTeX template for a chronological, graphical curriculum vitae/resume - <AUTHOR> https://github.com/gbmj/gbmj-timeline-cv <comment><AUTHOR> It's an unusual approach that won't fit everyone's tastes or needs (and it requires familiarity with LaTeX) but if it fits yours, please feel free to use it.

<comment><USER2> Unrelated to the meat of your post, but neat that you worked with Stefi Baum and Chris O'Dea at ASTRON! I worked with them as an undergraduate, after they had moved to Rochester, NY. I did the ASTRON summer program shortly afterwards. Always fun to see these kinds of randomly-occurring "small world" overlaps.

<comment><AUTHOR> Hey, that _is_ neat! Thanks for the data point. Hope you enjoyed your time there as much as I did.

<comment><USER2> Definitely did, it was a great summer program.</comment></comment></comment></comment>


Flash Player sandboxing is coming to Firefox - <AUTHOR> http://blogs.adobe.com/asset/2012/02/flash-player-sandboxing-is-coming-to-firefox.html

<comment><USER2> Hopefully this will also make it possible to have separate instances of the Flash plugin for different sites, rather than a single instance for all sites. In addition to improving security through compartmentalization, having separate copies of Flash will allow Firefox to unload each one when finished with a site. Flash leaks a huge amount of memory, and currently many people continuously have some site open which uses it (often sites like gmail or github that use it for "utility" purposes), which means Firefox can never unload it, resulting in an ever-ballooning memory footprint that people often blame on Firefox.

(I say this as someone who doesn't use Flash personally, but everyone benefits when systems have more security, and I personally would like to see less unfounded complaints about memory usage distracting from the legitimate efforts to improve memory footprint and performance.)

</comment><comment><USER3> I'm pretty sure Firefox has run Flash in a separate process for some time now (so when Flash crashes, you get a stripy rectangle saying "oops, a plugin crashed" instead of your entire browser disappearing). I guess the news here is the extra-restrictive sandbox environment.

<comment><USER4> Mozilla shipped support for out-of-process plugins in Firefox 3.6.4 (2010):

<https://wiki.mozilla.org/Electrolysis#Status>

Adobe is announcing some sort of out-of-process plugin support in Flash itself.

<comment><USER5> I think they put development on hold (Nov 4 2011):

"On Nov. 4, 2011, we held a public call to evaluate options for improving Firefox responsiveness including the multi-process Firefox initiative (code name Electrolysis, also known as e10s). The outcome of this discussion was a decision to put the Electrolysis initiative on hold"

\-- [http://lawrencemandel.com/2011/11/15/update-on-multi- process...](http://lawrencemandel.com/2011/11/15/update-on-multi-process- firefox-electrolysis-development/)

<comment><USER6> That's the chrome-content process separation part of their Electrolysis project that was put on hold.

Out of process plugins have been part of Firefox for some time now.

</comment></comment></comment></comment><comment><USER7> Because NPAPI (the plugin API) is specified in terms of native OS handles (HWNDs on Windows, X ids on X), even a sandboxed plugin naturally has access to stuff like your keyboard, mouse, and can send keystrokes to your desktop. This sandboxing of Flash is a step but I don't think it will help much.

</comment><comment><USER8> Flash in gone from my computers. I think I uninstalled it last Aug, but almost immediately had to reinstall for the online Stanford AI class, but I removed it after the final.

Flash will be around for a few more years, and it certainly was needed for the past several years. However, as a sort of "dog fooding", I would encourage developers to uninstall it so we can help build a better "HTML5" web quicker. YouTube has html5 support, for example.

In short, a large number of people exercising the HTML5 web, and addressing its shortcomings, would definitely help accelerate the move to HTML5.

<comment><USER9> > YouTube has html5 support, for example.

Not for videos with ads such as most successful channels.

<comment><USER2> While this solution obviously won't work for most users, personally I just reach for youtube-dl (<http://rg3.github.com/youtube-dl/>) when I run into a video that YouTube won't serve with the HTML5 player. No flash, no ads, and no buffering.

<comment><USER10> Safari's ClickToFlash/ClickToPlugin is absolutely awesome as it replaces the basic placeholder with a (apparently QuickTime X) player with an overlay offering source format selection (including Flash object, and a download option). Chrome has a similar plugin, although less advanced (and generally more flaky). Firefox's FlashBlock is so limited and looks like a stab in the eye in comparison.

</comment></comment></comment></comment><comment><USER11> Sounds like sandboxing is only on Windows, not on other platforms?

<comment><USER12> Mostly true, with the exception of Safari on OS X. If you have Flash installed on a Mac, Safari runs it as an isolated separate 64-bit process. This was not built by Adobe though, it was built by Apple.

<comment><USER13> Plugins on Safari are in a separate process, but they are not sandboxed. Perhaps you'd confused plugins and extensions?

</comment></comment></comment><comment><USER14> What Mozilla also needs to address is the fact that Firefox update is now totally broken on a "normal" user account in windows, it will not even inform you that you are out of date. Before they changed to the "rolling release" model, it worked fine, hasnt worked since 4.0... So now there is going to be a non-insignificant number of windows users stuck on firefox 5 6 7 ... forever.

<comment><USER15> Is that number really "non-insignificant"? Most Windows users I know are always logged into administrator accounts. I myself use the administrator account on my home PC, even though I should know better. Well, at least I pay attention to UAC dialogs.

I actually like how Firefox updates itself. On a multi-user PC, updating Firefox updates every user's Firefox. Not so with Chrome.

<comment><USER14> there is still no reason that updates cant be applied like every other piece of software.

</comment></comment></comment><comment><USER16> Hmm I cannot tell if it runs for all copies of Firefox, I have several installed.

Cannot tell if it's the sandbox running or the native plugin either, just says _11.2.300.130_

Oh nevermind, it only runs protected mode on Vista and W7, they exclude XP, oh well.

I guess only Chrome can sandbox Flash on XP.

</comment><comment><USER17> This seems like a good move but they have a much greater need to copy Chrome's auto-update for Flash, both to deal with the massive legacy install base and to make any successful escalations from the sandbox less long-lived

<comment><USER6> Flash 11.2 has auto-updating by default, so this will be moot. I'd love to see updating supported for other plugins in FF though.

</comment></comment><comment><USER18> Just in time for it to become more and more irrelevant. I say this with an amount of snark that may be frowned upon, but Flash has very few legitimate uses remaining. Though it's an enormous hack (that HLS will fix), I have live transcoded video streaming to an HTML5 video tag and I just got a minimal Skype clone working natively in Chrome. I rarely use Flash and the cases where it's required are quickly diminishing.

<comment><USER19> Codecs are still a problem, though - there's no single universal codec supported by all major browsers. WebM isn't supported by IE, Safari and iOS, H.264 isn't supported by Firefox, Opera and possibly Chrome in the future.

It's a mess, and I don't see it getting better in the near future.

<comment><USER2> Right now, two codecs cover all the browsers that matter. Internet Explorer supports WebM, but doesn't ship with the codec; Google provides the WebM codec for Internet Explorer (<https://tools.google.com/dlpage/webmmf>). That just leaves Safari and iOS that still only support H.264.

Personally, as JavaScript engines get faster, I hope for solutions like this in the future: [http://badassjs.com/post/13551173773/route9-js-a-vp8-webm- de...](http://badassjs.com/post/13551173773/route9-js-a-vp8-webm-decoder-in- javascript)

Meanwhile, if Adobe would ever get around to adding WebM in Flash as previously promised, that would work as a fallback for Safari, as well as IE users without a WebM codec, leaving just iOS.

<comment><USER20> Safari (on Macs) has had a codec plugin support mechanism for codecs for a long time via Quicktime, and I believe WebM is already supported in Perian, the popular ffmpeg/libav wrapper for OS X.

<comment><USER2> Interesting, but that doesn't seem like something straightforward to convince a random site visitor to install. Google's WebM plugin for IE seems like a hard enough sell even with Google's name attached to it.

<comment><USER20> Google did promise a plugin for Mac OS X too, and "soon" when they announced the IE one about a year ago ([http://blog.chromium.org/2011/01/more-about- chrome-html-vide...](http://blog.chromium.org/2011/01/more-about-chrome-html- video-codec.html)) though there's been no sign of it since.

I doubt it's beyond their ability, particularly as someone's demonstrated that it can be made to work. I'm guessing though that they'd be generally happier if people on Mac OS X just used Chrome. There's less likely to be Safari users who are forced to use the browser due to IT department dictates or whatever other odd reason people use to justify IE.</comment></comment></comment></comment></comment></comment>


Overloading Dynamic, What happens when language features collide? (.net)  - <AUTHOR> http://www.codethinked.com/post/2010/01/05/Overloading-Dynamic.aspx <comment><USER2> "public static dynamic" makes me cringe slightly...</comment>


My Startup Story-In a Magazine - <AUTHOR> http://www.blackenterprise.com/small-business/2010/12/28/how-to-partner-with-national-retailers/

<comment><USER2> congratulations! nice PR and a useful little app. now, if you can do one for Home Depot, i'll be the first in line to get it.</comment>


Ask HN: Do other fields of engineering have an equivalent to whiteboarding? - <AUTHOR> <comment><USER2> Not quite engineering, but related:

Professional orchestras have auditions, where you will perform a piece from the solo repertoire in front of the head of the section you are auditioning for, and a few other key staff (e.g. [1]). Some auditions will include orchestral parts, and you can buy books of famous solos for most instruments.

This repertoire has little in common with the kind of playing you will be paid for, other than as a pure display of technical ability (just like whiteboarding). For example, it is relatively poor as a gauge of the ability to play with others (accompanists follow you, not the other way around), or of your fitting in with the rest of your section.

Even on a technical level, performing a showy piece well in the few minutes of the audition does not mean you have the stamina to sustain this playing through four hours of Wagner.

[1] "The jury consists of 25 members of the orchestra: two of four concertmasters, the principals, the VPO chairman and managing director, five musicians of the relevant orchestra section, two staff council members from the Vienna State Opera Orchestra, and a representative of the Vienna State Opera's management." \- [http://web.archive.org/web/20141203022823/http://slippedisc....](http://web.archive.org/web/20141203022823/http://slippedisc.com/2014/11/pictures- at-an-audition-for-the-vienna-philharmonic)

<comment><USER3> When auditioning, would the applicant know which pieces of music they will be required to perform beforehand? I am assuming that they do, which would make it very different from 'whiteboarding' from a software engineering interview.

In software engineering interviews, most of the time the interviewer will try to have prepared questions that the interviewee has NOT seen before. To make it more like an audition, the questions would need to be provided beforehand so that the interviewee could practice them.

<comment><USER4> It's not unusual for auditions to music schools to include either 'prima vista' \- where you play from the sheet - or 'secunda vista' \- where you get a few minutes of prep time.

<comment><USER5> I auditioned at a number of schools and prima vista was the only thing.

At a few of the auditions they would interrupt you if it appeared that you knew the piece and give you something else.

Honestly rather annoying. Even though I entered teaching, I did a lot of time in the pit and sight reading was never a skill that was needed. I can understand the need to weed out people with no/basic reading skills, but the idea that you need to be high-level fluency (particularly with oddly notated pieces!) is nonsense.

The worst part was that most students just gamed it. They would purposely ritard some part just to make it look like they weren't familiar with a piece they could play blindfolded. The net result is that the school I ended up selecting had a number of non-fluent readers that wasted everyone's time at some point because they were so slow!

/rant

</comment></comment></comment></comment><comment><USER6> Chemistry has whiteboarding, but instead of writing algorithms or code, you're expected to be able to draw structures, reactions, and synthesis. It's also similar in that this is not necessarily a core part of most chemists everyday job, but something you study for to be able to interview or give presentations regarding your research.

<comment><USER7> I've never heard of whiteboarding a chemical reaction mechanism. Usually since most chemists at a comparable 'engineering level' to programmers are phds, a seminar is expected, and the candidate has something ready to go. It's an opportunity for the team to learn something new while assessing the critical thinking skills of the candidate during the q&a

<comment><USER8> I've witnessed it in the post-seminar lab visits. It bears little resemblance to the "whiteboard interview" from the developer world, but if you're visiting with a faculty member after you present your work, they may ask you to help them understand some piece of your work by drawing out the mechanism.

I'll disagree with the GP, though, on its applicability to "real-world" work. When I did chemistry, diagraming out a reaction mechanism and pondering it over with colleagues gathered in front of the chalkboard was a daily activity.

<comment><USER7> sure, but it's not like the employer tells the prospective employee to figure out a mechanism that is not related to the employee's former work (for example, a reaction recently discovered in the employer's lab, or a general reaction that "all good organic chemists should know" \- like "show me how dansihevsky's diene works, and apply it to the synthesis of this molecule that you've never seen before") Hah damn. I don't want to give the chemists ideas.

</comment></comment></comment></comment><comment><USER9> I haven't experienced it, but I've only had a couple interviews/jobs as an electrical engineer before switching to software, where they happen almost every time.

I think it's a sign that universities are failing to be trusted as credentialing institutions. You should be able to verify a degree and conclude from that the person learned the material.

I guess this is why the professional engineering exams exist.

<comment><USER10> Completely just my opinion, but I think this is because most people (both employers and potential employees) are focusing on the more vocational aspects of programming, whereas university is more theory-based.

I know that I would not have gotten as much out of my degree if I hadn't had prior experience with programming prior to university. It's tough to appreciate why complexity analysis is important if you've never personally experienced a program running slow because you chose a poor algorithm.

And most employers aren't looking for that level of theoretical knowledge. They're looking for people who can quickly get up to speed with the development environment, who can break down a problem into smaller logical chunks, and who can translate those chunks into working code.

If neither employers nor students care about the theoretical knowledge, then what is the point of going for that degree? (IMO, the best course of action would be a few years of on-the-job training, then going to university once you have enough experience to appreciate the theoretical stuff. But that would be a huge culture clash with how things are currently done).

<comment><USER11> I could not disagree more strongly that university is theory-based. The three- class theory sequence I took was a mildly annoying sideshow. The meat of my university's CS program was in Networks and Distributed Systems, Database Systems, Operating Systems, Programming Languages, Functional Programming, Computer Security, Parallel Computing, Sensing and Perception, Machine Learning, Graphics, Scientific Visualization, etc.

Each had a lecture/exam component, but it was minor. The classes mostly centered on a set of programming projects, implementing foundational components in the topic area from a specification and a skeleton. (IRC server, TCP stack, IP router, Paxos, Byzantine Generals, Raft, b-trees, query parser, thread scheduler, syscalls, filesystem, interpreter, RSA, D-H key exchange, authenticated encrypted channel, concurrency primitives and then concurrent algorithms that use them, sensor fusion, geometric transformations, shading, texture mapping, ray tracing, etc). No one I know took _all_ of these classes, but we all took most of them.

Proofs are theoretical knowledge. Hobbes, Locke, and Rousseau are theoretical knowledge. I did plenty of that too. This isn't theoretical knowledge, it's breadth. It's knowing what's involved in the systems adjacent to the code we write, inside the libraries we rely on. It's an understanding of what problems they're solving internally, why they might be acting up, and what to do about it. It's demystifying the rest of the computing environment, pulling back the curtain on abstractions. It's a whole bunch demonstrated ability to write complex programs for complex purposes subjected to rigorous test suites, under far more realistic conditions than any whiteboard interview.

A few years of on-the-job training will teach you what matters for your specific job, right now.

Though we didn't have such a class, a degree capstone might have been "given a CPU emulator, write a secure distributed database engine on your network stack in your SML interpreter on your operating system." It wouldn't have the performance optimizations that modern, widely-used components have accumulated over the last half-century, but it would work.

<comment><USER12> jeez, what uni is this? I kind of like the sound of it.

<comment><USER11> The University of Chicago. [0]

[0] [http://collegecatalog.uchicago.edu/thecollege/computerscienc...](http://collegecatalog.uchicago.edu/thecollege/computerscience/)

<comment><USER12> i'm doing my MSc now at a decent uni, i kind of wish i did my undergrad at a decent one too.

oh well.

</comment></comment></comment></comment></comment></comment><comment><USER13> It kills me that "whiteboarding" has become shorthand for "bad developer interview technique". Meanwhile I'm over here whiteboarding my ass off as a communication tool for complex systems where its much more effective to walk someone through it as you draw it than to present pre-made slides. I love whiteboarding.

<comment><USER14> Whiteboarding or any way of writing notes/diagrams on paper or on any sharable medium is an extremly good communication tool, no one would say otherwise.

Said that, it is ALSO a very bad developer interview technique.

Think if anytime you use it to communicate with a team coworker you had to feel like "I must make this good in these next 20minutes or I am getting fired" (with the bonus of not knowing what the whiteboarding will be about) and this is how feels a potential candidate when doing these types of interviews

<comment><USER15> Being able to work under pressure is also a skill.

</comment></comment></comment><comment><USER16> I've found the interview process for management consulting roles to be surprisingly similar to tech interviews.

Most interviews are presented as cases[1] where students/applicants have to analyze and propose a strategy to handle example client situations in ~60m.

I've found that the people who have the most success with the interviewing process are the ones who do the most mock and focus on optimizing their skill- set for the interviews, rather than for the actual positions (which is unfortunately similar to tech recruiting and algo/whiteboarding problems).

There is also a ton of online case prep[2] and training materials specifically for the interview process, akin to CareerCup/CTCI/HackerRank/etc.

[1][https://en.wikipedia.org/wiki/Case_interview](https://en.wikipedia.org/wiki/Case_interview) [2][http://www.consultingcase101.com/tag/free-sample- case/](http://www.consultingcase101.com/tag/free-sample-case/)

<comment><USER17> Agreed on your comment (ex software dev, now management consultant)..

In MC, the delivery of the case is extremely important (how you structure the solution, how you speak, how you present yourself, etc.). Your point on people optimizing is spot on. Some students spend 10-20 hours a week practising before a McKinsey, Bain, BCG interview..

When I'm building cases and interviewing people, I try to structure it around a real life problem we have (e.g. a wood/fiber B2B company wanting to go B2C) which makes it less awkward than solving random algorithms.

However, I'm still not satisfied with the process, so wondering if people have ideas ?

I thought about giving a case to solve at home, but we're missing the part of how an applicant will react with a lot of pressure and in front of clients :/

<comment><USER18> Hey, cool story! May I ask how you got into MC? How old where you? How long have you been a Software Dev? Did you do an MBA?

</comment></comment></comment><comment><USER19> It's really sad to me that whiteboard is thought of as an interviewing tool. Opened this thread thinking "cool, maybe there are some brainstorming techniques I haven't heard of from other industries" and there's only stuff about interviewing techniques.

Maybe I can help. If I need to explore some ideas and there's no whiteboard handy I write on the windows instead. Gotta be prepared when inspiration hits!

<comment><USER20> extra-points for using permanent markers if whiteboard markers are not handy

</comment></comment><comment><USER21> I had whiteboarding with aeronatuical engineering. Had to draw out pressure velocity graphs along a turbofan engine and describe exactly what happened every step of the way and why it happened,

</comment><comment><USER22> I work as a snowboard instructor. Training. Certifications. Interviews. The job itself. It's White and Board all the way down.

</comment><comment><USER23> Another relevant question - does "Sports/competitive <field>" (similar to Competitive Programming, i.e. Olympiad and code/hacker/lity/rank sites) thing exist at all? Such that the tasks are completely different to what one might expect to do on the job.

So e.g. if there is a "Competitive Bridge-Engineering" and the problems are completely different compared to bridge-engineers day job.

To continue this theme - in case you have an opening for bridge engineer - isn't it enough to discuss the previous 5 bridges the candidate has built and maybe also discuss the _relevant_ details the current bridge project entails? Do such bridge-engineers also get irrelevant questions?

<comment><USER24> > if there is a "Competitive Bridge-Engineering

Not really related to job interviews, but West Point used to do a bridge engineering competition (maybe they still do) where you downloaded a software package and had to design a bridge that could withstand the highest load for the smallest cost. It was pretty accessible and kind of fun to mess around with. I never submitted any solutions, but I think the prize was a scholarship.

</comment></comment><comment><USER25> Not "whiteboarding" as such, but during my wife's last job search as a UX/UI designer, she was required to participate in a series of design exercises as a part of the evaluation process. Usually these were in the middle of a series of interviews; and typically those involved a few hours' work mocking up a series of high-level designs -- wireframes, interaction flows, etc. Unlike a whiteboarding exercise, they weren't made in a room with the interviewer.

</comment><comment><USER26> Yes. In my recent Electrical Engineering interview, I didn't literally whiteboard but we did go over some simple problems that a person at my point in college should know.

</comment><comment><USER27> When interviewing for a field tech (electrical TS&R work) position I've been put in front of unfamiliar equipment to troubleshoot.

Some companies will end up sending you for testing. Which normally have less than a 5%-10% pass rate.

Although the entire process is far more pragmatic than programmer interviews from what I've seen here. I was also able to expect far more replies back with results than programmers do here.

</comment><comment><USER28> EE occasionally has simple circuit stuff on a whiteboard.

</comment><comment><USER29> Teaching has blackboarding. You pass only if you can write completely unintelligible complicated formulas in the tiny margins of something unrelated.

</comment><comment><USER30> Whiteboarding in the design sense, or interview sense?

</comment><comment><USER31> I kind of wonder whether forestry engineering has it? as mgberlin says chemistry makes sense, process engineering also seems like it would make sense.

But i /feel/ that larger scale (civil, etc) would not? I mean i kind of imagine civil, forestry, etc would be more portfolio driven?

<comment><USER32> I think some of the physical engineering disciplines are at least partially gate-kept and signal applicant value through membership to professional organizations and certifications (FE & PE exams, etc.)

</comment></comment><comment><USER33> Other engineering fields have exams, certifications, and licenses strictly controlled by professional boards and/or the government.

</comment><comment><USER34> As an EE, never beyond systems layouts, but it was to guide a discussion...not a test</comment>


The way we eat is killing us – and the planet - cirrus-clouds https://www.theguardian.com/commentisfree/2019/jan/28/global-food-killing-humans-planet-climate-change-obesity <comment> cirrus-clouds I know this can be a divisive topic, but here's some more food for thought on the subject.

In the 'west' we are conditioned into thinking daily meat consumption is a natural state of affairs. But actually, we are eating more meat today than at any time in the past.

A 2011 report by the PBL Netherlands Environmental Assessment Agency found that:

\- average EU consumption of animal products was twice the global average

\- per-capita consumption of animal products in Europe has increased by around 50% over the 1961-2007 period

\- the energy intake and protein intake from animal and vegetable products in the EU are higher than recommended in WHO guidelines – for protein by as much as 70%

Source: _The protein puzzle: The consumption and production of meat, dairy and fish in the European Union_ [https://storage.googleapis.com/planet4-eu-unit- stateless/201...](https://storage.googleapis.com/planet4-eu-unit- stateless/2018/08/dd8a16f3-dd8a16f3-protein_puzzle_web_1.pdf)

This more recent collection of data by _Our World in Data_ (2017) shows the staggering rise in meat production and consumption worldwide. The mind simply boggles at the sheer scale of the animals killed for human consumption e.g. more than 1.4 _billion_ pigs slaughtered globally in 2014 for meat. (I'm a meat eater in case you're wondering.)

In the 'west', the cheap meat prices and abundant supply at the supermarket are impossible to resist. Changing our diet doesn't mean giving up meat but it does mean reducing consumption substantially. How many of us are willing to make that change?

[https://storage.googleapis.com/planet4-eu-unit- stateless/201...](https://storage.googleapis.com/planet4-eu-unit- stateless/2018/08/dd8a16f3-dd8a16f3-protein_puzzle_web_1.pdf)</comment>


The Startup Founder's Guide to Analytics - <AUTHOR> https://thinkgrowth.org/the-startup-founders-guide-to-analytics-1d2176f20ac1 <comment><USER2> That's not very techy is it?</comment>


A Long Peek into Reinforcement Learning - <AUTHOR> https://lilianweng.github.io/lil-log/2018/02/19/a-long-peek-into-reinforcement-learning.html <comment><USER2> I'm currently studying this topic (preparing an online course about it actually) and here are the best resources I found so far:

Full Courses

\- From David Silver: [http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html](http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html)

\- From Yandex: [https://yandexdataschool.com/edu- process/rl](https://yandexdataschool.com/edu-process/rl)

\- From Sergey Levine: [http://rail.eecs.berkeley.edu/deeprlcoursesp17/index.html](http://rail.eecs.berkeley.edu/deeprlcoursesp17/index.html)

Articles:

\- Q-learning on Taxi-v2, very good basic explanation: [https://www.learndatasci.com/tutorials/reinforcement-q- learn...](https://www.learndatasci.com/tutorials/reinforcement-q-learning- scratch-python-openai-gym/)

\- Q-learning and DQN, goes a bit further: [https://neuro.cs.ut.ee/demystifying-deep-reinforcement- learn...](https://neuro.cs.ut.ee/demystifying-deep-reinforcement-learning/)

\- "Pong from Pixels from Karpathy", introduces DQN and PG: [https://karpathy.github.io/2016/05/31/rl/](https://karpathy.github.io/2016/05/31/rl/)

Baseline implementations:

\- "RL-Adventures", super clean Pytorch implementations: [https://github.com/higgsfield/RL-Adventure](https://github.com/higgsfield/RL- Adventure) (DQN) and [https://github.com/higgsfield/RL- Adventure-2](https://github.com/higgsfield/RL-Adventure-2) (PG)

\- Repo for the Deep Reinforcement Learning Nanodegree: [https://github.com/udacity/deep-reinforcement- learning](https://github.com/udacity/deep-reinforcement-learning)

\- stable-baselines, a better documented fork of OpenAI baselines: [https://github.com/hill-a/stable-baselines](https://github.com/hill-a/stable- baselines)

If you have more high-quality resources please share! :D

<comment><USER3> I'm a TA for a RL class and would love to hear more about your online course. If you have any content that's ready for viewing, that would be great.

</comment></comment><comment><USER4> Cute, but insufficient to understand unless you already understand the concepts and deep mathematics involved.

It doesn't tell you _why_ these methods work at learning so many problems. It only tells you _how_ they work which is not enough and will bite you the moment you fall into a pitfall. (and there are many more than mentioned)

And most importantly, it doesn't tell you how to construct working fitness/target functions or why some generic ones work or don't, and when.

<comment><USER5> >In this post, we are gonna briefly go over the field of Reinforcement Learning (RL), from fundamental concepts to classic algorithms. Hopefully, this review is helpful enough so that newbies would not get lost in specialized terms and jargons while starting.

Read the mission statement at the very top. This isn't supposed to be Sutton and Barto.

<comment><USER6> "This isn't supposed to be Sutton and Barto"

It reads quite a lot like a synopsis of Section I of Sutton and Barto, down to the ordering of the section headings. Not that the writing isn't clear and concise, but it reads more like a cheat sheet than like serious exposition.

Sutton and Barto available below [0] for comparison. The google drive link comes from Sutton's website [1] so I think it's kosher from a copyright perspective.

[0] [https://drive.google.com/file/d/1opPSz5AZ_kVa1uWOdOiveNiBFiE...](https://drive.google.com/file/d/1opPSz5AZ_kVa1uWOdOiveNiBFiEOHjkG/view)

[1] [http://incompleteideas.net/book/the- book-2nd.html](http://incompleteideas.net/book/the-book-2nd.html)

</comment></comment></comment><comment><USER7> Dupe: [https://news.ycombinator.com/item?id=17924936](https://news.ycombinator.com/item?id=17924936)</comment>


Amazon is going to kill the Dash button - <AUTHOR> https://www.bing.com/s/www.cnet.com/news/amazon-is-going-to-kill-your-dash-button/ <comment><USER2> URL doesn't seem to work. This is the article [https://www.cnet.com/news/amazon-is-going-to-kill-your- dash-...](https://www.cnet.com/news/amazon-is-going-to-kill-your-dash-button/)</comment>


Compare the Best SMM Panels Comparesmm.com - <AUTHOR> https://www.comparesmm.com/ <comment><USER2> [http://socialpanel.io](http://socialpanel.io) is the best SMM panel

</comment><comment><AUTHOR> Hey HN, likely this is a complicated topic, but i am sure most of you already used a SMM Panel before.

Well i do, and honestly its a pain to compare their services because there are so many of them!

This is why i created: [https://CompareSMM.com](https://CompareSMM.com)

A site that lists several recommended SMM Panels and their current services, based on panels i've used and some i've got recommended by others. You can pick a category like Instagram or Tik Tok and directly compare the different panels.

\---

Do you have a good experience with a SMM Panel i am missing? Let me know!</comment>