import java.util.Locale;
public class ListaPaises {
public static void main(String[] args) {
ListaPaises obj = new ListaPaises();
obj.run();
}
public void run() {
String[] locales = Locale.getISOCountries();
for (String countryCode : locales) {
Locale obj = new Locale("", countryCode);
System.out.println("Country Code = " + obj.getCountry()
+ ", Country Name = " + obj.getDisplayCountry());
}
System.out.println("Done");
}
}
gbarceWeb
viernes, 24 de febrero de 2017
Crear un listado de paises en Java
domingo, 19 de junio de 2016
RMI. Puerto en uso para registro de servidor
Problema:
Me surgió esta excepción al intentar publicar objetos remotos.
java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
La solución
La encontré acá: http://runando.tumblr.com/post/3181899953/address-already-in-use-jvmbind
Básicamente me bajé TCPView, y luego, con esa aplicación ya funcionando, desbloquee el puerto 1099, que es el que se hace referencia como en uso.
Ya luego funcionó correctamente.
viernes, 24 de octubre de 2014
Grafos en Java
Implementación de grafos en Java
Recorrida
DFS - Por vertice
Procedimiento DFS (vertice v)
Comienzo
- Marcar v como visitado
- Para cada w adyacente a v
- Si w no está marcado
- => DFS (w)
- fin para
Fin
Código (matriz de adyacencias)
Interface
import grafos.Lista;
public interface IGrafo {
/** Pre: v no pertenece al grafo.
* 0<v<=capacidad grafo
* Post: Agrega el vértice v al grafo
*/
public void agregarVertice(int v);
/**
* Pre: origen y destino son los índices de vértices ya ingresados en el grafo
* Post: Agrega la arista origen-destino de peso "peso" en el grafo
*/
public void agregarArista(int origen, int destino, int peso);
/**
* Pre: El vértice v existe en el grafo
* Post: Elimina el vértice y todas las aristas a las que pertenezca
*/
public void eliminarVertice(int v);
/**
* Pre: La arista origen - destino existe en el grafo
* Post: Elimina la arista origen - destino
*/
public void eliminarArista(int origen, int destino);
/**
* Pre: El vértice v existe en el grafo
* Post: Retorna una lista con los vértices adyacentes de v.
* Si v no tiene adyacentes retorna la lista vacía
*/
public Lista verticesAdyacentes(int v);
/**
* Pre: a y b son vértices del grafo
* Post: Retorna true sii los vértices a y b son adyacentes.
*/
public boolean sonAdyacentes(int a, int b);
/**
* Post: Retorna true sii el vértice fue ingresado al grafo
*/
public boolean estaVertice (int v);
/**
* Post: Retorna true sii el grafo esta vacío
*/
public boolean esVacio();
public void recorridaDFS();
}
Implementación mediante uso de Matriz de adyacencias
Clase Arco (modela un arista dentro del grafo)
public class Arco{
boolean existe;
int peso;
public Arco(){
this.existe = true;
this.peso = 0;
}
public Arco(int peso){
this.existe = true;
this.peso = peso;
}
}
Clase GrafoMatriz (modela una matriz con todas las adyacencias existentes en el presente grafo)
public class GrafoMatriz implements IGrafo{
int size;
int cantNodos;
Arco[][] matrizAdyacencia;
boolean[] nodosUsados;
}
Clase GrafoLista (modela una lista con todos los nodos y a su vez con todas las adyacencias existentes en el presente grafo desde cada nodo)
ListaAdy en este caso es una lista común donde lo único que guarda es el nodo al cual se vincula el que lo contiene.
public class GrafoLista implements IGrafo{
int size;
int cantNodos;
ListaAdy[] listaAdyacencia;
boolean[] nodosUsados;
}
lunes, 30 de septiembre de 2013
Crear bases de datos locales en SQL SERVER
Intentando crear una base de datos en un directorio personal de mi proyecto en .NET me ocurrió que el motor de bases de datos (SQLSERVER 2008 R2) no me permitía guardar donde yo quería el archivo mdb y su log. A esto último me devolvía el siguiente error:
SQL SERVER – Error : Fix : Msg 5133, Level 16, State 1, Line 2 Directory lookup for the file failed with the operating system error 2(The system cannot find the file specified.)
Cómo lo resolví
Dentro de los Servicios de mi equipo busqué el que correspondía a mi instancia de SQLSERVER, y dentro de las propiedades cambié dentro de la etiqueta Log On la opción Local Systema account, lo cual inhabilitó la cuenta de la red y ¡listo! funcionó.
viernes, 30 de agosto de 2013
Drupal y los límites de memoria
Instalando y haciendo correr Drupal en un servidor me ha ocurrido un problema recurrente, del cual no entendía que ocurría.
Con la instalación mínima del CMS no se presentaron problemas inicialmente, pero conforme le fui agregando módulos, vistas y demás comencé a notar que se hacía más lenta la carga de los contenidos del sitio público y lo que es peor, el administrador comenzó a no cargar completamente o directamente no cargar. El error recurrente que me mostraba el navegador fue error 500 lo cual no me decía nada, pero accediendo a los logs del servidor vi que el mensaje que se repetía cuando no cargaba era:
mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.
Luego de mucho trillar por internet encontré el problema y las posibles soluciones.
http://drupal.org/node/207036.
Con la instalación mínima del CMS no se presentaron problemas inicialmente, pero conforme le fui agregando módulos, vistas y demás comencé a notar que se hacía más lenta la carga de los contenidos del sitio público y lo que es peor, el administrador comenzó a no cargar completamente o directamente no cargar. El error recurrente que me mostraba el navegador fue error 500 lo cual no me decía nada, pero accediendo a los logs del servidor vi que el mensaje que se repetía cuando no cargaba era:
mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.
Luego de mucho trillar por internet encontré el problema y las posibles soluciones.
http://drupal.org/node/207036.
domingo, 24 de febrero de 2013
Errores usuales en compilación
Con este post pretendo ir colocando los errores que en diferentes lenguajes de programación me aparecen y como son triviales no siempre nos damos cuenta que se presentan o como solucionarlos.
Una cosa importante resaltaré en que lenguaje me ocurrió, esto no quiere decir que sea el único en el cual ocurra, pero conforme lo encuentre en otros casos lo iré agregando al post
Una cosa importante resaltaré en que lenguaje me ocurrió, esto no quiere decir que sea el único en el cual ocurra, pero conforme lo encuentre en otros casos lo iré agregando al post
unreachable statement (Java)
Se presenta cuando la línea de código a la cual se lo asocia será inaccesible por parte de la ejecución del programa, es decir.
Ejemplo
public static int primerPrimo(int num){
int pivot = num + 1;
while(!esPrimo(pivot) && pivot < Integer.MAX_VALUE){
pivot++;
}
if (pivot < Integer.MAX_VALUE)
return pivot;
else{
return 0;
}
return pivot; // No llegará a esta línea dado que ya habrá salido en el if anterior
}
miércoles, 30 de enero de 2013
Deshabilitación de la configuración de módulos por BD en Drupal
Este problema puede provocar que se presente un error 500, del estilo:
Para hacerlo. Se va a las bases de datos, y en la tabla system que es donde se persisten todas las configuraciones se busca el módulo que está generando problemas y en el campo status se le asigna un 0 (cero).
También se puede ejecutar la siguiente sentencia:
UPDATE `system` SET status=0 WHERE name='nombreModulo';
Para hacer lo opuesto el status se lo coloca en 1
UPDATE `system` SET status=1 WHERE name='nombreModulo';
This error (HTTP 500 Internal Server Error) means that the website you are visiting had a server problem which prevented the webpage from displaying.
Para hacerlo. Se va a las bases de datos, y en la tabla system que es donde se persisten todas las configuraciones se busca el módulo que está generando problemas y en el campo status se le asigna un 0 (cero).
También se puede ejecutar la siguiente sentencia:
UPDATE `system` SET status=0 WHERE name='nombreModulo';
Para hacer lo opuesto el status se lo coloca en 1
UPDATE `system` SET status=1 WHERE name='nombreModulo';
Suscribirse a:
Entradas (Atom)