Civilization VI

I haven’t played Civilization VI yet. I am a fan of the series. But I have too many games and too little time, and I didn’t want to pay full price for yet another iteration of the same game. I was still waiting for the price to come down below $30 when I got the news that the full Civ 6 game has been ported to iOS. Yes, you need a newer iPad to play and it is battery-hungry, but it is the *full* Civ 6, not a toned down mobile version. That is pretty remarkable. So I downloaded the game for free, which lets you play 60 turns with the Chinese empire to see how it works. And then I balked at buying the full version for $60. I didn’t even want to pay that for the PC version, and for an iOS game that is very expensive.

So while I was still pondering what to do, I got another piece of news: You can this month get Civilization VI (PC version) plus 2 expansions plus a collection of other games in the Humble Bundle Monthly for $12. That is basically a subscription service where you pay $12 per month to get a bundle of games every month. But if you only want Civ 6 you can of course unsubscribe after 1 month. As this is the lowest I have ever seen Civ 6 go for, I ended up buying the game that way.

Not sure when I will get around to actually play it, I am still very busy with Zelda – Breath of the Wild. But as an opportunity to get Civ 6 cheap this is certainly worth mentioning. The offer is available until the end of the month.

Android Widget: Android – LeaVe my baThRoom at-least !

What is a widget?  In Android, the word widget is a generic term for a bit of self-contained code that displays a program, or a piece of a program, that is also (usually) a shortcut to a larger application. We see them every day on web pages, on our computer desktop and on our smartphones, but we never give too much thought into how great they are. Widgets first appeared in Android in version 1.5, and really gained traction thanks to HTC’s Sense-flavored version of the operating system. Prior to the release of the HTC Hero and our first taste of HTC Sense, widgets were functional, but pretty bland in appearance. Since then, the people making our phones and independent developers alike have done some marvelous things with widgets, and it’s hard to imagine using Android without them.
Android support to implement widgets for both, the home screen and the lock screen.

Common Types of Android Widget
Widget typically fall in one of the following categories

1. Information Widgets

Information widgets display information elements that are important to a user and track how that that information changes over time. Touching information widgets typically launches the associated app and opens a detail view of the widget information. Example for information widgets are weather widgets, clock widgets, etc.

2.Collection widgets

As the name implies, collection widgets specialize on displaying multitude elements of the same type, such as a collection of pictures from a gallery app, a collection of articles from a news app or a collection of emails/messages from a communication app. Collection widgets typically focus on two use cases: browsing the collection, and opening an element of the collection to its detail view for consumption. Collection widgets can scroll vertically.

3.Control widgets

The main purpose of a control widget is to display often used functions that the user can trigger right from the home screen without having to open the app first. A typical example of control widgets are music app widgets that allow the user to play, pause or skip music tracks from outside the actual music app. Power Control Widgets are using to make changes to the system settings easier and simpler. You just need to toggle On or Off almost all the system settings with just one tap.

4. Hybrid Widget
They combine the elements of different other widgets in one.

Some Widget Limitations
Gestures
Only two gestures available for widgets are Touch and Vertical Swipe
Elements
Due to gestures limitations, some of the UI elements that rely on restricted gestures are not available for widgets.

To create your own widget and use your widget in layout XML, there are two additional files for you need to create. Here is a list of files you’ll need to create to implement a custom widget:

XML Definition File – Click on your project and create a new folder called xml. Now right click on the newly created folder and create a new XML file. An XML flie defines the XML element used to instantiate your widget, and the attributes that it supports. The resource type of the XML file should be set to AppWidgetProvider. In the xml file, define some properties which are as follows :-

<appwidget-provider 
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dp"
android:updatePeriodMillis="0"
android:minHeight="146dp"
android:initialLayout="@layout/activity_main">
</appwidget-provider>

Layout XML [optional]– An optional XML file inside res/layout/ that describes the layout of your widget. You could also do this in code in your Java file.

Java Implementation File– This is the file that implements the behavior of the widget. If you can instantiate the object from layout XML, you will also have to code a constructor that retrieves all the attribute values from the layout XML file.

Java File must extend AppWidgetProvider class and override its update method. In the update method, you have to deifne the object of two classes PendingIntent and RemoteViews.

PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);

In the end you have to call an update method updateAppWidget() of the AppWidgetManager class.

appWidgetManager.updateAppWidget(currentWidgetId,views);

Following are the other Methods of AppWidgetProvider class to manipulate widgets.
onDeleted(Context context, int[] appWidgetIds)
This is called when an instance of AppWidgetProvider is deleted.

onDisabled(Context context)
This is called when the last instance of AppWidgetProvider is deleted

onEnabled(Context context)
This is called when an instance of AppWidgetProvider is created.

onReceive(Context context, Intent intent)
It is used to dispatch calls to the various methods of the class

You also need to declare approvider widget class in Android manifest file as follows

appWidgetManager.updateAppWidget(currentWidgetId,views);  

<receiver android:name="ExampleAppWidgetProvider" >

<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>

<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info" />
</receiver>

Example

here is the example of application widget which create basic widget which will open the Web Browser.
Content of the MainActivity.java

package net.suven.android.androidwidget;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.RemoteViews;
import android.widget.Toast;

public class MainActivity extends AppWidgetProvider{
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
for(int i=0; i < appWidgetIds.length; i++){
int currentWidgetId = appWidgetIds[i];
String url = "http://android.suvenconsultants.com/";

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse(url));

PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);

views.setOnClickPendingIntent(R.id.button, pending);
appWidgetManager.updateAppWidget(currentWidgetId,views);
Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show();
}
}
}

Content of the activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:transitionGroup="true">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SCTPL"
android:id="@+id/textView"
android:layout_centerHorizontal="true"
android:textColor="#ff3412ff"
android:textSize="35dp" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Visit SCTPL"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginTop="61dp"
android:layout_below="@+id/textView" />

</RelativeLayout>

Content of the AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.suven.android.androidwidget" >

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name=".MainActivity">

<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
</intent-filter>

<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget"></meta-data>

</receiver>

</application>
</manifest>

content of the res/xml/widget.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dp"
android:updatePeriodMillis="0"
android:minHeight="146dp"
android:initialLayout="@layout/activity_main">
</appwidget-provider>
Install App and Go to your widget section and add your created widget to the desktop or home screen.

Android widget application output
Click here to download Source Code and APK
 Learn Android Programming?

Group Known for Stalking and Harassing Climate Advocates Has Been Hired by EPA to Run Media War Room

Definers Public Affairs, a Republican-aligned research group, has been handed a $120,000 contract to help the EPA shape its media coverage.

A Republican-aligned research group with links to a campaign to stalk and intimidate environmental groups, journalists and campaigners has been handed a $120,000 contract to help the EPA shape its media coverage.

Virginia-based Definers Public Affairs was given the 12-month “no bid” contract to provide “news analysis and brief service” to the EPA, as reported by Mother Jones.

Definers is the corporate arm of America Rising LLC, America Rising PAC and its opposition research and tracking service, America Rising Squared—known as AR2.

Republican Activists

Definers Public Affairs was founded and launched in 2015 by America Rising founders Matt Rhoades and Joe Pounder.

Pounder is a Republican strategist and former research director for the Republican National Committee and worked on Marco Rubio’s failed 2016 nomination campaign. Rhoades was Mitt Romney’s campaign manager in 2012.

Green Attack Plan 

America Rising ran a concerted campaign to attack environmentalists and targeted individuals such as climate campaigner Bill McKibben, who was followed and filmed by the group’s trackers. 

Others targeted with attack tactics and adverts include billionaire philanthropist and environmentalist Tom Steyer and New Yorker journalist Jane Mayer, whose work has uncovered the influences of petrochemical billionaires and Republican donors Charles and David Koch.

Brian Rogers, an executive director at AR2 and a senior vice president at Definers, said his campaign would “hold Steyer and the Environmentalist Left accountable for their epic hypocrisy and extreme positions which threaten America’s future prosperity.”

Speaking about the accusations leveled at him, Steyer said: “They have to know they’re lying. It’s completely dishonest, unethical, and pitiful. And it’s creepy.”

America Rising attempted to discredit Mayer by alleging a distant relative that worked for Lehmann Brothers once did business with Nazi Germany—an accusation that was shown to be without any evidence.

One of the group’s earliest targets was 350.org founder McKibben, who wrote about his experience in the New York Times.  Describing the photos and videos taken of him, McKibben wrote:

“In one series, my groceries are being packed into plastic bags, as I’d forgotten to bring cloth ones. In other shots, I am getting in and out of … cars. There are video snippets of me giving talks, or standing on the street. Sometimes I see the cameraman, sometimes I don’t. The images are often posted to Twitter, reminders that I’m being watched.”

America Rising also sent an operative to Texas Tech University to request copies of everything in the 54 boxes that make up an archive of McKibben’s papers. This, said McKibben, “resulted in all kinds of odd things appearing on right-wing corners of the web.”

Global War Room

An EPA spokesperson told Mother Jones the Definers contract was “for media monitoring/newsclip compilation.”

According to Mother Jones, the contract would include EPA using the Definers War Room console that helps clients track media coverage and the output of opponents.

In November 2017, it was announced that Definers had joined law firm Denton’s to launch a global research firm called 3D Global Affairs.

Among the services offered at 3D Global Affairs would be “governmental relations and lobbying support to shape the environment” and “communications and rapid response professionals to direct  the narrative.”

 

Related Stories

  • How the Right-Wing Media Totally Distorted Positive News on Climate Change
  • Scientists Have Just Beaten Down the Best Climate Denial Argument
  • Wall of Shame: Top 10 Climate Deniers in the Trump Administration

Gardmore Abbey 5E rerun – Session 3

Having accompanied Sir Oakley to the temple of Gardmore Abbey and defended him against mad harpies, it turned out that the job of the heroes wasn’t finished. The 3 sacred vessels needed to purify the temple were missing, and so now they are on a quest to find them, among some other quests. A closer examination of the temple revealed a staircase down into the catacombs, with fresh footprints leading there. The group decided not to follow, but made a short rest and then headed over to the wizard’s tower.

Now I have to mention that the 4 locations in which the group can meet an evil group of rival adventurers are determined by the 4 cards drawn for that group. The first encounter was hearing of the group in Winterhaven, the second encounter was the group helping the rivals in the garden to fight giant spiders and being left holding the bag for their effort. The third encounter, in the first room of the catacombs, the group avoided by going there. And by pure chance the location where they wanted to go, the wizard’s tower, was the location for the 4th encounter. So while the group was resting the rival adventurers “moved” to the wizard’s tower.
On the way down to the wizard’s tower the group had an encounter with a Galeb Duhr and two Rust Monsters in the gate house. However the monk and the druid weren’t wearing any non-magical metal at all, the ranger stayed at a distance, and the barbarian succeeded all saving throws to turn his extra weapons into rust; so the Rust Monsters weren’t really all that scary for this particular group. Being under no time pressure the group made another short rest.
Again they discovered traces of the rival adventures, them having left climbing gear in place to descend the slope to the wizard’s tower without taking the detour through the orc camps. And finally the two groups met again, this time with the evil group in full health and ready to strike. The ensuing combat was a tough one, as the evil group had the same level 5 and outnumbered the players 5 to 4. However I had deliberately not optimized them, and so the players ultimately prevailed. With 3 of the evil group members down, the player druid offered them terms of surrender (“give us your cards and leave the abbey forever”), which they accepted. As I give out full xp even for diplomatic victories this fight got the group up to level 6, but I told them they needed to return to Winterhaven for that.
In Winterhaven there was some chaos, because their previous “diplomatic victory” had involved letting loose a beholder, who had passed by the town, burned down the church, and killed the priest, before moving on. One always needs to consider the possible consequences of not killing your enemies!
Now level 6 and back at the abbey they found the wizard’s tower’s door had been breached during their absence by a group of orcs, which then had been slaughtered by forces unknown. Mistrustful of the gargoyle statues in front of the door they first attacked them, but that was a short and easy fight. Inside the barbarian librarian found a scroll on a bloodstained sheet covering a large female form. Taking the scroll of course awoke that form, a female flesh golem, the failed attempt of the wizard to resurrect the love of his life. The fight against the golem was a bit harder, also due to some random magical effects in the room. Before going up the tower we decided to stop the session and continue next time. 

Mueller Russia Investigation Will Continue Through 2018: Report

The president has long believed, without evidence, he’d be cleared by the end of the year.

Refuting President Donald Trump’s “arrogant” assumption that the Russia investigation will be over at the end of the year, members of special counsel Robert Mueller’s team confirmed they would continue their probe until at least 2018.

As The Washington Post reported Monday, “the special counsel’s office has continued to request new documents related to the [Trump] campaign, and members of Mueller’s team have told others they expect to be working through much of 2018, at a minimum.”

The possibility of the probe ending by the year’s close becomes even narrower considering that multiple witnesses, including former Trump aides George Papadopoulos and Mike Flynn, are continuing to cooperate with the investigation, the report continues.

Nevertheless, CNN reported Monday that Trump believes he’s going to receive an exonerating “letter” from Mueller — and those close to him fear he’ll have a “meltdown” if that letter doesn’t come soon.

 

Related Stories

  • Former CIA Official Suggests Trump Campaign Team May Have ‘Welcomed’ Russian Election Interference
  • If Trump Fires Mueller, Is a Watergate Rerun Coming?
  • Robert Mueller Has the Trump Team Panicked, No Matter What the President Says

Deal: Grab the Jaybird X3 Bluetooth earbuds for just $80

I love a good pair of Bluetooth earbuds. Since they’re wireless, they’re extremely convenient to wear while working out or laying in bed, and I don’t miss the drop in sound quality compared to wired earbuds. Sure, I have to remember to recharge them from time to time, but that’s a price I’m willing to pay for convenience. 

One of the best pairs of Bluetooth earbuds I’ve ever owned is the Jaybird X3. I was lucky enough to pick them up earlier this year on sale and I have enjoyed them ever since. I routinely cycle back and forth between them and the V-MODA Forza Metallo Wireless depending on what mood I’m in or what activity I’m doing.

See also

The X3’s are great for working out. They’re sweatproof (not waterproof), and provide a good fit. I’ve never had an issue with them falling out of my ears when I’m active. They also sound pretty decent and get loud enough to block out most everything else around me.

I recommend them to my friends who are looking for a decent pair of earbuds without breaking the bank. Now, they’re back on sale and you can pick up a pair for just $80, a $50 savings. These are great as a last minute shopping gift. Or, you could just grab a pair for yourself guilt free since they’re almost half off.

If you want to pick up a pair, you can hit the buttons below for the listings from Amazon and Best Buy. Amazon has them in four colors and Best Buy offers them in six, including exclusive Camo and Platinum paint jobs. 

get the Jaybird X3 from Best Buy
get the jaybird x3 from amazon

Naming and Directory Concepts,JaVa – is not MaVa


Java Naming and Directory Services

A Naming Service provides a mechanism for giving names to objects so you can retrieve and use those objects without knowing the location of the object. Objects can be located on any machine accessible from your network, not necessarily the local workstation.
A real-world example is a phone directory. It stores telephone numbers against names and addresses. To find people’s phone numbers is simply a matter of using their name (and possibly address) to identify an entry in the phone book and obtaining the stored phone number. There are a few complications, such as finding the right phone book to look in, but it is essentially a simple process.
Incidentally, naming services have a similar problem to that of finding the right phone book. This is known as obtaining a context. A name can only be found if you examine the right context (phone book).
A Directory Service also associates names with objects but provides additional information by associating attributes with the objects.
The yellow pages phone directory is a simple form of a directory service. Here, businesses often include advertisements with additional information such as a list of products sold, professional qualifications, affiliated organizations, and even maps to their premises. These attributes add value to the name entry. A directory service will normally provide the ability to find entries that have particular attributes or values for attributes.
Yellow page style phone books also store names under categories—for example, hairdressers or lawyers. Categorizing entries can simplify searching for a particular type of entry. These categorized entries are a form of sub-context within the directory context of the local phone book.

Why Use Naming And Directory Services?

Naming Services provide an vital mechanism for de-coupling the provider of a service from the consumer of the service. Naming services allow a supplier of a service to register their service against a name. Users, or clients, of the service need only know the name of the service to use it.
Think of the phone book once more, and how difficult it would be to find someone’s phone number without it. Obtaining your friend’s phone number would mean going to their home and asking, or waiting until you meet up with them again—which may be difficult to organize because you can’t phone them to arrange the meeting.
It is very difficult to imagine a world without naming services.

What is JNDI and why we NEEDED it?

When you build an application, chances are you have to depend on some other resources built by somebody else. There is a directory or naming service that maps or bind name to such resources so that you can use  the name and get the resource into your application. Such resources could be an object or simply just location to object. Such services are important because it provides way to expose the those resources to be used and reused. For instance:
DNS (Domain Name System): 
It maps people-friendly names (such as www.google.com) into computer-friendly IP addresses in dotted-quad notation (192.168.0.1).

LDAP (Lightweight Directory Access Protocol) 
It provides access to hierarchical structural information about users, networks or systems over IP network through url and other attributes names.(e.g cn=Martin Bond, ou=Authors, o=SAMS, c=us).
NIS (Network Information System) 
It provides access to file and application resources through ID and password.
So, the common thing is they all are naming systems that binds the name to the object of our interest. Those objects or resources may or may not be on the same host and just be reference to object. No mater where they are naming service provide the lookup service to find such object by name.
The difference is the naming convention each of those naming services has undertaken. For instance:
  • DNS uses the dot notation to construct the full domain name. (www.google.com)
  • LDAP uses comma to separate the components while uses key/value pair to distinguish each components. (‘cn=Rupesh Bho, o=ComPlus, c=US’) .
With such differences, it would be nightmare for the application developers if they have to spend writing code to bring various naming servers every time they work on the application. This is where JNDI comes into play.
JNDI is a API which provides the uniform standard to access any naming or directory services into your application. Remember JNDI is just interface, not implementation.

JNDI architecture consists of API and Service Provider Interface(SPI). Java application use the JNDI API to access a variety of naming and directory services. The SPI enables a variety of naming and directory services to be plugged in transparently, thereby allowing the Java application using JNDI API to access their services.
JNDI is included in Java SE. To use JNDI, you must have the JNDI classes and one or more service providers. Some service providers like LDAP, RMI and DNS are included with the JDK, other you can find from other vendors.

Context and InitialContext:

The Context interface plays a central role in JNDI. A context represents a set of bindings within a naming service that all share the same naming convention. A Context object provides the methods for binding names to objects and unbinding names from objects, for renaming objects, and for listing the bindings.
JNDI performs all naming operations relative to a context. To assist in finding a place to start, the JNDI specification defines an InitialContext class. This class is instantiated with properties that define the type of naming service in use and, for naming services that provide security, the ID and password to use when connecting.
 Let’s take a look at Context’s methods:
  • void bind(String stringName, Object object): Binds a name to an object. The name must not be bound to another object. All intermediate contexts must already exist.
  • void rebind(String stringName, Object object): Binds a name to an object. All intermediate contexts must already exist.
  • Object lookup(String stringName): Returns the specified object.
  • void unbind(String stringName): Unbinds the specified object.

Want to learn more about JAVA?

Microtaur

Note to self: Check the size of a monster in the Monster Manual before printing it in 3D. I printed a group of minotaurs of medium size, a head taller than a human. That was basically the size I had in mind because of the tauren in World of Warcraft. But then I realized that in D&D a minotaur is of “large” size, which means that he takes up 2×2 spaces on a battlemap. So I need to print him with a 2″ base, and make him at least 2″ tall for that to look proportional. So I threw away my “microtaurs” and printed the group in large size instead.

The adventure I am preparing has a number of large or even bigger monsters: Minotaurs, a beholder, a hill giant, an oni, and a dragon. And I must say that I am quite pleased with how those came out from 3D printing. The larger models have less problems of thin parts being too thin to print right. The details come out a lot better. And as the software automatically fills the bulk with a mostly hollow support structure, I can print them to scale without spending a fortune. In the role-playing club I play in there is a cupboard with a collection of painted metal miniatures. But metal is expensive as a material, and heavy in bulk, so the large monsters in that collection are actually not bigger than the medium ones. The beholder in the collection is a sphere of less than 1″ diameter, so my 2″ sphere beholder looks impressive compared to it, even if mine is just plastic and unpainted. Not to mention my 4″ tall hill giant and dragon, which I think will really impress my players.

Is Kratom Safe Enough for the Fight Against Opioids?

A new study says “yes,” and finds it relieves anxiety and reduces negative moods, too.

A review of 57 years of international scientific evidence may help change the perception of kratom and restore its potential as a public health tool that deserves more research.

As the nation grapples for solutions to the opioid epidemic—now claiming more than 33,000 American lives each year—the potential of the psychoactive plant kratom to become a useful tool in the battle has been the subject of hot debate.

While some in the medical field and many in the general public attest to kratom’s ability to help curb opioid addiction and relieve pain, governmental agencies continue to warn against its dangers to mental health, citing links to psychosis and addiction. In 2016, the DEA briefly recommended criminalizing kratom possession and distribution, before withdrawing the proposal.

The study not only points to the potential benefits of kratom as a safer substitute for opioids, but also suggests the plant’s potential to reduce negative mood and relieve anxiety. Published online this week in the journal Drug and Alcohol Dependence, it represents the largest systematic review of the scientific literature on kratom use and mental health.

“There is a lot of confusing information about kratom in the media that makes it difficult for clinicians and the public to make informed choices,” says lead author Marc T. Swogger, associate professor in the University of Rochester Medical Center’s psychiatry department. “This study clarifies that there is no good scientific basis for claims that kratom causes psychosis, suicide, or violence, and the available data do not indicate that kratom is a significant public health problem.”

Coauthor Zach Walsh, associate professor of psychology at the University of British Columbia notes that current approaches to addressing the opioid epidemic are leaving large numbers of high-need individuals without effective treatment.

“We need to explore all options, and our findings suggest it’s time to carefully examine the potential of this ancient plant,” says Walsh.

3 harmful myths about the opioid epidemic

Swogger and Walsh reviewed the combined results of 13 studies conducted between January 1960 and July 2017, using data from 28,745 individuals.

“There is a clear need for more rigorous, well-controlled, prospective studies to support a sophisticated, nuanced understanding of the plant,” says Swogger. “But data across cultures indicated that kratom has a legitimate role to play in mitigating harms associated with opioid dependence. The bulk of the available research supports kratom’s benefits as a milder, less addictive, and less-dangerous substance than opioids, and one that appears far less likely to cause fatal overdose.”

Kratom (Mitragyna speciosa; also known as krathom or ketum) is part of the coffee family and has been used medicinally for centuries in Southeast Asia to relieve symptoms of opioid withdrawal, to relieve pain, diarrhea, and cough, and increase stamina and energy. People chew raw leaves of the kratom plant, boil them to serve as tea, smoke, or vaporize them.

How 30 opioid pills for surgery turn into a habit

In recent years, kratom’s use has expanded beyond Asia, and its leaves, powders, gums, capsules, and extracts are widely accessed through retail outlets and the internet in North America and Europe.

“We need more and better research to be able to outline the risks and benefits of kratom in greater detail,” Swogger says. “Only through well-controlled studies can we elucidate kratom’s potential for good and harm, and give the public, policy makers, and health care professionals the information needed to make informed decisions.”

Source: University of Rochester

Original Study DOI: 10.1016/j.drugalcdep.2017.10.012

 

 

 

Related Stories

  • So… What Is Trump Doing About the Opioid Crisis?
  • As Kratom Use Surges, Some States Enact Bans
  • What To Do About Kratom?