Show HN: Mojulo – Pixelated Math Rendering Sandbox Toy - <AUTHOR> http://maxbittker.github.io/Mojulo/ <comment><USER3> attempt at some water droplets:

[http://maxbittker.github.io/Mojulo/#MTAgICsgMTY1ICogc2luKDIu...](http://maxbittker.github.io/Mojulo/#MTAgICsgMTY1ICogc2luKDIuNSsgKHktNTApIC8gMjYgKSArIDkwKnNpbiggdGltZSowLjcgLSAoKDAuMSooIHggLSA1MCApXjIgKyAoeS01MCleMiApXjAuNDUpICkgLSAyNTUgKiAoMSArICgoKHgtMSkgJSA1MCkgLSAoeCAlIDUwKSkpICogKDEgKyAoKCAoeSszMC0odGltZSUxOCktMSkgJSAxMCkgLSAoICh5KzMwLSh0aW1lJTE4KSkgJSAxMCkpKSAqICgoeSU1MCkgKyAoNTAteSklNTAp)

<comment><USER4> This is freaking awesome.

</comment></comment><comment><USER5> I like the time element! A friend from my old days got really into algorithmic art ([http://dahart.com/paper/hart_evomusart_2007_paper.pdf](http://dahart.com/paper/hart_evomusart_2007_paper.pdf)) you should consider including exp/ln and others. He's got some nice examples on his webpage ([http://dahart.com/blot1.html](http://dahart.com/blot1.html)).

<comment><AUTHOR> Thanks, these are inspiring. Makes me want to add genetic mechanics.

</comment></comment><comment><USER6> Here is a basic thobber:

      ((cos(time/2)+1)*x)+((cos((time-(3.141*2))/2)+1)*(100-x))

[https://maxbittker.github.io/Mojulo/#KChjb3ModGltZS8yKSsxKSp...](https://maxbittker.github.io/Mojulo/#KChjb3ModGltZS8yKSsxKSp4KSsoKGNvcygodGltZS0oMy4xNDEqMikpLzIpKzEpKigxMDAteCkp)

Here is using the same trick to switch between two patterns:

      ((cos(time/50)+1)*(A*1000))+((cos((time-(3.141*50))/50)+1)*((x-50)^2+(y-50)^2))

[https://maxbittker.github.io/Mojulo/#KChjb3ModGltZS81MCkrMSk...](https://maxbittker.github.io/Mojulo/#KChjb3ModGltZS81MCkrMSkqKEEqMTAwMCkpKygoY29zKCh0aW1lLSgzLjE0MSo1MCkpLzUwKSsxKSooKHgtNTApXjIrKHktNTApXjIpKQ==)

Unfortunately, this trick doesn't work well with patterns with high values, and thus most animated patterns don't work.

It works like this:

      ((cos(time/p)+1)*q)+((cos((time-(3.141*p))/p)+1)*Q)

where: p is the speed of the switch (Higher is slower), q is pattern #1, and Q is pattern #2.

The cos(...)+1 part in both sections is in charge of timing. In the second part we subtract pi * p, which is half the period, from time to make it start at the half point of the cycle.

<comment><AUTHOR> thanks, I appreciated this

</comment></comment><comment><USER7> This is very similar in style to IBNIZ: [http://pelulamu.net/ibniz/](http://pelulamu.net/ibniz/) which also does audio.

There used to be a JS implementation hosted at [http://ibniz.asiekierka.pl/ibniz.html](http://ibniz.asiekierka.pl/ibniz.html) but the domain seems to have expired. The Wayback Machine has a copy though: [https://web.archive.org/web/20120121060156/http://ibniz.asie...](https://web.archive.org/web/20120121060156/http://ibniz.asiekierka.pl/ibniz.html)

</comment><comment><USER8> Very fun, and the gallery is a nice touch. Here's my contribution:

      (r *(2*sin((-A*time)/10))^100)  * ((r * r ) % 2)

[http://maxbittker.github.io/Mojulo/#KHIgKigyKnNpbigoLUEqdGlt...](http://maxbittker.github.io/Mojulo/#KHIgKigyKnNpbigoLUEqdGltZSkvMTApKV4xMDApICAqICgociAqIHIgKSAlIDIp)

</comment><comment><USER9> Thought this came out pretty well:

[http://maxbittker.github.io/Mojulo/#cip0aW1lKih0aW1lKnNpbih4...](http://maxbittker.github.io/Mojulo/#cip0aW1lKih0aW1lKnNpbih4KS0xL3RpbWUqc2luKHkpKQ)

Speeding it up (increase the first "time" to "time^9") you can see that it eventually "heats up" all the way to black, but it's a nice journey.

Edit: also this one has a nice strobe. You can strobe any pattern you make by replacing a time with some variant of B*sin(time/C) where B and C are appropriately chosen coefficients.

[https://maxbittker.github.io/Mojulo/#MTAwKnNpbih0aW1lLzEwKSp...](https://maxbittker.github.io/Mojulo/#MTAwKnNpbih0aW1lLzEwKSpyICUgMTAwMDA=)

</comment><comment><USER10> Nice! After playing with it for a bit too long, this was my favourite:

        sin(time * 0.2) * cos(time * 0.1) * (125+125*sin(0.01*(2 + sin(0.6*time)*cos(0.4*time))*((- 50 + x + 20 * cos(0.5*time))^2 + (- 50 + y + 20 * sin(0.3*time))^2)))

<comment><AUTHOR> Neat! Haven't teased anything like this out of it yet so thanks for sharing, I'll add it to the gallery. Linking works by the way:

[https://maxbittker.github.io/Mojulo/#ICAgIHNpbih0aW1lICogMC4...](https://maxbittker.github.io/Mojulo/#ICAgIHNpbih0aW1lICogMC4yKSAqIGNvcyh0aW1lICogMC4xKSAqICgxMjUrMTI1KnNpbigwLjAxKigyICsgc2luKDAuNip0aW1lKSpjb3MoMC40KnRpbWUpKSooKC0gNTAgKyB4ICsgMjAgKiBjb3MoMC41KnRpbWUpKV4yICsgKC0gNTAgKyB5ICsgMjAgKiBzaW4oMC4zKnRpbWUpKV4yKSkp)

</comment></comment><comment><USER3> zoomy checkerboard by summing a few sinusoids

[http://maxbittker.github.io/Mojulo/#NDAqKHNpbigoeC01MCkvKDQr...](http://maxbittker.github.io/Mojulo/#NDAqKHNpbigoeC01MCkvKDQrc2luKHRpbWUvMikpKSArICgxLzMpKnNpbigzKih4LTUwKS8oNCtzaW4odGltZS8yKSkpICsgKDEvNSkqc2luKDUqKHgtNTApLyg0K3Npbih0aW1lLzIpKSkpICogKHNpbigoeS01MCkvKDQrc2luKHRpbWUvMikpKSArICgxLzMpKnNpbigzKih5LTUwKS8oNCtzaW4odGltZS8yKSkpICsgKDEvNSkqc2luKDUqKHktNTApLyg0K3Npbih0aW1lLzIpKSkpIA==)

</comment><comment><USER11> Behavior becomes more interesting if you replace (in any formula) time with (time+sin(time)) - and, more generally, with (time+k _sin(w_ time))

</comment><comment><AUTHOR> I encourage people to check out and contribute to the gallery, I built this because I wanted to see the amazing things people come up with!

<comment><USER3> here's one:

      10*((((100-x)^2+y^2)^0.5 + time) % 10) + 10*((((x)^2+y^2)^0.5 + time) % 10)

<comment><AUTHOR> linked for the lazy:

[https://maxbittker.github.io/Mojulo/#ICAxMCooKCgoMTAwLXgpXjI...](https://maxbittker.github.io/Mojulo/#ICAxMCooKCgoMTAwLXgpXjIreV4yKV4wLjUgKyB0aW1lKSAlIDEwKSArIDEwKigoKCh4KV4yK3leMileMC41ICsgdGltZSkgJSAxMCk=)

fantastic effect! One of my favorites today, thank you. Quick question - <USER2> you think that I should refine the gallery formatting to include attribution? It's a bit of a "discovery vs invention" type quandary

<comment><USER12> Just wanted to mention, that gallery link is barely noticeable because of the blue color. I didn't notice it on multiple visits till you mentioned there was a gallery.

Changing the link color should fix it.

<comment><AUTHOR> haha it's always been purple for me because it's a clicked link! no wonder nobody can find it. thank you

</comment></comment></comment></comment></comment><comment><USER4> Ok, I'm getting addicted.

[http://maxbittker.github.io/Mojulo/#LTIwMDAwMDAwKigoc2luKCgo...](http://maxbittker.github.io/Mojulo/#LTIwMDAwMDAwKigoc2luKCgoeC01MCkqKHgtNTApK3kqeSleMC41LzUtdGltZS84LjA5KStzaW4oKCh4LTUwKSooeC01MCkrKHktMTAwKSooeS0xMDApKV4wLjUvNS10aW1lLzUpKzIpLzQpXjIwMA==)

</comment><comment><USER4> I like interference:

[http://maxbittker.github.io/Mojulo/#MTI3MDAwMCooY29zKHIvNi10...](http://maxbittker.github.io/Mojulo/#MTI3MDAwMCooY29zKHIvNi10aW1lLzEwKS9yK2NvcygoeCp4Kyh5LTEwMCkqKHktMTAwKSleMC41LzYtdGltZS8xMCkvKHgqeCsoeS0xMDApKih5LTEwMCkpXjAuNSsxKQ==)

</comment><comment><USER13> This looks kind of cool:

rand()/rand() * cos(time)^2 * 127

and

rand()/rand() * cos(time/rand())^2 * sin(time/rand())^2 * 127

</comment><comment><USER6> Flames: [http://maxbittker.github.io/Mojulo/#KC0zMCt5KygoKHNpbigoeC0x...](http://maxbittker.github.io/Mojulo/#KC0zMCt5KygoKHNpbigoeC0xMCkvNStzaW4odGltZSt5LzYpKSoxMDApKzEwMCkpKi0xKQ==)

</comment><comment><USER14> Very cool! If you combined this with something like blockly[0] I bet it'd inspire quite a few kids.

[0]: [https://code.google.com/p/blockly/](https://code.google.com/p/blockly/)

<comment><AUTHOR> good idea! this project was partially inspired by math classes spent in high school plotting pretty polar functions on my graphing calculator instead of paying attention to trigonometry... I'm not sure that mojulo in it's current form will be a useful educational tool but I think that toys similar to this are a great way to impress upon kids a sense of different functions they usually only encounter on paper

</comment></comment><comment><USER15> I've been CNCing algorithmic output a lot lately. I write something very similar (no time component, but basically evaluated over the unit square.)

This stuff is a ton of fun!

</comment><comment><USER16> (sin(-x * y) / cos(x * -y)) ^ (time % (r + A))

</comment><comment><USER3> kinda psychedelic -- stare at it for a while:

[http://maxbittker.github.io/Mojulo/#MjUwICogKCgoKCh4LTUwKV4y...](http://maxbittker.github.io/Mojulo/#MjUwICogKCgoKCh4LTUwKV4yICsgKHktNTApXjIpKjAuMjUpICUgKDEuMSt0aW1lLzEwMDAwLjApICleMTApIC0gKCgoKCh4LTUwKV4yICsgKHktNTApXjIpKjAuMjUpICUgKDEuMDI1ICsgdGltZS8yMDAwLjApICleMjApXjEw)

</comment><comment><USER17> sin(r/x) * y * time^2+rand()^y is a nicely non-repeating result

</comment><comment><USER18> x * y * (sin(x+time) * cos(y+time) * time/2)

<comment><AUTHOR> cool, my slight modification: [http://maxbittker.github.io/Mojulo/#eCAqIHkgKiAoc2luKCh4K3Rp...](http://maxbittker.github.io/Mojulo/#eCAqIHkgKiAoc2luKCh4K3RpbWUpLzEwKSAqIGNvcygoeSt0aW1lKS8xMCkgKiB0aW1lLzIp)

<comment><USER19> More constant tweaking:

x * y * (sin((x+time)/5) * cos((y+time)/5)) * 15 + 3000

[http://maxbittker.github.io/Mojulo/#IHggKiB5ICogKHNpbigoeCt0...](http://maxbittker.github.io/Mojulo/#IHggKiB5ICogKHNpbigoeCt0aW1lKS81KSAqIGNvcygoeSt0aW1lKS81KSkgKiAxNSArIDMwMDA=)</comment></comment></comment>


My Most Interesting Interview Problem - <AUTHOR> http://www.austinrochford.com/posts/2013-09-10-the-most-interesting-interview-problem.html <comment><USER2> in clear probability related context, the guy uses "uniformly distributed" and "normally distributed" interchangeably. I usually fail interview with such guys.

The most recent spectacular failure happened when interviewer asked about sets, i described Java Set interface as an example (they are Java shop so i thought the choice was right), looking dissatisfied he asked to talk about "sets" in general, and got, lets say, really confused, when i tried to elicit whether he means naive set theory - seeing that i didn't hit what he wanted, i offered along the lines of Russel's theory of types, ... the guy got almost angry and said "just sets in general", and i kind of supposed that we settled on naive, though it sounded like he didn't like "naive"... he asked what we can do with a set, like for example iterate over its elements, i noted that that of course depends on the set's cardinality ... by look on his face at that moment it was really clear that the interview is finished.

<comment><USER3> It's not a good idea in an interview to antagonize your victims like this. The goal is to find out what _they_ know, not be a forum for you to show off what _you_ know. This is a very common mistake by interviewers.

<comment><USER2> I was saying it as the one being interviewed. I conduct interviews differently, in particular never give small problems, and mostly i just drill down various items on their resume (sometimes in the areas lesser known to me, so i'd learn something from the interview :) in the direction what they did, how, what alternatives were considered and why that specific design/approach was chosen over the alternatives, etc...

</comment></comment></comment><comment><USER4> For a general-purpose developer interview question, I think this relies a little too heavily on domain-specific knowledge to be generally useful.

Personally, while I was quite decent at algebra and geometry in university, my skills have atrophied significantly, to the extent that I really didn't know where to start with this problem. I don't think it represents what _most_ programmers do on a day-to-day basis, and someone with a strong math background would probably be far more capable of answering this, despite not necessarily being a better developer.

If this sort of thing represents what developers at your company would likely be doing on a daily basis, I think it could be a relevant question. Otherwise, I think a question like this is very likely to inadvertently screen out good developers.

<comment><USER5> Completely agree. While I feel I could probably figure it out given time, in an interview setting I would test badly at this question. Does that mean I'm a terrible developer? I don't think so.

Interviews are tricky to get right. It's my opinion that interviews should aim to prove that the candidate knows enough to do the day-to-day work, plus test for good personality fit etc. After that, there should be a short probation period to learn more about each other.

Honestly, my perfect interview (as a candidate) would be a quick chat about my previous work experience, some one-on-one work with another developer to solve a common problem the company faces and then a few drinks with the team to get to know everyone.

</comment></comment><comment><USER6> For the interested, the easieat way of generating random points on a circle is drawing (x,y) component-wise from a normal distribution and then normalizing the vector. (And two independent Gaussian variables can be easily sampled using the Box-Muller transformation.)

<comment><USER7> I'd rather take a random uniform distribution from 0 to pi and take it as the arc-length.

Why is your construction 'uniform' on the circle?

<comment><USER8>
        > Why is your construction 'uniform' on the circle?

That's a very good question, and the sort of thing that would need to be in a comment somewhere. The answer is that the bi-normal distribution is rotationally symmetrical, a fact that is not immediately obvious.

        > I'd rather take a random uniform distribution
        > from 0 to pi and take it as the arc-length.

That's a good solution for the simple one-dimensional circle in two dimensional space, but does not generalize to higher dimensions. The technique of drawing points from a normal distribution and normalizing works for any dimension. That's the usual follow up question when the candidate gives your (very good for the given question) solution.

How would you generate points distributed uniformly on the surface of a three dimensional ball?

<comment><USER9> For a ball, can't I just randomly generate two angles (0-2pi)?

<comment><USER10> No, because the two angles can't easily be combined to make the resulting point uniform on the sphere.

For instance, if you call one of the angles "latitude", and one "longitude", then you will get too many samples near the poles -- think about how the lines of constant longitude start out widely spaced on the equator, but then converge at the poles. This would cause points to pile up at the poles.

Your proposal hits on the nub of why this problem is hard. It is, in general, hard to generate a bunch of non-independent random variables with a prescribed distribution. In this case, it's the angles that are not independent.

<comment><USER9> Ah, of course, thanks.

<comment><USER11> you can use longitude and z (height "up the axis") (it's uniform because a ring of thickness dz at height z is of area 2pi * z * cos(lat) * dz/cos(lat) (so the latitude cancels nicely - it's a trick used for equal area map projections).

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Q for the math guys:

Is this the closed form pdf of the angle distribution of one quarter of the circle?

[http://www.wolframalpha.com/input/?i=1%2Fcos%28min%28x%2Cpi%...](http://www.wolframalpha.com/input/?i=1%2Fcos%28min%28x%2Cpi%2F2-x%29%29+%28x+from+0+to+pi%2F2%29)

 _1 /cos(min(x,pi/2-x))_

plus the normalization term to make \int(..) == 1:

[http://www.wolframalpha.com/input/?i=int+1%2Fcos(min(x%2Cpi%...](http://www.wolframalpha.com/input/?i=int+1%2Fcos\(min\(x%2Cpi%2F2-x\)\)+from+0+to+pi%2F2)

Constructed by arguing that the probability is directly proportional to the length of the hypotenuse.

<comment><USER13> It looks alright to me, but you'll have to normalise it for it to be a pdf

<comment><USER12> Yes, that's what the second link is for to normalize it. Maybe I should've made that clearer.

</comment></comment></comment><comment><USER14> Bertrand's Paradox addresses a separate issue but illustrates how subtle issues like this can be [http://en.wikipedia.org/wiki/Bertrand_paradox_(probability)](http://en.wikipedia.org/wiki/Bertrand_paradox_\(probability\)) . The geometric interpretation that the OP offered in which he noted that the map had to be area preserving is a nice way of visualizing why the given implementation doesn't hold but that's just the start. As for the implementation this is also a great example of when something is hard to do in one coordinate system but trivial in another. Polar coordinates are the way to go.

</comment><comment><USER15> To me, the answer to the actual question is so obviously "no", that I was almost confused. It's as though someone asked me, "which direction is the floor?" Anything that easy must have a trick.

So I though maybe it was related to "points" meaning actual rasterized pixels on the screen. The you get the slightly counter-intuitive result that the diagonal line actual has the _same number of pixels_ as the vertical line, and thus will produce the same density of points on the circumference. However, this line of reasoning would require that we know the lines are far enough apart that they don't overlap pixels.

</comment><comment><USER16> What kind of job was this for? After stumbling through questions involving trees, arrays and other data structures, I have come to the conclusion that I'm a mathematician dressed up as a mediocre programmer.

<comment><AUTHOR> This interview was for a data scientist position. I am also a mathematician masquerading as a programmer.

</comment></comment><comment><USER17> What are the practical applications to something like this?

<comment><USER18> Video game controllers.

DirectInput joystick data outputs a square range (0,0)->(65535,65535) which is usually uniformly remapped to a circle to be used by the game. Then you have to add in a dead zone to eliminate the noise from the controller around the neutral position.

</comment></comment><comment><USER19> Should not be described as points on a circumference?

Doing it about points in a circle made me think of a different problem (which is also interesting)

(Just to clarify, the circumference is the line that contains a circle. I assume that won't be misnamed in a geometry problem of this kind)

<comment><USER20> Canonically, a circle is the set of points equidistant from a given point (the center of the circle). The set of points inside the circle is known as a disc. Generalizing slightly, a circle is a 1-sphere and a disc is a ball in 2 dimensions.

So no, the post has it correct. In fact, circumference is the scalar value corresponding to the length of the circle. This relies on significantly more structure (i.e. having a metric) than the terms circle and disc.</comment></comment>


Multidimensional Dataflow in Lucid - <AUTHOR> https://billwadge.wordpress.com/2017/11/28/multidimensional-dataflow/ <comment><USER2> So happy to have stumbled upon this, this is truly awesome, a recounting of Lucid's creation and various details by one of its creators. Probably best to start at the beginning:

[https://billwadge.wordpress.com/2011/03/23/lucid-the- origins...](https://billwadge.wordpress.com/2011/03/23/lucid-the-origins/)

And then work your way forward. The book is also great: [http://www.cse.unsw.edu.au/~plaice/archive/WWW/1985/B-AP85-L...](http://www.cse.unsw.edu.au/~plaice/archive/WWW/1985/B-AP85-LucidDataflow.pdf)

This stuff has a very direct line to the modern "FRP" ideas (with the exception of the _actual_ FRP by Conal Eliot, which is actually quite different from what most of us call FRP, oh details...). And it's so much more cogent.

Also check out the Wikipedia page: [https://en.wikipedia.org/wiki/Lucid_(programming_language)](https://en.wikipedia.org/wiki/Lucid_\(programming_language\))

When I looked at it a while ago, I couldn't find a working implementation, so I banged on it until I got something that at least appeared to work (on OS X): [https://github.com/mpw/pLucid-osx](https://github.com/mpw/pLucid-osx)

<comment><USER3> Awesome! I'm curious to try out your implementation. When I first stumbled upon Lucid early this year it seemed fascinating, but hard to wrap my head around by just reading the examples. I searched for a version that would work on today's machines but came up short.

I was reading up on streams as found in RxJS at the time, and though I am not yet an accomplished stream-wrangler their power is clear. Streams (or something like them, since Lucid's dataflows are different) be a core part of a language struck me as a good idea, and having only heard about Reactive Extensions in the past couple years it was surprising that the first example of first-class streams I encountered was 30 years old.

<comment><USER2> > your implementation.

Sorry, I see that my words were ambiguous: it's not my implementation. I just took the existing pLucid implementation (which wasn't working) and banged on it until it worked again.

</comment></comment></comment><comment><USER4> People often say that one should learn Lisp/Prolog/Haskell to become a better programmer. Lucid and Multidimensional Lucid should definitely be added to that list. It just reconfigure your brain around loops and iteration spaces.

</comment><comment><USER5> I highly suggest reading the original book on Lucid. It completely changed my outlook on programming language design. Section 1.5 is also one of the more hilarious takes on programming culture I've come across, so if you don't read the whole thing, at least read through that little gem. A pdf of the book is linked elsewhere in this thread.

</comment><comment><USER6> Ashcroft and Wadge also once wrote of U of Waterloo tech note called (as I recall) "Of Yea? The world's first sarcastic programming language". I remember it being really funny, but the only construct I remember is the "Come From" instruction - the sarcastic analogy of GoTo which was a sort-of hot topic back then. Wish I could find a link to the paper....

</comment><comment><USER7> This reminds me of Guarded Dependent Type theory, which isn't about stream programming, but has the same dimension analysis built into it.

Guarded Dependent Type Theory (GDTT) has dimensions (called clocks), fby/sby (called later), clock quantification (to introduce new dimensions), and dimension analysis built into the type system in the form of "clocked universes" (type universes which depend on clocks). The latter is required for the semantics to make sense, but it also allows an implementation without implicit caching. In particular, GDTT does not have an analogue of first for all types, but only for those types which don't themselves depend on the clock parameter and this requires clock dependence to be tracked in the type system.

Maybe not so interesting for stream processing as is, but it could probably be extended along those lines...

<comment><USER8> > the expression 2 ∗ 3 has the sequence {6, 6, 6, 6, 6, ...}

 _cited from the book linked by yvdriess_

Where did I see that before, octave (ie matlab perhaps), erlang/elixir? I think I remember trying to limit an implicit loop by giving a scalar or an array of one element and not getting anything back because the loop was infinite.

<comment><USER8> I think I remember it was in a pixelshader language.

</comment></comment></comment><comment><USER9> Without more context it seems to be a relic from the past... Can someone give more context or point me to an implementation, online manual or tutorial? Searching in google does not return much (a wiki page and companies which use the same name).

<comment><USER4> Lucid is a functional programming language from the '80s that took a very different approach. All variables are infinite streams of values. It is a grandfather of sorts of reactive programming. Although the book title claims it's a dataflow language, the original Lucid is more a type of reduction- strategy functional language with a twist (viz. they call it Eduction).

The authors later refined the idea with Multidimensional Lucid, which replaces a slew of special forms (e.g. next, fby) and better deals with complex nested iterations, essentially by introducing a eval-at-context operator (context being a vector of dimension values). The Multidimensional Programming ([https://books.google.be/books/about/Multidimensional_Program...](https://books.google.be/books/about/Multidimensional_Programming.html?id=4f3WZaLgL9gC&redir_esc=y)) book starts with the example of transposing a matrix without touching its values.

Here's the Lucid wikipedia page: [https://en.wikipedia.org/wiki/Lucid_(programming_language)](https://en.wikipedia.org/wiki/Lucid_\(programming_language\))

The relatively ancient pLucid implementation can be found here: [https://code.google.com/archive/p/plucid/](https://code.google.com/archive/p/plucid/)

The original book's PDF can be found on various sites, such as Bret Victor's [http://worrydream.com/refs/Wadge%20-%20Lucid,%20the%20Datafl...](http://worrydream.com/refs/Wadge%20-%20Lucid,%20the%20Dataflow%20Programming%20Language.pdf)</comment></comment>


Mega-Magnet Reveals Superconductor Secret - <AUTHOR> https://www.quantamagazine.org/20160222-mega-magnet-reveals-superconductor-secret/ <comment><USER2> quantamagazine.org is always wonderful. They strike the perfect balance between accessible to the layman, and not glossing over or dumbing down the important technical details.

<comment><USER3> and are awesome at alliteration</comment></comment>


A Reactive web client for tldr-pages (ES6/FlowType/RxJS/React) - <AUTHOR> https://github.com/ostera/tldr.jsx <comment><USER2> If it meets the guidelines, this might make a good "Show HN". Guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)</comment>


90% of login attempts no longer made by humans - <AUTHOR> https://www.secureidnews.com/news-item/credential-stuffing-rules-the-day-as-90-of-login-attempts-no-longer-made-by-humans/ <comment><USER2> "Subscribe to our newsletter" popup that takes forever to load and locks up the page on load.

Insta closed.</comment>


Pro-SOPA Comcast just implemented SOPA-incompatible DNSSEC - <AUTHOR> http://www.itworld.com/security/240789/sopa-might-force-choice-stop-cyberspies-bank-robbers-and-id-thieves-or-stop-illegal-

<comment><USER2> Wow, Comcast voluntarily switched to DNSSEC even though it required them to shut off their DNS-hijacking ad servers? They just went up a few notches in my eyes. ([http://blog.comcast.com/2012/01/comcast-domain-helper- shuts-...](http://blog.comcast.com/2012/01/comcast-domain-helper-shuts- down.html))

<comment><USER3> I use Comcast (I'm in Boston) and I once called their phone support to see if I could get the "Domain Helper" disabled, and the tech had no idea what I was talking about. Switching to Google's DNS servers helped.

<comment><USER4> I had the same experience. Bumped to a manager that had me log in and disable it. A month later, it was on again.

<comment><USER5> I disabled mine a long time ago and it didn't go back on, it was very easy to do.

</comment></comment></comment></comment><comment><USER6> DNSSEC prevents spoofing (as does HTTPS), but that's about all it does that's relevant to SOPA. This may prevent a particular mechanism of SOPA enforcement, but that's easy enough for the government to work around, in theory.

<comment><USER7> Exactly. If an ISP simply returns an error for lookups of a blacklisted domain, DNSSEC shouldn't complain; it will just think there's a DNS outage.

Since no one has read it, here's the relevant text: "A service provider shall take technically feasible and reasonable measures designed to prevent access by its subscribers located within the United States to the foreign infringing site (or portion thereof) that is subject to the order, including measures designed to prevent the domain name of the foreign infringing site (or portion thereof) from resolving to that domain name's Internet Protocol address." (I wonder if I am now cursed.)

<comment><USER8> Right, I don't know know how most DNS client implementations handle time-outs but this could range from not mattering at all to degrading the performance of everything - imagine if twitter was taken down, then half the world's websites (I'm exaggerating a bit) that reference Twitter buttons would grind to a standstill (try browsing things like TechCrunch in China and you'll see this).

If ISPs wanted to avoid this scenario, it would essentially require fracturing DNS[SEC] into something the US Govt has the authority to sign properly without effecting the rest of the world - in other words a completely divided national internet.

Or we could just all switch to using DNSSEC servers on the Barbados Islands or something in the future.

<comment><USER7> I'm not talking about timeouts; I'm talking about immediately returning an error (apparently DNSSEC will break if you return NXDOMAIN, but there are other error codes). If browsers retry or hang after getting a DNS error, I guess they'll have to be fixed.

<comment><USER8> How do you mean 'break'? As I understand it, NXDOMAIN also has to be signed with a trust chain back to a root authority. I guess what I don't know enough to answer is if there are other equally sufficient error codes that don't require a trust chain (which would be surprising because allowing any non- trusted responses would seem to defeat the entire purpose of a non-tamperable DNS service)

<comment><USER9> I think that DNSSEC is more concerned with preventing DNS poisoning and man- in-the-middle attacks than with using NXDOMAIN to block access.

</comment></comment></comment></comment></comment></comment><comment><USER10> Even if DNSSEC and SOPA were mutually exclusive in all aspects (which they are not), being pro-SOPA does not mean Comcast cannot also prepare for the case where SOPA fails to pass.

</comment><comment><USER11> Does this link actually work for anyone? I'm just getting the sites home page (and don't see that story in quick scroll)

</comment><comment><USER12> I find this more interesting not from a SOPA standpoint but because comcast has in the past given me false responses instead of NXDOMAIN. Anyone happen to know if this could prevent such a thing, or at least provide a mechanism of testing for it other than blacklisting an IP?

<comment><USER13> They would have to give some kind of error code that indicates that the DNS server isn't working. Any false assertion about DNS results, including false NXDOMAIN responses, will break DNSSEC (your computer would notice that the response has been forged).

<comment><USER14> And what do you do after detecting a forged NXDOMAIN response? You still don't have the IP address you wanted.

<comment><USER15> Complain.

Look for other DNS resolvers.

(human and/or automated processes)

</comment></comment></comment></comment><comment><USER16> Props to Comcast and NOT to Congress if they pass either of these.

[http://www.securityweek.com/dnssecs-time-here-sopa- presents-...](http://www.securityweek.com/dnssecs-time-here-sopa-presents- challenges)

</comment><comment><USER17> It's actually not incompatible with SOPA. The bill demands that ISPs block DNS routing for certain domains. Returning no response to a DNS request would not break DNSSEC. It would just look like that site did not exist.

Some people have proposed that instead of blocking DNS, ISPs should redirect a DNS request. That would be incompatible with DNSSEC--but that requirement is not in the bill.</comment>


Chrome specific text-highlighting as undue advantage - <AUTHOR> https://twitter.com/siddharthgoel88/status/1280648094132998144 <comment><USER2> Other browsers can implement it but they have not: [https://chromestatus.com/feature/4733392803332096](https://chromestatus.com/feature/4733392803332096)</comment>


Stop using CSS in JavaScript for web development - <AUTHOR> https://medium.com/@gajus/stop-using-css-in-javascript-for-web-development-fa32fb873dcc <comment><USER2> CSS is hideous. Do what you want with it. Anyone claiming CSS has a "best practice" is deluded.</comment>


Show HN: Save reading time with the TL;DR PLZ bookmarklet  - <AUTHOR>

Hey all, this is a small bookmarklet my partner made last week to save short summaries of long-winded web posts. Hopefully you can help others save time by sharing your TL;DRs with the world. You can also up/downvote the TL;DRs other users post. It should work with your iPad, too.<p>http://tldrplz.com <comment><USER2> People need to stop reading so much crap and so many summaries, and learn to focus on reading a long article for 20min.

<comment><USER3> Summaries are not necessarily crap and people need some way to tell if what they're going to read is worth their time.

In reality, all this script does is make it easier for people to filter for what they want to read.

</comment></comment><comment><USER4> Have a look at tldr.it[1]. It fetches data from Delicious to TL;DR.

[1] <http://tldr.it>

<comment><USER5> Didn't load for me - the bookmarklet is stuck on "Getting data from Delicious".

</comment></comment><comment><USER6> This is really nice. I had a similar idea, but haven't felt ready to implement it yet.

I think users would appreciate it if they could keep track of what they have read and summarized. Like an archive for every article they have read. It would let users take a look into their past and let them see what kind of texts they were reading a long time ago. It would help users to remember things that they have long forgotten. Also, humans tend to like collecting and gathering.

One little thing: Why did you (or your friend) name it "TLDRplz"? Please remind yourself what TL;DR means. It's a statement, not a noun that's synonymous to "summary". I think it's annoying to see it used that way.

<comment><AUTHOR> Thanks for your remarks. If this ever gets traction, that would be a great next step.

I don't like the name either because it's atrocious grammatically and unpronounceable but, i often encounter blogs and comments that end in "tl;dr: this and that" (that's actually where the idea came from). I think it's pretty self-explanatory to the reddit / blogging crowd.

P.S. I dont know who added the "tl;dr" for the current page, but it made me giggle, thanks.

</comment></comment><comment><USER7> This is a great concept...of course, it needs many users to be effective. A couple suggestions (that you probably are already thinking about):

1 - You need a distinctive favicon, because it is so important

2 - When you submit a summary, it should show you the summaries, rather than just give you a new Captcha...it makes you think you got the captcha wrong, even though you write somewhere that it was a success. I think we've been too conditioned to think seeing the captcha change means success.

<comment><AUTHOR> \- Unfortunately you can't set a favicon to a javascript: bookmark

\- We need to show the form again because it's the only chance to make corrections to the summary. The obvious solution is to remove the second captcha. Will do ASAP, thanks

</comment></comment><comment><USER8> Why not also have an automated script for the vast majority of sites for which people don't upload their own summaries? First two paragraphs and last paragraph seem like they would do the trick 80-90% of the time.

</comment><comment><AUTHOR> link: <http://tldrplz.com>

</comment><comment><USER9> Oh, that's really neat. I can see myself using this. I hope it gets more popular :)

</comment><comment><USER10> This is really awesome... I too wanted to create a site like this... something huge like disqus... but u made it very simple and its indeed nice...</comment>


Machsend release – P2P file transfers inside the browser - <AUTHOR> http://leadthinking.com/186-machsend-release-p2p-file-transfers-inside-the-browser

<comment><USER2> A similar site based on Flash 10: <http://www.filesovermiles.com/>

<comment><AUTHOR> Cool, hadn't seen that. Unfortunately, because of a flash limitation, all the files are read into memory - so you can't go transferring huge files.</comment></comment>


New Sensor a Thousand Times More Sensitive Than Current Camera Sensors - <AUTHOR> http://www.sciencedaily.com/releases/2013/05/130530094624.htm <comment><USER2> Apparently this is a 1000x improvement over previous _graphene_ sensors -- not ccds and such in general:

[http://www.nature.com/ncomms/journal/v4/n5/full/ncomms2830.h...](http://www.nature.com/ncomms/journal/v4/n5/full/ncomms2830.html)

"Graphene has attracted large interest in photonic applications owing to its promising optical properties, especially its ability to absorb light over a broad wavelength range, which has lead to several studies on pure monolayer graphene-based photodetectors. However, the maximum responsivity of _these_ photodetectors is below 10 mA W−1, which significantly limits their potential for applications. Here we report high photoresponsivity (with high photoconductive gain) of 8.61 A W−1 in pure monolayer graphene photodetectors, about three orders of magnitude higher than those reported in the literature, by introducing electron trapping centres and by creating a bandgap in graphene through band structure engineering. In addition, broadband photoresponse with high photoresponsivity from the visible to the mid-infrared is experimentally demonstrated. To the best of our knowledge, this work demonstrates the broadest photoresponse with high photoresponsivity from pure monolayer graphene photodetectors, proving the potential of graphene as a promising material for efficient optoelectronic devices."

(My emphasis)

With thanks to these comments which helped point me in the right direction:

[http://tech.slashdot.org/comments.pl?sid=3809257&cid=438...](http://tech.slashdot.org/comments.pl?sid=3809257&cid=43888645)

[http://www.reddit.com/r/technology/comments/1fefup/graphene_...](http://www.reddit.com/r/technology/comments/1fefup/graphene_camera_sensors_said_to_be_1000_times/ca9hra8)

I was also under the (apparently correct) assumptions that current digital sensors are close to the theoretical limits (because of the number of photons available for sampling).

<comment><USER3> Yep. Current digital sensors at maximum sensitivity are measuring in the single-digit numbers of photons per photosite. They can't get much better.

</comment></comment><comment><USER4> Given that existing high-end CCD sensors already have sensitivity to _individual photons_ , I very much doubt that this new graphene sensor can beat that technology by three orders of magnitude. I don't think the laws of physics will allow for three orders of magnitude more improvement in this area.

<comment><USER5> Are we seriously there already? We really are living in amazing times.

Do you happen to have a link to some sources about this?

<comment><USER4> Sure, here are a few:

[http://www.princetoninstruments.com/cms/index.php/news/8-top...](http://www.princetoninstruments.com/cms/index.php/news/8-top- stories/222-emiccd)

<http://iopscience.iop.org/0953-4075/42/11/114011>

[http://www.andor.com/learning-academy/astronomy-an- overview-...](http://www.andor.com/learning-academy/astronomy-an-overview-of- andors-solutions-for-astronomy)

</comment></comment></comment><comment><USER6> I wonder how this translates to ISO sensitivity at a given quality level.

Certainly a 1000x improvement seems unlikely, most of the noise is electrical, but even the 10x improvement you'd expect from lower voltages would be amazing.

</comment><comment><USER7> I wonder how this will impact astronomy. I assume more energy efficient also means less need for cooling, possibly leading to cheaper low-noise sensors?

<comment><USER8> I don't think that's a given. Just like more energy efficient transistors (smaller, fewer atoms) are more susceptible to noise.

<comment><USER9> Certain types of image sensor noise is quite directly affected by temperature. An increase of 5–10 K usually doubles the dark current, for example.

<comment><USER8> Yes, of course it is affected by temperature. But the thinner the substrate could upset the signal/noise ratio faster than the gain in cooling capacity would correct for it.

The same happens in most sensors on the extremes of sensitivity, and cooling is actually a way to correct for some of that. For space based sensor pods cooling is usually the limiting factor for long term deployment.

</comment></comment></comment></comment><comment><USER10> Does this mean I'll be able to get the same image, which I currently shoot at a shutter speed of 1 second, at 1/1000 of a second?

</comment><comment><USER11> This is awesome. Why doesn't it surprise me at all? I can't see what they can use graphene for next.

Does anyone know if graphene photo-sensors carry residual charge (the reason CCDs and CMOSs capture noise)?

</comment><comment><USER12> Interesting but the signal to noise ratio might be a more important metric? Maybe it's too early to say much about that?

</comment><comment><USER13> Wow that was developed cheap ($200k)</comment>


A new way to discover Tweets - <AUTHOR> https://blog.twitter.com/2015/a-new-way-to-discover-tweets

<comment><USER2> Another good way to discover tweets would be in 3rd-party applications and web services whose use cases cannot be anticipated by Twitter.

</comment><comment><USER3> plus ça change, plus c'est la même chose

2009: [http://mashable.com/2009/10/21/google-twitter-search- deal/](http://mashable.com/2009/10/21/google-twitter-search-deal/)

2011: [http://searchengineland.com/as-deal-with-twitter-expires- goo...](http://searchengineland.com/as-deal-with-twitter-expires-google- realtime-search-goes-offline-84175)

2015: [http://www.bloomberg.com/news/articles/2015-02-05/twitter- sa...](http://www.bloomberg.com/news/articles/2015-02-05/twitter-said-to- reach-deal-for-tweets-in-google-search-results)

<comment><USER4> Yeah they keep frittering around with the idea without making it plumbing. It is for this reason they are no longer 'announcements', or news, but a: "Look, we keep our engineers busy solving problems with a short life cycle".

</comment></comment><comment><USER5> "Google App". There's an app for a search engine? Exactly of what use is it (other than searching the web, which my browser does fine)?</comment>


Facebook: FarmVille is bigger than Twitter - <AUTHOR> http://www.techradar.com/news/internet/facebook-farmville-is-bigger-than-twitter-655373

<comment><USER2> I think this comparison shows a fundamental difference between Facebook and Twitter. Twitter is really trying to find a use-case and serve a purpose that in some way adds to the productivity of this planet. Whereas Facebook's goal seems to suck as much of people's time as possible by having them do menial activities, while turning a profit. While the two companies may be in the same "industry" -- they certainly have very different missions (I think), whether they realize it or not.

</comment><comment><USER3> And most importantly - Farmville actually has an income model....

</comment><comment><USER4> "...and 1.4 million photos are uploaded a second."

I hope that's not true. ;)

<comment><USER5> Wait. Why not? Why the winky face? I'm confused by your statement.

<comment><USER4> 1.4 million photos per second. If you turn that into per day it's 1.69e11 photos (you write out the zeros).

That's just not possible.

<comment><USER6> Close. It's 120 billion per day. And with 250 million Facebook users that's 500 photos per user per day. That sounds rather a lot.

<comment><USER4> From facebooks own statistics page:

"More than 2.5 billion photos uploaded to the site each month"

<http://www.facebook.com/press/info.php?statistics>

I don't know where the article got their statistics.

</comment></comment></comment></comment></comment><comment><USER7> Both are fads. Give it another year and we'll be onto another FB app and another social network website that lets you only send 80 characters at a time (it fits into a nice *nix console window!)

</comment><comment><USER8> Facebook, and I say this with great admiration, is the devil.

First they use your friends to suck you into joining the site. Then they amuse all of your bored friends with games, then they use the games to get those same friends to lure in more FaceBook users and to market/sell things to people already there.

It's referral marketing taken to the nth degree. It's been obvious to me for some time now that it has more legs than Twitter, now it looks like it has more volume (and a better business model) as well.

(sigh)

</comment><comment><USER9> "The company also noted that one of its apps, 'Farmville', is more popular than its major rival in the social-networking world – Twitter."

Say what? How on earth is a game a competitor to Twitter?

<comment><USER10> The "its" in "its major rival" is facebook not farmville. They are saying that even some non-central and fully disposable part of facebook has more users than twitter.

<comment><USER11> This reminds me of Microsoft saying they will 'grow another Google' over the next few years (a few years ago). At the time Microsofts market cap was c.$250bn and Google's was $100bn. Now the Microsoft market cap is $264bn and Google is $186bn.

<comment><USER12> Bing might actually be heading towards a major slice of the search engine market.

Right now everyone's browser defaults to Google search. Partly this is because most people still have Win XP and when they got those the default (Windows live search) was horrible. There was a reason to switch to Google.

These days Bing's results are good enough that most normal people wouldn't bother to change their browser default if it was set to Bing.

Thanks to the good publicity it's been getting in the main stream media it looks like a _lot_ of people are going to upgrade to Win 7, including the crowd of late-adopters that stuck with XP.

All of these people will get Bing by default with their new install/computer, and a lot of them won't bother to change it.

A box you type in to get search results when you open the Internet window? Yep, I can 'google' from here. It would take a bad experience to drive these users to change their home page to Google again.

<comment><USER13> And if you see google as a search company, than this is ba news. Too bad they are an ad company.

<comment><USER12> A drop in search volume doesn't impact their content network ads, you are correct.

However I don't think Microsoft will let Google buy space on Bing to place their ads. Therefore a drop in search volume leads to a cut in ad revenue.

Even if placement on Bing for ad words was possible Google would have to give Microsoft a cut - right now they keep 100% of search revenue (minus operating costs). Unless Bing is substantially cheaper to run than Google that would work out badly for revenue per ad.

Worst of all from their perspective a drop in search volume would lead to a loss of opportunity to push news, gmail, youtube and especially maps/local search. These related properties must be benefiting heavily from their top placement in Google search results.

</comment></comment></comment></comment></comment></comment><comment><USER14> My mom doesn't get Twitter. My mom f-ing LOVES FarmVille. 'Nuff said.

</comment><comment><USER15> Why not? Farmville is both useless and stupid, while Twitter is just useless. People favor stupid time pass.

<comment><USER16> Quick textbites from people I'm interested in, that I can read at a glance from my pocket whenever I'm bored, are not useless.

If you don't understand the appeal of that I don't really think you understand Twitter.

</comment></comment><comment><USER17> The number of people on earth taking a dump every day is also bigger than the number of users of Twitter.

</comment><comment><USER18> Comparing FarmVille and Twitter is like trying to compare blunt hammer to a swiss army knife. A hammer is fun for doing simple, satisfying things like banging in nails and smash old glass window pains. Twitter, on the other hand, is like networking on acid - it's incredible & there's so much more you can do with it.</comment>


Perl 6 is fun - <AUTHOR> http://blog.urth.org/2015/11/29/perl-6-is-fun/ <comment><USER2> Naive question time. Is Perl 6 something that non-Perl developers should be looking into?

This may be inflammatory, but it's my earnest impression : as an outsider, I _really_ don't like how Perl's versioning was handled (5 vs. 6). On top of being unnecessarily confusing, it also gives an impression of complete mismanagement - fair or not.

With so many languages out there to choose from, what sets Perl 6 apart from other modern languages and ecosystems?

<comment><USER3> The goal of Perl 6 is to pull together many different things. The clarity of the original Perl, the ease-of-use of Java, the community size of experimental languages like Self, the raw performance of Bash scripting, and the safety of C++. If that's a combination that appeals to you, then go for it.

<comment><USER4> If intellectual dishonesty appeals to you ... well, you went for it.

</comment></comment></comment><comment><USER5> See [https://archive.is/UudBe](https://archive.is/UudBe) for a cached version until my server stops blowing up.

</comment><comment><USER6> I always felt that programming in perl was fun. Fun don't pay the bills though so over time I programmed less in perl. I suspect that with the perl 6 release a lot of people are starting to go back to it and having fun with it again. And like the author mentions, they improved on a lot of things with perl 6.

<comment><USER7> > Fun don't pay the bills though so over time I programmed less in perl.

I think a lot of sysadmins have made their living by writing perl for the majority of their career.

Certainly there are more people writing perl today than lisp, golang, rust, or haskell.

<comment><USER8> Admins were a bandaid for the period where insufficiently advanced software existed. The generally obstructionist principles of the profession combined with the complete lack of discipline in constructing those aforementioned Perl scripts spells doom that we (as an industry) are busily automating out of existence.

Basically, fun was had, but fun was not what anyone needed.

Anyway, that is my little digression.

<comment><USER9> >The generally obstructionist principles of the profession combined with the complete lack of discipline in constructing those aforementioned Perl scripts spells doom that we (as an industry) are busily automating out of existence.

This is probably the most arrogant statement I've heard on Hacker News as somebody who has worn both the software engineer and sysadmin hat.

"Obstructionism" is what engineers, decoupled as they are from the realities of the hardware by their VMs and containers call "due diligence". As a sysadmin, I need to be assured and ensure what you want from the software ecosystem around the ball of lint you pushed onto me will not affect other line of business applications that make the company money. That is what I am hired to do, along with fixing the whole mess when it breaks. So a little due diligence and research is necessary to make sure that everything still runs.

The reason that many of the Perl scripts a sysadmin writes show "complete lack of discipline" is also a testament to the "ooh, shiny!" mentality of many engineers. We already have a database system for reporting, so why are you scribbling out report files? We have an automated system for dealing with system restarts and service restarts, so why are you doing it in the non- standard way? Remember, by the time I see your code it's too late - it's already written and has been approved by management, and rewriting it or changing it is too expensive at this point so I have to work around your complete lack of regard for the standards that keep things running.

Just something to keep in mind next time you complain about "obstruction" and "inconsistency". I only put into place what you make, so perhaps you should spend some time looking in the mirror.

</comment></comment></comment></comment><comment><USER5> Author here. I appreciate the traffic but my server doesn't. I'm working on getting this viewable again.

<comment><USER10> Want to put an archive.is link up to lighten the load?

<comment><USER5> [https://archive.is/UudBe](https://archive.is/UudBe)

</comment></comment></comment><comment><USER11> One question I haven't seen asked in this particular thread is, can it be used in production? What type of ecosystem is available (something like CPAN) for Perl 6 and how reliable is it? Two questions I suppose, but I guess the first one is more important.

Edit:

What I really mean by "can it be used in production" is really: is anyone using it in production and what is their experience with it and their recommendations?

<comment><USER12> I think we're all waiting with baited breath for Perl 6.Stable to be released. Hopefully that'll be around Perl 6.Christmas.

For now, it's fun to see what the future will bring. I'm excited.

<comment><USER13> I'm totally not waiting. This isn't the first time Perl6 has been 'production ready' It wasn't all those years ago, and won't be in Jan 2016 either. No jobs, no deep libraries, no SDK support... The list is unending. If we'd put 1/10 the time into minor improvements to perl5 over the past 15 years we'd have most of what people seem to like about Perl6 in a language you can actually get a job. Instead we have two languages with no future instead of one...

<comment><USER12> > This isn't the first time Perl6 has been 'production ready'

I'm curious, what exactly are you talking about?

<comment><USER14> Likely 'Rakudo Star', which was advertized as a a _useful, usable, "early adopter" distribution of Perl 6_ back in 2010 (and has had regular releases ever since[1]).

[1] [http://rakudo.org/downloads/star/](http://rakudo.org/downloads/star/)

<comment><USER12> Yeah, that was my thinking, too - but no one was under the impression that Rakudo Star was anything but a sneak preview of Perl 6 - something to fiddle around with, and go, "oh hey, neat!", and not to launch a business on. It answered the question, "just what exactly are you up to?"

Here's how it was described in 2010:

 _Rakudo Star is aimed at "early adopters" of Perl 6. We know that it still has some bugs, it is far slower than it ought to be, and there are some advanced pieces of the Perl 6 language specification that aren't implemented yet. But Rakudo Perl 6 in its current form is also proving to be viable (and fun) for developing applications and exploring a great new language. These "Star" releases are intended to make Perl 6 more widely available to programmers, grow the Perl 6 codebase, and gain additional end-user feedback about the Perl 6 language and Rakudo's implementation of it._ [http://rakudo.org/2010/10/28/rakudo- star-2010-10-released/](http://rakudo.org/2010/10/28/rakudo- star-2010-10-released/)

In 2015, it's described as being in, "beta". [http://rakudo.org/2015/11/28/announce-rakudo-star- release-20...](http://rakudo.org/2015/11/28/announce-rakudo-star- release-2015-11-now-in-beta/)

Although the gp doesn't post much, they are obviously a busy, respected, and influential member of the Perl community. I'm confused why they are so doom and gloom over this amazing new language (Perl 6) that is nearly a stable release.

<comment><USER14> _I 'm confused why they are so doom and gloom over this amazing new language (Perl 6) that is nearly a stable release._

Cf various rants by chromatic, eg [http://www.modernperlbooks.com/mt/2013/02/goodnight- parrot.h...](http://www.modernperlbooks.com/mt/2013/02/goodnight-parrot.html)

<comment><USER15> chromatic is hardly unbiased in that respect. He has some good points, he's an insightful person and a good communicator, but IIRC he's admitted that he might be at least _somewhat_ biased in his opinions to me here on HN in the past due to his history with Parrot and the past Perl 6/Parrot issues (which is to be expected. I would doubt anyone who claimed to be unbiased with his history).

That said, his recent comments on HN regarding this issue seem to only half the time making a cogent argument, and the other half the time being pithy snipes, and at this point I'm not sure he's not working with vastly outdated information.

<comment><USER16> Are you thinking of this thread?

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

(I find particular amusement in rereading Moritz's post in that thread.)

 _I would doubt anyone who claimed to be unbiased with his history_

It's certainly possible that a mysterious GitHub error revoked my commit access late one night, but the timing seems suspicious. I'll own up to my mistakes, but the rewriting of history seems unfair.

<comment><USER15> > Are you thinking of this thread?

With regard to you admitting bias? I don't recall specifically, we discussed it in depth a few times, so it could very well have been a feeling I left with and not a specific statement (and I'll fully admit I might have been projecting).

> I would doubt anyone who claimed to be unbiased with his history

What I meant was that was that anyone who has a complicated past where they feel misrepresented and that they were treated unfairly is bound to be biased in some way, and to claim otherwise would show a lack of introspection. It wasn't meant to be insulting, or something I thought you should feel the need to defend, it's more a general worldview of mine. Bias is hard to overcome and harder to eliminate. There's plenty of things I would like to think I'm unbiased about, but in reality I'm probably not.

I'm getting a strong feeling of Deja Vu. I think we may have had this discussion or one like it previously.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> I loved Perl 5. Now when Perl 6 is out, I'm a bit confused about versioning. As far as I understand, perl 6 files are of .pl6 extension. Why would that be different from regular .pl, giving that it's just a new version of a language? I mean, I have never seen things like .js5, .php6, etc. Next, is `use v6;` mandatory? Quite confusing. Am I allowed to do `use v2;`?

<comment><USER18> The extension is not mandatory. Usually people use .p6, but you can also use .pl . Notice that I've never seen .pl6.

'use v6;' is not mandatory either, but it allows your program to display an helpful error message if you try to run it with the perl 5 interpreter. Try "perl -e 'use v6;'", you should get:

        Perl v6.0.0 required--this is only v5.20.2, stopped at -e line 1.
        BEGIN failed--compilation aborted at -e line 1.

'use v2;' will not run with the Perl 6 interpreter, but 'use v5;' will work, as the Perl 6 interpreter is specced to be able to run Perl 5, albeit with certain limitations (no XS, for instance).

<comment><USER14> _Notice that I 've never seen .pl6_

Check your Rakudo's _tools_ folder.

</comment></comment></comment><comment><USER19> (I just asked on stackoverflow, but I'l try here again:)

Given that Rakudo VM is JVM based, I expected that there's some interoperability layer for the host JVM, but could not find anything.

Does someone know whether this is possible?

<comment><USER15> Rakudo isn't JVM "based", but the JVM is _one_ VM that it targets (also MoarVM, and Parrot. I imagine at some point the .Net CLR will be added). That said, take a look at this[1].

1: [https://perl6advent.wordpress.com/2013/12/03/day-03-rakudo-p...](https://perl6advent.wordpress.com/2013/12/03/day-03-rakudo- perl-6-on-the-jvm/)

<comment><USER20> There _was_ Parrot support, but AFAIK its been dead since February.

<comment><USER15> Fair enough. I struggled with how to denote my uncertainty with Parrot's status without implying it was deprecated if it wasn't, so I settled with just including it without any qualifiers.

</comment></comment></comment></comment><comment><USER21> How is Perl6 overcoming the problems that python3 is facing in moving people over from one version to the next?

<comment><USER22> The situation is really quite different. Perl 6 is a sister language, Perl 5 is still quite actively being developed, and the wait has certainly made many hesitant to begin upgrading. One thing to keep in mind is that Python 2 is just now finally starting to wane, so I am guessing that if Perl 5 does end up going the way of Python 2, it won't be for quite some time.

</comment></comment><comment><USER23> Am I the only one to have noticed?

PERL is a shuffling of REPL

<comment><USER12> This is a bit pedantic, but you wouldn't write about Perl in all caps, as it's not actually an acronym (but it is a backronym)

[http://perldoc.perl.org/perlfaq1.html#What%27s-the- differenc...](http://perldoc.perl.org/perlfaq1.html#What%27s-the-difference- between-%22perl%22-and-%22Perl%22%3F)

Welcome to the Perl subculture!

<comment><USER23> Not pedantic enough. You didn't comment on Perl being a backronym for REPL! I can't find anything out there about this either. It must therefore only be me :).

>Welcome to the Perl subculture! I was at the time also in the Slackware subculture, Church of the subgenious. It got very foobar.

Tried learning Perl since highschool, it was too much of a mindF* for me to get going with. chomp? regex! Phew.

Maybe with Perl6, it's time.

</comment></comment></comment><comment><USER24> >Perl

>fun

Pick one and choose wisely.</comment>


TMobile confirms they store passwords in plaintext, don't see why it's a problem - <AUTHOR> https://twitter.com/tmobileat/status/981418339653300224 <comment><USER3> "Well, what if your infrastructure gets breached and everyone's password is published in plaintext to the whole wide world?"

"What if this doesn't happen because our security is amazingly good? ^Käthe"

This is begging for it.

<comment><USER4> I can't fault a low-level employee too much for enthusiastically defending their company. I can't expect someone at that level to know about sound development practices.

What's often lacking though is a clear path for reporting security issues to people such as this representative. They don't have a process to flag something for the security team.

<comment><USER5> If they're storing passwords in plaintext, the reason they don't have a process to flag something for the security team is probably that there is no security team.

</comment></comment></comment><comment><USER6> This is a really common technique in the UK, especially with online banking. "Enter the 1st, 4th, and 7th characters of your password." Apparently the point is to prevent replay attacks.

The problem with telecom companies is they have customers from a wide spectrum of technical capabilities. Their systems need to be able to support the baby boomer who calls support because they can't remember their password, pin, or something...

I'm not defending these practices by any means, but these society-spanning institutions are facing challenges of balancing usability and security that many companies do not need to worry about.

If a company wants to implement a system like this, fine. But please tell me before I enter my password so I know not to reuse another password of mine.

<comment><USER7> Is it okay to sacrifice security because some members of society are either too old/dumb/misguided/whatever to bother?

At what point do we just have to leave these people behind?

<comment><USER6> As long as the institutions are insured against fraud, they have a greater incentive for usability than security.

<comment><USER8> Yeah, but when they're facilitating fraud...

</comment></comment></comment></comment><comment><USER9> LunarPages, a large web hosting company, does this too and doesn't see why it's a problem. It's terrifying.

<comment><USER10> All the other sites on [http://plaintextoffenders.com](http://plaintextoffenders.com) do

</comment></comment><comment><USER11> God, they're making matters worse--

      So, you never worked for us in Austria though. But thank you very much for sharing your opinion.

->

      Thanks for stating that you seemingly haven't understood what we're trying to tell you.

->

      Oh, I do get it. I hope you enjoyed my response

</comment><comment><USER4> One possibility could be that they store only the first four characters plaintext, and keep a hash of the whole password (which is also bad).

I wonder how this feature came to be? What were those meetings like?

<comment><USER12> Is this TMobile USA? I worked in engineering when they were still Voicestream Wireless. We were acquired by Deutsche Telekom and rebranded as TMobile. We had virtually no interaction with the European "T-Mobile."

<comment><USER13> Ummmm... the link in this thread leads to a verified "T-Mobile Austria" Twitter account, so what do you think?

Every T-Mobile (including the US one) is owned by Deutsche Telekom, but most of its subsidiaries are named differently. For example, Macedonian is called "Makedonski Telekom" instead of "T-Mobile Macedonia".

</comment></comment></comment><comment><USER14> Can we please pass a law to make it criminally negligent if you store passwords in plaintext?

This needs to end. Kinda like building a bank without locks. Insane.

<comment><USER15> How is it at all like building a bank without locks? It jeopardizes users who reuse passwords which has been a security faux pas since passwords. I feel like people dwell on this pattern of hashing passwords to show off that they know what hashing is. In the age of weekly leaks and multi gig dictionaries, assume your password is in a dictionary if not really long, high entropy, and unique to that site. Even the "gotcha" xss someone demonstrated on T-Mobiles site has nothing to do with this. If somebody has every password, they won. If they have your hash table, they still won. Yes, passwords would have to be changed site-wide, but you'd want to do that either way. At least since it's a phone company, they would know how to reach you. It's embarrassing to see another post of developers harassing a social media pr person.

<comment><USER14> Because it's a minimum level of due care. Not meeting a minimum level is called negligence.

I think most people would agree that in this day in age, leaving passwords in plain text is like not even making the effort.

If you didn't lock the doors on a bank, that would be the same thing - <USER2> making an effort, even though many criminals can pick a lock. So yes, the analogy holds up.

</comment></comment></comment><comment><USER16> Whats stopping someone from creating a list of what strings trslate to each hash

<comment><USER17> [https://en.wikipedia.org/wiki/Salt_(cryptography)](https://en.wikipedia.org/wiki/Salt_\(cryptography\))

<comment><USER10> [https://github.com/crypto101/book/blob/master/Crypto101.org#...](https://github.com/crypto101/book/blob/master/Crypto101.org#modern- attacks-on-weak-password-systems)

While that was true before GPUs

>To a modern attack, salts quite simply don't help.

Everybody should really move to key derivation functions (ideally scrypt)

<comment><USER18> What parameters do you recommend?

Is N=14, r=8, p=1 good enough?

<comment><USER19> The usual answer is to choose the parameters in such a way that targets the largest verification time that your servers can stand. I'm not aware of a recommended minimum value. In general, though, you're making a pretty good choice by choosing bcrypt, and so long as you're using the above you should have _far_ better security as compared to sha*/md5/etc

</comment></comment></comment></comment></comment><comment><USER20> So does Plusnet in the uk

<comment><USER20> Here's the proof (it's my tweeter account)

[https://mobile.twitter.com/alex_duf/status/61472768376378163...](https://mobile.twitter.com/alex_duf/status/614727683763781632)

Re-reading myself, I should have been more polite and less smug I think, the community manager never asked for that.

<comment><USER21> The company sure did, I think you handled yourself fine.

</comment></comment></comment><comment><USER16> Ag fuck Shoulda randomized

</comment><comment><USER22> Here comes the damage control [https://twitter.com/TMobileHelp/status/982334382806454272](https://twitter.com/TMobileHelp/status/982334382806454272)

Hoping this blows up. Time to short.

<comment><USER23> I'm wondering. Why would encrypting the password be any more worse than hashing ? If the private key of encryption is well kept, I don't see why they couldn't do that.

I understand though that no one being able to know the password except the user is utmost security, but why not encrypting it ?

<comment><USER24> Long story short, an encrypted password can be decrypted. There is no reasonable scenario here under which this is preferable to a non-decryptable hash. This creates a scenario where the only possible outcomes that are added involve security breaches of password texts.</comment></comment></comment>


Nike Thought It Didn't Need Amazon, Then the Ground Shifted - <AUTHOR> https://www.wsj.com/articles/how-nike-resisted-amazons-dominance-for-years-and-finally-capitulated-1498662435 <comment><USER2> alternate source: [http://www.foxbusiness.com/features/2017/06/28/how-nike- resi...](http://www.foxbusiness.com/features/2017/06/28/how-nike-resisted- amazons-dominance-for-years-2.html)

</comment><comment><USER3> Side note: I find it amusing that this was written by wsj.

</comment><comment><USER4> I'm not sure what the problem is, don't any number of retail shops resell Nike trainers?

If they want to control the sale of their products, add subscriptions, more customisation or long term loyalty features to the Nike shop. Got to play the long game surely?

<comment><USER5> My take is that Amazon has been moving upscale and is beginning to dominate the space between luxury and discount where Nike lives. By which I mean the space between $50 shoes and $900 shoes or between Campbell Chunky Clam Chowder and a chef's clam chowder at a $$$$ restaurant (as indicated by the purchase of Whole Foods).

For me, this is the space that Nike stores and Athlete's Foot at the mall operate. This is a segment of retail where Nike shoes are non-fungible. Not with other brands nor with other models. And a person with Prime membership will wait two days for "the shoe" instead of settling on something else.

That and as a publicly traded company, nobody's bonus is increased by playing the long game. In a few years, everyone in leadership is likely to be working at a different corporation.

</comment></comment><comment><USER6> Is there any way to read this without subscribing to WSJ? I tried pasting the title into Google and then clicking on the article link that showed up as a search result, but I was still unable to read the full article.

<comment><USER7> Paste the title into Facebook's search, then click the article link in the news search results.

<comment><USER8> "WSJ thought it didn't need Facebook, then the ground shifted."

Google links to WSJ articles used to show them without the paywall. Now, only Facebook links do. That's a power shift.

</comment></comment></comment><comment><USER9> paywall alert

<comment><USER10> Do we will allow paywall links on HN?

I know there was some discussion around this back in January, but I'm not sure if anything was decided?

<comment><USER7> Yes, HN allows paywall links.</comment></comment></comment>


SmartDataCenter and Manta are now open source - <AUTHOR> http://www.joyent.com/blog/sdc-and-manta-are-now-open-source <comment><USER2> Can anyone point to recommended hardware for this software? Solaris-family OS's do not have the same level of hardware support that the more popular operating systems enjoy.

I would like to see an update to this discussion, 'Hardware Recommendation -- What Do Joyent and Others Run In Production?'¹ from Feb'2013:

 _The ditches on either side of the road through the land of hardware are steep and home to manifold ferocious beasts. Stray from this golden path at your peril._

¹ [http://www.listbox.com/member/archive/184463/2013/02/sort/ti...](http://www.listbox.com/member/archive/184463/2013/02/sort/time_rev/page/1/entry/5:161/20130218134633:82C0ABBC-79FB-11E2-B214-A90A0365DAE4/)

<comment><USER3> For what Joyent uses in production, see [http://eng.joyent.com/manufacturing/](http://eng.joyent.com/manufacturing/). For what's known to be compatible, see [http://illumos.org/hcl/](http://illumos.org/hcl/).

</comment></comment><comment><USER3> If people have questions, several of us Joyent engineers are watching this thread, so fire away. We're also hanging out in #smartos and #manta on freenode.

</comment><comment><USER4> Wow! This is so unexpected.

Congratulations (and thanks!) to all the people who made this possible. I am in your debt.

</comment><comment><USER5> The list of open sourced repos, for those interested, is here: [https://gist.github.com/trentm/ce1b6a9db28665f57413](https://gist.github.com/trentm/ce1b6a9db28665f57413)

</comment><comment><USER6> Wow. It is a huge amount of work to take a product like manta and open source it. This is great work by Joyent and a testament to their commitment to open source.

</comment><comment><USER7> cool. I poked around, but couldn't see how this supports docker containers at the moment. I assume that at least for now it just runs KVM linux vms that can run docker?

Or is there a different way this is handled?

<comment><USER8> Sorry if anything was unclear -- while OS-based virtualization is very core to SDC, there's nothing specific to Docker at the moment. That said, that's definitely trying to make SDC a good fit for production Docker deployments -- and if you want a sneak peek as to some of the technological underpinnings, see our work on LX branded zones in SmartOS.[1] Expect a lot more there in the coming weeks and months; all of our work there has been (and will be!) done in the open.

[1] [http://www.slideshare.net/bcantrill/illumos- lx](http://www.slideshare.net/bcantrill/illumos-lx)

<comment><USER7> Cool. Are there any links to the project source for the LX branded zones work?

<comment><USER8> Yes, sorry -- it's all open, and lives in SmartOS, which doesn't necessarily have the most intuitive repo name:

[http://github.com/joyent/illumos-joyent](http://github.com/joyent/illumos- joyent)

If you look at the commit log, you'll see this is a very active area of development. Also, you can find us in #smartos on Freenode if you have specific questions.

</comment></comment></comment></comment><comment><USER9> opensourcing sdc is great, but opening up manta for everyone is huge! Thanks!</comment>


Octave for Android - <AUTHOR> https://play.google.com/store/apps/details?id=com.octave&hl=en

<comment><AUTHOR> Thanks to mjcohen for posting about this ( <http://news.ycombinator.com/item?id=5198369> ).

</comment><comment><USER2> The interesting bit about this to me is not the interface, but the fact that they got it running on Android. I was curious in seeing if R could be ported to Android a few years back, and thought I remember reading there were some roadblocks pertaining to getting a decent BLAS to work on Android and iOS (which doesn't have a fortran compiler, iirc). The fact that Octave runs on Android means they must've figured out how to get a BLAS running on Android. Does anyone know what it's running? NetLib?

<comment><USER3> You can easily build a Fortran compiler for Android, the NDK source code is available and it contains gfortran. The official binary NDK however has only gcc and g++ build.

BLAS and Lapack can be compiled natively for Android with gfortran.

<comment><USER4> Which BLAS though? The reference BLAS implementation? That will have terrible performance. Would be interested to see if something better like ATLAS or OpenBLAS can be compiled for it. Recent versions of ATLAS do work on ARM Linux, so wondering if those can be easily ported to Android.

<comment><USER3> Reference BLAS ...

</comment></comment></comment></comment><comment><USER5> Just what I expected, an uninspired port. The interface is.. terrible..

<comment><USER6> Any suggestions for improving it?

<comment><USER5> Take a look at Calculator++

[https://play.google.com/store/search?q=Calculator%2B%2B&...](https://play.google.com/store/search?q=Calculator%2B%2B&c=apps)

Also look at how Maple 16 does it. The keyword here is 'buttons'.

<comment><USER3> You are confusing Octave (which is a Matlab substitute where you "write" in a command window, not so much use for "buttons") with Maple ... Please stop trolling.

</comment></comment></comment></comment><comment><USER7> Ask HN: Who uses Octave? If you had access to Matlab, would you use it instead? Why not Python/R/Julia?

<comment><USER8> You would use Octave instead of Matlab because it is free as opposed to $1000 for a basic license plus additional $$ for every time you sneeze and need a toolbox.

You would use Octave/ Matlab instead of Julia, R or Python because Matlab syntax is the cleanest and most succinct way currently to articulate complex (in both senses) matrix algorithms. It isn't nearly as good for general programming, but it is much better than anything else for its niche. While some of that is obviously just fuzzy opinion, I am pretty sure you need fewer characters or LOC to say the same thing in Matlab than in the other scientific languages mentioned.

Matlab (and thus Octave) also has a HUGE installed base of engineers who don't really care that HN thinks the language du jour is X, Y, or Z and continue to use Matlab to get their work done (and will for the next 20 years). If you are working with them, you use Matlab. If you are working with them and don't have $1000 for a license, you use Octave.

Octave also has some syntactical improvements like "+=" that are missing in Matlab.

<comment><USER9> > You would use Octave/ Matlab instead of Julia, R or Python because Matlab > syntax is the cleanest and most succinct way currently to articulate complex > (in both senses) matrix algorithms...I am pretty sure you need fewer > characters or LOC to say the same thing in Matlab than in the other > scientific languages mentioned.

Julia syntax is mostly Matlab syntax with the parens-for-array-indexing replaced with square brackets. Its main shortcoming WRT Matlab is that it's a new language and a lot of things still need to be implemented, but the built- in linalg support is pretty good.

Python is also not that bad with pylab, which eliminates most of the verbosity of calling numpy/scipy functions directly, although it might still end up being more LOC than Matlab in some cases. I have only minimal experience with R, so I can't comment there.

<comment><USER8> I have used Julia, R, and Numpy/Python, the latter two extensively (10,000s of lines, if you count all the scratch work). What turned me off from Julia is that it encourages looping instead of vectorization; looping is both more verbose and farther away from the way a mathematician would articulate a problem. R is ... well, really really ugly in that 1970s way that makes me want to choke whenever I read SAS. Pylab etc is nice, but (1) I have come to detest syntactical indentation, (2) I hate zero indexing almost as badly, and (3) it can be a bit brittle in its type hierarchy -- and it is still more verbose (slightly).

So, I am back to Old Faithful. Really, I hate all languages, I just find Octave the least annoying in the mathematical programming space. (I used to love all languages, now I am old and bitter ;) )

Don't get me wrong -- lots of great ideas in all of the above languages. If Julia were to make vector / matrix thinking natural, I would switch.

<comment><USER10> sounds like you need Mathematica :)

</comment></comment></comment></comment></comment><comment><USER11> This begs the question for me, could the ipython HTML notebook* be wrapped in an Android app?

* [http://ipython.org/ipython-doc/dev/interactive/htmlnotebook....](http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html)

<comment><USER12> <http://en.wikipedia.org/wiki/Begging_the_question>

<comment><USER11> Fair enough, I used the wrong phrase. On the other hand, yours is the second reply pointing this out. Only one reply addressing the actual question I raised. I suppose I could go hang out on a logic and rhetoric forum, but that's not really my focus. Innovation and technical solutions for hard problems is. Ach schade.

<comment><USER12> Mine was the first response, and I only presented the link for your information. I don't care one way or another how you use it.

</comment></comment></comment></comment><comment><USER13> See also "Octave Remote" for iOS in the Apple App Store.

It connects to a server running in the "cloud", but unfortunately the connection times out when running under iOS 6.

</comment><comment><USER3> Looks neat on my Nexus 7! I'm curious what they've used to replace the Gnuplot functionality from the original.

<comment><USER14> The author has some other apps in the store, including a gnuplot port.

One of them appears to wrap octave and gnuplot in a more native interface:

<https://play.google.com/store/apps/details?id=com.addi>

</comment></comment><comment><USER15> Octave is a nice language for doing matrix operations, I'm glad someone made a port for Android.</comment>


When you want to quit because it's just not worth it - <AUTHOR> http://blog.asmartbear.com/startups-emotionally-draining.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/smartbear+(A+Smart+Bear:+Startups+%2B+Marketing+%2B+Geekery)&utm_content=Google+UK <comment><USER2> Great article -- both in terms of the general message and the specific story about the bully.

One thing that helps a lot in a situation like that is having advisors (or board members) you can trust to talk with in situations like this. If they all also say "you don't know the Way It Works", then it's worth listening. More likely, though, they'll say something more along the lines of "Wow, that guy's an asshole. Look, you're confident about your business model, and here are some other examples of companies who don't offer bulk discounts. He's just being a roadblock. Here are some sales techniques that might help in a situation like this."

At my startup back in the 1990s, we had gotten to verbal agreement on a $200K deal. The paperwork hit a snag and our CEO headed off on vacation to a place with no FAXes or FedEx, but no problem: I was a naiveish techie, but I wa also founder/CTO and had signing authority. So we agreed that I'd fly to their location onsite, sign the contract, and get going. Once I got there, surprise: a couple of new terms! And no, we couldn't get started without a contract.

I said, y'know, I'm not comfortable with this. They said "but that means you'll just have to turn around and fly home." The deal was pretty key to our success and I didn't want to let it go but you have to draw lines. So I called up one of my board members, who agreed. They said "stick around for lunch, let's talk this through." After lunch they decided that the new terms didn't have to be there after all. Funny how that worked.

</comment><comment><USER3> It seems like part of the problem with procurement was not clearly illustrating that a discount had been applied after all.

PM: Well I'm going to need some kind of discount. How about 30%?

Me: As it says on our website, we don't discount.

PM: But I'm buying 400 seats!

Me: Yes, and we already provide a nice discount for bulk orders, which is already included on the invoice and documented on the website.

I.e. he was wrong to say 'we don't discount'. The answer is actually - 'yes, I've already applied your discount. Because you are buying so many seats, you get our discount of x%. If you bought another y, you'd get z%'. Sounds like it could have been communicated better.

<comment><USER4> It's a cognitive dissonance issue. People will perceive more value in a discount when they are clearly shown how much they would have paid without the discount, versus how much they are paying with the discount.

Think about how good it makes you feel when you paste in a coupon code during the _last stage_ of a checkout procedure and watch the price drop to half what it was before. You can't quite believe that it has worked correctly, its that satisfying.

If you want to really milk it, write a checkout pathway with some javascript that makes the digits of the price spin round like an odometer, preferably with the sound of a slot machine paying out.

<comment><USER3> Exactly, it's as much about communication and presentation as it is about your actual business model

</comment></comment></comment><comment><USER5> Running a startup rarely makes sense. You are pushing on and on despite all warning signals telling you not to.

You barely have money left. Most of your friends have been reduced to ghosts and memories, You can't recall the last time you saw some of your family and you are constantly working. Working instead of eating, working late into the nights and beyond, working when you're supposed to be taking time of and resting. It's so easy to get tunnel vision and descending down the rabbit hole if you are not careful. Easy to forget to check if you're doing the right things properly. Easy to ignore or rationalize having blown every single deadline and budget you made.

When you compare startups with usual 9-5 salary work, it's actually amazing how much risk founders take and how incredibly hard they work. And people wonder why startup founders - the very few that actually make it - get so much more money than the employees.

<comment><USER6> I don't know if people wonder why startup founders get more money than employees. I think they wonder why the current CEO does.

Maybe it's just me, but if you have started and are running a successful company you "deserve" every cent you can keep.

</comment></comment><comment><USER7> "It is never as bad as it appears and it is never as good as it seems, and I truly believe that."

\- Bill Cowher (former Pittsburgh Steelers football coach)

<comment><USER8> A similar quote I remember: "Nothing is ever as good, or as bad, as it first appears." I don't have a source for it; it may even be a misremembered version of a misquoted version of that quote.

<comment><USER9> Maybe you're thinking of Hamlet's "There's nothing good or bad but _thinking_ makes it so." ?

</comment></comment></comment><comment><USER10> Did Jason Baptiste draw that graph? I thought Paul Graham did at the YC offices. (The one with the Tech Crunch of initiation)

<comment><USER11> It's well known to be on the wall at YC. The OP should update his attribution.

<comment><USER12> I think it was originally drawn during the Summer '08 batch, as it was already there for Winter '09.

</comment></comment></comment><comment><USER13> Wouldn't the logical entrepreneur maybe take a moment and say:

* This is a $200,000 contract.

* I can pay my own d-bag $35k / year to just yell "Smokey, This is not 'Nam. This is bowling. There are rules."

Then, if he doesn't oblige, read from this script:

<http://www.imdb.com/title/tt0118715/quotes?qt0464765>

Seems like the finances still would work out, and you can sip a pina colada on the beach somewhere instead of crying about it.

<comment><USER14> Who the hell would want a person like that in their company?

<comment><USER13> I agree, I'm just saying it's better than giving up. Sometimes founders think they have to (and can) do everything that's all.

In this particular case, a $200k contract might warrant hiring new people instead of failing...

But i'm all for the do-it-all CEO...

</comment></comment></comment><comment><AUTHOR> Has anyone reading this quit a startup because of a similar experience? Or do you want to quit your current startup??!

<comment><USER15> One of my co-founders quit during the past recession, when our sales dipped to zero in no time -- we actually had zero sales for 9 months straight.

I think he simply couldn't accept the failure, even while it obviously wasn't anything wrong from ourselves. He started resenting any minor annoyance as an act of sabotage. If I came late to the office (I've always, always came late for the past 20 years; I hardly pass the door before 11AM if not for a serious reason), if the sales guy failed to close a sale (well, good luck with that...), he lived that as a personal offence and a deliberate attempt to annihilate his own efforts.

What the article didn't mention is that this emotional burden can alter relationships and literally make the atmosphere poisonous. It's quite incredible, but an 8 persons group can be filled with petty politics, resent and conspirational talks. As a result we had a near complete reset (the team went from 8 to 2, then back to 8 in 6 to 9 months).

<comment><USER16> >> even while it obviously wasn't anything wrong from ourselves

Don't take this as belittling your efforts or your results, because I'm not trying to, I'm simply stating what is probably a fact of life. When you have 0 sales for 9 months straight, eventually somebody has to take responsibility. Preferably, that should be everyone pitching in to make one last charge up the hill, but it doesn't change the fact that someone needs to and eventually will take responsibility and blame for what happened (or did not happen, rather). This is the founder's blessing and curse, huh?

<comment><USER17> Under normal circumstances that's probably true, but in the middle of the worst financial crisis since the Great Depression, where uncertainty rules and everyone is cutting back purchases of everything until they see whether the govt will bail out the economy and how effective it will be, you can probably cut yourself some slack if your erstwhile customers are hesitant to buy from a new startup.

</comment></comment></comment></comment><comment><USER18> Startups are definitely emotionally draining, and while I would like to believe in my resiliency, if I didn't have two awesome co-founders there in the trenches with me, I'm not sure I'd still be fighting the good fight (Thanks Ricky and Mark!).

I can't seem to find all of the details about Smart Bear, but it sounds like it was a bootstrapped, solo founder operation (not sure how quickly he hired those 4 people). That amazes the hell out of me. Solo founders in general seem like magical Django ponies with how they're able to juggle and prioritize product, customers, etc. But the hardest part of being a solo founder must be not having the emotional support of a team working till all hours of the morning with you. I know Ray of Ginzametrics has said that his family is a huge help almost to the point where his wife is almost like a cofounder. Any solo founders out there, I'm interested to hear how you recharge/support yourself emotinally.

</comment><comment><USER19> After starting a family and enduring heart surgery, one learns there is no "quit".

<comment><USER5> Ugh, another frivolous down vote. Why do people do this?

Anyways, experience certainly can strengthen us and give a soothing perspective to the hardships we are enduring. IMHO this makes it all the more important that you're really into a startup because you are passionate about it and have a more solid motivation factor than just money or, even worse, desperation.

<comment> T-hawk > Ugh, another frivolous down vote. Why do people do this?

Fat fingering the downvote button? Never ascribe to malice that which can be explained by incompetence...

<comment><USER20> Malice and incompetence seem like too narrow of a spectrum. I voted it down because I found it unhelpful for the purpose of further discussion. Saying "there is no quit" strikes me as pap, and merely a meme friendly way of saying that self-doubt is never productive.

As someone feeling trapped in a business and searching for meaning and purpose, I preferred that top billing on the page be elsewhere. What do you particularly like about this response that makes you think that no one would intentionally vote it down?

<comment><USER19> Fine, I'll elaborate. Didn't have the time when I posted it.

Creating a family, one learns quitting is just not an option. No matter how bad things get, no matter how beaten down or frustrated you get, no matter how much you want out, there is no "quit". Contrasted with that the notion of quitting for lesser reasons, say because a customer's buyer is being a pain or because a long-term goal is draining, is relegated to pathetic. Doesn't mean there is never a reason to stop or change course, but "quit" is no longer a viable option in one's personal philosophy.

Enduring heart surgery puts a new perspective on life. Going to sleep knowing you really might not wake up, and being at peace with the fact, means anything else can be endured given some time and effort. Waking up knowing your heart stopped beating for several hours - to wit you've been dead - means you _have_ endured the worst that can happen. The pain (having had your chest pried open with a car jack) raises the bar way above where it was, so you know no matter how much it hurts you can get thru it.

I have a dependent family; quitting is not an option. I've been dead; all frustrations pale in comparison. So yeah: there is no quit.

<comment><USER16> What should be and what is are still unfortunately sometimes different things. Look at deadbeat parents, or worse, parents that just run off. Sad to say, there is such a thing as quit for families, even if it's not right.

Agreed that surviving anything painful/risky helps you to get through new pain; heart surgery must definitely rank up there.

<comment><USER21> How about cases where it _is_ right to "quit" the family, such as those of battered spouses or abused children?

<comment><USER16> Quitting stops the issue, but it then would often create a new set of problems (eg. income). The right thing to do is become a better person, become the solution, not the problem.

<comment><USER21> I was speaking about the perspective of the battered and abused---they are the ones who leave.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> In the context of enterprise sales/consulting, this is all pretty standard stuff. One helpful investor told us early on that everybody always wants a discount, and you have to give out discounts, so you just bake that into your price. Anything else is wishful thinking and will harm your startup.

</comment><comment><USER23> Thank you, no, really really thank you. Just got a call this morning for a negotiation round with a big pharma corporation. I would have not read this article yesterday, I would have been falling flat. So, I gave a bit, but definitely not as much as I would have if I had not read this article. Again, thank you!

</comment><comment><USER14> I'd like to imagine that if faced with such a situation, I'd pride myself with being a good person who actually creates something of value in the world, he's just some jerk peon who's doomed to live the rest of his life treating people like shit, yada yada.

But I've never had to go through anything like that. After putting your heart into something and some guy whose job is to make you feel worthless makes you feel worthless, I don't know if I could. That kind of thing can break a man.</comment>


Pop Songs Are Getting Sadder and Angrier - <AUTHOR> https://marginalrevolution.com/marginalrevolution/2020/02/pop-songs-are-getting-sadder-and-angrier.html <comment><USER2> Here's the original source: [https://aeon.co/ideas/why-are-pop-songs-getting- sadder-than-...](https://aeon.co/ideas/why-are-pop-songs-getting-sadder-than- they-used-to-be)</comment>


Gluu vs. Keycloak (2018) - <AUTHOR> https://www.gluu.org/blog/gluu-versus-keycloak/ <comment><USER2> Their first point is that RH might stop supporting Keyclosk. What happens if Gluu goes out of business... isn't that just as likely, if not more? Who is Gluu? The article compares Gluu to Ping's IPO, but I doubt the financials are the same. Sorry this is a really weak argument

<comment><USER3> This is what they say about it:

> You might say that Gluu's has just as much business risk. We could go out of > business or be aquired by a large company that hates open source. However, > from a Gluu perspective, those are risks we understand!

I'm not sure what they mean; to me it sounds like "However, from a Gluu perspective, if we go out of business we don't care about anything anyway, so it's OK!"

</comment></comment><comment><USER4> So ... can anyone comment on the assertions in there that LDAP replication is easier/better than RDBMS replication?

The data backend is not my area of expertise but in working with a competitor stack with an LDAP datastore lately the fact that the backend store was not a database, does not seem to be that performant and is not really transactional has been a pain point. Effectively having to mimic relational structures using embedded JSON in sub-attributes seems like a terrible way to carry on - I have no idea if Gluu makes you work this way, but again, the competitor seemed to.

</comment><comment><USER5> Someone tried to install Gluu? It is like the hell and very hard to get it working well.

Yeah, you will tell me "just pay for support", but I get Keycloak working with a single Docker command.

<comment><USER6> I had the same issue with Gluu a few years ago. Never did get it working.</comment></comment>


Ask HN: Strategy for Dealing with 0.5PB of Data and AWS - <AUTHOR> I work at an Neuroimaging lab which is in the middle of a transition. We have about 0.5PB of data which may grow to 1PB in next 1-1.5 years. We have limited funding to utilize AWS services to store the data.
At any time we need to have maybe around 100TB of this data be available locally for computation at a high performance computing cluster. We have ample local storage.
Funding is a big concern, so what kind of solution (based on AWS) will be most cost-effective for this scenario? Do we need to think about offsite back-up when AWS is available? Is there a resource or case study which we can learn from? <comment><USER2> There is upside and downsides to both choosing AWS or hosting it yourself.

You should choose AWS with Glacier if you and your company values agility. You will spend way less time securing, backing up and maintaining your data.

You should selfhost if you company values price, but are prepared to spend way much more time and effort in keeping it cheap at the cost of agility and innovation speed.

</comment><comment><USER3> Depending upon how frequently you need this data and what your retrieval latencies are for it, Deep Archive would cost $1,000 a month for a petabyte.

You might also look into Storage Gateway as a viable local caching solution for any of the S3 storage tiers...</comment>