text:
<?php
/*
 * main class of User Role Editor WordPress plugin
 * Author: Vladimir Garagulya
 * Author email: support@role-editor.com
 * Author URI: https://www.role-editor.com
 * License: GPL v2+
 *
*/

class User_Role_Editor {
    // common code staff, including options data processor
    protected $lib = null;

    // plugin's Settings page reference, we've got it from add_options_pages() call
    protected $setting_page_hook = null;
    // URE's key capability
    public $key_capability = 'not allowed';

    // URE pages hook suffixes
    protected $ure_hook_suffixes = null;

    /**
     * class constructor
     */
    function __construct($library) {

        // get plugin specific library object
        $this->lib = $library;
        if ($this->lib->is_pro()) {
         $this->ure_hook_suffixes = array('settings_page_settings-user-role-editor-pro', 'users_page_users-user-role-editor-pro');
        } else {
         $this->ure_hook_suffixes = array('settings_page_settings-user-role-editor', 'users_page_users-user-role-editor');
        }

        // activation action
        register_activation_hook(URE_PLUGIN_FULL_PATH, array($this, 'setup'));

        // deactivation action
        register_deactivation_hook(URE_PLUGIN_FULL_PATH, array($this, 'cleanup'));

        // Who may use this plugin
        $this->key_capability = $this->lib->get_key_capability();

        if ($this->lib->multisite) {
            // new blog may be registered not at admin back-end only but automatically after new user registration, e.g.
            // Gravity Forms User Registration Addon does
            add_action( 'wpmu_new_blog', array($this, 'duplicate_roles_for_new_blog'), 10, 2);
        }

        if (!is_admin()) {
            return;
        }

        add_action('admin_init', array($this, 'plugin_init'), 1);

        // Add the translation function after the plugins loaded hook.
        add_action('plugins_loaded', array($this, 'load_translation'));

        // add own submenu
        add_action('admin_menu', array($this, 'plugin_menu'));

        if ($this->lib->multisite) {
            // add own submenu
            add_action('network_admin_menu', array($this, 'network_plugin_menu'));
        }

        // add a Settings link in the installed plugins page
        add_filter('plugin_action_links_'. URE_PLUGIN_BASE_NAME, array($this, 'plugin_action_links'), 10, 1);

        add_filter('plugin_row_meta', array($this, 'plugin_row_meta'), 10, 2);

    }
    // end of __construct()

  /**
   * Plugin initialization
   *
   */
  public function plugin_init() {

    global $current_user, $pagenow;

    if (!empty($current_user->ID)) {
      $user_id = $current_user->ID;
    } else {
      $user_id = 0;
    }

    $supress_protection = apply_filters('ure_supress_administrators_protection', false);
    // these filters and actions should prevent editing users with administrator role
    // by other users with 'edit_users' capability
    if (!$supress_protection && !$this->lib->user_is_admin($user_id)) {
      // Exclude administrator role from edit list.
      add_filter('editable_roles', array($this, 'exclude_admin_role' ) );
      // prohibit any actions with user who has Administrator role
      add_filter('user_has_cap', array($this, 'not_edit_admin' ), 10, 3);
      // exclude users with 'Administrator' role from users list
      add_action('pre_user_query', array($this, 'exclude_administrators' ) );
      // do not show 'Administrator (s)' view above users list
      add_filter('views_users',  array($this, 'exclude_admins_view' ) );
    }

    add_action( 'admin_enqueue_scripts', array($this, 'admin_load_js' ) );
    add_action( 'user_row_actions', array($this, 'user_row'), 10, 2 );
    add_action( 'edit_user_profile', array($this, 'edit_user_profile'), 10, 2 );
    add_filter( 'manage_users_columns', array($this, 'user_role_column'), 10, 1 );
    add_filter( 'manage_users_custom_column', array($this, 'user_role_row'), 10, 3 );
    add_action( 'profile_update', array($this, 'user_profile_update'), 10 );
    add_filter( 'all_plugins', array($this, 'exclude_from_plugins_list' ) );

    if ($this->lib->multisite) {
        add_action( 'wpmu_activate_user', array($this, 'add_other_default_roles'), 10, 1 );

        $allow_edit_users_to_not_super_admin = $this->lib->get_option('allow_edit_users_to_not_super_admin', 0);
        if ($allow_edit_users_to_not_super_admin) {
            add_filter( 'map_meta_cap', array($this, 'restore_users_edit_caps'), 1, 4 );
            remove_all_filters( 'enable_edit_any_user_configuration' );
            add_filter( 'enable_edit_any_user_configuration', '__return_true');
            add_filter( 'admin_head', array($this, 'edit_user_permission_check'), 1, 4 );
            if ($pagenow=='user-new.php') {
                add_filter( 'site_option_site_admins', array($this, 'allow_add_user_as_superadmin') );
            }
        }
    } else {
        add_action( 'user_register', array($this, 'add_other_default_roles'), 10, 1 );
        $count_users_without_role = $this->lib->get_option('count_users_without_role', 0);
        if ($count_users_without_role) {
            add_action( 'restrict_manage_users', array($this, 'move_users_from_no_role_button') );
            add_action( 'admin_init', array($this, 'add_css_to_users_page'));
            add_action( 'admin_footer', array($this, 'add_js_to_users_page') );
        }
    }

    add_action('wp_ajax_ure_ajax', array($this, 'ure_ajax'));

  }
  // end of plugin_init()

  /**
   * Allow non-superadmin user to add/create users to the site as superadmin does.
   * Include current user to the list of superadmins - for the user-new.php page only, and
   * if user really can create_users and promote_users
   * @global string $page
   * @param array $site_admins
   * @return array
   */
  public function allow_add_user_as_superadmin($site_admins) {

      global $pagenow, $current_user;

      if ($pagenow!=='user-new.php') {
          return $site_admins;
      }

      // Check if current user really can create and promote users
      remove_filter('site_option_site_admins', array($this, 'allow_add_user_as_superadmin'));
      $can_add_user = current_user_can('create_users') && current_user_can('promote_users');
      add_filter('site_option_site_admins', array($this, 'allow_add_user_as_superadmin'));

      if (!$can_add_user) {
          return $site_admins; // no help in this case
      }

      if (!in_array($current_user->user_login, $site_admins)) {
        $site_admins[] = $current_user->user_login;
      }

      return $site_admins;

  }
  // end of allow_add_user_as_superadmin()

  public function move_users_from_no_role_button() {

      global $wpdb;

      if ( stripos($_SERVER['REQUEST_URI'], 'wp-admin/users.php')===false ) {
            return;
      }

      $id = get_current_blog_id();
      $blog_prefix = $wpdb->get_blog_prefix($id);
      $query = "select count(ID) from {$wpdb->users} users
                    where not exists (select user_id from {$wpdb->usermeta}
                                          where user_id=users.ID and meta_key='{$blog_prefix}capabilities') or
                          exists (select user_id from {$wpdb->usermeta}
                                    where user_id=users.ID and meta_key='{$blog_prefix}capabilities' and meta_value='a:0:{}')                ;";
      $users_count = $wpdb->get_var($query);
      if ($users_count>0) {
?>
          <input type="button" name="move_from_no_role" id="move_from_no_role" class="button"
                        value="Without role (<?php echo $users_count;?>)" onclick="ure_move_users_from_no_role_dialog()">

                To: <select name="ure_new_role" id="ure_new_role">
                    <option value="no_rights">No rights</option>
                </select>

<?php
      }

  }
  // end of move_users_from_no_role()

  public function add_css_to_users_page() {
      if ( stripos($_SERVER['REQUEST_URI'], 'wp-admin/users.php')===false ) {
            return;
      }
      wp_enqueue_style('wp-jquery-ui-dialog');
      wp_enqueue_style('ure-admin-css', URE_PLUGIN_URL . 'css/ure-admin.css', array(), false, 'screen');

  }
  // end of add_css_to_users_page()

  public function add_js_to_users_page() {

      if ( stripos($_SERVER['REQUEST_URI'], 'wp-admin/users.php')===false ) {
            return;
      }

      wp_enqueue_script('jquery-ui-dialog', false, array('jquery-ui-core','jquery-ui-button', 'jquery') );
      wp_register_script( 'ure-users-js', plugins_url( '/js/ure-users.js', URE_PLUGIN_FULL_PATH ) );
      wp_enqueue_script ( 'ure-users-js' );
      wp_localize_script( 'ure-users-js', 'ure_users_data', array(
        'wp_nonce' => wp_create_nonce('user-role-editor'),
        'move_from_no_role_title' => esc_html__('Change role for users without role', 'ure'),
        'no_rights_caption' => esc_html__('No rights', 'ure'),
        'provide_new_role_caption' => esc_html__('Provide new role', 'ure')
              ));

  }
  // end of add_js_to_users_page()

  public function add_other_default_roles($user_id) {

      if (empty($user_id)) {
          return;
      }
      $user = get_user_by('id', $user_id);
      if (empty($user->ID)) {
          return;
      }
      $other_default_roles = $this->lib->get_option('other_default_roles', array());
      if (count($other_default_roles)==0) {
          return;
      }
      foreach($other_default_roles as $role) {
          $user->add_role($role);
      }

  }
  // end of add_other_default_roles()

  /**
   * restore edit_users, delete_users, create_users capabilities for non-superadmin users under multisite
   * (code is provided by http://wordpress.org/support/profile/sjobidoo)
   *
   * @param type $caps
   * @param type $cap
   * @param type $user_id
   * @param type $args
   * @return type
   */
  public function restore_users_edit_caps($caps, $cap, $user_id, $args) {

        foreach ($caps as $key => $capability) {

            if ($capability != 'do_not_allow')
                continue;

            switch ($cap) {
                case 'edit_user':
                case 'edit_users':
                    $caps[$key] = 'edit_users';
                    break;
                case 'delete_user':
                case 'delete_users':
                    $caps[$key] = 'delete_users';
                    break;
                case 'create_users':
                    $caps[$key] = $cap;
                    break;
            }
        }

        return $caps;
    }
    // end of restore_user_edit_caps()

    /**
     * Checks that both the editing user and the user being edited are
     * members of the blog and prevents the super admin being edited.
     * (code is provided by http://wordpress.org/support/profile/sjobidoo)
     *
     */
    function edit_user_permission_check() {
        global $current_user, $profileuser;

        if (is_super_admin()) { // Superadmin may do all
            return;
        }

        $screen = get_current_screen();

        get_currentuserinfo();

        if ($screen->base == 'user-edit' || $screen->base == 'user-edit-network') { // editing a user profile
            if (!is_super_admin($current_user->ID) && is_super_admin($profileuser->ID)) { // trying to edit a superadmin while himself is less than a superadmin
                wp_die(esc_html__('You do not have permission to edit this user.'));
            } elseif (!( is_user_member_of_blog($profileuser->ID, get_current_blog_id()) && is_user_member_of_blog($current_user->ID, get_current_blog_id()) )) { // editing user and edited user aren't members of the same blog
                wp_die(esc_html__('You do not have permission to edit this user.'));
            }
        }
    }
    // end of edit_user_permission_check()

  /**
   * exclude administrator role from the roles list
   *
   * @param string $roles
   * @return array
   */
  public function exclude_admin_role($roles)
  {

    if (isset($roles['administrator'])) {
      unset($roles['administrator']);
    }

    return $roles;
  }
  // end of exclude_admin_role()

  /**
     * We have two vulnerable queries with user id at admin interface, which should be processed
     * 1st: http://blogdomain.com/wp-admin/user-edit.php?user_id=ID&wp_http_referer=%2Fwp-admin%2Fusers.php
     * 2nd: http://blogdomain.com/wp-admin/users.php?action=delete&user=ID&_wpnonce=ab34225a78
     * If put Administrator user ID into such request, user with lower capabilities (if he has 'edit_users')
     * can edit, delete admin record
     * This function removes 'edit_users' capability from current user capabilities
     * if request has admin user ID in it
     *
     * @param array $allcaps
     * @param type $caps
     * @param string $name
     * @return array
     */
    public function not_edit_admin($allcaps, $caps, $name) {

        $user_keys = array('user_id', 'user');
        foreach ($user_keys as $user_key) {
            $access_deny = false;
            $user_id = $this->lib->get_request_var($user_key, 'get');
            if (!empty($user_id)) {
                if ($user_id == 1) {  // built-in WordPress Admin
                    $access_deny = true;
                } else {
                    if (!isset($this->lib->user_to_check[$user_id])) {
                        // check if user_id has Administrator role
                        $access_deny = $this->lib->has_administrator_role($user_id);
                    } else {
                        // user_id was checked already, get result from cash
                        $access_deny = $this->lib->user_to_check[$user_id];
                    }
                }
                if ($access_deny) {
                    unset($allcaps['edit_users']);
                }
                break;
            }
        }

        return $allcaps;
    }
    // end of not_edit_admin()

    /**
     * add where criteria to exclude users with 'Administrator' role from users list
     *
     * @global wpdb $wpdb
     * @param  type $user_query
     */
    public function exclude_administrators($user_query) {

        global $wpdb;

        $result = false;
        $links_to_block = array('profile.php', 'users.php');
        foreach ($links_to_block as $key => $value) {
            $result = stripos($_SERVER['REQUEST_URI'], $value);
            if ($result !== false) {
                break;
            }
        }

        if ($result === false) { // block the user edit stuff only
            return;
        }

        // get user_id of users with 'Administrator' role
        $tableName = (!$this->lib->multisite && defined('CUSTOM_USER_META_TABLE')) ? CUSTOM_USER_META_TABLE : $wpdb->usermeta;
        $meta_key = $wpdb->prefix . 'capabilities';
        $admin_role_key = '%"administrator"%';
        $query = "select user_id
              from $tableName
              where meta_key='$meta_key' and meta_value like '$admin_role_key'";
        $ids_arr = $wpdb->get_col($query);
        if (is_array($ids_arr) && count($ids_arr) > 0) {
            $ids = implode(',', $ids_arr);
            $user_query->query_where .= " AND ( $wpdb->users.ID NOT IN ( $ids ) )";
        }
    }
    // end of exclude_administrators()

    /*
     * Exclude view of users with Administrator role
     *
     */
    public function exclude_admins_view($views) {

        unset($views['administrator']);

        return $views;
    }
    // end of exclude_admins_view()

  /**
   * Add/hide edit actions for every user row at the users list
   *
   * @global type $pagenow
   * @global type $current_user
   * @param string $actions
   * @param type $user
   * @return string
   */
    public function user_row($actions, $user) {

        global $pagenow, $current_user;

        if ($pagenow == 'users.php') {
            if ($current_user->has_cap($this->key_capability)) {
                $actions['capabilities'] = 'ID}", "ure_user_{$user->ID}") .
                        '">' . esc_html__('Capabilities', 'ure') . '';
            }
        }

        return $actions;
    }

    // end of user_row()

    /**
   * every time when new blog created - duplicate to it roles from the main blog (1)
   * @global wpdb $wpdb
   * @global WP_Roles $wp_roles
   * @param int $blog_id
   * @param int $user_id
   *
   */
  public function duplicate_roles_for_new_blog($blog_id)
  {

    global $wpdb, $wp_roles;

    // get Id of 1st (main) blog
    $main_blog_id = $this->lib->get_main_blog_id();
    if ( empty($main_blog_id) ) {
      return;
    }
    $current_blog = $wpdb->blogid;
    switch_to_blog( $main_blog_id );
    $main_roles = new WP_Roles();  // get roles from primary blog
    $default_role = get_option('default_role');  // get default role from primary blog
    switch_to_blog($blog_id);  // switch to the new created blog
    $main_roles->use_db = false;  // do not touch DB
    $main_roles->add_cap('administrator', 'dummy_123456');   // just to save current roles into new blog
    $main_roles->role_key = $wp_roles->role_key;
    $main_roles->use_db = true;  // save roles into new blog DB
    $main_roles->remove_cap('administrator', 'dummy_123456');  // remove unneeded dummy capability
    update_option('default_role', $default_role); // set default role for new blog as it set for primary one
    switch_to_blog($current_blog);  // return to blog where we were at the begin
  }
  // end of duplicate_roles_for_new_blog()

  /**
   * Filter out URE plugin from not admin users to prevent its not authorized deactivation
   * @param type array $plugins plugins list
   * @return type array $plugins updated plugins list
   */
  public function exclude_from_plugins_list($plugins) {

        // if multi-site, then allow plugin activation for network superadmins and, if that's specially defined, - for single site administrators too
        if ($this->lib->multisite) {
            if (is_super_admin() || $this->lib->user_is_admin()) {
                return $plugins;
            }
        } else {
// is_super_admin() defines superadmin for not multisite as user who can 'delete_users' which I don't like.
// So let's check if user has 'administrator' role better.
            if (current_user_can('administrator') || $this->lib->user_is_admin()) {
                return $plugins;
            }
        }

        // exclude URE from plugins list
        foreach ($plugins as $key => $value) {
            if ($key == 'user-role-editor/' . URE_PLUGIN_FILE) {
                unset($plugins[$key]);
                break;
            }
        }

        return $plugins;
    }
    // end of exclude_from_plugins_list()

    /**
     * Load plugin translation files - linked to the 'plugins_loaded' action
     *
     */
    function load_translation()
    {

        load_plugin_textdomain('ure', '', dirname( plugin_basename( URE_PLUGIN_FULL_PATH ) ) .'/lang');

    }
    // end of ure_load_translation()

    /**
     * Modify plugin action links
     *
     * @param array $links
     * @return array
     */
    public function plugin_action_links($links) {

        $settings_link = "" . esc_html__('Settings', 'ure') . "";
        array_unshift($links, $settings_link);

        return $links;
    }
    // end of plugin_action_links()

    public function plugin_row_meta($links, $file) {

        if ($file == plugin_basename(dirname(URE_PLUGIN_FULL_PATH) .'/'.URE_PLUGIN_FILE)) {
            $links[] = '' . esc_html__('Changelog', 'ure') . '';
        }

        return $links;
    }

    // end of plugin_row_meta

    public function settings_screen_configure() {
        $settings_page_hook = $this->settings_page_hook;
        if (is_multisite()) {
            $settings_page_hook .= '-network';
        }
        $screen = get_current_screen();
        // Check if current screen is URE's settings page
        if ($screen->id != $settings_page_hook) {
            return;
        }
        $screen_help = new Ure_Screen_Help();
        $screen->add_help_tab( array(
            'id'	=> 'general',
            'title'	=> esc_html__('General', 'ure'),
            'content'	=> $screen_help->get_settings_help('general')
            ));
        if ($this->lib->is_pro() || !$this->lib->multisite) {
            $screen->add_help_tab( array(
                'id'	=> 'additional_modules',
                'title'	=> esc_html__('Additional Modules', 'ure'),
                'content'	=> $screen_help->get_settings_help('additional_modules')
                ));
        }
        $screen->add_help_tab( array(
            'id'	=> 'default_roles',
            'title'	=> esc_html__('Default Roles', 'ure'),
            'content'	=> $screen_help->get_settings_help('default_roles')
            ));
        if ($this->lib->multisite) {
            $screen->add_help_tab( array(
                'id'	=> 'multisite',
                'title'	=> esc_html__('Multisite', 'ure'),
                'content'	=> $screen_help->get_settings_help('multisite')
                ));
        }
    }
    // end of settings_screen_configure()

    public function plugin_menu() {

        $translated_title = esc_html__('User Role Editor', 'ure');
        if (function_exists('add_submenu_page')) {
            $ure_page = add_submenu_page(
                    'users.php',
                    $translated_title,
                    $translated_title,
                    $this->key_capability,
                    'users-' . URE_PLUGIN_FILE,
                    array($this, 'edit_roles'));
            add_action("admin_print_styles-$ure_page", array($this, 'admin_css_action'));
        }

        if ( !$this->lib->multisite || ($this->lib->multisite && !$this->lib->active_for_network) ) {
            $settings_capability = $this->lib->get_settings_capability();
            $this->settings_page_hook = add_options_page(
                    $translated_title,
                    $translated_title,
                    $settings_capability,
                    'settings-' . URE_PLUGIN_FILE,
                    array($this, 'settings'));
            add_action( 'load-'.$this->settings_page_hook, array($this,'settings_screen_configure') );
            add_action("admin_print_styles-{$this->settings_page_hook}", array($this, 'admin_css_action'));
        }
    }
    // end of plugin_menu()

    public function network_plugin_menu() {
        if (is_multisite()) {
            $translated_title = esc_html__('User Role Editor', 'ure');
            $this->settings_page_hook = add_submenu_page(
                    'settings.php',
                    $translated_title,
                    $translated_title,
                    $this->key_capability,
                    'settings-' . URE_PLUGIN_FILE,
                    array(&$this, 'settings'));
            add_action( 'load-'.$this->settings_page_hook, array($this,'settings_screen_configure') );
            add_action("admin_print_styles-{$this->settings_page_hook}", array($this, 'admin_css_action'));
        }

    }

    // end of network_plugin_menu()

    protected function get_settings_action() {

        $action = 'show';
        $update_buttons = array('ure_settings_update', 'ure_addons_settings_update', 'ure_settings_ms_update', 'ure_default_roles_update');
        foreach($update_buttons as $update_button) {
            if (!isset($_POST[$update_button])) {
                continue;
            }
            if (!wp_verify_nonce($_POST['_wpnonce'], 'user-role-editor')) {
                wp_die('Security check failed');
            }
            $action = $update_button;
            break;
        }

        return $action;

    }
    // end of get_settings_action()

    /**
     * Update General Options tab
     */
    protected function update_general_options() {
        if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
            $show_admin_role = 1;
        } else {
            $show_admin_role = $this->lib->get_request_var('show_admin_role', 'checkbox');
        }
        $this->lib->put_option('show_admin_role', $show_admin_role);

        $caps_readable = $this->lib->get_request_var('caps_readable', 'checkbox');
        $this->lib->put_option('ure_caps_readable', $caps_readable);

        $show_deprecated_caps = $this->lib->get_request_var('show_deprecated_caps', 'checkbox');
        $this->lib->put_option('ure_show_deprecated_caps', $show_deprecated_caps);

        $edit_user_caps = $this->lib->get_request_var('edit_user_caps', 'checkbox');
        $this->lib->put_option('edit_user_caps', $edit_user_caps);

        do_action('ure_settings_update1');

        $this->lib->flush_options();
        $this->lib->show_message(esc_html__('User Role Editor options are updated', 'ure'));

    }
    // end of update_general_options()

    /**
     * Update Additional Modules Options tab
     */
    protected function update_addons_options() {

        if (!$this->lib->multisite) {
            $count_users_without_role = $this->lib->get_request_var('count_users_without_role', 'checkbox');
            $this->lib->put_option('count_users_without_role', $count_users_without_role);
        }
        do_action('ure_settings_update2');

        $this->lib->flush_options();
        $this->lib->show_message(esc_html__('User Role Editor options are updated', 'ure'));
    }
    // end of update_addons_options()

    protected function update_default_roles() {
        global $wp_roles;

        // Primary default role
        $primary_default_role = $this->lib->get_request_var('default_user_role', 'post');
        if (!empty($primary_default_role) && isset($wp_roles->role_objects[$primary_default_role]) && $primary_default_role !== 'administrator') {
            update_option('default_role', $primary_default_role);
        }

        // Other default roles
        $other_default_roles = array();
        foreach($_POST as $key=>$value) {
            $prefix = substr($key, 0, 8);
            if ($prefix!=='wp_role_') {
                continue;
            }
            $role_id = substr($key, 8);
            if ($role_id!=='administrator' && isset($wp_roles->role_objects[$role_id])) {
                $other_default_roles[] = $role_id;
            }
        }  // foreach()
        $this->lib->put_option('other_default_roles', $other_default_roles, true);

        $this->lib->show_message(esc_html__('Default Roles are updated', 'ure'));
    }
    // end of update_default_roles()

    protected function update_multisite_options() {
        if (!$this->lib->multisite) {
            return;
        }

        $allow_edit_users_to_not_super_admin = $this->lib->get_request_var('allow_edit_users_to_not_super_admin', 'checkbox');
        $this->lib->put_option('allow_edit_users_to_not_super_admin', $allow_edit_users_to_not_super_admin);

        do_action('ure_settings_ms_update');

        $this->lib->flush_options();
        $this->lib->show_message(esc_html__('User Role Editor options are updated', 'ure'));

    }
    // end of update_multisite_options()

    public function settings() {
        $settings_capability = $this->lib->get_settings_capability();
        if (!current_user_can($settings_capability)) {
            wp_die(esc_html__( 'You do not have sufficient permissions to manage options for User Role Editor.', 'ure' ));
        }
        $action = $this->get_settings_action();
        switch ($action) {
            case 'ure_settings_update':
                $this->update_general_options();
                break;
            case 'ure_addons_settings_update':
                $this->update_addons_options();
                break;
            case 'ure_settings_ms_update':
                $this->update_multisite_options();
                break;
            case 'ure_default_roles_update':
                $this->update_default_roles();
            case 'show':
            default:
            ;
        } // switch()

        if (defined('URE_SHOW_ADMIN_ROLE') && (URE_SHOW_ADMIN_ROLE == 1)) {
            $show_admin_role = 1;
        } else {
            $show_admin_role = $this->lib->get_option('show_admin_role', 0);
        }
        $caps_readable = $this->lib->get_option('ure_caps_readable', 0);
        $show_deprecated_caps = $this->lib->get_option('ure_show_deprecated_caps', 0);
        $edit_user_caps = $this->lib->get_option('edit_user_caps', 1);

        if ($this->lib->multisite) {
            $allow_edit_users_to_not_super_admin = $this->lib->get_option('allow_edit_users_to_not_super_admin', 0);
        } else {
            $count_users_without_role = $this->lib->get_option('count_users_without_role', 0);
        }

        $this->lib->get_default_role();
        $this->lib->editor_init1();
        $this->lib->role_edit_prepare_html(0);

        $ure_tab_idx = $this->lib->get_request_var('ure_tab_idx', 'int');

        do_action('ure_settings_load');

        if ($this->lib->multisite && is_network_admin()) {
            $link = 'settings.php';
        } else {
            $link = 'options-general.php';
        }

        $license_key_only = $this->lib->multisite && is_network_admin() && !$this->lib->active_for_network;

        require_once(URE_PLUGIN_DIR . 'includes/settings-template.php');
    }
    // end of settings()

    public function admin_css_action() {

        wp_enqueue_style('wp-jquery-ui-dialog');
        if (stripos($_SERVER['REQUEST_URI'], 'settings-user-role-editor')!==false) {
            wp_enqueue_style('ure-jquery-ui-tabs', URE_PLUGIN_URL . 'css/jquery-ui-1.10.4.custom.min.css', array(), false, 'screen');
        }
        wp_enqueue_style('ure-admin-css', URE_PLUGIN_URL . 'css/ure-admin.css', array(), false, 'screen');
    }
    // end of admin_css_action()

    // call roles editor page
    public function edit_roles() {

        if (!current_user_can($this->key_capability)) {
            wp_die(esc_html__('Insufficient permissions to work with User Role Editor', 'ure'));
        }

        $this->lib->editor();
    }
    // end of edit_roles()

	// move old version option to the new storage 'user_role_editor' option, array, containing all URE options
	private function convert_option($option_name) {

		$option_value = get_option($option_name, 0);
		delete_option($option_name);
		$this->lib->put_option( $option_name, $option_value );

	}

	/**
	 *  execute on plugin activation
	 */
	function setup() {

		$this->convert_option('ure_caps_readable');
		$this->convert_option('ure_show_deprecated_caps');
		$this->convert_option('ure_hide_pro_banner');
		$this->lib->flush_options();

  $this->lib->make_roles_backup();
  $this->lib->init_ure_caps();

		do_action('ure_activation');

	}
	// end of setup()

    /**
     * Unload WP TechGoStore theme JS and CSS to exclude compatibility issues with URE
     */
    protected function unload_techgostore($hook_suffix) {

        if (!defined('THEME_SLUG') || THEME_SLUG!=='techgo_') {
            return;
        }

        if ( !in_array($hook_suffix, $this->ure_hook_suffixes) && !in_array($hook_suffix, array('users.php', 'profile.php')) ) {
            return;
        }
        wp_deregister_script('jqueryform');
        wp_deregister_script('tab');
        wp_deregister_script('shortcode_js');
        wp_deregister_script('fancybox_js');
        wp_deregister_script('bootstrap-colorpicker');
        wp_deregister_script('logo_upload');
        wp_deregister_script('js_wd_menu_backend');

        wp_deregister_style('config_css');
        wp_deregister_style('fancybox_css');
        wp_deregister_style('colorpicker');
        wp_deregister_style('font-awesome');
        wp_deregister_style('css_wd_menu_backend');
    }

// end of unload_techgostore()

    /**
     * Unload MusicPlay theme CSS to exclude compatibility issues with URE
     *
     */
    protected function unload_musicplay($hook_suffix) {
        if ( !in_array($hook_suffix, $this->ure_hook_suffixes) && !in_array($hook_suffix, array('users.php', 'profile.php')) ) {
            return;
        }

        if (defined('THEMENAME') && THEMENAME!=='MusicPlay') {
            return;
        }

        wp_deregister_style('atpadmin');
        wp_deregister_style('appointment-style');
        wp_deregister_style('atp-chosen');
        wp_deregister_style('atp_plupload');
        wp_deregister_style('atp-jquery-timepicker-addon');
        wp_deregister_style('atp-jquery-ui');

    }
    // end of unload_music_play()

    protected function unload_conflict_plugins_css($hook_suffix) {
        global $wp_styles;

        if ( !in_array($hook_suffix, $this->ure_hook_suffixes) && !in_array($hook_suffix, array('users.php', 'profile.php')) ) {
            return;
        }

        // remove conflict CSS from responsive-admin-maintenance-pro plugin
        if (isset($wp_styles->registered['admin-page-css'])) {
            wp_deregister_style('admin-page-css');
        }
    }
    // end of unload_conflict_plugins_css()

    /**
     * Load plugin javascript stuff
     *
     * @param string $hook_suffix
     */
    public function admin_load_js($hook_suffix) {

        $this->unload_techgostore($hook_suffix);
        $this->unload_musicplay($hook_suffix);
        $this->unload_conflict_plugins_css($hook_suffix);

        if (in_array($hook_suffix, $this->ure_hook_suffixes)) {
            wp_enqueue_script('jquery-ui-dialog', false, array('jquery-ui-core', 'jquery-ui-button', 'jquery'));
            wp_enqueue_script('jquery-ui-tabs', false, array('jquery-ui-core', 'jquery'));
            wp_register_script('ure-js', plugins_url('/js/ure-js.js', URE_PLUGIN_FULL_PATH));
            wp_enqueue_script('ure-js');
            wp_localize_script('ure-js', 'ure_data', array(
                'wp_nonce' => wp_create_nonce('user-role-editor'),
                'page_url' => URE_WP_ADMIN_URL . URE_PARENT . '?page=users-' . URE_PLUGIN_FILE,
                'is_multisite' => is_multisite() ? 1 : 0,
                'select_all' => esc_html__('Select All', 'ure'),
                'unselect_all' => esc_html__('Unselect All', 'ure'),
                'reverse' => esc_html__('Reverse', 'ure'),
                'update' => esc_html__('Update', 'ure'),
                'confirm_submit' => esc_html__('Please confirm permissions update', 'ure'),
                'add_new_role_title' => esc_html__('Add New Role', 'ure'),
                'rename_role_title' => esc_html__('Rename Role', 'ure'),
                'role_name_required' => esc_html__(' Role name (ID) can not be empty!', 'ure'),
                'role_name_valid_chars' => esc_html__(' Role name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
                'numeric_role_name_prohibited' => esc_html__(' WordPress does not support numeric Role name (ID). Add latin characters to it.', 'ure'),
                'add_role' => esc_html__('Add Role', 'ure'),
                'rename_role' => esc_html__('Rename Role', 'ure'),
                'delete_role' => esc_html__('Delete Role', 'ure'),
                'cancel' => esc_html__('Cancel', 'ure'),
                'add_capability' => esc_html__('Add Capability', 'ure'),
                'delete_capability' => esc_html__('Delete Capability', 'ure'),
                'reset' => esc_html__('Reset', 'ure'),
                'reset_warning' => esc_html__('DANGER! Resetting will restore default settings from WordPress Core.', 'ure') . "\n\n" .
                esc_html__('If any plugins have changed capabilities in any way upon installation (such as S2Member, WooCommerce, and many more), those capabilities will be DELETED!', 'ure') . "\n\n" .
                esc_html__('For more information on how to undo changes and restore plugin capabilities go to', 'ure') . "\n" .
                'http://role-editor.com/how-to-restore-deleted-wordpress-user-roles/' . "\n\n" .
                esc_html__('Continue?', 'ure'),
                'default_role' => esc_html__('Default Role', 'ure'),
                'set_new_default_role' => esc_html__('Set New Default Role', 'ure'),
                'delete_capability' => esc_html__('Delete Capability', 'ure'),
                'delete_capability_warning' => esc_html__('Warning! Be careful - removing critical capability could crash some plugin or other custom code', 'ure'),
                'capability_name_required' => esc_html__(' Capability name (ID) can not be empty!', 'ure'),
                'capability_name_valid_chars' => esc_html__(' Capability name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
            ));
            // load additional JS stuff for Pro version, if exists
            do_action('ure_load_js');
        }
    }
    // end of admin_load_js()

    protected function is_user_profile_extention_allowed() {
        // Check if we are not at the network admin center
        $result = stripos($_SERVER['REQUEST_URI'], 'network/user-edit.php') == false;

        return $result;
    }
    // end of is_user_profile_extention_allowed()

    public function edit_user_profile($user) {

        global $current_user;

        if (!$this->is_user_profile_extention_allowed()) {
            return;
        }
?>

<?php _e('User Role Editor', 'ure'); ?>

        			<?php _e('Other Roles', 'ure'); ?>

        <?php
        $roles = $this->lib->other_user_roles($user);
        if (is_array($roles) && count($roles) > 0) {
            foreach ($roles as $role) {
                echo '<input type="hidden" name="ure_other_roles[]" value="' . $role . '" />';
            }
        }

        $output = $this->lib->roles_text($roles);
        echo $output;
        if ($this->lib->user_is_admin($current_user->ID)) {
            echo '  >> ID}", "ure_user_{$user->ID}") . '">' .
                 esc_html__('Edit', 'ure') . '';
        }
        ?>

        <?php
    }
    // end of edit_user_profile()

    /**
     *  add 'Other Roles' column to WordPress users list table
     *
     * @param array $columns WordPress users list table columns list
     * @return array
     */
    public function user_role_column($columns = array()) {

        $columns['ure_roles'] = esc_html__('Other Roles', 'ure');

        return $columns;
    }
    // end of user_role_column()

    /**
     * Return user's roles list for display in the WordPress Users list table
     *
     * @param string $retval
     * @param string $column_name
     * @param int $user_id
     *
     * @return string all user roles
     */
    public function user_role_row($retval = '', $column_name = '', $user_id = 0)
    {

        // Only looking for User Role Editor other user roles column
        if ('ure_roles' == $column_name) {
            $user = get_userdata($user_id);
            // Get the users roles
            $roles = $this->lib->other_user_roles($user);
            $retval = $this->lib->roles_text($roles);
        }

        // Pass retval through
        return $retval;
    }
    // end of user_role_row()

    // save additional user roles when user profile is updated, as WordPress itself doesn't know about them
    public function user_profile_update($user_id) {

        if (!current_user_can('edit_user', $user_id)) {
            return;
        }
        $user = get_userdata($user_id);

        if (isset($_POST['ure_other_roles'])) {
            $new_roles = array_intersect($user->roles, $_POST['ure_other_roles']);
            $skip_roles = array();
            foreach ($new_roles as $role) {
                $skip_roles['$role'] = 1;
            }
            unset($new_roles);
            foreach ($_POST['ure_other_roles'] as $role) {
                if (!isset($skip_roles[$role])) {
                    $user->add_role($role);
                }
            }
        }

    }
    // update_user_profile()

    public function ure_ajax() {

        require_once(URE_PLUGIN_DIR . 'includes/class-ajax-processor.php');
        $ajax_processor = new URE_Ajax_Processor($this->lib);
        $ajax_processor->dispatch();

    }
    // end of ure_ajax()

    // execute on plugin deactivation
    function cleanup()
    {

    }
    // end of setup()

}
// end of User_Role_Editor

redpajama_set_name: RedPajamaGithub


text:
Pyrex Partners With Chef Christina Tosi For Delicious New Designs
Pyrex Part...
Pyrex containers offer more than just a practical solution to storing holiday leftovers. The classic cookware brand's pretty patterns attract plenty of fans. Now Pyrex has introduced a new design in partnership with pastry chef and author Christina Tosi, featuring lively black-and-white line art and a kiss of personality.
The Best Food and Drink in Every State
Tosi has a tasty resume: She's a pastry chef, founder and owner of 15 Milk Bar stores across North America, author of three cookbooks including October 2018's "All About Cake," and a current judge on "MasterChef Junior" and former judge of "MasterChef." Her Milk Bar is a chain of dessert and bakery restaurants, famous for such desserts as Tosi's Cereal Milk, a soft-serve dessert she invented in 2007 to mimic the flavor of milk left behind in a cereal bowl.
The dishes that bear her name feature simple black-and-white lines and circles and Tosi's own signature, "XO Tosi," written in her handwriting.
"Pyrex is one of my favorite kitchen essentials - so I was incredibly excited to collaborate with them, especially in conjunction with Milk Bar's 10th birthday," Tosi said in a press release. "I'm all about fun, rule-breaking baking. We wanted to create a collection that captured this spirit with my personal touch - and looks super cute!"
The Tosi Decorated Storage line includes four four-cup containers, all with different designs, and made of pure, non-porous glass. They're priced at $9 each, and are available only for a limited time at Pyrexware.com and Milk Bar flagship stores in Los Angeles and the Logan Circle neighborhood of Washington, DC.
Corning Glass Works released its first Pyrex products in 1915, and they've been a classic part of American cooking ever since. The line's iconic patterns are so well-known that some fans are choosing to get Pyrex-inspired tattoos. If homey kitchen traditions are your cup of tea, check out what dinner was like at home 50 years ago.
25 Chain Restaurants Serving New Year's Eve Dinner Gallery
15 tips for taking 'me time' for people who never do
Therapists' Advice for Surviving Thanksgiving With a Dysfunctional Family
The Most Romantic Fall Date Ideas
10 pros and 10 cons to taking a DNA test
25 Places to See Before You Die
Does the World Needs a White Wine Emoji? This 15-Page Proposal Says Yes
McDonald's Is Testing a Stroopwafel McFlurry
Le Creuset Releases Breathtaking Ombre Cookware Collection
New Kitchen Gadgets to Get on Amazon Prime Day
I Bite My String Cheese, and I Won't Apologize for That
The TSA Will Now Screen Your Snacks Before Boarding
Chick-fil-A to Launch Meal Kit Concept in Atlanta
Kosher Chicken Salmonella Outbreak Causes 17 Illnesses, 1 Death
Cardi B Spent $64 at Waffle House and That's the Kind of Life We Want to Lead

redpajama_set_name: RedPajamaCommonCrawl


text:
Anatomy of a Wrongful Execution
by James S. Liebman
Pub Date: July 8th, 2014
Publisher: Columbia Univ.
A Columbia Law School professor and some of his students gather and present evidence establishing the innocence of Carlos DeLuna, executed for murder in Texas in 1989.
Legal scholar Liebman (co-author: Federal Habeas Corpus Practice and Procedure, 2001) begins (and ends) with Justice Antonin Scalia, who famously said in 2006 that there has not been a single case of wrongful execution. Perhaps this one will change his message? The author acquired the old transcripts, interviewed many of those involved, read the newspaper clippings and watched the TV news coverage—in general, he and his team behaved as the authorities in Corpus Christi should have but manifestly didn't. In 1983, DeLuna was accused of stabbing Wanda Lopez, a gas station clerk, and was apprehended less than an hour later. Intellectually damaged, DeLuna denied the crime from the beginning to the very moment of his execution. Liebman and the others discovered that there was another Carlos—Carlos Hernandez—who was patently guilty. He and DeLuna looked a lot alike, but the violent Hernandez, a career criminal who later died in prison, carried (and often used) a knife and later told more than one person that he had actually committed the murder. Liebman's team went over the physical evidence thoroughly (there was none connecting DeLuna to the case) and tacitly and explicitly accuse the Corpus Christi authorities of a rush to judgment. The author offers numerous photographs, charts and other documents (some are from police reports and trial evidence), as well as a website that presents much more of it. The chapter about DeLuna's execution is wrenching. Liebman concludes with thoughts about how something like this could happen—and what we need to do to prevent it from happening again.
Death penalty opponents now have a definitive example to cite; death penalty proponents have an agonizing case to consider.


text:
It's Time to Open the Black Box of Social Media
Social media companies need to give their data to independent researchers to better understand how to keep users safe
Credit: Kailey Whitman
Social media sites are where billions of people go to make sense of the world, connect with others and get information. These companies, which include Reddit, Instagram, TikTok, Twitter, Instagram and TikTok, collect huge amounts of data from every interaction on their platforms.
Despite social media being one of the most important forums for speech, a few people control many of the most important platforms. Mark Zuckerberg controls 58 percent of the voting share of Meta, the parent company of both Facebook and Instagram, effectively giving him sole control of two of the largest social platforms. Elon Musk made a $44-billion offer to take Twitter private (although whether that deal goes through will be determined by a lawsuit). [Editor's Note: Musk completed his acquisition of Twitter in late October.] These companies have a history sharing very little data about their platforms with researchers. This prevents us from understanding the impact of social media on individuals. We fear that this lockdown on data sharing will continue because of the singular ownership of three of the most powerful social media platforms.
After decades of little regulation, it's time for more transparency from social media companies.
In 2020 social media was an important mechanism for the spread of false and misleading claims about the election and for mobilization by groups that participated in the January 6, 2021, Capitol insurrection. During the pandemic, misinformation about COVID was widely spread online. Today, social media companies are failing in their promise to ban Russian propaganda about the war against Ukraine. Social media has been a major channel for spreading false information about any issue that is of concern to society. We don't know the next crisis, but we do know that false claims will be made about it on these platforms.
Unfortunately social media companies are reluctant to release data or publish research, especially when they might not be welcome (although there are notable exceptions). Legislators and regulators must require social media companies that they release data to independent researchers in order to understand the platform's activities. In particular, we need access to data on the structures of social media, such as platform features and algorithms, so we can better analyze how they shape the spread of information and affect user behavior.
Platforms have stated to legislators that they are taking steps against misinformation and disinformation, by flagging content and inserting facts-checks. Are these efforts successful? Access to data is required to find out. Without better data, it is impossible to have a substantive discussion about which interventions will be most effective and in line with our values. We run the risk of creating new laws or regulations that don't adequately address harms, or worsening existing problems.
Some members of our team have met with legislators in the U.S.A. and Europe to discuss possible legislative reforms along these lines. The conversation about transparency and accountability for social media businesses has become deeper and more substantive. It moved from vague generalities towards specific proposals. However, the context is still lacking. Regulators and lawmakers often ask us to explain why we need data access, what research it would allow, and how this research would benefit the public and inform regulation of social networks.
To address this need, this list of questions could be answered if social media companies started to share more data about how their services work and how users interact with them. This research could help platforms create safer and more secure systems, and inform regulators and lawmakers who want to hold them accountable for their promises to the public.
Research suggests that misinformation is often more engaging than other types of content. Why is this? What characteristics of misinformation are most closely associated with virality and increased user engagement? Researchers believe novelty and emotionality are key factors. However, more research is needed to confirm this. A better understanding of why misinformation is so engaging will help platforms improve their algorithms and recommend misinformation less often.
Research shows that the delivery-optimization techniques companies use to maximize revenue, and even the ad-delivery algorithms themselves, can be discriminatory. Are certain groups more likely to see potentially harmful ads such as scams, than others? Are there other users who are less likely to see useful ads such as job postings? How can ad networks improve delivery to make it less discriminatory?
Social media companies attempt to combat misinformation by labeling content of questionable provenance, hoping to push users toward more accurate information. Survey experiments have shown mixed results regarding the effects of labels on beliefs, and behavior. We need to find out if labels are effective when people encounter them on platforms. Are labels effective in reducing misinformation spread or attracting attention to posts that users might otherwise ignore. Are labels becoming more familiar to people?
Internal studies at Twitter show that Twitter's algorithms amplify right-leaning politicians and political news sources more than left-leaning accounts in six of seven countries studied. Are there other social media platforms that use similar algorithms?
Because of the central role they now play in public discourse, platforms have a great deal of power over who can speak. Platform moderation decisions can sometimes lead to minorities feeling silenced online. Are there disproportionately many groups that are affected by decisions regarding content allowed on platforms? Platforms allow some users to silence others by using moderation tools or systemic harassment to silence certain viewpoints.
Social media firms should welcome independent researchers to help them better understand online harm and inform their policies. Reddit and Twitter have been helpful, but it is not possible to rely on the goodwill of all businesses whose policies may change at the will of a new owner. We hope that a Musk-led Twitter will be just as open as before. [Editor's Note: This article was written and posted before Musk took ownership of Twitter.] We should not regulate and legislate based on anecdotes in our rapidly changing information environment. We need legislators to ensure we have access to the data that we need to keep users safe.
Editor's Note (11/11/22): This story was edited after posting to include updates about Elon Musk's acquisition of Twitter.
A version of this article with the title "Social Media Companies Must Share Data" was adapted for inclusion in the December 2022 issue of Scientific American.
Renee DiResta is the technical research manager at Stanford Internet Observatory. Credit: Nick Higgins
Laura Edelson is a postdoc researcher at N.Y.U. Credit: Nick Higgins
Brendan Nyhan is James O. Freedman Presidential Professor of Government at Dartmouth College. Credit: Nick Higgins
Ethan Zuckerman teaches public policy, information and communication at UMass Amherst. Credit: Nick Higgins
The author of 5 books, 3 of which are New York Times bestsellers. I've been published in more than 100 newspapers and magazines and am a frequent commentator on NPR.
What to know before you go on your first multi-day hike
When wolves hunt otters on this Alaskan island, deer suffer
This Korean robodog proves running on sand isn't just for 'Baywatch'
What it takes to build and maintain Alaska's icy highways
We drove the most powerful Honda in the US: a Civic


For Type 2 in the Enneagram, basically the idea of LOVING is such an essential issue. One's self worth plays a major role in this type. And as human as we are, this is one of our primary needs yet for those who belong to this type, if left unchecked and not processed, this could lead to distractions and unwillingness to go forward in one's journey.
Need to be loved -> help others -> loved -> Need to be lovedIn the healthy state, the need to be loved induces Type Twos to help others which causes them to be loved. When Twos feel loved, the need is satisfied and a balance is reached.
In the average state, when Twos' are not helping others and are not loved, the need to be loved increases, which helps Twos to again reach out and help others. Thus the balancing loop can help Twos to recover.
Fear of being unloved -> resent and manipulate others -> loved -> Fear of being unlovedIn the unhealthy state, the basic fear of being unloved can cause Type Twos to feel resentful and try to manipulate others into loving them. This can cause people to love them even less, which further increases Twos' basic fear. The cycle continues to build up.
We can see from the diagram that a way to help break the control of the basic fear is to weaken the unhealthy loop. Twos can refrain from manipulating others but start to genuinely help others. This will cause Twos to be loved, and thus reduce the fear of being unloved."
Thus, the emphasis on LOVING is so essential to number 2's that at times, one's needs are set aside for the sake of extending and helping others first. Just like any other number on the Enneagram, what is beneficial for everyone is the knowledge on each number's positive and negative attributes.
"SEO Lesson: Link Anchors And Descriptions — Things You Must Know About Them To Get On The Right Side Of Google"
Just make sure you are updated with the latest information with regard to your site's optimization to have more exposures. This link will enable you to enrich yourself with the latest methods especially in the field of making backlinks to your site.
Enneagram is such a wide world of learnings especially to one's personality. As I mentioned in my previous post, MY PERSONALITY TYPE: THE ENNEAGRAM, any learning one can get from this study will become a tool in dealing positively with others. Interpersonal relationship plays a very essential role in one's life.
We need to interact with others and in all these interactions, there are highs and lows thus in whatever situation one is in, it is very vital that he/she has hold on his/her own self so as to be effective in dealing to any given situation.
In the healthy state, the need to be right induces Type Ones to seek truth and do the right thing. When Ones are doing the right thing, the need is satisfied and a balance is reached.
In the average state, when Ones' are not working hard to seek the truth and do the right thing, the need to be right increases, which helps Ones to again work hard to seek the truth. Thus the balancing loop can help Ones to recover.
In the unhealthy state, the basic fear of being condemned can cause Type Ones to correct and condemn others first as a defense, which is often not the right thing to do, which further increases Ones' basic fear. The cycle continues to build up.
We can see from the diagram that a way to help break the control of the basic fear is to weaken the unhealthy loop. Ones can refrain from correcting others and start examining self for truth, which will help Ones to do the right thing, and reduce the fear of being condemned."
As such, we will know that there would always be two parts of any number the healthy and the unhealthy sides. What is important is the knowledge about these two sides on any number. Though it is such a wide world to be well informed about those 9 numbers, yet gradually one can achieve it especially if he/she is determined to gain more of their backgrounds.
Each day that I wake up, I always reflect on what this day brings to me and on others.At times, we worry so much on life's trivialities such as material things, wants and the like. Amidst all of these, I realize that my Divine Creator has been so understanding and generous to me each day. Thus instead of focusing solely on what I will attain this day, I change my focus instead to how could I express my gratitude to God for His unending generosity for me. Multiple blessings have come in my life everyday and they become concrete manifestations of His love for me.
The present challenge is how to extend and share this great love from God to others especially to my family- my wife and my little boy. I could reflect of so many things to perform yet I believe that even simpler things would be as big as they are in His eyes. He never measures my deeds rather I know that what counts most for HIM is the genuineness of all my actions and kindness towards myself and others. Hence there is always this personal and constant invitation to be a living instrument of God for others and I know that this entails a lot of sacrifices for me.
However, believing constantly that He is always here, there and everywhere to guide and give me strength, I am positive that I can always perform my deeds as a person- an instrument of peace and love for others.
Have you heard about the ENNEAGRAM? I find it so interesting since it deals about one's personality. With one's knowledge about his/her personality type, it therefore becomes a tool for him/ her to have a deeper understanding of oneself. On the other hand, this will serve as a method for understanding and welcoming the similarities as well as differences from one person to the other.
ENNEGRAM is defined as "a geometric figure that delineates the nine basic personality of human nature and their complex interrelationships. That is exactly what I meant in my statement above that when this is familiarized, strengthening human relationships will become a reality.
In my own enneagram type, I am a type ONE which is typically a reformer with a wing on TWO -The Helper. As a ONE, I am inclined to observe and practice an orderly sense in life. Moreover what is advantageous to me presently is that I am not imposing this sense of order with others even though at times, I am affected when things become disorder however I always put into consideration the characteristics and traits of others.
My second type (wing) is number TWO which is defined as the HELPER. However as a precaution, when left unhealthy, TWOs tend to practice self-denial thus allowing a person to merely deny his own needs and just recognizing other people's needs. Further, it is telling others the sense that "I don't need you; it is you who needs me in your life".
In my case, I firmly believe that I can both be of help to others and that I also need them in my life. I would never survive just by myself alone. Through the Enneagram, being able to befriend oneself on a deeper level results to a more healthy dealings with others.
What a beautiful day for me today----everything became a sort of a blessing.... From the moment I woke up, went to work and came back home, everything was on its proper place. My mates were mostly energetic as well hence I also received that positive vibes from them. Experience would tell me that when I and those people around me are showing positive vibrations, tasks and relationships tend to become light.
It's true that when we radiate positive aura to others, we will also receive positive aura in return. Moreover I believe that being positive goes along with one's ability to stay focus in all things to be fulfilled.
Being constantly focus in everything we do is not an easy thing to fulfill. It entails such rich resources of patience and stability. Patience in the sense that as human as we are, we tend to overdo things- we like to accomplish multiple tasks at the same time. I'm not saying that it is wrong or it is not possible. Many gifted and trained people are able to accomplish such task yet a large number also including myself are at times lost since the sense of being focus is absent. Can you recall concretely any event in your life wherein you are trying so hard to fulfill a certain task when suddenly a separate and unrelated thing popped up? Or you are at the verge of making it to the finish line of your work when suddenly your mind wanders so very far away? These are frustrating moments in our life yet they are also very true to you and me.
Thus, it is with such gratitude that I thank my Divine Creator for allowing me to stay focus each day in my tasks and in my relationships. Somehow, somewhere the road towards the end of each of our journeys seems so overwhelming, tricky, challenging yet certain factors like determination and focus can assist us to reach it at the peak.


The Aurora TU Black Resin with Chrome Cap Ballpoint Pen. TU, a collection reflecting a modern, young and metropolitan style. The Turinese company, symbol of the Italian excellence since almost 100 years confirms once more with the new creation its supremacy in the best expression of design, in the research of materials and in the distinction of shapes. TU is dedicated to the young people moving around the world, to the globetrotters of the Thrird Millenium, to who catches its life and makes a sign of it.


text:
Sherwood Forest Information
The best UK website for Sherwood Forest visitors
Folklore and Legend
Sherwood Forest Creativity
Robin Hood and the south of Sherwood Forest
Places with folklore links to Robin Hood and his merry men in the south of Sherwood Forest
The remains of the Saxon church.
Blidworth
It is claimed that Maid Marion's family lived in Blidworth and Will Scarlet was buried near the Church. That would have been the old saxon church, parts of which can still be found next to its replacement.
Thieves Wood, Fountain Dale and Friar Tuck's Well
The Kings Great Road ran through Thieves Wood so the wood could well have been the haunt of outlaws. Fountain Dale is in the bottom of the valley nearer Blidworth. The ballads place Friar Tuck's first meeting with Robin Hood in the Dale. Friar Tuck lived in the hermits cell there and looked after a small chapel attached to Newstead Abbey. The chapel was said to be inside the moat, which is still there but has no water. The Friar and Robin carried each other across the moat in a contest of wits. However, the jolly Friar threw Robin in to baptise him.
Local tradition has it that when Friar Turk was evicted from his cell after seven years residence, the well dried up for the same length of time due to a curse placed on it by the canons of Newstead. Ever since it has only flowed every seventh year. Friar Tuck's well is still there.
Robin Hood Hill, Robin Hood's Chair and Robin Hood's Cave, Robin Hood's Well
Robin Hood Hill is a line of hills between Kirkby in Ashfield and Newstead. They form a natural amphitheatre facing towards Newstead Abbey with Robin Hood's Chair below the hill. The cave is a short distance to the southwest. The spring was in nearby Annesley.
Robin Hood's Stone This long-lost stone was marked on John Ogilby's map of 1675 close to Newstead Abbey. On what is now part of the Robin Hood Way.
Papplewick – Robin Hood's Stables and the church
The magnificent Yew tree in Papplewick churchyard
Robin Hoods Stables is a traditional name for a cave just to the north of Papplewick, presumably named for its use.
Papplewick Church is claimed to be either the site of Allen a Dale (Allan or Alan) grave or the scene of his marriage. The minstrels' lover was to be married to an elderly nobleman of her parent's' choosing, until Robin stepped in and rescued her. She was instantly wedded to Allen instead.
Robin Hood Hill, Oxton and Robin Hood's Pot
Robin Hood Hills to the north of Oxton where remains can be seen of a Bronze Age settlement.
This is a small be steep hill between Oxton and Farnsfield. There is hill fort close by with Robin Hood's Pot, a bronze-age burial mound, 150 metres north-west. It is about 6m high and 25m across. The name originally referred to a stone a mile to the west which was probably the socket stone of an ancient cross and called 'Robin Hood Piss Pot' in Georgian times.
from → Folklore & legend
← Sherwood Forest – ancient and modern
Robin Hood and the Heart of Sherwood Forest →
————Places Menu————
Clumber Park and the Dukeries places
Dukeries History Trail
Heart of Sherwood Forest places and parks
Byron Country – Sherwood Forest South
New link in the Heart of Sherwood Forest December 3, 2015
Major changes at the heart of Sherwood Forest September 15, 2015
Major new cycle route open May 11, 2013
Brief History of Sherwood Forest November 14, 2012
Clipstone Park Water Meadows – the Flood Dykes November 8, 2012


We often discuss pet care for dogs and cats, but many of us have smaller pets too. We affectionately refer to these friends as our "pocket pets", and the winter can be hard on them too.
Keep cages away from doors and windows in the winter. If smaller pets are kept in drafty areas they will become chilled and may stop eating and drinking.
Provide a "hot rock" or a heat lamp if suggested from which they have the option of warming themselves.
Ensure that you have a backup source of heat, should you lose power in the winter, and be prepared to relocate your pet towards it. You may even wish to consider a generator if your pets survival depends on electricity.
If your thermostat cools in the evening while you sleep, you may wish to place a warm blanket over the cages of your smaller pets to help keep them warm.
When in doubt, the last point is arguably the most important. Literature on the care of our smaller friends can be hard to come by. Don't hesitate to call your veterinarian if you have any questions regarding your pocket pet's care.


The Benefice of Kensington, South (St Stephen)." Crockford's Clerical Directory. Church House Publishing. Web. 26 Apr. 2019.<https://www.crockford.org.uk/places/12993/the-benefice-of-kensington%2c-south-(st-stephen)>.
The Benefice of Kensington, South (St Stephen)." Crockford's Clerical Directory. Church House Publishing, accessed April 26, 2019, https://www.crockford.org.uk/places/12993/the-benefice-of-kensington%2c-south-(st-stephen).


text:
Nick Sikkuark (21 May 1943 – 19 December 2013) was an Inuit artist from Kugaaruk, Nunavut.

Life
Born at Garry Lake, Nunavut (then part of the Keewatin), Sikkuark was orphaned at a young age. He was then taken in by the Oblate Fathers. As a young man he studied for the clergy in Winnipeg and Ottawa before settling in Kugaaruk, Nunavut, then called Pelly Bay. It was there that he began to work as an artist full-time.

Work
His works are mainly in whale bone, caribou antler, and walrus ivory, and are characterized by "droll, macabre wit."

References

External links
 Entry for Nick Sikkuark on the Union List of Artist Names

1943 births
2013 deaths
Inuit sculptors
Inuit from the Northwest Territories
Inuit from Nunavut
People from Kugaaruk

redpajama_set_name: RedPajamaWikipedia


text:
Uvs Nuur (mongolo:Увс Нуур; tuvano: Убсу-Нур, Ubsu-Nur) è il più grande lago della Mongolia che, a circa 753 metri s.l.m., occupa un'area di 3.350 km².

Geografia
Il lago si trova nell'omonima provincia dell'Uvs, nel nord-ovest della Mongolia e una piccola parte nord-orientale del lago si trova nella repubblica tuvana della federazione Russa. Questo lago poco profondo e molto salato è l'ultimo ricordo di un immenso mare salato che ricopriva l'area migliaia di anni fa.

L'Uvs Nuur è il centro dell'omonimo bacino che copre un'area di 700.000 km² e rappresenta uno dei paesaggi meglio conservati della steppa eurasiatica. In questa zona i deserti più settentrionali si incrociano con la tundra più meridionale. Oltre all'Uvs Nuur, il bacino comprende altri piccoli laghi, tra cui l'Ùùrėg nuur, che si trova a 1.450 metri s.l.m..

Clima
Dal momento che il bacino del lago sorge in una zona del tutto esclusa da qualunque influsso mitigatore marittimo, il clima è molto continentale, con temperature estreme che possono variare tra i -58 °C in inverno ed i 47 °C in estate.

Fauna
Nonostante il clima duro, la depressione ospita 173 specie di uccelli e 41 di mammiferi, tra cui le specie a rischio del leopardo delle nevi, dell'argali e dello stambecco asiatico. Essendo il più settentrionale dei mari interni dell'Asia centrale, si pone come luogo chiave per la migrazione degli anseriformi.

Popolazione
L'insediamento più corposo è rappresentato da Ulaangom. La densità di popolazione è estremamente bassa. La mancanza di industria e la dipendenza degli abitanti dalle tradizioni come la pastorizia nomade, hanno poco impatto sul territorio e permettono all'ecosistema di restare relativamente incontaminato.

Patrimonio dell'umanità

Nel 2003 l'UNESCO mise il bacino dell'Uvs Nuur tra i Patrimoni dell'umanità. Questo patrimonio, condiviso con la Russia, è uno dei più grandi esistenti ad oggi.

Note

Fonti

Voci correlate
Laghi della Mongolia
Riserva della biosfera del bacino dell'Uvs Nuur

Altri progetti

Collegamenti esterni

Laghi della Russia
Laghi della Mongolia
Patrimoni dell'umanità della Mongolia
Patrimoni dell'umanità della Russia
Riserve della biosfera in Mongolia


text:
IMS Platform – Investor Login
Contact Interwest Capital Group
Interwest Capital
Read our press releases plus latest company news
RSE & Interwest Acquire 376-unit Rental Community in Las Vegas
Posted On January 6, 2020 By InterCap In Company News and Information, Multi-Family /
RSE Capital Partners ("RSE") and Interwest Capital Group ("Interwest") recently announced the closing of EVO Apartments, a newly-built rental community in Las Vegas, NV. Built-in 2018, the Class A property features top-notch amenities and ease of access to employment centers, major area thoroughfares and a mix of shopping, dining and entertainment options.
The JV partners are excited about the acquisition and believe that the asset is well-positioned to take advantage of the strong employment and population growth trends that are driving increased demand for quality rental housing in the southwest Las Vegas submarkets.
"EVO Apartments is a beautiful asset in one of Las Vegas' fastest-growing submarkets. This acquisition indicates our continued faith in markets that feature strong job growth along with a supply-demand imbalance," said Interwest's Director of Acquisitions, Elliot Burrell. "We look forward to executing our business plan with RSE as our partners."
The acquisition of EVO Apartments adds to Interwest's historical portfolio of over 4,000 multifamily units in Las Vegas and marks the partnerships second deal following the acquisition of The Lennox earlier this year. Scott Monroe of Northmarq's Las Vegas office secured the Freddie Mac supplemental loan.
EVO Apartments is located about 15 miles from downtown Las Vegas and provides easy access to nearby employment hubs such as the Strip, McCarran International Airport, and Southern Hill Hospital via its close proximity to the Bruce Woodbury Beltway and I-15. Later this year, a massive dining and entertainment complex called The Bend is expected to open providing walkable entertainment and restaurant options.
Community amenities at EVO include a fitness center, clubhouse, basketball court, playground, four swimming pools, a spa, and covered parking.
Las Vegas has experienced a spur of economic development in recent years as new employers flock to the area, attracted by one of the most affordable and dynamic business climates in the U.S. The resulting influx of new jobs has led to increased demand for quality housing, outpacing supply. RSE is focused on investment opportunities in growth markets with a supply/demand imbalance, supported by solid demographic, economic and rental market fundamentals.
For more information, please contact Max Kirschenbaum at origination@rsecap.com.
About RSE Capital Partners: RSE is a principal investor that provides flexible capital solutions for the top real estate sponsors. RSE is currently invested in over $4 billion of institutional-quality multifamily assets including over 20,000 units across 25 states. For more information, please visit rsecap.com.
About Interwest Capital Group: Interwest Capital is a private equity firm specializing in the acquisition, operation, and repositioning of commercial real estate with an emphasis on multifamily and hospitality assets. With a national portfolio of approximately 2.8 million square feet, Interwest has become an industry leader through extensive experience restructuring significantly underperforming assets and has a strong track record of successfully repositioning historic properties. Interwest owns over 4,000 multi-family units and six hotels with more than 1,000 hotel rooms across the United States.
Company NewsLas VegasMulti-Family
Jacksonville Community Changes Hands for $22M
locate our office
4275 Executive Square


Daily Walking, Working, and Winning by God's Word by Rev. Dr. Alvin C. Hathaway Sr.: Have You Found A True Friend?
A friend of mine once said, "We met on this day a year ago. It's our anniversary!" I remember significant days within my family. I remember birthdays, anniversaries, wedding days, graduation years, and days when a love one has passed. But, do you remember the day when you met a dear friend?
Life is so short and friends are so few, we should never take those relationships for granted. It is rare for childhood friends to remain friends as adults. If you retain those childhood friends can your relationship mature and deepen as the years go marching by?
Treasure those moments one spends with a friend. Establish an anniversary day and communicate with them the importance and significance they mean to your life. We are affirmed in relationships. We find love in relationships. We learn confidentiality in relationships. We have companionship in relationships. Ultimately we discover God in relationship.
The wisdom literature of Proverbs emphasizes the importance of intimate friendships. Verse 17:17 says, "A friend loveth at all times, and a brother is born for adversity." Verse 18:24 reminds us, "A man that hath friends must show himself friendly: and there is a friend that sticketh closer than a brother."
Have you found a true friend? Try Jesus! The songwriter says, "There's not a friend like the lowly Jesus. No not one! No not one!"


Boasting all the amenities you need to make your stay on the island comfortable and convenient (including high chairs and cots), you'll find this short-haul holiday destination the ideal place for your family to soak up some Spanish sunshine in style when you choose a Mallorca family villa holiday with Villa Select.
Each carefully selected private villa has its own swimming pool (and/or Jacuzzi!); perfect for a refreshing dip when you're enjoying those glorious Spanish rays. What's more, peruse our website and you'll discover that there's a Mallorca villa with a private pool for every kind of guest; from a large 9-metre long pool with a gradual descent that's ideal for children learning to swim, to city-centre villas idyllic for couples boasting a small, private pool on a trendy terrace.
With roomy properties boasting private pools and plenty of outdoor space, our handpicked selection of villas in Mallorca offer a place to suit every family; from intimate homes perfect for couples with a toddler in tow, to palatial holiday houses with room for grandparents!


Haven't even started on my Intro to Logic homework yet and already I've succumbed to two nap attacks... this after drinking real coffee this morning! I've got some green sun tea brewing on the back porch. That'll keep me wired tonight, I'm sure.
Instead of selecting a chunk of the alphabet to play on the Shuffle, I just sorted by size, then highlighted every Mp3 from 1,000 to 2,000 kB. Good mix!
18. Bangles - Where Were You When I Needed You?
I know I'm a week late on this, but I highly approve of this list. #8 in particular is one of my faves.


text:
Ferenc Farkas [] (* 15. Dezember 1905 in Nagykanizsa; † 10. Oktober 2000 in Budapest) war ein ungarischer Komponist.

Farkas war zunächst Pianist und studierte an der Musikakademie Budapest bei Albert Sikós und Leó Weiner und ging dann nach Rom an die Accademia di Santa Cecilia, wo er Schüler von Ottorino Respighi wurde. Danach 1933/35 war er als Komponist für Filmstudios in Wien und Kopenhagen tätig, ehe er 1936/41 als Komponist-Lehrer nach Budapest / Ungarn zurückkehrte.

Von 1941 bis 1944 war er Professor am Konservatorium Klausenburg, dessen Leiter er wurde. 1949 wurde er Professor an der Musikakademie Budapest, wo er bis zu seiner Pensionierung 1975 lehrte. Zu seinen Schülern dort zählten einige der wichtigsten ungarischen Komponisten der zweiten Hälfte des 20. Jahrhunderts wie Attila Bozay, Zsolt Durkó, György Kurtág, György Ligeti, Emil Petrovics, Zoltán Jeney, Sándor Szokolay und Zsolt Gárdonyi.

Farkas komponierte für alle Kammerinstrumente, auch für seltenere Instrumente wie das Baryton und das Alphorn. Sein Werk umfasst insgesamt über 700 Kompositionen. Er schrieb die Oper Der Wunderschrank (1942).

Literatur
 Jean-Louis Matthey und András Farkas: Inventaire du fonds musical Ferenc Farkas. Catalogue des œuvres. Bibliothèque Cantonale et Universitaire, Département de la Musique, Lausanne 1979 (Werkverzeichnis)

Weblinks

 Website zu Ferenc Farkas (englisch)
 Farkas Ferenc bei der Franz-Liszt-Musikakademie (ungarisch)

Komponist klassischer Musik (20. Jahrhundert)
Hochschullehrer (Franz-Liszt-Musikakademie Budapest)
Hochschullehrer (Musikakademie Gheorghe Dima)
Komponist (Ungarn)
Ungar
Geboren 1905
Gestorben 2000
Mann


text:
Артем Арутюнян (;  13 серпня 1990, Єреван, Німеччина) — німецький боксер-любитель вірменського походження, що виступає у першій напівсередній ваговій категорії. Бронзовий призер Олімпійських ігор 2016 року. Учасник напівпрофесійної ліги WSB.

Любительська кар'єра

Чемпіонат світу 2013
1/32 фіналу:Переміг Кларенса Боянга (Швеція) - 3-0
1/16 фіналу:Переміг Абделя Маліка Ладьялі (Франція) - 3-0
1/8 фіналу:Програв Евертону Лопесу (Бразилія) - 1-2

Олімпійські ігри 2016
1/8 фіналу:Переміг Артура Біярсланова (Канада) - 2-0
1/4 фіналу:Переміг Батухана Гозгеджа (Туреччина) - 3-0
1/2 фіналу:Програв Лоренсо Сотомайору (Азербайджан) - 1-2

Чемпіонат світу 2017
1/8 фіналу:Переміг Люка Маккормака (Англія) - 5-0
1/4 фіналу:Програв Ікболіону Холдару (Узбекистан) - 2-3

Посилання
 На сайті Олімпійських ігор

Німецькі боксери
Німецькі бронзові олімпійські медалісти
Боксери на літніх Олімпійських іграх 2016
Бронзові призери літніх Олімпійських ігор 2016
Боксери першої напівсередньої ваги
Нагороджені Срібним лавровим листом
Вірменські емігранти до Німеччини


text:
Title: Visual prosthesis
Subject: Did you know nominations/Argus Retinal Prosthesis, Bionic contact lens, Neuroprosthetics, Exploratory engineering, 2013 in science
Collection: Artificial Organs, Blindness, Emerging Technologies, Eye, Neuroprosthetics, Prosthetics
A visual prosthesis, often referred to as a bionic eye, is an experimental visual device intended to restore functional vision in those suffering from partial or total blindness. In 1983 Joao Lobo Antunes, a Portuguese doctor, implanted a bionic eye in a person born blind. Many devices have been developed, usually modeled on the cochlear implant or bionic ear devices, a type of neural prosthesis in use since the mid-1980s. The idea of using electrical current (e.g., electrically stimulating the retina or the visual cortex) to provide sight dates back to the 18th century, discussed by Benjamin Franklin,[1] Tiberius Cavallo,[2] and Charles LeRoy.[3]
Biological considerations 1
Technological considerations 2
Ongoing projects 3
Argus Retinal Prosthesis 3.1
Microsystem-based Visual Prosthesis (MIVP) 3.2
Implantable Miniature Telescope 3.3
Tübingen MPDA Project Alpha IMS 3.4
Harvard/MIT Retinal Implant 3.5
Artificial Silicon Retina (ASR) 3.6
Photovoltaic Retinal Prosthesis 3.7
Bionic Vision Australia 3.8
Dobelle Eye 3.9
Intracortical Visual Prosthesis 3.10
Virtual Retinal Display (VRD) 3.11
Visual Cortical Implant 3.12
Nirenberg Lab Information Processing Prosthesis 3.13
The ability to give sight to a blind person via a bionic eye depends on the circumstances surrounding the loss of sight. For retinal prostheses, which are the most prevalent visual prosthetic under development (due to ease of access to the retina among other considerations), patients with vision loss due to degeneration of photoreceptors (retinitis pigmentosa, choroideremia, geographic atrophy macular degeneration) are the best candidate for treatment. Candidates for visual prosthetic implants find the procedure most successful if the optic nerve was developed prior to the onset of blindness. Persons born with blindness may lack a fully developed optical nerve, which typically develops prior to birth, though neuroplasticity makes it possible for the nerve, and sight, to develop after implantation.
Technological considerations
Visual prosthetics are being developed as a potentially valuable aid for individuals with visual degradation. Argus II, co-developed at the University of Southern California (USC) Eye Institute [4] and manufactured by Second Sight Medical Products Inc., is not the only such device to have received marketing approval (CE Mark in Europe in 2011), most other efforts remain investigational, The Retina Implant AG's Alpha IMS Won a CE Mark July 2013 and is a significant improvement in resolution it is not however FDA approved in the USA[5]
Argus Retinal Prosthesis
Dr. Mark Humayun, who joined the faculty of the Keck School of Medicine of USC Department of Ophthalmology in 2001;[6] Dr. Eugene Dejuan, now at the University of California San Francisco; engineer Howard D. Phillips; bio-electronics engineer Dr. Wentai Liu, now at University of California Los Angeles; and Dr. Robert Greenberg, now of Second Sight, were the original inventors of the active epi-retinal prosthesis[7] and demonstrated proof of principle in acute patient investigations at Johns Hopkins University in the early 1990s. In the late 1990s the company Second Sight[8] was formed by Dr. Greenberg along with medical device entrepreneur, Alfred E. Mann,[9]:35 Their first-generation implant had 16 electrodes and was implanted in six subjects by Humayun at University of Southern California between 2002 and 2004.[9]:35[10] In 2007, the company began a trial of its second-generation, 60-electrode implant, dubbed the Argus II, in the US and in Europe.[11][12] In total 30 subjects participated in the studies spanning 10 sites in four countries. In the spring of 2011, based on the results of the clinical study which were published in 2012,[13] Argus II was approved for commercial use in Europe, and Second Sight launched the product later that same year. The Argus II was approved by the United States FDA on 14 February 2013. Three major US government funding agencies (National Eye Institute, Department of Energy, and National Science Foundation) have supported the work at Second Sight, USC, UCSC, CalTech, and other research labs.[14]
Microsystem-based Visual Prosthesis (MIVP)
Designed by Claude Veraart at the University of Louvain, this is a spiral cuff electrode around the optic nerve at the back of the eye. It is connected to a stimulator implanted in a small depression in the skull. The stimulator receives signals from an externally worn camera, which are translated into electrical signals that stimulate the optic nerve directly.[15]
Implantable Miniature Telescope
Although not truly an active prosthesis, an Implantable Miniature Telescope is one type of visual implant that has met with some success in the treatment of end-stage age-related macular degeneration.[16][17][18] This type of device is implanted in the eye's posterior chamber and works by increasing (by about three times) the size of the image projected onto the retina in order to overcome a centrally located scotoma or blind spot.[17][18]
Created by VisionCare Ophthalmic Technologies in conjunction with the CentraSight Treatment Program, the telescope is about the size of a pea and is implanted behind the iris of one eye. Images are projected onto healthy areas of the central retina, outside the degenerated macula, and is enlarged to reduce the effect the blind spot has on central vision. 2.2x or 2.7x magnification strengths make it possible to see or discern the central vision object of interest while the other eye is used for peripheral vision because the eye that has the implant will have limited peripheral vision as a side effect. Unlike a telescope which would be hand-held, the implant moves with the eye which is the main advantage. Patients using the device may however still need glasses for optimal vision and for close work. Before surgery, patients should first try out a hand-held telescope to see if they would benefit from image enlargement. One of the main drawbacks is that it cannot be used for patients who have had cataract surgery as the intraocular lens would obstruct insertion of the telescope. It also requires a large incision in the cornea to insert.[19]
Tübingen MPDA Project Alpha IMS
A Southern German team led by the University Eye Hospital in Tübingen, was formed in 1995 by Eberhart Zrenner to develop a subretinal prosthesis. The chip is located behind the retina and utilizes microphotodiode arrays (MPDA) which collect incident light and transform it into electrical current stimulating the retinal ganglion cells. As natural photoreceptors are far more efficient than photodiodes, visible light is not powerful enough to stimulate the MPDA. Therefore, an external power supply is used to enhance the stimulation current. The German team commenced in vivo experiments in 2000, when evoked cortical potentials were measured from Yucatán micropigs and rabbits. At 14 months post implantation, the implant and retina surrounding it were examined and there were no noticeable changes to anatomical integrity. The implants were successful in producing evoked cortical potentials in half of the animals tested. The thresholds identified in this study were similar to those required in epiretinal stimulation. The latest reports from this group concern the results of a clinical pilot study on 11 participants suffering from RP. Some blind patients were able to read letters, recognize unknown objects, localize a plate, a cup and cutlery. The results were to be presented in detail in 2011 in the Proceeedings of the Royal Society B doi:10.1098/rspb.2010.1747. In 2010 a new multicenter Study has been started using a fully implantable device with 1500 Electrodes Alpha IMS (produced by Retina Implant AG, Reutlingen, Germany), 10 patients included so far; first results have been presented at ARVO 2011. The first UK implantations took place in March 2012 and were led by Professor Robert MacLaren at the University of Oxford and Mr Tim Jackson at King's College Hospital in London.[20][21] Professor David Wong also implanted the Tübingen device in a patient in Hong-Kong.[22] In all cases previously blind patients had some degree of sight restored, confirming that despite the complexity of surgery, the device can be implanted successfully at other specialist centers around the World.
Harvard/MIT Retinal Implant
Joseph Rizzo and John Wyatt at the Massachusetts Eye and Ear Infirmary and MIT began researching the feasibility of a retinal prosthesis in 1989, and performed a number of proof-of-concept epiretinal stimulation trials on blind volunteers between 1998 and 2000. They have since developed a subretinal stimulator, an array of electrodes, that is placed beneath the retina in the subretinal space and receives image signals beamed from a camera mounted on a pair of glasses. The stimulator chip decodes the picture information beamed from the camera and stimulates retinal ganglion cells accordingly. Their second generation prosthesis collects data and sends it to the implant through RF fields from transmitter coils that are mounted on the glasses. A secondary receiver coil is sutured around the iris.[23]
Artificial Silicon Retina (ASR)
The brothers Alan Chow and Vincent Chow have developed a microchip containing 3500 photo diodes, which detect light and convert it into electrical impulses, which stimulate healthy retinal ganglion cells. The ASR requires no externally worn devices.[15]
The original Optobionics Corp. stopped operations, but Dr. Chow acquired the Optobionics name, the ASR implants and will be reorganizing a new company under the same name. The ASR microchip is a 2mm in diameter silicon chip (same concept as computer chips) containing ~5,000 microscopic solar cells called "microphotodiodes" that each have their own stimulating electrode.[24]
Photovoltaic Retinal Prosthesis
Daniel Palanker and his group at Stanford University have developed a photovoltaic system for visual prosthesis[25] that includes a subretinal photodiode array and an infrared image projection system mounted on video goggles. Information from the video camera is processed in a pocket PC and displayed on pulsed near-infrared (IR, 850–915 nm) video goggles. IR image is projected onto the retina via natural eye optics, and activates photodiodes in the subretinal implant that convert light into pulsed bi-phasic electric current in each pixel.[26] Charge injection can be further increased using a common bias voltage provided by a radiofrequency-driven implantable power supply[27] Proximity between electrodes and neural cells necessary for high resolution stimulation can be achieved utilizing the effect of retinal migration.
Bionic Vision Australia
An Australian team led by Professor Anthony Burkitt is developing two retinal prostheses. The Wide-View device combines novel technologies with materials that have been successfully used in other clinical implants. This approach incorporates a microchip with 98 stimulating electrodes and aims to provide increased mobility for patients to help them move safely in their environment. This implant will be placed in the suprachoroidal space. Researchers expect the first patient tests to begin with this device in 2013.
The Bionic Vision Australia consortium is concurrently developing the High-Acuity Device, which incorporates a number of new technologies to bring together a microchip and an implant with 1024 electrodes. The device aims to provide functional central vision to assist with tasks such as face recognition and reading large print. This high-acuity implant will be inserted epiretinally. Patient tests are planned for this device in 2014 once preclinical testing has been completed.
Patients with retinitis pigmentosa will be the first to participate in the studies, followed by age-related macular degeneration. Each prototype consists of a camera, attached to a pair of glasses which sends the signal to the implanted microchip, where it is converted into electrical impulses to stimulate the remaining healthy neurons in the retina. This information is then passed on to the optic nerve and the vision processing centres of the brain.
The Australian Research Council awarded Bionic Vision Australia a $42 million grant in December 2009 and the consortium was officially launched in March 2010. Bionic Vision Australia brings together a multidisciplinary team, many of whom have extensive experience developing medical devices such as the cochlear implant (or 'bionic ear').[28]
Dobelle Eye
Similar in function to the Harvard/MIT device, except the stimulator chip sits in the primary visual cortex, rather than on the retina. Many subjects have been implanted with a high success rate and limited negative effects. Still in the developmental phase, upon the death of Dr. Dobelle, selling the eye for profit was ruled against in favor of donating it to a publicly funded research team.[15][29]
Intracortical Visual Prosthesis
The Laboratory of Neural Prosthetics at Illinois Institute Of Technology (IIT), Chicago, is developing a visual prosthetic using intracortical electrode arrays. While similar in principle to the Dobelle system, the use of intracortical electrodes allow for greatly increased spatial resolution in the stimulation signals (more electrodes per unit area). In addition, a wireless telemetry system is being developed[30] to eliminate the need for transcranial wires. Arrays of activated iridium oxide film (AIROF)-coated electrodes will be implanted in the visual cortex, located on the occipital lobe of the brain. External hardware will capture images, process them, and generate instructions which will then be transmitted to implanted circuitry via a telemetry link. The circuitry will decode the instructions and stimulate the electrodes, in turn stimulating the visual cortex. The group is developing a wearable external image capture and processing system to accompany the implanted circuitry. Studies on animals and psyphophysical studies on humans are being conducted[31] to test the feasibility of a human volunteer implant.
Virtual Retinal Display (VRD)
Laser-based system for projecting an image directly onto the retina. This could be useful for enhancing normal vision or bypassing an occlusion such as a cataract, or a damaged cornea.[15]
Visual Cortical Implant
The Visual Cortical Implant
Dr. Mohamad Sawan, Professor and Researcher at Polystim neurotechnologies Laboratory at the Ecole Polytechnique de Montreal, has been working on a visual prosthesis to be implanted into the visual cortex. The basic principle of Dr. Sawan's technology consists of stimulating the visual cortex by implanting a silicon microchip on a network of electrodes, made of biocompatible materials, wherein each electrode injects a stimulating electrical current in order to provoke a series of luminous points to appear (an array of pixels) in the field of vision of the blind person. This system is composed of two distinct parts: the implant and an external controller. The implant is lodged in the visual cortex and wirelessly receives data and energy from the external controller. It contains all the circuits necessary to generate the electrical stimuli and to monitor the changing microelectrode/biological tissue interface. The battery-operated outer controller consists of a micro-camera, which captures images, as well as a processor and a command generator, which process the imaging data to translate the captured images and generate and manage the electrical stimulation process. The external controller and the implant exchange data in both directions by a transcutaneous radio frequency (RF) link, which also powers the implant.[32]
Nirenberg Lab Information Processing Prosthesis
Sheila Nirenberg as director of her laboratory team at Weill Cornell Medical College has found a method of treating retinal degeneration by using a deciphering of the retinal code combined with optogenetics. Work on the genetic engineering therapy for human trials is underway (now in the stage of working with mice and monkeys), but meanwhile Nirenberg is working with retinal-prosthesis maker Second Sight in Sylmar, California to upgrade their software currently on the market.[33]
Human echolocation
^ http://www.ncbi.nlm.nih.gov/pubmed/24403565
^ Humayun faculty page at USC Keck Page accessed Feb 15 2015
^ Second Sight official website
^ a b Second SIght. Nov 14, 2014 Second Sight Amendment No. 3 to Form S-1: Registration Statement
^ Miriam Karmel for Eyenet Magazine, March 2012 Clinical Update: Retina. Retinal Prostheses: Progress and Problems
^ a b c d
^ [1] BBC News report on first UK electronic retinal implant
^ [2] BBC News report on two British men having retinal implants
^ Hong Kong University press Release, 3 May 2012
^ Photovoltaic retinal prosthesis with high pixel density. K. Mathieson, J. Loudin, G. Goetz, P. Huie, L. Wang, T. Kamins, L. Galambos, R. Smith, J.S. Harris, A. Sher and D. Palanker; Nature Photonics 6(6): 391–397 (2012)
^ Sheila Nirenberg – Physiology and Biophysics – Cornell University
Research Fact Sheet ~ Retinal Prostheses
In vitro meat
Full genome sequencing
Stem cell treatments
FLD
Electronic textile
Carbon negative fuel
Solar roadway
Carbon neutral fuel
Lithium air battery
Silicon air battery
Contactless energy transfer
Particle beam weapon
Electromagnetic weapon
Unmanned vehicle
Use dmy dates from September 2012
Artificial organs
Web Ontology Language, World Wide Web, Metadata, Resource Description Framework, Ontology (information science)
Neuroscience, Brain–computer interface, Transhumanism, Spinal cord, Cognitive neuroscience
Technology, Semantic Web, Neuroscience, Augmented reality, Agriculture
Peer review, Engineering, Nanotechnology, Molecular nanotechnology, Space elevator


Appropriate technology is technology that is suited to the context. It is often small-scale and sustainable, and often refers to technology that is suitable for developing country applications. Low resource use makes it both more affordable and more sustainable.
Appropedia's Appropriate Technology Portal. Appropedia is the appropriate technology wiki, and more broadly, the wiki for international development and sustainability issues.


A handsome graphical print, superior quality and a perfect finish are all trademarks of Copa Cabana. Water Love is a modern version of the marine look. Elegant and comfortable swimsuit with a fashionable graphical print and a fully integrated underwired bra with foam cups. A stylised bow gives the swimsuit extra cachet, and a cut-away on the back creates a playful look. The adjustable shoulder straps can be worn around the neck. Stylish and comfortable series with a fashionable graphical print, made from beachwear fabric of superior quality.Water Love is a fresh combination that always works: summer purple Funky Violet on a light off-white foundation. A chic, modern version of the marine look.