A non-programmer's solution to "Fizz Buzz" - <AUTHOR> http://www.nixonmcinnes.co.uk/2012/11/30/a-non-programmers-solution-to-fizz-buzz/ <comment><USER2> Boss: I need you to write me a program to print the numbers from 1 to 100

Me: Really? Is that really a business requirement? Any other requirements you need done?

Boss: Yes, it's your number 1 priority. No, just 1 to 100

Me: <a few minutes later> Done. Give it a review and I'll push it live.

Boss: <a few minutes later> No! I said 1 to 100 and everything divisible by 3 should be replaced by "FIZZ". Why didn't you do that?

Me: I'm pretty sure you didn't ask for that, but I'll do it right now. Any other requirements than FIZZ?

Boss: Thanks for taking care of this. There aren't any other requirements.

Me: <a few minutes later> Done. Give it a review and I'll push it live.

Boss: <a few minutes later> Seriously! Why didn't you put the BUZZ in there?

Me: What BUZZ are you talking about? You only asked for FIZZ.

Me: Wait a second, are you having me program FIZZBUZZ for you? What the heck!

Boss: Yes! Somebody on the internet asked how a non-programmer like myself would solve FIZZBUZZ!

Me: Sigh...

<comment><USER3> Marketing: That's great, but can we change it so that it says now with 25% more buzz? And also get anyone who reads FIZZBUZZ to sign up for our newsletter?

<comment><USER4> Marketing: And can you add some social media buttons? That will help it go viral.

</comment></comment></comment><comment><USER5> What's very interesting here is the SICP-style recursive looping, combined with the fact that the non-programmer doesn't expect to be able to pass variables but rather expects to make stateful queries. That is, the infrastructure expected (here written in JS) is:

        var query = {};
        function print(x) {
            console.log(x);
            if (typeof x === "number") {
                query = {last_num: x, time_since: 1};
            } else {
                query.time_since += 1;
            }
        }

And given all that, they have invented a fizzbuzz() which, as its last statement in each branch, calls fizzbuzz(). I like the way that it's graphically represented but I also think those semantics are quite interesting.

<comment><USER6> I wouldn't be so quick in concluding that the long back arrow stands for recursive looping. I'd guess it's just a non-coder notation for "and then do that thing again", for which the closest equivalent in actual language would be the `while` loop (most likely infinite, as the author remarked). I don't see the meta-level of considering the algorithm/procedure as a whole here, a one that is needed for thinking in terms of recursive application.

Furthermore, the fact that non-programmer expects to be able to poll the state of everything around (like the numbers which were already printed) would indicate that in their mind, there is no separation between the program/algorithm and the environment it is executed in. (Ironically, this is completely accurate viewpoint if we're thinking at the level of actual machines, be it real ones or abstract models like Turing machines.)

<comment><USER7> I think the arrows are being though of as GOTO`s.

</comment></comment></comment><comment><USER8> This is a perfect illustration of why programming is easy if you have aptitude for it, at least on a small scale, but almost impossible if you're not. Clive is already a programmer; he just doesn't know any programming languages yet, and anyone can learn those.

<comment><USER9> Yep, he's already thinking things through like a programmer, practice is all he needs really. I'd get him started on learning python/ruby/javascript or whatever and see if he enjoys it.

</comment></comment><comment><AUTHOR> Site is down, here's a PDF of the solution: <https://nm- files.s3.amazonaws.com/clive-fizz-buzz.pdf>

<comment><AUTHOR> And if you prefer to not leave your browser, here's a Google Viewer-rendered version of that PDF: [https://docs.google.com/viewer?url=https://nm- files.s3.amazo...](https://docs.google.com/viewer?url=https://nm- files.s3.amazonaws.com/clive-fizz-buzz.pdf)

</comment></comment><comment><USER10> Hi All.

I'm Clive, Wintron's non-programmer colleague and the guy who tried FizzBuzz on the piece of paper.

I feel fascinated by the fact people are examining the approach I took, and a little flattered by the nice remarks people have made about the fact I should maybe move on to learn a programming language. Maybe I will.

If I'm honest, I don't understand all the observations people have made, but there's one I do understand, and wanted to shed some light on: the point about iteration.

The exercise reminded me of some kind of in-the-round drinking game, where everyone is determining the responses one by one, as an iteration of the last number. Consequently, this shaped the way I approached the problem.

In retrospect, I completely see that I would have been better off simply counting from 1 to 100, then translating each of the 100 numbers into how it should be displayed (Fizz, Buzz, FizzBuzz or as a number). But recreating the drinking game in my head, it made perfect sense to me that each number is determined by being an iteration of the last one. That feels to me like I count in real life.

Thanks again for taking an interest, and yes, maybe I will ask Wintron/Steve to teach me some programming!

Clive

</comment><comment><USER11> I've been thinking a lot lately about what sorts of systems "the rest of us" (where by "us" I mean "them") are able to program effectively.

One thing I've noticed is that people that don't really know programming in a hacker sense seem to have no problem creating a spreadsheet that calculates even fairly complex things (not that FizzBuzz is complicated, but see here: [https://docs.google.com/spreadsheet/ccc?key=0AnUa0E6R-- UedGd...](https://docs.google.com/spreadsheet/ccc?key=0AnUa0E6R-- UedGdiaFF3NV90MEs0cE4xVm5ZaC1ZUXc)).

I think one of the biggest factors is that users don't have to keep track of the order of operations. If you change the value in cell A1, and cell B6 depends on it, and D5 depends on it, and so on until you get to Z22, there's no step-by-step thinking about what order the calculations will be done in. Basically a change in the input is instantaneously (and automatically, transparently) reflected in the output.

Another big factor is that all state is made explicit by default.

In some ways it seems similar to functional reactive programming. The code for e.g. FizzBuzz looks crazy complicated ([http://www.lejordet.com/2012/01/fizzbuzz-with-reactive- exten...](http://www.lejordet.com/2012/01/fizzbuzz-with-reactive- extensions/)), but if you hooked it together in a GUI (sort of how Quartz Composer works on the Mac) it would probably be pretty easy to wrap your head around, and probably possible for someone with no formal programming knowledge to figure out, if not recreate.

</comment><comment><USER12> Google Cached link:

[http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.nixonmcinnes.co.uk/2012/11/30/a-non- programmers-solution-to-fizz-buzz/)

<comment><USER13> Which doesn't include the image of the solution since the server hosting the image is down.

<comment><USER14> You can click on it

</comment></comment></comment><comment><USER15> I like how instead of giving a procedure to produce the whole answer he created an induction-style algorithm that, given part of an answer, produces the next output.

Looks like "The mathematician's solution to Fizz Buzz"

<comment><USER16> Is this really an "induction-style" algorithm? (I haven't actually heard that term before.) I usually associate induction with taking some large input and shrinking it at each step until you hit some base case. This is really the opposite of induction--it starts with a base case (1) and _grows_ the output, which makes this sound a bit more like co-induction.

Another way to think about it would be that he defined a little finite-state automaton to compute the answer. You just run the automaton for as many steps as you want, noting down what it outputs each time. I think this is actually very much like what a programmer would write if tasked with solving FizzBuzz in an online streaming fashion (rather than for some bounded n).

Maybe it's just my bias towards functional programming showing, but I actually think this approach is fairly intuitive. In fact, I would have probably come up with something structurally similar (differing only in details).

<comment><USER15> You're right, it looks like co-induction the term for what I was thinking.

Is it a common FP technique to do local-state-less looping like that? I would expect a tail-recursion solution to pass the next or previous value rather than re-deriving it from reading the output.

</comment></comment></comment><comment><USER17> I don't wish to complain but does that look like an infinite loop to you?

Programs are just algorithms, a flow diagram is just a different programming language

<comment><USER18> It's an infinite loop, and the b variable isn't necessary, but it's interesting to see how a supposed non-programmer is able to structure a (near) solution.

<comment><USER7> It is actually a complete solution to the problem as stated. The only requirement are that the numbers 1 through 100 are printed, with fizz, buzz, and fizzbuzz replacing them where appropriate. It is not a requirement that that is all that the program does.

</comment></comment></comment><comment><USER19> This inspired me to do FizzBuzz in CSS: <http://codepen.io/SachaG/pen/jCpba>

<comment><USER20> I must say that's a really unique approach to the problem, very well done!

</comment></comment><comment><USER21> It's always interesting to have a peek at how how non-programmers think. What I dislike about these sorts of posts though, is the comments, where everyone feels like it'd be useful for them to submit yet another trivial Javascript, C or Python FizzBuzz implementation. Congratulations! You can do a basic programming task in a popular language!

</comment><comment><USER22> The site is not up right now.

[http://www.downforeveryoneorjustme.com/http://www.nixonmcinn...](http://www.downforeveryoneorjustme.com/http://www.nixonmcinnes.co.uk/2012/11/30/a-non- programmers-solution-to-fizz-buzz/)

</comment><comment><USER23> Good for Clive for being a sport and coming up with a valid answer, of course, but this is what interested me about his response:

He tackled the problem on a "meta" level, but didn't grasp the math. He could have saved a lot of time by seeing if the number was divisible by 15.

</comment><comment><USER24> No if statements and a single, convoluted line: <http://jsfiddle.net/P8Dr2/2/>

<comment><USER25> Good work, but why make it so complicated? <http://jsfiddle.net/4NnVw/3/>

</comment></comment><comment><USER26> That sounds like a mathematicians mind.

Peano Axioms and all that.</comment>


'Facebook is taking everything': rising rents drive out Silicon Valley families - <AUTHOR> https://www.theguardian.com/technology/2018/jun/20/facebook-silicon-valley-housing-crisis-families-pushed-out <comment><USER2> Cupertino, last year, voted in a referendum to maintain a two-story construction limit. It also voted down multi-family homes. At the end of the day, Silicon Valley's residents--not Facebook--are telling their lower-income neighbors "we prefer higher housing prices".

<comment><USER3> The same folks voting for these laws have always hated poor people and immigrant families. In the DC suburbs where I grew up, there is tons of coded racist language around extended-family living situations (because hispanic immigrants disproportionately tend to have extended family living with them). They say "we want to preserve the character of the neighborhood" but what they mean is that they don't like the idea of living near lower-income families who might try to afford to live in their neighborhood by having relatives share the expense. They don't like apartments for the same reason: apartment complexes are one of the few ways in which lower-income people can afford to live in a wealthy school district. (In the snotty DC suburb where I grew up, people mocked folks who lived in the few apartment complexes in the area. Only after I grew up did I realize that these were perfectly nice, normal apartment complexes.)

There is nothing that brings out peoples' racist character like housing and schools (check out city-data or the various forums for folks with kids in D.C.-area public schools).

<comment><USER4> It is easy to assume it's about race, but I think it's more a class issue. They would be doing the same thing if it were poor white people I would imagine.

<comment><USER5> Took the words right out of my mouth. Assuming this is a race issue is basically meaningless political grandstanding. It's a class issue, and the issue is universal. Rich don't want to live around middle class, middle class don't want to live around the poor, and the poor don't want homeless people living in their front yard. Humans are simply tribal, and want to be with members of their tribe.

Landlords want to make money, and as the parent pointed out, low income housing is clearly not a priority in the area.

<comment><USER3> People are tribal about race and culture too, not just class. Redlining laws were aimed at minorities that could afford to live in the white neighborhoods they were moving into. We've made that illegal now, so people look for other ways to achieve the same effect.

</comment></comment></comment></comment></comment><comment><USER6> I always feel so conflicted about these overly specific human interest takes on this topic.

\- The rent increases are choices made by landlords, not Facebook.

\- Even as quoted in the article, residents seem to believe that living in a place for a long time entitles them to continue living in that place longer at a price they find agreeable. I personally have been priced out of neighborhoods I loved living in twice in my life, once after living in the same place for 8 years and feeling a huge sense that it "was my home." It's sad and upsetting, but nobody is entitled to live in some place just because their family historically has lived there a long time or they personally have lived there a long time or theyhave some cultural identity to that place. It's not a nice part of reality, but that's just how it is. Playing on sympathies by hearing people say, "but we've lived here 10 years and Facebook doesn't care" is just an ineffective way to look at it, for all parties.

\- As usual, the group of people most impacted (displaced tenants) is the group _least capable_ of financially weathering the changing circumstances or politically lobbying for their preferences to be protected.

\- If I were a Facebook employee, I would feel some measure of resentment towards the property groups doing this. One reason is because the property managers know the bad press will be flung at Facebook, not them. Another reason is that the property managers are essentially looking at the wages paid by Facebook as something they (the property managers) are entitled to (by raising rents to adjust for higher salaries). The landlords are not improving their value-add in any way, just raising prices to capture more of some other productive person's wages.

\- And, of course as others have pointed out, it's largely driven by lack of new housing or high-rise housing.

<comment><USER7> No one might be entitled to that, but it's definitely helpful to the social health of an area if there is policy to ensure that the community stays somewhat stable.

<comment><USER6> I'm not sure that I agree unless we come up with some definition of "stable". Usually a neighborhood is healthy when people want to move into it, meaning it experiences growth, and it can lead to problems depending on how the growth is managed. But when a neighborhood stagnates and becomes known as a place that excludes certain classes of other people or makes them "unwelcome" then the neighborhood's only hope of survival is to contain a bunch of already wealthy people who entrench the existing classism or ageism or racism, etc.

When the neighborhood is working class _and_ props up "stability" (in the form of not letting new people in unless they are 'like us'), it's a recipe for disaster.

This is an extremely hard problem to solve. I had a good family friend who lost her job as an elementary school teacher because a neighborhood rapidly gentrified and people moving in did not have children. Over about a 2 year period, rents rose and school enrollment dropped severely and the school had to cut staff.

But I also have a friend whose car was vandalized repeatedly in a neighborhood of Pittsburgh because he was associated with a tech company there that was popularly blamed for gentrification. He felt scared living there, which he should not have to feel no matter what the reason (i.e. he does not belong to any minority groups in terms of race, etc., but deserves to feel safe at his own home like anyone else does).

The idea of "stability in a neighborhood" is hard to pin down, because things can range from outright xenophobia to thoughtless gentrification, and market economics usually just acts like throwing gas on the fire no matter which end of the spectrum you're in.

</comment></comment></comment><comment><USER8> Virtually all of Silicon Valley (MV, Cupertino, Menlo, etc) feels like a dated suburb to me, coming from out of state. It seems there is a high incentive to keep everything static and unchanging, to the point where it's sort of an uninteresting place to live.

</comment><comment><USER9> When I saw the headline, I thought this was going to be about FB employees bidding crazy high on multimillion dollar houses, which is another (albeit less urgent) problem in Silicon Valley. I've seen single-earner FB families purchase homes at prices that make my head spin.

I would note that this article mis-identified Jesshill Love, whom they call an "investor". He may do some investing, but he is first and foremost a real estate lawyer at a small-ish law firm. I know this because his wife was a recruiter at a company I worked at for several years. This mistake doesn't undermine the general thrust of the article, but it is a little weird to get this detail wrong. He's the only person they identify by name, and a quick google search would show that he's a real estate lawyer. Searching "Jesshill Love investor", on the other hand, turns up nothing of the sort. Not the sign of a well-researched article — even if the gist of it is undeniably true.

<comment><USER10> I think it was a choice - calling him an "investor" makes it seem like the tech industry is also benefiting from the rising rents, not just causing it.

<comment><USER9> Completely agree. They painted him as a real estate mogul, instead of a service provider.

<comment><USER9> Talked to a former colleague and apparently he may have a real estate investment company also. Spoke too soon!

</comment></comment></comment></comment><comment><USER11> With all the blame going around how about California government? Some states have protections to prevent landlords from pricing out current tenants in order to raise incoming tenants prices.

For example where I live landlords can only raise rent by 10% every year for current tenants. The landlords can charge whatever they want for new tenants but they are limited for existing tenants.

</comment><comment><USER12> It's not an easy topic; highly conflictual, emotionally speaking.

The market works this way. Facebook is just paying the employees higher than some people in the area are earning. What's the matter?

I imagine that for those people this situation is annoying and frustrating, so they are just speaking out of these emotions. I can understand a newspaper publishing such a emotionally driven, nonsense Bolshevik article to get views (mission accomplished).

I hope that this article didn't reach the first page just because it contains the word "Facebook" and some complaining I guess. "Let's all look down on the new public enemy" If that's the case, we can do better!

PS: I don't work for Facebook and I don't particularly like the company

</comment><comment><USER13> If the bay area isn't willing to build more housing then they shouldn't allow so many new jobs. It's the imbalance between number of jobs and number of housing that's the source of all these problems.

</comment><comment><USER14> One way the tech giants could alleviate this problem is to leave. Build campuses in the Central Valley, the Midwest, in declining Southern cities. Rents in the Bay Area will drop, and those companies will save huge amounts of money on taxes and payroll. At worst, they can use those savings to build truly utopian communities for their workers in otherwise low-population areas.

<comment><USER15> "you first". It's a competitiveness and coordination problem.

</comment></comment><comment><USER16> San Francisco and surrounding areas are sort of isolated geographically right? If rents become so high won't that essentially drive lower income people completely out of the area?

Maybe over time they move away and then how would lower income jobs be filled? Will wage hikes be necessary, which would then likely drive costs up?

<comment><USER17> I don't see how the SF Bay Area is more geographically isolated than other regions in the US, could you elaborate?

Rent driving lower income people out of the area is possible, but these articles can paint an exaggerated picture of what's happening. The areas where techies are moving in en masse are not everywhere; SF and Mountain View are neither the entirety nor representative of the SF Bay Area, they're just what you'll see articles on here about most often.

<comment><USER18> I live in Silicon Valley, and of the people I know well enough to discuss these things, every one who doesn't own their home is experiencing some level of distress about rising housing costs. My anecdata isn't proof that the article isn't exaggerated, but the article is pretty consistent with my experience. Just sayin'.

<comment><USER17> I grew up in the East Bay. Techies aren't the entirety of NorCal's population, and the areas populated by techies aren't the entirety of NorCal.

Rising housing costs are a real problem for the kind of people we might meet at work or networking (assuming you're also in the tech industry). But this is a very biased sample.

As soon as you go a little out of the peninsula there is farmland, for Pete's sake.

</comment></comment></comment></comment><comment><USER19> I often hear from people working for Google, Facebook that housing near company offices is more expensive than actually renting a property in the city centre. How just is that?

</comment><comment><USER20> In the picture from the article I see what is basically a lot of swamp around Facebook.

If they were allowed to build let's say 10 20 story buildings there would be no need to evict current renters.

<comment><USER14> It's not swamp, it's muddy tidal area. It would be very difficult to build on it, and probably protected by a number of laws and regulations. Plus, it smells.

<comment><USER21> Fine: it's a salt marsh. Still, it's a titanic waste of valuable real estate. Building there is just an engineering problem, and it won't smell once it's filled, paved, and turned into buildings.

<comment><USER22> That's what they did in Redwood Shores. Likely the tidal land here is owned by Cargill. The park just a half mile to the north (Bedwell Bayfront) is built on a landfill.

I'm sure it's been considered.

</comment></comment></comment></comment><comment><USER23> I'm reminded of Starbucks buying massive swaths of land in Ethiopia.

</comment><comment><USER24> It's incorrect to blame Facebook for the rising rents. The landlords' greed must be blamed.

<comment><USER2> > _landlords ' greed must be blamed_

Generally speaking, if a fragmented group ( _e.g._ Silicon Valley land owners) is behaving in a cohesive way, greed probably isn't to blame. In this case, it's supply and demand. If rents were capped, we'd instead be talking about housing queues and quotas.

<comment><USER25> What is then the proper name for market participants causing problems by doing what all homo economicus are doing, that is maximizing the amount of value they can capture instead of leaving some money on the table for others to take? Because I think this is what is meant when someone accuses of greed a large group of people.

<comment><USER2> Human nature? Emergent behaviour? Natural consequence of the region's housing policies?

Calling someone "greedy" works when it can shame them into submission. (For example, shaming a drug company's executives for dramatically raising a patented drug's price.) It doesn't work when the blame can be shared away.

The other difference between demand driving prices versus sellers "greedily" increasing them is the risk of shortages. If the drugmaker from my prior example reduces prices, it probably won't cause a shortage. Capping housing prices in the Bay Area, on the other hand, would result in queues and quotas.

Calling the Bay Area's landowners "greedy" isn't only ineffective, it's also inaccurate. If someone bought a house recently, they probably need to charge a high rent to cover their mortgage and property taxes.

<comment><USER26> The people preventing new construction are greedy. They are dictating what others can and can't do with their land in order to protect their own interests. They get million dollar home values and everyone else is stuck with $3000+/mo rents.

</comment></comment></comment></comment></comment><comment><USER27> I don't blame the tech giants for this but I'd like to see more done by them about the families living in RVs near their campuses, just from a community perspective.

</comment><comment><USER28> Dang, I thought farcebook was supposed to bring communities/world together. Haha yeah.... /s</comment>


Ask HN: Is there a JavaScript library for arbitrary precision complex mathematics? - <AUTHOR> I am looking for a JavaScript library to work with very small (very large) complex numbers. I need things like pow(), sqrt(), etc. Best I could find is Math.js [1], but it doesn't have arbitrary precision functions for complex numbers. To illustrate my point, please see this JSFiddle [2].
If there is no such library - what is the best alternative?
a.) create such a library from scratch
b.) convert some Java, Python, or C/C++ library to JavaScript using pyjs or Emscripten
[1] http://mathjs.org/
[2] https://jsfiddle.net/95mxb0dL/12/ <comment><USER2> Though I'm sure you'd rather avoid it, you can inspect other bignum implementations and perform a port. Coming from a Java library, for example, the port would be relatively straightforward, as syntax and semantics will largely match.

The most unpleasant thing is that JS doesn't have native ints, so you'll have to either use some other type as backing storage, and/or clever type coercion trickery, like what you see in asm.js.

[1] apfloat: [http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apfl...](http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apfloat/apfloat/1.8.2/)

[2] JDK's BigDecimal: [http://grepcode.com/file/repository.grepcode.com/java/root/j...](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/math/BigDecimal.java#BigDecimal)

<comment><AUTHOR> I am also considering Python-based "mpmath" [1], and C-based "Gnu Mpc" [2] as candidates for porting to JavaScript.

[1] [http://mpmath.org/](http://mpmath.org/)

[2] [http://www.multiprecision.org/](http://www.multiprecision.org/)

</comment></comment><comment><USER2> There are not many JS libraries in this space that have sane handling for complex numbers and arbitrary precision.

I'm not entirely sure, but perhaps NumericJS [1] would have what you're looking for?

[1] [http://www.numericjs.com/documentation.html](http://www.numericjs.com/documentation.html)

<comment><AUTHOR> Thanks for your reply. But after trying this library - it doesn't offer precision beyond that which is in native JavaScript. Upon closer inspection [1] you can see that it uses standard Number.toPrecision() function. ECMA-262 only requires a precision of up to 21 significant digits [2]. This is no good for me.

[1] [https://github.com/sloisel/numeric/blob/656fa1254be540f42871...](https://github.com/sloisel/numeric/blob/656fa1254be540f428710738ca9c1539625777f1/src/numeric.js#L46)

[2] [https://developer.mozilla.org/en/docs/Web/JavaScript/Referen...](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Number/toPrecision#Exceptions)

<comment><USER3> I'm going to ask a really stupid question, but here it goes: why the need for such precision? (just curiosity)

<comment><AUTHOR> =) A valid question! I am developing (yet another) fractal viewer for the browser. It's called FractalViewer, and is available from GitHub [1]. I am working on allowing it to zoom past the limit of about 10^(-13). The specific FractalViewer development issue is [2].

Why bother at all? I am very frustrated that there currently is no fractal viewer for the browser that can do a truly deep zoom. See a list I compiled on web-based fractal viewers [3].

Maybe someone can correct me, and point to a JavaScript based fractal viewer that can do really deep zooms...

[1] [https://github.com/valera- rozuvan/FractalViewer](https://github.com/valera-rozuvan/FractalViewer)

[2] [https://github.com/valera- rozuvan/FractalViewer/issues/10](https://github.com/valera- rozuvan/FractalViewer/issues/10)

[3] [https://github.com/valera-rozuvan/bookmarks- md/blob/master/f...](https://github.com/valera-rozuvan/bookmarks- md/blob/master/fractals.md#html--js-interactive-fractals)

<comment><AUTHOR> @GregBuchholz Of course. I know many programs that allow deep zooms of fractals. However, I am after an implementation in the browser.

<comment><USER4> It wasn't clear that you've looked at its implementation of arbitrary precision floating point numbers without using floating point numbers and found it wanting.

<comment><AUTHOR> The author of Fractint, Wes Loewer, created his own arbitrary precision math library [1]. I am aware of how such pieces of software work. I am also aware that to create such a thing from scratch - will take much effort. Especially testing it for correctness. Why reinvent the wheel?

That's why I asked the question in the first place. Best case scenario - someone has already implemented such functionality in JavaScript (with complex numbers). But I think that this is not the case. So I guess this leads to the case of porting from some other language.

[1] [http://www.nahee.com/spanky/www/fractint/arb- prec.html](http://www.nahee.com/spanky/www/fractint/arb-prec.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> We should write a library for that with webgl + GLSL backend for faster computation (It would be quite a hack: textures would be used to store data and communicate with JS, but everything would be much faster). We could also use WebCL but this thing does not seem to work with many browsers.

<comment><AUTHOR> An interesting idea. Do you want to spear-head this project? I don't have much expertise in GLSL...

<comment><USER5> I might (or might not) start some quick proof of concept in the next few days.

<comment><AUTHOR> Awesome! Will be watching [https://github.com/antoineMoPa](https://github.com/antoineMoPa) for the appearance of your poc =) Will contribute to it too.

</comment></comment></comment></comment><comment><USER6> I had a look at your jsfiddle, and it looks to me that it's a bug in mathjs. I have the impression that mathjs doesn't parse well complex numbers (I can be wrong there), so why not spend 1 hour to try to fix that bug before considering alternatives?

<comment><AUTHOR> As it turns out, Math.js doesn't support arbitrary precision calculations with complex numbers. This is because it is using libraries complex-js [1] and bignumber.js [2], which in turn also don't support arbitrary precision calculations with complex numbers.

This situation will improve in the future. See the Math.js issue [3].

[1] [https://github.com/patrickroberts/complex- js](https://github.com/patrickroberts/complex-js)

[2] [https://github.com/MikeMcl/bignumber.js/](https://github.com/MikeMcl/bignumber.js/)

[3] [https://github.com/josdejong/mathjs/issues/694](https://github.com/josdejong/mathjs/issues/694)</comment></comment>


Am I confused about the GPL or are they? - <AUTHOR> http://natekontny.com/post/17659909597/am-i-confused-about-the-gpl-or-are-they

<comment><USER2> I get the impression that the intention of the authors of the theme is to distinguish between the code and the "design elements". The code, as a derived work, would necessarily be subject to the GPL, but if say the CSS and images (and maybe HTML template - I don't know how Wordpress is built) aren't based on any of the original stuff, and are treated as data and therefore not part of "the software", then those can be subject to a different license. c.f. id's games being released under GPL, but the assets being commercially licensed.

<comment><USER3> "Treated as data" isn't the point with GPL2, what makes the viral part kick in is static linking. If the images are compiled into the binary, as they are not, then they would need to be made available under the terms of the GPL.

Since they are not, GPL2 has nothing to say about the matter.

<comment><USER2> Regarding dynamic linking being permitted: you're thinking of LGPL. Not that static vs dynamic linking in the strictest sense is terribly helpful in the context of scripting languages. Note that the text of the GPL does not mention "linking" at all. The relevant section instead says this:

 _These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it._

This is sufficiently vague to cause some confusion. When distributing GPL- licensed works alongside non-GPL-licensed ones, I would probably err on the side of making your intentions as to what is considered part of the GPL distribution, and what is not, abundantly clear.

I am, of course, not a lawyer, etc. etc.

<comment><USER4> I would interpret this for this scenario as "If you make (reasonably original) graphics for a theme, you do not need to release the graphics as GPLv2 if you release the graphics standalone. If you, however, release the graphics as a part of the theme, you need to put the graphics under GPLv2 aswell".

The mail quoted at <http://wordpress.org/news/2009/07/themes-are-gpl-too/> classified the images and css as standalone works. They then concluded that the standalone works did not fall under GPL2. But the excerpt in the parent seems to state that these actually must be GPLv2:ed if bundled with the derivative work, no?

So my interpretation is that the disclaimer is in conflict with the licence, since the licence actually requires you to GPLv2 standalone work when bundling with derivative. (IANAL)

<comment><USER2> Yeah, I don't know; Linux distributions bundle GPL software with non-GPL software. That doesn't make the non-GPL parts suddenly fall under GPL. In practice you're probably fine if you offer the GPL parts for free separately as well. Certainly, if the copyright holders of the original work openly state they don't consider third-party images and CSS to be included in the license, then I think they would have a hard time arguing the opposite in court.

</comment></comment></comment></comment></comment><comment><USER5> Do we really need to go through this again? Do people here on HN really have that short of a memory?

Search HN for: Thesis theme. This has been debated to death and you will get the correct answers there.

<comment><USER6> > Do we really need to go through this again? Do people here on HN really have > that short of a memory?

You seem to be lacking a very basic understanding of these kinds of sites:

1\. Not every user on the site has read every post on the site.

2\. There are new users who have not seen previous content.

There is not much you can do about reposts. People who haven't seen the content before will upvote it.

</comment></comment><comment><USER7> I am pretty sure they have the use of the license wrong.

Also, if you did get a copy of a product and modified the code, you would not have to distribute that code if you did not distribute the product or make it available for public use in some way. In other words, modifying the code itself does not necessarily trigger an obligation to distribute the code.

Also, from this:

"You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available _to the users of the program_ as described in the GPL, and they must be _allowed to redistribute and modify it_ as described in the GPL. These requirements are the condition for including the GPL-covered code you received in a program of your own."(Emphasis added.)

That seems to imply to me that if you are not "a user", you are not entitled to the code. So what constitutes a user with a theme? If I buy the theme and you do not, it would seem that I am entitled tot the code, you are not but I am free to give it to you if I wish. Also if I put the theme on my blog and you read my blog, are you then a user and entitled? Or am I then making the theme public and everyone is entitled?

On that last paragraph, see also: <http://www.gnu.org/licenses/gpl- faq.html#UnreleasedMods>

<comment><USER8> The standard rule is that if you give someone binaries of the GPLed program, you must also give them the source (or make it available, or maybe for a reasonable fee, etc etc). You don't have to distribute the source to anyone else who asks - so I think you more or less have it right. If you buy some GPLed product, you are entitled to the source code in some fashion, and once you receive it you may pass it on to anyone else you want under the same terms.

And yes, I would think that if you make it publically available on a blog and I download it then you have distributed it to me and thus you have to comply with giving me the source as well. IANAL, obviously.

There is of course subtlety around whether the theme in question is actually GPLed, which I think has been adequately covered by others.

</comment></comment><comment><USER9> Their FAQ and their license conflict. Simple. You could ignore their FAQ, as it's likely not legally binding, but they still may be able to make an argument in court, depending upon how visible their FAQ is..

Edit: on second read you say "They mention they are licensing under the GPL." em just mentioning that in their FAQ is likely not legally binding either. Your best bet is to check out the source, and see if the source references any license. Alternatively, you can find out if it's a derivative of an existing GPL licensed theme (afaik, most themes are derivatives) in which case it'd inherit the GPL from there, and it doesn't matter what their FAQ says.

Edit2: Turns out I was mistaken about the details of inheriting the GPL, read the sub post.

<comment><USER10> To nitpick, your last conclusion is incorrect: even if the code is a derivative of an existing GPL code, it doesn't inherit the GPL. They may just be in violation of someone else's copyright, but it doesn't give the rest of the world the right to copy their code. It's theirs to license whichever way they see fit. Now, in practice, the easiest way out of infringing on GPL code is to make your own code GPL as well, but it's the author's choice, not the community's.

<comment><USER9> Thanks, yes, this makes sense, and does complicate things. In note due to the fact that afaik, the only one who can litigate based on a GPL violation is the original copyright holder

<comment><USER11> _afaik, the only one who can litigate based on a GPL violation is the original copyright holder_

Yes, because the only one who can litigate on a _copyright_ violation is the original copyright holder. GPL is just a license like any other in that regard.

</comment></comment></comment></comment><comment><USER12> They are.</comment>


Intel Has PCIe 4.0 Optane SSDs Ready, but Nothing to Plug Them Into - <AUTHOR> https://www.tomshardware.com/news/intel-has-pcie-40-optane-ssds-ready-but-nothing-to-plug-them-in-to <comment><USER2> Would their Optane department care as long as they're selling SSDs?

What's the business dynamic of Intel like? Would they be fine with customers using them with AMD CPUs or would they delay the product?

<comment><USER3> My bet — delay.

</comment></comment><comment><USER4> You could always plug them into an AMD based system.

<comment><USER5> Does optane work with AMD? I was under the impression that it did not. It's not just another type of SSD.

<comment><USER6> NVMe is NVMe. Perhaps you're thinking of Optane in a DIMM form factor?

<comment><USER5> [https://forums.tomshardware.com/threads/does-optane- really-o...](https://forums.tomshardware.com/threads/does-optane-really-only- work-on-intel-and-not-on-amd.3027390/)

Seems like it only works with Intel 7th gen and later.

Although there's a post on the LTT forums[0] exclaiming that Wendell managed to get it working. (although he also got Thunderbolt working before on AMD)

[0]: [https://linustechtips.com/main/topic/961841-we-ran-intel- opt...](https://linustechtips.com/main/topic/961841-we-ran-intel-optane-on-an- amd-cpu/)

<comment><USER7> Intel marketing is confusing; Optane is several things

There's Optane memory, which is the one the link is referring to, it needs Intel CPUs

Then there's Optane SSDs, which works with AMD fine

Source: I'm using them on EPYC servers

Optane memory is not a traditional SSD, it's more of a disk cache, matched to the Intel CPU. While the rest of the Optane family are standard SSDs

<comment><USER8> This is what happens when the marketing department gives the same name to two things which may be broadly in a general product category, but are technically very different. Have seen it with many categories of hardware.

<comment><USER9> It's actually worse.

If you follow Intel's marketing "Optane Memory" refers to the SSDs. The Optane DIMMs are called "Optane DC Persistent Memory".

<comment><USER10> Wait, why is it worse? It perfectly describes what it is: An Optane (3DXpoint) Persistent Memory Module. Guess the DC stands for DataCenter?

<comment><USER9> That part isn't terrible, even though it is really unwieldy. The big problem is using "Optane Memory" as the branding for the kind that _isn 't_ a memory module.

The natural things to call them are "Optane drives" and "Optane memory". Don't criss-cross that!

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Engineering samples are in the wild, so about as "ready" as Tiger Lake is.

<comment><USER12> I love how there are still no 10nm CPUs in sight for the likes of the 16" MacBook Pro.

</comment></comment><comment><USER13> Intel does have Agilex FPGAs that can support upto PCIe 5.0

<comment><USER14> Maybe, but they won't sell you one before several years from now.

</comment></comment><comment><USER15> try loading this page on mobile 3g/throttled lte. blank screen for a few seconds. text loads, some kind of pop up I scroll past and read about 2 paragraphs, when the text disappears, never to return again.

<comment><USER16> And if you're on desktop, you get an autoplay video once you get to the bottom. If you try scroll off, it turns into a sticky element.

<comment><USER17> I miss the annoying picture flashing ads of the 2000s. The amount of crapware (also read ads) on websites nowadays is ridiculous.

</comment></comment></comment><comment><USER18> CES starts tomorrow. I wouldn't be surprised if they released a PCIe 4-ready chipset there.

<comment><USER19> they'll need pcie 4.0 capable cpus too

<comment><USER20> I haven't been paying attention to Intel Ark but I thought the CPUs talked to the chipset over QPI and only the chipset needed to support PCIE?

<comment><USER19> It's apparently UPI now[1], but they'll still need to do a lot of updating to the CPU and UPI to get the bandwidth of pci-e 4.0. Best info I can find[1] puts pci-e 4.0 x16 at around 64GB/s, and UPI at a max of 28GB/s on their best xeon cpus and fpgas. Having that kind of bottleneck at the chipset would make it nearly pointless since even pci-e 3.0 with a 16x link is 32GB/s.

[1] [https://www.tomshardware.com/news/intel-stratix-10-dx-upi- cx...](https://www.tomshardware.com/news/intel-stratix-10-dx-upi- cxl,40436.html)

<comment><USER21> Chipset doesn't run at x16 bandwidth, it gets 4 lanes of bandwidth. At least for consumer platform, but I doubt server runs anything significant off chipset. QPI/UPI may run faster between sockets but I don't think chipset is a full speed link by any means.

Nominally QPI/UPI but those protocols are not hugely distinct from PCIe in general. AFAIK it's basically PCIe but encrypted, so that nobody else can replicate their chipsets (like used to happen in the old days with nForce/etc).

Also your numbers are off, easy rule of thumb is that one PCIe 3.0 lane is one GB/s of bandwidth per lane. So 3.0x16 is 16 GB/s of bandwidth.

So it just needs 8 GB/s of bandwidth to run at 4.0x4 speeds.

</comment></comment></comment></comment></comment><comment><USER22> Are there any benchmarks available for these drives?

<comment><USER23> They are mostly for Server / Database workload [1] and Facebook looked at reducing Memory usage with Optane[2].

Consumer workload see little to zero measurable benefits. Once you pass a certain Random Rd / Write speed, Seq Rd Write is still king, or likely not the source of bottlenecked.

[1] [https://www.servethehome.com/intel-optane-hands-on-real- worl...](https://www.servethehome.com/intel-optane-hands-on-real-world- benchmark-and-test-results/)

[2] [https://research.fb.com/wp- content/uploads/2018/03/reducing-...](https://research.fb.com/wp- content/uploads/2018/03/reducing-dram-footprint-with-nvm-in-facebook.pdf)

<comment><USER24> What about developer workloads? Like reading hundreds of tiny files during compilation, writing thousands of tiny binary files after compilation, using disk-baked caches for IDE. I never found tests but for me it seems likely a scenario where Optane might help. Also things like starting a container or VM might be improved with Optane a little bit.

<comment><USER25> The Optane SSDs do quite well on any random access benchmarks; they are kind of specialised for it. For sequential access however, high-end prosumer SSDs like the Samsung 970 Pro beat the Optanes.

<comment><USER9> Random access latency is the bottleneck. You can feel the difference between NAND and Optane even if your sequential speeds are comparable to a hard drive, let alone the 2 gigabytes per second those drives can push.

After all, if you have to wait 100 microseconds per 4K read, a single thread can only utilize 40 megabytes per second.

<comment><USER25> Agreed. I am just saying that the Optanes are specifically tuned to be the fastest storage drives for random access -- and they deliver on that front. There are benchmarks out there, I can send you a link if you like.

</comment></comment></comment></comment></comment></comment><comment><USER26> The Comet Lake stuff they just announced probably supports it (no details yet):

[https://www.macrumors.com/2020/01/06/intel-5ghz-comet- lake-c...](https://www.macrumors.com/2020/01/06/intel-5ghz-comet-lake-chips/)

</comment><comment><USER27> Very bad headline about a product that's not shipping and a "but" part that's false.

Here's an intel product to plug them into already today: [https://www.anandtech.com/show/14906/intel-ships- stratix-10-...](https://www.anandtech.com/show/14906/intel-ships- stratix-10-dx)

And there's also AMD x86 processors that support it.

<comment><USER28> The article mentions the Stratix 10.

</comment></comment><comment><USER29> That sounds like a personal problem in need of a cold shower IYAM. _Be the change you seek_ by getting ISVs/OEMs/ODMs to launch an orgy of compatible hardware to simultaneous release peripherals to stick them with. Seems like an easy enough problem to solve, as long as everything is tested beforehand.

<comment><USER30> If you read the article you'll see they don't have any CPUs on the market that support PCIe4

<comment><USER31> And it's not because no one supports PCIe4: the latest AMD chips support it just fine.</comment></comment></comment>


Show HN: I created a weekly design newsletter - <AUTHOR> http://seriffed.com/

<comment><USER2> Clicking on "Building books with CSS" in the last issue takes me to

"High Quality Free Vector Icon Set in PSD Format"

is this wanted or is it a mistake. If i click something i expect it to be what i clicked.

Anyway in good faith i subscribed.

<comment><AUTHOR> This has been fixed. I put in the wrong link. Thanks for the feedback.

</comment></comment><comment><USER3> Why not have the two f's in seriffed be a ligature? Subscribed.

<comment><AUTHOR> Thanks for subscribing! I'll play around with the ligature and see how it turns out :)</comment></comment>


Verizon Wireless suffering nationwide data outage - <AUTHOR> http://www.geek.com/articles/mobile/verizon-wireless-suffering-nationwide-data-outage-2010033/

<comment><USER2> Seems to be resolved already: <http://twitter.com/VZWNetwork/status/9926483852></comment>


BTC Producer - <AUTHOR> https://btcproducer.com/inv/56f1290e4de1b <comment><USER2> Strange. All signs point to ponzi scheme, but they have an EV ssl certificate, backed with an actual company registered in the UK: [https://beta.companieshouse.gov.uk/company/10054835](https://beta.companieshouse.gov.uk/company/10054835) \-- with a seemingly real director.

I'd guess that they're pulling this off as some sort of investment scheme, where _" your capital is at risk"_. That could mean they're legally in the clear if they _" lose"_ your money.

EDIT: I just realised the submit link is a referral URL, from an account created the same time this post was made.

</comment><comment><USER3> Ponzi scheme?</comment>


My free ASP.Net C# video tutorials - <AUTHOR> http://www.markhagan.me/Samples

<comment><AUTHOR> I am not CodeAcademy, but I think my videos are still pretty helpful. :) Rather than showing small features in .net, I decided to build mini projects.</comment>


Java: State of (Project) Loom - <AUTHOR> http://cr.openjdk.java.net/~rpressler/loom/loom/sol1_part1.html <comment><USER2> I'm unreasonably excited about this.

They took the guys that made Quasar (Java fibers library) and hired them full time to work on this. Java already has some of the best concurrency support of any language, it just doesn't support fibers since the implementation dates back many years

Java has a history of adopting the best OSS project and making it official. Joda Time, Hibernate and JPA, all the Immutable collection stuff borrowed from Guava. I assume this will be no different.

I would not be surprised at all if Java ends up with the best fiber implementation around and convinces other languages to embrace them since "Java can't be cooler than us".

Java is doing something interesting here. They want to maintain backwards compatibility, so they're not adopting async/await first which many languages do as a stepping stone. Their goal is to make fibers appear as normal threads to old code. This would be a huge boon for existing projects, it could make existing REST frameworks and db access 5x faster overnight. Many languages can't do this because of numerous C extensions (because they're not as fast), but even big Java frameworks are typically still pure java.

<comment><AUTHOR> This is also why Valhalla is taking so much engineering time, those 25 year old JARs are expected to still work on a Valhalla aware JVM.

</comment></comment><comment><USER3> This is going to be next the big thing after lambdas in Java.

</comment><comment><USER4> Excellent work by the team. Hope to be able to use this soon!</comment>


Scientific Speed Reading: How to Read 300% Faster in 20 Minutes (2009) - <AUTHOR> https://tim.blog/2009/07/30/speed-reading-and-accelerated-learning/ <comment><USER2> This can be very helpful for me. GG</comment>


Boxer who lost fight to actor Mickey Rourke is a homeless man from California - <AUTHOR> http://www.dailymail.co.uk/news/article-2854714/Fighter-lost-professional-boxing-match-63-year-old-actor-Mickey-Rourke-homeless-paid-throw-fight.html

<comment><AUTHOR> Tabloid news... but reminds me of Leo the homeless coder.

Does anybody know what happened to him and Patrick McConlogue?</comment>


Docker has a business plan headache - <AUTHOR> http://www.zdnet.com/article/docker-has-a-business-plan-headache/ <comment> http-teapot Isn't the pricing a little high to start with?

[https://www.docker.com/pricing](https://www.docker.com/pricing)

The basic enterprise edition is about $62 per node per month and standard edition is double that.

<comment><USER2> admittedly not exactly the same product, but certainly in the same ballpark (server consolidation/management), compare the price to VMware vSphere, a hypervisor for servers. Standard edition starts at 995$/year (83$/mo) per physical CPU.

vSphere is an older, more mature, and more featureful product, but the core value prop is the same: save capital expense by consolidating your services into fewer physical servers, with improved manageability, through virtualization. arguably, docker can enable denser consolidation because virtual machines have typically higher cpu and memory overhead compared to containers. so comparatively maybe docker is underpriced?

<comment><USER3> The underlying Docker fundamentals are open source (lxc containers). Google gives away better orchestration with Kubernetes (and cloud providers are rapidly adopting it). RedHat bought CoreOS. Doesn't leave much value prop for Docker.

<comment><USER4> redhat also have openshift for on premise enterprise kubernetes platform.</comment></comment></comment></comment>


Ask HN: How do you back up your NAS/home server? - <AUTHOR> I backup my NAS to an external drive but I have no remote backups. On my personal machines I use Backblaze but they don't offer a linux client. How do you back up your NAS or home server? <comment><USER2> rsync</comment>


Software-Generated Paper Accepted At IEEE Conference - <AUTHOR> http://entertainment.slashdot.org/article.pl?sid=08%2F12%2F23%2F2321242&from=rss <comment><USER2> So it was post-modern cultural studies first with Alan Sokal (<http://en.wikipedia.org/wiki/Sokal_affair>), then theoretical physics with the Bogdanov brothers (<http://en.wikipedia.org/wiki/Bogdanov_Affair>), and now it's the turn of computer science. As good CS people, the meta-authors of this article used a random generator rather than faking the text themselves. I guess the discipline is growing up. :)

</comment><comment><USER3> The abstract was craptastic but it is no different from the craptastic abstracts of several human-generated papers.

I think part of the problem is the people expect academic papers to be complicated/cutting edge/forward thinking, and therefore not immediately comprehensible.

Now I have to admit, the first sentence of the abstract sounded really good but it was all downhill from there. Again though, it was downhill in the same way as many other abstracts I have read.

Maybe this means that academics need to stop trying to sound so smart in their papers and just get the point across...or maybe it just exposes one (or several) of the reviewers as utterly incompetent.

<comment><USER4> When I was writing my first paper, I legitimately tried to write it so anybody could understand. My test was to have my girlfriend read it and tell me what she thought it was about (not that my girlfriend isn't smart, but she had absolutely no clue what I was working on). When I showed it to the PI, he said I had to revise it all because it was "too juicy."

More specifically, he said there were two reasons against understandable writing:

1) Scientists are lazy, and do not want to read long passages. Coupled with the fact that they are usually pretty smart, they _can_ understand the terse language.

2) Scientific (read: incomprehensible) writing removes all biases. There is no room to interpret something incorrectly if the precise words are used.

I agree though, it's not a very inviting culture that promotes these ideals.

<comment><USER3> That's my point though. Even extremely smart people can stumble on a dense abstract. It is the nature of language- just because I know what I mean does not mean that you do. Even if you write something that can only be interpreted correctly in one way, there is still room for misinterpretation or total lack of understanding.

I was really trying to say that if a paper with no meaning made it through screening (no matter how light) then maybe the papers are too dense.

In response to 1), I have always found that scientific papers provide more verbose explanations for even simple concepts. I have reread entire paragraphs three times only to discover that I already have a firm grasp of the concept being discussed and can explain it in a single sentence. But it probably just depends on the author and the verbosity could be explained by your 2): removing all uncertainty by explaining exactly what you mean.

</comment></comment></comment><comment><USER5> It was actually accepted as a "poster" which is not a rigorous thing. I still think it's an embarrassment. This has been done before, and accepted as a full CS paper (search for "scigen").

The best example is the "Sokal affair" (search for "Alan Sokal") which is awesome because it doesn't just demonstrate sheer negligence with a randomly generated paper: it was carefully crafted to sound like it made sense.

</comment><comment><USER6> Computer science has failed the pseudoscience test:

[http://unqualified- reservations.blogspot.com/2007/08/whats-w...](http://unqualified- reservations.blogspot.com/2007/08/whats-wrong-with-cs-research.html)

<comment><USER7> Very interesting article. Should be a submission here.

<comment><USER2> <http://news.ycombinator.com/item?id=43074>

</comment></comment></comment><comment><USER8> "In this work we better understand how digital-to-analog converters can be applied to the development of e-commerce." LOL :)

</comment><comment><USER9> people don't like admitting that they don't know something. Especially that they don't know something when they're supposed to be very knowledgeable about it.

But come on! They could have rejected it as "incomprehensible" or "needing to explain what it was talking about better" or "not staying on one topic".

The abstract started talking about the Internet and OOP and ended up talking about digital-to-analog converters and e-commerce.

Just because you're smart and you can't understand it doesn't mean that it's smarter.</comment>


The Rogue Wave of Enterprise SaaS - <AUTHOR> https://staysaasy.com/scaling/2020/07/29/the-rogue-wave-of-enterprise-saas.html <comment><USER2> Im a firm believer in the price elasticity of startup opportunity. We've more or less solved the lowest common denominator problems in software and we're in the "chasing small optimizations" phase. In this phase I believe there are many many more opportunities, but individually theyre smaller. In aggregate theyre worth way more than a single company.

All this together - i think - will force LPs and VCs to change their return models and invest/operate fewer businesses but still generate excellent returns.

In other words a 20M arr business is amazing, if you arent trying to get to a $B.

<comment><USER3> I think you're probably right, but changing the VC business model means that VCs need to get significantly more selective about which businesses they fund, and also focus on metrics that a lot of younger entrepreneurs don't like (ex. actual profitability). When you can't count on a unicorn exit to offset all your total failures and zombies, investment models tend to start looking more like bank loans via equity than like the traditional VC setup we're all familiar with.</comment></comment>


We (reddit) had a security incident.  what you need to know - <AUTHOR> https://old.reddit.com/r/announcements/comments/93qnm5/we_had_a_security_incident_heres_what_you_need_to/ <comment><USER2> Duplicate of: [https://news.ycombinator.com/item?id=17664301](https://news.ycombinator.com/item?id=17664301)

</comment><comment><USER3> I'm glad Reddit admitted that in the open right away.

Shit happens and will continue to happen, thanks for your transparency

</comment><comment><USER4> Who would have the resources for an SMS intercept?</comment>


Flappy 2048 - <AUTHOR> http://flappy2048.com/ <comment><USER2> :/ The flappy number is bigger than the block/hole it's trying to merge with. This annoys me more than it should.

</comment><comment><USER3> Hey, I made one of these too!

Flappy Doge 2048 (Nyan Cat edition): [http://rawgit.com/boppreh/flappy_doge_2048/master/flappy_dog...](http://rawgit.com/boppreh/flappy_doge_2048/master/flappy_doge_2048.html)

Github: [https://github.com/boppreh/flappy_doge_2048](https://github.com/boppreh/flappy_doge_2048)

Arrow keys control the 2048 blocks and W+S control the Doge. It's not as polished, but I had a fun time coding it.

</comment><comment><USER4> I really liked the moving columns, they added another layer of unexpected difficulty. I lost at 23 (8388608). The fact that the moving column would bring the flappy tile beyond the bounds of the playfield was a little disconcerting.

One thing I've been wondering is whether all these 2048 clones are subconsciously causing people to take notice of powers of 2 far more than they would otherwise...

</comment><comment><USER5> Haha, I have a super-wide monitor in a vertical configuration, which makes this game literally impossible unless I shrink the vertical dimension of my browser window.

<comment><USER6> No wonder I was finding this so hard!

</comment></comment><comment><USER7> Love it! Beats Flappy48 by not requiring a plugin and by being named with a proper power of 2 as all good games in the genre should. Nice work.

Edit: Sure, Threes may have launched the craze, but it too would have been better based on pure doubling.

<comment><USER8> Threes created the genre and does not use powers of 2 :)

</comment></comment><comment><USER9> I was expecting flappy48 ([http://broxxar.itch.io/flappy48](http://broxxar.itch.io/flappy48)) but I'm glad to see someone's combined the two games in another unique way.

<comment><USER10> It's also HTML5 instead of Unity which is great.

<comment><USER11> I also feel like the physics are bit more forgiving.

</comment></comment></comment><comment><USER12> A little note on how to play would be nice. It took me a while to figure out it's the spacebar you need.

<comment><USER13> Or just clicks.

<comment><USER12> ...oh, well ha, I guess that seems obvious to try in retrospect. :)

</comment></comment></comment><comment><USER10> I literally though I was going dizzy when the columns started moving.

</comment><comment><USER14> I could see a "number munchers" style one for kids. "16/8" and you have to go to 2. But flappy and 2048 are both getting pretty old.

</comment><comment><USER15> You have to applaud this app. The title alone has value.

<comment><USER16> Except it was obvious, and there was at least another one of these that came out weeks ago.

</comment></comment><comment><USER17> Easiest version of any of these games I've played so far (524288 on my second go). Quite compelling, though.

<comment><USER18> Press ctrl and - to increase difficulty.

</comment></comment><comment><USER19> Neat. Would be nice if you could start playing after a failure by any clicking/pressing space again.

</comment><comment><USER20> 262144 and I missed ... and I'm not going to try and beat that. Nifty.

</comment><comment><USER21> If you turn this into an iOS app, I'll gladly give you my $0.99

</comment><comment><USER22> It had to be done....

</comment><comment><USER23> This is pretty cool. But seriously, this is way too hard

</comment><comment><USER24> Pure masterpiece, our grandchildren will play this :))

</comment><comment><USER25> most impressed at getting domain name first

</comment><comment><USER26> Pro tip: make your browser extra short.

<comment><USER27> Made it to short! Didn't even get past the first column.

</comment></comment><comment><USER28> 21 high score. this is silly

</comment><comment><USER29> Of course this had to be done _rolls eyes_

</comment><comment><USER30> You just won the Internet.</comment>


Mesosphere is Evil - <AUTHOR> https://github.com/mesosphere/mesos-cli/issues/71

<comment><USER2> You can use the successor directly with your cluster and from the bug tracker they seem to be open to bug reports if functionality for use without a DCOS acount is broken, so I don't see what's so "evil"?</comment>


AppJet now lets you host your own apps - <AUTHOR> http://appjet.com/download

<comment><USER2> I really like AppJet. That is, I like its potential. Now that I can download and host my own, maybe the AppJet devs can open up the ability to extend AppJet. I could see quickly building appjet js libraries for RDB integration, payment gateways, HTML templates, full text search, etc... But to do it without reinventing the wheel, it would be nice to leverage existing Java code. Does anyone know if that is the direction things are likely to go?

<comment><USER3> As the CEO of AppJet, I can tell you authoritatively that this is exactly the direction we are heading in.

<comment><USER2> excellent!! Maybe things will be in play for my next webapp.

I have been a believer in your approach to webapp dev for a while. I'm happy to see someone carrying the torch. Good luck to you.

</comment></comment></comment><comment><USER4> I'm also worried they are not charging money. I wouldn't want to build an app there and have them go bankrupt after a month or two.

<comment><USER5> It seems like they could have a straightforward, profitable business model: for example, you would be able to get started for free, and once you start using more of their resources you start paying a reasonable monthly fee. the more you use, the more you pay. That way they could offer way more than 50 MB of space, and present themselves as a serious platform rather than as a toy for amateurs.

<comment><USER4> 50 Mb? I couldn't find any mention of this anywhere on their site. Is this per app or per invocation?

<comment><USER5> I was going off of <http://changelog.appjet.net/change?id=obj-Ly6j6D3po> \- it's per-app.

</comment></comment></comment></comment><comment><USER4> Anyone here uses appjet? Is it any good? How does it compare to google app engine? Thanks in advance.

<comment><USER6> Seems like a great thing to pitch to universities and schools.

Can't see the use for general development. Hosting costs for your own slice is so low, and it gives you so much more freedom that a developer would have to be crazy to limit their options to only what appjet give them.

Plus AppJet is still a small company so its not going to have the scalability of something like EC2 or Google AppEngine.

<comment><USER3> I actually agree with your assessment that AppJet seems limited as compared to renting your own server or part of a server, for general development. The original idea of AppJet was for it to be a place for simple 1-page apps -- apps where the effort required to set up hosting greatly exceeded the effort to code the app.

A natural extension of this was to write a guide to teach people how to program. AppJet is still the only place I know of where you can learn to program and actually build an app that you can share with friends via a URL, all without downloading any software or configuring a development environment.

Now we are working on addressing all the limitations of AppJet as compared to having your own server, and therefore make it a platform that you'd use for more "serious" apps, not just 1-pagers. Hopefully when we release the next version, you'll give us another look and decide we compare favorably to the alternatives for general development.</comment></comment></comment>


Microsoft Recruiting Is Like Getting A "Love Bomb" Dropped On You - <AUTHOR> http://www.businessinsider.com/getting-recruited-by-microsoft-2010-4

<comment><USER2> "Having read stories on the web about how some tech companies (cough, Google, cough) sometimes ask silly interview questions like "Why is a manhole round?," Tony asked his HR coach if he would have to answer a question like that."

Microsoft is _the_ company that is/was known for asking this questions. Google is known for asking you real stuff such as explain how a linker works.

Clicking on the photos at the end brings you to "My nightmare interviewing for Google"

After reading this I wondered how much Microsoft paid for this ad. It is laid on so thick....

</comment><comment><USER3> > If you flunk an interview, you don't move onto the next interviewer. If you > fail, the interviewer comes back and says, "Ah, well, the guy you are > supposed to meet with is in a meeting. He's key to the interview, so we're > going to send you home and have you come back another time."

What's the point of that? Why they don't say it straight?</comment>


New Lessons in Sex Ed: Yes Means Yes - <AUTHOR> http://www.nytimes.com/2015/10/15/us/california-high-schools-sexual-consent-classes.html <comment><USER2> "Students will ask, "Can I have sex when we are both drunk?" she said. "I get this one a lot: If I hook up with a girl and the next day she decides she didn't want to do it, then what do I do?""

Interestingly she doesn't give the answer.

This article conveniently avoids mentioning that this new law almost explicitly targets men. To answer your question young student, if a drunk man has sex with a drunk woman he is a rapist, because everybody knows drunk men are still fully in control, while drunk women are unable to make adult decisions.

</comment><comment><USER3> "In he-said, she-said sexual assault cases, critics of affirmative consent say the policy puts an unfair burden of proof on the accused."

This is my problem with 'affirmative consent'. Anyone that feels regretful the next day can then go ahead and say they were raped.

Even if they had oral consent, it will be one word against another. Will we now need a written contract before having sex? Because this seems like what is eventually going to happen to avoid a criminal court case.</comment>


HERE IS key (2017) - <AUTHOR> https://dave.cheney.net/2017/08/21/the-here-is-key <comment><AUTHOR> Previous discussion from 2017: [https://news.ycombinator.com/item?id=15063841](https://news.ycombinator.com/item?id=15063841) (54 comments)</comment>


Facebook Announces Settlement of Legal Dispute With Aaron Greenspan - <AUTHOR> http://www.insidefacebook.com/2009/05/22/facebook-announces-settlement-of-legal-dispute-with-another-former-zuckerberg-classmate/ <comment><USER2> _However, in 2005, Facebook was awarded a trademark for the term "Facebook" by the USPTO. Facebook was then awarded a second trademark in 2006. Greenspan had since filed petitions to have the USPTO revoke both of Facebook's trademarks, saying he had used the term first._

This is all a little ridiculous. "Facebook" has for years been used as a slang term for the Harvard Freshman Register, which contains headshots of the members of the incoming class. When every dorm room comes equipped with a T1 Ethernet jack, putting the Facebook online is about as forehead-slappingly obvious as you can get.

The first time someone---a much more recent grad---asked me if I was in "The Facebook" (meaning the website), I was deeply confused, and asked "You have a 1992 Facebook?" The reply was full of pity: "No, it's a website", and I could hear in her voice, _And you must be old!_

</comment><comment><USER3> Congrats Aaron! Ignore the haters.

Lest we rehash an unnecessary, counter-productive, and very mean-spirited discussion, here it is. <http://news.ycombinator.com/item?id=505291>.

<comment><USER4> Thanks for the link.

I remember reading that, and thinking that Aaron was an idiot that I should hate. Now that I have thought about the issue for a while, and read more about it, I don't feel that way at all. I am glad I didn't say anything in that thread.

</comment></comment><comment><USER5> Aaron, if you're reading this, I have a question for you from this release: what happened?

Was it just a verbal/written confirmation that you did, in fact, contribute to FB from Zuck, or was there an exhange of some monetary value for the resolve?

<comment><USER6> The Facebook release is worded like it was carefully negotiated:

<http://www.facebook.com/press/releases.php?p=102338>

It's likely the settlement limits further discussion of the matter by the parties, other than pointing people to negotiated statements like the Facebook press release.

</comment></comment><comment><USER7> It's rare to have the plaintiff as an active member of your community. Any comments, thinkcomp, or is this a hush-hush type of settlement?

</comment><comment><USER8> To hell with the idea stealers, I encounter them all the time. F%%%ing thieves.

But hey, for $65 million something can be arranged!

</comment><comment><USER9> Thumbs up aaron, was well smelly and good that you get something for your contribution.</comment>


Apple September 2015 Keynote - <AUTHOR> http://www.apple.com/apple-events/september-2015/ <comment><USER2> Stream link to view it on VLC: [http://p.events- delivery.apple.com.edgesuite.net/15pijbnaefv...](http://p.events- delivery.apple.com.edgesuite.net/15pijbnaefvpoijbaefvpihb06/m3u8/atv_mvp.m3u8)

Credit: [http://www.networkworld.com/article/2981623/ios/how-to- live-...](http://www.networkworld.com/article/2981623/ios/how-to-live-stream- apples-iphone-6s-event-on-android-and-windows.html)

<comment><USER3> No luck for me.

<comment><USER4> It's not live yet

</comment></comment></comment><comment><USER5> Ah, my semi-annual "fire up Safari" event.

<comment><USER6> I used to be like that but ever since I found my fans not spinning and the extra 2 hours of battery life under Safari, I haven't gone back to Chrome.

Truth be told, I have stability issues with Safari (and sometimes opening up new blank tabs takes 5 seconds... kind of ridiculous) but I prefer that my laptop not get too hot.

<comment><USER7> DO you have battery life concerns or overheating issues. The OS PM shouldn't let an application overhead the laptop.

<comment><USER6> High CPU usage tends to make things hot and waste battery. I think it's just a matter of the browser not letting the CPU idle for whatever reason.

I do run AdBlock Plus though, and am hoping that content blockers in OS X El Capitan will help with this even further.

<comment><USER8> Switch to uBlock Origin. Way better on CPU usage.

<comment><USER6> On chrome or Safari? Someone did a comparison of all the different blockers on HN a few weeks ago and I found out about uBlock Origin. But they didn't support Safari.

<comment><USER8> [https://github.com/gorhill/uBlock#safari](https://github.com/gorhill/uBlock#safari)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> > Requirements: Live streaming uses Apple's HTTP Live Streaming (HLS) > technology. HLS requires ..., or a PC with Microsoft Edge on Windows 10.

Interesting. They are limiting it to their own devices and software, except they allow Microsoft Edge. Is there a technical reason for this? Couldn't Chrome/Firefox work? Strange that they would give Edge an exception.

<comment><USER10> Chrome supports its own streaming method, MPEG-DASH with H.264 which is what Youtube runs on where possible. Firefox stated it won't support H.264 on principle (although it does now, for WebRTC). Android supports HLS, as does iOS, out of the box. HLS was designed to supersede RTSP however we also have the equally-ubiquitous RTMP, which Flash supports natively. You can get an HLS stream via Flash with an add-on to some clients so now this will work on IE, Chrome Firefox, and there are also some custom, proprietary clients out there for h.264/HLS. It's not a pleasant ecosystem right now..

<comment><USER11> Firefox supports h264 just fine and has done so for about a year.

<comment><USER10> Yes, thanks to the open source H.264 codec from Cisco. This is about open source options and I think Firefox's decisions are completely valid.

[https://gigaom.com/2014/10/14/h-264-support-arrives-in- firef...](https://gigaom.com/2014/10/14/h-264-support-arrives-in-firefox- thanks-to-cisco-but-h-264-web-videos-still-wont-play/)

<comment><USER12> The way that article is written makes it sound like a closed-source codec, but it is actually open:

[https://github.com/cisco/openh264](https://github.com/cisco/openh264)

and the code is better than I expected from a commercial project, it even uses may_alias properly. I wonder why the decoder doesn't support CPU multithreading, though? Slice threads are pretty simple to add.

<comment><USER10> It's about the patents.

"while OpenH264 is not truly open, at least it is the most open widely used video codec"

[http://andreasgal.com/2014/10/14/openh264-now-in- firefox/](http://andreasgal.com/2014/10/14/openh264-now-in-firefox/)

</comment></comment></comment></comment></comment></comment><comment><USER13> I feel like the Apple event page should show you the start time in your timezone. It's on a computer after all.

<comment><USER14> There are a lot of edge cases that could go wrong there such as people who live right near a timezone border. Not to mention VPN's, etc.

Giving a direct time and timezone prevents a lot of potential issues and mitigates a lot of risk. A worthy optimization for this case I suspect.

<comment><USER15> Or they could just give a countdown timer?

<comment><USER16> That would be ideal, as the start of the event is an absolute quantity of time into the future regardless of what timezone the user is in.

</comment></comment></comment></comment><comment><USER17> Seriously, what a shit elitist company Apple is turning out to be. You can't watch this on Chrome or Firefox. You can't watch it on Safari on a PC. Quicktime on a PC gives a friendly "Error 47: Invalid URL. 0".

In the meantime any 15 year old kid can get online and webcast anything they want to millions of people around the world watching on any browser on any device.

These limitations imposed by Apple are purely artificial. There is no technical reason for which they couldn't make this available on any device and any browser.

Unbelievable.

I'm so glad we got our apps off the iOS ecosystem and stopped developing products for free only to bolster Apple's standing. This is not a company you want to partner with in any way unless you happen to be another 800 pound gorilla.

Sad.</comment>


Ask HN: Any resource that lists down websites containing the specific word(s)? - <AUTHOR>

any dictionary-of-websites that can be customize-searched, as per the user requirement. <comment><USER2> Not sure exactly what you mean. You can manipulate Google searches a bit, for example:

[https://www.google.com/search?q=in%3Atitle%20%22hacker%20new...](https://www.google.com/search?q=in%3Atitle%20%22hacker%20news%22)

What do you mean, exactly by "website containing the specific word"? Does that mean websites with that word in the domain name? Or on any page? Or just on their homepage? Maybe just in the title of the page? (see the Google search above).

<comment><AUTHOR> yess...websites with that word in the domain name...like directory...so that i can search for the things as per my requirements say i want some songs to listen or download...then the sites like, say, mp3songs.com, songsforu.com, allsongshere.net, are all listed down.</comment></comment>


Show HN: Encrypt your home-lab server disks using AWS Key Management Service - <AUTHOR> https://github.com/randomvariable/kms-cryptsetup.git <comment><USER2> Sometimes I read about projects like this and just think to myself "Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should."

</comment><comment><USER3> Threat-model wise, this seems no different from storing the decryption secret on disk (wherever the access/secret keys are stored in this setup), with one exception: remotely-revokable keys.

That is a nice property and a pretty cool way to achieve it.

<comment><AUTHOR> There's a few different revocation options:

* `grant-computer` creates a KMS grant as per [http://docs.aws.amazon.com/kms/latest/developerguide/grants....](http://docs.aws.amazon.com/kms/latest/developerguide/grants.html) . `revoke-computer` removes the grant without touching the keys.

* The AWS access keys for the IAM user the tool uses, which can be rotated, revoked, recreated, etc...

* The per-disk encryption key, which can be deleted from DynamoDB

* The KMS CMK, which can be deleted, disabled, etc...

I mainly wanted to solve having to plug in a keyboard and type something in, or having a key on a USB stick and be diligent enough to take it out of the home.

<comment><USER4> Once secret data, especially potentially valuable but small data, is shared beyond one's own control, never assume it can be or has been deleted. In fact, one should probably assume the opposite. Has it been saved? Probably not, but it could easily be. Carefully evaluate your threat model, the risk might be small enough to be acceptable, but always exercise great care in saying "but it can be/has been forgotten".

</comment></comment></comment><comment><USER5> My understanding is the machine needs AWS credentials to use this. So instead of managing disk encryption keys, you have to manage AWS credentials instead. Can somebody correct me if this is wrong?

If this is the case, then this is really only useful for managing multiple disks and giving some remote control.

<comment><USER6> Quite nice since you can very easily manage aws credentials and get stuff like 2FA. Encryption Keys might be a bit trickier.

</comment></comment><comment><USER7> Because that's exactly what I want to do - give my home encryption keys to amazon.

<comment><USER8> Yep, and the keys could be renewed or revoked remotely. What could go wrong?

</comment></comment><comment><USER9> This is really cool and reminds me a bit of Mandos which does full disk encryption on headless servers using a network host.

The Readme didn't mention, can this be configured to SMS me when an encryption key is handed out?

<comment><USER10> You can have an SNS topic configured to message you on a key creation event via Lambda worst case. We're talking maybe seven lines of code here.

</comment></comment><comment><USER11> What happens if you need to decrypt a disk and you are not online? It wasn't clear to me that you'd have access to your data.

Maybe that is OK, maybe not.

</comment><comment><USER12> Bizarre.

</comment><comment><USER13> The only confusing thing about this is: you're cool with AWS but insist on deploying your own hardware for personal projects!

You can buy a lot of EC2 compute per month before you hit the cost of running outdated servers on your power bill.

<comment><USER3> Absolutely not true.

You can buy a 1u server with 2 processors / 24 logical cores and 32 gigs of ram off ebay for around $150.

Say what you have is 2x L5640 Xeons (pretty common, again on ebay). You'll be drawing 80-150W depending on load per cpu. Let's say it's on the upper end and you draw about 250W.

Average electric costs in the US are 12c/kwh. That means those cores will cost around $20/month.

In reality, other things draw power, but your average usage will be lower, so $20/month for 32GB of ram and 24 kinda crappy cores is about right power wise.

Look at AWS's pricing and tell me I can get anything even approaching that at such a good price point.

<comment><USER14> Comparing raw hardware with one of the dozens of services offered by AWS is absurd to say at least, as you're basically ignoring the whole platform that enhances "EC2" - of course raw hardware price will always win, but that doesn't really mean anything as the comparison isn't a good one.

<comment><USER15> As a base problem of "I need fast storage and CPU resources" isn't necessarily solved in the cloud either. If you're deploying hardware that needs to write large amounts of data daily and requires high CPU availability, even if AWS pricing was ok, you're still connectivity bound, which itself is an increased cost. I can also see this being valuable for MSSP's deploying assets across client networks and wanting to manage encryption keys in the cloud, vs on prem.

None of the additional Amazon cloud features are even in play with the above scenario.</comment></comment></comment></comment>


Building Sourcegraph, a large-scale code search engine in Go - <AUTHOR> https://sourcegraph.com/blog/google-io-2014-building-sourcegraph-a-large-scale-code-search-engine-in-go <comment><USER2> I've used the "first" (?) version of Sourcegraph and now this new one, and I have to say I'm a huge fan. I'm learning Go in the evenings and I was struggling to grasp some of the concepts in Go and how to use the Gorilla package. Personally, I learn better after I skim the API, look at an example and rinse/repeat as needed. For me, Sourcegraph is a great way to help speed up that process of finding that one example that helps make whatever it is "click".

I've been using their Chrome Extension because it injects their stuff right onto Github pages. Now all they need to do is make one for Firefox, so I can go back to Firefox.

Disclaimer: I meet Quinn at GopherCon and we talked about Sourcegraph. I loved the idea then, and I still do now.

</comment><comment><USER3> This looks very nice; automated access to and analysis of the huge amounts of source code on the Internet could be a game changer for programmers everywhere.

As an aside, when I saw Google in the URL I thought that this was a rebranding of Steve Yegge's "Grok"[0] project. Does anyone know what's happened to that?

[0] [https://www.youtube.com/watch?v=KTJs-0EInW8](https://www.youtube.com/watch?v=KTJs-0EInW8)

</comment><comment><USER4> Oh, thanks for posting this! I'm the author (and one of the co-creators of Sourcegraph at [https://sourcegraph.com](https://sourcegraph.com)), and I'm happy to answer any questions anyone has here.

<comment><USER5> Can you share the technology & methods sourcegraph use for syntax/semantic analysis?

If there is a brief comparison of tools you have tried and abandoned it would be really really helpful.

The accuracy of whatever working behind the scene is simply amazing.

<comment><USER4> Yeah, it's almost all open source now and we're releasing the last bits (plus the coordination code) between now and next week.

We will post another article when it's ready next week. Email me at sqs at sourcegraph.com in the meantime if you are too curious to wait. :)

</comment></comment></comment><comment><USER6> IMO this kind of projects/applications is where Go really shines.

</comment><comment><USER7> "Here are the techniques and glue code we use to make it all work in the absence of a framework."

Well, there's your framework...

</comment><comment><USER8> Does anyone here use Sourcegraph? It would be extremely useful to easily find example uses of libraries etc.

<comment><USER9> I use it to study Go projects source code, powerful than all the other IDE/editors.</comment></comment>


Show HN: TeamInk – Team Docs in Markdown with Great Slack Integration - <AUTHOR> https://teamink.co <comment><USER2> Wait, is this free? Where are the documents stored? Slack team's storage or on TeamInk's servers?

<comment><AUTHOR> Yes, the core product is free and we intend to keep it that way. We are adding premium features later this year.

The documents are stored on TeamInk servers -- Slack provides the authentication and interface mechanisms only.</comment></comment>


Startups, this is how design works. - <AUTHOR> http://startupsthisishowdesignworks.com//

<comment> simba-hiiipower A really great resource for the less design-inclined. I often feel design (in general, not just in tech or with startups) tends to get less attention than it warrants.

It really should get more focus. Too many times have I seen poor design break an otherwise excellent product (and likewise, great design lift a not-so-great product).</comment>


Searching for "god" found 0 articles - <AUTHOR> http://articles.slicehost.com/search?q=god <comment><USER2> Maybe a better search would be: [http://www.google.com/search?hl=en&q=god+process+monitor...](http://www.google.com/search?hl=en&q=god+process+monitoring)

</comment><comment><AUTHOR> context: <http://god.rubyforge.org/></comment>


Hamiltonian Paths in Antiquity (Knuth's 2016 Christmas Lecture) – 6pm - <AUTHOR> http://www-cs-faculty.stanford.edu/~uno/musings.html <comment><AUTHOR> Please forgive the heavily altered titled. Free lecture from Knuth open the public at Stanford.</comment>


The switch that saved a Moon mission from disaster - <AUTHOR> https://www.bbc.com/future/article/20191108-the-switch-that-saved-a-moon-mission-from-disaster <comment><USER2> > CBS switched to a studio where two actors dressed in spacesuits simulate the > Moonwalk.

You can see this at [https://youtu.be/7_II3gYd3LE?t=120](https://youtu.be/7_II3gYd3LE?t=120)

> NBC, meanwhile, commissioned puppeteer Bil Baird to build astronaut > marionettes. Baird (who would train Muppet creator Jim Henson) operated the > puppets from an overhead gantry above a simulated lunar landscape

I can't find video of this, but I'd love to see it.</comment>


Ted Cruz shook hands with COVID-19 positive party, puts self in quarantine - <AUTHOR> https://twitter.com/SenTedCruz/status/1236790420253954050 <comment><USER2> This is going to sound alarmist, but so would the idea of politicians putting themselves into quarantine just a few weeks ago.

We need to start thinking about postponement of the 2020 election, with COVID-19 cited as the reason. Expect the drumbeat of this tune to grow louder and louder in the coming months.

<comment><USER3> No, that will legitimize not holding fair elections ever again. Most states have an absentee vote by mail program. Move to a vote by mail system.

<comment><USER2> Voting isn't the issue. Campaigning is (or will be cited). Not saying it's a good idea, but it's one that will be out there regardless.

</comment></comment></comment><comment><USER4> For 4 more days to make a full 14 after he met and shook hands with the infectee 10 days ago. He's symptom free but wants to make sure he stays that way.</comment>


Ask HN: What web based language should we learn nowadays? - <AUTHOR>

Hey, I am currently studying applied computer science (B.Sc.). Before this I've done a school job training which was in a very similiar field, but broader and obviously not as deep. During my job training and also now at university we're getting taught about web programming. Both times with PHP as the server side scripting language. Now, the other day I've got an invite from koding.com (I've signed up for their beta when it was posted on HN a while ago) and in the feed for latest messages I found a commenter saying that PHP is old and should be abandoned.
I will have to get deeper into PHP now anyway, as I obviously want to pass the semester with a good grade, but:
Should PHP actually be replaced entirely? Also, which language would be useful to learn for the future? <comment><USER2> Php is still used and developed. Perl is still used and actively developed (both 5, which is the stable version with backports occasionally, and 6 which is a complete rewrite, but still very much in development).

You can get a job as a php coder. Plenty of companies use it.

People like to give their first languages love, and lots of people learned to program in something like ruby or python, so they keep programming in them. But that doesn't mean that older languages or legacy code go away.

That doesn't mean you should stop learning. Learning more than one language or framework can help you become a better programmer. But don't let people tell you php is over.

There are languages that are pretty much gone, except for legacy code. Practically nobody learns pascal anymore, from what I can tell.

Php, however has held up surprisingly well, compared to a lot of languages/frameworks. You might try picking up another language, like java script.

</comment><comment> saiko-chriskun The four big web languages off the top of my head today would be: php, ruby, python, and javascript. You still see java in parts, or other jvm-based languages such as scala.

Personally I wouldn't worry much about which language you should learn. A lot of skill in programming and development is being able to conceptualize abstract problems, and learn new things on the go. I actually promote learning languages like haskell because, although you'll rarely use it professionally, it gets you thinking about things in different ways and, in turn, makes you a better programmer.

Just learn what you want for now (php?), and when you need or want to expand in the future, do so :).

<comment><USER3> I'd go with you. Just go with PHP for now, and once you feel you've got a good grasp of it, go in for Ruby or Python, as well as Javascript and a functional language like Haskell - Clojure's a great bet too.

</comment></comment><comment><USER4> There is only one web-based language and that is Javascript. With node.js and Rhino, it can now also be used on the server side.

So if you really want to learn a web-based language Javascript is the one. If you decide to go for Python or Ruby (good choices) or even PHP or PERL (bad choices) you still can't escape from learning and using Javascript.

Personally, I think that you should pick Python or Ruby, whichever seems to suit you, since both are solid languages that are widely used to build web apps and lots of other stuff. PHP and PERL are yesterday's languages and are fading away slowly but surely.

<comment><AUTHOR> well, I won't get around PHP as I have to use it for university. It seems you're having the same opinion as the person that brought me to ask this question. He said PHP was a dinosaur that we should get rid off.

According to most replies on here it rather seems that it's very useful and recommended to still know that language as it's still widely used.

I will, however, take a look into JavaScript (already started with codecademy) and later on at the other suggested languages.

Rhino is so far the only one I haven't previously heard about.

Thanks for your replies.

<comment><USER5> Please disregard the comments about Perl made by the person you replied to. He knows very little about it. Perl is still a very strong language that has not been overtaken by Python or Ruby in the job market: [http://www.indeed.com/jobtrends?q=perl%2C+python%2C+ruby%2C+...](http://www.indeed.com/jobtrends?q=perl%2C+python%2C+ruby%2C+rhino%2C+javascript%2C+php%2C+node&l=)

If you do look into Perl, start on this site: <http://perl-tutorial.org> It will show you the most up-to-date learning resources for Perl.

About PHP, give this blog post a read: [http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad- de...](http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/) It makes the point that while you can develop and deploy very quickly with PHP, you will make trade-offs and will have to sacrifice consistency and predictability.

Lastly, as a general advice: Look at all the languages, figure out which ones are fun for you and learn those. I say those because you will need to learn more than one. :)

<comment><AUTHOR> thanks for the links. I will definitely take a look at several languages and learn more of them over time.

</comment></comment></comment></comment><comment><USER6> I think Python would be a very good choice. With it you will be able to do a lot more than programming web applications. For example, it has excellent libraries for scientific work. At the same time, it is very good for creating web applications (although probably not so much for real time web- applications, but I doubt Php is very good for that either). It has many very good web frameworks. I have used web2py, which makes it easy to create websites, and equally important, to deploy websites on various PAAS platforms.

</comment><comment><USER7> I started with PHP and ran with it for several years. It was my entry language for web development. Currently I'm using Ruby almost exclusively. Each has their strengths, but after spending a lot of time in Ruby, it's difficult to enjoy writing code in PHP. Ruby was deigned with developer happiness in mind, after all.

For me, the most interesting thing about programming are language agnostic principles and design. Learning the fundamentals will translate to any language.

</comment><comment><USER8> Besides PHP, I would go for Python. Many startups ask for Python coders, so that would be handy. As for PHP: many big websites still use it (FB) and PHP is still being developed. And some say that PHP is made fun again because of the framework Laravel.

</comment><comment><USER9> I think I should add that it's not just about the language, it's also about the architecture. You need to know what's going on and where, and why.

</comment><comment><USER10> Javascript! It's the future. Learn basic client side JS and then move onto node or vice versa.

<comment><USER9> Seconded. Have you seen the freelance rates?</comment></comment>