How do you tell a non-technical person that they can't understand? - <AUTHOR> http://blog.asmartbear.com/non-technical-communication.html <comment><USER2> > How do you tell a non-technical person that they can't understand?

This is unbelievably presumptuous, narcissistic and smacks of technological elitism. You don't know whether or not the client can understand -- all you know is you're unwilling to explain it to him.

If you don't want to get along with clients, if you're willing to take the risk of alienating them, take this article's advice and tell your customers, "You can't do that, and you also can't understand why -- trust me."

If you do want to get along with your clients as well as grow your business, try this instead: "Well, our system can't do that at the moment, but I appreciate your making this suggestion for future improvements."

Maybe it's a polite lie -- so what? You've empowered the client, made him feel as though you care about his needs. You've avoided opening an emotional exit door the client my well choose to walk through.

<comment><USER3> >This is unbelievably presumptuous, narcissistic and smacks of technological elitism

>In every period of history, there seem to have been labels that got applied to statements to shoot them down before anyone had a chance to ask if they were true or not. "Blasphemy", "sacrilege", and "heresy" were such labels for a good part of western history, as in more recent times "indecent", "improper", and "unamerican" have been. (From what you can't say).

Mayhaps you can apply those labels, but you skipped the crucial part -- is it true?

<comment><USER2> >> This is unbelievably presumptuous, narcissistic and smacks of technological elitism

> Mayhaps you can apply those labels, but you skipped the crucial part -- is > it true?

As to "presumptuous", the author assumes _a priori_ that the client _can't_ understand an issue, not _doesn't_ understand it but might comprehend an offered explanation. That's how presumption is defined -- an assumption in advance of any effort to gather facts.

As to "narcissistic", well, yes, absolutely. The author places himself and his peers in an elite, entitled group, qualified to gauge the limited understanding of lesser beings and pass judgment on them, rather than try to explain something that might help his clients and his business.

As to "elitism", yes again -- the author sees himself and his associates as belonging to an anointed, superior technological priesthood, able to say to the unwashed masses "trust me" with a straight face.

Any questions?

<comment><USER3> Yes, one.

Is the original statement true?

</comment></comment></comment></comment><comment><USER4> _How do you tell a non-technical person that they can't understand?_

You don't. You explain by analogy.

If you can't come up with a good analogy, it's probably for one of two reasons: Perhaps you don't really understand it all that well yourself, in which case you should find somebody who understands it better to do the explaining. Or perhaps you just have a hard time coming up with analogies in general, in which case you should find someone with better communication skills to do the explaining.

<comment><USER5> Now, try an experiment next you do that. Explain by a completely inapplicable analogy, one that is logically coherent but does not apply to the problem at hand.

You win if your listener calls BS. I win if they don't.

You're probably not explaining anywhere near as much as you think. You're just making soothing noises until they are no longer willing to pursue the matter. You might as well be honest about that fact with both yourself and the client, as suggested in the blog post.

<comment><USER4> All you're really demonstrating by that thought experiment is that when there's a huge knowledge gap, the more knowledgeable person is well-positioned to get away with spewing a whole mess of BS.

That is obviously true. But it's also obviously nowhere close to being an appropriate (or even smart) way to conduct one's business relationships.

<comment><USER6> You do not have a "business relationship" if there is a huge knowledge gap. If there's no meeting of the minds, no way to evaluate each other, no way to sensibly compete in a free market, you're well along the path of a provider/consumer relationship or pure faith or at best something like feudalism or lifetime sharecropping.

A good analogy is asking about the business relationship between a parishioner and a priest. Its the wrong tinted glasses to look at the relationship. That doesn't mean it has to be a bad relationship, and no value judgement of inferiority. Its just evaluating the relationship via inappropriate criteria.

<comment><USER7> Tread lightly, this attitude is dangerous. There are really customers/managers who are not technical that instead rely on your previous words and commitments to gauge what's possible and what is getting done.

These people act dumber than they are, so they can extract more information with which to evaluate your character and disposition.

<comment><USER6> Again, that's not a business relationship, that is quite literally exactly how feudalism worked. Your liege lord was not an expert on your plot of lands agronomy prospects or the physical state of your knights, so he had to trust you.

Its possible some of the confusion is state based vs action based. If you define business relationship by state, then absolutely anything that happens in a cube farm while wearing a tie is a business relationship, from a free market to blackmail to slavery to blind faith. If you define business relationship by action as a theoretical ideal of how roughly equal participants in a competitive market in a rule of law system treat each other, you get a completely different analysis.

</comment></comment></comment></comment></comment></comment><comment><USER8> I would love to know the specifics behind this post, because it seems so very, very, wrong.

One of the comments nails it best: unless you are breaking the laws of physics, you can make software do pretty much anything... the real question is whether that is a net benefit.

 _"They want to use our software or customize things in ways that are technically impossible"_

What the hell does that even mean? Perhaps the reason the tech can't communicate to the non-techy is that he can't communicate, period. Does it mean they're using the software for something it wasn't intended to be used for? Are they looking for a feature that isn't coded? Are they looking for support for something you aren't interested in supporting?

Not much is 'technically impossible' when it comes to businesses and software these days. What there are in abundance however are a lot of misguided applications.

<comment><USER9> _Not much is 'technically impossible' when it comes to businesses and software these days._

Try doing IP multicast on the public Internet.

What, you can't, because the ISPs have disabled it?

Next time try not talking out of your ass.

<comment><USER10> Using IP multicast is a solution to a problem; and I'm pretty sure the parent comment meant that he could solve any problem given enough time, money, and resources.

It's not like you _have_ to use IP multicast to solve certain classes of broadcasting problems, it's just more helpful.

<comment><USER9> "It's not like you _have_ to use IP multicast to solve certain classes of broadcasting problems"

Then why did NATO get their own dedicated lines to multicast on? Why don't they run their 100,000 simultaneous user systems without multicast and save that expense?

But OK, we'll pretend you're right about that one. What if someone asks for a job shop scheduler for predictably giving optimal schedules for 300 machines interactively? NP completeness is no problem, right?

Or what if someone asks for an in software modulator for the entire radio spectrum? The non-existence of the necessary hardware is again no problem, right?

Or how about when users asks for just plain contradictory requirements huh? Never happened to you? Because these ones are not just physically impossible but also logically impossible.

The fact is that some things are constrained by engineering. It is also a fact that some non-technical types in positions of authority push back when told "no" because of technical constraints, and ask "Why not?". Attempting to give them a reason is a trap, because they are asking the question as an opening negotiating ploy.

Because these idiots in their ignorance think an engineering constraint is a negotiable item.

I feel very sorry for the engineer in the original post because it sounds like he's stuck in such a rut.

And it's simply infuriating to hear somebody respond to that plight with the nonsense that "in IT anything is possible".

</comment></comment></comment></comment><comment><USER11> > _You're going to have to trust your doctor._

Good god this is bad advice, especially in the US which is nowhere near the top in world rankings for quantitative medical performance like longevity or infant mortality.

The first thing you do is get multiple opinions. Without any further info, you have a 25% chance that you are relying on some clown who was in the bottom 25% of his class. I swear many of those guys are just throwing around treatments to collect $$.

<comment><USER12> Agreed. And contrary to what the OP said, it is entirely possible to educate oneself about a specific medical condition, given only some basic knowledge about biology and biochemistry. There are plenty of resources out there. Coming up with possible alternative diagnoses for one's symptoms is a bit harder -- that's really what you're relying on the doctor's expertise for -- but even that can be done.

</comment></comment><comment><USER13> It's a dangerous habit to call or think of anyone as "a non-technical person". Life is not binary; people do not come in discrete categories; these are merely labels we impose on ourselves and others, and once you stick a label on someone it's hard to see them otherwise. You're bound to the judgement you've made and will tend to block out any information that contradicts it – such as the fact that they can understand things, if clearly communicated.

</comment><comment><USER14> This reminds me of Richard Feynman answering a question about magnets.

 _I really can't do a good job, any job, of explaining magnetic force in terms of something else you're more familiar with, because I don't understand it in terms of anything else that you're more familiar with._

Transcript: [http://lesswrong.com/lw/99c/transcript_richard_feynman_on_wh...](http://lesswrong.com/lw/99c/transcript_richard_feynman_on_why_questions/) Video: <http://www.youtube.com/watch?v=wMFPe-DwULM>

</comment><comment><USER15> Wrong question.

If you can't simplify or analogize enough to explain something technical, you don't understand it well enough yourself.

Sometimes I'll tell people "It's kind of abstract and will take a while to explain. Do you still care?"

</comment><comment><USER16> Different people are looking for different answers, and a non-technical person rarely wants a detailed technical answer.

"Will I be able to do X?"

"No, because that's technically impossible." or

"No, our product doesn't support that feature yet." or

"Well, you could, but it's not a documented feature, and you risk losing everything you did during next upgrade." or

"Yes, but it will take several more months of development and associated cost."

Generally, the asker will be satisfied at this point, because now they understand enough of the problem to make an informed decision.

</comment><comment><USER17> I deny the premise of the OP's doctor analogy. Given a rare liver disease, and the amount of information available on the internet, and access to doctors to ask questions to, a motivated learner could become quite proficient in understanding how the liver works and how it is affected by a specific disease. The patient does not have to become a doctor to do this. A doctor has to learn many, many things to become a doctor. Whereas the liver disease sufferer only has to learn about one thing. It is easily possible for a lay person to learn enough about their condition to have a meaningful "technical" conversation about it with their doctor.

<comment><USER18> That would only work if the learner is so motivated that they spend months poring over medical and biology textbooks to understand enough background, and then learn how to read scientific papers and interpret studies for statistical significance, to get up to date on the latest research. And of course they also must have the aptitude to do all that, to get to the point where they can start meaningfully questioning the doctor's recommended course of action.

Otherwise, they're still just going to have to trust the doctor.

</comment></comment><comment><USER19> You don't. You start by explaining from a high level, working your way down to lower levels as requested until the client comes to their own conclusion that they can't understand. This takes longer, but keeps you from being the bad guy.

</comment><comment><USER20> The best approach that I have found, at least when making websites or creating a CMS, is to really dumb it down. Don't think about how you would like it to be, because it will almost always be too complex. Beyond making software super intuitive, make sure it's extensible enough to adapt to customer needs. Pretty much anything is possible but if your client is consistently asking for stupid things then I think it's time to find a new client.

</comment><comment><USER21> The key failure of this post is that it uses the wrong analogy. You may want your client to think of you as a doctor, but right now they think of you as a magician.

</comment><comment><USER22> Don't say: "Do you understand?" or "Do you know what I mean?" Instead say: "Did I explain that well?" or "Am I making myself clear?"

</comment><comment><USER23> Kobayashi Maru

If you can't find a solution, change the problem.

I have had great success in re-working the requirement when something seemingly impossible has been proposed by a user. IMHO, this is because what makes something impossible is usually an additional (and often negotiable) requirement.

Sure there are still times when this won't work either, but it should help reduce that number.

</comment><comment><USER24> The premise is predictably arrogant and self-serving. It simply means that YOU lack the intellectual capacity, emotional intelligence, and command of language to produce a coherent explanation for that person. IOW - it's YOUR failure, NOT THEIR'S.

</comment><comment><USER25> Post doesn't even try to answer the original question.

> ...how do I basically tell [the customer] "You can't understand this. You > have to trust me" without sounding like a prick?

The post concludes with "you have to tell the customer to trust you".

</comment><comment><USER26> If you can't convince them, confuse them eh?</comment>


The White House Blocked My Report on Climate Change and National Security - <AUTHOR> https://www.nytimes.com/2019/07/30/opinion/trump-climate-change.html <comment><USER2> That's why climate change is going to end our global civilization; short sighted profiteering.</comment>


Perl is 26 Today - <AUTHOR> http://www.modernperlbooks.com/mt/2013/12/perl-is-26-today.html <comment><USER2> Been using Perl for almost 10 years now. I've used Perl for almost everything. Web development using CGI::Application, developing my own web framework, console apps (using the ncurses library), POE (Perl Object Environment), Web socket stuff and more.

My main job currently involves maintaining and developing a huge code base in Perl including three websites (soon to expand to much more). Perl just works. I thoroughly enjoy coding in it. I've not spent too much time optimizing and testing code though. mod_perl is pretty fast in itself (using Apache).

That being said Perl certainly lacks the in-built features which would make meta programming a quick and easy job. Yes, I still have to start using Moose. Perhaps in 2014!

Happy 26th Birthday Perl! Without you, I wouldn't have a job!

<comment><USER3> I wouldn't have had a job between 2003-2004 which was untangling Perl and rewriting it in C# :)

<comment><USER4> Are there any _new_ Perl jobs in 2014?

Is there growth in the actual number of Perl full-time positions or is it declining?

Companies obviously need Perl programmers to maintain and enhance existing systems, but we don't see or hear about any new start-ups using Perl as part of their stack.

Fwiw: I don't use Perl anymore but was a fan and love Moose and CPAN.

<comment><USER5> We're a growth stage startup hiring perl programmers to do new development in the Los Angeles area. Perl isn't the only language we use (we have some python), but it's widely used throughout our systems.

[https://www.ziprecruiter.com/hiring](https://www.ziprecruiter.com/hiring)

</comment></comment></comment></comment><comment><USER6> So when I went to Google I learned Python. I enjoyed the language and used it a lot, it has a solid support base and pretty much anything you wanted to do you could import a module to do it. When I went to Blekko they were a perl shop, which was a bit intimidating at first, but after programming in it for nearly 4 years now I find I can get from concept to first test faster in Perl than I could in Python. And I hadn't realized how much the Python indentation stuff bugged me until I got back into a scripting language with braces.

At the end of the day I find I prefer perl for quick things, and Python for multithreaded things.

<comment><USER7> I can't stand perl's philosophy: [http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_...](http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it)

Contrast with Python's philosophy: [https://wiki.python.org/moin/TOOWTDI](https://wiki.python.org/moin/TOOWTDI)

Python's philosophy may be limiting for some people, but I'd rather have code that I have a decent chance of reading and understanding the run-time behavior of than a language that encourages extreme personalization.

The whole parsing thing doesn't help either: [http://www.jeffreykegler.com/Home/perl-and- undecidability](http://www.jeffreykegler.com/Home/perl-and-undecidability)

<comment><USER8> So you can't stand any and all programming languages? Because you can do anything in more than one way in all languages. And that's the whole point in 'programmability'.

And secondly its extremely rare that you will run into some obscure feature which indulges in the whole parsing thing you mentioned.

</comment></comment></comment><comment><USER9> Yay Perl!

It was my first exposure to dynamic programming languages (unless you consider BASIC one). I started out on BASIC on an Amiga 500 then C on my first DOS 386 computer (I just wanted to learn to make games). I came across Perl in my final year of high-school when at a co-op placement with a local web development shop. The school taught Pascal and a little-known language called, _Turing_. Scalars were super-cool by that point.

It's amazing to see how far things have come and that Perl continues to get better despite the downward trend in its popularity in recent years.

Here's to another 26! :)

</comment><comment><USER10> Two main aspects of Perl that have always drawn me time and time again back to it are (1) the get-it-done mentality (there's more than one way to do it, and what really matters is completing the job) and (2) the huge repository of modules that is CPAN.

Evaluating other environments along those lines yielded interesting frustrations. In my opinion, the real contender is node.js, thanks to its minimalist approach on many things, and NPM.

Note: I'll admit that Node forces you to be as async as possible, but it's for a good cause so I can turn a blind eye on it. :)

</comment><comment><USER11> Good old perl. Complicated, funny, odd and very useful. I've been using it regularly for the last 6 years now.

<comment><USER12> That moment when you realise you're older than Perl, and many of the same adjectives apply to the both to you.

<comment><USER13> I chuckled aloud at that one, and (funnily enough) it rings true!

</comment></comment></comment><comment><USER14> Was introduced to Perl in a programming languages course in college in 1996/1997\. Brought it to my first job, where it gained fame there for being the language that took a 12 hour process and ran it in less than a minute. (They had originally been trying to parse a huge log file with Visual Basic, I believe it was. Perl was made for, well, extraction and reporting...)

Been programming in it full time ever since.

Thanks, Larry Wall, Randall Schwartz, Brian Foy, Nat Torkington, Tom Christiansen, Damian Conway, etc. etc.

Count me in as another person introduced to O'Reilly via "Programming Perl." Was "Perl Best Practices" the first such "Best Practices" book?

<comment><USER15> One of my favorite Perl books, albeit a bit lesser-known is "Higher Order Perl" by Mark Jason Dominus.

<comment><USER16> And which is available online at: [http://hop.perl.plover.com/book/](http://hop.perl.plover.com/book/)

</comment></comment></comment><comment><USER17> For those wondering about startups using Perl for a large part of their codebase, DuckDuckGo is certainly one. There maybe others too but mostly it's for server side scripting.

<comment><USER18> Here's a new site that features start-ups using perl [http://www.builtinperl.com](http://www.builtinperl.com)

</comment></comment><comment><USER19> Favorite Perl story (despite it being the first language I used to program the web back in college).

I once had to work on a an ASP (MSFT Active Server Pages circa 2001?) website that was written with ActivePerl [1]. Their technologist chose it, then left the company, and they had a hard time finding someone to work on it.

Also, the Programming Perl book was my first O'Reily book that I read/used, checkout out from campus library.

Ahh...memories.

[1] [http://www.activestate.com/activeperl](http://www.activestate.com/activeperl)

<comment><USER20> I think that Learning Perl and Programming Perl were the books that put O'Reilly on the map. Lerning Perl was the best intro to programming book of it's generation for sure.

</comment></comment><comment><USER13> I am a Perl user and I do like it very much (warts and all). This article reminded me of another self-deprecatory Perl article: [http://ebb.org/bkuhn/blog/2012/12/18/perl- cobol.html](http://ebb.org/bkuhn/blog/2012/12/18/perl-cobol.html)

And yes, as the article says, Here's to 26 more! :-)

<comment><USER21> That's an interesting article but seems to be missing the actual why of it. He still likes perl because... culture? Some people are still writing software in perl or cobol, sure - and some of that is good software that solves real problems. But the reason we think of the average programmer in one of these obsolete languages as "some sort of second-class technology citizen" is that, well, they are. Compared to the rest of us they spend more time working around language deficiencies, inadequate tooling and all the rest of it, and less time making interesting things.

Right now I'm a huge Scala fan. I've had that experience of feeling that I never want to program in any other language again (and every other language I've gone to, even those I used to like, feels clumsy and tedious by comparison). But I hope that in 25 years' time I'll have moved on to something even better. Language design isn't done, and languages are getting better all the time.

<comment><USER22> I run into many Scala fans amongst Java developers. It's the current shiny thing in that technology area. Good old Java (of a similar age to Perl) is usually what they're making their living doing...

<comment><USER23> Actually Perl 5 is older then Java by about a year (yes, Perl had OO support before Java even left the lab). But Perl itself is much older then Java, by several years.

</comment></comment></comment></comment><comment><USER24> I love Perl, it's the only language (afaik) that let you do the same thing in a hundred different ways, and this provides infinite fun when you program since you can discover or think something new every single time. And that's why we have perl poetry, perl golf, and fantastic obfuscated codes. Happy 26!

       no less can I say;
       require strict, close attention
       while you ... write haiku

</comment><comment><USER25> I used to be a Perl developer a very long time ago. Writing CGI based web apps was fun, and felt much 'tighter' than today's world of PHP, Ruby, JS, etc. That said though, I don't miss it. :)

Perhaps my favourite memory of the Perl scene was the announcement of Parrot - an April Fools joke that detailed a project to built a bridge between Perl and Python - that then got built. Brilliant.

</comment><comment><USER26> I'm a relatively new programmer. Been programming for around 4 years. I tried Perl, but felt like the world had moved on, so I never really committed to it.

With PHP, Python, Ruby and Javascript... space seems tight for another scripting language. Languages like Lua have something special. What's special about Perl?

Edit: I don't want to be hateful. The more the merrier obviously.

<comment><USER27> I moved from Perl to Python 3 years ago.

Its true. Perl feels like a very powerful base language, moving to Python felt like you were taking a bit away (I know in reality you can probably achieve much the same things). Python on the other hand doesn't require you to implement your own basic functions (max, min , trim / strip ) as they are included already. Python stops me from shooting myself in the foot as often, by not allowing me to do stuff that is too clever too early.

I do miss being able to reference / deference variables explicitly though. Other great things are, CPAN, regular expression support (that never feels as nice in Python), one liners for doing stuff quickly on the command line. I even quite like the sigils, as an easy way to recognize the types of variable you are dealing with (though it is confusing at first). Working with strings feels a lot more natural in Perl than Python.

<comment><USER28> > I moved from Perl to Python 3 years ago

But Perl-like ambiguity still seeps into your English. Was that Python 3, or 3 years ago?

<comment><USER27> It's all implicit. Python 3 wasn't available "years ago", so I must have been moving to Python 2, 3 years ago.

(Ok, I just checked, Python 3 has been around longer than I thought).

</comment></comment></comment></comment><comment><USER29> Favorite Perl snippet (from Joseph Hall's EPP book)

        [$x => $y]->[$x <= $y]

Holy shit - just realized I first touched Perl 15 years ago!

<comment><USER30> What does that do?

<comment><USER2> It prints the greater variable between $x and $y.

[$x => $y] creates an array reference. => is just a fancy syntax for a comma. So its actually [$x, $y].

[$x => $y]-> dereferences the array ref.

$x <= $y is a boolean expression which return 0 or 1. Accordingly the array index is chosen.

Sorry if I'm unable to explain properly! Here's a script.

        #!/usr/bin/perl
        use strict;
        use warnings;

        my $x = 8;
        my $y = 9;

        print [ $x => $y ]->[ $x <= $y ];

<comment><USER31> \- Why not just write ',' instead of '=>'? Is there an actual reason for this other syntax to exist and to be used?

\- Why does the array have to be explicitly dereferenced? Isn't it obvious from context?

\- Why count on the mapping from boolean to int being false = 0, true = 1? Pretty much everything other language that has such a mapping does false = 0, true != 0.

In one line, a vivid reminder of why I find perl so awful.

<comment><USER32> This is obviously written to be clever/cute, not readable. If you just wanted the max of something, you could just write: $x > $y ? $x : $y; (This is the ternary operator borrowed from C, which still is a little confusing.) You could also just use an if / else statement, or write your own min/max functions. Or you can use min() and max() functions imported from List::Util module which can return the min/max from an entire list: [http://timmurphy.org/2012/02/01/min-and-max-functions-in- per...](http://timmurphy.org/2012/02/01/min-and-max-functions-in-perl/)

</comment></comment></comment></comment></comment><comment><USER22> Many happy returns of the day. Good old Perl. I'd be happy to use other languages, but I tend to get plenty of offers to continue using this one. :-)

</comment><comment><USER33> I recently turned into a Perl user. Though I must say, documentation about Perl with CGI, and pre-made scripts are a let down. I browsed many O-Reilly books on Perl, CGI is one of the least explanative topics. Some modules have very obscure explanation on CPAN, I don't mean any offense.

If not for Perl Monks, my enthusiasm might have been lost midway.

<comment><USER34> CGI is not the way to go today. If you want to build web pages with Perl, check out [http://mojolicio.us](http://mojolicio.us)

<comment><USER33> Might I ask, in a nutshell.. why not CGI?

<comment><USER35> (classic) CGI requires a full application start-up every time a request comes in, and so is very slow. If you have to use CGI, use FCGI (fast cgi) to solve that problem.

However, in recent years PSGI has started to become the standand in the community. As far as I know, it is modeled after Python's WSGI. All of the "major" perl web frameworks support it, the three big ones I can think of are Mojolicious[1], Dancer[2], and Catalyst[3].

1: [https://metacpan.org/pod/Mojolicious](https://metacpan.org/pod/Mojolicious)

2: [https://metacpan.org/pod/Dancer](https://metacpan.org/pod/Dancer)

3: [https://metacpan.org/pod/catalyst](https://metacpan.org/pod/catalyst)

<comment><USER33> I will look into these, thanks! I knew about FCGI, but didn't knew about PSGI. Much appreciated.

<comment><USER35> I probably should have included this link too: the PSGI spec itself ([https://metacpan.org/pod/release/MIYAGAWA/PSGI-1.102/PSGI.po...](https://metacpan.org/pod/release/MIYAGAWA/PSGI-1.102/PSGI.pod))

</comment></comment></comment></comment></comment></comment><comment><USER36> My favorite perl story: Had been working on parsing through huge flat text files with it, had over 40 lines going and just could not get it to work correctly. I took a step back, rethought what I was trying to do, and wrote a one liner awk that just worked.

Side note: I have noticed that in bioinformatics, perl is largely being replaced with python in tool usage.

<comment><AUTHOR> > I have noticed that in bioinformatics, perl is largely being replaced with > python in tool usage.

Which has honestly little to do with the language and more with the fact that the bioinformatics-related Perl books are the worst programming teaching books i have ever seen. (Honestly, a lot of the flak on perl goes back to old and outdated books.)

<comment><USER36> I would also venture that much of the transitions are feedback loops. So person A makes a new shiny in python for no reasons relating to superiority of language for job x, but because person A is good with it. Well, if what he makes is good, people start using it. Then it breaks, and they have to fix it, or maybe get an idea to fork it. Suddenly, person A's software just encouraged 20 people to hop into python for no real concrete reason. On the bio side, bio-python is just much more intuitive imho, vs bio-perl.

</comment></comment></comment><comment><USER37> I haven't been a regular perl programmer for coming up on 10 years now (switched to python), but I still miss the easy regexes, and I'll pull it out when I have to do awk/sed like things.

</comment><comment><USER38> And Perl 6 is 27.

</comment><comment><USER39> hahaha. Perl is 2 years older than me.

<comment><USER6> You don't even want to know how old FORTRAN is :-)

</comment></comment><comment><USER40> Perl is the ultimate hacker's language.

It was for the 90s and 00s what Microsoft BASIC was to the 1980s.

However, I think it's also coming back. Most of the "inefficiencies" it got tagged with were relics of the server model at the time, like CGI.

Now many are seeing that mastery of a general-purpose language is better than knowledge of specialized methods in a specialized language.

The first is flexible; the latter is not.

<comment><USER35> I also think that things like Modern Perl[1] are helping to move the community away from the "line-noise" style of Perl that it was (in)famous for back in the day.

1: [http://modernperlbooks.com](http://modernperlbooks.com)

</comment></comment><comment><USER40> Still the best all-purpose language. Trend languages like Ruby and Haskell are flashes in the pan.

<comment><USER41> Not sure I want to do BlackScholes and MC or solving SAT problems or data structures in perl..

But text processing , hell yeah. perl -pei ftw!

The legacy is perl REs

<comment><AUTHOR> You can probably do those with PDL.pm :)

[http://pdl.perl.org/?page=screenshots/index](http://pdl.perl.org/?page=screenshots/index)

</comment></comment></comment><comment><USER42> Been programming perl for over 8 years. Moved on like most of the perl developers to ruby :)</comment>


Ask HN: Way to oraganize saved HN stories - <AUTHOR>

Is there a bookmarklet or service that would allow me to search through or organize my saved HN stories. <comment><USER2> In case you look at this, I have scripts[0] to do this. Email me.

[0] <http://news.ycombinator.com/item?id=5094367>

</comment><comment><USER2> I once wrote a python script to poll through the pages and save the HTML. I know of no other option.

<comment><USER3> is it opensource? It would be great if you could share</comment></comment>


Release Alerts: Keep up with GitHub repo releases - <AUTHOR> http://release-alerts.21zoo.com/

<comment><USER2> It does not work.</comment>


QuestDB – Fast open source relational time series database - <AUTHOR> https://www.questdb.io/ <comment><USER2> Hi, QuestDB's author here, thanks for posting! I wanted to post this on Show HN, but someone beat me to it!

We are an open source (Apache 2.0) time-series database, programmed in zero-GC Java. You can find us on GitHub [https://github.com/questdb/questdb](https://github.com/questdb/questdb). We would like to get your feedback.

<comment><USER3> It's fine to go ahead and post your Show HN when you're ready. Reposts are ok when an article hasn't had significant attention yet—this is in the FAQ: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html). Plus a Show HN has additional value.

You should add a comment to the thread giving the backstory of how you came to work on this, and explaining what's different about it. That tends to seed discussion in a good direction. Good luck!</comment></comment>


Password Typos and How to Correct Them Securely (2016) [pdf] - <AUTHOR> http://www.ieee-security.org/TC/SP2016/papers/0824a799.pdf <comment><USER2> > "In future work, we plan to investigate whether typo-tolerance will actually > serve to improve overall security. Because allowing for password typos > increases login success rates in benign scenarios, it may help to make > adversarial login attempts stick out. This would strengthen the signals used > to detect online password attacks as used in Internet-scale authentication > systems."

My initial thought was that such a system would decrease security, but the idea of increasing legitimate user login success rates is very interesting. This could also decrease the volume of password reset requests.

Of course if the user were pasting their credentials in from a password manager this feature wouldn't make any difference, but until our industry can create solutions with much less authentication friction we are likely to see users continue to do what the majority of them are used to already doing.

<comment><USER3> What would a solution even look like with less friction than what we have now? You can hit a key shortcut, pull up a list, select the password and it's done. I personally hit one keyboard shortcut, type a few characters into a fuzzy matching narrowing list, hit enter and the password is in my clipboard (password-store + dmenu) and there are equally minimal friction GUI versions of the same.

Total blue sky it, or describe it in principle. We are basically approaching the theoretical minimum in regards to friction. We have a lot of solutions that accept large decreases in security for small improvements in ease of use in an attempt to attract users.

Users don't want these tools. It's not friction, it's a complete disinterest from users. Maybe there is some theoretical approach with less friction that would win everyone over but this analysis of what the problem is stinks of tech solutionism to me.

<comment><USER4> Well for one, using a generated password on a machine I don't own (ie a library computer) is a PITA, and thats if I have my phone. If its elsewhere for whatever reason, then I'm simply fucked since I'm no longer the source of truth.

However, I'm not sure if hardware solutions like yubikey solve this (particularly for initial logon, or "interfaces", like a computer serving solely as a printer terminal)

But anyways, the easy case is when the manager is trivially available; the hard case to solve is when its not. You can instead imagine a world where all computers by standard support some interface for hardware login in all states of operation, and by standard practice, people keep this hardware on them, and you'd have a significant improvement on the state of affairs. (ie nfc authentication by phone)

</comment></comment></comment><comment><AUTHOR> Quite happy to see that six out of the 30 front page slots are currently PDF submissions. Few other places on the internet are as scholarly. That's no small feat given HN's size. (Was pretty surprised to discover HN is now ranked 1336 globally, 565 in the US. [http://www.alexa.com/siteinfo/ycombinator.com](http://www.alexa.com/siteinfo/ycombinator.com))

<comment><USER5> Currently 1337, which seems appropriate

</comment></comment><comment><USER6> Real users have passwords that are simple mutations from passwords they used elsewhere. They'll change a 1 to a 2 to make it unique and safe, or change an o to a 0 to fulfill the next site's requirements.

I don't buy the idea that being typo tolerant only helps the real account owner if it's also opaquely increasing the amount of password reuse across sites. Not to mention that the code handling the typo comparison is a pretty large new surface area for attack, all in the name of optimizing the experience for typing passwords by hand (a practice we should actively reduce).

</comment><comment><USER7> Non-PDF version: [http://ieeexplore.ieee.org/document/7546536/](http://ieeexplore.ieee.org/document/7546536/)

</comment><comment><USER8> Dear God, please do NOT spell-correct my passwords. Ever.

<comment><USER9> The point is if you auto-correct passwords then you vastly decrease the legitimate bad password rate... meaning you can be more aggressive about locking or flagging accounts with multiple incorrect password attempts.

Whether this would be a net win or not I don't know.

<comment><USER10> You can use the "nearness" logic to decide which passwords to log then, when just the logging is a problem.</comment></comment></comment>


Introducing Heroku Private Spaces - <AUTHOR> https://blog.heroku.com/archives/2015/9/10/heroku_private_spaces_private_paas_delivered_as_a_service <comment><USER3> This is about three years overdue, but at least it's here.

How close does it come to making PCI-DSS Level 1 attainable on Heroku? What about HIPAA?

<comment><USER4> Would love to get a response to this. We are required to be HIPAA compliant and started out on Heroku. We basically only had a prototype built and didn't have any clients yet, so we didn't really care. After a weeks of paying for Heroku we got a very standard sales call from Heroku. They were checking- in/trying to up-sell us on some stuff.

They asked us what we needed, and I responded with, "We need to be HIPAA compliant - what do we need to do to make that happen on Heroku?"

The sales rep immediately replied along the lines, "We don't do that."

He ended the call shortly after that, clearly uninterested in our money.

Since then, we started using Aptible ([https://www.aptible.com)and](https://www.aptible.com\)and) they are AWESOME. The biggest difference for us is that they also provide the legal documentation and advice to working through HIPAA compliance. They're totally willing to go beyond just being a PaaS and really start to blend into a moderate level of legal counsel. Only downside is that their premium service entails a premium price.

<comment><USER5> I talked to them out at AWS re:invent in November and it was implied but not confirmed that HIPAA compliance was being worked on. Maybe things have changed since then.

<comment><USER6> There are many things in AWS that are not HIPAA-compliance yet, so I am not sure how Herkou (if that's the one you are referring to) can be HIPAA compliance in everything.

</comment></comment></comment></comment><comment><USER7> "This is about three years overdue."

I couldn't agree more

Recommended write-up: What is Heroku: getting started with PaaS development

[0] [http://cloudacademy.com/blog/what-is- heroku/](http://cloudacademy.com/blog/what-is-heroku/)

<comment><USER8> No-one is ever happy.

</comment></comment><comment><USER9> Can someone explain like I'm from 2005?

<comment><USER10> Private cloud app hosting which people like the government need

<comment><USER11> Or anyone creating apps for companies in industries where the data generated/stored by the app is regulated by the government.

Healthcare is the main concern here with HIPAA but it should also apply to insurance, finance, and some industrial use cases.

</comment></comment></comment><comment><USER12> So... PPaaSaaS?

</comment><comment><USER13> You can sign up for the beta of Private Spaces here, as well as a technical webinar: [https://www.heroku.com/form/enterprise-beta- programs](https://www.heroku.com/form/enterprise-beta-programs)

<comment><USER14> Is the technical webinar required to sign up for the beta?

<comment><USER13> No, but those attending the webinar will likely get precedence.

</comment></comment></comment><comment><USER15> I guess I don't understand this market, if you need any sort of compliance, why don't you just host it direct in AWS? The tools are there and it's not hard? Using something like this is not cost effective imho.

<comment><USER16> Speaking from a HIPAA point of view, the amount of complexity you must manage to build your own compliant environment on AWS is extremely high. HIPAA's controls account for block level encryption, managing your logs a certain way, and many many more things.

Furthermore, compliance is more than just doing the right thing. It's proving that you are compliant. There is immeasurable value with selecting a vendor who is audited to be HIPAA Compliant or HITRUST Certified because then the risk is offloaded to someone with credibility in the marketplace via a Business Associate Agreement. If you wanted to build your own HIPAA compliant stack on AWS, and you want to be taken as credible when trying to sell to a CIO at a hospital, then you will need to go through the procedure of becoming HITRUST Certified as well.

Otherwise you will just be nibbling at the edges and taking on all the risk while hampering your business model.

<comment><USER15> Aren't you still building your own compliant environment on the application side with a heroku like model?

I'm pretty sure AWS has a package for HIPAA compliance that will checkmark most of the required fields outside of the application, and general settings fields. Most of the problems will come from the Application architecture. You can have a prebuilt envorionment for everything but if you're code is garbage then good luck.

Not sure how hosting in AWS is any different from hosting on Heroku, considering you're ultimately still responsible for the Application side. Does Heroku manages your logs in someway that AWS cannot?

Even with an agreement with a merchant, aren't you still responsible for your application code? Isn't that still subject to HIPAA requirements?

Also AWS is HIPAA compliant and they will do a Business Associate Agreement, and has been HITRUST certified iirc.

<comment><USER17> "I'm pretty sure AWS has a package for HIPAA compliance that will checkmark most of the required fields outside of the application."

Not quite, in fact, the first thing you need to do to meet a BAA with many cloud vendors is terminate SSL locally. This means no using things like ELBs. What about if you need a VPN? How do you guarantee that traffic is still encrypted (let's say TCP) once it hits the VPC VPN to your application server. These are very real healthcare compliance scenarios which you would need to figure out a solution for on the infrastructure side which you would need to build buy. I'm sure there are similar things that need to be handled WRT PCI.

Application security is important (of course). I used to work on application security with hospital organizations at an EHR vendor, so even though we sell infrastructure I can help customers out when it comes to this topic. The reason why there isn't really an "Application Security checkbox" is because the question? "What is the correct amount of access to patient data" is a hard one. Prestigious healthcare organizations all the way down to startups struggle with it, so it's usually a more involved process.

</comment></comment></comment></comment><comment><USER18> Is this running in Salesforce datacenters? Not Amazon anymore, as it used to be?

<comment><USER19> No

</comment></comment><comment><USER20> I'm really excited about this, and also really excited to see what the pricing is like.

<comment><USER21> The video looks like it's org-only - I think getting an org on Heroku starts at USD1000 a month.

<comment><USER22> Heroku Enterprise (required for Orgs, Private Spaces, etc) requires an annual agreement paid upfront ($18K/year minimum) for pre-allocated resources with a 20% premium for the included premium services (Org Account, Customer Solutions Architect and 24/7 Premium Support SLA).

</comment></comment></comment><comment><USER23> Heroku please launch new regions! I really hope you guys launch in Sao Paulo, Brazil.

<comment><USER24> Yep. Wouldn't hurt to have Tokyo regions as well for Asia.

<comment><USER25> They do in fact launch Tokyo as a region in combination with this announcement! (together with Frankfurt, Germany and two US regions) As all these places are AWS regions and this service most likely is built upon VPC I don't think it's a too wild guess that this service will eventually be available in all AWS regions ([https://aws.amazon.com/about-aws/global- infrastructure/](https://aws.amazon.com/about-aws/global-infrastructure/))

<comment><USER24> Yes i saw. I should have made clear i mean for standard Heroku instances.

</comment></comment></comment></comment><comment><USER21> I can't make out if public facing apps can deployed inside a space, though - <USER2> just want to be able to use Heroku in the Singapore region :-/

<comment><USER19> Yes, the applications are publicly accessible by default, just like the Cedar- based ones.

</comment></comment><comment><USER26> Does Private Spaces (aka VPC) offer any type of SLA?

</comment><comment><USER21> Is this enterprise-only?</comment>


BBC announces the closure of the Digital Media Initiative - <AUTHOR> http://www.bbc.co.uk/blogs/aboutthebbc/posts/The-BBC-announces-the-closure-of-the-Digital-Media-Initiative-DMI

<comment><USER2> I was working at the BBC at the time this was first suggested (on web stuff, not video) and saw the edges of this project. From the start it felt like the start of a good idea, but with a huge remit and no focus.

The idea of being able to edit video locally using a low quality version of the file, seems like a good one. All the rendering is done on high end servers working at full capacity with no wasted machines. Users can edit from their desktop without having to use a high end machine too. Until you talk to anyone who works in video - how can they be sure the video is lit, focused and presented correctly without viewing the source file. And the process of uploading files, waiting for edit versions and downloading the final files, even over a decent connection added huge overhead.

Felt like there wasn't enough discussion with the actual teams that would use this.

But as I say, I was not involved nor did it affect me and my team directly so I could be way off in my very small view of the project.

<comment><USER3> I was involved, but on the BBC Worldwide side. I had numerous meetings with the core BBC public service team working on this, over a period of about two years.

Each one of these meetings simply felt like going over the same ground, and any feedback we'd given regarding what would work for BBCW was either forgotten or ignored. In the end we just forged ahead with our own digital projects as the business required.

I must admit I'm not surprised this project has been shut down.

</comment></comment><comment><USER4> I'd be interested to know what technology platform was being used. Around the time this project was being commissioned, the UK govt and the BBC were VERY close to Microsoft.

As part of the NHS's connecting for health project, a huge amount of money was spent on MS licenses and associated infrastructure.

Time to make public these contracts with Siemens and see what's what. Like that's going to happen...

<comment><USER5> Here's a hint.

[http://mediasmiths.com/portfolio/bbc-digital-media- initiativ...](http://mediasmiths.com/portfolio/bbc-digital-media-initiative/)

<comment><USER6> This page seems mainly concerned with Fabric, the part of the 'initiative' that appears to be working.

<comment><USER7> Which was largely non-video related, and implemented on IBM WebSphere

<comment><USER6> Payers of the licence fee would appreciate more of this kind of information, thanks

<comment><USER7> There's a bit more info from somebody on the inside over at [http://www.reddit.com/r/unitedkingdom/comments/1eyrdo/bbc_ab...](http://www.reddit.com/r/unitedkingdom/comments/1eyrdo/bbc_abandons_100m_digital_project_director/)

</comment></comment></comment></comment></comment></comment><comment><USER8> £100m? That just isn't OK, I wonder who will be losing their job.

<comment><USER9> The failed NHS IT project cost over £12 billion: [http://www.guardian.co.uk/society/2011/sep/22/nhs-it- project...](http://www.guardian.co.uk/society/2011/sep/22/nhs-it-project- abandoned)

<comment><USER10> Not entirely accurate - components of that programme (eg PACS and the Spine) are successes. Not to say that on their own they're worth £12bn, but it's not true to say that the £12bn was completely wasted.

</comment></comment></comment><comment><USER11> I just assumed all major broadcasters were digital now...does this mean they are still recording and editing in analog?

<comment><USER12> They are digital but most are far from tapeless.

<comment><USER3> From a Post-Production point of view, we deliver very, very few programmes as files. It's all generally still on tape, and at the moment HDCamSR or HDCam in the main.

The Digital Production Partnership[1] looks to be changing that. All the major UK broadcasters working together to a common set of specifications, who'd have thought?

In Channel 5's delivery specifications they state that after July 1st, 2013 they will no longer accept tapes. We'll see.....

[1]<http://www.digitalproductionpartnership.co.uk>

</comment></comment></comment><comment><USER13> Perhaps a slight bit of irony there that the TLA of "Fabric Archive Database" is FAD.

</comment><comment><USER14> Is the produced code open sourced or publicly downloadable? That's possibly what BBC should do, providing £100M actually produced something worth open sourcing.

<comment><USER7> It's very unlikely to be useful, unless you are running the same platform and have an interest in implementing business rules for the same use cases as the BBC have. Much of the interesting functionality will have been licenced from outside providers, and most of the cost will have been paying Siemens, paying Siemens to cancel the contract, and other staff and consultant fees.

</comment></comment><comment><USER15> There's a damning inspector general report on this, dating back to 2011:

[http://www.publications.parliament.uk/pa/cm201011/cmselect/c...](http://www.publications.parliament.uk/pa/cm201011/cmselect/cmpubacc/808/808.pdf)

Here's a key conclusion, along the themes of "this is what happens when the people with the money don't really understand what the developers are doing":

 _The BBC transferred too much financial risk to the contractor, Siemens, given the level of technological innovation involved. This approach meant that that BBC did not have a good enough understanding of the contractor's design and development work, and was unable to intervene effectively even when it knew delivery was at risk. This resulted in a two year delay in securing the technology for the Programme. We welcome the BBC's commitment to consider more carefully the appropriate degree of risk transfer for future contracts. It should have a close understanding of the design and development approach being taken by a contractor and should retain the ability to intervene without waiting for non-delivery or contract termination._</comment>


Ask HN: Is the reseller hosting market worth touching? - <AUTHOR>

I've long wanted to give the managed CMS hosting market a shot. That plus basic file backup services. Is it worth my time? Why or why not?
Short plan: Automatic hosting site setup using bargain servers or cloud servers. Users with Wordpress/Joomla/Drupal hosting needs are offered managed hosting for $5-$15 per month.
Any drawbacks I should know about? <comment><USER2> Realize that you can't compete on price. There are thousands of bargain hosting companies that spring up every day offering $3-$10 hosting and unlimited storage/bandwidth/domains. Of course, many of these go out of business, or kick out customers who actually get a fair amount of traffic. You have to approach from a different angle.

Look at wpengine.com. They are targeting the WordPress blogger who has outgrown shared hosting but doesn't want to get into the server admin business. For $50/month, they handle caching, scaling, database replication, backups, CDN, and staging.

Your best bet would be to offer better service and scalability at a higher price point. There is a big market out there for site owners who are in between shared hosting and running their own server. Just because I get 100,000-300,000 unique visitors a month doesn't mean I know my way around a Unix command line. That's also the market that can afford to pay $50 a month for hosting.

WordPress/Joomla/Drupal are good targets, because if your customers are running on shared hosting, they are likely putting stress on their overloaded servers, and seeing outages/slowdown/threatening messages from the hosting company. You can give them a huge performance boost simply by moving their database to a separate machine.

The next step is to put a basic cache in front of the app server (Varnish, Squid, nginx). Watch your server load drop when logged-out, anonymous users hit the cache instead of an overloaded Apache machine pulling double duty as a MySQL box.

With Apache on its own machine, look into an opcode cache, and you can also offload static file serving to a CDN. You can do this easily by giving your customers a static path to change in their code (e.g. cdn.yourhostingdomain.com). You can cname this to Amazon CloudFront or MaxCDN, and then set the origin to a dedicated static file server (running nginx, or Varnish+Apache). Store the source files on Amazon S3.

You could run this whole setup with a handful of servers on Amazon or RackSpace, Linode, etc. for a few hundred $'s a month, and handle a few hundred to a few thousand clients paying $30-50 a month for a nice profit.

...until your cloud provider has a big outage...

<comment><AUTHOR> Thanks for the overview! Exactly the kind of research stuff I need to know about before diving in. I see now that this is one of those things that comes down to superb quality - which might be difficult to guarantee if using cheap servers.

Also, thanks for the tip on having a dedicated database server. Makes complete sense yet I had no clue CMS sites could be so demanding. I'll need to learn CDNs next.

There's always a catch. =) Thanks for your time.

<comment><USER2> If you are interested in CDNs, look at Amazon CloudFront or MaxCDN (there are others, but these are the easiest to use, and they're cheap). Look for a feature called "origin pull" rather than push. Amazon can be set up in about 5 minutes. Here's how it works.

Lets say you have a basic website at www.domain.com. All of the files are on a single server, so when I request a page, i get www.domain.com/index.php. Apache fires up, PHP does its thing, fetches some data from MySQL, and presents a page. My browser sees that the HTML needs www.domain.com/style.css, script.js, and a dozen images. So it requests them from that same overloaded Apache/PHP/MySQL server.

Instead, create an Amazon CloudFront distribution. Go to your DNS setting and create a CNAME record (e.g. cdn.domain.com) and point it at your distribution url. Enter the cdn.domain.com in the CNAME field in the distribution detail screen. Set the origin to custom (DNS), and enter www.domain.com. Wait a few minutes for the distribution to be set up, and however long it takes the DNS setting to propogate. Then change all paths for static files (CSS, JS, images, etc.) to cdn.domain.com instead of www.

Now, in that scenario above, when the page gets served by the browser, all requests for stylesheets, javascript, and those dozen images hit Amazon's servers around the world. The user gets routed to the closest one to them. If Amazon doesn't have your image, they fetch it from your server and cache it. But after that, future requests get served directly from their servers, not yours. So if 1000 people from a certain city visit your site, instead of 20,000 requests hitting your server (assuming one page has 20 requests for images, css, js), you just get 1020 requests (the first one was a cache miss, the rest were cache hits).

<comment><AUTHOR> Got it. Sounds like a beautiful setup compared to what I've got now. All this seems to comes down to "dedicating" a server for LAMP use to keep server loads balanced. Correct?

Question: Why wouldn't I just use two of my own servers? One for LAMP + one for the CDN.

<comment><USER3> CDN = content delivery network.

If you used one server it would be a static asset server not a CDN.

CDN's have the benefit of being all throughout the world so you get the benefit that the CDN will serve the asset from the closest physical location to the user. Also your assets are redundantly stored in separate locations.

Amazon s3 is too easy not to just use it. Even something as huge as dropbox essentially runs on s3. I'd say use s3 until you can't use s3 anymore.

<comment><AUTHOR> Ah, I understand. Thanks for the education, people! Can't wait to put this into action for my clients and future projects. Now time to check into S3...

</comment></comment></comment></comment></comment></comment><comment><USER4> I can think of a few drawbacks:

\- Extremely commoditized, people shop around for hosting providers based on price and included features, so you better have a good offering

\- Your service must be top notch and you need to be available to fix things pretty much instantly

\- Reliability when reselling services is not in your control, so... good luck with that

Best of luck!

<comment><AUTHOR> Thanks for your perspective! Right now, my life is pretty calm - not too much drama & plenty of time for new projects. Maybe I'll dive in for the fun/experience.

Cheers!</comment></comment>


Lost In The iPhone Location FUD - <AUTHOR> http://techcrunch.com/2011/04/27/apple-iphone-location/ <comment><USER2> This discussion presents no new information. There are a group of people who think this is bad, there are a group that think it's not a big deal and there is a group that don't understand what's going on.

I think there are plenty of scenarios where the information could be accessed and used in ways that hurt end users. I also am skeptical of this notion that it was accidental, considering the rumors that they're using this data to build their own location services, the fact that they tried to patent the use of cached location data, etc.

But the important part is that it's going to be fixed. As usual, I think this became blown out of proportion by the people screaming about it, the people trying to defend it, and Apple's usual... distortion. They're "fixing" something now that only a few days earlier they claimed wasn't occuring and/or wasn't a problem.

Of course, some will say they're just responding to criticism the same way any company would, but I can't be the only one that took Jobs' "No we're not, and look Google is too" as a bit dishonest.</comment>


No Man's Sky's Steam page didn't mislead gamers, rules UK ad watchdog - <AUTHOR> http://arstechnica.com/gaming/2016/11/no-mans-sky-misleading-ads-asa-ruling/ <comment><USER2> >Hello Games said that, as each user's experience would be very different, it would be difficult to recreate the exact scenes from the ad. However, they believed it was fairly straightforward to locate content of the type shown in the ad and to demonstrate that such content was commonly experienced by all users who played NMS for an average period of time.

Er, wasn't one of the primary complaints that the dev team completely lied about online multiplayer play? It was promised multiple times (on camera, by the lead dev) pre-launch, but it was that revealed there was no netcode in the game whatsoever. That appears to still be the case.

Unless I'm missing something, this seems like a bit of a red herring to me. Who were all the people complaining that their procedurally generated creatures weren't as big and cool as the procedurally generated creatures in the advertisements?

Also, this is seems like a pretty poor excuse from the devs regarding faction wars:

>In relation to the claim "factions vie for territory", Hello Games said that this was part of the story or narrative of the game and manifested itself through the player's journey and interactions with three factions during gameplay. They referred to a third-party video describing the characteristics of the three factions. Hello Games explained that solar systems were occupied by a single faction; when players interacted with a factioned non-player character, they would sometimes mention their dislike of the other factions.

Even if they didn't technically break any regulations, they definitely presented a misleading concept of the game and directly lied about multiplayer.</comment>


GitHub's wiki makes a pretty decent blogging platform - <AUTHOR> https://github.com/stickfigure/blog/wiki/GitHub%27s-wiki-makes-a-pretty-decent-blogging-platform <comment><USER2> Cool! I'll definitely give it a try! Currently I have my own fashion blog built on Joomla ( [https://www.templatemonster.com/joomla- templates.php](https://www.templatemonster.com/joomla-templates.php) ). I'm planning to launch one more blog on culinary. So, maybe I'll go with this GitHub's new platform...or with Joomla again.</comment>


Tesla Shaken by Executive's Quick Exit and Elon Musk's Pot Smoke - <AUTHOR> https://www.nytimes.com/2018/09/07/business/tesla-stock-elon-musk.html <comment><AUTHOR> Does it really matter to shareholders if Elon Musk is smoking pot?

<comment><USER2> It really matters to shareholders that the guy who claims to work 120 hour weeks and sleep at the factory apparently found two and a half hours to smoke pot and drink on a podcast.

It really matters to shareholders that a month after starting a key executive NOPEd out of the company entirely.

Musk's behavior is becoming increasingly erratic, and that's generally not a great sign for a company that's perceived (rightly or wrongly) as a cult of personality built around a single man.</comment></comment>


More than 100 people have been arrested as a part of a global cybercrime ring - <AUTHOR> http://online.wsj.com/article/SB10001424052748704483004575523811617488380.html?mod=

<comment><USER2> Apparently crime doesn't pay:

$12M stolen by 100 people = $120K per person.

<comment><USER3> and jail

</comment></comment><comment><USER4> A very nice of example of what you can do with social marketing, the companies that think having a Twitter account counts as a social media strategy should take note.

<comment><USER4> Thanks for the downvote, I misplaced this comment. I meant to post it on the thread about the supermarket that returned some lost keys to a customer.

Edit: found the artile: [http://consumerist.com/2010/09/ap-mails-you-back- keys-you-dr...](http://consumerist.com/2010/09/ap-mails-you-back-keys-you- drunkenly-left-in-cab-a-month-ago.html)

<comment><USER5> Can you explain how one misplaces a comment?

(I wasn't the downvoter, I voted you back up)

<comment><USER4> I probably switched back to the wrong tab after reading the article.

</comment></comment></comment></comment><comment><USER6> Good day for the good guys.</comment>


Sourceforge Detects Intrusion Attack, Resets Passwords - <AUTHOR> http://darrenwoodley.com/sourceforge.png

<comment><USER2> There is more information and discussion on this topic at <http://news.ycombinator.com/item?id=2150639>

While I think the fact that Sourceforge is resetting passwords is useful, I think it would have been better communicated as a comment at the aforementioned link, as opposed to making a screenshot of an email message and submitting that.

</comment><comment><USER3> I just got the email, too. I hate a lot of their interfaces and services (download pages, source browsing, search, mailing lists... lots of lame) but I'm glad they're jumping on the problem proactively.</comment>


The News Reads You in China–and People Can't Get Enough of It - <AUTHOR> https://www.wsj.com/articles/the-news-reads-you-in-chinaand-people-cant-get-enough-of-it-1503570085?mod=e2tw <comment><AUTHOR> Mirror: [http://archive.is/yPSde](http://archive.is/yPSde)

<comment><USER2> Thank you! Apparently [http://archive.is/](http://archive.is/) works in general for WSJ, so this is a useful technique. Hopefully it will stay active.

<comment><AUTHOR> That was a pleasant surprise for me as well!</comment></comment></comment>


Ask HN: What career advice would you give your younger self? - <AUTHOR>

What were your biggest wastes of time? What do you wish you spent more time on? <comment><USER2> Prioritize increasing your bill rate over saving money.

Savings are good, and compound interest is quite a thing to behold. But it's worth keeping in mind that you can put yourself in a position such that 40 year old you is pulling in over 10X what 25 year old you was. So beyond a certain point, killing yourself to sock away an extra few grand a year might not be the best plan.

Get a good six figure cushion socked away in your 20s so that you know you won't starve if the market goes south, and so that you can skip off on a year long round-the-world trip when the mood strikes. But after that, don't feel so bad about slacking off a bit. Go actually _take_ that long trip (a few times). Just make sure you're always taking every opportunity you can find to bump up that bill rate.

Then take that new rate and double your lifetime savings in a single year at some point in your 40s.

</comment><comment><USER3> The advise that more experienced coders gave me at the time that I didn't listen to, and would probably not listen to even if my older self told me: You're better at this then you think you are, stop selling yourself short.

I think I've spent the first five years of my career drastically underselling myself imagining that everyone else is some epic programmer whose class interfaces spring fully formed from their fingertips when really a large number of the people who "talk the talk" turned out to be just full of a lot of air.

</comment><comment><USER4> Try to become a freelance or a customer employee as soon as possible, being an employee for an intermediary company is mostly a dead end.

If someone assigns you to a project you really don't want to do, its better to search for a new opportunity sooner rather than later. When you want to go back to what you really want to do, you will have to answer a lot of questions about why you haven't been doing it lately.

Being assigned to the wrong projects early in ones career can effectively kill it or turn it a way you don't want it to go, so beware of that.

Try different jobs early in your career, stay at most two years early on. Growth is very much improved by seeing different projects, different teams.

Corporate training is usually limited and imposed by law, invest on your own training. Technical PDF books are affordable as well as many certifications. Take them in your own free time and don't wait for the company to pay/approve them.

Try to build something you like in your free time, learning is a continuous process and not something that you do once when you where 20.

<comment><USER5> Wow great advice. I've noticed lately that most jobs out there are from intermediaries hiring and they often are really aggressive on getting salaries down with little wiggle room.

</comment></comment><comment><USER6> I might lead with an interrogative, how are you preparing yourself for professional & personal growth? What are you reading? Who are your coaches?

On advice, cut-out the mindless web surfing & TV. Cut back on the drinking, get outside, enjoy nature more.

</comment><comment><USER7> Spend more time getting and staying fit. Beyond functioning better, it really does change how people treat you and think of you.

Realize that business and political acumen is a learnable skill: read the classic business/interpersonal books like Crucial Conversations, 7 Habits of Highly Effective People, and others. Most business books are pure fluff, but there are truly great works out there.

You will probably stay at your first job too long. It feels safe and has some nice benefits, but you won't really grow unless you experience different workplaces.

</comment><comment><USER8> Stop worrying about work. It will make you physically sick.

Also, stop playing those video games. Start doing stuff instead of reading and talking about it.

</comment><comment><USER9> easy one: dont work so hard, its not a wise way to spend your youth anyway. also try to get big enough time frames to actually finish the project, estimates can be off by 400% all the time. dont ask for more money ask for understanding on a some days i cant make it in and some im late. work for big name companies, getting future jobs will be easier. never flake, having one job on ur resume where u cant use them as a reference really sucks. date chicks at work but not the hottest 2 they wont put out.

<comment><USER10> Sorry for asking, but I don't understand the way you used the work "flake". Could you please explain? English is not my first language.

<comment><USER9> flake means fail or act like a child/being irresponsible

</comment></comment></comment><comment><USER11> "I'm young. I'm healthy. Why do I need a job for?" -Raising Arizona. But for real. Get training to get a tech job in the medical field.

</comment><comment><USER12> Apply to jobs in other cities.

</comment><comment><USER13> When you have too much advice, it sounds like you have regret. That's terrible

</comment><comment><USER14> Don't work so damn much; enjoy your youth.

</comment><comment><USER15> علاوي قاهر هم</comment>


Ask HN: best simple 1U server to purchase? - <AUTHOR>

I would think this would come up all the time for web startups, but searching HN mostly turns up discussions of virtual hosting, not physical hosting.
I've got a 4U, $200/month, 2Mb/sec sustained bandwidth (works out to 650GB/month) slot at Pair Networks here in Pittsburgh (great folks, by the way), and am only using one 1U space so far.
So what I'd like to do is buy 2-3 basic 1U servers and treat them like interchangeable blades that I manage myself. (1 hot spare--make sure everything is always backed up enough to bring up the spare in a few minutes.)
So the question naturally arises: Is there some obvious standard for 1U servers in the Intel 2-3GHz CPU (2/4 core), 4-8GB RAM, 100GB disk range that will run a standard Linux distro like Ubuntu 8.04LTS?
I know there are zillions of options, but the more I look, the more I'm confused.
Anyone have any quick advice before I spend a few $K in a handful of servers?
(Yes, I've weighed the advantages of virtual servers, but I just can't bring myself to pay for service which would buy a physical server in a few months, since I'm already paying for the slot at Pair.) <comment><USER2> While you have 4U, how much power do you have allotted to that 4U?

If you run a Q8400 with a 260w power supply for a 1U, you have a max load of 2.16A and probably an operational .9A-1.1A under normal load. Make sure you can run 4-5 Amps in your 4U. Many colo facilities allow 20 Amps per 44U so average consumption per U is just under .5A.

andy @ interpromicro.com sells Supermicro equipment which run Debian without issues. Recent invoice 9/25/2009: Supermicro X7SBL-LN2, Q8400, 4gb RAM, 811T 1U dual hot-swap case, (no hard drives) Fedex 3day at $710. That motherboard does support AHCI in Debian allowing hotswap, sensors work, env/fan speed, etc.

<comment><AUTHOR> Thanks (and to nwatson), but the ISP in this case is pretty loose about the 4U & power. In fact, my "4U" is just a table top right now because my Xserve case didn't fit. They don't seem to care at all about the power issue.

</comment></comment><comment><USER3> I've had good luck with options from SuperMicro and the configure-it-yourself stuff at TigerDirect/GlobalComputer (forget what brand they sell it under).

Also, you'll often find a huge price difference between a 2U unit and a 1U unit of the same specs (2U being cheaper...). Might be worthwhile to spend a little more on a 2U unit (mostly for more RAM) and get more bang for your buck and run VMWare on it. That way it could have a couple of different recovery images on it, or possibly room in the chassis for mirrored drives or something.

</comment><comment><USER4> Before you buy your servers make sure the "4U" space is really all about space and not about power consumption.

At Hurricane Electric in bay area California you can rent sub-rack space that could hold, say, 8U. However, if you try to fill all that space with SuperMicro high-density 1U systems you'll far outstrip the power they're willing to supply for the rental rate.

I don't know about your colo's policies but please double-check.

</comment><comment><USER5> I would use Silicon Mechanics or Dell <http://www.siliconmechanics.com/> <http://www.dell.com>

Both of them have 1u server builds pretty cheap, with 2-4 SATA or SAS disks depending on your needs.

Most everywhere else will be the same prices or more expensive for the base servers.

<comment><AUTHOR> Thanks, but I go to the Dell site and them am immediately overwhelmed with literally dozens of base options, and then I have to customize.

I want to buy something I know that a standard Linux distro like Ubuntu will support 100%.

I suppose I could go to one of the Linux hardware companies like PogoLinux.

Yes, I know Dell supports Linux, but not the distro I'm interested in. (Ubuntu 8.04.)

<comment><USER6> They have a great return policy, so you could just try it and see.

I use linux on two poweredge860 without any problem.</comment></comment></comment>


Security is Mathematics - <AUTHOR> http://www.daemonology.net/blog/2008-03-21-security-is-mathematics.html

<comment><USER2> Hey cperciva, thanks for submitting it here; I hope more people read it. Question about your attitude about math education. My contention is that real good mathematicians are endowed with an ability that is easily recognized. First you write,

"In the semester I took this course, the average grade on the first mid-term examination was 29%. Three students (myself included), out of a class of about 40, scored higher than 50%."

I attempted a course that seems similar to the 242 you described, and I would be under that 29%. There was even an English major who had abilities far beyond mine; these things convinced me that I wasn't cut out for hard math. But then you write,

"Schneier is right that security requires a strange mindset; and he's right that computer science departments aren't good places to teach this mindset. But he's wrong in thinking that it can't be taught: If you want someone to understand security, just send him to a university mathematics department for four years."

You seem to think it can be trained. Would you think your perception of people's math ability is skewed, yourself being gifted, and probably interact regularly with similarly gifted people?

Even if you are correct, what would you say to the people who placed into hard courses and found themselves inadequate? While it could be that more effort is required, but the ROI varies between individuals. For a math-inclined student, maybe this means four years in the math department. For those who aren't, but perhaps have the aptitude, maybe this is eight years. Aren't universities the wrong place to find out?

I'm reading Apostol's Calculus at my leisure now. It may take me two years to finish, but I will finish it. As determined as I am, this attitude doesn't earn me a math degree, nor an A in a class where an English major could get one easily.</comment>


New Concept in Solar Energy Poised to Catch on Across US - <AUTHOR> http://abcnews.go.com/US/wireStory/concept-solar-energy-poised-catch-us-29463892?singlePage=true

<comment><USER2> TL;DR A loophole to get a subsidy on something.

Personally I think it's a bad idea, giving commercial incentive to destroy land for solar panels.

How about we cover all the available roofs first.

And I know in theory it could be a 'garden' on existing roofs, but this is not the way they seem to being created. It's cheaper to just knock down trees and put them up.

<comment><USER3> A big lump of land with some panels on isn't "destroyed"; it's being used. This is what land is for. Using. Putting banks of panels on areas of land is much more efficient in every way than scattering them over rooftops.

<comment><USER4> Land can be used for many other things, while roofs are quite limited in what they can house. It is, in fact, much more efficient to install solar panels on all the roofs instead of (literally) the ground...

<comment><USER3> But roofs already being used, as roofs. They are of limited area, you can't work on them so easily as open land, each roof will need its own negotiations and agreements, each roof will be different, each building will need to be connected separately to the grid, harder and more expensive to maintain, harder and more expensive to inspect, on and on; it's massively inefficient compared to just doing it on open land.

<comment><USER4> I'm more of a fan of individual installations than a distributed grid.

My point is, you can install solar panels on roofs, but you can't install anything above and around solar panels.

</comment></comment></comment></comment></comment><comment><USER5> Poorly written article. How do the economics work? Who pays to install the farms? What do you subscribe to? What are you agreeing to for 25 years?

<comment><USER6> Agree that it's not a great article.

The wikipedia article [1] might help with some of your questions.

And this article [2] talks about their prospects in Australia.

[1] [http://en.wikipedia.org/wiki/Community_solar_farm](http://en.wikipedia.org/wiki/Community_solar_farm)

[2] [http://reneweconomy.com.au/2013/community-groups-look-to- cro...](http://reneweconomy.com.au/2013/community-groups-look-to-crowd- funding-rooftop-solar-86008)

</comment></comment><comment><USER7> > lock in for 25 years and shelter against rate increases. Some developers say > customer bills will drop below regular retail rates within a few years; > others say the savings begin immediately.

Ouch ouch ouch.

Electrical rates are unlikely to go up, they are going down instead.

And prices for solar cells are also going down, not up. Buying now, with the expectation of making money later is a sure way to lose money.

<comment><USER8> Why do you think prices will go down? That's not at all what's been happening lately or the consensus estimate by analysts.

<comment><USER7> There is a massive energy glut right now, and it shows no sign of slowing down.

Coupled with increasing efficiency that reduces demand, and energy prices should go down, not up. (Adjusting for inflation.)

<comment><USER9> According to the Energy and Information Administration, retail electricity prices have gone up by 25% over the last 10 years. [0]

In comparison inflation has raised prices by 19% over that same period [1]

I think it's also not obvious that the natural gas glut is a long term trend. It's a complex issue for sure, but here are some perspectives: [http://www.businessinsider.com/arthur-berman-shale-is- magica...](http://www.businessinsider.com/arthur-berman-shale-is-magical- thinking-2013-1?op=1)

[0] [http://www.eia.gov/electricity/data/browser/#/topic/7?geo=g&...](http://www.eia.gov/electricity/data/browser/#/topic/7?geo=g&agg=0,1&endsec=vg)

[1] [http://www.usinflationcalculator.com/](http://www.usinflationcalculator.com/)</comment></comment></comment></comment>


Startups Find Providence 31.42% More Wicked Funner - <AUTHOR> http://betaspring.com/blog/providenceiswickedfunner

<comment><USER2> Plus you get to hang out with Andy Van Dam <http://www.cs.brown.edu/~avd/>

<comment><USER3> Even pg was in Providence for a while in the early 90's, in the painting program at RISD. I think it's gotten a lot more "wicked funnier" for startups since then!

</comment></comment><comment><USER4> I <3 PVD. It's a great place to live and work. Affordable living, excellent bars and restaurants, tech and design energy from Brown and RISD, and an active and vibrant geek community (<http://www.flickr.com/groups/providencegeeks/>). It's really a great place to live.

</comment><comment><USER5> I've been amazed how supportive the start-up ecosystem in Providence has been to us newcomers. This is really a phenomenal place to run a start-up and anybody considering launching their company in the northeast should give Providence a close look!

</comment><comment><USER6> I moved from Philly. Providence keeps surprising me--good energy, nascent but strong start-up community and a solid core of peeps driving it forward. pretty irreverant place, too, which i love.

</comment><comment><USER7> Zuck said he'd stay in Boston if he were starting Facebook today. Personally, I'd move to Providence and hop on the Providence/Stoughton Line whenever I needed to be in Boston. :)

</comment><comment><USER8> Providence is a good bet, especially if you want to keep ur costs down while building an east coast presence. The community there is very supportive.

</comment><comment><USER9> Providence IS totally whack. but in a good way. definitely a little less stiff than b-town.

</comment><comment><USER10> The food in Providence is also amazing!</comment>


Lisphp is a Lisp dialect written in PHP. - <AUTHOR> http://github.com/lunant/lisphp

<comment><USER2> Happy to see PHP be taken more seriously around here. Trust me, we're not all moronic programmers using register globals, magic quotes, and other abominations originally available in PHP.

This is a pretty cool project.

<comment><USER3> I think PHP suffers from some of the same issues that VB6 suffered from in terms of inexperienced programmers. With VB6, someone who was not as much of a programmer as we all are could write themselves into a massive mess. I have found when writing PHP code if you are careful, you can build things with decent design patterns and consistency. Sure, its not as clean as a lot of languages, but it sure is easier for me to figure out what is going on with PHP code someone else wrote compared to Perl or Ruby code.

<comment><USER4> This single biggest issue I've found when working with PHP for larger projects is that even if you are a disciplined programmer you get to the point where the includes will eat up your performance and your memory requirements will become larger. See drupal as an example of this.

You can get around some of that by using a php accelerator but it would seem to me that something like that ought to be part of the basic distribution.

<comment><USER5> That's what autoload is for. It's been around since PHP 5.0. <http://php.net/manual/en/language.oop5.autoload.php> and allows you to require the necessary files or classes only when you need them. Seems like they solved this problem to me.

<comment><USER6> I use frameworks (Zend, CodeIgniter) for all PHP projects except protoyping HTML templates (like, when knocking out a quick page with placeholder data and functionality to show a client). The hate poured on PHP for functionality that I have never, ever used (read pretty much any "PHP sucks because..." post and notice that the majority of the complaints are for things that real PHP developers are well aware of and effortlessly deal with) gets tiresome to hear about. Use it following some basic, current, best practices and it is fast, easy and perfectly fine for developing with.

</comment></comment></comment></comment></comment><comment><USER7> I'm the author of this, I made the web REPL also.

<http://dahlia.ruree.net/try-lisphp/>

Well, of course, it uses a sandbox environment.

<comment><USER8> From a quick look, you managed to get one thing right, even though it baffles even respected language implementers: a proper stack trace on error. Most people who write a HLL interpreter in another HLL tend to cheat and implement a half-baked source to source translator.

[Edit:

Question: Why does it have T, NIL, #T and #F? what roles do these symbols play in the language; which ones are canonical truth values, which ones signify list termination, and which ones signify the empty value? This is the perennial Lisp question.]

<comment><USER9> > Most people who write a HLL interpreter in another HLL tend to cheat and > implement a half-baked source to source translator.

Is this a jab at the Lisp tradition of compiled sublanguages?

<comment><USER10> Bad stack traces is certainly one of the major complaints against Clojure.

<comment><USER9> They seem fine to me.

Do you want to see "bad" stack traces? Try Erlang. There is a language with truly obtuse stack traces.

<comment><USER11> And the very concept of strack traces does not even make too much sense in e.g. Haskell. (Though it can be made to work, with some cleverness.)

</comment></comment></comment></comment></comment></comment><comment><USER12> This is analagous to McDonalds serving duck confit (and it actually tasting kind of good).

</comment><comment><USER4> Minor nitpick, the cdr implementation is (out of need, as far as I can see) terribly slow for larger datasets, it uses array_slice($this->getArrayCopy(), 1) .

<comment><USER7> I implemented cdr just to respect a Lisp tradition. Lisphp's Lisphp_List type isn't a linked list but a subtype of ArrayObject, which supports random access. So instead of doing:

      (car (cdr (cdr (cdr list))))

you should just do:

      (at list 3)

<comment><USER13> Since Lisphp is a new dialect, you don't need to worry about backward- compatibility. You should get rid of car/cdr entirely. There is no inherent reason for using linked lists for anything - even s-expressions. For example, no one has ever complained about the lack of car/cdr in Parenscript (although to be fair, Parenscript is not homoiconic, just a translator from CL to JS). Having a good backquote-comma templating syntax is more valuable.

You should even get rid of a custom type for Lisphp sequences and use PHP arrays directly. Ditto all other datatypes. Then if you use PHP's calling convention you should be able to call PHP code directly without needing USE and FROM, and more importantly PHP code can do the same to Lisphp with minimal pain. That way writing Lisphp libraries for others to use becomes viable.

<comment><USER4> I think it's actually quite neat that it tries to stay close to the lisp code that you see in examples and books about lisp.

<comment><USER13> What's the point of sacrificing something like platform integration for car/cdr? Anyone who is going to want to use Lisphp for real work is not going to have a problem writing their code to use arrays. Anyone who thinks that car/cdr is more valuable than platform integration is not going to use Lisphp for real work. And everyone else will come by and say "Lisphp has those weird car/cdr and it can't even work with PHP libraries without glue code, Lisp is a toy."

</comment></comment></comment></comment></comment><comment><USER14> I think I need to change the name of my repository now. I am now the author of "phlisp" <http://github.com/shaunxcode/phlisp> to avoid confusion. hah. It is cool to see a different approach to the same problem! I am going more for source -> source, quasiquote macros, TCO, some arc-esque syntactic sugar etc. and back to php4 compat. Definitely a kick in the ass to release it now as I have stalled since april due to "work".

</comment><comment><USER15> This is maybe not so useless but definitely awesome!

At least this would solve the whole "which server should I use for lisp" problem...

<comment><USER4> That was exactly my thought, the lisp deployment problem can be checked off the list. This also significantly lowers the barrier to entry for people that want to try lisp.

He seems to have done (much) more than a half baked job of it judging by the rest of the page.

<comment><USER16> There is lisp and there is lisp. The libraries and the speed do matter. While this is an interesting project it's not comparable to SBCL, Racket or Clojure.

<comment><USER10> "The libraries and the speed do matter."

Does PHP lack for good libraries? That was the trick Clojure used with Java to get bootstrapped.

<comment><USER16> > Does PHP lack for libraries?

No.

> Does PHP lack for good libraries?

Yes. PHP's libraries are one of the ugliest and non lispy in existence :(

<comment><USER4> Since they were not made with 'lisp' or anything 'lispy' in mind that should come as no surprise.

PHP is about as declarative as you get, assignments are the norm, not the exception and side-effects are how just about everything is done. It's not exactly elegant, but it fills a niche and apparently fills it quite well.

Though python is catching up, and even if it isn't quite as easy to deploy a large scale python web application as it is to deploy PHP the difference is getting smaller all the time.

</comment></comment></comment></comment></comment></comment><comment><USER17> It's kind of funny that people see PHP related to anything other than serving websites and they cringe.

As of 5.3 (and I won't say prior to that because even I don't believe it), PHP has become a nice utility language for just more than serving out wordpress.

Closures and the reference sweep GC level the playing field.

<comment><USER10> I just finished reading "Javascript the Good Parts" recently. It's probably also the case for PHP that if you pretend that certain parts of the language just don't exist, you end up with a pretty good language. (I have never programmed anything in PHP.)

Building a Lisp on top of PHP strikes me as a vehicle for helping developers to adhere to the "good parts." I'm not sure whether that was the intent here, but it could turn out to be a useful side effect.

A note on the language itself:

It appears that you can choose any set of matching braces that you want anywhere in your program. I think this is the convention Scheme uses. Common Lisp reserves braces other than () for reader macros.

I personally, however, favor Clojure's approach of defining distinct behavior for each brace type. There are only three pairs of matched characters on the keyboard. It seems to me that this makes them too valuable to not leverage them as a core part of the language. Immediately knowing the meaning of a specific brace type makes it much easier to read someone else's code.

<comment><USER18> [http://www.amazon.com/PHP-Good-Parts-Delivering- Best/dp/0596...](http://www.amazon.com/PHP-Good-Parts-Delivering- Best/dp/0596804377/)

</comment></comment></comment><comment><USER19> Has anyone tried running code with this yet? This results in errors:

      <?php
      require_once('Lisphp.php');
      $env = Lisphp_Environment::full();
      $program = new Lisphp_Program("(echo 1)");
      $program->execute($env);
      ?>

<comment><USER7> Try this:

      $env['echo'] = new Lisphp_Runtime_PHPFunction(create_function('', '
          $args = func_get_args();
          foreach ($args as $arg) echo $arg;
      '));

after:

      $env = Lisphp_Environment::full();

<comment><USER19> Thanks! From the 'try lisphp' page, I assumed that echo was built in.

</comment></comment></comment><comment><USER20> A related project is clpython. I think lisphp can be a funny way for people using php to learn some dialect of Lisp. But in the end, there is glue with C code for example FFI to get speed.

</comment><comment><USER21> Similar to Lisp2Perl

<http://www.hhdave.pwp.blueyonder.co.uk/>

Which implements Lisp on Perl.

<comment><USER22> Counter-intuitively, it's often easier to implement a more powerful, more elegant language in a less powerful one than the other way around. Often, good language design is correlated with elegant syntax, which contributes to this.

<comment><USER11> Maybe. Though it is relatively easy to implement an ancient BASIC in Haskell. The other way around is harder.

</comment></comment></comment><comment><USER23> I hope he finds workarounds for some of PHP's more serious defects, like "pass by value or maybe reference" semantics, no user-defined types as indices (even most primitive types get silently mangled), and == being just blatantly wrong. Part of what makes a language pleasant to use is that it doesn't keep surprising you--stuff you'd expect to work, does.

</comment><comment><USER7> I made the mailing list (Google Groups) which is the place for discussion about Lisphp:

email@example.com

<http://groups.google.com/group/lisphp>

Join us if you are interested in this project!

</comment><comment><USER24> Let me guess - _\\(get_global_var "HTTP_SERVER", $MyServer, $ENV\\)_

</comment><comment><USER24> <http://news.ycombinator.com/item?id=1467067>

</comment><comment><USER24> Smartguys should write a lisp dialect for erlang VM. ^_^

</comment><comment><USER25> ugly language meets pretty language

have a few drinks

nine months later, baby arrives and uploaded to GitHub! :)</comment>