text:
Barbara Pacheco
Jan Hiller
Kelly School of Business - Indiana University-Bloomington
Jeremy Hayes
Florida Bankers Association
Enterprise Mobility Management / BYOD , Governance , Next-Generation Technologies & Secure Development
10 Tips for Evolved Defense
The Hackers' Tactics Are Evolving; So Must Yours Information Security Media Group • September 12, 2012 11 Minutes
The information security threat landscape has evolved considerably over the past six years, and it's time that organizations' defenses evolve to match them, says Tom Kellermann of Trend Micro.
"Much of the threat landscape today is not about viruses; it's not about worms," Kellermann says. "It's really about targeted attacks that are being leveraged via the web."
Web-based malware, web-injection attacks, attacks on mobile devices - these are among the most common threats today. And they pose significant challenges to individuals as well as organizations.
"If I hack your mobile device or tablet in today's environment, which is actually fairly easy to do, I can actually hack your physical reality," Kellermann says. Once a hacker knows an individual's location, business and contacts, credentials can be stolen, and significant damage can be done.
Because the battlefield has changed, so must organizations' defenses. "We have to stop focusing on building better fortresses in cyberspace," he says. "In fact, we have to focus on building better prisons."
In an interview, Kellermann discusses:
Today's evolving threat landscape;
Why defenses have failed to evolve;
Ten specific steps organizations can follow to respond appropriately to these threats.
Kellermann is responsible for analysis of emerging cybersecurity threats and relevant defensive technologies, strategic partnerships and government affairs. He served as a commissioner on The Commission on Cyber Security for the 44th Presidency and serves on the board of the National Cyber Security Alliance, The International Cyber Security Protection Alliance and the National Board of Information Security Examiners Panel for Penetration Testing. He is a Professor at American University's School of International Service and is a Certified Information Security Manager (CISM).
Formerly holding the position as Chief Technology Officer at AirPatrol Corporation, Kellermann spent five years as Vice President of Security Awareness for Core Security. Previously, he was the Senior Data Risk Management Specialist for the World Bank Treasury Security Team, where he was responsible for internal cyber-intelligence and policy and for advising central banks around the world about their cyber-risk posture and layered security architectures. He co-authored the book "E-safety and Soundness: Securing Finance in a New Age."
TOM FIELD: We're going to talk about the evolving threat landscape and defenses, but first I would like to hear a little bit about you and your career as an ethical hacker.
TOM KELLERMANN: I'm a foreign service brat. My father was a U.S. diplomat so I grew up in Latin America without a TV and with a computer, and for the past 26 years I have been working on cybersecurity as an adolescent all the way through to script kiddie to trained ethical hacker. My first job coming out of grad school was the deputy head of security for the World Bank Treasury Security Team where I was responsible for evaluating the security of central banks that connected to the World Bank and IMF.
FIELD: You've got a unique perspective. Give us some insight. How is today's threat landscape evolving?
KELLERMANN: Ever since 2005 there has been a significant uptick in both automation and artificial intelligence and attack code. 2005 was the beginning of the year of intelligence botnets, and as we've seen these botnets grow we've seen a lot of them become facilitated through updatable code that could be provided through the Internet. Much of the threat landscape today is not about viruses; it's not about worms. It's really about targeted attacks that are being leveraged via the web - web-based malware, web injection attacks, as well as attacks on mobile devices that are flourishing right now.
What's interesting about that by the way is in today's landscape, not only are you dealing with specifically targeted attacks against you as an individual or your organization, where they've done enough reconnaissance to understand who you trust, what kind of verbiage you trust, what kind of applications you use, what type of networks you depend upon. But in addition to that, when they hack you in cyberspace, it's far more nefarious in terms of what's possible. What I mean by that is that if I hack your mobile device or your tablet in today's environment, which is actually very easy to do, I can actually hack your physical reality. Because of the fact that device shows me your location, once inside your calendar I can ascertain not only what important meetings you have going on, but whom you're with, and I can turn on the microphone in that setting and get transcripts of those conversations and/or launch Bluetooth through wireless against anyone sitting at that boardroom table.
FIELD: Given these capabilities, how do you see hackers changing their tactics in how they approach their targets?
KELLERMANN: They're very much focused on conducting reconnaissance. What they've seen in the underground themselves is not only the advancement of capabilities but the automation of the weaponry. You have these arms bazaars of individuals who are extremely capable, who don't focus on hacking so much as developing the latest and greatest attack tools for distribution. For example, the Blackhole exploit kit is a great example, or SpyEye, or the evolution of Zeus trojans, where not only are they beginning to attack mobile devices and going after financial transactions, but they automate the transfer and the money laundering of those funds.
Essentially, back in the day you were dealing with one bullet, one-gun weaponry or you're dealing with viruses that would spread widely that inevitably you would identify those signatures and you'd be able to eradicate. In today's environment you hear much about the advanced persistent threats, but those are no longer the monopolies of regimes and governments. There are a multitude of organized crime syndicates and elite hackers who are producing that type of advanced weaponry for sale in the underground. So if you are a Fortune 500 company or you do business with one, you're being targeted at this moment.
FIELD: Let's talk about targeted organizations. You've already talked about how the threats and the attackers are evolving. How about the defenses? Are they evolving as well?
KELLERMANN: The first thing we need to appreciate about the defenses is that the defenses have been very much focused on the old-school paradigm of perimeter defense. Much like the city of Constantinople was finally sacked in 1453 by Ottoman Sultan, it really speaks to the reality that warfare has changed essentially and crime has changed, and firewalls, encryption and virus scanners are good and necessary, but they're not impenetrable to the targeted attacks that we see today.
So by understanding that, we also need to appreciate that the cyber kill chain has evolved to include a maintenance phase. What I mean by that is once they infest your network, what they do besides stealing your credentials and having significant lateral movement within your application and your sister and partner networks is that they actually patch the holes that they exploited to get in your system. They actually clean the host that they compromise to make sure no hackers have a footprint, and they've actually shifted their command-and-control to reside within your ecosystem so that you yourself cannot ascertain whether or not there's command-and-control that exists from afar when dealing with a targeted attack.
Given that, the defenses have to change. We have to stop focusing on building greater fortresses in cyber space, but in fact we have to figure out how to build a better prison. How can we increase the level of discomfort to the adversary when they have a footprint within our system to a point where they have to choose between resources, their own time, or giving away their location, i.e. attribution, in order to maintain that persistent presence?
FIELD: Let's talk about this some. We've got organizations today that are investing unprecedented resources in information security. Where do you see their defenses most out of alignment with the changing threat vectors?
KELLERMANN: They're very much focused on perimeter defenses. They're very much focused on compliance exercises. They're not allowing offense to inform defense as was illustrated by the Comprehensive National Cyber Initiative. I think most of these folks, before they begin to invest in these technologies, need to revisit the game of Chess, and they need to really begin to understand that given today's threat landscape, where web-based attacks are significant, wherein mobile users are being heavily targeted, wherein traditional black-listing technologies are insufficient, where as in you move to virtualization and cloud computing, the reality is you have no visibility into virtual machines, and your IPSes are becoming irrelevant if they can't understand how virtual machines react in your environment.
It's fundamental that they focus now on securing their cloud environments, creating strategies to migrate to a layered security framework in the cloud, revisiting how they deal with third-parties that could be the conduits of attacks into their ecosystems, making sure that they go beyond just having MDMs [mobile device managers] in place to secure their mobile devices, and lastly really beginning to do a real evaluation of the specialized threat detection technologies that exists out there, particularly the ones that can offer them customizable sandboxes where and when they have to deal with the targeted attack, can they then not only replicate their environments to see how this would react, but more importantly can they query some sort of global actionable threat in conscience in the process to understand, "Yes, we've seen this type of sniper before. They've used this type of bullet. They usually sit up on this type of birds nest and essentially this is how they operate."
For too long, organizations have been buying technologies that focus on, "Yes, this is the bullet you were shot with. Yes, this is the wound." But it never allows you with great situational awareness to ascertain how that's relevant, how that's part of the larger campaign or cyber kill chain attacks that have been leveraged in the global context. I think it's about that global context and that situational awareness that's fundamental.
FIELD: You work with organizations every day trying to solve these issues. What advice do you offer for how to get started and how to evolve an organization's defenses to match these threats?
KELLERMANN: First and foremost, I would recommend that all organizations do the following things. First, really begin to audit through penetration testing, not a traditional SAS 70 audit, the security of your third-parties to manage service providers and strategic partners that have direct conduits into your ecosystem. That's fundamental.
Second, move away from multi-factor authentication. Move fully to two-factor authentication, especially your systems administrators who are often times targeted as the weak links in your ecosystem.
Third, make sure that your cloud security strategy and mobile security strategy are created in parallel, in conjunction with one another, because they're one in the same. Remember your mobile devices are merely the endpoints of the cloud infrastructure and the VDI infrastructure that you're going to be rolling out in the future. And make sure that when you move to the cloud that you fundamentally appreciate that you can't just migrate to the cloud and depend solely on encryption to protect you. Things like file integrity monitoring, intrusion protection, advanced logging and virtual shielding are a necessity when you migrate to this new fangled web-free environment.
Lastly, really begin to deploy technology like Deep Discovery, which is a new technology we've developed at Trend Micro that allows you specialized threat protection, multiple protocol analysis and evaluation with custom sandboxing, to understand the lateral movements of attackers if they're already inside your network. Let's face it, Shawn Henry, former head of FBI's Cyber Intrusion Division, noted there are two types of organizations in the world. They're the ones that know they have been hit and the ones that just don't know they've been hit. The problem is in today's landscape you really have to assume that the enemy is already inside of your house and you have to focus on marginalizing the presence of that adversary to a point where in you can better fortify your enclave against these types of staged and blended attacks.
Visa's New End-to-End Encryption Service
Ron Ross on New Risk Assessment Guide
Ransom-Demanding Gangs Target Fresh Victims: Patients
https://ffiec.bankinfosecurity.com/interviews/10-tips-for-evolved-defense-i-1653


text:
Q: Read ints from .txt file into numpy array I'm tring to read 4 ints from simple .txt array as described in this question
genfromtxt : read ints from space separated .txt file
but I want it as 2D numpy array.
def read_data():
    data = np.genfromtxt('Skin_NonSkin.txt', dtype=(int, int, int, int))

    print type(data)
    print data.shape
    print data[0]
    print type(data[0])
    print data[0].shape
    print data[0][1]

    return data

it gives me
<type 'numpy.ndarray'>
(245057L,)
(74, 85, 123, 1)
<type 'numpy.void'>
()
85

So how to properly read the data or convert it to 2D nampy array with shape (245057,4)?

A: just use:
data = np.genfromtxt('Skin_NonSkin.txt', dtype=np.int32)

You are creating a 1D array of (int,int,int,int) but what you really want is a 2D array of np.int32.

redpajama_set_name: RedPajamaStackExchange


text:
Guinea's fake pregnant healer jailed
A court in Guinea has sentenced a traditional healer to five years in prison for conning women into thinking they were pregnant. The court found N'na Fanta Camara guilty of fraud and impersonating a doctor by giving the women harmful substances and endangering their lives. Her victims and rights groups said they were disappointed with…
But for God, I'd have been lynched today – 'suspended' Wa Poly Rector
Prof Emmanuel Marfo-Owusu, the embattled Rector of the Wa Polytechnic has been explaining how he managed to escape a mob attack on campus on Monday afternoon.According to him, but for God's intervention, "these people would have lynched me today," he said.Some angry lecturers at the Wa Polytechnic chased Prof Emmanuel Marfo-Owusu out of campus with…
Two get 66 months imprisonment for jailbreak at Kwabenya
The Accra Circuit Court on Monday sentenced two more of the seven inmates who escaped from the Kwabenya Police Station to 66 months imprisonment. The convicts, Kofi Darko, 25, a trader and Emmanuel Kotey, 24, a motor rider were handed the sentence after they pleaded guilty to escaping from lawful custody and conspiracy to escape…
Agric Minister leads delegation to Agro fair in Czech Republic
The Minister of Food and Agriculture, Dr Owusu Afriyie Akoto has led a Ghanaian delegation to this year's TECHAGRO fair in the Czech Republic to learn at first hand, best practices and seek collaboration in various areas of the Agric sector to help improve food production and food security. The TECHAGRO 2018 which is to…

redpajama_set_name: RedPajamaCommonCrawl


text:
In his nearly two-and-a-half hour Archive interview, Milton Delugg (1918-2015) talks about his early professional jobs, before his service in World War II, including a job in the orchestra at Paramount. He describes the days of network radio and early television, where he worked with such personalities as Abe Burrows and Morey Amsterdam. He speaks about his role as conductor (and accordion player) on the variety series Broadway Open House, a precursor to The Tonight Show. He comments on his association with several shows from the 1950s and early 1960s, including The Paul Winchell and Jerry Mahoney Show, as well as a string of game shows. Delugg then discusses his one-and-a-half-year stint as the orchestra leader of The Tonight Show Starring Johnny Carson, taking the reins in between Skitch Henderson and Doc Severinsen. For The Tonight Show, he talks about the rehearsal process and gives his impressions of host Carson and sidekick Ed McMahon. He then speaks in great detail about his long association with producer Chuck Barris and his participation on all of his most well-known series: The Dating Game, The Newlywed Game, The Gong Show, The $1.98 Beauty Show, and others. He goes into great detail about The Gong Show, in which he comments about the panelists who appeared and the unscripted nature of the show. Lastly, he talks about his many years with the annual Macy's Thanksgiving Day Parade. Throughout the interview, Delugg notes his many original compositions, including: "Orange-Colored Sky" (a hit for Nat King Cole) and "Roller Coaster" (for What's My Line?). B-roll consists of photos of Delugg with such notables as Frank Loesser, Jerry Lester, Dagmar, Bing Crosby, Morey Amsterdam, Al Jolson, Johnny Carson, Chuck Barris, and John Lennon. Stephen J. Abramson conducted the interview on May 5, 2008 in Studio City, CA.
"I brought Dagmar on the show because Jerry Lester had picked her, and I said, 'What's she supposed to do?' And he said, 'She's the girl singer with the band." So I introduced her that night. I said, 'Jerry, this is Dagmar. She's the chick with the band.' He said, 'How does she sound?' And I said, 'Who cares?" I guess it was my first laugh. After that, I had lines to do."
Milton Delugg on conducting the "Milton Delugg and the Band with a Thug" band on The Gong Show, and on the outrageous acts on the show
Milton Delugg on NBC exec Pat Weaver's idea to have morning, noon and night shows on NBC, and on becoming bandleader on the night show Broadway Open House (precursor to The Tonight Show)
Milton Delugg on the rules regarding live music on television and how Dick Clark eventually changed them
Milton Delugg on working on The Morey Amsterdam Show (NBC and ABC)
Milton Delugg on working on Treasure Hunt, and on the show's personnel making deals with potential contestants
Milton Delugg on working on the music for many Macy's Thanksgiving Day Parade broadcasts
On his childhood and early influences; on his early music career where he played "jazz" accordion
On his college education; on joining the Paramount staff orchestra; on working with Frank Loesser and Marty Melnick; on his World War II service where he worked on radio show
On working on the Broadway musical "Very Warm for May" composed by Jerome Kern with a libretto by Oscar Hammerstein; on working with Abe Burrows; on his friend Pat Weaver's idea to have a morning, afternoon and evening show on NBC's TV schedule; on wanting to be part of early television; on Broadway Open House
On working on The Morey Amsterdam Show
On the rules regarding live music on television and how Dick Clark eventually changed them
On working with Herb Shriner on Two for the Money; on working on Abe Burrows' Almanac
On being conductor on Broadway Open House and working with host Jerry Lester and "girl singer" Dagmar; on the production aspects of the show; on working on Seven at Eleven; on the start of The Tonight Show with host Steve Allen
On working on Paul Winchell's television shows
On Carol Burnett's role on The Paul Winchell and Jerry Mahoney Show; on The Doodles Weaver Show; on Colgate Comedy Hour; on Dagmar's Canteen; on The Bill Cullen Show
On working with Fred Allen on Judge for Yourself; on working on Treasure Hunt (where the show's personnel made deals with potential contestants); on I've Got a Secret; on working on Beat the Clock and Dollar a Second
On composing the theme to What's My Line?; on working with Bill Todman and Mark Goodson; on recording television themes; on composing the theme ("Hooray for Santa Claus") for the film Santa Claus Conquers the Martians; on the advent of pre-recorded music; on directing the music for the Macy's Thanksgiving Parade
On being hired as conductor on The Tonight Show starring Johnny Carson; on working with the band; on working with musical guests; on being on-camera on the show
On working with producer Chuck Barris; on composing for The Newlywed Game and The Dating Game; on working on Chuck Barris' revivals of Treasure Hunt and Your Hit Parade; on being the bandleader for The Gong Show (and all of the antics that ensued)
On The Gong Show, including how contestants were chosen, and on working with some of the celebrity judges
On working on various Chuck Barris productions; on various specials
On working on the music for many Macy's Thanksgiving Day Parade broadcasts
On his then-current projects; on his career favorites; on working with Chuck Barris; on his advice to aspiring musicians; on how he would like to be remembered
On photos illustrating some of his career highlights and people he worked with
Milton Delugg on working with Abe Burrows and others when he transitioned to television
Milton Delugg on working on Abe Burrows' Almanac
Milton Delugg on working on Beat the Clock and Dollar a Second
Milton Delugg on working on The Bill Cullen Show
Milton Delugg on being conductor on Broadway Open House and working with host Jerry Lester and "girl singer" Dagmar, and on the production aspects of the show
Milton Delugg on working on The Colgate Comedy Hour
Milton Delugg on working on Dagmar's Canteen
Milton Delugg on composing music for Chuck Barris' The Newlywed Game and The Dating Game
Milton Delugg on working on The Doodles Weaver Show
Milton Delugg on The Gong Show, including how contestants were chosen and on working with some of the celebrity judges
Milton Delugg on working with Fred Allen on Judge for Yourself
Milton Delugg on working with pre-recorded music cues on the Macy's Thanksgiving Day Parade and other live events
Milton Delugg on working on Paul Winchell's shows
Milton Delugg on Carol Burnett's role on The Paul Winchell and Jerry Mahoney Show
Milton Delugg on the genesis of The Tonight Show with host Steve Allen, and on getting called to be the conductor on the Tonight Show Starring Johnny Carson
Milton Delugg on being hired as conductor (replacing Skitch Henderson) on The Tonight Show starring Johnny Carson, on working with the band, on working with musical guests, and on being on-camera on the show
Milton Delugg on playing accordion on Treasure Hunt
Milton Delugg on the 1974 revival of the game show Treasure Hunt
Milton Delugg on working with Herb Shriner on Two for the Money
Milton Delugg on composing the theme to What's My Line
Milton Delugg on the 1974 short-lived revival of Your Hit Parade
Censorship / Standards & Practices
Milton Delugg on the censorship issues on The Gong Show
Industry Crossroads
Quiz Show Scandals
Bandleader Milton Delugg on NBC exec Pat Weaver's idea to have morning, noon and night shows on NBC, and on becoming bandleader on the night show Broadway Open House (precursor to The Tonight Show)
Milton Delugg on working with producer Chuck Barris; on composing for The Newlywed Game and The Dating Game, and on being the bandleader for The Gong Show (and all of the antics that ensued)
Milton Delugg on Abe Burrows Almanac
Milton Delugg on Abe Burrows' wit
Bandleader Milton Delugg on working on Dagmar's Canteen
Milton Delugg being conductor on Broadway Open House and working with host Jerry Lester and "girl singer" Dagmar, and on the production aspects of the show
Milton Delugg on working with Frank Loesser


text:
Scene Onnu Nammude Veedu is a 2012 Indian Malayalam-language film directed by Shyju Anthikkad.

Background
The story was written by assistant director Ottappalam Unni. Lal plays the character of Ottapalam Unni and Navya Nair returned to Malayalam cinema as the character Manju, a mother, whose world is her son. K. K. Narayanadas produced the movie. It is the final film Thilakan appeared in.

Cast
 Lal as Ottappalam Unni
 Navya Nair as Manju
 Master Priyadarshan as Kannan
 Thilakan as Vishwan (Dubbed by his son Shobi Thilakan)
 Asif Ali as himself
 Lalu Alex as K. K. Jose
 Shritha Sivadas as Parvathy
 Harisree Ashokan as Bhasi
 Riyaz Khan as Amal
 Sudheesh
 Raghavan
 Kalabhavan Shajohn
 Sunil Sukhada
 Shivaji Guruvayoor as Rajan
 Manikuttan as Rafique
 Ambika Mohan as Shyama Teacher
 Augustine
 Shammi Thilakan
 Sasi Kalinga
 Urmila Unni as K. K. Jose's wife
 Swapna Menon as K. K. Jose's daughter
 Anjali Aneesh Upasana as TV Reporter

Reception
One reviewer said, "The plot is borrowed from at least a dozen films made on the same theme. Yet, it is the charm of the lead pair that holds our attention."

References

External links
 Scene 1 Nammude Veedu at the Malayalam Movie Database

2012 films
2010s Malayalam-language films
Films directed by Shyju Anthikkad

redpajama_set_name: RedPajamaWikipedia


An all-new version of our classic power base, the EASE® 2.
0 California king adjustable base, now at RC Willey, lets you take complete control of your sleeping space, with nearly unlimited head and foot lift positions for sitting, reading, working or watching TV. The wireless remote includes one-touch preset buttons and backlit, soft-touch function keys so you can adjust in the dark. And its Zero-Gravity preset takes the pressure off your back while you sleep, elevating your head and feet to closely simulate weightlessness.
Power bases offer a variety of benefits. Ergonomic alignment. Pressure relief. Customized sleep positions. And clinical studies have suggested that the use of power bases helps open airways to reduce snoring. They're an essential part of a holistic sleep system and a key ingredient for superior sleep.
Compatible with Tempur-Pedic, Stearns & Foster and Sealy mattresses.
Control your base with a wireless remote, which includes one-touch preset buttons and backlit, soft-touch function keys so you can adjust in the dark.
Adapt your bed to your ideal height at any time by shortening or elongating the adjustable legs on your base to flat, 3, 6 or 9 inches.
Fit your power base easily into your existing bedroom furniture, with or without legs. With Zero Clearance, your base will easily fit inside platform beds for sleek, modern bedroom design.
Take complete control of your sleeping space, with nearly unlimited head and foot lift positions, for sitting, reading, working or watching TV.
With the tap of a button, take the pressure off your back while you sleep – elevating your head and feet to closely simulate weightlessness.
More size options than ever before across our entire collection of bases. Horizontal bases enable a seamless sleep surface between you and your partner.
For Split King and Split Cal King models, a cord is provided to connect the two control boxes if a single remote is desired.
Enables easy pairing between control box and remote – operating at 2.4GHz.


text:
Cellular & Molecular Biology Letters
Loureirin B inhibits the proliferation of hepatic stellate cells and the Wnt/β-catenin signaling pathway by regulating miR-148-3p
Jian-Peng Hu1 na1,
Rong Zhang1 na1,
Min Tang2,
Yu-Lian Li2,
Lin-Ting Xun2,
Zhi-Zhou Shi1,
Ying An2,
Ting Li2 &
Zheng-Ji Song2
Cellular & Molecular Biology Letters volume 23, Article number: 35 (2018) Cite this article
We investigated the activity of loureirin B against liver fibrosis and the underlying molecular mechanisms.
Hepatic stellate cells (HSCs) from Sprague-Dawley rats were treated with different concentrations of loureirin B. We used the MTT assay to determine HSC proliferation, flow cytometry to analyze apoptosis, and western blot to determine the expressions of Bax, Bcl-2, Wnt1 and β-catenin. Real-time PCR was used to determine the expressions of Wnt1 and miR-148-3p.
The MTT assay showed that loureirin B treatment significantly inhibited the proliferation of HSCs in time- and dose-dependent manners. Loureirin B significantly promoted the apoptosis of HSCs, increased the expression of Bax and decreased the Bcl-2 level. Western blot analysis showed that the expressions of Wnt1 and β-catenin were obviously lower in the loureirin B treatment group than in the control group. We also found that loureirin B could decrease the Wnt1 mRNA level and increase miR-148-3p expression. Knockdown of miR-148-3p using inhibitor could reverse the effects of loureirin B on the proliferation and apoptosis of HSCs and the expressions of Bax, Bcl-2, Wnt1 and β-catenin.
Our results suggest that loureirin B inhibited the proliferation and promoted the apoptosis of HSCs, and suppressed the Wnt/β-catenin signaling pathway via regulation of miR-148-3p.
Liver fibrosis is caused by repeated healing, repair and interstitial reconstruction after chronic liver injury. The activation of hepatic stellate cells (HSCs) is a critical event in liver fibrosis because these cells are the primary source of extracellular matrix in the injured liver [1]. Promoting HSC apoptosis and inhibiting HSC activation, proliferation and extracellular matrix production are important therapeutic approaches in cases of liver fibrosis. As the Wnt/β-catenin signaling pathway plays a vital role in the proliferation, differentiation, division, migration and apoptosis of HSCs, aberrant activation of this pathway may induce hepatic fibrogenesis. It was recently reported that blocking the Wnt/β-catenin signaling pathway is a crucial method to treat hepatic fibrogenesis [2, 3].
Wnt1 is a key member of the canonical Wnt/β-catenin signaling pathway, which activates the disheveled proteins, inhibits GSK-3 kinase, and accumulates β-catenin in the nucleus, and finally activates the β-catenin target genes. In this study, we explored the roles and molecular mechanisms for loureirin B in liver fibrosis. Our results indicate that loureirin B inhibited the proliferation and promoted the apoptosis of activated HSCs, and inhibited the Wnt signaling pathway via regulation of miR-148-3p.
Preparation, culture, identification and treatment of HSCs
Sixteen 400- to 450-g male Sprague-Dawley rats (specific pathogen free, from the Laboratory Animal Center of Chinese Academy of Sciences) were used in this study. Isolation of HSCs was performed as previously described [4]. Briefly, the liver was digested and perfused with collagenase IV (Worthington Biochemical Corporation), chain protease E and DNaseI solution, and then HSCs were isolated from the non-parenchymal liver cell (NPLC) fraction using 12% Nycodenz density gradient centrifugation (Nycodenz).
The primary HSCs were cultured in Dulbecco's modified Eagle's medium (DMEM) High Glucose (Gibco) supplemented with 20% fetal bovine serum (FBS; GE Healthcare Life Sciences), 100 μg/ml penicillin and 100 μg/ml streptomycin, at 37 °C in a humid incubator containing 5% CO2. HSCs were identified via vitamin A lipid droplet auto-fluorescence using a fluorescence microscopy (Nikon Corporation), and HSC viability and purity were found to be above 90%. Activated HSCs were identified with immunofluorescence staining of α-SMA, which was the marker of activated HSCs after 1 week [5], and then treated with loureirin B. This study was approved by the Medical Ethics Committee of the First People's Hospital of Yunnan Province.
Loureirin B and inhibitor of miR-148-3p
Loureirin B was obtained from the National Institute for the Control of Pharmaceutical and Biological Products of China, and reconstituted in DMSO at a final stock concentration of 20 mg/ml. The inhibitor of miR-148-3p was produced by GenePharma.
Detection of cell proliferation
Activated HSCs were cultured at a density of 105 per ml in DMEM High Glucose supplemented with 10% FBS in 96-well plates (100 μl/well), and then treated with 12.5, 25, 50, 100, 200 or 400 ng/μl loureirin B (concentrations based on the results of previous studies) [6, 7]. Two hours before the end of the incubation, 20 μl of the above-mentioned MTT solution was added to each well. Incubation was at 37 °C for 2 h. The inhibitory rates of activated HSC (aHSC) proliferation were determined by measuring absorbance at 570 nm.
The Apoptosis Detection Kit (BD Biosciences) was used to detect the apoptosis of HSCs. Activated HSCs that were treated with loureirin B were washed twice with cold PBS, and then suspended using 1× binding buffer at a concentration of 1 × 106 cells/ml. Then 100 μl of the solution (1 × 105 cells) was added to 5 ml culture, followed by 5 μl PI and 5 μl of FITC Annexin V. This was incubated for 15 min at room temperature in the dark, then 400 μl of 1× binding buffer was added to each tube. Analysis was done with a FACScan Cytometer (BD Accuri C6; BD Biosciences).
Specific antibodies of Wnt1, β-catenin, Bax and Bcl-2 (Santa Cruz Biotechnology) were used for western blot. HSCs were washed three times with ice-cold PBS and lysed in 100 to 500 μl RIPA lysis buffer (p0013B, Beyotime, supplemented with 1% PMSF). Cell debris was removed by centrifugation at 13,000×g for 30 min at 4 °C. Protein samples were boiled with 5× SDS-PAGE loading buffer for 10 min and subjected to electrophoresis in denaturing 10% SDS-polyacrylamide gel. Then proteins were transferred onto a polyvinylidene fluoride membrane (Millipore). The membrane was washed with Tris-buffered saline Tween (TBST), and blocked with 5% bovine serum albumin (BSA). The image was quantitatively analyzed using FluorChem V2.0 software.
Real-time PCR was performed to detect the relative expression level of Wnt1. PCR was performed in a total volume of 20 μl, including 10 μl of 2× Power SYBR Green PCR Master Mix (Applied Biosystems), 2 μl of cDNA (5 ng/μl) and 1 μl of primer mix (10 μM each). PCR amplification and detection were performed in a LightCycler 480 II (Roche Applied Science) as follows: an initial denaturation at 95 °C for 10 min; and 40 cycles of 95 °C for 15 s and 60 °C for 1 min. The relative gene expression was calculated using the comparative CT Method. The gene expressions of the target gene were normalized to an endogenous reference (GAPDH), and their values relative to the calibrator were obtained with the formula 2−ΔΔCt. ΔCT was calculated by subtracting the average GAPDH CT from the average CT of the gene of interest. The ratio defines the level of relative expression of the target gene to that of GAPDH.
Hairpin-it miR-148-3p qRT-PCR Primer Set (GenePharma) was used for the measurement of the relative quantity of miR-148-3p. The mRNA expression of miR-148-3p was normalized to the endogenous expression of U6.
Statistical analyses were performed using SSPS18.0 software. Data are presented as means ± standard deviations (ranges). The differences between the control group and treatment group were compared with the Student's t-test. p < 0.05 was regarded as statistically significant.
Separation and identification of HSCs
We used an inverted phase contrast microscope to observe the primary quiescent HSCs separated from the rat liver. It is easy to see the spontaneous green fluorescence, but it disappeared quickly. The cells also contained many refractive granules. After culture for about 1 week, the HSCs changed their phenotype from quiescent to activated. Immunofluorescence staining showed that the positive expression of α-smooth muscle actin (α-SMA) was above 90%, and the shapes of aHSC changed to a star (not shown).
Loureirin B inhibits the proliferation and promotes the apoptosis of HSCs and downregulates the expression of Bcl-2
We treated the HSCs with loureirin B, and found that it significantly inhibited their proliferation in a dose-dependent manner (Fig. 1a). We also assessed the inhibitory effects of loureirin B in different time, and the results showed that loureirin B also inhibited the proliferation of HSCs in a time dependent manner (Fig. 1b). Using flow cytometry assay, we further found that loureirin B could promote the apoptosis of HSCs in a dose dependent manner (Fig. 2a and b). Western blotting assay showed that loureirin B increased the expression of Bax and decreased the level of Bcl-2, and the expression of Bcl-2 in 100 ng/μl loureirin B group was lower than that in 50 ng/μl loureirin B group (Fig. 3a).
Loureirin B inhibits the proliferation of HSCs. a Activated hepatic stellate cells (aHSCs) were treated with 12.5, 25, 50, 100, 200 or 400 ng/μl loureirin B for 48 h, and then detected using the MTT assay. b aHSCs were treated with 100 ng/μl loureirin B for 24, 48 and 72 h, and then detected using the MTT assay. The experiments were repeated three times. *p < 0.05; **p < 0.01; ***p < 0.001
Loureirin B promotes the apoptosis of HSCs. a Activated hepatic stellate cells (aHSCs) were treated with 50 and 100 ng/μl loureirin B for 48 h, and then assessed using flow cytometry. b Statistical analysis of flow cytometry results. Data are the means ± SEM from four independent experiments. *p < 0.05; **p < 0.01; ***p < 0.001
Loureirin B increased Bax expression, decreased Bcl-2 expression, and inactivated the Wnt/β-catenin signaling pathway. a and b Effect of loureirin B on the expression levels of Bax, Bcl-2, Wnt1 and β-catenin, as detected via western blot assay and statistically analyzed using Student's t-test. Data are the means ± SEM from four independent experiments. *p < 0.05; **p < 0.01; ***p < 0.001
Loureirin B inhibits the proliferation and promotes the apoptosis of HSCs, and inhibits the Wnt/β-catenin signaling pathway via regulation by regulating miR-148-3p
Activating the Wnt/β-catenin signaling pathway was reported to promote liver fibrosis [8], so we explored whether loureirin B affected this pathway. Our western blot results showed that loureirin B significantly reduced the protein expression levels of Wnt1 and β-catenin (Fig. 3b), and that 100 ng/μl loureirin B had a higher inhibitory effect on the expressions of Wnt1 and β-catenin than 50 ng/μl loureirin B (Fig. 3b). Using real-time PCR, we found that loureirin B also decreased the mRNA level of Wnt1 (Fig. 4a). Using TargetScan, we predicted that miR-148-3p could target Wnt1.
Loureirin B decreased the expression of Wnt1 via upregulation of miR-148-3p. a and b The expression levels of Wnt1 and miR-148-3p were detected using real-time PCR. c Using the miR-148-3p inhibitor to silence miR-148-3p. d Knockdown of miR-148-3p increased the loureirin B-decreased Wnt1 mRNA level detected using real-time PCR. Data are the means ± SEM from four independent experiments. *p < 0.05; **p < 0.01; ***p < 0.001
Then we detected the expression of miR-148-3p in the HSCs treated with loureirin B. The results showed that loureirin B significantly increased miR-148-3p expression (Fig. 4b). To confirm that loureirin B inhibited the Wnt/β-catenin signaling pathway via regulation of miR-148-3p, we used an inhibitor to reduce its expression in the loureirin B-treated HSCs (Fig. 4c). The results showed that knockdown of miR-148-3p increased the Wnt1 mRNA and protein levels that had been reduced by loureirin B treatment (Figs 4d and 5a). We also found that silencing the miR-148-3p in loureirin B-treated cells could reverse the effects of loureirin B on the expressions of β-catenin, Bax and Bcl-2 (Fig. 5a and b).
Loureirin B regulated the Wnt/β-catenin signaling pathway and the expressions of Bax and Bcl-2 via upregulation of miR-148-3p. a Knockdown of miR-148-3p increased the loureirin B-decreased Wnt1 and β-catenin, as detected via western blot. b Knockdown of miR-148-3p downregulated the loureirin B-increased Bax and upregulated the loureirin B-decreased Bcl-2 expression. Data are the means ± SEM from four independent experiments. *p < 0.05; **p < 0.01; ***p < 0.001
These results indicate that loureirin B inhibited the Wnt/β-catenin signaling pathway via regulation of miR-148-3p. Silencing miR-148-3p could reduce loureirin B-induced apoptosis and enhance loureirin B-suppressed proliferation of HSCs (Fig. 6a and b). These results indicate that loureirin B affected the proliferation and apoptosis of HSCs via regulation of miR-148-3p.
Loureirin B inhibits the proliferation and promotes the apoptosis of HSCs via regulation of miR-148-3p. a and b Flow cytometry was used to analyze the apoptosis of HSCs when inhibitor was applied to silence the miR-148-3p expression. c The proliferation of HSCs was detected using the MTT assay. Data are the means ± SEM from four independent experiments. *p < 0.05; **p < 0.01; ***p < 0.001
The activation of HSCs is considered an important event in liver fibrosis, and epithelial–mesenchymal transition (EMT) plays an important role in HSC activation [9]. HSCs have several important functions under both physiological and pathological conditions associated with sinusoids [10]. In the healthy liver, HSCs have two morphologically distinguishable forms: the quiescent HSCs characterized by small cell size and low proliferating activity [11]; and the activated form [12, 13]. Under physiological conditions, quiescent HSCs store about 75% of total body vitamin A in lipid droplets in the cytoplasm, participate in the metabolism of extracellular matrix in liver sinusoids, and regulate the bleeding functions of sinusoids [10, 14, 15]. In response to liver injury, HSCs change from quiescent to activated [12, 13], with this transition is caused by the inflammatory factors, such as TGF-β1, PDGF, VEGF, TNF and so on, which were produced by immune cells, Kupffer cells and endothelial cells. Activated HSCs proliferate vigorously, lose vitamin A, express α-SMA, and synthesize a large amount of extra-cellular matrix (ECM) components [16]. The activated HSCs also change to fibroblasts or myofibroblasts [17]. It is clear that TGF-β1 could promote HSC activation [18]. HSCs could produce and secrete TGF-β1 through autocrine and paracrine manners, while TGF-β1 could promote HSC proliferation and accumulation of ECM in the liver, leading to liver fibrosis [19].
Resina draconis is a special resin derived from the fruit and stem of certain palm trees, such as Dracaena cochinchinensis (Lour.) S. C. Chen, with the efficacy of promoting blood circulation and angiogenesis, diminishing inflammation, relieving pain and stopping bleeding. Loureirin B is one of the most important chemical compositions and physiologically active ingredients of resina draconis. It has the molecular structure propan-1-one, 1-(4-hydroxyphenyl)-3-(2, 4, 6-trimethoxyphenyl)- 1-(4-hydroxyphenyl)-3-(2, 4, 6-trimethoxyphenyl) propan-1-one.
Jiang et al. reported that loureirin B was the inhibitor of PAI-1 (IC50 = 26.10 μM) which was the natural inhibitor of tissue-type and urokinase-type plasminogen activators. Loureirin B could inhibit the formation of the PAI-1/uPA complex [20]. Loureirin B could promote insulin secretion by upregulating the mRNA expressions of Pdx-1, MafA and the intracellular ATP level, and inhibiting the KATP current [17]. He et al. reported that loureirin B downregulated p-ERK and p-JNK in TGF-β1-stimulated fibroblasts and cultured hypertrophic scar tissue ex vivo, and further affected the expressions of Col1 and FN [6]. In hypertrophic scar fibroblasts, loureirin B could dose-dependently reduce the mRNA and protein levels of type I collagen (CoII), type III collagen (ColIII) and α-smooth muscle actin (α-SMA) by regulating MMPs and TIMPs, inhibit scar fibroblast proliferation and suppress TGF-β1-induced fibrosis, possibly via TGF-β1/Smad2/3 pathway [7]. Our study found that loureirin B inhibited HSC proliferation, promoted Hsc apoptosis, and suppressed the Wnt signaling pathway via regulating miR-148-3p.
The Wnt/β-catenin signaling pathway plays important roles in HSC activation [21]. Wnt1 is an essential component of the canonical Wnt/β-catenin signaling pathway, which leads to the activation of disheveled proteins, inhibition of GSK-3β kinase, nuclear accumulation of β-catenin, and finally activation of Wnt target genes [22]. Inhibiting the expression of Wnt1 maybe an attractive method to block the Wnt/β-catenin signaling pathway, thereby inhibiting the activation of HSCs.
Our findings indicate that loureirin B inhibited HSC proliferation, promoted HSC apoptosis, and downregulated the expression of Bcl-2. Very interestingly, loureirin B inhibited the Wnt/β-catenin signaling pathway via regulation of miR-148-3p in HSCs.
There have been no reports about the correlation between miR-148-3p and HSC function. Our results found that miR-148-3p was involved in the regulation of lourerin B on HSC proliferation and apoptosis. Our findings suggest that three major aspects of loureirin B activity – inhibition of HSC proliferation, promotion of HSC apoptosis, and inactivation of the Wnt/β-catenin signaling pathway – occur via regulation of miR-148-3p.
Extra-cellular matrix
HSCs:
Hepatic stellate cells
NPLCs:
Non-parenchymal liver cells
α-SMA:
α-smooth muscle actin
Lan T, Li C, Yang G, Sun Y, Zhuang L, Ou Y, Li H, Wang G, Kisseleva T, Brenner D, Guo J. Sphingosine kinase 1 promotes liver fibrosis by preventing miR-19b-3p-mediated inhibition of CCR2. Hepatology. 2018; https://doi.org/10.1002/hep.29885.
Yang MD, Chiang YM, Higashiyama R, Asahina K, Mann DA, Mann J, Wang CC, Tsukamoto H. Rosmarinic acid and baicalin epigenetically derepress peroxisomal proliferator-activated receptor gamma in hepatic stellate cells for their antifibrotic effect. Hepatology. 2012;55:1271–81. https://doi.org/10.1002/hep.24792.
Hernandez-Gea V, Friedman SL. Pathogenesis of liver fibrosis. Annu Rev Pathol. 2011;6:425–56. https://doi.org/10.1146/annurev-pathol-011110-130246.
Shi MN, Huang YH, Zheng WD, Zhang LJ, Chen ZX, Wang XZ. Relationship between transforming growth factor beta1 and anti-fibrotic effect of interleukin-10. World J Gastroenterol. 2006;12:2357–62.
Qin S, Jiang H, Su S, Wang D, Liang Z, Zhang J, Yang W. Inhibition of hepatic stellate cell proliferation by bone marrow mesenchymal stem cells via regulation of the cell cycle in rat. Exp Ther Med. 2012;4:375–80. https://doi.org/10.3892/etm.2012.628.
He T, Bai X, Yang L, Fan L, Li Y, Su L, Gao J, Han S, Hu D. Loureirin B Inhibits Hypertrophic Scar Formation via Inhibition of the TGF-beta1-ERK/JNK Pathway. Cell Physiol Biochem. 2015;37:666–76. https://doi.org/10.1159/000430385.
Bai X, He T, Liu J, Wang Y, Fan L, Tao K, Shi J, Tang C, Su L, Hu D. Loureirin B inhibits fibroblast proliferation and extracellular matrix deposition in hypertrophic scar via TGF-beta/Smad pathway. Exp Dermatol. 2015;24:355–60. https://doi.org/10.1111/exd.12665.
Xiang T, Zhang S, Cheng N, Ge S, Wen J, Xiao J, Wu X. Oxidored-nitro domain-containing protein 1 promotes liver fibrosis by activating the Wnt/beta-catenin signaling pathway in vitro. Mol Med Rep. 2017;16:5050–4. https://doi.org/10.3892/mmr.2017.7165.
Zheng J, Wang W, Yu F, Dong P, Chen B, Zhou MT. MicroRNA-30a Suppresses the Activation of Hepatic Stellate Cells by Inhibiting Epithelial-to-Mesenchymal Transition. Cell Physiol Biochem. 2018;46:82–92. https://doi.org/10.1159/000488411.
Geerts A. History, heterogeneity, developmental biology, and functions of quiescent hepatic stellate cells. Semin Liver Dis. 2001;21:311–35. https://doi.org/10.1055/s-2001-17550.
Friedman SL. Seminars in medicine of the Beth Israel Hospital, Boston. The cellular basis of hepatic fibrosis. Mechanisms and treatment strategies. N Engl J Med. 1993;328:1828–35. https://doi.org/10.1056/NEJM199306243282508.
Casu A, Canepa M, Nanni G. Perisinusoidal stellate cells or Ito cells and their role in hepatic fibrosis. Pathologica. 1994;86:467–99.
Senoo H, Sato M, Imai K. Hepatic stellate cells--from the viewpoint of retinoid handling and function of the extracellular matrix. Kaibogaku Zasshi. 1997;72:79–94.
Hendriks HF, Verhoofstad WA, Brouwer A, de Leeuw AM, Knook DL. Perisinusoidal fat-storing cells are the main vitamin A storage sites in rat liver. Exp Cell Res. 1985;160:138–49.
Wake K. Perisinusoidal stellate cells (fat-storing cells, interstitial cells, lipocytes), their related structure in and around the liver sinusoids, and vitamin A-storing cells in extrahepatic organs. Int Rev Cytol. 1980;66:303–53.
Senoo H, Imai K, Matano Y, Sato M. Molecular mechanisms in the reversible regulation of morphology, proliferation and collagen metabolism in hepatic stellate cells by the three-dimensional structure of the extracellular matrix. J Gastroenterol Hepatol. 1998;13:S19–32. https://doi.org/10.1111/jgh.1998.13.s1.19.
Sha Y, Zhang Y, Cao J, Qian K, Niu B, Chen Q. Loureirin B promotes insulin secretion through inhibition of KATP channel and influx of intracellular calcium. J Cell Biochem. 2018;119:2012–21. https://doi.org/10.1002/jcb.26362.
Wynn TA. Cellular and molecular mechanisms of fibrosis. J Pathol. 2008;214:199–210. https://doi.org/10.1002/path.2277.
Mabuchi A, Mullaney I, Sheard PW, Hessian PA, Mallard BL, Tawadrous MN, Zimmermann A, Senoo H, Wheatley AM. Role of hepatic stellate cell/hepatocyte interaction and activation of hepatic stellate cells in the early phase of liver regeneration in the rat. J Hepatol. 2004;40:910–6. https://doi.org/10.1016/j.jhep.2004.02.005.
Jiang Y, Zhang G, Yan D, Yang H, Ye Z, Ma T. Bioactivity-Guided Fractionation of the Traditional Chinese Medicine Resina Draconis Reveals Loureirin B as a PAI-1 Inhibitor. Evid Based Complement Alternat Med. 2017;2017:9425963. https://doi.org/10.1155/2017/9425963.
Sun H, Chen G, Wen B, Sun J, An H, Pang J, Xu W, Yang X, He S. Oligo-peptide I-C-F-6 inhibits hepatic stellate cell activation and ameliorates CCl4-induced liver fibrosis by suppressing NF-kappaB signaling and Wnt/beta-catenin signaling. J Pharmacol Sci. 2018; https://doi.org/10.1016/j.jphs.2018.01.003.
Daniels DL, Eklof Spink K, Weis WI. beta-catenin: molecular plasticity and drug design. Trends Biochem Sci. 2001;26:672–8.
National Natural Science Foundation of China (No. 81560107 and 81160062) and the Science and Technology Application Project of Yunnan Province (No. 2014FB091).
All the data were generated during the study.
Jian-Peng Hu and Rong Zhang contributed equally to this work.
Medical School, Kunming University of Science and Technology, Kunming, 650500, Yunnan province, China
Jian-Peng Hu
, Rong Zhang
& Zhi-Zhou Shi
Department of Gastroenterology, the First People's Hospital of Yunnan province, the Affiliated Hospital of Kunming University of Science and Technology, Kunming, 650032, Yunnan province, China
Min Tang
, Yu-Lian Li
, Lin-Ting Xun
, Ying An
, Ting Li
& Zheng-Ji Song
Search for Jian-Peng Hu in:
Search for Rong Zhang in:
Search for Min Tang in:
Search for Yu-Lian Li in:
Search for Lin-Ting Xun in:
Search for Zhi-Zhou Shi in:
Search for Ying An in:
Search for Ting Li in:
Search for Zheng-Ji Song in:
SZJ designed the research. HJP, TM, LYL, XLT, AY, LT, ZR and SZJ performed the research. HJP, SZZ and SZJ analyzed the data. HJP and SZJ wrote the paper. All authors read and approved the final manuscript.
Correspondence to Zheng-Ji Song.
This study was approved by the Medical Ethics Committee of the First People's Hospital of Yunnan Province.
Hu, J., Zhang, R., Tang, M. et al. Loureirin B inhibits the proliferation of hepatic stellate cells and the Wnt/β-catenin signaling pathway by regulating miR-148-3p. Cell Mol Biol Lett 23, 35 (2018) doi:10.1186/s11658-018-0098-9
Accepted: 26 June 2018
Loureirin B
Liver fibrosis
Wnt1
miR-148-3p


text:
package Data::Serializer;

use warnings;
use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

use Carp;
use IO::File;
require 5.004 ;
require Exporter;
#require AutoLoader;

#@ISA = qw(Exporter AutoLoader);
@ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.

@EXPORT = qw( );
@EXPORT_OK = qw( );

$VERSION = '0.46';

# Preloaded methods go here.
{
  my %_internal;
  my %_fields = (
                  serializer => 'Data::Dumper',
                  digester   => 'SHA-256',
                  cipher     => 'Blowfish',
                  encoding   => 'hex',
                  compressor => 'Compress::Zlib',
                  secret     => undef,
                  portable   => '1',
                  compress   => '0',
                  raw        => '0',
                  options    => {},
                 #transient   => '0',
            serializer_token => '1',
                );
  sub new {
    my ($class, %args) = @_;
    my $dataref = {%_fields};
    foreach my $field (keys %_fields) {
      $dataref->{$field} = $args{$field} if exists $args{$field};
    }

    $dataref->{_key} = rand
      until $dataref->{_key} && !exists $_internal{$dataref->{_key}};

    $_internal{$dataref->{_key}} = $dataref;
    my $self = \$dataref->{_key};
    bless $self, $class;
    #opting to not even warn on this, I don't think anyone ever used it as it never did get published on CPAN.
    #If I am wrong and this is in production use, contact me
    #if (eval "require Tie::Transient") {
    #  warn "Support for Tie::Transient is deprecated\n";
    #}

    #load serializer module if it is defined
    return $self;
  }
  sub _serializer_obj {
    my $self = (shift);
    my $id = $$self;
    my $serializer;
    if (@_) {
      #if argument, then use it for serializing.
      $serializer = (shift);
    } else {
      $serializer = $_internal{$id}->{serializer};
    }
    $_internal{$id}->{serializer_obj}->{options} = $self->options();
    bless $_internal{$id}->{serializer_obj}, "Data::Serializer::$serializer";
  }
  sub serializer {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{serializer};
    if (@_) {
      $_internal{$id}->{serializer} = (shift);
    }
    return $return;
  }
  sub digester {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{digester};
    if (@_) {
      my $value = (shift);
      $_internal{$id}->{digester} = $value;
    }
    return $return;
  }
  sub cipher {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{cipher};
    if (@_) {
      $_internal{$id}->{cipher} = (shift);
    }
    return $return;
  }
  sub compressor {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{compressor};
    if (@_) {
      $_internal{$id}->{compressor} = (shift);
    }
    return $return;
  }
  sub secret {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{secret};
    if (@_) {
      $_internal{$id}->{secret} = (shift);
    }
    return $return;
  }
  sub encoding {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{encoding};
    if (@_) {
      $_internal{$id}->{encoding} = (shift);
    }
    return $return;
  }
  sub portable {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{portable};
    if (@_) {
      $_internal{$id}->{portable} = (shift);
    }
    return $return;
  }
  sub options {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{options};
    if (@_) {
      $_internal{$id}->{options} = (shift);
    }
    return $return;
  }
  sub compress {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{compress};
    if (@_) {
      $_internal{$id}->{compress} = (shift);
    }
    return $return;
  }
  sub raw {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{raw};
    if (@_) {
      $_internal{$id}->{raw} = (shift);
    }
    return $return;
  }
  sub serializer_token {
    my $self = (shift);
    my $id = $$self;
    my $return = $_internal{$id}->{serializer_token};
    if (@_) {
      $_internal{$id}->{serializer_token} = (shift);
    }
    return $return;
  }
  sub _module_loader {
    my $self = (shift);
    my $id = $$self;
    my $module_name = (shift);
    return if (exists $_internal{$id}->{loaded_modules}->{$module_name});
    if (@_) {
      $module_name = (shift) . "::$module_name";
    }
    my $package = $module_name;
    $package =~ s|::|/|g;
    $package .= ".pm";
    eval { require $package };
    if ($@) {
      carp "Data::Serializer error: " .
           "Please make sure $package is a properly installed package.\n";
      return undef;
    }
    $_internal{$id}->{loaded_modules}->{$module_name} = 1;
  }

}

#END of public functions, all following functions are for internal use only

#Documentation follows

=head1 NAME

Data::Serializer:: - Modules that serialize data structures

=head1 SYNOPSIS

  use Data::Serializer;

  $obj = Data::Serializer->new();

  $obj = Data::Serializer->new(
                          serializer => 'Storable',
                          digester   => 'MD5',
                          cipher     => 'DES',
                          secret     => 'my secret',
                          compress   => 1,
                        );

  $serialized = $obj->serialize({a => [1,2,3],b => 5});
  $deserialized = $obj->deserialize($serialized);
  print "$deserialized->{b}\n";

=head1 DESCRIPTION

Provides a unified interface to the various serializing modules
currently available.  Adds the functionality of both compression
and encryption.

=head1 EXAMPLES

=over 4

=item  Please see L<Data::Serializer::Cookbook(3)>

=back

=head1 METHODS

=over 4

=item B<new> - constructor

  $obj = Data::Serializer->new();

  $obj = Data::Serializer->new(
                         serializer => 'Data::Dumper',
                         digester   => 'SHA-256',
                         cipher     => 'Blowfish',
                         secret     => undef,
                         portable   => '1',
                         compress   => '0',
                   serializer_token => '1',
                           options  => {},
                        );

B<new> is the constructor object for Data::Serializer objects.

=over 4

=item

The default I<serializer> is C<Data::Dumper>

=item

The default I<digester> is C<SHA-256>

=item

The default I<cipher> is C<Blowfish>

=item

The default I<secret> is C<undef>

=item

The default I<portable> is C<1>

=item

The default I<encoding> is C<hex>

=item

The default I<compress> is C<0>

=item

The default I<compressor> is C<Compress::Zlib>

=item

The default I<serializer_token> is C<1>

=item

The default I<options> is C<{}> (pass nothing on to serializer)

=back

=item B<serialize> - serialize reference

  $serialized = $obj->serialize({a => [1,2,3],b => 5});

Serializes the reference specified.

Will compress if compress is a true value.

Will encrypt if secret is defined.

=item B<deserialize> - deserialize reference

  $deserialized = $obj->deserialize($serialized);

Reverses the process of serialization and returns a copy
of the original serialized reference.

=item B<freeze> - synonym for serialize

  $serialized = $obj->freeze({a => [1,2,3],b => 5});

=item B<thaw> - synonym for deserialize

  $deserialized = $obj->thaw($serialized);

=item B<raw_serialize> - serialize reference in raw form

  $serialized = $obj->raw_serialize({a => [1,2,3],b => 5});

This is a straight pass through to the underlying serializer,
nothing else is done. (no encoding, encryption, compression, etc)

=item B<raw_deserialize> - deserialize reference in raw form

  $deserialized = $obj->raw_deserialize($serialized);

This is a straight pass through to the underlying serializer,
nothing else is done. (no encoding, encryption, compression, etc)

=item B<secret> - specify secret for use with encryption

  $obj->secret('mysecret');

Changes setting of secret for the Data::Serializer object.  Can also be set
in the constructor.  If specified than the object will utilize encryption.

=item B<portable> - encodes/decodes serialized data

Uses B<encoding> method to ascii armor serialized data

Aids in the portability of serialized data.

=item B<compress> - compression of data

Compresses serialized data.  Default is not to use it.  Will compress if set to a true value
  $obj->compress(1);

=item B<raw> - all calls to serializer and deserializer will automatically use raw mode

Setting this to a true value will force serializer and deserializer to work in raw mode
(see raw_serializer and raw_deserializer).  The default is for this to be off.

=item B<serializer> - change the serializer

Currently have 8 supported serializers: Storable, FreezeThaw, Data::Denter, Config::General, YAML,
PHP::Serialization,  XML::Dumper, and Data::Dumper.

Default is to use Data::Dumper.

Each serializer has its own caveat's about usage especially when dealing with
cyclical data structures or CODE references.  Please see the appropriate
documentation in those modules for further information.

=item B<cipher> - change the cipher method

Utilizes Crypt::CBC and can support any cipher method that it supports.

=item B<digester> - change digesting method

Uses Digest so can support any digesting method that it supports.  Digesting
function is used internally by the encryption routine as part of data verification.

=item B<compressor> - changes compresing module

Currently Compress::Zlib and Compress::PPMd are the only options

=item B<encoding> - change encoding method

Encodes data structure in ascii friendly manner.  Currently the only valid options
are hex, or b64.

The b64 option uses Base64 encoding provided by MIME::Base64, but strips out newlines.

=item B<serializer_token> - add usage hint to data

Data::Serializer prepends a token that identifies what was used to process its data.
This is used internally to allow runtime determination of how to extract Serialized
data.   Disabling this feature is not recommended.

=item B<options> - pass options through to underlying serializer

Currently is only supported by Config::General, and XML::Dumper.

  my $obj = Data::Serializer->new(serializer => 'Config::General',
                                  options    => {
                                             -LowerCaseNames       => 1,
                                             -UseApacheInclude     => 1,
                                             -MergeDuplicateBlocks => 1,
                                             -AutoTrue             => 1,
                                             -InterPolateVars      => 1
                                                },
                                              ) or die "$!\n";

  or

  my $obj = Data::Serializer->new(serializer => 'XML::Dumper',
                                  options    => { dtd => 1, }
                                  ) or die "$!\n";

=item B<store> - serialize data and write it to a file (or file handle)

  $obj->store({a => [1,2,3],b => 5},$file, [$mode, $perm]);

  or

  $obj->store({a => [1,2,3],b => 5},$fh);

Serializes the reference specified using the B<serialize> method
and writes it out to the specified file or filehandle.

If a file path is specified you may specify an optional mode and permission as the
next two arguments.  See L<IO::File> for examples.

Trips an exception if it is unable to write to the specified file.

=item B<retrieve> - read data from file (or file handle) and return it after deserialization

  my $ref = $obj->retrieve($file);

  or

  my $ref = $obj->retrieve($fh);

Reads first line of supplied file or filehandle and returns it deserialized.

=back

=head1 AUTHOR

Neil Neely <F<neil@neely.cx>>.

Feature requests are certainly welcome.

http://neil-neely.blogspot.com/

=head1 BUGS

Please report all bugs here:

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Data-Serializer

=head1 TODO

Extend the persistent framework.  Perhaps  L<Persistent::Base(3)> framework
would be useful to explore further.  Volunteers for putting this together
would be welcome.

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2001-2008 Neil Neely.  All rights reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.2 or,
at your option, any later version of Perl 5 you may have available.

See http://www.perl.com/language/misc/Artistic.html

=head1 ACKNOWLEDGEMENTS

Gurusamy Sarathy and Raphael Manfredi for writing MLDBM,
the module which inspired the creation of Data::Serializer.

And thanks to all of you who have provided the feedback
that has improved this module over the years.

In particular I'd like to thank Florian Helmberger, for the
numerous suggestions and bug fixes.

=head1 DEDICATION

This module is dedicated to my beautiful wife Erica.

=head1 SEE ALSO

=over 4

=item  L<Data::Dumper(3)>

=item  L<Data::Denter(3)>

=item  L<Data::Taxi(3)>

=item L<Storable(3)>

=item L<FreezeThaw(3)>

=item L<Config::General(3)>

=item L<YAML(3)>

=item L<YAML::Syck(3)>

=item L<PHP::Serialization(3)>

=item L<XML::Dumper(3)>

=item L<JSON(3)>

=item L<JSON::Syck(3)>

=item L<Compress::Zlib(3)>

=item L<Compress::PPMd(3)>

=item L<Digest(3)>

=item L<Digest::SHA(3)>

=item L<Crypt(3)>

=item L<MIME::Base64(3)>

=item L<IO::File(3)>

=back

=cut

sub _serialize {
  my $self = (shift);
  my @input = @{(shift)};#original @_
  my $method = (shift);
  $self->_module_loader($method,"Data::Serializer");	#load in serializer module if necessary
  my $serializer_obj = $self->_serializer_obj($method);
  return $serializer_obj->serialize(@input);
}
sub _compress {
  my $self = (shift);
  $self->_module_loader($self->compressor);
  if ($self->compressor eq 'Compress::Zlib') {
    return Compress::Zlib::compress((shift));
  } elsif ($self->compressor eq 'Compress::PPMd') {
    my $compressor = Compress::PPMd::Encoder->new();
    return $compressor->encode((shift));
  }
}
sub _decompress {
  my $self = (shift);
  $self->_module_loader($self->compressor);
  if ($self->compressor eq 'Compress::Zlib') {
    return Compress::Zlib::uncompress((shift));
  } elsif ($self->compressor eq 'Compress::PPMd') {
    my $compressor = Compress::PPMd::Decoder->new();
    return $compressor->decode((shift));
  }
}

sub _create_token {
  my $self = (shift);
  return '^' . join('|', @_) . '^';
}
sub _get_token {
  my $self = (shift);
  my $line = (shift);
  #Should be anchored to beginning
  #my ($token) =  $line =~ /\^([^\^]+?)\^/;
  my ($token) =  $line =~ /^\^([^\^]{1,120}?)\^/;
  return $token;
}
sub _extract_token {
  my $self = (shift);
  my $token = (shift);
  return split('\|',$token);
}
sub _remove_token {
  my $self = (shift);
  my $line = (shift);
  $line =~ s/^\^[^\^]{1,120}?\^//;
  return $line;
}
sub _deserialize {
  my $self = (shift);
  my $input = (shift);
  my $method = (shift);
  $self->_module_loader($method,"Data::Serializer");	#load in serializer module if necessary
  my $serializer_obj = $self->_serializer_obj($method);
  $serializer_obj->deserialize($input);
}

sub _encrypt {
  my $self = (shift);
  my $value = (shift);
  my $cipher = (shift);
  my $digester = (shift);
  my $secret = $self->secret;
  croak "Cannot encrypt: No secret provided!" unless defined $secret;
  $self->_module_loader('Crypt::CBC');
  my $digest = $self->_endigest($value,$digester);
  my $cipher_obj = Crypt::CBC->new($secret,$cipher);
  return $cipher_obj->encrypt($digest);
}
sub _decrypt {
  my $self = (shift);
  my $input = (shift);
  my $cipher = (shift);
  my $digester = (shift);
  my $secret = $self->secret;
  croak "Cannot encrypt: No secret provided!" unless defined $secret;
  $self->_module_loader('Crypt::CBC');
  my $cipher_obj = Crypt::CBC->new($secret,$cipher);
  my $digest = $cipher_obj->decrypt($input);
  return $self->_dedigest($digest,$digester);
}
sub _endigest {
  my $self = (shift);
  my $input = (shift);
  my $digester = (shift);
  $self->_module_loader('Digest');
  my $digest = $self->_get_digest($input,$digester);
  return "$digest=$input";
}
sub _dedigest {
  my $self = (shift);
  my $input = (shift);
  my $digester = (shift);
  $self->_module_loader('Digest');
  my ($old_digest) = $input =~ /^([^=]+?)=/;
  return undef unless (defined $old_digest);
  $input =~ s/^$old_digest=//;
  my $new_digest = $self->_get_digest($input,$digester);
  return undef unless ($new_digest eq $old_digest);
  return $input;
}
sub _get_digest {
  my $self = (shift);
  my $input = (shift);
  my $digester = (shift);
  my $ctx = Digest->new($digester);
  $ctx->add($input);
  return $ctx->hexdigest;
}
sub _enhex {
  my $self = (shift);
  return join('',unpack 'H*',(shift));
}
sub _dehex {
  my $self = (shift);
  return (pack'H*',(shift));
}

sub _enb64 {
  my $self = (shift);
  $self->_module_loader('MIME::Base64');
  my $b64 = MIME::Base64::encode_base64( (shift), '' );
  return $b64;
}

sub _deb64 {
  my $self = (shift);
  $self->_module_loader('MIME::Base64');
  return MIME::Base64::decode_base64( (shift) );
}

# do all 3 stages
sub freeze { (shift)->serialize(@_); }
sub thaw { (shift)->deserialize(@_); }

sub serialize {
  my $self = (shift);
  my ($serializer,$cipher,$digester,$encoding,$compressor) = ('','','','','');

  if ($self->raw) {
    return $self->raw_serialize(@_);
  }

  #we always serialize no matter what.

  #define serializer for token
  $serializer = $self->serializer;
  my $value = $self->_serialize(\@_,$serializer);

  if ($self->compress) {
    $compressor = $self->compressor;
    $value = $self->_compress($value);
  }

  if (defined $self->secret) {
    #define digester for token
    $digester = $self->digester;
    #define cipher for token
    $cipher = $self->cipher;
    $value = $self->_encrypt($value,$cipher,$digester);
  }
  if ($self->portable) {
    $encoding = $self->encoding;
    $value = $self->_encode($value);
  }
  if ($self->serializer_token) {
    my $token = $self->_create_token($serializer,$cipher, $digester,$encoding,$compressor);
    $value = $token . $value;
  }
  return $value;
}

sub store {
  my $self = (shift);
  my $data = (shift);
  my $file_or_fh = (shift);

  if (ref($file_or_fh)) {
    #it is a file handle so print straight to it
    print $file_or_fh $self->serialize($data), "\n";
    #We didn't open the filehandle, so we shouldn't close it.
  } else {
    #it is a file, so open it
    my ($mode,$perm) = @_;
    unless (defined $mode) {
      $mode = O_CREAT|O_WRONLY;
    }
    unless (defined $perm) {
      $perm = 0600;
    }
    my $fh = new IO::File;
    $fh->open($file_or_fh, $mode,$perm) || croak "Cannot write to $file_or_fh: $!";
    print $fh $self->serialize($data), "\n";
    $fh->close();
  }
}

sub retrieve {
  my $self = (shift);
  my $file_or_fh = (shift);
  if (ref($file_or_fh)) {
    #Read in whole file at once
    #local $/;
    #it is a file handle so read straight from it
    my $input = join('', <$file_or_fh>);
    chomp($input);
    return $self->deserialize($input);
    #We didn't open the filehandle, so we shouldn't close it.
  } else {
    my $fh = new IO::File;
    $fh->open($file_or_fh, O_RDONLY) ||  croak "Cannot read from $file_or_fh: $!";
    #Read in whole file at once
    #local $/;
    my $input = join('', <$fh>);
    chomp($input);
    $fh->close;
    return $self->deserialize($input);
  }
}

sub raw_serialize {
  my $self = (shift);
  my $serializer = $self->serializer;
  return $self->_serialize(\@_,$serializer);
}

sub _encode {
  my $self = (shift);
  my $value = (shift);
  my $encoding = $self->encoding;
  if ($encoding eq 'hex') {
    return $self->_enhex($value);
  } elsif ($encoding eq 'b64') {
    return $self->_enb64($value);
  } else {
    croak "Unknown encoding method $encoding\n";
  }
}

sub _decode {
  my $self = (shift);
  my $value = (shift);
  my $encoding = (shift);
  if ($encoding eq 'hex') {
    return $self->_dehex($value);
  } elsif ($encoding eq 'b64') {
    return $self->_deb64($value);
  } elsif ($encoding !~ /\S/) {
    #quietly ignore empty encoding
    return $value;
  } else {
    croak "Unknown encoding method $encoding\n";
  }
}

sub raw_deserialize {
  my $self = (shift);
  my $serializer = $self->serializer;
  return $self->_deserialize((shift),$serializer);
}

sub deserialize {
  my $self = (shift);

  if ($self->raw) {
    return $self->raw_deserialize(@_);
  }

  my $value = (shift);
  my $token = $self->_get_token($value);
  my ($serializer,$cipher, $digester,$encoding, $compressor);
  my $compress = $self->compress;
  if (defined $token) {
    ($serializer,$cipher, $digester,$encoding, $compressor) = $self->_extract_token($token);

    #if compressor is defined and has a value then we must decompress it
    $compress = 1 if ($compressor);
    $value = $self->_remove_token($value);
  } else {
    $serializer = $self->serializer;
    $cipher = $self->cipher;
    $digester = $self->digester;
    $compressor = $self->compressor;
    if ($self->portable) {
      $encoding = $self->encoding;
    }
  }
  if (defined $encoding) {
    $value = $self->_decode($value,$encoding);
  }
  if (defined $self->secret) {
    $value = $self->_decrypt($value,$cipher,$digester);
  }
  if ($compress) {
    $value = $self->_decompress($value);
  }
  #we always deserialize no matter what.
  my @return = $self->_deserialize($value,$serializer);
  return wantarray ? @return : $return[0];
}

1;
__END__

redpajama_set_name: RedPajamaGithub


text:
Palicourea calothyrsus is a species of plant in the family Rubiaceae. It is endemic to Ecuador.

References

Flora of Ecuador
calothyrsus
Vulnerable plants
Taxonomy articles created by Polbot


text:
Mary-Margaret Fill
Deputy State Epidemiologist
Tennessee Department of Health
Nashville , Tennessee
conscientious, diligent, passionate
the dedication, skill, and passion of the people I work with every day
I've performed in front of a crowd of >100,000 people dozens of times - as a 4-year member of The Ohio State University Marching band (TBDBITL).
As the deputy state epidemiologist, Dr. Mary-Margaret Fill has played an important role in helping Tennessee combat the COVID-19 pandemic. Serving as a liaison between the on-the-ground public health teams and senior leadership at the Tennessee Department of Health and the Governor's Office, Mary Margaret has helped officials explain the intricacies of the underlying data about the virus's spread and how the state was responding to the pandemic.
Prior to the pandemic, Mary-Margaret was selected for the highly competitive Emerging Leaders in Biosecurity Fellowship through the Johns Hopkins Center for Health Security and served a two-year fellowship as an Epidemic Intelligence Service Officer at the Centers for Disease Control and Prevention. She was also chosen as the sole divisional representative to serve on a Tennessee Department of Health Commissioner of Health "rising stars" workgroup addressing public health message translation.
Mary-Margaret received her MD from the Mercer University School of Medicine, an MPH from Vanderbilt University, and a BS in microbiology with a minor in security and intelligence from The Ohio State University in Columbus.
My work in public health is more than a job or career. It is a lifelong commitment to public service and the betterment of the public's health.
PREVIOUS Jessica Ehule NEXT Justin Garoutte


Wow! Brighten up your home, or workplace this Christmas. This LED light up plaque makes a stunning centrepiece, and brightens up any table, shelf, or wall, whilst adding a touch of chic to the decor.
Measuring approx 20 x 20 x 3.5 cm the red wooden plaque has a sliding door on the reverse, which contains the lights and battery compartment, and requires 2 x AA batteries. There is a metal hook on the reverse, enabling it to be attached to the wall if required.


text:
UW Oshkosh Today
Three College of Nursing alumnae recognized for their dedication to healthcare
by Amanda Rice | Sep 11, 2019 | Alumni News, CON, Headlines | 0 comments
The College of Nursing has no shortage of remarkable graduates, with three alumnae receiving University of Wisconsin Oshkosh Alumni Association awards this fall.
Christine Ludwig '97, will receive the Distinguished Alumni Award while Amber Carriveau '09 MSN and '12 DNP, and Nardalyn Johnson '05 and '06, will both receive the Outstanding Young Alumni Award.
The three alumnae have helped pave the way toward improving healthcare in their respective fields and are among the exceptional graduates who will be recognized at the Alumni Awards Celebration Oct. 18 in conjunction with Homecoming Weekend.
Christine Ludwig: Distinguished Alumni Award
Ludwig, of San Antonio, Texas, completed a bachelor's degree in nursing at UW Oshkosh and has since become a diplomat for healthcare within Army clinics.
Following her 1997 graduation, she's held an exciting career serving in the U.S. Army Nurse Corps—not only as a professional nurse, but also as a soldier and leader. Her career has allowed her to live and work in five different states and two countries. Her most recent achievement is a new role as director of patient care integration for the Office of the Surgeon General at Defense Health Headquarters in Virginia.
In the award nomination, MaryAnn Monteith, an instructional academic staff member in the College of Nursing, said that Ludwig quickly climbed the ranks. She was selected, generally ahead of her peers, to take on greater responsibilities and to run and improve the care provided within Army clinics. She also recalls that Ludwig served as a Gold Bar Recruiter for the UWO Reserve Officer's Training Corps (ROTC) brigade, saying that it was a rare honor for her as a nurse lieutenant.
"She is an expert clinical nurse, educator and consummate leader and officer. Her career of military positions is distinguished by innovation," Monteith said. "Colonel Ludwig is a credit to the University of Wisconsin Oshkosh and is most deserving of the Distinguished Alumni Award."
During her 26 years of service, Ludwig has used her achievements and prestigious career background to help improve Army healthcare practices. She has implemented policies and programs as well as established the Warrior Transition Unit at the Walter Reed Army Medical Center in Washington, D.C.
Ludwig attributes her success to the solid foundation that UW Oshkosh helped build for her.
"The UWO Nursing program was phenomenal and provided me with a strong nursing skill set and knowledge base that really started my nursing career off on the right path," she said. "I am very thankful for the knowledge and skills the UWO organizations, the Army ROTC program and the College of Nursing imparted on me. There is no doubt the education and experiences UWO provided has led to my success."
Amber Carriveau: Outstanding Young Alumni Award
After graduating with her bachelor's degree from UW-Madison, Carriveau of Holt, Michigan, completed her education at UW Oshkosh, receiving her Master's of Science degree in Nursing (MSN) in 2009 and Doctorate of Nursing Practice (DNP) in 2012. From there, she used her education to help teach and inspire college students during their journey of becoming healthcare professionals.
Upon graduation with her MSN, Carriveau obtained full-time employment as a Family Nurse Practitioner at Bellin Health Emergency Department and continued working there full-time as she completed her DNP.
In 2014, she transitioned her practice to focus on women's health and providing holistic, comprehensive care. Also during that time, she began her career in academics as a part-time adjunct faculty member in the family nurse practitioner program at Bellin College. It was there that she discovered her interest in the academic nursing field. She worked her way to a full-time faculty member before stepping into the role of director of the Family Nurse Practitioner Program.
As she advanced her career, Carriveau made it a point to maintain her clinical practice in women's health. According to her, it's imperative for nurse practitioners in an academic environment to maintain their clinical skills and patient relationships in order to successfully lead and teach students.
"The reality of continuing practice in an ever-changing healthcare arena, role models to students the mission and vision of being a professional nurse," Carriveau explained.
Currently, Carriveau has relocated to Michigan and is working as the director of the family nurse practitioner program at the research-intensive Michigan State University. It is there that she helps create an innovative, student-based curriculum that embraces evidence-based practice in primary care.
"I cherish and am thankful for the great educational opportunities and experiences I was provided while a student at UW Oshkosh," said Carriveau. "My goal is to take my foundational education and the relationships established with nursing faculty to my current position and beyond."
Nardalyn Johnson: Outstanding Young Alumni Award
Jamaica native, Nardalyn Johnson of McHenry, Illinois, has used her two very different degrees to her advantage in securing a successful career and helping to improve the use of health records within healthcare practices.
In 2005, Johnson graduated from UWO with a Bachelor of Business Administration degree in management information systems. She went on to complete the accelerated nursing program, earning a Bachelor of Nursing degree in 2006.
Johnson received a scholarship and an offer of employment with Mercy Medical Center before graduating. She relocated to Milwaukee, where she worked with the Medical College of Wisconsin as a research nurse in nephrology and the transplant clinic, then with Froedert Health as a nurse informatics specialist. When the informatics field took off, there was a high demand for nurses with IT background throughout the U.S.
Today, Johnson is a certified nurse informaticist and works as a senior epic clinical consultant, assisting hospitals throughout the United States with the implementation, upgrade and maintenance of their electronic health record system in emergency departments and urgent care settings.
Johnson commends UWO as being the foundation that she needed for her career success.
"My background in IT and nursing directed my decision to become a nurse informaticist; thereby successfully integrating nursing science, information science and computer science to manage and communicate clinical data and information throughout various healthcare organizations," she said.
Through the years, Johnson has given back to the UWO community by working as an academic instructor for the UWO College of Nursing for several years and has funded the Johnson Reece Nurse Caring Scholarship for students.
Ludwig, Carriveau and Johnson will be among those honored at UWO's Alumni Awards Celebration on Friday, Oct. 18, at the Culver Family Welcome Center. The cost is $40 per person and includes dinner. For more information or to RSVP for the event, call (920) 424-3449 or send an email to alumni@uwosh.edu.
UWO alumni reinvent themselves, continue to serve others in twilight of careers
UWO alumni award winners dedicate careers in service to education
Pair of UW Oshkosh criminal justice alumnae excel in diverse careers
Ten top UW Oshkosh alumni to receive 2019 honors
Tweets by @uwoshkosh
UW Oshkosh
UW Oshkosh in the News
Meeting tomorrow's feeding challenges today
Titan women get back on track with win at River Falls
Balanced scoring helps Titans rout Falcons
UW Oshkosh MBA students excel
Gift to UWO establishes professorship
Resolve to make difference in new year


text:
Bingo Loyalty & VIP Schemes
Sue Dawson
Updated: 30th Nov 2020
Almost all online bingo sites currently have some kind of a rewards scheme for their loyal players, but in practice these vary widely from brilliant to quite frankly rubbish. A good VIP scheme can keep players happy through years of play.
For 2021 the future of VIP schemes is in doubt due to fears that they enable and encourage problem gamblers – a real concern as reportedly 8% of VIPs across all UK sites have a problem of this type. The Gambling Commission set up an industry working group led by GVC (the owners of Gala Bingo, who certainly know a thing or two about how to run a VIP scheme) whose remit was to work out how player incentives, especially those associated with VIP schemes, could be offered in a way that makes gambling "fairer, safer and crimefree". The new rules took effect from the end of October 2020 and we have yet to see how existing schemes will adapt.
For the moment, there are several different forms a loyalty / VIP scheme can take:
Loyalty points schemes
Loyalty points are typically given out when you play with real cash (not bonus) and can be redeemed for bingo or slots bonus.
Loyalty points may also be given out as prizes in chat games and promotions (e.g. refer a friend) or as prizes in special bingo games.
Loyalty points awarded as prizes in chat games are usually subject to a daily or weekly limit and may be restricted to players who have made a recent deposit.
Many sites remove all loyalty points (as well as unused bonuses) if you request a withdrawal.
Loyalty points are frequently subject to some kind of time limit – e.g at Microgaming and Virtue Fusion bingo sites they expire if not redeemed within 90 days and at Costa Bingo and sister sites, Diamonds expire if you go more than 60 days without collecting any.
Tiered loyalty/VIP schemes
When a tiered scheme is in place, players can progress through the levels to receive bigger benefits such as bigger redeposit bonuses, free slots spins, access to VIP only free bingo rooms, and/or a better collection or redemption rate for loyalty points. Different bingo sites lay down different rules as to how players can advance through the tiers and here are some of the criteria that have been used:
Lifetime loyalty points collected, with or without a minimum amount to collect per month to remain in the tier
Last month's deposits
Last three months' deposits and spend
Lifetime spend
By invitation only
Schemes of this type are susceptible to being withdrawn as a result of the new rules as many of these criteria could be seen as encouraging players to spend more than they intended or can afford. Anything dependent on meeting a monthly deposit or spend target is almost certainly due for the chop and rightly so.
Bespoke VIP schemes
In these invitation only schemes, the player is assigned a personal VIP account manager who will decide what benefits to offer them. This is how players get their hands on the really good stuff such as VIP party invitations, gifts of champagne and flowers and VIP days out. We can expect these to be drastically cut back (indeed, they already have been) and operators will have to get proof from players that they can afford the expenditure before admitting them to the scheme which will certainly put many players off. That's as well as monitoring the behaviour of VIPs for risk of gambling related harm.
Multiple loyalty/VIP schemes – why have them?
In the past it has been very common for bingo sites to have more than one loyalty/VIP scheme in force and there a few reasons for doing this:
One scheme is open to everyone and the other is either tiered, or by invitation only; this enables the better rewards to be given to selected players only.
One scheme is a network scheme and the other is exclusive to one site (or group of sites); again this enables the bingo site to focus on its most cherished players via the exclusive scheme.
There is a free daily bonus game which is either open to everyone or has a modest play or deposit requirement, taking the place of or running alongside a regular loyalty scheme, plus bespoke VIP benefits for selected players.
Integrated VIP/loyalty schemes – a good idea or not?
At many bingo sites the VIP scheme is integrated with the loyalty scheme – Ladbrokes Bingo, for instance, used to have the On The House Rewards scheme with 6 tiers starting with the Garden for newbies and casual players; the 3 highest were basically VIPs. With this sort of arrangement, there are clear criteria for achieving the VIP tiers; under the Ladbrokes scheme, to reach the lowest of the three VIP levels a player needed to be playing £300 on bingo, £3000 on mini games or some combination thereof each and every month and to reach the top Penthouse VIP level it had to be ten times that. The scheme is no longer available following their move to different software and would certainly not comply with the new rules due to the potential incentive to overspend.
Even without the new rules, whether it was ever a good thing for there to be such clear criteria – or indeed for the schemes to be integrated like this – is debatable. On the plus side, having a single scheme avoids any possibility of confusion as players know exactly what they have to do to qualify and only have one set of points or rewards to keep track of. On the minus side, one very important aspect of being a VIP is the personal relationship between the player and the VIP account manager and with an arrangement like this where the player would automatically drop out of the VIP tier if they spent slightly under the specified amount one month (perhaps because they were ill or on holiday) that relationship is not going to be worth as much as it would be at a site where the VIP can simply tell their account manager that they will be away and know that the manager has the discretion to take care of it. Another minus point is that when players know exactly what they have to do to join the VIP scheme, they also know what existing VIPs had to do to join the scheme – and the existing VIPs may prefer a bit more privacy.
Gala Bingo's new Gala Rewards scheme, which replaced the two old Happy Points and Gala VIP schemes and is still available, has tiers which are reset monthly, clear criteria for reaching them and an array of impressive benefits; the top tier (effectively the VIP area) is by invitation only and the benefits are not specified.
Loyalty schemes – a network overview
So what can players expect from the various bingo platforms and networks?
Virtue Fusion/Playtech have a tiered network loyalty points scheme based on players collecting 10 points for each £1 played on bingo, but most sites on the network customise it to at least some degree so the benefits enjoyed at higher levels, and whether those higher levels are reached by amassing a certain number of points or are by invitation only, vary from site to site. One point to note about this scheme is that loyalty points have to be redeemed within 90 days or they expire.
At Microgaming bingo sites a basic network loyalty points based scheme came as part of the platform, but each site added its own rules regarding VIP tiers and benefits. All remaining Microgaming bingo sites closed shortly before the new rules came in, sidestepping the problem in true nuclear fashion.
At Cozy bingo sites there was a particularly egregious loyalty scheme which disappeared entirely long before the sites themselves actually closed. The software lives on at GVC sites including Ladbrokes who, as we noted earlier, no longer have a loyalty scheme.
The Dragonfish network loyalty plan is based on the previous month's deposits only and offers modest benefits starting with a deposit of just £5. These are basically a few free spins, a bit of bonus back on any losses and a few free tickets to the £10K game. Higher levels get more of each of these and entry to more free bingo rooms, although all free bingo at Dragonfish requires a deposit to have been made in the last 7 days. The network also rather confusingly has a completely separate loyalty points scheme which awards one point for each 25p purchase of bingo cards and one point for each £2 played on slots; 1000 points can be redeemed for £1 bingo bonus. Some Dragonfish network sites have what looks like their own plan but in most cases it is just a re-skinned version of the network plan.
The Real Bingo Network (a no bonus/no wagering requirement network powered by Dragonfish and sharing some rooms with the main network) has a 15 level loyalty plan based on lifetime spend; benefits include daily free spins, monthly cashback, free cards to the monthly £10K game and access to special bingo rooms.
Gossip Bingo and sister sites (powered by Dragonfish but on their own Netboost network) used to offer a 5 level tiered loyalty/VIP scheme, the top 3 levels of which were classified as VIP; £500 lifetime deposits was the requirement to reach the lowest VIP level. In early 2o17 this was replaced with the 4 level, invitation only Diamond Club (not to be confused with the one at Costa Bingo). They have now all completely dropped any such scheme.
The Ignite Dragonfish sites such as Costa Bingo have the Diamond Club network scheme but to redeem any points from it you need to reach the lowest level by making £50 or more of deposits.
The Joy Of Bingo sites which include 888Ladies and Wink Bingo had the shared 4 level Joy Gem VIP Club. The lowest level required the player to deposit and play £2000+ on bingo or slots over a rolling 3 month period in order to qualify but this was later changed so all levels were invation only. All levels got a personal account manager and access to exclusive bingo rooms and promotions. The Joy Gem Club was closed on 20th October 2020, 10 days before the new rules were due to kick in. These sites do still have loyalty points schemes and Wink has the Wink Rewards scheme which allows players to collect points and redeem them in the Wink Shop.
Jumpman bingo sites used to have a tiered network VIP scheme based on "Kudos" (lifetime deposits) and the higher levels also had a monthly spend requirement (a whopping £20K for the top level). Unsurprisingly in light of that massive spend requirement, the scheme was terminated in advance of the new rules kicking in. The main benefit was cashback on losses – this is actual cash, not a bonus, but can only be claimed on days a deposit is made – and this has now been extended to all players at the same rate instead of increasing with loyalty level.
Gamesys bingo sites got rid of their loyalty and VIP schemes long ago. They have free daily games and run lots of player promotions instead.
The fantastically complicated Bingocams loyalty scheme has 24 levels in all, with points awarded not for ticket purchases but for line, full house and jackpot wins meaning that the highest level VIPs are not necessarily the biggest spenders. The top 5 levels are the VIP levels and only a handful of players have amassed sufficient points (120,000+) to climb right to the top. Before it migrated to Dragonfish, the Bright Bingo scheme boasted a staggering 90 levels (grouped into 10 tiers), with XP points awarded for cash spend on bingo. As the future of this bingo software is looking uncertain it may not be worth trying to progress in the Bingocams scheme.
Relax Gaming sites such as Bingo.com and Unibet feature a bingo loyalty meter which can be filled by playing bingo. When a player goes up a level (each time they play through £20 on bingo and/or minigames) they get a free spin on the Loyalty Wheel; prizes include free spins and bonuses and get bigger and better as the higher levels are reached.
Bede Gaming sites had invitation only VIP schemes. They do not have any kind of loyalty points arrangement.
Tombola do not have a loyalty scheme as such but instead have the Playmates scheme which rewards players for referring their friends; this pays out whenever the friends win. They also have the daily free game 4Free with thousands of pounds of cash prizes each week.


Two months until the publication of Miserere: An Autumn Tale and let me tell you, my friends, I'm pumped.
There is a ton of stuff to do and my head is spinning, but in a really good way.
And I'm scared to death. I thought I'd get that in there too. All these years of pounding the keyboard, research, and reading and re-reading and editing that manuscript . . . and suddenly, people are going to be reading my book.
So I thought I would ease you into this thing, give you a peek, talk about Miserere and some of the characters.
Everyone has seen Michael C. Hayes rendition of Catarina, Lucian, and Rachael. Michael thoroughly encapsulated the stories in their faces. Over the next few weeks, I'll be giving you tidbits and telling you why Michael's artwork means so much to me.
The first thing I loved about this cover was the armor, especially the armor on the women. Michael gave my two strong female characters exactly the type of armor they would wear: plate armor and chain mail.
Catarina's armor is more stylistic than Rachael's, but that is a direct reflection of Catarina's personality. Catarina understands an intimidating appearance is necessary to inspire awe in her troops. Rachael, on the other hand, would prefer the lighter chain mail, which would provide more ease of movement.
Catarina and Rachael were both were raised at the Citadel and schooled in diplomacy and warfare. They are deliberate in their actions and firm in their convictions. They are ambitious and powerful.
And at the beginning of Miserere, both women are in twin spirals toward madness.
There is a reason that Lucian is on his knees between them.
For those of you who don't know, authors have no input regarding the cover art of their novels. For me, that was a good thing, because I never, NEVER could have conceptualized something this good. Night Shade is known for its lovely cover art, so I wasn't concerned about the art for my debut novel, Miserere. I knew it would be good.
I wasn't prepared for awesome.
The art is by Michael C. Hayes, and you can find more of his work here.
I love the way Rachael is looking at Lucian and how both women are positioned with their backs to one another. I also love the way Lucian is between them, looking at neither of them. Each face captures the essence of the character and the colors are sensuous and moody like the story.


If you're going to be in the classroom with students, let your child's teacher set the tone. Wait until you've been introduced before you interact with the class. Respecting the fact that the classroom is the teacher's domain will help you communicate and build a good relationship.... Why do students need to be their own advocate? Students need to learn that it is OK to ask for help. It is OK to need more time. It is OK to not understand right away.
The QFT provides a deliberate way to help students cultivate a skill that is fundamentally important for all learning. Teaching this skill in every classroom can help successful students to go deeper in their thinking and encourage struggling students to develop a new thirst for learning. Their questions will have much to teach us.
As featured on Ashasphere, this chart lists a variety of prompts children can use to receive assistance in therapy sessions, classroom or at home.
Purpose. To develop an understanding that that classroom rules exist to help people get along in a group and to keep people safe. Context "The emphasis in the first years of schooling should be on helping children to become aware of the range of society's implicit rules.