• Amazon AWS costs have improved 55-100% since 2009

    I previously wrote an article in 2009 about how much you might expect to pay for hosting your server/services using Amazon AWS EC2 and S3. The conclusion was that it would cost you approximately $920/year up to over $10K/year depending on the instance type you chose to run to host your server on Amazon.

    Over the course of time the cost of hosting on Amazon Web Services has come down dramatically and their service offerings have increased 5 fold from what they had. Let’s take a look at what you will pay now versus 2009 for the comparable setups. For the sake of simplicity I am going to use current 4th generation on demand pricing but there are a few cases where it might be cheaper to use 3rd generation over 4th. There are very few good reasons to still be using first generation servers though. It should also be pointed out that Amazon also launched spot instances which are an even cheaper way to run an ec2 instance albeit not necessarily as reliable.
    Read the rest of this entry »

    Share
  • How to use a Windows .bat file to delete files on a schedule

    This is how you delete files of a certain age using a scheduled task to execute a .bat file. These instructions mainly apply to Windows Server 2012 R2, but they are applicable to most newer (and older) versions of Windows. This is similar to the post I made many years ago but with some additions mainly around the commands you need to find files that are older than a certain date and then deleting them. It also focuses on Server 2012 R2 versus the older 2008.

    The first thing we want to do is create the batch file that we will use to delete the files older than X days. To do this we will need to use the forfiles command in Windows. This is a very handy command for batch files IMO. Here is a run down of the forfiles command and how to use it:
    Read the rest of this entry »

    Share
  • ASP.net 4.6.2 application failing to build

    Our Hudson build server was throwing the following warning and then failing to build our code:

    warning MSB3644: The reference assemblies for framework “.NETFramework,Version=v4.5.2” were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed.

    Fixing this problem was very simple and just required us installing the following:
    Read the rest of this entry »

    Share
  • How to easily caption an animated gif

    So the challenge came up to add a caption to an animated gif without purchasing software and preferably without watermarks. While there are likely many ways of adding text to an animated gif, the all online solution we came up with works very well. Furthermore, as of this writing at least, there will be no watermarks on the resulting image either.

    The big problem when it comes to adding text to an animated gif is most tools open every single image contained in the gif, thus you can edit every image and hope that you can save it again in a working state with your caption.
    Then many free online tools that can do this like to watermark the image and charge you to have it removed in some cases. Here is our free solution for captioning an animated gif.



    Read the rest of this entry »

    Share
  • Collection of useful Apache redirects, rewrites, directives and reminders

    These are a slew of rewrite and redirection commands for Apache that can be setup in .htaccess or other site configuration files. In some cases there are multiple ways of doing things that might work in one situation but not another. I have a love/hate relationship with mod_rewrite, as I think many do, but in the end it is a powerful tool that can do so much that it is indispensable.

    ** IMPORTANT – Anywhere you see RewriteXXXXX, make sure you have “RewriteEngine On” to enable it! **

    Custom error pages:

    
    ErrorDocument 400 /errors/400.html
    ErrorDocument 401 /errors/401.html
    ErrorDocument 403 /errors/403.html
    ErrorDocument 404 /errors/404.html
    ErrorDocument 500 /errors/500.html

    Read the rest of this entry »

    Share