Do You Do These 5 Things With Your Cellphone That Health Officials Say You Shouldn’t?

You don’t sleep with your phone—do you?

Radiation from your cellphone could be bad for more than just your mental health, California state health officials warn.

The California Department of Public Health has just released the first-ever guidelines on avoiding too much exposure to the radiation cellphones emit. State officials said one of the reasons for releasing the guidelines is that statistics show cellphone use is at an all-time high, with 95 percent of Americans using cellphones each day, Pew Research Center notes.

Perhaps another reason the guidelines are coming out now is due to pressure from researchers and others. Karen Smith, of the state health department, said there is widespread public concern over cellphone safety, according to a San Francisco CBS station.

Psychologist and UC Berkeley professor Joel Moskowitz sued the health department in 2009 for its refusal to release information on the risks of cellphone use to the public. He won the lawsuit this spring. “People are being injured and harmed by the delay in having this information accessible to them,” Moskowitz told San Francisco’s CBS News affiliate.

Potential Risks

Cellphone use may increase the risk of cancer, but the scientific evidence so far is inconclusive, mainly due to the relatively short period of time cellphones have been around.

Cellphone radiation could be harmful due to the type of radio waves the devices emit: non-ionizing radiation. Tissues close to phone antennas—which exist inside of every smartphone—can be heated by the radiation, as the FDA, American Cancer Society and National Cancer Institute all recognize. When you hold your phone up to your head, those nearby tissues include your ears and brain.

Some studies have linked cellphone radiation exposure with brain tumors and other brain cancers, as the American Cancer Society acknowledges, but most studies have not shown conclusive evidence one way or another. Because cellphone use has only been widespread for a few years, as ACA notes, it is impossible for any study to conclude what the long-term health effects of exposure could be.

Higher levels of exposure to non-ionizing radiation are known to impact the health of human cells and DNA, but whether cellphones can expose us to those higher levels is a question researchers are still working to answer.

AlterNet ran an article by Christopher Ketcham in 2011 exploring the widespread reports of cellphones and WiFi making people and animals sick. For the first time in human history, Ketcham noted, people are being exposed to electromagnetic frequencies from cellphones, WiFi and digital meters 24 hours a day. He quotes David O. Carpenter, director of the Institute for Health and the Environment at the State University of New York, who said, “Radiofrequency radiation has a number of biological effects which can be reproducibly found in animals and cellular systems. We really cannot say for certain what the adverse effects are in humans. But the indications are that there may be—and I use the words ‘may be’—very serious effects in humans.”

While the National Cancer Institute’s official stance is that cellphones likely do not emit high enough levels of radiation to affect human health, at least in the short term, its fact sheet on cellphone safety states: “Radiofrequency exposure from cellphone use does cause heating to the area of the body where a cellphone or other device is held (ear, head, etc.). However, it is not sufficient to measurably increase body temperature, and there are no other clearly established effects on the body from radiofrequency energy.”

Other research shows that cellular phones could potentially lower sperm count, cause headaches, and intefere with sleep, hearing and memory retention.

CNN medical correspondent Sanjay Gupta warned in 2012 that the risks of cellphone radiation are largely unknown. See the video, below:

An Atlantic article from earlier this year notes that a study published in PLUS ONE concluded there is a “‘significant’ association between long-term mobile phone use and the risk of glioma,” a type of brain tumor.
“But the actual significance of the link is questionable,” the Atlantic piece states. “The data they used spanned 11 studies between 1980 and 2016, but the researchers themselves acknowledged the evidence is limited and much of the data is ‘poor quality.’ The biggest takeaway, then, may be their conclusion that more study is needed.”
 
As in the U.S., European health experts continue to argue over the potential risks of cellphone radiation amid lack of long-term studies. A large-scale cellphone health study, the COSMOS project, is currently working to track the phone usage and health of more than half a million people across Europe. The study began in 2007 and will continue for the next two to three decades.

The New Guidelines

Since the long-term risk of cellphone use is unknown, why not take some simple, commonsense steps to reduce radiation exposure just in case? This was the apparent thought process behind California’s new guidelines.

The risk of cellphone radiation exposure can increase or decrease exponentially based on some simple do’s and don’ts. It’s a matter of tweaking a few basic habits.

Here are five things not to do, according to the California guidelines for cellphone health, “How to Reduce Exposure to Radiofrequency Energy from Cellphones.”

1. Don’t hold your phone up to your ear.“Use the speakerphone or a headset instead,” because “wireless (Bluetooth) and wired headsets emit much less RF energy than cellphones.” The guidelines also suggest sending text messages rather than talking on the phone whenever possible.

2. Try not to use your phone if you’re in a fast-moving vehicle.“Your phone puts out more RF energy to maintain connections to avoid dropping calls as it switches connections from one cell tower to the next unless it is in airplane mode,” the guidelines state.

3. Avoid using your phone when you have one or two service bars showing.“Cellphones put out more RF energy to connect with cell towers when the signal is weak,” the guide notes.

4. Don’t carry your phone in your pocket, bra or holster close to your body.The guidelines suggest you carry it in a backpack, briefcase, purse or elsewhere, so that the device is kept several inches away from your body. A few inches can make a difference, it notes. Also, put phones on airplane mode when carrying them close as the devices don’t emit RF energy when in airplane mode.

5. Never sleep with your phone under your pillow or near your head. Karen Smith from the state health department suggests keeping your phone at least an arm’s length away from your body when sleeping. You should also turn your phone off or on airplane mode while you sleep, the guidelines note.

 

Related Stories

  • Pharmaceutical Company Billionaire and Wife Found Dead in ‘Suspicious’ Circumstances
  • How Healthy Is Your State? The Disparities Are Stark
  • Nothing Protects Black Women From Dying in Pregnancy and Childbirth

About Trees, different Traversals and BST

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

Tree

Tree Terminology

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

Tree Node

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

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

Tree Traversals

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

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

In-Order Traversal

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

Pre-Order Traversal

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

Post-Order Traversal

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

Binary Search Tree(BST)

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

Operations on a Binary Search Tree

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

Search Operation

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

Insert Operation

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

Deletion Operation in BST

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

Do you want to learn Java Programming?

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?

Nailing down the Switch

I am still happily playing Zelda – Breath of the Wild every day on my new Switch. However I had to buy some accessories to make that work smoothly. After trying it out once I abandoned the idea of playing with the Switch as a mobile device: I found the screen too small for Zelda and the 2-hour battery life not sufficient for my needs. So I was playing on my TV, with the two Joy-Con controllers attached to the supplied grip, which makes them feel very similar to a gamepad. However the supplied grip has no electric connection at all. Thus at the end of every day I had to unhook the two Joy-Cons and attach them to the main console for charging. Not very practical, and somewhat fiddly.

I considered two solutions and ended up buying both: A wired gamepad controller and a Joy-Con charging grip. The charging grip has the advantage that you can still play wirelessly, and just need to plug in the charging cable in the evening. The gamepad is rounder and slightly more comfortable to play with; however the one I bought doesn’t support motion control nor near-field communications.

In summary, I basically nailed down my Switch and turned it into a regular console, with no more need to remove the tablet from the stand. I can see the appeal of having a mobile console, but unless somebody invents better batteries, the Switch isn’t that for me.

Understanding Synchronous and Asynchronous JavaScript – paRt_1 : JavaScript – its DiFFereNt

Javascript logo
In JavaScript Synchronous and Asynchronous are very important concepts. Beginners might find them difficult to learn.
When two or more things happen at same time then it is Synchronous and when they don’t that’s Asynchronous. These definitions are easy to understand but it’s complicated than it looks from here. So let’s dig a little deeper. 
You’d probably call a normal function in JavaScript synchronous, right? And if it’s something like setTimeout() or AJAX that you’re working with, you will refer to it as being asynchronous, yes? What if I tell you that both are asynchronous in a way?
Let’s understand with an example. We’ll get help from Mr. K,

Scenario 1:-> Mr. K is trying Synchronicity 

Here’s the setup:
  1. Mr K is someone who can answer tough questions, and carry out any requested task.
  2. The only way to contact him is through a phone call.
  3. Whatever question or task you got, in order to ask Mr K’s help to carry it out; you call him.
  4. Mr K gives you the answer or completes the task right away, and lets you know it’s done.
  5. You put down the receiver feeling content and go out on a date.
What you’ve just carried out was a synchronous (back and forth) communication with Mr K. He listened as you were asking him your question, and you listened when he was answering it.

client calling server

Scenario 2:-> Mr. K isn’t happy with Synchronicity 

Since Mr K is so efficient, he starts receiving many more calls. So what happens when you call him but he’s already busy talking to someone else? You won’t be able to ask him your question – not till he is free to receive your call. All you will hear is a busy tone.

So what can Mr K do to combat this?
Instead of taking calls directly:
  1. Mr K hires a new guy, Mr J and gives him an answering machine for the callers to leave messages.
  2. Mr J’s job is to pass on a message from the answering machine to Mr K once he knows Mr K has completely finished processing all previous messages and is already free to take a new one.
  3. So now when you call him, instead of getting a busy tone, you get to leave a message for Mr K, then wait for him to call you back (no date time yet).
  4. Once Mr K is done with all the queued up messages he received before yours, he will look into your issue, and call you back to give you an answer.
Now here lies the question: were the actions so far synchronous or asynchronous?
It’s mixed. When you left your message, Mr K wasn’t listening in to it, so the forth communication was asynchronous.
But, when he replied, you were there listening, which makes the return communication synchronous.
Until now you must have understand synchronicity in communication. It’s time to bring in JavaScript in the picture.

JavaScript An Asynchronous Language

When someone labels JavaScript asynchronous, what they are referring to in general is how you can leave a message for it, and not have your call blocked with a busy tone.
The function calls are never direct in JavaScript, they’re usually done via messages
JavaScript uses a message queue where incoming messages (or events) are held. An event-loop (a message dispatcher) sequentially dispatches those messages to a call stack where the corresponding functions of the messages are stacked as frames (function arguments & variables) for execution.
The call stack holds the frame of the initial function being called, and any other frames for functions called via nested calls on top of it .

JavaScript Call Stack
JavaScript Call Stack

When a message joins the queue, it waits until the call stack is empty of all frames from the previous message, and when it is, the event-loop de-queues the previous message, and adds the corresponding frames of the current message to the call stack.
The message waits again until the call stack becomes empty of its own corresponding frames (i.e. the executions of all the stacked functions are over), then is de-queued.
Consider the following code:

function foo(){}
function
bar(){
foo();
}
function
baz(){
bar();
}
baz();

The function being run is baz() (at the last row of the code snippet), for which a message is added to the queue, and when the event-loop picks it up, the call stack starts stacking frames for baz(), bar(), and foo() at the relevant points of execution.

Push action in Call Stack

Once the execution of the functions is complete one by one, their frames are removed from the call stack, while the message is still waiting in the queue, until baz() is popped from the stack.

Pop Action in Call Stack


Remember, the function calls are never direct in JavaScript, they’re done via messages. So whenever you hear someone say that JavaScript itself is an asynchronous programming language, assume that they are talking about its built-in “answering machine”, and how you’re free to leave messages.

But what about the specific asynchronous methods?

So far I’ve not touched on APIs such as setTimeout() and AJAX, those are the ones that are specifically referred to as asynchronous. Why is that?
It’s important to understand what exactly is being synchronous or asynchronous. JavaScript, with the help of events and the event-loop, may practice asynchronous processing of messages, but that doesn’t mean everything in JavaScript is asynchronous.
Remember, I told you the message didn’t leave until the call stack was empty of its corresponding frames, just like you didn’t leave on a date until you got your answer — that’s being synchronous, you are there waiting until the task is complete, and you get the answer.
Waiting isn’t ideal in all scenarios. What if after leaving a message, instead of waiting, you can leave on the date? What if a function can retire (emptying the call stack), and its message can be de-queued even before the task of the function is complete? What if you can have code executed asynchronously?
This is where APIs such as setTimeout() and AJAX come into the picture, and what they do is… hold on, I can’t explain this without going back to Mr K, which we’ll see in the second part of this article. Stay tuned…

Netgear Orbi RBK50

Fiddling around with technology that doesn’t work makes me very nervous. On the plus side I am then mighty pleased when I finally get everything working. And so I am happy to report that after fiddling I managed to dramatically improve the WiFi reception in my home by installing a Netgear Orbi RBK50.

For the last few years I have been using a Linksys EA7500 WiFi router. That worked, but in spite of the promises on the box about covering a “medium household”, WiFi reception in my den was always feeble. The den is only two rooms away from the office with the router, but the room between is the bathroom, and so there is one tiled wall without an opening in the way. That appears to block the signal quite drastically, so it takes the long way around. It was okay for web surfing, but not ideal for things like Netflix streaming. And then I bought the Switch. The Switch has one major drawback regarding Wifi, in that it has the world worst WiFi antenna. When your tablet shows 2 bars instead of 3, the Switch already can’t find any signal at all any more. So I had to move the Switch next to the base station every time I wanted to download something. Time for an upgrade.

I surfed the internet for recommendations (which also told me that Linksys routers aren’t considered to be very good) and found that a lot of people liked the Netgear Orbi. Just to make sure I took the RBK50 system, which has both a base station and one satellite for range extension. I had tried a Linksys extender, which had worked to some degree, but failed to use the same SSID as the base station as promised on the box. With Netgear Orbi there was no problem. I could put the satellite in the den, and it would still get a good signal from the base station and then enhance it. So now I have 75 Mbit/s WiFi connection everywhere in my home! Even the Switch shows three bars of WiFi connection.

The fiddling was necessary to get my printers working, which didn’t like the Orbi switching to a completely new IP gateway address. So I had to change the Orbi to access point mode, which then mysteriously messed up everything and I had to factory reset my main router as well as the Orbi system to get everything working again. It is still a mystery to me why everything goes fast on a computer, except for network connections: Every time you reset a router or network card, it takes several minutes to establish a network.

Anyway, everything is working now, and at 15 times the speed necessary for Netflix HD streaming (or 3 times the speed for Netflix Ultra HD streaming, which I don’t have the Netflix streaming plan for). Which means that both me and my wife can stream video without a download on the computer slowing down by much. Nice!

Republican Senators Are Making Out Like Bandits with Special Real-Estate Tax Break

The GOP isn’t even masking its greed and corruption.

When the U.S. Senate takes up the final tax bill this week, more than a quarter of all GOP senators will be voting on a bill that includes a special provision that could give them a new tax cut through their real estate shell companies, according to federal records reviewed by International Business Times. The provision…

 

Related Stories

  • The Republican Tax Bill Is a Poison Pill That Kills the New Deal
  • The GOP Tax Bill Is Social Darwinism in Action
  • Trump Diehards Take Over Taylor Swift’s New App, Instantly Start Spewing Hate

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

How abundance makes us poorer

Maybe it was to be expected with an offer that involves charity, but it turns out that for me the Humble Bundle Monthly is mostly an investment in a source for philosophical thoughts. When I initially bought the bundle in order to get Civ VI for cheap, I went for the three-month plan. So even if I since unsubscribed I just got my second months worth of games. And compared to the first month, there are even less games in there which I can see me playing. That is not to say that the offer is a bad one, or the games on offer are bad. Rather it reflects upon how my interests got narrower over time.

I am old enough to remember a time before video games. The first video game I played was Pong on a console that couldn’t play anything else, in black and white on a TV screen. When people got the first consoles with cartridges and computers, kids typically had just a handful of games, not necessarily chosen by themselves. If you only have 3 game cartridges, you will play the hell out of each of those games, whether those are your favorite games or not. Fast forward to 2017, where 7,672 games were released on Steam alone, again nearly doubling the number of Steam games available for a fourth year in a row.

Everybody has favorite games and favorite genres. If you are limited by the number of games available to you, you play what you got regardless of genre. If you have an abundance of choice, you get more and more picky and only play your favorite genres. The bottleneck becomes the amount of time available to play, so why should you play let’s say a platformer if you prefer role-playing games? Of course the consequence of that is that you end up with a much narrower experience. You only play a handful of favorite genres and don’t have the time for a bunch of other genres, which might offer a very different experience of gaming.

I see a parallel to the world of news and politics. Back in the day where your only source of news was one paper you and everybody in your street was subscribed to, you all got the same variety of news and opinions. Today there are so many sources of news and opinions that you can choose one which aligns well with your own opinions. If you are a fan of Trump, you watch Fox News and read Breitbart, if you are on the other side you watch CNN and read Huffington Post. But the result is that you end up in an echo chamber which doesn’t allow for a variety of opinions. This has gone so far that the echo chambers of today don’t even agree on the same set of facts. A news source that reports something uncomfortable to you is “fake news”, truth has become subservient to opinion.

The future is one in which we lead comfortable lives in which we play only our favorite games, see only our favorite genre of movies and TV shows, hear only news that please us. Until we have become so isolated from another group of people (which might well be our neighbors) that the two groups don’t consider each other of being of the same kind any more, and start killing each other off. The internet, which had a promise of offering us a much wider offer of everything from information to entertainment, ends up making us all poorer and more narrow-minded.

John Kelly Reportedly Working Toward Bipartisan DREAMers Solution

He attended a meeting with senators from both parties.

White House Chief of Staff John Kelly was seen on Capitol Hill Tuesday as part of the Trump administration’s push to reach a bipartisan solution for the Deferred Action for Childhood Arrivals program.

As Politico reports, Kelly attended a meeting with close to a dozen senators from both sides of the aisle and assured them that the White House “will soon present a list of border security and other policy changes it wants as part of a broader deal” for DACA recipients, also known as DREAMers.

“We couldn’t finish this product, this bill, until we knew where the administration was,” Sen. Jeff Flake (R-AZ), one of the senators working on the compromise, told Politico. “And that’s why this meeting was so important.”

Though senators who left the meeting said Kelly insisted the president’s terms may be released in a matter of days, Senate Majority Leader Mitch McConnell (R-KY) said the upper chamber would not vote on DACA before they break for the holidays this Friday.

“That’s a matter to be discussed next year,” McConnell said in an interview with Fox News earlier on Tuesday.

 

Related Stories

  • Is Trump an ‘Aspiring Despot’ or a ‘Bumbling Showman’? Why Not Both?
  • Paul Krugman: The GOP Is Completely, Hopelessly Corrupt
  • Trump Judicial Nominee Withdraws After GOP Senator Publicly Humiliates Him