achievements.unlocked();
January 19, 2012 8:04 PM   Subscribe

Gamification strikes again: Microsoft Visual Studio now has a plugin that allows you to earn achievements while you code. The full list of achievements ranges from ones that reward repeated use of Visual Studio features to ones that reward poor coding techniques. No word on when they'll be incorporated into Xcode and Eclipse, but be patient.
posted by barnacles (78 comments total) 20 users marked this as a favorite
 
Ooh, is there a reward for contributing to a GPL project?
posted by Loudmax at 8:06 PM on January 19, 2012 [11 favorites]


Apparently this was based on Reddit comments from last year. In the current thread over there, Jeff Sand weighs in:
Hey there,

My team at Microsoft made this add-in. We are the Channel 9 Team (http://ch9.ms) and a number of us are huge fans of Reddit. When we saw the thread on Reddit last year asking about what if VS had achievements, we knew we had to do it.

This is a beta, we are looking for suggestions on what type of achievements should we have. We want to mix up the fun and the learning. Some folks have commented that we shouldn't have any that reward bad coding practices. Others say that is part of the fun.

We'll pay attention to this thread and look forward to seeing what you have to say. We can add new achievements dynamically.
I think the whole thing is quite amusing.

posted by Malor at 8:08 PM on January 19, 2012 [3 favorites]


oops, "current thread over there" was supposed to be a link, but I didn't proofread properly. Sorry!
posted by Malor at 8:10 PM on January 19, 2012


I want an aggregator for all of my achievements. And then I want achievements in that aggregator. Then I will have achieved achievement nirvana.
posted by pazazygeek at 8:12 PM on January 19, 2012 [4 favorites]


I've totally written an enum with more than 30 fields in c: enum error_code
posted by lucasks at 8:13 PM on January 19, 2012 [2 favorites]




What do I have to achieve in order to be awarded a BFG?
posted by Chocolate Pickle at 8:21 PM on January 19, 2012


earn achievements while you code.

Didn't crush a 32CPU/512GB RAM SQL Server with your fuckheaded code?

ACHIEVEMENT UNLOCKED!!!!

No, I'm not that bitter. I'm bitter100.
posted by eriko at 8:21 PM on January 19, 2012 [3 favorites]


Will the devs get an achievement if the app goes a week without needing a security update?
posted by I love you more when I eat paint chips at 8:23 PM on January 19, 2012


This just got the complete and undivided attention of every young hacker who's just learned about recursion.
posted by Hardcore Poser at 8:24 PM on January 19, 2012 [1 favorite]


Add 10 regions to a class. Your code is so readable, if I only didn't have to keep collapsing and expanding!

Oh regions, I both love and hate you.
posted by Ad hominem at 8:25 PM on January 19, 2012


My son gets stickers at school for attendance. I must protest this gamification of school!
posted by KokuRyu at 8:28 PM on January 19, 2012 [1 favorite]


There's an achievement for using a Goto statement, which I found amusing.
posted by hellojed at 8:32 PM on January 19, 2012


from ones that reward repeated use of Visual Studio

That is a bit of a mischaracterization. Three startup projects means three separate projects that run when you hit f5. Not creating a startup project 3 times or something.
posted by Ad hominem at 8:32 PM on January 19, 2012


Huh. I thought the implicit achievement of programming is when you run your program and it works.
posted by usonian at 8:35 PM on January 19, 2012 [4 favorites]


Three startup projects means three separate projects that run when you hit f5.

Nobody has that much RAM.
posted by eriko at 8:38 PM on January 19, 2012


to ones that reward poor coding techniques.

You used C#

ACHIEVEMENT UNLOCKED!!!!
posted by eriko at 8:39 PM on January 19, 2012 [2 favorites]


What's necessarily so horrible about an enum with 30 fields? How else should one code, say, the instruments for MIDI (of which there are a lot more than 30)?
posted by Flunkie at 8:41 PM on January 19, 2012 [4 favorites]


Add me to the "why call out enum love" brigade.
posted by aspo at 8:45 PM on January 19, 2012


Well in C# you can use an enum as a bit field by setting the flags attribute. I assume that is what they mean by an enum with 30 fields. They don't mean 30 possible values.
posted by Ad hominem at 8:46 PM on January 19, 2012


FlagsAttribute for using an enum as a bit field. 30 would be a crazy amount of combinations.
posted by Ad hominem at 8:50 PM on January 19, 2012


yeah but where's the narrative
posted by This, of course, alludes to you at 8:51 PM on January 19, 2012 [1 favorite]


I don't see the achievement saying anything about bitfields. Just enums.
posted by Flunkie at 8:52 PM on January 19, 2012


Microsoft Visual Studio ...............

The only way to win is to not play.

/gdb for life!
posted by benito.strauss at 8:59 PM on January 19, 2012 [4 favorites]


How else should one code, say, the instruments for MIDI (of which there are a lot more than 30)?

In seven bits?

Eight bits if you want to also encode Neil Peart's drumkit.
posted by eriko at 9:00 PM on January 19, 2012 [2 favorites]


METAFILTER ACHIEVEMENTS

5 Bucks For 2 Cents
Post a comment on Metafilter
Uncharted Waters
Make your first FPP
Metafilter's Own
Be mentioned in a FPP
We Are Legion
Post an anonymous Ask Metafilter
Down The Memory Hole
Have a comment deleted
Essayist
Post a comment with more than 500 words
Logorrhea
Post a comment with more than 750 words
WALL OF TEXT
Post a comment with more than 1000 words!
Everything To Everyone
Create a new Metafilter tagline
Bon Mot
Get 20 favorites on a comment with less than 20 words
Catchphrase
Get 50 favorites on a comment with less than 20 words
Friendship Is Magic
Post a thread in MetaTalk
Causing A Stir
Have one of your contributions be the topic of a MetaTalk thread
Debutante
Attend a meet-up
To See And Be Seen
Attend 5 meet-ups
Day Trip
Attend a meet-up more than 50 miles from your home
Jet Set
Attend a meet-up in another country
Behind The Curtain
See the admin control panel
Noteworthy
Have a contribution featured on the podcast
Good To SEO
Post a self-link
SEO In Hell
Post a FPP with a self-link, which is then deleted
Forgive Me
Parody a certain poem
Sarcasm On A Bun
Use the hamburger tag
Back From The Dead
Wait at least 3 months between posts
Acolyte
1 year on Metafilter
Journeyman
2 years on Metafilter
Old Hand
5 years on Metafilter
Wizened Greybeard
10 years on Metafilter
posted by clorox at 9:03 PM on January 19, 2012 [157 favorites]


You ever see anyone call an enum or an enum value a field before? People do call bit fields, fields though. Think about what happens if you are using int32 and you have 32 flags. 30 is getting awful close. Hence the "don't try this at home"
posted by Ad hominem at 9:05 PM on January 19, 2012


OK, you're probably right. I read "fields" in the achievement as "values", having been unfamiliar with this C# peculiarity, and then after you described it, went back and read it again without even realizing that I was still reading "fields" as "values".
posted by Flunkie at 9:10 PM on January 19, 2012


"You used C#

ACHIEVEMENT UNLOCKED!!!!"

It's so easy to spot the people that don't actually know anything about programming languages but like to talk shit anyway.

I currently write mostly scala, and even odersky gives c# plenty of props.

Its generics implementation is still significantly better than java's, for example.
posted by flaterik at 9:22 PM on January 19, 2012 [7 favorites]


Can I pay another $5 to have clorox's list implemented with corresponding icons in my profile? What about a widget I can put on my site with those icons? Gonna need to set up some jQuery Growl-esque notifications for this too.

Thanks.
posted by june made him a gemini at 9:22 PM on January 19, 2012 [2 favorites]


Just out of curiosity, why is using 30 enum fields a bad thing. I suppose you could argue if you have that many you might want something more flexible. But suppose you really do have a situation where you have 30 different things that need to be distinguished. Like writing an HTML parser and you have enums for each tag?

The alternative might be something like using 30 different classes, but suppose there are only two places in the code where the things need to be handled differently, and those two things are in totally different places. Those things would probably work better using a switch statement on a field, rather then calling a virtual function on a class. They would take a lot less time to code, use fewer lines and probably run more quickly.

(So in the HTML example, you could use the enum as a key to look up whether it's inline or box layout by default, or the rules for whether or not internal text should be parsed, which is not the case for <script> or <textarea>)

Now you want to know something crazy: In Java, enums are all static instances of a class. So you can actually put 30 different fields in an enum, and each member of that enum will have different values for those fields. In that case... you really should be using seperate classes (IMO)
posted by delmoi at 9:24 PM on January 19, 2012 [1 favorite]


I currently write mostly scala, and even odersky gives c# plenty of props.

Its generics implementation is still significantly better than java's, for example.
C# sucks because it's good. It makes Java programmers Jealous. We've been waiting for closures for like five years or something. And while I haven't used visual studio in years Microsoft's IDEs have always been really good.

But, if you use it you're going to be making windows only stuff. There's Mono, but who uses that?
posted by delmoi at 9:28 PM on January 19, 2012


Yeah, the language and dev environment are AWESOME, but the tools and libraries and runtime environment... less so. Especially for builds... I miss a real run-time type system and many things about the debugger, but .sln files not so much. Maven can be pretty happy-making.

The people I work with now are all largely ex-.net, but not because they didn't like the language, but just because the tools to support what we're doing don't exist in .net-land.
posted by flaterik at 9:38 PM on January 19, 2012


Yeah plenty of great things about C#. I would not want to go back to a language with out LINQ and I am really looking forward to Await and Async in 4.5. It will clean up a lot of my code significantly.

Anyone who has any interest in c# should check out lesser known C# features.

Just out of curiosity, why is using 30 enum fields a bad thing

It is a "peculiarity" of c# that you can use an enum as a bit field. The reason it is dangerous to have 30 fields or bitmasks is that by default an Enum is stored as an int32, 30 fields is dangerously close to the max of 32.

I am not saying at in c# an enum can only have 32 values. I am saying if you choose to use an enum as a bitfield, and use the default 32 bit integer you can only have 32 fields or bitmasks.
posted by Ad hominem at 9:40 PM on January 19, 2012 [1 favorite]


Personally, I think the "Submit to TDWTF" plugins are a better idea.
posted by Pinback at 9:42 PM on January 19, 2012 [1 favorite]


Its generics implementation is still significantly better than java's, for example.

This is not much of an achievement.
posted by stp123 at 9:58 PM on January 19, 2012


Java belongs to Oracle now. It's doomed.
posted by Artw at 10:03 PM on January 19, 2012 [1 favorite]


Java belongs to Oracle now. It's doomed.
I'm betting google's creation of Dart and Go have a lot to do with Oracle. They are definitely fucking up Java in order to try and squeeze some value out of it.

In fact, it illustrates how software patents are actually causing the industry to regress in a way. Rather then using a bytecode stack people are going back to plain old compiled code (Objective C/Go) or interpreted languages (javascript/dart)

Although with all the advancements in JIT interpreted languages instead of bytecode might not be that bad. Manipulating a string of code is probably a lot easier then manipulating bytecode.

A lot of the Java patent bullshit revolves around it's security model, which is actually pretty innovative. You can do things like run code in a more restrictive environment then the one you're currently running in, so it allows downloaded code to be run (in theory) safely.
posted by delmoi at 10:16 PM on January 19, 2012 [2 favorites]


I didn't know VS had explicit folding via "regions", so one google later:

#pragma region NAME
...code...
#pragma endregion COMMENT

Good lord, that's hideous.
posted by and for no one at 10:29 PM on January 19, 2012 [2 favorites]


There's an achievement for using a Goto statement, which I found amusing.

Oh, is it called "Considered Harmful?"
posted by JHarris at 10:30 PM on January 19, 2012


"goto" is so tame. One of my old bosses double dog dared me to use a setjmp/longjmp instead of returning normally through eight levels of stack that included callbacks through libraries we didn't have the source code to.

Now *that* would have been harmful.
posted by Tell Me No Lies at 11:03 PM on January 19, 2012 [1 favorite]


Good lord, that's hideous.
It's not really that bad in the editor, and it's actually a really nice feature. Although it probably encourages people to write longer source files. the thing is, you can basically minimize blocks of code you don't need, focusing on the aspect of your file that you actually need to work on. It reduces visual clutter by a huge amount.

In eclipse you can fold structural regions, like inner classes and functions but if you have like 4 or 5 functions dealing with one aspect of your code, and 4 or 5 dealing with another, you don't necessarily want to put them in separate inner classes.

A useful example might be hiding all your one-line getters and setters, something like that.
posted by delmoi at 1:18 AM on January 20, 2012


Pfft. Noobs. Just use Python:

>>>import achievements

ALL ACHIEVEMENTS UNLOCKED!
posted by Mr. Bad Example at 1:42 AM on January 20, 2012 [2 favorites]


I liked those from the reddit thread
  • Careful Dan: You use save more than 2-3 times per second
  • Extra Careful Dan You save more than 100 times in an hour
  • Don't worry. It's our little secret: Develop/open a *nix or Mac OSX project in Visual Studio
  • Even we're not that brave: Open an .html file in Visual Studio that was generated by Microsoft Word
and from another comment
  • Yoda man: Reverse conditionals, use you will.
posted by motdiem2 at 2:14 AM on January 20, 2012


Skipping a bit to post this:

Ladies and Gentlemen, please meet Ribbon Hero, and Ribbon Hero 2. Now you to can improve your Office skills while having fun.
posted by Hello, I'm David McGahan at 2:38 AM on January 20, 2012


Achievements are the free-toy-in-box of the 2010s. Even my Kobo e-book has achievements, and I admit it's one of the reasons I bought it (I'm a game designer, I wanted to see how they'd implemented the system, also quilted back mmm). Like Minecraft's achievements, they're a mix of tutorial-oriented rewards for learning how to get the most out of your device, a few 'what the?'s and a handful of things that are purely there for over-achievers and collect-the-setters.
posted by Hogshead at 4:00 AM on January 20, 2012


INTENTIONALLY DISRUPTIVE METAFILTER ACHIEVEMENTS

Not Sharp Enough Yet
Post the same link in five deleted MetaFilter posts, and one MetaTalk post, within a week.
The Sweet Smell Of Victory
Create a MetaTalk post naming an active user account which is then disabled within 12 hours.
Missing: One Hand
Disable your account within 12 hours of being named in a MetaTalk post.
Baby With The Bathwater
Create an FPP which receives over 50 favourites before being deleted.
That'll Learn 'Em
Remove all favourites ever given to an individual user within 12 hours of being named in a MetaTalk post by that user.
But Now How Will I Get Rid Of It?
Have an Ask Metafilter question deleted, with the words 'felony' and/or 'actionable' in the deletion reason.
Divisive
Have a single comment flagged at least once for every possible reason.
It Actually Is Michael Jackson This Time
Post a song to Metafilter Music to which you do not hold the copyright.
At-At Attack!
Reference three users with the prefix @ in one comment
Me, Myself and I
Post an unbroken string of five comments in a thread, alternating between two sockpuppet accounts.
Silenced All My Life
Have 10 comments deleted from one thread.
The Sound Of Silence
Make one MetaFilter post a day for a week, and have them all deleted.
All-Seeing Eye
Have a MetaFilter post deleted within a minute of posting.

100 MefiChievement Points: Blink tag unlocked!
500 MefiChievement Points: Image tag unlocked!
1000 MefiChievement Points: Admin control panel unlocked!
posted by emmtee at 4:30 AM on January 20, 2012 [5 favorites]


In c# it is simply #region/#endregion. My real beef is quickfind won't search in collapsed regions unless you go through the extra step of checking "search in collapsed regions" and I am constantly having to expand them to see the code anyway. I never add them myself, but I am forced to collapse and uncollapse shit in other peoples code.
posted by Ad hominem at 4:33 AM on January 20, 2012


Can we talk for a minute about how "gamification" doesn't actually make anything into a game that wasn't already a game, and that things like badges and achievements just reward people for doing whatever the achievement designer thinks is noteworthy or a milestone? I'm all for watching stat bars rise, but pressing the lever until a pellet comes out isn't a game, no matter what Blizzard tells you, and XBox Live didn't invent the idea of structured incentives.
posted by Errant at 4:50 AM on January 20, 2012 [1 favorite]


And you thought the tension among the competing forces of Politics From On High, Needing To Work With Stupid Externals, Buzzword Compliance and Actual Good Ideas was tough. Now we're adding incentives to follow suggestions from people who have no idea of the context?
posted by DU at 4:58 AM on January 20, 2012 [1 favorite]




I get the impression people are taking this seriously. As for suggestions from people with no idea of context we have had compiler warnings, things like fxCop, validators and countless best practice guides for ages so that ship has sailed. Maybe Microsoft should leave comedy to the experts, like all the rails devs that think inserting porn into their presentations is the height of comedy.
posted by Ad hominem at 6:08 AM on January 20, 2012


...we have had compiler warnings, things like fxCop, validators and countless best practice guides for ages so that ship has sailed.

But no incentive to follow those guides. Unless you work in a draconian shop that demands certain behaviors, in which case I feel for you.
posted by DU at 6:18 AM on January 20, 2012


This whole achievement thing in general baffles me. Well, not that I don't understand that it appeals to others. But earning achievements has zero appeal to me and it's unsettling how they're showing up everywhere and apparently everyone else feels some need to earn them.

I feel like I must be missing some brain chemistry that everyone else has.
posted by Ivan Fyodorovich at 6:46 AM on January 20, 2012 [1 favorite]


But no incentive to follow those guides. Unless you work in a draconian shop that demands certain behaviors, in which case I feel for you

I wouldn't call a joke plugin with achievements an incentive. Plenty of places use "warnings as errors" and fxCop gated checkins though. Do you really have no policies in place? Not even code reviews where you are dunned or praised based on arbitrary standards? It's a total free for all? Tabs and spaces in the same file! No indentation! Go nuts!
posted by Ad hominem at 7:24 AM on January 20, 2012


Loudmax: "Ooh, is there a reward for contributing to a GPL project?"

You joke, but Microsoft has warmed considerably to various limited uses of open source, and actively contributes to a number of OSS projects. You might even be able to argue that they're currently being better "OSS Citizens" than Apple.

I doubt that we'll ever see an Open-Source Windows, but I honestly wouldn't be at all surprised if we eventually saw a source release of IIS or IE. There's no huge competitive reason for Microsoft to keep those products closed, and both teams appear to be actively trying to realign their products to the standards used by the rest of the industry.
posted by schmod at 7:42 AM on January 20, 2012 [1 favorite]


There is some talk on HN comparing this to things like earning StackOverflow badges. I submit to you Githire an automated system that thrawls github and ranks developers.

Turns out MS is again behind the curve.
posted by Ad hominem at 7:59 AM on January 20, 2012


Is this where I confess to never getting my 'knot tying' badge in the scouts, because for reasons that I still can't work out I'm apparently incapable of tying a bowline? Despite multiple attempts, expert coaching, and any number of explanatory diagrams?

Seriously, what is going wrong? I've followed the instructions to the letter and it still doesn't work out right?
posted by Hello, I'm David McGahan at 8:11 AM on January 20, 2012


Do you really have no policies in place? Not even code reviews where you are dunned or praised based on arbitrary standards? It's a total free for all?

Yeah, more or less. My boss's only rule is basically "does the code work?" where "work" means "gets the job done in a reasonable amount of time". If that goal isn't met, you are out (and he's kicked a few people out).

I realize that tighter standards than these are probably necessary when you have lots of people working on the same project. But I kind of regard that as a good reason to limit the number of people on a given project (which means you'll have to choose some really powerful tools if you want to get anything done, i.e. no Java). Right now, we've got 3 people on the same codebase, but two of them are using that codebase for a project different than the third. So it's really a project of 2 people and a project of one person.

Needless to say, our projects are running rings around similar projects with dozens of people. Choosing powerful tools leads to smaller teams leads to less bureaucracy leads to even more power per unit time.

All that said, even a group of 3, which is a pretty reasonable size, would likely need some standards when working together. But we never laid out documents or implemented strategies or whatever. We just talked about what worked best and then tried to stick to that wherever possible, putting comments in places that deviated to say why we had to do it.
posted by DU at 8:11 AM on January 20, 2012 [1 favorite]


There are two schools of thought about teaching computer science. We might caricature the two views this way:

• The conservative view: Computer programs have become too large and complex to encompass in a human mind. Therefore, the job of computer science education is to teach people how to discipline their work in such a way that 500 mediocre programmers can join together and produce a program that correctly meets its specification.

• The radical view: Computer programs have become too large and complex to encompass in a human mind. Therefore, the job of computer science education is to teach people how to expand their minds so that the programs can fit, by learning to think in a vocabulary of larger, more powerful, more flexible ideas than the obvious ones. Each unit of programming thought must have a big payoff in the capabilities of the program.

- Preface to Simply Scheme
We don't use Scheme or Lisp at work, but the idea is the same.
posted by DU at 8:30 AM on January 20, 2012


This whole achievement thing in general baffles me.

They appear to fit into five general categories:
  1. Intermittent progress awards. Basically those irregular slot machine wins that cause people to feed their life savings into blinking boxes.
  2. Doggy treats. Rewards for following the developer's lead by making use of optional content (i.e. replay the game with an xyz character, etc.)
  3. OCD bait. "Find 100 lost pennies on the streets of New York."
  4. Prestige awards. Given for accomplishing something that requires extraordinary mastery of the game world/controller.
  5. Humorous awards. Awards tossed in because, hey, we have an achievement engine. Usually made up by the developers but often augmented by QA while they're uncovering crazy-ass edge cases.
Taken as a whole achievements often function as a meta quest system. The in-game quest system is limited to the game world itself, while an achievement system can include everything right down to just starting the app itself. Double-click Achievement Unlocked!

Personally I'm a big fan of the humorous ones.
posted by Tell Me No Lies at 8:30 AM on January 20, 2012 [1 favorite]


My current project was briefly run by the unit test police. Progress was considerably slower during that period and the code produced basically unfollowable stuff that we now try as hard as possible to avoid touching, but we sure made a lot of tests. Tests that largely broke once we stopped doing that.

I dunno, maybe we were doing it wrong.
posted by Artw at 8:32 AM on January 20, 2012


I dunno, maybe we were doing it wrong.

Definitely. I know a guy who knows a guy who knew about a place where everything was about unit tests and they never had bugs but you'll never meet the people who worked at that place because one day the clouds parted and god came down and took the entire engineering team to coding heaven on account of their unit testing practices.

Sounds like you had a chance to meet this guy recently. He does get around.
posted by Tell Me No Lies at 8:41 AM on January 20, 2012 [2 favorites]


Computer programs have become too large and complex to encompass in a human mind. Therefore, the job of computer science education is to teach people how to discipline their work in such a way that 500 mediocre programmers can join together and produce a program that correctly meets its specification.

I have a friend who refers to this as RAIDRedundant Array of Incompetent Developers.
posted by benito.strauss at 9:38 AM on January 20, 2012 [2 favorites]


Say what you will but Test Driven Development works for me. Writing code, surfing Mefi, and providing build support for 50+ developers means I don't get many blocks of uninterrupted time. TDD pays off in equal amounts by being a good indicator that I'm not making breaking changes upstream and bookmarking what it is I'm working on. Getting all the balls back up in the air after an interruption is so much easier when there are far fewer balls.

On the filpside, one of the teams I provide support for elects to fail builds that have less than 100% test coverage...which I can see as kind of draconian. But, hey, whatever floats their boat.
posted by Fezboy! at 9:42 AM on January 20, 2012


100% code coverage is easy, you just build tests that are utterly meaningless to the point of just being "does this compile?"
posted by Artw at 9:43 AM on January 20, 2012


I feel like I must be missing some brain chemistry that everyone else has.

Whatever it is, I don't have it either. I've always thought achievement was overrated.

could do better if he applied himself
posted by flabdablet at 9:53 AM on January 20, 2012


Git-Achievements

I've never figured out how to unit test anything meaningful. Almost everything is UI, hits a web service,writes files or uses a database. If I mock all that stuff and use DI what am I really left testing. I end up writing unit tests for copy constructors. I am probably doing it wrong thoug.
posted by Ad hominem at 10:06 AM on January 20, 2012


Precisely our situation, so we spent a lot of time creating mocks to test mocks and then ending up with the bulk of our problems being somewhere else entirely.

I suspect that where a lot of business logic is being done they'd be very helpful, but that for the most part that wasn't the part of the project we were working on.
posted by Artw at 10:10 AM on January 20, 2012


Integration testing, on the other hand, which TDD types handwave away, is absolutely vital - that's where we hit 80% of our problems.
posted by Artw at 10:13 AM on January 20, 2012


There's Mono, but who uses that?

Everyone who uses Unity 3D. It made me so glad I did learn C# and revealed to me that C# is a decent language. It was the APIs that I disliked, just I did like the Win32 ones.
posted by ignignokt at 10:27 AM on January 20, 2012


Not this TDDer. Unit tests are only part of what makes a sound development environment IMO.

Continuous builds should test stable and integration. Integration builds should kick off dependent consumers' integration builds on successful build. Periodic (as in running at scheduled intervals) automated use testing on top of this gets you to a place where you can be sure your end product is functional.

Like I said, I use TDD half to check myself and half to make it easier to figure out where I was after an interruption--and minimize what I need to worry about at any one time as well. I liken it to GTD for coding. The less I have to remember, the more present I can be to what it is I am doing at any one time. Although maybe I am defective in some way, what with being unable to remember every downstream consumer and its consumption patterns.

I also said TDD works for me personally. I will not argue it is the hammer by which all other developers should pursue their nails...merely the hammer I use on my nails.
posted by Fezboy! at 10:28 AM on January 20, 2012


I find unit tests have limited applicability, but automated integration tests are goddamned priceless.
posted by ignignokt at 10:35 AM on January 20, 2012


I don't even like achievements in my games.
posted by callmejay at 10:45 AM on January 20, 2012


I don't even like achievements in my life.

Ask my ex-wife, she'll be glad to verify.
posted by Ivan Fyodorovich at 12:11 PM on January 20, 2012 [1 favorite]


delmoi: It's not really that bad in the editor, and it's actually a really nice feature.

Why the big-ass #pragmas? It's pretty ugly.

jEdit uses comments with {{{ / }}}, so it looks something like this:
    //{{{   COMMENT
        ...CODE...
    //}}}
Which isn't quite so hideous. I've started using it a lot recently; my brain seems to be shrinking as I get older.

I don't know if emacs/eclipse/netbeans/other have a similar feature.
posted by and for no one at 2:14 PM on January 20, 2012


I've never seen the #pragma thing before, AFAIK it's always been #region, #endregion in code I've worked with. TBH I'm scratching my head at how what you've got there is supposed to be all that superior.
posted by Artw at 2:42 PM on January 20, 2012


The #pragma stuff is for C++, #region is for C#.

The objective difference is 31 characters versus 10. The subjective difference is a matter of taste.
posted by and for no one at 2:53 PM on January 20, 2012


« Older Stephane Grappelli   |   Fireproof Your Longboxes Newer »


This thread has been archived and is closed to new comments