skysight-inc/HackerNews huggingface dataset:
Because macros let you control code in a way libraries don't^1.

Java now has this way to iterate over a collection of things:

for(String exclamation: exclamations) {
System.out.println("I yell " + exclamation + " at you");
}

But this was only added in 2004!^2 So for almost 10 years, you had to manually iterate over stuff. How would you implement this as a library? Well, you could write a function that lets you write:

iterate_over_collection(exclamations, function(collection) {
System.out.println("I yell " + exclamation + " at you");
}

But this is much uglier than the prior code. Also, it might not act the same. For example:

int highest = ages[0];
for(int age: ages) {
highest = Math.max(highest, age);
}

Would this work in a lambda? Well, if the language you're using has real closures, yes -- but does it? Do you know offhand? With a macro, your code will work.

> Even if you ignore the above, there's probably a good reason why the language designers don't want to approve your language-level feature. ... it can also be that you -- the applications programmer -- simply aren't well-versed in language design and can't think past your particular use case :) This wouldn't mean the feature is worthless (after all, you need it!)

That seems like evidence for my point -- macros let you build the language up for your own use case, not anyone else's. Without macros, your choices are "either everyone can use it, or no one can use it". Macros let you have a choice of "well, I can use it, even if no one else wants it, if I find it useful."

Macros can be viewed as libraries that act on the language itself. There isn't a difference between language-level features and "library functions" in a language with macros.

[1] Without getting into a Turing Tarpit. We're talking about using things in easy ways, not what is technically possible but ugly and kludgy.

[2] It was released in Java 5.0: http://www.java-tips.org/java-se-tips/java.lang/the-enhanced...
I think you might be replying to a different idea than reverend_gonzo was proposing. I think he's just noting that not-obviously-useful technological advances can have unexpected applications. I don't read him as saying that not-obviously-useful technological advances are the best way to save lives in Nepal.

If you just want to save lives, donate to whichever charity GiveWell[1] says is the best charity at saving lives per dollar. Every other use of money is vulnerable to the "but you could save more lives a different way" criticism.

[1] http://www.givewell.org/
What good is a job when you need $100-150K/year to lead a middle class life in SF?
You should use whatever works for you but this strikes me as very bizarre I have to admit. I started out with a mouse as well and I can see this being something I would have attempted if I hadn't just put my head down and forced myself to get used to keeping my hands on the keyboard.
A substring of text may or may not be a date and based on the excellent tools available in linux you can decide how to extract that "data point". If binary logging is little more than a stream of text, then that is fine, but I seriously doubt that is the push happening. Personally I prefer having a raw stream of data that I have to work with as best as I can rather than having to use some flag defined by somebody else to range across dates. That is the fundamental difference it seems: do you want a collection of tools that can be applied in a variety of ways or do you want the "one way" (with potential versioning... have fun!).

Again if the binary log is simply better compressed data, well we have ways of compressing text already as an afterthought. This really, fundamentally, seems to be a conflict in how people want to administer their systems and, for the most part, this seems to be about creating a "tool" that people then have to pay money for to better understand.
Might already be familiar with it, but if you aren't, you should check out sikuli script [1] for when you have a repetitive GUI task you have to perform that can't be directly scripted. I've used it to script some really complex workflows through GUI's

It's also just weird and interesting to program something to move through a GUI as fast as is possible

1: http://www.sikuli.org/
"Deceptive" is your word. I said "whitewash."

A whitewash is dissembling and deflecting and, ultimately, deceptive. Abelson, and the other authors of the report should have refused to write it.

But Reif is mostly to blame. He asked for the report, and used it to deflect blame.

Now here is where YOU are being deceptive. You are digging for "Hal Abelson is culpably deceptive." You would even prefer something stronger. That's a weak rhetorical ploy. Write it yourself if you want to read it.
For the first time today I put an IPython notebook into a github repo, and thought "cool, they render on GitHub", only to read that they rolled it out today on HN.

Super neat.
My main problem with this is that ascii is not something that will ever change over time. The data format is wonderfully static. Forever. Introduce a binary format? You get versioning. It is a major downside.
Harj is not really interested in creating a service that "measures" a person's ability or "predicting" their future performance, because that's impossible to do.

What they're really doing is creating a cargo cult tool that gives the illusion of being "objective" and using "data", so that they can sell the serivce based on this appearance, and later get bought out by LinkedIn or something.

Perhaps they're doing a startup themselves because they had problems finding jobs due to hiring practices such as these.
A separate fitness tracker is the PDA-and-flip-phone combo of 2015. Once there are popular and mainstream wearable computers, I have no need for a separate fitness tracker. And that will happen as surely as things will continue to get smaller.
There are very different options.

First, approaches like Eff take pure functional computation as a basis and layer effects like call/cc or concurrency on top of that. I think it's better to go the other way and take concurrency, or, if you want to start sequential, a lambda-calculus with jumps a la call/cc or lambda-mu, as a basis see pure functional computation as a restriction of the base calculus.

Second, it's unclear that effects should be reflected in types for reasoning. That road leads to complicated typing systems without type inferences (see also dependent types). I think the following alternative is more appealing: stick with lightweight types (think Hindley-Milner), and leave reasoning to an external calculus (variants of Hoare logic).
keep up the good fight! Thank you for your efforts
The IRS is underfunded as a means of inhibiting enforcement because the dysfunctional Congress is unable to make law. The IRS only goes after lucrative targets (big fines and large back taxes) and cannot afford to enforce the law.

Why? The electorate is stupid and being made stupid by eagerly consuming media selling information entertainment, acting on the political and financial will of their owners.

Partisan bullshit, and the willingness to participate in it by citizens on _every_ side, is the major threat to our democracy.
A rank-3 tensor is. It's any number of dimensions you need.
C-Space sets the mark in emacs, which is a regularly used operation.
We aren't rich by any means... Don't start thinking about dropping off the face of the earth or going into philanthropy if you still only have a 6 figure bank account, like many of us do... Also don't forget about what happened in 2000. Engineers should probably work more but spend less money because things aren't so easy in less favorable conditions
In the case of wanting to stick to a text-only workflow, rather than taking advantage of the structured data features, then you only need a tool that converts the binary log format to your preferred text format. Which isn't too arduous. In systemd that would be journalctl, in Windows anything that can use the event log API such as Powershell or many other utilities.

The examples I posted above were just to show the equivalent capabilities in Powershell but really it's all flexible enough to use whatever you like.
A very tiny shell script:
https://github.com/joewalnes/go-getter

Like go get, but you specify exact versions, including transitive dependencies. One GOPATH per project. And most importantly, you don't have to use go get to install the tool in the first place.
Do you work on developer tools at FB or was this extra-curricular?
The meaning of the question is that Obama hadn't thought he himself would authorize drone strikes until he became president himself. Not that Obama hadn't imagined the existence of drone strikes.
Mods, please rename to "Go Get Considered Harmful", as per the article's title.
The examples in the article seem much more focused on NodeJS.
Did you have any structure to these 1on1s?

My old manager used to do these with the entire team, but he would literally sit with us, as 'how are things?' and then end the conversation if they said not bad
Thanks for your question. I should have been more	careful. I meant Agda used as a prover,
not Agda used as a 'conventional' programming language (Indeed in years of usage, I've never executed an Agda program, I've only ever used the type checker).	In other words, Agda, the proof calculus for Martin-Loef type theory.

That said, I was talking about effects in general, including
non-termination, exceptions, concurrency ...
The notebooks support a very large number of kernels, including Julia, R, bash, Lua, Erlang, Perl, OCaml, and so many more[1].

[1] https://github.com/ipython/ipython/wiki/IPython-kernels-for-...
The very brief history of Computer Science
I agree with you. My current life style ends up around $7,000 a year. I live in a very affluent mid-east city. I don't own a car (15 minute walk to downtown), I don't eat out constantly (I prefer healthy meals), and I don't buy a bunch of luxury junk. I can honestly say that I do not feel like I'm struggling at all.

Having the 'standard' car, house, and family are unnecessary luxuries. It's fine if you choose to do these things but it's silly to me that people feel poor making 50k+. I would argue that if you are struggling with those types of income, your lifestyle is severely out of whack. You don't have to keep up the Jonses to lead a very happy, healthy life.

The benefits of living cheaply are pretty obvious and already pretty well covered. The ability to work on whatever I want, whenever I want all without ever having to think about the personal finance side of it, is just incredibly freeing.
Ohh that makes good sense. I wonder what the money looks like versus other models like what Jawbone and Fitbit use. Thanks for the insight.
Don't forget Washington state! :-)
CO Governer on His Softened Stance on Legal Marijuana [video]
yea, couldn't agree more. For most employee's and employers alike it takes 3 months to really bond with the company.

Can see where both sides are coming from but sounds like they lost a good one.
How Much Torture Can the Apple Watch Take?
Animated Gifs in Your Log Output
I'm not sure how he's gonna make all these loans given that unsecured debt is so out of fashion these days.

98% Of Q1 Consumer Credit Was Student And Car Loans

http://statspotting.com/stunning-98-of-q1-consumer-credit-wa...
I guess it depends a lot on your coding style. When I started allowing hyphens in variable names, I already had about 10,000 LOC of Earl Grey, including the whole compiler for it (seriously, it was a pretty late addition). In all that code, I only had to change one or two lines if I allowed hyphens, so I decided to just go ahead and do it.

And not even because of CSS, just because I think "do-thing" looks better than both "doThing" and "do_thing". Of course, I would think differently if I tended to write "a-b" instead of "a - b", but at the moment I quite enjoy this feature.
Does 'each' serve as both forEach and map? It appears that way from the fib example.
filll.com – the ultimate reading list for finance professionals
It's been 9 months since the acquisition. If they don't do something soon it will start looking like Cook's first flop.
The fact that most of these businesses are owned by immigrants and staffed by even more recent immigrants is a major factor in how they can operate so blatantly in defiance of the laws.

The article mentions in passing that the Labor Department has a severe shortage of investigators who can speak the languages the manicurists speak (mostly Korean and Chinese -- they have more people who can speak Spanish). But even if they could, what would they find out?

Every major Western city has at least one Korean-run website with an informal classified section (usually just a forum), where employers proudly announce below-minimum wages as if they were doing a great favor to the hapless kids who end up working for them. Ditto for the Chinese, and I'm sure other immigrant communities have them, too. Why aren't people reporting these ads to the Labor Department and/or IRS? Yeah, those posts aren't in English, but nothing a few minutes of Google Translate can't fix.

It's because immigrant kids really have nowhere else to work, with their abysmal English skills and zero knowledge of the American job market. Many of them are international students who are at risk of deportation if the authorities find out that they've been working. A friend or relative probably introduced them to the nail salon, so if they ever betray their employer, the friend or relative will be very disappointed and they'll have a hard time finding another job through that channel ever again.

Moreover, insular communities like Koreatown don't look kindly upon "traitors". Even though Korea itself has improved by leaps and bounds in recent years, most Korean communities in large Westerm cities are stuck with the mentality that early immigrants brought with them 50 years ago. That means the employer is doing you a totally undeserved favor by offering to hire you for $3.50/hr, no pay for the first 3 months, and oh, you gotta return the favor by paying your employer a $100 fee when you start. It's seriously backward. It would be difficult to get away with shenanigans like that in Seoul. But in LA, in NYC, nobody questions it. And if you do, good luck walking around Koreatown with a straight face ever again. Your parents will be ashamed of you, etc. etc.

Still, there's some good news. Younger Koreans no longer give a shit about what their parents think an ideal employer-employee relationship should look like, and they can often just go back to Korea if they aren't happy with life in America. The Chinese are still suffering massively, as the article describes at length, because they don't have that luxury. But if an abusive Korean business owner ever hires a non-immigrant kid, which they increasingly do because so many American youngsters are out of jobs these days, that's a ticking time bomb to a massive lawsuit.

The article mentions a Korean nail salon owner who finally got sued and was ordered to pay $474K. A few weeks ago, a Korean restaurant owner in NYC was ordered to pay $2.6M to his abused and overworked employees. More of this needs to happen, and more of it will happen. It's about time the Korean immigrant community stopped giving a bad reputation to Korea.
Not for me. I got a safety razor a few years ago, never looked back until I found myself traveling, and, unable to bring my blades, just went to the grocery store and got a cheap three-blade razor. Night and day difference.
Looks like they removed it in the screenshots. It's not fully rolled out to my account yet, but it also seems to be gone from some of my pages.
I am utterly giddy about this. I've spent a lot of time in the book I am writing to generate PDFs, to create TOCs for links to nbviewer, managing all these links and production every time I made a change. Now people can just view it directly in github. Life is as it should be.

There is just so much innovation and hard work coming out of this group, which is quite tiny. Any time I've raised an issue, even if it turned out to be my own dumb fault, gets the immediate attention and support of a core developer.

If you want to communicate with programmers there really isn't a better platform out there. The old 'write code, run code, save results, write latex, gen document, find error, repeat, opps code is out of sync with results....' is pining for the fjords.
Fitbit is now the underdog. I'm excited to see where this ends up now that the market is willing to give them cash to fight Apple, Google, and Microsoft
Having loved ones outside of work and understanding where work fits into your life overall is a whole different thing. Super important think about and understand, but out of the scope of what I was trying to say in this post.
Perfect complement to developer team chat with Slack
i have been pondering getting a high salaried job in sv for 1-2 years living out of my car and office and saving 90 percent of my salary to live nicely anywhere else in the country.
Very nice. Can't wait to try it out in our builds.
Numenta published their first paper
Bitcoin is more pseudonymous than anonymous: you can trace the transactions of an identity, but there's nothing inherent about that identity that links it back to IRL unless theres additional information
Do we know that the alternative protocols are better? Are we finding so many problems because the protocol was badly designed, or are we finding them because an open protocol is much easier to analyze?

(I suspect it is both badly designed and easy to analyze, but I do wonder about the state of the alternative protocols)
The Mystery Behind an Eye That Changed Color
This is showing HN.
I hope that one day our children or their children can feel as you do--in the meantime, things are looking grim.
I mostly hope they are fixing the terrible performance issues. Seems like I'm always waiting for photos to load properly.
Yes. The compiler detects whether the return value is used or not to determine whether to accumulate the results in an array or not. Also, unlike forEach and map you can use continue or break.
Woah! Awesome. Looking forward to giving it a go
Thanks. Do any of these renditions have the target type int -> int?
Unless you're in the business of money, you shouldn't really be doing it yourself, so the important TLDR is:

> Obviously it’s not fun living in that fear, which is why I believe that services like Stripe, that help you out with these issues, will thrive.
> Hosting your own copy completely avoids this issue, if you trust the people you work with ;)

We build containers from ephemeral t1.micros that only survive long enough to build the single container. I think that's secure enough for most orgs needs.
iOS Weather App with Wind Based Particle Effect
> The belief that ORMs are evil is precisely the belief that this sort of code should be repeated everywhere database access is performed. If you have generalized routines for interacting with the database with more comfortable abstractions then string concatenation, you are using an ORM

This is incorrect.

The sqlx library, included in OP, has generalized routines for interacting with the database, but is not an ORM. The squirrel[1] library for Go lets you produce queries without "string concatenation", but is also very much not an ORM.

An ORM is a specific style of library that attempts to map object oriented data patterns to relational concepts. That's why it's called an Object-Relational Mapping. There are good reasons[2] why people find this approach problematic, which aren't down to cargo culting them as "evil" or believing that everyone should repeat data access code in all projects.

[1]http://github.com/lann/squirrel
[2]http://en.wikipedia.org/wiki/Object-relational_impedance_mis...
I think it's unfortunate that this is currently the top comment on this post. Someone puts hundreds of commits of work into a nifty language with a nice feature set (including compile-to-js) and awesome integrations, and this is what they get on HN...

I think this looks like a great project, we can never have too many programming languages to play around with.
This is amazing. I think ipython notebook is fantastic in all regards. However, I feel there's a bit of an elephant in the room. The main tools I use as a programmer are shell and a text editor. I'm not about to start writing code in a web browser[1]. Is there any hope that there will be a good workflow for somehow editing .ipynb from a text editor or is that antithetical to the design? Could markdown perhaps be used as a primary editing format to target ipynb?

Looks like there's at least one project doing that. https://github.com/aaren/notedown

And there's the emacs-specific project https://github.com/tkf/emacs-ipython-notebook

[1] EDIT: I mean, not right now anyway. I've got a feeling that statement could seem a bit dated later in my life...
AIDS (computer virus)
Featured Vid #84 – The Unluckiest Man on Earth
I've gone to highly regarded famous restaurants that should have easily been 5 star.

The 2 and 3 star complaints? Trivial crap.

"Sure the food is great, but other restaurants also have great food, 3 stars."

"There is this other restaurant on <other side of the country> that has food as good at this restaurant, and my meal was $30 cheaper!" (for a $200 meal)

"I had to call ahead to get reservations, they couldn't just seat me, 2 stars"

Crap like that ends up with Michelin Star rated restaurants having equal "star" ratings on Yelp as the local Subway.
The state of Computer Vision and AI: we are really, really far _away_
Your reply really helped. I asked because Im in a position where the company is 4 years old, they got initial traction. At this point they want to pivot though, but the current code base does not allow for that because it cannot support the new features.
I think it would be pretty hard to write something like algo.monads in python when macros are not available.

https://github.com/clojure/algo.monads
Well, I work for a smart grid vendor (SSNI) and I know for a fact that our protocols are better. We actually use strong primitives, for starters.

I can't understand why they rolled their own MAC, when robust and tiny implementations are rather plentiful. That just seems like a foolish waste of time, frankly. An ATMega can do HMAC-SHA256 for crying out loud. There is no excuse.
It would be hard to overemphasize the importance of work-life balance. It's equally hard, though, to say what it is, because it's different for every person. I think you just need to keep it in mind and make sure you're doing things that make you happy.
Very cool to see this. Awesome job! I met with a company last year who took the similar concept as

> plus we added a way to build repos without dockerfile with assigning default dockerfiles based on language and you can push to any registry you want

And applied to YC with it. Unfortunately they weren't accepted. I think it's a great concept.

If you'd like to chat more, my contact info is in my profile.
I would agree that the computational complexity of every single quark in every single atomic particle in every atom in every synapse is far far greater than the computational power we poses at this day. I just think it's a red herring to chase down that level of computational completixy (for now. True physical simulations truly amaze me, and I can't wait to see them be more granular and accurate). When it comes to intelligence, I think we are mostly missing the algorithm, not the computational power. I think once somebody finds the algorithm (which may be very soon in my own opinion), we will have more than enough computational power to blow the mind away by orders of magnitude.
It depends a lot on the quality of the blades, and if you store them dunked in mineral oil between shaves. Some brands of blades I got were garbage out of the box. None of them were much good if they had been left out for a few days after use - same are disposables in that regard.