ReportService2010.asmx is not the only SSRS 2008 R2 end point

In our on-going quest to create a PHP SDK for Sql Reporing Services 2008 RS, we’ve shot ourselves in the foot by not reading the documentation properly.

The end point documentation states that:

The ReportService2005 and ReportService2006 endpoints are deprecated in SQL Server 2008 R2. The ReportService2010 endpoint includes the functionalities of both endpoints and contains additional management features.

We took this to mean that all end point functions were handled by ReportService2010.asmx but couldn’t find a way to render a report through this service. If we’d read down a little further we could have discovered that execution requests (i.e. rendering reports) is still handled by ReportExecution2005.asmx

As the MSDN documentation concludes, there are three endpoints for Sql Server 2008 RS:

ReportService2010 Provides the APIs for managing a report server that is configured for either native or SharePoint integrated mode.
ReportExecution2005 Provides the APIs for running and navigating reports.
ReportServiceAuthentication Provides the APIs for authenticating users against a report server when the SharePoint Web application is configured for Forms Authentication.

Sql Server Reporting Services SOAP API methods

We’re (trying) to use the SSRS SOAP API at work with a PHP application. We found an open source SDK over at codeplex but soon found it to be badly written, outdated and broken!! We were forced to write our own…

It’s been an interesting process, and we hope to release our library as an Open Source SDK as soon as possible but in the mean time, if you need the documentation and are struggling to find it on MSDN (like we did), its here: http://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010.aspx

Hold out for our release, hopefully before the end of March 2011. If you’re interested in more information just leave a comment below!

P.S. That is the 2010 reference, which is what we’ll be coding for (i.e. ReportService2010.asmx?wsdl)

PHP Kent

We’ve been struggling to fill a PHP development position at work and noticed a lack of community for PHP developers in the Kent area. There is PHP London and thats great, we head up there every month, but perhaps we could arrange an additional meetup closer to home!

For now we just want to see if we can find enough members (say 10+) to warrant starting the group, but as an additional service to agencies in Kent, we’ve set up a Kent PHP Job board, that agencies can post available positions to for free! We’ll be vetting submissions to keep the jobs relevant!

PHP vs Python array memory allocation

I’ve been writing some import scripts for a system at work that will take data in either CSV, XLS, XML or a database (via Zend_Db), then store that data in a common format for us to manipulate and use for generating charts and tables.

I quickly ran in to a problem using PHP, the memory limit. If I import an excel file or database with over 25,000 rows of data I soon hit my memory limit (which on my dev box is set at 256MB!).

At first I looked for problems in my classes, then for memory leaks related to various php bugs. In the end, although I’d managed to cut memory usage down by a quarter, the app still uses way too much memory.

I decided to write a script to test how much memory PHP needed just to store this data in an array, not using my class based data sets. I used the following script:

$data = array();
for($i = 0; $i < 10000; $i++){
$data[] = array(‘one’, ‘two’, ‘three’, ‘four’, ‘five’, ‘six’);
}

The result: 19MB!

If I compare the same sort of data structure in python:

data = []
count = 0

while (count < 10000):
data.append([‘one’, ‘two’, ‘three’, ‘four’, ‘five’, ‘six’])
count = count + 1

The result: 1.39MB

The difference is huge. Unfortunately I think I’m going to have to use a different programming language to handle this part of the project, I don’t think PHP is up to the task. I am a huge fan of PHP, and use it for most things, but despite its need to remain flexible I can’t see why it needs so much memory!

I also produced a graph, I thought it would be pretty:

PHP Python memory chart benchmark

Cycling directions with hill gradient guide

About two months ago I bought a road bike on the cycle to work scheme and have thoroughly enjoyed it. My route to work is really short so I’ve been working on distance rides at the weekend. So far my longest ride is 20 miles, but as that seemed a bit of a doddle, I’m aiming for 40 this weekend. :s

As a newbie to cycling I like to plan my routes in advance and know what I’m up against, especially giant hills! I was excited to see Google has released cycling directions for the US, hopefully it’ll hit the UK soon too. The maps team must have been real busy, because they’ve also released an elevation API.

Until cycling directions hit the UK I thought this was a great chance for a little mashup. I’ve used the google maps, directions and elevation APIs to create a little tool for planning cycling routes. What makes it special? It plots the cycle route with gradient information, allowing you to foresee any giant climbs!

It needs more work but I wanted to get a prototype online. Check it out at http://www.arronwoods.com/bikemap/ – there is a todo list on there that should outline the vision I have for it. For now you should be able to enter a route and have it display inclines in red and declines in green along the route.

Feedback appreciated, just comment below.