domingo, 31 de mayo de 2015

[OFF-TOPIC] GORDOSSSS, Esta es tu GRASA y así la puedes ELIMINAR... }:-]

0 comentarios
Filosoraptor - http://populares.filosoraptor.org/2015/05/esta-es-tu-grasa-y-asi-la-puedes.html

Fuente del Articulo

No cabe duda de que uno de los mayores traumas de todo ser humano es su peso. Es como una lucha interminable que sencillamente parece no tener fin, sin embargo, es probable que la razón por la que aún no has conseguido bajar esos kilitos que tanto te atormentan, se deba principalmente a que ni tú mismo/a sabes el motivo por el cual esa molesta grasita se ha instalado en tu cuerpo y parece no querer salir.

Basta de sufrir, aquí te mostraremos la razón por la que lejos de bajar pareces estar ganando peso y te diremos como eliminarlo de una forma efectiva, fácil y rápida:

1| Obesidad alimentaria
Aunque no lo creas, no todo el sobrepeso se debe a la ingesta excesiva o inadecuada de alimentos, sin embargo, si tú eres de las personas a las que les fascina los carbohidratos y azucares, es evidente que esta es la razón por la cual la obesidad se ha apoderado de ti.

No te mortifiques, por increíble que parezca, este tipo de sobrepeso es uno de los más sencillos para bajar, lo único que necesitas es mucha fuerza de voluntad y comenzar una alimentación más saludable, acompañada de una pequeña rutina de ejercicio diaria. Tranquilo/a, no se trata de que pases tres horas en el gimnasio ni de que te dediques a comer solo lechuga, sino de que mantengas una alimentación balanceada en donde se encuentren presentes todos los alimentos pero en pequeñas cantidades. Combina esto con un poco de actividad física como caminar 30 minutos, baile, ejercicios caseros, etc. Y en pocas semanas estarás disfrutando de los resultados.

2| Obesidad abdominal nerviosa
No, no es un juego, es 100% real. Si eres una persona que suele estresarse fácilmente o ser víctima constante de la depresión o ansiedad, es muy probable que sufras de este tipo de obesidad, ya que tu necesidad por el consumo de azucares se verá incrementada. Es importante que comiences a buscar actividades extras que te permitan liberar todas tus emociones, a fin de que evites refugiarte en la comida, de tal forma, que junto con ello comiences a liberarte de esos kilitos que atormentan aún más.

3| Obesidad Glútea
Este tipo de obesidad es propia de las mujeres durante la etapa de la adolescencia, menopausia o bien, de aquellas que sufren de desequilibrio hormonal.

La única manera de eliminar este tipo de grasa es mediante actividad física, ya que como te comentamos, es producida meramente por un desequilibrio, sin embargo, lo más recomendable es realizar ejercicio tipo sentadillas, estocadas, abdominales, etc. Y no solo correr como en la mayoría de los casos se recomendaría.

4| Obesidad metabólica aterógena
La gordura de las personas que sufren de este tipo de obesidad, suele centrarse en el estómago, ya que se debe al consumo excesivo de alcohol, por lo que quienes la padecen, suelen sufrir también de malestares como problemas para respirar, presión, etc.

Como podrás imaginar, el fin a este mal es muy sencillo, solo basta con que dejes de consumir alcohol y en menos de lo que te imaginas, tu estomago reducirá su tamaño y tus síntomas irán desapareciendo como por arte de magia.

5| Obesidad circulatoria venosa
Lamentablemente esto no es algo que puedes controlar fácilmente, ya que se debe básicamente a problemas genéticos, por lo que para contrarrestar este tipo de obesidad, se recomienda realizar ejercicios como natación, bicicleta fija, etc. Así mismo, es recomendable el consumo de mucha agua y la reducción de alimentos con altas cantidades de sodio.

6| Obesidad por sedentarismo
Este tipo de sobrepeso puede ser apreciado en personas con actividades físicas nulas o bien, aquellas acostumbradas al ejercicio y que de repente lo han dejado.
Si tú sufres de este padecimiento, lo mejor que puedes hacer es comenzar con algún tipo de actividad física y realizar por lo menos seis comidas diarias en pequeñas porciones, de tal forma, que tu cuerpo lejos de acumular grasa, comience a quemarla.
 Ya no tienes pretexto para lucir el cuerpo que siempre soñaste, identifica tu tipo de obesidad y manos a la obra, es momento de trabajar para perder esos molestos kilitos de más.
Si gustas, comparte este artículo con todos tus SERES QUERIDOS y dejen YA de sufrir por esa grasa de más. Elimínala de forma fácil, rápida y saludable.
Read more ►

miércoles, 20 de mayo de 2015

GPG error: http://http.kali.org /kali Release: The following signatures couldn't be verified because the public key is not available

0 comentarios
Este es un post que tenía pendiente por publicar desde principios de Abril de este año. Un buen día al iniciar Kali y ejecutar la rutina de actualización de paquetes de forma manual me encontré con ese infame error de GPG:

GPG error: http://http.kali.org /kali Release: The following signatures couldn't be verified because the public key is not available

Esta es la secuencia de errores que se presentó y por lo tanto no finalizó con normalidad el comando apt-get update:

root@kali:~# aptitude update
Hit http://dl.google.com stable Release.gpg
Hit http://dl.google.com stable Release                                                      
Hit http://dl.google.com stable/main amd64 Packages                                          
Des: 1 http://repo.kali.org kali-bleeding-edge Release.gpg [819 B]                                                                                      
Des: 2 http://repo.kali.org kali-bleeding-edge Release [11,0 kB]
Err http://repo.kali.org kali-bleeding-edge Release                                             
Ign http://dl.google.com stable/main Translation-es_SV         
Ign http://dl.google.com stable/main Translation-es
Ign http://dl.google.com stable/main Translation-en
Des: 3 http://security.kali.org kali/updates Release.gpg [819 B]
Des: 4 http://http.kali.org kali Release.gpg [819 B]
Des: 5 http://security.kali.org kali/updates Release [11,0 kB]
Err http://security.kali.org kali/updates Release             
Des: 6 http://http.kali.org kali Release [21,1 kB]
Err http://http.kali.org kali Release
Descargados 23,6 kB en 3seg. (7.332 B/s)
W: Se produjo un error durante la verificación de las firmas. El repositorio no está actualizado y se utilizarán los ficheros de índice antiguos. El error GPG es: http://repo.kali.org kali-bleeding-edge Release: Las siguientes firms fueron inválidas: KEYEXPIRED 1425567400 KEYEXPIRED 1425567400 KEYEXPIRED 1425567400

W: Se produjo un error durante la verificación de las firmas. El repositorio no está actualizado y se utilizarán los ficheros de índice antiguos. El error GPG es: http://security.kali.org kali/updates Release: Las siguientes firms fueron inválidas: KEYEXPIRED 1425567400 KEYEXPIRED 1425567400 KEYEXPIRED 1425567400

W: Se produjo un error durante la verificación de las firmas. El repositorio no está actualizado y se utilizarán los ficheros de índice antiguos. El error GPG es: http://http.kali.org kali Release: Las siguientes firms fueron inválidas: KEYEXPIRED 1425567400 KEYEXPIRED 1425567400 KEYEXPIRED 1425567400

W: Se produjo un fallo al descargar http://repo.kali.org/kali/dists/kali-bleeding-edge/Release:
W: Se produjo un fallo al descargar http://security.kali.org/kali-security/dists/kali/updates/Release:
W: Se produjo un fallo al descargar http://http.kali.org/kali/dists/kali/Release:
W: Some index files failed to download. They have been ignored, or old ones used instead.



A pesar que no se ha cerrado el hilo de ese post de ayuda, para mí me fue de utilidad. La respuesta la encontré en el foro de usuarios Kali (inglés).

El problema tal como se muestra es que la llave pública GPG ha caducado, así que tenemos que importar la llave nueva que firma y da validez a los repositorios de Kali Linux.

Primero, debemos listar las claves de los repositorios que tenemos en el llavero (key-ring) con el comando apt-key list, por aquí el comando y su resultado:

root@kali:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub   1024D/7FAC5991 2007-03-08
uid                  Google, Inc. Linux Package Signing Key <linux-packages-keymaster@google.com>
sub   2048g/C07CB649 2007-03-08

/etc/apt/trusted.gpg.d//debian-archive-jessie-automatic.gpg
-----------------------------------------------------------
pub   4096R/2B90D010 2014-11-21 [caduca: 2022-11-19]
uid                  Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-jessie-security-automatic.gpg
--------------------------------------------------------------------
pub   4096R/C857C906 2014-11-21 [caduca: 2022-11-19]
uid                  Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-jessie-stable.gpg
--------------------------------------------------------
pub   4096R/518E17E1 2013-08-17 [caduca: 2021-08-15]
uid                  Jessie Stable Release Key <debian-release@lists.debian.org>

/etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg
------------------------------------------------------------
pub   4096R/473041FA 2010-08-27 [caduca: 2018-03-05]
uid                  Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg
---------------------------------------------------------
pub   4096R/B98321F9 2010-08-07 [caduca: 2017-08-05]
uid                  Squeeze Stable Release Key <debian-release@lists.debian.org>

/etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg
-----------------------------------------------------------
pub   4096R/46925553 2012-04-27 [caduca: 2020-04-25]
uid                  Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg
--------------------------------------------------------
pub   4096R/65FFB764 2012-05-08 [caduca: 2019-05-07]
uid                  Wheezy Stable Release Key <debian-release@lists.debian.org>

/etc/apt/trusted.gpg.d//kali-archive-keyring.gpg
------------------------------------------------
pub   4096R/7D8D0BF6 2012-03-05 [caducó: 2015-03-05]
uid                  Kali Linux Repository <devel@kali.org>


Tal como se puede ver la fecha de caducidad, el uid de los repositorios de Kali Linux caducó el 5 de Marzo del año en curso 2015

Así que vamos a solucionar esto con el siguiente comando (más abajo el comando con su resultado):

apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 7D8D0BF6


root@kali:~# apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 7D8D0BF6

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.sYzbsBXbRo --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-jessie-automatic.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-jessie-security-automatic.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-jessie-stable.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg --keyring /etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg --keyring /etc/apt/trusted.gpg.d//kali-archive-keyring.gpg --keyserver hkp://keys.gnupg.net --recv-keys 7D8D0BF6
 

gpg: solicitando clave 7D8D0BF6 de hkp servidor keys.gnupg.net
gpg: clave 7D8D0BF6: "Kali Linux Repository <devel@kali.org>" 32 firmas nuevas
gpg: no se encuentran claves absolutamente fiables
gpg: Cantidad total procesada: 1
gpg:               nuevas firmas: 32



root@kali:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub   1024D/7FAC5991 2007-03-08
uid                  Google, Inc. Linux Package Signing Key <linux-packages-keymaster@google.com>
sub   2048g/C07CB649 2007-03-08

/etc/apt/trusted.gpg.d//debian-archive-jessie-automatic.gpg
-----------------------------------------------------------
pub   4096R/2B90D010 2014-11-21 [caduca: 2022-11-19]
uid                  Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-jessie-security-automatic.gpg
--------------------------------------------------------------------
pub   4096R/C857C906 2014-11-21 [caduca: 2022-11-19]
uid                  Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-jessie-stable.gpg
--------------------------------------------------------
pub   4096R/518E17E1 2013-08-17 [caduca: 2021-08-15]
uid                  Jessie Stable Release Key <debian-release@lists.debian.org>

/etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg
------------------------------------------------------------
pub   4096R/473041FA 2010-08-27 [caduca: 2018-03-05]
uid                  Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg
---------------------------------------------------------
pub   4096R/B98321F9 2010-08-07 [caduca: 2017-08-05]
uid                  Squeeze Stable Release Key <debian-release@lists.debian.org>

/etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg
-----------------------------------------------------------
pub   4096R/46925553 2012-04-27 [caduca: 2020-04-25]
uid                  Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>

/etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg
--------------------------------------------------------
pub   4096R/65FFB764 2012-05-08 [caduca: 2019-05-07]
uid                  Wheezy Stable Release Key <debian-release@lists.debian.org>

/etc/apt/trusted.gpg.d//kali-archive-keyring.gpg
------------------------------------------------
pub   4096R/7D8D0BF6 2012-03-05 [caduca: 2018-02-02]
uid                  Kali Linux Repository <devel@kali.org>
sub   4096R/FC0D0DCB 2012-03-05 [caduca: 2018-02-02]


Como se puede ver, el llavero de claves del repositorio de Kali ahora caducará hasta el 2 de Febrero de 2018

Despues de actualizar la clave, ya pude ejecutar apt-get update sin problemas y por lo consiguiente actualizar la versión de los paquetes con apt-get upgrade

Bytes!
Read more ►

not starting portmapper is not running (warning) [SOLVED] [RESUELTO]

0 comentarios
Desde hace tiempos que empecé a utilizar Kali me llamó la atención que durante el arranque aparecía un incómodo mensaje de advertencia pero no le había puesto mucha atención. Un día de estos me decidí a quitar esa advertencia que se muestra durante el proceso de inicio, y la forma como lo he quitado es la siguiente:

Abrir una consola de comandos y digitar:

service --status-all

Con esto hemos de notar que aparece: [ - ] nfs-common
pues vamos a deshabilitar esa entrada en el inicio ejecutando:

update-rc.d -f nfs-common remove

Y de esta forma al reiniciar ya no aparece dicha advertencia.

Una breve explicación sobre esa advertencia.

Portmapper está involucrado en alguna actividad con los servicios de NFS y llamadas a procedimientos remotos (RPC), pero como en mi sistema no hago uso de esas funcionalidades (por ahora) opté por deshabilitar el auto inicio de NFS.

Con service --status-all se comprueba si se está ejecutando el serivicio de NFS en el arranque del sistema, al buscar y comprobar la entrada [ - ] nfs-common removemos esa entrada para que ya no se ejecute en cada inicio del sistema con update-rc.d -f nfs-common remove

Indicando que el comando update-rc.d sirve para instalar o quitar enlaces de scripts de inicio del sistema al estilo de System-V. Con la opción -f se le indica que fuerce a remover enlaces simbólicos aún si existe alguno en /etc/init.d/nombre-de-servicio Luego va seguido por el nombre del servicio (que en este caso queremos eliminar), y al final va la palabra remove que está demás decir que es la acción que queremos realizar sobre ese servicio.

Más información sobre el comando update-rc.d no olvide digitar en su línea de comandos favorita:

man update-rc.d


Espero que a alguien le pueda ser de utilidad.
Bytes.-
Read more ►

martes, 19 de mayo de 2015

¿Dónde encontrar problemas y soluciones en python para practicar?

0 comentarios
[ Where can i find good practice python problems with solutions? ]

Python Challenge is a great place for beginners to learn Python in an interesting way.

CodingBat (previously JavaBat) now has Python thanks to Google. Some problems have hints and solutions. Your answer can be tested automatically for correctness.

Google Code Jam. They have solutions from participants for past contests, some of which are in Python. Take into account that as in any programming competition, the goal there isn't to learn Python - it's to get the job done as quickly as possible. So you may not learn the cleanest programming style, but you will see how smart people use the language to solve complex problems in an efficient manner.

It all depends on what you understand under "problem", "coding" and "practice". For example, my first guess is you might be interested in looking up whatever university courses on algorithms using Python that you can google out. Here's one arbitrary link.

It's also worth looking at classic textbooks, those have lots of examples.
Finally, try looking at the tutorials from certain specialized packages, such as Scipy, Turbogears, PyGame, etc.

If that's not enough, you can just go read the source code of some existing open source software. That might also help.

[ Beginner Python Practice? ]

You'll find great beginner practice at http://singpath.com ... the "game" is interactive, gives you the ability to edit your answers, and the exercises are much more practical than the Python Challenge, plus there are multiple levels to choose from based on your skill level. Most importantly, have fun, and welcome to Python!

ps. your experience puts you right in the heart of the target audience of my Python book, Core Python Programming, whose goal is to teach Python as quickly but as in-depth as possible. reviews, philosophy, and other info at http://corepython.com

[UPDATE May 2013] There are many alternatives now in addition to SingPath:
http://codecademy.com/tracks/python
http://codingbat.com/python
http://pythontutor.com
http://learnpython.org
http://pyschools.com
http://learnstreet.com/lessons/study/python

You could also try CheckIO which is kind of a quest where you have to post solutions in Python 2.7 or 3.3 to move up in the game. Fun and has quite a big community for questions and support.

You may want to take a look at Pyschools, the website has quite a lot of practice questions on Python Programming.

You may be interested in Python interactive tutorial for begginers and advance users , it has many available practices together with interactive interface + advance development tricks for advance users.

Try this site full of Python Practice Problems. It leans towards problems that has already been solved so that you'll have reference solutions.

Google just recently released an online Python class ("class" as in "a course of study").

http://code.google.com/edu/languages/google-python-class/
I know this doesn't answer your full question, but I think it's a great place to start!

Download Twisted and look at the source code. They employ some pretty advanced techniques.

[ Hidden features of Python ]

What are the lesser-known but useful features of the Python programming language?
  • Try to limit answers to Python core.
  • One feature per answer.
  • Give an example and short description of the feature, not just a link to documentation.
  • Label the feature using a title as the first line.

Quick links to answers:


Chaining comparison operators:

>>> x = 5
>>> 1 < x < 10
True
>>> 10 < x < 20 
False
>>> x < 10 < x*10 < 100
True
>>> 10 > x <= 9
True
>>> 5 == x > 4
True
In case you're thinking it's doing 1 < x, which comes out as True, and then comparing True < 10, which is also True, then no, that's really not what happens (see the last example.) It's really translating into 1 < x and x < 10, and x < 10 and 10 < x * 10 and x*10 < 100, but with less typing and each term is only evaluated once.

¿Qué IDE utilizar para Python?

Table 1  Table 2

[ Técnicas de Loops en Pyhton ]


[ Python progression path - From apprentice to guru ]

I've been learning, working, and playing with Python for a year and a half now. As a biologist slowly making the turn to bio-informatics, this language has been at the very core of all the major contributions I have made in the lab. I more or less fell in love with the way Python permits me to express beautiful solutions and also with the semantics of the language that allows such a natural flow from thoughts to workable code.

What I would like to know is your answer to a kind of question I have seldom seen in this or other forums. This question seems central to me for anyone on the path to Python improvement but who wonders what his next steps should be.
Let me sum up what I do NOT want to ask first ;)
  • I don't want to know how to QUICKLY learn Python
  • Nor do I want to find out the best way to get acquainted with the language
  • Finally, I don't want to know a 'one trick that does it all' approach.
What I do want to know your opinion about, is:
What are the steps YOU would recommend to a Python journeyman, from apprenticeship to guru status (feel free to stop wherever your expertise dictates it), in order that one IMPROVES CONSTANTLY, becoming a better and better Python coder, one step at a time. Some of the people on SO almost seem worthy of worship for their Python prowess, please enlighten us :)

The kind of answers I would enjoy (but feel free to surprise the readership :P ), is formatted more or less like this:
  • Read this (eg: python tutorial), pay attention to that kind of details
  • Code for so manytime/problems/lines of code
  • Then, read this (eg: this or that book), but this time, pay attention to this
  • Tackle a few real-life problems
  • Then, proceed to reading Y.
  • Be sure to grasp these concepts
  • Code for X time
  • Come back to such and such basics or move further to...
  • (you get the point :)
I really care about knowing your opinion on what exactly one should pay attention to, at various stages, in order to progress CONSTANTLY (with due efforts, of course). If you come from a specific field of expertise, discuss the path you see as appropriate in this field.

EDIT: Thanks to your great input, I'm back on the Python improvement track! I really appreciate!

I thought the process of Python mastery went something like:
  1. Discover list comprehensions
  2. Discover generators
  3. Incorporate map, reduce, filter, iter, range, xrange often into your code
  4. Discover Decorators
  5. Write recursive functions, a lot
  6. Discover itertools and functools
  7. Read Real World Haskell (read free online)
  8. Rewrite all your old Python code with tons of higher order functions, recursion, and whatnot.
  9. Annoy your cubicle mates every time they present you with a Python class. Claim it could be "better" implemented as a dictionary plus some functions. Embrace functional programming.
  10. Rediscover the Strategy pattern and then all those things from imperative code you tried so hard to forget after Haskell.
  11. Find a balance.

One good way to further your Python knowledge is to dig into the source code of the libraries, platforms, and frameworks you use already.
For example if you're building a site on Django, many questions that might stump you can be answered by looking at how Django implements the feature in question.

This way you'll continue to pick up new idioms, coding styles, and Python tricks. (Some will be good and some will be bad.)
And when you see something Pythony that you don't understand in the source, hop over to the #python IRC channel and you'll find plenty of "language lawyers" happy to explain.

An accumulation of these little clarifications over years leads to a much deeper understanding of the language and all of its ins and outs.

Understand Introspection
  • write a dir() equivalent
  • write a type() equivalent
  • figure out how to "monkey-patch"
  • use the dis module to see how various language constructs work
Doing these things will
  • give you some good theoretical knowledge about how python is implemented
  • give you some good practical experience in lower-level programming
  • give you a good intuitive feel for python data structures

def apprentice():
  read(diveintopython)
  experiment(interpreter)
  read(python_tutorial)
  experiment(interpreter, modules/files)
  watch(pycon)

def master():
  refer(python-essential-reference)
  refer(PEPs/language reference)
  experiment()
  read(good_python_code) # Eg. twisted, other libraries
  write(basic_library)   # reinvent wheel and compare to existing wheels
  if have_interesting_ideas:
     give_talk(pycon)

def guru():
  pass # Not qualified to comment. Fix the GIL perhaps?



[ Calling an external command in Python ]

Look at the subprocess module in the stdlib:
from subprocess import call
call(["ls", "-l"])

The advantage of subprocess vs system is that it is more flexible (you can get the stdout, stderr, the "real" status code, better error handling, etc...). I think os.system is deprecated, too, or will be:
http://docs.python.org/library/subprocess.html#replacing-older-functions-with-the-subprocess-module

For quick/dirty/one time scripts, os.system is enough, though.

  1. os.system("some_command with args") passes the command and arguments to your system's shell. This is nice because you can actually run multiple commands at once in this manner and set up pipes and input/output redirection. For example,
    os.system("some_command < input_file | another_command > output_file")
    However, while this is convenient, you have to manually handle the escaping of shell characters such as spaces, etc. On the other hand, this also lets you run commands which are simply shell commands and not actually external programs.
    see documentation
  2. stream = os.popen("some_command with args") will do the same thing as os.system except that it gives you a file-like object that you can use to access standard input/output for that process. There are 3 other variants of popen that all handle the i/o slightly differently. If you pass everything as a string, then your command is passed to the shell; if you pass them as a list then you don't need to worry about escaping anything.
    see documentation

import os
cmd = 'ls -al'
os.system(cmd)
If you want to return the results of the command you need os.popen


Programación en general...

Aprende a programar en diez años

Algunos investigadores (Hayes , Bloom) han mostrado que toma aproximadamente diez años desarrollar habilidades en cualquiera de una amplia variedad de áreas, incluyendo el juego de ajedrez, la composición musical, la pintura, el piano, la natación, el tenis, y la investigación en neurosicología y topología. Parece no haber atajos: incluso Mozart, prodigio musical a los 4 años, se tomó 13 más antes de empezar a producir música de calidad mundial. En otro género, parece que los Beatles llegan a escena apareciendo en el espectáculo de Ed Sullivan en 1964. Pero ellos habían estado tocando desde 1957, y aunque tenían una masa de seguidores desde antes, su primer gran éxito, Sgt. Peppers , apareció en 1967. Samuel Johnson pensaba que se requieren más de diez años: "La excelencia en cualquier área puede lograrse sólo mediante el trabajo de toda una vida; no es algo que pueda adquirirse a un menor precio." Y Chaucer se quejaba "the lyf so short, the craft so long to lerne."

Aquí está mi receta para el éxito en programación:
  • Interésate en la programación, y haz programación porque es divertida. Asegúrate que se mantiene tan divertida que estarás en disposición de invertir diez años.
  • Habla con otros programadores. Lee otros programas. Esto es más importante que cualquier libro o curso.
  • Programa. El mejor tipo de aprendizaje es aprender haciendo (learning by doing) . Para decirlo más técnicamente, "El máximo nivel de desempeño de los individuos en un dominio dado, no se logra automáticamente como función de experiencia extendida, sino que el nivel de desempeño puede incrementarse incluso en individuos altamente experimentados como resultado de esfuerzos deliberados por mejorar." (p. 366) y "el aprendizaje más efectivo requiere una tarea bien definida con un apropiado nivel de dificultad acorde con el individuo, retroalimentación informativa, y oportunidades de repetición y corrección de errores." (p. 20-21) El libro Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life es una interesante referencia sobre este punto de vista.
  • Si quieres, dedica cuatro o cinco años en una universidad (o más en una escuela de graduados). Esto te dará acceso a algunos posiciones que requieren credenciales, y te dará un entendimiento más profundo del campo, pero si no disfrutas la escuela, puedes (con algo de dedicación) obtener una experiencia similar trabajando. Como sea, la lectura de libros por sí sola no será suficiente. "La educación en computación no puede hacer a nadie un expero programador más que el estudio de pinceles y pigmentos puede hacer a alguien un pintor experto" dice Eric Raymond, autor de The New Hacker's Dictionary. Unos de los mejores programadores que yo haya contratado alguna vez tenía sólamente un grado de bachiller (High School); pero ha producido una gran cantidad de excelentes programas , tiene su propio grupo de noticias (news group) , y sin duda es mucho más rico de lo que yo llegue a ser.
  • Trabaja en proyectos con otros programadores. Sé el mejor programador en algunos proyectos; sé el peor en otros. Cuando eres el mejor, tienes que poner a prueba tus habilidades para liderar un proyecto y para inspirar a otros con tu visión. Cuando eres el peor, aprendes lo que los maestros hacen, y aprendes lo que a ellos no les gusta hacer (pues te ponen a hacerlo por ellos).
  • Trabaja en proyectos después que otros programadores. Proponte entender un programa escrito por otra persona. Mira cuánto toma entenderlo y hazle correcciones cuando los programadores originales no están allí. Piensa en cómo diseñar tus programas para facilitarles el trabajo a aquellos que le harán mantenimiento después de tí.
  • Aprende por lo menos una media docena de lenguajes de programación. Incluye uno con soporte para abstracciones de clases (como Java o C++), uno que dé soporte a la abstracción functional (como Lisp o ML), uno que dé soporte a la abstracción sintáctica (como Lisp), uno que dé soporte a especificationes declarativas (como Prolog o plantillas C++), uno que dé soporte a corutinas (como Icon o Scheme), y uno que dé soporte al paralelismo (como Sisal).
  • Recuerda que hay "computadoras" en la "ciencia de la computación". Conoce cuánto le toma a tu computadora ejecutar una instrucción, alcanzar una palabra de la memoria (con y sin cache), leer palabras consecutivas de disco, y ubicar una nueva localización en disco. (Respuestas aquí.)
  • Involúcrate en un plan de estandarización de algún lenguaje. Podría ser en el mismo comité ANSI C++, o podría ser simplemente decidir si tu estilo de codificación tendrá niveles de identación de 2 ó 4 espacios. Como sea, averigua lo que les gusta a otras personas en un lenguaje, cómo lo perciben, y quizá incluso un poco de por qué lo perciben como lo hacen.
  • Ten el buen juicio para lanzar el plan de estandarización del lenguaje tan pronto como sea posible.
Con todo lo anterior en mente, es cuestionable qué tan lejos puedes llegar sólo leyendo libros. Antes de que naciera mi primer hijo, leí todos los libros Aprende a (How To), y sin embargo me sentía como un tonto principiante. 30 meses después, cuando nació mi segundo hijo, ¿acaso regresé a los libros? No. Al contrario, me apoyé en mi experiencia personal, que me resultó mucho más útil y confiable que las miles de páginas escritas por los expertos.

Fred Brooks, en su ensayo No Silver Bullets, identificó un plan de tres partes para encontrar grandes diseñadores de programas:
  1. Sistemáticamente identificar a los diseñadores líderes lo más pronto posible.
  2. Asignar un tutor de carrera para que sea responsable del desarrollo del prospecto y mantenga cuidadosamente un registro de seguimiento.
  3. Ofrecer oportunidades a los diseñadores en crecimiento para que interactúen y se motiven mutuamente.
Esto asume que algunas personas ya tienen las cualidades necesarias para ser grandes diseñadores; la tarea es persuadirlos apropiadamente. Alan Perlis lo dice de manera más sucinta: "A cualquiera se le puede enseñar a esculpir: A Miguel Angel habría que habérsele enseñado cómo no hacerlo. Así pasa con los grandes programadores".

Así que adelante, compra ese libro de Java; probablemente obtendrás algo de él. Pero no cambiará tu vida o tus reales habilidades como programador en 24 horas, días o incluso meses.
Read more ►

jueves, 7 de mayo de 2015

Compartir recursos compartidos protegidos por contraseña

0 comentarios
Ese incómodo momento en que después de estar buscando por qué un recurso compartido siempre pide contraseña (despues de estar lideando con drivers de una impresora matricial / de impacto, que son difíciles de encontrar (y que sean compatibles)), hay que desactivar esa opción en Windows...

QUITAR SOLICITUD DE USUARIO Y CONTRASEÑA EN IMPRESORA U OTRO RECURSO COMPARTIDO [SOLUCIONADO]

En Win 7
Ir a "Inicio" luego "Panel de control" después "Redes e Internet"
Hacer clic en "Grupo Hogar"
Clic en "Cambiar configuración de uso compartido avanzado"
Clic en el radio-button "Desactivar el uso compartido con protección por contraseña y haz clic en Guardar cambios"


En Win 8 (8.1)
"Ctrl + Q" y escribir "Panel de Control" (o la forma que se le haga más fácil para llegar allí)
Ir a "Centro de redes y recursos compartidos"
Luego hacer clic en "Cambiar configuración de uso compartido avanzado"
Hacer clic en "Privado"
Desmarcar "Usar cuentas de usuario y contraseñas para conectarse a otros equipos"
Para finalizar, hacer clic en "Guardar cambios"

Bytes.-
Read more ►
 

Copyright © El igloo de Tux Design by O Pregador | Blogger Theme by Blogger Template de luxo | Powered by Blogger