<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Evergreen Innovations tech blog</title>
<link href="https://www.evergreeninnovations.co/tech-blog/"/><link rel="self" href="https://www.evergreeninnovations.co/feed.xml"/><id>https://www.evergreeninnovations.co/tech-blog/</id>
<updated>2022-08-19T00:04:46Z</updated>
<entry><title>Maps in Go</title><link href="https://www.evergreeninnovations.co/blogs-maps-in-go/"/><id>https://www.evergreeninnovations.co/blogs-maps-in-go/</id>
<published>2022-08-18T23:28:12Z</published><updated>2022-08-19T00:04:46Z</updated>
<author><name>Mark Bruggemann</name></author><summary>Why deleting during iteration is safe in Go but not in C++, and why Go’s iteration order changes: a look at both implementations.</summary></entry>
<entry><title>Infrastructure as code</title><link href="https://www.evergreeninnovations.co/blog-infrastructure-as-code-iac/"/><id>https://www.evergreeninnovations.co/blog-infrastructure-as-code-iac/</id>
<published>2021-07-02T15:35:17Z</published><updated>2021-07-02T17:48:59Z</updated>
<author><name>Alekhya Katumalla</name></author><summary>A demonstration of infrastructure as code: deploying an EC2 instance from a CloudFormation template.</summary></entry>
<entry><title>Hilscher netTAP 100: interfacing communication protocols</title><link href="https://www.evergreeninnovations.co/blog-nettap-100/"/><id>https://www.evergreeninnovations.co/blog-nettap-100/</id>
<published>2021-03-17T21:09:12Z</published><updated>2021-03-18T16:18:43Z</updated>
<author><name>Johannes Spinneken</name></author><summary>Bridging a Modbus RTU device onto an EtherCAT network with the Hilscher netTAP 100 gateway.</summary></entry>
<entry><title>Time series forecasting with Facebook Prophet</title><link href="https://www.evergreeninnovations.co/time-series-forecasting-with-facebook-prophet/"/><id>https://www.evergreeninnovations.co/time-series-forecasting-with-facebook-prophet/</id>
<published>2020-12-13T15:34:47Z</published><updated>2020-12-15T03:01:46Z</updated>
<author><name>Graham Penrose</name></author><summary>Forecasting a time series with Prophet, from data preparation through tuning to evaluating the forecast.</summary></entry>
<entry><title>Continuous delivery with GitHub Actions</title><link href="https://www.evergreeninnovations.co/blog-continuous-delivery/"/><id>https://www.evergreeninnovations.co/blog-continuous-delivery/</id>
<published>2020-12-11T21:26:16Z</published><updated>2021-07-07T15:42:49Z</updated>
<author><name>Alekhya Katumalla</name></author><summary>An introduction to GitHub Actions and automated deployment of three mock microservices from a GitHub repository to an AWS EC2 server.</summary></entry>
<entry><title>EL6695: the EtherCAT bridge terminal</title><link href="https://www.evergreeninnovations.co/el6695-ethercat-bridge-terminal/"/><id>https://www.evergreeninnovations.co/el6695-ethercat-bridge-terminal/</id>
<published>2020-08-27T21:54:16Z</published><updated>2020-09-28T21:03:40Z</updated>
<author><name>Alekhya Katumalla</name></author><summary>How to set up the Beckhoff EL6695 bridge terminal to exchange data between two EtherCAT networks.</summary></entry>
<entry><title>Simulating IoT devices using Go</title><link href="https://www.evergreeninnovations.co/blog-simulating-iot-devices-using-go/"/><id>https://www.evergreeninnovations.co/blog-simulating-iot-devices-using-go/</id>
<published>2020-06-06T19:34:07Z</published><updated>2021-07-01T22:32:38Z</updated>
<author><name>Alekhya Katumalla</name></author><summary>Developing and testing IoT code before the hardware arrives: a Modbus TCP test setup that runs entirely on localhost.</summary></entry>
<entry><title>ELK stack in Docker</title><link href="https://www.evergreeninnovations.co/blog-elk-stack-in-docker/"/><id>https://www.evergreeninnovations.co/blog-elk-stack-in-docker/</id>
<published>2020-06-06T19:29:55Z</published><updated>2021-07-01T22:32:56Z</updated>
<author><name>Alekhya Katumalla</name></author><summary>Deploying Elasticsearch, Logstash and Kibana as microservices with Docker. The first in a series on microservice architectures.</summary></entry>
<entry><title>Writing function main in Go</title><link href="https://www.evergreeninnovations.co/blog-writing-function-main-in-go/"/><id>https://www.evergreeninnovations.co/blog-writing-function-main-in-go/</id>
<published>2020-06-06T19:20:10Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Mark Bruggemann</name></author><summary>How to structure the main function in Go so that errors and resources are handled efficiently and safely.</summary></entry>
<entry><title>Principal component analysis</title><link href="https://www.evergreeninnovations.co/blog-principal-component-analysis/"/><id>https://www.evergreeninnovations.co/blog-principal-component-analysis/</id>
<published>2020-05-22T21:50:24Z</published><updated>2020-08-28T17:47:53Z</updated>
<author><name>Jose Ortiz</name></author><summary>Principal component analysis (PCA) reduces the number of features in a machine learning problem. This post introduces PCA and works through an image recognition example.</summary></entry>
<entry><title>Quantile loss function for machine learning</title><link href="https://www.evergreeninnovations.co/blog-quantile-loss-function-for-machine-learning/"/><id>https://www.evergreeninnovations.co/blog-quantile-loss-function-for-machine-learning/</id>
<published>2019-07-12T14:52:46Z</published><updated>2021-12-01T18:05:27Z</updated>
<author><name>Jose Ortiz</name></author><summary>Quantile regression replaces a single-value prediction with prediction intervals. An intuitive explanation of why it works, and an example in Keras.</summary></entry>
<entry><title>Working with package time in Go</title><link href="https://www.evergreeninnovations.co/blog-working-with-package-time-in-go/"/><id>https://www.evergreeninnovations.co/blog-working-with-package-time-in-go/</id>
<published>2019-05-28T00:29:57Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Mark Bruggemann</name></author><summary>Some of the functionality of the standard library time package, and a few issues we hit when first getting to grips with it.</summary></entry>
<entry><title>What is new in TensorFlow 2.0</title><link href="https://www.evergreeninnovations.co/blog-tensorflow-2-0/"/><id>https://www.evergreeninnovations.co/blog-tensorflow-2-0/</id>
<published>2019-05-03T18:55:10Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Jose Ortiz</name></author><summary>Why you may want to implement your next machine learning project using TensorFlow 2.0.</summary></entry>
<entry><title>Creating a Cassandra database cluster for local development</title><link href="https://www.evergreeninnovations.co/blog-local-cassandra-database-cluster/"/><id>https://www.evergreeninnovations.co/blog-local-cassandra-database-cluster/</id>
<published>2019-04-17T22:38:18Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Mark Bruggemann</name></author><summary>Cassandra can run as a multi-node cluster that replicates data across nodes. How to set one up for local development.</summary></entry>
<entry><title>Function interpolation with known piecewise averages</title><link href="https://www.evergreeninnovations.co/blog-function-interpolation-with-known-piecewise-averages/"/><id>https://www.evergreeninnovations.co/blog-function-interpolation-with-known-piecewise-averages/</id>
<published>2019-04-01T20:30:06Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Jose Ortiz</name></author><summary>How to “interpolate” a function when all you know are its averages over certain time intervals.</summary></entry>
<entry><title>Setting up a LabVIEW real-time project</title><link href="https://www.evergreeninnovations.co/blog-labview-rt-project/"/><id>https://www.evergreeninnovations.co/blog-labview-rt-project/</id>
<published>2019-02-23T02:34:01Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Johannes Spinneken</name></author><summary>A brief introduction to setting up the LabVIEW real-time cRIO and FPGA environment.</summary></entry>
<entry><title>EtherCAT on LabVIEW and cRIO</title><link href="https://www.evergreeninnovations.co/blog-ethercat-on-labview-crio/"/><id>https://www.evergreeninnovations.co/blog-ethercat-on-labview-crio/</id>
<published>2019-02-23T01:07:41Z</published><updated>2021-07-01T22:52:19Z</updated>
<author><name>Johannes Spinneken</name></author><summary>Using EtherCAT, a powerful industrial real-time communication protocol, with the NI cRIO, including benchmarking its performance.</summary></entry>
<entry><title>A LabVIEW real-time application example</title><link href="https://www.evergreeninnovations.co/blog-labview-rt-application/"/><id>https://www.evergreeninnovations.co/blog-labview-rt-application/</id>
<published>2019-01-05T23:40:24Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Johannes Spinneken</name></author><summary>Using LabVIEW real-time for a real-world motor controller, including the cRIO real-time OS and the cRIO FPGA.</summary></entry>
<entry><title>Regression loss functions for machine learning</title><link href="https://www.evergreeninnovations.co/blog-machine-learning-loss-functions/"/><id>https://www.evergreeninnovations.co/blog-machine-learning-loss-functions/</id>
<published>2019-01-05T22:02:38Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Jose Ortiz</name></author><summary>Loss functions and their correct application are essential to machine learning models. A first overview of three common ones.</summary></entry>
<entry><title>Deploying a real-time LabVIEW project as a startup executable</title><link href="https://www.evergreeninnovations.co/labview-rt-deployment/"/><id>https://www.evergreeninnovations.co/labview-rt-deployment/</id>
<published>2018-12-29T21:00:18Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Johannes Spinneken</name></author><summary>For many industrial and prototyping applications we bundle LabVIEW code and deploy it as a startup executable on a real-time target. This post shows how.</summary></entry>
<entry><title>Wave tank testing</title><link href="https://www.evergreeninnovations.co/wave-tank-testing/"/><id>https://www.evergreeninnovations.co/wave-tank-testing/</id>
<published>2018-12-27T19:52:19Z</published><updated>2020-08-25T18:45:30Z</updated>
<author><name>Johannes Spinneken</name></author><summary>The joy of working with water waves: what goes into testing devices in a wave tank, and some of the facilities we have worked in.</summary></entry>
<entry><title>Installing WordPress on a virtual private server from scratch</title><link href="https://www.evergreeninnovations.co/wordpress-on-vps/"/><id>https://www.evergreeninnovations.co/wordpress-on-vps/</id>
<published>2018-12-13T20:12:45Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Johannes Spinneken</name></author><summary>A step-by-step guide from a raw Ubuntu server to a running WordPress website.</summary></entry>
<entry><title>Creating a state-space block in LabVIEW</title><link href="https://www.evergreeninnovations.co/labview-state-space/"/><id>https://www.evergreeninnovations.co/labview-state-space/</id>
<published>2018-12-13T18:09:56Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Johannes Spinneken</name></author><summary>The state-space formulation is immensely powerful in control and modelling. This post walks through an application example in LabVIEW.</summary></entry>
<entry><title>Drawing manga</title><link href="https://www.evergreeninnovations.co/tech-manga/"/><id>https://www.evergreeninnovations.co/tech-manga/</id>
<published>2018-11-24T05:20:00Z</published><updated>2020-08-25T18:45:30Z</updated>
<author><name>Wrnwrn Tan</name></author><summary>We know drawing manga isn’t tech. But it’s fun.</summary></entry>
<entry><title>LabVIEW cRIO real-time loops</title><link href="https://www.evergreeninnovations.co/tech-crio-rt-loops/"/><id>https://www.evergreeninnovations.co/tech-crio-rt-loops/</id>
<published>2018-11-23T18:56:31Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Johannes Spinneken</name></author><summary>How to break, and how not to break, the real-time behaviour of a LabVIEW real-time loop.</summary></entry>
<entry><title>Solving ODEs in Python</title><link href="https://www.evergreeninnovations.co/tech-python-ode/"/><id>https://www.evergreeninnovations.co/tech-python-ode/</id>
<published>2018-11-23T18:40:16Z</published><updated>2020-08-25T18:45:29Z</updated>
<author><name>Mark Bruggemann</name></author><summary>How to numerically integrate an ordinary differential equation in Python.</summary></entry>
<entry><title>Parsing data files with Python</title><link href="https://www.evergreeninnovations.co/tech-python-parsing/"/><id>https://www.evergreeninnovations.co/tech-python-parsing/</id>
<published>2018-11-23T18:08:02Z</published><updated>2020-08-25T18:45:30Z</updated>
<author><name>Mark Bruggemann</name></author><summary>Techniques for effective parsing of data files in Python 3.</summary></entry>
</feed>
