The Power of Prolog - <AUTHOR> https://www.metalevel.at/prolog <comment><USER2> One of the nicest examples of the power of prolog is that Windows NT contained a prolog implementation to take care of network configuration, replacing the previous codebase:

[http://www.redditmirror.cc/cache/websites/web.archive.org_84...](http://www.redditmirror.cc/cache/websites/web.archive.org_84624/web.archive.org/web/20040603192757/research.microsoft.com/research/dtg/davidhov/pap.htm)

<comment><USER3> My one regret in a project at work (internal tool) was that I didn't persuade management to let me use an embedded prolog in the application. Instead I rewrote half of Prolog (badly) in C#.

<comment><USER4> I don't get it. Isn't that the same thing but worse?

Edit: Also, Greenspun's Tenth Rule of Programming:

Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

<comment><USER3> It was worse. That office had an aversion to anything not-Microsoft for dev tools unless they were for the embedded systems we maintained. They also had an aversion to any language that wasn't "industry standard", whatever that meant (because, clearly, prolog and others do have industry standards associated with them; here they meant commonly used and easy to hire for).

<comment><USER5> This is a frustration of mine. At university they try to install a knowledge of all kinds of crazy languages, before you're ready to appreciate their value and the issues they attempt to address. The most glaring example is probably teaching Haskell in first-year. As a working programmer, you're then corralled into following prescriptive industry-practice - that always errs on the side of dumbing down the choice of technologies available.

<comment><USER6> You're being asked to be a consultant, you know. They want to pretend that if you rewrite Prolog in C#, it'll be simpler, and that the average C# programmer (the cheapest one they can hire) will simply understand (badly written) logic programming solvers and be able to modify them.

Eventually you'll figure out to simply double your hourly rate and ask "do you want a bad Haskell implementation to go with that as well ? How about SQL ? Lisp ?"

Don't forget to terminate with "by the way here's my card" (asking them to mention their personal referral code "ID10T") when the inevitable happens, nobody understands that code at all when they have to modify it. And every time they ask you to update it you increase your hourly rate 20%.

You know, management realism. You can be victimized by it, or you can make a living out of it.

<comment><USER4> I don't know, sounds like it would be pretty confusing giving so many people the same referral code.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Roughly half the 'power of prolog' comes from the 'power of logic programming' and prolog is by far not the only logic programming language, e.g.,

\- You can do logic programming using minikanren in scheme. (you can also extend the minikanren system if you find a feature missing).

\- Minikanren was implemented in clojure and called core.logic.

\- It was also ported to python by Matthew Rocklin I think, called logpy.

\- There is also datalog, with pydatalog it's python equivalent.

\- Also pyke. And so on.

Plus logic programming has very important (arguably necessary) extensions in the form of constraint-logic-programming (CLP), inductive-logic-programming (ILP), and so on.

It's a huge area.

EDIT: ILP at an advanced level starts making connections with PGMs (probabilistic graphical models) and hence machine learning, but its a long way to go for me (in terms of learning) before I start to make sense of all these puzzle pieces.

EDIT 2: You can have a taste of logic programming without leaving your favorite programming language. Just try to solve the zebra puzzle [1] (without help if you can, esp. through any of Norvig posts or videos; they're addictive).

[1] [https://en.wikipedia.org/wiki/Zebra_Puzzle](https://en.wikipedia.org/wiki/Zebra_Puzzle)

EDIT 3: An "expert system" (a term from the 1980s) is largely a logic programming system paired up with a huge database of facts (and probably some way of growing the database by providing an entry method to non-programmer domain experts).

EDIT 4: In other words, logic programming (along with other things like graph search etc) is at the core of GOFAI (good old fashioned AI), the pre-machine- learning form of AI, chess engine being a preeminent example of it.

<comment><USER8> Not really. I use SWI Prolog for a lot of personal projects (that actually see QPS no less) and there's a lot more to it than that. SWI gives you: good debugging support (with trace and spy), hooks into the Prolog database (with asserta/z and retract), optimized implementations of difference lists, online help, and so much more. Don't even get me started on its amazing DCG support that makes Regex feel like a Neolithic toy. Not only that but Prolog's Syntax gives you very similar properties to lisp's homoiconicity (first class atoms, metaprogramming, etc). Sure you can reimplement all of this in miniKanren, but it's all there waiting for you in SWI Prolog already! There's a lot more to a language than just its concepts.

Every time I hack in Prolog I always feel like I'm living the idea that I "tell the computer what to do not how to do it". It's a shame that more folks don't use it.

<comment><USER9> Prolog was part of course that I'd taken during my Masters. I loved it then. I would love to take a closer look when I have time ... whenever that happens <sigh> ...

Interestingly, IBM Watson uses Prolog. [1]

[1] [https://www.cs.nmsu.edu/ALP/2011/03/natural-language- process...](https://www.cs.nmsu.edu/ALP/2011/03/natural-language-processing- with-prolog-in-the-ibm-watson-system/)

<comment><USER10> IBM uses a special version of Prolog with a different syntax and database access functionality. They hired a department of a university.

MS Windows (network code) contains a Prolog with C-style-syntax.

<comment><USER11> Thanks. Do you know of any other resources describing Watson's inner workings? ...cause just googling for it leads to one of the zillions of marketing bullshit pages or whitepapers devoid of any real infos that IBM's marketing drones have flooded the web with.

<comment><USER10> Look for papers, search for Watson Prolog UIMA

</comment></comment></comment></comment></comment></comment><comment><USER12> I run a youtube channel called 'playing with prolog' [https://www.youtube.com/channel/UCfWpIHmy5MEx2p9c_GJrE_g](https://www.youtube.com/channel/UCfWpIHmy5MEx2p9c_GJrE_g)

We demo little things that you can do in prolog.

Happy to take suggestions for videos :)

</comment><comment><USER13> i have always trouble understaing prolog, lot of guide online seem to just tackle the syntax or assume you already know a lot of logic programming, for example the first example in the link ([https://www.metalevel.at/prolog/facets](https://www.metalevel.at/prolog/facets)):

            list_length([], 0).
            list_length([_|Ls], N) :-
                    N #> 0,
                    N #= N0 + 1,
                    list_length(Ls, N0).

i don't undestand it, i read the segment describing it multiple time but i still don't get it, and is not the syntax i don't undestand how it should work, a tried reading the next few chapter but i feel i'm missing something! is there a "prolog for dummies" out there?

<comment><USER14> Check out [https://en.wikipedia.org/wiki/Horn_clause](https://en.wikipedia.org/wiki/Horn_clause)

You can read this as two statements:

"The length of a list is 0, if the list is empty."

"Otherwise, if the length of a list Ls is N0, and N is N0 + 1, and N is greater than 0, then Ls with an additional element is of length N.

<comment><USER15> Good lord, does that mean it's necessary to explicitly tell the compiler the length of an empty list? Shouldn't the list type already know its own size?

I fail to see the benefit... honestly it just seems like a waste of time.

<comment><USER16> No. This is the standard implementation of the length/2 predicate. Like any other language, prolog has a standard library that includes this predicate. You'd never need to write this in practice, but this is how it would be written in the standard library.

In general, any general purpose language worth it's salt will have substantial portions of its standard library written in that language, and in this regard, prolog meets the criteria for respectsbl languages

<comment><USER17> I guess, the point was, if _list_ is a built-in construct, the function _length_ should be also built in. (Unless, that is, natural numbers are defined in the standard library.)

<comment><USER18> Prolog lists are predicates, like pretty much everything else in the language. Lists have the functor '.' (the dot) and two arguments, a term and a list, so they're defined recursively.

Frex, this is a list:

      .(a, .(b, .(c, .(d, []))))

'[]' is an atom that stands for the empty list.

Normally however we write lists like this:

      [a,b,c,d]

Which is syntactic sugar used in the vast majority of Prolog code.

The easiest way to think of it is that a list is a pattern, consisting of two square brackets enclosing any number of terms. You can't really call functions on it, but you can pass it as an argument to other predicates, and match it to other patterns.

</comment></comment></comment></comment></comment></comment><comment><USER19> There is a class of problems which you can solve using Prolog with pure pleasure.

There is one thing however: Prolog can magically hide the complexity of many things, which is a two-sided sword. On many occasions you are hiding away the computational complexity and wonder why the execution is so slow. This rarely happens in imperative languages (where you are more aware of all the loops and recursions). I guess this is why many people hate Prolog...

<comment><USER8> > On many occasions you are hiding away the conputational complexity and > wonder why the execution is so slow.

I disagree. Prolog is a language where it's quite easy to lose performance because of the density of each goal (a goal is "dense" and is basically a form of executable pseudocode), but equally easy to diagnose because of the terse expressiveness of the language. What gets a lot of Prolog beginners is the execution model: a lot of beginners just don't understand how the depth first search unification algorithm really works. Playing around in the REPL should help build that Intuition fairly quickly though.

I can post a concrete example if you want. Recently I changed an O(n^2) goal to an O(n) one and didn't have much trouble debugging it at all. I'm on mobile now but can post it later if you want.

<comment><USER20> I'd like to hear that story, when you get the chance. ;-)

<comment><USER8> Sure and thanks for the wait!

To give a bit of background: I run a service for some folks that allows them to get status messages. Some of my users wanted stats on the kinds of messages they received. My first implementation was quick and dirty: shell scripts which would run filters and aggregations through combinations of grep, sort, and uniq. Eventually as more demands came in with different types of functionality, this became unscalable, so I wrote an analysis engine in Prolog.

Problem: Find status lines that have valid "http" links in them.

First attempt: SWI Prolog contains a goal sub_string/5 ([http://www.swi- prolog.org/pldoc/man?predicate=sub_string/5](http://www.swi- prolog.org/pldoc/man?predicate=sub_string/5)). The goal is invoked as: sub_string(+String, ?Before, ?Length, ?After, ?SubString). I was storing status messages in the Prolog database wrapped in the "status" dynamic goal, so a status message looked like: `status("hello world")`. At a Prolog REPL, to query for all status messages, I could match along the goal `status(X)` and all bound instances of X would be the messages.

I created a DCG and wrapped it in a goal called `parse_http_string(String)` which would evaluate to true if `String` was a valid HTTP string. My first attempt was a goal like:

`status(String), sub_string(String, _, _, _, Needle), parse_http_string(Needle) `

This is an O(n^2) query. We first bind `String` to a status message, and the `sub_string` predicate will match _all valid substrings_ of `String` and stuff it into `Needle`. `parse_http_string/1` will then run on `Needle` and return true when the goal succeeds on a substring.

This was slow, but the query wasn't used very often and it worked for my customers.

Second Attempt: I realized that all HTTP links started with the text "http". By searching the status message for the string "http" and then starting the substring search at the starting index at the beginning of this match, I'd only be doing an O(n) search of substrings (because I'm only varying the end index of `sub_string/1` rather than both the start and end index). The modified goal looked like the following:

`status(String), sub_string(String, HttpStart, _, _, "http"), sub_string(String, HttpStart, _, Needle), parse_http_string(Needle) `

This produced the expected O(n) algorithm, despite only adding a single line and modifying the next line. This also made the query a lot faster, so I could rest easier when my customers began to look for links en masse in their status messages! (Which they did, as surely as any product you hand to users ever scales).

<comment><USER21> Just to clarify, it was O(n^2) for n the length of the string, not the number of statuses. Right?

<comment><USER8> Correct.

</comment></comment></comment></comment></comment></comment><comment><USER4> For an introduction to Prolog:

Learn Prolog Now - Free Online Version [http://www.learnprolognow.org/lpnpage.php?pageid=online](http://www.learnprolognow.org/lpnpage.php?pageid=online)

I like this one because it's beginner-friendly (and uses characters from Pulp Fiction as examples).

\-- edit: actually, The Power of Prolog to is great, too! If anyone knows more good resources, I'd be happy to hear about them!

</comment><comment><USER22> Never understood why natural numbers (or some set of N) is not in the search space:

fib(X,X):- X<2.

fib(X,Y1+Y2):- fib(X-1,Y1),fib(X-2,Y2).

I tried to get answer to this kwestion in reddit, but all I got was personal insults.

<comment><USER23> You can do this in SWI Prolog using the between/3 predicate for the inequality, and the is/2 predicate for the arithmetic.

<comment><USER24> When I tried out Prolog, I was struck by the inelegance of is/2\. There has to be something like it, because no one knows how to write an interpreter for

        arcsin(X,Y) :- sin(Y,X).

However, MetaPost can do that for linear expressions. You can say (in Prolog syntax)

        midpoint(X,Y,Z) :- Z == (X+Y)/2.
        two(X) :- midpoint(0,X,1).

And the MetaPost interpreter will find the solution two(2).

Does anyone know of Prolog extensions that can solve linear algebra problems like that?

<comment><USER23> SWI-Prolog has CLP extensions to do exactly that: [http://www.swi- prolog.org/pldoc/man?section=clp](http://www.swi- prolog.org/pldoc/man?section=clp)

        ?- use_module(library(clpq)).
        midpoint(X, Y, Z) :- {Z =:= (X+Y)/2}.
        two(X) :- midpoint(0, X, 1).

does what you want.

<comment><USER24> Thank you. It's a relief to know that I don't need to invent it.

</comment></comment></comment></comment></comment><comment><USER25> Something I would like to be able to understand/know/study is how logic programming languages are implemented and how their runtime looks like.

<comment><USER26> Section 4.4 in Structure and Implementation of Computer Programs [1] presents an implementation of a Prolog-like logic programming language in Scheme. It is very instructive to contrast it to the meta-circular evaluator of Scheme in that same book to see the similarities and differences.

Paradigms of Artificial Programming by Norvig also contains a chapter implementing Prolog in Common Lisp. The code can be found at [2].

[1] [https://mitpress.mit.edu/sicp/full-text/book/book- Z-H-29.htm...](https://mitpress.mit.edu/sicp/full-text/book/book- Z-H-29.html#%_sec_4.4)

[2] [http://norvig.com/paip/prolog.lisp](http://norvig.com/paip/prolog.lisp)

<comment><USER27> Here [0] is a video link to SICP lecture 8A about Logic Programming, which accompanies the section 4.4. It's an excellent lecture!

[0] [https://ocw.mit.edu/courses/electrical-engineering-and- compu...](https://ocw.mit.edu/courses/electrical-engineering-and-computer- science/6-001-structure-and-interpretation-of-computer-programs- spring-2005/video-lectures/8a-logic-programming-part-1/)

</comment></comment></comment><comment><USER28> See the Open Policy Agent [1] project that has a language and REPL called Rego inspired by Datalog.

1\. [http://www.openpolicyagent.org/documentation/how-do-i- write-...](http://www.openpolicyagent.org/documentation/how-do-i-write- policies/)

</comment><comment><USER29> I implemented the Wumpus World form Peter Norvig's AIMA using different techniques. I found that Bayesian Logic was much more powerful than Logic programming. Perhaps that explains why Prolog has flourished.

Logic programming is limited to values of true or false. 0 or 1. Bayesian logic can deal with uncertainty values like .2 or .3. It almost seems like a superset. It is also more intuitive IMHO.

I keep the wumpus implementation here if anyone is interested. [https://github.com/huherto/aima3/tree/master/src/wumpus](https://github.com/huherto/aima3/tree/master/src/wumpus)

</comment><comment><USER30> Can anyone give examples of the kinds of problems prolog is ideally suited to? I took a course on it at university. It looked interesting but I didn't really "get it". It might be worth another look now I have a bit more experience under my belt. I've got a lingering feeling it would solve a certain kind of problem very easily.

<comment><USER31> It's pretty much Backtracking as a language. So stuff like N Queens, Einstein's Puzzle (the Englishman lives in the red house, the Swede in the blue house, etc.) and so on. Any time you want to write down the rules of a discrete system and ask questions about the properties of that system, Prolog is a great way to do it.

One practical application: it's very easy to write the logic for a network firewall in Prolog.

<comment><USER30> ah! backtracking. combinatorial optimisation would be incredibly useful for me. if prolog is indeed backtracking as a language I definitely need to look into it.

<comment><USER32> It is indeed backtracking as a language, but you don't get optimization entirely for free. The backtracking part only means that you can write down a problem that has multiple solutions and get Prolog to enumerate those solutions using its default order.

If the set of solutions is small enough, you can enumerate all of them and pick out the best one, or have it enumerate them until you get one that is good enough. But if you need a smarter exploration of the search space, you will (in general) have to write that yourself.

Many implementations include an integer constraints library that will give you functionality similar to an ILP solver, which may or may not fit your domain.

<comment><USER33> Would it work well for algorithms like A*, or other quazi-AI problems that crop up in games?

<comment><USER32> Yes, but you shouldn't expect it to have much more magic support for this kind of algorithms than other languages.

</comment></comment></comment></comment></comment></comment><comment><USER34> I used to teach Prolog in the GOFAI days of early 80's. It certainly was fun and probably the quickest way how to start solving interesting search based problems without having to write pages and pages of code. It was very good for motivation. Also for encouraging "top-down" design.

</comment><comment><USER35> One of my professors in college was an original creator of the Prolog language. He made us learn Prolog so that he could teach us something we could have just as easily done in C or Java. I strongly disliked him. For that reason, I am filled with negative vibes when I think about Prolog.

</comment><comment><USER36> A great intro to Prolog can be found here if you're not the type that learns solely from reading. [https://www.youtube.com/watch?v=SykxWpFwMGs](https://www.youtube.com/watch?v=SykxWpFwMGs)

</comment><comment><USER37> I bookmarked this. I have been revisiting my own programming history. I used Prolog a lot in the 1980s, partially because I was influenced by the ill-fated Japanese 5th generation project. A few weeks ago I pulled my old Prolog code experiments from an old repo. Prolog is a great language for some applications, and Swi-Prolog has some great libraries and sample programs.

I also have used Common Lisp a lot since the 1980s and I am in the process of working through a few of the classic text books, and I have it on my schedule to update my own CL book with a second edition.

<comment><USER38> You had version control systems in the 80s? I had cassette tapes and later 5 1/4 inch floppy disks!

<comment><USER37> I moved everything to svn, and later to git repos.

I actually had 8" floppy disks on my Xerox Lisp Machine. An unnatural size for floppy disks!

</comment></comment></comment><comment><USER39> If you want to exercise your Prolog-foo: [https://github.com/norswap/prolog- dry](https://github.com/norswap/prolog-dry)

</comment><comment><USER40> I once wanted to solve a problem that is perfect for Prolog, but I wanted it in Clojure. Turns out there's a great library for that! I don't think it has the full power of Prolog (I only know of Prolog and what it does but I've never used it), but for integer constraint programming it was a joy to work with.

[https://github.com/aengelberg/loco](https://github.com/aengelberg/loco)

</comment><comment><USER41> I wrote some prolog for a PL class recently and had to debug some cases of nontermination caused by the depth-first-search unification algorithm. I was wondering why prolog (or some other logic programming language) couldn't use breadth-first search instead, to avoid those cases, but couldn't find answers online - could someone who knows prolog better here have an answer?

<comment><USER42> Other search algorithms can take up lots of memory to store progress they've made down different paths. Having only one active state also lets you map unification down to efficient low level cpu operations. If you have multiple states, you either have to copy lots of data when you fork the state or you use a persistent data structure but can't use side effects, so everything is a bit slower.

It's a tradeoff though. I work on miniKanren, which is a logic programming language with a complete search that doesn't hit the nontermination issues you mention. The complete search lets us do some pretty cool stuff with program synthesis (though we're not about to put any programmers out of business just yet): [https://www.youtube.com/watch?v=er_lLvkklsk](https://www.youtube.com/watch?v=er_lLvkklsk)

Note that you can implement iterative deepening depth first search on top of prolog if you want a complete search there. Iterative deepening takes a little more time but avoids the memory problems with breath-first. SWI has tools built in to help there: [http://www.swi- prolog.org/pldoc/doc_for?object=call_with_dep...](http://www.swi- prolog.org/pldoc/doc_for?object=call_with_depth_limit/3) And I believe Ciao implements its iterative deepening library with a meta-interpreter: [https://ciao-lang.org/docs/ciao/id_doc.html#0](https://ciao- lang.org/docs/ciao/id_doc.html#0)

</comment></comment><comment><USER43> The Japanese government spent US $400 million in the '80's (a lot in those days) to try to jump ahead of "western" computer technology via its "5th Generation Project". [https://news.ycombinator.com/item?id=14047780](https://news.ycombinator.com/item?id=14047780)

The basis for it all ... Prolog.

<comment><USER44> and it was an epic fail [https://en.wikipedia.org/wiki/Fifth_generation_computer#Fail...](https://en.wikipedia.org/wiki/Fifth_generation_computer#Failure)

A primary problem was the choice of concurrent logic programming as the bridge between the parallel computer architecture and the use of logic as a knowledge representation and problem solving language for AI applications.

<comment><USER45> Personal anecdote: I once asked a retired Japanese computer scientist why the 5th generation project had failed. He replied with:

"What do you mean 'failed'? All my colleagues who worked on this project have become professors!" In this respect, the project was actually a smashing success.

</comment></comment></comment><comment><USER46> "No."

(Disclaimer: this is a joke referencing prolog's default return when it can't find a solution.)

</comment><comment><USER47> Question - is prolog used in the real world? I.e. are there businesses that use prolog in production?

<comment><USER45> Yes, there are several businesses that use Prolog in production. For example, please see the quotes from the SICStus page, a professional Prolog system (ISO standard compliant) with many commercial applications:

[https://www.sics.se/projects/sicstus-prolog-leading- prolog-t...](https://www.sics.se/projects/sicstus-prolog-leading-prolog- technology)

Here is a salient quote from the article:

"SICStus Prolog is a workhorse in the transport and logistics industries, running systems that handle _a third of all airline tickets_ , and helping railways to operate their trains better."

Further major commercial applications of SICStus Prolog are listed at:

[https://sicstus.sics.se/customers.html](https://sicstus.sics.se/customers.html)

These include a voice-operated procedure browser for the International Space Station, and a dispensation order generation algorithm for biological research.

In addition, Prolog is often used in logistics software and for scheduling, among several other tasks for which it is very well suited.

A commercial Prolog's multi-user license easily costs _thousands_ of dollars, so an industrial strength Prolog system is not the kind of software you typically "just buy" as an individual. Typical customers of commercial Prolog systems are other companies, and also universities who buy licenses for research purposes and to teach Prolog.

</comment></comment><comment><USER48> erlang syntax is prolog inspired, not sure if that's a good thing though :)

<comment><USER49> The prologesque syntax gets a lot of grief, but I genuinely appreciate it. I like my different paradigm languages to look different, helps me think differently.

(but it's much closer to Algol than Lisp is, so I don't have to bend my brain quite that hard)

</comment></comment><comment><USER50> love(prolog).

<comment><USER51> love(prolog) :-

            love(logic_programming),
            love(elegance).

</comment></comment><comment><USER52> Prolog's mathematical foundation is sound but the devil is in the details, and very soon, you encounter two of Prolog's most glaring flaws that lead to spaghetti code worse than what even BASIC ever produced:

\- It's dynamically typed

\- The cut operator

<comment><USER53> If you like Prolog, but want static typing and no cut operator, you might really like Mercury ([https://mercurylang.org/](https://mercurylang.org/)).</comment></comment>


The Panic Sign - <AUTHOR> https://panic.com/blog/the-panic-sign/ <comment><USER2> I've heard that the Durst family made an app for changing the lights on One World Trade Center. They guard its distribution pretty tightly, though.

I have a fantasy about going on a date at some rooftop bar that has a view of the spire, asking her what her favorite color is, directing her attention to the spire, and making it happen. I suppose I'd settle for changing the sign on a Portland office building, though ;)

<comment><USER3> I think this is what you're referring to: [http://www.nydailynews.com/new- york/new-yorkers-control-skys...](http://www.nydailynews.com/new-york/new- yorkers-control-skyscrapers-lights-mobile-app-article-1.1911297)

I was in NYC a few weeks ago and a friend had the app and was able to change it. It was really cool. We could see it pretty clearly from his place in Long Island City.

I don't know how exactly he got an invite, but it wasn't too special. We also talked about how it would make for a great date idea.

<comment><USER4> Can you ask your friend to send me an invite? Price is negotiable :-)

</comment></comment></comment><comment><USER5> One of the towers at the Adobe headquarters has a sort of semaphore on top that displays coded messages, and spins whenever a plane flies over the building:

[https://www.adobe.com/aboutadobe/philanthropy/sjsemaphore/](https://www.adobe.com/aboutadobe/philanthropy/sjsemaphore/)

<comment><USER6> Also in downtown San jose, you can change the colors of the lights on The88 building:

[http://www.siliconvalleylofts.com/blog/living-in- downtown/cr...](http://www.siliconvalleylofts.com/blog/living-in- downtown/create-your-own-holiday-light-scene-at-the-88/334/)

</comment></comment><comment><USER7> The "Old John Hancock" building in Boston has a similar weather beacon and an accompanying rhyme:

      Steady blue, clear view.
      Flashing blue, clouds due.
      Steady red, rain ahead.
      Flashing red, snow instead.

In summer, flashing red means the Red Sox game has been cancelled.

<comment><USER8> That rhyme conveys virtually no information. It could just as well be:

      Steady blue, rains due.
      Flashing blue, clear view.
      Steady red, snow ahead.
      Flashing red, clouds instead.

<comment><USER9> True, but that's the case for many a rhyming mnemonic:

I never remember, is it _In fourteen hundred and sixty-two, Columbus sailed the ocean blue?_

But of course I _remember remember the ninth of November._

Sometimes, though, I'm not sure if I'm correct with _I before E except before C._

But I can definitely remember the order to get drunk in using _Beer before wine, all is fine; wine before beer: oh dear._

<comment> X-Istence Remember remember

the fifth of November

the gun powder treason and plot.

I know of no reason

the gunpowder treason

should ever be forgot!

</comment></comment></comment></comment><comment><USER10> Slightly off-topic: About the weather sign at the beginning; there is a tower in Istanbul that was initially build in 1749 to watch for fire and report with baskets (daytime) and lights (night).

Now it is is still in use today as a watch-tower as well as for signaling weather forecast and maritime navigation information to the ships on the Golden Horn at night.

source: [https://en.wikipedia.org/wiki/Beyazıt_Tower](https://en.wikipedia.org/wiki/Beyazıt_Tower)

</comment><comment><USER11> Really cool idea and hack. Unrelated, I wonder what Panic is going to do to keep up in terms software products. Coda was awesome, but then Sublime Text came along.. And then Atom came along.

Panic makes some of the most beautifully designed OS X software, so I hope they release something new and relevant soon.

Just spit-balling, but they should make a native OS X application to provision and manage infrastructure (AWS, Google Cloud, Azure, DigitalOcean).

<comment><USER12> I've thought similar things - Coda hasn't kept up with my progression as a developer - but after speaking to our designer at work I'm not convinced they have a problem. Coda is not for people who do full-time software engineering - it's much more targeted at designers, people who are iterating rapidly, possibly for clients, and for whom FTP is a perfectly reasonable deployment mechanism.

Unison is niche, but the only good piece of software in its category as far as I'm aware.

And Transmit is one of the best pieces of software I've used. I unfortunately have no use for it, but many people do.

Finally, I'm pretty sure that Firewatch did ok, so I'm sure that's some funding for them too.

I think Panic are in for the long haul. They're never going to be 'huge', but I think they're going to be financially successful for years to come.

<comment><USER13> One has to suppose that the primary reason they won't ever be 'huge' is their Apple devotion and reliance.

</comment></comment></comment><comment><USER14> It's been like this for at least a year, actually I can't remember when they first did this. Could have sworn they already wrote this up sometime before...

<comment><USER15> Yes! I know 100% that I have read this exact blog post before, like over a year ago. I'm glad I'm not going crazy.

</comment></comment><comment><USER16> Now, it's just a matter of automating it:

        curl https://signserver.panic.com:54444/set/0/0/0/0/0/0
        sleep 1
        curl https://signserver.panic.com:54444/set/255/255/255/255/255/255
        sleep 1

If I was there to check IRL, I would probably like the sign to spell SOS using morse.

It's probably a good idea to add a queue and a minimum time for an specific configuration to run, although, that probably defeats the purpose.

<comment><USER17> On a recent Periscope, Cabel explained that the sign can only be changed every 10-15 seconds, and simply ignores requests silently during the timeout.

(Apparently the permit for the sign doesn't allow "rapid flashing".)

<comment><USER18> It's probably visible from a highway. Distracting signs are distracting.

</comment></comment></comment><comment><USER19> This is awesome! My father makes signs, he'd love to read this article.

I grew up helping him install signs. It's a pretty neat thing to be involved in.

This is also great advertising for Panic ;)

</comment><comment><USER20> They mention they Standard Plaza weather beacon at the beginning of the story -- we actually have one here in SF! The lights at the top of the south tower at One Rincon Hill turn red for warmer, blue for colder, green for rain, and amber for no change expected. Something fun to look for as you come west across the Bay Bridge.

</comment><comment><USER21> I wonder how many people who are nowhere near SW Portland right now are fucking with their sign.

</comment><comment><USER22> Quite nice: would be nice to have a camera focused on the sign so you could change it and see it update even if you're not on the corner.

<comment><USER23> He mentions in a comment that they considered a webcam and decided not to:

 _@lachlan We thought about a webcam for a minute or two, but realized it would be pretty logistically tricky (there's not an obvious place to mount it).

Even more than that, though, we think it's kind of appropriate that you have to visit Portland to experience the magic.

So, come visit us! _

<comment><USER24> It also probably cuts down on the change requests from most of the people who can't see the building themselves, which - if you publish something on-line and blog about it - would probably mean 99.9% of the requests.

</comment></comment></comment><comment><USER25> Posted the other day: [https://news.ycombinator.com/item?id=11680369](https://news.ycombinator.com/item?id=11680369)

No traction then, weird. Didn't know HN would accept dups within days.

<comment><USER26> It's not only been allowed for a few months, dang has mentioned that there's also some semi-automated reposting. There is also a 'past' link under titles now, that will show you links that the system thinks are reposts (e.g. there have been at least 4 submissions for this actual page, but the system also thinks an article, "CEOs are often the last to know" is the same? - [https://hn.algolia.com/?query=The%20Panic%20Sign&sort=byDate...](https://hn.algolia.com/?query=The%20Panic%20Sign&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0))

<comment><USER27> The past link only is a link to a search for the title. It isn't dupe detection (HNs automatic dupe detection AFAIK only triggers on exact URL matches)</comment></comment></comment>


Extreme JavaScript Performance - <AUTHOR> http://www.slideshare.net/madrobby/extreme-javascript-performance

<comment><USER2> I wish his summary charts were less binary. He shades the "winner" algorithm's box green. But many of those wins are insignificant.

I don't think I'd inflict ~~(1*"12.5") on someone for an insignificant gain when a parseInt() is obvious. (I also suspect that at least one of those implementations constant folded it.)

<comment> loup-vaillant Maybe this was aimed as compiler writers (Google Closure), not the poor programmers?

</comment></comment><comment><USER3> Stupid microoptimisations. Not only one should never optimize prematurely, and that is noted in the slides, but one should also never optimize like that (at least in the JS context). The interpreters/compilers/whatever will evolve for the readable cases, not for obscure idiocies, and programs using these techniques today will just run slower tomorrow.

<comment><USER4> On a large Javascript codebase these optimizations actually make a difference. It could take SECONDS off your page load time, which is huge.

</comment></comment><comment><USER5> These would be useful in something like the Closure Compiler <http://code.google.com/closure/compiler/>. Most seem like too much of a micro-optimization to use in real code though (especially given that they may change over time).

</comment><comment><USER6> I'd be more interested in seeing these techniques applied to Javascript that is coded up with a framework (say jQuery for arguments sake).

For example, what is the performance penalty of:

      var arr = [1, 2, 3];
      for(var i=0; i < arr.length; i++){ //stuff }
      // versus
      $.each( arr, function(i, val){ // stuff } );

Or @ caching:

      $("a").each( function(){
        $(this).click(
          $(this).find("img").hide();
        );
      });

      // versus

      $("a").each( function(){
        var targetImage = $(this).find("img");
        $(this).click(
          $(targetImage).hide();
        );
      });

</comment><comment><USER7> Didn't even know about the function.toString() method, but it seems to that actually the non-firefox implementations deserve the wtf. (javascript:(function(){return 2*3;}).toString() => function(){return 6;}). Can't an interpreter optimize anymore?

</comment><comment><USER8> The one I wish they had measured was createElement compared to innerHTML replacement.

In my job I was always shocked to see massive HTML strings appended or replaced in an objects innerHTML, and instead wrote lots of createElements and createTextNodes. Apparently, for performance's sake (and especially in loops) it is MUCH more efficient to use a string and replace methods to alter the content.

<comment><USER9> See also: createDocumentFragment()

<http://ejohn.org/blog/dom-documentfragments/>

</comment></comment><comment><USER10> Author's page with PDF of slides

<http://mir.aculo.us/> <http://script.aculo.us/downloads/extremejs.pdf>

Slideshare is terribly unresponsive at times, and the registration's capcha doesn't work properly.

<comment><AUTHOR> thanks for the alternative link and the hint regarding Slideshare. next time when I find an interesting presentation on Slideshare I'll look out for an alternative link.

<comment><USER10> Good find, BTW. I'm looking forward to Douglas Crockford's presentation on JSconf.eu :)

</comment></comment></comment><comment><USER11> How come JIT compilers seem to have a problem with compiling try/catch blocks? Also, why does caching the window object increase performance by significant margins in some of the browsers?

<comment><USER12> It has to do with JavaScript's "scope chain" method of looking up symbol bindings. If something isn't in the current scope, it has to incrementally check each "scope" (such a bastardization..) for the binding it's looking for. If it works its way back up to the global (window) object's "scope" and doesn't find it, it gives up and returns undefined.

"with", try/catch, etc. all introduce another level of scope, which means anything you reference that isn't in that scope directly takes more time to look up. Yeah, it's pretty retarded.

<comment><USER13> Why can't scope be resolved at compile-time?

I realize that things like window.x can be added at runtime, but local scopes ought to be simple to rule out.... as long as there are no calls to eval() .....

eval(), which can introduce local bindings at runtime _from arbitrary, runtime-constructed strings_....

Ugh.

And since aliases to eval can also be created, in any scope, from _other_ dynamically eval()'d code strings, you can't even be sure that _any_ nonlocal symbol won't resolve to eval.

So the only way you can be sure that a level of scope can be skipped in the lookup chain is if there are _no_ function calls made on any redefinable nonlocal symbols.

If there were a subset of javascript where eval was a keyword instead of an identifier, then this would be easier.

<comment><USER12> If you don't use eval, with, and a couple of other things, V8 and most of the other good engines will actually optimize that scope level somewhat. Introducing eval, with, etc will make that scope level and any more therein to be much more dynamic/slow.</comment></comment></comment></comment>


VS Code v0.7.0 (August 2015) - T-A https://code.visualstudio.com/updates#VSCode

<comment><AUTHOR> I just wish that it was optional to get "Open With VS Code" in context menu, and not forced upon you like it also is in Atom.

<comment> T-A Oddly, I don't have it in my context menu. Maybe they dropped it (it's a fresh Windows 10 box, VS Code 0.5 was the first version I put on it).

</comment></comment><comment><USER2> Add code folding and I can finally dump Sublime.</comment>


Ask HN: Incorporate first, develop later? - <AUTHOR>

With the rise of patent trolls and Lodsys actually filing against developers today, should all developers publish apps through limited-liability businesses or corporations rather than as individuals?<p>So, even if you get sued, you can take existing earnings as dividends and shut the company down without any personal ramifications, change the apps and republish through another company? Will this work? <comment><USER2> I'm actually very curious to hear from someone who has real world experience in this. $800 a year ( California ) is a big expense for me when I don't have a finished product, but I would hate to go bankrupt because someone like Lodsys rained on my parade

</comment><comment><USER3> With some exceptions, yes, it will work, so long as you live in a jurisdiction that allows individuals to trade with limited liability. (The United States and every member state of the European Union do.)

Limiting liability is the prudent first step in doing business. It boggles the mind that so many developers never take that step.

<comment><AUTHOR> What are the exceptions? Any legal source for your claims that this will work?

</comment></comment><comment><USER4> Not something to worry about unless you know you're working in an area with known patent trolls ready to pounce.

<comment><AUTHOR> I doubt any of the developers being sued by Lodsys knew they were infringing on these patents.

And there is no sure way to know which small thing is under patent than to spend hours going through the patent archives or hiring expensive patent lawyers.

<comment><USER4> Yeah, and something like 7 out of 1 million developers are being threatened by Loadsys. Exactly my point.</comment></comment></comment>


Show HN: Spreadsheets that speak SQL - <AUTHOR> https://cirkulate.com <comment><AUTHOR> A project to help my developer friends save time from sending reports from our databases to business oriented folks who will only consume data in spreadsheets.

Any thoughts on how useful this might be for others?</comment>


Ask HN: How to Implement `toString` in JavaScript with Functional Programming? - <AUTHOR> I like Functional Programming, however in JavaScript I can't figure out how to use polymorphism with FP. For example how would you implement `toString` in JavaScript with Functional Programming?<p>Cross posted here: stackoverflow.com/questions/48257447/ <comment><USER2> Probably using a lookup table using the type as an index. I'm not very familiar with javascript, but if types are first-class objects, then you can use the type directly to index into an object (I think that's what classes and hashmaps are called in js?). If not then you'll have to turn the type into a number somehow. Having done that, you'll index it into an array of functions which run the appropriate stringification on the given object.</comment>


Show HN: Stack Trace Visualization for C#/.Net - <AUTHOR> http://amirrajan.github.io/StackTracePreview/#/toc

<comment><AUTHOR> Looking for feedback if you have any. Best viewed in Chrome with high res monitor. If you want a "flat" view...just use Internet Explorer :-P.

This is the output/result of running a C#/.Net stack trace through StackTracePreview.rb (a class located in the GitHub Repo).

<comment><USER2> "Hey, cool, a .NET tool!" _see weird design_ "OK... wheres the actual tool?" _tool is nowhere to be found_ "Well... OK. No need then."

First piece of feedback - good UX is a good idea.

<comment><AUTHOR> What you are seeing is an the output/result of a stack trace that's been parsed. There is a backing ruby file that will take a stack trace and generate what you're seeing.</comment></comment></comment>


What HP Really Announced: A Battle With Google Over the Cloud - <AUTHOR> http://www.readwriteweb.com/archives/hp_set_to_battle_google_over_wireless_future_in_th.php?sms_ss=hackernews&at_xt=4d54a02647af9c3b%2C0 <comment><USER2> This is very a interesting and, to me, compelling vision that HP is offering. Shift your view of what these gadgets (PC's, phones, tablets, etc.) are. They are not computing or communications devices, they are access devices. Devices can simply be ways of interacting with your data or with other people. Different form factors, tailored for different tasks: handhelds for talking & while on the move, tablets for reading or while lounging around, desktop terminals for focus while you're at work.

This future is attractive to me. I don't want to have to worry about where my data is. I don't know if HP can pull it off, but I hope they show some commitement and give it a good try.

<comment><AUTHOR> Agreed. HP is pretty behind. Sure, they put out a ridiculous number of devices when you count computers and printers, but I think I have ONE friend using a Palm phone...though some folks are now even recommending the TouchPad over the iPad 2.0

HP is definitely showing some commitment to an idea here, though.

</comment></comment><comment><USER3> Agree. HP will never catch up, even with Palm OS.</comment>


Ask HN: How's my pre-launch copy? - <AUTHOR>

I've put up our pre-launch page at http://www.snapplans.com.  I'm wondering if the copy is clear. In short, we're building a community that facilitates people getting together that share common interests and making it easy for them to connect from anywhere (by emphasizing mobile). As a value-add to the users, we're negotiating deals for them at local establishments.  Does the essence of the value-prop come across in the limited amount of copy space? Any suggestions as to how to increase our conversions would be much appreciated. <comment><USER2> Not a lot of copy here to comment on. Feels like you're phishing for users...

<comment><AUTHOR> No, not at all, I'm just trying to get the copy right. I actually cut the copy in half on the advice that too much copy on a pre-launch page can be counter- productive. Perhaps I should add more back to it.

<comment><USER2> Well, I signed up for an invite. I like your "referral for reward" marketing strategy. Maybe include a "more" link to give info to people who want to find out what you're doing?

<comment><AUTHOR> That's a really good idea. I'm going to talk to my team about whether they're comfortable revealing details at this stage.. Thanks for the thoughts.</comment></comment></comment></comment>


Decentralized bridge between Ethereum and Dogecoin released - <AUTHOR> https://www.reddit.com/r/ethereum/comments/99fjxa/ethereum_dogecoin_decentralized_bridge_released/ <comment><AUTHOR> Project with source code available here: [https://github.com/dogethereum](https://github.com/dogethereum)</comment>


Intel's Xeon Platinum 8284 CPU: When 300 MHz Cost $5,500 - <AUTHOR> https://www.anandtech.com/show/14656/intels-xeon-platinum-8284-cpu-when-300-mhz-cost-5500 <comment><USER2> It's going to be interesting to see what the new AMD 'Rome' brings to the table when it gets into peoples hands.

upto 64 Cores/128 Threads and 128 PCI express lanes (that's on all of them irrespective of the core count) - 8 channel memory.

Given AMD's insanely aggressive pricing on the Zen 2 consumer line I'm expecting a proper knockdown drag out fight.

<comment><USER3> My biggest question is... what percentage of the market is really buying the latest generation of processors upon release? Gamers, sure. I'd imagine the number of "every day use" laptops sold is a lot larger than people trying to eek out the last few frames per second. Would these budget machines also have this new advanced AMD CPU? How long does it take "the kind of laptops you pick up at Walmart" to deprecate old CPUs and implement new ones?

<comment> old-gregg Majority of data center users replace their gear within 3-5 years. There are outliers, of course, who replace hardware with each generation or those who run their servers into the ground, but 3-5 years is far more common, so 4 years on average.

This rough math means if AMD takes half of the new CPU orders, they should have about 10% server CPU market share within a year, consistent with some analyst estimates [1]

[1] [https://www.digitimes.com/news/a20190328PD200.html](https://www.digitimes.com/news/a20190328PD200.html)

<comment><USER2> AMD couldn't have timed bringing a genuinely competitive product to market either on the backside of the Meltdown and MDS and Intel struggling on process.

Will be interesting to see if intel begin pulling the same kind of shenanigans they did back the last AMD was competitive (early Opteron/Athlon days).

I don't think the market structure is the same and given they got slapped for it last time by the regulators I'm curious to see if they'll try.

</comment></comment></comment></comment><comment><USER4> I'm having a hard time figuring out who would be buying this. Only thing I can think of is that the chip has some extra features not really advertised that the customer needed.

<comment><USER5> $5k is barely a 1 week fully loaded cost for an experienced SSE.

If I can spend $5k to save a week of optimization work, it's a good deal. Also buying clockspeed can't create new bugs either, which is a risk with any code change.

<comment><USER6> > Also buying clockspeed can't create new bugs

Famous last words

<comment><USER7> > Also clockspeed buying can't new create bugs.

</comment></comment></comment></comment><comment><USER8> $5,500 doesn't matter in this context which is why the pricing is structured this way. This is destine for a server in a datacenter, the cost of the hardware is pretty much a blip in comparison to rackspace, power and networking costs.

This largely comes down to a problem of folks assuming that 'price' is correlated strongly with 'cost'. It's not and never has been.

<comment><USER9> I assure you that $5500 is a substantial addition to the TCO of buying and running the server.

The reason these parts exists is for optimising for expensive software that's charged per core. For the same performance bump, you can add two cores and pay Intel $2000 and Oracle $10000, or you can buy a chip clocked higher and pay Intel $5000.

<comment><USER8> > I assure you that $5500 is a substantial addition to the TCO of buying and > running the server.

I assure you it's not. This thing is going to go into a 2U server, which is going to run ~$400 month for the rackspace, power and bandwidth. It's also not going to be purchased by folks building their own stuff from Newegg based on supermicro chassis and misc parts, it's going to be bought from Dell and HP as one part of the expense of a $30k+ server.

Could I build something cheaper and find cheap local colo to make it a 'significant' portion of TCO? Yes, doesn't change anything about the reality that this is not the target market so it makes no sense to be concerned about the cost in such a market. TBH if this segment of the market is your concern, you should buy a threadripper and hope the ECC ram you bought works with it. But, it's not the same market.

<comment><USER9> The numbers you're quoting don't match your claims. You said "the cost of the hardware is pretty much a blip in comparison to rackspace, power and networking costs."

Then once you start listing numbers, the server costs $30k+ and the data center $400/mo. I'm pretty sure that $30k for a server is not a "blip" on ($30k + $15k) assuming a three year lifetime.

Trying to make out like I'm coming it from some kind of hobbyist market segment point of view is a puzzling straw man. These products, which optimize for performance over performance/TCO$, are built with very valid niches in mind, and where the math works out it saves you a ton of money in software licensing or software development.

They are not, as you seem to be claiming, positioned as sensible choices for wide deployment in datacenters. If that were the case, _why bother with the rest of the SKUs_!?

</comment></comment></comment></comment><comment><USER10> Hmm, isn't the new Mac pro up to 28 cores? :-D

<comment><USER11> I built a dev computer out of some old Xeon E5-2670 V2s (10cores/20threads @2.5ghz) each. I thought it would be way faster than a single core i7 4 core at 4.5ghz. To my surprise, only a few special types of things are the 20 core machine faster than the 4 core machine.

<comment><USER12> Did you find that `make -j20` (or -j40 if you have a total of 40 threads) was five times faster (ish) than the quad-core machine?

<comment><USER13> My tangentially related experience: when I switched (after 4 years) from a Core i5-3570K (4C/8T, 3.4 GHz nominal) to a Ryzen 7 1700X (8C/16T, 3.4 GHz nominal) last year, multi-threaded build time of a smallish C++ project I work on went down from 1 minute to 30 seconds.

I'd really like a comparable speed-up on my next HW upgrade; hoping for affordable 16-core CPUs 3-4 years from now.

<comment><USER14> The 3570k is not hyper threaded from what I understand. If it was, I would have been thrilled because I am still using that professor myself, waiting for the new threadripper.

<comment><USER13> Of course, my mistake.

I also updated the 1700X to 2700 this year, the "marginality problem" ([0]) affecting some of the early Ryzens (random segfaults after some minutes of heavily parallel workloads with lots of process creation - e.g. builds!) was getting more annoying when Rust needed to download and compile a bunch of crates. I'm very satisfied - more or less the same performance (3.2 vs 3.4 GHz), but 65 W instead of 95 W TDP.

[0] [https://www.phoronix.com/scan.php?page=news_item&px=Ryzen- Se...](https://www.phoronix.com/scan.php?page=news_item&px=Ryzen-Segv- Response)</comment></comment></comment></comment></comment></comment>


Quantum Computing and Encryption Standards - <AUTHOR> https://www.yang2020.com/policies/quantum-computing/ <comment><USER2> Yang should hire better people to write these positions.

AES-based encryption standards (symmetric ciphers in general) are not very vulnerable to quantum computers. Its just question of key length. AES-256 is safe.

Just like with Thorium reactor statements [https://news.ycombinator.com/item?id=21860176](https://news.ycombinator.com/item?id=21860176) he seems to be techno enthusiast, but very clueless one. Or one with bad advisors.</comment>


Engineers Recruit Engineers With Hackruiter (YC S10) - <AUTHOR> http://techcrunch.com/2011/02/21/hackruiter/ <comment><USER3> I'm curious how this works out. My perception is that hiring is intrinsically hard, and whether you have engineers or HR doing the recruiting, it will remain hard. I would absolutely, totally love to be proven wrong on this though.

<comment><USER4> We fully acknowledge it's an open question. Hiring _is_ intrinsically hard, but think of it this way: What are the odds that the status quo is the best we can do? That seems highly unlikely to us.

<comment><USER3> Your competition isn't really other recruiters, it's personal referrals from inside the company. Everybody knows that recruiters suck; that's why whenever possible, people try to find friends or former coworkers of their existing employees and bring them on-board.

Now, if you could devise a system that's as effective as having worked with a person for years and being able to convince them to join you, yet didn't require a personal connection that takes years to build up, that would be golden.

<comment><USER4> Yes, the gold standard is employee referrals. Pretty much every company we've spoken to has told us they're the best source of people, but they don't get enough of them.

Part of what makes them so good is that the person making the recommendation (i.e., the employee) knows both parties well. I think we have a good start to solving half this problem, since we're developing real relationships with the companies and being selective about whom we work with. The other half -- actually getting to know the people applying -- is probably the biggest challenge we face (next to meeting/finding people in the first place).

</comment></comment></comment></comment><comment><USER5> Best of luck. I have a feeling the incentives for hiring are out of whack and need a correction.

What is your fee structure like? Do you take 25% of what an engineer would make their first year like other recruiters? How will you avoid becoming corrupt like most other recruiters?

<comment><USER4> We have a flat fee structure that's less than the 20-30% that regular recruiters take.

We're trying to avoid being corrupted by 1) only working with companies we know, like, and respect (so we're not tempted to encourage people to work at bad ones), and 2) the fact that our advantage over regular recruiters is that we're _not_ like them. Good hackers know one and other. If we started doing the crap many recruiters do, people would (and should) call us out, and good people wouldn't want to work with us.

[EDIT: Fix typos from writing in haste]

<comment><USER6> You'd probably want to avoid working with companies you don't know/like/respect to keep your filter in place.

On the other hand, I've made referrals to companies I wouldn't want to work at but the fit was simply perfect for the person in question. They're very happy there.

Rough balance.

<comment><USER4> It depends on why it is you didn't want to work there. The set of companies we know/like/respect is a superset of the companies we'd personally want to work at.

A trivial example is a company in the bay area: It could be an absolutely fantastic place to work, but my strong personal preference to live in a city means it'd be a poor fit for me. That doesn't mean it's a bad place to work, it just means it's a bad place for someone who wants to live in NYC :)

</comment></comment></comment></comment><comment><USER7> The hints on the bottom bar are a nice touch. I kept refreshing the page to see them all. Also found out about the keyboard shortcuts that way! (Hint: Press ?)

</comment><comment><USER8> I understand the problem. Recruiting engineers is hard, but is engineers recruiting engineers sustainable? Do they hire more engineers to do recruiting?

<comment><USER4> That's an open question. Right now, our time doing the legwork with this isn't our bottleneck. We're focused on being 10x better than the status quo.

Once we hit our capacity, we'll scale with some linear combination of software and people.

<comment><USER8> Here's something I could think of:

Engineers might one day have agents to haggle with businesses. Those agents need to know a lot about engineering in the same way that many sports agents are former players.

Is there reason to believe that such a time is coming?

<comment><USER4> That's an interesting thought. It's certainly possible. We see ourselves as a market correction -- engineers are in tremendous demand, but the market hasn't fully adjusted yet. Salaries haven't shifted dramatically and it's still a pain to find a new job, even for great engineers.

My bet is that the scale will continue to shift in engineers' favor until we hit an equilibrium.

</comment></comment></comment></comment><comment><USER9> Do you have plans to expand beyond New York or the San Francisco Bay Area?

</comment><comment><USER10> The site looks fantastic, and those are all A+ companies to apply to. I especially like that their roadmap involves developing intelligent ways to search for new jobs (like by languages in use – why has it taken this long for such an obvious filter?).

</comment><comment><USER11> Good luck, this is a good idea. The problem is not just compensation:

I believe there are tons of talented developers "locked up" in large corporations due to health insurance / health benefits, especially those with kids. Universal health insurance would help start-ups and small business compete with the Facebook's and Google's and also Bank of America's as health care would become an "even playing field".

Currently most small business and start-ups cannot compete with the health care and other benefit cost structures large American firms can achieve.

In fact, lots of corporate roll-ups exist only to reduce benefit costs - <USER2> of them as large health insurance providers.

</comment><comment><USER12> I hope this goes beyond the software engineering field eventually.

</comment><comment><USER13> What I like about this is that it's trying to help solve the number one problem in the software field. Which is not some esoteric or fancy computing problem, and is not a hardware issue, etc. It's the fact that the demand for folks who can do software, and well, far exceeds the supply of such folks. Especially ones who are available, interested and affordable. Trying to take even a tiny bite, percentage-wise, out of a very large pie is always promising.

</comment><comment><USER14> the hiring business of engineers is big money. This isn't anything new and its sad to such good engineers chase theall mighty dollar instead of building something of real value.

<comment><USER15> Please explain the difference between 'real value' and that which someone is willing to pay money for? In my world 'real value' is when people pay you.

<comment><USER14> Something that has the ability to change the World/Country/State....

<comment><USER15> I think Microsoft / Facebook / Apple have had far more impact on the world than Green Peace and all the other NGOs combined.</comment></comment></comment></comment>


Python developers survey 2018 results - <AUTHOR> http://pyfound.blogspot.com/2019/02/python-developers-survey-2018-results.html <comment><USER2> Should link to: [https://www.jetbrains.com/research/python-developers- survey-...](https://www.jetbrains.com/research/python-developers-survey-2018/)</comment>


Is RSA's Chairman Art Coviello in denial? - <AUTHOR> http://www.cso.com.au/article/539526/rsa_chairman_art_coviello_denial_/

<comment><USER2> "It is difficult to get a man to understand something, when his salary depends upon his not understanding it!"

\-- Upton Sinclair

<comment><USER3> As I said before, this deal sounds similar to how the MS-Novell deal was done.

</comment></comment><comment> wes-exp Maybe he is under the illusion of the [http://en.wikipedia.org/wiki/Just- world_hypothesis](http://en.wikipedia.org/wiki/Just-world_hypothesis) in thinking that lack of punishment implies lack of wrongdoing.

</comment><comment><USER4> no, he's deliberately trying to downplay the issue, in addition to appearing underinformed. another blow for RSA's credibility, if they even have any left at this point

</comment><comment><USER5> When Crypto AG was outed as collaborating with the NSA they were able to remain in business and eventually sell the company to Siemens. Many governments continued to use their products.

I doubt Mr. Coviello's comfortable retirement is in question. Something will be worked out. This kind of brazenness is the least he can do in return.</comment>


Fortinet hinders access to updated Linux client despite security vulnerability - <AUTHOR> We recently received notice that FortiClient had a security vulnerability[1] and we should upgraded our clients.
As a Linux user, I went to the Downloads page[2] expecting to be able to download the client.  They have just about every popular OS listed including iOS and Android, but Linux was absent.
After doing some research and contacting my customer who requires we use this Client, and his contacting FortiClient customer support, it seems that the Linux client isn't even available to those with a support contract.  You have to be part of their developer network to get access.  Now, if that was a simple sign-up, that would be one thing.  But you also have to have sponsorship from two resellers to get into the network.
This seems like a pretty big PITA, especially given they should want users to update their client since the old clients have security vulnerabilities.
Has anyone else ran into this?  Is there a way around it?
1: https://fortiguard.com/psirt/FG-IR-17-214
2: https://www.forticlient.com/downloads <comment><USER2> Short-inet</comment>


Messenger warfare: I put same-day delivery to the test - <AUTHOR> http://www.theverge.com/2014/8/21/6046731/messenger-warfare-same-day-delivery-test

<comment><USER2> The issue I see with same-day delivery is that for it to be possible for a startup to beat FedEx, UPS et. al on price, there has to be some aspect of delivery that the existing companies are doing wrong (or inefficiently), or there has to be some key innovation.

Take Uber, for instance. Uber succeeded because they were able to 'fix' the problem of taxi company monopolies- a problem with the existing market. Alternately, look at Google, which introduced PageRank, a massive improvement over existing search algorithms.

Existing delivery companies seem to be fairly sophisticated, and to be focusing only on the core problems of delivery. Unless I'm missing some crucial aspect of delivery, I don't see anything that FedEx or UPS could do differently [1] to cut costs & improve speed without massively increasing cost.

[1] The obvious exception is drone delivery, but I think that's a far too difficult problem to be solved by existing technology. I would love to be proven wrong though.</comment>


Google's Street View camera car hits a baby deer - <AUTHOR> http://www.guardian.co.uk/media/pda/2009/jan/30/google-digitalmedia

<comment><USER2> The gizmodo version of this story was posted 15 hours ago: <http://news.ycombinator.com/item?id=457225>

Also, venturebeat covered Google's apology: <http://news.ycombinator.com/item?id=457645></comment>


Heyzap (YC W09) launches "play with friends" for mobile games - <AUTHOR> http://venturebeat.com/2012/10/11/heyzap-launches-a-play-with-friends-feature-for-multiplayer-mobile-games/

<comment><USER2> Great timing, as Zynga gets destroyed because (partly) of having to rely on Facebook for social, Heyzap offers a slight alternative. Couldn't have timed it better!

</comment><comment><USER3> Nice stuff HZ!</comment>


Multicore may not be so scary - <AUTHOR> http://web.mit.edu/newsoffice/2010/multicore-0930.html

<comment><USER2> The article implies we could hit 48-cores in 5-8 years before problems (memory contention) set in. After that I guess something new needs to come along. Also that might get us close to when Moore's Law itself ends, when something beyond integrated circuits needs to step in.

I wrote about multi-core and Moore's law recently: <http://www.kmeme.com/2010/09/clock-speed-wall.html>

</comment><comment><USER3> When 48+ cores becomes standard Linux, as it is currently won't be relevant. When large multicore and distributed computing becomes more of a norm bolting on distributed parts to Linux won't be sufficient or will be so convoluted that simply creating something new will be easier. This is already happening with union mounts, lustre, ceph and linux checkpoint and restart.

</comment><comment><USER4> So wait, it's not scary because we will invent things in the future that make it easier?

By the same logic, Columbus crossing the Ocean wasn't scary. I mean, look at how easy it is now!

We have to deal with multiple processors -today-.</comment>


Adam West, Who Played 1960s-Era Batman, Dies at 88 - <AUTHOR> https://www.nytimes.com/aponline/2017/06/10/us/ap-us-obituary-adam-west.html?_r=0 <comment><USER2> In case you're wondering, this was submitted about 3 hours ago, shot to number 1 on the front page, got flagged to death, was vouched for, but never saw the light of day again. It's here:

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

I'd love to see the story hit the front page again.

Oh, and it's also here: [https://news.ycombinator.com/item?id=14528551](https://news.ycombinator.com/item?id=14528551)

 _Added in edit: Some people really, really think it doesn 't belong, and my comments are being down-voted. Oh well._</comment>


Ask HN: Bank Recommendation for new SaaS biz? - <AUTHOR> I was wondering if anyone had any recommendations for a banking solution for a new SaaS company. I'm specifically curious about Simple, but also am looking for any solution that could handle 100% of the business electronically/online (or close to it). Being able to access the account and conduct transactions outside the US is a big plus as well. Thanks! <comment><USER2> I am almost positive that Simple does not support business accounts currently. I am not aware of any "online-only" bank that supports business accounts.

</comment><comment><AUTHOR> For those who come across this post as future reference - Stripe Atlas is working to fill the niche I described above. They work with Silicon Valley Bank, and will also incorporate your business+a few other administrative services.</comment>


Announcing Night Mode, Quick Actions and More in Zoho Mail - <AUTHOR> https://www.zoho.com/mail/blog/night-mode-and-more-zoho-mail.html <comment><USER2> Great!</comment>


Predictions for 2010 - <AUTHOR> http://brianbreslin.com/10-predictions-for-2010/

<comment><USER2> Some pretty good predictions that seem quite obvious due to hindsight bias but would we have thought the same in '09? I think a few seemed fairly feasible but I don't know if I would have staked such predictions like Brian did. Bravo

<comment><AUTHOR> thanks, appreciate it. working on my 2011 predictions now.

<comment><USER3> Am subscribing to your blog, like right now.

</comment></comment></comment><comment><USER4> Wow. Brian Breslin, I am officially consulting you on all my major life decisions.

<comment><AUTHOR> I can be on your life board of advisors if you like. ;-)

</comment></comment><comment><USER5> Wow. Can't wait to see what you have to say about 2011. I hope they're all positive predictions, because everyone knows what is coming in 2012. :)

</comment><comment><USER6> can anyone post the list? our proxy is blocking it.

<comment><USER7> 1\. Facebook hits 500M users by Q3 2010.

2\. Facebook makes a huuuge mobile push

3\. Facebook acquires Foursquare or Brightkite

4\. Hulu emphasizes the social layer to tv watching.

5\. MySpace has a major overhaul

6\. Someone will finally make it easy for small businesses to get online

7\. Social gaming companies evolve out of facebook.com

8\. Electronic Arts "socializes" some of their top games

9\. Physical P2P credit card transactions/money transfers don't take off

10\. Twitter undergoes a major re-org design wise.

</comment></comment><comment><USER3> Holy shit!</comment>


Global warming disaster could suffocate life on Earth (2015) - <AUTHOR> https://www2.le.ac.uk/offices/press/press-releases/2015/december/global-warming-disaster-could-suffocate-life-on-planet-earth-research-shows <comment><USER2> That's the voice of Science.

And we (in the USA) just elected a leader who doesn't believe that humans have anything to do with climate change.

<comment><USER3> For people outside the USA who may naively conflate "elected" with "the majority of the voters voted for", I feel the need to point out that this is not what happened.

<comment><USER4> Clinton did not get the majority by that much. A very significant portion of the public voted for this leader and the party espousing similar anti-science position all the way down the ticket.

<comment><USER3> Agreed, but in democracies a special status is conferred upon the majority. The majority of voters did not vote for this idiot. It's a really important point.

<comment><USER5> A majority of voters did not vote for Clinton, either.

<comment><USER6> Plurality, then.

</comment></comment></comment></comment></comment></comment><comment><USER7> I'm curious, what prediction do most of us have?

Will the world come up with a plan to actually curb carbon emissions as much as we need to? Remove carbon?

A wide scale rises in temperature and other problems?

A huge impact on standard of living (setting us back X years)

A near extinction of humans? Full?

Or somewhere else on the scale, or somewhere distinct from my portrayal?

I'm really not sure personally. I'm recently veering towards the last on the list, a near extinction of humans. If I'm very optimistic, just a large rise in temperature and drop in standard of living. But then perhaps I'm being very overly pessimistic.

<comment><USER8> I'm a climate change skeptic. I think there are a lot more factors at play than these models are using.

A lot of people seem to believe these models are right more out of fear than a rational validation of the models themselves. On top of that, creators of these models seem to be tripping over each other to come up with more outlandish results.

Part of my skepticism is the timescales that we're working with. Other issues are perhaps a poor understanding of how the earth and everything on it might react to changing conditions.

If I'm wrong, I'm also ok with the weather getting hotter. From a livable land mass perspective, the human race will be much better off with a warmer earth than another ice age.

And finally, how is it that it's currently more socially/scientifically acceptable to believe that matter can travel faster than light than it is to be a climate change skeptic? Science is never settled, unless it's a computer model predicting the future? I hope I'm not the only person who finds that ludicrous.

So here is my prediction: every generation of humans will have their boogeyman, religious apocalypse, nukes, GW, etc... but in the end an asteroid will cause a mass extinction event, just like it has before.

<comment><USER9> So if you equate GW to nukes, then you acknowledge it is a very serious threat with the potential to wipe out most of humanity?

While nuclear war did not happen, there is nothing to suggest that it could not have happened. That it was a "boogeyman" as you suggest.

<comment><USER10> Nuclear annihilation should not be discussed as if it lies entirely in the past, either. There are thousands of warheads ready to be fired on a moment's notice. MAD didn't disappear with the fall of the Soviet Union, people just stopped paying attention to it.

</comment></comment></comment></comment><comment><USER11> This research is obviously bullocks, there were several periods in Earth's history that were a lot warmer than in the current age by a lot more than 6 degrees and oxygen production didn't stop.

For example, temperatures during the Paleocene–Eocene thermal mamimum were 8 degrees warmer than today and by all apperences there was enough oxygen to support the diverse fauna that existed then.

Similarly the Jurassic era had 5 times the CO2 of today's earth and much higher temperatures but also enough oxygen to support a variety of dinosaurs and other fauna 1.

1\. [http://www.livescience.com/44330-jurassic-dinosaur-carbon- di...](http://www.livescience.com/44330-jurassic-dinosaur-carbon-dioxide.html)

<comment><USER12> You're assuming a lot here. The entire planetary biome was vastly different during the periods you mention. Your assertion hinges on the assumption that either phytoplankton were the primary source of atmospheric oxygen during these periods, or that modern phytoplankton can in fact withstand these changes in temperature and continue to make oxygen. Neither assumption seems to be well founded.

<comment><USER11> Of course Phytoplankton was always the biggest contributor to oxygen. Jurrasic was the age when flowering plants were first coming into being, to suggest that these plants could compete with plankton in oxygen production in any meaningful way seems absurd.

And more importantly what plankton we are taking about here isn't for me to address, it's something that would have been addressed in the paper were it worth anything. Are we talking about diatoms, cyanobacteria and dinoflagellates?

The biggest contributor to oxygen would be cyanobacteria, to think they can survive these billions of years and all these mass extinctions and temperature fluctuations and then stop working because of a 6 degree increase is also nonsensical.

</comment></comment></comment><comment><USER13> Suffocation really isn't the big issue here. Phytoplankton generate energy via photosynthesis, so as the temperature of water – and this the concentration of gases that are dissolved inside – changes, so too will the organisms' biological fitness. Since they reproduce very rapidly, and their populations enormous, plankton will be able to mutate their enzymes to be more appropriate for the situation (down side from the genomic perspective – decreased biodiversity, especially in species without sexual reproduction).

The more pressing concern is that larger, more slowly-reproducing aquatic organisms will experience significant strain to accommodate their metabolic needs. For many fish, crustaceans, coral, and others: rapid change in dissolved content on the ocean will cause population loss.

<comment><USER14> Has this property been observed?

<comment><USER15> Of course, it is the basis of evolutionary theory. . .

<comment><USER16> Sometimes things adapt. Sometimes they go extinct. You don't get a guarantee about which will happen.

</comment></comment></comment></comment><comment><USER17>
         A study led by Sergei Petrovskii, Professor in Applied Mathematics
         from the University of Leicester's Department of Mathematics,
         has shown that an increase in the water temperature of the world's
         oceans of around six degrees Celsius – which some scientists predict
         could occur as soon as 2100 - could stop oxygen production by phytoplankton
         by disrupting the process of photosynthesis.

Disclaimer: I am a firm believer of global warming. Honest question: why is this study done by a professor in Applied Mathematics?

<comment><USER18> The title of the paper is "Mathematical Modelling of Plankton–Oxygen Dynamics Under the Climate Change". The research is trying to mathematically model plankton to determine how they will respond to global warming. That is why it is done by a professor in Applied Mathematics.

</comment></comment><comment><USER19> Has there been any followup research or commentary on this? It's from December 2015.

Terrifying conjecture.

</comment><comment><USER20> the great filter is coming.

<comment><USER21> For anybody who doesn't get this comment: [http://waitbutwhy.com/2014/05/fermi- paradox.html](http://waitbutwhy.com/2014/05/fermi-paradox.html)

<comment><USER20> To expand on my comment, I think this is a sink or swim moment for humanity. I think we need a great leap in intelligence and technology to get out of this mess, either with AI or genetic engineering because we don't have centuries to come up with solutions and I don't think politics can solve it. It will take real technology to remove substantial amounts of CO2 from the environment, like small scale fusion, or self replicating solar along with efficient ways to remove CO2 from air. Nothing else will do I'm afraid.

</comment></comment></comment><comment><USER22> No, life will continue as it always has, just not us unless we move elsewhere. Life, as in living things, will always find a way. Perhaps roaches.

</comment><comment><USER23> Not so long ago you could get burned at the stake for stating that the earth is not flat and not the middle of the universe. Only because 97 % of experts say something it does not mean that they are right. Maybe they are just afraid to state a not mainstream opinion. And with the statement "keep calm and go on with polluting the earth, it does not make any difference at all" could be hard to get financed the next north pole trip. We need some drama to talk about, they give us drama.

<comment><USER24> What a load of BS. No one believed the earth was flat in whatever "not so long ago" is, certainly no one was burned at the stake for it.

<comment><USER23> Calling Giordano Bruno BS is a new high in this topic.

<comment><USER24> Right. Giordano Bruno did NOT believe in flat earth - NO ONE in his time did. His scientific schtick was heliocentrism. And there is no proof that he was burned for that reason -- it is mainly understood it was for religious doctrine reasons. Even if he was, the people who burned him are not analogous to the 97% of the scientific community.

</comment></comment></comment></comment><comment><USER25> December of 2015?

<comment><USER26> Yes, Dec 01, 2015 10:50 AM (assuming that was your question).

<comment><USER27> That is something that should have been explained by the media.

I even have a headline for it: Stop Global warming or your kids won't have grandsons.

Now we've got one year less to stop this mess.</comment></comment></comment>


Clojure.core/lazy-seq makes sense - <AUTHOR> http://codemeself.blogspot.com/2010/06/clojurecorelazy-seq-makes-sense.html

<comment><USER2> Some times in clojure I've found it easier to express a sequence recursively, rather than iteratively. Using lazy-seq is not only braindead simple for this - just wrap the whole function in it, it is the only way to keep your stack use from growing on the recursive calls. I haven't compared the performance of this to eager evaluation but I'd guess it isn't that poor.

</comment><comment><USER3> when should you use lazy opposed to traditional eager evaluation? (I understand how it works) But I don't see exactly when lazy would be the preferred evaluation. It smells a bit like premature optimization.

<comment><AUTHOR> Thanks for feedback. If your seq is created by some expensive computation (i.e. primes) than it makes a lot of sense to do it lazy.

<comment><USER3> so by expensive you mean a growth of n^2 or n^3, worse?

<comment><AUTHOR> It depends on your application. If you don't know how many elements you'll need and creation is constant time, but lengthy, than go lazy. On the other hand if you only need couple of elements that are O(n^3) or worse, it might be suitable to do non-lazy. It really depends on you application requirements. Good thing is that if you implement it in first place non-lazy and later decide that you need it lazy, "interface" will not change.

One thing that you can not do for sure with non-lazy is to construct infinite seq. Even when you create one lazy way, you have to "loose head" so elements can get GCed.

HTH</comment></comment></comment></comment>


FanDuel, DraftKings scrap troubled merger - <AUTHOR> https://www.reuters.com/article/us-fanduel-m-a-draftkings-idUSKBN19Y2KL <comment><USER2> Makes sense. Having 90% of a pseudo legal market share would probably force law makers to make it properly illegal.</comment>


New tool automates your semantic web SEO - <AUTHOR> http://www.readwriteweb.com/archives/semantify_automate_your_semantic_web_seo_in_five_minutes.php

<comment><USER2> Interesting info, thanks</comment>


Livestream of me coding the next part of the Caves of Clojure - <AUTHOR> http://www.justin.tv/stevelosh#/w/3414788448

<comment><AUTHOR> I'm hanging out in ##cavesofclojure on Freenode if you have questions/comments.</comment>


A Rocket Built by Students Reaches Space - <AUTHOR> https://www.wired.com/story/a-rocket-built-by-students-reached-space-for-the-first-time/ <comment><USER2> This is similar to a project I've been a part of called Operation Space, the difference being we are students not backed by one single university or organization. We've been monitoring USC's progress for months and they have been a great source of motivation, especially being that they held the previous altitude record at 144,000 ft.

We are actually launching out of the same site in New Mexico in about a week and looking to break the Karman Line and hopefully this new milestone. Link for anyone interested: [https://operationspace.org/](https://operationspace.org/)

<comment><USER3> Good luck! How expensive would something like this be? Is it something I can casually do with my grown up kids on weekends?

<comment><USER2> Thank you! I don't have exact figures handy but short answer no, not at this scale at least. Manufacturing, design, materials, safety etc. all easily runs in the tens of thousands of dollars. We are on a much tighter budget, but AFAIK USC has spent hundreds of thousands of dollars on a single launch.

<comment><USER4> The article doesn't really say anything to the parent commenter's question...

This was not possible years ago (the part about students being able to do it, not nation states). What improvements in design and tech occured?

</comment></comment></comment></comment><comment><USER5> This is incorrect. The first student rocket to reach space was by the United States Air Force Academy

[https://archive.is/20121212202343/http://www.af.mil/news/sto...](https://archive.is/20121212202343/http://www.af.mil/news/story.asp?id=123176320)

[https://drive.google.com/file/d/0BwuvfKuNqZxQQ2xudkwtQXB4V0k...](https://drive.google.com/file/d/0BwuvfKuNqZxQQ2xudkwtQXB4V0k/view)

From here:

[https://twitter.com/skulumani/status/1131351960622391297?s=2...](https://twitter.com/skulumani/status/1131351960622391297?s=20)

<comment><USER6> The article seems to contradict it's own title:

> making the USC Rocket Lab only the second amateur group to ever send a > rocket to space

<comment><USER7> I'd chalk it up to the ambiguity of natural language: "A Rocket Built by Students Reached Space for the First Time" as in the _particular_ rocket referred to in the title reached space for the first time in that rocket's existence.

<comment><USER8> That's being too generous. Other than spacex, essentially every rocket that reaches space does so "for the first time". The title is intentionally misleading

<comment><USER7> I strongly disagree. The article describes in detail the student group's years of efforts to reach space, culminating in this success after years of failures. Moreover, they're the first collegiate team to make it to space (and the second "amateur" team).

The title is not intentionally misleading, just a bit ambiguous.

</comment></comment></comment></comment></comment><comment><USER9> The rocket reached 103.57km (100km is considered the edge of space) in altitude to spare anyone from reading this extremely annoying article. The solid fuel based rocket weighed 136kg and at just under 4m in height is impressively small for reaching this altitude. It's parachutes deployed an it was recovered safely. There.

<comment><USER4> The article really is so annoying, and not just for that reason. There are no links or references to the technological advancements made here along the way. Another: they at least mention the CSXT team in passing (which the article seems to imply to an unwitting reader to not exist), but not even their name.

If I were king of a news outlet, I'd rather hire actual enthusiasts to write articles, and editors to touch them up, rather than have this kind of crap.

</comment></comment><comment><USER10> A __wonderfull __achievement, these students made.

The fact that it has taken the university _years_ to reach the goal combined with the solid fuel systems, which is less complex (but _not_ simple), shows the __determination __to have another group of non-pro 's to reach that coveted altitude.

</comment><comment><USER11> The article mixes all sorts of units but doesn't say exactly where the Kármán line is supposed to be in any single unit. The closest it gets is 50 miles plus 60,000 feet, which is a rather confusing way to say 98.75 kilometers.

The actual Kármán line is at 100 kilometers.

This rocket reached an altitude of 339,800 feet, or 103.57 kilometers. Its maximum speed of 3,386 mph (assuming "normal" miles, not nautical miles) is equivalent to 1.513 kilometers per second [fixed]. It's well below orbital velocity, but good enough for poking into space and coming back down.

<comment><USER12> There is quite a bit of debate around where the "Karman Line" should really be (the boundary to space).

Recently there have been efforts to define it as less stringent than the 100km limit: [https://www.sciencedirect.com/science/article/pii/S009457651...](https://www.sciencedirect.com/science/article/pii/S0094576518308221)

Potentially bringing it _back_ down to 80km (the original definition was a range between 70-90km).

<comment><USER13> We can use Kerbal Space Program as base and set it to 70km

<comment><USER14> I know you're joking, but, KSP models a planet that's different from Earth in a number of ways. On Kerbin there is zero atmospheric drag past 70km; it's not the edge of space, it's the demarcation line at which indefinite stable orbits are possible. That is very different from Earth.

<comment><USER6> KSP is a whole different beast if you use the Real Solar System mod (which you should, once you learn the basics).

<comment><USER14> One of the differences of that mod is that it changes the 70k value to what it actually is in the real world, though.

<comment><USER15> > it changes the 70k value to what it actually is in the real world, though.

This surprised me. What is the real-world altitude at which there is zero atmospheric drag? I thought the atmosphere was basically just continuous.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> There's a guy in the high power rocketry hobby that is aiming for space this August at the BALLS event in Nevada. He won't say it, but given what he's done in the past, and the pictures of what he's building there's no other reasonable explanation.

A guy last year hit 244k feet ( 2/3 the way to the Karman line) on OTC solid rocket motors available to NAR or Tripoli L3 certified amateurs. Granted, it was a very exceptional rocket, but access to space by amateurs is getting closer every day.

That rocket [https://mach5lowdown.com/2018/11/07/phx4-rocket-launch- to-20...](https://mach5lowdown.com/2018/11/07/phx4-rocket-launch-to-200000ft/)

BALLS [http://www.tripoli.org/Balls](http://www.tripoli.org/Balls)

</comment><comment><USER17> I have no experience in rocket science, but can anyone here explain why it's so difficult to reach the Kármán line?

What else besides power/weight ratio is required to achieve something like this?

<comment><USER18> Rocketry is just plain difficult and expensive.

Consider the "Tyranny of Rockets" problem: if you want to send a rocket up 1 km, you need X fuel. But to get to 2 km, you need way more than 2X fuel- because you first have to carry all that extra fuel up 1 km, which takes more energy/fuel, before you can use it to go the _other_ km. And if you want 3 km up... well, you get the idea. It's exponential in cost.

Then the problem of the fuel itself. It has to be something super-energy- dense: lots of energy (velocity) for the least mass. The most super energy dense substances are usually used to make bombs, so basically you're building a metal tube with explosives inside and hoping that you can direct the explosion correctly such that your rocket goes up.

And then you have to make sure your payload- in this case some sensors to prove you actually went up that high- have to be lifted (mass) and not break. In the case of this team, their previous rocket probably did reach space but the sensors weren't working so they have no evidence!

If you want to really learn this stuff, play the game "Kerbal Space Program". It's not accurate in any sense, but it gives you the instincts of why and how rocketry and orbital mechanics work.

<comment><USER19> That's not at all true, the tsiolkovsky rocket equation relates to delta-v (change in speed) and mass fraction, NOT altitude.

<comment><USER20> Delta-v is not change in speed here:

Delta-v, as used in spacecraft flight dynamics is a measure of the impulse that is needed to perform a maneuver such as launch from, or landing on a planet or moon, or in-space orbital maneuver. It is a scalar that has the units of speed. >>As used in this context, it is not the same as the physical change in velocity of the vehicle<<.[1]

[1]: [https://en.wikipedia.org/wiki/Delta-v](https://en.wikipedia.org/wiki/Delta-v)

<comment><USER7> To clarify: is the distinction between delta-v and change in re velocity that thrust could be applied in any direction, including in the braking direction, so a rocket applying a maneuver of given delta-v could end up with an increased or decreased (or zero) final speed?

If the above distinction is correct, then _in general_ delta-v is not coupled to the physical change in the rocket's velocity. But in the case of a conventional rocket with a fixed thrust vector launching from Earth's surface (as in OP's comment), isn't it perfectly true that delta-v is equivalent to change in velocity (barring air resistance)?

<comment><USER19> It's also that you can go "backwards", e.g. slow down to land on another planet.

</comment></comment></comment></comment></comment></comment><comment><USER21> Surprised to see the photo of the rocket back on the ground, with the nose cone still attached by some sort of rope.

It would appear that the biggest difference between this thing and an Estes rocket is the size?

<comment><USER22> From a simplistic standpoint, the only difference between the Space Shuttle solid rocket boosters and an Estes rocket was the size.

In reality, a solid rocket motor at this scale is very difficult to manufacture reliably, and with the thrust profile that will provide the performance that you need to reach your goals.

That's not to mention the avionics in this rocket, the materials (carbon fiber laid down by the students), the deployment systems for the nose cone, and the manufacturing of the nozzle engineered to provide adequate thrust through the entire range of atmospheric pressures.

<comment><USER23> To be fair, though, all of these are solved problems that are easily overcome with budget and outsourcing. Ex. you can buy quality carbon fiber tubes in whatever diameter and thickness you want from multiple suppliers, contract out the nozzle based on existing designs to a CNC milling or titanium SLS printing company, purchase aerospace-rated avionics packages, etc. The impressive part here is that the students seem to be doing a good chunk of these things mostly in-house and with less money than it would normally take.

<comment><USER24> Sure you can contract out the work, but paying for someone else to make a rocket you launch doesn't really qualify you to say that _you_ did anything. It also doesn't teach you anything, so what's the point?

Most of what you work on in college is solved problems, because college is about learning and not about original research.

</comment></comment></comment></comment><comment><USER25> So that's where that crazy tuition goes....

Also, wonder why not [https://en.wikipedia.org/wiki/Aerospike_engine](https://en.wikipedia.org/wiki/Aerospike_engine) ?

<comment><USER26> Is there such thing as a solid fuel aerospike?

I'd think the spike geometry would still give ambient (maximally efficient) expansion over a range of altitudes but IDK how they'd make that work with solid propellants.

I'm sure the students didn't because it's never been done before, and you get an A for succeeding with proven technologies, not failing with unproven ones.</comment></comment>


Overcoming Imposter Syndrome - <AUTHOR> https://www.bakadesuyo.com/2020/01/overcome-impostor-syndrome/ <comment><USER2> In general in WebDev and general software development there are lots of talks like these about how you should identify and overcome imposter syndrome. For some that is useful. For others, there was a fellow earlier who tried converting long(64 bit on Linux and 32 bit on Windows in C) to double and back. A double can loselessly hold a long smaller than 2^53 and a few other long's sparsely. One of the longs a double can hold is -2^63 which if he knew about doubles would not have surprised him. Meanwhile 2^63-1(the maximum value for a long in 2's complement when it is a 64 bit value) was not a double. My point being, be humble.</comment>


Perfect software versus economic reality (2014) - <AUTHOR> https://journal.dedasys.com/2014/09/24/perfect-software-versus-economic-reality/ <comment><USER2> Evil incarnate.

The cheap way to do things is to do it right the first time.

Screwing up is expensive.</comment>