fabiochiu/medium-articles huggingface dataset:
Don’t Share More Than A Few Tips
By: Debesh Choudhury
Tags: Tips, Essentialism, Less Is More, Self Development, Priority Setting

I often see titles that share 9 tips, 12 tips, 20 tips, and so on. Be practical on the number of tips. If you share many tips in a single blog, the readers would be confused about which one to adopt.

A single tip is more effective than a large number of tips in a blog advising the readers

If you share a very long list of tips, say 9, 12, or 20 tips, then the readers would be lost in the log listicles. They would be confused about the tips. Many of the tips would be misunderstood. The readers would be in a dilemma which tip should be adopted first.

If you share a very few or only one tip in a blog post, the readers will easily understand and follow the advice.

Are you convinced that a single or two tips are better than a large number of tips? If not, then let’s take a practical example from the world of education.

A single question is easy to answer within a day than ten questions at a time after ten days

Say a teacher gives her/his student some homework consisting of ten questions and ask them to submit the completed assignment within a week. The students would take time to read and answer the questions. Among them, some students would be able to complete the assigned homework on time. Some would definitely miss some of the questions.

On the other hand, suppose another teacher gives only one question as an assignment. This teacher gives only one/two days for completion and submission. In this case, the teacher would probably get almost all of the students, except a very few naughty ones, to submit the assignment on time.

I had tested this experiment with my students while teaching in the engineering colleges during 2007–2017. Most of the time, my students were able to submit a single-question assignment within one day time. But they often failed with multiple question assignments with many days’ deadline.

Less is always better than more

I am convinced that the power of less is enormous. If we have to achieve something, we need to complete one work and then move on to another. Sometimes it may seem unrealistic. The reality is that once we complete one single job at a time, we can move on to the next with enhanced confidence.

This fact is nicely analyzed in the book “Essentialism: The Disciplined Pursuit of Less” by Greg McKeown. He offers one single tip at a time. I like the strategy of doing the most essential work first and then move on to the next. In the end, a big chunk of work is completed, with all single jobs completed each at a time.

We mustn’t miss the point that setting priority is the key. Then concentrate on only one activity that is the most important of all.
Der Mutation sind seine Wirte egal: Was uns im Frühjahr erwartet.
By: Marcus Ewald
Tags: Coronavirus, Mutation, Testing, Spring

in Change Your Mind Change Your Life
Δεν είναι άνοιξη
By: Efstratios Papanis
Tags: Spring, Expectations

in Change Your Mind Change Your Life
How to cluster effectively Quartz jobs
By: Rafael Faita
Tags: Scheduling, Spring, Spring Boot, Quartz, Clustering

I removed all the private information from the diagram, as you can note the representation of the Scheduler Service and Executor Service are on the diagram. As you can notice, there is a Notification Service representation on the diagram, we already had this service on our infrastructure to send notifications to users when a job finishes execution, if you don’t have this kind of service, it is a good idea to create one in an asynchronous job execution approach.

Show me the code

With the solution exposed, I would like to show you some implementations aspects, let’s begin with the Job itself:

The implementation of the Job is very simple, as you can note. The only responsibility of the job is to send a message to a queue, for this new trigger to be executed.

The downsides of this approach are:

when the trigger happens, could happen a delay between the trigger and the start of execution of the job. This happens because between the time when the message is posted to the queue and the moment where the execution (consumption of the message) happens is possible to be a delay (sometimes the queue could have a high amount of messages, the executor service could be in a downtime, etc)

happens, could happen a between the and the start of of the job. This happens because between the time when the message is posted to the queue and the moment where the execution (consumption of the message) happens is possible to be a delay (sometimes the queue could have a high amount of messages, the executor service could be in a downtime, etc) it’s not possible to guarantee the execution order of the triggers, for instance: whether an error occurs on the first try of the execution the police of DLQ could take a moment to repost the message to the main queue

In our case, these downsides are small compared to the benefits of the segregation of the utilization of this approach.

Another important class I like to show you is the scheduler service:

As you can see, we used the Scheduler class from Quartz to orchestrate the CRUD operation on the Job.

The SchedulerBuilder class is also very important because it extracted the Cron Logic and we could create Cron expressions more easily:

SimpleScheduleBuilder.simpleSchedule().withIntervalInHours(1).withRepeatCount(-1);

Setting repeatCount to -1 we define this job to repeat infinitely.

Final Considerations

With this approach, we solved the performance problems in our environment. I expected to help you too at some moment. It’s important to remember, in computing science and software architecture there are always trade-offs, our responsibility is to analyze them and choose the best way to follow.

I hope you’ll be here soon.
I Don’t Get It
By: Raúl Güereque
Tags: Free Verse, Driving, Questions, Poetry, Life

Photo by Maksim Istomin on Unsplash

I Don’t Get It

Okay, this is it

I’ve got it!

You drive there

He drives here

We drive there

All, all, all

So you won’t

have to drive

there again

Okay

Wait

I don’t get it

4.26.07
Uncommon Answers to Common Questions
By: Todd J. Harmond
Tags: Weird, Answers, Questions, Funny, Humor

Uncommon Answers to Common Questions

It’s not a poem, but goofy.

What’s up?

The sky.

Where are you going?

I’m going forward.

Where did you come from?

Home. Obviously.

Where do you live?

What a silly question! At. My. Home.

How old are you?

Not much old.

What do you do for a living?

Eat, sleep, breath. I would recommend you do that also.

What did you do?

You need to be more specific. When?

Do you have a car?

No, it’s too heavy.

Do you speak another language?

I think we both are fluent in English. Or do you not understand me?

How much does this cost?

Exactly amount written on the label.

Can I pay by card?

Yes, 5 cards, please.

Which bus should I get?

I would suggest you buy a car. Much cheaper choice!

What do you think?

I think what I think and think what I think and… get me out!

How did you find this?

I searched.

Do you like this?

I never thought about it.

What is your view on this?

Close to 180 degrees.

Are you ready to order?

Yes. I order you to bring me water!

What would you like to drink?

Any food. It takes so long to chew it sometimes…

Can I get you anything else?

You cannot get me everything. Can you? Are you a gin?

How was your meal?

It was on the plate. I finished it now.

What’s that?

It’s definitely that.
It’s You
By: Patrick M. Ohana
Tags: Questions, Poetry, Humor, Love, Blue Insights

Pic by PMO

It’s You

“I’m going there,” he typed

as the whole story

showing a picture of there.

That’s it!

Nothing else!

I replied, When?

“What do you mean, when?”

When?

Tomorrow?

Xmas?

Easter?

2022?

When?

It would have made the story a little better, I added.

“What?” he replied.

I didn’t type anything.

I waited.

“Why aren’t you answering?” he asked.

I was waiting for the what

and now

I’ve also got the why.

Here it comes.

“What the fuck?”

You already said what, I replied.

“Come on, M! Where are we going with this?”

The where arrived.

And then there was one.

“What? Who? But it’s you.”

No! It’s you, my love.

It’s always been you, I said to her

as she appeared behind me, smiling.

Blue outside with a scarlet heart.
Why What Should I do with My Life is the Worst Question to Ask.
Tags: Personal Development, Self Improvement, Questions, Personal Growth, Life

Before I head off to university, like every other student, I was asked, what do you want to do with your life? I answered I want to be rich and be some hotshot. There’s a problem with this question because it asks you what you want to do, it doesn’t ask you how you want to live.

A question like what kind of life do you want is a good starting point, this was the question that followed, and I said, I would like a fast-paced life where I’m in control and money isn’t a problem, this felt easier to answer because it is.

What do you want to do with your life? Who knows, maybe you want to search for Pikachu, or you want to live with chimpanzees in a rainforest. I don’t know.

Life is a series of questions if you ask better questions, you get the best answers.
📊 How to make dashboard for free in Google Sheets and Chart.js
By: Rafał Rybnik
Tags: Visualization, Web Development, Dashboard, Charts, Data Science

Dashboards are a convenient method for quickly present data. For data scientists and analysts, it’s the tool of choice for showing the results of their work to the non-technical recipients. Of course, there are many services for making online dashboards with no or little code. Using ready-made solutions such as Tableau, Qlikview or Google Data Studio, quick production of decent looking charts and dashboards is not a problem.

However, most of them are too expensive. We also often encounter situations where the possibilities for adapting views to exceptional data are limited. On the other hand, tailored, self-hosted solutions cause other difficulties. You need hosting and you are unlikely to want to play with the administration of a large system just to collect and present the necessary data.

However, it is possible to serve web applications directly from Google Apps Script.

In this article, I show you how to create a simple dashboard using data from Google Sheet and Chart.js. First, we will set up templated HTML in Google Apps Script. Next, we will with Chart.js. Then, you will learn how to fetch data from Google Sheets (e.g. when updating information visible in the dashboard) and insert it into the template. Once you set up the dataflow, you can use it in many projects.
Collaborating in Power BI
By: Thiago Carvalho
Tags: Dashboard, Business Intelligence, Data Visualization, Project Management, Power Bi

Collaborating in Power BI

Dashboards can have many layers of complexity; from the data collection to cleaning, transforming, calculating, and designing, we can have many different challenges.

Some of those challenges can benefit from bigger teams. Still, like three pregnant women can’t produce a baby in three months, adding more developers won’t necessarily get you that dashboard faster.

In this article, I’ll go through some of the specifics of teamwork using MS Power BI to build dashboards and visualizations faster.

Picture from PixBay — by Pexels

You can collaborate on PBI within SharePoint, Office 360, and you can even find some third-party tools for that. But most of them try to close the gap in communication, where you can add notes, comments, view, and make a few adjustments to your project.

I’ll not be focusing on that part, whether I’ll be focusing on Power BI Desktop projects or .pbix files. More specifically, how can multiple people work on the same file.
Siblings
By: Dr. Fatima Imam
Tags: Poetry On Medium, Childhood, Life, Nostalgia, Siblings

They remember the best times by editing the bad parts.

They share the history of successful conspiracies against parents.

They always complain that the other was loved and pampered more.

They’ll stand together to stand each other to resist parental control.

© Fatima Imam

My brother is four years older than me, and he was the first grandchild of the family on both sides. He was pampered more, and I have substantial evidence to prove that. We amiably argue about this on every occasion we meet. However, he also genuinely believes that my mom loved me more than him.
Δεν ήταν μακρινός ο Παράδεισος..
By: Efstratios Papanis
Tags: Death, Loss, Nostalgia, Sin, Paradise

in Change Your Mind Change Your Life
Bang it
By: Ripley Davenport
Tags: Back In The Day, TV, Nostalgia, Dishwasher

Remember back in the day when your TV wouldn’t work so you’d ‘bang’ it a few times? I don’t plan on doing any more ‘banging’. I tried that with my dishwasher over a decade ago and she ended up pregnant.
Demon’s Souls Remake is a Reminder of How Far FromSoftware Has Come
By: Paul Lombardo
Tags: Gaming, UX, Features, Nostalgia, Videogames

While the Flamelurker remains as a fan-favorite boss, others suffer from technological issues that surface even in the remake. The Maneaters, flying gargoyles that infuriatingly knock the player off a narrow arena platform, still contain buggy A.I. I was more frustrated watching the Maneaters fly back and forth away from me in a bugged loop than I was actually fighting them. Instead of changing this particularly weird and perplexing A.I., Bluepoint left it alone to keep the remake “true,” which ultimately resulted in me waiting for the Maneaters to awkwardly land so I could get a few hits in. It’s not even as if the Maneaters were particularly difficult for me either; fighting them only cost me two lives. It was more so vexatious because of how the bosses functioned.

Other systems, such as world tendency, found their way back into the remake of Demon’s Souls. Your world tendency is on a spectrum of light to dark and changes depending on a few factors. The main variable that goes into the world tendency system is death, or rather, death in human form. Demon’s Souls rewards the player for beating a boss with their humanity, granting bonuses to stats such as vitality. Veteran Demon’s Souls players are hardly fooled though, as they know this boon is actually a burden because dying in human form makes the world tendency go down. When your world tendency is down, the enemies of the world are much tougher, and specific areas of the world are locked off. Thus, the most logical thing to do once you’re in human form is to commit suicide in the Nexus by falling, giving up the form immediately.

Bloodborne deals with a similar system that isn’t nearly as counter-intuitive. Insight, a currency that affects the world depending on how much the player has, is granted for discovering and slaying bosses. While there are cons to having more insight, such as enemies performing more “inhumane” attacks (which can be dangerous), there are pros as well, such as seeing things and areas that the player can’t normally see with less. This evolution of the world tendency system is welcome, but also makes the Demon’s Souls remake seem inferior.
Film: Kodak Advantix APS 200 40 Exposure Color Film (Out of Date)
Tags: Aps Adventure, Analogue Photography, Contax Tix, Nostalgia, Film Photography

I am an amateur photographer, trying to express myself by writing
Cost, time and scope
By: Toodday Project Mangement
Tags: Success, Startup, Projects, Project Management, Productivity

CTA (Cost, Time and Scope)

These three elements must be taken into account for any decision process in the project, since these are the equivalent of the values ​​of a person, the mission of a company.

It is the compass under which a project manager should be guided in order to make decisions and how to report the progress of the project.

To start, and one of the clearest examples, is in change management.

When a change is requested to an element of the project, what has to be done immediately is an evaluation of cost, time and scope, to know the impact and based on this make an informed decision regarding whether or not to proceed. Even when the decision to change does not correspond directly to the project manager, presenting the impact in terms of cost, time and scope to the project’s creditors will make the decision easier to make.

You should think about the cost, time and scope, as if they were defined borders within the project for which specific requirements are required to cross or even redefine.

At the beginning of the project there is a projected cost, if a modification is to be made in time, it must be taken into account if this is going to affect cost and scope, in the same way as if the scope is to be modified you have to take into account how it will affect cost and time.

Photo by Markus Winkler on Unsplash

Experience

In project management, decision-making is the key to keeping a project on track, and many times these decisions have to be made quickly and with little information.

When managing a project, you must have these well-defined borders, what are the expected costs, how long the project will take to complete and what will be achieved in the end.

For the project manager, any element that happens on a day-to-day basis that may cross those borders or may detect a trend that will take the project out of any of those borders is when it must act with contingency plans.
Thursday Headaches and More
By: Alan Villarreal
Tags: Book Writing Service, Books And Authors, Projects, Writing

I’m here writing dreading the editing phase of the work I’m doing, and trouble shooting a little. I feel like I’m all ready to start my next book and I’m tired of saying it’s almost done, it is just I want to add more.

To think it’s already December and twenty twenty, or twenty wierdie, is finally almost over. The holidays are among us and people are gathered with their shelter in place buddies. This is interesting but there are multiple stories saying not to congregate today or at all. I wonder if people are going to follow it but I believe it’s not a joke, people should probably do things online.

I’m wondering what can be done or what the ramifications of prolonged time spent indoors. I see people jogging and that’s comforting, I hope to start running again. I wonder what we are missing from this year that we won’t realize for a while. Because usually there’s always something that we learn was accomplished or happened during this time.

I see a lot of people coming together in essential services and that’s reassuring because we are not arguing as much, and more people voted this year. For as weird as the year has been, it’s good to know that we are still optimistic.
Keep A Projects Wishlist
By: Rosie Leizrowice
Tags: Self Improvement, Life Lessons, Goals, Projects, Productivity

Keep A Projects Wishlist

A visual representation of storing shiny objects to chase, in a shop window in Berlin. Taken by me.

The biggest predictor of whether any project I start goes well or whether I can complete any goal I set myself is almost always whether I’m able to keep working on it until it’s done, or whether I get excited about something new and jump into starting that.

Letting unfinished projects you were once enthusiastic about pile up is a bad idea for a few reasons.

If you only work on things during the initial burst of energy and novelty, you don’t strengthen the skill of persevering to the end. You don’t practice continuing to work on something even when you don’t like it or feel certain it’s terrible. You end up running in place, never feeling like you’re getting anywhere. You keep working on stuff, but you never have anything to show for it and you miss out on the satisfaction of finishing something. All those unfinished projects linger in your mind, becoming a source of guilt and frustration. Those feelings get tangled up with the project itself, making the chances of it ever seeing the light of day even smaller.

The problem is that new ideas are energising. An abstract idea always seems far more complete, original, and achievable than the thing itself does once you start trying to translate it into reality. If whatever you’re doing now feels difficult or stale, moving on is even more enticing.

I’ve struggled with this a lot lately when trying to publish blog posts. Every few days, or at least once per week, I think of something to write about and scribble down a rough draft. Then I lose confidence in the idea, can’t imagine ever editing into something complete, and run out of momentum. When another idea comes along, I feel sure I’m certain enough about it to see it to the end. And the cycle repeats. The longer I go without finishing anything challenging, the more it seems like the next thing I do manage to complete needs to be good.

A solution I’ve adopted, which has been helpful in other areas and is starting to be helpful here, is to keep a projects wishlist.
🥇 ▷ Guía Completa de la Metodología Ágile enfocada a la Gestión de Proyectos
By: Pablo Álvarez Corredera
Tags: Startup, Projects, Work, Agile, Technology

Learn more. Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Make Medium yours. Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore
Generating QR Codes Using Python in Few Simple Steps
By: Satya Ganesh
Tags: Programming, Qr Code, Projects, Data Science, Python

What you learn from this article

Generating a simple QR code Create Customized QR code Generating QR code to open a link

Installing the required packages

pip install qrcode #used to generate QR codes

pip install Pillow #used to deal with images

Importing the package

import qrcode as QR

1. Generating a Simple QR Code

import qrcode as QR



code = QR.make('Hii guys') #writing sample data

code.show() #to display QR code

code.save('basic.png') #to save the QR code as image

After you run this code snippet you will get an image file that contains the required QR code with data hidden in it.

basic.png

You can download a QR scanner from the play store or apple store to scan this QR code to fetch the data hidden inside it.

2. Creating Customized QR code

We can create our own QR codes with different foreground and background colors with different margins.

import qrcode as QR



code = QR.QRCode(

box_size=5,

border=2

)

data = {'Name':'Satya Ganesh','Country':'India'}

code.add_data(data)

code.make(fit=True)

img = QR.make_image(fill_color='green',back_color='white')

img.save('CustomizedQR.png')

Here we are creating a default QR code and we are trying to add the data into the QR code.

box_size: represents the size of the QR code border: represents the border size add_data(data): used to add the data to QR code fill_color: It represents the foreground color of the QR code back_color: It represents the background color of the QR code

customizedQR.png

3. Generating QR code to open a link

we can open any URL using QR codes

import qrcode as QR

URL = 'https://www.linkedin.com/in/satyaganesh6055/'

code = QR.make(URL)

code.save('link.png')

code.show()

link.png

Conclusion

I hope you are clear with the code and implementation and able to generate your own QR code for your website

Thank you 😃 have a nice day
5 Steps to Kick Start Your Own Data Science Project
By: Yeung Wong
Tags: Resources, TensorFlow, Tips, Projects, Data Science

Step 1 - Goal

Before starting the project, as a data scientist, you need to have a specific problem statement. A clear goal leads to a simple and straightforward direction. This can save you a lot of time and get to the point directly.

Let’s use real estate as an example. Considering you are now going to start a property project, you can ask yourself tons of questions to identify the specific area you want to focus on.

Which district or area do you want to cover? The entire country? Or just a city?

What topic are you interested in? Rental price? Or Property price?

Do you have a timeline for the study?

By doing so, you can formulae your own problem statement and clearly understand your direction towards the project. For example,
Custom user-defined metrics with nearest neighbors regression in scikit-learn
By: Marcos Del Cueto
Tags: Scikit Learn, Metrics, Regression, Knn, Tutorial

An example application of custom metric

As an example of why one would be interested in defining a custom metric, we work with a simple dataset that contains the average temperatures of a weather station in Canada for each day of 2019. Our dataset is formed simply by one descriptor (day of the year) and one target property (average daily temperature at the weather station).

In 2019, the farthest distance between the Earth and the Sun (aphelion) was 1.521×10⁸ km, and the closest distance (perihelion) was 1.471×10⁸ km. These two values are very similar (~3% difference), so for simplicity, we assume here that Earth’s orbit is circular. This approximation can be visualized in the Figure below, where the actual orbit around the Sun is shown in orange, and the circular approximated orbit is shown in white.

During one year, the Earth completes a whole turn around the Sun. Thus, the distance between two dates of the year can be calculated as the distance that the Earth traveled along its orbit during that time. The distance of two points along the orbit will not be the same as the direct Euclidean distance that we might naively calculate initially.

In the Figure below, we show the relative distances of two points B and C with respect to an initial point A. For example, when we calculate the ratio of the A-B and A-C distances directly using a Euclidean metric (in red), we obtain approximately 0.7, which means that the A-B distance is around 70% that of A-C. However, if we consider the distances calculated along the circumference (in green), we obtain that the A-B distance is 50% that of A-C. We can easily observe how this last metric is the one that would correctly describe our problem: the distance between January and April is 50% of the distance between January and July.
Your first simple Machine Learning Project
By: Nikhilesh Garnepudy
Tags: Scikit Learn, Amazon Echo, Projects, Machine Learning, Github

This article is for those dummies like me, who’ve never tried to know what machine learning was or have left it halfway for the sole reason of being overwhelmed. Follow through every line and stay along. I promise you’d be quite acquainted with giving yourself your first project on your resume.

Basic Essentials

We’d be doing the whole project in Python. The only essential is for you to understand basic programming. Nothing else is required. I prefer using Jupyter Notebook as an IDE as it helps in visualizing easier.

Introduction

In this project, we shall make it interesting by using the data of the newly released Amazon Echo. Various customers who’ve bought the new Amazon Echo have submitted their reviews. We aim to predict whether a given review is positive or negative, through sentiment analysis. Sounds cool right? We shall use a dataset from Kaggle developed by Manu Siddhartha.

Importing Libraries

Your first step is to import libraries. Libraries help us in increased functionality and reduce the bulkiness of the code. Type this into your first cell and press shift+enter.

Pandas is a software library written for python. We shall use it for data manipulation and make our calculations easier. NumPy is a high-performance library which we shall use to perform functions on the datasets and array. Seaborn and Matplotlib are visualization libraries. They help in providing insane visualizations where we shall derive our insights.

When we say ‘as’ in the code above, we imply that the name of the library shall be called as the text mentioned, for ease of effort.

Importing Dataset

We shall use a Kaggle dataset. Use the link below to download the dataset into your project folder.

After you download, type the following and press shift+enter to import the dataset.

echo = pd.read_csv(‘amazon_alexa.tsv’,sep=’\t’)

echo =: We assign the dataset to variable named echo sep=’\t’: The dataset contains values separated by a tab ( tsv files ).We use the sep argument to mention the separation. ‘amazon_alexa.tsv’: If the file is in any other place than the Jupyter Notebook folder, mention the path of the file followed by /amazon_alexa.tsv inside the quotes.

Type echo in the cell below and you shall see the dataset you’ve imported.

The dataset consists of the rating given, date of review, model variation, the reviews that the customers have written, and the feedback. Here, 1=positive and 0=negative. The column feedback shall be our target.

Viewing your dataset

Technical information on your dataset is essential as it helps us understand what we’re dealing with. Use the following codes in the images below.
The Road to CI/CD
By: Remco Rakers
Tags: Programming, DevOps, Software Development, Continuous Delivery, Continuous Integration

The Road to CI/CD

Photo by Reza Namdari on Unsplash.

Remember those days when CI/CD was something developers did because they hated manual, repetitive work? Fast-forward to now and CI/CD is an industry-wide best practice that’s on top of every IT manager’s agenda.

Not without reason, as CI/CD is a powerful concept that helps teams deliver value faster and increase the quality of their output. But what exactly is CI/CD and what do you need to start using it?

First of all, let’s look at the definition: CI stands for continuous integration, and CD refers to continuous delivery or continuous deployment.

Continuous integration is the process of validating software code and its interdependencies in an automated way. This process involves building, testing, and merging code to a central repository without any manual interference.

Continuous delivery is the process of delivering the output of the continuous integration process to the next stage (e.g. a package repository or a release platform). This process is triggered automatically, but manual approval steps are still in place to perform verification checks or accumulate a batch of changes for a release window.

Continuous deployment takes this one step further by removing manual approvals and automating the release process to a production environment.

Different stages of a CI/CD workflow. Photo by the author.

Although the goal might seem to achieve the state of continuous deployment, this is not suited for all organizations, products, and environments. The application’s complexity, dependency on external integrations, or the maturity of an organization’s processes might dictate otherwise.

Let’s take a closer look at the required steps for implementing a CI/CD workflow and the prerequisites to make this a success, starting with the configuration of a pipeline.
Fixing Docker Hub Rate Limiting Errors in CI/CD Pipelines
By: Edoardo Nosotti
Tags: Docker, DevOps, AWS, Continuous Delivery, Continuous Integration

Fixing Docker Hub Rate Limiting Errors in CI/CD Pipelines

Photo by Matthew Cooksey on Unsplash

In an effort to leave its troubled recent past behind, Docker has significantly revamped its business model over the course of this (very troubled indeed) year. As a part of this renovation, back in August the company announced big changes to the Docker Hub service too. Effective November 1, 2020:

Stale (inactive for ≥6 months) images on the Docker Hub will be purged

(inactive for ≥6 months) on the Docker Hub will be Pulls will be rate limited for anonymous users and free accounts

We should all know by now that there are no such things as unlimited services, capacity or vacations in the real world. Even huge companies faltered and crumbled under the burden of “unlimited” paid services. How is Docker supposed to pay for 4.5 petabytes of free storage for inactive images?

So I totally understand Docker’s change of course. Also, dealing with clear and predictable usage limits is easier than handling uncertainty.

In spite of the assurances given by the Docker team, many CI/CD pipelines will be impacted, especially if built on SaaS/PaaS solutions. Also, it looks like some limits are being enforced well before the November 1 deadline. It’s September 30th at the time of writing and today some CodeBuild(s) in my CodePipeline(s) failed with this error:



18.04: Pulling from library/ubuntu

171857c49d0f: Pulling fs layer

419640447d26: Pulling fs layer

61e52f862619: Pulling fs layer

error pulling image configuration: toomanyrequests: Too Many Requests. Please see https://docs.docker.com/docker-hub/download-rate-limit/ FROM ubuntu:18.04 AS baseimage18.04: Pulling from library/ubuntu171857c49d0f: Pulling fs layer419640447d26: Pulling fs layer61e52f862619: Pulling fs layer

Note the error description in the last line. The Docker Hub itself is suggesting that rate limiting is already enforced.

UPDATE — In this post, the Docker team has further clarified the impact that a small fraction of “heavy & anonymous users” had on their infrastructure. This seems to confirm my considerations in the next paragraph.
Ethereum Rollups
Tags: Eth, Escalabilidad, Criptomonedas, Ethereum, Blockchain

Learn more. Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Make Medium yours. Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore
Ethereum Daily Price Forecast (10/27/20) — Failed Attempt to Retake $400
Tags: Ethereum Price, Eth, Ether, Cryptoforecast, Ethereum News

Ethereum fell on Monday, dropping below the $400 in a wild day, closing around the $390 level. $400 will likely be a highly contested level which will likely be increasingly tenuous as volatility and uncertainty in traditional markets are climbing.

(October 26, 2020 8:00 PM EST)

Outlook: Ethereum fell a bit to start off the week, losing the $400 level but settling just below it. This is short-term bearish. I’ve mentioned before that $400 is a major inflection point for ETH and will probably not be claimed as support without a fight. That being said, we’re making higher highs and higher lows, so I think there’s a good chance ETH pulls back to the 50 Day EMA or $350 before finding support, at which point I expect ETH to continue upward and make another run at $400. Climbing volatility in traditional markets will bleed into crypto as well, but will probably not be as bearish for assets like Bitcoin or Ethereum due to the fact they tend to trade more closely with gold, which is not always correlated with equities. However, one thing to keep in mind is the DXY (US Dollar), which has a relationship with BTC. I’m a buyer on dips in ETH, and I think a pullback to the $350 level is excellent value and a buy on the dip. Noone knows how the next few weeks are going to shake out and what kind of effect they’ll have on the markets: this much is true. However, once the dust has settled, I think crypto assets like Ethereum are poised for an extremely strong rebound in Q4 into 2021. Regardless of the total amount of a COVID stimulus package or whether taxes and interest rates are higher or lower, the macro environment remains the same, and the best possible investment assets to hold in such as scenario are crypto.

Support: Look for support at the 50 Day EMA around $365 and then $350. As mentioned previously, I need to see an impulsive wave higher above $400 again to be able to call it support. That didn’t happen, so ETH pulled back, and now I’m looking for a bounce off support to reattempt $400. Longer-term support should be found around $300 which is only a few bucks higher than the 200 Day EMA, which is nearby.

Resistance: $400 is my inflection point where I perceive ETH in a bull market. Once ETH moves above $400 in a decisive move upwards, then we’ll look for confirmation of support and then look higher to $450 and $500. Frankly, once ETH is above $500, I think there’s no turning back.

About Us:

If you enjoy these posts, please support the channel by “Tipping” this post below, or using either of the referral links below.

They cost you nothing and give me a small reward, which makes me a little happier to share these personal analyses with you at no cost.

Buy Bitcoin here.
Step-By-Step Guide on How to Stake Into the Uniswap Pool
Tags: Uniswap, Crypto, Giv, Eth

Key Facts

Step-By-Step Guide

Please follow the steps below to provide liquidity and earn GIV staking rewards for being a GIV liquidity provider on the GIV/ETH Uniswap pool.

Go to the Uniswap pool page. Connect your wallet by clicking “Connect Wallet” at the top right. We recommend Metamask. Input how much ETH or GIV you would like to stake into the pool.

3. Click “Approve GIV” so that you can stake the GIV. Confirm the transaction on Metamask.

4. Finally, click the “Supply” button at the bottom, and confirm the transaction.

Once you confirm the transaction, you will have become an LP for the GIV/ETH pool on Uniswap and will automatically qualify for the bonus staking rewards of ~20M GIV for this month. You will also be able to see your contribution on the Pool page.

Watch out for Scams!

As always, be careful and double check everything. We can guarantee that CryptoLocally team members will not PM you first. Do not fall prey to imposters and scammers.

Whenever you are in doubt, you are more than welcome to reach out CryptoLocally admins on the CryptoLocally (GIV) Telegram community.

For your reference, the address of the GIV (ERC-20) token is:

0xf6537fe0df7f0cc0985cf00792cc98249e73efa0

Further Reading

CryptoLocally GIV White Paper

CryptoLocally (GIV) GitHub

How to get GIV tokens

Link to GIV Token Distribution Event Details

About the GIV Token

GIV Token Distribution Event: Frequently Asked Questions

Staking Rewards for a Uniswap Pool

This information is not investment advice. Please read the full disclaimer before investing.
How To Invest In Blockchain Domains
By: Michael R. Wright
Tags: Eth, Zil, Crypto, Blockchain Domain, Blockchain

As far as I can tell the best ways to invest in .eth, .crypto, and .zil domains are the same as when investing in domains managed by ICANN like .com.

Click here to buy .zil and .crypto domains.

First you want to get 1 letter, 2 letter, and 3 letter domains. You especially want 2 letter and 3 letter words if possible. Later down the line any 2 letter or 3 letter will hold some value even if they are not words.

The Names of cities, states, and countries are valuable. Lasvegas . eth for example.

Since blockchain domains can also be used to make payments it could be valuable to get domains with the words pay, buy, and use infront of or behind the names of products, services, businesses, or hobbies. Usegym .zil, Buspay .crypto, and Buycar .crypto are good examples.

After that you want to get any one word domain no matter how long.

Then you want to look for what are called “high traffic exact match keywords” for your domains. The best way to find these are using keyword research tools like Ahrefs free keyword generator this tool will show you the average monthly searches for any word along with all the searches for combinations of phrases with that word in it. You can also use other paid tools but those don’t get much better than ahrefs free tool. Try to target phrases above 5,000 searches per month anything below that isn’t worth much. And remember, when making a domain out of these phrases, don’t put any numbers or dashes they lower the value of the domain.

Also the different combinations of a city, state, or country and a profession, business, service, or hobby go very well together. Texashotels .zil and Atlantaboxing .crypto are good examples (without the spaces).

Another way would be to find used domains that are on sale and have some domain authority and backlinks, but since these are the early steps in blockchain domains this won’t be used for a long time and possibly not at all.

The final way is using numbers. You want to look for zip codes, numbers with meaning like 360 or 247, and number letter combinations with meaning like 3d.

You can find .zil and .crypto domains by clicking here.

Finally if you can’t find any valuable domains that fit these patterns they might all be bought up by other investors and in that case the only thing Ican suggest is buying from another domain investor on Opensea.io (Click Domain Names on the home page).

That’s all I know happy domaining.
Building Tiny Docker Images Containing Go Microservices
By: Tony Mackay
Tags: Docker, Microservices, Go, Golang

This tutorial shows you how to make small Docker images when building Go programs.

Sample Go program

I wrote two tutorials recently demonstrating Docker Compose and Traefik. They both used a small Docker image containing a simple Go REST API that returns a JSON string with the message Hello World.

Let’s take a look at the code:

As you can see, the code doesn’t do much, it listens on a port specified by the APP_PORT environment variable and returns a JSON response when GET requests are made to /.

The code for this post can be downloaded from this GitHub repository.

Even the small amount of code above can create large Docker images depending on how you build them. Let’s make the smallest image possible in the next step.

Create Dockerfile

Create a Dockerfile and add the following contents to it.

FROM golang:1.15.5-buster AS builder

ARG VERSION=dev

WORKDIR /build

COPY main.go .

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \

go build -o demoservice \

-ldflags="-w -X=main.version=${VERSION}" main.go FROM scratch

COPY --from=builder /build/demoservice /demoservice

ENTRYPOINT [ "/demoservice" ]

This Dockerfile uses a multi-stage build process. The first five lines are used to build the Go program and the last three copy the built program into a small scratch image.

In order for this to work correctly, we are statically compiling the Go program by specifying CGO_ENABLED=0 . You can read more about statically compiling Go programs here: https://www.arp242.net/static-go.html

We’ve also used -w with -ldflags to strip out debug info. This can make the image a little smaller but if you need debug info, remove this flag.

Build Docker image

Run the following to build the image:

docker build -t demoservice:1.0.0 . --build-arg VERSION=1.0.0

Note: specifying --build-arg VERSION=1.0.0 assigns 1.0.0 to the variable named version in main.go. This is done at build time using the -ldflags option.

Check its size

We can check it’s size by running:

docker images

As you can see from the screenshot above. The size of this image is only 5.08 MB. If we had used a Debian slim image instead of scratch, it would have been 74.3 MB.

We’ve saved a lot of space but does the program still work?

Let’s test it

Run the following command:

docker run --rm -e APP_PORT=8080 -p 8080:8080 demoservice:1.0.0

From another Terminal process run:

Yay, the Go program still works.

Conclusion

By using a statically compiled binary and copying it to a scratch image, we managed to save almost 70 MB of disk space creating a Docker image. This can speed up deployment times and save disk space.
Go: A Pomodoro Timer in 75 Minutes
Tags: Pomodoro Technique, Go, Golang

Photo by Marcelo Leal on Unsplash

I’ve been working with Go professionally for a bit, and I’m still not convinced it's the enterprise language it’s touted as, at least not to a software craftsman. It’s too nuts and bolts. The underdeveloped support for things like encapsulation, composition, and code reuse leads to too much code rot.

That said, looking at its origin at Google, as a response to a growing plague of production Python and Bash scripting, Go is a great nail and hammer for that problem. You can produce decent code that you won’t regret next week pretty damn quickly.

A Pomodoro Timer

In the past, I incorporated the Pomodoro Technique regularly in my workday, but when I started working from home, the mechanical timer I used didn’t fit into my home office (i.e. desk in the living room). The apps I tried were all way too feature busy as though they felt compelled to be more than a timer. I fell out of the habit of using the technique. I decided I needed to pick it up again and looked at my old apps, and alternatives, and decided, instead to whip one up myself in Go. In about 75 minutes (or three timers :-) I had gotimer:

It’s nothing to brag about, it just counts down a duration in the current terminal session:

$ gotimer -time 25m00s

But it was easy in Go to:

Minimally TDD

Produce understandable, readable, formatted, Linted code

Drop into CI/CD

Produce a small, self-contained binary

In a land of agile sprints, I can see why some would view Golang as king.
Golang Array Of Struct To JSON
By: Kevin Foo
Tags: Go, Array, Golang, Struct, Json

The codes below is an example of converting an array of structs into JSON.

package main



import (

"log"

"encoding/json"

)



type Fruit struct {

Name string `json:"name"`

Quantity int `json:"quantity"`

}



func main() {

a := Fruit{Name:"Apple",Quantity:1}

o := Fruit{Name:"Orange",Quantity:2}



var fs []Fruit

fs = append(fs, a)

fs = append(fs, o)

log.Println(fs)



j, _ := json.Marshal(fs)

log.Println(string(j))



j, _ = json.MarshalIndent(fs, "", " ")

log.Println(string(j))

}

Running it will generate output as below.

In order to convert to JSON, the back tick enclosed description for the struct field is very important. Without it, the JSON output will be empty.

< Back to all the stories I had written
Your lack of planning should not cost ME money
By: James German
Tags: Travel, Transportation, Autonomous Vehicles, Money, Society

Let me start by saying that I am one of those a**hole drivers in Southern Florida.

Move outta the way!

There are a lot of these types of drivers out there, but at least I am not in the “maniac” category. I fall into the category of people that drive at or near the speed limit, in the slower lanes.

Slow down you maniac!

But in Southern Florida one of the most frustrating things is when people who fail to plan properly, spend just a ‘little bit longer’ on Facebook or social media sites then they should have before heading out, and then need to make up the time by using their horn to demand that everyone else hurry up and get out of their way.

These people invariably honk their horns the millisecond the light turns green, even if other cars are still in the intersection.

I drive a hybrid by choice. I bought it when gas was almost $4 per gallon in the US, and way more expensive in other areas of the world. At the time, I had a 67 mile one-way commute to get to work in the morning, and the same commute home. The car paid for itself in my head fairly quickly.

By making sure the Power bars on the left of the screen stay in the green I get to keep my MPG fairly high.

But when I take off quickly from a red light, the bar goes red, the MPG goes down to 11 or lower and that costs ME more money just to get out of the way quickly enough for the maniac behind me.

These same self-absorbed maniacs are usually the ones who do not turn on their headlights during rainstorms, because of course THEY can see clearly. The fact that their headlights allow others to see them, never even enters their head.

This is one of the best reasons for self-driving cars, on top of the myriad other reasons.

When everyone follows the rules of the road, there is a lot more safety and it would also allow for more fuel efficiency; whether that fuel is petroleum-based or electricity.

What does it say about a species, when technology is required to take the place of courtesy in order to save lives and the environment?