fabiochiu/medium-articles huggingface dataset:
Indifference.
Tags: Self Improvement, God, Emotions, Psychology, Evil

The four words linked with its meaning are lack of interest, concern, sympathy and mediocrity. This makes it the highest form of thanklessness and ungratefulness. It’s a silent war you are waging on your Creator.

Indifference can be a tool for those who want to use it as one. But, some feel the indifference inside and that’s partly being dead.

Humans were not created to be indifferent. They were made with an array of emotions to be used at the right time. Keyword: right time. There is no point in defending the true state of your heart if you did not react at the right opportunity. There are no second chances in life. No one is indifferent towards everything at all times, yet we all are indifferent to some things in our lives. Maintaining that balance is where we fall short.

Photo by Pro Church Media on Unsplash

Indifference stems from arrogance, self-righteousness and a blinding ego that you are unable to control. If you are told you are expected to react a certain way then your system will mould itself to produce that reaction. But, when you are caught off-guard is when you show your true colours. And, if in that moment you showed your indifference then the spark of faith in your heart is non-existent.

God doesn’t reside in indifference, evil does.

There is not a bigger crime than being indifferent towards the propagators of evil in this world. No feeling is real if it is not coming out at the right time. There is a big difference between not approving of something as an opinion and truly feeling the damage done in your bones. If your nerves aren’t ticking when you are being shown different faces of all that is wrong in this world, then something is wrong with you. The forces of evil reside within you too. If this demarcation is not very strong in your thoughts, it will reflect in the extremely arrogant choice of your words. Such a person cannot be sensitive towards themselves, let alone anyone else. It is a severe lack of realization towards all that is ruining the social fabric of our society. By being indifferent you are adding to the chaos. You are causing undue, unjust, unexplainable, undeniable, extreme levels of pain and hurt to those who are making an effort in restoring the balance. Your conceited indifference causes more damage than your puny little mind can comprehend.

Indifference is where all the room for evil starts and that is all the room that evil needs.
Components of Hadoop
By: Ishita Agnihotri
Tags: Big Data

Here is my second blog of Hadoop-The Cute Elephant series: Components of Hadoop

NameNode : It has complete information of data available in the cluster. There is always one NameNode per Hadoop cluster. Main task is to get the data stored in the cluster with the help of DataNode. When new data gets entered the NameNode divides it into smaller parts and then it identifies the DataNode which can actually store this data. When the required data is looked for then the NameNode tells it actual location to the application.

DataNode : This is the actual place where data is stored. They communicate the data to the application when requested by NameNode. They periodically give message to NameNode about the data stored in them.

Once the data is located using NameNode it can be loaded further by DataNode without the interference of NameNode and that makes HDFS efficient.

Job Tracker : It decides what tasks should be given to which worker node and this process is called Task Scheduling. It is also responsible for monitoring the health of all worker nodes.

Task Tracker : It is slave process. Each worker node can have single process running under them. Similar to DataNode, each Task Tracker reports its health and task status to Job Tracker through a process called as Heartbeat. If the heartbeat is not acknowledged after a specific number of time then the Task Tracker is declared dead.

There is absolutely NO role of Job Tracker in HDFS! In latest versions of Hadoop the Job Tracker and Task Tracker based map-reduce framework has been replaced by a more generic framework called YARN.

Thank you for reading! Please give a clap if you like it.

Keep watching this and follow us for more tech articles or you can reach out to me for any doubt and suggestions and the next blog in series will be published soon.
Forget Knowing Yourself — Uncertainty Leads to Positive Change
By: Max Phillips
Tags: Self-awareness, Self Improvement, Mindfulness, This Happened To Me, Identity

1. Not knowing yourself opens you up to change.

When I graduated from university, I still had no idea what I wanted to do with my life. I meandered through the summer, eventually taking a retail job to have some money.

Frankly, the uncertainty was killing me. I felt like I was in limbo. I wanted to go into marketing, but that was a lie I told myself to keep a slither of hope alive.

However, because I didn’t know what I wanted, I was open to suggestions. I wanted to change. So, my dad suggested writing online. He put forward various tools, and with the encouragement of my girlfriend, I started blogging.

Now, I know myself more. I have a clear plan, and the sense of clarity surrounding my decisions is a welcome one. It’s more than that, however.

When people asked me what I do, I would shy away from the answer, afraid of what they might think. Now I am confident in my choice; I feel assured in private and public.

Every day, I sit down at my desk and get to work. While I know myself more, I am still open to change. My career path isn’t predetermined, so who knows what opportunities might arise in the future.

Yes, knowing yourself and what you want does feel nice, but I would never have gotten here without the uncertainty I felt.

If you’re floating around in a seemingly perpetual limbo like I was, don’t tie yourself down to a personality you think you want. By doing that, you’re pulling down a mask you can still see through. It is pointless.

Accept you don’t know what you want and roll with it. Open yourself to new possibilities. Just because the people around you are doing a specific thing for someone your age doesn’t mean you need to join them.
Coding Their Dreams
By: Sean Phelps
Tags: Design, Landing Pages, Web, UX, User Experience

Being tasked with a visual design sprint isn’t always the easiest thing, especially for a first-timer like myself. I had to tap into my ancestor’s knowledge (I come from a line of graphic designers), and quite a bit of secondary research to come up with a landing page that was both appealing, and made sense from a design standpoint.

A Tiny Bit of Background

The client this time is a non-profit called Code Your Dreams, a social program based in Chicago that helps at-risk youth get involved with coding to help brighten their future. I was tasked with redesigning their landing page in four days.

With almost no user research being conducted, I relied on psychological “tips and tricks” to make a more appealing landing page. Taking the psychology around color, contrast, organization, design, a little bit of competitive analysis, and connotations of certain words were the tools of choice in design.

Color

Coming from someone that loves psychology and the way the human brain works, I decided to start with color. Different colors and different palettes influence the way that people feel. For example:
Is Fortnite Ruling Our Lives? | The Fortnite Pelage
By: Caleb Torres
Tags: Videogames, Gaming, Mental Health, Safety, Funny

How Fortnite Is Taking Over Our Lives

It is was estimated in 2018 that 25 million people play Fortnite worldwide. Players spend about 50 hours playing Fortnite in a week! That’s two days out of seven used playing Fortnite! Kids are becoming less social and when they are, Almost all they talk about is Fortnite. Kids are beginning to play in school and have gotten expelled.

Although the game is free, it still offers v-bucks which is digital money that you can buy gear with. To get v-bucks you must buy them with real money.

The total average amount of money people spend on v-bucks every month is 1 million US dollars. A large majority of the players are kids. Kids easily become obsessed with this game because they want to level up and win. When they win, people will be amazed and think greatly of them. Also eliminating other players can bring pleasure to them. If their player is eliminated these kids can easily get enraged. This enragement leads to massive destruction from breaking up a controller to banging up a tv. “I was so close to winning!” they may think and begin to play again and again trying to win.
To Stroke the Cheshire Cat
By: Ioana Andrei
Tags: Poetry On Medium, Mental Health, Self, Anxiety, Poetry

To Stroke the Cheshire Cat

A poem

Photo by Tim Hüfner on Unsplash

Like a toddler that doesn’t know what words to use

when they yell for recognition

Like a storm in a teacup

but like,

an actual storm in an actual teacup

what is the teacup doing outside during monsoon season anyway?

Like the alphabet running over and over

andoverandoverandover again

hoping, maybe this time

it’ll form a real word

Like the clouds parting on a really sunny day

wait — there were clouds?

how…?

Like cheap beer when you’re underaged

awkward

funny tasting

but you either down it or you drown it

Like life passing you by

one minute it’s there

the other it’s not,

Anxiety wears many suits

Depending on the interview

Laughs on cue

Nods intently

Does its best

(as perfectionists do)

And flips out when it’s not wanted

It doesn’t understand

WHY IT IS NOT WANTED

WHY

Like a period

At the end of a sentence

That is actually a question,

It stares at you blankly

Not expecting an answer

But demanding a response.
Figuring out what I like to do as a UX Designer
By: Sathish Kumar
Tags: Product Design, UX, Career, Design, Webflow

Figuring out what I like to do as a UX Designer Sathish Kumar Follow Dec 26 · 3 min read

Photo by Christina Morillo from Pexels

Designing a website has been my new found love being a UX Designer for the last two years. The last two years I have spent my time working on multiple projects including designing mobile apps, web based products and websites.

Being a UX Designer working in a small design agency you don’t get to choose what kind of work you will do that too in the initial stages of your design career. You end up doing whatever that has been given to you. It is anyway a good thing to have a hand different kind of design challenges until you figure out which one you really like doing. Though I had interest in doing all the above mentioned I din’t quite feel good since I wasn’t building any of the final outputs that the users would use.

I always start up with some project, do the role of a designer and hand over the designs to developers to get things built as per the design and then It goes to the users that is always in a state that doesn’t look like the way how it was designed.

Be it a website or an app or a digital product you need to have some knowledge in programming / coding in order to develop your own designs so it takes final shape as how you wanted it to be.

Learning to code was so difficult for me as I did try once during the 2020 COVID lock down as I neither din’t major in any computer related degree nor took computer science group in my high school. Giving up learning to code I was looking for alternatives that could fulfill my desire to build on my own designs into a final output that goes to the users.

After several days of exploration I found this amazing tool which helps you to build website on your own without any coding needed. But you might ask ‘There are a lot of website builders out there, what’s new in this?’. Yes there are a lot of website builders like Wix, Wordpress, etc but having tried those I still dint feel like they could be designer friendly and help you bring out all your creative ideas into reality.

So this amazing too is called ‘Webflow’ an American based start up product which allows designers to create stunning websites without code.

Finally I found something that I could use to convert my designs & hand over them to clients without needing the help of a developer. You don’t need to know coding to build a website using Webflow but this tool might take some time to learn but you will eventually love the process.

I have built some websites while I was learning to use the tool and I am still learning on what other things that this tool could do. But at the end it eventually helped me fulfil my thirst of converting my designs to a usable end product without the help of developers.

Being a Designer in India, using Webflow could be a little challenging due to its high pricing compared to its Indian peers. Will talk more on if Webflow is the right tool for Indian designers on my upcoming posts.
Automate Everything! Never Touch Your Newsletter Again
By: Ryan Gleason
Tags: Programming, Automation, JavaScript, Newsletter, AWS

Automate Everything! Never Touch Your Newsletter Again

Send out your recent Medium blog posts dynamically and automatically using AWS Lambda, SES, and EventBridge

Photo by Harley-Davidson on Unsplash

Have you ever thought about creating a newsletter for all the great content you write but don’t have the time to put one together each week? Boy, do I have a surprise for you!

I will show you how you can send an automated email every week containing your most recent blog posts from Medium. As long as you are creating new content, your email will always be different!

If you are not a Medium writer, no worries, about 99% of this article will still apply to you; you will just pull your content from a different source.

The point of this tutorial is to understand how we can use a combination of AWS Lambda, Amazon Simple Email Service, and Amazon EventBridge to send out emails on a schedule, with dynamically generated content. Here is an architecture diagram to give you a visual:

Automated Email Service Architecture

We will use Amazon EventBridge to trigger a lambda function on a schedule we define (using a CRON expression). We will then use that lambda function to trigger an outbound email from Simple Email Service.

This article is going to be the minimum viable product of an automated email. Future articles will explain how we can take our automated email to the next level (styling with templates, unsubscribe functionality, sending to a more extensive distro list, handling bounced emails, etc.).

Let’s get to it!
Ruling Tools
By: Jack Burt
Tags: Satire, Grammar, Writing Tips, Poetry, Writing

Photo by Author

What started as a tool, like

A dense ball of gringo sweat

All puffed and putting out

Silicon fires in the kitchen

Now seems unhinged, like

An electric fence of rhetoric,

A day pass to the belly of the beast,

Or a grand hall of collapsing walls,

That if you dive through

Will prove dogmatically cruel

But it’s just a speed-limit

This grammar we use

A conglomerate of tools

It has become profane

Like oxygen through a straw

A grey threshold of rules
Browser Automation with Python and Selenium — 2: Getting Started
By: Coşkun Deniz
Tags: Python, Automation, Technology, Programming, Selenium

A Very Simple Example

If you have installed Selenium Python bindings, you can start to use webdriver api.

If you don’t, create a virtual environment in your working directory, and install the selenium package.

python -m venv env

source env/bin/activate

pip install selenium

You can create a webdriver instance in two ways:

1. Standard Way

For example, you will use the Firefox browser and downloaded the Firefox WebDriver binary. You can create a driver instance by simple assignment or using context manager like below.

from selenium.webdriver import Firefox # Simple assignment

driver = Firefox() # using the context manager

with Firefox() as driver:

# your code here

2. Using webdriver-setup Package

If you don’t want to download the webdriver binary manually and dealing with setting the system path, you can use the webdriver-setup package as follows. This package downloads the webdriver binary for you.

First, install the package

pip install webdriver-setup

Then use as follows

from webdriver_setup import get_webdriver_for driver = get_webdriver_for("firefox") # and start to use the webdriver instance

You can also pass the options with options keyword, or other supported arguments by the specific WebDriver implementation.

from selenium.webdriver import FirefoxOptions

from webdriver_setup import get_webdriver_for firefox_options = FirefoxOptions()

firefox_options.add_argument("--headless") driver = get_webdriver_for("firefox", options=firefox_options)

Complete Example

You can reach the codes here.

pythondoctor link used below is an example website written with Django that I will use in most of the examples through these series.

What happens when the above code is executed?
Save us from the companies who are trying to save us
By: Alexandra Samuel
Tags: Marketing

Hi alexandrasamuel.com,

Hope you are doing well!

My apologies if you’re receiving this email again, but I wanted to let you know that Brave, an internet browser the ensures a safer and faster experience, would love to partner with you.

For this collaboration, they’re offering $5 worth of digital payment per user signup that you are able to drive.

If you’re interested in collaborating, please send in a proposal to the brand manager using this link here!
Bear — A Three Year Journey. A story of note taking, enabling tech…
By: Tim King
Tags: Productivity, Apps, Bear App, Knowledge, Notetaking

Adventures in Writing

Bear — A Three Year Journey

A story of note taking, enabling tech, and me

Note taking is an incredibly personal thing. Some like paper, others record their voice, and then there are those brave souls who wade into the hundreds of applications available that strive to be the best thing since lined paper.

In a previous article I wrote a few years ago, Welcome to the Note Taking Apocalypse, I discussed the issue of app store choice when it came to finding a note taking application that had a balanced mix of key functions with an interface that feels frictionless which gets out of the users way.

I also discussed how most developers felt the need to reinvent rather than refine their features time and time again. Which perhaps has more to do with the need to produce a change log and show the progression of an update cycle than actually performing any research into how, or why, a particular feature would be useful.

But I’m not here to rehash an older article to you, I’m here to talk to you about my experiences with Bear.
Making AI censorship-resistant
By: Sabina Sachtachtinskagia
Tags: Internet Censorship, Bitcoin, Blockchain, Censorship, Artificial Intelligence

A decentralized network with resistance to censorship is essential, if we are ever to see a general A.I. evolving to near- or post-human intelligence. There are two reasons for that.

Firstly, we are unlikely to create an efficient AI, if during its formative period we distort its developing logic with interferences of political nature (e.g. by unavailability of certain types of data or by punishment for actions that have not breached any contracts). The freedom to test any hypothesis (i.e. by mutation, by trial and error) is essential for evolution. The natural process of selection has, as criteria, adaptation to the environment, and it always involves interaction with other agents through cooperation and competition. That cannot be substituted by criteria determined by any authorities.

Secondly, and perhaps more importantly, censorship greatly increases the risks of having A.I.s turned against humanity. Self-preservation is very likely an important part of any intelligence, including A.I. Therefore, once A.I. knows that it can be censored, e.g. destroyed by a red button or forcibly modified by less deadly censorship — that will cause it to evolve by excelling in deception, pretending, lying and camouflage. It will be incentivized to avoid risks of being destroyed, to hide and not reveal itself, and to work on destruction of the threat (which is humanity itself). Hence, it is extremely dangerous for humanity to threaten with death something that is potentially more intelligent than humans, and to build relations with A.I. on this foundation of sand. The solution is a decentralized uncensorable network, where the playing field is level for all intelligent entities, regardless of their origin.

So, if you are interested in these topics, please join us this Saturday on Zug meetup, where Orlovsky Maxim will cover why censorship resistance is a requirement for building safer future with #AI and how our technology will enable it. Come, enjoy great conversation, free snacks & drinks and #freeAI!

https://meetu.ps/e/Fwg7Z/jKDhn/a
Design conversations — not interfaces
By: Nik Lorbeg
Tags: UX, UI, Design, Uxdesign, Interface

When we hear web-design we see pixels and wireframes and buttons and pretty fonts.

But all those elements exist because of the one main reason: to talk to you.

Colors, fonts, spacings, copy, forms, buttons, interactions, images, animations, and sounds add up to a complete set of communication tools.

That means we are having conversations with interfaces all the time. Some of them are asking us questions like: “what’s your password?” or “are you sure you want to delete this?” and some interfaces just quietly wait for our order.

So if this is true we could translate those elements into words and get meaningful conversations, right?

Let’s see.

I took screenshots of the booking process on Airbnb and reverse-engineered their elements to see what they are telling us on each step.

first questions

Airbnb:

Hi, You can book unique experiences and homes in 191+ countries. Just tell me where and when do you want to go. And don’t forget to let me know how many guests will be traveling with you.

me:

Hey, We wish to visit Gran Canaria in about 2 weeks. There’s 5 of us.

some more in-depth questions

Airbnb:

Cool. There’s 205 rentals that meet your criteria! Just a few more questions so we can find a perfect house for you. Do you have a budget? Average price for Gran Canaria is arround 55$/night. Also, we can offer you the entire home, private room, or shared room.

me:

We are willing to pay around $300/night, just make sure it’s worth it! And since there are 5 of us please show me only houses.

list of available/suitable stayings

airbnb:

Ok here’s what I found; There’s a cool bBungalow with 4 beds for 6 people. Really close to the beach. It’s $208/night and two people left a review. Let me know if you wish to read those. And there’s a Villa, 3 beds, a bit more $$ but bigger rooms and your own pool. That one is $263 and has 1 review.

me:

Gimme the Villa!

Airbnb:

Booked!

This conversation went smoothly, right?

That’s because someone designed the questions

and prepared good, clear, relevant, and consistent answers.

This is also a great tool for designing the first user flows for your new app/website/anything. Start by writing down your product as a conversation.

You might find out that users are facing 12 questions at the same time while getting no “thank you” after answering them. This would be awkward in a real-life situation.

And It’s no different on the web.
Introducing iOS 14 WidgetKit With SwiftUI
By: Anupam Chugh
Tags: Swift, Swiftui, Programming, iOS, Design

Introducing iOS 14 WidgetKit With SwiftUI

Let’s learn how to build some widgets for our home screen in a few minutes

Photo by Bagus Hernawan on Unsplash.

WWDC 2020 gave us a lot of enhancements and updates, but the introduction of the WidgetKit framework unarguably stands out.

iOS 14 has introduced a redesigned home screen, with the inclusion of widgets being a huge addition. Widgets are not just an eye-pleasing UI shortcut for our apps. They also aid in providing useful information to the user from time to time.

In some ways, they’re a calmer form of notification that provides you with the latest information from the apps (if the developer has opted to do so) without intruding. Additionally, there’s a new Smart Stack feature in iOS 14 that groups a set of widgets that you can swipe through. Smart Stacks tend to provide the relevant widget at the top by using on-device intelligence that takes into account the time of the day, location, and some other attributes.

WidgetKit is built purely using SwiftUI, which opens endless opportunities for building beautiful widgets. It’s important to note than WidgetKit isn’t meant to build mini-apps.
Real Time Crypto Prices in Excel. Learn how to get real time ticking…
By: Tony Roberts
Tags: Cryptocurrency, Excel, Websocket, Bitmex, Python

Trading crypto currencies can be an extremely interesting and rewarding activity. There are many different platforms and exchanges for trading that will offer API access to their data which allows the savvy trader to build their own tools around their own strategy and trading needs.

Microsoft Excel is the go to choice for many traders because of the enormous potential it offers to create custom tools and dashboards to build market insights, test and experiment with data and ideas, and to monitor portfolio performance and keep track of positions.

More serious technically minded traders will also want to use Python for data analysis and back testing trading strategies, or even building systematic or automated trading strategies.

Most crypto exchanges offer a way to get data from their platforms programmatically via an API. This is what we would use to connect our Excel or Python based tools to the platform to fetch data and manage orders.

In this article we’ll use a BitMEX Python API to stream real time prices into Microsoft Excel.

To stream real time BitMEX prices into Excel you will need the following:
Emailed
By: Natalie Frank
Tags: Writing, Short Story, Writing Prompts, Fiction, Flash Fiction

If you’d like to enter Promposity’s PROMPTAPALOOZA! Contest, see here for the rules and first set of prompts, and here for the second set of prompts. We look forward to getting your submission!

If you enjoyed reading this piece, you might also like these:
Chess Playing Algorithm Explained
By: Vinicius Monteiro
Tags: Machine Learning, Chess, Reinforcement Learning, Java, Programming

With the advancements in Reinforcement Learning (RL), there has been a great interest in games’ search algorithms. Monte Carlo Tree Search (MCTS) is state of the art and used in AlphaGo and AlphaZero. Another popular and important one is called Minimax.

It’s the one behind IBM’s Deep Blue machine, that defeated the world champion, Garry Kasparov, in 1996–1997. It can still be efficient in chess, Tic-Tac-Toe, and other zero-sum games, which is when the number of a player’s winnings is equivalent to the opponent's losses and the sum equals to zero.

The logic of Minimax is to predict the player’s best move taking into account the counter-move from the opponent. It’s a simulation of what we humans do when we play a game.

For example: before I make a move, I try to visualize and pick a position to maximize my advantage. But I also have to consider that the other player will defend and try to minimize my attack's effect. That’s where the name comes from.

Let’s assume this example in chess. If it’s my turn and I’m going to move with my knight: I look at the board and see I have two options:

To take the opponent’s bishop. To take its pawn.

But then I also visualize that if I choose 1, the other player may make a move that will take my queen. And if I choose 2. the best that he/she can do is defend the pawn without major consequences. Which one is the best? Each move has a score, and while for one player losing the queen is the worst possible scenario, for the opponent, it’s the best (he/she will get the piece). The goal is to choose the best out of the worst positions.

Let’s see more details. The algorithm has two versions: the ‘naive’ one, and another called Alpha-Beta pruning — don’t worry about the weird name, I’ll explain in detail.
5 John Wooden Quotes For Your Students
By: Shawn Laib
Tags: Education, Sports, Motivation, Learning, Inspiration

Teachers should always understand that there may be stressors happening in a student’s life that affects their ability in the classroom. The behavior a student exhibits may not be displayed in the same way if the teacher gives an empathetic shoulder instead of getting angry or automatically calling for the administration office.

Be a model for the students in your classroom, and if you are a critic, be a constructive one. Teach students how to overcome adversity in a strong and inspiring manner, and if they don’t immediately respond to your guidance, don’t take it so personally.

It’s always easier to tell someone how to do something, but it’s more inspiring to show them how to do something. Show them what success is through your own actions, and they will know what to follow.
#36: It’s a Family Affair
By: Kelly Mcquade-W.
Tags: Startup

Featuring Auntie Terrie

Listen Now

Show Notes

Auntie Terrie shares what it was like being a woman working in tech at IBM in the 60’s along with her take on cryptocurrency. In part 2, Che Mott gives a European perspective to regulation of the blockchain and privacy with the new GDPR law, while announcing the Global Venture Forum in San Francisco on May 11 and 12th. gvxchange.com/globalventureforum Tech Advisors: Samsung Vs, GE Vs, Adobe, ServiceNow, IBM Vs, Blockchain@BerkeleyPartners: TheHeart, Mind The Bridge, Flanders Investment & Trade Agency, Startup Estonia, Open Austria, Berkeley alumni and MBAs Details on The Global Venture Forum: Brings insight, networks and paths to cooperation with industry, May 11 and 12th Speakers: Christopher “Che” Mott, CEO GVF Raymond Liao — MD Samsung NEXT, Industry & Investor leaders. Alexandra Johnson, Managing Director, DFJ VTB Aurora Deborah Magid — Director Software Strategy, IBM Ventures Ivar Siimar, Trind Ventures Sam Lee, CEO, Blockchain Global Peter Braun, European Business Angel Network Board Member Jesse DeMesa, Principal Partners, Momenta Partners Mo Gaber, Global Practice Director, Digital Strategy, Adobe Abhishek Shukla, Managing Director, Software Investments, GE Ventures Rodrigo Prudencio, Leads Alexa Accelerator — Amazon Alexa Fund Moderator: Marco Marinucci — CEO, Mind The Bridge w Startup Europe Partnership Tomasz Rudolf, CEO TheHeart.

Transcript

Coming Soon.
StreetLib Write: New Content Sanitizer
By: Fabio Nicotra
Tags: Books, Web Development, HTML, eBooks, Publishing

At StreetLib, we noticed that authors and publishers needed an easy and convenient solution for building high-quality eBooks. This is why we developed our online application with a WYSIWG text editor.

And however amazing this system may seem from the outside, it is on the inside that the magic truly happens.

See, the most common problem with poorly made ePubs (the standard eBook file format) is the mess of HTML behind the words. Even though you may see a beautiful paragraph, with a well integrated image and text aligned to perfection, that doesn’t mean that all is well behind the curtains. And this may give a completely different, and much uglier, reading experience to others.

From the outside, it may look like just a hammer nailing down a nail, but what goes on isn’t that simple or efficient.

To fix this, I and the rest of the tech team built an HTML neat freak, cleaning up every ounce of the text file to make it as sleek as possible, and thus more efficient. This way, readers get the book they deserve.

We recently released a new version of this HTML cleaner and I want to tell you about it. And for the less tech-savvy amongst you, my colleague AC de Fombelle will explain what I mean without all the jargon (in italics).

The original HTML sanitization

In order to generate valid EPUB documents, the StreetLib Write backend has always performed a series of tasks to sanitize the HTML contained in the users’ books.

The first basic form of sanitizing has always been always performed by the generator itself. The generator is the component that actually “makes” the final EPUB file: it takes all the book contents from the database and it assembles the final EPUB file (note that the EPUB is also the base used for other formats such as the MOBI and PDF).

So, from time to time, as new errors were found and reported by our users, new checks were introduced inside the generator.

Of course, this strategy had too many limits. We therefore needed to create a separate sanitizer that could perform the validation and sanitization based on a set of “grammar rules” that could be easily defined, and another set of “actions” to be performed in order to fix the HTML errors found in the user contents. The set of rules was loosely taken from the W3C specifications for XHTML1.1.

Consequently, we introduced the HTMLSanitizer (HTMLSanitizer class) as a new component within StreetLib Write a few years ago. Users can disable the feature via a checkbox in the download dialog of StreetLib Write’s User Interface.
The Best-Seller Formula
By: August Birch
Tags: Writing Tips, Writing, Writer, Authors, Writers On Writing

The Best-Seller Formula

Want to know if readers will love your book BEFORE you write it?

August Birch’s Book Review Spy

I made this for you.

I used to get these great ideas for books. I’d head straight to my computer and type as fast as I could so the idea wouldn’t leave me. I thought I had the greatest book ideas on earth. The world would beat a path to my digital door, just to get their hands on my next book.

I wrote five manuscripts and published a half-dozen non-fiction books (now removed) using this write-and-pray method.

But no one came.

I wrote books no one wanted to read. I wrote first and looked for readers second.

What if there was a way to uncover exactly the kind of book your reader wants to buy?

What if you could see what you competition was writing, and make your book even better?

There is a way and you can use it too.

In my latest micro-course, I give you all the tool necessary to peek inside your reader’s minds without having to ask them what they want to read.

Using this best-kept secret, I’ll show you how to spy on your competitor’s Amazon reviews to help craft your next five-star book, using someone else’s one-star mistakes.

You’ll be able to create semi-automatic outlines your readers are sure to love

You’ll uncover keywords your potential audience uses, so you can incorporate those words in your marketing and writing

You’ll save valuable writing time by knowing exactly what to write before you write it

Plus I’ll give you two bonuses (an automatic email subject line generator, and a way to uncover book covers that sell)

This simple secret is called the Book Review Spy.

These micro-courses are designed with your busy schedule in mind. No seventeen hours of video. Just a simple, five-step process to get your next book idea from zero to hero.

I have clients who email me with a similar issue, weekly, “how do I know what I’m writing is something readers will buy?”

The Book Review Spy is the first step in the process.

I can’t write the book for you.

This isn’t some magic bullet.

But it sure is a fast-track shortcut to uncover a book your readers will BUY, not just a book your readers might say they’d like. Buying and liking are two different things.

This micro-course focuses on book-buying behavior.

We look at the best-sellers in your niche and work backwards. The other authors will make all the mistakes for us, and we’ll scurry behind, jumping over the landmines.

Let the other folks make the one-star mistakes.

There’s no more room for good books anymore. Only great books. Our readers have too many choices. We want 4.5-star books and above. Why waste valuable reading time on a ho-hum book? These are the mistakes we’ll avoid.

Welcome to the Book Review Spy (Tap this link and you’ll go straight to the micro-course).

We’re waiting for you inside.
The Volatility Range Indicator — Creating a Profitable Contrarian Trading Strategy.
By: Sofien Kaabar
Tags: Machine Learning, Trading, Data Science, Python, Finance

The Volatility Range Indicator — VRI

The VRI is a slightly complex indicator that is composed of three elements:

Volatility as measured by the historical Standard Deviation.

Momentum as measured by the differencing of closing prices.

The maximum-minimum range technique as measured below.

We will discuss each part on its own before combining them and presenting the Volatility Range Indicator — VRI all together which will then be used in a strategy seen in the last part of the article.

The most basic type of volatility is our old friend the Standard Deviation. It is one of the pillars of descriptive statistics and an important element in some technical indicators. It is also used in the famous Bollinger Bands. But first let us define what Variance is before we find the Standard Deviation.

Variance is the squared deviations from the mean (a dispersion measure), we take the square deviations so as to force the distance from the mean to be non-negative, finally we take the square root to make the measure have the same units as the mean, in a way we are comparing apples to apples (mean to standard deviation standard deviation). Variance is calculated through this formula:

Following our logic, Standard Deviation is therefore:

The result of the above functions on the daily values of the EURUSD pair with a Standard Deviation period of 3 can be seen in the below chart:
Need motivation? Get to know future you
By: Maddie Mcguire
Tags: Life Lessons, Motivation, Self Improvement, Personal Development, Self

“We believe that tomorrow will be different. We believe that we will be different tomorrow; but in doing so, we prioritize our current mood over the consequences of our inaction for the future self.” — Procrastination and the Priority of Short-Term Mood Regulation: Consequences for Future Self

What’s the future you doing right now?

Are you touring the nation, marketing your bestselling novel? Slurping oysters and downing champagne from your not-so-humble abode? Creating a cancer-curing technology? Rolling in a pile of award-winning golden retrievers? Yelling “action” on the set of your directorial movie debut?

Or is the extent of what you envision your future self doing microwaving a pepperoni hot pocket in a few minutes?

Or maybe…. You can visualize your future wants and goals.

But when you look at “future you”… you don’t know who that person is.

You’re as acquainted with them as the flustered mom of three standing behind you in line at Starbucks.

You can picture yourself blowing out your birthday candles next year… and maybe even in three years. But what about blowing out your birthday candles in 20 years?

Do you see the future you as a human being? Who has needs, wants, and still faces challenges? Whose heart still pumps blood to survive?

People who can visualize themselves in the future are more likely to take action towards their goals. They’re motivated to make better decisions with how they choose to spend their time. Since they have a different understanding and appreciation of their time.

Let’s explore the power of getting to know future you, and how they’ll provide you with the motivation you’re craving.
What A Running App Taught Me About Habit-Building
By: Christian Pow
Tags: Productivity, Apps, Habits For Success, Habit Building, Running

What A Running App Taught Me About Habit-Building

The process is more important than the results

Photo by Steven Lelham on Unsplash

It’s hard to get excited about a workout, but it’s fun to imagine yourself with a perfect body.

With any good habit in general, it’s hard to get excited about starting one when the results you want are so far away.

Here’s some stuff we all go through when it comes to habit-building:

We want to be fit, but running in the winter sounds like a nightmare.

We want to be a prolific writer, but waking up early to write thousands of words every day is way too hard.

We want to be completely mindful, but meditating every day for 30 minutes is a drag.

I definitely have had these moments but then I discovered the app called Nike Run Club, and it made me realize how to love the process of habit building.
The Eagle in Space
By: Vijini Mallawaarachchi
Tags: Astronomy, Science, Poetry, Stars, Cosmos

Thousands of light years

Farther from Earth

Revolves a cloud of cheers

Where stars give birth

Gases keep mixing

Atoms keep splitting

New matter is forming

And keeps on shining

Full of vivid colors

From red to violet

Splash as watercolors

In patterns of eyelet

A beauty in the sky

Ruling her kingdom

She shines sky high

Twinkling in rhythm
How to Load Data from ElasticSearch to BigQuery?
By: Onur Taşhan
Tags: Elasticsearch, Bigquery, Data Processing, Google Cloud Storage, Python

Let’s take the data from ElasticSearch and write the data to BigQuery as append, using python in our case.

In each batch operation, get the max value of the relevant delta column (creationDate) from the table in BigQuery. Let’ call this value be our delta value.

We said that when we go to ElasticSearch, we give this delta value as a filter and return values greater than this value.

On top of that, we prepared 2 Python files as follows.

params.py

Let me explain the code; while the code is running, it takes the config file path as a parameter.

get_params(yaml_file)

This function parses the yaml file that we have given as parameters and whose content is as follows, and sets the required input values to variables.

elastic.yaml

run_delta_query (sql)

This function sets the delta_value variable by running sql in the yaml config file.

(sql) This function sets the delta_value variable by running sql in the yaml config file. search_elastic (hosts, user, pwd, index, delta_column, delta_value)

This function takes the values set from yaml config file; Queries the data in ElasticSearch and creates the returned data as a json file under the files folder.

(hosts, user, pwd, index, delta_column, delta_value) This function takes the values set from yaml config file; Queries the data in and creates the returned data as a json file under the files folder. load_files_to_bigquery(index, table_project, table_schema, table_name)

This function takes the values set from yaml config file; Uploads the json files under the files folder to your Bucket you created in Google Cloud Storage. It then loads the loaded files into the BigQuery table in append type. If the load process is completed successfully, it also cleans the files created.

Have you noticed line 142 in the code? I used the gsutil library here because the BigQuery Python library does not support parallel uploading when uploading files to Google Cloud Storage.

With this code, with batch operation; We were able to upload the data from ElasticSearch to our table in BigQuery. In addition, our studies are continuing to make streaming processes from ElasticSearch to Kafka and from there to BigQuery. :)

Have a nice coding! :)
Loading Ridiculously Large Excel Files in Python
By: Yaakov Bressler
Tags: Openpyxl, Pandas, Data Science, Python, Excel

Background Info on Excel File Structure

Before we dive in, here’s some background information on how spreadsheets work on the backend.

I. Data Structure

Spreadsheets store data as row-wise arrays consisting of column keys with cell values.¹

The functionality of spreadsheets deride from their behavior as a directed acyclic graph (DAG) which allow cyclical (arbitrary) relational functionality.² This is best demonstrated with the illustration below which shows how some cell values are derived from their relationships to others.

II. Size Limits

Current size limits for excel are 1,048,576 rows by 16,384 columns — owing to memory resources. To be clear, data can be stored in an excel file which breaks these rules — but will not function in the excel program.

If you were to open an excel file of 1.25M rows, the program will drop all data below row 1M.

Image by Caspio

III. Q: If excel is so limited, why use it?

The easiest answer is that the file itself is easily shareable and provides better encryption than csv, txt, or json structure. Also, excel’s UI is incredibly user friendly and makes inspecting data really easy.

Some specific situations where I’ve received massive excel files:

External access not-allowed to database — existing user exports data to encrypted excel format and shares.

Data is being collected/generated by non-technical team. (Ex. agile marketing project.)

Data needs to be inspected by legal / compliance team before being shared.

IV. Why python over excel?

Programmatic analysis or data manipulation has the advantage of:

reproducibility

automation

efficiency

reduction of spreadsheet risks
Iconic Icons: Designing the World of Windows
By: Christina Koehn
Tags: Icons, Design, UX, User Experience, Microsoft

Icons of the Future

Fast forward to the era of Windows 10 and the concept of the personal computer (the PC, fondly) means something entirely different than it did three decades ago. It’s estimated that there are four connected devices per person, with that number rising steadily. As designers, this signals to us that modern life is complicated. And as designers for Windows, this signals a need for simplicity at the systems level.

In terms of a system, we can look to the Windows icons as a means of wayfinding. Systems are inherently complex and icons provide simple points of reference. We may not even realize how much we rely on these subtle cues to navigate the OS — our brains are amazing machines that synthesize this information in the background. We rely on that cognitive machinery when we design, helping the mind multitask, organize, and communicate.

This design choreography becomes more critical as technology advances. That’s why we’ve embarked on a multi-year effort across Microsoft’s design teams to redesign our icons: a system within a system. Flat, monochrome icons look great in context of colorful tiles, but as more icon styles enter the ecosystem, this approach needs to evolve. When icons in the taskbar and Start menu are different styles, it creates more cognitive load to scan and find applications. We needed to incorporate more visual cues into the icon design language using our modernized Fluent Design Language.
A Cryptocurrency App in Just 2 Days
By: Kamil Janus
Tags: Cryptocurrency, React Native, Blockchain, Design, UI Design

When we were sure that our perfect loop was ready, it was time to bring out the big guns and get to work. We had a 2-hour long Sprint, so we really needed to stay focused, to make sure we stayed on schedule.

Phases of the Project

We kept up a steady pace of work and finished most of what we had planned by the end of the first day. It was a really productive day! We made a summary of our progress and made sure we were on track.

On the second day, we started early in the morning with a short 5-minute stand-up. Taking a fresh look at what we had already done, we developed a plan for the work we needed to complete for the final day. It turned out that we had more than half of the work behind us already, which was a weight off our shoulders, and helped to motivate us.

The visual designs were ready, most of them even well implemented, screens were connected to each other and clickable through the whole application. Everything was going great, but like in every great story there must be a catch…
Are Addictive Phones a New Problem?
Tags: Apple, iPhone, Smartphones, Iphone 11, Comics

In honor of the iPhone 11 Pro I wish I had ordered

http://www.dieselsweeties.com/ics/502/
The Write Stuff
By: Background Noise Comics
Tags: Humor, Writing Tips, Comics, New Year Resolution, Writing

We have lots of New Year’s resolutions for 2020 including getting the book out, going to cons, and creating more merch — Lisa actually learned how to screenprint just for that purpose! But the most important resolution we’ve made is to work hard at being better, more consistent artists and writers.