Cerebros Sin Fronteras


Noticias, estadísticas y más...

Políticas públicas para combatir la fuga de cerebros

Existen tres diferentes mecanismos para detener la fuga de cerebros


Adultos mayores regresan a México

El incremento de la población en edad mayor es un problema para las instituciones gubernamentales


Mexicanos calificados en Estados Unidos

Es importante notar que la fuga de cerebros es solo una pequeña parte del gran fenómeno migratorio que sucede entre México y los Estados Unidos.


Impactos de la fuga de cerebros hacía Estados Unidos

Existen, al menos, cuatro canales por los cuales la fuga de cerebros puede impactar positiva o negativamente tanto al crecimiento económico como al bienestar del país de origen de los migrantes.


Consecuencias de la fuga de cerebros

Las consecuencias de este fenómeno son múltiples y no existe un consenso entre los expertos sobre su efecto para el país de origen.


La inteligencia en México está disminuyendo

Un especialista del Cedat destacó que es una situación preocupante, ya que la población mexicana tiene un IQ promedio de 86, cuando el estándar es de 100


El fenómeno de la fuga de cerebros

Se define como la emigración de personas altamente capacitadas, generando ganancias intelectuales y económicas para el país receptor y pérdidas en bienestar social para el país emisor.


Crikey! There was an error...
Whoops \ Exception \ ErrorException (E_WARNING)
file_put_contents(/var/www/html/fuga-blog/logs/popularity/daily.json): failed to open stream: Permission denied Whoops\Exception\ErrorException thrown with message "file_put_contents(/var/www/html/fuga-blog/logs/popularity/daily.json): failed to open stream: Permission denied" Stacktrace: #10 Whoops\Exception\ErrorException in /var/www/html/fuga-blog/user/plugins/admin/classes/popularity.php:108 #9 file_put_contents in /var/www/html/fuga-blog/user/plugins/admin/classes/popularity.php:108 #8 Grav\Plugin\Admin\Popularity:updateDaily in /var/www/html/fuga-blog/user/plugins/admin/classes/popularity.php:77 #7 Grav\Plugin\Admin\Popularity:trackHit in /var/www/html/fuga-blog/user/plugins/admin/admin.php:506 #6 Grav\Plugin\AdminPlugin:onShutdown in /var/www/html/fuga-blog/vendor/symfony/event-dispatcher/EventDispatcher.php:184 #5 call_user_func in /var/www/html/fuga-blog/vendor/symfony/event-dispatcher/EventDispatcher.php:184 #4 Symfony\Component\EventDispatcher\EventDispatcher:doDispatch in /var/www/html/fuga-blog/vendor/symfony/event-dispatcher/EventDispatcher.php:46 #3 Symfony\Component\EventDispatcher\EventDispatcher:dispatch in /var/www/html/fuga-blog/vendor/rockettheme/toolbox/Event/src/EventDispatcher.php:23 #2 RocketTheme\Toolbox\Event\EventDispatcher:dispatch in /var/www/html/fuga-blog/system/src/Grav/Common/Grav.php:273 #1 Grav\Common\Grav:fireEvent in /var/www/html/fuga-blog/system/src/Grav/Common/Grav.php:329 #0 Grav\Common\Grav:shutdown in [internal]:0
Stack frames (11)
10
Whoops
\
Exception
\
ErrorException
/
user
/
plugins
/
admin
/
classes
/
popularity.php
108
9
file_put_contents
/
user
/
plugins
/
admin
/
classes
/
popularity.php
108
8
Grav
\
Plugin
\
Admin
\
Popularity
updateDaily
/
user
/
plugins
/
admin
/
classes
/
popularity.php
77
7
Grav
\
Plugin
\
Admin
\
Popularity
trackHit
/
user
/
plugins
/
admin
/
admin.php
506
6
Grav
\
Plugin
\
AdminPlugin
onShutdown
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
184
5
call_user_func
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
184
4
Symfony
\
Component
\
EventDispatcher
\
EventDispatcher
doDispatch
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
46
3
Symfony
\
Component
\
EventDispatcher
\
EventDispatcher
dispatch
/
vendor
/
rockettheme
/
toolbox
/
Event
/
src
/
EventDispatcher.php
23
2
RocketTheme
\
Toolbox
\
Event
\
EventDispatcher
dispatch
/
system
/
src
/
Grav
/
Common
/
Grav.php
273
1
Grav
\
Common
\
Grav
fireEvent
/
system
/
src
/
Grav
/
Common
/
Grav.php
329
0
Grav
\
Common
\
Grav
shutdown
[internal]
0
/
var
/
www
/
html
/
fuga-blog
/
user
/
plugins
/
admin
/
classes
/
popularity.php
        }
 
        $day_month_year = date(self::DAILY_FORMAT);
 
        / get the daily access count
        if (array_key_exists($day_month_year, $this->daily_data)) {
            $this->daily_data[$day_month_year] = intval($this->daily_data[$day_month_year]) + 1;
        } else {
            $this->daily_data[$day_month_year] = 1;
        }
 
        / keep correct number as set by history
        $count = intval($this->config->get('plugins.admin.popularity.history.daily', 30));
        $total = count($this->daily_data);
 
        if ($total > $count) {
            $this->daily_data = array_slice($this->daily_data, -$count, $count, true);
        }
 
        file_put_contents($this->daily_file, json_encode($this->daily_data));
    }
 
    /**
     * @return array
     */
    public function getDailyChartData()
    {
        if (!$this->daily_data) {
            $this->daily_data = $this->getData($this->daily_file);
        }
 
        $limit = intval($this->config->get('plugins.admin.popularity.dashboard.days_of_stats', 7));
        $chart_data = array_slice($this->daily_data, -$limit, $limit);
 
        $labels = [];
        $data = [];
 
        foreach ($chart_data as $date => $count) {
            $labels[] = Grav::instance()['grav']['admin']->translate([
                'PLUGIN_ADMIN.' . strtoupper(date('D', strtotime($date)))
Arguments
  1. "file_put_contents(/var/www/html/fuga-blog/logs/popularity/daily.json): failed to open stream: Permission denied"
    
/
var
/
www
/
html
/
fuga-blog
/
user
/
plugins
/
admin
/
classes
/
popularity.php
        }
 
        $day_month_year = date(self::DAILY_FORMAT);
 
        / get the daily access count
        if (array_key_exists($day_month_year, $this->daily_data)) {
            $this->daily_data[$day_month_year] = intval($this->daily_data[$day_month_year]) + 1;
        } else {
            $this->daily_data[$day_month_year] = 1;
        }
 
        / keep correct number as set by history
        $count = intval($this->config->get('plugins.admin.popularity.history.daily', 30));
        $total = count($this->daily_data);
 
        if ($total > $count) {
            $this->daily_data = array_slice($this->daily_data, -$count, $count, true);
        }
 
        file_put_contents($this->daily_file, json_encode($this->daily_data));
    }
 
    /**
     * @return array
     */
    public function getDailyChartData()
    {
        if (!$this->daily_data) {
            $this->daily_data = $this->getData($this->daily_file);
        }
 
        $limit = intval($this->config->get('plugins.admin.popularity.dashboard.days_of_stats', 7));
        $chart_data = array_slice($this->daily_data, -$limit, $limit);
 
        $labels = [];
        $data = [];
 
        foreach ($chart_data as $date => $count) {
            $labels[] = Grav::instance()['grav']['admin']->translate([
                'PLUGIN_ADMIN.' . strtoupper(date('D', strtotime($date)))
Arguments
  1. "/var/www/html/fuga-blog/logs/popularity/daily.json"
    
  2. "{"27-12-2016":33,"09-01-2017":1,"10-01-2017":71,"18-11-2018":1}"
    
/
var
/
www
/
html
/
fuga-blog
/
user
/
plugins
/
admin
/
classes
/
popularity.php
        / Don't track error pages or pages that have no route
        if ($page->template() == 'error' || !$page->route()) {
            return;
        }
 
        / Make sure no 'widcard-style' ignore matches this url
        foreach ((array)$this->config->get('plugins.admin.popularity.ignore') as $ignore) {
            if (fnmatch($ignore, $relative_url)) {
                return;
            }
        }
 
        / initial creation if it doesn't exist
        if (!file_exists($this->data_path)) {
            mkdir($this->data_path);
            $this->flushPopularity();
        }
 
        / Update the data we want to track
        $this->updateDaily();
        $this->updateMonthly();
        $this->updateTotals($page->route());
        $this->updateVisitors(Grav::instance()['uri']->ip());
 
    }
 
    protected function updateDaily()
    {
 
        if (!$this->daily_data) {
            $this->daily_data = $this->getData($this->daily_file);
        }
 
        $day_month_year = date(self::DAILY_FORMAT);
 
        / get the daily access count
        if (array_key_exists($day_month_year, $this->daily_data)) {
            $this->daily_data[$day_month_year] = intval($this->daily_data[$day_month_year]) + 1;
        } else {
            $this->daily_data[$day_month_year] = 1;
/
var
/
www
/
html
/
fuga-blog
/
user
/
plugins
/
admin
/
admin.php
                $twig->twig_vars['popularity'] = $this->popularity;
 
                / Gather Plugin-hooked dashboard items
                $this->grav->fireEvent('onAdminDashboard');
 
                break;
        }
    }
 
    /**
     * Handles the shutdown
     */
    public function onShutdown()
    {
        / Just so we know that we're in this debug mode
        if ($this->config->get('plugins.admin.popularity.enabled')) {
 
            / Only track non-admin
            if (!$this->active) {
                $this->popularity->trackHit();
            }
        }
    }
 
    /**
     * Handles getting GPM updates
     */
    public function onTaskGPM()
    {
        $task = 'GPM';
        if (!$this->admin->authorize(['admin.maintenance', 'admin.super'])) {
            $this->admin->json_response = [
                'status'  => 'unauthorized',
                'message' => $this->admin->translate('PLUGIN_ADMIN.INSUFFICIENT_PERMISSIONS_FOR_TASK') . ' ' . $task . '.'
            ];
 
            return false;
        }
 
        $action = $_POST['action']; / getUpdatable | getUpdatablePlugins | getUpdatableThemes | gravUpdates
/
var
/
www
/
html
/
fuga-blog
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
        }
    }
 
    /**
     * Triggers the listeners of an event.
     *
     * This method can be overridden to add functionality that is executed
     * for each listener.
     *
     * @param callable[] $listeners The event listeners
     * @param string     $eventName The name of the event to dispatch
     * @param Event      $event     The event object to pass to the event handlers/listeners
     */
    protected function doDispatch($listeners, $eventName, Event $event)
    {
        foreach ($listeners as $listener) {
            if ($event->isPropagationStopped()) {
                break;
            }
            call_user_func($listener, $event, $eventName, $this);
        }
    }
 
    /**
     * Sorts the internal list of listeners for the given event by priority.
     *
     * @param string $eventName The name of the event
     */
    private function sortListeners($eventName)
    {
        krsort($this->listeners[$eventName]);
        $this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]);
    }
}
 
Arguments
  1. Event {}
    
  2. "onShutdown"
    
  3. EventDispatcher {}
    
/
var
/
www
/
html
/
fuga-blog
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
        }
    }
 
    /**
     * Triggers the listeners of an event.
     *
     * This method can be overridden to add functionality that is executed
     * for each listener.
     *
     * @param callable[] $listeners The event listeners
     * @param string     $eventName The name of the event to dispatch
     * @param Event      $event     The event object to pass to the event handlers/listeners
     */
    protected function doDispatch($listeners, $eventName, Event $event)
    {
        foreach ($listeners as $listener) {
            if ($event->isPropagationStopped()) {
                break;
            }
            call_user_func($listener, $event, $eventName, $this);
        }
    }
 
    /**
     * Sorts the internal list of listeners for the given event by priority.
     *
     * @param string $eventName The name of the event
     */
    private function sortListeners($eventName)
    {
        krsort($this->listeners[$eventName]);
        $this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]);
    }
}
 
Arguments
  1. array:2 [
      0 => AdminPlugin {}
      1 => "onShutdown"
    ]
    
  2. Event {}
    
  3. "onShutdown"
    
  4. EventDispatcher {}
    
/
var
/
www
/
html
/
fuga-blog
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
 */
class EventDispatcher implements EventDispatcherInterface
{
    private $listeners = array();
    private $sorted = array();
 
    /**
     * {@inheritdoc}
     */
    public function dispatch($eventName, Event $event = null)
    {
        if (null === $event) {
            $event = new Event();
        }
 
        $event->setDispatcher($this);
        $event->setName($eventName);
 
        if ($listeners = $this->getListeners($eventName)) {
            $this->doDispatch($listeners, $eventName, $event);
        }
 
        return $event;
    }
 
    /**
     * {@inheritdoc}
     */
    public function getListeners($eventName = null)
    {
        if (null !== $eventName) {
            if (!isset($this->listeners[$eventName])) {
                return array();
            }
 
            if (!isset($this->sorted[$eventName])) {
                $this->sortListeners($eventName);
            }
 
            return $this->sorted[$eventName];
Arguments
  1. array:1 [
      0 => array:2 [
        0 => AdminPlugin {}
        1 => "onShutdown"
      ]
    ]
    
  2. "onShutdown"
    
  3. Event {}
    
/
var
/
www
/
html
/
fuga-blog
/
vendor
/
rockettheme
/
toolbox
/
Event
/
src
/
EventDispatcher.php
use Symfony\Component\EventDispatcher\Event as BaseEvent;
use Symfony\Component\EventDispatcher\EventDispatcher as BaseEventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
/**
 * Implements Symfony EventDispatcher interface.
 *
 * @package RocketTheme\Toolbox\Event
 * @author RocketTheme
 * @license MIT
 */
class EventDispatcher extends BaseEventDispatcher implements EventDispatcherInterface
{
    public function dispatch($eventName, BaseEvent $event = null)
    {
        if (null === $event) {
            $event = new Event();
        }
 
        return parent::dispatch($eventName, $event);
    }
}
 
Arguments
  1. "onShutdown"
    
  2. Event {}
    
/
var
/
www
/
html
/
fuga-blog
/
system
/
src
/
Grav
/
Common
/
Grav.php
        / Vary: Accept-Encoding
        if ($this['config']->get('system.pages.vary_accept_encoding', false)) {
            header('Vary: Accept-Encoding');
        }
    }
 
    /**
     * Fires an event with optional parameters.
     *
     * @param  string $eventName
     * @param  Event  $event
     *
     * @return Event
     */
    public function fireEvent($eventName, Event $event = null)
    {
        /** @var EventDispatcher $events */
        $events = $this['events'];
 
        return $events->dispatch($eventName, $event);
    }
 
    /**
     * Set the final content length for the page and flush the buffer
     *
     */
    public function shutdown()
    {
        / Prevent user abort allowing onShutdown event to run without interruptions.
        if (function_exists('ignore_user_abort')) {
            @ignore_user_abort(true);
        }
 
        / Close the session allowing new requests to be handled.
        if (isset($this['session'])) {
            $this['session']->close();
        }
 
        if ($this['config']->get('system.debugger.shutdown.close_connection', true)) {
            / Flush the response and close the connection to allow time consuming tasks to be performed without leaving
Arguments
  1. "onShutdown"
    
  2. null
    
/
var
/
www
/
html
/
fuga-blog
/
system
/
src
/
Grav
/
Common
/
Grav.php
                        header('Content-Encoding: identity');
                    } else {
                        header('Content-Encoding: none');
                    }
 
                }
 
 
                / Get length and close the connection.
                header('Content-Length: ' . ob_get_length());
                header("Connection: close");
 
                ob_end_flush();
                @ob_flush();
                flush();
            }
        }
 
        / Run any time consuming tasks.
        $this->fireEvent('onShutdown');
    }
 
    /**
     * Magic Catch All Function
     * Used to call closures like measureTime on the instance.
     * Source: /stackoverflow.com/questions/419804/closures-as-class-members
     */
    public function __call($method, $args)
    {
        $closure = $this->$method;
        call_user_func_array($closure, $args);
    }
 
    /**
     * Initialize and return a Grav instance
     *
     * @param  array $values
     *
     * @return static
     */
Arguments
  1. "onShutdown"
    
[internal]

Environment & details:

empty
empty
empty
empty
Key Value
user
User {}
files-upload
null
redirect_after_login
"/"
Key Value
HTTP_HOST
"34.212.213.173"
HTTP_CONNECTION
"close"
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_USER_AGENT
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
PATH
"/sbin:/usr/sbin:/bin:/usr/bin"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache/2.4.27 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.31"
SERVER_NAME
"34.212.213.173"
SERVER_ADDR
"172.31.47.151"
SERVER_PORT
"80"
REMOTE_ADDR
"18.144.28.141"
DOCUMENT_ROOT
"/var/www/html/fuga-blog"
REQUEST_SCHEME
"http"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/var/www/html/fuga-blog"
SERVER_ADMIN
"contacto@cerebrossinfronteras.com"
SCRIPT_FILENAME
"/var/www/html/fuga-blog/index.php"
REMOTE_PORT
"45098"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1542594211.794
REQUEST_TIME
1542594211
empty
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler