skysight-inc/HackerNews huggingface dataset:
Lisp... doesn't really have syntax. S-expressions have syntax: parens, whitespace, symbols, comments. S-expressions are for data. Lisp is a subset of the sexps.

Lisp adds just one rule: a Lisp program is an sexp whose root node is a function symbol.

Naturally, since sexps nest, Lisp programs can nest.

The author demonstrates nested computation with bash's $( .. ) syntax. Lisp, by the nature of the sexps, is nested computations. I think the author almost hits the nail on the head here:

> Our two basic rules — program-name-first and $()-for-composition — allowed us to explicitly specify the order of evaluation, so there was no need to do any fancy parsing beyond what the shell already provides.

Sexps provide nesting/composition. Lisp just means program-name-first.
I'd love to see advancement in battery technology, I am surprised its never the established manufactures coming up with such innovations.

However this is still vaporware:

"Power Japan Plus will begin benchmark production of 18650 Ryden cells later this year at the company’s production facility in Okinawa, Japan"

Plenty of people have improved battery technologies, the issue has always been scaling up the process in a cheap enough way. If these batteries cost too much then its back to the drawing board.
This is a beautiful essay, thank you.

What is the literal meaning of "a diversion of the field"? Is "diversion" used in the sense of "that which diverts, and makes mirth; pastime; amusement", and "of the field" in the sense of "pertaining to a large grassy open area where one might kick a ball around"? If so, it seems a bit of a stretch to apply the phrase to an activity that takes place on water. (Though Webster does also give a broader meaning for field: "An unresticted or favorable opportunity for action, operation, or achievement; province; room.")
Basics of MRR for Subscription Businesses.
Living in Romania right now, but I'll ping you when I'm back in NL (I go there at least once every few weeks), Clojure seems to be the most approachable from the languages you list.

Besides your listed reasons mutable state is becoming a bigger and bigger bottle neck as the number of cores goes up and that's why functional programming is becoming more and more important. It also makes programs much harder to write in a bug-free manner and it makes testing much more difficult (if not impossible).

It's one of the core reasons why I felt so bad about dropping Erlang from the list because I feel that it gives me that plus a battle tested environment to work with.

Still tempted to put it back in. Your reasons add weight to an already very difficult decision, whether or not to pursue this opportunity as a way to get more into functional programming or to stay in my 'comfort zone'.

I've been toying around with FP on and off for the last couple of years and it is one of the most important revivals the computing world has seen to date (imo of course).
It seems very dev focused. I tried the demo out and it took me awhile to figure out what I needed to do. The Question should be larger and have more information about what I should do
Hi jacquesm, if you're reading this..

I recommend that you take a second look at Scala. Considering that you "have a working knowledge of Java (but really don’t like it)", I think Scala is a good choice.

The usual cliche-but-true reasons:

A. It runs on the JVM, arguably the most performant VM.

B. It has mature, huge (Java) ecosystems. High quality IDEs, rich (3rd party) libraries, a plethora of build tools (for better or worse) and profilers.

But for me personally, the things I like about it:

1. I can use different languages (as long as it runs on the JVM, obviously) for different needs. Probably not wise to mix a dozen languages (http://en.wikipedia.org/wiki/List_of_JVM_languages) in a project, but at least I have a choice.

2. Since I'm a Java developer during the day, I can reuse my skills (can use same framework, same debugging approach, same build system).

3. I can start coding with Java/imperative style. When I started learning Scala, I literally coded like in Java, minus the semi-colons. Over the time, I enhance my coding style because I keep thinking, "There's gotta be a better way of doing this." At least this lowers my barrier to learn Scala.

EDIT: IntelliJ allows you to copy Java code and paste it as Scala.

Obviously you can replace "Scala" with "any JVM language other than Java", but I have my specific reasons in choosing Scala (over, say, Clojure).
I like significant whitespace too, but it is not without its drawbacks (eg, sometimes you need to wrap things in parentheses when you want a linebreak). Playing with Rust reminded me that you can do very nice things with a curly-braced syntax as well.
I had a similar idea to this: However it was more of a daydream about how to escape the misery of so many unhappy people wasting x hours of their lives per week.

I thought it could be cool to have a kind of train/carriage discussion topic that you could browse. The most amusing thing about it is imagining people who didn't know about the app wondering onto the train and being overcome with horror at all the people talking to each other :-)
whoa settle down, the article wasn't about the superiority of LISP syntax, it was more about how the syntax is not as weird as you might think.
FireWeb – Firebird-based CMS
NBN(fiber to the premise) is already killed off. The new government is adopting Fiber to the node for future installations.
I found the reply to Robert Tarjan interesting, and I wonder how many people who conduct programmer job interviews would have guessed that the Big O derived value vs the actual performance of the algorithm would be so unpredictable!

"Another issue, when we come down to earth, is the efficiency of algorithms on real computers. As part of the Stanford GraphBase project I implemented four algorithms to compute minimum spanning trees of graphs, one of which was the very pretty method that you developed with Cheriton and Karp. Although I was expecting your method to be the winner, because it examines much of the data only half as often as the others, it actually came out two to three times worse than Kruskal's venerable method. Part of the reason was poor cache interaction, but the main cause was a large constant factor hidden by O notation."

Question: in what ways can having a large constant factor in an algorithm cause such a dramatic performance difference on modern hardware. Can anyone give examples? I can only assume that the "large" constant factor in this example was large enough to be always overflowing, and needed some bignum functions to work.
I suppose a third option would be Composer and picking only the modules you need.
Are Coding Interviews Dead?
Real first name. They only ask my name if they are busy, so obviously it's to keep the orders straight. If they aren't busy, they don't.
Right, but it's a close enough match to meet his requirements.

ETA: A blue collar match as opposed to an academic match. ;)
Another well reasoned upvote for clojure then. Tempting to put it back in, I've already played with it quite a bit, wrote some toy programs in it.

Thank you!
About 5 years ago I worked for the guys [1] that provide the journey planning api behind NRE, the train line and most other UK rail journey planners.

We built a public api that as far as I know is still running. It was pretty usable and the pricing was reasonable.

There was always a sticking point about NRE letting us expose the real time data though - hopefully this has now been resolved.

[1] http://www.silverrailtech.com/journeyplanner
The former government (centre-right Labor party) promised FTTH or FTTP (Fibre To The Home/Premises) but that was scrapped when the slightly-less-centre-and-more-far-right Liberal party got in and proposed FTTN (Fibre To The Node). The "Node" is a box at the end of every street, from which the existing (and rotting) copper network would theoretically connect to each home. Needless to say the idea is profoundly stupid.

FTTH is still available if you want to pay thousands of dollars for your connection, of course. We call this FTTR: Fibre To The Rich.
What about Meteor (https://www.meteor.com/)? surely being funded should help longevity
I believe the old music software Impulse Tracker did something like this. It was in text mode, yet had smooth mouse cursors, audio visualizations and other "graphical" things.

http://roartindon.blogspot.com/2014/02/20-years-of-impulse-t... (more detail from the author in the comments)
Coming from years of .NET, a year spent with Grails and now 4 months into 'Ruby-land'. If there was a way to vote, I'd vote Rails/Ruby just Rails/Ruby isn't cool anymore, everyone moved onto NodeJS/Scala or wherever. I'm only going by experience, and I haven't been deeply involved yet.

It's a good thing. By the looks of it, the community might be jaded in some way, which means no more running around trying to be the coolest /fastest kid in the block, mostly everyone just wants to get stuff done. The amount of useful gems and well-maintained libraries (years of being maintained, not just a few months) is amazing.

The language matured enough, and the ecosystem along with it. The ecosystem still has some flaws and voids here and there, but that's what makes it exciting in being part of it.
Also,

12: "the late arrival of a preceding train",

13: "the train driver is currently en-route in a taxi" (I did not make this one up)
And if you get lucky, "Briefs encounter"
Jeteroheller: Wanna Smoke Weed? Here Is Why You MUST Grow Medical Marijuanа
Keep in mind that Microsoft now require you to login with their latest IDE. The moment this will bite you in the ass depends on what license you use (retail, partner etc). If your a partner you get a rolling 30 day trial that's tied to your MS Partner account and if you've ever used the MS Partner website you know what a complete piece of shit that is.
From the Partner account you assign development rights to a developer which then flicks a switch in your MSDN account, allowing your developer to login to Visual Studio.
Problem is these stars dont always align and your left hanging on the phone to support for hours (this has happened to 2 of our 3 devs now, took 24+ hrs to sort)
The only solution is to switch back to VS2012.

Xamarin also require that you log in to their IDE, so far so good with them though.
Amazon Loses Bid For .Amazon Domain
"today that line would say "a place for people to spend money and trudge through queues to experience self-contained stories with no room for imagination or learning." "

people see what they want to see

I always find Disney's attention to detail, especially for what is really a giant coorporation, sort of inspiring
The filters you specify for LDAP searches were probably inspired by Lisp syntax too:

(&(|(uid=smoyer)(uid=swm))(mail=redacted@gmail.com))

To be honest, I'm not sure why the test expressions are infix while the logical operators are prefix. My guess is that it allows a filter to be specified without whitespace.
Thankyou, you in part answered my question elsewhere in this thread.

I'll give it a read.
Private Eye often have bon mots about how even the ticket offices don't offer people the cheapest ticket because they can't figure it out.

But when you have to deal with things like (eg, I'm hope I'm remembering this right from someone I know) "EUS-CDF being more expensive than EUS-SOT + SOT-CDF even though both halves are the same train as the EUS-CDF journey", you can see how no-one has a bloody clue.
Crazy Idea #4723
Two typos in three letters, that's got to be some kind of a record. Holding out for 3. Changed and deployed, thanks once more. And Tcl wasn't going to get back in on other grounds so at least it won't require me to re-write a major chunk of the post.
Over 3,000 charge/discharge cycles...

"Reliable – first ever high performance battery that meets consumer lifecycle demand, rated for more than 3,000 charge/discharge cycles."
world’s first and only organic carbon material

Organic = made of carbon. At least it meant that originally. Now the consumerized term meets "Carbon."

That said, I hope this works out. New battery tech rarely ever does, though.
Fixing Typography Inside of CSS 2-D Transforms
I agree and we also went through a similar process at work (although a few years later than you), couldn't be happier with Python and Django.

Although looking forward, I have a strong feeling that HHVM/Hack will become one of the darling platforms given the amount of resources Facebook has and the poor state of performance many PHP frameworks are currently in.
Generics also were not a new idea back then...and let's not forget Gilad and Martin, whose backgrounds weren't haskell.
Since the author is already familiar with PHP, why not try Hack? You'll get to keep all of your PHP stuff, with increased performance on the HHVM.

Sure, there is no real hack framework yet.. but you could help build one. Plus, all your PHP frameworks will work fine in the meantime.
My guess will be he will eventually arrive at Ruby on Rails or Laravel.
The same reason data casting and any kind of innovation in the digital TV rollout was killed off in 2000. Don't upset the status quo.

That was from Richard Alston back then, again the Liberal party.
What is 'cool' is not a factor. Long term vision and solid engineering is far more important to me than sexy or cool. It is funny how my needs probably align more with big enterprise than with small start-ups, because I'm just one guy and do not have the agility (for want of a better word) to follow ever new hot thing. Big enterprise is just like that but for reasons of inertia.
The Fourth Internet
Lancet Study Calls for Action to Prevent Millions of Newborn Deaths
California Urges Websites to Disclose Online Tracking
Google Says It Passed on a Deal of up to $5 billion
jaquesm's requirements, per the linked article, are that "Sessions, authentication, routing, internationalization, MVC, caching, mobile, templating, ORM and so on should preferably all be part of the deal, so batteries included please". GP's comment was presumably made with that context in mind. Arguing for Express on the grounds that the word 'framework' doesn't imply those those things doesn't invalidate his requirements - definitions aside, Express clearly doesn't satisfy them.
Which is of course rubbish; events like the sudden fall of civilization, large-scale nuclear war, all governments on earth suddenly declaring very large computing or storage facilities illegal out of paranoia about runaway AI, etc., are surely much more probable than 10^-11 per year and have the potential to wipe out S3 entirely.

It's arguable that all of these are sufficiently major events that if any of them happens you won't care that you just lost all your data stored in S3 because you'll be too busy fighting off wolves, dying of radiation sickness, or whatever.

More to the point, though, I take it the real point of these many-9s guarantees is that if you store a very very large number of things on S3 the danger of losing one of them is still very small. So, for instance, if you store 10^8 objects in S3 then the probability of losing any of them in a given year is allegedly about 0.1%, which is actually fairly credible. (But when that happens, a substantial fraction of the time it's because of a really major disaster and you probably lose a lot more than one object.)

We could do with more precise ways of describing availability guarantees, to distinguish between a small probability of losing lots of data and a large probability of losing a tiny amount of data.
But, the genes are in the new body as well? So, wouldn't the genes that move to a new host and program the old host to expire be better off?
On the subject of OED (and of assembling dictionaries):

"A Minor case: OED contributions from a prison cell"
http://blog.oxforddictionaries.com/2013/02/william-minor/
> The syntax of Haskell is not that big.

Neither is APL's syntax.

Too much operator overloading is just a bad idea.
What about the 'A-' ? I think they invented some new element ! ;)
Interesting but it doesn’t get past the a priori objection to the NBN having been adopted without any economic or commercial assessment to justify it as a political fix when the election promise to provide better broadband at one tenth the cost of the NBN was shown to be hopeless and an embarrassing shambles. And it doesn’t demonstrate that the a priori probability that a proven entrepreneur in the field of Internet based services would be able to do the essential job more cost effectively.
A 30% difference would still be classified as "similar", but this would still be a big deal since batteries are just borderline capable to provide electric cars with sufficient charge to be acceptable for most people. A battery that's 30% worse than the best current batteries would be unusable.
From Tesla's website it looks like they take ~1 Hr to charge (1C rate). That would make me think they are limited by the maximum charge rate of the cells.
> Lisp adds just one rule: a Lisp program is an sexp whose root node is a function symbol.

Now you explain these three examples. All have a symbol at the start of the list.

* (let foo bar)
; in: LET FOO
; (LET FOO
; BAR)
;
; caught ERROR:
; Malformed LET bindings: FOO.
;
; compilation unit finished
; caught 1 ERROR condition

* (lambda a b)
; in: LAMBDA A
; (LAMBDA A B)
;
; caught ERROR:
; The lambda expression has a missing or non-list lambda list:
; (LAMBDA A B)

* (defun foo (a) (+ a 10) (declare (fixnum a))
)
; in: DEFUN FOO
; (DECLARE (FIXNUM A))
;
; caught WARNING:
; There is no function named DECLARE. References to DECLARE in some contexts
; (like starts of blocks) have special meaning, but here it would have to be a
; function, and that shouldn't be right.

Obviously the SYNTAX for LET, LAMBDA, DEFUN, ... is more complex than what you think.

Looks like there is Lisp code where it is not sufficient to have a symbol at the start of an s-expression. There seem to be more constraints to the allowed s-expressions.

For example the syntax for LET is:

let ({var | (var [init-form])}*) declaration* form*
Indeed having a chain is often nicer than a lot of nested stuff. And when your base language is an abstract syntax tree, it becomes pretty easy to write a macro to let you flatten a lot of things out (among a bunch of other neat things). If your complaint with a lisp is that there's too much nesting, you haven't seen enough lisp. Pretty much every lisp has an infix-math library somewhere, for the popular lisps there's probably at least a dozen, and they usually allow mixing in prefix-math as well because nuts to typing "a + b + c + d + e" when I can just type "(+ a b c d e)" or if I want to call functions anywhere in the middle. There's no reason you couldn't write your example using a threading macro in Clojure, assuming your functions are defined such that they take input explicitly as the last argument instead of reading a common stdin. (Or if they take it as the first argument, you use a different macro but the same syntax.) Your code just becomes

(->> (command) (grep "error") sort uniq (wc :-l)

Does anyone think (wc :-l (uniq (sort (grep "error" (command)))))
is a better option? And instead of typing that out manually, I just used the REPL.

user=> (use 'clojure.walk)
nil
user=> (macroexpand-all '(->> (command) (grep "error") sort uniq (wc :-l)))
(wc :-l (uniq (sort (grep "error" (command)))))

Even without macros you can still setup nice-looking chaining with generators and coroutines. "Too much nesting" seems like the wrong complaint.
Tools should work offline, period. Imagine having to call DeWalt or Bosch every time you want to use your drill.
Critical state startups | berlinvc
Not even purely fiber to the node any more, they are going with a "multi-technology mix"[1]

So by the end of 2020, 98% to 100% of the population would have at least 25Mbps[2]. Which is maybe twice as fast as what we have now on average (as a guess).

It is also way behind schedule and over budget[3], when being quicker and cheaper were its main selling points against the FTTP solution proposed by the Labor government.

[1] http://www.theguardian.com/world/2014/apr/10/malcolm-turnbul...

[2]http://www.theguardian.com/technology/2013/dec/17/nbn-chairm...

[3]http://www.theguardian.com/technology/2013/dec/12/coalitions...
I had the same knee jerk and even a bit further: ruby seems to embrace the "go fast and break things" philosophy much more than python.
Python all the way.

And the part about Python code breaking due to external modules must be a joke, right?! How hard is to specify a fixed version in the requirements.txt
Coding Schools Tone Down Rosy Job Script
I think the answer is the total guileification of the (extended) GNU operating system. We need to facilitate cross-talk between bits of the operating system, and there would be no more natural way to do this in GNU than to make all commands understand literal Scheme lists of arguments, and give back literal Scheme lists of data (including the response to '(help), which would make the entire system introspective!), so that inter-operation between sub-systems becomes natural.
This may be my biases speaking but I'd say Scala is a more approachable option than Clojure (and more popular, and has a first-class web framework in Play). It keeps more of the traditional OO style and syntax - you can use scalaz and write scala that looks like Haskell, but you can also write code that corresponds line-by-line to java, whereas with Clojure you're forced to make a more immediate leap to the lisp-style syntax, immediately stop using inheritance, and so on.
Yup. See http://clochure.org/
Persistent structures are almost always O log N (because they have to be trees). You can fix your branch out for better performance at the cost of more wasted space. You will never be as fast as an array.

Also, sometimes you want your updates to a data structure to be seen via an alias (happens often actually), then we are back at square one again.

Systems people are much more pragmatic about this: they see the trends in hardware before we PL people do, and their solution has never been functional programming. Ok, well...maybe once with MapReduce (but Jeff and Sanjay are both systems PL people).
I do like that, it also makes the utility more filter-like. Here is that implemented in C: https://gist.github.com/zokier/6b43032afb248bef68b7
That is quite possibly true but I've never even written a line in ruby so I'm unfamiliar with this. Thanks for the warning!
If you assume a normal cell phone user charges his phone at night, and it will work the whole day, it means around 8 years of use.

If you calculate from lithium ion, based on my own experience with my phone and my macbook, a lithium ion battery crosses over into the less acceptable performance after 4-5 years.

If the degradation curves can be compared that would mean you could expect 12-15 years from these batteries. Pretty impressive!
I use a different name every time to keep things interesting. I am quite a large guy so saying my name is Susan always shocks the barista and makes others chuckle when my name gets called. I try christmas themed ones like rudolph and blitzen during christmas season.

My real name is Kewan which is difficult for people to get right when they first hear it so I often just use Kew or Q which is quite funny when they call "coffee for Kew"
FCC chairman says Internet fast lanes not 'commercially reasonable'