Quick tip: Telerik Reporting and export to PowerPoint

For a project of mine, I needed to export Telerik report to PDF, Excel and Powerpoint. Now, first two options you get out-of-the-box when using Telerik.Reporting dll file. The third one, however, is a bit more tricky. Setting a format to PTTX in RenderReport method of ReportProcessor will return rendering exception. Quick Google search led me to Telerik help page, where I found out that to use PPTX as output format, I also need to use OpenXMLReporting extension for Telerik.Reporting. Thankfully, extension is included with Telerik Reporting product.

I put dll to my project and added reference to it and after solution rebuild, I tried to export to PowerPoint format again. Same failure. After some more googling, I have found link to support ticket, where it further explains that one needs an OpenXML SDK 2.0 for OpenXMLRendering extension to work. OpenXML SDK 2.0 is not included in Telerik Reporting and must be downloaded from the internet. I installed the SDK, copied dll to my project and added reference to it. Another rebuild and… it worked.

So, to keep long story short. To export Telerik report to PowerPoint format, you will need:

  • OpenXMLReporting extension that you can find in Telerik Reporting installation directory.
  • OpenXML SDK 2.0 that you can find here.

Why Selected event handling should be banned

So… Lately, admins of a web application I wrote several years ago got my attention for claiming the app getting slow. Now, as I, as a regular user of the same app, never noticed any performance issues, I decided to investigate. First problem I encountered was that integration and testing environment had way too little data to be presentable. A talk with our DBA sorted that out for me. Next, it was time for performance testing and locating the problematic code section.

[Read the rest of this entry…]

Bye, bye Chrome!

As of a week ago, my computers are clean of Google Chrome. Why would I get rid of fastest browser that everyone is just ga-ga about?

Well, let me tell you a little story. My home computer is a thing of evolution. I bought it new like 6 years ago and changed parts that died or needed upgrade. One thing that stayed throughout all evolution steps is, believe it or not, a floppy disk unit. To be perfectly honest, I really cannot tell you why. I haven’t used a floppy disk in ages. I cannot even remember where I have stored remaining floppy disks. One good thing about floppy drives (and the most annoying one) is that floppy drive cannot tell if a disk is in it, unless it tries to read of it. Hence a nice noise.

[Read the rest of this entry…]

Search engine optimization (SEO)

Recently, a good friend of mine asked me to check why his website is not attracting as many users as he expected. To be honest, he didn’t expect much, but he still expected more than what his website attracted. He also pointed out that the website gets poor ratings in search engines.  I took a look at his website and I saw that it would also need a design and content improvement. Non-the-less, the site is content heavy and it seems to contain all keywords that searches failed on. And by fail, I mean that his site was found somewhere on 15th page of Google search. After seeing this, design and content improvement got pushed down on priority scale. It was time for some search engine optimization (SEO).

[Read the rest of this entry…]

Re-joining 21st century

After a short stint at Twitter in its early days, we are now re-joining the 21st century. So, you can also follow as on @LotusHints . Yeay 🙂

Conference FFWD.PRO 2013

Yesterday, I visited Zagreb for their annual FFWD.PRO conference. Wanting to know more about UX design, the company decided it would be beneficial to me and the company, if I went. So I did and I must say it was probably best conference I have experienced thus far. Sure, organization could be a tad better. Sure, some speakers should be checked for their English language speaking capabilities prior the conference, but all in all, the conference rocked.

I specially liked lectures about sketching and UX design process (kudos to: Eva-Lotta Lamm, Janko Jovanović and Milica Jovanović), but others were great as well. Being a developer and not a designer, I had fears the conference will be too designer oriented. I came back with hell of a lot knowledge of UX process, design psychology and design responsiveness and am now looking at how to implement some process principles at the place I work. Hence, I highly recommend visiting FFWD.PRO next year.

[Read the rest of this entry…]

Quick tip: Calling Wcf over ajax parser error problem

If you are using Telerik controls and you decide that it would be nice to have jQuery making an ajax call to your WCF service, make sure that you remove all instances of RadCompression http module from web.config (as described here) file or weird things will start to happen.

In my case, WCF service should return data in json format. However, it only returned only a small portion of result (about 30 characters), which resulted in jQuery ajax call failure as returned data was not json format any more. After entire day of obsessive googling, I came upon this article which led to the final solution: removing dang RadCompression http module form web.config.

Quick tip: RadComboBox and WCF over https

At work we are are constantly using Telerik components. To be honest, sometimes we also use them, where a plain ASP.NET control would be just as fine. Anyway, we use RadComboBox control as auto-complete fields for various search filters etc. Normally, we have RadComboBox connected to regular .NET Web service and it works like a charm. But, to make things a little less dull, I decided to write a WCF service and connect it to RadComboBox.

First, I checked if RadComboBox supports WCF services and it appears it does, as long as it is a Ajax-enabled WCF service. Second, I want my WCF service to be part of existing web application and not a standalone project as no other project will use it. So, I created a simple Ajax-enabled WCF service with one method which returned exactly the same string for every call. Nothing fancy. I connected WCF to RadComboBox, and it worked like a charm.

However, then I remembered that our test and production servers enforce SSL encryption, which means that by default my application will run on https. I thought it would be no problem, but there is no way that one can configure RadComboBox and Ajax-enabled WCF service to connect via https. To be honest, this is not fault of RadComboBox control. It is due to the fact that Ajax-enabled WCF service must use webHttpBinding or it doesn’t work. Well it does, but it returns an encoded blob. Anyway, with hours spent on fiddling with configurations of both app and IIS, I finally gave up and created a plain old regular .NET Web service. It may not be as fancy, or interesting, but it at least works.

Win32: Hide to system tray – Part 3

In Part 1 of the series, we have seen how we can hide the application and display an icon in system tray. In Part 2 we have implemented a redisplay of application window upon double click on system tray icon. In Part 3, we will see how we can display a popup menu on left and right click on system tray icon without disturbing double click behaviour.

[Read the rest of this entry…]

New keyboard

After years of abuse, my Logitech UltraX keyboard decided to die and forced me to find a replacement. As I always have been Logitech man when keyboards and mice are concerned (despite those few years in 90s, when I enjoyed Cherry keyboard) and I was really really pleased with UltraX keyboard, I went on a quest to find a replacement.

[Read the rest of this entry…]