Elemental Evil: Sessions 13 & 14

I just noticed that I am behind on my reporting on the Elemental Evil campaign. In the previous reported session the group had reached level 5 and was about to head for the Sacred Stone Monastery. Sessions 13 and 14 were about the adventures of the group in that monastery. However once again it has to be remarked that this particular group is mainly interested in the combat aspects of D&D, and less interested in the role-playing aspects. And the campaign has been chosen with this preference in mind, containing a lot of dungeon crawls. Nevertheless even in that campaign the group still managed to avoid most opportunities to find out more about the story, and spent those two sessions mostly in combat encounters.

The group entered the Sacred Stone Monastery via the garden and from there into the main hall. However that was exactly what the bad guys had planned for invaders, as the main hall contains a trap that drops the group down into the dungeon and into a cage with an Umber Hulk. Having beaten the Umber Hulk and then some orog and ogre guards, the group liberated a group of slaves used for mining work. That included members of the Mirabar delegation, which in the book is the official story hook. However the group showed absolutely no interest in asking them about what had happened to the delegation, and allowed the slaves to leave unescorted.

Next the group entered a part of the dungeon in which a Lich lives. A Lich is a challenge rating 21 monster and obviously not meant as a combat encounter for level 5 characters. But in spite of the Lich just being a bit grumpy and not immediately attacking, the group decided against getting information from him, and just fled. Having otherwise cleaned out the basement, the group found another staircase up, and found themselves in the middle of the monk’s quarters, where a big fight ensued. That included the boss of the place, a blind female monk with the name of Hellenrae. Just like in the previous two elemental keeps, the group killed the boss, looted the magical key part the bosses are carrying, and then legged it.

Then they returned to Red Larch to rest and recuperate. But the next morning at breakfast in the inn, they were attacked by four hell hounds. That was a bit annoying for the sorceress, who mainly had fire-based spells like scorching ray and fireball, to which the monsters were immune. But although they took heavy damage from fire breaths, the group prevailed and sent the dogs packing. They (correctly) concluded that the hell hounds had been sent by the one cult they hadn’t visited yet, the fire cult. As they had previously heard about druids planning a fire ritual at a location which corresponded to the location of the fourth elemental keep on their ancient map, they plan to go there in the next session.

Android Facebook Integration: Android – LeaVe my baThRoom at-least !

Android Facebook Integration

Android Facebook Integration
Android allow applications to connect with Facebook. So we can perform authentication and share data or any kind of updates on Facebook.This blog is about integrating Facebook into your android application. It is very easy to integrate Facebook in android application.


There are two ways through which we can integrate and share something on Facebook through android application:-

1. Facebook SDK
2. Intent Share

Integrating Facebook SDK

The Facebook SDK for Android is the easiest way to integrate your Android app with Facebook.
It enables:

  • Facebook Login – Authenticate people with their Facebook credentials.
  • Account Kit – Log people in with just their phone number or email address.
  • Share and Send dialog – Enable sharing content from your app to Facebook.
  • App Events – Log events in your application.
  • Graph API – Read and write to the Graph API.

Steps are listed below 

Generate key Hash Value
Now you need to Get Key Hash Value for your machine. The key hash value is used by Facebook as security check for login. To get key hash value of your machine, write following code in onCreate() method of MainActivity.java

  • try


  • {

  • PackageInfo info = getPackageManager().getPackageInfo( getPackageName(),


    • PackageManager.GET_SIGNATURES);

    • for (Signature signature : info.signatures)

    • {

    • MessageDigest md = MessageDigest.getInstance("SHA");

    • md.update(signature.toByteArray());

    • Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));

    • } }

    • catch (NameNotFoundException e) {

    • } catch (NoSuchAlgorithmException e) {

    • }



 Download Facebook SDK

You,first need to Download Facebook SDK for Android.
After you are done downloading, please import it in Android Studio.
Create Facebook App
We need to create facebook app in order to get Facebook App ID. To do so, create an application on FB developer site. Go to https://developers.facebook.com After login, click on Add a New App. Type your application name.
create facebook app
Follow the setup
generate app id
Add Facebook SDK to Your Project

To use Facebook SDK in a project, add it as a build dependency and import it. If you are starting a new project, follow all the steps below. To add Facebook SDK to an existing project, start with step 3.
1. Go to Android Studio | New Project | Minimum SDK
2. Select “API 15: Android 4.0.3” or higher and create your new project.
3. In your project, open
your_app | Gradle Scripts | build.gradle
4. Add the Maven Central Repository to build.gradle before dependencies:
repositories {
        mavenCentral()
    }
5. Add compile ‘com.facebook.android:facebook-android-sdk:[4,5)‘ to your build.gradle dependencies.
6. Build your project.
7. Import Facebook SDK into your app:
import com.facebook.FacebookSdk;

Add Facebook App ID
Add your Facebook App ID to your app and update your Android manifest.
1. Open your strings.xml file, for example: /app/src/main/res/values/strings.xml.
2. Add a new string with the name facebook_app_id containing the value of your Facebook App ID:
3. Open AndroidManifest.xml.
4. Add a uses-permission element to the manifest:
5. Add a meta-data element to the application element:
    …
   <meta-data android:name=”com.facebook.sdk.ApplicationId” android:value=”@string/facebook_app_id”>
    …
Creating Facebook login application
Once everything is complete , you can run the samples, that comes with SDK or create your own application. In order to login, you need to call openActiveSession method and implements its callback. Its syntax is given below −
Session.openActiveSession(this, true, new Session.StatusCallback() {

// callback when session changes state
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to;2 the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello " + user.getName() + "!");
}
}
});
}
}
}

Intent Share

An android share intent allow your app to share contents such as URL or text and Image to other apps installed in your Android device like Facebook, Twitter, Messaging, Instagram, whatsapp, etc.

 Android provides intent library to share data between activities and applications. In order to use it as share intent , we have to specify the type of the share intent to ACTION_SEND. Its syntax is given below

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);

Next thing you need to is to define the type of data to pass , and then pass the data. Its syntax is given below 

shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, " From Suven Consultency");
startActivity(Intent.createChooser(shareIntent, "Hello!!!!"));

Example 

Here is an example demonstrating the use of IntentShare to share data on facebook. It creates a basic application that allows you to share some text on facebook.
To experiment with this example, you can run this on an actual device or in an emulator.
  • You will use Android studio to create an Android application under a package net.suven.android.android_facebookintegration.
  • Modify src/MainActivity.java file to add necessary code.
  • Modify the res/layout/activity_main to add respective XML components.
  • Run the application and choose a running android device and install the application on it and verify the results.

MainActivity.java File

package net.suven.android.android_facebookintegration;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import java.io.FileNotFoundException;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity {
private ImageView img;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

img=(ImageView)findViewById(R.id.imageView);
Button b1=(Button)findViewById(R.id.button);

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse("android.resource://net.suven.android.android_facebookintegration/*");

try {
InputStream stream = getContentResolver().openInputStream(screenshotUri);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sharingIntent.setType("image/jpeg");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));
}
});
}
}

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"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="30dp"
android:text="Share On Facebook " >

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

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true"
android:src="@drawable/suvenlogo"
>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Share"
android:id="@+id/button"
android:layout_marginTop="61dp"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true" >
</RelativeLayout>

Following is the output of application.
After launching application it will display following screen. 
Android facebook integration home
Click on share button. you will see list of share provider
share post
Now select Facebook from the list and then write your message shown in following image 
write post

Click here to download Source Code and APK

Are you interested to learn Android Programming?

Rage of Demons: Session 5

In the previous session the group left Gracklstugh and traveled to Neverlight Grove. As they had spent two sessions in Gracklstugh, I thought I could at the very least fill one full session with the events in Neverlight Grove. Unfortunately I was wrong, and and we had a short session due to me running out of prepared material. My bad!

The myconids of Neverlight Grove are a peaceful people, organized into circles. Even their “hunter circle” doesn’t actually kill things, but just collects corpses of anything that dies close to the village and uses them as fertilizer. So the group’s first encounter with the myconids (other than their travel companions Stool and Rumpadump) was after they killed a Shambling Mound near the village, and the “hunters” turned up and asked politely if they could collect it. That got the group a friendly welcome to the village, and a quest to kill another monster which was attacking myconids outside the village.

I had some commercial poster battlemaps of Underdark caves, and used one of them for this fight against a Grick alpha. What I hadn’t noticed was that on the map there was a pond with treasure chests visible at the bottom. So after the fight the group wanted to lift those chests, and I didn’t want to spoil their fun and say there weren’t any. So I let them roll on the appropriate treasure table in the DM’s Guide, and they ended up with a Figurine of Wondrous Power (Ebony Fly). Nice, but not overpowered.

Back in the village the group interacted with the myconids and learned that they were split in two factions. The “normal” ones were a bit naive, friendly, and not very emotional. The others were overly enthusiastic, dancing around, and awaiting a great event for tomorrow in the Garden of Welcome. They were asked not to go to the garden so as to not spoil the surprise, so of course they went.

That resulted in several fights against infected myconids and other creatures. Ultimately the group discovered yet another demon lord, Zuggtmoy, who apparently is preparing her wedding to the “Great Body”. Various infected plant creatures serve as chamberlains and bridesmaids in some sort of perverted wedding ceremony. But it is rather obvious that the group can’t stop the wedding without fighting the “bride”, and they aren’t strong enough to tackle demon lords yet. While the un-infected myconids flee, the group decides that they should do the same, and travel on towards Blingdenstone.

Animal Crossing: Pocket Camp

I never owned any Nintendo Wii or 3DS console. Which means that I have never played any game of the Animal Crossing franchise. I was aware that these games existed due to the generally good press they got, but never played one. So when recently Animal Crossing: Pocket Camp was released on iOS, I decided to give it a try. And ended up seriously disappointed: There is no game in this game!

My general model of modern games is that they have a core game, e.g. combat or a type of puzzle, embedded in a shell of story, rewards, and character progression. Animal Crossing: Pocket Camp certainly has the shell part of that: There is a basic story, you do get plenty of rewards for what you do, and there is some sort of character progression in the form of levels and friendship levels to a growing number of animals. However there isn’t really a core game. The core consists of clicking on resources to gather them. And that’s it. There is no puzzle to solve to gather those resources, no monster to kill, nothing. Some of the resources have a vague hint of a game, which is tapping once to start the process, and then needing to tap a second time within a time window when “tap” is written on your screen, but that is as complicated as it gets. Other resources, like fruits from trees, don’t even have that, you just click to gather them.

Crafting isn’t really a game either, you just provide the money and resources and wait for minutes or hours until your crafted item is finished. So all you can do in this game is gather resources, and keep various animals happy by providing them either the resources directly or some furniture crafted from those resources. There is a complete absence of any challenge or even actual gameplay. Describing Animal Crossing: Pocket Camp as a game for children is actually insulting to children.

That the mobile version only provides you with limited amounts of resources every 3 hours or lets you wait for hours for your crafting to finish, but then “allows” you to speed those things up with a currency you get for real money is just the icing on the cake. After playing the game long enough to make sure that I hadn’t accidentally overlooked a real game in there, I just uninstalled Animal Crossing: Pocket Camp. Unless you desperately want a game with absolutely no challenge or real gameplay at all, I can’t recommend this.

Here’s What It’s Going to Take for Democrats to Take Back the House in 2018

Bannon is on the defensive. There’s red dread and blue hope. But election data nerds say Dems must do even more next year.

What a difference one special election makes! Following Tuesday’s historic victory by Democrat Doug Jones in Alabama’s Senate race, Democrats and Republicans—to say nothing of pundits and election data-crunchers—have been revisiting old assumptions about 2018 and 2020.

Most visibly, the radical reactionary Republicans who backed Roy Moore—led by white nationalist and Breitbart News chief Steve Bannon—are on the defensive. Bannon, who never stopped himself from throwing mud before, complained about the Democrat’s “new model” of smearing his Breitbart-branded patriots. Of course, mainstream media, had a villainous role.

“I think the new model is they’re going to come at people with personal attacks and just overwhelm them with media—and you got to remember this wasn’t supported, this was triggered by the establishment,” Bannon said on Wednesday night on his national radio show, referring to The Washington Post reporting of Moore’s habit of preying on teenage girls. “They’re the ones that triggered all this stuff on Moore.”

His guest on Breitbart News Tonight, Pat Caddell, went even further into the us-versus-them, real patriots-versus-establishment shills divide that is likely to resurface in 2018’s GOP congressional primaries. (Caddell is a pollster who, four decades ago, helped elect Democrat Jimmy Carter; but in recent years has backed Donald Trump and white-America centered populism.)

“Understand this,” he intoned. “We’re watching how they are developing to handle the revolt, if you will, or the rebellion; you put it down. And that is to work in concert with the mainstream media. Even Republicans are doing this, as well as the Democratic establishment, to squeeze this out, and they will use it to attack candidates who are unworthy… But as people come forth to take back their country, we’re going to have to find way to protect, to give cover to these people… [from others] trying to take them out.”

The Bannon mob usually isn’t this defensive. But after Alabama, they have plenty to worry about, even if not what they’re fixating on. Alabama saw an unprecedented numbers of whites vote for a Democrat—especially those under 44 and suburban women, instead of reflexively for a Republican.  

That is a break-the-mold political development. It was one of many metrics from the Alabama election that create a new landscape of blue hope and red dread. Another is Alabama counties with majorities of registered Democrats showed up in much larger percentages to vote than GOP majority counties.

This raises a question that some of the country’s best respected election data crunchers and forecasters have been debating since Tuesday: How big of a popular vote majority do Democrats need in 2018 to win back the House?

At Sabato’s Crystal Ball, named after Larry Sabato, who decades ago took the helm at the University of Virginia Center for Politics, a rather dense post by Alan Abramowitz concluded, “a popular vote margin of between three and four points would be large enough for this purpose.”

The reason that Democrats cannot win elections simply with 50 percent plus one is because many House districts have been gerrymandered, which means their boundaries were drawn based on segregating each parties most reliable voters. The GOP did this in a dozen states in 2011 that resulted in Congress and state legislatures being under their control for most of this decade. So Abramowitz is saying that 53-to-54 percent of registered Democrats must vote in November 2018 for their party to win 24 seats to take the House.

Other election data nerds quickly pounced on that figure as too slim in Twitter posts.

“I thought it was more?” replied David Leonhardt, a New York Times columnist. 

“This is way too low. More like 7-8%,” tweeted David Wasserman, the U.S. House editor for The Cook Political Report.

“Totally agree. I don’t have numbers in front of me but I’ve looked at this specific w before. It’s basically 7.25% by which Dems need to win national vote for Congress in order to overcome gerrymandering. Chew on that…” tweeted Jeremy Kalin, a former Minnesota legislator.

Then came FiveThirtyEight.com’s Harry Enten, who tweeted, “Lots of discussion in nerd Twitter on just how much Dems need to win House vote by in order to win majority of seats. Here’s what I wrote in Feb 2017.”

That analysis is worth reposting, because it says Dems need an 8-point popular vote edge to breach the GOP’s gerrymander advantage.

“The median congressional district was 5.5 percentage points more Republican-leaning in the presidential race than the nation as a whole in 2016, meaning Democrats are essentially spotting the GOP 5.5 points in the battle for control of the House,” Enten wrote. “And even that may be underestimating Republicans ability to win a majority of seats without a majority of the vote. Since 2012 (or when most states instituted the current House district lines), Republicans have won, on average, 51 percent of the two-party House vote and 55 percent of House seats. If that difference holds for 2018, Democrats would need to win the House popular vote by about 8 percentage points to win half the House seats.”

Why do these figures matter? Because as some of these same election data crunchers pour over the exit polls and other results from Alabama and every other big election in 2017, it appears that the Democratic wave is right on the brink of closely winning (like in Alabama) or losing (as Jon Ossoff did by a few points in Georgia’s sixth congressional district last spring.)

“In six 2017 special elections, Dems have been outperforming their @CookPolitical PVI-suggested share of the vote by an average of 9%,” tweeted Wasserman on Friday.

So, if Democrats have been turning out by 9 percent more than expected, how come they haven’t swept every race this year—you might ask? The answer is the gerrymandering advantage, which these analysts have been debating, is at the starting line of the process. But there are other intentional barriers that await Democrats at the finish line, where Republicans passed laws and regulations to undermine turnout. The biggest is stricter voter ID requirements to get a polling place ballot, which congressional analysts have said peels off 2-to-3 percent of likely turnout. (Academics say it’s more). There’s other tactics too, such as limiting early voting opportunities, complicating registration, illegally purging infrequent voters, etc.

Alabama’s senate election was the perfect capstone to a year where Democratic candidates and voters increasingly were getting their mojo back. Bannon and his right-wing rabble should be worried, because, as Dems are getting organized and are more optimistic, the Republicans are rife with intra-party strife, deeply unpopular policies and an unstable president.

However, Democrats, progressives and independents need to know the scale of the barriers that await in 2018. Because as much as the opposition party turned around and regained momentum in 2017, more will be needed next year to retake Congress and put a big red stop sign before the GOP.    

 

 

Related Stories

  • Alabama Stunner: Democrat Doug Jones Defeats Right-Wing Extremist Roy Moore in Photo Finish U.S. Senate Race
  • Alabama Supreme Court Blocks Digital Ballot Preservation in Eleventh Hour
  • Alabama Supreme Court Blocks Digital Ballot Preservation Requirement to Verify the Vote in Tuesday’s Senate Election

If Trump Fires Mueller, Is a Watergate Rerun Coming?

Firing special prosecutor Archibald Cox was a massive blunder for Richard Nixon. But yes, it could happen again.

For some reason I had a yearning to curl up on the couch and binge-watch Watergate documentaries this weekend. I can’t imagine why. Just because every TV talking head was breathlessly talking about the right-wing crusade against special counsel Robert Mueller’s office, and rumors were flying that Jared Kushner is shopping around for a crisis management firm, that’s no reason to think that the scandal may be headed for a new phase. But when news broke on Saturday that a Trump transition lawyer had sent a letter to Congress complaining that Mueller had allegedly obtained transition officials’ emails illegally, it sure felt as if something was going to break.

Trump returned from Camp David on Sunday night and told the press that he isn’t considering firing Mueller. Since he cannot tell a lie, that’s obviously the end of that. The Kushner business, on the other hand, may be true, in light of the news about the emails that the Trump team didn’t know were in the hands of prosecutors until after they had all testified, opening up the possibility that someone may have lied. As Michael Flynn and George Papadopoulos can attest, that’s a big no-no.

Trump’s transition lawyer, who doesn’t seem to have any experience in these matters, said that the way the prosecutors obtained the emails is illegal — but also said that Congress should make it illegal. So the nature of Team Trump’s specific complaints is a bit confusing. Evidently they had placed their own man in the General Services Administration, who assured them that emails they sent on government devices with the .gov address would be secured and wouldn’t be turned over without their knowledge.

Unfortunately, their man got sick and died, and the people beneath him were not told about this promise, and when the prosecutors came looking for the emails they were handed over, as would happen in any criminal investigation. Since all such emails are government property and everyone is informed before they are issued the email addresses that they have no expectation of privacy, there’s nothing unusual in any of it. But as we’ve seen before, the Trump team doesn’t really listen or pay attention to the normal rules and regulations. They apparently thought they had this all dialed in. As usual, they didn’t.

Mueller’s office made a rare public comment right after midnight on Sunday morning: “When we have obtained emails in the course of our ongoing criminal investigation, we have secured either the account owner’s consent or appropriate criminal process.” Apparently, they had reason to believe something criminal was going on in the Trump transition.

Lawyers from both parties weighed in on Sunday and explained that there’s nothing illegal about a government investigation obtaining emails from a government agency. The Trump attorney referred to “possible” executive privilege and attorney-client privilege, but didn’t really make the claim, mainly because executive privilege doesn’t exist for a president until he takes office, and if there were attorney communications that might be privileged, all it means is that prosecutors couldn’t use those to build their case. Needless to say, if the Trump team wants to argue this, the appropriate venue is a courtroom — which is exactly what the House Oversight Committee chair Trey Gowdy told them.

As I mentioned, Trump says he isn’t considering firing Mueller, but then, he isn’t literally the one who would fire him, is he? That job would fall to Rod Rosenstein, the deputy attorney general overseeing the special counsel investigation since Jeff Sessions recused himself from the case. Trump could direct Rosenstein to fire Mueller; if Rosenstein refuses, the president can fire him and demand that the next person in line do the deed. It’s not as if it hasn’t happened before.

Looking back at the Saturday Night Massacre in the fall of 1973, at the height of the Watergate scandal, Richard Nixon was furious that special prosecutor Archibald Cox had gone beyond what Nixon thought should be his mandate. When the president found out that Cox was looking into the financing of his West Coast White House in San Clemente, California, he went ballistic. Nixon probably had a lot less to hide in this regard than Donald Trump does.

But what finally precipitated Cox’s firing was the battle over the tapes of Nixon’s conversations in the White House, which had been described in detail by former White House counsel John Dean when testifying about the cover-up of the Watergate break-in. After the existence of the tapes had been exposed, Nixon refused to turn them over. Cox took him to court, and the court had ruled against the president. Nixon refused. His lawyers came up with a cockamamie plan to have one elderly conservative senator listen to the tapes and attest to the accuracy of White House-prepared transcripts of certain conversations under subpoena. Cox said no — that was in defiance of the court. He planned to take the case back before a judge and would abide by his ruling.

That’s when Nixon called up the Attorney General Elliot Richardson and told him to fire Cox. The president said to Richardson when he refused, “I’m sorry you choose to put your purely personal commitments ahead of the public interest.” To which Richardson replied, “Mr. President, it would appear that you and I have a different perception of the public interest.” Deputy Attorney General William Ruckelshaus also resigned, and then Solicitor General Robert Bork finally did the deed.

What happened next was interesting. Nixon wanted to shut down the office altogether and sent the FBI to lock the place down. But prosecutors wouldn’t leave and were giving press conferences. The public was all up in arms, and the media backlash was furious.

Nixon ended up having to appoint another special prosecutor and picked a conservative Republican, Leon Jaworski, who was predisposed to give the president the benefit of the doubt. But after refusing to appeal the case to the Supreme Court, Nixon finally gave up the tapes. When Jaworski heard him talking to John Dean, he said, “can you believe the president of the United States coaching a witness on how to evade the truth?”

That’s when the prosecutors got their indictments of the presidents’ men and delivered their case to the House committee considering impeachment.

Watching Trump and knowing how often he lies, it seems inevitable that there have been more than a few such moments for Mueller in reading some of those emails and listening to testimony from people around the president. The difference is that Nixon had an understanding of the necessity of maintaining stability in the system, even as he abused it terribly. Trump doesn’t even know what the system is and his lawyers don’t seem to have much of a grasp of it either. So far, Republicans in Congress are completely unwilling to do their duty.

Trump might follow the Nixon playbook and fire Mueller, but after that, the whole thing could go off the rails. As strange as this is to say, Nixon knew there were limits to his power. Trump doesn’t. Who knows what he might do?

 

 

 

Related Stories

  • Robert Mueller Has the Trump Team Panicked, No Matter What the President Says
  • The One Scenario in Which Trump Would Risk Impeachment and Fire Robert Mueller
  • Donald Trump Jr. and Ted Cruz Mock Barack Obama with Bizarre Cookie

Heard of CordoVa : “Hybrid App Dev !!”

Hybrid App development

A hybrid application (hybrid app) is one that combines elements of both native and Web applications. Native applications are developed for a specific platform and installed on a computing device. Web applications are generalized for multiple platforms and not installed locally but made available over the Internet through a browser.

Cordova

Apache Cordova is an open-source mobile development framework. It allows you to use standard web technologies – HTML5, CSS3, and JavaScript for cross-platform development. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device’s capabilities such as sensors, data, network status, etc.

cordova  image


Web applications cannot use native mobile functionalities by default. This is where Cordova is coming in. It offers a bridge for connection between web app and mobile device. By using cordova we can make hybrid mobile apps that can use camera, geolocation, file system and other native mobile functions.

Following are the  features of Cordova

Command Line Interface:- This tool allows you to create new projects, build them on different platforms, and run on real devices or within emulators.

Cordova Core Components:- Cordova provide core components that will be used for creating base of the app so we can spend more time to implement our own logic.

Cordova offers set of core components that every mobile application needs. These components will be used for creating base of the app so we can spend more time to implement our own logic.
Cordova Plugins:- All the main Cordova API features are implemented as plugins, and many others are available that enable features such as bar code scanners, NFC communication, or to tailor calendar interfaces.
Licence:- Cordova is licensed under the Apache License, Version 2.0.

Environment Setup

Lets see environment setup for cordova. Before start with the setup you need to install following components.
NodeJS and NPM:- NodeJS is the platform needed for Cordova development.
Android SDK:- You need Android SDK for Android platform.
XCode:- It is required for iOS platform.

Installing Cordova

In this installation we are using Windows Command prompt.

Step 1: Installing Git
Cordova need Git. It is using Git for some background processes.  After you install git. Follow following steps to setup Environment Variable.

  1. Right-Click on Computer
  2. Properties
  3. Advanced System settings
  4. Environment Variables
  5. System Variables
  6. Edit

Copy the following at the end of the variable value field. This is default path of the git installation. If you installed it on a different path you should use that instead of our example code below.

;C:Program Files (x86)Gitbin;C:Program Files (x86)Gitcmd
Now you can type git in your command prompt to test if the installation is successful.

Step 2: Installing Cordova

Open the command prompt and run the following command
C:Usersusername>npm install -g cordova 

You can check the installed version by running following command
C:Usersusername>cordova -v 
This is everything you need to start developing the Cordova apps on Windows operating system.

Lets create sample hybrid app using Cordova.

Creating App

Open the directory where you want the app to be installed in command prompt. We will create it on desktop.

C:UsersrockyDesktop>cordova 
create Myhybridapp io.cordova.hellocordova HybridApp

Myhybridapp is the directory name where the app is created.
io.cordova.hellocordova is the default reverse domain value. You should use your own domain value if possible.
HybridApp is the title of your app.

Adding Platforms

Open your project directory in the command prompt. In this example, it is the Myhybridapp. You should choose platforms that you need. To be able to use the specified platform, you need to have installed the specific platform SDK. Since we are developing on windows, we can use the following platforms. We have already installed Android SDK, so we will only install android platform for this example.
C:UsersrockyDesktopMyhybridapp>cordova platform add android 

There are other platforms that can be used on Windows OS.
C:UsersrockyDesktopMyhybridapp>cordova platform add wp8 
C:UsersrockyDesktopMyhybridapp>cordova platform add amazon-fireos 
C:UsersrockyDesktopMyhybridapp>cordova platform add windows 
C:UsersrockyDesktopMyhybridapp>cordova platform add blackberry10
C:UsersrockyDesktopMyhybridapp>cordova platform add firefoxos 

If you are developing on Mac, you can use :-
$ cordova platform add IOS 
$ cordova platform add amazon-fireos 
$ cordova platform add android 
$ cordova platform add blackberry10 
$ cordova platform add firefoxos 

You can also remove platform from your project by using :-
C:UsersrockyDesktopMyhybridapp>cordova platform rm android

Building and Running App

In this step we will build the app for a specified platform so we can run it on mobile device or emulator.
C:UsersrockyDesktopMyhybridapp>cordova build android 

Now we can run our app. If you are using the default emulator you should use 
C:UsersrockyDesktopMyhybridapp>cordova emulate android 

If you want to use the external emulator or real device you should use −
C:UsersrockyDesktopMyhybridapp>cordova run android 

We will use the Genymotion android emulator since it is faster and more responsive than the default one. You can find the emulator here. You can also use real device for testing by enabling USB debugging from the options and connecting it to your computer via USB cable. Once we run the app, it will install it on the platform we specified. If everything is finished without errors, the output should show the default start screen of the app.

cordova app default screen

Use Apache Cordova if you are:

  • A mobile developer and want to extend an application across more than one platform, without having to re-implement it with each platform’s language and tool set.
  • A web developer and want to deploy a web app that’s packaged for distribution in various app store portals.
  • A mobile developer interested in mixing native application components with a WebView (special browser window) that can access device-level APIs, or if you want to develop a plugin interface between native and WebView components.

Learn Android Programming?