RSSAmplifier

Blog

DynamicallyInvokable

Recent content on DynamicallyInvokable

piotr.westfalewicz.comRSS feed ↗41 posts

Latest posts

Researching weight scales - hardware and firmware

Collecting weight scale data in my… fridge.

Researching weight scales

Chasing 0.4g of missing food in my cat feeder.

The ultimate cloud cat feeder - overview

Start here to read about the ultimate cat feeder.

Complex Arduino project design explained on the ultimate cloud cat feeder source code

How do you write a fairly complex Arduino project? Are there any best practices? …and for those who waited, the cloud cat feeder source code is now publicly available.

Open sourcing the PCB of the ultimate cloud cat feeder

Dirty cheap PCB will make your life MUCH easier.

Print your own ultimate cloud cat feeder - open sourcing STL files

Around 500 MB of 3D models in ~50 STL files, plus Fusion 360 archive made available under Open Source license.

Over 16k upvotes in around 24h for 18 months of work on a side project - the ultimate cat feeder is pretty neat and the cat is happy, too

The ultimate cat feeder is done. Watch the demo and see why so many people like it!

Around 100 printing hours later, the automatic cat feeder emerges

After 22+ hours of designing, it’s time for 100+ hours of 3D printing.

I wasted 3 minutes every day on giving my cat food... so I spent 22+ hours designing an automatic cat feeder!

Watch taking the art of over-engineering to a next level… on a cat feeder :)

How to estimate host fleet size? Why keeping CPU at 30% might NOT be waste of money?

What does maximum-connections, CPU autoscaling, money and distributed systems have in common? Find out.

How do you know the right maximum connections?

How do you know the right maxThreads (Tomcat/Java) or maxConnections (IIS/.NET) for your application? What is it? Why do I need to set that?

(Auto) scaling services by CPU? You are doing it wrong

Bob is a very successful guy. He is auto scaling his service by automatically adding hosts when the CPU increases, and he is removing them when CPU goes down. Dear Bob, there is a trap waiting for you around the corner.

What service metrics should be monitored?

Monitoring services is crucial, if you care about the application uptime. There are hundreds if not thousands parameters which you can (and should) monitor, related to CPU, network, hosts, application and so on. What are they? What are the non-obvious choices?

Types of alarms - what's beyond min-max checks?

If you ever maintained a live system - I’m sure you must have used the min-max alarms. However, are they always the best tool for the job?

What is Software Operational Excellence?

It seems that most people know the importance of software design patterns, best practices or continuous integration. While those subjects are important, there is one more equally essential term, which yields only one relevant result link on the first Google page. Meet Operational Excellence.

Rock solid pipeline - how to deploy to production comfortably?

First of all, this post won’t be for people who think developer’s job is to design, write code and test it. It’s far beyond that. One of the important responsibilities is to ship your code to production. How to do that safely?

The nightmare of large distributed systems

There are certain classes of exciting problems which are surfaced only in a massively distributed systems. This post will be about one of them. It’s rare, it’s real and if it happens, it will take your system down. The root cause, however, is easy to overlook.

What does it mean to design a highly scalable system?

It’s surprising how the volume of data is changing around the world in the Internet. Who would have thought 10 years ago that in the future a physical experiment will generate 25 petabytes (26 214 400 GB) of data, yearly? Yes, I’m looking at you, LHC. Times are changing, companies are changing. Everyone is designing for scale a tad different. And that’s good, as it’s…

Cassandra logs/time series storage design - optimal compaction strategy

Let’s assume you are considering using Cassandra for logs storage or in general, for time series storage. You are well prepared - asked google extensively. Yet, there is a trap waiting to kill your cluster in few weeks after lunch.

Why shouldn't you ever use ResilioSync? "Database Error" problem

As they say: there are two kinds of people in the World - those who pick up the ice cube that falls on the floor, and those who kick it under the fridge those who back up their files and those who haven't experienced losing all their files yet. Which category do you fall in? I decided to set up a backup system with ResilioSync - the heir apparent of the BitTorrent Sync software. Well, that…

Dynamic Programming and the hardest problem on HackerRank

The hardest problem on HackerRank, sorted by Max Score and level “Expert” is Separate The Chocolate . It’s worth 250 points and the level “Expert” is the highest one. How to solve it?

Dynamic Programming in 5 easy steps - Examples - Two Robots

This time we will solve a HackerRank problem , rated as a medium in difficulty. It’s advised for you to go through a similar, but in my opinion easier problem described by me previously .

Dynamic Programming in 5 easy steps - Examples - Set partitioning

Last time we have covered Text Justification problem, this time we will do something harder. Solution in 5 easy steps!

Dynamic Programming in 5 easy steps - Examples - Text Justification

Dynamic Programming is considered as one of the hardest methods to master, with few examples on the internet. Let’s contribute a little with this post series. Today I will cover the first problem - text justification. Credits: MIT lectures.

Cassandra Datastax C Sharp Driver problems - solution

In the previous post I’ve described a strange problem related to Cassandra Datastax C# Driver which was happening once in the production environment. It’s time to reveal the mystery.

Cassandra Datastax C Sharp Driver problems - NoHostAvailableException

This post will be about my journey with fixing nasty Cassandra Datastax C# driver problem, which took me a lot more time than expected… Can you guess the problem source?

Algorithms and data structures - non-academic trees

Do you know the trees used in Cassandra, Git, Bitcoin or Lucene? Check this post to find interesting trees, usually not covered on Computer Science lectures.

The performance of setting T[] vs. List by index

What’s faster in C#: setting an array by index or a generic list by index? Are you sure you know the correct answer?

Presentation recommendation - Cloud-based Microservices powering BBC iPlayer

Today I recommend you following presentation: Cloud-based Microservices powering BBC iPlayer. Why? It’s interesting (at least for me) how one of the most popular British broadcasting organisation make their’s channels available online. A high-level architecture is presented. If you are new to AWS, you will also learn a thing or two about the Amazon Cloud.

Git tips - replace all occurrences of a string in files

Git can be used from VisualStudio, however it’s like saying you drive a car, when actually you play Need for Speed. Unleash the full power of Git, learn to use it. It’s not that hard.

Messing with C Sharp types. Making type1.FullName==type2.FullName, but not type1==type2!

How to make the same types (by FullName, AssemblyQualifiedName even GUID) but… different by type1==type2?

The five stages of coming to terms with Cassandra

The dark side of Cassandra.

Specifying requirements for live notification mechanism for systems integration purposes

Recently I’ve designed a mechanism to notify external systems (with which we cooperate) about changes in our system. This, obviously, can be done in multiple ways. Let’s look at some considerations on a high level, some questions and how that affects our requirements.

Presentation recommendation - The Microservices and DevOps Journey

Today I recommend you following presentation: The Microservices and DevOps Journey Why? “Microservices” is a buzz-word, created around one year ago, still not popular in Google, but surprisingly popular on conferences: Google Trends: Microservices vs SOA . In my opinion, in this video, a sensible approach of transforming a monolith to a microservices system is presented. KISS…

Little-known, useful, charming and beautiful algorithms - part 2

How many timers are in the .NET Framework? What assumptions do they have? Which timer would you use for implementing Speculative query execution?

Little-known, useful, charming and beautiful algorithms - part 1

Warning: this post won’t be about “boring” or “typical” algorithms from Computer Science which we all have learned on studies (like quick sort, merge sort, xxx sort, A*, FFT). Instead, this will be about other little-known, especially USEFUL algorithms, which people working as professional developers should know or heard of.

Checking "Star Wars - The Force Awakens" tickets availability with Azure WebJobs, scriptcs and SendGrid

This user story is quite simple: there is a guy (me) who likes Star Wars. This guy wants to buy the best tickets available in an IMAX Cinema . The premiere was not so long ago, so a day after the showtimes are updated, the best seats are booked. This guy (also me) is quite lazy, so he doesn’t like to check the showtimes manually. Hm… let’s do it like pro developers using…

Merging multiple git repositories into one and purging sensitive data

Git is a very powerful, distributed version control system. It’s based on simple concept - directed graph without cycles (a tree) pointing four types of objects in it’s database. I love git and it’s brilliant design. Therefore, when I saw how misused it was in a company which I joined, I’ve had to fix it.

Presentation recommendation - LinkedIn's Active/Active Evolution

I like to watch a IT related presentations. Those give you a lazy way of grasping the idea of “what’s up” in particular subject. It’s grasping because by watching you won’t learn actual skills, but you will know what exists, where are the dragons hidden and where to look deeper. What’s more, if you are bored, you can always skip some parts or go to next…

Cassandra - problems, issues, worries

Normally I “live” in .NET environment. That is, my work is usually related to .NET environment and most popular libraries associated with it. Some time ago, I started to work with Cassandra. Google it. Popular. Superb. Advanced. Supreme. Design for speed and resilience. Used by some big players. That sort of impression you will get. Therefore, just few days after meeting Cassandra…

This is it, here I write

I’ve planned to start blogging for a quite long time. Now, after seeing Microsoft Live Writer going Open Source I’ve decided to start blogging. Just now. Just like that. Therefore here is my first post ever. I’m planning to publish minimum 1 post per month. Let’s see how that will work. I’m planning to write when I will have time and something (in my opinion)…