Continuation with Seneca


It’s been a busy first four months of 2011 for me finishing up my last semester for my Bachelors degree in Software Development at Seneca but it appears to be worth it.

Now that I’ve graduated I’ve taken a position with the Office of Research and Innovation at Seneca in the Center for Development of Open Source Technology for the next year working on some projects with industry partners.

Some of them will use Processing.js in part and others will be other technologies. At this point that’s about all I can say though.

One of the things thats been holding me back from blogging besides limited time availability has been the fact that I’m waiting on one last grade to officially _officially_ be able to state that I am graduating.

Part of the reason for this was a final project I have been working on for a professor that includes two processing sketches for use with his course website to help teach game programming students the basics of vectors and matricies. Specifically how vector notation works and what the notation means visually.  The sketch shows how a vectors coordinates change. As you move the head of the vector around it updates the vector notation in realtime and shows the angle of theta. The second sketch is a matrix multiplication calculator that lets the user type in values for two 4×4 matricies and then press the calculate button to see the result of multiplying them together.

I used standard HTML input boxes and then with JavaScript and Processing.js I take the numbers and multiply them out and show the result in a matrix on a canvas.  Sure I could have done it in pure JS and made it simple but I wanted to make use of Processing.js and the canvas element so that I can add more functionality in the future that shows an animation of how the math works to get the result for each piece of the matrix.

This week I continue work on a few projects here at CDOT. One being a game using Processing.js and another being a dashboard app that will show status of the projects going on at CDOT.


Firefly + NAS + iPhone + iTunes = awesome


I recently purchased a network attached storage server for home for a bunch of different reasons. Mainly so I would be able to backup my important files redundantly, store all my media for the entire network to have access to 24/7 without leaving my PC on, and to eventually allow me to switch my PC over to a SSD and just have applications on my pc.

So I pickup a Netgear ReadyNAS NV+ from Canada Computers on boxing day and it was the best purchase I’ve made in a long time.

It is so much more than a file server with RAID.

  • iTunes streaming media server
  • DLNA streaming media server
  • Squeezebox streaming service
  • Bit Torrent web client
  • FTP server
  • CIFS/SMB/NFS/AFP file sharing (WIN/MAC/XNIX)
  • HTTPS web admin like a router
  • Remote access from the internet
  • SSH remote access capabilities

And most of this can also be port forwarded from your router so you can access it anywhere on the internet. Add a subdomain DNS record and you have a friendly URL to connect to it all too!

So tonight I spent a few hours setting up the Firefly open source media server that it comes with which allows you to stream music from the NAS to iTunes as a share and selectively play any songs you want as if the music was stored locally.

Sure you can say oh I could just connect iTunes to a shared folder on another computer and do the same and yes you could but can you build a computer with RAID5 and 4TB of space for under $500? You’ll spend $300 on the HDD’s alone.

So after I got the iTunes server up and running I started thinking how can I stream to my iPhone now and also I wonder if the apple remote app will work to control my iTunes server now.

The answer was yes to both!

You can grab the Apple Remote app from the app store and connect to your wifi network and authorize your iPhone/iPad/iPod to control iTunes on your PC.  You can then access the iTunes streaming server and have full control over iTunes. You could build a HTPC and connect it up to a home theater and then have wireless control of your music from iPhone with all your media redundantly stored or just store it on the HTPC as well.


iTunes Server

iTunes Server Playlist

Now if you want to actually stream your media to your iPhone instead of just control your PC with the iPhone you can do that too.  A couple apps I found that can connect to DLNA streaming devices are MLPLayer and 8Player.  Both have lite versions for free to test out.  8Player works over 3G as well so you could port forward your DLNA service out on the web through your router and have streaming music access anywhere in the world with a 3G connection on your iPhone. Not just your music but also movies and photos can be played with these apps.  I streamed a 2.3GB movie over my wifi to my iPhone seamlessly and it worked perfectly.

8Player browser

8Player movie selection

MLPlayer lite browser

District9 in HD streaming (MLPlayer)

Subtitles supported while streaming from DLNA

Update Jan 7 2012: I’m now using 8Player on iPhone and iPad. Best app purchase I’ve ever made on the app store. In 8Player the server URL you will want to specify is http://youripordnsname:8200/rootDesc.xml. Default port for the service is 8200, but you could map it with your router to any external port to 8200 internal if your router is more sophisticated.


Processing.js 1.0 released!


It’s been a long time coming but the Processing.js team has finished up the last of the tickets for 1.0 and we are proud to release Processing.js 1.0.

You can download it here.

This release includes a ton of features which have spanned through the internal 0.9.8 release and the 1.0 release combined.  You can read the changelog here.  We closed over 100 tickets for this release and spent a considerable amount of time on documentation, tutorials, website updates, and other user and community support infrastructure to make it easier for the end user to experience Processing.js.

If you haven’t had a look at the Processing.js website lately you will see that the exhibition page has been updated with some new examples of Processing.js in use around the web.  The learning tab has been updated to show some new tutorials on how to use Processing.js and some new IDE’s that have popped up on the web over the last while.

Check out the new exhibition entries and the new interactive development environments.

The reference pages have also been updated by Anna over the past week or so for new users and old who want to look up information on the language.

Another major milestone for this release is to provide some initial support for the IE9 beta.  It’s got 1 or 2 issues which we have bugs filed on but for the most part it works very well.

In terms of speed this release has also improved significantly in some areas.

Try it out and show us your work around the web!

Preparing for the release of Processing.js 1.0


I haven’t written about Processing.js in a long time so I though it might be time to post something new with the release of 1.0 tentatively coming up in a few weeks.

We are hoping to finish up the remaining code related bugs and additions within a few days and get the 1.0 release up onto Corban’s test suite to begin testing before finally releasing 1.0.

If you are interested in helping out you can signup on the test suite site and help us test out the release of 1.0 on multiple browsers and platforms. Earn points on the leader-board and work your way up to the top by helping us test the latest release of Processing.js!

If your new to Processing.js and haven’t heard about it…

Processing.js is an open programming language for people who want to program images, animation, and interactions for the web without using Flash or Java applets.

Here are a few projects and tools around the web that use Processing.js that show what it can do.

We are also planning a game development in Processing.js workshop at FSOSS being delivered by Andor Salga on Oct 28 at 9AM in room T2109 at the Seneca @ York campus, TEL building

If your interested in the status of the upcoming release or want more info on Processing.js you can stop by the active IRC channel on channel #processing.js

How to build a class diagram for your projects in Visual Studio 2008/2010 automatically


One of the great features of Visual Studio is it’s ability to easily create diagrams showing the relationships and inner workings of your classes for applications you are building.  Visual Studio allows you to create class diagram files (.cd) in all kinds of different projects such as visual c++ applications.  This diagram file has a design view interface that allows you to drag and drop classes from your solution explorer or class view.  The display will show the class with all its properties and methods and which access level they have.  It will also show relationships between classes and inheritance relationships.

Soundcard Class

Here is an example of a class showing in the design view

From this you can see a number of useful things.  You can see that the class name is SoundCard, it inherits from the iSoundCard interface, and it has a number of fields (properties) and methods (functions).

The permissions of the fields and methods are represented through the images to the left of each field or method name.  Here is a summary of the main ones

  • Private const field
  • Private field
  • Public method
  • Private method
  • Protected method

There are a number of other features the class diagram has such as showing inheritance, macros, structs, and allowing you to save the diagram as an image.

To create a new class diagram just choose Add > New Item on a source folder you want to place it in.

Then select Class Diagram

Then you will be able to create a full class diagram from your classes in your project.

Now I’m sure the next question your asking is what if I update my class or remove it or add a new class ?

Well when you make changes the diagram automatically updates itself for you.  All you have to do is print it again or re-save the image if you are using it outside Visual Studio.

Here is an example of a fully formed class diagram based on the framework we work with in our Game programming course at Seneca.  This framework was written by Chris Szalwinski and is used by GAM666/DPS901 students.

Presenting Processing.js at OCE discovery 2010


Early last week a group of us from Seneca got a chance to present some of our projects we have been working on in the Center for Development of Open Technology at the Ontario Centers for Excellence Discovery 2010 convention in downtown Toronto.

One of the projects we focused on demoing was the Processing.js project.  We competed in the student connections competition which had us do a 5 minute presentation on Processing.js.  Over 1600 students had entries in the competition and we were selected to compete in the top 5 at the convention.

Although we didn’t win it was an excellent opportunity to show off what p.js can do and what its all about.  While working the booth for the 2 days of the convention we had several people come up and ask about processing.js and quite a few people asking about p.js on iPhone and how to get into developing with it as a replacement for flash because of it being blocked on the iPhone and iPad.

It was an excellent conference and presented lots of opportunities for us to showcase what we have been developing over the last 8 months.  Hopefully next year we will get a chance to present again.

A monthly wrapup on processing.js progress


A lot has happened in the last month and I haven’t had time to keep up with blogging.  Between work, work, conferences, processing.js release 0.9, and other things, I haven’t had much desire to sit down and write about it really.

So a few things to write about include the release of processing.js V0.9.  Our 0.9 release is one of our biggest yet with the most changes, bug fixes, and new features.  The processing.js test-suite is updated and by now most of the major platforms and browsers have been tested.  We can still use a few people to help us cover the browsers and platform combinations not yet tested. Sign up today and help us out and learn about processing in the process (parden the pun).

Yesterday marked the end of the OCE Discovery 2010 conference which we attended with Seneca to display some of the projects we are currently working on including processing.js.

I’ll be writing about that in a few days so check back for more info.