Features of Strong Test Frameworks

In the previous article I made the case for Automated Testing. Today we will talk about the tools.

  • What qualities does a strong testing framework have?
  • What guidelines should developers use when choosing one?
  • Why do those guidelines matter?
  • What tools would I recommend?

I will use the terms Harness, Framework and Library interchangeably. Be warned.

All of this and more, after a few choice bold words, a digit, a hash, and a hyphen.

Continue reading “Features of Strong Test Frameworks”

BetterTech + JavaScript (in the form of V8)

V8_JavaScript_engine_logo

As some of you likely guessed, the V8 integration walkthrough was not a one off. I have been growing a pretty healthy appreciation for the JS language and so I put it to the test and started linking it into UE4. This past weekend I sorted out the details of defining objects and linking static methods in that reference those objects, which was far from well documented.

Either way, it is working and committed.

BetterTech development has continued, and I have unearthed a number of very interesting things have come of them. Hopefully I will be able to start talking more openly about the state of things soon.

Changes for Alpha 2

 

  • Agents need to check in on a regular basis when they don’t have any jobs.
  • Link in V8 with standard placeholder functions
  • Agents need visible meshes
  • Menu – Pause
  • Menu – Settings
  • Menu – Intro

 

Integrating V8 Into {Insert your C++ Windows Application Here}

V8_JavaScript_engine_logoI have been absolutely enthralled with Javascript for the last two or so years. Node.js and V8 in particular, but over the last 2-4 years I have put time aside to bind in the three major C# implementations of javascript {Jint, Javascript.NET, Jurassic} into applications that didn’t even need to have scripting languages supported. Needless to say, it has been a bit of a challenge of mine to implement JS wherever I have been working.

This may be because I am currently working as  Mobile JS Engineer, but there is really something about JS that makes me smile. Something about the way the code flows and how I have to think to get things done makes me feel like I am achieving something amazing – even when all I am doing is pooping out a stupid express app to maintain a user list or something.

Either way, Integrating V8 is NOT as straight forward as I would like. As such, here is what I had to do to get V8 to integrate into a C++ application I am working on. Be aware that this is not for the faint of heart, it will take some determination if you are a novice.

And if you aren’t a novice – what the hell are you doing reading tutorials!? Continue reading “Integrating V8 Into {Insert your C++ Windows Application Here}”

JavaScript 101 – Private Variables

Funny things happen in the course of piecing together solutions in this field. Programmers have a tendency to throw their hands up in the air when they get to the end of a week and they can’t quite figure out a concept, and the problem is compounded when looking at programmers who don’t take the time to actually learn the new idioms of a language before getting into the position of writing production code.

JavaScript lends itself to this type of behavior. It has Java in it’s name, and it looks a lot like C or Java syntax, so it attracts a lot of OO type behavior. Little do these people know the language should be written more like lisp and less like Java. Continue reading “JavaScript 101 – Private Variables”

Why You Should Learn – Node.JS

When I was in my higher math classes I was irritated. Some goofball with a powdered wig and a ton of time on his hands got drunk and poured Calculus into my Computer Science! I was appalled, considering so few of my work colleagues were using integration or derivation in their day to day, I found it incredibly difficult to accept that it would be useful in my day to day. All of this fell apart when I was tutoring algebra and heard the same damned arguments, and realized that I was in fact a fool – about that one thing in particular.

Over the years a number of languages have come and gone, allowing me the opportunity to learn them and leave them (Java, Ruby, Squirrel) but a few have stuck around proving to be quite useful, interesting and all around insightful in spite of time doing its best to wear them out (C, C++, C#, Scheme). Node happens to be the next evolution of JavaScript, a language that falls into the later camp.

Continue reading “Why You Should Learn – Node.JS”

Website Form Acrobatics

form-acrobatics1 Occasionally a client will ask for something absurd…

“I want this to submit the file, only if the rest of this goes through smoothly.” – Client 1

Taking this excerpt I would typically submit the file and just not move it out of the temp directory, so it would effectively not be available to the user and the web server would drop the file from its history without any real impact visible to the user…

No.

Occasionally a client will ask for something absurd…

“There’s no use submitting the file if there isn’t already a ticket created. Files can be pretty large…” – Client 2

After going back and forth, it comes out that there is flow to worry about, and that the system is going to be a pain. We turned to AJAX and did some acrobatics, but the end result looks something like this…

$("form:first").post('newReq.php', {...},
function(data)
{
	$(this).submit();
});

Currently I’ve been reviving my love for jQuery and making my days so much more realistic. I have always found the library to be superior to most everything else in the world. There is something fantastic about being able to just let my hair down and not need to bother worrying about how to handle things in raw AJAX/JS/Multiple forms or worse yet – having to tell a client i cant accomplish something.

What kind of crime is that you may ask – Its a terrible one.

jQuery 1.1.3: 800%+ Faster, still 20KB

jQuery 1.1.3: 800%+ Faster, still 20KBAfter many months of testing, developing, and more testing, we have a very solid release available for download. It comes with roughly 80+ fixed bugs and a handful of enhancements for good measure. [Digg – Programming]

You guys should really check this tool out, if you are interested in AJAX. This as well as Prototype. If you are interested in learning how the DOM and AJAX work together I have found good reading over at the IBM’s Mastering Ajax Series. I think its probably the best read out there for AJAX. Although they don’t post updates often.