We’re Hiring: Senior Java Developer

10 06 2010

At Pixolüt Industries we develop web-based applications for a range of global clients. Every day is a new adventure!

We are looking for an experienced, self-motivated Senior Java Developer for this full time role. The role will involve working on-site with a major client as we re-develop their web applications on a long-term project.

On top of your regular development you get time to experiment and research as well as contribute to open source projects.

Essential skills & experience

  • 4+ years Java application development experience
  • Strong JSP development knowledge
  • Production experience using jQuery
  • Strong knowledge of CSS 2
  • Excellent spoken and written presentation

Ideal skills & experience

  • IBM Portal development experience
  • Experience with ORM frameworks
  • Experience using Oracle

SUBMISSION GUIDELINES Please provide a concise resume in .DOC or .PDF format. Ensure your resume has evidence of education history and skills. To be eligible to apply for this position you must have an appropriate Australian or New Zealand work visa.

Applications should be sent to jobs@pixolut.com





New Pixolüt brand identity

20 05 2010

After 8 years, we have updated our logo.





BizBlox 1.8.5

8 03 2010
By Stephen Trembath
version 1.8.5.0. is up now. The changes are generally relatively minor since the last release – just a few methods which we’ve needed for iTOK.
- Change Touch() method builder in BizBloxBuilder to use Enum column names rather than indexes
- Add new constructor to DataObject(Guid id, Boolean load) which allows loading from an ID in one line of code.
- Fix validation unit test: if Food.cs is updated by Builder, do not overwrite validation
- Add option AddOrderAttribute To DataContract Info in BizBlox Builder.
- addWhereLikeConcatenatedColumns method to SqlBuilder as a lightweight alternative to the existing SearchBuilder method
- addTriStateAndWhere method to SqlBuilder to add built-in TriState filtering on a column.
- GetPrimaryKeyIDs() method added to DOCollection, to allow retrieving primary keys without loading objects.

version 1.8.5.0. is up now. The changes are generally relatively minor since the last release – just a few methods which we’ve needed for iTOK.

- Change Touch() method builder in BizBloxBuilder to use Enum column names rather than indexes- Add new constructor to DataObject(Guid id, Boolean load) which allows loading from an ID in one line of code.

- Fix validation unit test: if Food.cs is updated by Builder, do not overwrite validation

- Add option AddOrderAttribute To DataContract Info in BizBlox Builder.

- addWhereLikeConcatenatedColumns method to SqlBuilder as a lightweight alternative to the existing SearchBuilder method

- addTriStateAndWhere method to SqlBuilder to add built-in TriState filtering on a column.

- GetPrimaryKeyIDs() method added to DOCollection, to allow retrieving primary keys without loading objects.





Thoughts on iPhone OS version 4

31 01 2010

Let me preface this post with a little note; I have only dabbled in Xcode – and all of the opinions herein are surmised from my user experience of iPhone, my observations and reading about the iPad and my own imagination (and 25 years of first hand experience).

I really enjoy the model of simplicity which the iPhone introduced to a computing experience. The things people bemoan about the operating system I completely understand and – well – I enjoy and appreciate.

I appreciate that concept of no filesysyem. I appreciate no multitasking to ensure a primo user experience. I appreciate an approval process before applications can be released on the platform. Of course there are down sides to all of these points – but they all represent compromises which had to be made. The focus has been always on the end user experience and I appreciate that.

Then came the iPad.

I can easily draw the dots between the experience a user will have working on an iPad given a while using the iPhone. I also see some of the deficiencies which be immediately obvious. So in this post I want to postulate solutions to problems facing the architecture and user experience on the iPad and how that might be solved.

First issue is that of the filesystem. The idea that apps have isolated storage is awesome – until you want to do some things which are a little more computer like in their nature. For example – look at the iWork demo from the iPad keynote – apps which use assets like images need to access the photo library. Fair enough – the photo library seems to have some API level access so other apps can load and save to it. What happens when I want to attach two presentations to an email? Would it not make sense that I can attach iWork documents from email the same way I can email documents from iWork? What about say zipping up a couple of documents? What we see today is certainly use of common storage like the photo library but also duplication of concerns in a lot of applications – or even worse, invocation of other ‘required’ apps.

GoodReader is a prime example. Why should it compress files? Why should it have to implement it’s own filesystem and ‘commander’ style interface? And worse, it’s a sucky metaphor which has stuck with us for 30+ years, directories and then folders. Heirarchy. Yuck! It sits at odds with the user experience of the iPhone. But we need it for lack of a better model. It also means if I want to open attachments I receive in email akin to those I send from custom apps like goodreader sending a zip file – I can’t. But with the iPad it becomes imperative.

I don’t know how Apple want to address this – perhaps in a similar way to file recognition on Mac osx – mime types and a publisher subscriber model? It would make sense and could be added to the user experience without breaking existing applications.

Second issue is that of devices. We see a keyboard being released for the iPad. Does this mean that the whole os now can recognize keyboards? What about mice? What about printers? Hmm does this mean we see a device driver model get introduced? It would make sense for it to be the case and furthermore for it to flow through the app store – wireless delivery of drivers which are tested and approved. It just works.

This would also answer some of the talk of multiple tasks on iPhone os. Device drivers are a key part of that space.

The other thing about multiple tasks is the hit on performance. Do we really need multiple apps open at once on an iPad? No. This leads to my final observation. Multitasking.

I think we may see the formal introduction of device drivers in to iPhone os4 – this allows apps to take advantage of certain devices without containing a copy of device drivers for every app – which would be the only way something like a custom heartrate monitor – any third party device could work on an iPhone today. The other aspect of multiple tasks which may change is that of saving application state. If apps can provide an experience more like Safari on the iPhone – where it is looking just as it was when you left it – even though it has been closed and reopened – then the goal of performance versus practicality may well have been achieved.

I hope you found this an interesting read. Like I said – just my observations based on a lot of reading and thinking.





BizBlox Find/Fetch methods explained

21 01 2010

by Stephen Trembath

Just a quick summary of the DOCollection methods and how they work at the query level.

I will add to documentation eventually once I refine this a bit more, and maybe reduce the number of methods:

Take for example a CustomerCollection, comprised of Customer DataObjects. For the below examples the query will find customers with FirstName=Stephen

SetCurrentQuery
Simply sets a SqlBuilder as the query to run on the DOCollection – does not actually run any SQL.
To run the query you have to use one of the below methods. If you do not run any of the below methods, and try to access DataObjects within the collection, it will default to running the Find() method.

Find
For the current query, selects all IDs:
e.g. SELECT CustomerID FROM Customer WHERE FirstName=’Stephen’

Only when the actual Customer objects are accessed is the DataObject loaded via a new SQL query:
e.g. if you do custColl(0) it will run: SELECT Customer.* FROM Customer WHERE CustomerID = ‘……’

Iterating through a large collection, can result in a lot of queries – i.e. one to select all IDs, and one to select details of each DataObject you access.

Fetch
Retrieves all data for all matching rows in the query:
e.g. SELECT Customer.* FROM Customer WHERE FirstName=’Stephen’

This returns more data, but there is no need for follow-up queries to retrieve customer information.

FindAll
Works like a Find, but disregards the current query, and instead finds all matching IDs within the table
e.g. SELECT Customer.CustomerID FROM Customer

Should be used sparingly.

FetchAll
Works like a Fetch, but disregards the current query, and instead finds all matching IDs within the table
e.g. SELECT Customer.* FROM Customer

Should be used sparingly.

Count
If the DOCollection has been populated by a Find/Fetch etc, this will just return the number of rows from the collection itself.

If the DOCOllection has not been populated, this will do a SELECT Count(*) FROM Customer

FindRange
Returns a subset of the rows retrieved by the query. e.g. custColl.FindRange(50, 99) will skip the first 50 rows and return the following 50.

It does this by finding all IDs that match the query, while using a SELECT TOP to minimize the upper range

(e.g. SELECT TOP 100 CustomerID FROM Customer WHERE FirstName=’Stephen’)

It then manually removes in code the IDs that are not needed, e.g. the first 50 IDs in this case.

After that, accessing each DataObject will result in a SELECT Customer.* FROM Customer WHERE CustomerID = ‘……’ type query.

FetchRange
Similar to FindRange() except that it does a SELECT(*) to retrieve all data, e.g. custColl.FetchRange(50, 99) will skip the first 50 rows and return the following 50.

(e.g. SELECT TOP 100 Customer.* FROM Customer WHERE FirstName=’Stephen’)

It then manually removes in code the DataObjects that are not needed, e.g. the first 50 DataObjects in this case.

Generally not recommended.

FetchSelected
This is a new method that is still under development for general use, and needs to be defined better. It is best used where performance is crucial, and where the query is not overly complex.

It is similar to FindRange but uses SQL Server 2005′s built-in paging for efficiency, using the ROW_NUMBER function:
http://www.davidhayden.com/blog/dave/archive/2005/12/30/2652.aspx

It also only selects the columns explicitly entered in the SqlBuilder (you can still add a SELECT *)

However, with that comes a greater chance for limitations in queries, and should only be used for now where fullt tested.

The ROW_NUMBER function will only return from the database the actual rows that are required, and there is no need for manual removal in code.

e.g. Case 1:
Dim mySql as New SqlBuilder(“Customer”)
mySql.addSelect(Customer.

Columns.CustomerID)
mySql.addSelect(Customer.Columns.FirstName)
mySql.addSelect(Customer.Columns.LastName)
mysql.addWhere(Customer.Columns.FirstName, ‘Stephen’)

custColl.FetchSelected(50, 99)

The query will be similar to the following, but using the ROW_NUMBER syntax to retrieve the desired rows:
SELECT Customer.CustomerID, Customer.FirstName, Customer.LastName FROM Customer WHERE Customer.FirstName=’Stephen’

e.g. Case 2:
Dim mySql as New SqlBuilder(“Customer”)
mySql.addSelectAll()
mysql.addWhere(Customer.Columns.FirstName, ‘Stephen’)

custColl.FetchSelected(50, 99)

The query will be similar to the following, but using the ROW_NUMBER syntax:
SELECT * FROM Customer WHERE Customer.FirstName=’Stephen’





We’re Hiring: .Net Web Developer

6 01 2010

Spiral Digital is the most prolific Facebook applications developer in Asia Pacific.

We are looking for a talented Developer to work with a fantastic growing team and develop their skills in social media using .Net techologies whilst working with global brands and agencies in Australia and across Asia.

The Developer’s primary responsibility is to work with the Designer and Producer with direction and mentorship from the Director of Technology writing code solutions against specifications supplied supplied by the Producer.

On top of regular development work, you get time to experiment and research as well as contribute to open source projects.

You will be working with a team of other excellent developers and you will be provided mentoring opportunities and training as well as learning industry best practices.

We really want people who want to learn as an ongoing process and love to write code – we don’t expect you to have huge amounts of Facebook experience, we would rather you just be yourself, learn as you go and be part of our team.

Working at Spiral Digital you will be in a very casual environment in our lab located in Sydney’s south. Definitely no suits or ties necessary. Its near the beach and we encourage a life/work balance – so you can take time to enjoy it… There is no peak hour traffic ever, its just a short walk to the train station and there is free all day parking too. On average its a 30 minute commute from the city.

SUBMISSION GUIDELINES Please provide a concise resume in .DOC or .PDF format. Ensure your resume has evidence of education history and skills. To be eligible to apply for this position you must have an appropriate Australian or New Zealand work visa.

Applications should be sent to jobs@pixolut.com





We’re hiring: Digital Producer

4 01 2010

Spiral Digital is the most prolific Facebook applications developer in Asia Pacific and we’re growing.

We are looking for a talented Producer with strong experience in digital to work with a fantastic team.

Develop your skills in social media whilst working with global brands and agencies in Australia and across Asia.

As Producer you maintain direct, hands-on responsibility for the execution of day-to-day activities on project engagements. You have a passion for getting things done.

Your primary responsibility will be to align strategy/creative with executional capabilities. You will assist the development of project scope and definition materials including statements of work, functional specifications, wire frames, timelines, estimates and budgets.

You will coordinate with project partners and with other disciplines to develop, support and maintain process and a efficient project workflow. You will participate in creative and strategic concepting, bringing their expertise to bare in envisioning exceptional interactive solutions.

Working at Spiral Digital you will be required to work in a couple of locations to manage all of the projects and resources. There is the hip Surry Hills warehouse and our lab located in Sydney’s south. We encourage a life/work balance – so you can take time to enjoy it…

Core Responsibilities:

Assist in development of project scope and definition materials

Maintain, track and report on the status of individual projects and resource utilisation

Coordinate with team, client and other stakeholders on project development issues

Participate in team status meetings and scheduling updates

Assist in management of the financial and timing forecasts for the projects

Oversee multiple projects

Manage project timelines insuring quality delivery

Participate in creative and strategic concepting for projects

Responsible for managing regulatory submission process of all agency developed materials as needed

SUBMISSION GUIDELINES Please provide a concise resume in .DOC or .PDF format. Ensure your resume has evidence of education history and skills. To be eligible to apply for this position you must have an appropriate Australian or New Zealand work visa.

Applications should be sent to jobs@pixolut.com





Our joint venture with Spiral

14 10 2009

Well, we have been very quiet over the past three months on our website and this blog. The reason is simple. We have been very very busy.

When I first started working in software – it was the golden age of web 1.0 bubble and I happened to be in the right place at the right time.

Whilst I had intentions of working in film doing software for companies like industrial light and magic, I was drawn in to developing for the Internet instead.

My first job was with the Sydney office of Euro RSCG – the worlds number five advertising agency network – and it was a heck of a ride. Within a year I was appointed the technical director and I was very fortunate to work on amazing brands doing some amazing things. Several world firsts. It was a buzz.

In 2003 I started Pixolüt to focus more on complex business application development. It has been a completely different ride in the world of startups – I have developed four unique platforms for four very different companies since we started – as well as countless hours of consulting for other businesses.

Recently I started working with Scott Wenkart of Mobux fame – one of the businesses which we developed technology for over the years. Scott had started Spiral from his strong background in media. He has been quite visionary over the past few years in understanding inscentive based online experiences and more recently in the space of social media.

As Scott was working with more and more media agencies we found there was a dire need for the experience Pixolüt had already built up in developing the Mobux platform and social applications to enhance the brand experience on these social environments with brand pages and applications.

After some deliberation, Scott and I established Spiral Digital as a joint venture. It has been a joy to work together over the past few months, it reminds me of all the fun aspects of my early days in advertising – only this time I have the benefit of nearly 15 years of experience and a spectacular team backing it all up.

We will have the new Spiral Digital website up soon, however if you would like to contact the team at Spiral check them out at http://www.spiralglobal.com

Below is a show reel of some of our recent work.

Pages
Pringles Australia – www.facebook.com/pringlesaustralia
Red Bull – http://www.facebook.com/RedBullXRAY
Grinspoon – http://www.facebook.com/Grinspoon?v=app_138339362688
Vanessa Amorosi – http://www.facebook.com/VanessaAmorosi?v=app_142539181926

Apps
Pringles – http://apps.facebook.com/pringleskingcanparty/
Smirnoff Champion’s Pass – http://apps.facebook.com/championspass/
Red Bull – http://apps.facebook.com/redbull-xray/
Nike+ – http://apps.facebook.com/nikeplushumanrace/
Lode Busy Summer – http://www.facebook.com/lode
Orcon Iggy Live – http://www.facebook.com/Orcon
Mobux SMS – http://apps.facebook.com/mobuxsms/page





Designing Applications for Social Traction

31 08 2009





iTOK Captures “Top 25 Under 5″ Award for Fastest Growing Companies

11 08 2009

Leading Remote Computer Service Company Recognized as one of the Fastest Growing Companies in Utah

Lindon, UT (PRWEB) July 22, 2009 — iTOK announced today that they have received the Utah Valley Entrepreneurial Forum’s “Top 25 Under Five” award. The “Top 25 Under Five” award recognizes the 25 fastest growing companies in the region that have been in business less than 5 years.

“iTOK is the leader in remote technical support because we focused on our core business,” said Seth Bailey, iTOK’s co-founder & CEO. “Our first goal was to get our service model right so we could grow profitably. Now we can scale to meet the needs of our large, national customers.”

The founders started iTOK in late 2004 to provide remote computer help and maintenance to customers at their homes or home offices right through the Internet. Their flagship PC Care membership service provides quarterly maintenance to keep computers running smooth and clean, giving their members peace of mind. iTOK services their members directly or through partnerships with some of the largest Internet service providers in the nation.

“This is a tough economic climate for all businesses, right now, especially start-ups,” said UVEF 2009 chairman Roger Andrus. “These Top 25 winners overcame great odds by growing their revenues and creating jobs. They represent the spirit of entrepreneurship that will serve this state well.”

About iTOK:
iTOK is the leading provider of US-based remote technical support for home and home-based business computers. Since 2004, iTOK has been building a team of trained, fluent English-speaking support representatives based in Utah that eliminates the frustration of working with the cheaper foreign-based computer service companies. With the click of a mouse, a user can immediately connect with a service representative, get help on a technical problem and schedule routine maintenance, all while working with someone who knows their computer, their issue history and their language. iTOK provides service to thousands of customers directly and through major broadband service providers.

For more information about iTOK, please visit www.itokhelp.com.