domingo, 5 de noviembre de 2023

Organizador de fotos por fecha

 Muchas fotos en un móvil para organizarlas , con esta aplicación puede hacer muy rápido con la garantía que no va copiar de forma duplicada la misma foto y el solo va crear carpetas con la fecha . 

Organizador Organizador



Es muy simple de usar solo seleccionar la carpeta donde están las fotos e el móvil o si las copiaste para la computadora y seleccionar la capeta que vas tenerlas organizadas, lo ideal es que sea otra carpeta aparte.

Aquí les dejo el link:

http://moises-soft.net/web/upload/organizador.rar




viernes, 13 de enero de 2023

Moises Hosting una opcion para comprar su hosting en Cuba

 Moises Hosting una opcion para comprar su hosting desde Cuba o fuera de Cuba

 Visite la web:   https://moises-hosting.net

 

jueves, 15 de noviembre de 2018

APLICACIÓN: LOGIN NAUTA AUTOMATIZADO

APLICACIÓN: LOGIN NAUTA AUTOMATIZADO 



 A cuantos no les ha pasado que abrimos el internet NAUTA y se cierra por error el navegador sin poder cerrar la sesión nauta, a mí me ha pasado.

Por suerte ETECSA ha ido mejorando ese mecanismo y ya hay un número de teléfono donde se puede llamar para cerrar nuestra cuenta en caso de que se quede abierta. De todos modos, se me ocurrió que sería mucho más cómodo tener una aplicación para abrir y cerrar NAUTA sin el uso de un navegador, es por eso que hice esta aplicación de WINDOW que comparto con todos los que la deseen usar. Además, con esta aplicación se puede programar tiempos de conexión automatizados y tiempo de espera para volver a conectarse, si necesita que su conexión se active varias veces al día por tiempos determinados de forma automática, este programa resuelve su problema.

También puede perder su temor a cerrarlo y que la cuenta se quede en uso, ya que, si por error usted cierra, la aplicación solo se cierra luego de cerrada su sesión de nauta.


Pues bien, si quiere privarlo aquí le dejo el link de descarga:

http://moises-soft.net/web/upload/login-nauta-moises-soft.rar 

Está programado en .NetFramework 4.5, normalmente esto ya viene en las últimas versiones de WINDOW, pero si tiene una versión antigua debe antes instalarlo.

viernes, 9 de noviembre de 2018

SCRIPT PARA LA RECONEXION CON LA RED WIFI_ETECSA



Tuve este problema de que mi Nano M5 perdiera la conexión con la Wifi ETECTSA cada algunos minutos, así que  cada vez que deseaba usar el internet , tenía que reiniciar en Nano y esperar un tiempo, pues esto se toma su tiempo.
Luego mucho investigar sobre el asunto y probar todos los códigos publicados en la internet me di cuenta que al menos con mi Nano nada funcionaba, ni bajando el último Firmware.
Comencé a “cacharear” hasta que di con una solución al problema: conectarse mediante un cliente SSH y ejecutar el siguiente código:


#Moises Soft 09/11/2018
#!/bin/sh
logger Escaneando WIFI_ETECSA ini
while sleep 60
logger Escaneando WIFI_ETECSA
do
if ping -c 3 10.180.0.30 > /tmp/null
then
logger 10.180.0.30 ok
else
logger Conexion con WIFI_ETECSA perdida
sleep 1
if ! ping -c 3 10.180.0.30 > /tmp/null
then
logger Reconectando a WIFI_ETECSA
udhcpc -i ath0 -s /var/etc/udhcpc/udhcpc
fi
fi
done 2>&1 &


El problema era que hacer esto cada vez que yo encendiera el Nano era muy pesado, así que programe un cliente SSH que solo necesita una configuración inicial luego guarda estos datos cada vez que se abre y además de eso al ejecutarse si el nano no está encendido en ese momento queda a la espera cada 10 segundo hace el intento nuevamente y solo finaliza cuando se conecte y ejecute el script en el nano.
Aquí comparto el enlace del software, desarrollado en .Net (debe tener instalado en su PC el .net Framework 4.5), normalmente ya viene instalado en las ultimas versión de WINDOW, de lo contrario tendrá que instalarlo manualmente antes de poner usar este programa.

Links de descarga: http://moises-soft.net/web/upload/ssh-to-nano.rar


lunes, 20 de marzo de 2017

Errores que puedes encontrar al migrar de WAMP 2.0 a 3.0



Errores que puedes encontrar al migrar de WAMP 2.0 a  3.0

Comparto algunas soluciones a errores que encontré al cambiar la versión de WAMP server desde la versión 2.0 a la 3.0.

La configuración de PHP (Problema de codificación , palabras con acentos o ñ):
Un error que encontré en el PHP fue el de la codificación, las palabras con acentos no se veían correctamente o no se veía nada. El problema es que por defecto WAMP 3.0 usa codificación: UTF-8 , para solucionar este problema es ir al archivo: php.ini
Cambiar la línea:
;default_charset = "UTF-8"
por:
default_charset = "ISO-8859-1"

Problema con la base de datos MYSQL 5.7 (Error al insertar datos y consultar algunos datos con agrupaciones)
La  configuración de esta base de datos viene por defecto con algunas restricciones que no existían por defecto en las versiones anteriores.
La solución es simple:
Agregar al mi.ini  la siguiente línea:
sql-mode=""
Como ves es una línea vacía , pero esto te eliminará todas las restricciones por defecto y te ahorrarás mucho tiempo.

Luego de cambiadas estas configuraciones debes reiniciar los servicios para que carguen con estas nuevas configuraciones el PHP y MYSQL.

lunes, 13 de marzo de 2017

SEO uso de hreflang para que google interprete correctamente las URLs de idioma y de región

Si tu pagina web tiene versiones distintas para idiomas y/o regiones , es muy útil hacerle llegar esta información a Google en el lenguaje que este entiende:

En este artículo veremos una forma de hacerlo:




Por ejemplo:


Estamos con esto indicando que la versión en español de la página http:taxincuba.com/index.html  es http:taxincuba.com/es/index.html

Es obligatorio entonces en la versión en español, poner este mismo enlace a la versión en inglés:


Es decir que desde un enlace A al poner enlace a B , también desde B hay que poner enlace a A.
El valor del atributo hreflang identifica el idioma en formato ISO 639-1 y, opcionalmente, la región en formato ISO 3166-1 Alpha 2 para una URL alternativa.

El valor "x-default" se usa para indicar selectores o redireccionadores de idioma que no son específicos de un idioma o de una región.

Si por ejemplo el idioma por defecto es el inglés , lo que sucede es que si no hay una versión en Francés y a Google alguien de Francia , el idioma que le aparecerá en la búsqueda por defecto será inglés:

Nuevo proyecto de Moises Soft: www.taxincuba.com

Taxi In Cuba , una web donde se puede reservar Online servicio de taxi para toda Cuba. Le invitamos a visitarnos: taxincuba.com

miércoles, 8 de junio de 2016

Moises SMS www.moises-sms.com, un nuevo servicio de envie de SMS a Cuba

Moises Soft  ha lanzado su nueva web: Moises SMS www.moises-sms.com, un nuevo servicio de envie de SMS a Cuba.

Le invitamos a registrarse y prober el servicio, obtiene 5 sms gratuitos. 

miércoles, 25 de julio de 2012

Detectar País, Región , Ciudad, Latitud , Zona horaria dado el IP de un cliente web. Código PHP




Una buena práctica en sitios web que necesiten registro de usuario es detectar el país y otros datos que pueden ser útiles aportando valor agregado y seguridad a su web .


¿Cómo detectar el IP real de un usuario que entra a su web?

Este código está en montones de páginas, lo comparto con ustedes en la clase que verán más adelante : método es getRealIP() de la clase IPLocalizador.


¿Cómo determinar dado el IP de un cliente , datos como: país , zona , ciudad , coordenadas , zona horaria?

Para ello podemos hacer uso de alguna API en internet que brinde el servicio gratis. Yo en este caso recomiendo usar el API que proporciona la web: www.ipinfodb.com

Paso 1: Registrarse en la web (http://www.ipinfodb.com/register.php) al registrarse y confirmar , obtienes una llave, esta llave no es más que un código que te identifica para hacer distintas consultas.

Ahora solo tenemos que hacer envíos al API de la siguiente manera:

http://api.ipinfodb.com/v3/ip-city/?key={llave}&ip={IP}


Como se puede ver en la URL anterior, se pasa de forma obligatoria key y ip. De forma opcional se pueden pasar los siguientes parámetros:


Parámetro
Valor por defecto
Posibles valores y significado
format  
raw
raw =>  Formato texto separado por punto y coma
xml => Formato XML
json => Formato  json



 Comparto con ustedes las siguientes clases usadas en un proyecto desarrollado por Moises Soft:


class IPLocalizadorData{
   var $statusCode; // estado de los datos
   var $ipAddress;   // IP
   var $countryCode;  // Código de 2 caracteres del país
   var $countryName;   // Nombre del país en Inglés
   var $regionName;    // nombre de la región
   var $cityName;      // nombre de la ciudad
   var $zipCode;       // código postal
   var $latitude;      // latitud
   var $longitude;     // Longitud
   var $timeZone;      // Zona horaria
}


class IPLocalizador {
     /**
     *
     * @param string $ip
     * @param string $key
     * @return IPLocalizadorData
     */
    static function getData($ip,$key)
    {
       if (!$ip) $ip = self::getRealIP();


        if (!$key)
        $key = "su llave";
        $response =   file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=$key&ip=$ip&format=raw");

       $part = split(";", $response);

       $r = new IPLocalizadorData();
       $r->statusCode = $part[0];
       $r->ipAddress = $part[2];
       $r->countryCode = $part[3];
       $r->countryName = $part[4];
       $r->regionName = $part[5];
       $r->cityName = $part[6];
       $r->zipCode = $part[7];
       $r->latitude = $part[8];
       $r->longitude = $part[9];
       $r->timeZone = $part[10];

       return  $r; 
    }

static  function getRealIP()
{

   if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );

      // los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip real
      // del usuario se comienza a mirar por el principio hasta encontrar
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR

      $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);

      reset($entries);
      while (list(, $entry) = each($entries))
      {
         $entry = trim($entry);
         if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
         {
            // http://www.faqs.org/rfcs/rfc1918.html
            $private_ip = array(
                  '/^0\./',
                  '/^127\.0\.0\.1/',
                  '/^192\.168\..*/',
                  '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                  '/^10\..*/');

            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

            if ($client_ip != $found_ip)
            {
               $client_ip = $found_ip;
               break;
            }
         }
      }
   }
   else
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   }

   return $client_ip;

}

}


De modo que usted llamando al método getData($ip,$key) de la clase IPLocalizador, puede obtener un objeto de la clase IPLocalizadorData , con toda la información que inicialmente deseábamos obtener.


Limitantes de la API

Esta API es gratis , y solo dejará hacer 2 consultas por segundo , por lo que es muy recomendado solo hacer la consulta 1 vez y almacenar la información en las variables de sección , cookies o base de dato.