Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#5751
Cita de: hackmastter en 29 Enero 2015, 17:12 PMY otra cosita que olvide. Una vez utilizé Visual Basic y noté que era demasiado secillo crear la parte visual, es decir, la cajas de texto, los botones, las entanas emergentes y esas cosas (el código lo auto generaba el mismo Visual Basic en segundo plano). Para lo que nesecitaba código era para especificar las interacciones entre las ventanas, cajas y botones.

Acabas de descubrir la diferencia entre una IDE con soporte RAD (VisualStudio), y un lenguaje que ofrece una IDE sin practicamente ninguna utilidad valiosa para el programador más allá de sus funcionalidades más primarias (Python-IDLE).

Recuerda que Python es un lenguaje de Scripting cuyo paquete de instalación lleva una IDE gratuita y orientada a principiantes (nada que ver con las IDES profesionales de terceros para Python), ¡no lo confundas con un buen patrón de programación a seguir o algo parecido por ser la herramienta que va incluida en el paquete o por parecerse al notepa o por lo que sea!,
mientras que VB.Net es un lenguaje compilado y se puede adquirir una IDE de pago que proporciona las herramientas más profesionales para manejar dicho lenguaje (VS).




Cita de: hackmastter en 29 Enero 2015, 17:12 PMEncambio con Python, (la verdad no se) pero noté que nesecitabas conocer el código para cualquier cosa que quisiera hacer, como las cajas y botones, y sus funciones entre ellas. ¿Será a esto a lo que se refieren cuando dicen: Bueno, no se si es esto, pero creo que me gustaría mas así.

¿Eso lo consideras un beneficio al respecto?, no te das cuenta de lo improductivo que resulta escribirlo todo todito a mano, jeje, pero bueno, si tú crees que eso va a ser más cómodo para ti o crees que te vas a sentir más profesional por "escribir la UI a mano", o lo que sea... pues bueno, allá cada uno con sus gustos :P.

Pero déjame explicarte que VisualStudio solo "genera" un control dándole un estilo visual por defecto (algún estilo debe tener el control por defecto, no puede estar en blanco, vaya), quiero decir, que no te hace el trabajo, obviamente puedes modificar tanto los elementos visuales del control, como las propiedades de cada control de la misma manera que lo haces usando Python-GTK/etc en un editor, escribiendo el código a mano, al igual que puedes añadir los controles en la UI "escribiendo código" (y no usando el designer), e incluso puedes ir mucho más lejos y crear tus propios controles de forma bastante sencilla (o compleja variando las necesidades), y dinamicamente.




Cita de: hackmastter en 29 Enero 2015, 17:12 PMYa que no me gusta mcho la idea de depender de un programa para hecer las cosas. (Es como DreamWaver y el Bloc de Notas de windown. El DreamWaver podria hacerlo todo y tu no aprenderás nada, mientras que el Bloc de Notas no hará nada pero tu podrías hacerte llamar Diseñador Web  ;) )

Por usar un GUI builder para añadir un control en la UI arrastrando el ratón no vas a estar aprendiendo más, ni menos, ni tampoco te va a hacer peor programador ni mucho menos mejor, ni te estará haciendo el trabajo sucio si es lo que piensas. Todo eso son conceptos erroneos, en mi opinión.

De hecho, es una característica que va ligada a los estándares de la programación de hoy en día, cualquier IDE que tenga integrado un GUI builder, no solo se ve en VB.Net, sino en IDES de Java, C++, C#, Delphi, etc, y Python, porsupuestisimamente:

Is there an GUI Designer for python?

¿Y por que se usan esas herramientas en lugar de un editor de texto?, La razón principal es obvia, fue un avance informático muy importante en lo relacionado con el desarrollo de aplicaciones, y deberías aprovecharlo.

Aquí puedes leer un poco sobre el tema del que estoy hablando, algunas características muy importantes que se suelen ver en una IDE:

Rapid application development
Graphical user interface builder
Intelligent code completion
Debugger




Cita de: hackmastter en 29 Enero 2015, 17:12 PMEl DreamWaver podria hacerlo todo y tu no aprenderás nada, mientras que el Bloc de Notas no hará nada pero tu podrías hacerte llamar Diseñador Web  ;) ) Por eso yo eliminé de mi PC a DreamWaver y descargue el NotePad...  ;D

Seguimos con el ejemplo entre una IDE wysiwyg orientada a la programación Web y una IDE orientada al desarrollo de aplicaciones de escritorio, ¡Es algo totalmente distinto!.

Hay gente capaz de escribir una página html con el notepad, si, por supuesto, es algo relativamente fáicl, y bueno, el scripting se basa más o menos en eso, en escribir y escribir instrucciones en un editor, omitiendo otros detalles innecesarios como la elaboración de una GUI, no por eso está mal usar un GUI builder cuando necesitar desarrollar una GUI en un lenguaje de Scripting, para eso existen.

Dices que usas notepad en lugar de DreamWeaver porque así te puedes hacer llamar "diseñador de webs" al no usar una IDE, es decir, ¿que te sientes mejor programador al usar una herramienta primitiva, al imponerte límites inecesarios por negarte a usar los beneficios de las herramientas modernas?, ¿que sentido le ves a eso?.

EDITO: No se mucho sobre programación web, pero uno de mis hermanos lleva décadas diseñando Webs y he adquirido muchas experiencias de él, tienes razón en que quien suele aprender a usar Dreamweaver luego no sabe hacer nada por si solito a mano por ejemplo ni sabe cómo corregir bugs ni nah, pero es que esto es muy distinto, esto no es Html,
el buen programador (de webs, y de lo que sea) es aquél que mejor sabe aprovechar los recursos de su entorno (entre otras cosas, como conocer sus capacidades, intentar desarrollar un algoritmo de la forma más eficiente, ser humilde, blah blah blah... ese no es el tema ahora), una IDE aumenta tu rendimiento/productivas en un 200%, mientras que el notepad solo te ralentiza en cada tarea ...por no decir que ni siquiera puedes debuggear una app, ya me dirás que cualidades ganarás como desarrollador de software usando un editor de texto para programar, en lugar de una IDE capacitada, aunque sea un simple script de Python.

Estás muy equivocado con ese manera de pensar.




CitarPero yo me inclino a Python, porque se que cuando llegue a las cosas avanzadas Python será mejor opción (bueno, lo sé por lo que leo en internet  :P)...

Generalizando con las espectativas y las necesidades de un programador "estándar", no va a haber practicamente NADA que puedas desarrollar en Python pero no puedas hacerlo en VB.Net, y viceversa




Sobre la elección entre Python o VB.Net:

Al final todo depende de gustos y necesidades, quiero dejar claro que todo lo que he comentado hasta ahora y lo que voy a comentar solo es mi opinión personal, pero yo y mis gustos coincidimos en que Python es improductivo empezando por su estricta sintaxis, y dejándome por el camino cientos de razones más (que ya he comentado en muchas ocasiones en otros posts).

Entre dos lenguajes tan capacitados en funcionalidades como Python y VB.Net, la mejor opción es aquella con la que más a gusto estés y la que mejor se adapte a tu forma de trabajar en lo referente a la programación, no solo cuenta el lenguaje o sus capacidades/limitaciones, sino también la herramienta (IDE) que vayas a utilizar (si, hazte a la idea que no vas a usar por siempre el notepad si tienes pensado programar de forma seria en el lenguaje que sea, acabarás usando una IDE con características profesionales, de esas que tanto te has quejado en los comentarios), asi que simplemente evalua bien las distintas características que te ofrece cada lenguaje.

PD: Yo aprendí de forma básica Python (sin profundizar excesivamente en sus Internals), para evaluarlo como lenguaje, y luego pasé por la misma elección, ¿Python o VB.Net?, bueno, creo que te podrás dar cuenta de cual fue mi decisión si te fijas en la imagen de mi avatar xD.

Saludos!
#5752
Scripting / Re: Batalla naval Python!!!
29 Enero 2015, 17:10 PM
Cita de: Joe Fraddy en 29 Enero 2015, 16:36 PMen la linea 31 tengo un error y no se que esta mal

¿Y cual es el mensaje de error?, no somos adivinos.




Cita de: Joe Fraddy en 29 Enero 2015, 16:36 PMelif  tablero[adivina_fila][adivina_columna] == "X":
tablero es una lista bacía

Creo que tú mismo lo has resuelto sin darte cuenta: Estás intentando acceder a un elemento inexistente, por que la lista está vacía, así pues dará un error de índice fuera de rango.

Solo debes inicializar la lista antes de intentar usarla en la condicional que has mostrado.

Ejemplo funcional:
Código (python) [Seleccionar]
matrix = [
          ["A0","B0"],
          ["A1","B1"]
        ]

if matrix[1][1] == 'A1':
   pass; # Do Nothing.

elif matrix[1][1] == 'B1':
   print "Felicitaciones, Hundiste mi barco!"


Si tienes otro tipo de error, especifíca el mensaje de error.

Saludos!
#5753
¿Te has dado cuenta que en el html que has mostrado NO has encerrado el style de CSS con comillas dobles?, no se si ha sido un error de edición por tu parte al publicar el código, o si ese es el mismo html original de la página, entonces esa podría ser la causa del problema, ya que con este error de sintaxis yo tampoco consigo reconocer correctamente el elemento:
Citar...255);>halo...

Ejemplo funcional:

Código (vbnet) [Seleccionar]
   Private Sub HtmlTest()

       Dim htmlText As String =
<a><![CDATA[
   <body id="B"
         style="padding: 0px;
                margin: 2px;
                color: rgb(0, 0, 0);
                font-family: Verdana, Arial, Helvetica, sans-serif;
                font-size: 15px;
                background: rgb(255, 255, 255);">

       This is a test inner text

   </body>
]]></a>.Value

       Dim htmlElement As HtmlElement

       Dim wb As New WebBrowser With
           {
               .Dock = DockStyle.Fill,
               .DocumentText = String.Empty
           }

       Me.Controls.Add(wb)

       wb.Document.Write(htmlText)
       htmlElement = wb.Document.GetElementById("B")

       Select Case htmlElement Is Nothing

           Case False
               htmlElement.InnerText = "halooooo???"
               Debug.WriteLine(htmlElement.OuterHtml)

           Case Else
               Throw New NullReferenceException("Element not found")

       End Select

   End Sub


Saludos
#5754
Cita de: Esxdlr en 29 Enero 2015, 01:13 AM
Aun cuentas con el proyecto?

Cita de: Perfil de usuarioÚltima vez activo:    20 Septiembre 2011, 09:34

Está prohibido revivir temas antiguos, porfavor leer las normas del foro.

PD: La manipulación de texto es un tema sencillo, utiliza el foro para formular dudas específicas.

Tema cerrado.
#5755
Scripting / Re: Batalla naval Python!!!
28 Enero 2015, 21:24 PM
Algo relacionado con problemas de codificación y su solución ya se te explicó aquí:
Problema en python [alguno me ayuda??

vuelve a leer atentamente :P

Pero en esta ocasión el error parece tener que ver con la codificación de la shell (no como en la otra pregunta), prueba así

Código (python) [Seleccionar]
# encoding=utf8  
import sys  

reload(sys)  
sys.setdefaultencoding('utf8')


saludos
#5756
Deberías usar la versión 3.X, a pesar de que son betas, se actualizan frecuentemente y dan Cero problemas teniendo más funcionalidades que la versión 2.X, obviamente.

El registro de Sublime Text es opcional, todas sus características son funcionales en la modalidad gratuita, con el inconveniente de mostrar el molesto aviso de licencia.

Los cracks de Sublime Text que verás por ahí consisten en un archivo de texto plano que contiene la licencia que introducir en la interfaz del programa (no hay keygens, archivos ejecutables), vamos, que no hay riesgo alguno de infectarte por leer un archivo de texto.
...te lo comento solo como dato adicional, ya que en el foro está prohibido el pedido de cracks.

Saludos.
#5757
Scripting / Re: Batalla naval Python!!!
28 Enero 2015, 20:59 PM
Citarpero creo que tengo problemas con el módulo, eso es lo que me dice el interprete:

CitarTraceback (most recent call last):
 File "python", line 31, in <module>
NameError: name 'board' is not defined

El error se está explicando por si mismo. No existe ningún miembro deifnido en el código con el nombre 'board', quizás quisiste decir 'tablero', que es como se llama tu lista:

Cita de: Joe Fraddy en 28 Enero 2015, 20:40 PM
Código (python,3) [Seleccionar]
import random

tablero = []

...

Saludos.
#5758
Programación General / Re: jbuilder
28 Enero 2015, 20:06 PM
Cita de: REGLAS DEL FOROI.A.1.b. Temas prohibidos.
   Para mantener un control sobre el contenido del foro, así como de su uso y legalidad, ciertos temas deben ser controlados, temas con este contenido podrían ser borrados o cerrados.
   Estos temas no pueden ser discutidos en el foro en absoluto, y la acción de hablar de ellos continuamente podría conllevar a una de las sanciones especificadas en la sección III.C, dichos temas son:

   ...
   Solicitar Cracks y/o Serials
   ...

Tema cerrado.
#5759
Cita de: Gus Garsaky en 28 Enero 2015, 14:54 PMSobre programación en concreto, te recomiendo:

  • Seguir las buenas prácticas de programación.
  • Hacer un código limpio y fácil de mantener (Aquí tienes un excelente libro).
  • Buscar siempre la manera más eficiente de realizar un proceso.
  • Escribir algoritmos eficientes y eficaces (léase la diferencia de ambos términos).
  • Usar siempre los estándars (salvo excepciones)
Creí que nadie iba a tener en cuenta esos detalles tan importantes, los buenos hábitos de programación, coding conventions, naming conventions, etc, en fin, conocer los internals del lenguaje que vayas a usar practicando el lenguaje, antes de utilizarlo de forma sería.

+1






Cita de: Nicolão en 28 Enero 2015, 16:52 PM3. Relativo al punto 2. Mucha gente se cree mejor programador porque su código tiene menos líneas, está bonito y tenga muchos comentarios explicativos. Error, un programador es programador desde que le surge el problema o necesidad hasta que termina la "vida útil" de su tarea. Es decir, cuando te mande el jefe una tarea, no vas a ponerte a picar código (eso cuando son tareas súper sencillas), coges y en un papel estructuras todo. Ojo, no digo que picar código desde el principio esté mal, al contrario está bien, pero si analizas el problema y lo piensas antes de hacer el código ahorraras tiempo ya que no surgirán errores inesperados de estructura.

Debo discrepar, no estoy deacuerdo con ese consejo (no me parece un buen consejo),

Cuanto más simplificado pueda quedar tú código (es decir, cuantas menos lineas/instrucciones tenga), significará que puedes considerarte mejor programador que antes por haber sabido hacer las cosas de una manera más reducida pero obteniendo el mismo resultado, aunque hay excepciones, ya que simplificar no siempre significa reducir código o utilizar un método en lugar de utilizar 2.

Respecto a los comentarios explicativos, en muchos trabajos practicamente te OBLIGAN a documentar tú código, forma parte de tu tarea, ¿por qué?, puede ser por varias razones, pero una común es porque luego "X" compañero tendrá que revisar el código para seguir con tu trabajo por donde lo dejaste, entonces, si no documentas, solo haces perder tiempo a él y la empresa.

Como programador, como buen programador, debes documentar tú código y "dejarlo bonito", indentando, simplificado, etc, pero sobretodo documentarlo, nunca se puede documentar de manera excesiva, cuantos más comentarios MEJOR, ya sea para los demás o aunque solo sea para tu propia lectura personal, por ejemplo para aumentar tu rendimiento en el futuro ya que si cojes un código de hace 5 años donde no has documentado NADA entonces te costará mucho recordar para que servía cada cosa y actualizarlo, etc.

En mi opinión comentar/documentar SÍ te convierte en mejor programador, porque siendo honestos adquirirás una cualidad MUY útil de la que muchos otros programadores carecen, y un código documentado se puede evaluar mejor, y se valora más (en ciertos aspectos se considera más profesional).

En resumen, la "belleza" del código fuente es muy, muy importante.

La documentación hay que tenerla aun mucho más en cuenta si hablamos de un proyecto OpenSource para que no se convierta en un código spaghetti: http://en.wikipedia.org/wiki/Spaghetti_code

PD: Obviamente todos tienen su estilo de programación, algunas personas se toman la práctica de la documentación como algo natural sin esfuerzo alguno, otros documentan por obligación, y otros simplemente pasan olímpicamente de añadir comentarios, tu decides,
yo sigo viendo compañias que venden sus librerías/código fuente sin ningún tipo de documentación para el end-user, ni documentación interna ni externa (.chm, .pdf, etc), me parece tan poco profesional y tan mala decisión...

Saludos!
#5760
El error te indica que te indica que el nombre no puede contener caracteres ilegales, pues le estás pasando el nombre de la ruta absoluta, no le estás pasando el nombre del archivo, pero además de eso, te daría otro error consequente, ya que no puedes renombrar un archivo usando el mismo nombre indistintamente de si son mayúsculas o minúsculas, debes mover el archivo.

Puedes utilizar el método MoveFile, o renombrar 2 veces el archivo (que sería lo mismo a moverlo dos veces).

Mover:
Código (vb) [Seleccionar]
Option Explicit

Dim oFSO, oDir, oFile, _
   filePath, dirName, fileName, fileExt, _
   newFileName, newFileExt

Set oFSO    = CreateObject("scripting.filesystemobject")
Set oDir    = oFSO.getfolder("D:\Pelis\")

For Each oFile In oDir.Files

    filePath    = oFSO.GetAbsolutePathName(oFile)
    dirName     = oFSO.GetParentFolderName(oFile)
    fileName    = oFSO.GetBaseName(oFile)
    fileExt     = oFSO.GetExtensionName(oFile)
   
    newFileName = UCase(fileName)
    newFileExt  = LCase(fileExt)

    If (fileName & "." & fileExt) <> (newFileName & "." & newFileExt) Then
        Call oFSO.MoveFile(filePath, dirName & "\" & newFileName & "." & newFileExt)
    End If
       
Next


Renombrar:
Código (vb) [Seleccionar]
Option Explicit

Dim oFSO, oDir, oFile, _
   filePath, dirName, fileName, fileExt, _
   newFileName, newFileExt, newFilePath

Set oFSO    = CreateObject("scripting.filesystemobject")
Set oDir    = oFSO.getfolder("D:\Pelis\")

For Each oFile In oDir.Files

   filePath    = oFSO.GetAbsolutePathName(oFile)
   dirName     = oFSO.GetParentFolderName(oFile)
   fileName    = oFSO.GetBaseName(oFile)
   fileExt     = oFSO.GetExtensionName(oFile)
   
   newFileName = UCase(fileName)
   newFileExt  = UCase(fileExt)
   newFilePath = dirName & "\" & newFileName & "." & newFileExt

   If fileName <> newFileName Then
       
       If Not oFSO.FileExists(newFilePath & ".tmp") Then
           oFile.Name = fileName    & "." & fileExt & ".tmp"
           oFile.Name = newFileName & "." & newFileExt

       Else
           Call MsgBox("File already exist: " & _
                   vbNewLine & _
                   "'" & newFilePath & ".tmp" & "'", _
                   16, "File Renamer")
       
       End If

   End If
       
Next


Saludos