TrafficCamNZ – Application development status 30 March 2014Posted by David Wilson in General.
add a comment
It’s been a while between blog posts so it’s about time I let you know what’s been happening in the development world of TrafficCamNZ.
Both the iOS (for iPad and iPhone) and the Mac OS Desktop have been undergoing some substantial changes under the covers. The big items of note are:
- Migrating the main datafile to a Core Data database
- Reengineering the application so that the memory foot print on iOS and Mac is reduced
- Added support for iCloud and iCloud device syncing
- Added support for ChromeCast from an iOS device
- Main display now uses NSCollectionView on Mac OS
- Added Map support on Mac OS desktop under Mavericks
The effort required to get these applications to the point of being able to submit to Apple for Appstore release is significant. With so much change and the new features and then including iCloud support the testing of the use cases is proving very complex and time consuming. The iCloud integration is especially challenging – this feature allows you to make changes on one device and have them automatically replicate to all of your other devices – it’s way cool and it works with the added bonus of getting quite complex very quickly. This time because of the complexity I want to ensure that the user experience for initial startup has a degree of simplicity – I feel as though I’m moving in the right direction – I had some good progress today – I’m not there yet.
So these changes are only getting my attention after my day job. I do not yet have a date for submission to the AppStore. In the mean time I thought I’d let you know some of the detail going on under the hood with a copy and past of my change log for both iOS and Mac OS in their raw form.
RAW change log for iOS:
1.8.4 – Added support for Google Chromecast – on the main screen tap the Google Chromecast icon to chose your Google Chromecast devvice, then single tapping or double tapping on an image will get your Chromecast device to retrieve the image from the internet – as you scroll images the Chromecast image will also change – on an iPad when viewing multiple images Chromecast works best when you tap an image on the iPad for displaying on Chromecast.
1.8.4 – Updates for 64bit support (revoked by Chromecast being only 32bit)
1.8.4 – Bug fix for potential crash when attempting to return image data to a screen that no longer exists
1.8.4 – Fixed an issue on the Chooser screen where the Camera Descriptions and URLs were being truncated
1.8.4 – Fixed a performance issue related to colour blending on table cells
1.8.4 – Fixed a performacne issue related to colour blending on all camera graphics images
1.8.4 – Fixed an issue in preferences where e-mailling the datafile would not present the send/cancel buttons on the e-mail form
1.8.4 – Updates to the geolocation components to allow for changes within iOS
1.8.4 – Fixed some formatting issues (size and background colour) with the popover on the Single Image display on iPad
1.9.0 – Camera information is now stored in a Core Data database
1.9.0 – iCloud – syncronise camera data between devices using the same iCloud account including between devices iOS and Mac
1.9.0 – Chooser screen re-written and re-re-written (happy now … maybe)
1.9.0 – dramatically reduced memory footprint, increased speed and optomisation
1.9.0 – Changed user experience for first time launch
- migrate to local store (when iCloud is turned off) and vice versa
- resolve the crash bug for syncing
- Find cameras around my location coded for core data
- Predictive camera function – coded for core data – requires some testing
- test conversion (will have to start by installing old version)
- A new features page that displays on application launch
- user experience on startup
RAW change log for Mac OS:
1.2.0 – Almost a re-write – internal data store changed to core data, better, stronger, faster
1.2.0 – New list screen – double click a camera to bring up the edit screen
1.2.0 – New edit screen
1.2.0 – Main window rewritten – faster – more user control over the layout, horizontal or vertical scrolling, with 1, 4, 9, or 16 images shown on screen at one time – and more if you choose the zero option – it will fit as many as possible
1.2.0 – Camera import now displays log on screen
1.2.0 – Improved memory management – code conversion to ARC
1.2.0 – Map pins can be clicked on to show a pop over of the camera and image. The window can be detached and moved away and resized manually
1.2.0 – Pinch and zoom is enabled on the main window for zoom in and zoom out – double tap away from the images to return to normal size
1.2.0 – 64bit support complete – remove linked framework Quicktime – this had been causing a warning
- speed up merge/import by using sorts – reduce the fetches
- camera validation (validate – testing for each camera)
- import redone for timeLapseDuration (was NSString)
- Timelapse convert and test
- memory footprint – upgraded project to ARC – leak problems have gone
- NSCollectionView implementation –
- Preferences – when doing camera merge – user could click OK – what happens? – there are no screen updates for activity
- deleting cameras – and the main window should be told to refresh the display – and then show no cameras – this isn’t working – NSCollectionView
- Fixed import/merge errors for class NSNumber and NSDate on timeLapseDuration and dateLastRetrieved
- after import – refresh main display
- fixed map popover – it was still using origional cameracontroller
- fixed a crash when urlcachecontroller tried to return an image or failure and the delegate had gone – the crash exception is captured now
- deleting cameras – should show progress
- importing cameras can show progress somewhat better
- changing the featured cameras (i.e. deleting) does not update the cameras on the main window (i.e. remove the cameras that are no longer featured
- deleting the ubiquity container – tested successfully
- memory usage after importing data is too high – (fixed somewhat with @autorelease)
- Closing the main window (cmd-w) doesn’t free memory resources – dealloc – was an issue with “target” in DGButton
- The deletion of duplicate cameras should be on the bulk cameras screen – added to bulk cameras menu
- Fixed an issue when updating XMLTags – the Bulk Utilities iwnodw was being closed and causing an application crash
- Test export of library for complicance with iPhone and older version of desktop – Title has to convert to Description
- On the Bulk cameras window – Delete all cameras, do an XML load
- Fixed an issue when closing the log window – it also closed the bulk upload window
- Fixed an issue when opening the Bulk Functions Window and closing the Bulk Functions with – the Associated menu item would not remove and display correctly
- Eliminated i386 compiler warning for 32bit only code – Quicktime framework is no longer linked (was not required)
- use icloud for the data
TrafficCamNZ for Mac and iOS 11 January 2014Posted by David Wilson in General.
add a comment
I’ve been working on TrafficCamNZ Desktop for Mac over the last few months converting it to use CoreData instead of an internal array for the main data source. The changes are nearing completion with testing so far having gone well. Along the way I have discovered some bugs, fixed the bugs, and made many enhancements where I thought things were not good enough. The whole program is now better, stronger, and faster. It is almost ready for an App Store submission pending more testing with iCloud.
I’ve also been working on TrafficCamNZ for iOS – this has some performance fixes, bug fixes, and some minor enhancements… and it includes 64bit support for the new iPhones and iPad’s released late 2013. Currently in testing – I’ll decide soon when to submit for App Store approval.
TrafficCamNZ Desktop for Mac – News 16 December 2013Posted by David Wilson in General.
add a comment
TrafficCamNZ Desktop for Mac has been getting an internal make over. Lots has been happening on the inside… all of which should improve the user experience and make it much faster and more reliable to use. The changes are:
* update to use Apples CoreData database
* the Main window now uses a NSCollectionView to display the images – this has given some more flexibility in layout – you can choose horizontal or vertical scrolling – and its also faster
* I’m attempting to store the database on iCloud – if I get this working and update the iPhone/iPad application too … then the desktop changes will automatically be reflected in the iPhone and vice versa.
* when you show the camera list – you can double click on an entry to bring up the edit mode – yea… this is way better than clicking the edit button
* imports and updates now show progress
* memory management is much improved… for those technically inclined… I’ve updated to ARC.
I’m still testing and chasing down problems:
1. memory footprint while much better – can get too high at times – so I’m trying to control that
2. iCloud – I want to be more certain about things here before I release
3. Coredata – just following up on an import/re-initialise bug – I need to reproduce and track it down
TrafficCamNZ Desktop for Mac v1.1.5 2 November 2013Posted by David Wilson in General.
add a comment
It’s been approved and on its way through the AppStore.
This new release adds support under Mavericks and makes use of Maps and a whole bunch of other changes.
- Added ability to import XML feed for Mass Pike
- Improved presentation for bulk processing of data via XML import
- Changed internal screen size representation to 2048 x 2048 – this has significantly improved the quality of images display (where they were of a high quality already)
- Image description is now written under the images – previously the description was written over the top of the images.
- XML Input window is now a resizable split view and shows the camera image retrieved – room now to add a MAP view c/- 10.9 when available with supplied GPS coordinates.
- Update to the default data file
- added Maps to the XML Update – so you can see where the camera updates are going
- added Maps to the Edit Camera window
- added Maps window – shows pin for each camera – number of camera pins shown depends on map zoom level, one finger tap to zoom in, two finger tap to zoom out, two fingers to move and rotate, and pinch to zoom as well. Search for locations, the map will show you cameras in that area if they are known to TrafficCamNZ.
- added ability to drag and drop images to the Finder or other applications as .png files. To refresh an image you can now control-leftclick
TrafficCamNZ – Desktop updates under development 30 September 2013Posted by David Wilson in General.
add a comment
The Mac Desktop version of TrafficCamNZ is getting Maps Support in the next version of the Mac Operating System – Mavericks.
Sony STR-DA3600ES and iPhone AV Receiver Remote 16 September 2013Posted by David Wilson in General.
This is worth a small note.
I’ve got a Sony Receiver – model STR-DA3600ES. I’ve had it for a couple of years now – I got it for a number of reasons, the built in ethernet switch, 4 HDMI in ports and generally quite a bot of connectivity.
It ships with some Windows software that you can use to configure the AMP – nice – pity there is no Mac software or that Sony has not made available an SDK or spec so that someone could write one with reverse engineering the protocol.
For some time I’ve not been able to run the Windows software under any OS without it freezing or crashing under Windows XP… very poor.
It turns out that the reason for the crashes under Windows XP is that the AMP cannot be found an the reason that it cannot be found is that a setting on the AMP needs to be changed – only that setting is not on the onscreen menus. PERMIT-PC. This explains the setting to change. http://community.sony.co.uk/t5/Home-Cinema-Projectors-Players/STR-DA3600ES-Firmware-update/td-p/288992
Liftoff! – Under Windows XP at least. Looks like Permit-PC has to be ON.
So that brings me to the iPhone application. AV Receiver Remote. This application is only available from the US iTunes store. https://itunes.apple.com/us/app/av-receiver-remote/id371425035?mt=8
Reported to work with:
Just not mine. I was running firmware 1.026 on the AMP, and have since upgraded to firmware 1.030. My firmware has come from the UK Sony support site. I am unable to install the US firmware version – denied.
I can confirm that another Sony iPhone application Audio Remote can see the AMP – thus ruling out anything to do with network connectivity issues such as AMP or iPhone ip addressing.
I have reported the connectivity issue to Sony New Zealand and await further feedback.
My conclusion is that the iPhone application AV Receiver Remote is expecting to see the US version of the AMP and is possibly dependant on something in the US version of the firmware.
I have performed a complete factory reset on the AMP – yea – not good without having saved the configuration to the PC (actually it wasn’t connecting at that stage because of the PERMIT-PC setting).
if you are reading this message because you have a similar issue, you may also be interested in reading some other links that I came across in my web travels.
In the mean time … I’ll wait… or get out a packet sniffer…
TrafficCamNZ – Datafile release 14 August 2013Posted by David Wilson in General.
add a comment
A new datafile is has been released. You can force an XML Merge via preferences or TrafficCamNZ will remind you at some point in the next 7 days when you run the application.
The updates come from your feedback, thank you, and from some of the provider updates.
Updates and new cameras for London, Leads, Caltrans, Madrid, and New Zealand.
There are some Application updates coming – I’m hoping to schedule the release with the next Apple/iOS product launch.
TrafficCamNZ – New Release v1.8.1 and new data File 17 June 2013Posted by David Wilson in General.
1 comment so far
About a week ago the latest version of TrafficCamNZ for the iPhone and iPad was released. The update contained some minor interface changes and a couples of fixes:- Introduction of a colour theme
- Setting of some realistic defaults for Predictive mode
- Ordering on Preferences changed – modes now grouped together
- Operating mode highlighted on Featured screen with Favourites, Auto Detect, or Predictive highlighted – other modes greyed out when not in use.
Today I’ve also updated the main data file. I’ve run a validation over the 8500 cameras that were in the data file and dropped those cameras that did not return an image. I then reprocessed data feeds from various providers around the world, TransitNZ, London Transport and some others. This process updates the cameras and adds any new ones that the providers have put online and it may even update GPS coordinates if they are available.
So the data file is about as clean as I can get it in an automated way.
Notably, for me anyway, there are 5 new cameras online in my geographic region that I didn’t know about. You can find them in the feed under the following names:
[NZ] WN – Haywards – Haywards
[NZ] WN – Melling – Melling
[NZ] WN – Paekakariki – Paekakariki
[NZ] WN – Tawa – Tawa
[NZ] WN – Plimmerton – Plimmerton roundabout
The update will be available by running TrafficCamNZ. If it doesn’t detect that the update is available, give it 30-60 seconds if you’re on WiFi, you can go into the preferences and tap XML Merge to force the update.
I’m now looking at changes for the next version of TrafficCamNZ and welcome any suggestions you might have. At this stage it’s looking like I will only support iOS6 and above.
iPhone 3GS – Unlocked – no longer Jail Broken 16 January 2013Posted by David Wilson in General.
The family and I visited some friends between Christmas 2012 and the New Year – we had a great swim in their pool and enjoyed a very nice dinner with the plan being to take the one hour journey home after. While there the 16 year old daughter discussed a relatively small issue about her iPhone 3GS where despite names and phone numbers being in the Contacts application, every text message was from a number – not a name. You could add the number to the Contacts yet it would not translate the number to the name.
I noticed that there was an over-the-air iOS update outstanding… actually the phone was on iOS 5.0. Reportedly the update had been attempted previously and failed – this is weird – never heard of this before. I also noticed an expired profile on the device – something else you don’t usually see.
The upgrade issue is easily fixed – plug the iPhone into a desktop computer – sync with iTunes and let iTunes perform the iOS upgrade. And that’s where it all went wrong….
* I don’t believe the backup worked too well
* the latest iOS (6.0.1) downloaded and was installed on the device where upon this failed and left the device in a hung state
* so put the iPhone into DFU mode and attempted a re-install of iOS 6.0.1 which also failed – brilliant – any ideas I want to go home!
* inspecting the logs I found that one of the partitions on the iPhone had a security error of some sort…
- No working iPhone 3GS
- A 16 year old girl without her critical lifeline!
Cleverly she had her contact numbers stored on the SIM – so with the SIM removed and installed in another phone she was able to establish earthly contact. Meanwhile I was able to take the phone home for further investigation.
Well I had my suspicions by this stage that the iPhone 3GS was either faulty or Jail-Broken. If it was Jail-broken that certainly would not have been done by the 16 year old. So where did the phone come from?
At home I was able to get the phone into DFU mode and perform a successful iOS 6.0.1 restore – why this didn’t work originally I have no idea.
With the phone restored I began the process of first use and activation… which failed. And it always kept on failing even after multiple successful restores. This is wrong – all New Zealand iPhones are unlocked and activate. At this point I didn’t have any spare SIMs to put into the phone and perhaps the activation was failing because of this. The next day it was off to the petrol station to get a 2Degrees SIM to test. Activation still failed.
Where to next? … Google!
I found many web sites that would get the phone working again in a couple of “easy” steps for a “modest” fee. Despite the advertising and perhaps ease of implementation there’s no fun in that when you can do it yourself in 30 steps. At the end of the day all of these mean the phone is jail broken to work – this isn’t a good solution and will lead to trouble again!
During the course of this investigation I found out from the owner that the phone had been purchased through TradeMe (New Zealand equivalent to eBay) and I was able to view the auction where it said “Jail-Broken to run applications”. Noting here that it didn’t say New Zealand new, or Jail-broken to work with New Zealand cellular carriers.
It was about now that I discovered http://www.officialiphoneunlock.co.uk who offers to properly unlock iPhones in the Apple database so that iTunes can activate phones – that’s a neat trick. For 10 British pounds (NZ$23.88) I paid to discover that the phone was indeed carrier locked to AT&T in the USA (it didn’t say that in the TradeMe auction details) – this took about 3 days. I then paid 25 British pounds (NZ$49.34) to get the phone unlocked. The price can vary depending on the carrier the phone is locked to. The unlock took about 6-12 hours.
Great – the phone is unlocked – simply plug it into iTunes and activate…. No not quite that simple – the activate still failed. http://www.officialiphoneunlock.co.uk were prepared for this issue and their e-mail advises to disconnect and reconnect the iPhone and try again, and if that fails try an iOS restore. Needless to say both of these steps failed too. So I contacted http://www.officialiphoneunlock.co.uk, as they suggested, for further help.
They pointed me at this web site http://www.redmondpie.com/how-to-downgrade-iphone-3gs-3g-06.15.00-to-05.13.04-baseband-for-unlock-and-working-gps/ to fix the problem. This involved using the hacking tools to force a downgrade of the BaseBand firmware on the phone from 06.15.00 to 05.13.04 and then performing a iTunes restore of iOS 6.0.1. It’s possible that the person who performed the original jail-break had upgraded the iPad base band to 06.15.00 which prevented the activation or in other reading on the we perhaps there was some other form of corruption with the Base Band. I followed the instructions and completed the downgrade with the Redsn0w tool as per the instructions.
I’m very pleased to report that this process was successful and that the iPhone was successfully unlocked by iTunes.
The lessons learnt here are many, especially from the purchasing side.
The sale words don’t speak the whole truth – they were nothing like the truth – buyer beware:
My iPhone 3GS 32Gb is for sale. It’s in very good condition, no cracks, scratches etc. Always had mirror screen protector fitted so screen is like new, always been in leather case so back is like new too except some very, very faint wear marks from being inside the case, very hard to see them though.
It’s on IOS5.0.1 and has been jail-broken for downloading apps. Can be used on anyone’s network, currently on Vodafone pre-pay sim. Comes in original box with USB charging/connection cable, no headphones sorry for health reasons. “
What’s missing? – This phone was originally purchased in the USA and is carrier locked to AT&T – it has been Jail Broken to work in New Zealand – you must not perform iOS upgrades.
When you do purchase second hand – do look for words like “Factory unlocked”, or warning words like “do not perform software upgrades”.
On the hacking side – playing with Redsn0w – be very careful and very deliberate – read all the words and if you have step by step instructions read, read, read. It’s fun but a miss step can leave you with a bricked phone.
Obj-C NSToolBar and Windows created programatically. 21 December 2012Posted by David Wilson in General.
add a comment
I’ve had this compile error out of XCode. Using the internet to solve it wasn’t that helpful.
I’m Using 10.8, compiling for 10.6 and above.
XCode version is 4.6
ERROR: Can’t have a toolbar in a window with as it’s borderview
In my case the Window is Manually created. To remove the error I had to add “NSTitledWindowMask”
Note that the NSWindow class reference says the following.
windowStyleThe window’s style. It can be
NSBorderlessWindowMask, or it can contain any of the options described in “Window Style Masks,” combined using the C bitwise OR operator. Borderless windows display none of the usual peripheral elements and are generally useful only for display or caching purposes; you should normally not need to create them. Also, note that a window’s style mask should include
NSTitledWindowMask if it includes any of the others.
There’s the code that creates the window – successfully.
unsigned int styleMask = ( NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSUnifiedTitleAndToolbarWindowMask );
prefsWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 350, 200)
Hope this helps someone else.
Thank you to Glenn for his assistance.