I talk about a wide variety of subjects, such as:

ASP.NET (51)

  • Cloudflare API - Purge Files By URL In C#

    Earlier this week I wrote about the reasons to why I decided to use Cloudflare for my website. I've been working on utilising Cloudflare's API to purge the cache on demand for when files need to be updated within the CDN. I developed a C# method that will cater for the majority of day-to-day use cases.

  • ASP.NET Core - Get Page Title By URL

    To make it easy for a client to add in related links to pages like a Blog Post or Article, I like implementing some form of automation so there is one less thing to content manage. For a Kentico Cloud project, I automatically retrieved the title of a page by simply providing a URL.

  • ASP.NET Core - HTTP Error 502.5 Process Failure

    It seems whenever I work on an ASP.NET Core website, I always seem to get the most unhelpful error when deploying to production: HTTP Error 502.5 - Process Failure. To get around this issue, I had to modify the .csproj by adding a "PublishWithAspNetCoreTargetManifest" setting.

  • ASP.NET Core MVC Numbered Pagination

    This a relatively simple reusable numbered pagination that can be used primarily in ASP.NET Core traditional MVC build. The user will be able to navigate through pages of data via next and previous buttons, as well as clicking individual page numbers.

  • Useful Method To Deserialize XML or JSON To A Class Object

    I have created a helper class that will allow me to consume any XML or JSON request for deserialization into a class object. You can pass an unknown type as well as the URL to where you are getting your request from. This makes things very easy when you want to easily strongly type the data.

  • Is ReactJS A Worthwhile Addition To An ASP.NET MVC Application?

    I've been meddling around with ReactJS over the last week or so, seeing if this is something viable to use for future client projects. Iam ASP.NET developer who build websites either using Web Forms or MVC Razor. I am finding it difficult to comprehend whether using ReactJS is viable in these frameworks, especially MVC.

  • My Paypal REST API .NET Starter Kit

    I decided to create my own Paypal REST API .NET Starter kit, by combining my own efforts together with PayPal documentation and code examples from other developers online.

  • Web.Config/App.Config Maintainability

    When working on large projects whether that be websites or software appliations, I like to try and make sure that settings from within my app/web configuration files are not only easily accessible within code, but also maintainable for future updates.

  • Extension Method To Render Action As String

    A while ago, I wrote a post that showed how you would Render a Partial View As A String. But what if you had a Partial View and wanted to output its action to a string?

  • Dynamic Robots.txt file for ASP.NET MVC Sites

    Changing the contents of a robots.txt file when a site is moved from staging to a live environment is quite a manual and somewhat cumbersome process. I now create a dynamic robots.txt file that contains different entries depending on whether a site is in stage or live.

  • Caching Static Files Through Web.config

    When running my website through Google Page Insights, one of things I didn't do was cache static content, such as CSS, JavaScript and site images. But this can be set easily within your web.config file.

  • Render Partial View As A String

    One of the many nice things of using ASP.NET MVC Razor is that you have full control over how you segregate your HTML markup when building a page through rendering PartialViews. Since becoming an avid MVC developer, I am increasingly noticing how easy it is to make nice neat reusable code, whether it is used server or client-side.

  • XML Parsing Error In A MVC Razor View

    If you set a Controller's response type to "text/xml", you may encounter an: "XML Parsing Error: XML or text declaration not at start of entity".

  • MVC Custom Extension Methods

    Since there are no pre-built resusable controls, I decided start developing my own library of extensions that I could use in future MVC projects I work on. Ranging from pagination to tag clouds. Creating custom extensions is really easy.

  • Twitter OAuth Authentication Without Third Party Libraries

    Ever since Twitter ditched version 1 of their API to version 1.1, an additional hurdle created when attempting to get any data from Twitter. Authentication (using OAuth) is now required on all API request endpoints. I can see why Twitter decided to go down this route but it does add a little headache when carrying out the most simplest requests.

  • Focusing Control On Postback Using JavaScript

    Postbacks can be annoying. Especially when you have a long page of content with a form at the bottom and on button click causes the page to skip back to the top of the page. But there is quite a nice easy way to get back to a specific area of a page by using the following line of JavaScript that get placed in the page after a postback has occurred.

  • A Hidden User Control Is A Running User Control

    I've been a .NET Developer for around 6 years and it still amazes me how I can overlook something that I never really questioned. For example, when a user control is hidden, I always assumed that all the code it contained would never run until it was made visible.

  • Optimising Image Quality In System.Drawing

    Sometimes optimising images to have an adequate image to file size ratio can be difficult when dynamically generating images using “System.Drawing”.

  • iOS Safari Browser Has A Massive Caching Issue!

    It wasn’t until today I found that the Safari browser used on iPad and iPhone caches page functionality to such an extent that it stops the intended functionality. So much so, it affects the user experience. I think Apple has gone a step too far in making their browser uber efficient to minimise page loading times.

  • .NET Library To Retrieve Twitpic Images

    I’ve been working on a .NET library to retrieve all images from a users Twitpic account. I thought it would be quite a useful .NET library to have since there have been some users requesting one (including me) on some websites and forums.

  • Simple Way To Integrate Facebook Connect Using ASP.NET

    If I need to login and authenticate a Facebook user in my ASP.NET website, I either use the Facebook Connect's JavaScript library or SocialAuth.NET. Even though these two methods are sufficient for the purpose, I don't think it's the most ideal or efficient way.

  • SyndicationFeed.Load - The easy way to read an RSS feed

    I always found writing code to read an RSS feed within my .NET application very time-consuming and long-winded. My RSS code was always a combination of using WebRequest, WebResponse, Stream, XmlDocument, XmlNodeList and XmlNode. That’s a lot of classes just to read an RSS feed.

  • CheckBoxList RepeatLayout - How Did I Miss That???

    The thing that annoys me when using ASP.NET controls is the amount of cluttered HTML that gets generated. It sometimes reminds of my early web development days when Dreamweaver was the development tool of choice. That was a long time ago!

  • Retrieve A Single YouTube Video in .NET

    Back in 2009 I wrote a simple web application to output all videos uploaded from a user’s channel. Luckily, hardly anything has changed. Now you only need to register for a Developer Key and state an Application Name. You are no longer required to provide a Client ID.

  • Calculate Time Duration in Seconds, Minutes, Hours & Weeks

    For a news site I am currently working on, I needed to display the last time a news article was last published. I wanted to be able to show the duration based on respective major time format. For example, if an article was displayed a couple hours ago, I would want it to to display “2 hours” not “120 minutes”.

  • ASP.NET CheckBoxList Control With Value Attribute

    ASP.NET server controls is a great way to quickly build a page with dynamic functionality. Even though we do not have much of direct control over the way these controls are rendered, they do a pretty good job and its not very often I get annoyed with them.

  • XmlDocument.Load Error Handling

    From one of the projects I have been working on, I came across a snippet of code that used the XmlDocument.Load method. What alarmed me about this piece of code was the fact that there was no error handling. If for some reason the XML file could not be found or a node was missing, the whole page would have crashed. Not good.

  • Multi Query Search Using Lucene.NET

    Over the last few days I have been doing some research on the best way to implement search functionality for a site I am currently building. The site will consists mainly of news articles. The client wanted a search that would allow a user to search across all fields that related to a news article.

  • Watermarking Images On The Fly Using ASP.NET

    Watermarking and general image manipulation within the .NET Framework has become quite an easy thing to carry out thanks to the features provided by the System.Drawing namespace. The System.Drawing namespace contains types to help you with…well…drawing and rendering images. I will not be covering the basic use of the System.Drawing class. But feel free to carry out a Google.

  • Making Calculations In LINQ

    I am currently working on an ASP.NET 4.0 e-commerce site using Entity Framework alongside LINQ. I came across a small issue when I needed to carry out some calculations based on product pricing and the discounts that would need to be applied based on a specific customers allowance.

  • Calling a ASP.NET Method Using jQuery

    Over the last few months I have had the ability to mess around with a bit of jQuery. Even though I don’t have the complete understanding on how it works, I can see the benefits of writing my code in jQuery compared to bashing out lots of lines of JavaScript to do the same thing.

  • Dynamically Load ASP.NET UserControls

    I had created some .NET UserControl’s that I needed to dynamically add to a Panel control within my page. I previously thought generating my UserControl’s dynamically would be the same as dynamically generating any other .NET Control, like this...

  • Use YouTubes RSS Feed To Output A List of Videos

    Ok! I admit it! I posted some incorrect information from one of my previous blog posts to “Dynamically Output A List of YouTube Video’s In ASP.NET”. I stupidly said: “The RSS feed is not structured in a nice enough format to output all the information you may need with ease.” I must have been drunk when I wrote that.

  • Outputting Custom Made Charts To An ASP.NET Page

    A few weeks ago I was trying to implement a Bar and Pie Chart for a report in a web application. I found that most of the charting solutions on the web cost an arm and a leg. So I decided to have a bash at creating my own one.

  • Programmatically Using SqlDataSource

    The SqlDataSource control enables you to use a Web control to access data located in a relational data base, including Microsoft SQL Server and Oracle databases, as well as OLE DB and ODBC data sources.

  • Simple Way To Use A DataTable

    When I normally create a datatable, I use quite a few lines of code just to add columns and input data into my DataTable.

  • Looping Through RadioButtonLists

    At the moment I am working on a Survey that contains tonnes of RadioButtonList controls that users will use to respond to the numerous questions I have on the website.

  • ASP.NET Login Authentication Problem

    I was trying to create a Login page for my website in ASP.NET a couple of days ago and I was stumped that the following piece of code did not work...

  • Implement SCOPE_IDENTITY() in Data Access Layer

    The SCOPE_IDENTITY() function are used in Insert queries to return the last identity value within your table. However, I never knew how to retrieve the ID value when using this function in my code.

Azure (3)

  • Azure WebJob To Delete Old Files from A Blob Container

    I like to keep my blob containers quite tidy and delete any files that would unnecessarily increase its size. For a project I was working on, I had a blob that was being used to temporarily store images a user uploaded for manipulation at a later time. I saw no reason to keep these files for no longer than 24 hours. An Azure WebJob seemed an ideal solution to do this.

  • Tools Every Azure Developer Should Be Using

    Having developed quite a few websites in Azure, there are some key software applications that I found made my life easier to access all areas of my Azure cloud instance.

BlogEngine (5)

  • Goodbye BlogEngine. Hello Kentico!

    For many years, I've been a happy BlogEngine user. However, recently my website was starting to expand in a way that wasn't flexible enough for the BlogEngine platform. Don't get me wrong, BlogEngine is a great blogging platform and it is without a doubt one of the best out on the market. But the capabilities and features Kentico provides made moving over to another platform an easy decision.

  • BlogEngine Disqus Comment Count Fix

    For those of you that have decided to opt out of using BlogEngine’s default commenting system and instead, use Disqus platform will probably encounter a minor issue. The minor issue being the fact that the comment count displayed in within post view doesn’t actually work.

  • BlogEngine: There was an error in callback issue

    Whilst carrying out some tests on my blog after upgrading my blog platform from BlogEngine 1.6 to 2.0, I noticed an error occurring when a comment was in process of getting submitted. The error that cropped up was: “There was an error in callback”.

  • Fixing BlogEngine HTML Editor Problem

    I have to say that after using BlogEngine for my first couple of posts, I can't think of any other Blogging tool to use. However, the thing that really annoys me about BlogEngine is the HTML editor when I want to create my postings. I have found that the TinyMCE HTML editor rejects some HTML tags.

C# (14)

  • Cloudflare API - Purge Files By URL In C#

    Earlier this week I wrote about the reasons to why I decided to use Cloudflare for my website. I've been working on utilising Cloudflare's API to purge the cache on demand for when files need to be updated within the CDN. I developed a C# method that will cater for the majority of day-to-day use cases.

  • Useful Method To Deserialize XML or JSON To A Class Object

    I have created a helper class that will allow me to consume any XML or JSON request for deserialization into a class object. You can pass an unknown type as well as the URL to where you are getting your request from. This makes things very easy when you want to easily strongly type the data.

  • JSON/XML To Strongly-Typed C# Object In Visual Studio

    Today, I stumbled across a really neat feature in Visual Studio 2015 that gives you the ability to create a strongly-typed C# class directly into your class library. Thefeature is hidden away in a place I would never have thought to look -Edit > Paste Special.

  • Web.Config/App.Config Maintainability

    When working on large projects whether that be websites or software appliations, I like to try and make sure that settings from within my app/web configuration files are not only easily accessible within code, but also maintainable for future updates.

  • Use Your Strings Wisely

    When I was first learning to code, I was always told to use my strings in applications wisely. It's very easy to use strings without much thought. I think strings are forgiving compared to any other data type...too forgiving.

  • C# In Depth by Jon Skeet Review

    C# In Depth by Jon Skeet is different from other programming books I've read on C#. In fact it's really good! One of the best programming books I've read in a long time.

  • Generate Google Sitemap From A List of Url’s In A Text File

    I had around 2000 webpage URL’s listed in a text file that needed to be generated into a simple Google sitemap. I decided to create a quick Google Sitemap generator console application fit for purpose. The program iterates through each line of a text file and parses it to a XmlTextWriter to create the required XML format.

  • SyndicationFeed.Load - The easy way to read an RSS feed

    I always found writing code to read an RSS feed within my .NET application very time-consuming and long-winded. My RSS code was always a combination of using WebRequest, WebResponse, Stream, XmlDocument, XmlNodeList and XmlNode. That’s a lot of classes just to read an RSS feed.

  • DebuggerHidden Attribute and Other Cool Debugging

    Debugging a page that uses many methods from other classes can become a right pain in the neck. I find myself accidentally stepping into a method that I don’t need to debug or wanting to output specific values from my methods straight away.

  • Creating A Comma Delimited String

    A little while back I needed to create a comma-delimited string to parse into my SQL Query. My first attempt in creating my comma-delimited string involved using a StringBuilder class and appending a comma at the end of each of my values via a loop.

  • Is an Arraylist still in use?

    When I first started using ASP.NET 1.1, I always used an Arraylist to iterate through most of my collections. However, when I started using ASP.NET 2.0 I was introduced to Generic Lists. The List class is the generic equivalent of the ArrayList class.

  • Inline If Statement

    Standard IF statements are great. But I found that when I am using very simple conditions within my IF Statement I waste a lot of space in my code.

  • C# NULL Coalescing Operator

    Here is a really neat trick that a mate showed me at work. It is a way to assign one variable to another, but only if the variable is not null. If it is null, you want to populate the target variable with perhaps another value.

Client-side (11)

  • Autoplaying HTML5 Video In Chrome

    Over the last few releases, Chrome no longer plays HTML5 videos automatically, even when muted. Here is a way to get around that.

  • My Top JavaScript ES6 Features

    I've been doing some personal research into improving my own JavaScript development.I decided to get more familiar with the new version of JavaScript - ES6. ES6 is filled to the brim with some really nice improvements that make JavaScript development much more concise and efficient.

  • Is ReactJS A Worthwhile Addition To An ASP.NET MVC Application?

    I've been meddling around with ReactJS over the last week or so, seeing if this is something viable to use for future client projects. Iam ASP.NET developer who build websites either using Web Forms or MVC Razor. I am finding it difficult to comprehend whether using ReactJS is viable in these frameworks, especially MVC.

  • It’s all about Website Hotkeys!

    During the latter-end of 2010, Twitter overhauled their somewhat simplistic website to compete with client-side offerings (e.g. TweetDeck, Seesmic). What I found really impressive was a hidden bit of functionality that allowed the user to navigate around the site using keyboard shortcuts (or hot keys). If you haven't tried it, take a look at the list of shortcuts below and try them out.

  • Minimise and Obfuscate Your JavaScript Code

    We all know minimising our JavaScript files prior to moving a site into a production environment is best practise. The main reason why we do it is because compressed JavaScript files allow sites run faster at a lower bandwidth cost and (to some extent) make the code harder to understand.

  • String.Format In JavaScript

    Whenever I work with strings whilst programming in .NET, somewhere along the lines I always find myself using the awesome “string.format”. I think all of you will admit its the most useful and easiest way to build up your strings.

  • Calling a ASP.NET Method Using jQuery

    Over the last few months I have had the ability to mess around with a bit of jQuery. Even though I don’t have the complete understanding on how it works, I can see the benefits of writing my code in jQuery compared to bashing out lots of lines of JavaScript to do the same thing.

  • Embed Flash Movie 100% for Firefox and Internet Explorer

    I needed a flash movie to displayed at 100% in my web page. I thought this will be a simple job. Just set the height and width attributes within my object tag to “100%”. This method worked fine for Internet Explorer but failed in Firefox. Firefox seemed to ignore my size settings that contained a percentage.

CSS (2)

  • CSS Link Hover Issue in Internet Explorer 7 & 8

    I came across a really strange issue yesterday whilst testing a site build in Internet Explorer 6, 7 and 8. For some reason, my anchor link text was not accepting a hover state colour change even though I set the required styles within my style sheet. All other browser accepted the hover styling without any issue.

  • Will IE6 Ever Allows Us To Use CSS3?

    We have been using Cascading Style Sheets for many years now and it has been a god send to help break us away from table based layouts and create an aesthetically pleasing site. I was quite surprised to find out that the CSS 2.1 standard has been around for 11 years.

Databases & SQL (10)

General Development (21)

  • Reducing The Number of 'Crawled - Currently not indexed' Pages

    Every few weeks, I check over the health of my site through Google Search Console (aka Webmaster Tools) to see how Google is indexing my site and look into potential issues that could affect the click through rate. Last month, the Search Console Index Coverage report showed a large volume of links marked as"Crawled - Currently not indexed". What does this mean in a greater sense of the message?

  • My First Butter CMS JavaScript Implementation

    For one of my side projects, I was asked to use Butter CMS to allow for basic blog integration using JavaScript. I have never heard or used Butter CMS before and was intrigued to know more about the platform. My JavaScript implementation outputs a list of posts, pagination and single post.

  • Check Your Website Headers People!

    A website can tell the public a lot about you, from the things you want people to see and other things you probably would not. HTTP Headers can divulge things about your website that you wouldn't necessarily want to make public and its up to the individual to make a decision on what headers they're willing to expose.

  • Google Seems To Have An Issue With My Server Response Time...

    I think I have resolved the server response time issue...It has something to do with a Web Statistics service called AWStats that was enabled by default on my hosting. Once I disabled through my Plesk Management Portal, Google PageSpeed didn't seem to have any issue with my server response.

  • C# In Depth by Jon Skeet Review

    C# In Depth by Jon Skeet is different from other programming books I've read on C#. In fact it's really good! One of the best programming books I've read in a long time.

  • It’s all about Website Hotkeys!

    During the latter-end of 2010, Twitter overhauled their somewhat simplistic website to compete with client-side offerings (e.g. TweetDeck, Seesmic). What I found really impressive was a hidden bit of functionality that allowed the user to navigate around the site using keyboard shortcuts (or hot keys). If you haven't tried it, take a look at the list of shortcuts below and try them out.

  • iOS Safari Browser Has A Massive Caching Issue!

    It wasn’t until today I found that the Safari browser used on iPad and iPhone caches page functionality to such an extent that it stops the intended functionality. So much so, it affects the user experience. I think Apple has gone a step too far in making their browser uber efficient to minimise page loading times.

  • HTTP Request Script

    In one of my website builds, I needed to output around a couple thousand records from a database permanently into the .NET cache. Even though I set the cache to never expire, it will get cleared whenever the application pool recycles (currently set to every 24 hours). As you can expect, if a user happens to visit the site soon after the cache is cleared, excess page loading times will be experienced.

  • Resolving AddThis Problems When Using Selectivizr

    I found there is an issue when implementing AddThis to a site that uses Selectivizr. Selectivizr (for those who don't know), is a JavaScript utility that emulates CSS3 pseudo-classes and attribute selectors for Internet Explorer 6-8.

  • Handling Unsupported Internet Explorer 6 Users

    Web browsers have come a long way since the days of Internet Explorer 6 release back in 2001. You would think 9 years on we would have all dumped this piece of software in the garbage heap by now.

  • Sign An Assembly In Visual Studio 2003

    I needed to create a custom web part using Visual Studio 2003 for a SharePoint 2003 client intranet, something I have never done before. As fellow SharePoint developers will know, you need to strongly name your project assembly whenever you need deploy a custom made web part.

  • Free Chart Control. About time!

    I am sure all developers in the past have attempted to create their own bar or pie chart using .NET’s System.Drawing methods. However, I never been able to match a high quality finish similar to what you would expect from third party charting software.

  • How To Ensure A Refreshed Web Page Is Not Cached?

    Being a fellow Web Developer, you would probably agree with me when I say that the “Refresh” button is the most used button in your browser. I can’t even consider about counting the amount of times I hit the “Refresh” button while creating a web page.

  • Adding An XML Sitemap to a Website

    In 2005, the search engine Google launched the Sitemap 0.84 Protocol, which would be using the XML format. A sitemap is a way of organizing a website, identifying the URLs and the data under each section. Previously, the sitemaps were primarily geared for the users of the website.

  • Adding Google Sitemap To Blogger Account

    After my last blog posting (Google Is Better Than I Thought!!!), one of my mates said that he was unable integrate the Google Sitemap facility to his Blogger.com blog since there we could not find a Sitemap file.

  • Google Is Better Than I Thought!!!

    I decide to test how well my site postings was being tracked on Google and I was quite surprised that my site had not been tracked for over a month, which meant that all my recent posts were not submitted to the search engine.

Guest Writing (4)

  • The Journey To Kentico Cloud

    From working at Syndicut, I have had the opportunity of working with many different platforms. The most exciting development for me over the years has been the shift on how content management systems are being decoupled from the very applications they push content to. I write my thoughts on the journey to how [at Syndicut]we've used headless CMS's in the past, tonow usingKentico Cloud.

  • Cache Busting Kentico

    When developing a website that is quick to load on all devices, caching from both a data and asset perspective is very important. Luckily for us, Kentico provides a comprehensive approach to caching data in order to minimise round-trips to the database. But what about asset caching, such as images, CSS and JavaScript files?

  • The Biggest E-commerce of My Kentico Career!

    I recently blogged about a very large Kentico E-commerce build I was involved with at Syndicutthat contained around 2 million products. Trust me, this is a major feat in itself! A lot of customisation and performance improvements were made to the Kentico build to accomodate the sheer volume of products.

  • C# Corner: Alternative To SQL "In" Condition When Working With Many Values

    Earlier this week a post I wrote for C# Corner was published. It was about an alternative to use the very well known SQL Server "IN" condition when working with many values. I discuss storing a list of valuesyou would normally pass directly into your "IN" condition for querying to a User Defined Data Type.

Hardware & Tech (8)

  • Securely Erasing An Android Device

    I'm selling my old Nexus 5 on eBay and need to take precautionary steps to ensure the device is wiped clean in addition to the standard "factory reset" approach.

  • Official Google Nexus 7 (2013) Case Review

    Ever since I purchased my Nexus 7 last year. I've been trying to find a nice case for it. Failing, I settled for a cheap and cheerful folio case from eBay, which (still to this day) has served me well. But I was dying to have a case that looked different and oozed some unique design elements.

  • Where touchscreen and keyboard meet in perfect harmony…

    I had the opportunity to try out one of my friends new gadget purchases (someone's been a good boy this year!) - the Asus Transformer Infinity. I read a lot about the Asus Transformer range ever since its first release in 2011, but got the impression that this was just another worthless mishmash of tech with a mistaken identity.

  • My Alienware m11x Review

    On hearing Dell have officially acknowledged there is an issue with all Alienware M11x screen hinges (duh!) regardless of warranty status, I decided to write a belated review on my experience of owning this very laptop.

  • Asus EEE PC 701 Ultra Mobile Laptop

    While I was browsing the web for some tech goodies for my PC something at the side of the webpage caught my eye. Judging by my post title you guessed it, a ASUS EEE Laptop.

Hosting and Infrastructure (4)

  • Using Cloudflare With Kentico - Purging Cached Media Files

    I have been integrating Cloudflare into my Kentico site and implemented a way to purge the cache of files stored within the media library when updated. Purging the file cache will cause Cloudflare to serve a new version of the file.

  • My Reasons for Using Cloudflare With Kentico

    A couple day ago my website got absolutely hammered by a wave of constant SQL injection attacks by the same IP over a time period of a couple hours.Even though Kentico has handled these attacks well, I want to put a layer in place before any untoward activity gets to my site. This is where Cloudflare comes in...

  • 5 Hours Of GoDaddy Pro Is More Than Enough For Me

    There's a saying that goes along the lines of: if it ain't broke don't try and fix it. I am a very happy SoftSys Hosting customer but went down the wrong path of trying out Go Daddy Pro with the intention of moving. Very quickly I found thier service was not up to scratch and so I write my experience.

  • Back Up and Running!!!

    Last week my blog was offline due to an unfortunate mishap. I won’t go into the details on what happened. I’d rather just forget.

Kentico (28)

  • Using Cloudflare With Kentico - Purging Cached Media Files

    I have been integrating Cloudflare into my Kentico site and implemented a way to purge the cache of files stored within the media library when updated. Purging the file cache will cause Cloudflare to serve a new version of the file.

  • My Reasons for Using Cloudflare With Kentico

    A couple day ago my website got absolutely hammered by a wave of constant SQL injection attacks by the same IP over a time period of a couple hours.Even though Kentico has handled these attacks well, I want to put a layer in place before any untoward activity gets to my site. This is where Cloudflare comes in...

  • Kentico - Call 404 Page From Code

    There will be times when you want to direct a user to a 404 page based on certain conditions from within your code. For example, when dealing with pages that use wildcard URL's, you might want to redirect the user to a 404 page if the value of that wildcard parameter returns no data. Kentico's CMS routing engine won't send you a 404 page as you'd think. So we need to carry the redirect at code-level ourselves based on the conditions we provide.

  • The Journey To Kentico Cloud

    From working at Syndicut, I have had the opportunity of working with many different platforms. The most exciting development for me over the years has been the shift on how content management systems are being decoupled from the very applications they push content to. I write my thoughts on the journey to how [at Syndicut]we've used headless CMS's in the past, tonow usingKentico Cloud.

  • Kentico MVC - Getting TreeNode At Controller Level

    The one thing I missed when working on sites in Kentico's MVC is the ability to get values from the current document at controller level as you could do in Kentico 8 MVC builds. Luckily, there is a way to carry out a similar approach from Kentico 9 onward, starting off by creating a custom MVC route constraint.

  • Cache Busting Kentico

    When developing a website that is quick to load on all devices, caching from both a data and asset perspective is very important. Luckily for us, Kentico provides a comprehensive approach to caching data in order to minimise round-trips to the database. But what about asset caching, such as images, CSS and JavaScript files?

  • Kentico Cloud: Custom MVC Cache Attribute

    I created a custom controller attribute called "KenticoCacheAttribute" that used in a similar way as OutputCacheAttribute at controller level, except it will only start the caching process only if the application is not in debug mode.

  • Kentico Open Graph Custom Macro

    Ever since I re-developed my website in Kentico 10 using Portal Templates, one thing that has been on my list of todo's for a long time was to create a custom macro extension that would render all open graph META tags in a page.

  • New Year, New Site!

    This site has been longing for an overhaul, both visually and especially behind the scenes. As you most likely have noticed, nothing has changed visually at this point in time - still using the "Surinder theme". However, behind the scenes is a different story altogether and this is where I believe what matters most.

  • Kentico 9 Certified Developer

    I haven't done the Kentico certified exam for over two years - but this doesn't make me any less of an awesome and competent Kentico Developer. Over the last two years, a lot has changed within the Kentico realm resulting in the subject matter becoming a little more of a challenge to keep up to speed with.

  • My Development Overview of Kentico 9 MVC

    I have listed a few observations I thought would be good to write about from my initial experience of using MVC in Kentico 9 whilst working on a client project. I will be talking (very high level) about the changes from previous versions of Kentico MVC as well as the new development approaches for Kentico 9.

  • Extending Kentico DataHelper GetDataRowValue() and GetDataRowViewValue()

    Kentico provides "DataHelper.GetDataRowViewValue()" and "DataHelper.DataRowViewValue()" methods to output fields of information. I find these DataHelper methods quite tedious when you have a massive collection of node data. So I created a DataHelperExtension class object that would allow me to get my commonly used DataRow and DataRowView fields with ease.

  • Upgrading to Kentico 8.x? Some Important Steps To Not Overlook

    Upgrading from version 7 to 8 alone is a very big jump and you will find that getting your site fully functional will require more effort than all the previous upgrades combined. Here are some important steps that you shouldn't ignore to save you from upgrade issues.

  • Some New Custom Form Controls I've Been Working On In Kentico...

    Over the last few projects I've been working on, I started to notice that clients are requiring increased integration with social platforms that give them the ability to display key elements from well known social platforms, such as YouTube, Twitter and Instagram.

  • Kentico Certified Developer

    A couple days ago I passed my Kentico exam. If anything, I think I've learnt more about the Kentico and just how much the platform has to offer.

  • Custom Form Control To Select A Folder In Media Library

    I had a need to have the ability to select a folder from within the site's media library. Not a file. A folder. After contacting Kentico support, I was told that such a folder selector control does not exist and was told that I would need to create one myself. So I did exactly that!

  • A Jump Into Building A Kentico Site Using MVC!

    As of late, I've been attempting to expand my .NET web application development skills by learning MVC and now have the understanding on how it all works. By Jove, I think I’ve gotit! After building a few small custom websites, I decided to utilise what I've learnt and start building a Kentico site in MVC.

  • Renaming A Document Type Table Using SQL

    Don't you just hate it when you've created a Document Type in Kentico that is full of data and for some reason you need to rename it. Even though Kentico does give you the ability to rename your Document Types via its interface, the old table name still exists within the SQL database.

  • Create A Custom YouTube Form Control In Kentico

    It seems that I have a tendency to blog more about YouTube then any other Social API on this site. So here we go again... This time I want to show how to easily integrate a YouTube CMS Form Control within a Custom Table or Document Type within Kentico.

  • Goodbye BlogEngine. Hello Kentico!

    For many years, I've been a happy BlogEngine user. However, recently my website was starting to expand in a way that wasn't flexible enough for the BlogEngine platform. Don't get me wrong, BlogEngine is a great blogging platform and it is without a doubt one of the best out on the market. But the capabilities and features Kentico provides made moving over to another platform an easy decision.

  • Count Message board Messages for a Document in Kentico

    I’ve been using Message Boards for some page templates within my Kentico site. I needed to count the number of messages for each document to be displayed on the homepage. I couldn’t find a way to do this using Kentico's API.

  • Add MemoryStream File To Kentico Media Library

    I needed to be able to pass a file that was stored in a MemoryStream into my Kentico Media Library. In my case, the file was a dynamically generated PDF. I couldn’t find anything on the web on how I would achieve this. So I decided to have a go creating my own method based on the Media Library API and some very basic examples

Mobile App Development (2)

  • "Invalid response for blob" Error When Making XHR Request

    Whilst making a request to one of my API endpoints for an iOS application I'm currently building, I came across a very unhelpful error:"Invalid response for blob". I couldn't really understand why React Native was complaining about a single API endpoint, since all my other endpoints did not bring upthis error.

  • iPhone SDK Error: Base SDK Missing

    I am currently in the process of learning how to build applications for the iPhone. I have recently upgraded from the iPhone SDK 3.0 simulator to the iPhone SDK 4.0 simulator. But this caused some issues when trying to run some of my previous applications I developed prior to when I had the iPhone 3.0 simulator installed.

Productivity (6)

  • Pen + Paper = Productivity

    I was fuelled into writing my own views upon reading a very interesting post by Scott Hansalman, where he argues that we would all be more productive and stress free if we were to assimalate all our thoughts and ideas to paper rather than to an electronic device. I was intrigued by Scott's argument and he brings up many valid points that I agree with.

  • Evernote Has Made Me An Extreme Data Hoarder

    Ever since I had my first smartphone, I've always relied on Evernote to record my daily thoughts and reminders. So much so, I am starting to become a data hoarder.

  • New to Programming? Show The Technical World What You Can Do

    Back in 2007 I started blogging mainly for one selfish reason - to have an online repository of how I've approached things technically to refer back to when required. When I find things interesting, I like to document them for me to expand on later. If a public user wants to expand or contribute to what I’ve posted, then they are welcome to do it.

  • Backing up Google Account Data

    In light of what has happened recently with some 150,000 Google Account holders loosing their information due to a mishap at Google HQ over the weekend really reinforces the fact that our data is not safe…even in the “cloud”.

  • Could Writing a Blog Post Get Any Easier???

    I have just installed Window Live Messenger 8.5. Yes, you might be thinking I have been a little late installing the latest version of Messenger. The reason for this is because I really had no reason to. After all I use Messenger just to talk to my friends. Nothing more, nothing less.

Quick Tips (3)

  • Logging Into Force.com Explorer

    Judging by the title of this post this may sound a little self-explanatory, but trust me using the Force.com Explorer utility got me stumped at the first hurdle - logging in! From my experience the Salesforce documentation isn't exactly clear.

  • Resize An Instagram Image Using A Media Query Parameter

    This is something I have been meaning to post for quite some time, ever since I first started working on integrating Instagram's API in web applications in 2013. - The ability to resize an image from Instagram without having to deal with registering for an API key and worrying about request limits.

  • JSON/XML To Strongly-Typed C# Object In Visual Studio

    Today, I stumbled across a really neat feature in Visual Studio 2015 that gives you the ability to create a strongly-typed C# class directly into your class library. Thefeature is hidden away in a place I would never have thought to look -Edit > Paste Special.

Random Thoughts (25)

  • Those Pesky Recruiters And Their Spamming!

    I can only speak about my experiences from working in the technical industry, but there isn't a week that goes by when I am not being spammed by recruitment agencies who don't seem to get the message that I'm not interested. I can "almost" deal with the random emails I get from various agencies, but when you get targeted by a single person on a daily basis it gets infuriating!

  • The Pursuit Of Happiness

    So it's finally come to this... A point in my life where I'm questioning what have I done to get to this place I currently find myself standing, wanting to make sense of an emotion that was so naturally built into my being from day one. But now, I am not too sure if it exists or ever did exist.

  • Best Way Of Learning To Code - Books or Online Resources?

    Clearing out my bookshelf of programming books of yester-year got me thinking on the way our approach to learning has changed for me over the past few years. I don't think our old friend "the book" is as prominent as it once was as a learning aid, especially when there are far more accessible and interactive ways of learning through online mediums.

  • I am Just One Of Those Developers...

    ...who hasn’t created a custom open developed plugin/library, answered many posts on StackOverflow (as much as I’d like to!), made a contribution to Github, created a Pluralsight course, or coded something beautiful on CodePen. But this doesn't make me a any less of a developer.

  • It's Only Life

    I can totally relate to the this song right now: The Shins - It's Only Life

  • What's Currently Wrong With Star Trek Franchise?

    Star Trek has always has always had a special place in my heart for as long as I can remember. The moment I sat down with my Dad and watched Star Trek III: Search for Spock with fresh new eyes, I was instantly grabbed by the action, ships, characters and vastness of space. So what's wrong with the current incarnation of Star Trek?

  • What Prismic.io Is Lacking

    I am starting to encounter increasingly longwinded and somewhat frustrating stumbling blocks during the development of a Prismic.io powered website due to lack of basic development related features.

  • Prismic.io - Content Management for The Masses

    Generally, all Content Management Systems are tightly integrated into the websites they control to serve one key function: publish custom content. Almost as one singular entity. I have been doing some research into some content management systems that sits externally from a website.

  • Experts Exchange: Does The Pay for An Answer Model Work?

    I've been an Experts Exchange user on and off over the last few years and always re-registered my Experts Exchange account, at times, out of pure desperation in the hope that a complex question of mine could be answered. But no more.

  • Stephen Elop's "Burning Platform" Memo Is Art

    As I look back at this infamous memo, I'm reminded how Elop manages to grab your attention in an artistic and well written way. I am instantly able to relate exactly to dire circumstances the CEO and it's workers face.

  • It’ll Be A Sad Day When iGoogle Is No More

    Amongst the number of services Google provides, iGoogle portal has to be at the top of my list. It’s my one stop shop for daily news, weather forecasts and playing the odd game. I was surprised when Google announced they will discontinue the service from November 2013.

  • Google Needn’t Worry About Facebook’s Advertising

    Limited Run, posted on their Facebook profile stating that they would be deleting their account due to the amount Facebook is charging for clicks on their advertising. Here’s the interesting part: About 80% of the clicks Facebook charged Limited Run, JavaScript wasn't on.

  • To “.me”, or not to “.me”, that is the question…

    Ever since I decided to expand my online presence, I thought the best step would be to have a better domain name. My current domain name is around twenty-nine characters in length. Ouch! So I was determined to find another name that was shorter and easier to remember.

  • The Ridiculous Price of A Domain

    I know Surinder is a really cool name and damn right popular with the ladies, but seriously £5000. Even I wouldn’t have the audacity to sell my domain for that much (offers will be accepted though :-) ).

  • Finally! Google Shows My Profile Information In Search Results

    Ever since Google+ came along, I noticed website authors were getting their picture displayed next to article’s they’ve written in Google searches. Not to be left out of this trend, I decided I would attempt to get my ugly-mug displayed next to all my authored content as well.

  • Time for a new chapter in my online presence

    After blogging under the “computing-studio.com” domain name for around 4 years, I think its time for a new chapter in my online presence. Last Friday I decided to buy a new domain name called surinder.me. At the time “computing-studio.com” domain seemed like a great idea where me and my fellow techy University friends would contribute. Unfortunately, things didn’t work out and decided to go it alone.

  • Integrating Into Google Plus - Is it worth it?

    When I first heard Google were introducing their own social-networking platform, I was intrigued to say the least on what they could offer compared to the other social sites I use: Facebook and Twitter.

  • Has Facebook Redefined Friendship?

    I was a late bloomer when when it came to joining the social networking giant that is Facebook (around late 2007). The only reason I can remember for ever joining the site was just because all people around me were submitting their profiles like crazy.

  • Back Up and Running!!!

    Last week my blog was offline due to an unfortunate mishap. I won’t go into the details on what happened. I’d rather just forget.

  • Mobile for 4 Year Olds? This Is No Toy!

    When the mobile phone first came out, not surprisingly they took the world by storm. Over the years, the mobile has evolved and it was only going to be a matter of time before a phone for a child would be released.

  • No Internet Explorer In Windows 7

    I was surprised to hear from one of the news sites today that the new version of Windows operating system, called Windows 7 will come without a browser. This gives the hardware manufacturer’s the freedom to choose alternative browsers such as FireFox, Opera, and Safari.

  • The Google Chrome Comic Strip

    I have to say that I am quite impressed with the way Google markets its own applications and services. Who would ever had thought of using a comic string to introduce the key workings of a specific application?

  • Making my way through an MCTS book

    Over the last couple of months I have been reading through the "MCTS .NET Framework 2.0 for Web Applications" book in order to gain the first of what would hopefully be one of many Microsoft certifications. After reading the first couple of chapters, I found it to be a little daunting to say the least due to the fact that there are many coding techniques to get your head around.

  • Last Post Of The Year

    Well this is my last post of 2007. Even though I have not made many posts since I started this blog, hopefully next year will give me more time to pad this blog out.

  • Broadband Speed Shock Horror!!!

    A few weeks ago I was watching "The Gadget Show", which in the UK is a fun and informative show about gadgets (yeah the name of the show gave it away) and technology.

Salesforce (5)

  • Salesforce .NET API: Get File Attachment

    Reading and writing files from an external application to Saleforce has always resulted in giving me quite the headache. In this post I will demonstate how to read a file found in the "Notes & Attachments" area of Salesforce as well as getting back all information about that file.

  • Salesforce .NET API: Select/Insert/Update Methods

    To continue my ever expanding Salesforce journey in the .NET world, I am adding some more features to my "ObjectDetailInfoProvider" class that I started writing from my previous post. This time make some nice easy, re-usable CRU(D) methods... just without the delete.

  • Salesforce .NET API: Get Picklist Values

    I have created two reusable methods that allows for the retrieval of picklist and multipicklist values by simply passing the object and field name.

  • Authenticating Salesforce Request In .NET

    My custom Salesforce library that I readily use for any Salesforce integrations within my native .NET applications consists of a combination of both handwritten code as well as utilsing the functionality present within the Force.com Toolkit, which gives a little more freedom to do something more custom.

  • Logging Into Force.com Explorer

    Judging by the title of this post this may sound a little self-explanatory, but trust me using the Force.com Explorer utility got me stumped at the first hurdle - logging in! From my experience the Salesforce documentation isn't exactly clear.

SCORM (2)

  • Workaround To Setting A “cmi.interaction.n.student_response” Reference

    One the drawbacks of using SCORM 1.2 is the inability of being able to read a “cmi.interaction.n.student_response” reference. In my mind this is very strange. Why allow a value to be written to but not read? Being able to read a users response to a question is an important feature. If anyone knows the answer to why this is the case, then please leave a comment.

  • SCORM - Point of View From A Novice

    Being a developer, I am always open to learning new platforms (to a point) and coding languages. I am currently involved in a project with one key requirement: build a web-based e-learning system. Sounds simple enough.

Sharepoint (17)

  • SharePoint Internal Column Names

    I needed to create a web part that simply output all information from an Announcements list. Sounds simple doesn’t it? But I came across a compiler error when using the “Created By” and “Modified By” columns. The error was telling me that the columns I am trying to read in my code do not exist.

  • Using SPMetal in SharePoint 2010

    One of the best development features in making customisations within a SharePoint environment is the SPMetal tool. The SPMetal tool generates entity classes in order to use LINQ syntax to retrieve items from lists. The SPMetal.exe resides in the 14/bin folder. I will show you a quick demonstration on how I have generated a DataContext class using the SPMetal executable.

  • SharePoint Site Architecture – SPSites and SPWebs

    I have been developing custom web parts and SharePoint customisations for a couple years now. During the early stages of SharePoint development I found a great deal of confusion when trying to retrieve information from different areas of an intranet through using the SPSite and SPWeb methods.

  • UserProfileManager.Count – Don’t Count On It!

    In ASP.NET you would think when you use the “.Count” method that it would be able to simply return the total number of elements within a collection. In majority of cases this is right. Well, apart from when you use the “.Count” method against a collection of profiles within SharePoint.

  • Enable People Search in SharePoint 2010

    In my last post, I showed you how to create an Enterprise Search page that consisted of both “Site” and “People” searches. Depending on how you have setup your search within Central Administration, you may find the “People” search not returning any results.

  • Setup Enterprise Search Page in SharePoint 2010

    I have been lucky enough to start working on my first SharePoint 2010 project. As you may know, things have definitely moved on from SharePoint 2007 to SharePoint 2010. Every new release of SharePoint seems to be a vast improvement over its predecessor that benefits both the end users and developers.

  • How to Change Site Name In SharePoint 2003 URL

    In SharePoint 2003, you will notice when you change the name of a site, the change is not reflected in the intranet URL. Modifying the site name within “Site Settings” will only change the title that is displayed when you visit the site.

  • Change SharePoint 2007 My Site URL

    A little while back I renamed all URL’s within my SharePoint 2007 virtual environment. When it came to viewing users My Site, the new URL did not update after making changes to the Alternate Access Mappings within Central Administration.

  • Cannot View SharePoint Intranet in Internet Explorer, Firefox is fine

    I created a SharePoint 2007 installation on a Development Virtual Server. The installation and configuration of SharePoint was no problem. It actually went quite smoothly compared to my previous attempts. Lucky me! I thought to myself: “Man, things can’t get better than this”.

  • Custom SharePoint 2007 Bulk Document Uploader

    I have noticed that one of many reasons clients like to get on to the SharePoint bandwagon is to use its detailed Document Management features to control the life cycle of each individual document within their organisation.

  • Rename SharePoint Host Headers and Change Database Server Name

    I currently have a SharePoint 2007 demonstration setup on a development environment. The SharePoint 2007 installation was originally setup for a specific client. So the host headers, computer name and farm credentials contained the client name.

  • Apply Theme To All Sites In Sharepoint 2007

    After I designed a theme to my SharePoint 2007 site I came across a small problem. Well it was not exactly a problem it was more of a hassle I encountered. The current SharePoint Intranet I was working on contained quite a lot of sites and I didn't want to change the site settings within each site in order to change the theme.

  • Duplicate ID on Sequence [Microsoft.Sharepoint.Portal.Upgrade.FarmSequence]

    Over the last couple of months I have been involved in upgrading our current MOSS 2003 Intranet to MOSS 2007. All I can say that it has been eventful to say the least with numerous errors popping up left right and center. I am sure I will be posting more in future regarding my Sharepoint upgrade experience.

Smartphone's (5)

  • Securely Erasing An Android Device

    I'm selling my old Nexus 5 on eBay and need to take precautionary steps to ensure the device is wiped clean in addition to the standard "factory reset" approach.

  • Google Analytics and Adsense Android App Alternatives

    Being a Web Developer and owning my own website, I’m quite interested in seeing how my site is doing when I am not in the vicinity of my computer – mainly analytics and advertising revenue. Even though Google Analytics and Adsense provides me with really good information, I was interested in seeing if there were any alternatives in app form on Android.

  • Android + Phone Manufacturers = Bad Combination

    On Saturday 6th August 2011, I was waiting impatiently for my new phone to be delivered. It’s not just any phone. It’s the phone that will technologically enhance my productivity and will define what an Android operating system really has to offer in a small, slim and neat package. It was the Samsung Galaxy S2!

  • Do Not Ignore Android’s Low Memory Warning

    I have a HTC Hero which was recently upgraded from Android 1.5 to 2.1 a few months back. It has definitely been a significant and worthwhile upgrade packing in lots of new extra features and most importantly extra applications to download from the Android Market.

Social API's & Integration (14)

  • Resize An Instagram Image Using A Media Query Parameter

    This is something I have been meaning to post for quite some time, ever since I first started working on integrating Instagram's API in web applications in 2013. - The ability to resize an image from Instagram without having to deal with registering for an API key and worrying about request limits.

  • Detecting Facebook In-App Browser

    Facebook app started opening websites from within the app itself. The in-app browser renders webpages a little differently and sometimes you'll need to detect the user-agent (FBAN) in order to make some fixes.

  • Instagram API: Get Access Token In ASP.NET

    I've written some code that outputs images Instagram using Instagram's Developer API. The code can either output images based on a user's profile or via search term. But before we can do that, we need to authenticate our application and get an Access Token.

  • Twitter OAuth Authentication Without Third Party Libraries

    Ever since Twitter ditched version 1 of their API to version 1.1, an additional hurdle created when attempting to get any data from Twitter. Authentication (using OAuth) is now required on all API request endpoints. I can see why Twitter decided to go down this route but it does add a little headache when carrying out the most simplest requests.

  • Create A Custom YouTube Form Control In Kentico

    It seems that I have a tendency to blog more about YouTube then any other Social API on this site. So here we go again... This time I want to show how to easily integrate a YouTube CMS Form Control within a Custom Table or Document Type within Kentico.

  • Beginner’s Guide To Using Google Plus .NET API Part 2: User Posts

    Ok I’ll admit Part 2 to my “Beginner’s Guide To Using Google Plus .NET API” has been on the back-burner for some time (or maybe it’s because I completely forgot). After getting quite a few email recently on the subject, I thought now would be the best time to continue with Part 2.

  • .NET Library To Retrieve Twitpic Images

    I’ve been working on a .NET library to retrieve all images from a users Twitpic account. I thought it would be quite a useful .NET library to have since there have been some users requesting one (including me) on some websites and forums.

  • Simple Way To Integrate Facebook Connect Using ASP.NET

    If I need to login and authenticate a Facebook user in my ASP.NET website, I either use the Facebook Connect's JavaScript library or SocialAuth.NET. Even though these two methods are sufficient for the purpose, I don't think it's the most ideal or efficient way.

  • Beginner’s Guide To Using Google Plus .NET API Part 1: Profile Data

    Google has always impressed me with the quality of their API libraries allowing us to interface with their products in a somewhat straight-forward manner. In the past, I’ve used a couple of Google’s API’s for implementing YouTube video’s or Checkout merchant within my own sites. What makes life even easier is that the API’s are available in my native programming framework - .NET.

  • Retrieve A Single YouTube Video in .NET

    Back in 2009 I wrote a simple web application to output all videos uploaded from a user’s channel. Luckily, hardly anything has changed. Now you only need to register for a Developer Key and state an Application Name. You are no longer required to provide a Client ID.

  • Running Facebook Applications Locally

    Having the ability to run and develop Facebook applications within the comfort of a local environment is a must. Previously, I always thought in order to work on Facebook applications a public facing URL was required to allow Facebook to communicate with your application directly. Fortunately this is not the case.

  • Use YouTubes RSS Feed To Output A List of Videos

    Ok! I admit it! I posted some incorrect information from one of my previous blog posts to “Dynamically Output A List of YouTube Video’s In ASP.NET”. I stupidly said: “The RSS feed is not structured in a nice enough format to output all the information you may need with ease.” I must have been drunk when I wrote that.

Software & Applications (21)

  • Powershell Script To Clear Old IIS Logs

    If you have many sites running on your installation of Windows Server, you will soon find that there will be an accumulation of logs generated by IIS. But a Powershell script hooked to a Scheduled Task can fix that!

  • Evernote Has Made Me An Extreme Data Hoarder

    Ever since I had my first smartphone, I've always relied on Evernote to record my daily thoughts and reminders. So much so, I am starting to become a data hoarder.

  • Windows 2008 Task Scheduler Result Codes

    I’ve been working on a PowerShell script that required to be automatically run every 5 minutes. As you probably guessed, using Windows Task Scheduler is the way to go.

  • FireShot – A Really Good Webpage Screen Capture Tool

    Working in the web industry and having the opportunity to develop a wide variety of websites, I like to take a snap-shot of a few pages for my portfolio (working on that!). But I generally come into issues when taking a screen-shot of a very long webpage. In fact, I always experience issues when screen grabbing a scrolling page.

  • HTTP Request Script

    In one of my website builds, I needed to output around a couple thousand records from a database permanently into the .NET cache. Even though I set the cache to never expire, it will get cleared whenever the application pool recycles (currently set to every 24 hours). As you can expect, if a user happens to visit the site soon after the cache is cleared, excess page loading times will be experienced.

  • HTTrack - Website Copier

    One of my colleagues pointed my to a really useful tool called HTTrack, that has the ability to download a website from the internet to a local directory by simply copying and pasting the site URL of your choice.

  • My First PowerShell Script - Moving Files From One Directory to Another

    Microsoft’s new command-line tool, PowerShell has been out for quite a few years now and I thought today will be the day I would start using it. I needed to write a script that would move n number of files from one directory to another. This job seemed a perfect fit for PowerShell.

  • Speed Up Firebug

    I noticed recently that Firebug was running very slow whilst inspecting elements or debugging client-side scripts. In the past when noticing performance issues in Firefox, a straight-forward opening and closing the browser normally resolved any issues.

  • Stay out of trouble! Backup your files with RoboCopy

    Apologies for making a reference from the social-satire/sci-fi film that is RoboCop (1987) in my post title. It just had to be done when talking about some tool called RoboCopy. For those who aren’t aware of what RoboCopy is, where have you been? In all honesty, I myself never heard of it until a few days ago.

  • EaseUS Todo Backup Disk Clone Tool…It’s Good!

    Earlier today, I decided to upgrade my laptop’s hard drive to a larger capacity disk. As we all know, the most straight-forward method of carrying this out is by cloning the existing drive onto your new disk of choice. Originally, I was planning on purchasing “Acronis True Image” since this is something I’ve used it in the past and makes cloning any disk a cinch!

  • Cannot Delete File: The file is in use by another program or user

    Arrrgh!!! Microsoft has to be the yearly winner for the “Most Stupid Error Message” award for displaying the most excruciatingly annoying error messages in any of their products. The main reason for their annoyance is because majority of the error messages tells you something is wrong, but not the source of the error.

  • Mac OS X Snow Leopard VMware Environment Freezing

    Over the last week or so, I have had the most frustrating time creating a Mac OS X Snow Leopard environment using VMware. I won’t go into the whole process I went through to create my Virtual Machine. There are many online articles for you to Google (or Bing :-P) that show you the step-by-step procedures on how to create a Mac OS virtual environment.

  • Sign An Assembly In Visual Studio 2003

    I needed to create a custom web part using Visual Studio 2003 for a SharePoint 2003 client intranet, something I have never done before. As fellow SharePoint developers will know, you need to strongly name your project assembly whenever you need deploy a custom made web part.

  • Analyse Disk Fragmentation in Windows Vista

    In Windows XP you had the option to analyse a disk drive you wished to defragment without carrying out a full disk defragmentation. Looking at the Windows Vista Disk Defragmenter GUI at face value I thought this feature was left out.

  • Free McAfee Internet Security 2009

    What a way to start the new year with some free software (and I am talking the legal way). I found that my current PC Internet Security was soon to expire. Instead of renewing my existing Bullguard licence, I decided it was time for a change after being a loyal three year customer mainly because the yearly fee was starting to get a bit too expensive compared to other packages on the market.

  • The Google Chrome Comic Strip

    I have to say that I am quite impressed with the way Google markets its own applications and services. Who would ever had thought of using a comic string to introduce the key workings of a specific application?

  • Could Writing a Blog Post Get Any Easier???

    I have just installed Window Live Messenger 8.5. Yes, you might be thinking I have been a little late installing the latest version of Messenger. The reason for this is because I really had no reason to. After all I use Messenger just to talk to my friends. Nothing more, nothing less.

  • Windows Disk Cleanup Alternative

    To keep a PC running smoothly, regular maintenance is critical. Many users shy away from maintenance tasks, thinking it is a long, drawn out manual affair, but the Disk Cleanup Utility can easily determine which files on a hard drive may no longer be needed and delete those files.

  • Last Post Of The Year

    Well this is my last post of 2007. Even though I have not made many posts since I started this blog, hopefully next year will give me more time to pad this blog out.

  • WOW! Windows Vista is...

    ...quite slow! This is what I thought as I was setting up my mothers laptop running on Windows Vista (compared to Windows XP Professional Edition running on a similar spec computer.

Surinder's Log (7)

  • Recovering A Hard Disk Full of Memories - Part 1

    My cousin Tajesh told me about his amazing trip to Australia from many years agoand how he lost all the photos he had taken from that time after recently damaging his hard drive.I decided I'd try and recover my cousins lost photos.

  • My Time At Melia Bali Hotel

    I stayed at Melia Bali for around 12 days and left feeling in awe of the experience. It's a hotel that fits the bill for any type of guests with plenty of activities, restaurants, a beach and beautiful gardens.

  • New Year, New Site!

    This site has been longing for an overhaul, both visually and especially behind the scenes. As you most likely have noticed, nothing has changed visually at this point in time - still using the "Surinder theme". However, behind the scenes is a different story altogether and this is where I believe what matters most.

  • I Ain't Afraid Of No Ghost

    As I have been writing the few blog posts, I've been getting the case of "twitchy feet" during the writing process. I normally get "twitchy feet" when I feel frustrated or annoyed by things in my life that I feel could be done easier. In this case, updating my site. I am looking to make a move to the Ghost platform - a platform that I've been thinking about for quite some time.

  • Made The Move To HTTPS!

    Early last month, I decided to make the move and finally run my site under a secure certificate. This something I’ve been meaning to do over the last year as it became apparent that Google will soon penalise your search rankings if an SSL is not implemented. I was surprised how cheap and easy it was to move to https... Even though I had Webmaster Tools teething problems.

  • Goodbye BlogEngine. Hello Kentico!

    For many years, I've been a happy BlogEngine user. However, recently my website was starting to expand in a way that wasn't flexible enough for the BlogEngine platform. Don't get me wrong, BlogEngine is a great blogging platform and it is without a doubt one of the best out on the market. But the capabilities and features Kentico provides made moving over to another platform an easy decision.