[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF] Lenguajes de programación para escritorio



> Ok comencemos desde el principio, y pongamos algunas perlas que has
> dicho por acá, espero que lo leas completo y te des cuenta de varios
> errores en los conceptos que tienes:
>

Completo lo leí, y lo volveré a leer para responderte.

>
> Primero, puedes usar C/C++, Vala, Java, C#, Ada, el lenguaje que tu
> quieras para hacer una aplicación de escritorio, siempre y cuando estés
> claro con lo que vas a hacer. No es que un lenguaje sea de escritorio y
> otros no, esa clase de distinción solo existe en tu cabeza.
>

En ningún momento dije que solo sirvieran para escritorio. Esa clase
de distinción solo existe en tu cabeza.

>
> Si C/C++ entre otros lenguajes son compilados, pero si le pasas un
> debugger puedes obtener acceso a lo que está dentro de ese binario,
> normalmente se conoce esa practica como ingeniería inversa.
>

Bien. Recordemos bien esto. Osea que a cualquier software hecho en
C/C++ (e imagino que en otros lenguajes) se le podrá hacer ingeniería
inversa. Recordemos bien esta parte.

>
> Parcialmente correcto con eso que dices. Lo que normalmente hacen los
> programadores, es almacenar la información de la conexión a la base de
> datos en un archivo asegurado, bien sea cifrado o con hashes, a los
> fines de asegurar dichos datos del acceso no autorizado. Esa es una
> política de seguridad mínima para datos sensibles. Luego lo que hacen es
> que el programa tenga medios de acceder a esos datos usando de por medio
> una clave o cualquier otro medio seguro.
>

Si almacenamos la información en un "archivo asegurado", el software
en sí debe tener un método para poder "recuperar" o "traducir" dichos
datos.
Ahora recordemos el comentario anterior... la ingeniería inversa;
recuerdas? Podemos obtener el método que ocupa el software para
traducir la información, esto asumiendo tus mismas palabras.

>
> Primero aprende a caminar...luego empiezas a correr.
>

Nuevamente, no dije que lo quisiera aprender ahora mismo.

>
> Creo que ya te lo dije antes, puedes usar el lenguaje que quieras, para
> crear apps de escritorio, la cuestión que tengas las cosas claras, y por
> lo visto, claridad es lo menos que tienes sobre lenguaje de programación.
>

Claridad, tengo bastante. Solo que mi pensamiento es propio... digo,
aprendo solo, por lo que no manejo conceptos que te enseñan en
tutoriales o universidades (entre otros).

>
> Si, pero ten cuidado de usar "Linuxismos" en tu programa. Si quieres un
> programa multiplataforma debes usar librerías que te lo permitan, GTK y
> QT permiten eso, solo por nombrar las más conocidas.
>

No entiendo bien a que te refieres con "Linuxismos". Por ahora,
aprendí algo de Java y puedo crear aplicaciones de escritorio bastante
buenas.
Después de todo, la lógica en la programación es la misma en todos los
lenguajes, por lo que solo aprendiendo la sintaxis y algunas funciones
(clases en caso de Java) ya basta. Como llevo poco en Java (como 2
días solamente) ahora me falta aprender clases. En realidad, mas que
"aprender", sería "conocer".

>
> Aquí debo hacer un :facepalm:.
>
> Si tienes Linux, con compilador C/C++ incluido  con varias opciones por
> escoger, con mejor soporte para estándares, con IDEs como Anjuta,
> KDEvelop, Builder, Code:Blocks, Eclipse, Vim, Emacs (esos dos sirven
> como IDE si sabes hacerle el tuning necesario)...¿Para que te montas una
> VM con Visual Studio Community para aprender C++, cuando ese compilador
> no tiene buen soporte para C++11, C++14 y C++17, y teniendo incluso mas
> potencialidades de forma nativa en Linux?
>

No entiendo porque el :facepalm: si dije bastante varias veces que no
tengo idea de C o C++.
Lo del compilador lo entiendo (mas o menos), después de todo he tenido
que compilar varias veces para poder instalar programas que no estaban
en los repositorios. A lo que iba era que Visual Studio tiene soporte
"visual" para los "objetos" que se le pueden "insertar" en los
programas. Algo así como en Netbeans puedes crear un JFrame y el mismo
IDE te permite arrastrar y soltar los objetos dentro de la ventana de
tu programa... eso se puede en Visual Studio para C++ (creo), y el
equivalente en Linux sería...? A eso me refería.

Entonces, me monto la máquina virtual para poder usar las opciones de
Visual Studio y no tener que comenzar en C++ creando ventanas con
código. Es preferible crear las ventanas en Visual Studio (u otro IDE
que lo permita) y revisar el código para ver como se hace desde él.

Por cierto, no soy fan de este tipo de métodos. Prefiero todo desde código.

>
> ¿En serio? Es decir según lo que tú dices: Yo no puedo hacer un programa
> en lenguaje C para manejar directamente una base de datos de forma
> segura, porque no se puede.
>
> Pues te diré algo, si quieres hacer un programa seguro, primero cambia
> esa mentalidad, puesto que la seguridad de un programa va de parte del
> programador y de los medios que este cree para que dicho software sea
> SEGURO.
>

Ingeniería inversa...

Por cierto, el software que tenga los datos de conexión estará
instalado en los clientes. Y supongo (por lo que dijiste hace rato)
que se pueden obtener.

>
> De nivel avanzado nada, tu mismo mataste esa ilusión cuando preguntas:
> *¿Puedo diseñar interfaces con este lenguaje?*.
>

Ya comenté que diseñar interfaces es fácil, pero al fin y al cabo
funcionarían con HTML y CSS. Lo que pregunté (o me interesé) fue si
era posible implementar JavaScript para crear interfaces en lenguajes
como C, C++, C#, Java u otro lenguaje.

> Cualquier programador avanzado en JS sabría la respuesta y es SI. Pero
> eso tiene un matiz. Cinnamon y GNOME3 hacen precisamente eso, lo usan
> para crear y modificar sus GUI, pero en el fondo GTK es el que hace le
> verdadero trabajo, es más, JS por si solo vale nada, ya que necesitas un
> motor de JS, y si no me equivoco, creo que SpiderMonkey es lo que usan
> en GNOME para hacer posible el funcionamiento de toda la capa JS que
> tienen, y adivina, SpiderMonkey está escrito en C.
>

Okey. Supongo que no necesito saber algo como eso para ser avanzado en
algún lenguaje, ya que soy avanzado en JavaScript, no en el lenguaje
que esta escrito GNOME3 o Cinnamon.

>
> Esta es otra muestra de los errores de concepto que tienes. Si puedes
> crear una apps usando el lenguaje que quieras para leer una base de
> datos y que sea segura la conexión. Porque primero, Para algo existe el
> cifrado de conexiones ¿No crees? (Hablando de tus conexions
> cliente-servidor),

Si el cliente envía los datos de conexión, estos no irán cifrados por
lo que se podrán obtener.
En el caso de que vallan cifrados, el cliente lo habrá hecho (cifrar)
por lo que se podría obtener el método que utilizó para cifrar y
obtener los datos... ojo, esto asumiendo lo que dijeron varias veces.

> y segundo; siempre y cuando crees una interfaz de
> conexión en tu programa hacia la base de datos que tenga la seguridad en
> mente, podrás decir que es segura.
>

No entiendo. De todas formas, la forma más segura es simplemente no
hacer la conexión a la base de datos.
El método que utilizaré será mediante sockets, de esta forma el
cliente no se conecta a la base de datos, sino el servidor en
respuesta al socket que envía este cliente.

> Ahora sobre tu ultima respuesta a mi persona:
>
>> Sí? Donde dice eso que no leo? No fuí el único que entendió lo que yo.
>
> Pues la verdad alguien te lo dijo, parece que no le prestas mucha
> atención a los mensajes y las sugerencias de varios por acá, porque
> Ángel Claudio Álvarez te lo comento, como dice la cita de abajo:
>
>> Me parece que no tenes mucha experiencia en programacion
>> Cualquier desarrollador ya hubiera cifrado el archivo con los datos para conectar a la
>> DB. Es algo basico
>
> Más claro no puede ser.
>

Cifrar un archivo y dejarlo en el cliente no suena muy seguro. Por muy
cifrado que este.

>>
>> http://prntscr.com/a328ki
>>
>
> Y como siempre @Camaleon y sus perlas de sabiduría, que yo más bien
> llamaría en este momento: Metida de pata épica.
>

Tu dijiste lo mismo que él, parece que no le prestas mucha atención a
los mensajes y las sugerencias que me han intentado hacer varios acá.


Reply to: