Pues me surgió esta duda, digamos que quiero pedir un dato entero, y necesito que sea entero entonces hago lo siguiente:
Código
int number
cin>> number;
para comprobar si es un entero puedo hacerlo con:
Código
if(cin.fail())
y lo puedo detectar sin problemas si lo que se ha ingresado no es un entero, el problema viene cuando por ejemplo en un menu con un loop while hago dicha comprobación (pongo un code de ejemplo que no necesariamente es de un menu, mi idea esta basada en ejemplos para exponer el problema general):
Código
while(/*condicion*/){
cin>> number;
if(cin.fail()){/*ERROR*/}
}
Pero allí está el problema, no importa que ciclo use (for, do-while, while, nisiquiera un asqueroso loop formado con un goto) Si la entrada no es la esperada el programa entrará a un loop infinito donde se presenta lo contenido en el condicional if.
Este problema de loop infinito es muy común cuando se ingresan datos aun programa que no son los que el programa esperaba. Me preguntaba si existía una forma para evitar entrar en estos molestos loops.
Y no necesarimente se presenta cuando la lectura y/o validación de datos está dentro de un loop.
Hola que tal a todos! Bueno, he usado curses por algún tiempo. Pero es un poco desagradable (imagino que por falta de conocimiento mio) tener que redibujar boxes cada que pido información del usuario esto arregla el problema en los bordes de un box, (al oprimir retorno de carro) pero al tener subwins y dar a retorno de carro los bordes de esa subwin se cortan, me explico mejor con un ejemplo:
Antes de pedir información:
Despues de pedir Información (despues de oprimir 'Enter'):
Si es cierto que no llega a dañar la funcionalidad pero es realmente molesto que después de una interacción más o menos larga con el usuario los pordes queden hechos trizas! he intentado con wrefresh() que igual toca usarlo para mostrar la información pero nada.
Hola a todos. Bueno antes de entrar en materia, haré una breve explicación de el proposito de este post. Como bien sabemos, y como ya se ha comentado anteriormente en encuestas es bien sabido que en el foro la actividad de Ruby es casi nula si es que jamás he visto algo sobre Ruby. Tal vez mi intención no sea que esto se llene de hilos sobre Ruby o cosas por el estilo, mi proposito es presentarles un lenguaje de muy alto nivel, con un dialecto casi natural, que entre otras cosas es un buen ticket al mundo de la programación y que por sobretodo es muy divertido. Ahora tampoco quiero entrar en polémicas entre Ruby, Perl y Python porque he de reconocer que los tres son excelentes lenguajes interpretados y cumplen al realizar la función y seguir los objetivos con los cuales fueron creados. Así que encarecidamente les pido evitar los comentarios comparativos, poco objetivos, difamatorios que se puedan presentar.
¿Qué es Ruby?
Como no quiero confundirlos ni despues crear una sección de mis erratas será mejor que coloque aquí algunas citas de lo que se conoce como Ruby:
Cita de: Wikipedia
Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre.
Cita de: Ruby-lang.org
Ruby es un lenguaje con un balance cuidado. Su creador, Yukihiro “matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la programación imperativa.
A menudo ha manifestado que está “tratando de hacer que Ruby sea natural, no simple”, de una forma que se asemeje a la vida real. Continuando sobre esto, agrega: "Ruby es simple en apariencia, pero complejo por dentro, como el cuerpo humano." Yukihiro "matz" Matsumoto
Historia
La siguiente es una escueta traducción de la historia de Ruby comentada por Takanashi-san en la RybyConf:
Era Prehistórica
Comenzó a crearse en Febrero de 1993
Matz y Keiju-san propusieron primero los nombres
De hecho la filosofía de Ruby establece que el nombre de las cosasimporta:
Citar
Matz: Creo que "Ruby es un nombre genial! Keiju: También me gusta "coral" Matz: Ooops!!
Era Antigua
Ruby sale al público el 21 de Diciembre de 1995 (ruby 0.95)
es creada la lista de correo "ruby-list" EL primer mensage: "ruby-0.95 test failed" después de eso tres releases de Ruby fueron sacadas en menos de dos días
No existia repositorio CVS en el momento, pero 1999 fue creado
25 de Diciembre de 1996: Ruby 1.0 es liberado
1 Julio de 1997 Netlab contrata a Matz como desarrollador en timepo completo de Ruby
22 de Sepriembre de 1997 Es publicado en la web el primer artículo sobre Ruby
15 de Mayo de 1997: Aparece RAA (Ruby Application Archive (es como el RubyForge o el gems de hoy en día))
Aparece la página oficial de Ruby en inglés
Era Media
Ruby se esparce por Japón, la comunidad crece a través de los programadores y desarrolladores japoneses, y aquellos que no entienden Inglés ahora tienen una herramienta que pueden adoptar y les permite establecer sus propias opiniones
27 de Octubre de 199: Aparece el primer libro de Ruby escrito por Matz y Keiju
2001 - 2002 aparecen al menos 20 libros más sobre Ruby
Comenzaron conferencias sobre Ruby y Perl
Conferencias Lightweight Languages (LL), donde estubieron presentes PHP, Perl, Ruby y Python seguido del LL Weekend y el LL Day and Night y por último el LL Ring (una conferencia que se dio sobre un Ring de Box real) :
Poster del LL Ring:
Era Moderna
Ruby se espace fuera de Japón
16 de Febrero de 2002 la lista de correo "ruby-talk" sobrepasa a "ruby-list" convirtiendose en la lista de correo más importante acerca de Ruby
Aparece la version 1.8 de Ruby que se mantiene por más de 6 años
Aparece la versión 1.9 de Ruby
Aparecen los libros más completos de Ruby: "Programming Ruby" (que por supuesto los podrán encontrar más abajo )
Aparece Rails el framework de Ruby para aplicaciones en la Web
Se inicia el desarrollo de Ruby 2.0 presumiblemente para estar listo en las vispera decembrina de 2011
Los objetivos de Matz y porque fue creado Ruby
Bueno es hora de que yo escriba un poco jeje! Ruby principalmente nace por diversión, y por las ganas de Matz de tener un lenguaje que tuviera las prestaciones que no pudieron ofrecer lenguajes como Phyton y Perl en esa época. otra gran motivación el hecho de tener un lenguaje que pueda cambiar el mundo, así es como lo expresa Matz el ideal de Ruby es poder cambiar el mundo para bien un día de estos (podrá sonar muy idílico, pero se darán cuenta que la comunidad Ruby y el lenguaje de por si es muy relajado suelto y sumamente divertido). Citas importantes de Matz para definir la filosofía y objetivos de Ruby:
Citar
A menudo la gente, especialmente los ingenieros en computación, se centran en las máquinas. Ellos piensan, "Haciendo esto, la máquina funcionará más rápido. Haciendo esto, la máquina funcionará de manera más eficiente. Haciendo esto..." Están centrados en las máquinas, pero en realidad necesitamos centrarnos en las personas, en cómo hacen programas o cómo manejan las aplicaciones en los ordenadores. Nosotros somos los jefes. Ellos son los esclavos.
Citar
Todo el mundo tiene un pasado personal. Alguien puede venir de Python, otro de Perl, y ellos pueden verse sorprendidos por distintos aspectos del lenguaje. Entonces ellos podrían decir 'Estoy sorprendido por esta característica del lenguaje, asi que Ruby viola el principio de la menor sorpresa.' Esperad, esperad. El principio de la menor sorpresa no es solo para ti. El principio de la menor sorpresa significa el principio de 'mi' menor sorpresa. Y significa el principio de la menor sorpresa después de que aprendes bien Ruby. Por ejemplo, yo fui un programador de C++ antes de empezar a diseñar Ruby. Yo programé solamente en C++ durante dos o tres años. Y después de dos años de programar en C++, todavía me sorprendía.
Charlas y Conferencias sobre Ruby
Charla Sobre Ruby 1.9 By Matz
Charla Sobre Ruby 2.0 y el futuro de Ruby
Charla Sobre La Construcción de un mejor interprete para Ruby
PD: Esta charla para los entendidos fue hecha antes de la aparición de YARV
Charla Sobre La Filosofía y los ideales de Ruby
Libros Sobre Ruby (TODO EN INGLÉS)
Learn To Program - Chris Pyne
Descarga: http://www.mediafire.com/?241g6g2w2t8ym82 PD: Si están empezando en Ruby (o en programación) este es el mejor libro que pueden descargar de la colección, después que hayan terminado este libro, entenderan mucho mejor los demás
PD: Todas las subidas fueron hechas por mi, es por eso que si quieres esparsir los links por la red bien puedes hacerlo, si quires decir que tu los subsite, no me importa, anda, dilo! lo que me importa es que los pongas en un lugar donde le sean útles a alguien así que haz con ellos lo que mejor te convenga!
Ruby: Casos Exitosos
Simulaciones:
*- El centro de investigacion Langley de la NASA usa Ruby para producir sus simulaciones *- Un grupo de investigación de Motorola para la creación de un simulador en el procesamiento de datos
Modelado 3D
*- Google Sketchup usa Ruby para la implementación de su API
Robótica
*- En MORPHA Ruby fue usado para implementar el control reactivo del "Siemens service Robot"
Networking
*- Open Domain Server usa Ruby para permitir el uso de clientes dinamicos DNS para la actualización en tiempo real de configuraciones IP ...Y muchos otros casos que puedes examinar aquí: http://www.ruby-lang.org/en/documentation/success-stories/
GUIA: Instalando Ruby en GNU/Linux
Vamos a ver las diferentes posibilidades que tenemos a la hora de instalar Ruby en diferentes distribuciones GNU/Linux, a tener en cuenta que instalaremos Ruby 1.8 ya más abajo les indicaré como instalar la versión 1.9.2 que es la actual:
Ruby en Debian y derivados Para instalar Ruby en debian o en sus derivados basta con el siguiente comando desde una shell:
Código
sudoapt-get install ruby-full
Ruby en RedHat Fedora y sus derivados Desde una Shell:
Código
su -
Código
yum install ruby
Ruby en Arch y derivados Desde una Shell:
Código
pcman -S ruby
Ruby en Gentoo y derivados Desde una Shell:
Código
emerge ruby
Compilando Ruby Lo primero que haremos para compilar Ruby será descargar los Sources desde la página oficial de Ruby, a continuación la encuentran: http://www.ruby-lang.org/es/downloads/ y descargan los sources de la versión que más les convenga, para todas el proceso es similar. Una vez lo tengan y estén ubicados sobre el archivo descargado en una terminal hacemos:
Código
tar xvzf ruby-x.x.x-xxxxx.tar.gz
Don de las 'x' corresponden a la versión que hayan descargado. Luego que se descomprima navegamos a la carpeta que ha resultado, y allí simplemente seguimos los pasos de toda la vida:
Código
./configure --prefix=/usr
Código
make
Código
makeinstall
Para comprobar si está instalado podemos preguntar por la versión de Ruby con:
Código
ruby -v
y con eso ya tendremos instalado ruby y lo habremos compilado! ahora solo resta probar nuestra nueva instalación y conocimientos sobre Ruby.
Para eso vamos ha hacer un pequeño script que simplemente nos saludará
Código
puts'Hola! escribe tu nombre porfavor: '
nombre = gets.chomp.to_s
puts"Ahh un placer conocerte "+ nombre +"me alegro que te hayas animado a conocer ruby =)"
ahora solo queda copiar el script y pegarlo en una hoja de texto plano, guardarla con extension: .rb y desde un terminal lo podemos ejecutar con:
Código
ruby script.rb
Y ya está! Eso es todo espero se animen a aprender el magnifico lenguaje que es Ruby! porque almenos para mi es extremadamente divertido!!
Hola que tal a todos! Pues estoy programando en Ruby Sobre NetBeans, Cuando quiero ejecutar mis códigos en modo consola, como sabrán NetBeans tiene una consola incrustada, y el color del texto es blanco, el problema es que el fondo es blanco también, y no veo absolutamente nada. No veo por donde puedo configurar los parametros de los colores de la consola.
Alguien tiene idea de en que apartado logro eso?
Gracias
Saludos.
Bueno igual ya no importa deje de usar NetBeans.... no me aconstumbro a los IDEs seguiré con gedit y la consola. Si algún MOD ve esto pues bien puede borrar el tema para que no haga bulto
Esta es la primera vez que me ven por acá, y al parecer me seguiran viendo por un tiempo XD
Les comento. Este sábado comenzaré un curso de Certificación de Oracle en Java. Y la verdad es que no se nada de Java (el curso empieza desde lo más básico). Como verán tengo experiencia en C/C++ Ruby y algo de Python. Lo poco que se es la historia de Java y su gran orientación a objetos.... Pero igual queria resolver grandes incognitas:
Cual será el IDE más adecuado para desarrollar en Java (yo se con el que me sienta más cómodo...blah blah, si fuera por eso usaria siempre gedit...) El caso es que el factor 'Productividad' esta por medio, así que de seguro se es más productivo con un IDE con buenas funcionalidades. entonces cual es maś conveniente ¿Eclipse, NetBeans, otro?.
Ahora en C/C++ por ejemplo existen estandares de como programar para mantener siempre un codigo legible elocuente y por sobretodo compatible. Sé que gracias a la máquina virtual de JAva la portabilidad no es problema. pero además ¿Existe algún standard de programación en Java? o ¿Cuales son las mejores prácticas y habitos para mantener un código limpio?
Y por último, un poco metido (porque facilmente podria googlearlo) Podrían explicarme las diferencias entre los diferentes J***
Espero puedan ayudarme, necesito hacer una presentación, y necesito usar imágenes de este tipo:
Se que algo tiene que ver con "fotolia" pero la verdad es que no he podido encontrar nada específico acerca de esto, Ustedes saben donde puedo encontrar una gran colección de estos, o cual es su nombre específico.
PD: No son lumaxart estos son diferentes, ¿O me equivoco?
Hola! Bueno me habia decidido a probar kde 4.6 para realizar algunas pruebas, y así lo hice, el problema fue la cantidad de espacio que ocupa con todos sus correspondientes paquetes que es bastante, en momentos en que cada MB que tenga libre necesito aprovecharlos. Al momento de la instalación configuré kdm como gestor de sesiones. Decidí desinstalar kde y todos sus paquetes con el siguiente comando: http://www.psychocats.net/ubuntu/puregnome.php El primero en dicha página que se encarga de remover todos los paquetes que kde instala, al final del comando también está:
Código
apt-get install ubuntu-desktop
para no terminar con nada roto, después también he hecho:
Código
dpkg-reconfigure gdm
para dejar a gdm como gestor de sesiones.
Al momento de reiniciar me he llevado una gran sorpresa cinado veo que no entra ni a modo gráfico ni a consola, entonces he reiniciado para entrar al modo de recuperación donde al menos puedo entrar a modo consola, allí he actualizado el sistema, he reconfigurado gdm, he intentado iniciar x Sin éxtito, y he intentado iniciar gdm también sin éxito.
A estas alturas no se que pueda estar pasando. Me gustaria escuchar sus sugerencias.
Bueno tengo el siguiente problema, he agregado unas variables de entorno al archivo .bashrc, pero no he logrado recargar la información del fichero, lo que genera error en un script que comprueba la existencia de dichas variables. Lo curioso es que he podido recargar .bashrc como root pero a la hora de ejecutar el script antes mencionado no reconoce que estén seteadas las variables, a continuación les dejo lo que hago y lo que pasa:
Intento como root:
Código
sudosu root
Código
source ~/.bashrc
Hasta aquí todo funcional.
Error al intentar correr el Script con privilegios:
Código
ERROR: Add /usr/local/ps3dev/host/ppu/bin to your path before continuing.
../depends/check-ps3dev.sh: Failed.
Esto se supone que ya está agregado dentro de mi .bashrc son las siguientes lineas:
Código
exportPS3DEV=/usr/local/ps3dev
exportPATH=$PATH:$PS3DEV/bin
exportPATH=$PATH:$PS3DEV/ppu/bin
exportPATH=$PATH:$PS3DEV/spu/bin
exportPSL1GHT=$PS3DEV/psl1ght
Intento Sin privilegios:
Código
source ~/.bashrc
error:
Código
mkdir: no se puede crear el directorio «/dev/cgroup/cpu/user/8285»: El archivo ya existe
ahora alguna información importante:
$PATH:
Código
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ps3dev/bin:/usr/local/ps3dev/ppu/bin:/usr/local/ps3dev/spu/bin: No existe el fichero o el directorio
Al parcer aquí faltan unos directorios que dice no existen. En todo caso los he creado manualmente, pero sigo teniendo el mismo resultado.
Al aplicar rm -r /dev/cgroup/cpu/user/8285 (esto debió haber sido temerario y peligroso, pero igual me arriesgué XD, me he tentado a probar con el parámetro -f pero ya no me arriesgo hasta que no me confirmen que es realmente seguro hacerlo):
Código
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/cpu.rt_period_us»: Operación no permitida
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/cpu.rt_runtime_us»: Operación no permitida
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/cpu.shares»: Operación no permitida
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/cgroup.event_control»: Operación no permitida
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/notify_on_release»: Operación no permitida
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/cgroup.procs»: Operación no permitida
rm: no se puede borrar «/dev/cgroup/cpu/user/8285/tasks»: Operación no permitida
archivo .bashrc:
Código
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[-z"$PS1"]&&return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
# append to the history file, don't overwrite it
shopt-s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt-s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
Desde hace poco cada vez que quiero entrar a Windows pasados unos cuantos minutos de estar allí, repentinamente el computador se apaga, lo que me lleva a pensar que es un problema con el Disco, así que me he dispuesto con un disco de instalación de W7 64bits A Verificar con CHKDSK la partición de Windows, el problema es que cuando esta a la mitad de la comprobación también se apaga repentinamente. Desafortunadamente puede que sea problemas en hardware (espero que no sea así). También tengo instalado Linux en el ordenador, donde todo va perfecto y nada se apaga, he intentado verificar la partición desde linux obteniendo los siguientes resultados:
Y como vrán la sugerencia del mensage no puedo hacer lo que diceporque en plena comprobación se apaga.
Es por eso que queria pedirles su opinión acerca de este problema y la posible solución, Pienso que tal vez usando una herramienta como Paragon System Recovery podría solucionarlo.
Bueno, ahora estoy haciendo un conversor de caracteres Latinos a Kanas y viceversa, para esto estoy poniendo los kanas en diccionarios, y me entraba la duda para limpiar un poco el código, ¿Es posible poner los diccionarios en archivos externos como si fueran módulos, y accesarlos desde otro archivo?