skysight-inc/HackerNews huggingface dataset:
Actually "transducer" can be done with straight function composition. It would work in any language supporting high order function, a fancy way of saying passing function around as argument or return value.

e.g. in Javascript (I'll be overly verbose for illustration)

function mySumReducer(sum, value1) {
return sum + value1;
}
function myTimesReducer(product, value1) {
return product * value1;
}

[1, 2, 3, 4].reduce(mySumReducer, 0) gives 10
[1, 2, 3, 4].reduce(myTimesReducer, 1) gives 24

function myDoubler(x) {
return x * 2;
}

function valueTransducer(originalReducer, valueEnhancer) {
var newReducer = function(memo, value) {
var newMemo = originalReducer(memo, valueEnhancer(value));
return newMemo;
}
return newReducer;
}

var myDoubleSumReducer = valueTransducer(mySumReducer, myDoubler);
var myDoubleTimesReducer = valueTransducer(myTimesReducer, myDoubler);

[1, 2, 3, 4].reduce(myDoubleSumReducer, 0) gives 19
[1, 2, 3, 4].reduce(myDoubleTimesReducer, 1) gives 192

valueTransducer is a generic transducer that can be used to apply an extra function to the value during the reduction process. Voila, you got a transducer in Javascript!

To make it more useful,

function fancyTransducer(originalReducer, valueEnhancer, memoEnhancer) {
return function(memo, value) {
return memoEnhancer(originalReducer(memo, valueEnhancer(value)));
}
}

This generic transducer can transform the value and memo of the original reducer. Also since the transducer returns another reducer, you can chain it up by calling transducer again with it using different enhancers. The wonder of functional composition.

It's nothing fancy once it's laid out. It's just a useful programming pattern.
New OpenSSL Security Updates, No Major Security Threats
I have not had any problems related to USB with my B+, except that one time I directly connected a device that uses the USB power for charging - the screen went blinking black (not enough power for HDMI?), and the red power led blinked a bit (meaning, inadequate power supply/too much demand) but no kernel panics or reboots. I have since bought a more powerful power supply, it's possible that the problem is gone (but I have not checked).

Ethernet is as fast as you'd expect from a Ethernet-over-USB-2.0 adapter (read: no Gbit, but 100 Mbps). Plugging and unplugging USB devices has never caused kernel panics or reboots for me, and for the model B I recall reading these problems have been corrected, or at least significantly attenuated, a lot of time ago, in the form of kernel updates. Stability also has a lot to do with the quality of the power supply - from what I see, people using less powerful power supplies tend to have more problems, especially when connecting power-hungry devices.

I think calling such problems "major bugs" is exaggerated. At most, it's a power management problem, but one must see that the RasPi has a microUSB connector for power. This means people are possibly going to use a random charger, which is not exactly prepared to power a mini-computer plus two (or four, with the B+) possibly hungry devices, to power it. That's why a powered hub, or at least a good power supply, is recommended.

In my opinion, the BeagleBone Black is, from the start, less prone to "power abuse", because it has a traditional power jack (people are less likely to use a random USB charger with it) and only one USB port (it's harder to pull a lot of power from a single port, unless a non-powered hub is used). The amount of people using the BeagleBone is, I think, also going to be much smaller: even if the chance of failure is the same as for a RasPi, there will be less broken devices around. Lastly, the people using the BeagleBone will likely be much more tech-savvy (i.e., they hopefully will know what power supply to use, for example), as it doesn't exactly appear to be targeted at people still learning the basics about computers and coding.
Not all photos are burdened by copyright. If no human owns the copyright, it's in the public domain.
find . -iname xmlrpc.php -exec rm {} \;
Howdy neighbor! (I can literally see Greece from my front porch.)
Yes, one week's notice.
No-no, this is not about passion. When one joins Facebook this does not mean he or she works on "social networking", it means he or she works on a tiny portion of a massive Facebook's codebase, implementing, say, a layout of a targeted ad for Chinese users.

I don't want to say anything is wrong with Facebook in this situation, it's just a company with a huge product and 7000+ employees. You are almost guaranteed to be re-inventing the wheel "Facebook way" there.
If all HTTP connections enforced TLS, how would there be any extra burden?
It's also going to block audio in games like Grand Theft Auto and FIFA which constantly feature copywritten content (in game menus and "radio stations" in game). Maybe they'll develop lists of these songs and not block them?
Wouldn't it be easier for them to just buy an unlimited license for "Darude - Sandstorm"?
I have often found myself closer to the opposite end of the spectrum. Many machine learning algorithms and applications (certainly not all) can tolerate a fair degree of inaccuracy. This is often justified by the fact that the training data is typically noisy to begin with and is a random sample from the space it lives in. If your algorithm can be stable under those conditions it ought to be stable under floating point jitter.

This usually means you need regularization, or smoothing, or low pass filter, or averaging in some guise or the other (in some abstract way they are the same thing). There are some frequently used operations in ML that are very unstable under inaccuracies, numeric differentiation is one, just dont do it without smoothening. Inverting matrices is another, but you better have a real solid reason to ever invert a matrix, yes there are reasons when you do really want the inverse.

In any case the final point is that I have had to baby talk the compilers into, "yes, please please dont worry about it, just do these commutative (for real numbers) operations in any order that you want". This exposes more parallelism and other compiler optimizations. Often I would gladly take the hit over some precision in higher order decimal places to gain speed. But this should not be done blindly, and a smattering of numerical analysis helps gauging when it would be safe to do so. I doubt whether numerical analysis figures prominently in the trajectory of a graduating machine learner, although I think it ought to.
New Release from D'Chrome Foster | Manhood – watch and share
But a corporation is?
The lawsuits are mainly in the U.S., aren't they? As far as I know, in the EU the situation isn't really disputed, since origin labeling is stricter. Here in Denmark there are three common categories of labeling for this style of yogurt: 1) "Greek yogurt", which implies it's imported from Greece; 2) "Turkish yogurt", which implies it's imported from Turkey; and 3) "strained" or "Greek-style" or "Turkish-style" yogurt, which doesn't imply a geographic origin.

Fage oddly has nearly zero market share in Denmark though, despite Greek yogurt having a good market share. The dominant brand is the Danish brand "Nostimo", part of the Danton Trading group run by a Greek-Danish entrepreneur. The yogurt is all sourced from Greece, but the operation is run mainly out of Aarhus.
Show HN: Matrix of courses and specializations for GA Tech OMCS degree
Because it doesn't matter...

a) they have an alt tag describing the text for people without images or the ability to interpret them, and

b) they don't need to design their site for Google
I'm in London. There are plenty of jobs around here and I don't feel that it's a place thing. It just feels like a state of the affairs in the whole industry. I always give example of VisiCalc being written by two people from scratch. On one hand, they didn't had the modern tooling, on the other hand, imagine doing a similar project today — no way it would be pulled off by just two guys.
Decimal types suffer from many of the same issues.

Sure, 0.1 can be represented exactly. But that's about the only issue with floating-point that that solves.
From personal experience, the bigger (or more structured) the company, the more likely it is that you will be actively discouraged from straying too far from your assigned bit of work, either by doing it differently, or taking on a tangential problem in the codebase. This essentially kills, over time, any desire or ability to 'make a problem your own', and you run the risk of becoming just another code monkey.
Hacker Test
Clojure transducers are exactly signal functions from Haskell FRP literature, for those interested in such a connection.
I really liked Chobani for a while but they seem to have real quality issues and after throwing out a few too many cups I switched back to Fage, which I seems to be able to control their cultures better.

Also good: Tillamook greek yogurt - go Oregon!
A Russian believing in a deeply Russo-centric alternate history... nationalism can get to anyone I suppose.
If I understand right (I may not):

In Python, the (complex, generic) iter() protocol is how every container provides a method to iterate itself, and reduce is a trivial application of a reducer (like your add function) to a container by using the iter protocol.

In Clojure, it's the opposite: there is a reduce() protocol and every reducible container knows how to reduce itself. the traditional reduce function just takes a reducer and a reducible and performs the reduce protocol on it.

As there's a bunch of different kinds of containers with different rules, the best way to implement the reduce protocol on them is different for each, and there might be weird specialized reducers that are parallel or asynchronous or lazy or whatever.

Transducers allow you to composibly transform reducers into different reducers, which can then be handed to the reduce protocol. As it turns out, most (all?) normal container->container operations, like map and filter, have corresponding transducers.

Here's the good part: if you have a reduce protocol and a complete set of tranducers, containers don't need to be mappable. The map(fn, iterable) function needs to know how to iterate; mapping(fn) doesn't care about containers at all, and is fully general to mapping any reducible for free. So you can write a transducer to produce the effect of any map or filter-like operation without touching iter().

As an added bonus, the code is more efficient:

reduce( add, map( lambda x: x + 1, xrange(10**9) ), 0 )

eagerly builds a gigantic mapped list (barring sophisticated laziness or loop-fusion optimizations), but

reduce( mapping( lambda x: x + 1 )(add), xrange(10**9), 0 )

is equivalent and trivially runs in O(1) space on one element of xrange at a time.

PS: python translation of mapping from http://clojure.com/blog/2012/05/15/anatomy-of-reducer.html converted to named functions to be more pythonic:

def mapping( transformation ):
def transducer( reducer ):
def new_reducer( accum, next ):
return reducer(accum, transformation(next) )
return new_reducer
return transducer
I wonder if a power of two would be better?
...of exporting their culture...

Har.
Change the Way You Start Your Day
I love seeing stuff like this. But what really excites me is when these types of 3D models start to represent real cities. Like the ViziCities project[0]. Maybe the idea of Mirror Worlds [1] will eventually become reality.

[0] https://github.com/robhawkes/vizicities

[1] http://www.amazon.com/Mirror-Worlds-Software-Universe-Shoebo...
Cisco Internet of Things Innovation Grand Challenge
The Past, Present, and Future of the CPU, According to Intel and AMD
> The fact that Foursquare is checking your location periodically is not surprising

The fact that Foursquare checks my location when I use the app is not suprising.

The fact that they track my every move, even when the app is not running is absolutely surprising to me, and I bet to the average user as well.
American here, what Dalek_Cannes said was correct, but to add to that, we have a system to change the underlying views. These are called Amendments, and that is how we changed the underlying view to allow everyone to vote. The difference between an Amendment and ordinary laws is that Amendments are really, really, really big deals that have the authority to redefine those value systems instead of working within the definition as ordinary laws can.

There are only 27, the first 10 of which was kind of a "Constitution out of beta" thing that all happened at once, so you can kind of consider there to be 17 changes to the underlying values. That way when one occurs it's a BIG DEAL and can't sneak past the people as easily as say, the Patriot act or the NDAA, both of which are pretty easy to make a case against that they go against the core values but were voted on quickly at times no one was looking.

Also we have a separation of powers where Congress creates laws, the President acts as a leader and can also prevent Congress from creating laws in some cases, and the Supreme Court can challenge legality of laws. The idea is that the Supreme Court challenges laws against Constitution + Amendments, so they can strike down a law as being unconstitutional, but the Supreme Court does not have the power to strike down an Amendment as it by definition is the constitution.

If Congress creates bad laws, it is the Supreme Court's responsibility to point it out. However they are only legally allowed to do that when a case is put before them. Imagine being legally restrained from refactoring unless a customer files a bug report. Part of the reason the US is having some trouble with laws as I understand it is Congress + some organizations are working to prevent laws from going to the Supreme Court on technicalities. Such as person X tries to take law Y to the court with evidence Z, but evidence Z is "classified" so they are legally not supposed to know the evidence and cannot legally present it in court.

A similar problem our country is facing is that the lack of refactorization is catching up to us so our legal system has become an insane mess that only highly trained specialists (lawyers) can even attempt to navigate. Then people learn how to abuse the system and can try to attack people on all the un-refactored points of the law. This is how patent trolls work, the addition of the law (patent) is a relatively easy process and the removal of bad laws (bad patents) can only be done by challenging it in court. This causes thousands of bad patents to exist because no one can challenge them until it is used against someone.
It's not so much the amount of jobs on offer...it's what the jobs themselves offer, I think.

A friend of mine used to refer to it as cowboy engineering - where a problem needs to be solved yesterday, and everyone does anything necessary to solve it. Nowadays, even on side projects, the overhead kills you - issue tracking, version management, module management, change tracking, support. Precious little time ends up being spent on the core problem in most jobs.
True my own words haunt me. I complained about atom as it was an editor that was a plain rip off sublime text. Just that it is done in JavaScript. I complained how they could not create something similar to Acme which was a brilliant innovation. I did try to customize Acme to what suited me. But clearly Acme's philosophy is quite different. Rob Pike says a big no to line numbers and highlighting.

On why I chose JavaScript: that is the only language you can use on the web browser. I tried several cross platform GUI toolkits that Go supported. They were half complete or abandoned. The web is the only sane cross platform development environment.
> The whole idea of the project is to bring them together.

What does this do that a normal shell and vim doesn't? If I use that together with something like tmux I can jump between the two seamlessly entirely with keyboard commands.
This looks like a bug. I filed a ticket and we'll take a look. Thanks for the details!

https://github.com/mapbox/mapbox-gl-js/issues/652
Earlier discussion: https://news.ycombinator.com/item?id=8137815
This is one of the best things that Wikipedia has ever spent money on. If Wikipedia has just been building up to a court case about whether art is uniquely human, then I think that would be enough to justify its existence, let alone the fun that can be had from browsing a load of stories that might be roughly accurate.
That "ellipse" API comparison to a dialog box is one of the funniest, sharpest things I have ever seen.
Uhh, he just complimented her on becoming "the greatest Tetris player in the world", an achievement which is 100% unequivocally not due to being female or pretty (the machine does not care), and is not reduced in any shape or form by being either.
Cookbook to Help Food Stamp Recipients Cook Cheaply Becomes a Massive Viral Hit
Generally people doing AMAs just ignore the controversial questions. In this case people want to paint Twitch as the villain but they are just following the law. I expect them to say that if they didn't do this they/streamers could get sued.
A Junior Doctor's Salary
"In any case, he wasn’t sure how else he could succeed in America, and he did not want to return to Turkey: he is a Kurd, an ethnic group that has been subjected to discrimination there."

Heh, even more interesting. At least the Turkish government is warming up to an independent Kurdistan now that Kurdish Iraq is helping to fight ISIS.
How to Apologize for Slavery
I hope that the policing of mainstream commercial music use will drive content creators to use music owned by small companies and independents.

Copyright law is complex and nuanced. Systems like YouTube's and now Twitch's are simple and blunt, and are fundamentally incapable of effectively doing what they're meant to do.

Ustream ran into that when it broadcast the Hugo awards two years ago; its own "protection" system kicked in and killed the live stream because the show, like every awards show, included clips of an award winner... which were detected as copyrighted and blunt-object smacked off the internet because the system can only detect matching signatures, and lacks the ability to recognize matching unlicensed non-fairly-used signatures.

There are already reports coming in of videos being muted on Twitch because the built-in, licensed soundtrack of the game itself is audible in videos of someone playing the game, and it seems from another comment in this thread[1] that one of Twitch's own official broadcasts got muted because the system could only recognize "copyrighted", not "copyrighted and used legally".

This is a doomed project, and it could doom Twitch, and if you really do care about artists being compensated, you should not be in favor of things which make that cause seem so odious and stupid.

[1] https://news.ycombinator.com/item?id=8145381
It's getting harder to thwart terrorists using outdated techniques they know are compromised. Shocked.
Capital One restricts transactions in parts of Boston due to “security reasons”
Yeah, this happened to me too. I had a 747 doing the moonwalk down the tracks at high speed.
From the first challenge, I don't think that searching the page source for a link to http://www.google.com/search?q=llun+sdrawkcba counts as "real world hacking knowledge."

That's a lateral thinking puzzle, not a demonstration of poor null checking in passwords.
> A valuable target will always get hacked because they'll be specifically targeted. For most of them it'll be from spearphishing, but there's a multitude of ways to attack people even if https is the default.

Yes there are other vulnerabilities, but that's not a reason to fail protect against this one (taking that reasoning to an extreme, all security is pointless because there always are other vulnerabilities). The purpose of security is to increase the cost of a successful attack; https has a high ROI in many cases. In the example you give, spear-phishing is much more expensive than sniffing wifi.
Note that evolution depends on random mutations.

What's the techno-environmental equivalent to random mutations? Remix culture, open-source software, fan fiction, fair use, cross-corporate IP licensing, emergent outcomes of search engine SEO and Google's top ten revenue categories?

If we are going to expose children to technology, should we expose them to open-ended technology with many degrees of freedom and possible innovation, or walled gardens/devices with a limited menu of pre-approved operations?
Google Kills Authorship Reporting in Webmaster Tools
Suspiciously close to when the former CEO left to be with his family...
The future of MIT education looks more global, modular, and flexible
Actually this doesn't really capture the idea properly - you need a "reducerComposer" function that can compose any functions that look like mySumReducer / myTimesReducer (take a memo and a value). You've just manually composed them in myDoublingTransducer, which indeed is just straight function composition. Your reducerComposer needs to function if the first reducer returns nothing (e.g. filter) or multiple values (e.g. flattening a list of lists). One way to think of it is that you are "pushing" values through a chain of reducers, and at any step you might produce 0, 1, or multiple values for the next step.
Show HN: RiteTag – Hashtag grading system
RiteTag offers the world's first real-time hashtag grading system which aids users in modifying their hashtags to nail the ones most likely to get their tweets discovered by topic-opted-in audiences.

Browser extensions provide this goodness within Twitter for free users and for paying users, also in Hootsuite, Tweetdeck, Buffer, SocialOomph, and SproutSocial.
If the monkeys were trained well enough to understand the intent of taking a photo, but not well enough to understand a contract of employment, then creatively I think they would have to own the work.

The fact that the monkey is not trained in pointing a camera is one of the things that might swing it legally away from consideration of ownership by the monkey.
Ah, thank you for this response. It "clicked" for me: Game developers are using the low bits (below significance) as pseudorandom numbers! They are overloading a new function on top of the existing use of floating-point numbers.
You seem to be making two contradicting points here.

On one end, you talk about food safety, and how altering the DNA of a plant means it might not be safe anymore. But in that case, the best thing we could do is to make sure we are always making plants with the exact same genetics: All clones. That's the only way you can tell what you are eating. There are more genetic changes in a naturally bred, not inbred crop than there are in a GMO event vs the untraited plant.

Then you seem to dislike monocultures: If you want the plants to be safe from some phage, nothing better than high genetic diversity in plants, which leads to us really having no idea of how safe what we are eating is.

We either want to treat them as drugs, and make monocultures the way of the world, or we look for genetic diversity, in which case having some BT toxins embedded in your corn plant won't be that bad. Just ask agribusiness to make sure there's at least 8 different germplasms per bag or something like that.
The whole idea of the new Foursquare app is to make recommendations based on where you are and who you follow.

Foursquare needs to know where you are to do that...