fabiochiu/medium-articles huggingface dataset:
Serverless ETL on Google Cloud, a case study: raw data into JSON Lines
By: Ricardo Mendes
Tags: Nodejs, Serverless, Google Cloud Platform, Etl, Cloud Functions

I’m working on a task that consists of populating BigQuery tables with Tomcat and Nginx access log data. Every day web servers upload new log files to GCS, containing raw data collected during the previous 24 hours. Data need to be converted into a format that is understood by BigQuery Jobs in order to be loaded into the tables.

I opted for the JSON Lines, or newline delimited JSON, to be the target format instead of CSV due to the nature of the data I’m handling. Since one can’t predict the data that will be transformed during this ETL process (e.g. URLs can include several UTF-8 chars, including commas), I decided not to rely on commas as delimiters to avoid problems.

So the goal is set: given standard access logs generated by web servers, they need to be transformed into newline delimited JSON files in order to fit BigQuery Jobs’ input arguments. Such jobs run later in the data warehousing process.

Tomcat logs, for example, are generated in the Common Log Format:

127.0.0.1 - userid [29/Dec/2019:23:55:27 -0200] "GET /index.html HTTP/1.0" 200 950

Which means:

remoteHost - remoteUser [datetime] "request" httpStatus bytesSent

And BigQuery Jobs need them as input in the JSON Lines format:

{"remoteHost":"127.0.0.1","remoteUser":"userid","datetime":"2019-12-30T01:55:27.000Z","request":"GET /index.html HTTP/1.0","httpStatus":200,"bytesSent":950}

What I’ll describe in this article is how I designed and coded a solution to achieve this goal using Cloud Functions and Node.js Client for Google Cloud Storage. Although processing access logs is my main goal, the overall strategy may fit a wider range of ETL processes — with specific changes, mainly in the Transform phase. I’ll explain the solution and comment on the most important parts of the code I wrote to solve the problem. Sources are available on GitHub and links provided along with the text.
PHP: Using “when” and “unless” in your own classes
By: Italo Baeza Cabrera
Tags: Software Development, Productivity, PHP, Programming, Web Development

Sometimes the logic around an object depends on a condition. Let’s say, we need to change the state of something if a variable is true , and do nothing if is otherwise false .

$transport->setPackage($package); if ($express) {

$transport->setExpressDelivery();

} $transport->send();

There is a neat way to compress these lines in something less verbose, by using a when() and unless() method helpers on the object instance. The behaviour would look like this:

$transport->setPackage($package)

->when($express, [$transport, 'setExpressDelivery'])

->send();

And it should allow more complex logic using a Closure :

$transport->setPackage($package)

->unless($isSmallPackage, function ($transport) {

$transport->setNormalDelivery();

$transport->setBigPackageHandling();

})

->send();

For some folks, breaking the flow with an if may be standard and more approachable, but I personally like understandable and expressive fluent methods so another developer can just read the thing and understand it.

When and Unless

For this to work, we can create a simple trait so we are able to use the helpers on anything we want. These methods will take the condition, and call a callable if it evaluates to true . For unless , we can just call when() but with the condition flipped:

<?php trait Conditionable

{

public function when($condition, $callable)

{

if ($condition) {

$callable($this, $condition);

} return $this;

} public function unless($condition, $callable)

{

return $this->when(!$condition, $callable);

}

}

And walá, we can fully do things like the above. Since it receives a callable , we can even call public static methods from elsewhere just because we can.

$transport->when($express, [Courier::class, 'setExpress'])

Of course this is far stretched, but this allows to conditionally call any method of the instance you’re using in your code, instead of adding a condition to each method in your object.

For example, imagine a class that has many conditionable methods.

class Foo

{

public function whenFooDoBar() {}

public function whenQuzDoQux() {}

public function whenQuuzDoQuux() {}

public function whenCorgeDoGrault() {}

}

Instead of programatically code the condition in each method, you can just use the trait, saving that condition logic from the methods themselves.
My Writing Is Not Flowing
By: 𝘋𝘪𝘢𝘯𝘢 𝘊.
Tags: Creativity, Short Story, Inspiration, Lovethyself, Energy

No two days are the same when you are a writer. No, really.

Sometimes you wake up refreshed and motivated to submit three articles to three different publications, but you progressively lose energy as each finger touches the keyboard.

Other times you wake up feeling drained, unhappy and unmotivated, yet your words flow beautifully.

You can’t anticipate which scenario is most likely to take place. An overwhelming feeling of helplesness takes over in both situations, as you’re left wondering what is the best course of action to take.

I’ve found that I can go a few days without writing creative content. I don’t beat myself up when it happens. However, when it comes to Know Thyself, I have no mercy on myself. I beat myself up each time I fail to come up with new content, new ideas and new opportunities to support my contributors. I am so fiercely passionate about the work I put into the publication and I hold myself at such high standards, that each time I go through an unmotivated phase I feel like I’m letting my writers down.

As you can tell, it’s not the healthiest mentality. My loved ones suggest I take a break, but it’s not a break I long for. Getting away from Medium for a while would be a temporary solution to an issue that has far deeper and thicker roots than is noticeable at a first glimpse.

When I first began writing on this platform, I did it to vent my emotions. That was the only reason. I needed to allow myself to be vulnerable, raw, real. The more I shared, the less baggage I carried around. I don’t know when or why I’ve stopped doing it. I assume it’s partly because the publication took over and “managing it succesfully” became my number one priority.

I think I’ve stopped writing for myself. And I think I need to start doing it again…

May sound silly, but it’s similar to motherhood: your children’s wellbeing comes first and everything else follows. Mothers know how tricky it is to maintain balance. They also know they need to make time for themselves. Does that mean they always do? No, not really. But every now and then, life forces them to pause.

Life is forcing me to do the same. The only way I can regain my motivation is to begin venting again. Maybe a little less structure will help as well. Actually, writing this article already made a big difference.

If you are going through a similar phrase, admit it to yourself.

Write about it. Sing about it. Dance about it.

Anything that helps you vent it.
A Beautiful Morning
By: Sebastián González De León
Tags: Poetry, Literature, Life, Poem, 52 Week Writing Challenge

It was a sunny morning

I watered the colorful flowers and left them in the sun by the window pane

The sweet smell walked with me

After all, fresh flowers have a beautiful smell

And life dripped from the watered leaves
The Calculus of Dropping a Class. I dropped a class for the first time in…
By: Maxwell Blafer
Tags: French, Stress, Education, Language

Photo by Olav Ahrens Røtne on Unsplash

I dropped a class for the first time in college. It felt like a personal failure, because of the stigma behind failing classes. I know that it isn’t failing, but it felt that way. I just had to take a step back and look at the class from a different perspective. Instead, I looked at it from a HOPE scholarship

standpoint. If I were to stay in the class and really fail, I would end up lowering my GPA.

I looked at it from a learning standpoint.

I realized that struggling with this class was harming all of my other classes. I was spending so many hours on this single class that it was draining my studying and having me worn out by the time I started working on other topics.

I looked at the decision from a fiscal perspective.

Dropping this class basically cost me a class worth of Hope money. I will have to pay for one more class than I receive credit. This cost is offset by the 5 dual enrollment classes I took before KSU. Even so, I don’t get to escape this class. I will need to take it during another semester, possibly over the summer. Also, since this is a 4-class series, I will be a semester out of sync with the normal track. While both of the intro classes are offered every semester, the 2nd year classes will be harder to find.

I knew that this was going to be a tough class for me going in. I was right. I have had a tutor to try to compensate. It wasn’t good enough. But I now have the material and only 4 classes. I am going to keep going to my tutor for the rest of the semester. She now knows exactly what to teach me. I am hoping to be ready so that when the next semester comes that I can pick the class up and ace it.

And lastly, I looked from a mental perspective and saw that it was just taking up my time and adding stress to an already stressful first year.

So, looking back I think I made a good choice.
The Disgusting Story of the Japanese ‘Comfort’ Women
By: Mythili The Dreamer
Tags: History, Sexual Assault, Women, Feminism, Equality

“I was a sex slave for the Imperial Japanese Army during World War II.”

This statement made by a feeble old woman in a historic news conference in 1991, Seoul, South Korea sent shivers across the world. Kim Hak-sun was the first-ever ‘comfort woman’ to come forward to expose the Japanese Imperial army’s heinous crimes against countless women during World War II.

Kim was 17 years old when she was abducted by a group of Japanese soldiers and taken to a Chinese town. She was raped that night, and that started a painful ordeal at a military brothel that lasted several months. Finally, she was able to escape with the help of a silver coin peddler from Pyongyang.

And more than 75 years since the war, we still don’t know much about these women. The details of these comfort women and the crime against them have been scant and shrouded into bureaucratic records that were either destroyed or provide vague information.

There are very few survivors and an estimated 90 percent of “comfort women” did not survive the war. In many cases, those who survived suffered from serious injuries and were unable to forget their traumatic pasts. Many suffered from venereal diseases and were unable to bear children. Others could not marry due to the burden of the shame deeply etched within their hearts.

And after the end of World War II, documents on the brothel system were systematically destroyed by Japanese officials, as Japan started rebuilding itself post-war. And in the process, the story of its enslavement of women was downplayed as an undesirable remnant of the war to be left, buried, and forgotten as a brutal by-product of a long, bloody war.
New Inventions
By: Virtual Mosque
Tags: Bad, Facebook, Inventions

Used for years as an excellent tool for Dawah activities, Islamic websites and social media have been proved as a perfect tool to gather support for the needy, after a successful campaign went viral to offer help for a Muslim heart transplant patient.

Maria’s case went viral at social media after her family launched a fund raising campaign beyond US to save the life of the 31-year-old Muslim.

Under the title ‘Heart for Maria Haroon’, a Facebook page was made to raise money for the operation.

Twitter followers were also able to make contributions for Maria through @HeartForMaria.
The Simple Things in Life Are the Most Incredible
By: Bridget Webber
Tags: Short Story, Nature Writing, Life, Fiction, Personal Development

Yesterday, the ground was crisp. A dense white layer of frost clung to each blade of grass that shone in the early morning sun. As warmth seeped into the earth, a light haze of damp floated up to create fresh clouds.

And so it is. Life’s wonders never fail to mesmerize. They remind me how lucky I am to be here and witness them. Without me, they’d go on, of course, but I see it as a pleasure and a necessity to note these simple things that bring so much joy and spread beauty.
I’m Jealous of People Isolating with a Significant Other
By: Maribel Martinez
Tags: Self Improvement, Relationships, Isolation, Personal Development, Love

I seem to always be single. Even when I wasn’t single, it felt like I was single.

I was dating a coworker until recently — a coworker who was on that same call as I was when that question was asked. A coworker who didn’t want to be open with everyone we work with about the fact that we were dating. Most of the time I thought he was embarrassed about being with me. The reality is he was an asshole. His hand was down too.

When everyone answered, I felt jealous of every person in the world capable of making their relationship work. I got jealous of everyone spending time at home right now with their significant other. It seems everyone knows the trick to successful love but me. I must have skipped that day at school.

What do others know that I don’t?

That question asked at the zoom meeting was supposed to be funny. It was meant to highlight the difficulties of spending the entire day with your significant other when most people aren’t used to doing that.

The question was funny, but it felt personal.

It highlighted my deficiencies in the love department. It also probably answered some people’s questions about whether my ex and I are still dating. Our relationship puzzled everyone. We dated on and off for three years. People asked me all the time, “are you two dating or what?” Sometimes the answer was “yes”; sometimes the answer was “no”. On a bad day, the answer was “none of your business.”
The House of God
By: Robert Sedam
Tags: Book Review, Health, Medicine, Books, Doctors

The House of God

My thoughts on, “The classic novel of life and death in an American hospital.”

Photo by Marcelo Leal on Unsplash

Recently, I’ve made a change in my career and life path, and with it, I’ve come into some time that I didn’t normally have. This has allowed me to catch up on all of the reading that has been stacking up on my bookshelf since I graduated from veterinary school.

This book was recommended to me by a peer in a group forum discussing burnout in the veterinary profession. I hadn't been heavily invested in reading this thread, but for some reason, the post about this book had caught my eye. So, when I did my last round of book acquisition I added it to the list. For less than $5 on Amazon, I was now the second (or perhaps third) owner of this book, but I had essentially no idea what it was about.

The story, it turns out, is about a medical doctor, Dr. Basch, going through his internship at the House of God Hospital — a fictional hospital based in Boston and associated with the Best Medical School — a fictional rendering of Harvard medical school. The book was published in 1978 and takes place around the time of the Watergate scandal and trials.

What I expected from the House of God was a story about American heroism taking place in a palace of medical experts and pageantry. A story that brings tears to your eyes in the final chapters as a team of excellent doctors brings your favorite character back from the brink of death, and then go on to their next case in the classic, “It’s all in a day’s work,” fashion. In essence, I expected a story to uplift and rejuvenate my excitement in medicine.

What I got instead was a deeply satirical and painfully honest view of the human medical progression from medical student to medical doctor. What the book actually is, is a spotlight on the flaws of medical education and an appeal to reevaluate the, “I did it, and so should you.” mentality. I got the tears in my eyes that I’d expected in the final chapters of the book, but for reasons I didn’t.
I Am Just a Doll
By: Suzanne V. Tanner
Tags: Creativity, Politics, Future, Poetry, The Bad Influence

Look at me.

I was born and bred to be a doll,

a dolled-up-dolly on the arm

of money.

A perfect human candy cane.

My brain devoted solely

to wanton male entrapment schemes.

Guaranteeing the security of

my future cash flow.

To those shoppers out there

bargain hunting and

buying my deception because I

am excellent at conniving to do

what you expect of me.

Beauty does what

beauty is, you mistakenly believe.

Making some of you

programmed misogynists,

consciously or not

fostering this primary role

for women.

Since your expectations allow me

to sell you a bill of goods,

I can exterminate color and diversity

from a famous garden.

Oh no, some of you sing,

that travesty couldn’t possibly be a message

about inclusion no more,

if embracement ever was.

Nor do some believe my raking and tilling was

a statement about an immediate future

where variety and compassion is

excised and plowed under

in service to wealth, nepotism and

a perpetual regime of privilege.

Decreed by scratching

a line in the newly sculpted grass

using a felt marker to

divide those in and those out.

Stark and monochromatic

is the warp-speed version of

this world’s future, currently being

peddled by snakes riding oily bicycles.

So you might as well

wave bye-bye to a place

where you loved living, people.

Remember when I visited

children in cages

wearing a jacket declaring

I don’t care, do you?

Many convinced themselves I

took it out of my closet

mistakenly.

I would not be capable, they agreed,

the pretty thing I am,

of choosing to slip my arms in that garment

to stick my disdain,

slap it like a sopping wet chamois

in your face.

I can freely promote divisiveness,

secure that you will believe the noise

screeching: whoops, she didn’t mean

to wear it or say it.

The role some have ascribed to me and my ilk

blinds judgement. Allowing

us, the nuclear and

extended family battalion

to hide in the privacy of

our newly gold leaf plastered

living room, laughing

at the subservience, the gullibility

offered up to us by deluded worshippers.



Soon it won’t matter

when we invite the cameras

to show us feasting in splendor,

gnawing any remaining meat

from a pile of devoters’

expendable bones.

© Suzanne V. Tanner, 2020. All Rights Reserved.

I think you all, at this point, might enjoy some lighthearted relief. Please read this clever and hilarious poem by my friend, Manasi Diwakar recently posted in The Bad Influence. Maybe she will send you the recipe! She already has my request.

Thanks again for your time, my dear reading and writing friends.

If you would like to be in email touch: vtanme@gmail.com
The Internet Is Not A Seven Layer Network
Tags: Internet Protocol, Networking, Information Security, Cybersecurity, Network Security

Only Four Layers!

The second question I always ask someone I’m interviewing for a network security position is, “How many layers are in the Internet Protocol stack?” Invariably the answer given is “seven.” That’s wrong! The correct answer is four. (Arguably, five could be considered a semi-correct answer, but we will get to that in a minute.) Don’t believe me? Read the RFC that defines the IP stack!

I don’t know whether it is more sad or disgusting that so very few network security “experts” have actually read the standards upon which the protocols they are securing are based. After all, how can you properly secure something when you don’t correctly understand its design? All too often, this is just another case of memorizing the standard security mantra without really understanding it.

As per RFC1122, the layers in the IETF’s Internet Protocol Stack are:

Application

Transport

Internet

Link

However, the RFC-defined layers strictly define the software stack. The RFC discusses the presence of physical connectivity below the Link layer, but does not specify it explicitly. Since the RFC is only defining the software stack, it ignores all the hardware aspects of its implementation. So, it is arguably also correct to specify a “Physical” layer below the link layer, and this is the common practice.

In the IETF stack, there is no distinction made between what the ISO 7-Layer Model calls the Session, Presentation, and Application layers — it is all simply the Application layer in the IETF stack. Many books (and documents on the Internet) try to force-fit various IP-based protocols into the ISO stack’s Session and Presentation layers. Worse, many professional certification courses do the same. However, if you read the RFCs that define those protocols, they all specify everything above the Transport layer as Application layer, as per the IETF stack.

To properly secure a network protocol, you need to understand the standards upon which its implementation is based. That means that you have to actually break down and read the RFCs. Just because a textbook or a certification exam claims that the Internet is based on the ISO 7-Layer Model, it does not make that information correct. RTFRFCs!
Official on TRUST wallet
Tags: Mobile Wallets, Ethereum, Bitcoin, Blockchain, Erc20

(LYS) Lightyears Token is available on TRUST Wallet for the first time , Trust Wallet is consider one of the few top most recommend cryptowallet for ERC20 Tokens , Its Feature’s even cover an Exchange feature within the wallet itself ., Via coinbase , shapeshift , changelly .

TRUST Wallet doesn’t just stop there , They even have a browser on the wallet which equip user’s to have more functionality within the wallet . User is able to access thing’s like Marketplace, Game’s , Exchange like Tokenstore , Bancor Network etc .

“Our Team is happy about the smooth integration of (LYS) Lightyears Token on TRUST wallet” .

TRUST WALLET is available on download Appstore and Playstore both Android and iOS device’s are fully supported.

~Hurry get your TRUST wallet today and Secure your (LYS) Lightyears Token.

Team Lightyears
Component architecture in Figma
By: Thomas Lowry
Tags: Design Tools, UI Design, Figma, Design, Design Systems

One of the best things about Figma’s component system is that you can access the layer stack of every instance of a component. This can have a huge impact, across the span of an entire design system because it can help keep components contained and reduce the number of components required.

Another recent update introduced drag and drop instance swapping. This can take place locally within your file, or straight from your shared team library (a separate Figma document). Being able to do this can have a huge impact how you structure your components.

Here are a few ideas on how you can maximize modularity, and in some cases, reduce the number of components required.
Basic application with Django
By: Pavel Ilin
Tags: Software, Python, Web Development, Django, Learning To Code

Finally we got to the awesome Python framework Django which allows you to use python for developing web applications.

Prerequisites

First ensure that you have python and pip installed. Then let’s install Django:

python -m pip install Django

And check if it’s installed and ready to use:

python -m django — version

If you can see a version of the Django library then you are ready to go.

Project Setup

Now, let’s create new Django project:

django-admin startproject myCoolProject

This command will create a myCoolProject directory in the directory you recently located. And inside it will create this files:

Next we can cd into myCoolProject directory and start the server:

python manage.py runserver

If everything is correct you should see something like this in your console:

And if you open http://127.0.0.1:8000 in web browser you should see this:

New app

Now we know that Django and the project environment is ready and working, we can work on our own application. First, let’s create one:

python manage.py startapp newApp

This is how the file structure of the new app looks like:

Serve the content

Now let’s create views to render some content on the DOM. View it’s description of what will be served to the user when they hit a specific route in our app. Views can be found in, surprise, views.py file which is located in the app directory.

This is very simple view, but we need to start with simple things and then build complexity and functionality up:

We import the HttpResponse method from the Django libraries. It will create a <body> html element and put the string inside which we provide as an argument.

Next we need to open urls.py in the project (not the app) directory, import freshly created view and specify on which route this view should be rendered:

Now you can refresh index page of our app and we can see this:

If you would like to modify the rout you could specify which view you would like to render for which route:

Conclusion

Hooray, our first app is up and running with Django! Is in it cool to use python for web-development? I know you agree with me!

Next time we will create a RESTful API and will learn how Django works with models and databases.

Keep learning, keep growing!

Let’s connect on LinkedIn!

Gain Access to Expert View — Subscribe to DDI Intel
You Hold the Key to My Secret Heart
By: Francine Fallara
Tags: Artist, Music Voices, Fiction, Music, Musical Story Challenge

I wanted you from the first day I saw you. The first day I looked into your eyes. That’s when I knew that I would adore you. It was no surprise.

Well I only met her about a week ago but the way she smiles let me know that she could see that maybe we were two of a kind. And I don’t think I’ll ever get her off of my mind.

You’re trying to make your mark in society using all the tricks that you used on me. Born between the covers of your fashion books. You think you can make it, girl, on just your looks. But you could never bring me up. Between us stands a wall. No, I don’t think you know me at all.

We had a fight last night about something or other but it can’t be too important if we love one another. True love always seems to take a little bit longer. But every time we break up, we make up a little bit stronger. I wonder just how long it would be. Me without you, you without me. Let me tell you know.

There’s so little time for us to try to rhyme and so many highways to travel upon. Open your eyes. Get up off your chair. There’s so much to do in the sunlight. Give up your secrets and let down your hair. And sit with me here by the firelight.

When the world and I were young just yesterday life was such a simple game. But today there is no day or night. Today there is no dark or light. Today there is no black or white. Only shades of gray.

You can see the changes we’ve been going through. Such a pity, what a shame. Who can we blame? You and me, me and you, and the rest of them too.

She looked at me and the emptiness in her eyes was cruel to see. Then she turned away and said, “Once I loved, but love is dead”. And I whispered, “Sometimes love is only sleeping”.

Put your heart and soul where I can see them shine. I wish you’d put your heart and soul where I can think they’re mine. I wish you put your heart and soul where I can see them shine.

Then I saw her face, now I’m a believer not a trace of doubt in my mind. I’m in love, I’m a believer! I couldn’t leave her if I tried. I thought love was only true in fairy tales meant for someone else but not for me.

You, you make my heart sing. You make my life worthwhile. I feel such there’s so much to discover. To uncover it is going to take a while.

I am leaving in the morning and I must see you again. Take the last train to Clarksville, and I’ll meet you at the station. You hold the key to my secret heart. Just turn the lock and we could be lovers after dark.

Francine Fallara, 2020

A unique fiction love story written using 100% of The Monkees song lyrics medley to pay tribute to Peter Tork, singer of the Monkees. The idea is to cram as many song title references (from a single artist) as you can into the fewest words that create an actual storyline. For those who enjoy friendly competition, divide the total number of words in your story by the number of song titles. That’s your score. 519 words (including title and subtitle) / 20 Monkees Titles = 25.95 words per title

In response to both JMontes and Michael Whalen
How to Brand Your Heart
By: Francine Fallara
Tags: Humanity, Poetry, Society, Love, Resistance Poetry

Francine Fallara, 2020

2020 continues to shake and destabilize humanity in extreme ways. Let us reveal our stagnant kindness in order to face these hard times as humanly as possible, simply by spreading our love.
Fetch supports USD Coin!
By: Hansmeet Sethi
Tags: Stablecoin, Fetchproduct, Ethereum, Wallet, Blockchain

Fetch is excited to share that we’ve joined others in the ecosystem in supporting Centre’s Stablecoin, USDC!

Including MakerDao’s DAI, TrustToken’s TrueUSD and USDT Fetch now supports four stablecoins. This enables users to retain custody of their stablecoins, use them in decentralized finance protocols and trade them into other tokens.

Stablecoins play an important role in the development of the decentralized finance ecosystem and we’re excited to expand support for them in Fetch. In case you’re wondering why stablecoins are so important, here’s just one way you can use them to protect your portfolio when the market dips.

So what can you do with USDC in Fetch?

USD Coin

Automated Detection — If you already own some USDC, Fetch will automatically scan the blockchain to show you your holdings. Note that since USDC held at Coinbase isn’t actually under your ownership, Fetch doesn’t detect assets held there. You can however transfer any USDC you hold in Coinbase, or anywhere else, to your Fetch account.

Transfers — You can deposit or transfer your tokens to any service that users the. Want to trade collectibles with OpenSea? Perfect. We’ll be sharing more soon about how we’re making Fetch more flexible to serve more of your needs like this. Token support is just the first step.

— You can deposit or transfer your tokens to any service that users the. Want to trade collectibles with OpenSea? Perfect. We’ll be sharing more soon about how we’re making Fetch more flexible to serve more of your needs like this. Token support is just the first step. One-Click Trading — Just like with any other token supported in Fetch you can buy and sell USDC with one-click. Here’s some details on how it works!

Download Fetch and try for yourself today!
Two Common Mistakes In Understanding Sprint
By: Kiryl Baranoshnik
Tags: Agile, Scrum

This one I’ve seen quite a lot, usually with digital task trackers (the much-hated Jira being one of them, which is quite surprising because Jira natively supports the “correct” way of carrying items over) — probably because the operation of copying is so cheap there. Whenever a team is not able to complete a story, they clone it to the next iteration. The original story becomes “part N” and gets closed and the clone is now “part N+1”.

There’s a number of possible reasons why this happens. The most obvious is probably the team’s desire to reward themselves for performing work, otherwise they are left with the feeling of unfairness. Another typical reason is cargo-culting the golden rule of fitting a user story in a single sprint. I’ve seen both in my career. Instead of focusing on the root cause, a team simply makes up an artificial completed item.

Such way of tracking work has numerous issues.

First of all, it never actually shows real progress. Whether a user story is done or not can only be evaluated with the ultimate objective criterion — is it live or not. In Scrum you can strengthen (or weaken) this criterion by the means of Definition of Done. This aligns with one of the Agile principles: working software is the primary measure of progress [3]. By cutting a user story into parts like shown in the example you are doing something as nonsensical as saying, “I’ve mowed half of the lawn, although I still don’t know how big it is”. How do you know then it’s a half and not a quarter?

Second, such tracking removes the incentive of slicing user stories vertically into smaller pieces. There’s no pressure to have a story that you can truly complete in one sprint because you have a 100% guarantee to have a completed item at the end of each and every sprint.

Then, if you use a digital tool for tracking, it messes up with your data. There’s no easy way to calculate true lead time or true velocity when you keep adding entities for the same piece of work. The data on the items doesn’t show true numbers and if you want true numbers, you need to aggregate them from multiple different sources.

And lastly, continuously cloning items simply wastes your time on unnecessary activities. I’ve seen teams wasting the entire sprint review on just creating new clones in TFS for the next sprint.

Think Instead: Sprint is a Bucket
The Ultimate NumPy Guide for Beginners
By: Bryan Dijkhuizen
Tags: Programming, Software Development, Data Science, Python

Getting Started

It would help if you had Python installed and PIP. If you have already done this, you can start working with NumPy. Before you can use NumPy, we have to install it with the following command:

C:\Users\Your Name>pip install numpy

Then open up a Python script or file and import the library:

import numpy

Now, NumPy is imported and ready for you to use. NumPy usually is imported as np instead of NumPy:

import numpy as np

We can check if NumPy works by adding two simple lines of code:
Bitcoin price hit $19,000 all-time High After 3 years Back
By: Rinkesh Jha
Tags: Buy Bitcoin In India, Bitcoin Price, Digital Currency, Cryptocurrency, Buyucoin

Digital money Bitcoin price hit $19,000 on Tuesday (Rs 14,21,662.75) without precedent for right around three years and was just short contacting an unequaled high of just shy of $20,000. The digital currency has ascended to around 160 percent this year with purchasers slurping up bitcoins. Prior to this month, the most widely recognized digital money was over $18,500, the sum most as of late found in December 2017.

Bitcoin Price hit $19000 around 1600000 INR.

The harms acquired on the economy during the lockdown time frame will set aside more effort to mend. An immunization only quickens the recuperation, however, it additionally will in general drive expansion higher as individuals re-visitation their pre-pandemic lives.

The price of bitcoin has risen above $19,000 for the first time in nearly three years. According to The Independent

Google Patterns information show looks for ‘Bitcoin’ rose to a yearly high as BTC value energized to $19,400. Today Bitcoin price (BTC) cost expanded its meeting toward another untouched high as the value flooded to $19,412 in the first part of the day exchanging meeting.

While 2020 was a calamitous year for the worldwide economy, BTC has figured out how to recuperate practically all the worth it lost in 2018 after an all-inclusive bearish amendment. PayPal and Money Application are purchasing so much Bitcoin that they could be causing a deficiency on the lookout, legitimately adding to pushing the costs up.

Stablecoin administrator Paxos was picked to give PayPal cryptographic money capacities through its fiat-to-crypto itBit trade that as of late observed an enormous flood in exchanging volumes.

Bitcoin has recuperated the vast majority of the misfortunes enlisted during the end of the week and sits north. Bitcoin value shoots a week ago’s high to exchange another 2020 top at $19,000. BTC/USD & BTC/INR is ready for a retreat, however, bulls want to hold the cost previously.

Bitcoin is up big-time in the previous month and a half creating it the world’s best performing large-scale resource class. Yet, as per an instability examination by an asset chief in the space, the really unstable bit of this assembly hasn’t begun at this point.

Buy Bitcoin & Check Bitcoin Price in India in INR

In India, you can buy bitcoins from some trusted Bitcoin apps & Exchanges. There are quite a lot of such google apps/platforms. One among them in India is BuyUcoin with no hidden charges. Choosing the best platform to buy them and check the latest bitcoin price in INR.

Read more complete beginners guide step by step buy bitcoin in India.
10 Must Have Chrome Extensions for Front-End Developers
By: Harsha Vardhan
Tags: JavaScript, Software Development, Programming, UI, Web Development

10 Must Have Chrome Extensions for Front-End Developers

Clear Cache, JSONView, and more

Google Chrome logo

Most of the Web Developers use Chrome for their development. According to Wikipedia about 65% of the world population seem to use Chrome, this is one of the reasons why developers choose Chrome to test an application built by them. So if you’re a developer who uses Chrome a lot, here’s a bunch of Chrome extensions that would make your life a lot easier.
30+ user research questions for dashboard design
By: Taylor Nguyen
Tags: UX Research, UX, Dashboard, User Research, User Experience

Deciding the relevant information to display in a dashboard can be tricky. If you ask users what they would like to see, they will give you every metrics that has ever been produced in the organization and some more.

In dashboard design, it’s not enough to ask what users want. You must understand why these data are needed and how they would be used. Without proper user research, dashboard design runs the risk of creating fancy-looking charts and graphs that aren’t informative or actionable.

Below, I’m sharing a collection of questions I use in user research for dashboard design projects. These questions are designed to uncover four areas:

User’s goals Context of use Timeliness and interactivity requirements Familiarity with data, metrics, and industry terminologies

You can use these questions during contextual inquiries, user interviews, or in surveys to uncover user’s real needs.
20 Things My Mom Taught Me About Being A Man
By: Jordan Michael Becker
Tags: Life Lessons, Lists, What Ive Learned, Men, Moms

I was raised by a single mom. In many ways, as good parenting often goes, she’s still raising me. We talk every day about what’s going on in our lives, about how I’m doing making my way out in Los Angeles pursuing the dreams she’s always told me were valid. And some days, like today, I think back to my two and a half decades as her son and suddenly all her “little” lessons start to form a picture of how truly special it has been to have a mother like her. A mother who taught me how to be a man.

Among her little lessons? Here are twenty of the best.
Introduction to Kotlin Coroutines
By: Satya Pavan Kantamani
Tags: Android App Development, Kotlin, AndroidDev, Android, Programming

Introduction to Kotlin Coroutines

Coroutines for asynchronous programming

Introduction

In most of the programming languages, it’s quite a common thing of doing synchronous tasks like hitting an API and waiting for the result to process the next steps, waiting for fetching data from the database, etc.

We basically started handling this using the callback mechanism. We do something like hitting an API and wait for the callback to get invoked where we process the result.

A callback is a function that will be executed after another function has finished executing. And if there are a series of things to be done synchronously then we will fall into callback hell that can lead us to ambiguity in understanding the code. It depends on the number of steps and logic we have in our applications.

To avoid this callback hell and with the difficulty of managing multiple threads at a time, we adopted Rx Java in Android where the code looks cleaner and easily understood.

Also, exception handling and disposing of things can be handled in a good way. The main problem with Rx is like exploring its list of operators in-depth while performing complicated operations and apply them correctly.
Your Kit Lens isn’t as bad as you Think
By: Joel Oughton
Tags: Creativity, Technology, Art, Photography, Design

Despite what you may have heard, kit lenses can be an amazing tool.

They are amazing for beginners and it allows them to be slowly eased into the world of DSLR photography.

Kit lenses typically come in the box with your first ‘serious’ camera (ie. a DSLR) and they are cheap to produce but they produce decent images.

It gives the beginner photographer an ideal platform to get started with because before they progress onto more challenging lenses.

This is because:

It covers a wide 18–55mm range

They are great wide lenses for beginners, allowing them to capture large buildings and landscapes with ease

While the aperture is much narrower than say, a 50mm lens, it is still enough for beginners to get some bokeh in their backgrounds

However, it is important that you understand how to get the most out of your kit lens and this article will give you some actionable tips to get you started on your way to taking some amazing photos!

A kit lens covers a wide 18–55mm focal length range, which is more than enough to get you started
RelayHooks vs. RelayContainers
By: Bobi Pu
Tags: JavaScript, Front End Development, Relay, Reactjs, UI

The “React + Relay + GraphQL” combo is the most advanced and handiest frameworks suite to build any browser app now. Among these 3, Relay is relativley harder to learn, due to it’s evolving API: Container → Hooks.

In this note, based on my 1st hand experience at Facebook, I am going to share why the new RelayHooks is better than RelayContainers.

Definitions

RelayContainer is a React Component which is usually the root of a Relay component tree, like QueryRenderer, FragmentContainer, PaginationContainer, etc.

QueryRenderer handles fetching your query and uses the render prop to render the resulting data.

FragmentContainer won’t directly fetch the data; instead, the data will be fetched by a QueryRenderer ancestor at the root, which will aggregate all of the data needed for a tree of Relay components, and fetch it in a single round trip.

RelayContainer Example

RelayHooks is an API similar to ReactHooks, includes API like useFragment, useLazyLoadQuery. It separates the data loading logic and React component rendering code.

RelayHooks Example

Note: Relay components will interop correctly regardless of whether they were written as Relay Hooks or as Relay containers.

Benefits

Simple

Hooks are functions that have specific inputs and outputs. It’s clearer than the “magic” that happens in Higher Order Components, where the prop you pass from above is not the same as the prop you receive inside the component.

It also allows us to not pollute the React tree with multiple nested layers of Higher-Order Components that wrap your actual components like the refetch and pagination containers.

Typesafe

Hooks are also a lot simpler to Flow type, and with Relay Hooks we were able to guarantee better type safety than we could with our HOC / Renderer APIs.

They are easier to reason about and require less indirection, and are substantially easier to debug.

Concurrent-Safe

Hooks have more capabilities compared to their container counterparts, for example by being integrated with Suspense for loading states, and providing new capabilities such as directly rendering data that is cached in the Relay store, which were previously not available.

It also allows you to use the newer usePreloadedQuery APIs, which cut down on null renders, unexpected suspense, and accidental over fetching.
Frontend Architectural Patterns: Backends-For-Frontends
By: Bowei Han
Tags: Technology, Software Development, Software Engineering, Microservices, Architecture

Frontend Architectural Patterns: Backends-For-Frontends

Client-Tailored Microservices

What is it?

The backends-for-frontends architectural pattern describes a world in which each client application has its own server-side component— a backend for a particular frontend.

This pattern is highly applicable if you have multiple client interfaces with significantly different needs that all consume the same underlying resources. The most common real-world example is an application that has both a web and a mobile client.

To understand why backends-for-frontends is useful, let’s walk through some evolutions in web architecture.

Multiple clients with a single general-purpose server

Monolithic application with multiple clients (source: author)

Simplicity is great, right? Actually, it is…but only up to a point. If your application is small enough this architecture can absolutely work! However, monoliths tend to break down with scale. You might hear your teams start to say things like…

Our server is so bloated! Client-specific control flow is littered everywhere and we are struggling to add features without introducing side effects.

I can’t commit any changes without merge conflicts. There are N teams changing this exact piece of code; some that we barely talk to!

Builds and tests are taking forever to run and it’s going to take us days to debug that one intermittent test failure.

These types of problems catalyzed the rise of microservices.

Multiple clients with a microservices architecture

Microservices! (source: author)

Microservices, when implemented with proper boundaries, are great for scale and help solve a bunch of problems.

Backend teams are typically responsible for a single service and are no longer tripping over each other.

Individual microservices are lightweight, customizable, decoupled, and readily extensible.

However, there are still boundary issues amongst frontend teams. The responsibility of handling multiple clients is still encoded in one or many services. Frontend engineers are struggling to jam multiple use-cases into a single API layer and the customer experience is beginning to suffer. Tension is growing between the web and mobile teams.

Why can’t we draw both technical and organizational boundaries around disparate clients, the same way we’ve done for microservices?

Multiple clients with dedicated backends and a microservices architecture

BFF! (source: author)

Enter backends-for-frontends! We’re using the fact that our clients have very different needs to draw helpful boundaries. The BFF applications are lightweight translation layers that decouple individual clients from downstream services and serve only a single frontend.

Benefits of BFF
Ruby + Rails + Agile — sharing presentations
By: Blog Moove-It
Tags: Gianfranco Zas, Gabriel Chertok, Ort, Pablo Ifran, Conference

The last Wednesday we made a workshop in the ORT University.

Pablo Ifran, Gianfranco Zas, Ariel Ludueña and I

We share the presentations to everybody

All_in_One_Agile_Development (in spanish)

Ruby_and_Rails (in spanish)