skysight-inc/HackerNews huggingface dataset:
I'm an agile coach and startup junkie.

TDD/BDD doesn't fit the mold of startups. Here's why:

TDD/BDD assumes you know the problem and are coding to create a solution. In startups, however, you do not know the problem. Sure, you can imagine some kind of customer that might want some kind of code to do something or another. But that's all pipe dreams. You have no idea if method X is useful or not. Sure, you might know if method X meets the requirements of your imagination, or your architecture dreamed up in your imagination to deal with your imaginary customers with their imaginary problems, but you really don't know.

So it's a waste of time. Startups are all about providing value -- not flexibility, not bug-free code, not code you can hang on a wall and take pictures of. Value. If you want to be the guy who can make business solutions happen, the guy that customers can come to with any problem and you can make it all happen, you need to bone up on this stuff. But in the business world, you've already got the money, your job is to make the solution happen. In the startup world, you don't have the money yet. Big difference. Big, big difference.

Look at it this way: 19 out of 20 startups fail. That means that odds are that you will never see this code again. You'd be a fool to spend any more time on it than absolutely necessary. But the math works out completely differently in the commercial world, where most things you write stay around forever.

What I found over and over again with Agile is teams and individuals buying into the marketing/herd mentality of agile and forgetting about the adaptive/iterative nature. Everybody wants to either use a recipe book or just repeat their last project that they thought was really cool. "True" agile means ditching whatever isn't working. Pronto. There are no sacred cows. Everything is on the table.
The lowest salary on the last page is $103,000

It's no surprise that the state is bankrupt
That's because by default it only shows salaries over $100,000.
>> And I prefer my software to remain open no matter who works on it or distributes it. So, I use GPL.

> BSD license accomplishes that just fine. BSD licensed code has been taken, extended, modified and used in proprietary products for decades, and yet the original contribution remains open.

But the modifications might not do, which is what GPL proponents care about. To me, the GPL is like saying "I'll share with you, if you share (your changes) with me".

This is not to say that GPL is better than BSD, or that either is better that a proprietory license; they're each designed to do different things. One might as well argue about whether a car a plane or a boat is the best form of transport.
I've been to many hackathons both in the SF Bay area and in the Sydney area, and I find the Sydney ones to involve much more hacking.

I think many people in the tech scene in the SF bay area are there because they want to get in on that scene, because it's the hot/$$ thing todo, but they don't actually have tech skills - so when they come to tech events, they either find a way to not hack, or they find someone to hold their hand through hacking.

We don't have that problem in Sydney. Basically everyone who is in the tech scene is in it because they truly like tech and have the skills. (Or they will try damn hard to develop the skills themself.)

Generally, I find we have a higher quality of developers at free tech events in Sydney than in San Francisco for that reason. I was pretty happy when I moved from SF to Sydney and realized that I no longer needed to figure out how to filter the pseudo-techs from the Google tech events that I organized.
You lost all credibility by citing techrights (AKA boycott novell).
Hm, getting down to page 2500 of results, we see that civil engineer salaries are going down each year.
The interpreter we wrote in that actually wasn't written for Emacs, it was written for TECO. It was our text editor, and was an extremely ugly programming language, as ugly as could possibly be.

For proof, see the source code here: http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/inde...

It is certainly heavily annotated for good reason.
The main thing that make programming in statically typed languages painful isn't the additional type declarations (which, as you rightly point out, need not even exist in languages that do competent type inference), but with the constant need to wrestle with the type system to get your code to compile at all.

This is made doubly painful by the incredibly obtuse error messages spat out by some compilers, like:

This expression has type ((int * int) * string * string * channel) list
but is here used with type ((int * int) * string * string * channel) list

or even more baroque and confusing monstrosities.

Programming in OCaml made me feel like I'd need to take years of type theory classes in order to feel really comfortable in the language.

In comparison, programming in Lisp is a joy, and very easy.

But, in defense of the modern statically typed languages like OCaml and Haskell, I'll have to admit that once you've finished wrestling with the type system and actually gotten your program to compile, you've probably eliminated whole classes of bugs that might still exist in a similar dynamically typed language program. Not to mention that it will save you the writing a ton of unit tests.
If RSpec is too slow to wait on you could use autotest, which automatically runs tests when a file is saved. There's also a plugin for it that uses growl/libnotify to display the results.
Have fun in California, but when you come back consider taking a hard look at what you can do to make an awesome startup scene in your own backyard, similar to the amazing tech communities in Toronto, Montreal and Vancouver.

The key detail is that social fabric does not weave itself. Toronto's tech scene kicks ass ONLY because of the tireless efforts of folks like David Crow, Leila Boujnane, Joey "Accordion Guy" de Villa and more than I can ever remember.

Specifically: there was no tech community beyond some lame .NET user groups in Toronto when I moved here 12 years ago. Now we're probably over-saturated with opportunities to network and talk about startups... all it takes is effort, outreach and a willingness to help people.

One tip: open your office to visiting hackers. It's a great way to send a clear message to the world that Winnipeg takes the community aspect of startups seriously.
Easier to get laid in college than in SF. And if you do get a startup job, they might cut you first to pay for some new espresso machine or something like that. Employment security is probably non-existent.

I am from another country, so this might be wrong, but SF feels like a playgroud for middleclass valley-dad-pays-for-shit children. Plus lots of homeless people and asian girls in cowboy hats.
You don't know the value of employee X until after he has agreed to compensation and joined the company. If he joins and never completes a single task he is assigned, then yes the founders were 1000x more valuable. If he joints and is able to find 10x more customers than you had before than no he is not 1000x less valuable.
Ruby on Rails Checkboxes, an easy and transparent way
I agree with your points, and I think my skepticism is because most of my exposure to BDD is from purists.

I worked with a developer who was pulling his hair out because he couldn't figure out how to test the SMTP emailing with gmail. We all knew it worked, but he spent a few days figuring out the test cases.

A couple points though:

- Ruthlessly refactoring is huge with TDD. However, I don't think there is much refactoring with bootstrapped, pre-revenue startups. Changes are generally functionality changes.

- Payoff over time. With very early stage, I can imagine that shipping a day early is worth a high interest rate of payoff later.

- Solo hackers don't have to worry about other developers, again at the very early stage.

Overall, maybe TDD/BDD doesn't make sense for very early, pre-revenue startups, but instead should start after funding or product-market fit where you need all these things?
There's also more payoff for your tests over time. The longer your project lasts, the more those tests pay dividends. Even they seem painful no, they are an investment towards maintainable code in the future.

I think this is the most important thing. Tests are an investment, but once you've done them, every time you run them from that point on is free. The amortized cost keeps getting better and better.

Once you pull in a Continuous Integration engine, or even turn it up to 11 and implement continuous deployment, those tests really do pay for themselves. It's just intimidating in the short-term.

Whenever I've gone rogue and thought "Sod it, not today", it's invariably bitten me on the ass twice over the pain it would have been to write them.
Download search engine and directory with Rapidshare and Torrent
"Refactoring breaks a lot of test cases (mostly with renaming variables)."

this seems to be the easiest thing a refactoring tool would handle. Why wouldn't you re-factor your tests at the same time as your code?
I've always thought it ironic how inflexible agile was, at least based on the perception from agile purists I'm exposed to.
What in jQuery is a chain of multiple selectors and filters, can be done using single query in XPath, i.e.

"document()/html//div[class='title']//img[class='icon']/@src"
TDD/BDD assumes you know the problem and are coding to create a solution. In startups, however, you do not know the problem.

I think this is where these posts on HN always end up talking at cross-purposes. "Startup" can mean many different stages. I definitely agree with this. It's one of those things where when I think "startup" I think "they've got a problem, they're solving it" whereas some people read it at that very early stage instead. TDD doesn't suit that stage, because, like you said, you don't even have an idea of what success looks like.
I'd imagine it depends on your parser, and if non-browser JSON gets more prevalent it'll probably be addressed. JSON has no format specified that I'm aware of, but some browser-like parsers will handle things like this:

{"key":"value" // comment
or
{
// comment
"key":"value"

Which I find wholly acceptable (though poorly supported).
A big +1 to that. Most of the successful startups I know have literally 0 tests for the first few years while they iterate.
Judge Rules Against China; 'Green Dam' Suit Heads to Trial
>JSON parsers don't

How could they not? It's JavaScript Object Notation. Objects which refer to sub-objects form a tree.

As to CSS selectors for JSON: the same functionality can exist, because as per above they have literally identical capabilities for representing data. I'll readily admit though, I've not seen one (though one of my side-projects could probably be tweaked to do this; maybe I will).

I have nothing against XML. It's useful, widely supported, and has quite possibly more tools than any other interchange format. The problem isn't with XML, it's with the inconsistencies of (and between) those tools that make the whole interchange part of XML with specs (the only really useful part - it's a horribly wasteful storage format) almost a moot point. And due to legacy systems, it's unlikely to change any time soon, or perhaps ever.

So a clean break is likely necessary to really improve things.
Trend Micro (Titanium) says this is a dangerous site.
What I find is that I teach agile as being results and value driven first, everything else doesn't matter. All the stuff like TDD and BDD are just canned versions of patterns other teams have found useful -- each team can take them or leave them (assuming that they understand them first -- many teams are all too willing to ditch things that they have no idea what they are talking about. Helping teams make these decisions is a big part of coaching)

The fascinating thing is that once I teach that it's all flexible, guess what? People come in and make it all rigid and orthodox anyway. It's not Agile that's the problem, it's the people that, over and over again, just beat the living hell out of agile trying to make it into some rigid 1-2-3 formula for success. No matter how I beg and plead with them not to do this, still they persist. Strange.

I'm left with the conclusion that the basic problem in software development is people's fear of having a truly unpredictable, flexible, and open way of working -- even the agile adherents (especially the agile adherents, it seems). That's simply too much for some folks. They'd rather have a fixed list of things to do each day, even if they know the list is full of crap, they are taking ten times longer than they should, and they are doing busywork things that provide no value. As an example, I've had teams be very successful keeping their list of things to do on post-its on a wall. Then I leave for a year and come back and they've got some kind of spreadsheet monstrosity that has hundreds of items nobody can remember. Nobody likes the new system (except for perhaps the person who runs it, who will also admit that they don't like it, but only in private), it doesn't fit their needs, it's a huge time sink, yet they don't know how to make it stop. They are prisoners of their own need for fixed systems and over-engineering everything. This is because somehow they feel by over-engineering things that they make them "safer". Even though at some level they realize that this is not the case at all. Very strange.
The better schema for JS - should be staticly typed classes/objects.

> though note the pesky X in AJAX...
it also sometimes called AJAJ
A lot of these salaries are in the Corrections department. The US didn't get to be the world's #1 jailer for free, guys!
License Plate SQL Injection
cj, as a fellow 19 year old University student I kind of know how you feel, especially with respect to your friends lacking ambition. If I could graduate now and get into real work I think I would really enjoy it. Some of the classes I have to take, or the work I have to do seems really boring and irrelevant. For example we were required to take a course on Probability which was taught by a terrible prof and through the whole semester all I could think about was working on something real and exciting.

However, I'm studying Computer Science (my program, Business Informatics, is actually half CS and half business) and I'm very glad I chose this program because in one of my first classes I met another student who is just as passionate and driven as I am. We've become great friends and recently started working on some software we hope to work on over the summer and launch.

So I was going to ask if you've considered switching from Neuroscience to CS? Or perhaps consider dropping in on some CS classes? You probably stand a better chance of finding like-minded students there. Who knows, there could be someone just like you eager to work on software and get into startups.

Just my two cents...
"Argumentum ad Hominem: the fallacy of attacking the character or circumstances of an individual who is advancing a statement or an argument instead of trying to disprove the truth of the statement or the soundness of the argument."
The lightbulbs are not readily apparent "like" indicators to me. I accidently clicked on one.

Nicely done, as I'm using the site I'm finding a lot of nice touches. I like the tagging UI. As stated the site is a bit text heavy. Overall very nice job though. Look forward to seeing how it goes. I posted a spark =)

Best of luck.
> My point is that abortion is a form of population control and our government sees it as such, but this rarely gets talked about.

I wonder where is the separation between those that understand the issue at hand (let's say "population control") but know that they will never be able to frame it as such, and those that don't know the issue and are just bouncing around between the allowed frame limits?

In other words this seems to imply there is a group of people in the government that meet and discuss these issues "off-the-record" so to speak, and they all sit around and ponder "How would we curb population growth?". Presumably NSC is doing this as you pointed out.

However I feel there is tinge of conspiracy theory here as well. I can't imagine there be this group of very intelligent and informed governmental group that is also at the same time able to keep it secret and is able to exercise control. They would have to communicate their desires or commands to IMF, World Bank, UN, branches of the US Govt., somehow determine who gets elected and who doesn't etc. It is not impossible but somehow I don't quite believe it yet.
So, this is like a PDF reader for a single PDF, converted into an "app"?
However, I don't think there is much refactoring with bootstrapped, pre-revenue startups.

At our startup, we learned a lot during the pre-revenue stage, and twice realized that our basic architecture was stupid, wrong, and overly complex. (That was my fault, by the way.)

Both times, I took 3 or 4 days and savagely refactored our product, deleting massive amounts of code. When I was done, it was much easier to make changes.

Mind you, in the end, this wasn't enough to save us: We ran up against the reality of a short runway and a long enterprise buying cycle. But our product was very sweet. :-)
Hydrocarbons have more or less the same energy per gram, and sugar and kerosene are both hydrocarbons.
Things like this make me smile on grey days!
I gather you haven't done much jQuery coding. That's equivalent to:

$("html div.title img.icon").attr("src")

The last .attr("src") is purely because jQuery always deals with a node / a collection of nodes.

You can also do arbitrary attribute searches:

$("html div[class~='title'] img[src*='google']")
// "~=" == "contains word" - space-delimited to match html classes
// "*=" == "contains substring"

http://api.jquery.com/category/selectors/
Wouldn't adding yourself be a conflict of interest?

Convince someone else to add you.
The carrots assume the government knows which activities to undertake. A tax allows individuals to figure out what's best.
I can't believe I came across this post. I have been fascinated by a podcast interview with Kent Beck, the creator of TDD. I've been listening to it for two days. The interviewer asks Kent Beck: Is there a time in a start up's life where TDD is inappropriate? Kent Beck responds: Yes. There is a time when you are trying to generate a lot of ideas. You need to think of a lot of ideas so that you can find a good one. In order to do that, you have to work fast- many of the things you build, just won't work out. (Or rather, you lose interest in them) During this phase of a project TDD can slow you down. Those are his words, not mine. Although… keep listening. Kent has quite a bit more to say on the topic.

Find it here (scroll down to the link for "Show #74").
http://startuppodcast.wordpress.com/2010/07/10/show-74-kent-...

Or, subscribe to the show here: http://itunes.apple.com/podcast/the-startup-success-podcast/...
Look for episode 74.
Whether this "Promise" is actually worth much depends on much more than just the question of its legal legitimacy, as you'd have learned if you actually bothered to read the articles.

But, as far as that particular issue is concerned, as the techrights article points out,

"It may become legally binding ... if used as a challenge in court. But of course it does actually need to be tested in court /first/."
Why Nobody Can Match the iPad’s Price
I sometimes have a difficult time writing and passing tests...

That sounds like a design issue - if you don't design the code to be testable you'll probably find it hard to test. Even programming in the small e.g. at the method level, you should be thinking "how will I be able to test this"?
Startups 1997-style, funny: "Talented Developers Wanted"
I'm in the program and these taxes are not an issue for anyone. Don't let it discourage you from applying. The business environment is good. And consider that:

* companies are taxed on profits not revenues (!!)
* legitimate expenses made to foreign companies are not subject to the fees you describe
* income earned abroad by new residents to Chile is not taxed for three years (!!!)

Practically, start a foreign-incorporated business to collect payments internationally and start a Chilean company to hire local staff and cover development costs in country. If your Chilean business makes such an embarrassing amount of money that you cannot spend it, then congratulations! You can spend some of your profit to restructure.... :)
Considering how many hours I've saved not having to "debug" after drinking the TDD koolaid, my answer is no.

The problem I notice, though, is many people will either TDD the "right/official" way or not at all and that's a false dichotomy. If a particular type of testing is slowing you down or causing you to be less productive, don't do it! But stick with the tests and processes that do allow you to be quick but without abandoning testing in favor of the old "code and pray" approach.

For example, on a recent project I built it almost entirely in the models only (using TDD) before even hitting controllers or views. It only took a few days to tack those on at the end and I didn't bother doing any testing of them beyond some cursory "make sure the site generally works" integration tests. (I see the value in controller and view tests but.. well.. they'd have slowed me down and the models were far more important.) In a contrast to that, I have a 5+ year old project I retroactively added lots of integration tests to. The models are untested but at least I know if a change screws the app up in a big way because so many different use cases are tried in the integration tests.

TLDR: With TDD, stick with the stuff that works and tone down the stuff that doesn't. Don't feel you have to do things the official/"cool" way - come up with your own processes.
Side rooms are a saving grace. I went to a Techcrunch hackathon (and I shall never go to another) where we were told that nobody could use the side rooms - we all had to sit in the noisy main hall area. Obviously the PR opportunity was the primary motivation behind the hackathon.
I picked up a couple of travel books at my local 20%-off going-out-of-business Borders today. Hefted them in my hand. Then looked them up on my iPhone and found that their Kindle/iBooks price was 50% lower than the Borders retail price.

So I left the store with no books, but with a pretty good idea of why Borders is bankrupt.

A wistful day to be sure. I remember twenty years ago, when the arrival of Borders in my midwestern city was akin to a religious experience.
OOOH I was so wanting to tell the OP

What is so hard about this???
//assume some sorta IEnumerable derivitive
IEnumerable<foo> bar = new IEnumerable<foo>() { obj1, obj2, obj3, obj4, ...};

var accumulator = bar.TakeWhile(x => x.property == someValue);

but then I saw the .NET 2.0 timeframe.

But even with .NET 2 you had generics which makes things pretty easy. But then again, he/she is ranting so I should just ignore him/her.

It doesn't matter what language you are using, if you cant write something that is legible to solve the problem, think about it more.
@pragdave recently gave a keynote speech at the Magic Ruby conference and made a big point of saying "Agile is not a noun." Agile isn't about subscribing to practices and then writing everything in stone. It's about doing that works for you situation.

So don't blame 'Agile' for being inflexible, blame the people who are using it for not actually being it.
Whoa. A college football coach is the highest paid california state employee? Seems like california is focused on the wrong things.
This was very obviously a rant where the author was in a bad mood. I think some hyperbole can be forgiven.
You seem to have read an article about someone complaining about C#.

The article I read was about someone complaining about not being allowed to use all the features in the language selected for the project.