|
311
|
Programación / Java / Re: Usar "static" en Concurrencia. ¿mala práctica?
|
en: 7 Mayo 2018, 12:58 pm
|
"Esta cuestión es un tema que se trata mucho en los foros. A mí no me gusta nada la declaración static, ya que implica por un lado que puedes usar métodos de un a clase sin necesidad de declarar objetos de la propia clase, o bien la compartición directa de atributos para todas las instancias de una clase. Ambos comportamientos, a mi entender son un mal uso de la programación orientada a objetos, pero son permitidos en JAVA (como muchas otras cosas)." Mi profesor. ¿Qué opináis sobre nuestro amigo "static"? Mi consejo es que si buscas argumentos para rebatir con tú profesor es que no lo hagas(desiste), como estudiante dile que si y asiente con la cabeza, si lo que quieres es aprobar. La triste realidad es que el diseño de un lenguaje de programación no lo crean simples becarios, normalmente se trata de un equipo de señores muy experimentados con muchos títulines y masters del universo. Los elementos estáticos en la programación no son un invento de Sun Microsystem, ya sobre los sesenta lenguajes como AGOL y el C habían implementado esto y lo veían como algo necesario. Y actualmente en múltiples lenguajes también han introducido la instrucción static (sin ir más lejos en el 2015 se aprobó el EMACS 6 que incluye también esto en la POO). Tal como te subrayé en la cita es muy probable que sea una opinión personal. El siguiente código que voy a mostraros ahora utiliza la variable entera static "tarta" y un 'lock' para el bloque synchronized también static. Creo que la pregunta es evidente, ¿si el uso de "static" es, supuestamente, y para algunos, una mala práctica, cómo podríamos resola declaración static?una forma alternativa a usar la declaración static? No, no es una mala práctica, peeero, lo ideal o recomendable es pasar los elementos que tienes definidos como estáticos, como un elementos compartido vía constructor o método. Ejemplo : class Tarta extends Object { int tarta=0; }
...
public class PruebaJava implements Runnable { private boolean consumidor; private Tarta lockTarta ; public PruebaJava(Tarta lockTarta, boolean consumidor) { this.lockTarta = lockTarta; this.consumidor = consumidor; }
...
public static void main(String[] args) { int numHilos = 2; Tarta tarta = new Tarta(); // elemento compartido Thread[] hilo = new Thread[numHilos];
for(int i=0; i<hilo.length; i++) { Runnable runnable = null;
if(i !=0) { runnable = new PruebaJava(tarta, true); // todas las instancias comparten el mismo elemento }else { runnable = new PruebaJava(tarta,false); // todas las instancias comparten el mismo elemento }
...
|
|
|
312
|
Programación / Programación C/C++ / Re: Como utilizar Struct stat
|
en: 6 Mayo 2018, 16:59 pm
|
No tienes que definir un puntero a esa estructura, sólo una variable. Luego al segundo argumento de stat() tienes que indicarle a donde apunta la variable(pasar por referencia &), su dirección en memoria, para que dicha función escriba en esa zona y rellene los campos de la estructura.
El valor devuelto es mayor de -1 si tiene éxito.
Para acceder a los miembros de una estructura se usa el punto y no la flecha.
Algunos valores hay que castearlos(casting) para mostrarlos correctamente y usar el código de formato adecuado.
Tienes que usar la etiqueta pertinente para mostrar correctamente el código en el hilo.
|
|
|
313
|
Foros Generales / Foro Libre / Re: Tienda de ropa online
|
en: 5 Mayo 2018, 22:15 pm
|
por favor que no sea otra tienda de camisetas estampadas, mejor ofrece algo que no encuentren en tiendas de ropa f´sicas, no es necesario que sean baratas lo importante es que el producto sea bueno, de calidad. Estudia el mercado antes de invertir grandes cantidades, no vayas luego a echar la culpa a los móviles y a las consolas porque no vendes, como un usuario que abrió recientemente un hilo
|
|
|
314
|
Foros Generales / Foro Libre / Re: Cierran las tiendas de informática de toda la vida
|
en: 5 Mayo 2018, 22:08 pm
|
Es un desacierto achacar el fracaso de un negocio al propio consumidor, o de algo tan disparatado como la aparición de los teléfonos móviles o las consolas.
La responsabilidad del fracaso o triunfo de un negocio es únicamente del propio gestor. Si tiene evidencias de que el consumidor está más volcado a los dispositivos móviles simplemente debe ampliar el negocio e introducir productos encaminados a estos o también complementarlo con un servicio de reparaciones, muy de moda. Lo mismo pasa con las consolas, y un ejemplo lo tenemos con la franquicia GAME que complementa la venta de juegos con alquiler, y venta de dispositivos informáticos de primera y segunda mano, y además también la telefonía móvil con su propia marca.
También una forma de garantizar la lealtad de los consumidores es ofreciéndoles oportunidades de trabajo en el propio negocio, algo que ya no se ve. Esa época en que los veranos algunos estudiantes aprovechaban para ganarse un dinerito. Ese tipo de política tiene una gran repercusión social, hacer que el consumidor sea también parte del negocio, como un socio, que venda y que también compre. Integrar sistemas de puntos, premios, etc...
Y por último, es necesario asumir el fracaso para poder triunfar... no podemos esperar a que se produzcan los milagros, y que el consumidor venga a tú negocio por casualidad, es necesario siempre innovar, estudiar el mercado, anticiparte a la competencia.
|
|
|
316
|
Programación / Java / Re: Chat en Java con Sockets
|
en: 3 Mayo 2018, 17:30 pm
|
Si el cliente se encuentra fuera de la red local tienes que asignarle la IP pública del servidor, y también asegurarte que los puertos estén abiertos (desde el router hasta el propio srvidor, firewalls, etc).
La excepción indica que el tiempo de conexión se ha pasado y sin éxito en ésta, que no pudo conectar. En resumen esto puede deberse a que el servidor no es visible para el cliente por las típicas causas, dirección o puerto incorrectos, o puertos del servidor cerrados (sobre todo cuando el acceso es desde fuera de la red local).
|
|
|
319
|
Foros Generales / Foro Libre / Re: Alguien me ayuda aplicar esta Formula
|
en: 29 Abril 2018, 17:53 pm
|
No necesitas calcular nada, simplemente tener en cuenta que cada 3 fallos es un punto menos. Para ese tipo de exámenes, muy comunes en oposiciones, convocatorias y en general, lo mejor es repasar el examen antes de empezarlo e ir por las preguntas fáciles, así hasta que pueda completar al menos un poco más de la mitad de las 97 cuestiones. Yo en cuestiones dudosas te recomiendo que no arriesgues pues este tipo de sistemas no favorecen respuestas random. Si cumples esa mitad y un poco más con seguridad de que has respondido bien, no vale la pena arriesgar y lo mejor es conformarse con un aprobado flojo. En cambio si se te presenta difícil y apenas haz llegado a la mitad de cuestiones date por suspendido y si quieres juégala como si fuera una primitiva, pero no te hagas ilusiones en un caso así y asume que con mucha probabilidad haz suspendido. Yo he realizado muchos exámenes así, usando este método que te cuento y he salido escapando o al menos he sabido antes de que me lo corrigieran si estaba suspendido Si hay posibilidad de recuperación no te pongas nervioso y tómalo como una prueba, intentado siempre recordar las cuestiones más difíciles o dudosas por si luego tienes que recuperar repasarlas para otra vez que se te presenten responderlas bien. Suerte
|
|
|
320
|
Programación / Desarrollo Web / Re: Que tecnologia usar para proyecto web
|
en: 29 Abril 2018, 11:19 am
|
Si no tienes mucha experiencia yo empezaría con CMS gratuitos para ver su funcionamiento y aprender con ellos.
No es necesario tener "mucha experiencia" para trabajar con laravel y angular, además él mismo reconoce que ya lo ha estudiado. Aparte si descartas tecnologías porque simplemente no tienes "mucha experiencia" nunca aprenderás a usarlas. En mi experiencia he tomado varios trabajillos sin ser senior (ni junior) en cosas que nunca he abordado y con ellas aprendí a usarlas, y es que además el requisito en las tecnologías informáticas es ser una persona autodidacta, siempre dispuesta aprender pues los conocimientos que hoy aprendiste mañana pueden quedarse deprecated Ya tengo los conocimientos en las tecnologías que mencione y algún proyecto hecho con laravel y angular, finalmente creo que me decantare por hacerlo con laravel y react o laravel y angular...
Es una buena opción, Laravel permite una personalizacióna todos los niveles que supera a los CMS, aparte permite escalabilidad, una estructura bien organizada para cualquier desarrollo y permite combinar otros frameworks en la parte del frontend como React o Vue, o incluso usar javascript a pelo (Vanilla js o Emacs) sin mucho problema, puedes recurrir al mix. https://github.com/arnoldfederis/laravel-and-angular-with-laravel-mixhttps://laravel.com/docs/5.6/mix#reactSuerte con el pryecto
|
|
|
|
|
|
|