Carlfish's comments

Carlfish | 14 years ago | on: How my comment on TechCrunch got me a Facebook Cease and Desist

Not entirely accurate (IANALTINLA also). It comes down to the commonly confused distinction between the burden of proof and the standard of proof.

"Proof beyond reasonable doubt" is the criminal _standard_ of proof, while the standard for civil cases is generally stated as balance of probabilities (but is a little more complicated than that)

The _burden_ of proof, on the other hand, is pretty much the same between criminal and civil cases. It's the plaintiff or prosecution's responsibility to prove their case, and if they can't do that to the standard required by law they lose. The defendant is under no obligation to do anything more than point out the flaws in the plaintiff's case.

Sometimes, though, the burden of proof shifts the other way. This usually happens when the defendant offers some kind of "affirmative defence". For example, if a defendant wanted to argue that a (civil) contract or a (criminal) confession was invalid because of duress, it would be up to the defence to produce evidence that this duress occurred. They could not just float the possibility of duress and force the prosecution/plaintiff to produce evidence that disproves it.

Carlfish | 15 years ago | on: Why Java folks should stop looking down on C#: differences in similarities

As a long-time Java developer, I absolutely abhor the assumption that everything can be safely subclassed and overridden unless it is explicitly declared as final.

Implementation inheritance breaks encapsulation. It creates an intimate entanglement between the internal implementation details of the super- and sub-classes. Every time you extend a class or override a method that wasn't explicitly and carefully designed to be subclassed and overridden safely, you are _writing hacky code_.

There are, of course, places for hacky code. If you understand why something is hacky and feel it's a worthwhile trade-off then by all means you should be able to do it. Java, though, encourages people to pepper their code with such hacks before they have learned why they shouldn't.

Carlfish | 15 years ago | on: A common bug in published code

Findbugs, the popular Java tool I linked to in another comment, explains the bug like this:

"A random value from 0 to 1 is being coerced to the integer value 0. You probably want to multiple the random value by something else before coercing it to an integer, or use the Random.nextInt(n) method."

That's about as good an explanation as you'd get from anyone.

The way I see it is this. Simple bugs like this happen because _human beings are flawed._ All it takes is a momentary lapse of concentration and you've put the cast in the wrong place in a method you don't write a test for because you're in a hurry, and all it's doing is generating a random number with a standard API so why bother? (Or it's something you wouldn't normally even test for, like assuming something is re-entrant when it isn't)

We're inevitably going to make a certain number of mistakes a day, and it's our duty to put systems into place that catch those mistakes before they cause any more damage than they should.

Carlfish | 15 years ago | on: Angry Nerds

I work there. Half the office wants one of those tshirts.

Carlfish | 15 years ago | on: $10,000 algorithm competition: predict commute times on a Sydney freeway

NSW has been suffering for the last decade from a totally clueless government, and an opposition totally owned by its fringe right-wing. Labor couldn't govern their way out of a paper bag and the Libs figure that instead of drifting to the centre to meet the voters, all they need to do is wait until the voters give up and move to them.

NSW doesn't have any money, so they can't do any major roads project without farming it out to private investors and putting up a toll booth to pay for it.

This has led to some really bad policy decisions. For one thing, most of the new roads are bypasses that allow drivers to skip congested areas like the middle of the city. The toll then discourages people from using the bypass and the city remains clogged. Then to bail out the investors, the government closes lanes on the free alternative routes to force people to take the tollway.

There was an amusing couple of years where you could get away with not paying tolls just by driving through the electronic gate and ignoring the infraction warnings. Because the RTA was doing all the work of collecting the money but not getting to keep any of it, they didn't care enough to follow up people who didn't pay.

Carlfish | 15 years ago | on: Oracle: Google 'directly copied' our Java code

I don't think Oracle particularly cares about the Java brand.

The Java brand was important to Sun because in recent years its value had eclipsed the value of the Sun brand, to the extent that they even renamed their stock ticker 'JAVA'. They poured resources into Java and Java-related projects because it was all that was keeping the ailing company relevant.

Oracle has no such problem with its brand. The company hasn't a great reputation as a philanthropist, and you have to look at what Oracle can get out of its ownership of Java. Those things are (a) exploiting the Intellectual Property, and (b) maintaining support for Oracle's own Java products.

Being a 'good steward of the language' is only important if it serves one of those two goals: i.e. if it improves Oracle's products, helps existing paying Java licensees, or creates opportunities for Oracle to license Java IP.

I'm not sure this is a healthy way for a programming language to be maintained.

Carlfish | 15 years ago | on: "Calling oneself a C Programmer is like saying you're a Hammer Carpenter"

I could think of many salient differences between hammering nails and programming in C, but the simplest one is:

Its impossible to do any kind of real carpentry job to completion using only a hammer. Thus, a 'hammer carpenter' is derogatory because you would not expect them to produce anything useful. C developers produce, and continue to produce complete, useful software.

There are also things like "A hammer carpenter doesn't have to spend a significant amount of career development time keeping up with the state of the art in nail compilers or wood instruction sets." C programming is a specialisation in a complex field, and such specialisations often deserve their own title.

Calling someone a neurosurgeon is like calling them a hammer carpenter. Everyone should be a GP.

A previous commenter mentioned 'helicopter pilot'. You wouldn't see a topic saying "Calling someone a helicopter pilot is like calling them a hammer carpenter." It's likely that a helicopter pilot has experience flying fixed-wing planes, but their _value_ comes from specialising in a particular craft, so they're likely better at it, and that's what they advertise themselves as.

Carlfish | 15 years ago | on: EFF Review of Verizon and Google's Net Neutrality Proposal

I think you're being a trifle naïve.

Verizon have consistently used the "we're blocking illegal filesharing" line as justification for throttling BitTorrent traffic. Under the Google/Verizon deal, the FCC would have no power to say "No, actually BitTorrent is legal traffic", and it would be necessary for individuals to complain about the throttling, and most likely in the process be asked to demonstrate their particular use of BitTorrent was legal.

With the maximum payout capped at $2m, there would have to be a lot of BitTorrent users with significant grounds for complaint _and_ a carefully squeaky-clean file-sharing record before it cost the company more than they were saving from throttling the traffic in the first place.

Carlfish | 15 years ago | on: Your Code Sucks

Speak for yourself.

Women are a significant minority in software development. This in itself means that a woman's experience of the field I work in every day must be different to mine. You're more likely to learn something new from someone looking at the same things you do from a different perspective than you are from someone who shares your POV and is more likely to just tell you things you already know.

The blog still has to be interesting, but "girldeveloper" is as good a hook as any.

Carlfish | 16 years ago | on: Resetting PHP6 (or: Unicode claims another victim)

One advantage of UTF-16 is that unlike UTF-8, very few characters you encounter in Real Life invoke surrogate pairs. So for the cost of a one-bit flag per string you can assume two bytes per character in your string operations for the overwhelmingly general case.

Carlfish | 16 years ago | on: Ray Kurzweil Responds to the Issue of Accuracy of His Predictions

"Kurzweil's defense of "computers commonly embedded in clothing and jewelry" as applying to iPod Nanos embedded in pockets is a bit of a stretch, but in practicality not far at all."

It's very far indeed. You're taking a specific prediction about how we are going to use technology and turning it into a prediction that technology will get smaller and more portable.

It's a technique shared by fabulists, fortune tellers and cold readers:

"I see a brown dog called eric..." "Well, we had a dog but he was a German Shepherd..." "Yes, that's it, I knew I saw a dog!"

Carlfish | 16 years ago | on: Spolsky: Does Slow Growth Equal Slow Death?

While your analysis of why we're doing the $10 deal is spot on, we only introduced it a couple of months ago so any benefit we might see is still in the future. Previously the cheapest edition of JIRA was (if I recall correctly) $1200.

Carlfish | 16 years ago | on: Spolsky: Does Slow Growth Equal Slow Death?

I work at Atlassian and I kind of assume it's us, partly because everyone else around the Internet seems to think he's talking about us, but mostly because the Fogbugz 7 manifesto talked in all caps about people threatening to "GO OVER TO THE AUSTRALIANS".

There's a good chance he isn't, though, because the company described in that article doesn't really bear a great resemblance to Atlassian.

The business models of Fog Creek and Atlassian are far more alike than they are different. Both companies are developer-founded, private, non-VC funded and growing "within their means". Both aim for bottom-up adoption rather than selling top-down through CIOs, and (although this is apparently changing at FogCreek?) neither have a traditional sales team. Both even started off writing an issue tracker (JIRA, FogBugz) then followed up with a content management app (Confluence, CityDesk).

Before this year we didn't have a growth strategy beyond "sell lots of software, and use the money we get from that to hire more people to make more software and sell that." We've recently got (temporarily) a little more aggressive about hiring because we figured the GFC was a great time for a profitable company to snaffle up any good people who were at loose ends, especially when some of our VC-funded competition were being forced by the same circumstances to lay developers off.

So yeah, we're hiring. http://www.atlassian.com/32/ :)

page 1