Programadores. El hilo de los hinformáticos profesionales como PABLOPL.

Lo del C++ es muy curioso.

Es el lenguaje de programación casi más potente y útil que existe, se puede hacer TODO lo que quieras, tiene todas las librerías y frameworks que quieras, y además apenas sufre cambios (cosa de agradecer). Sin embargo ni dios quiere utilizarlo, decantándose por otros lenguajes que se parecen como java, C#, Php, Perl....etc.

¿Postureo programadil?¿Es tan difícil ser experto que es mejor aprender una de sus variantes?¿Hay un complot de silicon Valley en contra de este lenguaje por ser libre y no de pago?.
 
Lo del C++ es muy curioso.

Es el lenguaje de programación casi más potente y útil que existe, se puede hacer TODO lo que quieras, tiene todas las librerías y frameworks que quieras, y además apenas sufre cambios (cosa de agradecer). Sin embargo ni dios quiere utilizarlo, decantándose por otros lenguajes que se parecen como java, C#, Php, Perl....etc.

¿Postureo programadil?¿Es tan difícil ser experto que es mejor aprender una de sus variantes?¿Hay un complot de silicon Valley en contra de este lenguaje por ser libre y no de pago?.

Ya te lo digo yo, no es el más útil ni el más potente, de hecho, para la mayoría de cosas que se programan es absurdo usarlo por inútil e impotente, se decantan por otros lenguajes por la sencillez de uso y sobre todo por la productividad, no hay postureo ni hay complot por ser libre, aunque no entiendo muy bien que consideras tu libre, porque de hecho el 99% de los lenguajes más usados son libres.

A mi C++ me gusta, quizás porque realmente me gusta el C, pero tiene muchísimos problemas, los tiempos de compilación, el infierno de interdepencia de headers (hay artículos enteros escritos solo sobre este tema), el problema de compilación en diferentes plataformas, que va por detrás del resto en características cuando antes iba por delante, que se ha convertido en un monstruo a base de meter parches y librerías, no hay más que ver los añadidos que ha puesto spetnaz en la última revisión. Pero sobre todo la sintaxis, se pueden hacer cosas realmente aberrantes, hasta el punto de que puedes ser un experto en C++ coger el código de otro tío y no tener NPI de que lo que está ahí escrito, demasiado farragoso todo, y eso lleva a que mucho del código de C++ liberado realmente es malo y no reusable.

Pero si todo esto no te vale puede leer la opinión de un puto genio sobre el lenguaje, y precisamente en un área para la que se supone que está más capacitado que el resto de lenguajes: Linus Torvalds on C++
 
De Linus Tovalds tampoco te fíes mucho, porque también no hace mucho le dió un bajón y también se arrepintió de haber creado el núcleo de Linux. Pero vamos, de todo lo que se queja es exactamente lo que pasa en todos los lenguajes e incluso su amado c.

Debió de dejarle la novia o novio y cogió odio por todo.
 
De Linus Tovalds tampoco te fíes mucho, porque también no hace mucho le dió un bajón y también se arrepintió de haber creado el núcleo de Linux. Pero vamos, de todo lo que se queja es exactamente lo que pasa en todos los lenguajes e incluso su amado c.

Debió de dejarle la novia o novio y cogió odio por todo.

Es verdad que Torvalds suele emplear un tono bastante agresivo, porque a su audiencia le encantan las guerras de lenguajes. Parece a veces que eso y el editor que usas son como tu equipo de fútbol y tu partido político. Se crean frentes, se posicionan efectivos y todos a despotricar.

Y tienes toda la razón en que en esa discusión podría estar comparando dos lenguajes cualesquiera.

Pero también es cierto que en ese caso particular tiene razón. Y no se la doy yo, se la da el éxito abrumador de git, que se ha convertido en la herramienta de control de versiones más usada.

Seguro que hay algo para lo que C++ es útil. Para lo único que lo empecé a usar después de la universidad fue en un framework que empezaba a reescribirse en python y la culebra le adelantó por la derecha. Pero los videojuegos me suena que sí ha sido muy popular. No sé si ahí aún domina.



PD: Hijos de puta, ¿nadie ha probado el script del greasemonkey que puse? Que sepáis que me parto el culo de risa leyendo los mensajes de Nueces, eso nunca había pasado. Podéis cambiar el texto "Nueces" por lo que queráis y poner otro nombre de usuario.

Si no, al menos que os sirva para instalaros el greasemonkey, es un addon cojonudo.
 
De Linus Tovalds tampoco te fíes mucho, porque también no hace mucho le dió un bajón y también se arrepintió de haber creado el núcleo de Linux. Pero vamos, de todo lo que se queja es exactamente lo que pasa en todos los lenguajes e incluso su amado c.

No es que me fíe o no es que tiene razón, de todas formas te he puesto su opinión como ejemplo de un tío que creo que sabe de que habla, pero te he dado argumentos más que de sobra, y no, no todos los lenguajes adolecen de los mismos problemas, de esos concretamente que te he nombrado para explicar porque C++ no es más usado no adolecen por ejemplo C#, Java, Pascal, VB, PHP, Python, Go, Swift, y muchisimos otros, que tendrán otros problemas sin duda, pero son mucho más productivos que C++.


Seguro que hay algo para lo que C++ es útil. Para lo único que lo empecé a usar después de la universidad fue en un framework que empezaba a reescribirse en python y la culebra le adelantó por la derecha. Pero los videojuegos me suena que sí ha sido muy popular. No sé si ahí aún domina.

Yo también creo que en videojuegos triple A siguen mandando el C++, sin embargo en los últimos años y sobre todo en mercado indie le están desbancando otros lenguajes, y es que es normal, no hay color en cuanto a productividad, y eso relega C++ a un nicho muy concreto con unas necesidades de rendimiento muy elevadas, porque para UE4 es posible que necesites C++ pero para el 90% de los juegos que hay con Unity, pyGame, JMonkey, GameMaker y la miriada de alternativas existentes en cualquier lenguaje mejor que C++ sobra.
 
A ver, que aburrís a las ovejas.

Prestadme atención a mi, que hago dibujitos:

30aav09.jpg


Al final no lo he maqueado bien porque he llegado a la sabia conclusión de que mejor me dedico a seguir aprendiendo a programar en vez de perder días rompiéndome la cabeza con el CSS, botones extra, un fondo que pegue, o que al redimensionar la pantalla con Control + Rueda del ratón se vaya cada elemento por su lado, lo cual es un tocacojones de primera. Nunca llegué a aprender como dios manda como se hace una web que mantenga las formas cuando se cambia el zoom, ni tampoco he aprendido a solucionarlo cuando ocurre. Me guardo el propósito de solucionar tamaña laguna, me guardo la app para terminarla en otro momento, y sigo con mi curso online.
 
Última edición por un moderador:
A ver, que aburrís a las ovejas.

Prestadme atención a mi, que hago dibujitos:

30aav09.jpg


Al final no lo he maqueado bien porque he llegado a la sabia conclusión de que mejor me dedico a seguir aprendiendo a programar en vez de perder días rompiéndome la cabeza con el CSS, botones extra, un fondo que pegue, o que al redimensionar la pantalla con Control + Rueda del ratón se vaya cada elemento por su lado, lo cual es un tocacojones de primera. Nunca llegué a aprender como dios manda como se hace una web que mantenga las formas cuando se cambia el zoom, ni tampoco he aprendido a solucionarlo cuando ocurre. Me guardo el propósito de solucionar tamaña laguna, me guardo la app para terminarla en otro momento, y sigo con mi curso online.

El css es una herramienta cojonuda para un diseñador.

Es el lenguaje en el que se expresa el estilo de una web. Para el tipo de persona que disfruta eligiendo una caligrafía o viendo candidatas a la web del día, es una inversión acojonante.

Una muy buena práctica es usar javascript solamente donde el CSS no pueda hacerlo. No sólo ganas por librarte de usar javascript, es que haces un uso mucho más económico de recursos del navegador y tu control sobre la estructura de la página es mucho mayor incluso usando archivos CSS plantilla. Al final sabes por qué y dónde está cada elemento. El coste de mantenimiento se reduce mucho.
 
Por partes:

Node = Kaka --> Twister de Phyton o Apache Mina = gol de Señor.

No conocía Twisted y a raíz de este comentario le eché un ojo. Me gustó la idea y pintaba bien pero no ha sido hasta hoy que he tenido ocasión de usarlo en el trabajo.

O más bien de intentarlo. Una hora antes de salir hoy, viernes, me he puesto a intentar la conexión entre 2 procesos para una aplicación de monitorización personalizada para nuestros servicios.

Es evidente que Twisted tiene mucho potencial, lo que aún dudo, tras esta hora de durísimo trabajo, es si no estaré matando moscas a cañonazos.

Aunque retrase la finalización de este pequeño proyecto interno, me interesa aprenderlo y nadie me va a discutir esta decisión técnica porque parece contrastado que ya casi se ha convertido en el estándar para tareas similares.

¿Algún consejo o sugerencia?

Gracias por mencionarlo, al margen de cómo me pueda ir la experiencia, siempre está bien descubrir herramientas nuevas.
 
Lo del C++ es muy curioso.

Es el lenguaje de programación casi más potente y útil que existe, se puede hacer TODO lo que quieras, tiene todas las librerías y frameworks que quieras, y además apenas sufre cambios (cosa de agradecer). Sin embargo ni dios quiere utilizarlo, decantándose por otros lenguajes que se parecen como java, C#, Php, Perl....etc.

¿Postureo programadil?¿Es tan difícil ser experto que es mejor aprender una de sus variantes?¿Hay un complot de silicon Valley en contra de este lenguaje por ser libre y no de pago?.

Tan mal no le irá a C++ cuando esta semana se ha lanzado la versión 17.

C++ 17, la esperada actualización de C++, ya está completa - ComputerHoy.com

Pero sí que es cierto que aquí en España apenas tiene demanda, desconozco si en el extranjero es un lenguaje solicitado. En mi caso, como programador freelance casi siempre me piden Java o C# así que C++ no me he molestado en mirarlo demasiado porque realmente no creo que lo llegue a utilizar nunca.
 
El C++ fue mi primer lenguaje en el que trabaje en serio allá por los tiempos del Borland C++ 3.1 y como lenguaje es igual de bueno o malo que las librerías que tengas a tu disposición en cada entorno. Librerías buenas=productividad alta Librerías caca=mala productividad.

Hace como 15 años que no lo toco pero le guardo buen recuerdo porque es para lo que es como cualquier herramienta.
 
El C++ fue mi primer lenguaje en el que trabaje en serio allá por los tiempos del Borland C++ 3.1 y como lenguaje es igual de bueno o malo que las librerías que tengas a tu disposición en cada entorno. Librerías buenas=productividad alta Librerías caca=mala productividad.

Caray, pues debes tener tus buenos años tú. Cuando me inicié en el mundo de la programación, Borland C++ 3.1 es algo tremendamente arcaico. Lo de las librerías teniendo github no me ha preocupado nunca demasiado, ahí encuentras de todo.
 
Es que hablamos de un mundo en el que no existía github. Para que te hagas una idea el borland lo instale desde 7 disquetes y llevaba una bombástica librería para hacer interfaces en MSDOS y la aún mejor OWL para interfaces vindous.

Claro que también puedo hablar del primer trasto que maneje, un Apple II en el año 85 con un bonito y arcaico intérprete de BASIC y un sistema de bajo nivel en ensamblador llamado "programa monitor" que saciaba nuestras ansias de acceder a pelo a la memoria interna. Pero eso si que serían batallitas de abuelo.
 
Pues como lo que ha dicho antes Iskariote de trabajar en el ártico sin stackoverflow. Me mato.

Ahora tenemos demasiada dependencia de internec. En mis tiempos tenías como mucho un libro de 600 páginas de borland c++ (por ahí anda todavía), otro de ensamblador, la ayuda incorporada en el IDE y a tirar millas.
 
PD: Hijos de puta, ¿nadie ha probado el script del greasemonkey que puse?

Pues aprovechando la pausa para el café lo he probado y me he hecho un par personalizados que dejo por aquí.

Para fijar el avatar de Boniato:

Código:
[noparse]// ==UserScript==
// @name        boniatoPenis
// @namespace   vbulletin
// @description cambiar el avatar de Boniato
// @include     [url="https://foropl.com/*"]Página no encontrada[/url]
// @version     1
// @grant       none
// ==/UserScript==
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }

$('img[title="Avatar de Boniato"]').attr("src", "http://oi67.tinypic.com/2ur8tar.jpg");[/noparse]

De esta forma siempre se va a ver así, ahorrándote el pollón:

hs486x.jpg

He hecho también otro para el rango de sartenes.

Código:
[noparse]// ==UserScript==
// @name        rangoSartenes
// @namespace   vbulletin
// @description cambiar el rango de sartenes
// @include     [url="https://foropl.com/*"]Página no encontrada[/url]
// @version     1
// @grant       none
// ==/UserScript==
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }
$('img[src="https://foropl.com/rangospl/rangosartenes_zpsdbcalkvb.png"]').attr("src", "http://s2.subirimagenes.com/imagen/previo/thump_9593819slslslsls.gif");[/noparse]

Ahora siempre lo veo así:

dgj5n4.jpg

Me parecía un desperdicio desaprovechar el trabajo del Sr. Putas. Si tenéis alguna petición para hacer un script que os modifique algo del foro pedidla y la hacemos. A ser posible complicada y que implique expresiones regulares, así practico, que siempre se me han dado mal y cuando me toca usarlas en un infierno.

Por cierto @iskariote, lo que decías de las arrobas dentro de la etiqueta code, hay que poner noparse para que no salgan, fíjate en cómo los he escrito yo en este post.
 
Pues aprovechando la pausa para el café lo he probado y me he hecho un par personalizados que dejo por aquí.

Para fijar el avatar de Boniato:

Código:
[noparse]// ==UserScript==
// @name        boniatoPenis
// @namespace   vbulletin
// @description cambiar el avatar de Boniato
// @include     [url="https://foropl.com/*"]Página no encontrada[/url]
// @version     1
// @grant       none
// ==/UserScript==
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }

$('img[title="Avatar de Boniato"]').attr("src", "http://oi67.tinypic.com/2ur8tar.jpg");[/noparse]

De esta forma siempre se va a ver así, ahorrándote el pollón:

hs486x.jpg

He hecho también otro para el rango de sartenes.

Código:
[noparse]// ==UserScript==
// @name        rangoSartenes
// @namespace   vbulletin
// @description cambiar el rango de sartenes
// @include     [url="https://foropl.com/*"]Página no encontrada[/url]
// @version     1
// @grant       none
// ==/UserScript==
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }
$('img[src="https://foropl.com/rangospl/rangosartenes_zpsdbcalkvb.png"]').attr("src", "http://s2.subirimagenes.com/imagen/previo/thump_9593819slslslsls.gif");[/noparse]

Ahora siempre lo veo así:

dgj5n4.jpg

Me parecía un desperdicio desaprovechar el trabajo del Sr. Putas. Si tenéis alguna petición para hacer un script que os modifique algo del foro pedidla y la hacemos. A ser posible complicada y que implique expresiones regulares, así practico, que siempre se me han dado mal y cuando me toca usarlas en un infierno.

Por cierto @iskariote, lo que decías de las arrobas dentro de la etiqueta code, hay que poner noparse para que no salgan, fíjate en cómo los he escrito yo en este post.

El caso es que aunque pongas lo de noparse yo sigo viendo lo de MENTION y /MENTION allá donde has puesto una arroba y la palabra se correspondía con el nombre de algún clon.

Lo mismo pasa con las urls en el código.
 
Me suena que @Dr. LeChuck preguntó por los cursos de udemy. He visto esto hoy, no sé si la página es fiable, pero pone que hay bastantes cursos de matrícula gratuita.

Cursos de Udemy GRATIS [Marzo de 2017]

Gracias por el link, lo estaba mirando pero luego me he parado los pies porque estas cosas me provocan ansiedad. El tener algo entre manos, como el curso que estoy haciendo, además de otros dos cursos que descargué piratas esperando a la cola, y andar buscando más me acaba poniendo nervioso. He decidido centrarme en un curso cada vez, y cuando vaya terminando decidiré cual es el siguiente.

No obstante están bien este tipo de cosas. Seguid compartiéndolas cuando podáis. Yo haré lo mismo si encuentro cursos inicialmente de pago compartidos sin animo de lucro por ahí.
 
El caso es que aunque pongas lo de noparse yo sigo viendo lo de MENTION y /MENTION allá donde has puesto una arroba y la palabra se correspondía con el nombre de algún clon.

Lo mismo pasa con las urls en el código.

A mí me sale todo en texto plano, pero en tus mensajes sí que me salen las urls de las imágenes y las menciones. Ya no sé si es que tienes el foro configurado en formato WYSIWYG o qué puede pasar.
 
LeChuck creo que los cursos son sin fecha límite, te apuntas y ya lo tienes para siempre, para hacer cuando te plazca. Que supongo que lo habrás leído y te pone nervioso tenerlos ahí igualmente, pero por si acaso.
 
Tengo un problema muy grave que no me deja dormir y noto cómo los gains me abandonan a cada segundo que pasa. Lo comparto con vosotros con la esperanza de que me ayudéis.

Estoy implementando una API RESTful muy sencilla que básicamente sólo tiene que hacer dos operaciones, guardar y recuperar mensajes codificados en JSON de una BDD. Al recuperar mensajes una aplicación externa lo que hace básicamente es ir mandando pushes cada cierto tiempo con una serie de condiciones y si se cumplen se entiende que hay mensajes para ese solicitante y debemos proporcionárselos. El problema que me trae de cabeza es una de las condiciones: nos manda unas coordenadas, nosotros debemos compararlo con unas coordenadas y una distancia asociadas a cada mensaje en la BDD. Esas coordenadas y distancia indican un punto de origen y radio dentro del cuál es vigente el mensaje, si las coordenadas de nuestro solicitante están dentro de ese radio la condición se cumple y ese mensaje está activo para él. Me he encallado a la hora de operar con la consulta de SQL, estoy intentando apañarme con esto:

Geo Distance Search with MySQL | Latitude | My Sql

Pero de momento sigo sin sacar el agua en claro del tema. Cualquier ayuda será gratamente apreciada y si me ayudáis a resolverlo os prometo apoyo moral en el foro y agradecimiento en forma de huevo de pasca con lol en la app esa de los cojones.

@iskariote @PatoLaqueado @Armin Tamzarian @MIP @pastanaga @Leandro Gado @SPETNAZ @Rhodium @Ken Thompson @Lebrom halp pls
 
No tengo mysql instalado ahora, pero estaría bien conocer algún dato más por ejemplo que tienes en la en la DB, qué formato tienen los campos que almacenan Lat,Long y distancia en la DB, y que te vienen en el JSON, más que nada para poder crear una tabla similar y hacer las probaturas lanzando las select.
 
Me he acordado de que tenía el MySql instalado en un portatil, a mi esto me funciona :


Código:
CREATE TABLE `geodata` (
  `idGeoData` int(11) NOT NULL,
  `latitude` double DEFAULT NULL,
  `longitude` double DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `geodata`.`geodata` (`idGeoData`, `latitude`, `longitude`) VALUES (1, 122.4058,37.7907);
INSERT INTO `geodata`.`geodata` (`idGeoData`, `latitude`, `longitude`) VALUES (2, 110.4058,40.7907);
INSERT INTO `geodata`.`geodata` (`idGeoData`, `latitude`, `longitude`) VALUES (3, 120.4058,50.7907);
INSERT INTO `geodata`.`geodata` (`idGeoData`, `latitude`, `longitude`) VALUES (4, 130.4058,60.7907);

--- 
 
SELECT *,
      111.045* DEGREES(ACOS(COS(RADIANS(latpoint))
                 * COS(RADIANS(latitude))
                 * COS(RADIANS(longpoint) - RADIANS(longitude))
                 + SIN(RADIANS(latpoint))
                 * SIN(RADIANS(latitude)))) AS distance_in_km
 FROM geodata
 JOIN (
     SELECT  110.4058  AS latpoint,  40.7907 AS longpoint
   ) AS p ON 1=1
HAVING distance_in_km < 10
ORDER BY distance_in_km

En la JOIN va el punto por el que preguntas y en el having la distancia que toleras para los puntos en ese radio


La idea está sacada de aquí (más que nada por no andar trasteando con la sintaxys de mysql que hace 1000 que la toco) :

Fast SQL location finder (geolocation) using Haversines

Basicamente es la misma idea que el paper que has puesto tu pero más simple.
 
Yo también use la fórmula esa misma del semiseno pero en JavaScript para un portal inmobiliario y funciona bien.
 
Arriba Pie