Nexus One 3G Connection via Rogers
As of recent, am I the proud new owner of Google’s Nexus One. It isn’t quiet being sold in Canada, but you are still able to obtain them from Google in the US, who will send over an unlocked phone fully compatible with the GSM/HSPA networks we are running here.
This means that you have to set the phone up to work on the Rogers network yourself, and while It should be a simple thing, It definitely had me frustrated for a short while.
Here’s the information you need to know:
You need access point information in the phone to use wireless data transfer. From you’re home screen, navigate to:
Settings > Wireless & networks settings > Mobile network settings > Access Point Names. From this screen, you can click the menu button for a prompt to add a new APN. Do this and fill in the following information.
- Name: Rogers
- APN: internet.com
- Proxy: <not set>
- Port: <not set>
- Username: wapuser1
- Password: wap
- Server: <not set>
- MMSC: <not set>
- MMS Proxy: <not set>
- MMS Port: <not set>
- MCC: (Should already be filled in)
- MNC: (Should already be filled in)
- Authentication type: <not set>
- APN type: <not set>
Hurrah for internet on the fly. We still need one more access point to send and receive Media.
- Name: Rogers MMS
- APN: media.com
- Proxy: <not set>
- Port: <not set>
- Username: media
- Password: mda01
- Server: 172.25.0.107
- MMSC: http://mms.gprs.rogers.com
- MMS Proxy: 10.128.1.69
- MMS Port: 80
- MCC: (Should already be filled in)
- MNC: (Should already be filled in)
- Authentication type: <not set>
- APN type: mms
Restart your phone at this point to complete the process.
I’m sure Rogers has this information publicly available somewhere but I couldn’t find it. I did however find a pretty helpful post by them in which they identify the APN information Android phones need, unfortunately for whatever reason It didn’t work for me so I called Rogers tech support and after 20 grueling minutes on the phone, I managed to get hold of somebody competent enough to understand what I was asking for. Hope this saves you a phone call, if you’ve ever had to call a tel-co provider in Canada you know my pain.
Comment (1)
Immersive Video From Haiti
I don’t often use my blog to share content, I find mediums such as Twitter or Facebook serve that purpose better, but I saw this today and it struck me as particularly awesome so I wanted to help generate some exposure.
Immersive Media, a North American based digital agency, have created a video stream, which can be manipulated on the fly. As you travel through Haiti, you can turn the camera to look in any direction you please.
While this has been possible for a while, you don’t see it often, and I would love to see it more.
More videos from Haiti at
http://www.immersivemedia.com/haiti/
You can donate to the Haiti relief effort at
http://donate-haiti.org/
Comment (0)
Flash Tracer For Firefox 3.5
I just installed Flash Tracer on the newest version of Firefox (currently 3.5.3), and I wanted to shed some light on the steps you will need to take to get it working.
The first think you will notice is that Alessandro Crugnola, the talented creator of this add-on, no longer continues it’s development, so if you visit it’s page on the Mozilla Add-ons website (https://addons.mozilla.org/en-US/firefox/addon/3469), it does not give you the option to install it, instead telling you: “This add-on is for older versions of Firefox”. You can still install it by loading the add-ons .xpi file though, which is located on its home page http://www.sephiroth.it/firefox/flashtracer/ (The link is here if your feeling lazy).
Next you will need to tell Firefox that you are comfortable using out of date add-ons. Open a new browser window or tab, and type about:config into the address bar as shown below.
![]()
After promising Mozilla that you will be careful, you will see a list of the Firefox configuration details. Right click anywhere on this page and create a new Boolean.

Give your new Boolean the following name: extensions.checkCompatability.

And finally, set it’s value to false.

Restart Firefox and your add-on should now load correctly.
Click > Tools > Flash Tracer to open the Flash Log and you should see something like this:

If you don’t see the text inside it, you might have to configure Flash Tracer to read the correct file. You can do this by opening the preferences panel, (click the small wrench icon in the bottom right hand corner of the window) and browsing to the correct location. If you have Flash Player 9 forwards, It’s probably in one of these locations:
- Osx: {user}\Library\Preferences\Macromedia\Flash Player\Logs\flashlog.txt
- Windows XP: C:\Documents and Settings\{user}\Application Data\Macromedia\Flash Player\Logs\flashlog.txt.
- Windows Vista: C:\Users\{user}\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt
If you can’t find the file at the any of the above locations, or it’s not picking up trace statements when you know it should be, I’d suggest reading through this fantastic post by Mark Walters on correctly setting up Flash Player’s error reporting.
Random Short Story
A year or so back I was playing a Flash game on NewGrounds and hadn’t shut down the Mac Console (which was still reading through the error log), and I noticed the following message: “need to implement score saving still, sorry!!”.
It’s since been fixed, but I thought it was hilarious at the time, and as such I’ve tried to make a point of leaving funny messages hidden inside anything I’m not being paid to create. I thoroughly encourage you to do the same!
Comment (0)
XML Directory Lists (With Php)
Here is a snippet of php code that when run, will produce an XML markup of the images contained within a directory.
This is great is you are building a flash sideshow or similar and want to remove the dependency that comes with hand coding XML files.
I added a bunch of comments, feel free to let me know if anything needs explaining in greater detail.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <?php function DirDisplay($LocDir) { // list of valid image extensions to look for $valid_ext[0] = "jpg"; $valid_ext[1] = "png"; $valid_ext[2] = "gif"; $valid_ext[3] = "bmp"; // init XML output print '<?xml version="1.0" encoding="UTF-8"?>'."\n"; print "<Images>"."\n"; // open directory $TrackDir=opendir($LocDir); // loop through files while ($file = readdir($TrackDir)) { // check for non-parent file names if (!($file == "." || $file == "..")) { // reads file extension $ext = substr(strrchr($file, '.'), 1); // makes sure file has allowed extension if (in_array($ext,$valid_ext)) { // adds file to XML output print "\t".'<Image>'; print '<![CDATA['.$file.']]>'; print '</Image>'."\n"; } } } // end XML output print "</Images>"."\n"; // close open directory closedir($TrackDir); return; } @ DirDisplay("."); ?> |
And here is an example output. I’ll post up a demo using this xml markup in a future post.
1 2 3 4 5 6 7 | <?xml version="1.0" encoding="UTF-8"?> <Images> <Image><![CDATA[Image_01.jpg]]></Image> <Image><![CDATA[Image_02.jpg]]></Image> <Image><![CDATA[Image_03.jpg]]></Image> <Image><![CDATA[Image_04.jpg]]></Image> </Images> |
Here’s a link to download the file, hope it helps!
Comment (0)
Flash & Flex IRC Channels on Freenode.
I’ve spend a good amount of time trying to give back to the community of late and wanted to share #Flash and #Flex, IRC chat channels on the Freenode network. They have been an invaluable resource to me in my time using the Flash Platform, I’ve really not seen a more helpful bunch! Once in a while I see a few big names like Ryan Stewart from Adobe offering to pass on feedback from developers to the people that need to hear it, which is awesome!
Hope to see some new folks on the network, my handle is RazPeel for anyone wanting to look me up.
Use of these channels will be obvious to most, but for those not familiar with IRC, here is the ten second rundown.
- You will need an IRC client. There’s millions, a popular one is mIRC. You can download it at this link.
- When you have it installed and running, use the command:
/server irc.freenode.net - Once connected, two more commands:
/join #flash and finally /join #flex
Alternatively you can always use a web based chat client if you like, such as the one at this link.
Comment (0)
Simple Flash Countdowns And Timers
I get asked for help doing different variations of Countdowns and Timers all the time, hopefully this post will shed some light on things.
I’ll try cover and explain the four variations I get asked about the most but between them you should be able to create any of the other variations with ease.
1) Simple Countdown In Seconds
1 2 3 4 5 6 7 8 9 | var countDownTime:Number = 10; var startTimeUTC:Number = new Date().getTime() / 1000; addEventListener(Event.ENTER_FRAME, updateTimer); function updateTimer (e:Event) :void { var secondsUTC:Number = new Date().getTime() / 1000; var timeRemaining:Number = ((startTimeUTC + countDownTime) - secondsUTC); } |
Pretty simple code, all we are doing is setting a start time and comparing the current time to it when the update function runs.
Note: The above snippet doesn’t actually do anything with the counter or perform any task when the counter reaches zero. I’m rather just showing how to calculate time, implementation of the code is up to you!
Here is a sample output:
Lets take a closer look at the code now.
Line 2 defines startTimeUTC, which is populated by creating a new Date() object.
Note: The Date() object defaults to the current date and time when instantiated without any parameters, so we can immediately call it’s getTime() method and store the result.
We should now have a funny looking number like: 1248677922937, which is actually a UTC representation of the present time in milliseconds. On this occasion however, we just need the seconds, so we would divide that number by 1000, (1 second is 1000 milliseconds).
Now every time the update function runs, we simply replicate this action to create a new Date(), and compare it to the Date() we stored in startTimeUTC.
2) Simple Count Up In Seconds
Measuring time expired is really just the above backwards.
1 2 3 4 5 6 7 8 | var startTimeUTC:Number = new Date().getTime(); this.addEventListener(Event.ENTER_FRAME, traceOutput); function traceOutput (e:Event) :void { var newTimeUTC:Number = new Date().getTime(); var timeExpired:Number = (Math.floor(newTimeUTC - startTimeUTC) / 1000); } |
Example:
3) Countdown To Date
This variation builds on the first and second countdown examples but brings more to the sandbox to play with, lets jump straight into the code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var futureTimeUTC:Number = new Date(2010, 0).getTime(); this.addEventListener(Event.ENTER_FRAME, updateCounter); function updateCounter (e:Event) :void { var newTimeUTC:Number = new Date().getTime(); var timeRemainingUTC:Number = futureTimeUTC - newTimeUTC; var clockSecondsPast:Number = Math.floor((timeRemainingUTC / 1000) % 60); var clockMinutesPast:Number = Math.floor((timeRemainingUTC / 60000) % 60); var clockHoursPast:Number = Math.floor((timeRemainingUTC / 3600000) % 24); var clockDaysPast:Number = Math.floor((timeRemainingUTC / 86400000)); } |
This time we have manually set the Date() to January 1st, 2010 (The first month is 0, not 1). The time will default to 00:00am since it was not set, but this is what we want, new years!!
Once we have calculated timeRemaining in the update function, we can parse the information we need from it. Remember it is currently a UTC format number, so think of it as the number of milliseconds, with that in mind it isn’t hard to find what we need.
Note: The % operator is modulus, it returns the remainder of a number.
- Seconds = (UTC Value / 1000 Milliseconds) Mod 60
- Minutes = (UTC Value / (1000 * 60 Seconds)) Mod 60
- Hours = (UTC Value / (1000 * 60 * 60 Minutes)) Mod 24
- Days = (UTC Value / (1000 * 60 * 60 * 24 Hours))
If you didn’t catch it, we are just dividing by the amount of Milliseconds in each. Here is an example:
4) Counter From Past Date
The last variation is really just the previous example backwards, for when you need to count forward from a date in the past.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var startTimeUTC:Number = new Date(2009, 06, 26).getTime(); this.addEventListener(Event.ENTER_FRAME, updateCounter); function updateCounter (e:Event) :void { var newTimeUTC:Number = new Date().getTime(); var timeExpiredUTC:Number = newTimeUTC - startTimeUTC; var clockSecondsExpired:Number = Math.floor((timeExpiredUTC / 1000) % 60); var clockMinutesExpired:Number = Math.floor((timeExpiredUTC / 60000) % 60); var clockHoursExpired:Number = Math.floor((timeExpiredUTC / 3600000) % 24); var clockDaysExpired:Number = Math.floor((timeExpiredUTC / 86400000)); } |
And an example to match:
Comments (2)

