<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>The Coders Corner</title>
    <link>https://www.thecoderscorner.com/</link>
    <description>Recent content on The Coders Corner</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 04 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.thecoderscorner.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Event based programming with IoAbstraction and tcMenu</title>
      <link>https://www.thecoderscorner.com/support-services/training-support/event-based-embedded-ioabstraction-tcmenu/</link>
      <pubDate>Tue, 02 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/training-support/event-based-embedded-ioabstraction-tcmenu/</guid>
      <description>Course Summary IoAbstraction and TcMenu are libraries that make writing software for embedded boards easier, and generally more like writing for the desktop. These training courses aim to quick bring your team up to speed with these technologies. In addition, we can discuss the commercial addons that provide faster drivers and deployment without linking with Arduino.
Like all our courses this can be tailored for your needs.
Course information Cost: £599 per day (excluding travel expenses) In person: UK only.</description>
    </item>
    
    <item>
      <title>Unit testing embedded and Arduino projects</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/unit-testing-arduino-and-embedded-projects/</link>
      <pubDate>Sat, 10 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/unit-testing-arduino-and-embedded-projects/</guid>
      <description>When you&amp;rsquo;ve got more than the simplest embedded program for Arduino (or any other framework), it becomes much harder to test that it&amp;rsquo;s working properly by purely running it. For something like Blink, testing is simple because all we need to do is upload it and see the LED turn on and off; there&amp;rsquo;s little risk of missing anything significant.
However, let&amp;rsquo;s skip forward to a menu based application with Serial or Ethernet control, there is very little chance that you&amp;rsquo;d catch all the edge cases by manual testing.</description>
    </item>
    
    <item>
      <title>Evaluating static memory (SRAM) usage in an Arduino Sketch - Part 1</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/evaluating-static-memory-usage-in-arduino-sketch/</link>
      <pubDate>Fri, 14 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/evaluating-static-memory-usage-in-arduino-sketch/</guid>
      <description>While writing io-abstraction library and tc-menu library I noticed that SRAM memory usage seemed to increase at a rate greater than what seemed right by static evaluation of all the objects I had created. This will become a series of articles on the subject of efficiency in microcontroller environments. In this part, we&amp;rsquo;ll look at how to evaluate memory on your device, and see how to use underlying avr tools to examine the memory requirements.</description>
    </item>
    
    <item>
      <title>Consider using Arduino for your new product</title>
      <link>https://www.thecoderscorner.com/support-services/consultancy/consider-arduino-for-your-professional-product/</link>
      <pubDate>Wed, 10 Jan 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/consultancy/consider-arduino-for-your-professional-product/</guid>
      <description>Edited 02/2024: Over the time I wrote this around 5 years ago, things have really moved on. Now many low volume IoT solutions do ship from what&amp;rsquo;s effectively Arduino, mbed, or similar. I was proven right and even native chains have all moved toward simplified builds with CMake and helpful starting points. PlatformIO is heavily used and productionizes Arduino builds amongst other things, with a good CLI.
My next prediction is that exceptionally costly compilers and IDEs will fall out of favour and Visual Studio, Visual Studio Code and CLion will make up the lions share, using &amp;ldquo;gcc&amp;rdquo; as the compiler along with the CMake build tool.</description>
    </item>
    
    <item>
      <title>Checking if 7segment display is common anode or cathode</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/66-checking-polarity-of-7segment-display/</link>
      <pubDate>Mon, 04 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/66-checking-polarity-of-7segment-display/</guid>
      <description>If you&#39;ve got a 7 segment display but are not sure if it is common anode or common cathode, then you need to check the polarity of the display. This is easily done with a low voltage supply (9V or less) from a battery, bench PSU or Arduino board.
Firstly and before anything else, connect a 1K resistor between the common pin and the battery. This will avoid potential damage to the LED&#39;s in the display.</description>
    </item>
    
    <item>
      <title>Stabilising an existing Arduino or embedded product</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/stablising-existing-embedded-arduino-product/</link>
      <pubDate>Sun, 18 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/stablising-existing-embedded-arduino-product/</guid>
      <description>Sometimes the situation arises where a product is built (or gets close to being built), before any concerns about it&amp;rsquo;s stability are discussed or proper planning arranged. Often this leads to code being written without any proper test plan in place. Combined with very tight deadlines there&amp;rsquo;s often even no plan to go back and fix things up. Once this situation occurs, it&amp;rsquo;s probable that the product release will be compromised.</description>
    </item>
    
    <item>
      <title>Arduino Sketch compilation, cost of virtual tables, Wire memory use - part 2</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/arduino-avr-sketch-compilation-cost-of-vtables-wire-analysis/</link>
      <pubDate>Thu, 20 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/arduino-avr-sketch-compilation-cost-of-vtables-wire-analysis/</guid>
      <description>In part 2 of this series we discuss how sketches compile on Arduino, along with the cost of using the virtual keyword to create virtual classes. Some things are not quite as clear cut as may be initially thought, especially in the very low memory environment of the ATMega328 (Arduino Uno). Lastly we discuss the memory usage of Wire and how to reduce it.
If you&amp;rsquo;ve not read static memory analysis for Arduino - part 1 then I recommend reading that first, as it sets the background for this article.</description>
    </item>
    
    <item>
      <title>Arduino single 7 segment analog measurement example</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/67-arduino-single-7-segment-analog-measurement-example/</link>
      <pubDate>Mon, 04 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/67-arduino-single-7-segment-analog-measurement-example/</guid>
      <description>Measuring voltage from an analog input. Following on from the previous example ( example for driving 7 segment LED displays ). we now build on the same circuit to make a simple voltage meter.
Additional requirements:
Potentiometer of at least 10Kohms. In order to measure voltage, we need to use an Arduino board analog input. Usually these are marked separately as &amp;ldquo;analog in&amp;rdquo;. We are going to use a potentiometer to adjust the voltage at the analog input.</description>
    </item>
    
    <item>
      <title>Java and Embedded AVR C&#43;&#43; Consulting from TheCodersCorner</title>
      <link>https://www.thecoderscorner.com/support-services/consultancy/27-experienced-network-communications-consultant/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/consultancy/27-experienced-network-communications-consultant/</guid>
      <description>I specialise in multithreaded network programming and embedded C++; with in excess of 20 years experience writing applications in both Java and C++. Having spent many years writing systems that need to communicate using differing protocols, often for exchange connectivity we are familiar with many topologies.
In terms of multithreaded development we have built systems with low latency requirements using various methodologies. More recently using non locking bus style designs such as message bus, chronicle and disruptor.</description>
    </item>
    
    <item>
      <title>Getting started Unit testing with Arduino platform</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/getting-started-unittesting-arduino/</link>
      <pubDate>Sun, 18 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/getting-started-unittesting-arduino/</guid>
      <description>This article discusses how to unit test a simple project with Arduino, if you&amp;rsquo;re not used to writing unit tests, or need more background, then first read this guide on unit testing embedded projects.
Presently, all our testing using a custom test framework that is built into IoAbstraction, it can be considered as the least number of components that implement a test framework. It works pretty well overall, we wrote this because we needed the testing to work on all Arduino boards, and even mbed boards too.</description>
    </item>
    
    <item>
      <title>Arduino multiple digit, 7 segment display tutorial</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/65-arduino-multiple-7-segment-display-tutorial/</link>
      <pubDate>Mon, 04 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/65-arduino-multiple-7-segment-display-tutorial/</guid>
      <description>On the previous page covering single digit displays, we dealt with driving one 7-segment digit. On this page we&amp;rsquo;ll use a multi-digit display and assume 4 digits. Just like single devices, multi-digit 7-segment displays have connections for A-G, DP and common, but they have a common pin for each digit, with one set of A-G and DP pins that are shared. So for a 4 digit display there will be four common pins.</description>
    </item>
    
    <item>
      <title>Wiring a 20x4 character display to an Arduino board</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/90-wiring-a-20x4-character-display-to-an-arduino-board/</link>
      <pubDate>Fri, 25 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/90-wiring-a-20x4-character-display-to-an-arduino-board/</guid>
      <description>In this article I describe how to wire a 20x4 character display to an Arduino. I&#39;m assuming you are using a regular 5V 8bit Arduino, if this is not the case this article will not work for you as you&#39;ll need voltage level converters. Most character based LCD displays use the same wiring, but I can&#39;t guarantee that all will be the same. If your display is the same it will look like the diagrams on this page and will have 16 pins.</description>
    </item>
    
    <item>
      <title>Embed Control developer version for controlling and monitoring Arduino</title>
      <link>https://www.thecoderscorner.com/products/apps/embed-control/embed-control-desktop-iot-monitor/</link>
      <pubDate>Wed, 25 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/embed-control/embed-control-desktop-iot-monitor/</guid>
      <description>There are two versions of Embed Control desktop UI, the first is built into TcMenu Designer and is aimed at developers and more advanced users that fully understand the menu tree, and may want to create customize views. The second version is a user-centric Embed Control packaged for App Stores and available from the App Store for that platform. This version will also support mobile devices running iOS and Android soon.</description>
    </item>
    
    <item>
      <title>Control embedded menu application from browser - embedCONTROL.js</title>
      <link>https://www.thecoderscorner.com/products/apps/embed-control/control-embedded-device-browser/</link>
      <pubDate>Mon, 25 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/embed-control/control-embedded-device-browser/</guid>
      <description>Instead of the desktop version, on Raspberry PIs you can serve a React.JS based single page web application that needs no installation. It works on a wide range of mobile phones, desktop and tablet devices. It is not supported in the Arduino or mbed environment directly at the moment.
Using the deployed app To open the app, simply browse to the device on the configured host and port. For example if the device were 192.</description>
    </item>
    
    <item>
      <title>Contact Us</title>
      <link>https://www.thecoderscorner.com/contact-us/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/contact-us/</guid>
      <description>There&amp;rsquo;s several ways you can get help with our products:
Contact us directly. Our consultancy pages. Our community forum </description>
    </item>
    
    <item>
      <title>IoT Application Development</title>
      <link>https://www.thecoderscorner.com/support-services/iot-app-dev/</link>
      <pubDate>Mon, 04 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/iot-app-dev/</guid>
      <description>IoT applications cover a wide range from simple devices with maybe one sensor and no local input, right through to heavily connected devices with a local display and input facilities. Our libraries can help out in nearly all of the above cases, shortening the time to market. Whatever the product, our libraries will have a starting point that we could use in order to build that type of product.
What boards can we build for?</description>
    </item>
    
    <item>
      <title>Using the App Store version of Embed Control</title>
      <link>https://www.thecoderscorner.com/products/apps/embed-control/using-embed-control-app-store/</link>
      <pubDate>Wed, 06 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/embed-control/using-embed-control-app-store/</guid>
      <description>Embed Control allows you to control tcMenu based applications using either a mobile phone or desktop computer. is gradually being made available on the App Store, in a lighter user-centric form more suited to end users and mobile device use. It uses the same forms as the full desktop developer version and has at least as good connectivity.
Available already on the Windows Store, and a BETA/RC is available for all Apple devices.</description>
    </item>
    
    <item>
      <title>Generating Form Layouts for use with Embed Control</title>
      <link>https://www.thecoderscorner.com/products/apps/embed-control/creating-custom-layout-embed-control/</link>
      <pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/embed-control/creating-custom-layout-embed-control/</guid>
      <description>Embed Control can load layouts that have been generated in tcMenu Designer. These layouts provide more control over the mobile layout than what is possible using the Auto UI. Either the user-centric or tcMenu Designer based UI can load forms, but only tcMenu Designer can create them.
How does Embed Control show menu items? A form layout is nothing more than a grid of drawing instructions, and you can select the number of columns in the grid, along with the layout name and a few common options.</description>
    </item>
    
    <item>
      <title>Menu Projects</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/menus/</link>
      <pubDate>Mon, 11 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/menus/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Blog entries for Q2-2021</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q1-2022/</link>
      <pubDate>Fri, 21 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q1-2022/</guid>
      <description>Here&amp;rsquo;s my blog posts for Q1 2022..</description>
    </item>
    
    <item>
      <title>New Year 2022 and an update is overdue</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q1-2022/new-year-and-an-update-is-long-overdue/</link>
      <pubDate>Fri, 21 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q1-2022/new-year-and-an-update-is-long-overdue/</guid>
      <description>It&amp;rsquo;s been a bit too long between updates, and this is a major update. There are changes ahead for tcMenu, IoAbstraction and TaskManagerIO as I had to make a choice on how much I can do, going forward and for the foreseeable future it is back to my hobby, and the company behind it is closed. I am very happily working permanently and making the audio equipment that I always wanted to make in my spare time.</description>
    </item>
    
    <item>
      <title>tcMenu designer 2.2 with improved IoT support and more automated tested</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/tcmenu-designer-2.2-iot-support-automated-testing/</link>
      <pubDate>Sat, 05 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/tcmenu-designer-2.2-iot-support-automated-testing/</guid>
      <description>It has been quite a bit more than a week since the last update, but a lot has happened in that time! First, we released version 2.1.3 of the library, and switched the designer to use the 2.1 plugins by default. That means that we&amp;rsquo;ve opened up themes for everyone to use. We&amp;rsquo;ve also made it really easy to rollback too.
However, let&amp;rsquo;s take a look at where we are now, since the move to a single code base for designer.</description>
    </item>
    
    <item>
      <title>tcMenu - menu designer 2.1 has been released</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/tcmenu-menu-designer-2.1-released/</link>
      <pubDate>Sat, 08 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/tcmenu-menu-designer-2.1-released/</guid>
      <description>We have now released version 2.1 of the menu design software TcMenuDesigner. For all users it is now downloaded from GitHub instead of acquiring from the App Store. We notarize for Mac, package for Linux, and have an extended validation certificate for Windows deployments. So it should be quite easy to install for most.
We initially thought getting it in the App Stores was what people wanted. However, most people seemed either neutral or negative to tcMenuDesigner being installed from the App Store.</description>
    </item>
    
    <item>
      <title>TaskManagerIO and asynchronous I2C in IoAbstraction</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/taskmanager-i2c-ioabstraction/</link>
      <pubDate>Thu, 15 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/taskmanager-i2c-ioabstraction/</guid>
      <description>In the image to the left, you see me debugging hardware I2C (or TWI) from AVR to a PCF8574.
This past week and a bit I realised something, there&amp;rsquo;s a couple of missing pieces in the core libraries that are really needed to tidy up the last messy pieces in IoAbstraction. Once we move beyond TcMenu 2.0, we expect that it should be enhancements only.
Firstly, we think that task manager lacks one last feature, a suitable generic cross-platform spin locking mechanism.</description>
    </item>
    
    <item>
      <title>TaskManagerIO update, tcMenu 2.0 testing, mbed improvements</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/taskmanager-testing-tcmenu-mbed/</link>
      <pubDate>Tue, 06 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/taskmanager-testing-tcmenu-mbed/</guid>
      <description>As promised last week, here&amp;rsquo;s an inflight update for this week. It&amp;rsquo;s been a busy week as we get further along in the preparations for tcMenu 2.0, and try to bring mbed further into the fold.
First of the bat this week was to fix the last of the bugs we knew about in tcMenu 2.0 development branch, so as far as we know, anything outstanding is now fixed, and we are ready to do the final testing!</description>
    </item>
    
    <item>
      <title>Blog entries for Q2-2021</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/</link>
      <pubDate>Fri, 02 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/</guid>
      <description>Here&amp;rsquo;s my blog posts for Q2 2021..</description>
    </item>
    
    <item>
      <title>Completed roadmap projects 2021 Q2</title>
      <link>https://www.thecoderscorner.com/products/product-roadmap/completed-2021q2/</link>
      <pubDate>Fri, 02 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/product-roadmap/completed-2021q2/</guid>
      <description>Summary Please see GitHub for the ongoing work, this only shows historic work.
Projects that have been compeleted in Q1/2 of 2021. All releases use the name of a popular LP / album. See the Product roadmap for current projects
Sprint: There&amp;rsquo;s a new dawn (The New Dawn) Status Est Project Task Done testing Fully test tcMenu 2.1 UI with 2.0 libraries to ensure all new features are working, and high compatibility Done website Document the changes in the interfaces for 2.</description>
    </item>
    
    <item>
      <title>TcMenu 2.0 - a very complete menu framework / library</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/tcmenu-2.0-where-are-we-now/</link>
      <pubDate>Fri, 02 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/q2-2021/tcmenu-2.0-where-are-we-now/</guid>
      <description>I&amp;rsquo;m going to start writing more frequently about our goals, and the plan is to do it here and share these updates on Facebook and Twitter, to avoid me having to write the core of the article twice. This time around I&amp;rsquo;m going to cover tcMenu 2.0, where it is, and what&amp;rsquo;s next.
TcMenu 2.0 BETA designer UIs and Libraries are now available This is an exciting time for tcMenu, moving further towards a UI framework rather than just rendering line by line.</description>
    </item>
    
    <item>
      <title>tcMenu Designer UWP and MacOS - 2.x releases</title>
      <link>https://www.thecoderscorner.com/products/apps/tcmenu-designer/designer-2.x-release/</link>
      <pubDate>Fri, 05 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/tcmenu-designer/designer-2.x-release/</guid>
      <description>Current status, TcMenu Designer 2.1.x is the current stream, the 2.0 library and plugins will be released soon. At this point 1.7 will become previous, and 2.0 current. All menus we&amp;rsquo;ve tested have transitioned without any issues.
The main changes: All graphical classes moved into the &amp;ldquo;graphics&amp;rdquo; directory, so for example GfxMenuConfig.h is now graphics/GfxMenuConfig.h. Most of the graphical code is now in a namespace, you may need using namespace tcgfx; in your code, although the library takes care of backward compatibility for most.</description>
    </item>
    
    <item>
      <title>tcMenu Designer app</title>
      <link>https://www.thecoderscorner.com/products/apps/tcmenu-designer/</link>
      <pubDate>Sat, 05 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/tcmenu-designer/</guid>
      <description>TcMenu designer is the application that allows you to quickly generate data structures that can be used with tcMenu, it works in association with input, display, and remote capability plugins to provide a full application with IoT capabilities over Serial, Bluetooth, WiFi and ethernet. Additional endpoints can be easily created.
For all users we recommend the GitHub packages linked below. Although TcMenu Designer can still be obtained from the App Store, we strongly recommend the GitHub packaged version.</description>
    </item>
    
    <item>
      <title>tcMenu Designer UWP and MacOS - 1.7 releases</title>
      <link>https://www.thecoderscorner.com/products/apps/tcmenu-designer/designer-1.7.x-release/</link>
      <pubDate>Sat, 05 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/tcmenu-designer/designer-1.7.x-release/</guid>
      <description>Release 1.7.12 (download version 13) Windows 10 Full testing completed Ensure that save adds to the recent list immediately Release 1.7.11 Windows 10 BETA Automated testing has been added during the release cycle, tests complete menu creation flow. Very minor formatting and display bugs have been fixed. This will probably become the next Windows Store seed. Release 1.7.10 Windows 10 BETA Refactored the tree view to be more like the MacOS and Java version.</description>
    </item>
    
    <item>
      <title>Completed roadmap projects 2020 Q3</title>
      <link>https://www.thecoderscorner.com/products/product-roadmap/completed-2020q3/</link>
      <pubDate>Thu, 12 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/product-roadmap/completed-2020q3/</guid>
      <description>Summary Please see GitHub for the ongoing work, this only shows historic work.
Projects that have been compeleted in Q3 of 2020. All releases use the name of a popular LP / album. See the Product roadmap for current projects
Emergency changes to Windows designer to restore stability (Completed 23/12/2020) Next sprint abandoned while we restore stability to the windows tcMenu designer application and make it possible to download and use all current patch releases of the software.</description>
    </item>
    
    <item>
      <title>All Product Roadmap</title>
      <link>https://www.thecoderscorner.com/products/product-roadmap/</link>
      <pubDate>Sun, 11 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/product-roadmap/</guid>
      <description>Please see GitHub for the ongoing work, this only shows historic work.</description>
    </item>
    
    <item>
      <title>Embed Control and Monitoring IoT for Arduino, PicoSDK and mbed</title>
      <link>https://www.thecoderscorner.com/products/apps/embed-control/</link>
      <pubDate>Sat, 05 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/embed-control/</guid>
      <description>Embed Control IoT solution provides monitoring and control of menu based applications written with tcMenu near automatically. When designing and developing your IoT menu application, you simply add a supported remote capability into your application as a plugin from tcMenu Designer. Once your embedded app firmware is uploaded you&amp;rsquo;ll be able to access it from &amp;ldquo;Embed Control&amp;rdquo;.
The user-centric version of Embed Control is being released to all App Stores at the moment, and will be available on Windows Store, Apple App Store (Mac, iPhone, and iPad), and Android Play Store.</description>
    </item>
    
    <item>
      <title>Mobile and desktop apps</title>
      <link>https://www.thecoderscorner.com/products/apps/</link>
      <pubDate>Fri, 04 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/apps/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Contact</title>
      <link>https://www.thecoderscorner.com/all-contact/</link>
      <pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/all-contact/</guid>
      <description>Contacting Us Browse or raise a topic on our community forum Contact us directly. </description>
    </item>
    
    <item>
      <title>Heltek Wifi kit 8 pin outs marked wrongly on some silk screens</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/wifi-kit-8-pinout-wrong-silkscreen/</link>
      <pubDate>Wed, 01 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/wifi-kit-8-pinout-wrong-silkscreen/</guid>
      <description>I recently bought a Heltek Wifi kit 8 and noticed that although the board itself seems to be a good board the pin-outs, both online and on the silk screen of the board are wrongly specified. For example the silk screen shows SDA and SCL on non standard pins, but this is not the case as far as I can tell. To get this information, I&amp;rsquo;ve followed the schematic then proven these findings with in circuit testing to prove it.</description>
    </item>
    
    <item>
      <title>Training and Support</title>
      <link>https://www.thecoderscorner.com/support-services/training-support/</link>
      <pubDate>Fri, 01 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/training-support/</guid>
      <description>I will say upfront that I do not work in the IoT or embedded domain, by day I am a Java/TypeScript/C++ software developer in financial services and these libraries are my hobby. I hope you enjoy using them, and that they are useful for you. But before going further, please understand my view point on this.
Support We generally only offer support under carefully agreed circumstances, determining how much time will be needed and what your expectations are.</description>
    </item>
    
    <item>
      <title>Commercial Services</title>
      <link>https://www.thecoderscorner.com/support-services/</link>
      <pubDate>Mon, 04 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Testing Embedded Projects</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/</link>
      <pubDate>Sun, 11 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/embedded-testing/</guid>
      <description>Raspberry PI</description>
    </item>
    
    <item>
      <title>Efficiency</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/</link>
      <pubDate>Tue, 11 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/</guid>
      <description></description>
    </item>
    
    <item>
      <title>How the Arduino memory model works - for AVR</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/how-arduino-avr-memory-model-works/</link>
      <pubDate>Mon, 10 Sep 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/efficiency/how-arduino-avr-memory-model-works/</guid>
      <description>An overview of memory organisation All general purpose processors, be it Intel, ARM or AVR devices work by reading instructions from memory and executing them. They are generally based on one of two Architectures: Von-Neumann or Harvard. The vast majority of larger systems such as PC&amp;rsquo;s and mobile devices use Von-Neumann, but AVR processors in Arduino boards such as Uno and Mega use Harvard architecture.
In a Von-Neumann processor there is one memory area, all program code, data, EEPROM and IO registers share a single memory space, with everything mapped to unique address ranges.</description>
    </item>
    
    <item>
      <title>Detecting power loss in a power supply</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/detecting-power-loss-in-powersupply/</link>
      <pubDate>Mon, 02 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/detecting-power-loss-in-powersupply/</guid>
      <description>There are times when your program needs to react to your device being turned off, for example to save the current state of an Arduino sketch to EEPROM before shutting down, or to disengage relays in a power module to ensure there is a clean shutdown.
Usually, the power loss detector is designed as part of the power supply, so here I&amp;rsquo;ve put together an example power supply that we can study, note that this is not intended as an exemplar of power supply design, and is rather incomplete, but to serve as a crude model that we can study to see how to detect power loss.</description>
    </item>
    
    <item>
      <title>Making an arduino board holder from ply &amp; wood</title>
      <link>https://www.thecoderscorner.com/electronics/cases-enclosures/making-arduino-board-holder-from-wood/</link>
      <pubDate>Thu, 23 Nov 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/cases-enclosures/making-arduino-board-holder-from-wood/</guid>
      <description>Making a nice case for an Arduino board can range from the simplest possible case, a piece of plywood the right size, with a few holes to mount the board, right through to an intricate box with closing lid etc. This one probably falls in the middle somewhere.
Why another Arduino board holder you ask? Now that my son has taken up the same hobby as me, having started with scratch and a bit of python, he fancies his hand at Arduino.</description>
    </item>
    
    <item>
      <title>Belt clamps - what a find!</title>
      <link>https://www.thecoderscorner.com/workshop/tools/belt-clamps-what-a-find/</link>
      <pubDate>Fri, 20 Oct 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/workshop/tools/belt-clamps-what-a-find/</guid>
      <description>While looking through the ScrewFix (UK) website recently, I found this little gem of a tool that I&amp;rsquo;ve purchased and used a couple of times now (see photo - left). They refer to it as a &amp;ldquo;belt clamp&amp;rdquo; so should be easy to track down should you want one too.
This is an amazing little device for its cost and I cannot speak highly enough of it. I get no payback for listing this, I just think that for cabinet construction this tool is absolutely great.</description>
    </item>
    
    <item>
      <title>Cases and Enclosures</title>
      <link>https://www.thecoderscorner.com/electronics/cases-enclosures/</link>
      <pubDate>Wed, 11 Oct 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/cases-enclosures/</guid>
      <description>Raspberry PI</description>
    </item>
    
    <item>
      <title>Tools</title>
      <link>https://www.thecoderscorner.com/workshop/tools/</link>
      <pubDate>Mon, 09 Oct 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/workshop/tools/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Arduino digital input and output tutorial</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/arduino-digital-input-output-tutorial/</link>
      <pubDate>Tue, 25 Jul 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/arduino-digital-input-output-tutorial/</guid>
      <description>In this tutorial and accompanying youtube video (left), I discuss how Arduino inputs and outputs work. Arduino 8 bit boards are mainly based on Atmel AVR chips, in fact the Mega is named after the chip number AVR-Mega-2560. Outputs on the AVR chips are much more versatile than they first look, and the video covers this in detail. If you are using an Arduino pro or other 3V3 based Arduino, replace the 5V mentioned here with 3V3.</description>
    </item>
    
    <item>
      <title>Workshop</title>
      <link>https://www.thecoderscorner.com/workshop/</link>
      <pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/workshop/</guid>
      <description></description>
    </item>
    
    <item>
      <title>IO abstraction: the same code for pins, shift registers and i2c IO</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/basic-io-abstraction-library-pins-or-8574/</link>
      <pubDate>Sun, 25 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/basic-io-abstraction-library-pins-or-8574/</guid>
      <description>When writing Arduino code that needs quite a few IO pins, you may need to expand the IO using a shift register or i2c expansion device such as the PCF8574. Up until now that meant significantly changing your code to use the new device. If you were using the io-abstraction library then you&amp;rsquo;d just set up a different type of IO.
This library allows you to treat shift registers and i2c exapnders almost as if they were pins.</description>
    </item>
    
    <item>
      <title>Hand-built router table for the workshop</title>
      <link>https://www.thecoderscorner.com/workshop/router-jigs/handmade-router-table-for-workshop/</link>
      <pubDate>Tue, 20 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/workshop/router-jigs/handmade-router-table-for-workshop/</guid>
      <description>Over the years, I&amp;rsquo;ve done my fair share of wood and metal work, including quite a lot of router work. For some tasks, I think a good router table is really needed, so I&amp;rsquo;ve took a bit of time out from my other projects to build a good router table.
After much looking around, I came up with a hybrid, based partly on this multipurpose table in a youtube video and party on a book I&amp;rsquo;ve been reading on kindle Complete Guide to Routers by Lonnie Bird.</description>
    </item>
    
    <item>
      <title>Router &amp; Jigs</title>
      <link>https://www.thecoderscorner.com/workshop/router-jigs/</link>
      <pubDate>Fri, 09 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/workshop/router-jigs/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Designing a simple PGA2310 based preamplifier with network control</title>
      <link>https://www.thecoderscorner.com/audio/amplification/the-opamp-preamp-project/</link>
      <pubDate>Fri, 02 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/amplification/the-opamp-preamp-project/</guid>
      <description>At the moment I am prototyping a high quality pre-amplifier based around the PGA2310 volume control and an op-amp buffer input with RF filtering. Each channel will be selectable by relay, along with gain adjustment for each channel in terms of increase in dB. Each channel will be assigned a name that can be changed easily in software and stored along with default volume and channel in the on-board EEPROM.</description>
    </item>
    
    <item>
      <title>Tidy up of my honey badger amplifier</title>
      <link>https://www.thecoderscorner.com/audio/amplification/tidyup-diyaudio-honey-badger-amplifier/</link>
      <pubDate>Thu, 18 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/amplification/tidyup-diyaudio-honey-badger-amplifier/</guid>
      <description>Over the past month or two, I&amp;rsquo;ve finally fixed up some snags that I had when building the honey badger amplifier. When I first built it, I had a difficult time trying to track down dry joint on one of the start boards - it also had a bad IDC connector delivering power to it.
In addition the PSU boards had a fault and needed to be stripped down and moved to new boards.</description>
    </item>
    
    <item>
      <title>SPI Serial Peripheral interface for Arduino tutorial</title>
      <link>https://www.thecoderscorner.com/data-comms/spi-serial-peripheral-interface-tutorial/</link>
      <pubDate>Sun, 09 Apr 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/data-comms/spi-serial-peripheral-interface-tutorial/</guid>
      <description>In this tutorial, I present a fictional SPI chip that we will use for the sake of example. This chip has two LED&amp;rsquo;s and controls them over SPI. It will help us to understand SPI with a real worked example. Following on we will build a real world circuit, using the SPI library, to see how easy it is to use SPI on Arduino.
Serial Peripheral Interface (SPI) Introduction Serial communication allows less pins to be used to communicate information between two chips or boards, and also removes a whole class of timing issues that are associated with parallel communication.</description>
    </item>
    
    <item>
      <title>Secure Linux web host: locking down and checking the SSH access logs</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/cms/secure-linux-web-locking-down/</link>
      <pubDate>Tue, 04 Apr 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/cms/secure-linux-web-locking-down/</guid>
      <description>If you run you hosting on a Linux server, it normally comes out of the box pretty secure with few of the older less secure services enabled. On top of this, if you use a provider like AWS they further secure the server by their own custom firewall. I truly like Amazon Web Service and have used it for some time. They can scale from mom-and-pop shop right up to enterprise.</description>
    </item>
    
    <item>
      <title>Multiple URLs to the same page in Joomla!</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/cms/multiple-url-mappings-in-joomla/</link>
      <pubDate>Sun, 26 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/cms/multiple-url-mappings-in-joomla/</guid>
      <description>TL;DR: In Joomla there&#39;s often more than one way to get to the same page, if you&#39;re moving off joomla this needs to be considered, *preferably before moving any pages*. This article discusses the cases that I found [during my recent move to hugo](https://www.thecoderscorner.com/team-blog/web-design/cms/moving-to-hugo-from-joomla/). URL Mappings in Joomla, the background Recently I decided to move a joomla site over to hugo; I had search engine friendly URLs turned on and therefore assumed the mapping should be easy.</description>
    </item>
    
    <item>
      <title>Building DIYAudio&#39;s honey badger amplifier</title>
      <link>https://www.thecoderscorner.com/audio/amplification/building-diyaudio-honey-badger-amplifier/</link>
      <pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/amplification/building-diyaudio-honey-badger-amplifier/</guid>
      <description>Over a couple of years, I slowly built out an amplifier based on the DIYaudio honeybadger design. It was an on/off process where I got one part of it working at a time. Starting by building the channels one at a time on a bench PSU.
This project consists of a single large transformer and dual mono PSU boards with 20K capacitance on each channel, an Arduino based control board with soft start, overload protection and DC protection.</description>
    </item>
    
    <item>
      <title>Amplification</title>
      <link>https://www.thecoderscorner.com/audio/amplification/</link>
      <pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/amplification/</guid>
      <description>Amplification</description>
    </item>
    
    <item>
      <title>Arduino to PC communication using USB serial and Java</title>
      <link>https://www.thecoderscorner.com/data-comms/simple-communication-between-pc-arduino/</link>
      <pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/data-comms/simple-communication-between-pc-arduino/</guid>
      <description>In this article, I present an example showing how to connect an Arduino device to your PC using USB serial and Java. USB serial is available on nearly all Arduino based boards. Further, there are serial interface Java libraries that can connect to an Arduino.
If you are unfamiliar with data communications in general, take a look a the introduction to data communications article; although it does not cover serial communication, it is still a good starting point for the unfamiliar.</description>
    </item>
    
    <item>
      <title>Moving to Hugo static CMS from Joomla</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/cms/moving-to-hugo-from-joomla/</link>
      <pubDate>Sun, 13 Nov 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/cms/moving-to-hugo-from-joomla/</guid>
      <description>In this article I discuss moving sites from Joomla over to Hugo static content manager. Before we start lets take a quick look at why we may want to do this, and the cases were it may not be appropriate. tl;dr: In summary, hosting a site on Joomla is time consuming and requires that both Joomla and PHP are frequently updated. If you&amp;rsquo;re site is suitable for Hugo and are considering moving over, take a look through the phases below.</description>
    </item>
    
    <item>
      <title>For the first time ever, this site is static generated</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/first-time-ever-this-site-is-static/</link>
      <pubDate>Sun, 30 Oct 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/first-time-ever-this-site-is-static/</guid>
      <description>For the first time ever, this site is now statically generated using hugo content templating system, I wish I&#39;d done it years ago. For technology sites it really is like a breath of fresh air, as there is no more playing around trying to get code and technical content into an online editor designed for WYSIWYG general purpose blog editing. For some time, I had kept the misconception that a CMS had to be dynamic; that was until I found I was spending considerable time trying to keep my Joomla system up to date and safe.</description>
    </item>
    
    <item>
      <title>Websites that we have built</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/sites-that-we-have-built/</link>
      <pubDate>Fri, 12 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/sites-that-we-have-built/</guid>
      <description>Over the years, the coders corner has built lots of websites, working with web writers and graphic designers to help build them. Here are but a handful of my works.
Depending upon budget we offer several different solutions, all built entirely in the UK. Our mainstay is building sites using static content management solutions, as they are generally much easier to maintain in the long run. If you need a dynamic site, we also build dynamic content using various technologies and are well versed in Java and Javascript server side technologies.</description>
    </item>
    
    <item>
      <title>Recovering from a hacked Joomla site</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/cms/recovering-from-a-hacked-site/</link>
      <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/cms/recovering-from-a-hacked-site/</guid>
      <description>I&amp;rsquo;ve recently had to help someone still running Joomla to clean up a hacked site. We are not sure how it happened, as they generally applied updates pretty quickly, but luckily it was detected very quickly and brought down to be fixed.
If your site is hacked, consider taking it offline immediately, fixing will not take that long, and if search engines detect the problem, you&amp;rsquo;ll be taken out of the search results until it&amp;rsquo;s fixed.</description>
    </item>
    
    <item>
      <title>Arduino Game library for 20x4 display</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/fun-and-games/89-arduino-game-library-for-20x4-display/</link>
      <pubDate>Mon, 21 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/fun-and-games/89-arduino-game-library-for-20x4-display/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;Arduino Game Board 20x4&amp;quot; src=&amp;quot;/images/electronics/arduino/games/game-library-20x4.jpg&amp;quot;/&amp;gt;Here we discuss a game library that provides an easy way to write games with 20x4 parallel display and a few micro-switches. There is quite a lot of stuff going on in this library, so I&#39;d like to start slow and build up. First, let&#39;s start by taking a look at the parts needed to use this library:
20x4 display (other size will work too)4k7 resistors (at least 6)220R or 330R resistor for backlightMicroswitches for joystick 1uF capacitor to smooth PWMArduino and breadboard!</description>
    </item>
    
    <item>
      <title>Fun and Games</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/fun-and-games/</link>
      <pubDate>Mon, 21 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/fun-and-games/</guid>
      <description>Fun and Games</description>
    </item>
    
    <item>
      <title>Low power Arduino menu using tcmenu library</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/menus/low-power-arduino-menu-on-mkr-samd/</link>
      <pubDate>Mon, 21 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/menus/low-power-arduino-menu-on-mkr-samd/</guid>
      <description>In this article we&amp;rsquo;ll discuss building a low power Arduino menu using tcMenu library. We will use a TFT screen and a rotary encoder connected to a PCF8574 device. The device will be SAMD MKR board.
I&amp;rsquo;ve picked this choice purposely, because it&amp;rsquo;s non-trivial, and requires a lot of digging to make sure power usage is a low as possible.
Running an Arduino menu on battery If the device can be powered from the mains, then power usage is probably not the biggest issue.</description>
    </item>
    
    <item>
      <title>Switches &amp; Inputs</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/</link>
      <pubDate>Sat, 05 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/</guid>
      <description>Switches &amp;amp; Inputs</description>
    </item>
    
    <item>
      <title>Working with and de-bouncing switches for Arduino</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/88-de-bouncing-input-switches-for-arduino/</link>
      <pubDate>Sat, 05 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/switches-inputs/88-de-bouncing-input-switches-for-arduino/</guid>
      <description>When we press a button that&amp;rsquo;s connected to an Arduino input, it is likely that the button will momentarily &amp;ldquo;flicker&amp;rdquo; between the on and off state. This gives false readings for a short period of time after the button is pressed. Problems caused by this can range from the mild annoyance of a slight flicker, to doing something more than once that should have only happened once. Therefore we need a way to ignore these false readings; ensuring we only consider the button pressed or released when we know for sure that it is &amp;ldquo;stable&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>The coders corner and Web design</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/webdesign-summary/</link>
      <pubDate>Sat, 27 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/webdesign-summary/</guid>
      <description>Web design is a rapidly changing field, both technologies and web-design standards change frequently leaving one with fairly frequent update cycles. In addition to this, any CMS based solution must be updated frequently to ensure that the most recent version. This version will be hardened as much as possible against external attack. If you&#39;ve not updated your CMS solution in some time, I recommend you do so as soon as you can.</description>
    </item>
    
    <item>
      <title>Building a pair of Troels Gravesen&#34;s Jensen ER speakers</title>
      <link>https://www.thecoderscorner.com/audio/speakers/87-building-a-pair-of-troels-gravesen-s-jensen-er-speakers/</link>
      <pubDate>Fri, 26 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/speakers/87-building-a-pair-of-troels-gravesen-s-jensen-er-speakers/</guid>
      <description>Source site fully documenting the build: http://www.troelsgravesen.dk/Jenzen-SEAS-ER.htm
A couple of months ago I built a pair of Jensen ER speakers from Troels Gravesen&#39;s website linked above. Given my room size I went for the slightly smaller ported design that is 360mm deep. Now both they and I have had chance to break in I&#39;ll write a little about them. In my case usage is about 50-50 audio and AV, and IMHO these speakers are equally at home with both Home Cinema and Music duties.</description>
    </item>
    
    <item>
      <title>Message based communication using sockets.</title>
      <link>https://www.thecoderscorner.com/data-comms/86-message-based-communication-using-sockets/</link>
      <pubDate>Sat, 06 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/data-comms/86-message-based-communication-using-sockets/</guid>
      <description>Using sockets for client / server development Following on from Using sockets for a character based stream we now introduce the idea of messaging.
When we need to send commands between two systems (often referred to as client and server) we normally use message based communication, this was briefly discussed in the data communications introduction. For this example we will use Java, it’s freely available and there are many good IDEs.</description>
    </item>
    
    <item>
      <title>Using sockets for a character based stream</title>
      <link>https://www.thecoderscorner.com/data-comms/85-using-sockets-for-a-character-based-stream/</link>
      <pubDate>Fri, 05 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/data-comms/85-using-sockets-for-a-character-based-stream/</guid>
      <description>Following on from the article Introduction to data communications we will now go into more depth, by looking at an example of stream based communication. We will use sockets for the example; mainly because sockets are available out of the box on any computer connected to the internet.
A socket is a stream based connection between a server and a client. Recall from the prior page this means that data is received in the order it was sent.</description>
    </item>
    
    <item>
      <title>Data communications by example for developers</title>
      <link>https://www.thecoderscorner.com/data-comms/84-introduction-to-data-communications/</link>
      <pubDate>Wed, 20 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/data-comms/84-introduction-to-data-communications/</guid>
      <description>In this section I discuss communication protocols; we start with a grounding on the basics and move through to some worked examples. To start with let’s look at some of the simplest cases and understand how communications between computer systems work in practise.
There are many methods of communicating between two computers, be they embedded, mobile, desktop or server. Protocols range from the low level SPI and I2C right through to stream based approaches such as sockets over a network.</description>
    </item>
    
    <item>
      <title>Polyurethane wood glue for audio equipment.</title>
      <link>https://www.thecoderscorner.com/audio/odds-and-ends/83-polyurethane-wood-glue-for-audio-equipment/</link>
      <pubDate>Sun, 03 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/odds-and-ends/83-polyurethane-wood-glue-for-audio-equipment/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;pu glue oozing&amp;quot; src=&amp;quot;/images/audio/oddsAndEnds/glue-pu-oozing.jpg&amp;quot;/&amp;gt;Over the past year or so I&#39;ve pretty much switched from PVA to Polyurethane glue for most tasks. I&#39;ve discussed this glue with other wood workers and in my favourite hardwood store SL Hardwoods of Croydon and all seem to agree it is a strong glue.
To me it has one very large advantage for audio equipment over PVA; which is that it expands to fill any gaps.</description>
    </item>
    
    <item>
      <title>Simple cheap as chips turntable VTA spacer.</title>
      <link>https://www.thecoderscorner.com/audio/odds-and-ends/82-simple-cheap-as-chips-turntable-vta-spacer/</link>
      <pubDate>Sun, 03 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/odds-and-ends/82-simple-cheap-as-chips-turntable-vta-spacer/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;vta adjustment&amp;quot; src=&amp;quot;/images/audio/oddsAndEnds/vta-adjustment.jpg&amp;quot;/&amp;gt;This is probably one of the cheapest things that you can make, and needs just a jigsaw with a metal blade and drill in order to make it. VTA adjusters just extends the height of the arm by a few milimeters and they just need to be made of a solid enough material to ensure the arm mounting is completely firm and has no play whatsoever.</description>
    </item>
    
    <item>
      <title>Audio</title>
      <link>https://www.thecoderscorner.com/audio/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/</guid>
      <description>Audio
My attempts at building audio equipment; including turntables, speakers and cables.</description>
    </item>
    
    <item>
      <title>Building a pair of Seas Mimir design speakers.</title>
      <link>https://www.thecoderscorner.com/audio/speakers/79-building-a-pair-of-seas-mimir-design-speakers/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/speakers/79-building-a-pair-of-seas-mimir-design-speakers/</guid>
      <description>For some time now, I&#39;ve been running a pair of high quality bookshelf speakers based on the Seas Mimir design. Apparently, they are named after the Nordic god of Wisdom and Knowledge, I cannot disagree and with each listening I like them more and more. I&#39;ve run them off both Roksan and Arcam amplification and I&#39;ve really liked the sound from each.
Many people think that when building speakers, the most important thing is the drive unit, but there are many concerns: the quality of the crossovers, the cabinet construction and the stuffing used.</description>
    </item>
    
    <item>
      <title>HI-FI Collective cable kit 6</title>
      <link>https://www.thecoderscorner.com/audio/source-equipment/75-hi-fi-collective-cable-kit-6/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/source-equipment/75-hi-fi-collective-cable-kit-6/</guid>
      <description>Some time ago I built interconnect cable kit #6 from HI-FI Collective. It&#39;s been in my system now for some time and has been used in quite a few situations. Firstly, it&#39;s been used to connect an Arcam rDAC to my Roksan K2, secondly, it&#39;s been used to connect my Cambridge Audio 752BD to my Arcam AVR380 and lastly at the moment it&#39;s being used to connect my Project Tubebox IIse phono stage to the Roksan.</description>
    </item>
    
    <item>
      <title>Odds and Ends</title>
      <link>https://www.thecoderscorner.com/audio/odds-and-ends/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/odds-and-ends/</guid>
      <description>Odds and Ends</description>
    </item>
    
    <item>
      <title>Orbit, a high performance DIY turntable.</title>
      <link>https://www.thecoderscorner.com/audio/source-equipment/80-orbit-a-high-performance-diy-turntable/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/source-equipment/80-orbit-a-high-performance-diy-turntable/</guid>
      <description>Orbit is a high performance DIY turntable based on Rega 24V decks. It&#39;s very easy to make using a moderately well stocked home workshop. In my opinion it competes well with decks costing a lot more than its sum of parts. It uses a fairly conventional design so that it is easy to fit the original Rega lid back onto it, this is important as a lid protects the fragile stylus when not in use and prevents dust reaching the deck.</description>
    </item>
    
    <item>
      <title>Simple and cost effective component base.</title>
      <link>https://www.thecoderscorner.com/audio/odds-and-ends/78-simple-and-cost-effective-component-base/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/odds-and-ends/78-simple-and-cost-effective-component-base/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;sub base&amp;quot; src=&amp;quot;/images/audio/oddsAndEnds/sub-base-tile-intro.jpg&amp;quot;/&amp;gt;After doing a bit of tiling, it struck me just how thick the solid marble tiles are, and as I had a few left it struck me that they would make a good base for a component, such as a sub or turntable. In this case, I used a 15mm marble tile, 18mm of MDF followed by 15mm of tile. At the base I used some high quaility speaker feet left over from another job.</description>
    </item>
    
    <item>
      <title>Source Equipment</title>
      <link>https://www.thecoderscorner.com/audio/source-equipment/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/source-equipment/</guid>
      <description>In this segment I discuss building source equipment and my love of turntables and woodworking.</description>
    </item>
    
    <item>
      <title>Speakers</title>
      <link>https://www.thecoderscorner.com/audio/speakers/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/speakers/</guid>
      <description>Speakers</description>
    </item>
    
    <item>
      <title>Subwoofer build that got me back into DIY</title>
      <link>https://www.thecoderscorner.com/audio/speakers/74-subwoofer-build-that-got-me-back-into-diy/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/speakers/74-subwoofer-build-that-got-me-back-into-diy/</guid>
      <description>Having built several speaker set-ups and amplifiers when I was younger I had got out of the hobby for quite a number of years. However, this build was back in about 2011 and since then I&#39;ve built a few much better units. However, this is still kept here for completeness.
Why I hold this view? In a small room I think it can be difficult to get the right balance between mid to high frequency staging and concentrating the low frequency response near the user.</description>
    </item>
    
    <item>
      <title>Things learnt from building the first turntable.</title>
      <link>https://www.thecoderscorner.com/audio/source-equipment/77-things-learnt-from-building-the-first-turntable/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/source-equipment/77-things-learnt-from-building-the-first-turntable/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;&amp;quot; src=&amp;quot;/images/audio/turntable/tt-complete2.jpg&amp;quot;/&amp;gt;Although my first turntable prototype worked quite well, it had a few issues, each of these is looked at here:
The area under the platter was too thin, and tended to concentrate vibration around the platter main bearing sleeve. This was fixed by brute force to avoid vibration in the first place (a very large granite / MDF block below the plinth).The positioning of the motor and circuit led to some noise, and only earthing to motor prevented it.</description>
    </item>
    
    <item>
      <title>Turntable building - the history</title>
      <link>https://www.thecoderscorner.com/audio/source-equipment/76-turntable-building-the-history/</link>
      <pubDate>Sat, 02 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/audio/source-equipment/76-turntable-building-the-history/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;original TT&amp;quot; src=&amp;quot;/images/audio/turntable/tt-complete1.jpg&amp;quot;/&amp;gt;Before my most recent turntable build, I had tried a couple of earlier designs. The first of which was a Rega deck with a couple of IsoKinetik modifications. I&#39;ve gone a long long way since this, but I keep it here for historic purposes.
Starting out with a P3-24 deck.My deck started life as a refurbished P3-24 unit, with no mods made to it.</description>
    </item>
    
    <item>
      <title>Java development for Raspberry PI using an IDE</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/raspberry-pi/73-java-development-for-raspberry-pi-using-an-ide/</link>
      <pubDate>Sun, 11 Oct 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/raspberry-pi/73-java-development-for-raspberry-pi-using-an-ide/</guid>
      <description>If you&#39;re anything like me, you&#39;ll probably want to develop any large Java application using a fully fledged IDE such as IntelliJ or Eclipse. However, these are probably better run on another computer if available, transferring the code onto the PI. This article shows how to use maven to do fast turn around development onto a PI from a laptop. Note I&#39;m not talking about using this for single class file Java development, but for larger systems.</description>
    </item>
    
    <item>
      <title>Raspberry PI</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/raspberry-pi/</link>
      <pubDate>Sun, 11 Oct 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/raspberry-pi/</guid>
      <description>Raspberry PI</description>
    </item>
    
    <item>
      <title>Data Communications - Networking, Serial etc</title>
      <link>https://www.thecoderscorner.com/data-comms/</link>
      <pubDate>Sun, 09 Aug 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/data-comms/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Filtered extraction from zip file using ZipInputStream and Java 8</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/71-filtered-extract-files-zipinputstream-java8/</link>
      <pubDate>Sat, 16 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/71-filtered-extract-files-zipinputstream-java8/</guid>
      <description>In the example below we build on the Reading a zip file from java using ZipInputStream page to provide basic filtering. This filtering is provided by the filteredExpandZipFile method taking a Predicate. Every ZipEntry is passed to the predicate, but only ones that match (predicate returns true) are included.
Note that the size of an entry cannot be accurately determined in all cases, so it is not safe to perform validation on the this field.</description>
    </item>
    
    <item>
      <title>Using Future and ConcurrentMap for a lazy cache </title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/70-using-future-and-concurrentmap-for-a-lazy-cache/</link>
      <pubDate>Sun, 10 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/70-using-future-and-concurrentmap-for-a-lazy-cache/</guid>
      <description>In this example I demonstrate how to use ConcurrentMap along with Future to generate a lazy cache. Concurrent maps are a good choice in some situations, where absolute atomicity can be traded off for performance, some level of control over ordering of events has been traded for performance.
Let&amp;rsquo;s assume for the sake of example that we have an object that is heavy to create. Further, it has to be created on a single thread because it calls into a single threaded maths library.</description>
    </item>
    
    <item>
      <title>Products</title>
      <link>https://www.thecoderscorner.com/products/</link>
      <pubDate>Mon, 04 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/products/</guid>
      <description>Products
All Libraries All library documentation
Other products </description>
    </item>
    
    <item>
      <title>Buffering an arduino output pin for more power</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/64-buffering-an-arduino-output-pin-for-more-power/</link>
      <pubDate>Sat, 02 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/64-buffering-an-arduino-output-pin-for-more-power/</guid>
      <description>There are some occasions when the amount you safely draw (assume 20mA) from an Arduino board pin is just not enough (and some Arduino boards have even lower current capability). In these cases the output needs to be buffered in order to provide more power.
At this point there are several possibilities, including ready made buffer chips such as the ULN2003A. However, in this tutorial we are going to discuss single transistor buffers; which are simple to build, easily understood and good for a few hundred milli-amps.</description>
    </item>
    
    <item>
      <title>Writing a zip file in java using ZipOutputStream.</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/63-writing-a-zip-file-in-java-using-zipoutputstream/</link>
      <pubDate>Mon, 27 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/63-writing-a-zip-file-in-java-using-zipoutputstream/</guid>
      <description>Following on from one of our popular articles on Reading a zip file from java using ZipInputStream we&amp;rsquo;ve put together a new article on how to create a zip archive using Java. The below example uses ZipOutputStream to create a zip file from all the items in a directory.
Zip files are written slightly differently to a normal stream in that each entry is put into the stream one at a time.</description>
    </item>
    
    <item>
      <title>Old Generation GC and cache performance?</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/62-old-generation-gc-and-cache-performance/</link>
      <pubDate>Sat, 25 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/62-old-generation-gc-and-cache-performance/</guid>
      <description>This is a question as much as a discussion, I can’t find a lot of detail on the state of play in this area and would really welcome any feedback or corrections. Please don’t read this as a negative article as that is not how it is intended; it’s in the optimisation section but I’m not sure what impact it really has. One thing for sure, for 99% of systems you probably don’t have to worry about what’s going on here at all.</description>
    </item>
    
    <item>
      <title>Optimisation</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/</link>
      <pubDate>Sat, 25 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/</guid>
      <description>Optimisation
This area of the website discusses JVM optimisation and analysis techniques. This subject tends to trigger quite strong reactions in people, and it&#39;s not unusual for there to be many differing opinions on this subject.
My aim is to provide articles that are based on evidence and follow best practice.</description>
    </item>
    
    <item>
      <title>Formatting dates in Java with DateFormat</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/55-formatting-dates-in-java-with-dateformat/</link>
      <pubDate>Sun, 22 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/55-formatting-dates-in-java-with-dateformat/</guid>
      <description>There are several ways to format dates in Java, but by far the easiest is to use DateFormat. Creating a DateFormat is very similar to NumberFormat that we saw on the previous page. Here are the static factory methods called directly on the DateFormat class:
getDateInstance(..)getDateTimeInstance(..)getTimeInstance(..)There are several overloaded versions of each method above. We will not cover Locale here as that will be covered in another article on java timezone support.</description>
    </item>
    
    <item>
      <title>Setting up a database realm for role based security</title>
      <link>https://www.thecoderscorner.com/team-blog/hosting-servers/52-setting-up-a-database-realm-for-role-based-security/</link>
      <pubDate>Sun, 22 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/hosting-servers/52-setting-up-a-database-realm-for-role-based-security/</guid>
      <description>Following on from Setting up role based security in tomcat, we now switch from using a memory realm to one backed by a database. Memory realms are great for testing but in any real application is would probably not be acceptable. Normally user credentials are stored in a database, so for this purpose there is a realm based on a datasource.
Depending on your view of things, you will either edit server.</description>
    </item>
    
    <item>
      <title>Simple uses of CountDownLatch</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/54-simple-uses-of-countdownlatch/</link>
      <pubDate>Sun, 22 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/54-simple-uses-of-countdownlatch/</guid>
      <description>CountDownLatch provides a means of waiting for a number of asynchronous events before proceeding. In order to do this one constructs a latch providing the event count. Then one thread would normally call await Whilst the other thread calls countDown. Once the count reaches zero the await call returns and the latch is set. If the call to await happens after the latch is set it returns immediately.
In our example we need to wait for a thread to initialise before proceeding.</description>
    </item>
    
    <item>
      <title>The background, string formatting in java</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/56-the-background-string-formatting-in-java/</link>
      <pubDate>Sun, 22 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/56-the-background-string-formatting-in-java/</guid>
      <description>Over the years there have been no shortage of ways to format a string in java. What with the + operator, StringBuffer, StringBuilder, String.format(..) and various specialised formatters for numbers and dates we sometimes feel a little spoilt for choice. But how do they all work and what are their advantanges / disadvantages?
StringBuffer - a hang up from times gone by!StringBuffer is a synchronized object! Yes, everything you do with it will cause synchronization.</description>
    </item>
    
    <item>
      <title>Using tomcat role based security in JSP&#34;s or servlets</title>
      <link>https://www.thecoderscorner.com/team-blog/hosting-servers/53-using-tomcat-role-based-security-in-jsp-s-or-servlets/</link>
      <pubDate>Sun, 22 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/hosting-servers/53-using-tomcat-role-based-security-in-jsp-s-or-servlets/</guid>
      <description>Following on from Setting up role based security in tomcat we now look at accessing the realm security information from code. Although tomcat takes care of authenticating users at the right time, there are still times when we need to programatically access the credential information. For example the following snippet from userProfile.jsp is a mixed mode page In that anyone can view the page, but some users with manager role see more information.</description>
    </item>
    
    <item>
      <title>Basic current sensing on Arduino</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/50-basic-current-sensing-on-arduino/</link>
      <pubDate>Sun, 27 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/50-basic-current-sensing-on-arduino/</guid>
      <description>I&amp;rsquo;ve got a side project of building a digitally Arduino controlled PSU that also includes an accurate component tester. In order to do this I&amp;rsquo;ll have to be able to monitor the current flowing through a circuit, so I&amp;rsquo;d need some way of monitoring this. Before continuing, I&amp;rsquo;d like to say that is not an exemplar of how to build a great current sensing circuit, it&amp;rsquo;s a prototype shown for example purposes only.</description>
    </item>
    
    <item>
      <title>Building a holder for my Arduino board</title>
      <link>https://www.thecoderscorner.com/electronics/cases-enclosures/48-building-a-holder-for-my-arduino-board/</link>
      <pubDate>Sun, 27 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/cases-enclosures/48-building-a-holder-for-my-arduino-board/</guid>
      <description>&amp;lt;img class=&amp;quot; titleimg&amp;quot; alt=&amp;quot;complete arduino holder&amp;quot; src=&amp;quot;/images/electronics/arduino/holder/board-assembled.jpg&amp;quot;/&amp;gt; After almost shorting out my Arduino with a piece of wire that was left under the circuit board, I decided it was time to mount it onto a proper support board along with the breadboard I often use with it.
Okay I could go out and buy one, but I had a nice piece of high grade birch plywood in the garage (left over from building a pair of speakers).</description>
    </item>
    
    <item>
      <title>PSU &amp; Power</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/</link>
      <pubDate>Sun, 27 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/psu-control/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Stream IO</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/</link>
      <pubDate>Mon, 17 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/</guid>
      <description>Stream IO</description>
    </item>
    
    <item>
      <title>Using Java&#34;s XMLStreamReader PULL XML Parser</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/46-using-xmlstreamreader-to-read-an-xml-file/</link>
      <pubDate>Mon, 17 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/46-using-xmlstreamreader-to-read-an-xml-file/</guid>
      <description>In this entry I show how to use the inbuilt Java XMLStreamReader PULL parser class to read an XML file. The XML stream libraries are PULL based XML parsers that do not load the whole document into a memory structure, so therefore are more suited to large volumes of XML.
Below is an example XML file for a zoo, it contains Animal data types that have both attributes and data. It is kept simple for the sake of example.</description>
    </item>
    
    <item>
      <title>Driving Displays</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/</link>
      <pubDate>Sat, 15 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/</guid>
      <description>Driving display devices including 7 segment, LCD parallel display units.</description>
    </item>
    
    <item>
      <title>Arduino 7 segment LED display tutorial</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/45-arduino-example-for-driving-7-segment-led-s/</link>
      <pubDate>Sun, 02 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/driving-displays/45-arduino-example-for-driving-7-segment-led-s/</guid>
      <description>In this tutorial I show you how to connect a 7 segment display to an Arduino board. For a tutorial showing how to drive 4 or 8 digit displays see (Arduino multiple digit, 7 segment display tutorial). Firstly, we must know what type of display we have as there are two possible forms, common cathode and common anode. If the display is common cathode, then the LOWER voltage side is common, if the display is common anode, then the HIGHER voltage side is common.</description>
    </item>
    
    <item>
      <title>Groovychart Bar chart with fixed colour</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/44-groovychart-bar-chart-with-fixed-colour/</link>
      <pubDate>Sat, 30 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/44-groovychart-bar-chart-with-fixed-colour/</guid>
      <description>In this article I show an example of creating a bar chart with a fixed colour. This was missing from the groovychart example set, and will get included into the next build. If you are unfamiliar with groovy chart then here is an introduction to Groovychart
We simply tell the plot&amp;rsquo;s renderer to use the StandardBarPainter. This turns off the gradient paint that is used by default.
Also this example shows one way of using multiple colours in the bars, its probably not the only way and as recommended elsewhere, I suggest the JFreeChart book for anyone intending serious usage of the library.</description>
    </item>
    
    <item>
      <title>Concurrent</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/</link>
      <pubDate>Sun, 10 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/</guid>
      <description>Concurrent</description>
    </item>
    
    <item>
      <title>Using Semaphore and CyclicBarrier in Java applications</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/41-using-semaphore-and-cyclicbarrier-in-java-applications/</link>
      <pubDate>Sun, 10 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/41-using-semaphore-and-cyclicbarrier-in-java-applications/</guid>
      <description>In this example I show an usage of two more concurrent classes CyclicBarrier and Semaphore; which are both provided in the core Java library. There&#39;s a wealth of concurrency classes built directly into the JVM that can really simplify multi-threaded development.
CyclicBarrrier to make threads wait for alignment.In the example below, I use a cyclic barrier to make several threads wait for alignment. This is a common example where we have many threads and need to wait for all threads to reach a barrier before proceeding:</description>
    </item>
    
    <item>
      <title>Thoughts</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/</link>
      <pubDate>Sat, 09 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/</guid>
      <description></description>
    </item>
    
    <item>
      <title>BlockingQueue producer consumer example</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/40-blockingqueue-producer-consumer-example/</link>
      <pubDate>Fri, 01 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/40-blockingqueue-producer-consumer-example/</guid>
      <description>In this BlockingQueue example we show how to write a very simple producer - consumer with a blocking queue. This example generates SimpleAddition objects that require an addition of two numbers to be performed on the consumer thread. In this case the two values to be added are generated using java.util.Random&#39;s nextInt call. They are stored on the queue as a SimpleAddition transfer object and picked up for processing on the consumer thread.</description>
    </item>
    
    <item>
      <title>Impressed with Fedora 19 Linux</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/38-impressed-with-fedora-19-linux/</link>
      <pubDate>Sat, 26 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/38-impressed-with-fedora-19-linux/</guid>
      <description>After 10 years of service, my old linux box finally gave up so I bought a basic tower to run Linux on. I&#39;ve got to say that Fedora 19 was very easy to install and get working. Just as with Windows 8, I think the new Gnome 3 interface is an improvement once one is accustomed. Although I did tweak a few things with the tweak tool.
These days, I use a setup of Win7/64 running on a macmini (you read that right - I run windows on my macmini).</description>
    </item>
    
    <item>
      <title>Java Compression</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-compression/</link>
      <pubDate>Wed, 23 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-compression/</guid>
      <description>Java NIO</description>
    </item>
    
    <item>
      <title>Java NIO</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-nio/</link>
      <pubDate>Wed, 23 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-nio/</guid>
      <description>Java NIO</description>
    </item>
    
    <item>
      <title>NIO File operations in Java 7</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-nio/37-nio-file-operations-in-java-7/</link>
      <pubDate>Wed, 23 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-nio/37-nio-file-operations-in-java-7/</guid>
      <description>Hot on the heals of the last article, interested in what other goodies may be in the new file IO package, and wanting to try the new catch block, I cooked up another example.
In this example, I create a Path object for an example directory, into which I then create a file and write some text into the file. Some things of note here:
We do not need to concern ourselves with closing the writer objects as they are opened in the new auto-close section.</description>
    </item>
    
    <item>
      <title>Watching files in Java 7 with WatchService</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-nio/36-watching-files-in-java-7-with-watchservice/</link>
      <pubDate>Wed, 23 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-nio/36-watching-files-in-java-7-with-watchservice/</guid>
      <description>In this article I show how to watch files and directories for additions/changes/deletions using the new file system support in Java 7. Finally, after years of native solutions, it is now possible to listen for file changes without resorting to OS specific solutions.
In the code below, first we use the new file system support class Paths to get a Path object that represents our particular directory. We then create a watching service, that we will use to listen for changes and finally we register our path (directory) with the watcher for files that are created.</description>
    </item>
    
    <item>
      <title>What a great summer we had in England</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/34-what-a-great-summer-we-had-in-england/</link>
      <pubDate>Fri, 27 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/34-what-a-great-summer-we-had-in-england/</guid>
      <description>Over here in England we&#39;ve had the best summer in some years. During a recent week holiday in Devon, we could as well have been in the French Riviera the temperatures were so high. I stumbled across a town called Lynton in the Exmoor region on the way back, and what scenery there - the valley of rocks is certainly worth a visit!
In the town centre there was a small record shop, I don&#39;t know the name, but I managed to get half and hour in there to pick up a few records.</description>
    </item>
    
    <item>
      <title>Analog Electronics</title>
      <link>https://www.thecoderscorner.com/electronics/analog-electronics/</link>
      <pubDate>Sun, 19 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/analog-electronics/</guid>
      <description>Analog Electronics</description>
    </item>
    
    <item>
      <title>Getting back into analog electronics</title>
      <link>https://www.thecoderscorner.com/electronics/analog-electronics/31-getting-back-into-analog-electronics/</link>
      <pubDate>Sun, 19 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/analog-electronics/31-getting-back-into-analog-electronics/</guid>
      <description>After a long pause, I&#39;ve finally started to get back into analog electronics. I&#39;m using the Introduction to Electronics and this blog as a way to help myself back up the curve. Below is my first working circuit, the good old class A amp.
Twenty years ago I could have thrown together fairly complex circuits in short order. However, now it takes me a bit longer, after twenty years of C, C++ and Java programming.</description>
    </item>
    
    <item>
      <title>Technological advances and AVR chips</title>
      <link>https://www.thecoderscorner.com/team-blog/thoughts/30-technological-advances-and-avr-chips/</link>
      <pubDate>Sun, 19 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/thoughts/30-technological-advances-and-avr-chips/</guid>
      <description>Just recently I stopped to think about AVR&#39;s. There&#39;s something astounding about a chip that costs a couple of pounds and yet has a fully implemented processor, memory, flash, serial IO, ADC and reprogrammable ROM. Just think that&#39;s basically almost as powerful as an old 8 bit computer from the 80&#39;s in an 8 pin DIP package.
To put that in some perspective, the old 8 bits had countless support chips and their power requirements would be well in excess of any of the ATTINY range of Atmel&#39;s chips.</description>
    </item>
    
    <item>
      <title>electronics</title>
      <link>https://www.thecoderscorner.com/electronics/</link>
      <pubDate>Fri, 15 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/</guid>
      <description>electronics</description>
    </item>
    
    <item>
      <title>Introduction to Electronics</title>
      <link>https://www.thecoderscorner.com/electronics/analog-electronics/28-introduction-to-electronics/</link>
      <pubDate>Fri, 15 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/analog-electronics/28-introduction-to-electronics/</guid>
      <description>There are a few good books and websites that I recommend for people starting out with electronics.
All about circuits Website that has several electronics books available online for free, these cover, DC theory, AC theory, semiconductors and digial electronics.
DC covers voltages, currents, ohms law, conductors, insulators, batteries. Further it also covers network theory AC covers complex numbers, capacitors, inductors, transformers amongst other things SEMI covers the theory behind semiconductors.</description>
    </item>
    
    <item>
      <title>Consultancy</title>
      <link>https://www.thecoderscorner.com/support-services/consultancy/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/support-services/consultancy/</guid>
      <description>NOTE: TheCodersCorner.com presently only offers training and short-term consultancy around our products, I work full time so can only offer a few days of training and consultancy that fit around my main job. Purchasing training or consultancy from me helps me pay for the hosting, certificates and other requirements of the projects.
Developers of today have to be able to deal with a large number of devices and programming languages. Over the past few years the way we use computers and devices has fundamentally shifted; but many companies are struggling to keep up with this change.</description>
    </item>
    
    <item>
      <title>Microcontrollers</title>
      <link>https://www.thecoderscorner.com/electronics/microcontrollers/</link>
      <pubDate>Sat, 09 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/electronics/microcontrollers/</guid>
      <description>Microcontrollers</description>
    </item>
    
    <item>
      <title>Remove duplicate &#34;contact&#34; heading in Joomla contact form</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/cms/24-remove-duplicate-contact-heading-joomla/</link>
      <pubDate>Sat, 09 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/cms/24-remove-duplicate-contact-heading-joomla/</guid>
      <description>In this article I show you how to remove the second &#39;contact form&#39; header from the default contact form in Joomla without hacking your install. I&#39;d seen a couple of videos on you tube that suggested one should alter the underlying installation. You can do this without altering the installation.
The problem Just to make sure we are talking about the same problem. I am discussing the situation where when creating a default Joomla contact form, there are two headers, which by default will look something like the image shown.</description>
    </item>
    
    <item>
      <title>Formatting numbers using NumberFormat</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/16-formatting-numbers-using-numberformat/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/stream-io/16-formatting-numbers-using-numberformat/</guid>
      <description>java.text.NumberFormat is the class used to convert numeric values such as int, long and double into Strings.
It has been around since the early days of Java, and generally performs well. Especially if you cache an instance of the class for repeated use. IMHO the only down side to using NumberFormat is that it can look a little verbose.
To get hold of a copy of the NumberFormat class, call one of the static factory methods on the NumberFormat object:</description>
    </item>
    
    <item>
      <title>Generate an ATOM feed with GroovyBuilder</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/14-generate-an-atom-feed-with-groovybuilder/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/14-generate-an-atom-feed-with-groovybuilder/</guid>
      <description>Lastly, we look at building an ATOM document using the same principles. ATOM provides a means for site owners to provide updates to site users. It works by providing an XML document showing recent changes to the site. Browsers that support RSS and RSS readers can then highlight these changes to users.
An atom formatted document contains two main sections, the header which describes the feed, and then a list of elements, that describe the content.</description>
    </item>
    
    <item>
      <title>Introduction to GSQL (Groovy SQL)</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/19-introduction-to-gsql-groovy-sql/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/19-introduction-to-gsql-groovy-sql/</guid>
      <description>In this article I cover working with SQL from Groovy using the GSQL support built into the language. This is not a complete guide, rather a getting started guide, that shows you a few of the concepts. Firstly, GSQL is built on top of JDBC; which you are probably already familiar with. If not there are many good web guides and books on the subject. Lets get started looking a how to configure up GSQL and execute some statements.</description>
    </item>
    
    <item>
      <title>Reading a GZIP file using Java</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/11-reading-a-gzip-file-using-java/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/11-reading-a-gzip-file-using-java/</guid>
      <description>Another common compression file format on Linux is the GZIP format. Java again has out of the box support for this file format. Gzip files differ from zip files in that they only contain one file, the compressed form of the original file with a .gz extension.
Java&amp;rsquo;s GZipInputStream takes such a file type and decompresses it. We can treat GZipInputStream directly like a FileInputStream. Here is an example that expands such a file to disk</description>
    </item>
    
    <item>
      <title>Reading a zip file from java using ZipInputStream</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/12-reading-a-zip-file-from-java-using-zipinputstream/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/12-reading-a-zip-file-from-java-using-zipinputstream/</guid>
      <description>Java provides support for reading zip files in the form of ZipInputStream. This class provides an API where you can iterate over all the items in a given zip file, reading the data from the archive for each file.
In order to do this, first you must create the ZipInputStream instance giving the file that you wish to expand. Then you iterate using the getNextEntry method on the stream, which returns the header data for each entry in turn.</description>
    </item>
    
    <item>
      <title>Reading XML in groovy using XmlParser</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/15-reading-and-writing-xml-in-groovy/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/15-reading-and-writing-xml-in-groovy/</guid>
      <description>Groovy has great inbuilt xml support, and allows you to treat xml paths like objects. Reading elements and attributes is so straightforward that it was one of the factors that got me started with Groovy. So to build an object tree from xml, we just use the XmlParser class.
To dereference an element we use normal dot syntax, for an attribute, simply add the at symbol (@) before the name, see the example below.</description>
    </item>
    
    <item>
      <title>Setting up role based security in tomcat</title>
      <link>https://www.thecoderscorner.com/team-blog/hosting-servers/17-setting-up-role-based-security-in-tomcat/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/hosting-servers/17-setting-up-role-based-security-in-tomcat/</guid>
      <description>Tomcat and most other Java JEE servers support role based security, form based authentication and SSL. These technologies are integrated into your web application declaratively. At first the configuration for this security can look a little daughnting but once understood it is actually not difficult to configure.
This article is split over several pages and requires an understanding of tomcat and how a JEE webapp is structured. Most of the article is structured towards tomcat, but if you use another application server, many of the concepts are the same.</description>
    </item>
    
    <item>
      <title>Using thread local in Java</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/18-using-thread-local-in-java/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/18-using-thread-local-in-java/</guid>
      <description>This article assumes that you are already familiar with concurrent programming and design. Java 1.5 introduced the concurrent library java.util.concurrent, which provides an extensive set of classes for dealing with concurrency issues, these sit alongside some existing classes that have been around since earlier times. I&#39;ve noticed that some of the classes I mention here don&#39;t get used as often as they should, especially given that they are quick wins. This article only scratches the surface of the new classes available, but should provide a starting point for further reading.</description>
    </item>
    
    <item>
      <title>Write XML with GroovyBuilder</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/13-write-xml-with-groovybuilder/</link>
      <pubDate>Sun, 01 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/13-write-xml-with-groovybuilder/</guid>
      <description>Groovy supports the concept of builders, which provide an abstraction between the required output content and the representation of it. Groovy supports this by providing a tree like structure in groovy code that represents the required HTML or XML:
import groovy.xml.MarkupBuilder// create a builder to generate xml like content from a// builder structure, in this case we choose// StringWriter as the output, but it could be any writer.</description>
    </item>
    
    <item>
      <title>Are we prone to over optimising code?</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/6-are-we-prone-to-over-optimising-code/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/6-are-we-prone-to-over-optimising-code/</guid>
      <description>As a developer I often feel the need to performance tune code, or write &amp;ldquo;the best piece of code ever&amp;rdquo;. Sometimes this happens even before I know which sections of the code will be executed frequently? These days I make every attempt to hold back from this approach.
In applications where performance is critical I usually write it the most natural way and apply any optimisations required later. Usually in such systems I am more worried about garbage collection / not getting a cache hit for memory, than outright CPU performance.</description>
    </item>
    
    <item>
      <title>Concurrent Maps and CopyOnWriteArrayList</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/10-concurrent-maps-and-copyonwritearraylist/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/java-concurrent/10-concurrent-maps-and-copyonwritearraylist/</guid>
      <description>Copy on write lists provide a very quick win in terms of removing synchronization. I believe that a significant use case is providing a thread safe list for java&#39;s Listener (AKA observer) pattern. Copy on write lists make the assumption that the list does not update frequently, and is mainly used for reading. If this is not the case, the overhead may be worse than synchronizing.
java.util.concurrent.CopyOnWriteArrayList implements the List interface and infact is also a random access container (implements RandomAccess).</description>
    </item>
    
    <item>
      <title>Content Management Systems</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/cms/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/cms/</guid>
      <description>Joomla and CMS</description>
    </item>
    
    <item>
      <title>Developer Blog</title>
      <link>https://www.thecoderscorner.com/team-blog/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/</guid>
      <description>Development</description>
    </item>
    
    <item>
      <title>GC monitoring in Java with Jstat</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/8-gc-monitoring-in-java-with-jstat/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/optimisation/8-gc-monitoring-in-java-with-jstat/</guid>
      <description>Recently I had a few performance problems with an application that required JVM GC monitoring. It had been so long since the last time I&amp;rsquo;d had to perform any CG analysis that I had to remind myself of what to do!
Using jps and jstat to get JVM GC statistics First, ensure that an appropriate JDK is on your path
[dave@titan ~]$ java -versionjava version &amp;#34;1.7.0_45&amp;#34;OpenJDK Runtime Environment (fedora-2.</description>
    </item>
    
    <item>
      <title>Groovy and Grails</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/</guid>
      <description>Groovy and Grails</description>
    </item>
    
    <item>
      <title>Hosting and Servers</title>
      <link>https://www.thecoderscorner.com/team-blog/hosting-servers/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/hosting-servers/</guid>
      <description>Hosting and Servers</description>
    </item>
    
    <item>
      <title>Java and JVM</title>
      <link>https://www.thecoderscorner.com/team-blog/java-and-jvm/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/java-and-jvm/</guid>
      <description>Java and JVM</description>
    </item>
    
    <item>
      <title>SEO summary</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/seo/seo-summary/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/seo/seo-summary/</guid>
      <description>Optimising a site, so that it places well for the chosen search terms takes considerable time. Personally, I always start with planning, with questions like: which google searches do you want to do well in? Locally or globally? What social platforms do you users use? These are a few questions for just about anybody wanting to optimise a site.
First, decide which search phrases you want to target, and then ensure that your site does well for these phrases by writing good content around them.</description>
    </item>
    
    <item>
      <title>Tomcat and circular references to hosts</title>
      <link>https://www.thecoderscorner.com/team-blog/hosting-servers/9-tomcat-and-circular-references-to-hosts/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/hosting-servers/9-tomcat-and-circular-references-to-hosts/</guid>
      <description>I had an interesting issue with tomcat today on my VPS.
I added a new domain to my tomcat server configuration, and accidentally caused a circular reference
in the alias section of one virtual host to another virtual host. By this I mean that one virtual host configuration had the same alias as in another host. I am assuming this made some web applications load up more than once, and therefore the server use more memory than would normally be required.</description>
    </item>
    
    <item>
      <title>Wrapping JFreeChart as a Groovy builder</title>
      <link>https://www.thecoderscorner.com/team-blog/groovy-and-grails/7-wrapping-jfreechart-as-a-groovy-builder/</link>
      <pubDate>Sat, 30 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/groovy-and-grails/7-wrapping-jfreechart-as-a-groovy-builder/</guid>
      <description>Groovychart is a library hosted on Java.net that wraps the functionality available in JFreeChart for use as a groovy builder. Currently it is available in snapshot form but hopefully time permitting, a full build will follow soon.
I really like groovy as a scripting language, it&#39;s great for writing simple UI&#39;s for displaying graphical data from many sources including XML and the database. This article helps you set up and get started with groovychart.</description>
    </item>
    
    <item>
      <title>Have your organic search rankings dropped</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/seo/4-have-your-organic-search-rankings-dropped/</link>
      <pubDate>Fri, 29 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/seo/4-have-your-organic-search-rankings-dropped/</guid>
      <description>Introduction: the state of SEO in 2012Google is still one of the largest search engines for most sites, accounting for a large percentage of potential traffic; enough to make or break a business. Why is it that when this is the case, people out-source SEO in an unmanaged way?
Throwing money at the problem saying just get me to #1! Why indeed, because a few years ago this strategy generally worked.</description>
    </item>
    
    <item>
      <title>Know your links</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/seo/5-know-your-links/</link>
      <pubDate>Fri, 29 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/seo/5-know-your-links/</guid>
      <description>If you had some SEO work done a few years ago and did not really manage the process, so that youunderstood where all the links were coming from, and how the optimisation was done, it&#39;s quitepossible that you have some lower quality links inbound to your site.If the above is the case for your site, I would recommend that you read Have your organic search rankings dropped immediately, as you need to know sooner rather than later where your links are coming from.</description>
    </item>
    
    <item>
      <title>SEO Search engine optimisation</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/seo/</link>
      <pubDate>Sun, 24 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/seo/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Social Media</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/seo/social-media/</link>
      <pubDate>Sun, 24 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/seo/social-media/</guid>
      <description>These days, you can have a great site, but unless you&#39;ve connected all the dots, and integrated your site into a valid social media strategy, its unlikely to be enough. I learn&amp;rsquo;t this lesson the hard way nearly ten years ago when we first built the nutricherry site, we spent all our effort building a site that looked great, spending countless hours on user testing, to ensure the site worked properly.</description>
    </item>
    
    <item>
      <title>Web design</title>
      <link>https://www.thecoderscorner.com/team-blog/web-design/</link>
      <pubDate>Sat, 23 Jun 2012 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/team-blog/web-design/</guid>
      <description>Web design</description>
    </item>
    
    <item>
      <title>Privacy statement for thecoderscorner.com</title>
      <link>https://www.thecoderscorner.com/legal/privacy/</link>
      <pubDate>Mon, 01 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/legal/privacy/</guid>
      <description>Who we are In this privacy policy references to &amp;lsquo;we&amp;rsquo;, &amp;lsquo;us&amp;rsquo; and &amp;lsquo;our&amp;rsquo; are to &amp;ldquo;The Coders Corner&amp;rdquo; / Dave Cherry. References to &amp;lsquo;our Website&amp;rsquo; or &amp;rsquo;the Website&amp;rsquo; are to www.thecoderscorner.com
Forward Very little private data is stored by us, the forum is entirely public and allows you to access/manage any information from there yourself. All previous registration information for tcMenu has now been deleted. Analytic data is stored by region only with no IP address.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://www.thecoderscorner.com/subheader/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.thecoderscorner.com/subheader/</guid>
      <description>Libraries to make embedded development easier. We&amp;rsquo;ve written a number of high quality libraries that work on an unprecedented number of boards, including Arduino, mbed, PicoSDK, STM32Cube, ESP-IDF and Raspberry PI. These libraries and frameworks are battle tested, having been used in literally thousands of live designs. Take a look at the &amp;ldquo;Products&amp;rdquo; section. See our production ready open-source libraries.
Not everyone wants to build commercial products on top of Arduino, and recently PicoSDK has been added to the list.</description>
    </item>
    
  </channel>
</rss>
