Archive

Here's a list of all the posts I've written over the years.

ASP.NET (67)

  • In the post, I will demonstrate how you can get the selected value of a Dropdown field from a custom Member Type in Umbraco. Something I otherwise thought would be relatively straight-forward.
  • Published on
    -
    5 min read

    Umbraco: Programmatically Add/Update A Content Page

    I've been working on a piece of functionality where I needed to develop an import task to pull in content from a different CMS platform to Umbraco. This post will cover how to programmatically add and update content pages using various field types.
  • Published on
    -
    4 min read

    Azure Function: 404 Page Checker

    Creating an Azure Function that will check a site for broken pages on a scheduled basis. If any broken links are found, a report will be sent using SendGrid.
  • ASP.NET Core contains a variety of useful Tag Helpers with one, in particular, giving the ability to cache bust links to static resources using the 'asp-append-version' attribute. This approach works perfectly if linking to static resources using the relevant HTML tags - img, script or link. For complex cache busting, the application build date comes in handy.
  • I experienced a 'System.FormatException: Could not parse the JSON file.' error for a ASP.NET Core site hosted in Azure, caused by the appsettings.json file format. This post will detail the reason behind the error and how to resolve.
  • This post will act primarily as a reminder to myself for when I'm publishing an ASP.NET Core project ready for a production environment and will be covering setting environment variables, custom error pages and serving environment specific appsettings.json file.
  • Published on
    -
    2 min read

    WebMarkupMin: Configuring Minification Level

    By default, WebMarkupMin's minification level is set very high and found that it caused my pages not to be considered valid HTML and worse, things looking slightly broken. I have posted my configuration settings that might be of use to others.
  • A picture tag allows us to serve different sized images based on different viewport breakpoints or pixel-ratios, resulting in better page load performance. Wouldn't it be great if all image tags could be converted to a picture tag within HTML content? Well here is a possible solution...
  • Ever since I started learning ASP.NET those many years ago, I've never been a fan of using "Eval" in databinding controls I primarily use, such as GridViews, Repeaters and DataList. I write pros and (mostly) cons to using our evil friend Eval.
  • Published on
    -
    1 min read

    Dealing With Broken Images In ASP.NET

    Regardless of any site you have worked on, there is always a potential problem of a page rendering broken images. This is more likely to happen when images are served from external sources or through content management platforms.The only way I found a way to deal with this is to provide a fallback alternative if the image to be served cannot be found.
  • Published on
    -
    1 min read

    Getting FileUpload To Work Inside An UpdatePanel

    FileUpload controls do not work inside ASP.NET AJAX UpdatePanels. This post will discuss two steps you should take to allow the file upload functionality to work.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    4 min read

    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.
  • 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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    1 min read

    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?
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    1 min read

    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".
  • Published on
    -
    1 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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”.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    .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.
  • 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.
  • 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.
  • Published on
    -
    3 min read

    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!
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    7 min read

    Google Checkout - Callback Notifications Example

    I stated in my last post that when I got better knowledge of using Google Checkout, I will show a full example on how to implement Google’s payment provider.
  • 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”.
  • Published on
    -
    1 min read

    Get CheckBoxList Values Using jQuery

    To be able to retrieve values from a ASP.NET CheckBoxList control or a group of HTML checkboxes, use the following jQuery
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Over the last few months I have been carrying out endless amounts of research and development to find a way to create my own eCommerce styled search similar to the likes of what eBay and Amazon use.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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...
  • Published on
    -
    6 min read

    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.
  • I came across a problem today when trying to find an effective way to validate the length of a password field within a registration form I was creating. ASP.NET already has a bunch of useful validation controls.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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...
  • Published on
    -
    1 min read

    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 (7)

  • Published on
    -
    2 min read

    Azure Function Stuck In Read Only Mode

    I encountered an issue where for no reason one of my regularly running Azure Functions stopped. I suspected it was due to the Azure Function being set to read-only mode automatically after a failed run.
  • Published on
    -
    4 min read

    Azure Function: 404 Page Checker

    Creating an Azure Function that will check a site for broken pages on a scheduled basis. If any broken links are found, a report will be sent using SendGrid.
  • I experienced a 'System.FormatException: Could not parse the JSON file.' error for a ASP.NET Core site hosted in Azure, caused by the appsettings.json file format. This post will detail the reason behind the error and how to resolve.
  • 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.
  • Published on
    -
    2 min read

    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)

  • Published on
    -
    1 min read

    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.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    1 min read

    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”.
  • I upgraded to the really cool BlogEngine 1.5 last week. I was surprised to find out that I was three versions behind. Nevertheless, the guys behind BlogEngine always know how the make the upgrade really easy!
  • Published on
    -
    1 min read

    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# (17)

  • In the post, I will demonstrate how you can get the selected value of a Dropdown field from a custom Member Type in Umbraco. Something I otherwise thought would be relatively straight-forward.
  • Published on
    -
    3 min read

    C# Variable Type: To 'var', Or Not To 'var'

    This post has been in the works for some time in order to express my annoyance (subjectively) whenever I see every variable in a C# project declared with 'var'.
  • Published on
    -
    5 min read

    Umbraco: Programmatically Add/Update A Content Page

    I've been working on a piece of functionality where I needed to develop an import task to pull in content from a different CMS platform to Umbraco. This post will cover how to programmatically add and update content pages using various field types.
  • Published on
    -
    4 min read

    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.
  • 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.
  • 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.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • 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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.

CMS (45)

  • In the post, I will demonstrate how you can get the selected value of a Dropdown field from a custom Member Type in Umbraco. Something I otherwise thought would be relatively straight-forward.
  • Published on
    -
    3 min read

    Kentico 13: Cookiebot Blocking Page Builder Scripts

    Cookiebot was added to a Kentico 13 site a few weeks ago resulting in unexpected issues with pages that contained Kentico forms, which led me to believe there is a potential conflict with Kentico Page Builders client-side files.
  • Published on
    -
    4 min read

    Addressing The Lack of Kentico Content

    It's been quite some time since I have written anything Kentico related with my last post dated September 2020. What's the reason behind this?
  • Published on
    -
    5 min read

    Umbraco: Programmatically Add/Update A Content Page

    I've been working on a piece of functionality where I needed to develop an import task to pull in content from a different CMS platform to Umbraco. This post will cover how to programmatically add and update content pages using various field types.
  • Published on
    -
    1 min read

    Umbraco: Excessive Logging Causing Socket Timeout

    Ever since a Ucommerce site built in Umbraco went live, the uptime monitoring system would send a notification every day or so to report the site has gone down due to a 'Socket Timeout' - all because of an event log setting.
  • Kentico Kontent ASP.NET Core boilerplate contains a CustomContentLinkUrlResolver class that allows all links to be transformed into a custom URL. The out-of-the-box boilerplate solution works for most scenarios. But there will be times when links cannot be resolved in such a simplistic fashion, especially if your project is using dynamic page routing.
  • Published on
    -
    5 min read

    Thoughts On Moving To A Headless CMS

    Should I be making the move to a Headless CMS? It’s something I’ve been thinking for quite some time, but I have some thoughts and concerns that has stopped me from making the transition.
  • Published on
    -
    5 min read

    Generate Code Name For Tags In Kentico

    I've added a customisation to Kentico's Tag functionality where a unique sanitised text-based identifier (code name) can be assigned to a tag, very useful when used in URL as wildcards to filter a list of records.
  • Page properties are limited in Kentico 12 MVC builds - including Menu and Sitemap visibility options. I wrote a Medium post to show an approach on implementing this functionality, which can be expanded upon with more Kentico page features we have become accustomed to.
  • 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.
  • Published on
    -
    5 min read

    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...
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    2 min read

    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, to now using Kentico Cloud.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    1 min read

    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?
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    5 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    6 min read

    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.
  • 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 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.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    1 min read

    So I Rebuilt My Site Again

    So welcome to my new and improved site built in Kentico 8 and MVC Razor 5.
  • Published on
    -
    2 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • 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!
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    7 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    Does Kentico Cache Case-Sensitive Query String’s?

    I noticed something very strange whilst working on one of my recent Kentico projects, where I required a query string value to be case-sensitive. You might be asking why?
  • 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.
  • Published on
    -
    2 min read

    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

CRM (8)

  • Learn how to add newsletter subscribers into Nexudus using their API and Netlify functions. This guide covers handling Nexudus API limitations, updating subscriber records, and managing subscription groups.
  • Published on
    -
    1 min read

    Hubspot CMS Certifications 2022

    I have now completed the 'Hubspot CMS for Marketers' and 'Hubspot CMS for Developers' certifications.
  • Published on
    -
    1 min read

    Hubspot CMS for Marketers Certified

    Since around September last year I've been involved in a lot of Hubspot projects at my place of work and decided to take the Hubspot CMS for Marketers certification, which I'm happy to report I passed.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.

CSS (4)

  • Published on
    -
    1 min read

    Aligning Images In Markdown

    A nice clean way for positioning images left, right and centre within markdown.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    3 min read

    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.

Client-side (18)

  • Published on
    -
    2 min read

    Lightweight jQuery Quiz Style Countdown Timer

    It's not often you happen to stumble across a piece of code written years ago with fond memories. For me, it's a lightweight jQuery Countdown timer I wrote to be used in a quiz for a Sky project called The British at my current workplace.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    4 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    Get CheckBoxList Values Using jQuery

    To be able to retrieve values from a ASP.NET CheckBoxList control or a group of HTML checkboxes, use the following jQuery
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • 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.

Databases & SQL (11)

  • When using the “Deploy to Azure Database” option in Microsoft SQL Management Studio to move a database to Azure, you may sometimes come across a SQL71562 error. Here is one way on how I diagnose the issue when the error lacks detail.
  • Published on
    -
    3 min read

    Underestimating The Use of Stored Procedures

    It's a shame that I have come quite late in the game when it comes to fully utilising the benefits of stored procedures. When I decided to work on a new project, I made a conscious decision to place all my database queries within stored procedures
  • Published on
    -
    1 min read

    Get Record Count Grouped By Month and Year

    Grouping records by their respective month and year based on a date column can be done really easily by simply running the following SQL query...
  • Published on
    -
    1 min read

    "Timeout expired" in SQL Server 2005

    If you are running a query that needs to make changes to quite a few rows within a database (in my case 8700 rows).
  • Published on
    -
    1 min read

    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...
  • Published on
    -
    1 min read

    UNION ALL

    The UNION command is used to select related information from two tables, much like the JOIN command. However, when using the UNION command all selected columns need to be of the same data type.
  • Published on
    -
    1 min read

    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.

Finance (4)

  • Published on
    -
    4 min read

    In-Specie Transfer From Freetrade To Trading 212

    Discover how I successfully transferred my entire stock portfolio from Freetrade to Trading 212 using an in-specie transfer. Learn about the reasons why I decided to make the move and what the process entailed.
  • Published on
    -
    4 min read

    Side Hustling With UserTesting.com

    I've been using UserTesting.com since June for a side hustle to supplement my monthly investment contribution. I discuss whether it has been a worthy way to accumalate additional income.
  • Published on
    -
    4 min read

    Plum & Freetrade - Making Money Go Further

    During the start of 2021, I started looking into making my money work a little harder. This was primarily by having a better saving strategy in place as well as entering the world of investments.

Gatsby JS (16)

  • Published on
    -
    4 min read

    Lazy-Loading Disqus In Gatsby JS

    Disqus is a popular and comprehensive commenting system I've used since I started blogging. However, I noticed this was adding around 1.6MB-2MB of additional bloat to the page and needed a more efficient way of using Disqus.
  • Published on
    -
    2 min read

    Running A Gatsby Site Locally Using Netlify CLI

    I've been adding more functionality to my Gatsby site within the Netlify eco-system. It only seemed natural that I should install the CLI to allow me to test my changes locally before publishing to Netlify and not eat up precious build minutes.
  • Published on
    -
    2 min read

    GatsbyJS: Numbered Pagination Component

    I created a simple GatsbyJS pagination component where a user will be able to paginate through a list using the standard 'Previous' and 'Next' links as well as selecting individual page numbers.
  • After many years, I reinstated a search to my site - this time using Algolia. I decided to make small customisation to Algolia's Gatsby plugin where the search term can be sent to the index without using the (somewhat restrictive) SearchBox component. I detail how I read a search term from a query-string parameter so searches can be tracked in Google Analytics.
  • Published on
    -
    1 min read

    Aligning Images In Markdown

    A nice clean way for positioning images left, right and centre within markdown.
  • Published on
    -
    3 min read

    Journey To GatsbyJS: We Are Live

    If you’re seeing this post, then this means I have fully made the transition to a static-generated website architecture using GatsbyJS. I started this process late December last year but then started taking it seriously into the new year. It’s been a learning process getting to grips with a new framework as well as a big jump for me and my site.
  • When loading images from an external source, I decided to develop a custom component that gives the flexibilty to lazyload and responsively resize an image based on specific viewport widths. A different approach to what Gatsby Image offers - fluid or fixed.
  • Published on
    -
    2 min read

    Journey To GatsbyJS: Beta Site Release v2

    It’s taken me a little longer to make more progress since my last release. This release has been filled with refactoring, blog post filtering, performance tests and reducing build times.
  • There will be times where you will want to customise the slug based on fields from your markdown file. In my case, I wanted to serve my blog post in the following format: /Blog/yyyy/MM/dd/Blog-Post-Title.
  • Published on
    -
    2 min read

    Journey To GatsbyJS: Beta Site Release v1

    I am surprised at just how much progress I have made in replicating my site using the GatsbyJS framework. I have roughly spent around 10-12 days (not full days) getting up to speed on everything GatsbyJS and transitioning what I have learnt over to the GatsbyJS version of my site.
  • I’ve come late to the static site generator party and never gave it enough thought until I read Paul Stamatiou’s enlightening post about how he built his website. So I decided to pick up the slack and delved into different static-site generator frameworks to get the low-down.

General Development (29)

  • Google Apps Script provides a handy way to execute HTTP requests to an API endpoint to populate a Google Sheet from an external source. In this post, I'll show you how to use the 'UrlFetchApp' API with an authorization header.
  • I had a misconception that React Function components were very limited in what they could offer within my application. In my case, I required the use of state, which I found became possible through the use of 'React Hooks'.
  • I’ve come late to the static site generator party and never gave it enough thought until I read Paul Stamatiou’s enlightening post about how he built his website. So I decided to pick up the slack and delved into different static-site generator frameworks to get the low-down.
  • Published on
    -
    2 min read

    Export Changes Between Two Git Commits In SourceTree

    Sourcetree doesn't have the ability to export file changes across multiple commits. The only option is to use git archive and diff commands, which we dissect to get an understanding how these commands work.
  • Published on
    -
    3 min read

    Duplicate Content: The Impact of Canonical URLs

    Two weeks ago I added canonical tagging across my site, as I was intrigued to see if there would be any considerable change towards how Google crawls my site. Would it make my site easier to crawl and aid Google in understanding the page structure?
  • Published on
    -
    1 min read

    Switch Branches In TortoiseGit

    One of the things I love about TortoiseGit, is the ability to switch between branches against one working directory in a matter of a few clicks. In this post, Idiscuss how to do this.
  • 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?
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    2 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    7 min read

    Google Checkout - Callback Notifications Example

    I stated in my last post that when I got better knowledge of using Google Checkout, I will show a full example on how to implement Google’s payment provider.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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 (5)

  • Page properties are limited in Kentico 12 MVC builds - including Menu and Sitemap visibility options. I wrote a Medium post to show an approach on implementing this functionality, which can be expanded upon with more Kentico page features we have become accustomed to.
  • Published on
    -
    2 min read

    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, to now using Kentico Cloud.
  • Published on
    -
    1 min read

    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?
  • Published on
    -
    1 min read

    The Biggest E-commerce of My Kentico Career!

    I recently blogged about a very large Kentico E-commerce build I was involved with at Syndicut that 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.
  • 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 (23)

  • Published on
    -
    8 min read

    Migrating from Synology DS415Play to DS1821+

    I discuss how I moved data from my Synology DS415Play to a DS1821+ and overcoming the limited migration options available due to the age of my current NAS.
  • Published on
    -
    6 min read

    Hardwiring A Dash Cam Into An Audi A1

    This post covers the process I took in hardwiring a RedTiger Dash Cam unit containing both front and rear camera's into my Audi A1 (2018).
  • Published on
    -
    3 min read

    Pixel Watch and My Smartwatch Epiphany

    I decided to carry out a two-week evaluation period as to whether I could be coerced into moving away from my Garmin to a Pixel Watch. But found myself having an epiphany on smartwatches in general.
  • Published on
    -
    2 min read

    UniFi Dream Machine Slow Internet Speed

    If you find your UniFi device limiting your internet speed, a single option within the router network settings need to be disabled.
  • It is time to make good use of UniFi’s Guest Control settings and prevent access to some of my internal network devices. UniFi does a lot of the grunt work out the box and is pretty effortless to restrict access to my Synology and IP Security Camera.
  • Published on
    -
    2 min read

    UniFi: Unable To Access Synology On Local Network

    Investing in an UniFi Dream Machine has been worth every penny for its reliability, security and rock-solid connection. The only area that I did encounter problems was accessing my Synology locally, which was due to a term I hadn't heard of before until now - Broken Hairpin NAT.
  • Published on
    -
    2 min read

    MacBook Pro Charge Limiting for Battery Health

    Since working from home, my laptop is constantly left plugged into the mains as there isn’t much of a reason to ever disconnect. I’ve been told leaving your laptop on charge has a negative impact on the longevity of your battery. I’ve been looking into charge limiting applications and the benefits.
  • Published on
    -
    5 min read

    Preserving Digital Memories

    The older I get, the more obsessed I have become with preserving life’s memories through photos and video. Changes in Google Photos service has made me rethink how these mementoes will be accessible to future generations to come. I discuss the process I have taken so I don't heavily rely on monopolistic third-party services.
  • For the clever piece of kit Google Nest Hub is, it doesn't seem to be able to do something simple as setting a Radio Alarm. I found a long-winded workaround that allows me to do this whilst I wait for Google to officially support this feature. But I warn you, it ain't pretty!
  • Published on
    -
    2 min read

    Sony Android TV - Resolving Internet Access Issue

    I thought I should write a quick post for those who may also experience lost internet connection on a Sony TV (running Android OS) as my parents encountered a couple weeks ago.
  • Published on
    -
    5 min read

    UniFi WiFi Router Is Really A Dream Machine!

    Ever since I’ve been forced to work from home over the last 3 months, I noticed in the first few weeks of the coronavirus lockdown my network performance has been subpar. So I decided to purchase a UniFi Dream Machine Router by Ubiquiti to resolve my networking woes.
  • Making the transition in moving photos from physical to digital form can be quite an undertaking depending on the volume of photos you have to work with. Flat-bed scanning aren't really up to the task if you want a process that requires minimal manual intervention.The most ideal photo scanner for the job is the Plustek ePhoto Z300.
  • Published on
    -
    4 min read

    My Essential iPad Accessories and Applications

    Following up on my post about the joy that is using my new iPad Air, I thought I'd write about what I deem are essential accessories and applications. It's only been a couple of weeks since making my purchase and has surprisingly found the transition from Android to iOS not too much of a pain. It's fast becoming part of my daily workflow for creative writing and note-taking.
  • Published on
    -
    6 min read

    Searching For A New Tablet and Going Back To iPad

    I’ve been looking for a tablet for quite some time and doing some in-depth research on the best one to get. I am always a stickler for detail and wanting to get best for the time based on budget and specification. Out of all the tablets currently on the market, the iPad Air seemed to fit the bill for my needs.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    2 min read

    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.
  • 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.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    1 min read

    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 (13)

  • Learn how to add newsletter subscribers into Nexudus using their API and Netlify functions. This guide covers handling Nexudus API limitations, updating subscriber records, and managing subscription groups.
  • Published on
    -
    2 min read

    Running A Gatsby Site Locally Using Netlify CLI

    I've been adding more functionality to my Gatsby site within the Netlify eco-system. It only seemed natural that I should install the CLI to allow me to test my changes locally before publishing to Netlify and not eat up precious build minutes.
  • Published on
    -
    4 min read

    Websites and The Environment

    When building any application, the last thing on any developer's mind is how a build will impact the environment. We'll be discussing tools that can measure the size of the carbon footprint your website leaves behind.
  • Published on
    -
    2 min read

    Adding Security Headers In Netlify

    Security headers add a layer of security by helping to alleviate attacks and security vulnerabilities - a must on any site including static variants hosted on Netlify. Securing website headers on a Netlify hosted site couldn't be simpler. In this post, I will explain a quick process to add basic security headers.
  • Published on
    -
    3 min read

    Automatically Backing Up Plesk Data To Synology

    In light of my hosting issues over the last week, I decided it was time to take measures in ensuring all websites under my hosting provider are always backed up automatically.I will show how to remotely back up your website data from Plesk to our Synology NAS using FTP.
  • Published on
    -
    6 min read

    A2 Hosting - Can Any Hosting Provider Be Trusted?

    It's been a turbulent last few days at the house of A2 Hosting where not only all their Windows hosting, but also a number of Wordpresshosting (as of 23rd April) has come to a standstill. This whole outage has caused me to not only reflect on my time with A2 Hosting but also hosting providers in general.
  • 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.
  • Published on
    -
    5 min read

    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...
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    1 min read

    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 App Development (2)

  • 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.
  • Published on
    -
    1 min read

    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 (11)

  • Published on
    -
    3 min read

    Working From Home - A Three-Year Update

    This week will mark the third anniversary of the UK lockdown, which started the 'work from home' phenomenon to the masses. In this post, I will be sharing my thoughts on how this new way of working has changed my life.
  • Published on
    -
    5 min read

    Time Is The School In Which We Learn

    Ever since the pandemic hit, time has become an enemy as each day just passes by with nothing to show for it - primarily due to lockdown restrictions. I decided to use this time to focus on increasing my learning capacity, so there is something tangible to prove my worth over this period to look back on. In this post, I write about the areas in my life that give me the ability to hone my skillset and the process involved.
  • Published on
    -
    4 min read

    My Work from Home Setup

    It'll soon be coming up to a year working from home full-time due to the pandemic and I thought I'd write a post about my current setup as it has evolved over the months. Starting from a bare empty room with just a desk and chair has now become a fitting place to ensure maximum productivity and comfort.
  • Published on
    -
    2 min read

    Writers Block and The Difficulties of Blogging

    There are times when what I want to express does not form into words, which is very much unlike me if I look back at my journey through blogging. I'm noticing more so than ever that writers block is becominga regular occurrence resulting in a lack the energy to write my thoughts on subjects of interest.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    2 min read

    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.
  • 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.
  • Published on
    -
    2 min read

    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”.
  • Published on
    -
    1 min read

    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.

Random Thoughts (32)

  • Published on
    -
    2 min read

    The Silent Blogger

    Everyone has different reasons for blogging. It could be for professional development, knowledge exchange, documenting a personal journey, or just as a form of self-expression. My motive for blogging includes a small portion of each of these reasons, with one major difference: you have to find me.
  • Published on
    -
    4 min read

    Stack Overflow Trigger-Happy Downvoting

    Stack Overflow is one of the best resources to get answers to any tech question. I'm trying to make sense of 'trigger-happy' downvoting that goes on at times without any clear context as to why?
  • Published on
    -
    4 min read

    The Future of Death In A Digital Age

    An episode of Netflix's 'The Future Of' caught my attention and broached the subject of 'Life After Death'. It discussed how we come to terms with death will change in the future and put the ownership of our online digital footprint into question.
  • Published on
    -
    3 min read

    A Mother Tongue Lost

    I've always been unashamedly honest about not being capable of speaking my mother tongue and come to the realisation that I should work harder to grow the little bit of Indian culture left in me.
  • Published on
    -
    1 min read

    Decision To Cross-post To Medium

    As much as I'd like to retain content on a single web presence, I find there are some posts that don't get much traction and believe is more suited for Medium.
  • Published on
    -
    5 min read

    Preserving Digital Memories

    The older I get, the more obsessed I have become with preserving life’s memories through photos and video. Changes in Google Photos service has made me rethink how these mementoes will be accessible to future generations to come. I discuss the process I have taken so I don't heavily rely on monopolistic third-party services.
  • Published on
    -
    3 min read

    Technical Blogging: Where Should I Be Writing?

    I post some of my writing to Medium whether that is a clone of my own blog content or new material specifically for the platform. I’m now rethinking where I should be publishing my content as I am now seeing more of my fellow developers on Twitter posting content to dev.to when they previously used Medium.
  • Published on
    -
    7 min read

    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!
  • Published on
    -
    2 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    It's Only Life

    I can totally relate to the this song right now: The Shins - It's Only Life
  • Published on
    -
    4 min read

    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?
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • 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.
  • 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.
  • Published on
    -
    1 min read

    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 :-) ).
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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?
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.

SCORM (2)

  • 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.
  • Published on
    -
    3 min read

    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)

  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • I have been building a custom .NET web part page to use in my SharePoint intranet. The .NET page has quite a lot of custom HTML and jQuery design elements, so using CSS and JavaScript files were essential.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    6 min read

    Using Microsoft Chart In SharePoint 2007

    As promised, I have been busy creating a custom web part to display Microsoft Charts within my SharePoint reporting dashboard.
  • Published on
    -
    1 min read

    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.
  • 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”.
  • Published on
    -
    4 min read

    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.
  • 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.
  • If any of you have come across a problem in SharePoint 2003 whereby some users are not able to see a link to an area within the main portal page, the solution couldn't be even easier.
  • Published on
    -
    1 min read

    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.
  • 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 (6)

  • Published on
    -
    3 min read

    Pixel Watch and My Smartwatch Epiphany

    I decided to carry out a two-week evaluation period as to whether I could be coerced into moving away from my Garmin to a Pixel Watch. But found myself having an epiphany on smartwatches in general.
  • Published on
    -
    3 min read

    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.
  • 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.
  • Published on
    -
    3 min read

    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!
  • Published on
    -
    1 min read

    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 (15)

  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    3 min read

    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.
  • 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.
  • Published on
    -
    7 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    .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.
  • 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.
  • 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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    6 min read

    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 (34)

  • After years of loyalty to Spotify, rising subscription prices and shifting listening habits led me to explore alternatives. Here's why I made the move to YouTube Music in 2024 and how it compares.
  • Google Apps Script provides a handy way to execute HTTP requests to an API endpoint to populate a Google Sheet from an external source. In this post, I'll show you how to use the 'UrlFetchApp' API with an authorization header.
  • I thought this would be the most opportune moment to try out the 'Working Copy' Git Client app on my iPad to see if I’m able to update my blog on the go. I’m also using this time as a small test to myself to see whether I’m able to focus and write on the fly anywhere.
  • Published on
    -
    2 min read

    Changing EXIF Date and Time In Raw Files

    If you're like me and always forget to change the date time settings on your camera before taking photos, exiftool is a great application to carry out a mass update to correct the error of your ways.
  • Published on
    -
    4 min read

    My Essential iPad Accessories and Applications

    Following up on my post about the joy that is using my new iPad Air, I thought I'd write about what I deem are essential accessories and applications. It's only been a couple of weeks since making my purchase and has surprisingly found the transition from Android to iOS not too much of a pain. It's fast becoming part of my daily workflow for creative writing and note-taking.
  • Published on
    -
    2 min read

    Export Changes Between Two Git Commits In SourceTree

    Sourcetree doesn't have the ability to export file changes across multiple commits. The only option is to use git archive and diff commands, which we dissect to get an understanding how these commands work.
  • Published on
    -
    1 min read

    Switch Branches In TortoiseGit

    One of the things I love about TortoiseGit, is the ability to switch between branches against one working directory in a matter of a few clicks. In this post, Idiscuss how to do this.
  • Published on
    -
    1 min read

    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!
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    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!
  • 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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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?
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    1 min read

    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.
  • Published on
    -
    3 min read

    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 (17)

  • Published on
    -
    6 min read

    Year In Review - 2023

    2023 seems to be the year that has just flown by like a speeding train leaving us at the platform of memories before we have had a chance to comprehend what we have left behind.
  • Published on
    -
    3 min read

    Working From Home - A Three-Year Update

    This week will mark the third anniversary of the UK lockdown, which started the 'work from home' phenomenon to the masses. In this post, I will be sharing my thoughts on how this new way of working has changed my life.
  • Published on
    -
    10 min read

    Year In Review - 2022

    Another year has come to pass, which requires reflection and more realistic goals for 2023.
  • Published on
    -
    6 min read

    New Website Built with Tailwind CSS and GatsbyJS

    If you haven't noticed (and I hope you have), in June I finally released an update to my website to look more pleasing to the eye. This has been a long time coming after being on the back-burner for a few years.
  • Published on
    -
    4 min read

    300th Blog Post!

    Hitting the 300th blog post milestone isn't something I could have ever imagined. But here we are. This seems like an ideal opportunity to look back and reflect on how it all started and my journey.
  • Published on
    -
    5 min read

    Year In Review - 2021

    I haven't met any of the tasks I set myself based on my last year in review. But as life springs up random surprises, you see yourself shifting to a moment in time that you never thought was conceivable.
  • Published on
    -
    7 min read

    Year In Review - 2020

    Is there anything more to say about 2020 apart from what we already know?
  • Published on
    -
    6 min read

    Year In Review - 2019

    Another year has almost come to pass, so here I am with my year in review for 2019.
  • Published on
    -
    11 min read

    Maldives and Vilamendhoo Island Resort

    At Vilamendhoo Island Resort you are surrounded by serene beauty wherever you look. Judging by the serendipitous chain of events where the stars aligned, going to the Maldives has been a long time in the coming - I just didn’t know it.
  • Published on
    -
    6 min read

    Year In Review - 2018

    At the end of 2017, I made a new years resolution: make more of an active effort to blog. Not only within my own website, but to also do a little writing elsewhere to try something a little different. Generally, I fail to stick by my resolutions, this year was different and I have to give myself a pat on the back for the amount of posts I managed to crank out over the year.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    4 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    3 min read

    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.
  • Published on
    -
    2 min read

    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.
  • Published on
    -
    1 min read

    So I Rebuilt My Site Again

    So welcome to my new and improved site built in Kentico 8 and MVC Razor 5.
  • Published on
    -
    1 min read

    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.