skysight-inc/HackerNews huggingface dataset:
Ask HN: How to deal w/ client where the 2 owners have each fired the other?
So I'm dealing with a situation where the partners of one of my clients had a falling out, and now each are claiming to be the true owner of the client company.<p>So now each of them wants me to block the other from accessing the admin side of the website we built for them. I currently have both of them blocked, but that can't last forever. And obviously I'm requesting legal docs, but I'm curious if other people have dealt with this, and if so what they did.
And there are many times more similarly configured *nix boxes in data centers (with data center bandwidth). Google's gigabit service could be an interesting block to search...
I lasted until part 4, when the bit about "three-desk distance" and "three-piece rule" set off my BS detector.

If that actually did happen, for real, in a real company, the rest of the story is going to be too awful to bear thinking about.
Thanks! I just updated it. What apps are you prepping for April?
They do, parent was just wrong, and ignoring the fact that people use "language" colloquially to include the operational semantics, and pretending that only denotational semantics exist.

Dynamically typed languages have a typed runtime, do not a type in the static program text. Hence the commonly used correct qualifiere: "dynamic" and "static".

http://research.microsoft.com/apps/pubs/default.aspx?id=6752...
Engineering is knowledge of understanding and building complex systems.

Software is a complex system and knowledge of building it is Software Engineering.

if you know how to avoid complexity in software (Software Crisis) you are doing Engineering. But the fact that you are building software doesn't make you a Software Engineer.

These are my understandings.
> why is that not a contradiction? because an erlang program isn't "sequential" to start with?

Yes. The point is that in a well-coded erlang program only bottlenecks should be sequential (and the bulk should be concurrent), the goal's tool would be (I haven't seen the presentation so I'm throwing ideas to the wall) to see what dependencies lead to sequences in the system reducing overall concurrency and leaving the developer to handle fixing this part if possible.

It doesn't try to automatically parallelize a sequential program, and it does not start from fully sequential programs in the first place.

(not saying I agree with Joe's assertions, they're quite inflammatory and at a very fundamental level lack solid evidence. I have to say I prefer his milder tone to this new "rha rha" one, though this one may yield more visibility for the language I fear the drama)
I finally got fed-up with unity on my laptop and followed some blog instructions to pull the latest apt version of gnome (3.6) and I have to say that so far I have been pleasantly impressed. Its a paradigm shift from classic window managers that I have cut my teeth on but all in all the polish is so much greater than unity.

congrats to the gnome team, not everyone has bought into it but you've converted me.
That's a consequence of having first class environments - but given that it's rarely used, shouldn't a sufficiently intelligent compiler be able to optimise it away in the common case? I'm sure I read a paper along those lines, but I can't find it again.

On a related note, have you read the riposte paper? http://www.justintalbot.com/wp-content/uploads/2012/10/pact0...
It is too easy to get caught up in the idea that "everything is bad" when all you focus on is negatives. It sets the tone for your day, and alters your overall opinion on things.

A better alternative would be to have a clear, accurate, and wholly representative understanding of the situation. This means focusing on the good just as equally as the bad.

I understand where you're coming from though. I used to think the same thing about not focusing on good, and only directing attention to the bad. It made me feel like I was selective, like I had good taste, and knew things that other people didn't. I even suspected I was a little like Steve Jobs must've been, because surely he had good taste. I got to the point where I was starting to be known as a grumpy guy, and so I took a step back and realized what the negativity was doing to me, my mood, and to those around me. And thats when I realized a complete picture is better than a purely negative one.

With a complete picture, I'm less negative. When I'm less negative, Im more likely to have positive thoughts running through my brain. When I have positive thoughts running through my brain, I'm happier. When I'm happier I'm more productive, people like me more, I talk more, and all of those things lead to me being more successful. It was an obvious choice for me!

Maybe you aren't there yet, and maybe you won't ever be. However, I imagine a lot of people are somewhere close, and I hope they find this comment useful.
This symbol isn't bad, but I like the current Bitcoin symbol. Further I think the Bitcoin symbol should be ADDED to unicode. It's a new currency, it's a new symbol. it's in the vernacular. It should be added to unicode. Rather than co-opt another symbol that might have other uses.

I can understand the reticence to add a symbol because some group of people have begun using it for their nomenclature. That kind of thing happens all the time, after all, bitcoin could go away. I understand that, but exactly how much traction does one need to get? Does 10% of the planet need to know? Does 30%? 50%? When's the tipping point?

Then again. If our new little currency has 3 different symbols and no one can agree on what it should look like. THEN I'd understand not putting it in unicode.

*cough*
I think the "Classic mode" is really the biggest, most game-changing thing here. There are a whole lot of people who hate GNOME Shell (I am not one of them. I'm not a fan either, but I don't think the shell is a step backwards) and are either staying on the outdated GNOME2 platform or hacking on top of GNOME3 to bring back GNOME2.

This, I think, is a great solution which acknowledges the desire/need, but addresses it in a way that embraces newer technologies ("classic mode" is built on GNOME3, in fact), rather than simply rolling back to older dated ones.

Kudos to the GNOME team for this and the entire release!
I'm planning for a career in mobile development, so Objective-C and Java are my two main languages right now.
I worked in Cray's compiler department for seven years. If we couldn't dramatically parallelize someone's code, we couldn't sell a vector supercomputer. Period.

Automatic parallelization is very possible. The problem is tends to be less efficient. A decent developer can often do a better job than the compiler by performing manual code restructuring. The compiler cannot always determine which changes are safe without pragmas to guide it. With that said, our top compiler devs did some amazing work adding automatic parallelization to some awful code.

We inevitably sold our supercomputers because we had application experts who would manually restructure the most mission-critical code to fit cache lines and fill the vectors. Most other problems would perform quite adequately with the automatically-generated code.

What this article lacks is a description of why Erlang is more uniquely suited to writing parallel code than all the other natively parallel languages like Unified Parallel C, Fortran2008, Chapel, Golang, etc. There are so many choices and many have been around for a long, long time.
Freeing the Floats of the Future From the Tyranny of the Rectangle
Google's Knowledge Graph expands into movies on Android tablets
Chris from Vero here - totally agree.

That's one of the big benefits of Vero and the other guys: a typical autoresponder (think Mailchimp) is hard to 'cancel' but it's easy to setup different flows with Vero depending on where a customer is in your product's lifecycle!
This is a false comparison.

ActiveX was technologically flawed: it was specific to Microsoft Windows, and it was insecure.

NaCL is secure and portable, without sacrificing the user experience today.

Indirectly referring to me as a platform shill is unwarranted. The reason that I argue so strenuously for maximizing performance is simply that performance improves user experience.

> I'm deeply reminded of the leaked internal DART e-mail ( https://gist.github.com/paulmillr/1208618 ) where as much ink was expended on marketshare as it was on technical issues.

I've read the whole memo, and I don't understand what your complaint is at all. Google seems to be focused on actually improving the web as an application development target, and making it competitive with modern platforms.
Nice work on all the case studies Ian, Peter, Ilya and everyone at Segment.io (who have I forgotten ?!)

Keep it up!
I call bullshit on the claim that there were no tech-oriented companies. One of them is a platform for automating flying drones. Another is a platform for EE circuit design. These are both pretty nerdgasmic if you ask me. edit: oh and how could I forget Thalmic.
Paul Erdős - Number theory, combinatorics, probability and set theory
Ah yeah, I had to read it a second time to realize what you meant. That's true, that it's a bad example and doesn't make much sense.

I think what they meant to say was that they parallelized the image processing mechanism of the application as a whole.
I've had a similar experience in the past where the achievement system funnels the software developer into a management role. If management isn't the path the maker is interested in, they quickly hit a promotion ceiling.
Thalmic Labs I think is the only one that should not be considered a yawn. The applications are endless, if you have not seen it watch the demo video below, shows some very consumer friendly applications which currently have no equal substitute. Only question is how long until it works that seamlessly?

http://www.youtube.com/watch?v=oWu9TFJjHaM&feature=youtu...
Obtaining Method Caller Information in C#
I have to go with the crowd saying that currency symbols are silly things and should be deprecated. I never liked the euro symbol, it's awkward to write by hand or type with keyboard. And extra awkward with limited/non-standard keyboards such as those found on mobile devices. I usually use just "e", eg. 10e (with or without space depending on context). If I need to be more explicit or formal for some reason then I'd use EUR or just spell out the full name (eg. 10 euros). There is some benefit of having a four-letter name for your currency.

On a related note having your currency symbol as a prefix is also bit awkward as no other units generally are used as prefix. That's why I often prefer to write 10 usd instead of $10.
That's not really true though, or at least not on all workloads: much as you are not "throwing money away" by not pegging your car engine in the red zone 100% of the time, you're not throwing money away by not being at 100% CPU all the time, there are other metrics, values and issues to take in account e.g. a pegged CPU but an unresponsive computer is useless for a desktop, a pegged CPU which can't serve requests because the CPU is pegged because it's swapping like mad is useless for a server, so is a server at 100% CPU when there's no load on it which will just keel over when people start trying to actually interact with it.
Open resolvers are like open WiFi, and open TOR nodes. They can all be misused, but I would still like to see them around in the future. A strict hierarchicy can be abused too, and it's not at all clear which is the lesser evil. I think you can solve a temporary problem created by an abuse of trust with another temporary use of trust... Ideally one could, if they were the target of a flood, control the flow towards them (egress filters) up the stream (the farther the better, which itself assumes a trust relationship) before it has a chance to concentrate.
> founders are tackling “boring” problems that generate cash

And proud of it. "Boring" problems/solutions for you might be a painkiller for someone struggling with it every day.
NaCL already feels like dead-man-walking. It's a tech that is completely controlled by Google and none of the other big guys (Apple, Microsoft, Mozilla) want anything to do with it.
all true. to add' we are in a local optimum where we have a lot of fast non- parallel solutions and the parallel way needs >10 x parallelism. we'll see if we ever get to ubiquitous 100-way parallelism with no need for backward compatibility.
One of the nice features of Bitcoin is that it's supposed to retain its value better than fiat currencies, which are designed to lose value over time.

Keeping that in mind, you could put a non-spacing unicode equals sign under the B like this: B͇. Looks quite nice also.

If you wanted to keep the double slashed dollar/euro/yen theme, you could also use non-spacing unicode to make something like B⃦ or B⃒.
Calvin! But he's deep in Sublime right now so he probably won't notice :)
Yes We Cannabis: The Legalization Movement Plots Its Next 4 Years
The question is tricky, since "software engineer" does not have a universally agreed on definition. Regardless, the profession is not regulated in the same way that other things called "engineering" are, so (in the U.S., anyway) it is legal to call yourself a "software engineer". Of course, whether you have the relevant skills & knowledge is another matter.

In my experience, "programmer" refers to the relatively low-level aspects of software production/maintenance. Someone who deals with relatively high-level aspects is either a "software architect" or a "software engineer". S.A. is oriented toward the high-level aspects of the software itself: overall design, choice of platform, technical standards, etc. S.E. is more concerned with things like gathering and managing requirements, ensuring conformity of documentation and code, project management, etc.

So, obviously you have some S.E. experience, but I would have a hard time calling someone a "software engineer" if they had no experience with software projects involving more than one person.
> At this point in time, sequential programs started getting slower, year on year, and parallel programs started getting faster.

The first part of this statement is plain wrong. Single thread performance has improved a lot due to better CPU architecture. Look at http://www.cpubenchmark.net/singleThread.html and compare CPUs with the same clock rate, where a 2.5 GHz. An April 2012 Intel Core i7-3770T scores 1971 points while a July 2008 Intel Core2 Duo T9400 scores 1005 points. This is almost double the score in less than four years. Of course, one factor is the larger cache that the quad core has, but this refutes Armstrong's point that the multicore age is bad for single thread performance even more.

For exposure to a more balanced point of view, I would highly recommend Martin Thompson's blog mechanical-sympathy.blogspot.com. It is a good a starting point on how far single threaded programs can be pushed and where multi-threading can even be detrimental.

Also, I think that fault tolerance is where Erlang really shines. More than a decade after OTP, projects like Akka and Hysterix are finally venturing in the right direction.
i can't see the attack. where is it?

http://www.internettrafficreport.com
I don't think "there were lots of good companies, but no standouts" is related to "there were no social companies".

The companies I considered standouts in previous batches at Demo Day were not the social ones.

(S12: Eligible, Bufferbox, HD Trade, Keychain Logistics, Plivo, BoostedBoards, ...)

W12: Exec, Farmlogs, Matterport, PlanGrid

S11: Clerky, Parse, Aisle50, meteor, MobileWorks, Sift Science, Science Exchange, Rap Genius)
You can avoid mutating data in C if you want to. People just don't, because mutation is so convenient and fast.
Just curious - why not jump on the grand ideas now? (I would assume the usual reasons.. financial, time, etc.)
Seven-Gendered Organisms Reproduce Gender Randomly
Well, investors bitch and moan because, let's face it, that's how they roll. They also have an incentive to do that in order to lower prices (as long as they all do that, and these guys have a dominant herd mentality gene).

Also, let's not forget that most of them are quite mediocre, to put it mildly, at what they do (http://dealbook.nytimes.com/2013/02/04/venture-capitals-slug...).

Now it seems that their problem is one of an efficient market. If startups play it safe (according to the investors), then their performance has a higher expected value but with less volatility, so the VC can't strike rich on the off-chance. I do think, though, that they might miss the volatility in the market size. Very successful products tend to change the market size, and they might get 10x and even 1000x returns yet.

Anyway, sometimes they bitch about too much risk, and now about too little. You just can't please these guys, but, like Danielle says -- neither should you.
Say what you will, but this is the first YC class in recent memory that has a product I am going to both remember and use when needed: FlightCar.

Personally I'm glad things are looking like the "bubble" slowly deflated instead of popped. And instead of a crash and destruction of wealth, we're left with an urge to pursue viable business models. I think we can point to FB, GRPN, and ZNGA for this (the stocks, not the companies), thanks guys.
Why Computer Talents become Computer Hackers
It's interesting to me how all the major next-gen UIs (GNOME Shell, OS X Lion, Windows 8) are all getting huge pushback from users.
As someone who works under the title Software Engineer, I take it with a giant grain of salt until we're suddenly all taking the P.E. exam and getting our rings. Titles have the same problem all around the industry, people can call themselves whatever they want.
In my a-few-guys-in-one-office location we have a Windows domain server which has also a DNS server to which our computers are connected. I don't have the slightest idea if that DNS server is recursive or not and what wouldn't work if that setting would be changed. Any clever link where something really useful can be found? Wikipedia doesn't help me:

http://en.wikipedia.org/wiki/Name_server#Recursive_query

Thanks in advance!
My guess is that about 10-12m from now we'll see the media talking about one of these companies that "you've never heard of" that is "crushing it" on bookings/revenue.

People tend to forget that the media has little to no memory and is usually staffed by people in their 20s who have little idea of what they are talking about. Obviously not always the case, but using the media (or other bloggers) as your measure of success is a very bad idea.

And in case anyone jumps to this conclusion - no, I'm not saying that anyone in their 20s will have no idea what they are talking about. :)
Bitcoin pretty much requires that everyone in the network be aware of all the transactions, to make sure no one can double-spend. I guess the overhead for using a broadcasted transaction for every T4T iteration would be quite large, but maybe that could work. An interesting thought anyway, thanks for bringing this up.
Agreed. Read Negotiation Genius* and go from there.

(*or any other recommended book)
Techniques and Applications for Sentiment Analysis
This is a really powerful tool, and we use it too with generally good results. Getting feedback is hard, and it's a good way to accomplish this, whilst making users feel good about the company and product.

That said, I do start wondering if this becomes the norm, people will see through this. I already 'feel it' when those emails arrive from the founder, or katie from <insert company here>. It's almost obvious now that these are just automated emails, and it makes it feel much less genuine. A bit like when you know how a magic trick works, it's no longer magic...
Bitcoin is actually designed to be very deflationary, not stable.
Per usual, even if you're using something that isn't Mongo, it's good practice to explicitly cast your untrusted params before passing them to a query.

MongoCollection.where(:name => params[:name].to_s)

That'll result in the literal:

db.collection.where({name: "{\"$elemMatch\"=>{\"$where\"=>\"exploit\"}}"})

rather than the more exploity:

db.collection.where({name: {$elemMatch:{$where: "exploit"}}})

Failing to cast params to strings can result in "injection" attacks in Mongo, even outside of the context of this bug. For example:

User.where(:id => params[:id])

You could pass id[$gt]=0, resulting in:

User.where(:id => {:$gt => 0})

which would match all records in the database.

For completeness' sake, here's a similar exploit vector in ActiveRecord: https://groups.google.com/forum/?fromgroups=#!topic/rubyonra...
I've really enjoyed Gnome3 and have appreciated the quick cycle of updates.

I just looked at upgrading to 3.8 on Debian Sid/Experimental. Looks difficult, but not too bad... BUT gnome-settings-daemon 3.7.92 depends on systemd. Interesting. This may force the conversion from init... And it's systemd v44 (so pretty crusty).
It really depends why you are at 10%. A file server will probably spend the vast majority of its time waiting on I/O... That's not necessarily a bad thing.
I see B minus.
If anycast is a valid use of IP, why isn't source spoofing at the edge? Spoofing can be used for load balancing too.
Is Quora Deceitful or Clumsy? Either Way Their Social Practice is Contemptible
Go allows you to share memory between goroutines (i.e. concurrent code).

It doesn't force you to do so.

In fact, the Go team explicitly tells you not to do that: "do not communicate by sharing memory; instead, share memory by communicating." (http://blog.golang.org/2010/07/share-memory-by-communicating...) i.e. they tell you to use the Erlang model.

But as everything, there are trade-offs. Even Go team uses shared memory protected by locks in some cases (see Go standard library) because it's faster or easier that way.

Every good idea (sharing memory between threads is dangerous and therefore should be avoided) taken to extreme becomes cargo cult programming.

Yes, it is dangerous, but at the same time there are plenty of successful projects that do it because there are programmers that can contain that complexity despite the somewhat popular view that this approach dooms you to failure.
19-year-old inventor finds way to clean up the world's oceans in 5 years time
How the oceans can clean themselves: Boyan Slat at TEDxDelft
http://www.youtube.com/watch?v=ROW9F-c0kIQ
I agree but for that to work "others" need to be people that you believe need/deserve whatever it is you are doing.

That is hard to do if you actively dislike the company you work for.
Realize Document Freedom Day
Doing a DDoS attack in the cause (however questionable the commitment to that cause is let's put it to one side for now) of Internet freedom is a ridiculous strategy. The more this sort of thing becomes inevitable the more TPTB will clamp down on such things and eventually we'll find ourselves on an Internet with far fewer freedoms and it'll all be far more locked down.

Whether you like it or not society tends to react like high-school - when enough people abuse a privilege eventually that privilege gets taken away. You can argue that a free Internet is a right (as some do) but you won't win that argument in the public sphere if that right is used to stop everyone else from getting done what they want to do online.
A very very interesting article, but I was extremely disappointed with the example they gave.

So, there was an error in someone's code which you rewrote without the error and it ran faster? Well done detective...

We need more parallel programs, no doubt, but we need more, better programmers, who are willing to write in compiled languages with low-overhead.
> not many buy online goods in Thai currency

Great idea, there are only 65 million people in Thailand and they will never need to use the Internet.