skysight-inc/HackerNews huggingface dataset:
If the problem can be solved with a finite state machine, you'd be silly to allocate an amount proportional to the input size, for sure. I wasn't arguing against the C approach; when I write compilers, I implement lexical analyzers as state machines all the time. (In my day job, I write C most of the time.) And even when state is in object fields, I copy them out into local variables before doing work, and copy them back in to fields after work, because it's much easier for a compiler to enregister locals than fields.

What I was actually arguing against is the idea that it's a good idea, in a GC environment, to avoid allocations when trying to improve performance. Allocations are extremely cheap in a GC environment; and automatic memory management by a precise copying collector is asymptotically faster than manual memory allocation on a per-item basis. (If you use pools or zones, you can get better manual memory management performance again, but then you lose allocation granularity.)

It's not clear that the code I posted uses more resources. It uses some time from the other processor (i7 920 has 8 logical cores, CPU usage as Windows measures it never exceeds about 17%) but it also completes sooner. The collector also has opportunity to use more optimized zeroing strategies, whereas I coded the manual array zeroing with an explicit loop.
You'd think so, but when all of those objects are (potentially) things purchased by players, it gets a bit more complex than kill it at the root. Also, I believe that (at least at one point), objects could attach scripts to other objects. So the family tree wouldn't work in all cases.

Internally Second Life calls their countermeasure the "gray goo fence" but I can't find many good descriptions of how it actually works online, except some mentions that the restrictions on how much something can "rez" increase exponentially. This link was the best description of it I could find:

http://alphavilleherald.com/2006/09/linden_lab_grey.html

I believe that, since the attack mentioned therein, they've done other things, such as restricting certain scripting functions to trusted people. But folks have been known to find exploits anyhow.

Of course, feel free to correct me if you actually play Second Life. I've only been following news of it from the outside. I've never actually played it.

I've never understood why people are that worried about it with nanomachines, though. We already have gray goo (though much of it, like algae, is green). I mean, most single-celled organisms are capable of that kind of mass replication. And they can be found pretty much everywhere already. I'd be more worried about accidentally engineering a super-virus or whatever than gray goo per se.
tl;dr version: bugfix release for 2.3.6, needed if you use the rails_xss plugin.

Not sure why they didn't just call it 2.3.6.1.
That's exactly it. It's extremely useful to see when your app causes delight or confusion.
The Price of Freemium
Not very complex. It's the backend of a webapplication that we are targetting. Testing is complex because of the way the current design is and that is one of the major driving factors for refactor/rewrite.
Nike Air Force 1 Low Womens White Pro Cyan Sakura
Sometimes an object is exactly the right tool. Also it makes the syntax nice and clear: xyz->foo() is sometimes much clearer than foo(xyz). But yes, wrapping any bit of data into a object is silly. Some things are just not objects. Others make for very awkward objects. My personal favorite is a result of an SQL query that JOINs multiple tables. Do you make each type of joon its own type or do you just dynamically extend the existing type a la JavaScript? I tend to do the latter but that does not work well in a lot of languages and goes against their intent at best.

Lastly, OOP need != class based inheritance. Thus JavaScript is a very viable OOP environment any is very widely used, so no OOP is by no means dead.
Treatment Options For Prostate Cancer | Cancer 24h
Feel free to ignore that article IF you know what you are doing. Joel has a lot of opinions, that usually sound really good, and only some of them have any validity.

For example the Netscape codebase that he complained about went on to become Mozilla, which was the base for Firefox, which has done pretty well. Furthermore there was actually no choice about rewriting the original - once Netscape pulled out the bits that were owned by other companies they didn't have running code. When the only code you've got clear rights to won't run, drastic measures are called for.

For another example, Perl 5 was a complete rewrite of Perl 4 from scratch. The result was a much more powerful, extensible, and simpler language. (Yes, Perl 4 was grammatically much more complex than Perl 5.) Perl 5 has been far more successful than Perl 4. (Some 15 years in the result is creaky, but there are still a lot of people using it.)

On the flip side I've encountered some true disasters caused by the refactoring mantra. When you start refactoring in place, it is like you're living in a construction zone. Worse yet, as you reconstruct it, your opinions on how to write it will change, and you're likely to change how you're refactoring it. After a few generations of this, you get a real mess.

That said, usually refactoring is a better idea than a rewrite. There are a lot of examples where complete rewrites have lead to major disasters. (If I'm feeling snarky I'd use Perl 6 as an example.) And businesses have real cause for concern about spending years rewriting a system, with the end result that they get back to where they started but with more bugs.

Furthermore be warned that the second attempt to write a piece of software is notoriously hard to do right. Look at http://c2.com/cgi/wiki?SecondSystemEffect for a description of some of the pitfalls. So be very, very cautious about starting such an effort.

All of that said, if the code is a big mess 2.5 years in, then you probably have something else going wrong. In my experience good software developers in a good environment don't generally wind up in that much trouble that fast. I'm not a big fan of assigning fault. But odds are good that neither developers nor management are blameless. And if you've got the same developers, and same management, it would be silly to predict a significantly different result.

Still if you want to start a rewrite, the first question is whether or not you have good unit tests. Because if you don't, then it will be much, much harder to be sure that your rewrite is doing the right thing. Furthermore I can virtually guarantee that the act of trying to write tests for the existing system will give lots of opportunities to find significant improvements.

If you've brought it up to the point that you have a good set of unit tests, and you still think that the rewrite is necessary, then you'll be in a much better position to pursue that. And if you still have pushback from management, well, it will be some time down the road from now, improving the code will have improved your skills, and hopefully the economy will be in good enough shape that a better job won't be that hard to find...
On this theme, there was a kind of "code-off" between Rico Mariani (.NET performance architect at the time) and Raymond Chen (The Old New Thing blog, Windows user mode developer).

Rico has a kind of index to it here:

http://blogs.msdn.com/ricom/archive/2005/05/10/performance-q...

It was interesting to see how little Rico had to do from the start to end up with quite a performant application. Eventually Raymond started pulling ahead, but IIRC it was when he started using memory mapped files for I/O.

Here's a summary at version 5 of the unmanaged code:

http://blogs.msdn.com/ricom/archive/2005/05/18/419805.aspx

Version Execution Time
(seconds)
Unmanaged v1 1.328
Unmanaged v2 0.828
Unmanaged v3 0.343
Unmanaged v4 0.187
Unmanaged v5 With Bug 0.296
Unmanaged v5 Corrected 0.124
Unoptimized Managed port of v1 0.124

It was quite interesting.
Sure it helps, but that's not what derefr said. He said that any other type of thinking is a "crutch" and that the ideal of thinking is "thinking in terms of sets, mappings, graphs, combinators, etc".

By the way, "sets, mappings, graphs, combinators" is a pretty strange definition for a set. The element descriptions are vague and some of them seem unrelated to the others. That may be mathematically correct, but it doesn't make for a great argument.
In that case, why bother showing statistics demonstrating correlation unless there's actual evidence to back up some kind of causation?

A high percentage of people with certain characteristics being fired or having poor bonuses is factually not equivalent to those characteristics being the basis for those people being fired.

There are well established relationships between membership of particular groups and academic performance. It is generally not accepted to say that those people are being discriminated against when marking due to their ethnic groups unless there is specific evidence to prove that such wrongdoing has occurred. In fact, generally accepted reason behind the statistics in one not of discrimination, but of high rates of poverty amongst those groups causing other problems.
Well, we already have "grey goo": microbes. They just can't convert everything into more copies of themselves, so it's not like all matter on earth is going to be consumed.

Also, all a nuclear bomb requires is enough fissionable material in a small enough space that the reaction is run away. I see no reason to suppose that a spot particularly rich in uranium (or other such materials) couldn't get squeezed hard enough to explode, or that a critical mass somehow formed by natural processes (particularly those which put it under very high pressure).

I suspect that the reason we haven't observed this happening is because most of the material is not present in concentrated form and because it decays over time.

But just so you know, people have accidentally assembled critical masses by hand. There's no special magic to it, other than getting a large enough quantity of suitable material in the first place (which is really, really hard). You can read some of the scary things that happened here:

http://en.wikipedia.org/wiki/Criticality_accident

They called it the "demon core" after a few people died working on it.
Any version to which there's a ROM avaiable, yes. There's a 2.2 Froyo ROM coming out in the next couple of weeks that's been demonstrated on YouTube.
Ask (meta-)HN: zero points on a submission?
At the time of writing this submission :
http://news.ycombinator.com/item?id=1374169 :
has 0 points. I thought submissions:

a. started with 1 point, and

b. can't be down-voted.

I've checked with another post and the votes don't seem to go down when you flag an item (don't worry, it needed to be flagged) so that isn't it.

So it appears there's another mechanism at work - does anyone know what it is?

Thanks.

(edited for typos and added the comment about flagging)
including field of use restrictions in the patent license was a pretty terrible move from google, I'm sure they had their reasons, but it isn't really a good way to progress the open source codec scene.
Autonomy, Mastery, and Purpose
BAAN Software Users Lists
List2Tech has an exclusive database containing key contacts of BaaN users which are opted in and verified by our experts. The data is compiled using multiple reliable sources that include In-House Database, Opt-in mails, online survey, Product user list etc.
You should take in a couple of lectures of the "Introduction to Robotics" class on iTunes U. http://deimos3.apple.com/WebObjects/Core.woa/Feed/itunes.sta...
The statistics are not the only evidence, they are part of the evidence, and together with that other evidence present the case.

It's like being blindfolded and strapped to a chair and having to decided if something is on fire.

You don't have any direct evidence. But you can smell smoke, you can feel the heat on your face and you hear a crackling noise.

Now none of those by themselves are proof, but together they add up to a preponderance of evidence, and you (the judge) may (rightfully) conclude that there is indeed something on fire.

Either that or someone is going to great extremes to trick you.

Lawsuits like these are rarely decided on absolutes.

Now, the other side can play the same game, they can show partial evidence to the contrary. They can suggest that the noise you hear is made by the wind playing with a plastic bag, the heat is the sun on your face and the smoke smell is because last week there was a fire but there is none today.

It wouldn't take a smart judge very long to ask some follow up questions to figure out who has it right and who is fibbing.

When it's a really close call or when both sides 'have a point' the judge may order mediation.

More likely the parties will then settle because neither will want the case to be decided on such a slim margin because a ruling 'against' could be much more costly than a settlement.
I know I have a cynical view on this, but it's consistent with the way many app developers using Facebook think ... sorry about it, but that won't change with a HN downvote ;)

For app developers Facebook is basically a "whois" for users ... with a single and painless authorization you get access to their name, photo, email and list of friends. If you want to change that, then provide a better alternative.
Thinking about it, you're right.

My statistics brain shouted 'eeek, correlation != causation' but you make a pretty compelling argument with the fire analogy.

Using a programming analogy, you could think of a bayesian spam classifier. The word 'viagra' might not on it's own constitute spam, but 'viagra' 'hard p3n1s' and 'meds' scores enough to be safely considered spam.

Consider my mind changed.
My Favorite Features in Froyo
> When you start refactoring in place, it is like you're living in a construction zone.

That's a real gem. I never looked at it that way but it is undeniably true.
I suspect that's why they are usually contractors, not employees.
Make Your Own Bookmarklets With jQuery
Bayes actually deals with evidence so you're spot on.

Here is an interesting wikipedia article on that subject:

http://en.wikipedia.org/wiki/Evidence_under_Bayes_theorem
In the time of economic crisis, we must look for alternatives
People can obtain a votes-don't-count flag but still submit new stories; if this happens, stories they submit start at 0 points.

How philh could have obtained this flag, I'm not sure, but I believe PG has said in the past that there are several automatic spam-detection mechanisms and they're not all infallible.
I'd guess because he wants to avoid new laws/regulation. Thus the Washington Post.
How to settle Credit Card Debt
Learn How to settle your Credit Card Debt. Bring your toughest credit card problem and get expert help from the best credit card debt program. This is your credit card debt solution.
It's good to hear that Facebook is addressing the privacy issues, but it's a bit like closing the barn door after the horse has bolted. A lot of information which people believed to be private has already been disclosed, and they'll have to live with any consequences which may arise from that. Once trust is gone it's difficult to win back.
It's going to need a power source external to what it eats. Contrast: there already is grey goo built to work on local (not transmitted) energy, and it's called bacteria. It doesn't eat the world, because local energy isn't really that abundant relative to the cost of carrying around the means to utilize it.
If you like that site then you may find the Geograph project interesting:

http://www.geograph.org.uk/

The have high resolution (100m x 100m) resolution photo heat maps of the UK. (Note the amount of green in Scotland, meaning no pics at all of that grid square).
No, that's probably so that they can pay below minimum wage (or, indeed, have the strippers pay the club).
That's good advice everywhere, but one of the problems is that Facebook, via your friends, links together all sorts of things that would otherwise be scattered about the internet and nearly untraceable (unless someone had a lot of time to devote to hunting them down). Also, you can't readily control what your friends post about you. And you can't hide who your friends are.

All said, I don't regret not having a Facebook account. And even so, they do still have data on me, thanks to family members and friends (who have sent invitations to join, etc.).

Unfortunately, I don't think most people will care until they're made aware of exactly how much information is being (and can be) collected and what people can do with it.

Google is the same, actually, in terms of potential for misuse, except that I trust the current leaders more. The worry, though, is how long that will last?
http://www.questia.com/read/57804405?title=17%3a%20Lisp%3a%2...
Depends who starts the game first. The P.M. would subvert the goo, if it got a chance. A running goo swarm might be hard to subvert, though, being very distributed. I suspect the P.M. would take off and nuke it from orbit.
tl;dr : Re-writes are usually a disaster - be absolutely certain of your ground before undertaking one.

========

The major question to ask is "why?" - and ask it repeatedly.

* Why is it a mess?

* Why do you think writing it from scratch will be faster than fixing it?

* Why do you think you can spend the time creating nothing new for X weeks while you re-write?

* Why do you think you will produce something better/smaller/faster/cleaner/less buggy?

Here are some thoughts:

* Maybe it's a mess because the original design was fundamentally wrong and it really can't be guided into the right form.

* Maybe it's a mess because people kept adding features without really understanding how it worked, so their additions didn't fit the architecture/design/structure.

But maybe it's a mess because it's doing stuff you don't yet recognize as being important, so what's there is essential complexity.

Some anecdotes and background.

I've overseen two complete re-writes, and five on-going re-workings. One re-write was a success both technically and commercially, the other was a near complete disaster. Four of the re-workings are still underway and the product has remained live, sellable and profitable the whole time. The fifth is under constant review, but is not a disaster.

So re-writes can work, but the experience is that they usually don't. Go against the advice only if you are certain of your facts.
It's been interesting to watch the Google Maps API as it rode from "The Coolest thing EVER" in 2004 to the non-issue status it holds today.

Back in the day, companies were getting tens of millions in funding to build apps where users could place pins on a map. That says a lot about the hype surrounding it, since that's essentially the app you got when you pasted their sample code into your IDE and hooked it up to a database.

Today, it's just expected that any application you build will have a GMaps implementation somewhere in it, but it's just old-hat. I actually run one of those GMaps-based startups from back in the day, and I haven't kept up on the latest API changes for years.
Flow.io: Lean project management based on kanban. Please review.
I'm getting a 404 Not Found on the zip file link.
Page not found
Sorry, the page you were looking for in the blog
Better Projects does not exist.

Plus I suspect it's a repeat of this:

http://news.ycombinator.com/item?id=1357390
Ah - that's very interesting. Thank you.
Those other people that are doing this right now in their crappy way in a sense already validate your market.

Can you figure out how large they are (alexa, compete), can you make a stab at their conversion rates ? That should give you (with some room for error) an idea of turnover at a given size. Then look at how long they've been doing it, that will give you an idea of the 'runway' you'll need to get to that level (or any intermediate level).

hth
I witnessed a 64KB java method once (compiled). Since 64KB is the limit for a method in a classfile, the programmer was always running into trouble with the compiler. Not very smart.
What you said. Plus, the whole time reading I was wondering what influence her job(s) and employer(s) had on the post.
Ravel's Boléro in Rock n' Roll Music Thoughout the Decades
High-level: I mean something with a steep price tag, with maybe high margins for you. Something like "1000 users, 24/7 assistance" with a really high price. Or something less. However, I think that you should be able to offer also something "high end". Think about restaurant menu design: the highest priced item isn't almost ever bought, but it raises the bar for everyone else. It's a matter of perception. Of course, you must be able to satisfy that high-end request, so if you can't do 24/7 assistance I don't mean you should still add it. :)

Freemium: I agree on your positions. Just maybe think of a small, really small solution that could be free forever. This one is also a matter of perceptions. If you hurry me with 30 days of testing, I think twice before subscribing, since I need to do that at a time when I'm going to have 30 days of test time. Otherwise, I'll just subscribe and I'll test it when I can. Some days of full trial and then put on free is a good solution imho.
I actually do think their privacy controls suck and I think all this is overblown.

They've sucked since day one, they make it steadily worse, but after all, it's no big deal because my facebook page is mostly empty, it's just a shingle to help people find me if they're looking for me (it's not like the whole world reads HN :) ).

Facebook could do a lot better in this respect, and they should default new features to 'off' if their users check a single box, once that says 'default new features to 'off''.

That should do it.

After that they can do a one time announcement of that one checkbox and anybody that doesn't check it will have nothing to complain in 6 months when they roll out new features that affect your privacy somehow.

And they should stop the double speak just say it like it is, we're not stupid.
The OP does have a degree, just not a CS one.
Is this the Google masterplan for travel?
I agree that's reasonable, but that does seem rather more specific than "cultural fit". Something like, "at Google, all the engineers code, and so-and-so wasn't willing to code" seems like a pretty air-tight, neutral reason to fire someone, but it doesn't seem like it's the reason Google gave here.
25 years of AOL, as told in its own old press releases.
Features don't sell software. Benefits sell software. If you have two minutes of my undivided attention, why are you telling me about dragging and dropping when you could be telling me much better my life is going to be if I use your software.
I've been doing some experiments with bloom filters recently, thanks for the link. I enjoy these kind of topics related to information complexity and cryptography (it's my pet hobby).
Modern business plan
Facebook could do a lot better in this respect, and they should default new features to 'off' if their users check a single box, once that says 'default new features to 'off''.

Yes, that would be the #1 best fix to be honest.
Apperian CEO: The enterprise app services environment is coming
I randomly had an OK magazine app installed. I don't remember going to that page, it must have been a link off of Google news.
D?! Which D are we talking about here?
Mark Zuckberg’s Non-Apology: Facebook Screwed up with Privacy. But Keep Sharing
The most nostalgic thing to me about this was remembering that the mobile computing future has been "the future" since the palmtop-devices craze of 1993. And we're still stuck in that future!