A complete review from component selection to software configuration for a Chia cryptocurrency farming (mining) system.
Chia is a new cryptocurrency that aims at achieving decentralized consensus with lower energy consumption per transaction than its peers. This is achieved via a proof of space algorithm instead of proof of work.
While proof of work relies on continuously computing a math problem (usually hashes such as SHA256) in an attempt to find results that match a desired pattern, Chia instead relies on checking for the existence of certain properties in unique pre-generated files called plots.
We will review the results from CPU mining Monero with the XMRIG miner on different AWS EC2 instance types.
Cryptocurrency mining can be thought of as the execution of work by an agent that contributes to the confirmation of transactions. Since a large number of ideally decentralized miners are required in order to secure the blockchain (no double spending, etc), there is an incentive to benefit mining via common hardware (CPU) versus specialized hardware (GPU, FPGA, ASIC).
To achieve this goal, the cryptocurrency Monero makes use of the RandomX algorithm. This algorithm benefits from two properties of CPUs: The ability…
Six months ago, I invested in over 30 different investment platforms across asset classes. Here, I will review the performance of each during this period.
Disclaimer: This article is not investment, tax, or legal advice, nor is it a solicitation for investment. I may have an affiliate relationship with some of the companies listed below. Furthermore, I am not a financial expert and offer this only as a way to share my experiences.
Approximately six months ago I decided to embark on a journey to learn more about the different platforms available for investing by non-accredited investors. …
It is a common requirement in eCommerce, social media and other applications to need to match a subset of the total content with specific users as to maximize conversion, time in-app or other desired metrics.
A possible approach to determine what content to recommend to a given user is to recommend items that were well rated by peers that exhibit a tendency to rate content similarly. This approach is known as Collaborative Filtering. There are several different ways to calculate the similarity between user’s ratings of different items (videos, products or other content that is to be recommended). …
Lambda is a serverless offering by AWS that enables running scalable code without needing to configure servers. Each Lambda environment (corresponding to different versions of the compatible languages) comes with a selection of packages pre-installed.
However, what happens when we require a package that is not provided? There are a few approaches to addressing this shortcoming, one of which is the use of a Lambda layer.
In the next section, we will go over a programmatic solution to create a Lambda layer for a Python 3.7 application that requires OpenCV.
Lambda functions run on Amazon Linux (AMI). Therefore, to ensure…
As a society, we laud the work of generalists but our processes simply are not meant to recognize them.
Engineering and our educational systems as a whole are designed towards specialization.
At elementary school everyone learns the basics on which further knowledge will be built. In middle school, the division of knowledge into subjects starts to appear. As students are allocated individual time blocks to learn math, sciences, social studies and others. Up to this point, despite the already visible division of subjects, all students are still expected to learn the same subjects and to the same level of depth.
.includes is not enough.
Rails’ ActiveRecord associations permits relating one model to another. Take the example below:
class Post < ApplicationRecord
endclass Comment < ApplicationRecord
Post has many
Comments. This allows us to call
Post.first.comments to get all the comments associated with a post! ActiveRecord internally generates our required SQL queries:
SELECT "posts".* FROM "posts" WHERE "posts".id = 1
SELECT "comments".* FROM "comments" WHERE "comments".post_id
However, imagine we are serializing this data to return as part of a controller for the
/posts index. In that case, instead of getting the comments…
The same curiosity that drove us to spread across our planet now drives us to reach out towards the stars.
These 6 incredible missions are teaching us more about our neighboring planets and sun while pushing our engineering capabilities to the limit.
The Chang’e 4 lander and rover are part of the Chinese Lunar Exploration Program which aims to develop the required technologies in preparation for crewed missions to the moon in the 2030's.
The current lander and rover are part of phase 2 of the program and demonstrated the ability to successfully land and navigate on the lunar surface.
A simple setup to programmatically enqueue jobs in a SLURM cluster.
For those that have worked with a super computer cluster before, you know that scheduling batches of jobs where each job may not only have different settings (Ex: Hyper-parameters) but also different code can be a cumbersome task. Moreover, keeping track of all the different versions of code when analyzing the results can be tricky and a simple note taking error can result in many hours rerunning jobs.
I finally got around to implementing my first Forex trading robot!
For years, I have fantasized about building a Forex trading robot that would slowly and consistently increase its account balance. However, I was never really sure where to start. What company to use? How do I access the APIs? Is it safe?
Recently, I blocked off some time to learn what would be needed to develop such a system and it culminated in a very simple to implement python script. In the remainder of this article, I will detail how it works.
Disclosure: This article is not investment, tax…
A curious minded engineer.