Virtual Surreality
It’s too real to be true


Kiva - loans that change lives

June 5, 2009

Assertions: actual or expected first?

Filed under: Coding, Testing — Josh Graham @ 4:40 pm

Should it be assertEquals(expected, actual) or assertEquals(actual, expected)?

This discussion came about because at the Chicago Code Camp, Jim Suchy from 8th light was demonstrating TDD in JavaScript by building a simple unit testing library. One of the methods he created was the typical assertEquals. In the code on github he had a signature of assertEquals(expected, actual) while during the demo he swapped the order, and I pointed out that the original was what I would have anticipated. He commented that there was an interesting discussion about it at his office a few days before. I’m interested to hear more about it, and I tweeted that I was inclined to get a debate going about it just to see what the different rationales were. This post is a collation of thoughts and opinions to date.
(more…)

March 31, 2009

JAOO Australia 2009

Filed under: Conference — Josh Graham @ 6:38 am

Today’s blog is sponsored by the word “awesome”.

I’ve just come back from a trip to the awesome QCon London 2009 and the (thankfully) awesome speakerconf 09 (more of both in blogs soon, promise!)

Coming at the beginning of May, though, is the most awesome JAOO Australia 2009 in both Sydney and Brisbane. Last year’s inaugural event was awesome and this year’s looks to be its match.

The awesome Dave Thomas asked me to speak there on “something Enterprisey”, so I’m putting together notes and experiences on applying Agile practices to enterprise architectures. It’s easy to see that current economic drivers make it imperative for a firm’s technology leaders to do more to embrace rapid business change within IT. The talk will draw on ThoughtWorks projects across the globe, including those I participated in both in the US and Australia. It’s Neo Architectural. It’s for Modern Architects.

Also, my very talented and awesome wife, Amanda Laucher, will be presenting on DSLs and language-oriented programming, providing some insight on when to make one and some samples in C#, F# and MGrammar. Don’t worry if you only know Java or Ruby, you’ll get plenty out of the talk if you want to learn more about DSLs.

Amanda will also be teaming up with Joel Pobar to provide an Introduction to Functional Programming tutorial, with a focus on the awesome F# language. If you want to know about partial applications, dynamic pattern matching, idiomatic units of measure, and asynchronous workflows on top of the usual functional programming concepts, then this talk is for you. If someone at work is saying “we need to exploit concurrency” then this talk is for you. Again, if you’re coming from Java land that’s fine, there’s enough to get you looking at Scala or the awesome Clojure languages too.

November 26, 2008

CodeMash

Filed under: Coding, Architecture, Conference — Josh Graham @ 5:20 am

I’ve been given the privilege of speaking at CodeMash 2009 in Sandusky, Ohio this coming January.

The presentation and discussion will cover the learning from implementations of Guerilla SOA and will include code and demonstration based on the WCF. It may change some minds about the default approach to the WCF programming model and open some eyes on how to build a truly message-oriented service oriented ecosystem.

Looking forward to a conference that comes highly recommended.

The submitted abstract

Title: Guerilla SOA for WCF
Track: Arch & Design
Level: Intermediate

Description:
This talk goes over the fundamentals of Guerilla SOA (a concept conceived in ThoughtWorks and championed by Dr Jim Webber) and how they are applied to WCF in both a SOAP and REST context.

Using principles from agile software development into an emergent architecture, particularly for services, the talk looks at an alternative approach to the usual usage of the WCF programming model which provides a true message-oriented approach (rather than the RPC hole almost every WS-* stack drives us into).

Drawing on real large-scale projects, we’ll touch on consumer-driven contracts, sensible XSD, alternate validation techniques, LINQ to XML, XPath, and a convention-based and MVC approach to web service implementation.

October 31, 2008

Azure + Red = Purple: .NET Services for Ruby from ThoughtWorks

Filed under: Architecture, Open Source — Josh Graham @ 8:20 am

If you want to develop Ruby applications that use the services in the Microsoft® .NET Services cloud, then this SDK is for you:

http://www.dotnetservicesruby.com/

October 29, 2008

AMQP, why for art thou?

Filed under: Architecture, Poetry — Josh Graham @ 3:16 pm

OK so I’ve been moving from Sydney to Chicago with lots of time at a client in Calgary. No posts, but some coming.

In the meantime, based on a note from my colleague Ian Cartwright on an article about Microsoft embracing AMQP, I wrote a little poem, for I am in a very poetic mood at present. I’ll tell you why next week!

There is a message queue open standard /
almost all implementations are free /
it’s the killer app of the internet /
and what’s its name? Lo! It’s SMTP!

:-)

June 26, 2008

A hope for children in Ethiopia

Filed under: Responsibility — Josh Graham @ 5:30 am

Lots of technology blogs piled up, but first thing’s first.

Last week I was in Chicago for some meetings at the ThoughtWorks head office. On the Monday night one of my colleagues hosted a charity fund raising dinner which included some magnificent Ethiopian food (and beer).

During a presentation, she told us personal anecdotes about a trip to Africa and her visit to the AHOPE orphanage. We were told a number of stories of the adoption of kids into the few countries that allow foreign adoption of children with HIV and how now, with the anti-retroviral medicines becoming more readily available, those kids have more than just short-term palliative care in the orphanage, they have a chance at being raised in a healthy, comfortable (albeit Western) home and leading an independent adult life.

As they say on the site, ‘Are you looking for just the right gift that isn’t just “stuff” for a person who has everything and needs nothing, whose heart would be touched by reaching out to a child who has nothing and needs everything?’ Even if you’re not the next Brangelina, have a look at what you might want to donate to provide a lot of help for just a small amount.

This short video reminded me of being at my daughter’s pre-school - except of course these kids don’t have their parents picking them up after the songs are done.

AHOPE video

May 29, 2008

The value of test names

Filed under: Coding, Agile / Lean, Testing — Josh Graham @ 5:35 pm

My colleague Jay Fields recently blogged about the value of test names.

We had a little discussion about it yesterday on IM. Here’s a summary.

Josh Graham

I feel the test name is important for two reasons:
1) it is intentional programming - a neural pathway is established in your brain as you write the name of the test method so your mind tries to think about what the hell you are trying to achieve by doing all that typing
2) for those test consumers you speak of to get a sense of the behaviour of the system as specified by the stories and high level acceptance criteria

Jay Fields

2) [is] fair enough. Before introducing expectations on any client project I’ve brought it up as “what do you think about” and let the team decide. The last thing I want is an idea to be branded as bad because the wrong ppl used it
1) I think is based on the person. I always found it 10 times harder to write a sentence, I just want to get to the code but, I’m crazy for making the code intention revealing

Josh Graham

Picking a reasonable moniker for the test name is useful too, when something breaks (particularly if it occurs often)… “That #$%#$%! shouldRejectLostOrStolenCard test is failing again - must be the clearing house API has changed or they’ve crashed once more”.

Jay Fields

yeah, that’s an interesting point
wish you would have replied with that one, I’d have put it in my entry

We then talked about how to attach a moniker to the test on different languages - method names in Java being the easiest, while anonymous inner classes being a way to do so without having a moniker (other than perhaps a comment) at all.

I still contended that a method was a reasonable level of granularity to contain a test and use the method name as the moniker. A method (it’s declaration and its body) is location independent - it can be moved around in its module and you can still find it and its moniker appears in the abstract syntax tree so it’s very easy to find when using an editor that maintains an AST.

Jay’s responses to my scenarios in which this proves useful assume a short TDD cycle and also good developers.

So, while the test name may be superfluous in some cases, I don’t mind the extra mental effort of summarising the intent of the test into its name - and if that is overly difficult or not needed (both of which are plausible) then a banal label like enclosing the test in a method called “test1″ is a small price for me to package it up in a manageable, easy-to-find chunk.

YMMV.

May 14, 2008

Just when you think recruiters couldn’t be more lame…

Filed under: Uncategorized — Josh Graham @ 4:43 pm

I am in IT. I think it’s pretty easy to find that out about me. Nothing in my CV indicates the ability to fly aeroplanes or helicopters.

Either the pattern matching spamming software has gone wonky, or this dude has set a new low watermark…

(with apologies to the half dozen recruiters I have met that are anything but lame)

I have 1750 hours on Saab 340B and 340B Plus with American Eagle and
Pacific Coastal in the US and Canada respectively.

Is this a job for Rex?

> Hello Joshua
>
> Apologies if this has made it to you by mistake…..
>
> I am looking for EMB120 Pilots, Bell Helicopter pilots and Metroliner 23
> Pilots and SAAB 340 pilots for FO and captain roles.
>
> If you have 500+ hours on these types, please contact me as soon as you can.
>
> Thanks.
>
> Best Regards
>
> (name removed to protect the stupid)
> Recruitment Consultant

May 6, 2008

Upcoming conferences

Filed under: Conference — Josh Graham @ 6:30 pm

JoshG is a busy bee:

If you are a software technologist in Australia, I strongly encourage you to attend JAOO Australia as it is arguably the best technical conference in the world and it is certainly a boon to have it come to our neck of the woods. We are getting some superb international speakers that you’ll be able to interact with throughout the conference (they stay around at JAOO to learn too), and the more we support it, the more we’ll get next year.

April 23, 2008

CruiseControl comes of age. Cruise and relax.

Filed under: Agile / Lean — Josh Graham @ 6:07 pm

Hot on the heals of the Mingle 2.0 announcement, ThoughtWorks Studios has released information on the next generation of the world’s most popular Continuous Integration engine, CruiseControl, called Cruise.

It is a ground-up rewrite accomplished in around 8 months with an emphasis on catering to enterprise software development teams and large-scale applications. It combines sequential build pipelines (for, say, progressively more complicated or longer-running tests) with concurrent build tasks using a grid of agents.

The Cruise server can dispatch work to agents on ye olde CruiseControl servers. Although the Cruise product is not Open Source Software, the licensing terms are generous and in line with Mingle. Pricing is yet to be released.

With the usability innovations of cc.rb and the great foundation laid by CruiseControl and CruiseControl.NET we’re excited at the prospect of using the newest and best Continuous Integration tool on the market, from the company who changed the way developers integrate their software changes and who wrote the book on build pipelines.

Next Page »

Powered by WordPress

payday loan daily payday cheap long term payday loans cash loans till payday service no fax payday loans asp direct lender payday loans payday loans denver nd news story payday loans outlawing payday loans north dakota cash advance payday loans software califronia payday loans no fax payday loan payday loanonline payday loans no fax payday loans uk poor credit loan construction to south carolina cash advance payday loans payday loans located in stone mountain georgia easy no fax payday loans online payday loans no pay day fax gardena california payday loans payday loans with payback in installments fast cash payday loans in advance kansas city payday loans and cash advance loans payday loans with payments cash loans net payday till payday advance cash til payday loans in atlanta montana payday loan 500 payday loan online payday no fax payday loans payday loans no job credit check payday loans quick cash instant payday loan fast c payday cash loan payday cash loans bad credit payday loans no fax utah cash advance payday loans online payday loans project payday no teletrack payday loans instant payday loan payday loan fraud washington state faxless payday loans cash advance payday loan payday loans online no fax payday loan payday advance loans low fee payday loans geneva roth payday loans payday lenders ten dollar payday loan bad credit payday loans payday candy bar payday loan lenders default payday loan bad credit debt consolidation internet payday loan student no fax payday loans online cash advance loan sonic cash payday loan with no faxing or employment verification savings account payday loans no telecheck payday loans payday loan walpole instant payday loans i need a payday loan immediately payday cash advance legitimate payday loans payday loan with no credit check or no faxing payday max fast cash payday loan cheap payday loans free payday loan payday ok bad credit payday loan payday loans for bad credit sonic payday cash till payday military payday loans payday loan software payday loans online cash advance loan personal payday loans no credit check no faxing no paper consolidation debt loan payday cheap payday loan cash fast loan online payday tendollar payday loan payday loans national cash advance bad credit payday loan payday cash loan online payday loans payday loan p no fax payday loans savings account payday loans uk payday loan no fax payday select faxless payday loan same day payday loans check advance paycheck payday cash loans charlesto personal loans payday loans 1500dollarstoday com easy online payday loans payday cheques easy payday loans low cost payday loans fast cash advances payday loans payday loan relief help state law free payday loans can you tell the payday loans to stop call you at work borrow money now cash advance simple payday loan preferred missouri cash advance and payday loans cheapest payday loans fastbucks instant online payday loans fast cash advance online payday loan new mexico victims of payday loans payday loan manual easy no teletrack or telecheck payday loans no teletrack payday loan payday loans no credit check payday loan by western union i need money now easy payday loan borrow fast advance cash loan online payday payday loans gold coast i want a no teletrack payday loan easy no fax payday loans payday loans no credit check payday loan approved loan online payday payday loans no fax payday loans online payday advance fast where can i buy payday loan forms cash advances advance cash online payday loans pre payday no bank account xtra cash payday loan online cash payday loan online payday loans online sonic payday loan payday paycheck loan quick no fax payday loans online payday loan payday loan canada no fax no bank payday advance loans payday loons without fax free same day payday loans online direct payday lenders no credit checks or faxing online instant fax payday loans online instant no fax payday loans texas cso payday payday advances how to obtain multiple faxless payday loans advance cash payday loans online loan canadian payday loans cheat at payday freecell western union sent payday loan fast payday loan advance cash payday loans online cash advance loan title loan florida auto and payday loans online payday cash advance instant loans payday loans payday loan online cashadvancesusa com low interest payday loans payday cash loans fast usa only payday loans online no faxing up to 241500 genovone roth payday loans canada student loans payday advance mo payday loan payday loan online bad credit cash advance payday loan cash advance loan illinois quick advance advance cash loan payday no requirement payday loan fast payday loans best payday loans payday loan business no fax payday loans online b cash advance b loan completely instant loan payday payday loans with no faxing and instant approval payday loan softwear low rate payday loan payday loan qualifications no bank account payday loan oklahoma fast cash advance payday loan payday scam calls cash day fast loan pay payday quick cash advance payday loan online loans advance cash loan payday payday loan industry statistics no fax or verification payday loans payday loan no fax search long term payday loans magnum low cost payday loan payday loan franchise payday loans no fax no teletrak how to get out of payday loans no income doc payday loans attorney for payday loans nc indian wells payday loan payday cash loan savings account payda military loans online payday loans cash a1paydayad guaranteed payday loan payday loan service new jersey online payday loans savings account payday loan instant payday loans online cash deposit direct fax loan payday cash apply fastest payday loans online litchfield payday loan fast loans bad credit online approval payday quick payday loans online one hour payday loans emerengency no fax payday loans no fax payday advance no credit check bad credit faxless payday loans quick payday loans fast online payday loans criminal prosecution default payday loan louisiana genove payday loans washington cash advance payday loans software attorney for payday loans texas cash advance payday loans software payday loan in florissant missouri direct payday loans quick payday loan low fee payday loan njfastcash personal loans online payday loan payda payday loan cash advance bz credit no fax payday loans faxless payday advance no fax cash zip payday loans miami payday loan cash advance payday loans bad credit payday cash loan scams direct lender payday advance online instant payday loans completely online no teletrack or no fax payday loans texas payday loan stories about westbury ventures payday loans cash advance las vegas payday loans paycheck advance online short term payday loans 500 payday cash advance utah payday loan companies payday loan pay back in 1 week cash advance or payday loan direct payday loan payday loans advance pay day loans online cash advance quick almost instant cash advance payday loans payday loan online refinance home loans loan until payday payday loans in new jersey payday loans auto title bad credit loans andnot payday loan savings account no fax payday loans payday cash advance loans online low interest payday loan payday loans cash advance online payday loans military loans delaware cash advance and payday loans cash advance now payday loan california cash advance cash advance payday loans online cash advance payday colorado advance cash ga in loan payday california cash advance payday loan pay advance payday loans online paycheck advance p advance cash loan payday through union western wired money payday payday payday advance loan payday loans no fax or credit check faxless payday loans no checking account no faxing and no credit check payday loans cash advance loan illinois payday loans online cas no fax cash in 1 hour payday loans emergency advance payday hold personal check cash loans i want a no teletrack and a no telecheck payday loan payday loans fast new improved payday cash advance loans chicago payday loans payday cash loans no faxing all online bad credit loans for military payday loans militar payday loan salt lake city payday loan bad credit knox payday loan payday one cash payday loans online payday loans with no faxing or credit check banks issue payday loans payday loan in chicago illinois