Learnosity Logo
Learnosity Banner Image

Learnosity are looking for a Web Ninja at a Mid to Senior level

4 December 2009, Learnosity are looking for a Web Ninja at a Mid to Senior level.

About Learnosity

Learnosity develop cutting edge tools for teachers and educators. Our flagship product Learnosity Voice uses the telephone to enable language students and teachers to interact on a one to one level.

Our service:

  • Makes it practical for students to practice Oral and Aural skills
  • Is efficient and effective for teachers, as they can listen to each student individually at a time to suit them
  • Can be used for homework assignments or “High Stakes Assessments”

We are continuing to grow our core development team and we need another great developer to help us keep up with demand.

We need someone who can:

  • Use Javascript or Actionscript to create great user interfaces
  • Develop highly scalable web applications
  • Cut code with the best in the world

You will also need to be:

  • energetic with a butt kicking attitude
  • ready to create cutting edge web 2.0 apps
  • keen to continue learning new technologies
  • able to have a conversation with non technical people

You'll need:

  • 3 or more years of programming experience
  • Expert in at least on Client side language (Actionscript or AJAX)
  • Expert in at least one Server side language (eg PHP, Java, ColdFusion, etc)
  • Understanding of Object Oriented design
  • Understanding of XHTML and CSS

It would be good if you have:

  • A degree in Computer Science, Engineering or similar.
  • been working with open source tools
  • been playing around with iPhone/Android applications
  • experience with some of Linux/VOIP/SIP/Asterisk/Jabber/XMPP

This is a full time role and you will be working in a casual workplace with flexible hours in the Sydney CBD.

If this sounds like the job for you, email a covering letter explaining why you'll be great and your resume to mark@learnosity.com - no agencies please.

Job Vacancy Sydney AU - QA Test Lead - Learnosity

2 September 2009, Learnosity are looking for a QA Test Lead in Sydney.

About Learnosity

Learnosity develop cutting edge tools for teachers and educators. Our flagship product Learnosity Voice uses the telephone to enable language students and teachers to interact on a one to one level.

Our service:

  • Makes it practical for students to practice Oral and Aural skills
  • Is efficient and effective for teachers, as they can listen to each student individually at a time to suit them
  • Can be used for homework assignments or “High Stakes Assessments”

About the role:

Working as an integral part of the Learnosity development team you will ensure delivery of high quality products through the development of a formalised testing framework, documentation of releases, and management of the UAT component of all software projects.

  • Create and implement test plans for each project
  • Conduct functional and non-functional testing including UAT, Load and regression testing
  • Review and sign off test reports
  • Track, allocate and prioritise areas to be tested
  • Manage the release process from development through staging and production
  • Report and manage defect analysis process including logging, tracking and testing
  • Produce high quality documentation and release notes
  • Implement automated testing and build processes

Who we looking for:

Qualifications & Attributes

  • Self motivated person willing to continually learn and improve themselves and processes around them.
  • Tertiary qualifications at associate diploma level or equivalent in computing or a related discipline or an equivalent combination of training and experience.
  • Minimum of 2 years work experience within a dot com or software development environment.

Knowledge & experience

  • Ability to translate requirements and functional specifications into test cases
  • Hands on experience across multiple applications of end-user technologies
  • Understanding of Project Management concepts
  • Strong skills and history working in a test and release management position in a dot com or software development environment
  • Testing methodologies and procedures, including load testing
  • Knowledge and/or experience of testing tools and techniques
  • Release management procedures
  • Highly developed written skills
  • Excellent proven communication and people skills including client liaison and documentation
  • Demonstrated ability to organise and plan work with care and attention to detail while meeting deadlines
  • Ability to work independently and as part of a team

This is a full time role and you will be working in a casual workplace with flexible hours in the centre of Sydney.

If this sounds like the job for you, email your resume and covering letter to mark@learnosity.com - no agencies please.

Load Testing Asterisk Applications - HOWTO

I've been working on Load Testing some of our asterisk applications and thought I'd document the process here so I can find it when I need to do it again.

There is a bit of setup to be done but when you get the whole picture is it's actually very easy. To do it you need at least 2 asterisk boxes - the one you are load testing (lets call it 'stressbox' for this example) and a another one to drive load to it which we'll call 'driver'.

We need to do the following steps:

  • Create an sip account on stressbox for driver to connect to
  • Register the account from the driver machine
  • Create a dial plan which simulates a call
  • Create a call file for the call
  • Start you system monitoring
  • Create lots of call files

So here is the step by step:

Create an sip account on stressbox for driver to connect to

In the sip.conf file on stressbox (the one we are testing) add the following:

[loadtest]
type=friend
username=loadtest
secret=1111
context=test
host=dynamic
Do a 'sip reload' in the asterisk console to register this change.

Register the account from the driver machine

Then to register the account from the driver machine add the following to sip.conf on driver:
register => loadtest:1111@xxx.xxx.xxx.xxx
Where xxx.xxx.xxx.xxx is the ip address of the stressbox server.

Your driver machine should now be able to make calls to the stressbox machine and you should see a line that looks like this if you were watching the console:

-- Registered SIP 'loadtest' at yyy.yyy.yyy.yyy port 9350 expires 120

Create a dial plan which simulates a call

Then on the driver machine we need to create a dial plan which simulates the call we want to do and place it in extensions.conf. Here's an example dial plan:

[dialplan-loadtest1]
exten => s,1,Answer
;wait for welcome to play
exten => s,n,Wait(10)
;enter username
exten => s,n,SendDTMF(1234)
exten => s,n,Wait(4)
;enter password
exten => s,n,SendDTMF(0000)
;listen to menu
exten => s,n,Wait(10)
;select menu option 1
exten => s,n,SendDTMF(1)
exten => s,n,Wait(3)
;select menu option 2
exten => s,n,SendDTMF(2)
exten => s,n,Wait(4)

;Play some audio
exten => s,n,Playback(sampleaudio1)
;Hangup
exten => s,n,Hangup
This example does a login to a phone system and then selects some options and plays some audio and hangs up. The dial plan can be as simple or as complex as you like.

Create a call file for the call

Last config step is to create a call file which will tell asterisk on driver to call asterisk on stressbox. Create a file test.call with the following:
Channel: SIP/6@xxx.xxx.xxx.xxx
MaxRetries: 1
RetryTime: 5
WaitTime: 10
Context: dialplan-loadtest1
Extension: s
Priority: 1

A bit of explanation of these lines: Channel: SIP/6@xxx.xxx.xxx.xxx - the 6 is the extension to dial on the stressbox server - change as necessary. The ip adress should be the stressbox one. Context: dialplan-loadtest1 - this is the dial plan that will be run for this call.

Start you system monitoring

If you are going to do some load testing then you probably want to monitor the load on the machine - it is recommended to record the load of all machines involved - i.e. stressbox and driver to ensure that driver is not the bottleneck in the load test.

For this I use a vmstat on linux via a little script I wrote which makes it easy to collect stats from multiple machines

It would be used as follows:

./multivmstat stressbox,driver 5
This will connect via ssh to each box and run vmstat on them every five seconds. This can be graphed later - I'll post the scripts for this shortly.

Create lots of call files

You are not ready to test you system. To do this you need to create copies the test.call file and move them into /var/spool/asterisk/outgoing on the driver machine.

I use a little script to do this:

#!/bin/sh
#usage: makecalls callfile count delaybetween

callfile=$1
count=$2
delaybetween=$3

callnumber=0
asteriskcalldir=/var/spool/asterisk/outgoing/
asteriskuser=asterisk

echo "Using $callfile for $count iterations with a $delaybetween second delay"

while [ $callnumber -lt $count ];
do
   callnumber=`expr $callnumber + 1`
   echo "Call Number: $callnumber"
   cp $callfile $callfile.tmp
   chown $asteriskuser:$asteriskuser $callfile.tmp
   mv $callfile.tmp $asteriskcalldir
   sleep $delaybetween
done

This is used as follows:

sudo ./makecalls test.call 5 2

This will make 5 calls with a 2 second delay between the start of each call.

Note: It needs to be run as sudo so it can change the ownership correctly.

Credits: Thanks to Stuart Elvish for his help with getting this working so nicely.

Happy load testing. Cheers, Mark

Job Vacancy Sydney AU - Graduate or Junior OO Programmer

We're looking for a Computer Science Graduate or similar with strong Object Oriented programming skills and the ability to grasp cutting edge technologies quickly.

If you are looking to work with the latest technogies and are a motivated self starter with a positive "can do" attitude this is the job for you. The ability to take problems and deliver solutions is a must.

There will be significant on the job learning as we are always pushing the boundaries and using the latest and greatest technologies. We are currently working on projects using Actionscript/Flex, ColdFusion, PHP, and Javascript, and are leveraging technologies such as VOIP, SMS, Instant Messenger (Jabber XMPP) to deliver cutting edge solutions.

Suitable applicants will have a Bachelors Degree in Computer Science or Engineering, or similar tertiary qualification. Remuneration commensurate with experience.

Responsibilities would include:

  • Developing new functionality for Asterisk and VOIP applications
  • Creating Rich Internet Applications with Adobe Flex
  • Creation of Desktop applications with Adobe AIR
  • Design and development of new Web applications

Must haves:

  • A robust foundation in Object Oriented programming
  • Demonstrated experience in at least one OO language
  • Motivation to learn and push the boundaries
  • Understanding of XHTML and CSS

Preferable:

  • Experience with PHP, ColdFusion, Farcry CMS, XML, Web Standards etc
  • Competency using linux-based tools (SSH, bash, etc)
  • Familiar with using source control tools (Subversion, etc)
  • Familiarity with Actionscript or Flash

This role may be full time, part-time or on a contract basis depending on the candidates skills and experience. You will be working in a casual workplace with flexible hours in the centre of Sydney.

If this sounds like the job for you email your resume to mark@lynchconsulting.com.au if interested - no agencies please.

Learnosity CEO nominated for Net Visionary Awards

Lynch Consulting has been working with Learnosity (formerly Websonic Learning) to deliver mobile phone and IM based learning solutions powered by ColdFusion.

Gavin Cooney the CEO of Learnosity has recently been nominated for the Irish Internet Association's "Net Visionary 2007" in three categories:

  • Education Contribution
  • Innovation Award
  • Mobile Internet Contribution

Details of the project are available here:

So go on - you know you want to support ColdFusion and innovation by adding your vote for Gavin Cooney of Learnosity.

Superscript and Subscript in flash - nice hack

Superscript and Subscript support in flash (or lack thereof) has been a thorn in my side for the past few years. The reason for this is that we need to display a lot of mathematical formulae for the eAssessment applications that we have been working on.

I was sent a link today: How to use subscript & superscript in dynamic and input text field and just wanted to post it here as a reminder to myself as it looks like a very nice way of solving this problem for at least 90% of our use cases.

Cheers, Mark

Speaking at LearnX

I'm going to be speaking at LearnX tomorrow about some of the eLearning and eAssessment projects we've been working on over the last few months and years at Learnosity.

I'm speaking at a Frontliner session about Mobile and Web based assessment in High Stakes arenas. This will cover a number of applications based around ColdFusion, Flex and VoiceXML, but will be a high level session for Executives and Educators.

  • Time: 13:30 - 14:15
  • Location: Room 101 - L1, Bayside Terrace

If you're at LearnX pop on by and ask some questions.

Mobile phones in education powered by CFMX

Lynch Consulting has been working with Websonic Learning to deliver mobile phone and IM based learning solutions.

A pilot project in Ireland that we recently completed has just been written up in one of the national newspapers: Pupils lap up hi-tech learning of Irish

Behind the scenes it's using CFMX 7 with VoiceXML for the mobile phone integration and Jabber for instant messenging.