Elaborating on use of Rust in a professional capacity

I was recently asked the following:
  1. can you point to an implementation of an actor model in Rust that you've built
  2. example of how you've used Tokio
  3. What have you built that uses async/await
I will reflect on a tool that I built in a professional capacity during my time at E-Accent BV. The team had long abandoned Nagios for many reasons, but mainly due to management complexity overhead (and decided well before I joined). Our production stack was running a MySQL production DB and this had a DB 'slave' with replication enabled.
We started to experience instances where the DB slave would fall out-of-sync with the master DB and do so without alerting anyone, and I decided to use Rust to fix this as I was the only person on the team with C/C++ skills.

Rust Trait Objects Demystified

I recently picked up Programming Rust: Fast, Safe Systems Development (2nd Ed) by O'Reilly and one section that I particularly enjoyed is where it covered the approach on using generics vs. Trait Objects.
When I first picked up Rust, I was looking to approach the "any-type" problem with the generics hammer, and this leads to a rather severe design
struct Salad<V: Vegetable> { veggies: Vec<V> }
We can however take advantage of dyn Trait. The dyn keyword is used to highlight that calls to methods on the associated Trait are dynamically dispatched. To use the trait this way, it must be 'object safe'.  The dynamic dispatch means a dyn Trait ...(continued)

This Rails blog gets a complete overhaul

Monoliths are back in vogue.

It all started on 29th October 2011 when I created my first "TODO" app equivalent of the ubiquitous "Hello World" that many of us programmers are familiar with.
Its domain modal was a simple case of User and Post.  That's it.  And Rails 3.1.1.  Back then I wanted a workflow that was primarily markdown driven and Zurb Foundation was my go to frontend of choice, mainly for its grid system etc.  Twitter bootstrap was well, starting to become rather common and I wanted to go with something different.
Much of its later years were spent on integrating a 'Newsletter' style module integrating Mailchimp and OmniAuth for user login.  My User's table started to acquire a few users along the way, although I've purged all of that along with this new reboot.

...and we thought microservices were a good thing, right?< ...(continued)

This is the ESP32 Thing Plus C "Extended" Prototype

Taking inspiration from SparkFun's SparkX creation, the Thing Plus C - ESP32 WROOM, this is an "Extended" version. Here's a quick summary of the improvements I have made:
- Honeywell HumidIcon Digital Humidity/Temperature Sensor (HIH6130) / (Datasheet)
- Microchip ATECC608A (SOIC8) / (Datasheet)
- Microchip ATECC508A (UDFN) / (Datasheet)
- Onboard breakout for the Thermocouple IC 

2019 Homelab: Network Rebuild

Homelab: Network Infrastructure

This covers a "rebuild" of an existing network, which previously occupied a single sub-net. This is coupled with 10G hardware from Ubiquity and a pfSense router to provide advanced capabilities to various VLANs.

pfSense: Interfaces & VLANs

The following were configured inside pfSense which acts as the primary router/firewall designated pfsense-master.

Hardware & Interfaces

  • Intel 6700K CPU
  • Asus Z170 Prime-A mainboard
    • em0
  • StarTech.com Dual Port PCI Express (PCIe x4) Gigabit Ethernet Server Adapter - 2 Port Network Card - Intel i350 NIC - GbE Network Card (ST2000SPEXI) (Amazon)
    • igb0
    • igb1
  • Intel X550-T2 10G NIC
    • ix0
    • ix1


Physical LAN:

  • WAN em0 // 1G NIC on mainboard
  • LAN ix0 //
  • UniFi //
    • UniFi Cloud Key //
  • LAN2 igb1 // -- This is purely a convenience 'console' port for tro ...(continued)

Quickly Get to Grips with React, Redux, and Rematch

Here are a couple videos to help you get started with the basic building blocks on working with React and Redux, without the barrier of TypeScript.

React & Redux

Watch episodes:


Picking up Rematch is pretty easy with the additional content linked.

How to Setup Citrix XenServer 7 to enable Auto-Start Virtual Machines

First enauble auto-start on the pool

[root@xenserver-master ~]# xe pool-list
uuid ( RO)                : f80d49bb-2b56-4255-25bf-ff287f4865b1
          name-label ( RW):
    name-description ( RW):
              master ( RO): 1b41d284-4353-414d-8a5d-6d8974b2cf94
          default-SR ( RW): fb46ee13-a1c3-646f-1db6-bdcf86d29580

[root@xenserver-master ~]# xe pool-param-set uuid=f80d49bb-2b56-4255-25bf-ff287f4865b1 other-config:auto_poweron=true

Then, select the particular VM you want to auto-start and specify its UUID. In this case, we are getting the docker0 VM to autostart.

[root@xenserver-master ~]# xe vm-list
uuid ( RO)           : 0c9a4c24-07df-494b-805d-464da4a45af8
     name-label ( RW): ansible-tower
    power-state ( RO): halted

uuid ( RO)           : 17fc6df5-8f43-6cc6-69f9-08a9246d8634
     name-label ( RW): docker0
    power-state ( RO): running

[root@xenserver-master ~]# xe vm-param-set uuid=17fc6df5-8f43-6cc6 ...(continued)

Post Archive