fabiochiu/medium-articles huggingface dataset:
Looking Too Closely- Fink
By: Ibrahim Basit
Tags: Music, Life, Fink, Self Esteem, Depression

This is a song for somebody else.

This is an attempt to examine a song that has struck a chord on the veritable strings of my heart. Note that this is my intuitive interpretation; the intended meaning of this song might be something else entirely.

Depression is like a dementor; it sucks out the joy of everything it sets it attention to. I think is song is a melancholic expression of the perils of depression, sung by a person who is so sure of his unlovability that he refuses let anyone get close to him. He fears that a glimpse into his inner self will submerge the glimpser into the same darkness, hence he repeatedly urges caution, for getting too close can become too painful.

Lyrical Analysis:

This is a song about somebody else

So don’t worry yourself, worry yourself

He starts off by reassuring himself this isn’t about himself. Depression exacerbates the tendency self-criticize. You often find yourself worrying how you screwed up over the most insignificant matters.

The devil’s right there right there in the details

And you don’t wanna hurt yourself, hurt yourself

Looking too closely

Oh, no, no, no!

Now, he turns his attention to the glimpser. He warns the glimpser that the problem might not be visible at the surface, but when you look at the details, it becomes apparent.

Put your arms around somebody else

Don’t punish yourself, punish yourself

Again, a sound reminder to find comfort in more secure arms, ones that won’t let you down. Isn’t seeking warmth in a heart that is too cold akin to punishing yourself?

Truth is like blood underneath your fingernails

And you don’t wanna hurt yourself, hurt yourself

Looking too closely

This is where the song takes on a darker undertone. If you realize the depth of his depression it would evoke a sensation similar to the one a murderer has to confront when he tries to overlook the blood under his fingernails. His action will haunt him forever.

Wiping blood from under your fingernails isn’t easy, nor would be easy to look away once you realize you’ve glimpsed into the wrong soul, one that compulsively emanates despair.

I could be wrong about somebody else

So don’t kid yourself, kid yourself

It’s you right there, right there in the mirror

And you don’t wanna hurt yourself, hurt yourself

Looking too closely

He can espouse an objective stance on anybody but himself. When it comes him, there isn’t an iota of doubt. His shortcomings stare at him in the mirror.

Like most people suffering with depression, his flaws are too glaring for him to ignore. He is so convinced of them that he feels if you look closely enough, you’ll see them too. And once you see them, your image of him will irrevocably transform. Are you sure you’ll be handle that?

The irrationality sown in his message is obvious to anyone not suffering the same fate. This song’s brilliance is that within his advice of not “looking to closely” lies the cure to his fate. The tendency to criticize every trivial action propels an anxious state of mind, hence it is wise to not “look too closely”, even at yourself.
4 Zodiac Signs Prone to Low Self-Esteem
By: Sign Says
Tags: Astrology, Signs, Zodiac Signs, Horoscopes, Self Esteem

Because astrology gives us our dominant traits, it can have an effect on the way we feel about ourselves.

Low self-esteem isn’t just about a lack of confidence — it comprises many things. It’s about how much we value ourselves, whether or not we feel loved, whether we feel secure, and how much weight we give the opinions of others and how that influences us.

Therefore, because of their astrology-given personalities, the following four zodiac signs may tend to have issues when it comes to self-esteem.

1. Cancer (June 21-July 22)

As a rule, Cancer is an extremely sensitive and emotional sign. Cancer is desperate to be wanted, which often manifests in needy and clingy behavior.

Because their self-worth is so low in this regard I’m needing to feel loved, it can lead to their hanging onto bad relationships where they are mistreated and even abused.

They will often turn a blind eye telling themselves they are lucky to have any relationship at all — even if it isn’t healthy. Because they have such a low opinion of themselves, they also can have difficulty trusting others.

2. Pisces (February 19-March 20)

Because of their lack of self-esteem, depression is a real threat and problem for Pisces.

They have a very brittle sensitivity and emotional state. Being despondent, prone to self-pity, and depressive is a strong component of their nature.

To deal with this, Pisces tends to escape whenever pressure begins to bear upon them. They manifest their low self-esteem by a tendency to blame themselves for everything.

3. Virgo (August 23-September 22)

For all their strengths and a highly analytical mind, you wouldn’t expect that Virgo would have an esteem problem — but it actually is the core trait that drives them.

The fact that they are perfectionists is a dead giveaway that they never feel they are good enough. This behavior is because they always feel they are being judged, therefore, they never can really feel secure.

This makes them prone to depression because they always feel as if they are one mistake away from their life turning to complete disaster.

4. Gemini (May 21-June 20)

One of the key factors behind why Gemini is so noncommittal and flighty comes right down to low self-esteem.

It’s nearly a given that they drop out of most things halfway through over the belief that they aren’t good enough to succeed anyway, “So why bother?”

Because they have low self-worth, they mistakenly think that others see them in the same way. They falsely believe others don’t value their ideas, opinions or contributions.
Self Esteem
By: Brianna Carter
Tags: Mental Health Awareness, Self Confidence For Women, Lifestyle, Self Esteem, Beauty

Photo by Ellen Auer on Unsplash

Have you ever walked into those old antique stores, and the first thing you notice are the reflections you see are of yourself in the thousands of mirrors around?

Well my house growing up often felt like one of those stores. My mom loved to decorate with old fashion items, and often that included these fancy mirrors that hang well in many different places throughout the house. I never thought it was weird seeing myself around each corner. It was a style of decertation that my mom loved to use, and I admired her talent in her arrangements.

Looking back at my old house now, I find myself realizing how much I thought about my appearance, especially going into high school . Each corner had a different mirror, a different lighting, and a different angle that I saw my reflection. Seeing myself everywhere in my house created a constant awareness of how I saw myself. If I was having a bad day with my skin, hair, makeup, clothes, etc., I would think about it all the time. Eventually, I was consumed with the way I was portraying myself to those around me.

As a result of this, I would change my outfit two to three times a day, fix my makeup again and again, wear different hats to cover acne or hair frizz. It became the center of my world as a high school girl. My self esteem lowered as my analysis of what I looked like became more critical than uplifting.

It took me a long time to completely come to the realization that this particular life situation was self-deprecating. It was the root to my self esteem issues, and it continued down hill for a long time before it took a turn for the better. Discovering the beginning, and figuring out a solution was no easy 3 step formula. Though understanding where it was coming from was the first and most important step to seeing myself as I wanted to.

Photo by Jakob Owens on Unsplash

There is much more than just mirrors that play into the role of self esteem issues. Advertisements, unrealistic models, movie actors, social media, magazines, you name it. You can’t go through a part of daily life without running into one of these things. It is everywhere in our society and culture, and it never ceases to bring to your attention your shortcomings compared to others.

Think of the change it would bring to the younger generations if we eliminated the amount of mirrors we have, reduced advertisements portraying unrealistic beauty, removed unattainable bodies shown in magazines, and replaced these with the truth. We each have been made wonderfully, and accepting that is the only way to move forward in life without doubting ourselves.

Conclusion:
You are already mentoring, here’s how you can do it confidently
By: Heldiney Pereira
Tags: Self Improvement, Self Confidence, Coaching, Career Advice, Mentoring

It was only when I took on the opportunity by my university to become a career mentor that my mental models of what mentoring is begun to change. The reality was that from the outset I felt insecure about the value I could add to someone’s life with the knowledge and experience I had at the time, I grew up hearing from people older than me that I had so much to learn, at 25, how could I possibly have something to teach?!

Language is powerful, and I like to define the concepts I explore, so let’s define mentor:

Mentor

Noun

An experienced and trusted adviser.

Verb

Advise or train (someone, especially a younger colleague).

How you are already mentoring

If we consider our definition earlier, starting with ‘an experienced and trusted adviser’ for most of you reading this, you have already played this role, some still regularly play this role and will continue to do so in someone’s life.

There is already someone trusting in your mindset and experience to inform the decisions that they will make in their lives — which leaves us with no choice but to conclude that you do have some experience which is good enough to share with someone. That may well be a friend, parent, colleague, relative, customer, employee, boss, you name it.
iMentor | Exceeding Expectations: The Spirit of Bloomberg Mentors
Tags: Education, Volunteering, Mentoring

iMentor’s mission is achievable because of the thousands of devoted mentors taking time from their busy schedules to spend time with students, whether assisting them with college applications or just going to see a movie together. As a former student in the iMentor program, I know that my mentor definitely had an influence on my life.

Mentors also help students by raising funds to support iMentor, and this year, mentors at Bloomberg came together to contribute an inspiring $38,000. Bloomberg’s “Dollars for Your Hours” program enables every employee volunteer to log their mentoring hours from iMentor’s monthly pair meetings. When a mentor surpasses 25 hours, Bloomberg will donate $2,500 on their behalf.

We thank all mentors at Bloomberg who continue to go above and beyond for our students and our program in NYC. Mentors at Bloomberg include Marie Konstance, who has known her mentee Lydia, a student at the Academy for Software Engineering High School (AFSE), for four years. The two have done so many things together, from yoga to celebrating Lydia’s birthday, and preparing for internship interviews. At the same school, Mark Feghali and his mentee Philip have been very active in engaging each other through workouts, volleyball games, and taking a tour of Carnegie Mellon University. Philip plans to attend Worchester Polytechnic Institute this fall, while Lydia will enroll at Borough of Manhattan Community College.

Manish Nair, who was recognized for his commitment to iMentor at the 2018 NYC Champions Benefit, has spent time going to the movies, touring the Bloomberg office, and attending college fairs with his mentee Emmanuel, an AFSE alumnus and a current student at Alfred State. Emmanuel is now part of iMentor’s Post-Secondary Program for students who have graduated high school.

Marie, Mark, and Manish are just a few of the many dedicated mentors at Bloomberg. Our work at iMentor would not be possible without the dedication and commitment of the entire mentoring team at Bloomberg.

Learn about becoming a corporate partner to iMentor in Baltimore, the Bay Area, Chicago, or New York City.
Meet our mentee — Alicius Ntando Skhosana
Tags: Show Up And Shine, Wimsa, Mentoring

Meet our mentee — Alicius Ntando Skhosana WiMSA Follow Apr 27 · 2 min read

Hi, my name is Alicius Ntando Skhosana. I work for Exxaro Belfast Coal, and I am a Metallurgical Engineering Intern.

The 3 key values that drive me are:

1. Integrity

“If you don’t stick to your values when you’re being tested, they’re not values; they’re hobbies.” — John Stewart.

I believe it is very useless to have values and no integrity; integrity is defined as the quality of being honest and having strong moral principles. One needs to be grounded and deeply rooted to your vision, mission and goals in life to achieve success.

2. Honesty

Being honest with myself in terms of life progress is a very important value. It helps me to set realistic goals and make realistic plans to achieve them. It helps me eliminate the factor of passive living. I can do proper self-introspection from time to time and see where I am lacking and make sound plans to help me become more progressive in that area.

3. Perseverance

We need to understand that everyone fails at one point or another. Sometimes, the way we get knocked down is completely out of our control. But we must respond, and we must rise to the occasion. You’ll find persistence and perseverance are ingredients that any happy and successful person put into practice.

“One needs to be grounded and deeply rooted to your vision, mission and goals in life to achieve success.”

I want to complete this mentorship program as a young woman that is more confident, skilled, ambitious and full of energy and ideas to bring forth to the mining industry. I want to make a difference wherever I go (career-wise) and prove that women can do this mining thing too.

Showing up and shining to me means being present and active. Being full of energy and always having a pioneering culture. I want to show up and shine. I want to be remembered for the great initiatives that I have brought to the table that has made a significant difference to any company or organisation. I also want to show up and shine in young upcoming girls’ careers and be a great role model.

In 2021 and throughout this programme, I am on a journey to put myself out there to show what I am capable of. I want to stretch my horizon and not limit myself to anything but rather explore all possibilities in the mining sphere.
Design Exercise: Mentor Connection
By: Sruthi Sivakumar
Tags: Mentorship, Apps, UX Design, Mentor, Mentoring

Redefined Brief:

Keeping these things in mind, I decided on the following.

To build a platform, where a mentee gets the appropriate guidance they need.

This can be achieved when

We help mentees get in touch with the right mentors. Both mentors & mentees are equally invested in this process. There is mutual respect & adherence to time. There is a strong sense of belonging to the community.

What will form the core of this product?

Trust: The mentor & the mentee needs to trust & believe in one another. The mentor & mentee should have enough information about each other to build this trust.

Quality: The mentor & mentee are both looking for the right match for each other. It is crucial for us to help mentees get in touch with mentors with relevant knowledge & experience.

Value for time: It is crucial to building adherence to time. Both mentor & mentee should understand that each individual is contributing their valuable time into this.

Closure: To build a sense of closure for actions performed. This will help mentors & mentees get concrete feedback. This can be used to bring a sense of gratification within the platform.

The tone of voice: It's a platform to build community so the communication should focus on gratefulness and togetherness. For a mentee, the tone can be casual & friendly and for a mentor, it should be more professional & formal.

Notifications: Timely nudges & notifications to ensure mentors & mentees do not miss out on their updates and help maintain adherence to time.

Designing the flow:

While talking to the interviewees, it was clear that they were looking for people who they can connect with from anywhere across the globe, build a bond, get on a call with them & start discussing. They were not looking for a platform where they can learn new software or complete a course. There are products available today that provide them with a good amount of training material.

They were looking for a platform where they can have one on ones & open discussions to get instant & more practical feedback. This platform could be a mobile app as they could access it at their comfortable space & time.
Meet our mentee: Koketso Busang
By: Briony Liber
Tags: Show Up And Shine, Wimsa, Mentoring

Hi, my name is Koketso Busang. I work for Tshiamo Resources and I’m a Metallurgist-Process Manager.

I am driven by the possibility of a better self and future. I believe that through commitment, intentional, continuous, personal and professional improvement, I will be able to have a lasting impact in the mining industry and on young people that are in and around the fraternity.

In my few years of being in the South African mining space, I have developed an interest in mining community social empowerment. This started when I was invited to give a motivational talk at one of the primary schools in Marikana in the North West province.

From the observations of the facial expressions of the parents, I could see an unbelievable rise in hope for their children and feelings of helplessness for themselves. This touched me.

I then decided to research the lifestyle and general morale of the community. I found that low levels of literacy, excessive alcohol abuse and shortage of basic human needs such as water and sanitation were some of the main factors derailing the progress of that community. Sadly, I found this to be the norm across most mining townships in the country. My interest then got ignited. I decided that I would do more. That I would in the foreseeable future aid in creating tools for such community’s youth and young adults to alter the course of their lives. To believe in their abilities. After all, an empowered community will result in an empowered and reliable workforce. I strongly believe that my continued efforts will contribute positively to the sustainability of the industry.

“After all, an empowered community will result in an empowered and reliable workforce”.

From the mentorship program, I look forward to learning more about myself, how best I can use my personal power to benefit my career and reach my goals. I look forward to making industry friends and connections. To learn from those who have and are walking the path. Most excitingly, I look forward to learning and adopting practical skills that I can use to help others to realise their potential, optimize their resources and encourage them to be relentless in the pursuit of their goals.

For me, to #showupandshine means coming out, being vulnerable and using what uniquely makes me, to better my surroundings and those around me.

In 2021 and through this program, I am on a journey to becoming a more self-aware, self-loving, confident, and a more serving professional. I am on a journey to becoming the woman of my dreams.
Meet our mentee — Zanele Jordaan. My name is Zanele Jordaan, I am a…
Tags: Show Up And Shine, Wimsa, Mentoring

My name is Zanele Jordaan, I am a Geologist at Latona Consulting.

The three key values that drive me are:

Respect — treat others like I would like to be treated, thus maintaining good relationships and peace.

— treat others like I would like to be treated, thus maintaining good relationships and peace. Commitment and Consistency — wake up every day to enjoy the process knowing you focus on the goal, persistence will get me what I want, but consistency will help me keep it. I am not perfect, but I remain committed to my purpose so I can help others.

— wake up every day to enjoy the process knowing you focus on the goal, persistence will get me what I want, but consistency will help me keep it. I am not perfect, but I remain committed to my purpose so I can help others. Open-mindedness — be willing and eager to learn new things and be open to meeting new people, knowing that while others may know more than me, they still can learn from me too. This value helps when you have solved conflict or analysing special data in my field; what you see is not always what is underground.

I applied to be part of this mentorship program because I saw the need to be part of a network and organisation for women in mining, contributing to my career growth and knowing the challenges we experience in this industry. It is helpful to reach out to women who have more experience to learn from and tackling the ups and downs in the industry by learning from their mistakes and being motivated by their achievements. I would like to have new opportunities that will not limit me in one department, which I can also teach other women when the time comes.

To #showupandshine means being intentional about your daily activities to achieve your bigger goals. Every day is a day to learn, grow and change starts with me if I want to make an impact that will benefit others and the world. I know I am destined for greatness and to shine my light in the right way; every day is a day of new possibilities and improvement.

It is helpful to reach out to women who have more experience to learn from and tackling the ups and downs in the industry by learning from their mistakes and motivated by their achievements.

I am on a journey to becoming a confident professional in my career and life, intentional about taking my career as a business, building new networks, relationships and friendships for the greater good of other upcoming women in mining.
Meet our mentee — Ngoakoana Isabel Ramashapa
Tags: Show Up And Shine, Wimsa, Mentoring

Meet our mentee — Ngoakoana Isabel Ramashapa WiMSA Follow Sep 9 · 2 min read

My name is Ngoakoana Isabel Ramashapa. I work for Kangra Coal as a Safety Officer.

The three key values that drive my success are:

1. Self-awareness: This value assists me to know why I react to certain situations in the manner that I do and is a critical tool to help me reach higher levels of job satisfaction, become a better individual, improve relationships with colleagues, and manage my emotions better.

2. Persistence and growth: I can never separate the two as persistence results in growth. Life is limitless, goals are achievable, and obstacles always makes a way in. I have learnt that some of these obstacles are there for preparation and will involve a level of shedding to allow me to start again. I believe in order to develop myself, be it professionally or personally; failure will sometimes cross your path but what is more important is how to get up and soldier on.

3. Honesty: One of the things that I am consistently learning in my journey is to live in complete truth and be vulnerable enough to be content. This enables a sense of living reality than a fantasy. This value is essential to me as it helps me be more accountable to the goals and plans I set out for myself.

The most significant thing I hope to get out of this mentoring programme by the end of 2021 is to establish a solid foundation for my career in the mining space and expand my network to empower and promote my professional and personal development perspective.

I believe in order to develop myself, be it professionally or personally; failure will sometimes cross your path but what is more important is how to get up and soldier on.

What #ShowupandShine means to me is: being enthusiastic, proactive and, leaving a mark of greatness on initiatives and every space I occupy and, most importantly, remaining authentic.

I am at a stage in my career as an individual where I’m starting to think — where do I want to go from here, therefore having me seek a path to ensure my career goals are successfully achieved. Henceforth in 2021 and through this programme, I am on a journey to be the best version of myself and a phenomenal woman who will have no limits to accomplish her goals in the mining industry.
Flutter responsive design: Size doesn’t (always) matter
By: David Gonzalez
Tags: Development, Flutter, Mobile, Responsive Design, Flutter Widget

Designing an application may be a real struggle when you have to made it to smartphones, tablets and web. Commonly, you may define general layout by retrieving the device screen size through the MediaQueryData instance.

@override

Widget build(BuildContext context) {

final screenWidth = MediaQuery.of(context).size.width;

if (screenWidth < 600.0) {

return _buildPhoneLayout();

}

else if (screenWidth < 1000.0) {

return _buildTabletLayout();

}

else {

return _buildDesktopLayout();

}

}

This example above a simple but pragmatic way to lay out your application page. The only thing I don’t like so much is that you have to define limits for device detection (devices under 600.0 logical pixels width are considered as phones in this example). Not so straightforward, as I’m not able to find a concrete answer in Flutter documentation…

Using this method for every widgets you create can be a waste of time, source of errors in UI and of course pain to develop. Do you really want to scatter responsive design logic into your widgets? How do you ensure code homogeneity ?

Me, after having developed my first responsive layout.

A good approach is to make widgets responsive to its parent size and constraints, in a transparent way (I mean without developing any specific code handling parent allowed size, screen size, et cetera…).

The Flutter SDK has an answer for you, in the form of a widget: the OverflowBar !

This widget will display its children horizontally, as Row widget does, if it has enough space. If not, it display children vertically, as a Column widget. Added to that, some other input parameters allows you to set a spacing between every child.
Adobe XD to Flutter plugin
By: David Gonzalez
Tags: Flutter, Design, UI Design, Adobe Xd, Flutter Widget

Adobe XD and Flutter similarities

Without any knowledge about how the plugin has been developed, we can imagine relation between the design world of Adobe XD and the development world provided by Flutter.

Adobe XD Text → Flutter Text

This relation between those two features can’t be unseen. In Flutter, Text widget let you define what will be written, and its TextStyle property defines how (color, style, fontFamily, fontSize, fontWeight, and so on…). Only Size and position properties from Adobe XD tool are missing, but we can imagine the usage of SizedBox or ConstrainedBox for sizing texts, and the usage of Stack widget to set a specific position. To rotate, a Transform widget may do the trick.

Text parameters are similar in both Flutter and Adobe XD

At this stage of my study, I don’t know if the plugin transcribes the size and position properties, as it can makes the design not responsive to other screen dimensions.

Adobe XD Rectangle tool → Flutter Container

This is very straightforward, as the Rectangle tool define a position, a size, a color, a corners and a border. On Flutter size, it’s represented by the Container widget, defining size and a decoration, describing the widget’s color, corners, and border. What about the position property ? Hard to tell, because as developer we are encouraged to use layout widgets (center, align, row, column, …) instead of the Stack widget (that allow its children to define a concrete position).

Adobe XD group → Flutter Stack

We can imagine that the simplest way to transcribe the group feature in Flutter can be done using the tack widget.

Flutter reaction to Adobe XD group feature.

I have the feeling that everything will be grouped in Stacks, as I don’t know how the plugin can make the relation between absolute layout (from Adobe XD) and relative layout (from Flutter).

Adobe XD line and pen → Flutter CustomPaint

I’m not sure, but It’s pretty much the same things. In Flutter, using a CustomPaint let you have access to the Canvas instance, on which you can draw lines, oval, circle, rectangle, and path. Basic shapes in other terms. Added to that developer can define how to draw shapes.

Later, I observed that the plugin has a dependency to flutter_svg library, suggesting that Adobe XD paths produced by the pen tool are converted to SVG data.

Adobe XD Component → Flutter Stateless Widget ?

In Adobe XD, you can define a component, kind of template you can reuse multiple times in your design. For example, you can define a list cell component, and create multiple instances of it to design a list. I also use it for creating my Icons.

In Flutter, this feature may refers to a developer specific widget, as a class inheriting from StatelessWidget or StatefulWidget.

I’m not sure how interactions are exported in Flutter…

At this moment, I don’t know how interactions have been coded. But I imagine each component transcribed to a single file, with a single StatelessWidget or StatefulWidget in it.
Bloc State Management with Easy Approach
By: Maaz Aftab
Tags: Flutter, Bloc Pattern, Bloc, State Management, Flutter Widget

In Flutter there are different options for managing states in which one is Bloc Pattern (Business Logic Component) that is one of the most popular state management techniques and recommended by Google as well.

Bloc pattern, as name says, provides you a way to write all the business logic of Flutter application in a separate component called Business Logic Component. Customarily, for every screen of Flutter application, there is one Bloc.

Bloc A for Screen A

Before going to implement this Bloc pattern state management, let’s first understand the core of Bloc, and what is inside the Bloc component.

Bloc Input and Output

Bloc component takes event as input, analyse it inside Bloc, and based on business logic it produces the corresponding state as output.

Think Bloc as a vending machine where you put the money and detail of product you want as input, and vending machine after analyzing and applying logic the business logic, like verifying whether the money is enough for the required item or not, it gives you the item you want as output.

Now, to understand what really Event and State is in Flutter world and to understand the Bloc Component more comprehensively, say we have a very simple Flutter application in which there is just one button, download image button, on which when the user would tap the application would download the image and show on the screen.
Flutter File Structure
By: Tadas Petra
Tags: Flutter, File Structure, Coding, Flutter Widget, Folder Structure

Keeping your code organized is absolutely essential for bigger projects. Even for smaller projects, I believe it’s good to keep things organized in case you take a long break from the project.

The file structure that I will be going over is the structure that I use for most of my apps. Obviously, depending on the project this might need to be amended.

Root Directory of App

The root directory for me contains three main folders that aren’t there normally: Assets, Fonts, and Functions. The Fonts folder is not necessary if you plan to use the default font (Roboto).

Assets folder should definitely be used for almost all applications. These should include things like logos, custom icons, and any static images used throughout the app. Once they are in here, link them to the app in the pubspec.yaml.

Functions folder I’ve personally only used for Firebase Cloud Functions. If you’re using a different database, there might need to be a different set up. But since I mostly work with Firebase all the Cloud functions are stored here, so they can be separated from the actual app code.

Lib Directory

In the lib where the meat of the code goes it is split up with the following folders: models, screens, services, utils, and widgets.

Models are used for collections of data that are used across the app. If you’ve worked with other languages you can think of them as global structs. Some examples of what I’ve used is for users data, post information, etc.

Screens are just as it sounds. Every screen of the app should have it’s own screen folder. If its a simple screen, you might just need one file inside that folder. If it’s a more complex screen I also like to include a local_widgets folder to be used for bigger widgets to keep the code clean.

Since each screen will have it’s own local widgets folder, if there is a widget that is used throughout the app, then I will place it in the “widgets” folder. I’m a strong believer of never rewriting code. So if you have multiple screens using the same code, I would recommend putting it into the “widgets” folder.

And just like I don’t like rewriting any UI code (widgets), I don’t like rewriting any functionality code either. That’s why any functionality that is used throughout the app is stored in my “utils” folder. Some examples of things I’ve placed in here is form validation, timeSince function, image capture logic, etc.

And lastly, the final folder is called services. This folder is for anything interfacing outside of the application. Mainly I’ve used it for Firebase. However, if you use any APIs, I would place them in here as well.

With this file structure I have been able to keep my code clean, maintainable, and easy to use. Feel free to try it out, and adjust it to make it fit your coding style and needs, and let me know about any different approaches that you have.

Thanks for reading!

Follow me on Twitter: @tadaspetra
Credit Card Slider— Flutter
Tags: Flutter, Android, Android App Development, Flutter Widget, iOS

Welcome to this tutorial for creating an awesome credit card slider.

UPDATE:

Now available as a flutter package at-

You can connect with me on Instagram and stay tuned

Let’s start by seeing our end goal

Based on

Credits to Gleb Kuznetsov for this awesome design.

Breaking down

Let’s break down the problem

Sliding cards

Rotate card

Combining sliding card and rotating cards

Let's solve problem 1 first

Problem 1: Sliding cards

Can you guess the widget?

Surprise! Surprise!

Now, PageView can be created using 3 methods:

PageView() PageView.builder() PageView.custom()

We will use, PageView.builder() which:

Creates a scrollable list that works page by page using widgets that are created on demand.

Use it to create sliding cards:

Check the output:

What did we do?

Created a PageView using PageView.builder()

Created a PageController and passed it to PageView, which lets you manipulate which page is visible in a PageView.

Initialized the viewportFraction property which is the fraction of the viewport that each page should occupy.

Initialized the scrollDirection property which controls the axis along which the page view scrolls.

Initialized the number of items

Initialized a builder to create Cards

Let's solve problem 2 now

Problem 2: Rotate Card

Try rotating the card

_builder(int index) {

return Transform(

transform: Matrix4.identity()

..setEntry(3, 2, 0.001)

..rotateX(1),

alignment: Alignment.center,

child: Card(),

);

}

Check the output now

What are we using?

We are using the perspective effect in flutter to get this effect.

Some resources on perspective :

In simple words, it is used to give 3D effect.

Lets try changing the value of rotateX():

_builder(int index) {

return Transform(

transform: Matrix4.identity()

..setEntry(3, 2, 0.001)

..rotateX(pi / 2),

alignment: Alignment.center,

child: Card(),

);

}

Check the output now:

What just happened? :(

Calm down!!

Cards are still there, but have been rotated 90 degrees.

Let’s solve problem 3 now

Problem 3: Combining sliding card and rotating cards

As you can see now we can combine the above gathered knowledge and get the effect we want.

Check the output now:

What did we do?

Changed the _builder() method

Added the AnimatedBuilder, to combine both sliding and rotation

Attached the pageController to AnimatedBuilder, so it can listen for updates

Used the _builder() method to generate value and applied it to the widget to be built

Returned the animated widget

Additional, updating the card UI

Let’s check the UI now:

Check the full project here.

Thank you for staying till the end

(Did you know that you can clap up to 50 times per article? Help me out by hitting the clap button a bunch of times if this has been interesting or helpful to you. Thanks very much!)

More flutter spinner blogs

I will be posting more about flutter, so stay tuned :)

https://www.twitter.com/FlutterComm
Bloc Pattern In Flutter || Part 3💙
By: Abhishek Doshi
Tags: Flutter, Flutter Ui, Flutter Web, Flutter App Development, Flutter Widget

We won’t be going deep into how BLoC works as I have already written 2 articles for the same purpose. The main aim of this article is to focus on the changes that are available in the new version.

Initially, in our bloc class, we had mapEventToState where we had to add lots of if-else-if conditions based on our events. Example of same:

@override

Stream<CounterState> mapEventToState(CounterEvent event) async* {

if (event is InitialCounterEvent) {

yield CounterDataState(counter: 0);

} else if (event is IncrementCounterEvent) {

yield CounterDataState(counter: event.counter + 1);

} else if (event is DecrementCounterEvent) {

yield CounterDataState(counter: (event.counter - 1).toUnsigned(event.counter.bitLength));

} else if (event is ResetCounterEvent) {

yield CounterDataState(counter: 0);

}

} Stream mapEventToState(CounterEvent event) async* {if (event is InitialCounterEvent) {yield CounterDataState(counter: 0);} else if (event is IncrementCounterEvent) {yield CounterDataState(counter: event.counter + 1);} else if (event is DecrementCounterEvent) {yield CounterDataState(counter: (event.counter - 1).toUnsigned(event.counter.bitLength));} else if (event is ResetCounterEvent) {yield CounterDataState(counter: 0);

However, in the newer version, the constructor is enough to do most of our work! A new method named on is being introduced which creates streams for each event and then emits the state (instead of yielding). It registers an event handler for an event of type E . There should only ever be one event handler per event type E . The on<Event> method has the following function definition:

void on<E extends CounterEvent>(FutureOr<void> Function(E, Emitter<CounterState>) handler, {Stream<CounterEvent> Function(Stream<CounterEvent>, Stream<CounterEvent> Function(CounterEvent))? transformer})
33 Token, 96 hours — MEGA listing event at BitBns!
Tags: Blockchain, Crypto, Cryptocurrency, Listings

33 Token, 96 hours — MEGA listing event at BitBns! Bitbns Follow May 14 · 5 min read

Mega listing event takes place at BitBns for the first time in history. 96 hrs, 33 tokens! Grand, right? Fasten your seatbelts then, it is taking off soon!

Watch out for a new announcement every few hours so that nothing gets missed!

We are starting this event by listing:

1. FILECOIN at 2 PM IST, 14th May

2. PANCAKE at 2 PM IST, 14th May

3. TEZOS at 2 PM IST, 14th May

4. Elrond at 2 PM IST, 14th May

5. Safemoon at 7 PM IST, 14th May

6. Shiba Inu at 7 PM IST, 14th May

7. THORChain at 2:45 PM IST, 15th May

8. Near at 2:45 PM IST, 15th May

9. 1Inch at 2:45 PM IST, 15th May

10. Travala.com at 8 PM IST, 15th May

11. Cosmos at 8 PM IST, 15th May

12. Band Protocol at 8 PM IST, 15th May

13. Trust Wallet Token at 8 PM IST, 15th May

14. Alpha Finance at 1 PM IST, 16th May

15. Zcash at 1 PM IST, 16th May

16. Chiliz at 1 PM IST, 16th May

17. WINkLink at 1 PM IST, 16th May

18. Solana at 7 PM IST, 16th May

19. Maker at 7 PM IST, 16th May

20. FTX Token at 7 PM IST, 16th May

21. The Sandbox at 2 PM IST, 17th May

22. Curve DAO Token at 2 PM IST, 17th May

23. Decentraland at 2 PM IST, 17th May

24. Binance USD at 2 PM IST, 17th May

25. Algorand at 8 PM IST, 17th May

26. Hedera Hashgraph at 8 PM IST, 17th May

27. BakerySwap at 8 PM IST, 17th May

28. Theta Network Token at 2 PM IST, 18th May

29. Terra at 2 PM IST, 18th May

30. Decred at 2 PM IST, 18th May

UPDATE:

31. USD Coin at 6 PM IST, 18th May

32. Enjin Coin at 6 PM IST, 18th May

33. The Graph at 6 PM IST, 18th May

More tokens will get updated below soon!

The ongoing speculations and buzz around Bitcoin, Dogecoin, Ethereum and many other exponentially growing altcoins is paving way for a better community belief for cryptocurrency, investing and trading!

Disclaimer:

1. Always do proper research and analysis before investing in new cryptocurrencies.

2. Crypto trading is subject to high market risk. Always do risk management properly.

3. New tokens usually have higher volatility and risk than other tokens. Always trade safely.

Onwards and Upwards,

Team BitBns
Uniqly.io Uniswap Listing Giveaway.
Tags: Nft, Uniswap, Listing, Uniqly, Giveaway

Hello Uniqly.io fans and welcome to the giveaway details.

First of all, we want to thank you for your support in our last Public Sale round B $980,000 which was sold out in just 4 minutes. Thank you very much for your support!

Following the success of that event, we would be listing on Uniswap 15th of April at 5 PM CET. To celebrate the listing, we will be running a giveaway, where the winners will be given very special prizes!

Giveaway Requirements

To participate in the giveaway, you must do the following:

Follow Uniqly.io on Twitter

Retweet the post and tag 3 friends.

And if you want to increase your chances of winning then:

Change your profile picture on Twitter to the Uniqly.io logo — https://we.tl/t-MzQdmlTmqw

What’s to win in the giveaway

1x NFT T-SHIRT — 1 lucky winner of the giveaway will win an NFT token, and this NFT token can be redeemed for one T-shirt in the real world.

5x 200$ — 5 people that follow Uniqly on Twitter, retweet the post and change their profile picture on Twitter to the Uniqly.io logo will win $200 each.

10x 100$ — 10 people that follow and retweet the post will win $100 each.

When does the giveaway start?

The giveaway begins on the 6th of April at 7:00 PM.

When does the giveaway end?

The giveaway ends exactly one day after the $UNIQ token is live on Uniswap, which is the 16th of April at 5 PM CET.

Once again, we say a big “thank you” for your support in the Public sale, and we wish you good luck in the giveaway!

Uniqly.io Is a new and promising project that is taking the NTF space by storm! If you would like to know the ins and out of Uniqly check out this video. We will explain our plans for the future, how Uniqly is going to bring value to the market and what our features will be.

Don’t miss the chance!

About Uniqly.io

Uniqly.io — the first marketplace and escrow that allows you to create and trade NFT tokens with the possibility of materializing them in the real world.

Uniqly.io is a Marketplace and Escrow.

Marketplace — We allow our users to trade NFT tokens backed by real-world items. Anyone will be able to create their own unique landing page and list their products created in our generator, or deposited via escrow.

Escrow — We have created a solution that allows you to easily trade all physical products, even those that were not created in our Generator, including clothing, works of art, collectibles, and more.

Materialize and stake NFT tokens.

Materialize NFT — Uniqly.io brings you the possibility to materialize your favorite NFT tokens from outside of our ecosystem, such as Cryptopunks, Hashmasks, SuperRare, and many, many more!

Stake NFT — Some limited NFT collections will be available in exchange for freezing UNIQ tokens for an appropriate period of time, in cooperation with other projects we will create additional mining pools.

Learn More About Uniqly.io

🌐 Website📍 Telegram📍 Twitter📍 Reddit

📍 Facebook📍 Instagram📍 LinkedIn📍 Youtube
COTI Launches a $COTI BEP20 Token Over Binance Smart Chain and Lists on PancakeSwap
Tags: Blockchain, Cryptocurrency, Listings, Technology

As of today, the $COTI-$BNB pair is available and can be traded on PancakeSwap, the largest Binance network decentralized exchange.

COTI BEP20 address:

0xadbaf88b39d37dc68775ed1541f1bf83a5a45feb

We have listed a BEP20 version of $COTI, which you can get using the withdraw and deposit function on Binance. The new BEP20 token opens up potential new use cases for COTI and allows further listings on DEXs.

Binance Smart Chain (BSC) is a parallel chain to Binance Chain with the goal of providing a high-throughput blockchain that enables DeFi applications to thrive. COTI was one of the first companies to develop a BEP2 token on top of the Binance Chain and we are excited to develop the new BEP20 version over Binance Smart Chain, one of the fastest growing chains in the ecosystem. We have been following the growth of BSC and PancakeSwap, and have been in conversations with Binance about listing a BEP20 token and the various possibilities that comes with the generation of the token, including reduced gas fees, complete interoperability with Ethereum, Defi apps, wallet support and DEXs.

Swap is already available through Binance’s deposit/withdraw function:

When you swap between chains on Binance, the corresponding asset is pegged and locked on Binance, so the new $COTI BEP20 token does not affect COTI’s total supply.

Please follow the COTI channels for further updates on our plans for the $COTI BEP20 token.

We’d like to thank the Binance Smart Chain team for their support in the process.
$LSS Token To Be Listed on Gate.io and KuCoin!
Tags: Exchang, Ido, Crypto, Listing, Defi

We’re bubbling with excitement that the $LSS token is continuing to make great strides in the crypto market — with so much going on, the potential for our project keeps on growing!

Today, we have some more good news to throw your way! Drum roll please….

We’re excited to officially announce that the $LSS token will soon be listed on two major exchanges, Gate.io and KuCoin! These exchanges are powerhouses in the crypto market, containing some of the largest trading volume and token pairs available on the market.

We see this as an amazing opportunity to broaden the $LSS token’s market exposure and bring in new users for mass adoption. The opportunities are endless, and we couldn’t be more grateful.

Lossless is now getting even closer to becoming a household name in DeFi and crypto.

Token Listing Details

The $LSS token will be ready for trading on both Gate.io and KuCoin — details are below regarding listing timing and trading pairs for each exchange:

Gate.io: Listing to occur on 06/03 at 11:00 UTC — the LSS/USDT trading pair will be supported

Listing to occur on 06/03 at 11:00 UTC — the LSS/USDT trading pair will be supported KuCoin: Listing to occur on 06/03 at 11:00 UTC — the LSS/USDT trading pair will be supported

The listing price for $LSS will be 0.077 USD, with an initial market cap of $847,000.

2 minutes after $LSS is listed on Gate and KuCoin, we will list the token on the decentralized exchanges:

Uniswap: LSS/ETH trading pair will be supported.

LSS/ETH trading pair will be supported. Pancakeswap*: LSS/BUSD trading pair will be supported.

*ETH<>Binance Smart Chain Bridge is done through https://chainport.io/

For those of you who have already claimed your $LSS tokens, you’ll be able to deposit them into your Gate.io or KuCoin exchange wallet before the listing officially goes live. So when the time comes to start trading, you’ll be ready!

And for everyone who didn’t get an opportunity to acquire $LSS from the public sales, it’s not too late! This will be your chance to get in at what is still a very early stage for our project.

We hope everyone is just as excited as we are for what’s to come, so stay tuned for more!

About Lossless

Lossless is the world’s first DeFi hack mitigation tool for token creators. Through various methods of fraud identification, our protocol halts counterfeit transactions and automatically reverses any stolen tokens back to the original owner.

With our stake-based reward system, the community is encouraged to actively continue to explore ways to detect hackers and fake transactions. Our sleek and fluid dashboard interface also allows users to view transactions at a birds eye view.

To learn more about our project and join the community, follow us on our website and social media platforms below: