One Woman’s Crusade to Help Educate Female Prisoners About Drug Addiction

Deborah Jiang-Stein is helping incarcerated women prepare for life after prison.

Deborah Jiang-Stein found inspiration for the unPrison Project in a pair of reading glasses. Jiang-Stein, the founder and CEO of the organization, which teaches literacy, mentoring and life skills for women and girls in prisons, was born in prison to a heroin-addicted mother. She struggled with addiction and brushes with the law, before turning those struggles into a career as a writer and motivational speaker in women’s correctional facilities, sharing her story to inspire other incarcerated women and bring books into prisons. However, there were a few basic but critical barriers to achieving that goal.

As she explained in a phone interview, in multiple facilities, “I saw a pair of glasses being shared. In every prison, there would be a couple pairs of glasses that were shared.” She also learned that the average reading level in these facilities was fourth grade. How could they read the books she brough them if they were blocked from reading, for both structural and logistical reasons? After all, she continued, “if we’re advocating employment and success on the outside, reading is just the basic right in the world, let alone this country.”

So Jiang-Stein secured donors who provided 10,000 pairs of reading glasses, and brand-new children’s books for distribution in visiting rooms around the country. These efforts helped start the unPrison Project, which helps cultivate tools for a successful life after incarceration. She also wrote a memoir of her life experiences titled Prison Baby. 

She chose to focus specifically on women in prison, she says, because she believes any issue related to the “incarceration of women gets ignored. The number [of incarcerated women] has spiked 800 percent in recent decades, and it’s twice that of men. It’s a huge increase, and many—in fact, the majority—would benefit from services in the community like mental health resources, drug treatment instead of incarceration.”

The brief curriculum she developed begins with her own story, and includes advice on drug treatment, career counseling, mental health services, literacy, how to manage time behind bars, and how to build a life on the outside to ensure the women don’t return. Jiang-Stein travels to facilities all over the country speaking to both large and small groups. She tells them she knows “what it takes to survive out here… because I’m also in recovery, I know that it can be easy to face a disappointment and then be motivated to use again instead of trying to solve the problem.”

Her personal experiences—she spent the first year of her life in prison, later became addicted to drugs and has been clean and sober for 20 years—helps boost her credibility with the women she works with. 

After all, she explained, “my birth mother was a woman exactly like the women that I meet. She was a heroin addict, in and out of facilities since she was around the age of 13… I was an actively using addict, I know what that lifestyle is, so part of the reason I do this is… I could have been sitting in those chairs in prison with a life sentence.” She continued, “I have the story that is sadly not so unique, but I’m an adult coming in as a peer, showing what the other side can look like by using the tools that I’m talking about. Being in recovery, learning to forgive, I value education, I continue to read and be curious and engage myself in a bigger world.” 

While the organization doesn’t yet track former participants or their activities after prison (some may be in for very long or life sentences), the feedback has generally been positive. Cynthia Wallace, the program manager at the Dr. Jerome McNeil Detention Center of Dallas County Juvenile Department, agreed. She brought Deborah Jiang-Stein to the youth detention center, as she explained in a letter to donors that she shared with AlterNet: “The girls were engaged and asked great questions [like] ‘how did you begin healing, when did you forgive yourself, how did you find happiness, are you still afraid?’” 

While Jiang-Stein and her small staff at the unPrison Project would like more opportunities to develop longer-term relationships with individual systems or facilities, she says, “If I go to one place two or three times then I’m not going to another place. And they’re close to 30 states now that have asked me in, and I’ve been in quite a few already.”

This year, she may finally get the opportunity to do both. The unPrison Project was nominated for a 2017 L’Oreal Women of Worth Award, to honor women who give back to their communities. While Jiang-Stein didn’t ultimately win the award, as a finalist, she and the unPrison Project won $10,000, great publicity and the chance to network with other changemakers. 

Going forward, the unPrison Project is in the midst of strategic planning for the next few years, adding staff, volunteers and board members, developing an infrastructure that will help reach more prisoners, not only in the U.S. but also internationally. Jiang-Stein has had interest from Kenya, Zimbabwe and Ghana. 

 Learn more about the unPrison Project.

 

Related Stories

  • 100,000 U.S. Prisoners Are Trapped in Isolation Units
  • Here’s What It’s Going to Take for Democrats to Take Back the House in 2018
  • Not Just Inauguration Protesters: Medics, Observers and a Journalist Face 50 Years in Prison

The Chilling Trump Propaganda Airing Across Local News, Courtesy of Sinclair Broadcast Group

Americans are being told there was no collusion, and the president did a bang-up job in Puerto Rico.

As it closes in on a significant expansion into major cities and battleground states across the country, conservative local news behemoth Sinclair Broadcast Group has gone into overdrive with its pro-Trump and anti-media propaganda.

Sinclair is known for its history of injecting right-wing spin into local newscasts, most notably with its nationally produced “must-run” commentary segments. The segments, which all Sinclair-owned and operated news stations are required to air, have included (sometimes embarrassing) pro-Trump propaganda missivesfrom former Trump aide Boris Epshteyn since the spring.

Last week (one day after reportedly partying at Trump Hotel in Washington, D.C.), Epshteyn produced a new must-run segment essentially arguing that media are being too mean to the Trump administration:

Epshteyn’s latest video is yet another effort by Sinclair to adopt the Fox News model: By arguing that media at large is not to be trusted, it’s attempting to isolate local news audiences, suggesting to communities across the country that the only news they can trust is coming from Sinclair. (Not to be outdone, Sinclair’s other must-run personality Mark Hyman released a new segment the same day asserting full-blown anti-Trump “media collusion.”)

This segment is far from Epshteyn’s first defense of Trump from what he views as unfair attacks by the press, nor is it the first to suggest mainstream media are hopelessly biased and untrustworthy. It’s also not alone in looking like straight-up Trump propaganda.

In recent months, Epshteyn segments have also told viewers that:

All Americans should be more like actor Bryan Cranston, who remarked  during an interview that people ought to hope Trump succeeds for the good of the country. (Yes, this warranted an entire must-run segment.)

The FBI just might be targeting Trump because of his political leanings.

Deregulation under the Trump administration has led to a spectacularly growing economy.

The Colin Kaepernick-led NFL protests are really about how Trump gets genuinely upset when the flag is “disrespected,” as Epshteyn can personally attest.

The Trump administration’s response to devastation in Puerto Rico deserved a little criticism, but only polite criticism.

These are just (perhaps) the most egregiously propagandistic of Epshteyn’s must-run segments since Media Matters last documented his worst videos in August, and unfortunately there are plenty more to choose from. Epshteyn’s segments have also defended Trump and the GOP on the following: Jared Kushner’s Middle East diplomacy, ending the DACA program with a grace period, another revised Muslim travel ban, North Korea strategy, repealing the individual mandate in the Affordable Care Act, and moving the U.S. embassy in Israel to Jerusalem.

As it stands, Sinclair is broadcasting segments like these on stations across 34 states and the District of Columbia, particularly in local media markets for suburbs and mid-sized cities from Maine to California — and they could be coming to a station near you.

The local news giant is now awaiting approval from the Federal Communications Commission (FCC) and Department of Justice of its acquisition of Tribune Media, which would allow Sinclair to further spread its propaganda in the country’s top media markets, reaching nearly three-quarters of U.S. households. If this week’s deeply unpopular move to repeal net neutrality rules is any indication of the five FCC commissioners’ adherence to party lines, the FCC seal of approval for this deal is pretty much a sure thing thanks to its current Republican majority.

Media Matters has mapped out more than 15 communities that will be hit hard by the Sinclair-Tribune merger. You can also find a full list of stations owned or operated by Sinclair on its website, and here is the full list of stations it is set to acquire with its purchase of Tribune Media.

 

Related Stories

  • Sean Hannity Has a Long, Shady History of Deceptively Editing Videos
  • Rupert Murdoch Seems to Have Forgotten That He Fired Bill O’Reilly
  • 12 Most Insane Rules From the Biggest Neo-Nazi Website on the Internet

The culture war is a deliberate distraction

Capitalism is the best economic system for the overall creation of wealth. However it is lousy at distributing that wealth fairly between the people who contributed to the creation; and it equally sucks at all other issues which require solidarity (e.g. health care) or involve the common good (e.g. the environment). After WWII it appeared that the first world countries had solved that problem: They had all created political systems in which “the right” fought for freedom and capitalism, and “the left” fought for fair distribution, solidarity, and the common good. Alternating between left and right governments created a balance, and even allowed different countries to arrive at different points on that balance, e.g. Scandinavian countries having more solidarity, and the US having more capitalism.

However the system had one inherent flaw: Politicians are by definition members of the elite, the ruling class. And that is true for left wing politicians as well. Thus a right wing politician fighting for unfettered capitalism that makes the rich richer and the poor poorer was both following his party politics and his own greed. While the left wing elite was naturally less inclined to fight for policies that aided less well off, because it didn’t help them personally. So at various points in the 90’s the left wings in different countries simply gave up on economic policy for fairer distribution of wealth, and just joined the capitalist camp which made the elite richer. Today a left wing politician like Bernie Sanders or Jeremy Corbyn who still push for some economic fairness and solidarity are considered as “odd” and decried as “communists”.

Now this has created a growing rift between voters and the elite that leads them in politics and media. The people simply isn’t represented any more. They are being fed lies like “your salaries are only low because of immigrants” or “tax cuts for the rich will trickle down to you”. In their desperation they increasingly vote for extremists and populists, and end up harming themselves even more through the resulting policies. And the left and right wing elite in order to be seen to do something play acts a culture war to distract the masses from the real problems.

In Germany there is an organization of soup kitchens which collect food past its sell-by-date and distributes it to people who are so poor that they have to beg for food. One local organization recently made headlines because they enacted a controversial “Germans first” policy, after food fights had broken out in which younger male immigrants shoved aside elderly German grandmothers. And the discussion is all about the culture war, with the left fighting for equal rights for the immigrants, and the right defending priority for the natives. Only the extreme left is mentioning the real problem: That in one of the world’s richest countries, at the top of the economic cycle and full employment, there are still so many people having to beg for old food that the soup kitchens can’t feed all of them.

As Bill Clinton still knew, “it’s the economy, stupid”. If the centrist parties fail to represent the economic interests of the majority of the population, they will fade into irrelevance. History repeats itself, and the rise of populist parties in Europe in the 1930’s (not just in Germany) isn’t really the example we would want the world to follow. We need to see the culture was as the distraction that it is, and concentrate on the real economic problems.

Treasury Secretary Steve Mnuchin Seriously Claims Ignorance of CDC Banned Words Report

“It’s the first time I’m hearing of that,” he said.

During a CNN appearance, U.S. Treasury Secretary Steve Mnuchin told host Jake Tapper that he knew nothing about the reported directive from President Donald Trump’s administration for the Centers for Disease Control and Prevention, along with other divisions under the Department of Health and Human Services, to stop using a list of banned words.

“Policy analysts at the Center for Disease Control as well as other divisions at the Department of Health and Human Services were given a list of forbidden words,” Tapper said to the treasury secretary. “Why would the Trump administration tell the CDC not to use a term like ‘science-based’?”

“It’s the first time I’m hearing of that,” Mnucnin said with a straight face. “I’m not aware of the directive at all.

The banned words list reported by the Washington Post includes “vulnerable,” “diversity,” “entitlement,” “transgender,” “fetus,” “evidence-based” and “science-based.” 

Watch Mnuchin claim total ignorance below.

 

Related Stories

  • Former Fox News Analyst Tamara Holder Shares Explicit Details of Sexual Assault
  • Sarah Palin’s Son Track Palin Was Arrested in Alaska on Domestic Violence Charges
  • Watch This Conservative Slam Trump for Ignoring Russia Interference Intel Because It ‘Hurts His Little Feelings’

Installing Adobe After Effects

Adobe After Effects Installation
About Adobe After Effects :

Adobe After Effects is a digital visual effects, motion graphics, and compositing application developed by Adobe Systems and used in the post-production process of film making and television production. Among other things, After Effects can be used for keying, tracking, compositing and animation. It also functions as a very basic non-linear editor, audio editor and media transcoder.


After Effects CC (2015) system requirements :


Windows :


Intel Core2 Duo or AMD Phenom II processor with 64-bit support
Microsoft Windows 7 with Service Pack 1, Windows 8, or Windows 8.1
8 GB of RAM (16 GB recommended)
5 GB of available hard-disk space; additional free space required during installation (cannot install on removable flash storage devices)
Additional disk space for disk cache (10 GB recommended)
1280 x 1080 display
OpenGL 2.0-capable system
QuickTime 7.6.6 software required for QuickTime features
Optional: Adobe-certified GPU card for GPU-accelerated ray-traced 3D renderer
Internet connection and registration are necessary for required software activation, validation of subscriptions, and access to online services.

Mac OS :

Multicore Intel processor with 64-bit support
macOS v10.9 (Mavericks), or v10.10 (Yosemite)
8 GB of RAM (16 GB recommended)
5 GB of available hard-disk space for installation; additional free space required during installation (cannot install on a volume that uses a case-sensitive file system or on removable flash storage devices)
Additional disk space for disk cache (10 GB recommended)
1440 x 900 display
OpenGL 2.0-capable system
QuickTime 7.6.6 software required for QuickTime features
Optional: Adobe-certified GPU card for GPU-accelerated ray-traced 3D renderer
Internet connection and registration are necessary for required software activation, validation of subscriptions, and access to online services.

Installing a render-only instance of Adobe After Effects CC
Before you start:
1. If you have installed Creative Cloud applications on two computers, sign out of one of them by opening any of the applications and choosing Sign Out from the Help menu.

2. You can sign back into Creative Cloud on this computer after the render-only instances of After Effects are installed.

To install a render-only instance of After Effects CC, do the following:
1. Go to the product page to download and install After Effects CC.
2. Download Adobe After Effects CC Trial from :
    https://www.adobe.com/products/aftereffects/free-trial-download.html
3. Install as Try.
4. When the installation is complete, start After Effects.
5. Quit After Effects install Application.
6. To start the application browse to Start Menu > All Programs > Adobe After Effects CC 2015.exe
Limitations of the trial version
The trial version of After Effects includes all of the codecs that are included with the full version of After Effects. This means that you can import and export to all of the supported file formats using the trial version. 
The trial version of After Effects also includes the Keylight plug-in, mocha-AE, mocha shape, Cycore (CC) effects, and Color Finesse. 
Activate the software

A single-user retail license activation supports two computers. For example, you can install the software on a desktop computer at work and on a laptop computer at home.

For more information on product licensing and activation, go to the Adobe website.

Want to Learn Brand Marketing of your Company ?

Life is Pay2Win

I was listening to some well-known YouTubers complaining about lootboxes in new games like Star Wars Battlefront II or Shadow of War and pointing out in painstaking detail how getting this or that bonus unbalances the game in favor of people who buy lootboxes. However they appeared to be totally okay with other people getting the exactly same bonuses by grinding the game for many, many hours. And that annoyed me. Wouldn’t we be much better off if our multiplayer PvP games would be perfectly balanced and the outcome only determined by skill? If you can get bonuses that make you much stronger than another player, why would it matter whether you got them by playing the game for endless hours or by using your credit card? It appeared to me as if some hardcore gamers are quite okay with a game being unfair, as long as that unfairness favors them and their kind.

The only advantage playing a game for longer should be the skill you acquire by practice. Any other bonus you get from grinding is in fact a historical and economical anomaly. The practice will certainly disappear over the coming decade, because it simply isn’t in the interest of game companies to keep doing so. Companies don’t *want* players that use a lot of their bandwidth but give them no money. The only free players they want is those that they are still trying to persuade to cough up some cash.

Fact is that life itself is Pay2Win. In a consumer society, the more money you have, the more luxury you can afford. The whole “American Dream” idea is built around the concept that money is the yardstick for success in life, and that by working hard on pursuits that actually earn you money or improve your chances to earn money later, you are leading a better life. Even the people who would like wealth to be redistributed don’t complain about the fact that more money buys you a better car or the best seats in the theater. So why exactly should video games be exempt from that?

Games went from being fair and balanced to being unfair based on time spent. Now they are moving from there to being unfair based on money spent. People complaining about that on YouTube or various internet forums isn’t going to change that, because millions of people will buy those new games with their new unfairness. Because for millions of people the new unfairness is actually an improvement over the old unfairness. Gaming has become a mass market for the general population, and in the general population there are more people who can afford to spend $100 than there are people who can afford to spend 100 hours. Calling for that to be rolled back to the previous state of unfairness doesn’t even have the benefit of being moral, the moral situation would be games that don’t give you any advantages from neither time nor money.

Samsung Galaxy A8 and A8 Plus (2018) specs: Infinity Display and a dual selfie camera

There’s no denying that Samsung’s S-series has boasted some of the finest flagships ever made, but sometimes there’s no match for a bonafide bargain, and that’s what the South Korean giant seems to be delivering with its newly-announced A-series phones, the Galaxy A8 (2018) and Galaxy A8 Plus (2018).

As the new gold standard of Samsung’s mid-tier range, the Galaxy A8 and A8 Plus look to balance premium design with a steady performance all while retaining a modest price tag. On paper, this year’s A8 phones – which technically replace the Galaxy A5 and Galaxy A7, respectively – appear to deliver on all counts.

Editor’s Pick

This time around both the 5.6-inch A8 and the 6-inch A8 Plus sport an elongated Infinity Display with the same 18:5:9 aspect ratio found on the Galaxy S8, S8 Plus, and Note 8. Both panels are Super AMOLED displays with a 2220 x 1080 resolution.

Despite missing out on the curved edges of its premium counterparts, the A8 and A8 Plus both pack slimline bezels, while leaving enough room for the devices’ most unique feature – a front-facing 16 MP and 8 MP dual-camera. We’ll be putting the pair’s selfie-taking credentials and much more to the test at a later date for a full review, but for now, be sure to check out the table below for all of the key specs.

  Samsung Galaxy A8 (2018) Samsung Galaxy A8 Plus (2018)
Display 5.6-inch FHD+ Super AMOLED
2,220 x 1,080 resolution
441 ppi
18:5:9 aspect ratio
6-inch FHD+ Super AMOLED
2,220 x 1,080 resolution
412 ppi
18:5:9 aspect ratio
Processor Unspecified octa-core platform
2.2 Ghz + 1.6 Ghz
Unspecified octa-core platform
2.2 Ghz + 1.6 Ghz
GPU TBC TBC
RAM 4 GB 4/6 GB
Storage 32/64 GB 32/64 GB
MicroSD Yes, up to 256 GB Yes, up to 256 GB
Cameras Rear camera:
16 MP sensor with f/1.7 aperture, phase-detection auto-focus, video digital image stabilisation (VDis) technology, hyperlapse, and Food Mode

Front camera:
16 MP + 8 MP sensor with f/1.9 aperture and Live Focus

Rear camera:
16 MP sensor with f/1.7 aperture, phase-detection auto-focus video digital image stabilisation (VDis) technology, hyperlapse, and Food Mode

Front camera:
16 MP + 8 MP sensor with f/1.9 aperture and Live Focus

Audio 3.5mm headphone jack
MP3, M4A, 3GA, AAC, OGG, OGA, WAV, WMA, AMR, AWB, FLAC, MID, MIDI, XMF, MXMF, IMY, RTTTL, RTX, OTA
3.5mm headphone jack
MP3, M4A, 3GA, AAC, OGG, OGA, WAV, WMA, AMR, AWB, FLAC, MID, MIDI, XMF, MXMF, IMY, RTTTL, RTX, OTA
Battery 3,000 mAh
Non-removable
Fast charging
3,500 mAh
Non-removable
Fast charging
Sensors Accelerometer Barometer
Fingerprint sensor Gyro sensor Geomagnetic sensor Hall sensor
Proximity sensor
RGB light sensor
Accelerometer Barometer
Fingerprint sensor Gyro sensor Geomagnetic sensor Hall sensor
Proximity sensor
RGB light sensor
IP rating IP68 water and dust resistance IP68 water and dust resistance
Network TBC
LTE Cat. 11
TBC
LTE Cat. 11
Connectivity Wi-Fi 802.11 a/b/g/n/ac (2.4 & 5 GHz)
Bluetooth 5.0
NFC
ANT+
Location (GPS, Glonass, BeiDou)
USB Type-C 2.0
Wi-Fi 802.11 a/b/g/n/ac (2.4 & 5 GHz)
Bluetooth 5.0
NFC
ANT+
Location (GPS, Glonass, BeiDou)
USB Type-C 2.0
Software Android 7.1.1 Nougat Android 7.1.1 Nougat
Colors Black, Orchid Grey, Gold, and Blue Black, Orchid Grey, Gold, and Blue
Dimensions and weight 149.2 x 70.6 x 8.4 mm
172 g
159.9 x 75.7 x 8.3 mm
191 g

Be sure to let us know your thoughts on the Samsung Galaxy A8 (2018) and A8 Plus (2018) specs in the comments below! Is its dual-camera for selfies and (near) bezel-less design won you over?

Deal Spotlight: Codeanywhere lets you write apps from any place for 92 percent off

If you want to be able to write code for apps from any location, you have to check out Codeanywhere. This cloud-based development service lets you create code if you have any Android or iOS smartphone or tablet, or if you have access to a web browser.

Normally, a lifetime freelancer subscription to Codeanywhere would cost you a whopping $1,260. However, this week Android Authority readers have the price cut down to just $89, a savings of 92 percent. The fine print is that technically this price will give you access for three years, but the good news is that when that expiration arrives, you just have to email the company at [email protected] and it will renew that three year subscription for free. You will have to do this move every 3 years, but if you do, this subscription will be renewed for free as long as you live.

Codeanywhere offers support for over 75 programming languages, so the chances are that anything you use will be available from this service. Autocomplete support is also available for HTML, XML, CSS, JavaScript, Python & PHP languages. It lets you connect to up to 50 FTP servers, along with pairing support for when you want to collaborate on a coding project with a friend. You can connect your code to  FTP, SFTP, Dropbox, Google Drive and other services, and you can run any command on your container or remote servers by using SSH. 

You can view different versions of your code in Codeanywhere to pinpoint disparities between each of your saves and you can choose from a large number of predefined dev stacks. Finally, you can quickly connect to any of your existing Git repositories.

Are you ready to start coding your apps from anywhere for a super-low price? Then click on the button below to save 92 percent off Codeanywhere.

Check it out!

The AAPicks team writes about things we think you’ll like, and we may see a share of revenue from any purchases made through affiliate links. To see all our hottest deals, head over to the AAPICKS HUB.

Advanced Excel Charts: Sooo Muuch Data – Analysis Needed !

Data visualization is the presentation of data in a pictorial or graphical format.

Today, we see data visualization being embraced like never before. Organizations that know and understand it, love its very existence. Since Big Data is a popular lingo in the tech world today across industries ranging from finance to communications, the need to drive better business decisions is the need of the hour. As a result, organizations are looking for better data visualization tools, to turn their essential load of data into something that is more comprehensible.
Excel charts are an efficient means to visualize the data to convey the results. In addition to the chart types that are available in Excel, some application charts are popular and widely used.
The importance of advanced charts
  • They provide consolidated information in a single chart that makes it easier to compare more than one data set and make decisions quickly
  • They allow us to customize the look and feel of the charts
Lets see some important Advanced Charts in Excel:

1. Band Chart

A Band chart is a Line chart with added shaded areas to display the upper and lower boundaries of the defined data ranges.
Band charts provide by far more context to your visualization and more insight into your data. Especially if you have to explore unknown data sets.

Why is a band chart more efficient than a line chart? Because it provides more context. Unlike a single line chart displaying only the development of the selected data series over time, a band chart provides a variety of additional information at a glance.

2. Waffle Chart:

A Waffle chart is a square divided by 10×10 cells. The value is displayed as percentage, so you can clearly see the difference down to 1%.
Pie charts are often criticized because while at the outset they do seem to convey the information, people still have a hard time comparing the angles and sizes of each element.
Making pie healthier resulted in the Waffle chart! A Waffle chart is essentially a squarified pie. Since it does not involve angles, it’s easier for the reader to compare accurately as well as evoke emotional comparisons.
You can use it with just one measure…
or with a category.


3.Heat Map

A Heat Map is a visual representation of data in a Table to highlight the data points of significance.
For example, in the dataset below, I can easily spot which are the months when the sales were low (highlighted in red) as compared with other months.
In the above dataset, the colors are assigned based on the value in the cell. The color scale is Green to Yellow to Red with high values getting the green color and low values getting the red color.

4.Waterfall Chart:

A Waterfall chart is a form of data visualization that helps in understanding the cumulative effect of sequentially introduced positive or negative values.
The columns are color coded so you can quickly tell positive from negative numbers. The initial and the final value columns often start on the horizontal axis, while the intermediate values are floating columns. Because of this “look”, waterfall charts are also called bridge charts.

5.Pareto Chart:

Pareto chart is widely used in Statistical Analysis for decision-making.It represents the Pareto principle, also called 80/20 Rule, which states that 80% of the results are due to 20% of the causes.
A Pareto or sorted histogram chart contains both columns sorted in descending order and a line representing the cumulative total percentage. Pareto charts highlight the biggest factors in a data set, and are considered one of the seven basic tools of quality control as it’s easy to see the most common problems or issues.

Want to learn Data Analytics?

About Trees, different Traversals and BST

A tree is a data structure made up of nodes or vertices and edges without having any cycle. The tree with no nodes is called the null or empty tree. A tree that is not empty consists of a root node and potentially many levels of additional nodes that form a hierarchy.

Tree

Tree Terminology

Lets see some tree terminologies:-
Root: The top node in a tree.
Child: A node directly connected to another node when moving away from the Root.
Parent: The converse notion of a child.
Siblings: A group of nodes with the same parent.
Descendant: A node reachable by repeated proceeding from parent to child.
Ancestor: A node reachable by repeated proceeding from child to parent.
Leaf: A node with no children.
Internal node: A node with at least one child.
Degree: The number of sub trees of a node.
Edge: The connection between one node and another.
Path: A sequence of nodes and edges connecting a node with a descendant.
Level: The level of a node is defined by 1 + (the number of connections between the node and the root).
Height of node: The height of a node is the number of edges on the longest path between that node and a leaf.
Height of tree: The height of a tree is the height of its root node.
Depth: The depth of a node is the number of edges from the tree’s root node to the node.
Forest: A forest is a set of n ≥ 0 disjoint trees.

Tree Node

Tree Node has a data part and references to its left and right child nodes.

struct node {
int data;
struct node *leftChild;
struct node *rightChild;
};
In a tree, all nodes share common construct.

Tree Traversals

Traversal is a process to visit all the nodes of a tree and may print their values too. Because, all nodes are connected via edges (links) we always start from the root (head) node. That is, we cannot randomly access a node in a tree. Unlike linear data structures (Array, Linked List, Queues, Stacks, etc) which have only one logical way to traverse them, trees can be traversed in different ways. Following are the generally used ways for traversing trees.

  • In-order Traversal
  • Pre-order Traversal
  • Post-order Traversal

In-Order Traversal

In this traversal method we first visit the left sub-tree, then the root and later the right sub-tree. If a binary tree is traversed in-order, the output will produce sorted key values in an ascending order.
For e.g.
Output of the In-Order traversal for above tree is
4 -> 2 -> 5 -> 1 -> 3
Algorithm Inorder(tree)
1. Recursively traverse the left subtree, i.e., call Inorder(left-subtree)
2. Visit the root
3. Recursively traverse the right subtree, i.e., call Inorder(right-subtree)

Pre-Order Traversal

In this traversal method we first visit the root node, then the left sub tree and finally the right sub-tree.
For e.g.
Output of the In-Order traversal for above tree is 
1-> 2 -> 4 -> 5 -> 3
Algorithm Preorder(tree)
1. Visit the root.
2. Recursively traverse the left subtree, i.e., call Preorder(left-subtree)
3. Recursively traverse the right subtree, i.e., call Preorder(right-subtree)

Post-Order Traversal

In this traversal method we first visit the left sub tree, then the right sub-tree and finally the root node.
For e.g.
Output of the In-Order traversal for above tree is 
4-> 5 -> 2 -> 3 -> 1
Algorithm Postorder(tree)
1. Recursively traverse the left subtree, i.e., call Postorder(left-subtree)
2. Recursively traverse the right subtree, i.e., call Postorder(right-subtree)
3. Visit the root

Binary Search Tree(BST)

In binary tree, every node can have maximum two children but there is no order of nodes based on their values. Binary search tree is a type of binary tree in which all the nodes in left subtree of any node contains smaller values and all the nodes in right sub-tree of that contains larger values as shown in following figure

Operations on a Binary Search Tree

Following Oprations performed on BST
1. Search
2. Insertion
3. Deletion

Search Operation

Whenever an element is to be searched, start searching from the root node. Then if the data is less than the key value, search for the element in the left subtree. Otherwise, search for the element in the right subtree. Follow the same algorithm for each node.
Algorithm
node* search(int data){
struct node *current = root;
printf("Visiting elements: ");
while(current->data != data){
if(current != NULL) {
printf("%d ",current->data);
//go to left tree
if(current->data > data){
current = current->leftChild;
}//else go to right tree
else {
current = current->rightChild;
}
//not found
if(current == NULL){
return NULL;
}
}
}
return current;
}

Insert Operation

Whenever an element is to be inserted, first locate its proper location. Start searching from the root node, then if the data is less than the key value, search for the empty location in the left subtree and insert the data. Otherwise, search for the empty location in the right subtree and insert the data.
Algorithm
Node * Insert(Node * root, int data)
{
if(root == nullptr)
{
Node * NN = new Node();
root = NN;
root->data = data;
root->left = root ->right = NULL;
}
else
{
if(data < root->data)
{
root->left = Insert(root->left, data);
}
else
{
root->right = Insert(root->right, data);
}
}
return root;
}

Deletion Operation in BST

In a binary search tree, the deletion operation is performed with O(log n) time complexity. Deleting a node from Binary search tree has following three cases:-
Case 1: Deleting a Leaf node (A node with no children)
Step 1: Find the node to be deleted using search operation
Step 2: Delete the node using free function (If it is a leaf) and terminate the function.
Case 2: Deleting a node with one child
Step 1: Find the node to be deleted using search operation
Step 2: If it has only one child, then create a link between its parent and child nodes.
Step 3: Delete the node using free function and terminate the function.
Case 3: Deleting a node with two children
Step 1: Find the node to be deleted using search operation
Step 2: If it has two children, then find the largest node in its left subtree (OR) the smallest node in its right subtree.
Step 3: Swap both deleting node and node which found in above step.
Step 4: Then, check whether deleting node came to case 1 or case 2 else goto steps 2
Step 5: If it comes to case 1, then delete using case 1 logic.
Step 6: If it comes to case 2, then delete using case 2 logic.
Step 7: Repeat the same process until node is deleted from the tree.

Do you want to learn Java Programming?