skysight-inc/HackerNews huggingface dataset:
I spend a few days in Utrecht, it was lovely, welcoming, and really relaxing. We went kayaking through the canals, one of the best experiences of my life. I'm hoping to make it back sometime soon.
horrible attitude by the business owner. if you are onboarding a customer, does this means you don't give a damn about them?

besides, most people have one password for multiple places, so this client of yours is probably the weakest link in the chain
> more work for your brain to filter

No matter how much resolution and FPS they put into movie screens, your brain still won't have to process more than it does when looking at the real world.

The analogy with BPMs makes no sense. Beats are perceived individually -- they're individually semantic. Exceptions like Moby's 1000 mentioned below aren't exceptions -- just because there are 1000 kick drums per minute doesn't mean the perceived BPM is 1000.
Another common misuse I see is suppressing notices for non-existent array elements, e.g. @$array['key']

Oh wow, that's impressively awful, way more evil than the other common "just turn off notices in php.ini" hack.
How Apple Sold the iPhone, 6 Years Ago Today
SOAP still exists?
India’s “Google Earth” Bhuvan Upgraded: Disaster, Tourism, High Res
Cubehero adds Web-based commits and experimental Bill of Materials
Windows Server 2012 features
I currently work on a client accounting system at a large bank, and have worked at another large bank previously.

While what you described may happen somewhere, the pattern in banking systems that I've seen is pretty straightforward and simple to reason about: a cash flow produces two ledger entries within a transaction and is committed with no concept of distributed rollback.

If there are problems with some sort of subsequent step (e.g. the actual dispensing of cash in ATM or invalid routing instructions in a cross-border payment), the original cash flow is reversed with a reversal of the original two ledger entries -- which is precisely what Ayende saw on his statement.

If a correction is also required in addition to the reversal (perhaps SOME of money was dispensed before an ATM loses power), the correction will be encapsulated with another pair of ledger entries.

(These various cash flows will then typically be placed on a payment bus for further processing by various other systems that perform recon, liquidity management, etc. Again, there is no distributed transaction, just simple double-entry accounting and straightforward transactional message queues.)
Ask HN: Hacking public education
I built a school ERP thats being used by some private schools here in Argentina. The functionalities are pretty common: finance, student attendance, calendar...

We have the possibility to meet with our mayor to show what we have been doing but Id also like to show him something that could significantly improve the education in public schools.

With the software we wrote we can know what things have an impact on student attendance/performance. Im sure there are more things we could do, so Id like to know if you people have ideas or experiencies that could helps us.
Wow. I must say I'm surprised (not in a good way!) by the lack of quality of a number of the comments here. I already knew that PHP isn't the language of choice of cool programmers, but at least they make some sort of informed decision. Some of the comments here ("PHP must die!" and "I use Rails" or "I switched to JavaScipt") really show a lack of understanding about even the most basic concepts of PHP, or programming in general.

I'm the first one to admit that PHP has its flaws, but that's not to say that other languages are perfect, or 'better'. PHP is a Frankenstein's monster, and no matter the quality of body parts you schlep onto it, it will probably still work. Ruby on the other hand is stricter, more consistent. If you're new to programming you can hit the ground running with Ruby (especially with the Rails framework, but if you're new to programming, would you even know how a framework relates to a programming language?). But if you want to go beyond a simple CRUD-app, Ruby poses a lot of challenges that can be hard to solve whereas PHP, well, just works.

My point is: you pick the right tool for the right job. For a lot of people, the right tool is PHP because it's the only thing they know. That's not PHP's fault, now is it? This kind of thinking reminds me of the clash between Apple fanboys and Fandroids: to each their merits, but you can't seriously state the one's perfect and the other one is utter rubbish.

Wether you like PHP or not, it's still:
a) the most popular programming language
b) the programming language with the most job openings
(Source: http://www.udemy.com/blog/modern-language-wars/)
This has to count for something, right?

So please, for the sake of keeping HN a decent place, refrain from using non-argumented statements like 'PHP must die'. You're not adding anything to the discussion and you make yourself look like a fool.

As for the 'vision of PHP': I'm glad there is none. It's the gateway drug to a lot of programmers, and I'm sure that I would have given up on programming if it weren't for PHP. When I look back on some of the stuff I wrote some 10 years ago I just want to cry, but that does show that I've grown as a programmer. It's perfectly possible for people to start out with PHP and evolve to good programmers, regardless of language used. A stricter defined PHP would just kill that.
exactly right. PHP is like the justin bieber of programming languages.
C++ and Beyond 2012: Herb Sutter - C++ Concurrency
Learning things of lasting value
Personally I think PHP has a bad rap for two reasons:

First: Community like HN and such, have lot of good and smart people, however, lots of us are what I like to call "tech hipster", they like to always brag about how they prefer some new-shiny language/framework whatever, as if that means they know more than the average developer. Like an hipster when it comes to some underground-indie-band.

It's pretty fun to see this, I laugh quite a lot TBH. And because of this PHP is looked upon as a mainstream language, like POP music, always number one on the charts, always on the frontpages, but like POP it lacks quality, good taste and so on (what some people think at least).

So, many of us, just hate PHP cause it's POP and using a POP language is cheesy and lame...whatever...and they just hate PHP because they read someone else's saying it sucks. eg: "PHP sucks, because I use X"

Second reason: Other people on the other hand, have really fundamental reasons to dislike PHP, however, I noticed that a lot of these people haven't used PHP since version 4, and they are completely out of the current state of PHP. I don't mean everyone, but most of them do.

I'm not a PHP fan or anything, in my work I have to use it, although I really wish I could use Python, but I can't. So, instead I try my best to use it in the best way I can.

I'm currently using Symfony2 framework, which brings a lot of good web dev practices into PHP world. I'm looking at Laravel as well.

To be, most people still think PHP developers use a PHP as a single file where they put PHP function on the top tof the file and html at the bottom and such...and if you a good developer you can really make PHP shine these days, because there a good tools and frameworks out there.
I support ATM client software for a large Bank. I want to make just a couple of points regarding this article and comments.

First, the article is correct, no distribution transaction coordinator like you would find in a Java application server is going to be involved here. Still, the authorization server maintains a session state and will ensure correct messages are sent to the downstream accounting systems.

Keep in mind, there are many downstream systems. There is at least one direct deposit system for standard bank accounts, often there is a linked money market account, brokerage account, and then there are all the gateways for the acquired traffic like Pulse, VISA, etc. The ATM's back-end authorization system will generally send the same sort of messages to these providers and they are responsible for both authorization and transaction recording.

What shows up on your statement has nothing at all to do with the ATM or the authorization system. It will depend on the deposit accounting system. These systems are probably pretty old; likely COBOL apps using VSAM (flat files) or IMS databases. They are mostly batch-mode systems which means reconciliation happens once a day and everything intra-day is posted to a memo file. These days those memo-file entries can be queried and a web app like online banking can show you entries that have memo-posted. But the next day, what you may see may look a little bit different. The message the authorization system sent would be clear that for example no deposit actually succeeded, that there should be a reversal. How exactly that is recorded and what you see in your statement is another matter and there certainly are advantages to simply posting it as an offsetting credit.
No. Everyone knows that you do not modify the framework files. Hell, everyone knew that you do not touch the framework system files years ago with older frameworks like CodeIgniter, so it makes me doubt that you have any experience with PHP frameworks at all.

You would upgrade your Laravel framework with composer, which runs on Git. And it'll most likely just work without any "Gem hell" that i've come to experience with some other languages.
StatsCrop
"And this is another reason why everyone regards PHP developers as being a tinsy bit crap at developing software."

Replace "PHP" with "Jewish" and would you find that comment of yours acceptable?

Edit: I can only assume that the down voters find discrimination acceptable behavior in this community.
is this the dutch version of billmonk?
Understanding why smarty is a bad thing is one of the first steps to PHP enlightenment.
I'm the exact opposite. Prefer silence or computer lab like noise (keyboards tapping).
Event Calendar for ASP.NET MVC Video Tutorial
A short video tutorial on the creation of a simple and attractive event calendar for ASP.NET MVC.
He exaggerates the costs of running stat. Stat should not cause any disk IO in the hot case and is therefore quite cheap. Especially since he already need to hit the file system anyway to delete the file.

I think most of the work here will happen in memory.
It's called roll-forward compensation transaction. It's still a transaction because at the end your account is still consistent, wrt to its balance.

The bank logs all the operations including the mistake and the compensation (debit) to make your account whole again. The bank is showing you the transaction log which is usually hidden in a database transaction you normally encounter in RDBMS.
‘First’ Pirate Bay Server on Permanent Display in Computer Museum
It's a nice list of tools, altough I still oppose to the term 'Growth Hacking' (I wrote a blog post about this that caught quite a lot of flak on HN).

What I would like to read about is how you would use these tools in a clever way, and to what results. I mean, just using Geckoboard, although admittingly awesome, doesn't make you a growth hacker, right? Growth hacking to me is about using data and combining tools in a clever way.

EDIT: I'm seeing a bare HTML page too, BTW.
In Australia 19 people have been charged for attempting to withdraw the maximum of $2000 per machine from ~10 ATM machines after hearing via twitter/facebook there was scheduled maintenance http://au.news.yahoo.com/thewest/a/-/breaking/14449544/bank-...
this is webgl (at least the mathematical visualizations)
Both my wife and I use it. I don't work with images at all so it works out fine. I now find the slight tint very pleasant.
Preconditions — Part I
I had never heard of it, but billmonk seems to me more for personal use. MoneyMonk is accounting software targeted to freelancers and people running a company without employees (ZZP is the Dutch abbr), including tax reports etc, creating invoices.
Non designer here. I like the overall design, but I do have a few things I'd personally change (nit picky, might not change my desire to click through):

1) The top screenshots coming into foreground is a nice touch, but something seems choppy about the animation. I think it's less to do with the currently hovered image, but what happens to the previous image you had selected. It seems to just drop away in one frame, which looks awkward. Maybe moving it to background instantly, but putting a delay to slide back down would be better; it's difficult to visualize though.

2) Nobody really clicks through carousels anymore, and waiting for them to move automatically is irritating. Not sure what would be better, but consider something else if that information is important.

3) The sticky header at the top is not my favorite thing, and this may just be personal preference. I will actually close a website that does that to me. I may be alone here.
Computing word and phrase similarity
Demo : Computing Word and Phrase Semantic Similarity
JavaScript Unit Testing with Jasmine: Part 1
Facebook Stock Hits $30 For First Time Since July
Report: Digital Advertising Broke $100 Billion in 2012
Trollolol much? The religion of the author (is he even jewish? - I have no idea nor really care) seems fairly irrelevant here. In the context of the article the author is acting as a PHP developer. Therefore his actions will viewed as such and any opinions will on his work will (I assume) most likely become referenced to 'PHP developers'. If there was a seemingly large correlation with being jewish and producing crap software, and this article just made that correlation stronger, then yes I would make that comment.
By that standard, anything may as well be written in a language that eventually results in machine code being executed.
It's fine in Firefox 19 (Aurora), OS X.
I agree with you, it is quite annoying. I found an interesting quote from a PG's essay "Great Hackers" [1]:
"Several friends mentioned hackers' ability to concentrate-- their ability, as one put it, to "tune out everything outside their own heads.'' I've certainly noticed this. And I've heard several hackers say that after drinking even half a beer they can't program at all. So maybe hacking does require some special ability to focus. Perhaps great hackers can load a large amount of context into their head, so that when they look at a line of code, they see not just that line but the whole program around it. John McPhee wrote that Bill Bradley's success as a basketball player was due partly to his extraordinary peripheral vision. "Perfect'' eyesight means about 47 degrees of vertical peripheral vision. Bill Bradley had 70; he could see the basket when he was looking at the floor. Maybe great hackers have some similar inborn ability. (I cheat by using a very dense language, which shrinks the court.)"

[1] [http://www.paulgraham.com/gh.html]
Any modern bank will process deposits before withdrawal, or process them in order of entry. With the introduction of ATMs, the order of operations during the day by the customer could have been:

Opening Balance: 100
Withdraw 50 --> 50
Deposit 200 --> 250
Withdraw 150 --> 100

At no time were they overdrawn. Evil Bank® would have done as you suggested, with the reconciliation at the end of the day being the old paper-based approach of:

Opening Balance: 100
Subtract sum of Withdrawals: 200 --> -100
Subtract penalties: 50 --> -150
Add sum of Deposits: 200 --> 50
Could you link to some good material about why smarty should be avoided? I'm eager to read about it.

We're using smarty at work now, and while we probably won't drop it in this project (too much working code written in it), we might learn something for the future.
Metasploit Rails 2.x, 3.x Remote Code Execution module released
> Nobody really clicks through carousels anymore

Is there a data point to back up this statement? I know I definitely do click through carousels, if I'm intrigued enough about what might be there.
Needing a GitHub account to vote is quite obnoxious. It's no different than those sites which require a Facebook login, for instance.

At least give us the option of using an email address, even if it may mean implementing this voting some other way.
To me, "job security" means having marketable skills. It means I don't depend on a single company. It does not mean I trust that my company will take care of me.

This is easy to say as a software developer because of the nature of our industry. Niche jobs are probably different, but a smart worker would recognize such a job as a personal risk ("if this company tanks, I have no marketable skills") and require more compensation in exchange for assuming that risk.
C++ and Beyond 2012: Herb Sutter - You don't know [blank] and [blank]
That is exactly what I've always though happens. I'd argue that, with ATMs, since you're dealing with software that after a transaction has passed commands hardware to mechanically dispense pieces of paper that there are two different processes going on.

If the transaction passed (the human facing ATM part at least) you effectively withdrew the money, software wise you actually took it. If something happens in the procedure of actually giving you the money the machine informs something the likes of: "hey Mr. Software, something went wrong here, credit that back please". I'd argue that if everything was enclosed into one transaction you could have an edge case in which the "money transaction" passed, the cash was dispensed, something went wrong just after and you get a roll back of everything but the money was still physically withdrawn.

ATMs have cameras, so in the case that the cash was not dispensed, they can manually fix the problem and credit your account in case of a claim (they have the camera footage and the ATM's paper trail). On the other hand if everything was enclosed into one transaction, it might be a bit awkward for a bank to tell you a week later: "Hey man, we made a mistake and we now need to take out 500 dollars out of you account, but be assured we're right about this here..."

Hell people see the bank crediting you something you did not take as good customer service, but I'm pretty sure that people will complain about the bank taking money from them if it's not done at the exact moment where they took the action of taking said money out of their accounts.
Samsung Launches Galaxy S II Plus
I don't get it, have none of you played video games?

I saw The Hobbit in 3D (HFS) on an IMAX screen and I didn't notice anything amazingly different. Perhaps because I am used to playing computer games at 60FPS or more??
I have seen @ suppression on includes, which is probably the worst abuse I have seen.
Oddly, "Modern UI" (ie Metro) isn't in this list. Surely that's what every server admin needs, no?
(I can read it; and, I also like the anchors in the main nav.)

The pricing table seems a little silly, since most of the points are similar across all three price levels... It's a table for the table's sake, I guess.

Also, I personally think the pricing is fairly steep for what you're offering. I actually have an eenmansbedrijf and I spend very little time per year doing invoicing and taxes, let alone per month. Maybe you need different price differentiation, i.e. make it cheap for < 20 invoices / year. That would actually let me ease into it.
Most sites take care of this by not showing you the totals until after you've voted.
Basically, instant shell access to all unpached RoR 2.x and 3.x, for everyone.

This module exploits a remote code execution vulnerability in the XML request
processor of the Ruby on Rails application framework. This vulnerability allows
an attacker to instantiate a remote object, which in turn can be used to execute
any ruby code remotely in the context of the application.

This module has been tested across multiple versions of RoR 3.x and RoR 2.x

From the update here https://community.rapid7.com/community/metasploit/blog/2013/... - https://news.ycombinator.com/item?id=5035023
...naah, any kid can learn Brainfuck in a weekend ..."real" programmers don't even need a 100% Turing complete language to get the job done: choose Malbolge instead! (http://en.wikipedia.org/wiki/Malbolge)
How to Create a Responsive jQuery Image Grid Gallery
>> Your value just goes up too fast in this business for a single company to keep up with. Nobody gives 100% raises every other year, but the market as a whole seems to be quite happy to do exactly that.

A smart company would recognize this and, in fact, give those steep raises. After all, if you're worth $X to the market, you're probably worth more than $X to your current company, where you're already fully trained.
Accountants don't use erasers
Actually, the difference between compiled C++ code, and the newest version of PHP with APC/Xcache is not that drastic, but facebook needs to squeeze out every bit of performance so they can to cut down on the number of servers.

For what it's worth, PHP 5.4(without APC) performed better than both Python and Ruby on that language shootout page: http://benchmarksgame.alioth.debian.org/u64/which-programs-a...
What is the proper way to learn and understand analysis of algorithms?
This garbage right here is what's killing HN. There is nothing "hacker" about it besides the word "hacking" using by "hack" marketers. Btw nice little ?hn in the url, about as nice as your clear lack of web design skills.
By that point, the grid has been rotated 90 degrees, with the real axis on top. This is mentioned in the notes.

I did this because it fits the letterbox layout more in the later transitions.

Edit: I changed it so this is made obvious.
Yep, the "sort only to get head" trick only works fully with selection sort, where it reduces complexity from O(n^2) to O(n) (reduces to a simple max/min). But it also confers some advantage in the case of standard merge sort: the last two sorted sublists will not be merged.

Regarding "repeat", I find it pretty much awesome that it is implemented as a circular linked list with a single element, as in:

repeat x = xs where xs = x : xs

which ensures that it will take up constant space no matter how "far" in it is evaluated.
I love f.lux. It does take a bit of getting used to, but if you wait it out, you'll enjoy it. And, the research they've done on light is quite impressive too: http://stereopsis.com/flux/research.html

That being said, this has been around for a while, so I wonder why it's trending now. They haven't put out any recent updates afaik
We don't sync tags into lists as users can have hundreds of tags but only few lists - their use case is quite separate. At the moment we don't have a list of hashtags but this is something we could do in the future.

Our API is pretty simple so you could also write a small script to move your links in the format you want.
I've been using this for a year or so, both on my computer and on my iPad. It really does reduce the stress on your eyes.
At the moment we don't have keyboard shortcuts because both extensions use browser's extension windows which can't be opened programmatically. We're redesigning the extensions soon which will change this.
“Buffy vs Edward” remix unfairly removed by Lionsgate
You make a good point, but having to give 3 months notice before quitting or firing is not the same as being unable to quit or fire.
A Slight Deficit Can Actually Be an Edge
No. Pinball machines are phenomenally expensive to maintain, and don't yield good revenues for operators. Most arcade operators have little interest in buying new video game cabinets, because the new generation of Amusement With Prizes/Skill With Prizes machines (Flamin' Finger, Barber Cut, Stacker etc) are an order of magnitude more profitable.
Check back in few weeks, we might have something for you...
You missed my point, big time. It was your sweeping comment lumping all PHP developers as being regarded as crap developers I was getting at. You wouldn't make comments like that about any other groups of people and find it acceptable .. or do you find discrimination acceptable?