(if github should not allow this image, I can remove it)

Let’s begin with why I’m using GitHub.

Since the beginning, our company has been a Microsoft shop. Our first platform was built with .NET FW and our cloud provider has been Azure, so it is just natural for us to use Visual Studio Online which then became Azure DevOps. Our entire codebase is there and we also have many pipelines that allowed us to automate deployments for many years already.

But now, due to some internal circumstances, and also the need to diversify providers (additionally Azure Pipelines have had a lot of issues for the last months), we wanted to…


Well, this is not the usual post I do yet incredibly enough I have not found a real solution or even hint to the problem I had, so let’s hope this helps you.

What is the problem?

I recently bought a Xiaomi Mi Box S which is a little tiny box that really works much much better than any Smart TV that I have owned before. In the same category as Amazon FireTV, Google Chromecast, Roku, and so on, this box was cheaper and easier to get here in Peru. I had to buy it because my LG TV had a very crappy internet…


Every project in the world has a customer (either internal or external). And every project manager knows that one of the most critical aspects of a project (besides delivering on time and budget) is to handle customer expectations. If not done right, then the project could be labeled as a failure by the customer (note the word chosen: LABELED) with undesired consequences (cancellation of the project, overtime, overcosts, etc).

Yet, even as important as it is, many times they are not managed in a good way and they end up harming the customer-provider relationship a lot.

In this article, we…


The most misunderstood and resisted of all Scrum ceremonies.

If you ask the people using Scrum what is what they like the least, many will say the daily meeting.

“It takes too much time”, “it is a waste of time”, “let me do real work”, “I have too many meetings”, etc.

These are the typical complaints about it, and definitely, they are not completely wrong. If there is smoke, then there is fire.

The daily meeting is probably the simplest of the events yet it is the one that is handled the poorest (I am included here, of course, there…


In Juntoz.com, we have many websites to run and because of that, we have also many files that need to be shared across all of them. Some of these files are images, css files, js files, etc.

Inserting many of these as npm packages would be overengineering it, and for other cases, where it might be more suitable, there is the “problem” having to upgrade them in many applications when a new version comes out (yet, you can still create a new version of each file if you want to).

To solve this problem, we will create a “poor man”…


This article will show you how to publish an ASPNET Core web application as a Docker container and running in Kubernetes with automatic generation of its certificate.

— In Juntoz.com, we are currently building our V3 platform and this is part of our journey.

Prerequisites

  • You need to install Docker locally.
  • You need to have a Kubernetes cluster up and running. In our case we use Azure Kubernetes Services.
  • The cluster must have helm installed.
  • Installkubectl in your computer.
  • Installhelm client in your computer.

Application

The web application is an ASPNET Core 3.1 web application built with Visual Studio 2019. It doesn’t…


I found this very interesting built-in javascript functionality that allows to freeze an object and it does not allow any modification.

Let’s take this very simple example.

class Foo
{
constructor() {
this.A = 1;
}
}
var foo = new Foo();
console.log(foo.A); // 1
foo.A = 10;
console.log(foo.A); // 10

Let’s apply the Object.freeze method.

If we apply the method and modify the object externally, the engine does not throw an error, but it still maintains the object as read only.

class Foo
{
constructor() {
this.A = 1;
Object.freeze(this);
}
}
var foo = new Foo();
console.log(foo.A); // 1…

When you have a library that you want to publish as a nuget package, you normally have to call nuget pack and nuget push .

And if you use a pipeline, like in Azure Pipelines, you would call this task to pack the library.

- task: NuGetCommand@2
displayName: 'nuget pack'
inputs:
command: pack
packagesToPack: MyLib.nuspec
packDestination: /out
versioningScheme: # off, byPrereleaseNumber, byEnvVar, byBuildNumber

And this task to publish it.

- task: NuGetCommand@2
displayName: 'nuget push'
inputs:
command: push
packagesToPush: /out/*.nupkg
nuGetFeedType: # internal, external
publishVstsFeed: # feed url

In .NET Core projects, things can be done a little differently.

You…


Every team or developer that publishes a package to npm has to deal with the versioning of it. It is part of the package lifecycle management and, either a company, a team or a single developer, it demonstrates how serious and professional you are towards your users (which are the developers using your package).

Today the trend in versioning schemes is to follow what is called Semantic Versioning, or short SemVer.

SemVer has the format Major.Minor.Patch(-Label) .

  • Major: for breaking changes.
  • Minor: for medium to big modifications to the component, yet keeping its backwards compatibility.
  • Patch: for small modifications or…

Recently I’ve taken the task to create the foundation for the version 3 of Juntoz.com platform which includes going full cloud native with nodejs, docker containers and kubernetes.

And, as part of my initial development, I found myself in a common problem with K8S manifests: applying the same manifest to two environments (staging and production) but with different settings (e.g. in staging I want just one replica, while for production, I need two replicas).

One of the most used solutions is to use Helm, which I did not want to go there yet, since I was just entering into this…

Kat Lim Ruiz

CTO of Juntoz.com, peruvian startup for ecommerce technology. Father, technology enthusiast, agilist, INTJ, Developer, Mini-Devops.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store